<?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>32242</bug_id>
          
          <creation_ts>2009-12-07 13:24:49 -0800</creation_ts>
          <short_desc>implement Object.getOwnPropertyNames()</short_desc>
          <delta_ts>2010-04-24 20:28:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>ES5</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick Mueller">pmuellr</reporter>
          <assigned_to name="Kent Hansen">kent.hansen</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>erights</cc>
    
    <cc>ggaren</cc>
    
    <cc>hausmann</cc>
    
    <cc>kent.hansen</cc>
    
    <cc>mjs</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>webmaster</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169452</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-12-07 13:24:49 -0800</bug_when>
    <thetext>For EcmaScript 5, Object.getOwnPropertyNames() is required, but not yet implemented by JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169789</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-12-08 14:12:16 -0800</bug_when>
    <thetext>The implementation of this function should be the nearly the same as the Object.keys() current implementation.  The difference between keys() and getOwnPropertyNames() seems to be that keys() only returns enumerable properties, and gOPN() returns all of them.

Looking at the keys() implementation in runtime/ObjectConstructor.cpp, objectConstructorKeys(), it calls an internal getOwnPropertyNames() which actually returns property names pre-filtered as enumerable.  Unfortunate name choice there (oh well).  

Looks to me like Structure::getEnumerablePropertyNames() should probably be generalized to take a boolean option on whether to include non-enumerable properties or not, then the same function can be used for both the Object.keys() and Object.getOwnPropertyNames() implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171910</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-12-15 10:21:35 -0800</bug_when>
    <thetext>turning out to be yuckier than I thought.  I was hoping to just modify some of the get*PropertyNames() methods in JSObject and Structure, but to the virtual nature of these, I&apos;ve had to add an optional (default-valued)  &quot;bool enumerable&quot; in getOwnPropertyNames() methods through JSC.  Here&apos;s the hit list so far:

JavaScriptCore/runtime/Structure.h
JavaScriptCore/runtime/JSObject.h
JavaScriptCore/runtime/JSObject.cpp
JavaScriptCore/runtime/JSArray.h
JavaScriptCore/runtime/StringObject.h
JavaScriptCore/runtime/JSByteArray.h
JavaScriptCore/runtime/JSArray.cpp
JavaScriptCore/runtime/JSVariableObject.h
JavaScriptCore/runtime/JSByteArray.cpp
JavaScriptCore/runtime/Structure.cpp
JavaScriptCore/runtime/RegExpMatchesArray.h
JavaScriptCore/runtime/JSNotAnObject.h
JavaScriptCore/runtime/StringObject.cpp
JavaScriptCore/runtime/JSNotAnObject.cpp
JavaScriptCore/runtime/JSVariableObject.cpp
JavaScriptCore/debugger/DebuggerActivation.cpp
JavaScriptCore/debugger/DebuggerActivation.h
JavaScriptCore/API/JSCallbackObjectFunctions.h
JavaScriptCore/API/JSCallbackObject.h
JavaScriptCore/JavaScriptCore.exp

Even just with these changes, I&apos;m seeing LayoutTest failures, trying just fast/js for now.  One test case - global-constructors, is all that&apos;s failing, but NONE of the constructors are being found.  I&apos;m guessing that some of the higher levels of JavaScript goop in WebKit will need changes also.  

Icky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171963</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-12-15 11:48:05 -0800</bug_when>
    <thetext>doing a global search across WebKit for getOwnPropertyNames() methods yields
multiple hits.  It&apos;s unclear to me at the moment how many of these are genned,
and how many are written by hand.  I&apos;m guessing that there are implementations
of visible objects, specifically, what fast/js/global-constructors actually
finds, which are auto-genned, and there are glue-y bits which are hand built.  

The search did get a hit on WebCore/bindings/scripts/CodeGeneratorJS.pm which
is a generator, which would presumably work for the auto-genned classes.

It&apos;s not clear to me that there is a less intrusive fix here.  The problem is
that any object, including host ones, can presumably have non-enumerable
properties, so there has to be a way to get these.  On the other hand,
retrieving non-enumerable properties is going to be something done almost none
of the time, compared with retrieving the enumerable properties, so we don&apos;t
want to, for instance, always have the most inner most calls returning
non-enumerable properties then filtering them somehow later (not sure how that
would even be done).

It might be the case that we could assume that host objects never have
non-enumerable properties, and then just provide the capability of getting the
own, non-enumerated properties to non-host objects.  Not quite sure how this
would work either, but is potentially an interesting solution (affects less
code, no performance impacts, etc).

In any case, so I&apos;m going to stop looking into this one:

- perhaps there is a simpler way to do this that doesn&apos;t hit so many files, but I don&apos;t know what it is

- the fix requires hits to so many files that I&apos;m hesitant to make the change myself given my lack of experience with JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175878</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2009-12-30 04:55:45 -0800</bug_when>
    <thetext>Hi Patrick, great that you&apos;ve been looking into this!

You pretty much arrived at the same conclusion as I did. Yes, you will have to modify dozens of files when adding a bool enumerable flag to getOwnPropertyNames(). (And yes, you will need to modify the JS bindings code generator, too.)
Yes, it feels rather intrusive. But I&apos;m not convinced there&apos;s a better way.

I don&apos;t think it&apos;s sufficient to only provide enumeration for non-native objects. getOwnPropertyNames() needs to work for Array, String and arguments objects, for example.

A less intrusive approach might be to introduce a dedicated virtual function for getting non-enumerable property names; e.g. getOwnNonEnumerablePropertyNames(). You&apos;d still need to actually reimplement that function in most of the classes you list in comment #2, in order to fully support Object.getOwnPropertyNames() for all types of object.

Finally, I agree that Structure::getEnumerablePropertyNames() should be generalized to take a flag. Or rather, it should simply call a helper function, e.g. Structure::getPropertyNames(EnumerablePropertiesOnly).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176081</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-30 16:32:48 -0800</bug_when>
    <thetext>I suspect that no matter what you do, you&apos;ll have to touch every place that implements getOwnPropertyNames. Thus, you may as well change the internal getOwnPropertyNames method to take the extra boolean argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176850</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2010-01-04 13:30:39 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I suspect that no matter what you do, you&apos;ll have to touch every place that
&gt; implements getOwnPropertyNames. Thus, you may as well change the internal
&gt; getOwnPropertyNames method to take the extra boolean argument.

Since so many places are being touched, seems worthwhile to ask what the shape of the final change should be.  For the purposes of this bug, all that is currently envisioned is adding a bool indicating whether non-enumerable properties should be returned.  Perhaps an int should be used instead, for future flag capabilities?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176862</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-04 13:49:44 -0800</bug_when>
    <thetext>&gt; Since so many places are being touched, seems worthwhile to ask what the shape
&gt; of the final change should be.  For the purposes of this bug, all that is
&gt; currently envisioned is adding a bool indicating whether non-enumerable
&gt; properties should be returned.  Perhaps an int should be used instead, for
&gt; future flag capabilities?

I think a bool is better, for clarity.

We don&apos;t have binary compatibility constraints within WebKit. If we ever want to add more flags in the future, we can add another parameter, or change the bool to an int or an enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177075</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-05 01:05:22 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think a bool is better, for clarity.

Except getOwnProperties(..., true) isn&apos;t that readable.
This was brought up in the &quot;unwritten rules of webkit style&quot; thread on webkit-dev@. One argument I remember was &quot;if you&apos;re going to be passing bool constants (i.e. not variables) as arguments to functions, prefer an enum&quot;.

The only use-case I have so far for calling getOwnPropertyNames() with the non-default value is in the implementation of Object.getOwnPropertyNames, so I&apos;m not sure if that justifies using an enum.

The general form would be one of:

void getOwnPropertyNames(ExecState*, PropertyNameArray&amp;, bool includeNonEnumerable = false);

or:

enum EnumerationMode {
    EnumerateNormal,
    EnumerateAll
};

void getOwnPropertyNames(ExecState*, PropertyNameArray&amp;, EnumerationMode mode = EnumerateNormal);

(Not sure about the best name for the enum)
I tend to prefer the bool for the reasons you gave.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177131</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2010-01-05 07:05:47 -0800</bug_when>
    <thetext>One of the use cases I thought of for &quot;additional function&quot; for a flags variable would be an unordered enumeration.  Perhaps a bad example, but it&apos;s a pet peeve of mine (hate that the JS engines have to keep properties in insertion order), but if someone needed access to property values, didn&apos;t care about the insertion order, they could avoid a sort, perhaps.

In a case like that, the enum wouldn&apos;t fit well, because you&apos;d actually want that indication (don&apos;t sort) as well as it as the other options like (return only enumerable / return all).

I&apos;m in over my head here, and this smells a bit like over-engineering, but thought I&apos;d give the dead horse a final kick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177266</commentid>
    <comment_count>10</comment_count>
      <attachid>45915</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-05 11:33:35 -0800</bug_when>
    <thetext>Created attachment 45915
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177269</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-05 11:36:37 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45915 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177329</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-05 13:01:16 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Except getOwnProperties(..., true) isn&apos;t that readable.
&gt; This was brought up in the &quot;unwritten rules of webkit style&quot; thread on
&gt; webkit-dev@. One argument I remember was &quot;if you&apos;re going to be passing bool
&gt; constants (i.e. not variables) as arguments to functions, prefer an enum&quot;.

This is definitely a rule of WebKit style, albeit one that&apos;s not yet in the style guide. Having a &quot;, true&quot; or &quot;, false&quot; in a function call is not nearly as good as a named argument. The enum style is something we do all the time instead of bools in new code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177359</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-05 13:29:15 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; I think a bool is better, for clarity.
&gt; 
&gt; Except getOwnProperties(..., true) isn&apos;t that readable.
&gt; This was brought up in the &quot;unwritten rules of webkit style&quot; thread on
&gt; webkit-dev@. One argument I remember was &quot;if you&apos;re going to be passing bool
&gt; constants (i.e. not variables) as arguments to functions, prefer an enum&quot;.

I just meant to say that a type that conveys your meaning is better than a type
that conveys your meaning and reserves extra behavior for mysterious future
features.

I agree that, according to webkit&apos;s style guidelines, an enum is preferable in
this case.

&gt; enum EnumerationMode {
&gt;     EnumerateNormal,
&gt;     EnumerateAll
&gt; };

Rather than &quot;Normal&quot; and &quot;All&quot;, which are a little vague, I would use
&quot;ExcludeDontEnumProperties&quot; and IncludeDontEnumProperties&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177365</commentid>
    <comment_count>14</comment_count>
      <attachid>45915</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-05 13:34:34 -0800</bug_when>
    <thetext>Comment on attachment 45915
Proposed patch

I&apos;ll say r- based on the enum vs bool style issue, but the rest of the patch looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177564</commentid>
    <comment_count>15</comment_count>
      <attachid>45959</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-06 04:30:34 -0800</bug_when>
    <thetext>Created attachment 45959
Revised patch (bool --&gt; enum argument)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177567</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-06 04:35:49 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45959 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178602</commentid>
    <comment_count>17</comment_count>
      <attachid>45959</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-01-08 03:21:50 -0800</bug_when>
    <thetext>Comment on attachment 45959
Revised patch (bool --&gt; enum argument)

Let&apos;s try this patch through the commit-queue :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178669</commentid>
    <comment_count>18</comment_count>
      <attachid>45959</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-08 07:30:56 -0800</bug_when>
    <thetext>Comment on attachment 45959
Revised patch (bool --&gt; enum argument)

The patch no longer applies for me after r52948 (a line was added in Structure.h, or it was because of the unintended whitespace insertion on the line before &quot;private&quot;).
Geoffrey, could you perhaps land this? Note that I _have not_ tested the build on Windows nor Mac; I hope the symbol exports will be fine.
Otherwise, I&apos;ll rebase and submit a new patch on Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178694</commentid>
    <comment_count>19</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-08 09:08:38 -0800</bug_when>
    <thetext>&gt; Geoffrey, could you perhaps land this?

Sure, I&apos;ll give it a go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178705</commentid>
    <comment_count>20</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-08 10:11:52 -0800</bug_when>
    <thetext>(In reply to comment #19)
Hmmm. I applied the patch locally and got a bunch of test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178707</commentid>
    <comment_count>21</comment_count>
      <attachid>46143</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-08 10:12:31 -0800</bug_when>
    <thetext>Created attachment 46143
test failures

Here&apos;s the list of test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179352</commentid>
    <comment_count>22</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-11 07:12:25 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=46143) [details]
&gt; test failures
&gt; 
&gt; Here&apos;s the list of test failures.

Thanks. Working on getting a Safari build up and running so I can debug these myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179444</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-11 11:36:23 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; Hmmm. I applied the patch locally and got a bunch of test failures.

Strange, I&apos;ve applied the patch on top of r53079 and I&apos;m not seeing any of those failures (Safari build this time, not Qt port).
Did you do a clean build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179539</commentid>
    <comment_count>24</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-11 14:16:36 -0800</bug_when>
    <thetext>&gt; Strange, I&apos;ve applied the patch on top of r53079 and I&apos;m not seeing any of
&gt; those failures (Safari build this time, not Qt port).
&gt; Did you do a clean build?

Interesting.

I didn&apos;t type &quot;make clean&quot;, but I did do a build with no other changes in my tree. Maybe I made a mistake.

Why don&apos;t you post your updated patch, and we can ask the commit queue to land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179742</commentid>
    <comment_count>25</comment_count>
      <attachid>46352</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-12 02:00:23 -0800</bug_when>
    <thetext>Created attachment 46352
Revised patch (apply cleanly to trunk again)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179763</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-12 03:02:17 -0800</bug_when>
    <thetext>Attachment 46352 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/182432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179771</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-12 03:26:34 -0800</bug_when>
    <thetext>&gt; Build output: http://webkit-commit-queue.appspot.com/results/182432

Sorry that the build output isn&apos;t available.  The EWS was misbehaving for a bit because of a typo on my part.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179774</commentid>
    <comment_count>28</comment_count>
      <attachid>46359</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-12 03:35:38 -0800</bug_when>
    <thetext>Created attachment 46359
Revised patch (apply cleanly to trunk again)

Reuploading to try to get BuildBot output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179796</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-12 04:58:53 -0800</bug_when>
    <thetext>Attachment 46359 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/183456</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179800</commentid>
    <comment_count>30</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-01-12 05:25:41 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Attachment 46359 [details] did not build on qt:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/183456

Build output is still blank.
If it&apos;s doing an incremental build, then that might the reason for it failing; it does for me locally at least (during linking). I have to do a clean build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179819</commentid>
    <comment_count>31</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-01-12 06:38:43 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; &gt; Attachment 46359 [details] [details] did not build on qt:
&gt; &gt; Build output: http://webkit-commit-queue.appspot.com/results/183456
&gt; 
&gt; Build output is still blank.
&gt; If it&apos;s doing an incremental build, then that might the reason for it failing;
&gt; it does for me locally at least (during linking). I have to do a clean build.

Ah yes, a limitation of the qt build system used for webkit ;(


That means when landing the patch we also have to nudge the Qt build bot...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179916</commentid>
    <comment_count>32</comment_count>
      <attachid>46359</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-12 11:48:42 -0800</bug_when>
    <thetext>Comment on attachment 46359
Revised patch (apply cleanly to trunk again)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179979</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-12 14:26:29 -0800</bug_when>
    <thetext>@ossy: Looks like folks knew this would break the bot before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179982</commentid>
    <comment_count>34</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-01-12 14:29:57 -0800</bug_when>
    <thetext>I&apos;ll start a test now, and will write the Qt results in 30 minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179985</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-01-12 14:56:47 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; I&apos;ll start a test now, and will write the Qt results in 30 minutes.
Here the patch works correctly without any layout test regression. (Qt-Linux)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180038</commentid>
    <comment_count>36</comment_count>
      <attachid>46359</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-12 16:58:32 -0800</bug_when>
    <thetext>Comment on attachment 46359
Revised patch (apply cleanly to trunk again)

Clearing flags on attachment: 46359

Committed r53170: &lt;http://trac.webkit.org/changeset/53170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180039</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-12 16:58:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45915</attachid>
            <date>2010-01-05 11:33:35 -0800</date>
            <delta_ts>2010-01-06 04:30:34 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ObjectDotGetOwnPropertyNames.diff</filename>
            <type>text/plain</type>
            <size>76658</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IGQxOTg5MGEuLmVkYjA4NDMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90byk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSA9IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgZG91
YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0
cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGYxNDk0ZTIuLjA0YmYwZDEgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMzgwLDcgKzM4MCw3
IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Y2FsbChFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBmdW5jdGlvbk9iamVjdCwKIH0KIAogdGVtcGxhdGUgPGNsYXNzIEJhc2U+Ci12
b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNDYWxsYmFj
a09iamVjdDxCYXNlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQog
ewogICAgIEpTQ29udGV4dFJlZiBleGVjUmVmID0gdG9SZWYoZXhlYyk7CiAgICAgSlNPYmplY3RS
ZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXMpOwpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgSlNDYWxs
YmFja09iamVjdDxCYXNlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFyCiAgICAgICAgICAgICBmb3IgKGl0ZXJhdG9yIGl0ID0gc3RhdGljVmFsdWVz
LT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgICAgICBVU3RyaW5nOjpS
ZXAqIG5hbWUgPSBpdC0+Zmlyc3QuZ2V0KCk7CiAgICAgICAgICAgICAgICAgU3RhdGljVmFsdWVF
bnRyeSogZW50cnkgPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+Z2V0
UHJvcGVydHkgJiYgIShlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dEVudW0pKQorICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+Z2V0UHJvcGVydHkgJiYgKCEoZW50
cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtKSB8fCBpbmNsdWRl
Tm9uRW51bWVyYWJsZSkpCiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXIoZXhlYywgbmFtZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00MDgs
MTMgKzQwOCwxMyBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcgogICAgICAgICAgICAgZm9yIChp
dGVyYXRvciBpdCA9IHN0YXRpY0Z1bmN0aW9ucy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CiAgICAgICAgICAgICAgICAgVVN0cmluZzo6UmVwKiBuYW1lID0gaXQtPmZpcnN0LmdldCgpOwog
ICAgICAgICAgICAgICAgIFN0YXRpY0Z1bmN0aW9uRW50cnkqIGVudHJ5ID0gaXQtPnNlY29uZDsK
LSAgICAgICAgICAgICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udEVudW0pKQorICAgICAgICAgICAgICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVz
ICYga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSkgfHwgaW5jbHVkZU5vbkVudW1lcmFibGUp
CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXIoZXhlYywg
bmFtZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIEJhc2U6
OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0
T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJs
ZSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBCYXNlPgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEwYWE2NmEuLmEx
OWRmZmUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMC0wMS0wNSAgS2VudCBIYW5z
ZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MjI0MgorCisgICAgICAgIEFkZCBhbiBleHRyYSBhcmd1bWVudCB0byBnZXRQcm9wZXJ0eU5hbWVz
KCkgYW5kIGdldE93blByb3BlcnR5TmFtZXMoKQorICAgICAgICAoYW5kIGFsbCByZWltcGxlbWVu
dGF0aW9ucyB0aGVyZW9mKSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIG5vbi1lbnVtZXJhYmxlCisg
ICAgICAgIHByb3BlcnRpZXMgc2hvdWxkIGJlIGFkZGVkIGFzIHdlbGwuCisKKyAgICAgICAgKiBB
UEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFy
Z3VtZW50czo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVu
dHMuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICog
cnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU0J5dGVBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICog
cnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmdldENs
YXNzUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFyaWFibGVP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0Q29u
c3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3Ry
dWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBNYXRjaGVzQXJyYXk6OmdldE93blByb3Bl
cnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6U3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDogUmVu
YW1lZCBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcygpIHRvIGdldFByb3BlcnR5TmFtZXMoKSwg
d2hpY2ggdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQuCisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKwogMjAx
MC0wMS0wNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cCBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCA0
YTg3ZTRlLi4wYzNlMDAwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xMjQsNyAr
MTI0LDcgQEAgX19aTjNKU0MxMlNtYWxsU3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nRVBOU18xMkpTR2xvYmFsRGF0YUVoCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRkZWxldGVQ
cm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlND
MTJTdHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3
UHJvcGVydHlOYW1lQXJyYXlFCitfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRPd25Qcm9wZXJ0
eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RWIKIF9fWk4zSlND
MTJTdHJpbmdPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3Ry
aW5nT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0NGluZm9FCkBA
IC0xNTcsNyArMTU3LDcgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240bmFtZUVQTlNfOUV4
ZWNTdGF0ZUUKIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uQzJFUE5TXzEySlNHbG9iYWxEYXRh
RU4zV1RGMTdOb25OdWxsUGFzc1JlZlB0cklOU185U3RydWN0dXJlRUVFUktOU18xMElkZW50aWZp
ZXJFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0c3lt
Ym9sVGFibGVHZXRFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQot
X19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVj
U3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFCitfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVj
dDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVB
cnJheUViCiBfX1pOM0pTQzE2dG9VSW50MzJTbG93Q2FzZUVkUmIKIF9fWk4zSlNDMTdCeXRlY29k
ZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlNDMTdQcm9wZXJ0eU5h
bWVBcnJheTNhZGRFUE5TXzExVVN0cmluZ0ltcGxFCkBAIC0yNDksNyArMjQ5LDcgQEAgX19aTjNK
U0M4SlNPYmplY3QxMm1hcmtDaGlsZHJlbkVSTlNfOU1hcmtTdGFja0UKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9f
Wk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pT
QzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKLV9fWk4zSlNDOEpTT2JqZWN0MTZnZXRQcm9w
ZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNK
U0M4SlNPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyYXlFYgogX19aTjNKU0M4SlNPYmplY3QxN2NyZWF0ZUluaGVyaXRvcklERXYKIF9f
Wk4zSlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3Qx
N3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25F
agpAQCAtMjU4LDcgKzI1OCw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1CiBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoK
IF9fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJO
U18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MThnZXRQcmltaXRpdmVOdW1iZXJF
UE5TXzlFeGVjU3RhdGVFUmRSTlNfN0pTVmFsdWVFCi1fX1pOM0pTQzhKU09iamVjdDE5Z2V0T3du
UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKK19f
Wk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18x
N1Byb3BlcnR5TmFtZUFycmF5RWIKIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2Ny
aXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNj
cmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEy
UHJvcGVydHlTbG90RVBOU183SlNWYWx1ZUUgIAogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRl
UHJvcGVydHlTdG9yYWdlRW1tCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgppbmRleCBlZWUyYzVkLi43NzVkNGZhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisr
KyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKQEAgLTEzOCw5ICsxMzgsOSBAQCBFWFBPUlRTCiAgICAgP2dldE93
blByb3BlcnR5RGVzY3JpcHRvckBKU09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJW
SWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCiAgICAgP2dldE93blByb3Bl
cnR5RGVzY3JpcHRvckBKU1N0cmluZ0BKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRp
ZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCiAgICAgP2dldE93blByb3BlcnR5RGVz
Y3JpcHRvckBTdHJpbmdPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZp
ZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVz
QEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJA
QFoKLSAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpTQ0BAVUFFWFBB
VkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVy
dHlOYW1lc0BTdHJpbmdPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlO
YW1lQXJyYXlAMkBAWgorICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAX05AWgorICAgID9nZXRPd25Q
cm9wZXJ0eU5hbWVzQEpTVmFyaWFibGVPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFW
UHJvcGVydHlOYW1lQXJyYXlAMkBfTkBaCisgICAgP2dldE93blByb3BlcnR5TmFtZXNAU3RyaW5n
T2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAX05A
WgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNDZWxsQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVy
dHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAy
QEBaCiAgICAgP2dldE93blByb3BlcnR5U2xvdEBKU09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCkBAIC0xNTIsNyArMTUyLDcgQEAgRVhQT1JUUwog
ICAgID9nZXRQcmltaXRpdmVOdW1iZXJASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAy
QEFBTkFBVkpTVmFsdWVAMkBAWgogICAgID9nZXRQcmltaXRpdmVOdW1iZXJASlNTdHJpbmdASlND
QEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFBTkFBVkpTVmFsdWVAMkBAWgogICAgID9nZXRQcm9wZXJ0
eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBRQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZp
ZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgotICAgID9nZXRQcm9wZXJ0eU5hbWVzQEpT
T2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAQFoK
KyAgICA/Z2V0UHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBB
QVZQcm9wZXJ0eU5hbWVBcnJheUAyQF9OQFoKICAgICA/Z2V0U2xpY2VAQXJnTGlzdEBKU0NAQFFC
RVhIQUFWMTJAQFoKICAgICA/Z2V0U3RyaW5nQEpTQ2VsbEBKU0NAQFFCRT9BVlVTdHJpbmdAMkBQ
QVZFeGVjU3RhdGVAMkBAWgogICAgID9nZXRTdHJpbmdASlNDZWxsQEpTQ0BAUUJFX05QQVZFeGVj
U3RhdGVAMkBBQVZVU3RyaW5nQDJAQFoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGQ0N2RiNWIuLmY2NDJlOTYgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNzEsOSArNzEsOSBA
QCBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZQogICAgIHJldHVybiBtX2FjdGl2YXRpb24tPmRlbGV0
ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgRGVidWdnZXJBY3RpdmF0
aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQogewotICAgIG1fYWN0aXZhdGlvbi0+Z2V0UHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBtX2FjdGl2YXRpb24tPmdldFBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5vbkVudW1lcmFibGUpOwog
fQogCiBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oCmluZGV4IDM3M2U2MmQuLmYwNzZkMjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBib29s
IGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZp
bmVTZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09i
amVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDg2YThmMGEuLjM2NzY0YjYgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTIwNCw2ICsyMDQsMTkgQEAgYm9vbCBBcmd1bWVudHM6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3AKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCit2b2lkIEFyZ3VtZW50czo6Z2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQoreworICAgIGlmIChpbmNsdWRl
Tm9uRW51bWVyYWJsZSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZC0+bnVt
QXJndW1lbnRzOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZC0+ZGVsZXRlZEFyZ3VtZW50cyB8
fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZChJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6OmZyb20oaSkpKTsKKyAgICAgICAgfQorICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlKTsKKyAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCk7Cisg
ICAgfQorICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFt
ZXMsIGluY2x1ZGVOb25FbnVtZXJhYmxlKTsKK30KKwogdm9pZCBBcmd1bWVudHM6OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBpZiAoaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRBcmd1
bWVudHMgfHwgIWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaAppbmRleCA5YjY3NGEyLi5mMDdlZGM3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKQEAgLTk2LDYgKzk2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1l
QXJyYXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKaW5kZXggYWJlNTAzOC4uZGUyNGY0YSAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtNTAsNiArNTAsNyBAQAogICAgIG1hY3Jv
KGdldCkgXAogICAgIG1hY3JvKGdldFByb3RvdHlwZU9mKSBcCiAgICAgbWFjcm8oZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKSBcCisgICAgbWFjcm8oZ2V0T3duUHJvcGVydHlOYW1lcykgXAogICAg
IG1hY3JvKGhhc093blByb3BlcnR5KSBcCiAgICAgbWFjcm8oaWdub3JlQ2FzZSkgXAogICAgIG1h
Y3JvKGluZGV4KSBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXku
Y3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAwZDJhOWI0Li5i
NDdiZGI0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTQ1NCw3ICs0NTQsNyBA
QCBib29sIEpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
aSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQor
dm9pZCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUpCiB7
CiAgICAgLy8gRklYTUU6IEZpbGxpbmcgUHJvcGVydHlOYW1lQXJyYXkgd2l0aCBhbiBpZGVudGlm
aWVyIGZvciBldmVyeSBpbnRlZ2VyCiAgICAgLy8gaXMgaW5jcmVkaWJseSBpbmVmZmljaWVudCBm
b3IgbGFyZ2UgYXJyYXlzLiBXZSBuZWVkIGEgZGlmZmVyZW50IGFwcHJvYWNoLApAQCAtNDc0LDcg
KzQ3NCwxMCBAQCB2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYQogICAgICAgICAgICAgcHJvcGVydHlO
YW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpdC0+Zmlyc3QpKTsKICAgICB9CiAKLSAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAg
ICBpZiAoaW5jbHVkZU5vbkVudW1lcmFibGUpCisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpOworCisgICAgSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5vbkVudW1lcmFibGUpOwogfQog
CiBib29sIEpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKHVuc2lnbmVkIG5ld0xlbmd0aCkK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggOGMyMjQ1MS4uMWNiNTQ1YiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmgKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIGJv
b2wgaW5jbHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBt
YXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7CiAKICAgICAgICAgdm9pZCogbGF6eUNyZWF0aW9uRGF0
YSgpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCA1ZTUwMDNiLi5l
NzIzYzQwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtOTYsMTIg
Kzk2LDEyIEBAIHZvaWQgSlNCeXRlQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICBzZXRJbmRleChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKTsKIH0KIAotdm9pZCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9p
ZCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQog
ewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fc3RvcmFnZS0+bGVuZ3RoKCk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJsZSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCBmZTZlMTI0Li4yNzgyOWRh
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC04Miw3ICs4Miw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgYm9vbCBpbmNsdWRlTm9u
RW51bWVyYWJsZSA9IGZhbHNlKTsKIAogICAgICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0luZm87IH0KICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2RlZmF1bHRJbmZvOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKaW5kZXggMDI0ZTU4Ni4uNWQyNjNiNCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCkBAIC0yMDYsNiArMjA2LDE3IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
CiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICB9CiAgICAgCit2b2lkIEpTRnVuY3Rpb246Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKK3sKKyAgICBpZiAoIWlzSG9z
dEZ1bmN0aW9uKCkgJiYgaW5jbHVkZU5vbkVudW1lcmFibGUpIHsKKyAgICAgICAgcHJvcGVydHlO
YW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyk7CisgICAgICAgIHByb3Bl
cnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUpOworICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKTsKKyAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCk7CisgICAgfQorICAg
IEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5v
bkVudW1lcmFibGUpOworfQorCiB2b2lkIEpTRnVuY3Rpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIGlmIChpc0hvc3RGdW5jdGlvbigpKSB7CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IGZjYWM5YWEuLjgxNzk4NGYgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC04Miw2ICs4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxl
ID0gZmFsc2UpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmNwcAppbmRleCBjMzZkYzEwLi4zMjE3NjJhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYpCit2b2lkIEpTTm90QW5PYmplY3Q6OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSAmJiBleGVjLT5l
eGNlcHRpb24oKSA9PSBtX2V4Y2VwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5oCmluZGV4IGEyNzFjNGUuLjYzMTA2NGMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNOb3RBbk9iamVjdC5oCkBAIC05MSw3ICs5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOwogCiAgICAg
ICAgIEpTTm90QW5PYmplY3RFcnJvclN0dWIqIG1fZXhjZXB0aW9uOwogICAgIH07CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGVkOWZkYzIuLmU5NWRiNTIgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT2JqZWN0KTsKIAotc3RhdGljIGlubGluZSB2
b2lkIGdldEVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQorc3Rh
dGljIGlubGluZSB2b2lkIGdldENsYXNzUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKICAgICAvLyBBZGQgcHJvcGVydGllcyBm
cm9tIHRoZSBzdGF0aWMgaGFzaHRhYmxlcyBvZiBwcm9wZXJ0aWVzCiAgICAgZm9yICg7IGNsYXNz
SW5mbzsgY2xhc3NJbmZvID0gY2xhc3NJbmZvLT5wYXJlbnRDbGFzcykgewpAQCAtNTUsNyArNTUs
NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0RW51bWVyYWJsZVByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBDbGFzc0luZm8qCiAgICAgICAgIGludCBoYXNoU2l6ZU1hc2sgPSB0
YWJsZS0+Y29tcGFjdFNpemUgLSAxOwogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0g
dGFibGUtPnRhYmxlOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBoYXNoU2l6ZU1hc2s7
ICsraSwgKytlbnRyeSkgewotICAgICAgICAgICAgaWYgKGVudHJ5LT5rZXkoKSAmJiAhKGVudHJ5
LT5hdHRyaWJ1dGVzKCkgJiBEb250RW51bSkpCisgICAgICAgICAgICBpZiAoZW50cnktPmtleSgp
ICYmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBEb250RW51bSkgfHwgaW5jbHVkZU5vbkVudW1l
cmFibGUpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGVudHJ5LT5rZXkoKSk7
CiAgICAgICAgIH0KICAgICB9CkBAIC00MjUsOSArNDI1LDkgQEAgYm9vbCBKU09iamVjdDo6Z2V0
UHJvcGVydHlTcGVjaWZpY1ZhbHVlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
K3ZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsK
LSAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIGdldE93
blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5vbkVudW1lcmFibGUp
OwogCiAgICAgaWYgKHByb3RvdHlwZSgpLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CkBAIC00
MzUsMTAgKzQzNSwxMCBAQCB2b2lkIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZQogICAgIEpTT2JqZWN0KiBw
cm90b3R5cGUgPSBhc09iamVjdCh0aGlzLT5wcm90b3R5cGUoKSk7CiAgICAgd2hpbGUoMSkgewog
ICAgICAgICBpZiAocHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzKCkpIHsKLSAgICAgICAgICAgIHByb3RvdHlwZS0+Z2V0UHJvcGVydHlO
YW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+Z2V0UHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJsZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBwcm90b3R5cGUtPmdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgICAgIHByb3RvdHlwZS0+Z2V0
T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJs
ZSk7CiAgICAgICAgIEpTVmFsdWUgbmV4dFByb3RvID0gcHJvdG90eXBlLT5wcm90b3R5cGUoKTsK
ICAgICAgICAgaWYgKG5leHRQcm90by5pc051bGwoKSkKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NDQ2LDEwICs0NDYsMTAgQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWUKICAgICB9CiB9CiAKLXZv
aWQgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNPYmplY3Q6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
Ym9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKLSAgICBtX3N0cnVjdHVyZS0+Z2V0RW51bWVy
YWJsZVByb3BlcnR5TmFtZXMocHJvcGVydHlOYW1lcyk7Ci0gICAgZ2V0RW51bWVyYWJsZVByb3Bl
cnR5TmFtZXMoZXhlYywgY2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZXMpOworICAgIG1fc3RydWN0
dXJlLT5nZXRQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMsIGluY2x1ZGVOb25FbnVtZXJhYmxl
KTsKKyAgICBnZXRDbGFzc1Byb3BlcnR5TmFtZXMoZXhlYywgY2xhc3NJbmZvKCksIHByb3BlcnR5
TmFtZXMsIGluY2x1ZGVOb25FbnVtZXJhYmxlKTsKIH0KIAogYm9vbCBKU09iamVjdDo6dG9Cb29s
ZWFuKEV4ZWNTdGF0ZSopIGNvbnN0CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYTVk
YTI2Ny4uMmFjNjc2NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTIyLDggKzEy
Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNJbnN0YW5j
ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBKU1ZhbHVlIHByb3RvdHlwZVByb3BlcnR5KTsKIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wgaW5jbHVkZU5v
bkVudW1lcmFibGUgPSBmYWxzZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgYm9vbCBpbmNsdWRlTm9uRW51
bWVyYWJsZSA9IGZhbHNlKTsKIAogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgdG9QcmltaXRpdmUo
RXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSA9IE5vUHJlZmVyZW5jZSkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltaXRpdmVOdW1iZXIoRXhlY1N0YXRlKiwgZG91
YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuY3BwCmluZGV4IDNhYTllNjIuLmQ1OGNlYjcgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcApAQCAtNDIsMTUgKzQyLDE1IEBAIGJv
b2wgSlNWYXJpYWJsZU9iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTVmFyaWFibGVPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVy
dHlOYW1lcykKK3ZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBib29sIGluY2x1
ZGVOb25FbnVtZXJhYmxlKQogewogICAgIFN5bWJvbFRhYmxlOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBzeW1ib2xUYWJsZSgpLmVuZCgpOwogICAgIGZvciAoU3ltYm9sVGFibGU6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gc3ltYm9sVGFibGUoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAg
ICAgaWYgKCEoaXQtPnNlY29uZC5nZXRBdHRyaWJ1dGVzKCkgJiBEb250RW51bSkpCisgICAgICAg
IGlmICghKGl0LT5zZWNvbmQuZ2V0QXR0cmlidXRlcygpICYgRG9udEVudW0pIHx8IGluY2x1ZGVO
b25FbnVtZXJhYmxlKQogICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcihl
eGVjLCBpdC0+Zmlyc3QuZ2V0KCkpKTsKICAgICB9CiAgICAgCi0gICAgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5vbkVudW1lcmFibGUp
OwogfQogCiBib29sIEpTVmFyaWFibGVPYmplY3Q6OmlzVmFyaWFibGVPYmplY3QoKSBjb25zdApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAppbmRleCAxNWQ2ZmY1Li41
YmYxOGYxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAt
NDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdp
dGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOwogICAgICAg
ICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFyaWFibGVPYmplY3QoKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBib29sIGlzRHluYW1pY1Njb3BlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA2OTNlZmMzLi5kMjhhZTFm
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAt
MzYsNiArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE9iamVjdENvbnN0cnVjdG9y
KTsKIAogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFBy
b3RvdHlwZU9mKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYp
Owogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFy
Z0xpc3QmKTsKK3N0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3Qg
QXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
cktleXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0Jik7CiBz
dGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVy
dHkoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0Jik7CiBzdGF0
aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydGll
cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3QmKTsKQEAgLTUy
LDYgKzUzLDcgQEAgT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXIKICAgICAKICAgICBwdXREaXJlY3RG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25X
cmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuZ2V0UHJvdG90eXBlT2YsIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2Yp
LCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVj
LCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlv
blN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5RGVzY3Jp
cHRvciwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpLCBEb250RW51
bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4
ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVy
ZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5TmFtZXMsIG9iamVjdENv
bnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25X
cmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkua2V5cywgb2JqZWN0Q29uc3RydWN0b3JLZXlzKSwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5kZWZpbmVQcm9wZXJ0eSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQ
cm9wZXJ0eSksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZGVmaW5lUHJvcGVy
dGllcywgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKSwgRG9udEVudW0pOwpAQCAt
MTI2LDYgKzEyOCwyMCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLAogfQogCiAvLyBGSVhNRTog
VXNlIHRoZSBlbnVtZXJhdGlvbiBjYWNoZS4KK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCos
IEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgaWYgKCFhcmdzLmF0KDApLmlz
T2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIlJl
cXVlc3RlZCBwcm9wZXJ0eSBuYW1lcyBvZiBhIHZhbHVlIHRoYXQgaXMgbm90IGFuIG9iamVjdC4i
KTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMpOworICAgIGFzT2JqZWN0
KGFyZ3MuYXQoMCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnRpZXMsIC8qaW5j
bHVkZU5vbkVudW1lcmFibGU9Ki90cnVlKTsKKyAgICBKU0FycmF5KiBuYW1lcyA9IGNvbnN0cnVj
dEVtcHR5QXJyYXkoZXhlYyk7CisgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVz
LnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykK
KyAgICAgICAgbmFtZXMtPnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0aWVz
W2ldLnVzdHJpbmcoKSkpOworICAgIHJldHVybiBuYW1lczsKK30KKworLy8gRklYTUU6IFVzZSB0
aGUgZW51bWVyYXRpb24gY2FjaGUuCiBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3Ry
dWN0b3JLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogewogICAgIGlmICghYXJncy5hdCgwKS5pc09iamVjdCgpKQpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggODI5ZjdjZi4uNWJkOTZm
MSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXku
aAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC03
OSwxMSArNzksMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gSlNBcnJh
eTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lQXJyYXkmIGFycikKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgYXJyLCBib29sIGluY2x1
ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChsYXp5
Q3JlYXRpb25EYXRhKCkpCiAgICAgICAgICAgICAgICAgZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7
Ci0gICAgICAgICAgICBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIGFycik7Cisg
ICAgICAgICAgICBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIGFyciwgaW5jbHVk
ZU5vbkVudW1lcmFibGUpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBmaWxsQXJyYXlJbnN0
YW5jZShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApp
bmRleCBmMjNhMjBkLi41YWE1YmMzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwCkBAIC04NiwxMiArODYsMTQgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW0KICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAK
LXZvaWQgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFN0cmluZ09iamVjdDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQogewogICAgIGludCBzaXplID0g
aW50ZXJuYWxWYWx1ZSgpLT5sZW5ndGgoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7
ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcihleGVjLCBVU3RyaW5n
Ojpmcm9tKGkpKSk7Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4
ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIGlmIChpbmNsdWRlTm9uRW51bWVyYWJsZSkKKyAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMs
IGluY2x1ZGVOb25FbnVtZXJhYmxlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA4NGUxYWQyLi44ZjhhOTk5IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYs
IGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7CiAKICAgICAgICAgdmlydHVhbCBj
b25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBKU19FWFBPUlREQVRBIENsYXNzSW5mbyBpbmZvOwpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IGU0YzlhYzMuLjgyZTQxNTggMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEwNDQsNyArMTA0NCw3IEBAIGludCBjb21wYXJl
UHJvcGVydHlNYXBFbnRyeUluZGljZXMoY29uc3Qgdm9pZCogYSwgY29uc3Qgdm9pZCogYikKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBTdHJ1Y3R1cmU6OmdldEVudW1lcmFibGVQcm9wZXJ0eU5h
bWVzKFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBTdHJ1Y3R1cmU6Omdl
dFByb3BlcnR5TmFtZXMoUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIGJvb2wgaW5j
bHVkZU5vbkVudW1lcmFibGUpCiB7CiAgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNz
YXJ5KCk7CiAgICAgaWYgKCFtX3Byb3BlcnR5VGFibGUpCkBAIC0xMDU2LDcgKzEwNTYsNyBAQCB2
b2lkIFN0cnVjdHVyZTo6Z2V0RW51bWVyYWJsZVByb3BlcnR5TmFtZXMoUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCiAgICAgICAgIHVuc2lnbmVkIGVudHJ5Q291bnQgPSBtX3Byb3Bl
cnR5VGFibGUtPmtleUNvdW50ICsgbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkU2VudGluZWxDb3Vu
dDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8PSBlbnRyeUNvdW50OyBrKyspIHsK
ICAgICAgICAgICAgIEFTU0VSVChtX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzIHx8ICEobV9w
cm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10uYXR0cmlidXRlcyAmIERvbnRFbnVtKSk7Ci0gICAg
ICAgICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10ua2V5ICYmICEobV9wcm9w
ZXJ0eVRhYmxlLT5lbnRyaWVzKClba10uYXR0cmlidXRlcyAmIERvbnRFbnVtKSkgeworICAgICAg
ICAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2tdLmtleSAmJiAoIShtX3Byb3Bl
cnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pIHx8IGluY2x1ZGVO
b25FbnVtZXJhYmxlKSkgewogICAgICAgICAgICAgICAgIFByb3BlcnR5TWFwRW50cnkqIHZhbHVl
ID0gJm1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2tdOwogICAgICAgICAgICAgICAgIGludCBq
OwogICAgICAgICAgICAgICAgIGZvciAoaiA9IGkgLSAxOyBqID49IDAgJiYgYVtqXS0+aW5kZXgg
PiB2YWx1ZS0+aW5kZXg7IC0taikKQEAgLTEwODMsNyArMTA4Myw3IEBAIHZvaWQgU3RydWN0dXJl
OjpnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcykKICAgICBQcm9wZXJ0eU1hcEVudHJ5KiogcCA9IHNvcnRlZEVudW1lcmFibGVzLmRhdGEo
KTsKICAgICB1bnNpZ25lZCBlbnRyeUNvdW50ID0gbV9wcm9wZXJ0eVRhYmxlLT5rZXlDb3VudCAr
IG1fcHJvcGVydHlUYWJsZS0+ZGVsZXRlZFNlbnRpbmVsQ291bnQ7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMTsgaSA8PSBlbnRyeUNvdW50OyBpKyspIHsKLSAgICAgICAgaWYgKG1fcHJvcGVydHlU
YWJsZS0+ZW50cmllcygpW2ldLmtleSAmJiAhKG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2ld
LmF0dHJpYnV0ZXMgJiBEb250RW51bSkpCisgICAgICAgIGlmIChtX3Byb3BlcnR5VGFibGUtPmVu
dHJpZXMoKVtpXS5rZXkgJiYgKCEobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClbaV0uYXR0cmli
dXRlcyAmIERvbnRFbnVtKSB8fCBpbmNsdWRlTm9uRW51bWVyYWJsZSkpCiAgICAgICAgICAgICAq
cCsrID0gJm1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2ldOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggYzZiN2Q5MS4uMmVhNmY2NiAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oCkBAIC0xMzEsNyArMTMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgdm9pZCBzZXRFbnVtZXJhdGlvbkNhY2hlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVu
dW1lcmF0aW9uQ2FjaGUpOyAvLyBEZWZpbmVkIGluIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaC4K
ICAgICAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSgpIHsgcmV0
dXJuIG1fZW51bWVyYXRpb25DYWNoZS5nZXQoKTsgfQotICAgICAgICB2b2lkIGdldEVudW1lcmFi
bGVQcm9wZXJ0eU5hbWVzKFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZvaWQgZ2V0UHJv
cGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUp
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlLCBj
b25zdCBUeXBlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGMxMzY2YTEuLjM5OWFkZWMgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0wNSAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNl
bkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAg
IEFkZCBuZXcgYXJndW1lbnQgdG8gdGhlIHJlaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVy
dHlOYW1lcygpLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2Vy
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1w
Lmg6CisKIDIwMTAtMDEtMDQgIEdhdmluIEJhcnJhY2xvdWdoIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKaW5kZXggMTI1ZTM0OS4uYTcyYzIwMCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAKKysrIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAK
QEAgLTk0LDcgKzk0LDcgQEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihF
eGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdAogfQogCiAKLXZvaWQgVXNl
ck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFt
ZXMsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUpCiB7CiAgICAgSlNVc2VyT2JqZWN0KiBwdHIg
PSBHZXRKU1VzZXJPYmplY3QoKTsKICAgICBpZiAocHRyKSB7CkBAIC0xMDksNyArMTA5LDcgQEAg
dm9pZCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3AKICAgICAgICAgICAgIENGUmVsZWFzZShjZlByb3BlcnR5
TmFtZXMpOwogICAgICAgICB9CiAgICAgfQotICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIGluY2x1ZGVOb25FbnVtZXJhYmxlKTsKIH0KIAogSlNW
YWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2VyT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvSmF2YVNjcmlwdEdsdWUvVXNl
ck9iamVjdEltcC5oCmluZGV4IDZiYjU3OTIuLjM4YWVhZTYgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRD
YWxsRGF0YShDYWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wgaW5j
bHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7CiAKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFz
RnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgQXJnTGlz
dCAmYXJncyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUg
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4MWFlMjYuLjNl
MWI1MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMS0wNSAgS2VudCBIYW5zZW4gIDxr
ZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0Mgor
CisgICAgICAgIEFkZCB0ZXN0cyBmb3IgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobyksIGJv
dGggc3RhbmRhcmQgdXNhZ2UgYW5kIGNyb3NzIG9yaWdpbi4KKworICAgICAgICAqIGZhc3QvanMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1l
bnVtZXJhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbDoKKwogMjAxMC0wMS0wNCAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9PYmplY3QtZ2V0T3du
UHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1n
ZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40OTg3OGYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5MCBA
QAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5TmFtZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyh7fSkgaXMgW10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyh7YTpudWxsfSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyh7YTpu
dWxsLCBiOm51bGx9KSBpcyBbJ2EnLCAnYiddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoe2I6bnVsbCwgYTpudWxsfSkgaXMgWydhJywgJ2InXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9w
ZXJ0eU5hbWVzKHtfX3Byb3RvX186e2E6bnVsbH19KSBpcyBbXQorUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKHtfX3Byb3RvX186WzEsMiwzXX0pIGlzIFtdCitQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoT2JqZWN0LmNyZWF0ZSh7fSwgeyAnYSc6IHsgJ3ZhbHVlJzogMSwgJ2Vu
dW1lcmFibGUnOiBmYWxzZSB9IH0pKSBpcyBbJ2EnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKE9iamVjdC5jcmVhdGUoWzEsMiwzXSwgeyAnYSc6IHsgJ3ZhbHVlJzogMSwgJ2VudW1l
cmFibGUnOiBmYWxzZSB9IH0pKSBpcyBbJ2EnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKG5ldyBGdW5jdGlvbigpKSBpcyBbJ2FyZ3VtZW50cycsICdjYWxsZWUnLCAnY2FsbGVyJywg
J2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcygoZnVuY3Rp
b24oKXt2YXIgeD1uZXcgRnVuY3Rpb24oKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30p
KCkpIGlzIFsnYXJndW1lbnRzJywgJ2NhbGxlZScsICdjYWxsZXInLCAnbGVuZ3RoJywgJ25hbWUn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJpbmcoJycpKSBpcyBbJ2xl
bmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IFN0cmluZygnYScpKSBp
cyBbJzAnLCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3Ry
aW5nKCdhYmMnKSkgaXMgWycwJywgJzEnLCAnMicsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKChmdW5jdGlvbigpe3ZhciB4PW5ldyBTdHJpbmcoJycpO3guX19wcm90
b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKFtdKSBpcyBbJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoW251bGxdKSBpcyBbJzAnLCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhbbnVsbCxudWxsXSkgaXMgWycwJywnMScsICdsZW5ndGgnXQorUEFTUyBnZXRT
b3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFtudWxsLG51bGwsLCwsbnVsbF0pIGlzIFsnMCcsJzEnLCc1
JywgJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7
dmFyIHg9W107eC5fX3Byb3RvX189WzEsMiwzXTtyZXR1cm4geDt9KSgpKSBpcyBbJ2xlbmd0aCdd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IERhdGUoKSkgaXMgW10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcygoZnVuY3Rpb24oKXt2YXIgeD1uZXcgRGF0ZSgpO3gu
X19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMgW10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhuZXcgUmVnRXhwKCdmb28nKSkgaXMgWydnbG9iYWwnLCAnaWdub3JlQ2Fz
ZScsICdsYXN0SW5kZXgnLCAnbXVsdGlsaW5lJywgJ3NvdXJjZSddCitQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFJlZ0V4cCgpO3guX19wcm90b19f
PVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMgWydnbG9iYWwnLCAnaWdub3JlQ2FzZScsICdsYXN0
SW5kZXgnLCAnbXVsdGlsaW5lJywgJ3NvdXJjZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5
TmFtZXMoYXJndW1lbnRzT2JqZWN0KCkpIGlzIFsnY2FsbGVlJywgJ2xlbmd0aCddCitQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMoYXJndW1lbnRzT2JqZWN0KDEpKSBpcyBbJzAnLCAnY2Fs
bGVlJywgJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoYXJndW1lbnRz
T2JqZWN0KDEsMiwzKSkgaXMgWycwJywgJzEnLCAnMicsICdjYWxsZWUnLCAnbGVuZ3RoJ10KK1BB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcygoZnVuY3Rpb24oKXthcmd1bWVudHMuX19wcm90
b19fPVsxLDIsM107cmV0dXJuIGFyZ3VtZW50czt9KSgpKSBpcyBbJ2NhbGxlZScsICdsZW5ndGgn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKHBhcnNlSW50KSBpcyBbJ2xlbmd0aCcs
ICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhwYXJzZUZsb2F0KSBpcyBb
J2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhpc05hTikg
aXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoaXNG
aW5pdGUpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKGVzY2FwZSkgaXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXModW5lc2NhcGUpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKGRlY29kZVVSSSkgaXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMoZGVjb2RlVVJJQ29tcG9uZW50KSBpcyBbJ2xlbmd0aCcs
ICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhlbmNvZGVVUkkpIGlzIFsn
bGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGVuY29kZVVS
SUNvbXBvbmVudCkgaXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoT2JqZWN0KSBpcyBbJ2NyZWF0ZScsICdkZWZpbmVQcm9wZXJ0aWVzJywgJ2RlZmlu
ZVByb3BlcnR5JywgJ2dldE93blByb3BlcnR5RGVzY3JpcHRvcicsICdnZXRPd25Qcm9wZXJ0eU5h
bWVzJywgJ2dldFByb3RvdHlwZU9mJywgJ2tleXMnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90
eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhPYmplY3QucHJvdG90eXBlKSBp
cyBbJ19fZGVmaW5lR2V0dGVyX18nLCAnX19kZWZpbmVTZXR0ZXJfXycsICdfX2xvb2t1cEdldHRl
cl9fJywgJ19fbG9va3VwU2V0dGVyX18nLCAnY29uc3RydWN0b3InLCAnaGFzT3duUHJvcGVydHkn
LCAnaXNQcm90b3R5cGVPZicsICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICd0b0xvY2FsZVN0cmlu
ZycsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyhGdW5jdGlvbikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRT
b3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEZ1bmN0aW9uLnByb3RvdHlwZSkgaXMgWydhcHBseScsICdj
YWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhBcnJheSkgaXMgWydpc0FycmF5JywgJ2xlbmd0aCcs
ICduYW1lJywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJy
YXkucHJvdG90eXBlKSBpcyBbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdldmVyeScsICdmaWx0
ZXInLCAnZm9yRWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3Ro
JywgJ21hcCcsICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJz
ZScsICdzaGlmdCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxl
U3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hpZnQnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKFN0cmluZykgaXMgWydmcm9tQ2hhckNvZGUnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJv
dG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTdHJpbmcucHJvdG90eXBl
KSBpcyBbJ2FuY2hvcicsICdiaWcnLCAnYmxpbmsnLCAnYm9sZCcsICdjaGFyQXQnLCAnY2hhckNv
ZGVBdCcsICdjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZml4ZWQnLCAnZm9udGNvbG9yJywgJ2Zv
bnRzaXplJywgJ2luZGV4T2YnLCAnaXRhbGljcycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAn
bGluaycsICdsb2NhbGVDb21wYXJlJywgJ21hdGNoJywgJ3JlcGxhY2UnLCAnc2VhcmNoJywgJ3Ns
aWNlJywgJ3NtYWxsJywgJ3NwbGl0JywgJ3N0cmlrZScsICdzdWInLCAnc3Vic3RyJywgJ3N1YnN0
cmluZycsICdzdXAnLCAndG9Mb2NhbGVMb3dlckNhc2UnLCAndG9Mb2NhbGVVcHBlckNhc2UnLCAn
dG9Mb3dlckNhc2UnLCAndG9TdHJpbmcnLCAndG9VcHBlckNhc2UnLCAndHJpbScsICd0cmltTGVm
dCcsICd0cmltUmlnaHQnLCAndmFsdWVPZiddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoQm9vbGVhbikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRT
b3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xlYW4ucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9y
JywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KE51bWJlcikgaXMgWydNQVhfVkFMVUUnLCAnTUlOX1ZBTFVFJywgJ05FR0FUSVZFX0lORklOSVRZ
JywgJ05hTicsICdQT1NJVElWRV9JTkZJTklUWScsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5
cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE51bWJlci5wcm90b3R5cGUpIGlz
IFsnY29uc3RydWN0b3InLCAndG9FeHBvbmVudGlhbCcsICd0b0ZpeGVkJywgJ3RvTG9jYWxlU3Ry
aW5nJywgJ3RvUHJlY2lzaW9uJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKERhdGUpIGlzIFsnVVRDJywgJ2xlbmd0aCcsICduYW1lJywgJ25v
dycsICdwYXJzZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KERhdGUucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ2dldERhdGUnLCAnZ2V0RGF5Jywg
J2dldEZ1bGxZZWFyJywgJ2dldEhvdXJzJywgJ2dldE1pbGxpc2Vjb25kcycsICdnZXRNaW51dGVz
JywgJ2dldE1vbnRoJywgJ2dldFNlY29uZHMnLCAnZ2V0VGltZScsICdnZXRUaW1lem9uZU9mZnNl
dCcsICdnZXRVVENEYXRlJywgJ2dldFVUQ0RheScsICdnZXRVVENGdWxsWWVhcicsICdnZXRVVENI
b3VycycsICdnZXRVVENNaWxsaXNlY29uZHMnLCAnZ2V0VVRDTWludXRlcycsICdnZXRVVENNb250
aCcsICdnZXRVVENTZWNvbmRzJywgJ2dldFllYXInLCAnc2V0RGF0ZScsICdzZXRGdWxsWWVhcics
ICdzZXRIb3VycycsICdzZXRNaWxsaXNlY29uZHMnLCAnc2V0TWludXRlcycsICdzZXRNb250aCcs
ICdzZXRTZWNvbmRzJywgJ3NldFRpbWUnLCAnc2V0VVRDRGF0ZScsICdzZXRVVENGdWxsWWVhcics
ICdzZXRVVENIb3VycycsICdzZXRVVENNaWxsaXNlY29uZHMnLCAnc2V0VVRDTWludXRlcycsICdz
ZXRVVENNb250aCcsICdzZXRVVENTZWNvbmRzJywgJ3NldFllYXInLCAndG9EYXRlU3RyaW5nJywg
J3RvR01UU3RyaW5nJywgJ3RvSVNPU3RyaW5nJywgJ3RvSlNPTicsICd0b0xvY2FsZURhdGVTdHJp
bmcnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9Mb2NhbGVUaW1lU3RyaW5nJywgJ3RvU3RyaW5nJywg
J3RvVGltZVN0cmluZycsICd0b1VUQ1N0cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhSZWdFeHApIGlzIFsnJCYnLCAiJCciLCAnJConLCAnJCsnLCAnJDEn
LCAnJDInLCAnJDMnLCAnJDQnLCAnJDUnLCAnJDYnLCAnJDcnLCAnJDgnLCAnJDknLCAnJF8nLCAn
JGAnLCAnaW5wdXQnLCAnbGFzdE1hdGNoJywgJ2xhc3RQYXJlbicsICdsZWZ0Q29udGV4dCcsICds
ZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JpZ2h0Q29udGV4dCdd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoUmVnRXhwLnByb3RvdHlwZSkgaXMgWydj
b21waWxlJywgJ2NvbnN0cnVjdG9yJywgJ2V4ZWMnLCAndGVzdCcsICd0b1N0cmluZyddCitQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IpIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAn
cHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJvci5wcm90b3R5
cGUpIGlzIFsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10KK1BB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhNYXRoKSBpcyBbJ0UnLCAnTE4xMCcsICdMTjIn
LCAnTE9HMTBFJywgJ0xPRzJFJywgJ1BJJywgJ1NRUlQxXzInLCAnU1FSVDInLCAnYWJzJywgJ2Fj
b3MnLCAnYXNpbicsICdhdGFuJywgJ2F0YW4yJywgJ2NlaWwnLCAnY29zJywgJ2V4cCcsICdmbG9v
cicsICdsb2cnLCAnbWF4JywgJ21pbicsICdwb3cnLCAncmFuZG9tJywgJ3JvdW5kJywgJ3Npbics
ICdzcXJ0JywgJ3RhbiddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoSlNPTikgaXMg
WydwYXJzZScsICdzdHJpbmdpZnknXQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2Yo
J05hTicpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdJ
bmZpbml0eScpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9m
KCd1bmRlZmluZWQnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZigncGFyc2VJbnQnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZigncGFyc2VGbG9hdCcpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlO
YW1lcy5pbmRleE9mKCdpc05hTicpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlO
YW1lcy5pbmRleE9mKCdpc0Zpbml0ZScpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVy
dHlOYW1lcy5pbmRleE9mKCdlc2NhcGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3Bl
cnR5TmFtZXMuaW5kZXhPZigndW5lc2NhcGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFBy
b3BlcnR5TmFtZXMuaW5kZXhPZignZGVjb2RlVVJJJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9i
YWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2RlY29kZVVSSUNvbXBvbmVudCcpICE9IC0xIGlzIHRy
dWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdlbmNvZGVVUkknKSAhPSAtMSBp
cyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZW5jb2RlVVJJQ29tcG9u
ZW50JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ09i
amVjdCcpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdG
dW5jdGlvbicpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9m
KCdBcnJheScpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9m
KCdTdHJpbmcnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhP
ZignQm9vbGVhbicpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRl
eE9mKCdOdW1iZXInKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZignRGF0ZScpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRl
eE9mKCdSZWdFeHAnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZignRXJyb3InKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZignTWF0aCcpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRl
eE9mKCdKU09OJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iYzFhYzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9PYmpl
Y3QtZ2V0T3duUHJvcGVydHlOYW1lcy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzdmMDI0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5
TmFtZXMuanMKQEAgLTAsMCArMSwxMTQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRvIGVuc3VyZSBj
b3JyZWN0IGJlaGF2aW91ciBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyIpOworCitmdW5j
dGlvbiBhcmd1bWVudHNPYmplY3QoKSB7IHJldHVybiBhcmd1bWVudHM7IH07CisKK3ZhciBleHBl
Y3RlZFByb3BlcnR5TmFtZXNTZXQgPSB7CisgICAgInt9IjogIltdIiwKKyAgICAie2E6bnVsbH0i
OiAiWydhJ10iLAorICAgICJ7YTpudWxsLCBiOm51bGx9IjogIlsnYScsICdiJ10iLAorICAgICJ7
YjpudWxsLCBhOm51bGx9IjogIlsnYScsICdiJ10iLAorICAgICJ7X19wcm90b19fOnthOm51bGx9
fSI6ICJbXSIsCisgICAgIntfX3Byb3RvX186WzEsMiwzXX0iOiAiW10iLAorICAgICJPYmplY3Qu
Y3JlYXRlKHt9LCB7ICdhJzogeyAndmFsdWUnOiAxLCAnZW51bWVyYWJsZSc6IGZhbHNlIH0gfSki
OiAiWydhJ10iLAorICAgICJPYmplY3QuY3JlYXRlKFsxLDIsM10sIHsgJ2EnOiB7ICd2YWx1ZSc6
IDEsICdlbnVtZXJhYmxlJzogZmFsc2UgfSB9KSI6ICJbJ2EnXSIsCisvLyBGdW5jdGlvbiBvYmpl
Y3RzCisgICAgIm5ldyBGdW5jdGlvbigpIjogIlsnYXJndW1lbnRzJywgJ2NhbGxlZScsICdjYWxs
ZXInLCAnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4PW5ldyBGdW5j
dGlvbigpO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2FyZ3VtZW50cycs
ICdjYWxsZWUnLCAnY2FsbGVyJywgJ2xlbmd0aCcsICduYW1lJ10iLAorLy8gU3RyaW5nIG9iamVj
dHMKKyAgICAibmV3IFN0cmluZygnJykiOiAiWydsZW5ndGgnXSIsCisgICAgIm5ldyBTdHJpbmco
J2EnKSI6ICJbJzAnLCAnbGVuZ3RoJ10iLAorICAgICJuZXcgU3RyaW5nKCdhYmMnKSI6ICJbJzAn
LCAnMScsICcyJywgJ2xlbmd0aCddIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFN0cmlu
ZygnJyk7eC5fX3Byb3RvX189WzEsMiwzXTtyZXR1cm4geDt9KSgpIjogIlsnbGVuZ3RoJ10iLAor
Ly8gQXJyYXkgb2JqZWN0cworICAgICJbXSI6ICJbJ2xlbmd0aCddIiwKKyAgICAiW251bGxdIjog
IlsnMCcsICdsZW5ndGgnXSIsCisgICAgIltudWxsLG51bGxdIjogIlsnMCcsJzEnLCAnbGVuZ3Ro
J10iLAorICAgICJbbnVsbCxudWxsLCwsLG51bGxdIjogIlsnMCcsJzEnLCc1JywgJ2xlbmd0aCdd
IiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9W107eC5fX3Byb3RvX189WzEsMiwzXTtyZXR1cm4g
eDt9KSgpIjogIlsnbGVuZ3RoJ10iLAorLy8gRGF0ZSBvYmplY3RzCisgICAgIm5ldyBEYXRlKCki
OiAiW10iLAorICAgICIoZnVuY3Rpb24oKXt2YXIgeD1uZXcgRGF0ZSgpO3guX19wcm90b19fPVsx
LDIsM107cmV0dXJuIHg7fSkoKSI6ICJbXSIsCisvLyBSZWdFeHAgb2JqZWN0cworICAgICJuZXcg
UmVnRXhwKCdmb28nKSI6ICJbJ2dsb2JhbCcsICdpZ25vcmVDYXNlJywgJ2xhc3RJbmRleCcsICdt
dWx0aWxpbmUnLCAnc291cmNlJ10iLAorICAgICIoZnVuY3Rpb24oKXt2YXIgeD1uZXcgUmVnRXhw
KCk7eC5fX3Byb3RvX189WzEsMiwzXTtyZXR1cm4geDt9KSgpIjogIlsnZ2xvYmFsJywgJ2lnbm9y
ZUNhc2UnLCAnbGFzdEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXSIsCisvLyBBcmd1bWVu
dHMgb2JqZWN0cworICAgICAiYXJndW1lbnRzT2JqZWN0KCkiOiAiWydjYWxsZWUnLCAnbGVuZ3Ro
J10iLAorICAgICAiYXJndW1lbnRzT2JqZWN0KDEpIjogIlsnMCcsICdjYWxsZWUnLCAnbGVuZ3Ro
J10iLAorICAgICAiYXJndW1lbnRzT2JqZWN0KDEsMiwzKSI6ICJbJzAnLCAnMScsICcyJywgJ2Nh
bGxlZScsICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe2FyZ3VtZW50cy5fX3Byb3RvX189
WzEsMiwzXTtyZXR1cm4gYXJndW1lbnRzO30pKCkiOiAiWydjYWxsZWUnLCAnbGVuZ3RoJ10iLAor
Ly8gQnVpbHQtaW4gRUNNQSBmdW5jdGlvbnMKKyAgICAicGFyc2VJbnQiOiAiWydsZW5ndGgnLCAn
bmFtZSddIiwKKyAgICAicGFyc2VGbG9hdCI6ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICJp
c05hTiI6ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICJpc0Zpbml0ZSI6ICJbJ2xlbmd0aCcs
ICduYW1lJ10iLAorICAgICJlc2NhcGUiOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAidW5l
c2NhcGUiOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiZGVjb2RlVVJJIjogIlsnbGVuZ3Ro
JywgJ25hbWUnXSIsCisgICAgImRlY29kZVVSSUNvbXBvbmVudCI6ICJbJ2xlbmd0aCcsICduYW1l
J10iLAorICAgICJlbmNvZGVVUkkiOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiZW5jb2Rl
VVJJQ29tcG9uZW50IjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisvLyBCdWlsdC1pbiBFQ01BIG9i
amVjdHMKKyAgICAiT2JqZWN0IjogIlsnY3JlYXRlJywgJ2RlZmluZVByb3BlcnRpZXMnLCAnZGVm
aW5lUHJvcGVydHknLCAnZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJywgJ2dldE93blByb3BlcnR5
TmFtZXMnLCAnZ2V0UHJvdG90eXBlT2YnLCAna2V5cycsICdsZW5ndGgnLCAnbmFtZScsICdwcm90
b3R5cGUnXSIsCisgICAgIk9iamVjdC5wcm90b3R5cGUiOiAiWydfX2RlZmluZUdldHRlcl9fJywg
J19fZGVmaW5lU2V0dGVyX18nLCAnX19sb29rdXBHZXR0ZXJfXycsICdfX2xvb2t1cFNldHRlcl9f
JywgJ2NvbnN0cnVjdG9yJywgJ2hhc093blByb3BlcnR5JywgJ2lzUHJvdG90eXBlT2YnLCAncHJv
cGVydHlJc0VudW1lcmFibGUnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVP
ZiddIiwKKyAgICAiRnVuY3Rpb24iOiAiWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIs
CisgICAgIkZ1bmN0aW9uLnByb3RvdHlwZSI6ICJbJ2FwcGx5JywgJ2NhbGwnLCAnY29uc3RydWN0
b3InLCAnbGVuZ3RoJywgJ25hbWUnLCAndG9TdHJpbmcnXSIsCisgICAgIkFycmF5IjogIlsnaXNB
cnJheScsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCisgICAgIkFycmF5LnByb3Rv
dHlwZSI6ICJbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdldmVyeScsICdmaWx0ZXInLCAnZm9y
RWFjaCcsICdpbmRleE9mJywgJ2pvaW4nLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcs
ICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlm
dCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywg
J3RvU3RyaW5nJywgJ3Vuc2hpZnQnXSIsCisgICAgIlN0cmluZyI6ICJbJ2Zyb21DaGFyQ29kZScs
ICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCisgICAgIlN0cmluZy5wcm90b3R5cGUi
OiAiWydhbmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2Rl
QXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250
c2l6ZScsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xp
bmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGlj
ZScsICdzbWFsbCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJp
bmcnLCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3Rv
TG93ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQn
LCAndHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXSIsCisgICAgIkJvb2xlYW4iOiAiWydsZW5ndGgnLCAn
bmFtZScsICdwcm90b3R5cGUnXSIsCisgICAgIkJvb2xlYW4ucHJvdG90eXBlIjogIlsnY29uc3Ry
dWN0b3InLCAndG9TdHJpbmcnLCAndmFsdWVPZiddIiwKKyAgICAiTnVtYmVyIjogIlsnTUFYX1ZB
TFVFJywgJ01JTl9WQUxVRScsICdORUdBVElWRV9JTkZJTklUWScsICdOYU4nLCAnUE9TSVRJVkVf
SU5GSU5JVFknLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJOdW1iZXIu
cHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAndG9FeHBvbmVudGlhbCcsICd0b0ZpeGVkJywg
J3RvTG9jYWxlU3RyaW5nJywgJ3RvUHJlY2lzaW9uJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIs
CisgICAgIkRhdGUiOiAiWydVVEMnLCAnbGVuZ3RoJywgJ25hbWUnLCAnbm93JywgJ3BhcnNlJywg
J3Byb3RvdHlwZSddIiwKKyAgICAiRGF0ZS5wcm90b3R5cGUiOiAiWydjb25zdHJ1Y3RvcicsICdn
ZXREYXRlJywgJ2dldERheScsICdnZXRGdWxsWWVhcicsICdnZXRIb3VycycsICdnZXRNaWxsaXNl
Y29uZHMnLCAnZ2V0TWludXRlcycsICdnZXRNb250aCcsICdnZXRTZWNvbmRzJywgJ2dldFRpbWUn
LCAnZ2V0VGltZXpvbmVPZmZzZXQnLCAnZ2V0VVRDRGF0ZScsICdnZXRVVENEYXknLCAnZ2V0VVRD
RnVsbFllYXInLCAnZ2V0VVRDSG91cnMnLCAnZ2V0VVRDTWlsbGlzZWNvbmRzJywgJ2dldFVUQ01p
bnV0ZXMnLCAnZ2V0VVRDTW9udGgnLCAnZ2V0VVRDU2Vjb25kcycsICdnZXRZZWFyJywgJ3NldERh
dGUnLCAnc2V0RnVsbFllYXInLCAnc2V0SG91cnMnLCAnc2V0TWlsbGlzZWNvbmRzJywgJ3NldE1p
bnV0ZXMnLCAnc2V0TW9udGgnLCAnc2V0U2Vjb25kcycsICdzZXRUaW1lJywgJ3NldFVUQ0RhdGUn
LCAnc2V0VVRDRnVsbFllYXInLCAnc2V0VVRDSG91cnMnLCAnc2V0VVRDTWlsbGlzZWNvbmRzJywg
J3NldFVUQ01pbnV0ZXMnLCAnc2V0VVRDTW9udGgnLCAnc2V0VVRDU2Vjb25kcycsICdzZXRZZWFy
JywgJ3RvRGF0ZVN0cmluZycsICd0b0dNVFN0cmluZycsICd0b0lTT1N0cmluZycsICd0b0pTT04n
LCAndG9Mb2NhbGVEYXRlU3RyaW5nJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvTG9jYWxlVGltZVN0
cmluZycsICd0b1N0cmluZycsICd0b1RpbWVTdHJpbmcnLCAndG9VVENTdHJpbmcnLCAndmFsdWVP
ZiddIiwKKyAgICAiUmVnRXhwIjogIlsnJCYnLCBcIiQnXCIsICckKicsICckKycsICckMScsICck
MicsICckMycsICckNCcsICckNScsICckNicsICckNycsICckOCcsICckOScsICckXycsICckYCcs
ICdpbnB1dCcsICdsYXN0TWF0Y2gnLCAnbGFzdFBhcmVuJywgJ2xlZnRDb250ZXh0JywgJ2xlbmd0
aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmlnaHRDb250ZXh0J10iLAor
ICAgICJSZWdFeHAucHJvdG90eXBlIjogIlsnY29tcGlsZScsICdjb25zdHJ1Y3RvcicsICdleGVj
JywgJ3Rlc3QnLCAndG9TdHJpbmcnXSIsCisgICAgIkVycm9yIjogIlsnbGVuZ3RoJywgJ25hbWUn
LCAncHJvdG90eXBlJ10iLAorICAgICJFcnJvci5wcm90b3R5cGUiOiAiWydjb25zdHJ1Y3Rvcics
ICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXSIsCisgICAgIk1hdGgiOiAiWydFJywgJ0xO
MTAnLCAnTE4yJywgJ0xPRzEwRScsICdMT0cyRScsICdQSScsICdTUVJUMV8yJywgJ1NRUlQyJywg
J2FicycsICdhY29zJywgJ2FzaW4nLCAnYXRhbicsICdhdGFuMicsICdjZWlsJywgJ2NvcycsICdl
eHAnLCAnZmxvb3InLCAnbG9nJywgJ21heCcsICdtaW4nLCAncG93JywgJ3JhbmRvbScsICdyb3Vu
ZCcsICdzaW4nLCAnc3FydCcsICd0YW4nXSIsCisgICAgIkpTT04iOiAiWydwYXJzZScsICdzdHJp
bmdpZnknXSIKK307CisKK2Z1bmN0aW9uIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMob2JqKQor
eworICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLnNvcnQoKTsKK30K
KworZm9yICh2YXIgZXhwciBpbiBleHBlY3RlZFByb3BlcnR5TmFtZXNTZXQpCisgICAgc2hvdWxk
QmUoImdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoIiArIGV4cHIgKyAiKSIsIGV4cGVjdGVkUHJv
cGVydHlOYW1lc1NldFtleHByXSk7CisKKy8vIEdsb2JhbCBPYmplY3QKKy8vIE9ubHkgY2hlY2sg
Zm9yIEVDTUEgcHJvcGVydGllcyBoZXJlCit2YXIgZ2xvYmFsUHJvcGVydHlOYW1lcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpOwordmFyIGV4cGVjdGVkR2xvYmFsUHJvcGVydHlO
YW1lcyA9IFsKKyAgICAiTmFOIiwKKyAgICAiSW5maW5pdHkiLAorICAgICJ1bmRlZmluZWQiLAor
ICAgICJwYXJzZUludCIsCisgICAgInBhcnNlRmxvYXQiLAorICAgICJpc05hTiIsCisgICAgImlz
RmluaXRlIiwKKyAgICAiZXNjYXBlIiwKKyAgICAidW5lc2NhcGUiLAorICAgICJkZWNvZGVVUkki
LAorICAgICJkZWNvZGVVUklDb21wb25lbnQiLAorICAgICJlbmNvZGVVUkkiLAorICAgICJlbmNv
ZGVVUklDb21wb25lbnQiLAorICAgICJPYmplY3QiLAorICAgICJGdW5jdGlvbiIsCisgICAgIkFy
cmF5IiwKKyAgICAiU3RyaW5nIiwKKyAgICAiQm9vbGVhbiIsCisgICAgIk51bWJlciIsCisgICAg
IkRhdGUiLAorICAgICJSZWdFeHAiLAorICAgICJFcnJvciIsCisgICAgIk1hdGgiLAorICAgICJK
U09OIgorXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZEdsb2JhbFByb3BlcnR5TmFt
ZXMubGVuZ3RoOyArK2kpCisgICAgc2hvdWxkQmVUcnVlKCJnbG9iYWxQcm9wZXJ0eU5hbWVzLmlu
ZGV4T2YoJyIgKyBleHBlY3RlZEdsb2JhbFByb3BlcnR5TmFtZXNbaV0gKyAiJykgIT0gLTEiKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMjZiNDM2NS4uZTk3MmYzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MTQsMTMgKzE0LDIyIEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlw
dCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwCiAKIENPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRo
IFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1l
LWlmcmFtZS1mb3ItZW51bWVyYXRpb24tdGVzdC5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlv
bi5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBm
cmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWlmcmFtZS1mb3ItZW51bWVyYXRpb24tdGVzdC5odG1sIGZyb20gZnJhbWUgd2l0
aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1l
bnVtZXJhdGlvbi5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRv
IGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZW51bWVyYXRpb24tdGVzdC5odG1sIGZyb20g
ZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1lbnVtZXJhdGlvbi5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBh
dHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc2Vj
dXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZW51bWVyYXRpb24tdGVzdC5o
dG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCisKIFRoaXMgdGVzdHMgdGhhdCB2YXJpYWJsZSBuYW1lcyBjYW4n
dCBiZSBlbnVtZXJhdGVkIGNyb3NzIGRvbWFpbiAoc2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2Mzg3KQogCiAKIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBl
bnVtZXJhdGluZyB0aGUgd2luZG93IG9iamVjdCB3YXMgZGVuaWVkLgogUEFTUzogQ3Jvc3MgZnJh
bWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRl
bmllZC4KK1BBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSBu
YW1lcyBvZiB0aGUgd2luZG93IG9iamVjdCB3YXMgZGVuaWVkLgogUEFTUzogQ3Jvc3MgZnJhbWUg
YWNjZXNzIGJ5IGVudW1lcmF0aW5nIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVuaWVkLgogUEFT
UzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIEhpc3Rvcnkg
b2JqZWN0IHdhcyBkZW5pZWQuCitQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0
aGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIEhpc3Rvcnkgb2JqZWN0IHdhcyBkZW5pZWQuCiBQQVNT
OiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZW51bWVyYXRpbmcgdGhlIExvY2F0aW9uIG9iamVjdCB3
YXMgZGVuaWVkLgogUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMg
b2YgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLgorUEFTUzogQ3Jvc3MgZnJhbWUgYWNj
ZXNzIGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qg
d2FzIGRlbmllZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwKaW5kZXgg
NzA3ZmZmNS4uNDliZmNmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi5odG1s
CkBAIC01Miw2ICs1MiwxMyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgbG9nKCJQQVNT
OiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBvZiB0aGUgd2luZG93IG9i
amVjdCB3YXMgZGVuaWVkLiIpOwogCisgICAgICAgICAgICB2YXIgYl93aW5Qcm9wZXJ0eU5hbWVz
ID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYl93aW4pOworICAgICAgICAgICAgaWYgKGJf
d2luUHJvcGVydHlOYW1lcy5pbmRleE9mKCJjdXN0b21XaW5kb3dQcm9wZXJ0eSIpICE9IC0xKSB7
CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGlu
ZyB0aGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGFsbG93ZWQuIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9n
KCJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUgcHJvcGVydHkgbmFtZXMg
b2YgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4iKTsKKwogICAgICAgICAgICAgLy8gVGVz
dCBlbnVtZXJhdGluZyB0aGUgSGlzdG9yeSBvYmplY3QKICAgICAgICAgICAgIHZhciBiX3dpbl9o
aXN0b3J5ID0gYl93aW4uaGlzdG9yeTsKICAgICAgICAgICAgIHRyeSB7CkBAIC03Miw2ICs3OSwx
MyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgbG9nKCJQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmll
ZC4iKTsKIAorICAgICAgICAgICAgdmFyIGJfd2luSGlzdG9yeVByb3BlcnR5TmFtZXMgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiX3dpbl9oaXN0b3J5KTsKKyAgICAgICAgICAgIGlmIChi
X3dpbkhpc3RvcnlQcm9wZXJ0eU5hbWVzLmluZGV4T2YoImN1c3RvbUhpc3RvcnlQcm9wZXJ0eSIp
ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBDcm9zcyBmcmFtZSBhY2Nlc3Mg
YnkgZ2V0dGluZyB0aGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIEhpc3Rvcnkgb2JqZWN0IHdhcyBh
bGxvd2VkLiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3Bl
cnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVuaWVkLiIpOworCiAgICAgICAg
ICAgICAvLyBUZXN0IGVudW1lcmF0aW5nIHRoZSBMb2NhdGlvbiBvYmplY3QKICAgICAgICAgICAg
IHZhciBiX3dpbl9sb2NhdGlvbiA9IGJfd2luLmxvY2F0aW9uOwogICAgICAgICAgICAgdHJ5IHsK
QEAgLTkxLDYgKzEwNSwxMyBAQAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcg
dGhlIGtleXMgb2YgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLiIpOworCisgICAgICAg
ICAgICB2YXIgYl93aW5Mb2NhdGlvblByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlOYW1lcyhiX3dpbl9sb2NhdGlvbik7CisgICAgICAgICAgICBpZiAoYl93aW5Mb2NhdGlvblBy
b3BlcnR5TmFtZXMuaW5kZXhPZigiY3VzdG9tTG9jYXRpb25Qcm9wZXJ0eSIpICE9IC0xKSB7Cisg
ICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0
aGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgYWxsb3dlZC4iKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2co
IlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSBuYW1lcyBv
ZiB0aGUgTG9jYXRpb24gb2JqZWN0IHdhcyBkZW5pZWQuIik7CiAgICAgICAgIH0KICAgICA8L3Nj
cmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzY4Y2Y4Ny4uOGM2Nzk2MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wMS0w
NSAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCBuZXcgYXJndW1lbnQgdG8gcmVpbXBsZW1l
bnRhdGlvbnMgb2YgZ2V0UHJvcGVydHlOYW1lcygpCisgICAgICAgIGFuZCBnZXRPd25Qcm9wZXJ0
eU5hbWVzKCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlO
YW1lcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6
OmdldFByb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1wOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwog
MjAxMC0wMS0wNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKaW5kZXggYjlmNmQzMi4uZjJiZDYzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTQxOSwyMCArNDE5LDIwIEBAIGJvb2wgSlNET01X
aW5kb3c6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3Bl
cnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNET01X
aW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKICAgICAvLyBP
bmx5IGFsbG93IHRoZSB3aW5kb3cgdG8gZW51bWVyYXRlZCBieSBmcmFtZXMgaW4gdGhlIHNhbWUg
b3JpZ2luLgogICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKICAgICAgICAgcmV0dXJu
OwotICAgIEJhc2U6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAg
QmFzZTo6Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51
bWVyYWJsZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKICAg
ICAvLyBPbmx5IGFsbG93IHRoZSB3aW5kb3cgdG8gZW51bWVyYXRlZCBieSBmcmFtZXMgaW4gdGhl
IHNhbWUgb3JpZ2luLgogICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKICAgICAgICAg
cmV0dXJuOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBp
bmNsdWRlTm9uRW51bWVyYWJsZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6OmRlZmluZUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDkxNDFlZS4uMDNiYzc1OSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTQsMTQgKzExNCwxNCBAQCBi
b29sIEpTRE9NV2luZG93U2hlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIHJldHVybiBtX3dpbmRvdy0+ZGVsZXRlUHJvcGVy
dHkoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRQ
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9u
RW51bWVyYWJsZSkKIHsKLSAgICBtX3dpbmRvdy0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzKTsKKyAgICBtX3dpbmRvdy0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0
eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJsZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3dTaGVs
bDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIGJv
b2wgaW5jbHVkZU5vbkVudW1lcmFibGUpCiB7Ci0gICAgbV93aW5kb3ctPmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgbV93aW5kb3ctPmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5jbHVkZU5vbkVudW1lcmFibGUpOwogfQogCiB2
b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRl
eCAyNzAzNmQ0Li44ZTdkYjZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aApAQCAtNzUsOCArNzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJy
YXkmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYs
IGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVB
cnJheSYsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lU2V0dGVyKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmpl
Y3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVh
bCBib29sIGRlZmluZU93blByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91
bGRUaHJvdyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKaW5kZXggMzA3
NjUwMy4uMjhhZTY5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlD
dXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcApA
QCAtMTU0LDEyICsxNTQsMTIgQEAgYm9vbCBKU0hpc3Rvcnk6OmRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiBC
YXNlOjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTSGlz
dG9yeTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0hpc3Rvcnk6OmdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgYm9vbCBp
bmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKICAgICAvLyBPbmx5IGFsbG93IHRoZSBoaXN0b3J5IG9i
amVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYg
KCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAg
cmV0dXJuOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBp
bmNsdWRlTm9uRW51bWVyYWJsZSk7CiB9CiAKIEpTVmFsdWUgSlNIaXN0b3J5OjpwdXNoU3RhdGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggNmM4ZTAzMi4uMDRlMDZjZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC0xNjgsMTIgKzE2OCwxMiBAQCBib29s
IEpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShleGVj
LCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3Zv
aWQgSlNMb2NhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlKQog
ewogICAgIC8vIE9ubHkgYWxsb3cgdGhlIGxvY2F0aW9uIG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5
IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJh
bWUoZXhlYywgaW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6Omdl
dE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3du
UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJsZSk7
CiB9CiAKIHZvaWQgSlNMb2NhdGlvbjo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVh
cmFudGluZWRPYmplY3RXcmFwcGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50
aW5lZE9iamVjdFdyYXBwZXIuY3BwCmluZGV4IGVhMmY3MmYuLjY1NzU1NjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuY3BwCkBAIC0z
MTMsMjAgKzMxMywyMCBAQCBDYWxsVHlwZSBKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0
Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9
CiAKLXZvaWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldFByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmIGFycmF5KQordm9pZCBKU1F1YXJhbnRpbmVkT2Jq
ZWN0V3JhcHBlcjo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgYXJyYXksIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUpCiB7CiAgICAgaWYgKCFhbGxvd3NH
ZXRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3Vud3JhcHBl
ZE9iamVjdC0+Z2V0UHJvcGVydHlOYW1lcyh1bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOwor
ICAgIG1fdW53cmFwcGVkT2JqZWN0LT5nZXRQcm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0
ZSgpLCBhcnJheSwgaW5jbHVkZU5vbkVudW1lcmFibGUpOwogfQogCi12b2lkIEpTUXVhcmFudGlu
ZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiBhcnJheSkKK3ZvaWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmIGFycmF5LCBib29s
IGluY2x1ZGVOb25FbnVtZXJhYmxlKQogewogICAgIGlmICghYWxsb3dzR2V0UHJvcGVydHlOYW1l
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Vud3JhcHBlZE9iamVjdC0+Z2V0T3duUHJv
cGVydHlOYW1lcyh1bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOworICAgIG1fdW53cmFwcGVk
T2JqZWN0LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgpLCBhcnJheSwg
aW5jbHVkZU5vbkVudW1lcmFibGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmgKaW5kZXgg
OWY2MjQ5NS4uMTQxNGMzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJh
bnRpbmVkT2JqZWN0V3JhcHBlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50
aW5lZE9iamVjdFdyYXBwZXIuaApAQCAtNzQsOCArNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUgcHJvdG8pOwogICAgICAgICAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZUFycmF5Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJy
YXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lQXJyYXkmLCBib29sIGluY2x1ZGVOb25FbnVtZXJhYmxlID0gZmFsc2UpOwogCiAgICAgICAg
IHZpcnR1YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW53cmFw
cGVkT2JqZWN0LT5jbGFzc05hbWUoKTsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1
c3RvbS5jcHAKaW5kZXggZTQxNmQzNS4uZTFhOTJmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNT
dG9yYWdlQ3VzdG9tLmNwcApAQCAtNjQsMTMgKzY0LDEzIEBAIGJvb2wgSlNTdG9yYWdlOjpkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
K3ZvaWQgSlNTdG9yYWdlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUp
CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9pbXBsLT5sZW5ndGgoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KElkZW50aWZpZXIoZXhlYywgbV9pbXBsLT5rZXkoaSkpKTsKICAgICAgICAgCi0gICAgQmFzZTo6
Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBCYXNlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIGluY2x1ZGVOb25FbnVtZXJhYmxl
KTsKIH0KIAogYm9vbCBKU1N0b3JhZ2U6OnB1dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
MDAxYzg1OC4uMDZkYWNjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC02NDcsNyArNjQ3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAj
IEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uIGV4aXN0cyBvbiBET01XaW5kb3cKICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUg
PSBmYWxzZSk7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXMifSA9IDE7CiAgICAgfQogCkBAIC02NTYsNyArNjU2LDcgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAKICAgICAjIEN1c3RvbSBnZXRPd25Qcm9wZXJ0eU5hbWVzIGZ1bmN0aW9u
CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldFByb3Bl
cnR5TmFtZXMifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4
R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyIn0pIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lQXJyYXkmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWVBcnJheSYsIGJvb2wgaW5jbHVkZU5vbkVudW1lcmFibGUgPSBmYWxzZSk7XG4iKTsKICAg
ICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMifSA9
IDE7ICAgICAgIAogICAgIH0KIApAQCAtMTUzOCwxMyArMTUzOCwxMyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9KSB7Ci0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcylcbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIGJv
b2wgaW5jbHVkZU5vbkVudW1lcmFibGUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhh
c0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3Vz
dG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNO
dW1lcmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PCR7aW1wbENsYXNzTmFtZX0q
PihpbXBsKCkpLT5sZW5ndGgoKTsgKytpKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBp
KSk7XG4iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgQmFz
ZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTtcbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzLCBpbmNsdWRlTm9uRW51bWVyYWJsZSk7XG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cAppbmRleCBjYjAyN2JmLi5kZTllYTQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAt
NTcsMTMgKzU3LDE2IEBAIEpTVmFsdWUgUnVudGltZUFycmF5OjppbmRleEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wCiAgICAgcmV0dXJuIHRoaXNP
YmotPmdldENvbmNyZXRlQXJyYXkoKS0+dmFsdWVBdChleGVjLCBzbG90LmluZGV4KCkpOwogfQog
Ci12b2lkIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBSdW50aW1lQXJyYXk6Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcywgYm9vbCBpbmNsdWRlTm9uRW51bWVyYWJsZSkKIHsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSBnZXRMZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywg
aSkpOwogCi0gICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlO
YW1lcyk7CisgICAgaWYgKGluY2x1ZGVOb25FbnVtZXJhYmxlKQorICAgICAgICBwcm9wZXJ0eU5h
bWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKKworICAgIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIGluY2x1ZGVOb25FbnVtZXJh
YmxlKTsKIH0KIAogYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDk5NDI1ZWUuLjQwNDk3MDEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVi
bGljIEpTT2JqZWN0IHsKIHB1YmxpYzoKICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgQmlu
ZGluZ3M6OkFycmF5Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgYm9vbCBpbmNsdWRl
Tm9uRW51bWVyYWJsZSA9IGZhbHNlKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgdW5zaWduZWQsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA5NTgzZmIyLi42YTlkZTJiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCkBAIC0zMDIsNyArMzAyLDcgQEAgQ29uc3RydWN0VHlwZSBSdW50
aW1lT2JqZWN0SW1wOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCiAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi12b2lkIFJ1bnRpbWVPYmpl
Y3RJbXA6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgUnVudGltZU9iamVjdEltcDo6Z2V0UHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBib29s
KQogewogICAgIGlmICghbV9pbnN0YW5jZSkgewogICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NF
cnJvcihleGVjKTsKQEAgLTMxNiw5ICszMTYsOSBAQCB2b2lkIFJ1bnRpbWVPYmplY3RJbXA6Omdl
dFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcAog
ICAgIGluc3RhbmNlLT5lbmQoKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0SW1wOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCit2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgYm9vbCBpbmNsdWRl
Tm9uRW51bWVyYWJsZSkKIHsKLSAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMpOworICAgIGdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgaW5j
bHVkZU5vbkVudW1lcmFibGUpOwogfQogCiBKU09iamVjdCogUnVudGltZU9iamVjdEltcDo6dGhy
b3dJbnZhbGlkQWNjZXNzRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmgKaW5kZXggMzkxZTA3OC4uMGJmYjk2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00
NCw4ICs0NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENh
bGxEYXRhJik7CiAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29u
c3RydWN0RGF0YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgYm9vbCBp
bmNsdWRlTm9uRW51bWVyYWJsZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIGJvb2wgaW5jbHVkZU5v
bkVudW1lcmFibGUgPSBmYWxzZSk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAo=
</data>
<flag name="review"
          id="28078"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45959</attachid>
            <date>2010-01-06 04:30:34 -0800</date>
            <delta_ts>2010-01-12 02:00:23 -0800</delta_ts>
            <desc>Revised patch (bool --&gt; enum argument)</desc>
            <filename>ObjectDotGetOwnPropertyNames2.diff</filename>
            <type>text/plain</type>
            <size>77128</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IGQxOTg5MGEuLmUxM2RiZDIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90byk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAog
ICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHZpcnR1
YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGYxNDk0ZTIuLjQwMDBmNjMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApA
QCAtMzgwLDcgKzM4MCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Y2FsbChF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdGlvbk9iamVjdCwKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIEJhc2U+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSkKIHsKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAg
IEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsKQEAgLTM5Nyw3ICszOTcsNyBAQCB2
b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcgogICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHN0
YXRpY1ZhbHVlcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICAgICAg
VVN0cmluZzo6UmVwKiBuYW1lID0gaXQtPmZpcnN0LmdldCgpOwogICAgICAgICAgICAgICAgIFN0
YXRpY1ZhbHVlRW50cnkqIGVudHJ5ID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgICAgICBpZiAo
ZW50cnktPmdldFByb3BlcnR5ICYmICEoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAgICBpZiAoZW50cnktPmdldFByb3BlcnR5
ICYmICghKGVudHJ5LT5hdHRyaWJ1dGVzICYga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSkg
fHwgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtNDA4LDEzICs0MDgsMTMgQEAgdm9pZCBKU0NhbGxiYWNrT2Jq
ZWN0PEJhc2U+OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lQXIKICAgICAgICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSBzdGF0aWNGdW5jdGlvbnMtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgICAgIFVTdHJpbmc6OlJlcCog
bmFtZSA9IGl0LT5maXJzdC5nZXQoKTsKICAgICAgICAgICAgICAgICBTdGF0aWNGdW5jdGlvbkVu
dHJ5KiBlbnRyeSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICAgICAgaWYgKCEoZW50cnktPmF0
dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAg
ICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0p
IHx8IChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBCYXNlPgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IGFjZDViMGEuLjJjYzJlZjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBA
QAorMjAxMC0wMS0wNiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVt
ZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCBhbiBleHRyYSBhcmd1
bWVudCB0byBnZXRQcm9wZXJ0eU5hbWVzKCkgYW5kIGdldE93blByb3BlcnR5TmFtZXMoKQorICAg
ICAgICAoYW5kIGFsbCByZWltcGxlbWVudGF0aW9ucyB0aGVyZW9mKSB0aGF0IGluZGljYXRlcyB3
aGV0aGVyIG5vbi1lbnVtZXJhYmxlCisgICAgICAgIHByb3BlcnRpZXMgc2hvdWxkIGJlIGFkZGVk
LgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OmdldE93blByb3BlcnR5
TmFtZXMpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgor
ICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAq
IHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJh
eS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpnZXRDbGFzc1Byb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5jcHA6IFJlbmFtZSBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcygpIHRvIGdldFBy
b3BlcnR5TmFtZXMoKSwgd2hpY2ggdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQuCisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6KToKKwogMjAwOS0xMi0yNSBQYXRyaWNrIEdhbnN0ZXJl
ciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDRhODdlNGUuLmRiZDFiYmIgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBfX1pOM0pTQzEyU21h
bGxTdHJpbmdzMjdjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRh
RWgKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xv
dEUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3du
UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKK19f
Wk4zSlNDMTJTdHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVF
Uk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzEy
U3RyaW5nT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxMlN0cmlu
Z09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVF
Uk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDRpbmZvRQpAQCAt
MTU3LDcgKzE1Nyw3IEBAIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uNG5hbWVFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xMkpTR2xvYmFsRGF0YUVO
M1dURjE3Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNfMTBJZGVudGlmaWVy
RQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNHN5bWJv
bFRhYmxlR2V0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9f
Wk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3Qx
OWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJy
YXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzE2dG9VSW50MzJTbG93Q2FzZUVkUmIK
IF9fWk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9f
Wk4zSlNDMTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE5TXzExVVN0cmluZ0ltcGxFCkBAIC0yNDks
NyArMjQ5LDcgQEAgX19aTjNKU0M4SlNPYmplY3QxMm1hcmtDaGlsZHJlbkVSTlNfOU1hcmtTdGFj
a0UKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4
ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKLV9fWk4zSlND
OEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5
TmFtZUFycmF5RQorX19aTjNKU0M4SlNPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVj
U3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pO
M0pTQzhKU09iamVjdDE3Y3JlYXRlSW5oZXJpdG9ySURFdgogX19aTjNKU0M4SlNPYmplY3QxN2Rl
ZmluZU93blByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFBy
b3BlcnR5RGVzY3JpcHRvckViCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0RGlyZWN0RnVuY3Rpb25F
UE5TXzlFeGVjU3RhdGVFUE5TXzE2SW50ZXJuYWxGdW5jdGlvbkVqCkBAIC0yNTgsNyArMjU4LDcg
QEAgX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHUKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0
cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3Qx
OGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQog
X19aTjNKU0M4SlNPYmplY3QxOGdldFByaW1pdGl2ZU51bWJlckVQTlNfOUV4ZWNTdGF0ZUVSZFJO
U183SlNWYWx1ZUUKLV9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185
RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0M4SlNPYmplY3QxOWdl
dE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlF
TlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNj
cmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVz
Y3JpcHRvckUKIF9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18x
MlByb3BlcnR5U2xvdEVQTlNfN0pTVmFsdWVFICAKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZUVtbQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5kZWYKaW5kZXggZWVlMmM1ZC4uYzA5YzhhMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgor
KysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCkBAIC0xMzgsOSArMTM4LDkgQEAgRVhQT1JUUwogICAgID9nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFC
VklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JASlNTdHJpbmdASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlm
aWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlOYW1l
c0BKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAy
QEBaCi0gICAgP2dldE93blByb3BlcnR5TmFtZXNASlNWYXJpYWJsZU9iamVjdEBKU0NAQFVBRVhQ
QVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCi0gICAgP2dldE93blByb3Bl
cnR5TmFtZXNAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5
TmFtZUFycmF5QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFVB
RVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2Rl
QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVA
MkBAWgorICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQFN0cmluZ09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoK
ICAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJA
QUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldE93blByb3BlcnR5
U2xvdEBKU0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBA
WgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0
ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgpAQCAtMTUyLDcgKzE1Miw3IEBAIEVYUE9SVFMKICAg
ICA/Z2V0UHJpbWl0aXZlTnVtYmVyQEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBB
QU5BQVZKU1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJpbWl0aXZlTnVtYmVyQEpTU3RyaW5nQEpTQ0BA
RUFFX05QQVZFeGVjU3RhdGVAMkBBQU5BQVZKU1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJvcGVydHlE
ZXNjcmlwdG9yQEpTT2JqZWN0QEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVy
QDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0UHJvcGVydHlOYW1lc0BKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCisg
ICAgP2dldFByb3BlcnR5TmFtZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFW
UHJvcGVydHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldFNsaWNl
QEFyZ0xpc3RASlNDQEBRQkVYSEFBVjEyQEBaCiAgICAgP2dldFN0cmluZ0BKU0NlbGxASlNDQEBR
QkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/Z2V0U3RyaW5nQEpTQ2VsbEBK
U0NAQFFCRV9OUEFWRXhlY1N0YXRlQDJAQUFWVVN0cmluZ0AyQEBaCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBkNDdkYjViLi4wNDQ0ZDIz
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAK
QEAgLTcxLDkgKzcxLDkgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICByZXR1cm4gbV9h
Y3RpdmF0aW9uLT5kZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBEZWJ1Z2dlckFjdGl2YXRp
b246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV9hY3RpdmF0
aW9uLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIG1fYWN0aXZh
dGlvbi0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAog
Ym9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uaAppbmRleCAzNzNlNjJkLi4zNTRmY2I4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVH
ZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVj
dCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRleCA4NmE4ZjBhLi5iYjMwZTNiIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0yMDQsNiArMjA0LDE5IEBAIGJvb2wg
QXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAordm9pZCBBcmd1
bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCit7CisgICAgaWYgKG1v
ZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykgeworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZC0+bnVtQXJndW1lbnRzOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZC0+
ZGVsZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkKKyAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6OmZyb20oaSkp
KTsKKyAgICAgICAgfQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY2FsbGVlKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlO
YW1lcygpLmxlbmd0aCk7CisgICAgfQorICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworfQorCiB2b2lkIEFyZ3VtZW50czo6cHV0KEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIGlmIChpIDwgZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVsZXRlZEFy
Z3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCmluZGV4IDliNjc0YTIuLjc4MzA0NGQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaApAQCAtOTYsNiArOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGll
cyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHko
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBhYmU1MDM4Li5kZTI0ZjRhIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC01MCw2ICs1
MCw3IEBACiAgICAgbWFjcm8oZ2V0KSBcCiAgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKICAg
ICBtYWNybyhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9w
ZXJ0eU5hbWVzKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHkpIFwKICAgICBtYWNybyhpZ25v
cmVDYXNlKSBcCiAgICAgbWFjcm8oaW5kZXgpIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CmluZGV4IDBkMmE5YjQuLjRkYmRmMzIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApA
QCAtNDU0LDcgKzQ1NCw3IEBAIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FycmF5
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMpCit2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25N
b2RlIG1vZGUpCiB7CiAgICAgLy8gRklYTUU6IEZpbGxpbmcgUHJvcGVydHlOYW1lQXJyYXkgd2l0
aCBhbiBpZGVudGlmaWVyIGZvciBldmVyeSBpbnRlZ2VyCiAgICAgLy8gaXMgaW5jcmVkaWJseSBp
bmVmZmljaWVudCBmb3IgbGFyZ2UgYXJyYXlzLiBXZSBuZWVkIGEgZGlmZmVyZW50IGFwcHJvYWNo
LApAQCAtNDc0LDcgKzQ3NCwxMCBAQCB2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYQogICAgICAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpdC0+Zmlyc3QpKTsK
ICAgICB9CiAKLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0
eU5hbWVzKTsKKyAgICBpZiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKQorICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKKwor
ICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwogfQogCiBib29sIEpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKHVuc2lnbmVkIG5l
d0xlbmd0aCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggOGMyMjQ1MS4uYzU5YWMwMyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk3LDcgKzk3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7CiAKICAgICAg
ICAgdm9pZCogbGF6eUNyZWF0aW9uRGF0YSgpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcAppbmRleCA1ZTUwMDNiLi4xNGU3MDA5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qnl0ZUFycmF5LmNwcApAQCAtOTYsMTIgKzk2LDEyIEBAIHZvaWQgSlNCeXRlQXJyYXk6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKICAg
ICBzZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KIAotdm9pZCBKU0J5dGVB
cnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBtX3N0b3JhZ2UtPmxl
bmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSk7Ci0gICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCBmZTZlMTI0Li40Njgw
NGQxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysr
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC04Miw3ICs4Miw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlND
OjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJv
cGVydHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICB2aXJ0dWFs
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0luZm87
IH0KICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2RlZmF1bHRJbmZvOwpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMDI0ZTU4Ni4uNTBjNTM2MyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yMDYsNiArMjA2LDE3IEBAIGJvb2wg
SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOCiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICB9CiAgICAgCit2
b2lkIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCit7Cisg
ICAgaWYgKCFpc0hvc3RGdW5jdGlvbigpICYmIChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3Bl
cnRpZXMpKSB7CisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5hcmd1bWVudHMpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuY2FsbGVlKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlO
YW1lcygpLmNhbGxlcik7CisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGgpOworICAgIH0KKyAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4
ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworfQorCiB2b2lkIEpTRnVuY3Rpb246OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChpc0hvc3RGdW5jdGlvbigpKSB7
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IGZjYWM5YWEuLjdjZThlM2YgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC04Miw2ICs4Miw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCBjMzZkYzEwLi5mNDc2NGUyIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTEyMSw3ICsxMjEs
NyBAQCBib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYpCit2
b2lkIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSkKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmIGV4ZWMtPmV4Y2VwdGlvbigpID09IG1fZXhj
ZXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggYTI3
MWM0ZS4uZDVmNDMwYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAg
LTkxLDcgKzkxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICAgICAg
SlNOb3RBbk9iamVjdEVycm9yU3R1YiogbV9leGNlcHRpb247CiAgICAgfTsKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKaW5kZXggZWQ5ZmRjMi4uZDk1MDBhYSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNPYmplY3QpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQg
Z2V0RW51bWVyYWJsZVByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCitzdGF0aWMg
aW5saW5lIHZvaWQgZ2V0Q2xhc3NQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBBZGQgcHJvcGVydGllcyBmcm9tIHRoZSBz
dGF0aWMgaGFzaHRhYmxlcyBvZiBwcm9wZXJ0aWVzCiAgICAgZm9yICg7IGNsYXNzSW5mbzsgY2xh
c3NJbmZvID0gY2xhc3NJbmZvLT5wYXJlbnRDbGFzcykgewpAQCAtNTUsNyArNTUsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZ2V0RW51bWVyYWJsZVByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBDbGFzc0luZm8qCiAgICAgICAgIGludCBoYXNoU2l6ZU1hc2sgPSB0YWJsZS0+Y29t
cGFjdFNpemUgLSAxOwogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPnRh
YmxlOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBoYXNoU2l6ZU1hc2s7ICsraSwgKytl
bnRyeSkgewotICAgICAgICAgICAgaWYgKGVudHJ5LT5rZXkoKSAmJiAhKGVudHJ5LT5hdHRyaWJ1
dGVzKCkgJiBEb250RW51bSkpCisgICAgICAgICAgICBpZiAoZW50cnktPmtleSgpICYmICghKGVu
dHJ5LT5hdHRyaWJ1dGVzKCkgJiBEb250RW51bSkgfHwgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVt
UHJvcGVydGllcykpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGVudHJ5LT5r
ZXkoKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MjUsOSArNDI1LDkgQEAgYm9vbCBKU09iamVj
dDo6Z2V0UHJvcGVydHlTcGVjaWZpY1ZhbHVlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OmdldFBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcykKK3ZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
Ci0gICAgZ2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBnZXRP
d25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogCiAgICAgaWYgKHBy
b3RvdHlwZSgpLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CkBAIC00MzUsMTAgKzQzNSwxMCBA
QCB2b2lkIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZQogICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBhc09i
amVjdCh0aGlzLT5wcm90b3R5cGUoKSk7CiAgICAgd2hpbGUoMSkgewogICAgICAgICBpZiAocHJv
dG90eXBlLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
KCkpIHsKLSAgICAgICAgICAgIHByb3RvdHlwZS0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+Z2V0UHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIHByb3RvdHlwZS0+Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVz
KTsKKyAgICAgICAgcHJvdG90eXBlLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwogICAgICAgICBKU1ZhbHVlIG5leHRQcm90byA9IHByb3RvdHlwZS0+cHJv
dG90eXBlKCk7CiAgICAgICAgIGlmIChuZXh0UHJvdG8uaXNOdWxsKCkpCiAgICAgICAgICAgICBi
cmVhazsKQEAgLTQ0NiwxMCArNDQ2LDEwIEBAIHZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lCiAgICAg
fQogfQogCi12b2lkIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewotICAgIG1fc3RydWN0dXJlLT5nZXRF
bnVtZXJhYmxlUHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzKTsKLSAgICBnZXRFbnVtZXJhYmxl
UHJvcGVydHlOYW1lcyhleGVjLCBjbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lcyk7CisgICAgbV9z
dHJ1Y3R1cmUtPmdldFByb3BlcnR5TmFtZXMocHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgZ2V0
Q2xhc3NQcm9wZXJ0eU5hbWVzKGV4ZWMsIGNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAogYm9vbCBKU09iamVjdDo6dG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYTVkYTI2Ny4uZDkzMWE0YSAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaApAQCAtMTIyLDggKzEyMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBKU1Zh
bHVlIHByb3RvdHlwZVByb3BlcnR5KTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJv
cGVydGllcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRl
RG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgdG9QcmltaXRp
dmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSA9IE5vUHJlZmVyZW5jZSkgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltaXRpdmVOdW1iZXIoRXhlY1N0YXRlKiwg
ZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHZhbHVlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFyaWFibGVPYmplY3QuY3BwCmluZGV4IDNhYTllNjIuLjczNjUwMDEgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcApAQCAtNDIsMTUgKzQyLDE1IEBA
IGJvb2wgSlNWYXJpYWJsZU9iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTVmFyaWFibGVPYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcykKK3ZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBTeW1ib2xUYWJsZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
c3ltYm9sVGFibGUoKS5lbmQoKTsKICAgICBmb3IgKFN5bWJvbFRhYmxlOjpjb25zdF9pdGVyYXRv
ciBpdCA9IHN5bWJvbFRhYmxlKCkuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
IGlmICghKGl0LT5zZWNvbmQuZ2V0QXR0cmlidXRlcygpICYgRG9udEVudW0pKQorICAgICAgICBp
ZiAoIShpdC0+c2Vjb25kLmdldEF0dHJpYnV0ZXMoKSAmIERvbnRFbnVtKSB8fCAobW9kZSA9PSBJ
bmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKSkKICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KElkZW50aWZpZXIoZXhlYywgaXQtPmZpcnN0LmdldCgpKSk7CiAgICAgfQogICAgIAotICAgIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTVmFyaWFibGVPYmplY3Q6OmlzVmFyaWFibGVPYmplY3QoKSBjb25zdApkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAppbmRleCAxNWQ2ZmY1Li43Mzc4
MTZkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3Qu
aAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNDks
NyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRp
ZXMpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFyaWFibGVPYmplY3QoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRHluYW1pY1Njb3BlKCkgY29uc3QgPSAwOwpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA2OTNl
ZmMzLi4wODM4ZWI0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE9iamVj
dENvbnN0cnVjdG9yKTsKIAogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29u
c3QgQXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1
Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFs
dWUsIGNvbnN0IEFyZ0xpc3QmKTsKK3N0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNW
YWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvcktleXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBB
cmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
RGVmaW5lUHJvcGVydHkoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdM
aXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRGVm
aW5lUHJvcGVydGllcyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xp
c3QmKTsKQEAgLTUyLDYgKzUzLDcgQEAgT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXIKICAgICAKICAg
ICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0
aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0UHJvdG90eXBlT2YsIG9iamVjdENvbnN0cnVjdG9yR2V0
UHJvdG90eXBlT2YpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90
b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blBy
b3BlcnR5RGVzY3JpcHRvciwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihl
eGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5j
dGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmdldE93blByb3BlcnR5TmFt
ZXMsIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyksIERvbnRFbnVtKTsKICAg
ICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0
aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAxLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkua2V5cywgb2JqZWN0Q29uc3RydWN0b3JLZXlzKSwgRG9udEVu
dW0pOwogICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChl
eGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1
cmUsIDMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5kZWZpbmVQcm9wZXJ0eSwgb2JqZWN0Q29uc3Ry
dWN0b3JEZWZpbmVQcm9wZXJ0eSksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4
ZWMsIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
ZGVmaW5lUHJvcGVydGllcywgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKSwgRG9u
dEVudW0pOwpAQCAtMTI2LDYgKzEyOCwyMCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLAogfQog
CiAvLyBGSVhNRTogVXNlIHRoZSBlbnVtZXJhdGlvbiBjYWNoZS4KK0pTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgaWYgKCFh
cmdzLmF0KDApLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5
cGVFcnJvciwgIlJlcXVlc3RlZCBwcm9wZXJ0eSBuYW1lcyBvZiBhIHZhbHVlIHRoYXQgaXMgbm90
IGFuIG9iamVjdC4iKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMpOwor
ICAgIGFzT2JqZWN0KGFyZ3MuYXQoMCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3Bl
cnRpZXMsIEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgIEpTQXJyYXkqIG5hbWVzID0g
Y29uc3RydWN0RW1wdHlBcnJheShleGVjKTsKKyAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHBy
b3BlcnRpZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGll
czsgaSsrKQorICAgICAgICBuYW1lcy0+cHVzaChleGVjLCBqc093bmVkU3RyaW5nKGV4ZWMsIHBy
b3BlcnRpZXNbaV0udXN0cmluZygpKSk7CisgICAgcmV0dXJuIG5hbWVzOworfQorCisvLyBGSVhN
RTogVXNlIHRoZSBlbnVtZXJhdGlvbiBjYWNoZS4KIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvcktleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEpTVmFsdWUsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CiAgICAgaWYgKCFhcmdzLmF0KDApLmlzT2JqZWN0KCkpCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCA4MjlmN2Nm
Li4zOGQzY2I0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5
LmgKQEAgLTc5LDExICs3OSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVy
biBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB9
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgYXJyKQorICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBhcnIsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcykKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKGxhenlDcmVhdGlvbkRhdGEoKSkKICAgICAgICAgICAgICAgICBm
aWxsQXJyYXlJbnN0YW5jZShleGVjKTsKLSAgICAgICAgICAgIEpTQXJyYXk6OmdldE93blByb3Bl
cnR5TmFtZXMoZXhlYywgYXJyKTsKKyAgICAgICAgICAgIEpTQXJyYXk6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgYXJyLCBtb2RlKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZmlsbEFy
cmF5SW5zdGFuY2UoRXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAKaW5kZXggZjIzYTIwZC4uZjhlMGU4NyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcApAQCAtODYsMTIgKzg2LDE0IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUp
OwogfQogCi12b2lkIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBTdHJpbmdPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgaW50IHNpemUg
PSBpbnRlcm5hbFZhbHVlKCktPmxlbmd0aCgpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIFVTdHJp
bmc6OmZyb20oaSkpKTsKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgaWYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJv
cGVydGllcykKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDg0ZTFhZDIuLmI3MjBiOTAgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAg
ICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4g
JmluZm87IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEpTX0VYUE9SVERBVEEgQ2xhc3NJbmZvIGlu
Zm87CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggZTRjOWFjMy4uMGJmNTVk
OCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTA0NCw3ICsxMDQ0LDcg
QEAgaW50IGNvbXBhcmVQcm9wZXJ0eU1hcEVudHJ5SW5kaWNlcyhjb25zdCB2b2lkKiBhLCBjb25z
dCB2b2lkKiBiKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFN0cnVjdHVyZTo6Z2V0RW51bWVy
YWJsZVByb3BlcnR5TmFtZXMoUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lk
IFN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1h
cElmTmVjZXNzYXJ5KCk7CiAgICAgaWYgKCFtX3Byb3BlcnR5VGFibGUpCkBAIC0xMDU2LDcgKzEw
NTYsNyBAQCB2b2lkIFN0cnVjdHVyZTo6Z2V0RW51bWVyYWJsZVByb3BlcnR5TmFtZXMoUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCiAgICAgICAgIHVuc2lnbmVkIGVudHJ5Q291bnQg
PSBtX3Byb3BlcnR5VGFibGUtPmtleUNvdW50ICsgbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkU2Vu
dGluZWxDb3VudDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8PSBlbnRyeUNvdW50
OyBrKyspIHsKICAgICAgICAgICAgIEFTU0VSVChtX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVz
IHx8ICEobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10uYXR0cmlidXRlcyAmIERvbnRFbnVt
KSk7Ci0gICAgICAgICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10ua2V5ICYm
ICEobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10uYXR0cmlidXRlcyAmIERvbnRFbnVtKSkg
eworICAgICAgICAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2tdLmtleSAmJiAo
IShtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pIHx8
IChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpKSkgewogICAgICAgICAgICAgICAg
IFByb3BlcnR5TWFwRW50cnkqIHZhbHVlID0gJm1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2td
OwogICAgICAgICAgICAgICAgIGludCBqOwogICAgICAgICAgICAgICAgIGZvciAoaiA9IGkgLSAx
OyBqID49IDAgJiYgYVtqXS0+aW5kZXggPiB2YWx1ZS0+aW5kZXg7IC0taikKQEAgLTEwODMsNyAr
MTA4Myw3IEBAIHZvaWQgU3RydWN0dXJlOjpnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKICAgICBQcm9wZXJ0eU1hcEVudHJ5KiogcCA9
IHNvcnRlZEVudW1lcmFibGVzLmRhdGEoKTsKICAgICB1bnNpZ25lZCBlbnRyeUNvdW50ID0gbV9w
cm9wZXJ0eVRhYmxlLT5rZXlDb3VudCArIG1fcHJvcGVydHlUYWJsZS0+ZGVsZXRlZFNlbnRpbmVs
Q291bnQ7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8PSBlbnRyeUNvdW50OyBpKyspIHsK
LSAgICAgICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2ldLmtleSAmJiAhKG1fcHJv
cGVydHlUYWJsZS0+ZW50cmllcygpW2ldLmF0dHJpYnV0ZXMgJiBEb250RW51bSkpCisgICAgICAg
IGlmIChtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtpXS5rZXkgJiYgKCEobV9wcm9wZXJ0eVRh
YmxlLT5lbnRyaWVzKClbaV0uYXR0cmlidXRlcyAmIERvbnRFbnVtKSB8fCAobW9kZSA9PSBJbmNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKSkpCiAgICAgICAgICAgICAqcCsrID0gJm1fcHJvcGVydHlU
YWJsZS0+ZW50cmllcygpW2ldOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggYzZiN2Q5MS4uYjM0NTA2ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBA
IC01MSw2ICs1MSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBQcm9wZXJ0eU5hbWVB
cnJheTsKICAgICBjbGFzcyBQcm9wZXJ0eU5hbWVBcnJheURhdGE7CiAKKyAgICBlbnVtIEVudW1l
cmF0aW9uTW9kZSB7CisgICAgICAgIEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMsCisgICAgICAg
IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMKKyAgICB9OworCiAgICAgY2xhc3MgU3RydWN0dXJl
IDogcHVibGljIFJlZkNvdW50ZWQ8U3RydWN0dXJlPiB7CiAgICAgcHVibGljOgogICAgICAgICBm
cmllbmQgY2xhc3MgSklUOwpAQCAtMTMxLDcgKzEzNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIHZvaWQgc2V0RW51bWVyYXRpb25DYWNoZShKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBl
bnVtZXJhdGlvbkNhY2hlKTsgLy8gRGVmaW5lZCBpbiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgu
CiAgICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUoKSB7IHJl
dHVybiBtX2VudW1lcmF0aW9uQ2FjaGUuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCBnZXRFbnVtZXJh
YmxlUHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2b2lkIGdldFBy
b3BlcnR5TmFtZXMoUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSk7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvJik7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9KYXZh
U2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggYzEzNjZhMS4uOGU1MmViYyAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEwLTAxLTA2ICBLZW50IEhhbnNlbiAgPGtlbnQuaGFuc2VuQG5v
a2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbRVM1XSBJbXBsZW1lbnQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjQyCisKKyAgICAgICAgQWRk
IG5ldyBhcmd1bWVudCB0byB0aGUgcmVpbXBsZW1lbnRhdGlvbiBvZiBnZXRPd25Qcm9wZXJ0eU5h
bWVzKCkuCisKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAgKFVzZXJPYmpl
Y3RJbXA6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIFVzZXJPYmplY3RJbXAuaDoK
KwogMjAxMC0wMS0wNCAgR2F2aW4gQmFycmFjbG91Z2ggPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNw
cAppbmRleCAxMjVlMzQ5Li5lNDdhMmM0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmNwcAorKysgYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAt
OTQsNyArOTQsNyBAQCBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNT
dGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0CiB9CiAKIAotdm9pZCBVc2VyT2Jq
ZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFVzZXJPYmplY3RJbXA6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlICpleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgSlNVc2VyT2JqZWN0KiBwdHIgPSBHZXRKU1Vz
ZXJPYmplY3QoKTsKICAgICBpZiAocHRyKSB7CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBVc2Vy
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywgUHJvcGVydHlO
YW1lQXJyYXkmIHByb3AKICAgICAgICAgICAgIENGUmVsZWFzZShjZlByb3BlcnR5TmFtZXMpOwog
ICAgICAgICB9CiAgICAgfQotICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OnVzZXJP
YmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmggYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggNmJiNTc5
Mi4uNjU0MWE4NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisr
KyBiL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9u
dEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihF
eGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBBcmdMaXN0ICZhcmdzKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMThhYjQzNS4uN2RiZGRlOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAxLTA2ICBLZW50IEhhbnNlbiAgPGtlbnQuaGFuc2Vu
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbRVM1XSBJbXBsZW1lbnQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjQyCisKKyAgICAgICAg
QWRkIHRlc3RzIGZvciBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvKSwgYm90aCBzdGFuZGFy
ZCB1c2FnZSBhbmQgY3Jvc3Mgb3JpZ2luLgorCisgICAgICAgICogZmFzdC9qcy9PYmplY3QtZ2V0
T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9q
cy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanM6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9u
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1lbnVtZXJhdGlvbi5odG1sOgorCiAyMDEwLTAxLTA1ICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lh
ay4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5
TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9PYmplY3QtZ2V0T3duUHJv
cGVydHlOYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDk4NzhmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTAgQEAKK1Rlc3Qg
dG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVz
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoe30pIGlzIFtdCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoe2E6bnVs
bH0pIGlzIFsnYSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoe2E6bnVsbCwgYjpu
dWxsfSkgaXMgWydhJywgJ2InXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKHtiOm51
bGwsIGE6bnVsbH0pIGlzIFsnYScsICdiJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyh7X19wcm90b19fOnthOm51bGx9fSkgaXMgW10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlO
YW1lcyh7X19wcm90b19fOlsxLDIsM119KSBpcyBbXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKE9iamVjdC5jcmVhdGUoe30sIHsgJ2EnOiB7ICd2YWx1ZSc6IDEsICdlbnVtZXJhYmxl
JzogZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhP
YmplY3QuY3JlYXRlKFsxLDIsM10sIHsgJ2EnOiB7ICd2YWx1ZSc6IDEsICdlbnVtZXJhYmxlJzog
ZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcg
RnVuY3Rpb24oKSkgaXMgWydhcmd1bWVudHMnLCAnY2FsbGVlJywgJ2NhbGxlcicsICdsZW5ndGgn
LCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFy
IHg9bmV3IEZ1bmN0aW9uKCk7eC5fX3Byb3RvX189WzEsMiwzXTtyZXR1cm4geDt9KSgpKSBpcyBb
J2FyZ3VtZW50cycsICdjYWxsZWUnLCAnY2FsbGVyJywgJ2xlbmd0aCcsICduYW1lJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3RyaW5nKCcnKSkgaXMgWydsZW5ndGgnXQor
UEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJpbmcoJ2EnKSkgaXMgWycwJywg
J2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IFN0cmluZygnYWJj
JykpIGlzIFsnMCcsICcxJywgJzInLCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcygoZnVuY3Rpb24oKXt2YXIgeD1uZXcgU3RyaW5nKCcnKTt4Ll9fcHJvdG9fXz1bMSwy
LDNdO3JldHVybiB4O30pKCkpIGlzIFsnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhbXSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KFtudWxsXSkgaXMgWycwJywgJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoW251bGwsbnVsbF0pIGlzIFsnMCcsJzEnLCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhbbnVsbCxudWxsLCwsLG51bGxdKSBpcyBbJzAnLCcxJywnNScsICdsZW5n
dGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKChmdW5jdGlvbigpe3ZhciB4PVtd
O3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMgWydsZW5ndGgnXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBEYXRlKCkpIGlzIFtdCitQQVNTIGdldFNvcnRl
ZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IERhdGUoKTt4Ll9fcHJvdG9f
Xz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFtdCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5
TmFtZXMobmV3IFJlZ0V4cCgnZm9vJykpIGlzIFsnZ2xvYmFsJywgJ2lnbm9yZUNhc2UnLCAnbGFz
dEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKChmdW5jdGlvbigpe3ZhciB4PW5ldyBSZWdFeHAoKTt4Ll9fcHJvdG9fXz1bMSwyLDNd
O3JldHVybiB4O30pKCkpIGlzIFsnZ2xvYmFsJywgJ2lnbm9yZUNhc2UnLCAnbGFzdEluZGV4Jywg
J211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGFy
Z3VtZW50c09iamVjdCgpKSBpcyBbJ2NhbGxlZScsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgxKSkgaXMgWycwJywgJ2NhbGxlZScsICds
ZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgx
LDIsMykpIGlzIFsnMCcsICcxJywgJzInLCAnY2FsbGVlJywgJ2xlbmd0aCddCitQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7YXJndW1lbnRzLl9fcHJvdG9fXz1bMSwy
LDNdO3JldHVybiBhcmd1bWVudHM7fSkoKSkgaXMgWydjYWxsZWUnLCAnbGVuZ3RoJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhwYXJzZUludCkgaXMgWydsZW5ndGgnLCAnbmFtZSdd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMocGFyc2VGbG9hdCkgaXMgWydsZW5ndGgn
LCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoaXNOYU4pIGlzIFsnbGVu
Z3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGlzRmluaXRlKSBp
cyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhlc2Nh
cGUpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KHVuZXNjYXBlKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhkZWNvZGVVUkkpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKGRlY29kZVVSSUNvbXBvbmVudCkgaXMgWydsZW5ndGgnLCAnbmFtZSdd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoZW5jb2RlVVJJKSBpcyBbJ2xlbmd0aCcs
ICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhlbmNvZGVVUklDb21wb25l
bnQpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KE9iamVjdCkgaXMgWydjcmVhdGUnLCAnZGVmaW5lUHJvcGVydGllcycsICdkZWZpbmVQcm9wZXJ0
eScsICdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCAnZ2V0T3duUHJvcGVydHlOYW1lcycsICdn
ZXRQcm90b3R5cGVPZicsICdrZXlzJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCitQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSkgaXMgWydfX2Rl
ZmluZUdldHRlcl9fJywgJ19fZGVmaW5lU2V0dGVyX18nLCAnX19sb29rdXBHZXR0ZXJfXycsICdf
X2xvb2t1cFNldHRlcl9fJywgJ2NvbnN0cnVjdG9yJywgJ2hhc093blByb3BlcnR5JywgJ2lzUHJv
dG90eXBlT2YnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9T
dHJpbmcnLCAndmFsdWVPZiddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRnVuY3Rp
b24pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5cGUpIGlzIFsnYXBwbHknLCAnY2FsbCcsICdj
b25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmluZyddCitQQVNTIGdldFNvcnRl
ZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnaXNBcnJheScsICdsZW5ndGgnLCAnbmFtZScs
ICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEFycmF5LnByb3Rv
dHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZlcnknLCAnZmlsdGVyJywgJ2Zv
ckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdtYXAn
LCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hp
ZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmluZycs
ICd0b1N0cmluZycsICd1bnNoaWZ0J10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhT
dHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSdd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5nLnByb3RvdHlwZSkgaXMgWydh
bmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAn
Y29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250c2l6ZScs
ICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAn
bG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGljZScsICdz
bWFsbCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcnLCAn
c3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93ZXJD
YXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAndHJp
bVJpZ2h0JywgJ3ZhbHVlT2YnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xl
YW4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhCb29sZWFuLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICd0b1N0
cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhOdW1iZXIp
IGlzIFsnTUFYX1ZBTFVFJywgJ01JTl9WQUxVRScsICdORUdBVElWRV9JTkZJTklUWScsICdOYU4n
LCAnUE9TSVRJVkVfSU5GSU5JVFknLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KK1BB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhOdW1iZXIucHJvdG90eXBlKSBpcyBbJ2NvbnN0
cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAndG9GaXhlZCcsICd0b0xvY2FsZVN0cmluZycsICd0
b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhEYXRlKSBpcyBbJ1VUQycsICdsZW5ndGgnLCAnbmFtZScsICdub3cnLCAncGFy
c2UnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhEYXRlLnBy
b3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICdnZXREYXRlJywgJ2dldERheScsICdnZXRGdWxs
WWVhcicsICdnZXRIb3VycycsICdnZXRNaWxsaXNlY29uZHMnLCAnZ2V0TWludXRlcycsICdnZXRN
b250aCcsICdnZXRTZWNvbmRzJywgJ2dldFRpbWUnLCAnZ2V0VGltZXpvbmVPZmZzZXQnLCAnZ2V0
VVRDRGF0ZScsICdnZXRVVENEYXknLCAnZ2V0VVRDRnVsbFllYXInLCAnZ2V0VVRDSG91cnMnLCAn
Z2V0VVRDTWlsbGlzZWNvbmRzJywgJ2dldFVUQ01pbnV0ZXMnLCAnZ2V0VVRDTW9udGgnLCAnZ2V0
VVRDU2Vjb25kcycsICdnZXRZZWFyJywgJ3NldERhdGUnLCAnc2V0RnVsbFllYXInLCAnc2V0SG91
cnMnLCAnc2V0TWlsbGlzZWNvbmRzJywgJ3NldE1pbnV0ZXMnLCAnc2V0TW9udGgnLCAnc2V0U2Vj
b25kcycsICdzZXRUaW1lJywgJ3NldFVUQ0RhdGUnLCAnc2V0VVRDRnVsbFllYXInLCAnc2V0VVRD
SG91cnMnLCAnc2V0VVRDTWlsbGlzZWNvbmRzJywgJ3NldFVUQ01pbnV0ZXMnLCAnc2V0VVRDTW9u
dGgnLCAnc2V0VVRDU2Vjb25kcycsICdzZXRZZWFyJywgJ3RvRGF0ZVN0cmluZycsICd0b0dNVFN0
cmluZycsICd0b0lTT1N0cmluZycsICd0b0pTT04nLCAndG9Mb2NhbGVEYXRlU3RyaW5nJywgJ3Rv
TG9jYWxlU3RyaW5nJywgJ3RvTG9jYWxlVGltZVN0cmluZycsICd0b1N0cmluZycsICd0b1RpbWVT
dHJpbmcnLCAndG9VVENTdHJpbmcnLCAndmFsdWVPZiddCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoUmVnRXhwKSBpcyBbJyQmJywgIiQnIiwgJyQqJywgJyQrJywgJyQxJywgJyQyJywg
JyQzJywgJyQ0JywgJyQ1JywgJyQ2JywgJyQ3JywgJyQ4JywgJyQ5JywgJyRfJywgJyRgJywgJ2lu
cHV0JywgJ2xhc3RNYXRjaCcsICdsYXN0UGFyZW4nLCAnbGVmdENvbnRleHQnLCAnbGVuZ3RoJywg
J211bHRpbGluZScsICduYW1lJywgJ3Byb3RvdHlwZScsICdyaWdodENvbnRleHQnXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFJlZ0V4cC5wcm90b3R5cGUpIGlzIFsnY29tcGlsZScs
ICdjb25zdHJ1Y3RvcicsICdleGVjJywgJ3Rlc3QnLCAndG9TdHJpbmcnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlw
ZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IucHJvdG90eXBlKSBpcyBb
J2NvbnN0cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0cmluZyddCitQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywgJ0xOMTAnLCAnTE4yJywgJ0xPRzEw
RScsICdMT0cyRScsICdQSScsICdTUVJUMV8yJywgJ1NRUlQyJywgJ2FicycsICdhY29zJywgJ2Fz
aW4nLCAnYXRhbicsICdhdGFuMicsICdjZWlsJywgJ2NvcycsICdleHAnLCAnZmxvb3InLCAnbG9n
JywgJ21heCcsICdtaW4nLCAncG93JywgJ3JhbmRvbScsICdyb3VuZCcsICdzaW4nLCAnc3FydCcs
ICd0YW4nXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEpTT04pIGlzIFsncGFyc2Un
LCAnc3RyaW5naWZ5J10KK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdOYU4nKSAh
PSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignSW5maW5pdHkn
KSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZigndW5kZWZp
bmVkJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ3Bh
cnNlSW50JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2Yo
J3BhcnNlRmxvYXQnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZignaXNOYU4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5k
ZXhPZignaXNGaW5pdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVz
LmluZGV4T2YoJ3VuZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5h
bWVzLmluZGV4T2YoJ2RlY29kZVVSSScpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVy
dHlOYW1lcy5pbmRleE9mKCdkZWNvZGVVUklDb21wb25lbnQnKSAhPSAtMSBpcyB0cnVlCitQQVNT
IGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZW5jb2RlVVJJJykgIT0gLTEgaXMgdHJ1ZQor
UEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2VuY29kZVVSSUNvbXBvbmVudCcpICE9
IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdPYmplY3QnKSAh
PSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignRnVuY3Rpb24n
KSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignQXJyYXkn
KSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignU3RyaW5n
JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ0Jvb2xl
YW4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignTnVt
YmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ0Rh
dGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignUmVn
RXhwJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ0Vy
cm9yJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ01h
dGgnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignSlNP
TicpICE9IC0xIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1nZXRPd25Q
cm9wZXJ0eU5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMx
YWM0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0LWdldE93
blByb3BlcnR5TmFtZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3ZjAyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpz
CkBAIC0wLDAgKzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBi
ZWhhdmlvdXIgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMiKTsKKworZnVuY3Rpb24gYXJn
dW1lbnRzT2JqZWN0KCkgeyByZXR1cm4gYXJndW1lbnRzOyB9OworCit2YXIgZXhwZWN0ZWRQcm9w
ZXJ0eU5hbWVzU2V0ID0geworICAgICJ7fSI6ICJbXSIsCisgICAgInthOm51bGx9IjogIlsnYSdd
IiwKKyAgICAie2E6bnVsbCwgYjpudWxsfSI6ICJbJ2EnLCAnYiddIiwKKyAgICAie2I6bnVsbCwg
YTpudWxsfSI6ICJbJ2EnLCAnYiddIiwKKyAgICAie19fcHJvdG9fXzp7YTpudWxsfX0iOiAiW10i
LAorICAgICJ7X19wcm90b19fOlsxLDIsM119IjogIltdIiwKKyAgICAiT2JqZWN0LmNyZWF0ZSh7
fSwgeyAnYSc6IHsgJ3ZhbHVlJzogMSwgJ2VudW1lcmFibGUnOiBmYWxzZSB9IH0pIjogIlsnYSdd
IiwKKyAgICAiT2JqZWN0LmNyZWF0ZShbMSwyLDNdLCB7ICdhJzogeyAndmFsdWUnOiAxLCAnZW51
bWVyYWJsZSc6IGZhbHNlIH0gfSkiOiAiWydhJ10iLAorLy8gRnVuY3Rpb24gb2JqZWN0cworICAg
ICJuZXcgRnVuY3Rpb24oKSI6ICJbJ2FyZ3VtZW50cycsICdjYWxsZWUnLCAnY2FsbGVyJywgJ2xl
bmd0aCcsICduYW1lJ10iLAorICAgICIoZnVuY3Rpb24oKXt2YXIgeD1uZXcgRnVuY3Rpb24oKTt4
Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiWydhcmd1bWVudHMnLCAnY2FsbGVl
JywgJ2NhbGxlcicsICdsZW5ndGgnLCAnbmFtZSddIiwKKy8vIFN0cmluZyBvYmplY3RzCisgICAg
Im5ldyBTdHJpbmcoJycpIjogIlsnbGVuZ3RoJ10iLAorICAgICJuZXcgU3RyaW5nKCdhJykiOiAi
WycwJywgJ2xlbmd0aCddIiwKKyAgICAibmV3IFN0cmluZygnYWJjJykiOiAiWycwJywgJzEnLCAn
MicsICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4PW5ldyBTdHJpbmcoJycpO3gu
X19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2xlbmd0aCddIiwKKy8vIEFycmF5
IG9iamVjdHMKKyAgICAiW10iOiAiWydsZW5ndGgnXSIsCisgICAgIltudWxsXSI6ICJbJzAnLCAn
bGVuZ3RoJ10iLAorICAgICJbbnVsbCxudWxsXSI6ICJbJzAnLCcxJywgJ2xlbmd0aCddIiwKKyAg
ICAiW251bGwsbnVsbCwsLCxudWxsXSI6ICJbJzAnLCcxJywnNScsICdsZW5ndGgnXSIsCisgICAg
IihmdW5jdGlvbigpe3ZhciB4PVtdO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6
ICJbJ2xlbmd0aCddIiwKKy8vIERhdGUgb2JqZWN0cworICAgICJuZXcgRGF0ZSgpIjogIltdIiwK
KyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IERhdGUoKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3Jl
dHVybiB4O30pKCkiOiAiW10iLAorLy8gUmVnRXhwIG9iamVjdHMKKyAgICAibmV3IFJlZ0V4cCgn
Zm9vJykiOiAiWydnbG9iYWwnLCAnaWdub3JlQ2FzZScsICdsYXN0SW5kZXgnLCAnbXVsdGlsaW5l
JywgJ3NvdXJjZSddIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFJlZ0V4cCgpO3guX19w
cm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2dsb2JhbCcsICdpZ25vcmVDYXNlJywg
J2xhc3RJbmRleCcsICdtdWx0aWxpbmUnLCAnc291cmNlJ10iLAorLy8gQXJndW1lbnRzIG9iamVj
dHMKKyAgICAgImFyZ3VtZW50c09iamVjdCgpIjogIlsnY2FsbGVlJywgJ2xlbmd0aCddIiwKKyAg
ICAgImFyZ3VtZW50c09iamVjdCgxKSI6ICJbJzAnLCAnY2FsbGVlJywgJ2xlbmd0aCddIiwKKyAg
ICAgImFyZ3VtZW50c09iamVjdCgxLDIsMykiOiAiWycwJywgJzEnLCAnMicsICdjYWxsZWUnLCAn
bGVuZ3RoJ10iLAorICAgICIoZnVuY3Rpb24oKXthcmd1bWVudHMuX19wcm90b19fPVsxLDIsM107
cmV0dXJuIGFyZ3VtZW50czt9KSgpIjogIlsnY2FsbGVlJywgJ2xlbmd0aCddIiwKKy8vIEJ1aWx0
LWluIEVDTUEgZnVuY3Rpb25zCisgICAgInBhcnNlSW50IjogIlsnbGVuZ3RoJywgJ25hbWUnXSIs
CisgICAgInBhcnNlRmxvYXQiOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiaXNOYU4iOiAi
WydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiaXNGaW5pdGUiOiAiWydsZW5ndGgnLCAnbmFtZSdd
IiwKKyAgICAiZXNjYXBlIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgInVuZXNjYXBlIjog
IlsnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgImRlY29kZVVSSSI6ICJbJ2xlbmd0aCcsICduYW1l
J10iLAorICAgICJkZWNvZGVVUklDb21wb25lbnQiOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAg
ICAiZW5jb2RlVVJJIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgImVuY29kZVVSSUNvbXBv
bmVudCI6ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorLy8gQnVpbHQtaW4gRUNNQSBvYmplY3RzCisg
ICAgIk9iamVjdCI6ICJbJ2NyZWF0ZScsICdkZWZpbmVQcm9wZXJ0aWVzJywgJ2RlZmluZVByb3Bl
cnR5JywgJ2dldE93blByb3BlcnR5RGVzY3JpcHRvcicsICdnZXRPd25Qcm9wZXJ0eU5hbWVzJywg
J2dldFByb3RvdHlwZU9mJywgJ2tleXMnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10i
LAorICAgICJPYmplY3QucHJvdG90eXBlIjogIlsnX19kZWZpbmVHZXR0ZXJfXycsICdfX2RlZmlu
ZVNldHRlcl9fJywgJ19fbG9va3VwR2V0dGVyX18nLCAnX19sb29rdXBTZXR0ZXJfXycsICdjb25z
dHJ1Y3RvcicsICdoYXNPd25Qcm9wZXJ0eScsICdpc1Byb3RvdHlwZU9mJywgJ3Byb3BlcnR5SXNF
bnVtZXJhYmxlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCisg
ICAgIkZ1bmN0aW9uIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJG
dW5jdGlvbi5wcm90b3R5cGUiOiAiWydhcHBseScsICdjYWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xl
bmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJBcnJheSI6ICJbJ2lzQXJyYXknLCAn
bGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJBcnJheS5wcm90b3R5cGUiOiAi
Wydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZlcnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAn
aW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywg
J3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xp
Y2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmlu
ZycsICd1bnNoaWZ0J10iLAorICAgICJTdHJpbmciOiAiWydmcm9tQ2hhckNvZGUnLCAnbGVuZ3Ro
JywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJTdHJpbmcucHJvdG90eXBlIjogIlsnYW5j
aG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJBdCcsICdjaGFyQ29kZUF0JywgJ2Nv
bmNhdCcsICdjb25zdHJ1Y3RvcicsICdmaXhlZCcsICdmb250Y29sb3InLCAnZm9udHNpemUnLCAn
aW5kZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdsaW5rJywgJ2xv
Y2FsZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21h
bGwnLCAnc3BsaXQnLCAnc3RyaWtlJywgJ3N1YicsICdzdWJzdHInLCAnc3Vic3RyaW5nJywgJ3N1
cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xvY2FsZVVwcGVyQ2FzZScsICd0b0xvd2VyQ2Fz
ZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScsICd0cmltJywgJ3RyaW1MZWZ0JywgJ3RyaW1S
aWdodCcsICd2YWx1ZU9mJ10iLAorICAgICJCb29sZWFuIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAn
cHJvdG90eXBlJ10iLAorICAgICJCb29sZWFuLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywg
J3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCisgICAgIk51bWJlciI6ICJbJ01BWF9WQUxVRScsICdN
SU5fVkFMVUUnLCAnTkVHQVRJVkVfSU5GSU5JVFknLCAnTmFOJywgJ1BPU0lUSVZFX0lORklOSVRZ
JywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKKyAgICAiTnVtYmVyLnByb3RvdHlw
ZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAndG9GaXhlZCcsICd0b0xvY2Fs
ZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10iLAorICAgICJE
YXRlIjogIlsnVVRDJywgJ2xlbmd0aCcsICduYW1lJywgJ25vdycsICdwYXJzZScsICdwcm90b3R5
cGUnXSIsCisgICAgIkRhdGUucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAnZ2V0RGF0ZScs
ICdnZXREYXknLCAnZ2V0RnVsbFllYXInLCAnZ2V0SG91cnMnLCAnZ2V0TWlsbGlzZWNvbmRzJywg
J2dldE1pbnV0ZXMnLCAnZ2V0TW9udGgnLCAnZ2V0U2Vjb25kcycsICdnZXRUaW1lJywgJ2dldFRp
bWV6b25lT2Zmc2V0JywgJ2dldFVUQ0RhdGUnLCAnZ2V0VVRDRGF5JywgJ2dldFVUQ0Z1bGxZZWFy
JywgJ2dldFVUQ0hvdXJzJywgJ2dldFVUQ01pbGxpc2Vjb25kcycsICdnZXRVVENNaW51dGVzJywg
J2dldFVUQ01vbnRoJywgJ2dldFVUQ1NlY29uZHMnLCAnZ2V0WWVhcicsICdzZXREYXRlJywgJ3Nl
dEZ1bGxZZWFyJywgJ3NldEhvdXJzJywgJ3NldE1pbGxpc2Vjb25kcycsICdzZXRNaW51dGVzJywg
J3NldE1vbnRoJywgJ3NldFNlY29uZHMnLCAnc2V0VGltZScsICdzZXRVVENEYXRlJywgJ3NldFVU
Q0Z1bGxZZWFyJywgJ3NldFVUQ0hvdXJzJywgJ3NldFVUQ01pbGxpc2Vjb25kcycsICdzZXRVVENN
aW51dGVzJywgJ3NldFVUQ01vbnRoJywgJ3NldFVUQ1NlY29uZHMnLCAnc2V0WWVhcicsICd0b0Rh
dGVTdHJpbmcnLCAndG9HTVRTdHJpbmcnLCAndG9JU09TdHJpbmcnLCAndG9KU09OJywgJ3RvTG9j
YWxlRGF0ZVN0cmluZycsICd0b0xvY2FsZVN0cmluZycsICd0b0xvY2FsZVRpbWVTdHJpbmcnLCAn
dG9TdHJpbmcnLCAndG9UaW1lU3RyaW5nJywgJ3RvVVRDU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCisg
ICAgIlJlZ0V4cCI6ICJbJyQmJywgXCIkJ1wiLCAnJConLCAnJCsnLCAnJDEnLCAnJDInLCAnJDMn
LCAnJDQnLCAnJDUnLCAnJDYnLCAnJDcnLCAnJDgnLCAnJDknLCAnJF8nLCAnJGAnLCAnaW5wdXQn
LCAnbGFzdE1hdGNoJywgJ2xhc3RQYXJlbicsICdsZWZ0Q29udGV4dCcsICdsZW5ndGgnLCAnbXVs
dGlsaW5lJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JpZ2h0Q29udGV4dCddIiwKKyAgICAiUmVn
RXhwLnByb3RvdHlwZSI6ICJbJ2NvbXBpbGUnLCAnY29uc3RydWN0b3InLCAnZXhlYycsICd0ZXN0
JywgJ3RvU3RyaW5nJ10iLAorICAgICJFcnJvciI6ICJbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3Rv
dHlwZSddIiwKKyAgICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAnbWVzc2Fn
ZScsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJNYXRoIjogIlsnRScsICdMTjEwJywgJ0xO
MicsICdMT0cxMEUnLCAnTE9HMkUnLCAnUEknLCAnU1FSVDFfMicsICdTUVJUMicsICdhYnMnLCAn
YWNvcycsICdhc2luJywgJ2F0YW4nLCAnYXRhbjInLCAnY2VpbCcsICdjb3MnLCAnZXhwJywgJ2Zs
b29yJywgJ2xvZycsICdtYXgnLCAnbWluJywgJ3BvdycsICdyYW5kb20nLCAncm91bmQnLCAnc2lu
JywgJ3NxcnQnLCAndGFuJ10iLAorICAgICJKU09OIjogIlsncGFyc2UnLCAnc3RyaW5naWZ5J10i
Cit9OworCitmdW5jdGlvbiBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG9iaikKK3sKKyAgICBy
ZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5zb3J0KCk7Cit9CisKK2ZvciAo
dmFyIGV4cHIgaW4gZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0KQorICAgIHNob3VsZEJlKCJnZXRT
b3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKCIgKyBleHByICsgIikiLCBleHBlY3RlZFByb3BlcnR5TmFt
ZXNTZXRbZXhwcl0pOworCisvLyBHbG9iYWwgT2JqZWN0CisvLyBPbmx5IGNoZWNrIGZvciBFQ01B
IHByb3BlcnRpZXMgaGVyZQordmFyIGdsb2JhbFByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcyh0aGlzKTsKK3ZhciBleHBlY3RlZEdsb2JhbFByb3BlcnR5TmFtZXMgPSBb
CisgICAgIk5hTiIsCisgICAgIkluZmluaXR5IiwKKyAgICAidW5kZWZpbmVkIiwKKyAgICAicGFy
c2VJbnQiLAorICAgICJwYXJzZUZsb2F0IiwKKyAgICAiaXNOYU4iLAorICAgICJpc0Zpbml0ZSIs
CisgICAgImVzY2FwZSIsCisgICAgInVuZXNjYXBlIiwKKyAgICAiZGVjb2RlVVJJIiwKKyAgICAi
ZGVjb2RlVVJJQ29tcG9uZW50IiwKKyAgICAiZW5jb2RlVVJJIiwKKyAgICAiZW5jb2RlVVJJQ29t
cG9uZW50IiwKKyAgICAiT2JqZWN0IiwKKyAgICAiRnVuY3Rpb24iLAorICAgICJBcnJheSIsCisg
ICAgIlN0cmluZyIsCisgICAgIkJvb2xlYW4iLAorICAgICJOdW1iZXIiLAorICAgICJEYXRlIiwK
KyAgICAiUmVnRXhwIiwKKyAgICAiRXJyb3IiLAorICAgICJNYXRoIiwKKyAgICAiSlNPTiIKK107
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRHbG9iYWxQcm9wZXJ0eU5hbWVzLmxlbmd0
aDsgKytpKQorICAgIHNob3VsZEJlVHJ1ZSgiZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCci
ICsgZXhwZWN0ZWRHbG9iYWxQcm9wZXJ0eU5hbWVzW2ldICsgIicpICE9IC0xIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51
bWVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDI2YjQzNjUuLmU5NzJmMzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1l
cmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50eHQKQEAgLTE0LDEzICsx
NCwyMiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1w
dCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cAogCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUt
Zm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4g
RG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgogCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0
aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFt
ZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRp
b24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3Mg
ZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
ZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorCiBUaGlzIHRlc3RzIHRoYXQgdmFyaWFibGUgbmFtZXMgY2FuJ3QgYmUgZW51
bWVyYXRlZCBjcm9zcyBkb21haW4gKHNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjM4NykKIAogCiBQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZW51bWVyYXRp
bmcgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2Vz
cyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuCitQ
QVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUgcHJvcGVydHkgbmFtZXMgb2Yg
dGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBi
eSBlbnVtZXJhdGluZyB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENyb3Nz
IGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3
YXMgZGVuaWVkLgorUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3Bl
cnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVuaWVkLgogUEFTUzogQ3Jvc3Mg
ZnJhbWUgYWNjZXNzIGJ5IGVudW1lcmF0aW5nIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmll
ZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSBM
b2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4KK1BBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBn
ZXR0aW5nIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgTG9jYXRpb24gb2JqZWN0IHdhcyBkZW5p
ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi5odG1sCmluZGV4IDcwN2ZmZjUu
LjQ5YmZjZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbApAQCAtNTIs
NiArNTIsMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jvc3Mg
ZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qgd2Fz
IGRlbmllZC4iKTsKIAorICAgICAgICAgICAgdmFyIGJfd2luUHJvcGVydHlOYW1lcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJfd2luKTsKKyAgICAgICAgICAgIGlmIChiX3dpblByb3Bl
cnR5TmFtZXMuaW5kZXhPZigiY3VzdG9tV2luZG93UHJvcGVydHkiKSAhPSAtMSkgeworICAgICAg
ICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHBy
b3BlcnR5IG5hbWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBhbGxvd2VkLiIpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZygiUEFTUzog
Q3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSB3
aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuIik7CisKICAgICAgICAgICAgIC8vIFRlc3QgZW51bWVy
YXRpbmcgdGhlIEhpc3Rvcnkgb2JqZWN0CiAgICAgICAgICAgICB2YXIgYl93aW5faGlzdG9yeSA9
IGJfd2luLmhpc3Rvcnk7CiAgICAgICAgICAgICB0cnkgewpAQCAtNzIsNiArNzksMTMgQEAKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5
IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIEhpc3Rvcnkgb2JqZWN0IHdhcyBkZW5pZWQuIik7CiAK
KyAgICAgICAgICAgIHZhciBiX3dpbkhpc3RvcnlQcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93
blByb3BlcnR5TmFtZXMoYl93aW5faGlzdG9yeSk7CisgICAgICAgICAgICBpZiAoYl93aW5IaXN0
b3J5UHJvcGVydHlOYW1lcy5pbmRleE9mKCJjdXN0b21IaXN0b3J5UHJvcGVydHkiKSAhPSAtMSkg
eworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRp
bmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgYWxsb3dlZC4i
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBs
b2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSBuYW1l
cyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmllZC4iKTsKKwogICAgICAgICAgICAgLy8g
VGVzdCBlbnVtZXJhdGluZyB0aGUgTG9jYXRpb24gb2JqZWN0CiAgICAgICAgICAgICB2YXIgYl93
aW5fbG9jYXRpb24gPSBiX3dpbi5sb2NhdGlvbjsKICAgICAgICAgICAgIHRyeSB7CkBAIC05MSw2
ICsxMDUsMTMgQEAKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlz
IG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4iKTsKKworICAgICAgICAgICAgdmFy
IGJfd2luTG9jYXRpb25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
Yl93aW5fbG9jYXRpb24pOworICAgICAgICAgICAgaWYgKGJfd2luTG9jYXRpb25Qcm9wZXJ0eU5h
bWVzLmluZGV4T2YoImN1c3RvbUxvY2F0aW9uUHJvcGVydHkiKSAhPSAtMSkgeworICAgICAgICAg
ICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3Bl
cnR5IG5hbWVzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGFsbG93ZWQuIik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nKCJQQVNTOiBD
cm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIExv
Y2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLiIpOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiA8
L2hlYWQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDFmZmY1OWMuLmFkMzY4ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDEtMDYgIEtlbnQg
SGFuc2VuICA8a2VudC5oYW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFUzVdIEltcGxlbWVudCBPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzIyNDIKKworICAgICAgICBBZGQgbmV3IGFyZ3VtZW50IHRvIHJlaW1wbGVtZW50YXRpb25z
IG9mIGdldFByb3BlcnR5TmFtZXMoKQorICAgICAgICBhbmQgZ2V0T3duUHJvcGVydHlOYW1lcygp
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSGlzdG9yeTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNTdG9yYWdlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1wOjpnZXRQcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6UnVudGltZU9iamVjdEltcDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTAtMDEt
MDUgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCBiOWY2ZDMyLi5lNmMzZTkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcApAQCAtNDE5LDIwICs0MTksMjAgQEAgYm9vbCBKU0RPTVdpbmRvdzo6ZGVs
ZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsK
IH0KIAotdm9pZCBKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0RPTVdpbmRvdzo6Z2V0
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBPbmx5IGFsbG93IHRoZSB3
aW5kb3cgdG8gZW51bWVyYXRlZCBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgogICAgIGlm
ICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6Omdl
dFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0UHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRv
dzo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBPbmx5IGFsbG93IHRoZSB3aW5kb3cgdG8gZW51bWVy
YXRlZCBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgogICAgIGlmICghYWxsb3dzQWNjZXNz
RnJvbShleGVjKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFt
ZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhl
eGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvdzo6ZGVmaW5l
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCAwOTE0MWVlLi4xZTgyYTQ5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNCwxNCArMTE0LDE0
IEBAIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgcmV0dXJuIG1fd2luZG93LT5kZWxldGVQ
cm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTRE9NV2luZG93U2hlbGw6
OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcykKK3ZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlv
bk1vZGUgbW9kZSkKIHsKLSAgICBtX3dpbmRvdy0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzKTsKKyAgICBtX3dpbmRvdy0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMp
Cit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCiB7Ci0gICAgbV93aW5kb3ctPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlO
YW1lcyk7CisgICAgbV93aW5kb3ctPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlO
YW1lcywgbW9kZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
Z2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5oCmluZGV4IDI3MDM2ZDQuLmE4OTUxNzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC03NSw4ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6
RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNl
dHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTT2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYsIGJvb2wgc2hvdWxkVGhyb3cpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hpc3RvcnlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20u
Y3BwCmluZGV4IDMwNzY1MDMuLmZmZjc0N2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIaXN0b3J5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9y
eUN1c3RvbS5jcHAKQEAgLTE1NCwxMiArMTU0LDEyIEBAIGJvb2wgSlNIaXN0b3J5OjpkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkK
ICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0K
IAotdm9pZCBKU0hpc3Rvcnk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNIaXN0b3J5OjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIC8vIE9ubHkgYWxsb3cgdGhlIGhp
c3Rvcnkgb2JqZWN0IHRvIGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4K
ICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBpbXBsKCktPmZyYW1lKCkpKQog
ICAgICAgICByZXR1cm47Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzKTsKKyAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwogfQogCiBKU1ZhbHVlIEpTSGlzdG9yeTo6cHVzaFN0YXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCmluZGV4IDZjOGUwMzIuLjc4ZDAwZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMTY4LDEyICsxNjgsMTIgQEAgYm9vbCBKU0xvY2F0
aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVy
dHlOYW1lKTsKIH0KIAotdm9pZCBKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTTG9j
YXRpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgLy8gT25s
eSBhbGxvdyB0aGUgbG9jYXRpb24gb2JqZWN0IHRvIGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRo
ZSBzYW1lIG9yaWdpbi4KICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBpbXBs
KCktPmZyYW1lKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpTTG9jYXRpb246OmRlZmlu
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcAppbmRleCBl
YTJmNzJmLi5kNzc5N2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFu
dGluZWRPYmplY3RXcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFu
dGluZWRPYmplY3RXcmFwcGVyLmNwcApAQCAtMzEzLDIwICszMTMsMjAgQEAgQ2FsbFR5cGUgSlNR
dWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkK
ICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi12b2lkIEpTUXVhcmFudGluZWRPYmplY3RX
cmFwcGVyOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiBh
cnJheSkKK3ZvaWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldFByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmIGFycmF5LCBFbnVtZXJhdGlvbk1vZGUgbW9k
ZSkKIHsKICAgICBpZiAoIWFsbG93c0dldFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIG1fdW53cmFwcGVkT2JqZWN0LT5nZXRQcm9wZXJ0eU5hbWVzKHVud3JhcHBl
ZEV4ZWNTdGF0ZSgpLCBhcnJheSk7CisgICAgbV91bndyYXBwZWRPYmplY3QtPmdldFByb3BlcnR5
TmFtZXModW53cmFwcGVkRXhlY1N0YXRlKCksIGFycmF5LCBtb2RlKTsKIH0KIAotdm9pZCBKU1F1
YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgYXJyYXkpCit2b2lkIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVy
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiBhcnJh
eSwgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFhbGxvd3NHZXRQcm9wZXJ0eU5h
bWVzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdW53cmFwcGVkT2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgpLCBhcnJheSk7CisgICAgbV91bndyYXBw
ZWRPYmplY3QtPmdldE93blByb3BlcnR5TmFtZXModW53cmFwcGVkRXhlY1N0YXRlKCksIGFycmF5
LCBtb2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oCmluZGV4IDlmNjI0OTUuLmU0MjNh
MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdy
YXBwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFw
cGVyLmgKQEAgLTc0LDggKzc0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBoYXNJbnN0YW5jZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU1ZhbHVlIHByb3RvKTsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9w
ZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5
TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVt
ZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4
Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW53cmFwcGVkT2JqZWN0LT5jbGFzc05hbWUo
KTsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAKaW5kZXggZTQxNmQz
NS4uM2NmZTIyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcApAQCAt
NjQsMTMgKzY0LDEzIEBAIGJvb2wgSlNTdG9yYWdlOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNTdG9yYWdlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9
IG1faW1wbC0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG1faW1wbC0+
a2V5KGkpKSk7CiAgICAgICAgIAotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywg
cHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1N0b3JhZ2U6OnB1dERlbGVnYXRlKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggMDAxYzg1OC4uMjY1MzFlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02NDcsNyArNjQ3LDcgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAKICAgICAjIEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uIGV4aXN0cyBv
biBET01XaW5kb3cKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlO
YW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5h
bWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpO1xuIik7CiAg
ICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIn0g
PSAxOwogICAgIH0KIApAQCAtNjU2LDcgKzY1Niw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAg
ICAgIyBDdXN0b20gZ2V0T3duUHJvcGVydHlOYW1lcyBmdW5jdGlvbgogICAgIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7Ci0g
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7XG4iKTsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6
OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTtc
biIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyJ9ID0gMTsgICAgICAgCiAgICAgfQogCkBAIC0xNTM4LDEzICsxNTM4LDEzIEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQogCiAgICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn0pIHsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKVxuIik7
CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
Q3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PCR7aW1wbENsYXNzTmFt
ZX0qPihpbXBsKCkpLT5sZW5ndGgoKTsgKytpKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBpKSk7XG4iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
QmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTtcbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhl
eGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGNiMDI3
YmYuLjllOGRhODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
CisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC01NywxMyArNTcsMTYg
QEAgSlNWYWx1ZSBSdW50aW1lQXJyYXk6OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3AKICAgICByZXR1cm4gdGhpc09iai0+Z2V0Q29uY3Jl
dGVBcnJheSgpLT52YWx1ZUF0KGV4ZWMsIHNsb3QuaW5kZXgoKSk7CiB9CiAKLXZvaWQgUnVudGlt
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBnZXRMZW5ndGgo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgIHBy
b3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOwogCi0gICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgaWYgKG1v
ZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykKKyAgICAgICAgcHJvcGVydHlOYW1lcy5h
ZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCk7CisKKyAgICBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBSdW50
aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCmluZGV4IDk5NDI1ZWUuLmY3N2VmNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTM1
LDcgKzM1LDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgQmluZGluZ3M6OkFycmF5Kik7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9u
dEVudW1Qcm9wZXJ0aWVzKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgdW5zaWduZWQsIFByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmNwcAppbmRleCA5NTgzZmIyLi45ZmM5ZjBjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwCkBAIC0zMDIsNyArMzAyLDcgQEAgQ29uc3RydWN0VHlwZSBSdW50aW1lT2Jq
ZWN0SW1wOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiAg
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi12b2lkIFJ1bnRpbWVPYmplY3RJbXA6
OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcykKK3ZvaWQgUnVudGltZU9iamVjdEltcDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlv
bk1vZGUpCiB7CiAgICAgaWYgKCFtX2luc3RhbmNlKSB7CiAgICAgICAgIHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKGV4ZWMpOwpAQCAtMzE2LDkgKzMxNiw5IEBAIHZvaWQgUnVudGltZU9iamVjdElt
cDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wCiAgICAgaW5zdGFuY2UtPmVuZCgpOwogfQogCi12b2lkIFJ1bnRpbWVPYmplY3RJbXA6Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcykKK3ZvaWQgUnVudGltZU9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKLSAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMpOworICAgIGdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CiB9CiAKIEpTT2JqZWN0KiBSdW50aW1lT2JqZWN0SW1wOjp0aHJvd0ludmFsaWRBY2Nlc3NF
cnJvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAzOTFlMDc4
Li44N2M0N2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisr
KyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTQ0LDggKzQ0LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKICAgICB2
aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9
IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgIHZvaWQgaW52YWxpZGF0
ZSgpOwogCg==
</data>
<flag name="review"
          id="28141"
          type_id="1"
          status="-"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="28142"
          type_id="3"
          status="-"
          setter="kent.hansen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46143</attachid>
            <date>2010-01-08 10:12:31 -0800</date>
            <delta_ts>2010-01-08 10:12:31 -0800</delta_ts>
            <desc>test failures</desc>
            <filename>results.html</filename>
            <type>text/html</type>
            <size>22448</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+TGF5b3V0IFRlc3QgUmVzdWx0czwvdGl0bGU+CjwvaGVhZD4K
PGJvZHk+CjxwPlRlc3RzIHdoZXJlIHJlc3VsdHMgZGlkIG5vdCBtYXRjaCBleHBlY3RlZCByZXN1
bHRzOjwvcD4KPHRhYmxlPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dl
YmtpdC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMu
aHRtbCI+ZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVzLmh0bWw8L2E+PC90
ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1l
eHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9jb25z
dHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJmYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZGlmZnMu
dHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9jb25zdHJ1Y3RlZC1vYmpl
Y3RzLXByb3RvdHlwZXMtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90
cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLmh0bWwiPmZhc3QvZG9tL2RvbUxpc3RFbnVt
ZXJhdGlvbi5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9kb21MaXN0RW51bWVy
YXRpb24tZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iZmFzdC9k
b20vZG9tTGlzdEVudW1lcmF0aW9uLWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEg
aHJlZj0iZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3Rk
Pgo8dGQ+PGEgaHJlZj0iZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLXByZXR0eS1kaWZmLmh0
bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVz
L0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS0yLmh0bWwiPmZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmh0bWw8L2E+PC90
ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVk
LnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS0yLWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1wcmV0dHktZGlmZi5o
dG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1l
cy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UuaHRtbCI+ZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLmh0bWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9ImZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQi
PmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVm
PSJmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5
IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJl
bi93ZWJraXQvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS5odG1sIj5mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWw8
L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9h
PjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sIj5mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0i
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8
L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1h
Y3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1kaWZmcy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkg
ZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVu
L3dlYmtpdC9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbCI+ZmFz
dC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3Qv
anMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYWN0dWFsLnR4dCI+YWN0dWFs
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZGlmZnMu
dHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+
PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtY2xlYXIuaHRtbCI+aW5zcGVjdG9yL2NvbnNvbGUtY2xlYXIuaHRtbDwvYT48L3Rk
Pgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtY2xlYXItZXhwZWN0ZWQudHh0Ij5leHBl
Y3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtY2xlYXItYWN0dWFs
LnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvY29uc29sZS1jbGVh
ci1kaWZmcy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xl
LWNsZWFyLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4K
PHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWRpci5odG1sIj5pbnNwZWN0b3IvY29uc29sZS1kaXIuaHRtbDwvYT48L3Rk
Pgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtZGlyLWV4cGVjdGVkLnR4dCI+ZXhwZWN0
ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWRpci1hY3R1YWwudHh0
Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWRpci1kaWZm
cy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWRpci1w
cmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBo
cmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1kaXJ4bWwuaHRtbCI+aW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0bWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQiPmV4cGVj
dGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvY29uc29sZS1kaXJ4bWwtYWN0dWFs
LnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvY29uc29sZS1kaXJ4
bWwtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvY29uc29s
ZS1kaXJ4bWwtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRy
Pgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWwiPmluc3BlY3Rvci9jb25zb2xl
LWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3Iv
Y29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3Rk
Pgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLWFjdHVh
bC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtZm9y
bWF0LWNvbGxlY3Rpb25zLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5z
cGVjdG9yL2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0
eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2Fy
ZW4vd2Via2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlLWZvcm1hdC5odG1sIj5pbnNw
ZWN0b3IvY29uc29sZS1mb3JtYXQuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9y
L2NvbnNvbGUtZm9ybWF0LWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhy
ZWY9Imluc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1kaWZmcy50eHQiPmRpZmY8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLWZvcm1hdC1wcmV0dHktZGlmZi5o
dG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1l
cy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5o
dG1sIj5pbnNwZWN0b3IvY29uc29sZS10ZXN0cy5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJp
bnNwZWN0b3IvY29uc29sZS10ZXN0cy1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJpbnNwZWN0b3IvY29uc29sZS10ZXN0cy1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb25zb2xlLXRlc3RzLWRpZmZzLnR4dCI+ZGlm
ZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2NvbnNvbGUtdGVzdHMtcHJldHR5LWRp
ZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1Zv
bHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1yZXNv
dXJjZS1tYXRjaC5odG1sIj5pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLmh0bWw8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2gtZXhwZWN0
ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2Nvb2tpZS1y
ZXNvdXJjZS1tYXRjaC1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imlu
c3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2gtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJpbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLXByZXR0eS1kaWZmLmh0
bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVz
L0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1pbWctdG9v
bHRpcC5odG1sIj5pbnNwZWN0b3IvZWxlbWVudHMtaW1nLXRvb2x0aXAuaHRtbDwvYT48L3RkPgo8
dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2VsZW1lbnRzLWltZy10b29sdGlwLWV4cGVjdGVkLnR4dCI+
ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9lbGVtZW50cy1pbWctdG9v
bHRpcC1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9l
bGVtZW50cy1pbWctdG9vbHRpcC1kaWZmcy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9
Imluc3BlY3Rvci9lbGVtZW50cy1pbWctdG9vbHRpcC1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkg
ZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVu
L3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9u
LXJlZnJlc2guaHRtbCI+aW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZy
ZXNoLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1z
ZWxlY3Rpb24tb24tcmVmcmVzaC1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48
YSBocmVmPSJpbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtYWN0
dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvZWxlbWVudHMt
cGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48
YSBocmVmPSJpbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtcHJl
dHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJl
Zj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXBhbmVsLXN0cnVjdHVyZS5odG1sIj5pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc3RydWN0
dXJlLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1z
dHJ1Y3R1cmUtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5z
cGVjdG9yL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90
ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUtZGlmZnMu
dHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwt
c3RydWN0dXJlLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0
cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2lu
c3BlY3Rvci9ldmFsdWF0ZS1pbi1mcm9udGVuZC5odG1sIj5pbnNwZWN0b3IvZXZhbHVhdGUtaW4t
ZnJvbnRlbmQuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL2V2YWx1YXRlLWlu
LWZyb250ZW5kLWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imlu
c3BlY3Rvci9ldmFsdWF0ZS1pbi1mcm9udGVuZC1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9Imluc3BlY3Rvci9ldmFsdWF0ZS1pbi1mcm9udGVuZC1kaWZmcy50eHQiPmRp
ZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9ldmFsdWF0ZS1pbi1mcm9udGVuZC1w
cmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBo
cmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzLWlmcmFtZS5odG1sIj5pbnNwZWN0b3Ivc3R5bGVzLWlmcmFtZS5odG1sPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJpbnNwZWN0b3Ivc3R5bGVzLWlmcmFtZS1leHBlY3RlZC50eHQiPmV4cGVjdGVk
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3Ivc3R5bGVzLWlmcmFtZS1hY3R1YWwudHh0
Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci9zdHlsZXMtaWZyYW1lLWRp
ZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3N0eWxlcy1pZnJh
bWUtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+
PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N5bnRheC1oaWdobGlnaHQtY3NzLmh0bWwiPmluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNz
cy5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1j
c3MtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9y
L3N5bnRheC1oaWdobGlnaHQtY3NzLWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEg
aHJlZj0iaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtY3NzLWRpZmZzLnR4dCI+ZGlmZjwvYT48
L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtY3NzLXByZXR0eS1k
aWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9W
b2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGln
aGxpZ2h0LWphdmFzY3JpcHQuaHRtbCI+aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtamF2YXNj
cmlwdC5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdo
dC1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9
Imluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWphdmFzY3JpcHQtYWN0dWFsLnR4dCI+YWN0dWFs
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1qYXZhc2Ny
aXB0LWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3N5bnRh
eC1oaWdobGlnaHQtamF2YXNjcmlwdC1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwvYT48
L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2guaHRtbCI+aW5zcGVj
dG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imlu
c3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9h
PjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtYWN0
dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUt
ZXZlbnQtZGlzcGF0Y2gtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNw
ZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRp
ZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93
ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC5odG1sIj5pbnNwZWN0
b3IvdGltZWxpbmUtbGF5b3V0Lmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90
aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJl
Zj0iaW5zcGVjdG9yL3RpbWVsaW5lLWxheW91dC1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGluZS1sYXlvdXQtZGlmZnMudHh0Ij5kaWZmPC9h
PjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtbGF5b3V0LXByZXR0eS1kaWZm
Lmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1
bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1tYXJr
LXRpbWVsaW5lLmh0bWwiPmluc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLmh0bWw8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGluZS1tYXJrLXRpbWVsaW5lLWV4cGVj
dGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGlu
ZS1tYXJrLXRpbWVsaW5lLWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0i
aW5zcGVjdG9yL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+
Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtbWFyay10aW1lbGluZS1wcmV0dHktZGlm
Zi5odG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9s
dW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtbmV0
d29yay1yZXNvdXJjZS5odG1sIj5pbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5o
dG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtbmV0d29yay1yZXNv
dXJjZS1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0
b3IvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWRpZmZzLnR4
dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRy
Pgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLXBhaW50Lmh0bWwiPmluc3BlY3Rvci90aW1lbGluZS1wYWludC5odG1s
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQu
dHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVsaW5lLXBh
aW50LWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3Rp
bWVsaW5lLXBhaW50LWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVj
dG9yL3RpbWVsaW5lLXBhaW50LXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+
CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLmh0bWwiPmluc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhy
ZWY9Imluc3BlY3Rvci90aW1lbGluZS1wYXJzZS1odG1sLWFjdHVhbC50eHQiPmFjdHVhbDwvYT48
L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVsaW5lLXBhcnNlLWh0bWwtZGlmZnMudHh0
Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtcGFyc2UtaHRt
bC1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48
YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLmh0bWwiPmluc3BlY3Rvci90aW1lbGluZS1yZWNh
bGN1bGF0ZS1zdHlsZXMuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVs
aW5lLXJlY2FsY3VsYXRlLXN0eWxlcy1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0
ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWFjdHVhbC50
eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVsaW5lLXJlY2Fs
Y3VsYXRlLXN0eWxlcy1kaWZmcy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3Bl
Y3Rvci90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5
IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJl
bi93ZWJraXQvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1s
Ij5pbnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhy
ZWY9Imluc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0Ij5leHBlY3Rl
ZDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMS1h
Y3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGlu
ZS1zY3JpcHQtdGFnLTEtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNw
ZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0xLXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZm
PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Vi
a2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbCI+aW5z
cGVjdG9yL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJp
bnNwZWN0b3IvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+
PC90ZD4KPHRkPjxhIGhyZWY9Imluc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTItYWN0dWFs
LnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJpbnNwZWN0b3IvdGltZWxpbmUtc2Ny
aXB0LXRhZy0yLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaW5zcGVjdG9y
L3RpbWVsaW5lLXNjcmlwdC10YWctMi1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwvYT48
L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRt
bCI+cGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWw8L2E+PC90
ZD4KPHRkPjxhIGhyZWY9InBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJwbGF0Zm9ybS9t
YWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwv
dGQ+Cjx0ZD48YSBocmVmPSJwbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLW9i
amMtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJwbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMtcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8
L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJr
aXQvTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1lbnVtZXJhdGUuaHRtbCI+cGx1Z2lucy9u
ZXRzY2FwZS1lbnVtZXJhdGUuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0icGx1Z2lucy9uZXRz
Y2FwZS1lbnVtZXJhdGUtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3RkPgo8dGQ+PGEgaHJl
Zj0icGx1Z2lucy9uZXRzY2FwZS1lbnVtZXJhdGUtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+
Cjx0ZD48YSBocmVmPSJwbHVnaW5zL25ldHNjYXBlLWVudW1lcmF0ZS1kaWZmcy50eHQiPmRpZmY8
L2E+PC90ZD4KPHRkPjxhIGhyZWY9InBsdWdpbnMvbmV0c2NhcGUtZW51bWVyYXRlLXByZXR0eS1k
aWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9W
b2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UuaHRtbCI+c3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9lbnVtZXJhdGUtc3RvcmFnZS5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJz
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLWV4cGVjdGVk
LnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+
Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS1z
dG9yYWdlLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJhdGUtc3RvcmFnZS1wcmV0dHktZGlmZi5odG1sIj5w
cmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcv
Z2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L2VudW1lcmF0ZS13aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwiPnN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZW51bWVyYXRlLXdpdGgtbGVuZ3RoLWFuZC1rZXkuaHRtbDwvYT48L3RkPgo8
dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJhdGUtd2l0
aC1sZW5ndGgtYW5kLWtleS1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBo
cmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxlbmd0
aC1hbmQta2V5LWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtleS1k
aWZmcy50eHQiPmRpZmY8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZW51bWVyYXRlLXdpdGgtbGVuZ3RoLWFuZC1rZXktcHJldHR5LWRpZmYuaHRt
bCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMv
QmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9zaW1wbGUtdXNhZ2UuaHRtbCI+c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9z
aW1wbGUtdXNhZ2UuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNhZ2UtZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwvYT48L3Rk
Pgo8dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNh
Z2UtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL3NpbXBsZS11c2FnZS1kaWZmcy50eHQiPmRpZmY8L2E+PC90ZD4K
PHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2ltcGxlLXVzYWdl
LXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxh
IGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRtbCI+c3RvcmFnZS9kb21z
dG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1sPC9hPjwvdGQ+Cjx0ZD48
YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0cmluZy1jb252ZXJzaW9u
LWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24tYWN0dWFsLnR4dCI+YWN0dWFs
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0
cmluZy1jb252ZXJzaW9uLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3Rv
cmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi1wcmV0dHktZGlm
Zi5odG1sIj5wcmV0dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9s
dW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UuaHRtbCI+c3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9
InN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUtc3RvcmFnZS1leHBl
Y3RlZC50eHQiPmV4cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UtYWN0dWFsLnR4dCI+YWN0dWFsPC9h
PjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZW51
bWVyYXRlLXN0b3JhZ2UtZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UtcHJldHR5LWRp
ZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1Zv
bHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nl
c3Npb25zdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwiPnN0b3JhZ2Uv
ZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtleS5o
dG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3Jh
Z2UvZW51bWVyYXRlLXdpdGgtbGVuZ3RoLWFuZC1rZXktZXhwZWN0ZWQudHh0Ij5leHBlY3RlZDwv
YT48L3RkPgo8dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2Vu
dW1lcmF0ZS13aXRoLWxlbmd0aC1hbmQta2V5LWFjdHVhbC50eHQiPmFjdHVhbDwvYT48L3RkPgo8
dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS13
aXRoLWxlbmd0aC1hbmQta2V5LWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0i
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxlbmd0aC1h
bmQta2V5LXByZXR0eS1kaWZmLmh0bWwiPnByZXR0eSBkaWZmPC9hPjwvdGQ+CjwvdHI+Cjx0cj4K
PHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtdXNhZ2UuaHRtbCI+c3RvcmFnZS9k
b21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS5odG1sPC9hPjwvdGQ+Cjx0ZD48
YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvc2ltcGxlLXVzYWdlLWV4
cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9tc3Rv
cmFnZS9zZXNzaW9uc3RvcmFnZS9zaW1wbGUtdXNhZ2UtYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwv
dGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvc2ltcGxl
LXVzYWdlLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3RvcmFnZS9kb21z
dG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS1wcmV0dHktZGlmZi5odG1sIj5wcmV0
dHkgZGlmZjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dh
cmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
c3RyaW5nLWNvbnZlcnNpb24uaHRtbCI+c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L3N0cmluZy1jb252ZXJzaW9uLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi1leHBlY3RlZC50eHQiPmV4
cGVjdGVkPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24tYWN0dWFsLnR4dCI+YWN0dWFsPC9hPjwvdGQ+Cjx0ZD48
YSBocmVmPSJzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNp
b24tZGlmZnMudHh0Ij5kaWZmPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24tcHJldHR5LWRpZmYuaHRtbCI+cHJl
dHR5IGRpZmY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dn
YXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdTY3JpcHRFbGVtZW50L3NjcmlwdC1z
ZXQtaHJlZi5zdmciPnN2Zy9kb20vU1ZHU2NyaXB0RWxlbWVudC9zY3JpcHQtc2V0LWhyZWYuc3Zn
PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJzdmcvZG9tL1NWR1NjcmlwdEVsZW1lbnQvc2NyaXB0LXNl
dC1ocmVmLWV4cGVjdGVkLnR4dCI+ZXhwZWN0ZWQ8L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN2Zy9k
b20vU1ZHU2NyaXB0RWxlbWVudC9zY3JpcHQtc2V0LWhyZWYtYWN0dWFsLnR4dCI+YWN0dWFsPC9h
PjwvdGQ+Cjx0ZD48YSBocmVmPSJzdmcvZG9tL1NWR1NjcmlwdEVsZW1lbnQvc2NyaXB0LXNldC1o
cmVmLWRpZmZzLnR4dCI+ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0ic3ZnL2RvbS9TVkdTY3Jp
cHRFbGVtZW50L3NjcmlwdC1zZXQtaHJlZi1wcmV0dHktZGlmZi5odG1sIj5wcmV0dHkgZGlmZjwv
YT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtp
dC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVt
ZXJhdGlvbi5odG1sIj5odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVt
ZXJhdGlvbi5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50eHQiPmV4cGVjdGVkPC9hPjwv
dGQ+Cjx0ZD48YSBocmVmPSJodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1l
bnVtZXJhdGlvbi1hY3R1YWwudHh0Ij5hY3R1YWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLWRpZmZzLnR4dCI+
ZGlmZjwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZW51bWVyYXRpb24tcHJldHR5LWRpZmYuaHRtbCI+cHJldHR5IGRpZmY8L2E+PC90
ZD4KPC90cj4KPC90YWJsZT48cD5UZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0cHV0OjwvcD4KPHRh
YmxlPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQuaHRtbCI+YWNjZXNzaWJpbGl0eS9tZWRp
YS1lbGVtZW50Lmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImFjY2Vzc2liaWxpdHkvbWVkaWEt
ZWxlbWVudC1zdGRlcnIudHh0Ij5zdGRlcnI8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJl
Zj0iL1ZvbHVtZXMvQmlnL2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2NvcHktY3Jhc2gtd2l0aC1leHRyYW5lb3VzLWF0dHJpYnV0ZS5odG1sIj5lZGl0aW5nL3Bh
c3RlYm9hcmQvY29weS1jcmFzaC13aXRoLWV4dHJhbmVvdXMtYXR0cmlidXRlLmh0bWw8L2E+PC90
ZD4KPHRkPjxhIGhyZWY9ImVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LWNyYXNoLXdpdGgtZXh0cmFu
ZW91cy1hdHRyaWJ1dGUtc3RkZXJyLnR4dCI+c3RkZXJyPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRk
PjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGV4dC1jb250cm9sLWludHJpbnNpYy13aWR0aHMuaHRtbCI+ZmFzdC9mb3Jtcy90ZXh0LWNv
bnRyb2wtaW50cmluc2ljLXdpZHRocy5odG1sPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJmYXN0L2Zv
cm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLXN0ZGVyci50eHQiPnN0ZGVycjwvYT48
L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9M
YXlvdXRUZXN0cy9mYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy54aHRtbCI+ZmFzdC94c2wvdHJh
bnNmb3JtLXhoci1kb2MueGh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9ImZhc3QveHNsL3RyYW5z
Zm9ybS14aHItZG9jLXN0ZGVyci50eHQiPnN0ZGVycjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48
YSBocmVmPSIvVm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy9tZWRpYS9jb250
cm9scy1hZnRlci1yZWxvYWQuaHRtbCI+bWVkaWEvY29udHJvbHMtYWZ0ZXItcmVsb2FkLmh0bWw8
L2E+PC90ZD4KPHRkPjxhIGhyZWY9Im1lZGlhL2NvbnRyb2xzLWFmdGVyLXJlbG9hZC1zdGRlcnIu
dHh0Ij5zdGRlcnI8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmln
L2dnYXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvc3ZnL3dlYmFyY2hpdmUvc3ZnLWN1cnNvci1zdWJy
ZXNvdXJjZXMuc3ZnIj5zdmcvd2ViYXJjaGl2ZS9zdmctY3Vyc29yLXN1YnJlc291cmNlcy5zdmc8
L2E+PC90ZD4KPHRkPjxhIGhyZWY9InN2Zy93ZWJhcmNoaXZlL3N2Zy1jdXJzb3Itc3VicmVzb3Vy
Y2VzLXN0ZGVyci50eHQiPnN0ZGVycjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD48YSBocmVmPSIv
Vm9sdW1lcy9CaWcvZ2dhcmVuL3dlYmtpdC9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3Nz
LXVybC1yZXNvdXJjZXMtaW4tc3R5bGVzaGVldHMuaHRtbCI+d2ViYXJjaGl2ZS90ZXN0LWNzcy11
cmwtcmVzb3VyY2VzLWluLXN0eWxlc2hlZXRzLmh0bWw8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Indl
YmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbi1zdHlsZXNoZWV0cy1zdGRlcnIudHh0
Ij5zdGRlcnI8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGEgaHJlZj0iL1ZvbHVtZXMvQmlnL2dn
YXJlbi93ZWJraXQvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2Vz
LWlubGluZS1zdHlsZXMuaHRtbCI+d2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2VzLWlu
bGluZS1zdHlsZXMuaHRtbDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0id2ViYXJjaGl2ZS90ZXN0LWNz
cy11cmwtcmVzb3VyY2VzLWlubGluZS1zdHlsZXMtc3RkZXJyLnR4dCI+c3RkZXJyPC9hPjwvdGQ+
CjwvdHI+Cjx0cj4KPHRkPjxhIGhyZWY9Ii9Wb2x1bWVzL0JpZy9nZ2FyZW4vd2Via2l0L0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS5odG1sIj5odHRw
L3Rlc3RzL211bHRpcGFydC9pbnZhbGlkLWltYWdlLWRhdGEuaHRtbDwvYT48L3RkPgo8dGQ+PGEg
aHJlZj0iaHR0cC90ZXN0cy9tdWx0aXBhcnQvaW52YWxpZC1pbWFnZS1kYXRhLXN0ZGVyci50eHQi
PnN0ZGVycjwvYT48L3RkPgo8L3RyPgo8L3RhYmxlPjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46352</attachid>
            <date>2010-01-12 02:00:23 -0800</date>
            <delta_ts>2010-01-12 03:35:38 -0800</delta_ts>
            <desc>Revised patch (apply cleanly to trunk again)</desc>
            <filename>ObjectDotGetOwnPropertyNames3.diff</filename>
            <type>text/plain</type>
            <size>77192</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IGQxOTg5MGEuLmUxM2RiZDIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90byk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAog
ICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHZpcnR1
YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGYxNDk0ZTIuLjQwMDBmNjMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApA
QCAtMzgwLDcgKzM4MCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Y2FsbChF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdGlvbk9iamVjdCwKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIEJhc2U+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSkKIHsKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAg
IEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsKQEAgLTM5Nyw3ICszOTcsNyBAQCB2
b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcgogICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHN0
YXRpY1ZhbHVlcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICAgICAg
VVN0cmluZzo6UmVwKiBuYW1lID0gaXQtPmZpcnN0LmdldCgpOwogICAgICAgICAgICAgICAgIFN0
YXRpY1ZhbHVlRW50cnkqIGVudHJ5ID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgICAgICBpZiAo
ZW50cnktPmdldFByb3BlcnR5ICYmICEoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAgICBpZiAoZW50cnktPmdldFByb3BlcnR5
ICYmICghKGVudHJ5LT5hdHRyaWJ1dGVzICYga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSkg
fHwgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtNDA4LDEzICs0MDgsMTMgQEAgdm9pZCBKU0NhbGxiYWNrT2Jq
ZWN0PEJhc2U+OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lQXIKICAgICAgICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSBzdGF0aWNGdW5jdGlvbnMtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgICAgIFVTdHJpbmc6OlJlcCog
bmFtZSA9IGl0LT5maXJzdC5nZXQoKTsKICAgICAgICAgICAgICAgICBTdGF0aWNGdW5jdGlvbkVu
dHJ5KiBlbnRyeSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICAgICAgaWYgKCEoZW50cnktPmF0
dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAg
ICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0p
IHx8IChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBCYXNlPgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDc4MDMyYzcuLjZiYzdkODcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBA
QAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVt
ZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCBhbiBleHRyYSBhcmd1
bWVudCB0byBnZXRQcm9wZXJ0eU5hbWVzKCkgYW5kIGdldE93blByb3BlcnR5TmFtZXMoKQorICAg
ICAgICAoYW5kIGFsbCByZWltcGxlbWVudGF0aW9ucyB0aGVyZW9mKSB0aGF0IGluZGljYXRlcyB3
aGV0aGVyIG5vbi1lbnVtZXJhYmxlCisgICAgICAgIHByb3BlcnRpZXMgc2hvdWxkIGJlIGFkZGVk
LgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OmdldE93blByb3BlcnR5
TmFtZXMpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgor
ICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAq
IHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJh
eS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpnZXRDbGFzc1Byb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5jcHA6IFJlbmFtZSBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcygpIHRvIGdldFBy
b3BlcnR5TmFtZXMoKSwgd2hpY2ggdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQuCisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6KToKKwogMjAxMC0wMS0xMiAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDQ4ZjYwOTYuLjM5Mjg1YjkgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBfX1pOM0pTQzEyU21hbGxTdHJp
bmdzMjdjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRWgKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVq
Uk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3duUHJvcGVy
dHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKK19fWk4zSlND
MTJTdHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3
UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzEyU3RyaW5n
T2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVj
dDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1
UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDRpbmZvRQpAQCAtMTU5LDcg
KzE1OSw3IEBAIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVF
CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xMkpTR2xvYmFsRGF0YUVOM1dURjE3
Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNHN5bWJvbFRhYmxl
R2V0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlND
MTZKU1ZhcmlhYmxlT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJO
U18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxOWdldE93
blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNf
MTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzE2dG9VSW50MzJTbG93Q2FzZUVkUmIKIF9fWk4z
SlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlND
MTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE5TXzExVVN0cmluZ0ltcGxFCkBAIC0yNTMsNyArMjUz
LDcgQEAgX19aTjNKU0M4SlNPYmplY3QxMm1hcmtDaGlsZHJlbkVSTlNfOU1hcmtTdGFja0UKIF9f
Wk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0
ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKLV9fWk4zSlNDOEpTT2Jq
ZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFy
cmF5RQorX19aTjNKU0M4SlNPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVF
Uk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhK
U09iamVjdDE3Y3JlYXRlSW5oZXJpdG9ySURFdgogX19aTjNKU0M4SlNPYmplY3QxN2RlZmluZU93
blByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5
RGVzY3JpcHRvckViCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0RGlyZWN0RnVuY3Rpb25FUE5TXzlF
eGVjU3RhdGVFUE5TXzE2SW50ZXJuYWxGdW5jdGlvbkVqCkBAIC0yNjIsNyArMjYyLDcgQEAgX19a
TjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRU5TXzdKU1ZhbHUKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOGdldE93
blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNK
U0M4SlNPYmplY3QxOGdldFByaW1pdGl2ZU51bWJlckVQTlNfOUV4ZWNTdGF0ZUVSZFJOU183SlNW
YWx1ZUUKLV9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0M4SlNPYmplY3QxOWdldE93blBy
b3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVF
bnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKIF9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3Bl
cnR5U2xvdEVQTlNfN0pTVmFsdWVFICAKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZUVtbQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYK
aW5kZXggYjlhODVjZi4uYjMxZTI0OCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC0xMzgsOSArMTM4LDkgQEAgRVhQT1JUUwogICAgID9nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JASlNTdHJpbmdASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJA
QUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCi0g
ICAgP2dldE93blByb3BlcnR5TmFtZXNASlNWYXJpYWJsZU9iamVjdEBKU0NAQFVBRVhQQVZFeGVj
U3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCi0gICAgP2dldE93blByb3BlcnR5TmFt
ZXNAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFy
cmF5QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoK
KyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpTQ0BAVUFFWFBBVkV4
ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgor
ICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQFN0cmluZ09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoKICAgICA/
Z2V0T3duUHJvcGVydHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRl
bnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldE93blByb3BlcnR5U2xvdEBK
U0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAg
ID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQElB
QVZQcm9wZXJ0eVNsb3RAMkBAWgpAQCAtMTUyLDcgKzE1Miw3IEBAIEVYUE9SVFMKICAgICA/Z2V0
UHJpbWl0aXZlTnVtYmVyQEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQU5BQVZK
U1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJpbWl0aXZlTnVtYmVyQEpTU3RyaW5nQEpTQ0BARUFFX05Q
QVZFeGVjU3RhdGVAMkBBQU5BQVZKU1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJvcGVydHlEZXNjcmlw
dG9yQEpTT2JqZWN0QEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFW
UHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0UHJvcGVydHlOYW1lc0BKU09iamVjdEBK
U0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCisgICAgP2dl
dFByb3BlcnR5TmFtZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVy
dHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldFNsaWNlQEFyZ0xp
c3RASlNDQEBRQkVYSEFBVjEyQEBaCiAgICAgP2dldFN0cmluZ0BKU0NlbGxASlNDQEBRQkU/QVZV
U3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/Z2V0U3RyaW5nQEpTQ2VsbEBKU0NAQFFC
RV9OUEFWRXhlY1N0YXRlQDJAQUFWVVN0cmluZ0AyQEBaCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBkNDdkYjViLi4wNDQ0ZDIzIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcx
LDkgKzcxLDkgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICByZXR1cm4gbV9hY3RpdmF0
aW9uLT5kZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIERlYnVn
Z2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV9hY3RpdmF0aW9uLT5n
ZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIG1fYWN0aXZhdGlvbi0+
Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBE
ZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aAppbmRleCAzNzNlNjJkLi4zNTRmY2I4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRleCA4NmE4ZjBhLi5iYjMwZTNiIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0yMDQsNiArMjA0LDE5IEBAIGJvb2wgQXJndW1l
bnRzOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAordm9pZCBBcmd1bWVudHM6
OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCit7CisgICAgaWYgKG1vZGUgPT0g
SW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZC0+bnVtQXJndW1lbnRzOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZC0+ZGVsZXRl
ZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkKKyAgICAgICAgICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6OmZyb20oaSkpKTsKKyAg
ICAgICAgfQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Y2FsbGVlKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCk7CisgICAgfQorICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworfQorCiB2b2lkIEFyZ3VtZW50czo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIGlmIChpIDwgZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVsZXRlZEFyZ3VtZW50
cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5oCmluZGV4IDliNjc0YTIuLjc4MzA0NGQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aApAQCAtOTYsNiArOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBhYmU1MDM4Li5kZTI0ZjRhIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC01MCw2ICs1MCw3IEBA
CiAgICAgbWFjcm8oZ2V0KSBcCiAgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKICAgICBtYWNy
byhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5h
bWVzKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHkpIFwKICAgICBtYWNybyhpZ25vcmVDYXNl
KSBcCiAgICAgbWFjcm8oaW5kZXgpIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4
IDcyMjFmODcuLjJiZTczNzEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtNDY5
LDcgKzQ2OSw3IEBAIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FycmF5OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMpCit2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCiB7CiAgICAgLy8gRklYTUU6IEZpbGxpbmcgUHJvcGVydHlOYW1lQXJyYXkgd2l0aCBhbiBp
ZGVudGlmaWVyIGZvciBldmVyeSBpbnRlZ2VyCiAgICAgLy8gaXMgaW5jcmVkaWJseSBpbmVmZmlj
aWVudCBmb3IgbGFyZ2UgYXJyYXlzLiBXZSBuZWVkIGEgZGlmZmVyZW50IGFwcHJvYWNoLApAQCAt
NDg5LDcgKzQ4OSwxMCBAQCB2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYQogICAgICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpdC0+Zmlyc3QpKTsKICAgICB9
CiAKLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVz
KTsKKyAgICBpZiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKQorICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKKworICAgIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKHVuc2lnbmVkIG5ld0xlbmd0
aCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNjM1YjE0Mi4uNjRiMmZmMSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk4LDcgKzk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYs
IEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7CiAKICAgICAgICAgdm9p
ZCogbGF6eUNyZWF0aW9uRGF0YSgpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0J5dGVBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAppbmRleCAyNTA5Zjg1Li5mOGFiMWU4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcApAQCAtMTA0LDEyICsxMDQsMTIgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogICAgIHNl
dEluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMpCit2b2lkIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0
aW9uTW9kZSBtb2RlKQogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fc3RvcmFnZS0+bGVuZ3Ro
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKLSAgICBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IGRmNDgxZjguLjViN2FkY2Yg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTgyLDcgKzgyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAgIHZpcnR1YWwgY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiBtX2NsYXNzSW5mbzsgfQog
ICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfZGVmYXVsdEluZm87CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBmZGYyMGJkLi5kMjEzYjRhIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTIwOCw2ICsyMDgsMTcgQEAgYm9vbCBKU0Z1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU4KICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgIH0KICAgICAKK3ZvaWQg
SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKK3sKKyAgICBp
ZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGll
cykpIHsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFy
Z3VtZW50cyk7CisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5jYWxsZWUpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuY2FsbGVyKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCk7CisgICAgfQorICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywg
cHJvcGVydHlOYW1lcywgbW9kZSk7Cit9CisKIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgaWYgKGlzSG9zdEZ1bmN0aW9uKCkpIHsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggNjdmMDdmYi4uYmRiNzliOCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTgyLDYgKzgyLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBt
b2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGMzNmRjMTAuLmY0NzY0ZTIgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IGJvb2wgSlNOb3RBbk9iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JikKK3ZvaWQg
SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhl
YywgZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgZXhlYy0+ZXhjZXB0aW9uKCkgPT0gbV9leGNlcHRp
b24pOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBhMjcxYzRl
Li5kNWY0MzBjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtOTEs
NyArOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICBKU05v
dEFuT2JqZWN0RXJyb3JTdHViKiBtX2V4Y2VwdGlvbjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCBlZDlmZGMyLi5kOTUwMGFhIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJU
X0NMQVNTX0ZJVFNfSU5fQ0VMTChKU09iamVjdCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBnZXRF
bnVtZXJhYmxlUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3N0YXRpYyBpbmxp
bmUgdm9pZCBnZXRDbGFzc1Byb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQogewogICAgIC8vIEFkZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHN0YXRp
YyBoYXNodGFibGVzIG9mIHByb3BlcnRpZXMKICAgICBmb3IgKDsgY2xhc3NJbmZvOyBjbGFzc0lu
Zm8gPSBjbGFzc0luZm8tPnBhcmVudENsYXNzKSB7CkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IENsYXNzSW5mbyoKICAgICAgICAgaW50IGhhc2hTaXplTWFzayA9IHRhYmxlLT5jb21wYWN0
U2l6ZSAtIDE7CiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+dGFibGU7
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGhhc2hTaXplTWFzazsgKytpLCArK2VudHJ5
KSB7Ci0gICAgICAgICAgICBpZiAoZW50cnktPmtleSgpICYmICEoZW50cnktPmF0dHJpYnV0ZXMo
KSAmIERvbnRFbnVtKSkKKyAgICAgICAgICAgIGlmIChlbnRyeS0+a2V5KCkgJiYgKCEoZW50cnkt
PmF0dHJpYnV0ZXMoKSAmIERvbnRFbnVtKSB8fCAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9w
ZXJ0aWVzKSkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZW50cnktPmtleSgp
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTQyNSw5ICs0MjUsOSBAQCBib29sIEpTT2JqZWN0Ojpn
ZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
KQordm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKLSAg
ICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIGdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiAKICAgICBpZiAocHJvdG90
eXBlKCkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQzNSwxMCArNDM1LDEwIEBAIHZv
aWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lCiAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGFzT2JqZWN0
KHRoaXMtPnByb3RvdHlwZSgpKTsKICAgICB3aGlsZSgxKSB7CiAgICAgICAgIGlmIChwcm90b3R5
cGUtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkg
ewotICAgICAgICAgICAgcHJvdG90eXBlLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMpOworICAgICAgICAgICAgcHJvdG90eXBlLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgcHJvdG90eXBlLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwor
ICAgICAgICBwcm90b3R5cGUtPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cywgbW9kZSk7CiAgICAgICAgIEpTVmFsdWUgbmV4dFByb3RvID0gcHJvdG90eXBlLT5wcm90b3R5
cGUoKTsKICAgICAgICAgaWYgKG5leHRQcm90by5pc051bGwoKSkKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNDQ2LDEwICs0NDYsMTAgQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWUKICAgICB9CiB9
CiAKLXZvaWQgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV9zdHJ1Y3R1cmUtPmdldEVudW1l
cmFibGVQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpOwotICAgIGdldEVudW1lcmFibGVQcm9w
ZXJ0eU5hbWVzKGV4ZWMsIGNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBtX3N0cnVj
dHVyZS0+Z2V0UHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBnZXRDbGFz
c1Byb3BlcnR5TmFtZXMoZXhlYywgY2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTT2JqZWN0Ojp0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3QKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCBhNWRhMjY3Li5kOTMxYTRhIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCkBAIC0xMjIsOCArMTIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIEpTVmFsdWUg
cHJvdG90eXBlUHJvcGVydHkpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250
RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSB0b1ByaW1pdGl2ZShF
eGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqLCBkb3Vi
bGUmIG51bWJlciwgSlNWYWx1ZSYgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5jcHAKaW5kZXggM2FhOWU2Mi4uNzM2NTAwMSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCkBAIC00MiwxNSArNDIsMTUgQEAgYm9v
bCBKU1ZhcmlhYmxlT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnQKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzKQordm9pZCBKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewogICAgIFN5bWJvbFRhYmxlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBzeW1i
b2xUYWJsZSgpLmVuZCgpOwogICAgIGZvciAoU3ltYm9sVGFibGU6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gc3ltYm9sVGFibGUoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYg
KCEoaXQtPnNlY29uZC5nZXRBdHRyaWJ1dGVzKCkgJiBEb250RW51bSkpCisgICAgICAgIGlmICgh
KGl0LT5zZWNvbmQuZ2V0QXR0cmlidXRlcygpICYgRG9udEVudW0pIHx8IChtb2RlID09IEluY2x1
ZGVEb250RW51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcihleGVjLCBpdC0+Zmlyc3QuZ2V0KCkpKTsKICAgICB9CiAgICAgCi0gICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IGJvb2wgSlNWYXJpYWJsZU9iamVjdDo6aXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IDE1ZDZmZjUuLjczNzgxNmQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisr
KyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCkBAIC00OSw3ICs0
OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJp
YnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7
CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEeW5hbWljU2NvcGUoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDY5M2VmYzMu
LjA4MzhlYjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCkBAIC0zNiw2ICszNiw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoT2JqZWN0Q29u
c3RydWN0b3IpOwogCiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVj
dG9yR2V0UHJvdG90eXBlT2YoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBB
cmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwg
Y29uc3QgQXJnTGlzdCYpOworc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVl
LCBjb25zdCBBcmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yS2V5cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xp
c3QmKTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZp
bmVQcm9wZXJ0eShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3Qm
KTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQ
cm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYp
OwpAQCAtNTIsNiArNTMsNyBAQCBPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cgogICAgIAogICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5nZXRQcm90b3R5cGVPZiwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90
b3R5cGVPZiksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvciks
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMs
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0T3duUHJvcGVydHlOYW1lcywg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKSwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5rZXlzLCBvYmplY3RDb25zdHJ1Y3RvcktleXMpLCBEb250RW51bSk7
CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMp
IE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwg
MywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmRlZmluZVByb3BlcnR5LCBvYmplY3RDb25zdHJ1Y3Rv
ckRlZmluZVByb3BlcnR5KSwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywg
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5kZWZp
bmVQcm9wZXJ0aWVzLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpLCBEb250RW51
bSk7CkBAIC0xMjYsNiArMTI4LDIwIEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsCiB9CiAKIC8v
IEZJWE1FOiBVc2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgorSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAgICBpZiAoIWFyZ3Mu
YXQoMCkuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVy
cm9yLCAiUmVxdWVzdGVkIHByb3BlcnR5IG5hbWVzIG9mIGEgdmFsdWUgdGhhdCBpcyBub3QgYW4g
b2JqZWN0LiIpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoZXhlYyk7CisgICAg
YXNPYmplY3QoYXJncy5hdCgwKSktPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydGll
cywgSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CisgICAgSlNBcnJheSogbmFtZXMgPSBjb25z
dHJ1Y3RFbXB0eUFycmF5KGV4ZWMpOworICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspCisgICAgICAgIG5hbWVzLT5wdXNoKGV4ZWMsIGpzT3duZWRTdHJpbmcoZXhlYywgcHJvcGVy
dGllc1tpXS51c3RyaW5nKCkpKTsKKyAgICByZXR1cm4gbmFtZXM7Cit9CisKKy8vIEZJWE1FOiBV
c2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgogSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yS2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3Qg
QXJnTGlzdCYgYXJncykKIHsKICAgICBpZiAoIWFyZ3MuYXQoMCkuaXNPYmplY3QoKSkKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4IDgyOWY3Y2YuLjM4
ZDNjYjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApA
QCAtNzksMTEgKzc5LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpT
QXJyYXk6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBhcnIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIGFyciwgRW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAobGF6eUNyZWF0aW9uRGF0YSgpKQogICAgICAgICAgICAgICAgIGZpbGxB
cnJheUluc3RhbmNlKGV4ZWMpOwotICAgICAgICAgICAgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhleGVjLCBhcnIpOworICAgICAgICAgICAgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhleGVjLCBhcnIsIG1vZGUpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBmaWxsQXJyYXlJ
bnN0YW5jZShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cAppbmRleCBmMjNhMjBkLi5mOGUwZTg3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwCkBAIC04NiwxMiArODYsMTQgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW0KICAg
ICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9
CiAKLXZvaWQgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFN0cmluZ09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBpbnQgc2l6ZSA9IGlu
dGVybmFsVmFsdWUoKS0+bGVuZ3RoKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXIoZXhlYywgVVN0cmluZzo6
ZnJvbShpKSkpOwotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBpZiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggODRlMWFkMi4uYjcyMGI5MCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAg
IHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5m
bzsgfQogICAgICAgICBzdGF0aWMgY29uc3QgSlNfRVhQT1JUREFUQSBDbGFzc0luZm8gaW5mbzsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA1YjlhNTUzLi5jMzcwMzgzIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBp
bnQgY29tcGFyZVByb3BlcnR5TWFwRW50cnlJbmRpY2VzKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZv
aWQqIGIpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgU3RydWN0dXJlOjpnZXRFbnVtZXJhYmxl
UHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgU3Ry
dWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzKFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZO
ZWNlc3NhcnkoKTsKICAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKQEAgLTEwODYsNyArMTA4Niw3
IEBAIHZvaWQgU3RydWN0dXJlOjpnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKICAgICAgICAgdW5zaWduZWQgZW50cnlDb3VudCA9IG1f
cHJvcGVydHlUYWJsZS0+a2V5Q291bnQgKyBtX3Byb3BlcnR5VGFibGUtPmRlbGV0ZWRTZW50aW5l
bENvdW50OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAxOyBrIDw9IGVudHJ5Q291bnQ7IGsr
KykgewogICAgICAgICAgICAgQVNTRVJUKG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMgfHwg
IShtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pKTsK
LSAgICAgICAgICAgIGlmIChtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5rZXkgJiYgISht
X3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pKSB7Cisg
ICAgICAgICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10ua2V5ICYmICghKG1f
cHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2tdLmF0dHJpYnV0ZXMgJiBEb250RW51bSkgfHwgKG1v
ZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykpKSB7CiAgICAgICAgICAgICAgICAgUHJv
cGVydHlNYXBFbnRyeSogdmFsdWUgPSAmbV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba107CiAg
ICAgICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgICAgICAgZm9yIChqID0gaSAtIDE7IGog
Pj0gMCAmJiBhW2pdLT5pbmRleCA+IHZhbHVlLT5pbmRleDsgLS1qKQpAQCAtMTExMyw3ICsxMTEz
LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmdldEVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQogICAgIFByb3BlcnR5TWFwRW50cnkqKiBwID0gc29y
dGVkRW51bWVyYWJsZXMuZGF0YSgpOwogICAgIHVuc2lnbmVkIGVudHJ5Q291bnQgPSBtX3Byb3Bl
cnR5VGFibGUtPmtleUNvdW50ICsgbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkU2VudGluZWxDb3Vu
dDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IGVudHJ5Q291bnQ7IGkrKykgewotICAg
ICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClbaV0ua2V5ICYmICEobV9wcm9wZXJ0
eVRhYmxlLT5lbnRyaWVzKClbaV0uYXR0cmlidXRlcyAmIERvbnRFbnVtKSkKKyAgICAgICAgaWYg
KG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2ldLmtleSAmJiAoIShtX3Byb3BlcnR5VGFibGUt
PmVudHJpZXMoKVtpXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pIHx8IChtb2RlID09IEluY2x1ZGVE
b250RW51bVByb3BlcnRpZXMpKSkKICAgICAgICAgICAgICpwKysgPSAmbV9wcm9wZXJ0eVRhYmxl
LT5lbnRyaWVzKClbaV07CiAgICAgfQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRl
eCA4MzljYmQwLi4wOTlkYTZlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTUx
LDYgKzUxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5
OwogICAgIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5RGF0YTsKIAorICAgIGVudW0gRW51bWVyYXRp
b25Nb2RlIHsKKyAgICAgICAgRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcywKKyAgICAgICAgSW5j
bHVkZURvbnRFbnVtUHJvcGVydGllcworICAgIH07CisKICAgICBjbGFzcyBTdHJ1Y3R1cmUgOiBw
dWJsaWMgUmVmQ291bnRlZDxTdHJ1Y3R1cmU+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKSVQ7CkBAIC0xMzEsNyArMTM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgdm9pZCBzZXRFbnVtZXJhdGlvbkNhY2hlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1l
cmF0aW9uQ2FjaGUpOyAvLyBEZWZpbmVkIGluIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaC4KICAg
ICAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSgpIHsgcmV0dXJu
IG1fZW51bWVyYXRpb25DYWNoZS5nZXQoKTsgfQotICAgICAgICB2b2lkIGdldEVudW1lcmFibGVQ
cm9wZXJ0eU5hbWVzKFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZvaWQgZ2V0UHJvcGVy
dHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlKTsKICAgICAg
ICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlLCBj
b25zdCBUeXBlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IDVmYWNjMTIuLjlhY2ZhN2YgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNl
bkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAg
IEFkZCBuZXcgYXJndW1lbnQgdG8gdGhlIHJlaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVy
dHlOYW1lcygpLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2Vy
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1w
Lmg6CisKIDIwMTAtMDEtMDcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFjIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRHbHVlL1VzZXJP
YmplY3RJbXAuY3BwIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNzEy
OTQ3NS4uMWZiYjk4MiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5j
cHAKKysrIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTk0LDcgKzk0LDcg
QEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMs
IEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdAogfQogCiAKLXZvaWQgVXNlck9iamVjdEltcDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzKQordm9pZCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSAqZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewogICAgIEpTVXNlck9iamVjdCogcHRyID0gR2V0SlNVc2VyT2JqZWN0KCk7
CiAgICAgaWYgKHB0cikgewpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgVXNlck9iamVjdEltcDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wCiAgICAgICAgICAgICBDRlJlbGVhc2UoY2ZQcm9wZXJ0eU5hbWVzKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5h
bWVzKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2VyT2JqZWN0R2V0dGVy
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5o
IGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDZiYjU3OTIuLjY1NDFhODQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVy
dGllcyk7CiAKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgQXJnTGlzdCAmYXJncyk7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZmMjAxMzAuLmQ5NTQxYjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0g
SW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCB0ZXN0cyBm
b3IgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobyksIGJvdGggc3RhbmRhcmQgdXNhZ2UgYW5k
IGNyb3NzIG9yaWdpbi4KKworICAgICAgICAqIGZhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5
TmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51
bWVyYXRpb24uaHRtbDoKKwogMjAxMC0wMS0xMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdkLiBSZW1vdmUgYSBkdXBsaWNhdGVkIGxpbmUgaW4g
YW4gZXhwZWN0YXRpb24gZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4NzhmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOTAgQEAKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoe30pIGlzIFtdCitQQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoe2E6bnVsbH0pIGlzIFsnYSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5
TmFtZXMoe2E6bnVsbCwgYjpudWxsfSkgaXMgWydhJywgJ2InXQorUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKHtiOm51bGwsIGE6bnVsbH0pIGlzIFsnYScsICdiJ10KK1BBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyh7X19wcm90b19fOnthOm51bGx9fSkgaXMgW10KK1BBU1MgZ2V0
U29ydGVkT3duUHJvcGVydHlOYW1lcyh7X19wcm90b19fOlsxLDIsM119KSBpcyBbXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5jcmVhdGUoe30sIHsgJ2EnOiB7ICd2YWx1
ZSc6IDEsICdlbnVtZXJhYmxlJzogZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhPYmplY3QuY3JlYXRlKFsxLDIsM10sIHsgJ2EnOiB7ICd2YWx1ZSc6
IDEsICdlbnVtZXJhYmxlJzogZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhuZXcgRnVuY3Rpb24oKSkgaXMgWydhcmd1bWVudHMnLCAnY2FsbGVlJywg
J2NhbGxlcicsICdsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IEZ1bmN0aW9uKCk7eC5fX3Byb3RvX189WzEsMiwzXTty
ZXR1cm4geDt9KSgpKSBpcyBbJ2FyZ3VtZW50cycsICdjYWxsZWUnLCAnY2FsbGVyJywgJ2xlbmd0
aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3RyaW5nKCcn
KSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJp
bmcoJ2EnKSkgaXMgWycwJywgJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMobmV3IFN0cmluZygnYWJjJykpIGlzIFsnMCcsICcxJywgJzInLCAnbGVuZ3RoJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcygoZnVuY3Rpb24oKXt2YXIgeD1uZXcgU3RyaW5nKCcn
KTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFsnbGVuZ3RoJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbXSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKFtudWxsXSkgaXMgWycwJywgJ2xlbmd0aCddCitQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoW251bGwsbnVsbF0pIGlzIFsnMCcsJzEnLCAnbGVuZ3RoJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbbnVsbCxudWxsLCwsLG51bGxdKSBpcyBb
JzAnLCcxJywnNScsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKChm
dW5jdGlvbigpe3ZhciB4PVtdO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMg
WydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBEYXRlKCkpIGlz
IFtdCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3
IERhdGUoKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFtdCitQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IFJlZ0V4cCgnZm9vJykpIGlzIFsnZ2xvYmFsJywg
J2lnbm9yZUNhc2UnLCAnbGFzdEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKChmdW5jdGlvbigpe3ZhciB4PW5ldyBSZWdFeHAoKTt4
Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFsnZ2xvYmFsJywgJ2lnbm9yZUNh
c2UnLCAnbGFzdEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgpKSBpcyBbJ2NhbGxlZScsICdsZW5ndGgn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgxKSkgaXMg
WycwJywgJ2NhbGxlZScsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KGFyZ3VtZW50c09iamVjdCgxLDIsMykpIGlzIFsnMCcsICcxJywgJzInLCAnY2FsbGVlJywgJ2xl
bmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7YXJndW1l
bnRzLl9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiBhcmd1bWVudHM7fSkoKSkgaXMgWydjYWxsZWUn
LCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhwYXJzZUludCkgaXMg
WydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMocGFyc2VG
bG9hdCkgaXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoaXNOYU4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKGlzRmluaXRlKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhlc2NhcGUpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKHVuZXNjYXBlKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhkZWNvZGVVUkkpIGlzIFsnbGVuZ3RoJywgJ25hbWUn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGRlY29kZVVSSUNvbXBvbmVudCkgaXMg
WydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoZW5jb2Rl
VVJJKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyhlbmNvZGVVUklDb21wb25lbnQpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdCkgaXMgWydjcmVhdGUnLCAnZGVmaW5lUHJvcGVydGll
cycsICdkZWZpbmVQcm9wZXJ0eScsICdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCAnZ2V0T3du
UHJvcGVydHlOYW1lcycsICdnZXRQcm90b3R5cGVPZicsICdrZXlzJywgJ2xlbmd0aCcsICduYW1l
JywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnBy
b3RvdHlwZSkgaXMgWydfX2RlZmluZUdldHRlcl9fJywgJ19fZGVmaW5lU2V0dGVyX18nLCAnX19s
b29rdXBHZXR0ZXJfXycsICdfX2xvb2t1cFNldHRlcl9fJywgJ2NvbnN0cnVjdG9yJywgJ2hhc093
blByb3BlcnR5JywgJ2lzUHJvdG90eXBlT2YnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLCAndG9M
b2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVPZiddCitQQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoRnVuY3Rpb24pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5cGUpIGlzIFsn
YXBwbHknLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmlu
ZyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnaXNBcnJheScs
ICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKEFycmF5LnByb3RvdHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZl
cnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9m
JywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0
JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScs
ICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10KK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICdu
YW1lJywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5n
LnByb3RvdHlwZSkgaXMgWydhbmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0
JywgJ2NoYXJDb2RlQXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRj
b2xvcicsICdmb250c2l6ZScsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAn
bGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3Nl
YXJjaCcsICdzbGljZScsICdzbWFsbCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0
cicsICdzdWJzdHJpbmcnLCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBw
ZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0n
LCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXQorUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKEJvb2xlYW4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhCb29sZWFuLnByb3RvdHlwZSkgaXMgWydj
b25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhOdW1iZXIpIGlzIFsnTUFYX1ZBTFVFJywgJ01JTl9WQUxVRScsICdORUdBVElW
RV9JTkZJTklUWScsICdOYU4nLCAnUE9TSVRJVkVfSU5GSU5JVFknLCAnbGVuZ3RoJywgJ25hbWUn
LCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhOdW1iZXIucHJv
dG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAndG9GaXhlZCcsICd0
b0xvY2FsZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhEYXRlKSBpcyBbJ1VUQycsICdsZW5ndGgnLCAn
bmFtZScsICdub3cnLCAncGFyc2UnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhEYXRlLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICdnZXREYXRlJywg
J2dldERheScsICdnZXRGdWxsWWVhcicsICdnZXRIb3VycycsICdnZXRNaWxsaXNlY29uZHMnLCAn
Z2V0TWludXRlcycsICdnZXRNb250aCcsICdnZXRTZWNvbmRzJywgJ2dldFRpbWUnLCAnZ2V0VGlt
ZXpvbmVPZmZzZXQnLCAnZ2V0VVRDRGF0ZScsICdnZXRVVENEYXknLCAnZ2V0VVRDRnVsbFllYXIn
LCAnZ2V0VVRDSG91cnMnLCAnZ2V0VVRDTWlsbGlzZWNvbmRzJywgJ2dldFVUQ01pbnV0ZXMnLCAn
Z2V0VVRDTW9udGgnLCAnZ2V0VVRDU2Vjb25kcycsICdnZXRZZWFyJywgJ3NldERhdGUnLCAnc2V0
RnVsbFllYXInLCAnc2V0SG91cnMnLCAnc2V0TWlsbGlzZWNvbmRzJywgJ3NldE1pbnV0ZXMnLCAn
c2V0TW9udGgnLCAnc2V0U2Vjb25kcycsICdzZXRUaW1lJywgJ3NldFVUQ0RhdGUnLCAnc2V0VVRD
RnVsbFllYXInLCAnc2V0VVRDSG91cnMnLCAnc2V0VVRDTWlsbGlzZWNvbmRzJywgJ3NldFVUQ01p
bnV0ZXMnLCAnc2V0VVRDTW9udGgnLCAnc2V0VVRDU2Vjb25kcycsICdzZXRZZWFyJywgJ3RvRGF0
ZVN0cmluZycsICd0b0dNVFN0cmluZycsICd0b0lTT1N0cmluZycsICd0b0pTT04nLCAndG9Mb2Nh
bGVEYXRlU3RyaW5nJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvTG9jYWxlVGltZVN0cmluZycsICd0
b1N0cmluZycsICd0b1RpbWVTdHJpbmcnLCAndG9VVENTdHJpbmcnLCAndmFsdWVPZiddCitQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoUmVnRXhwKSBpcyBbJyQmJywgIiQnIiwgJyQqJywg
JyQrJywgJyQxJywgJyQyJywgJyQzJywgJyQ0JywgJyQ1JywgJyQ2JywgJyQ3JywgJyQ4JywgJyQ5
JywgJyRfJywgJyRgJywgJ2lucHV0JywgJ2xhc3RNYXRjaCcsICdsYXN0UGFyZW4nLCAnbGVmdENv
bnRleHQnLCAnbGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ3Byb3RvdHlwZScsICdyaWdo
dENvbnRleHQnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFJlZ0V4cC5wcm90b3R5
cGUpIGlzIFsnY29tcGlsZScsICdjb25zdHJ1Y3RvcicsICdleGVjJywgJ3Rlc3QnLCAndG9TdHJp
bmcnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yKSBpcyBbJ2xlbmd0aCcs
ICduYW1lJywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJy
b3IucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0
cmluZyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywgJ0xO
MTAnLCAnTE4yJywgJ0xPRzEwRScsICdMT0cyRScsICdQSScsICdTUVJUMV8yJywgJ1NRUlQyJywg
J2FicycsICdhY29zJywgJ2FzaW4nLCAnYXRhbicsICdhdGFuMicsICdjZWlsJywgJ2NvcycsICdl
eHAnLCAnZmxvb3InLCAnbG9nJywgJ21heCcsICdtaW4nLCAncG93JywgJ3JhbmRvbScsICdyb3Vu
ZCcsICdzaW4nLCAnc3FydCcsICd0YW4nXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KEpTT04pIGlzIFsncGFyc2UnLCAnc3RyaW5naWZ5J10KK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1l
cy5pbmRleE9mKCdOYU4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignSW5maW5pdHknKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZigndW5kZWZpbmVkJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ3BhcnNlSW50JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9w
ZXJ0eU5hbWVzLmluZGV4T2YoJ3BhcnNlRmxvYXQnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2Jh
bFByb3BlcnR5TmFtZXMuaW5kZXhPZignaXNOYU4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2Jh
bFByb3BlcnR5TmFtZXMuaW5kZXhPZignaXNGaW5pdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGds
b2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBn
bG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ3VuZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFT
UyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2RlY29kZVVSSScpICE9IC0xIGlzIHRydWUK
K1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdkZWNvZGVVUklDb21wb25lbnQnKSAh
PSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZW5jb2RlVVJJ
JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2VuY29k
ZVVSSUNvbXBvbmVudCcpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5p
bmRleE9mKCdPYmplY3QnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignRnVuY3Rpb24nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZignQXJyYXknKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZignU3RyaW5nJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5h
bWVzLmluZGV4T2YoJ0Jvb2xlYW4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignTnVtYmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ0RhdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignUmVnRXhwJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ0Vycm9yJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ01hdGgnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignSlNPTicpICE9IC0xIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYmMxYWM0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9w
ZXJ0eU5hbWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFt
ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3ZjAyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC0wLDAgKzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCB0
byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMi
KTsKKworZnVuY3Rpb24gYXJndW1lbnRzT2JqZWN0KCkgeyByZXR1cm4gYXJndW1lbnRzOyB9Owor
Cit2YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0geworICAgICJ7fSI6ICJbXSIsCisgICAg
InthOm51bGx9IjogIlsnYSddIiwKKyAgICAie2E6bnVsbCwgYjpudWxsfSI6ICJbJ2EnLCAnYidd
IiwKKyAgICAie2I6bnVsbCwgYTpudWxsfSI6ICJbJ2EnLCAnYiddIiwKKyAgICAie19fcHJvdG9f
Xzp7YTpudWxsfX0iOiAiW10iLAorICAgICJ7X19wcm90b19fOlsxLDIsM119IjogIltdIiwKKyAg
ICAiT2JqZWN0LmNyZWF0ZSh7fSwgeyAnYSc6IHsgJ3ZhbHVlJzogMSwgJ2VudW1lcmFibGUnOiBm
YWxzZSB9IH0pIjogIlsnYSddIiwKKyAgICAiT2JqZWN0LmNyZWF0ZShbMSwyLDNdLCB7ICdhJzog
eyAndmFsdWUnOiAxLCAnZW51bWVyYWJsZSc6IGZhbHNlIH0gfSkiOiAiWydhJ10iLAorLy8gRnVu
Y3Rpb24gb2JqZWN0cworICAgICJuZXcgRnVuY3Rpb24oKSI6ICJbJ2FyZ3VtZW50cycsICdjYWxs
ZWUnLCAnY2FsbGVyJywgJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICIoZnVuY3Rpb24oKXt2YXIg
eD1uZXcgRnVuY3Rpb24oKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiWydh
cmd1bWVudHMnLCAnY2FsbGVlJywgJ2NhbGxlcicsICdsZW5ndGgnLCAnbmFtZSddIiwKKy8vIFN0
cmluZyBvYmplY3RzCisgICAgIm5ldyBTdHJpbmcoJycpIjogIlsnbGVuZ3RoJ10iLAorICAgICJu
ZXcgU3RyaW5nKCdhJykiOiAiWycwJywgJ2xlbmd0aCddIiwKKyAgICAibmV3IFN0cmluZygnYWJj
JykiOiAiWycwJywgJzEnLCAnMicsICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4
PW5ldyBTdHJpbmcoJycpO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2xl
bmd0aCddIiwKKy8vIEFycmF5IG9iamVjdHMKKyAgICAiW10iOiAiWydsZW5ndGgnXSIsCisgICAg
IltudWxsXSI6ICJbJzAnLCAnbGVuZ3RoJ10iLAorICAgICJbbnVsbCxudWxsXSI6ICJbJzAnLCcx
JywgJ2xlbmd0aCddIiwKKyAgICAiW251bGwsbnVsbCwsLCxudWxsXSI6ICJbJzAnLCcxJywnNScs
ICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4PVtdO3guX19wcm90b19fPVsxLDIs
M107cmV0dXJuIHg7fSkoKSI6ICJbJ2xlbmd0aCddIiwKKy8vIERhdGUgb2JqZWN0cworICAgICJu
ZXcgRGF0ZSgpIjogIltdIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IERhdGUoKTt4Ll9f
cHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiW10iLAorLy8gUmVnRXhwIG9iamVjdHMK
KyAgICAibmV3IFJlZ0V4cCgnZm9vJykiOiAiWydnbG9iYWwnLCAnaWdub3JlQ2FzZScsICdsYXN0
SW5kZXgnLCAnbXVsdGlsaW5lJywgJ3NvdXJjZSddIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9
bmV3IFJlZ0V4cCgpO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2dsb2Jh
bCcsICdpZ25vcmVDYXNlJywgJ2xhc3RJbmRleCcsICdtdWx0aWxpbmUnLCAnc291cmNlJ10iLAor
Ly8gQXJndW1lbnRzIG9iamVjdHMKKyAgICAgImFyZ3VtZW50c09iamVjdCgpIjogIlsnY2FsbGVl
JywgJ2xlbmd0aCddIiwKKyAgICAgImFyZ3VtZW50c09iamVjdCgxKSI6ICJbJzAnLCAnY2FsbGVl
JywgJ2xlbmd0aCddIiwKKyAgICAgImFyZ3VtZW50c09iamVjdCgxLDIsMykiOiAiWycwJywgJzEn
LCAnMicsICdjYWxsZWUnLCAnbGVuZ3RoJ10iLAorICAgICIoZnVuY3Rpb24oKXthcmd1bWVudHMu
X19wcm90b19fPVsxLDIsM107cmV0dXJuIGFyZ3VtZW50czt9KSgpIjogIlsnY2FsbGVlJywgJ2xl
bmd0aCddIiwKKy8vIEJ1aWx0LWluIEVDTUEgZnVuY3Rpb25zCisgICAgInBhcnNlSW50IjogIlsn
bGVuZ3RoJywgJ25hbWUnXSIsCisgICAgInBhcnNlRmxvYXQiOiAiWydsZW5ndGgnLCAnbmFtZSdd
IiwKKyAgICAiaXNOYU4iOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiaXNGaW5pdGUiOiAi
WydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiZXNjYXBlIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIs
CisgICAgInVuZXNjYXBlIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgImRlY29kZVVSSSI6
ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICJkZWNvZGVVUklDb21wb25lbnQiOiAiWydsZW5n
dGgnLCAnbmFtZSddIiwKKyAgICAiZW5jb2RlVVJJIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisg
ICAgImVuY29kZVVSSUNvbXBvbmVudCI6ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorLy8gQnVpbHQt
aW4gRUNNQSBvYmplY3RzCisgICAgIk9iamVjdCI6ICJbJ2NyZWF0ZScsICdkZWZpbmVQcm9wZXJ0
aWVzJywgJ2RlZmluZVByb3BlcnR5JywgJ2dldE93blByb3BlcnR5RGVzY3JpcHRvcicsICdnZXRP
d25Qcm9wZXJ0eU5hbWVzJywgJ2dldFByb3RvdHlwZU9mJywgJ2tleXMnLCAnbGVuZ3RoJywgJ25h
bWUnLCAncHJvdG90eXBlJ10iLAorICAgICJPYmplY3QucHJvdG90eXBlIjogIlsnX19kZWZpbmVH
ZXR0ZXJfXycsICdfX2RlZmluZVNldHRlcl9fJywgJ19fbG9va3VwR2V0dGVyX18nLCAnX19sb29r
dXBTZXR0ZXJfXycsICdjb25zdHJ1Y3RvcicsICdoYXNPd25Qcm9wZXJ0eScsICdpc1Byb3RvdHlw
ZU9mJywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5n
JywgJ3ZhbHVlT2YnXSIsCisgICAgIkZ1bmN0aW9uIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJv
dG90eXBlJ10iLAorICAgICJGdW5jdGlvbi5wcm90b3R5cGUiOiAiWydhcHBseScsICdjYWxsJywg
J2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJBcnJh
eSI6ICJbJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJB
cnJheS5wcm90b3R5cGUiOiAiWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZlcnknLCAnZmls
dGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0
aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVy
c2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2Fs
ZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10iLAorICAgICJTdHJpbmciOiAiWydmcm9t
Q2hhckNvZGUnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJTdHJpbmcu
cHJvdG90eXBlIjogIlsnYW5jaG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJBdCcs
ICdjaGFyQ29kZUF0JywgJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdmaXhlZCcsICdmb250Y29s
b3InLCAnZm9udHNpemUnLCAnaW5kZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xl
bmd0aCcsICdsaW5rJywgJ2xvY2FsZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwbGFjZScsICdzZWFy
Y2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3BsaXQnLCAnc3RyaWtlJywgJ3N1YicsICdzdWJzdHIn
LCAnc3Vic3RyaW5nJywgJ3N1cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xvY2FsZVVwcGVy
Q2FzZScsICd0b0xvd2VyQ2FzZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScsICd0cmltJywg
J3RyaW1MZWZ0JywgJ3RyaW1SaWdodCcsICd2YWx1ZU9mJ10iLAorICAgICJCb29sZWFuIjogIlsn
bGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJCb29sZWFuLnByb3RvdHlwZSI6
ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCisgICAgIk51bWJlciI6
ICJbJ01BWF9WQUxVRScsICdNSU5fVkFMVUUnLCAnTkVHQVRJVkVfSU5GSU5JVFknLCAnTmFOJywg
J1BPU0lUSVZFX0lORklOSVRZJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKKyAg
ICAiTnVtYmVyLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAn
dG9GaXhlZCcsICd0b0xvY2FsZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2
YWx1ZU9mJ10iLAorICAgICJEYXRlIjogIlsnVVRDJywgJ2xlbmd0aCcsICduYW1lJywgJ25vdycs
ICdwYXJzZScsICdwcm90b3R5cGUnXSIsCisgICAgIkRhdGUucHJvdG90eXBlIjogIlsnY29uc3Ry
dWN0b3InLCAnZ2V0RGF0ZScsICdnZXREYXknLCAnZ2V0RnVsbFllYXInLCAnZ2V0SG91cnMnLCAn
Z2V0TWlsbGlzZWNvbmRzJywgJ2dldE1pbnV0ZXMnLCAnZ2V0TW9udGgnLCAnZ2V0U2Vjb25kcycs
ICdnZXRUaW1lJywgJ2dldFRpbWV6b25lT2Zmc2V0JywgJ2dldFVUQ0RhdGUnLCAnZ2V0VVRDRGF5
JywgJ2dldFVUQ0Z1bGxZZWFyJywgJ2dldFVUQ0hvdXJzJywgJ2dldFVUQ01pbGxpc2Vjb25kcycs
ICdnZXRVVENNaW51dGVzJywgJ2dldFVUQ01vbnRoJywgJ2dldFVUQ1NlY29uZHMnLCAnZ2V0WWVh
cicsICdzZXREYXRlJywgJ3NldEZ1bGxZZWFyJywgJ3NldEhvdXJzJywgJ3NldE1pbGxpc2Vjb25k
cycsICdzZXRNaW51dGVzJywgJ3NldE1vbnRoJywgJ3NldFNlY29uZHMnLCAnc2V0VGltZScsICdz
ZXRVVENEYXRlJywgJ3NldFVUQ0Z1bGxZZWFyJywgJ3NldFVUQ0hvdXJzJywgJ3NldFVUQ01pbGxp
c2Vjb25kcycsICdzZXRVVENNaW51dGVzJywgJ3NldFVUQ01vbnRoJywgJ3NldFVUQ1NlY29uZHMn
LCAnc2V0WWVhcicsICd0b0RhdGVTdHJpbmcnLCAndG9HTVRTdHJpbmcnLCAndG9JU09TdHJpbmcn
LCAndG9KU09OJywgJ3RvTG9jYWxlRGF0ZVN0cmluZycsICd0b0xvY2FsZVN0cmluZycsICd0b0xv
Y2FsZVRpbWVTdHJpbmcnLCAndG9TdHJpbmcnLCAndG9UaW1lU3RyaW5nJywgJ3RvVVRDU3RyaW5n
JywgJ3ZhbHVlT2YnXSIsCisgICAgIlJlZ0V4cCI6ICJbJyQmJywgXCIkJ1wiLCAnJConLCAnJCsn
LCAnJDEnLCAnJDInLCAnJDMnLCAnJDQnLCAnJDUnLCAnJDYnLCAnJDcnLCAnJDgnLCAnJDknLCAn
JF8nLCAnJGAnLCAnaW5wdXQnLCAnbGFzdE1hdGNoJywgJ2xhc3RQYXJlbicsICdsZWZ0Q29udGV4
dCcsICdsZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JpZ2h0Q29u
dGV4dCddIiwKKyAgICAiUmVnRXhwLnByb3RvdHlwZSI6ICJbJ2NvbXBpbGUnLCAnY29uc3RydWN0
b3InLCAnZXhlYycsICd0ZXN0JywgJ3RvU3RyaW5nJ10iLAorICAgICJFcnJvciI6ICJbJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKKyAgICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29u
c3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJNYXRoIjog
IlsnRScsICdMTjEwJywgJ0xOMicsICdMT0cxMEUnLCAnTE9HMkUnLCAnUEknLCAnU1FSVDFfMics
ICdTUVJUMicsICdhYnMnLCAnYWNvcycsICdhc2luJywgJ2F0YW4nLCAnYXRhbjInLCAnY2VpbCcs
ICdjb3MnLCAnZXhwJywgJ2Zsb29yJywgJ2xvZycsICdtYXgnLCAnbWluJywgJ3BvdycsICdyYW5k
b20nLCAncm91bmQnLCAnc2luJywgJ3NxcnQnLCAndGFuJ10iLAorICAgICJKU09OIjogIlsncGFy
c2UnLCAnc3RyaW5naWZ5J10iCit9OworCitmdW5jdGlvbiBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKG9iaikKK3sKKyAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5z
b3J0KCk7Cit9CisKK2ZvciAodmFyIGV4cHIgaW4gZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0KQor
ICAgIHNob3VsZEJlKCJnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKCIgKyBleHByICsgIikiLCBl
eHBlY3RlZFByb3BlcnR5TmFtZXNTZXRbZXhwcl0pOworCisvLyBHbG9iYWwgT2JqZWN0CisvLyBP
bmx5IGNoZWNrIGZvciBFQ01BIHByb3BlcnRpZXMgaGVyZQordmFyIGdsb2JhbFByb3BlcnR5TmFt
ZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKTsKK3ZhciBleHBlY3RlZEdsb2Jh
bFByb3BlcnR5TmFtZXMgPSBbCisgICAgIk5hTiIsCisgICAgIkluZmluaXR5IiwKKyAgICAidW5k
ZWZpbmVkIiwKKyAgICAicGFyc2VJbnQiLAorICAgICJwYXJzZUZsb2F0IiwKKyAgICAiaXNOYU4i
LAorICAgICJpc0Zpbml0ZSIsCisgICAgImVzY2FwZSIsCisgICAgInVuZXNjYXBlIiwKKyAgICAi
ZGVjb2RlVVJJIiwKKyAgICAiZGVjb2RlVVJJQ29tcG9uZW50IiwKKyAgICAiZW5jb2RlVVJJIiwK
KyAgICAiZW5jb2RlVVJJQ29tcG9uZW50IiwKKyAgICAiT2JqZWN0IiwKKyAgICAiRnVuY3Rpb24i
LAorICAgICJBcnJheSIsCisgICAgIlN0cmluZyIsCisgICAgIkJvb2xlYW4iLAorICAgICJOdW1i
ZXIiLAorICAgICJEYXRlIiwKKyAgICAiUmVnRXhwIiwKKyAgICAiRXJyb3IiLAorICAgICJNYXRo
IiwKKyAgICAiSlNPTiIKK107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRHbG9iYWxQ
cm9wZXJ0eU5hbWVzLmxlbmd0aDsgKytpKQorICAgIHNob3VsZEJlVHJ1ZSgiZ2xvYmFsUHJvcGVy
dHlOYW1lcy5pbmRleE9mKCciICsgZXhwZWN0ZWRHbG9iYWxQcm9wZXJ0eU5hbWVzW2ldICsgIicp
ICE9IC0xIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVy
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDI2YjQzNjUuLmU5
NzJmMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTE0LDEzICsxNCwyMiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZl
IEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cAogCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3Mg
ZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
ZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQg
YXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3Qu
aHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0
aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJv
dG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3RzIHRoYXQgdmFyaWFibGUg
bmFtZXMgY2FuJ3QgYmUgZW51bWVyYXRlZCBjcm9zcyBkb21haW4gKHNlZSBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM4NykKIAogCiBQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgYnkgZW51bWVyYXRpbmcgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6
IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSB3aW5kb3cgb2Jq
ZWN0IHdhcyBkZW5pZWQuCitQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUg
cHJvcGVydHkgbmFtZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENy
b3NzIGZyYW1lIGFjY2VzcyBieSBlbnVtZXJhdGluZyB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRl
bmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRo
ZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVuaWVkLgorUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5
IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVu
aWVkLgogUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGVudW1lcmF0aW5nIHRoZSBMb2NhdGlv
biBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5n
IHRoZSBrZXlzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4KK1BBU1M6IENyb3Nz
IGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgTG9jYXRp
b24gb2JqZWN0IHdhcyBkZW5pZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi5o
dG1sCmluZGV4IDcwN2ZmZjUuLjQ5YmZjZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVy
YXRpb24uaHRtbApAQCAtNTIsNiArNTIsMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhl
IHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4iKTsKIAorICAgICAgICAgICAgdmFyIGJfd2luUHJv
cGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJfd2luKTsKKyAgICAgICAg
ICAgIGlmIChiX3dpblByb3BlcnR5TmFtZXMuaW5kZXhPZigiY3VzdG9tV2luZG93UHJvcGVydHki
KSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNz
IGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBh
bGxvd2VkLiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3Bl
cnR5IG5hbWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuIik7CisKICAgICAgICAg
ICAgIC8vIFRlc3QgZW51bWVyYXRpbmcgdGhlIEhpc3Rvcnkgb2JqZWN0CiAgICAgICAgICAgICB2
YXIgYl93aW5faGlzdG9yeSA9IGJfd2luLmhpc3Rvcnk7CiAgICAgICAgICAgICB0cnkgewpAQCAt
NzIsNiArNzksMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jv
c3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIEhpc3Rvcnkgb2JqZWN0
IHdhcyBkZW5pZWQuIik7CiAKKyAgICAgICAgICAgIHZhciBiX3dpbkhpc3RvcnlQcm9wZXJ0eU5h
bWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYl93aW5faGlzdG9yeSk7CisgICAgICAg
ICAgICBpZiAoYl93aW5IaXN0b3J5UHJvcGVydHlOYW1lcy5pbmRleE9mKCJjdXN0b21IaXN0b3J5
UHJvcGVydHkiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJh
bWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9i
amVjdCB3YXMgYWxsb3dlZC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5n
IHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmllZC4iKTsK
KwogICAgICAgICAgICAgLy8gVGVzdCBlbnVtZXJhdGluZyB0aGUgTG9jYXRpb24gb2JqZWN0CiAg
ICAgICAgICAgICB2YXIgYl93aW5fbG9jYXRpb24gPSBiX3dpbi5sb2NhdGlvbjsKICAgICAgICAg
ICAgIHRyeSB7CkBAIC05MSw2ICsxMDUsMTMgQEAKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBi
eSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4iKTsK
KworICAgICAgICAgICAgdmFyIGJfd2luTG9jYXRpb25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5TmFtZXMoYl93aW5fbG9jYXRpb24pOworICAgICAgICAgICAgaWYgKGJfd2lu
TG9jYXRpb25Qcm9wZXJ0eU5hbWVzLmluZGV4T2YoImN1c3RvbUxvY2F0aW9uUHJvcGVydHkiKSAh
PSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5
IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGFs
bG93ZWQuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbG9nKCJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUgcHJvcGVy
dHkgbmFtZXMgb2YgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLiIpOwogICAgICAgICB9
CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkOGI1NjAuLjI1MjQ5OTcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTAtMDEtMTIgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5Abm9raWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFUzVdIEltcGxlbWVu
dCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIyNDIKKworICAgICAgICBBZGQgbmV3IGFyZ3VtZW50IHRv
IHJlaW1wbGVtZW50YXRpb25zIG9mIGdldFByb3BlcnR5TmFtZXMoKQorICAgICAgICBhbmQgZ2V0
T3duUHJvcGVydHlOYW1lcygpLCBhbmQgdXBkYXRlIHRoZSBKUyBiaW5kaW5ncyBnZW5lcmF0b3Iu
CisKKyAgICAgICAgVGVzdDogZmFzdC9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
UXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5
LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMC0wMS0x
MiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKaW5kZXggYjlmNmQzMi4uZTZjM2U5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTQxOSwyMCArNDE5LDIwIEBAIGJvb2wgSlNET01XaW5k
b3c6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5
TmFtZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNET01XaW5k
b3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgLy8gT25seSBhbGxv
dyB0aGUgd2luZG93IHRvIGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4K
ICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCiAgICAgICAgIHJldHVybjsKLSAgICBC
YXNlOjpnZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6Omdl
dFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgLy8gT25seSBhbGxvdyB0aGUgd2luZG93IHRv
IGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KICAgICBpZiAoIWFsbG93
c0FjY2Vzc0Zyb20oZXhlYykpCiAgICAgICAgIHJldHVybjsKLSAgICBCYXNlOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6
OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDkxNDFlZS4uMWU4MmE0
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTQsMTQg
KzExNCwxNCBAQCBib29sIEpTRE9NV2luZG93U2hlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIHJldHVybiBtX3dpbmRvdy0+
ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRv
d1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV93aW5kb3ctPmdldFByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7CisgICAgbV93aW5kb3ctPmdldFByb3BlcnR5TmFtZXMoZXhlYywg
cHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzKQordm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewotICAgIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMpOworICAgIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNP
YmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAyNzAzNmQ0Li5hODk1MTc3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtNzUsOCArNzUsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBK
U0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
LCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0
ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWZpbmVTZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5
Q3VzdG9tLmNwcAppbmRleCAzMDc2NTAzLi5mZmY3NDdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hpc3RvcnlDdXN0b20uY3BwCkBAIC0xNTQsMTIgKzE1NCwxMiBAQCBib29sIEpTSGlzdG9yeTo6
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiB9CiAKLXZvaWQgSlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTSGlzdG9yeTo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBPbmx5IGFsbG93
IHRoZSBoaXN0b3J5IG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBv
cmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1wbCgpLT5mcmFt
ZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogSlNWYWx1ZSBKU0hpc3Rvcnk6OnB1c2hTdGF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA2YzhlMDMyLi43OGQwMGRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTE2OCwxMiArMTY4LDEyIEBAIGJvb2wg
SlNMb2NhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNMb2NhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9p
ZCBKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAg
IC8vIE9ubHkgYWxsb3cgdGhlIGxvY2F0aW9uIG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1l
cyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhl
YywgaW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdm9pZCBKU0xvY2F0aW9u
OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAK
aW5kZXggZWEyZjcyZi4uZDc3OTdmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKQEAgLTMxMywyMCArMzEzLDIwIEBAIENhbGxU
eXBlIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2Fs
bERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotdm9pZCBKU1F1YXJhbnRpbmVk
T2JqZWN0V3JhcHBlcjo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYgYXJyYXkpCit2b2lkIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiBhcnJheSwgRW51bWVyYXRpb25N
b2RlIG1vZGUpCiB7CiAgICAgaWYgKCFhbGxvd3NHZXRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBtX3Vud3JhcHBlZE9iamVjdC0+Z2V0UHJvcGVydHlOYW1lcyh1
bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOworICAgIG1fdW53cmFwcGVkT2JqZWN0LT5nZXRQ
cm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgpLCBhcnJheSwgbW9kZSk7CiB9CiAKLXZv
aWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmIGFycmF5KQordm9pZCBKU1F1YXJhbnRpbmVkT2JqZWN0
V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgYXJyYXksIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGlmICghYWxsb3dzR2V0UHJv
cGVydHlOYW1lcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Vud3JhcHBlZE9iamVjdC0+
Z2V0T3duUHJvcGVydHlOYW1lcyh1bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOworICAgIG1f
dW53cmFwcGVkT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgp
LCBhcnJheSwgbW9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaAppbmRleCA5ZjYyNDk1
Li5lNDIzYTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRP
YmplY3RXcmFwcGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2Jq
ZWN0V3JhcHBlci5oCkBAIC03NCw4ICs3NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSBwcm90byk7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQ
cm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpT
Qzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0g
SlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICB2aXJ0dWFsIEpTQzo6
VVN0cmluZyBjbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiBtX3Vud3JhcHBlZE9iamVjdC0+Y2xh
c3NOYW1lKCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4
IGU0MTZkMzUuLjNjZmUyMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9y
YWdlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5j
cHAKQEAgLTY0LDEzICs2NCwxMyBAQCBib29sIEpTU3RvcmFnZTo6ZGVsZXRlUHJvcGVydHkoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgSlNTdG9yYWdlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTU3RvcmFn
ZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSBtX2ltcGwtPmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcihleGVjLCBt
X2ltcGwtPmtleShpKSkpOwogICAgICAgICAKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNTdG9yYWdlOjpwdXREZWxlZ2F0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3ZDBmMDkuLmNhYjM0ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjQ3LDcgKzY0Nyw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBDdXN0b20gZ2V0UHJvcGVydHlOYW1lcyBmdW5jdGlvbiBl
eGlzdHMgb24gRE9NV2luZG93CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGdldFBy
b3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJv
cGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6
OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTtc
biIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyJ9ID0gMTsKICAgICB9CiAKQEAgLTY1Niw3ICs2NTYsNyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKIAogICAgICMgQ3VzdG9tIGdldE93blByb3BlcnR5TmFtZXMgZnVuY3Rpb24KICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIi
fSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYp
O1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5
JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVy
dGllcyk7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMifSA9IDE7ICAgICAgIAogICAgIH0KIApAQCAtMTUzOCwxMyArMTUzOCwxMyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9KSB7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cylcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDwke2ltcGxD
bGFzc05hbWV9Kj4oaW1wbCgpKS0+bGVuZ3RoKCk7ICsraSlcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b20oZXhlYywgaSkpO1xuIik7CiAgICAgICAgIH0KLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7XG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRl
eCBjYjAyN2JmLi45ZThkYTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNTcsMTMg
KzU3LDE2IEBAIEpTVmFsdWUgUnVudGltZUFycmF5OjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wCiAgICAgcmV0dXJuIHRoaXNPYmotPmdl
dENvbmNyZXRlQXJyYXkoKS0+dmFsdWVBdChleGVjLCBzbG90LmluZGV4KCkpOwogfQogCi12b2lk
IFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBSdW50aW1lQXJyYXk6OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZ2V0
TGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKIAotICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAg
IGlmIChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpCisgICAgICAgIHByb3BlcnR5
TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpOworCisgICAgSlNPYmplY3Q6
OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJv
b2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAppbmRleCA5OTQyNWVlLi5mNzdlZjZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU09iamVjdCB7
CiBwdWJsaWM6CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSop
OwogCi0gICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIHVuc2lnbmVkLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggOTU4M2ZiMi4uOWZjOWYwYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIENvbnN0cnVjdFR5cGUgUnVu
dGltZU9iamVjdEltcDo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3RE
YXRhKQogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKIH0KIAotdm9pZCBSdW50aW1lT2Jq
ZWN0SW1wOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlKQogewogICAgIGlmICghbV9pbnN0YW5jZSkgewogICAgICAgICB0aHJvd0lu
dmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKQEAgLTMxNiw5ICszMTYsOSBAQCB2b2lkIFJ1bnRpbWVP
YmplY3RJbXA6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcAogICAgIGluc3RhbmNlLT5lbmQoKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0
SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgZ2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzKTsKKyAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCiBKU09iamVjdCogUnVudGltZU9iamVjdEltcDo6dGhyb3dJbnZhbGlk
QWNjZXNzRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXgg
MzkxZTA3OC4uODdjNDdiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00NCw4ICs0NCw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7
CiAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0
YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46359</attachid>
            <date>2010-01-12 03:35:38 -0800</date>
            <delta_ts>2010-01-12 16:58:31 -0800</delta_ts>
            <desc>Revised patch (apply cleanly to trunk again)</desc>
            <filename>ObjectDotGetOwnPropertyNames3.diff</filename>
            <type>text/plain</type>
            <size>77192</size>
            <attacher name="Kent Hansen">kent.hansen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IGQxOTg5MGEuLmUxM2RiZDIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90byk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAog
ICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHZpcnR1
YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGYxNDk0ZTIuLjQwMDBmNjMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApA
QCAtMzgwLDcgKzM4MCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Y2FsbChF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdGlvbk9iamVjdCwKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIEJhc2U+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxCYXNlPjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSkKIHsKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAg
IEpTT2JqZWN0UmVmIHRoaXNSZWYgPSB0b1JlZih0aGlzKTsKQEAgLTM5Nyw3ICszOTcsNyBAQCB2
b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcgogICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHN0
YXRpY1ZhbHVlcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICAgICAg
VVN0cmluZzo6UmVwKiBuYW1lID0gaXQtPmZpcnN0LmdldCgpOwogICAgICAgICAgICAgICAgIFN0
YXRpY1ZhbHVlRW50cnkqIGVudHJ5ID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgICAgICBpZiAo
ZW50cnktPmdldFByb3BlcnR5ICYmICEoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAgICBpZiAoZW50cnktPmdldFByb3BlcnR5
ICYmICghKGVudHJ5LT5hdHRyaWJ1dGVzICYga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSkg
fHwgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtNDA4LDEzICs0MDgsMTMgQEAgdm9pZCBKU0NhbGxiYWNrT2Jq
ZWN0PEJhc2U+OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lQXIKICAgICAgICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSBzdGF0aWNGdW5jdGlvbnMtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgICAgIFVTdHJpbmc6OlJlcCog
bmFtZSA9IGl0LT5maXJzdC5nZXQoKTsKICAgICAgICAgICAgICAgICBTdGF0aWNGdW5jdGlvbkVu
dHJ5KiBlbnRyeSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICAgICAgaWYgKCEoZW50cnktPmF0
dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtKSkKKyAgICAgICAgICAgICAg
ICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0p
IHx8IChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG5hbWUpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBCYXNlPgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDc4MDMyYzcuLjZiYzdkODcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBA
QAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVt
ZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCBhbiBleHRyYSBhcmd1
bWVudCB0byBnZXRQcm9wZXJ0eU5hbWVzKCkgYW5kIGdldE93blByb3BlcnR5TmFtZXMoKQorICAg
ICAgICAoYW5kIGFsbCByZWltcGxlbWVudGF0aW9ucyB0aGVyZW9mKSB0aGF0IGluZGljYXRlcyB3
aGV0aGVyIG5vbi1lbnVtZXJhYmxlCisgICAgICAgIHByb3BlcnRpZXMgc2hvdWxkIGJlIGFkZGVk
LgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OmdldE93blByb3BlcnR5
TmFtZXMpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgor
ICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAq
IHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVB
cnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJh
eS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpnZXRDbGFzc1Byb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5jcHA6IFJlbmFtZSBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcygpIHRvIGdldFBy
b3BlcnR5TmFtZXMoKSwgd2hpY2ggdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQuCisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6KToKKwogMjAxMC0wMS0xMiAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDQ4ZjYwOTYuLjM5Mjg1YjkgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBfX1pOM0pTQzEyU21hbGxTdHJp
bmdzMjdjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRWgKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVq
Uk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3duUHJvcGVy
dHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKK19fWk4zSlND
MTJTdHJpbmdPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3
UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzEyU3RyaW5n
T2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxMlN0cmluZ09iamVj
dDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1
UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDRpbmZvRQpAQCAtMTU5LDcg
KzE1OSw3IEBAIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVF
CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xMkpTR2xvYmFsRGF0YUVOM1dURjE3
Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0cnVjdHVyZUVFRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxNHN5bWJvbFRhYmxl
R2V0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlND
MTZKU1ZhcmlhYmxlT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJO
U18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxOWdldE93
blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNf
MTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzE2dG9VSW50MzJTbG93Q2FzZUVkUmIKIF9fWk4z
SlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlND
MTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE5TXzExVVN0cmluZ0ltcGxFCkBAIC0yNTMsNyArMjUz
LDcgQEAgX19aTjNKU0M4SlNPYmplY3QxMm1hcmtDaGlsZHJlbkVSTlNfOU1hcmtTdGFja0UKIF9f
Wk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0
ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKLV9fWk4zSlNDOEpTT2Jq
ZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFy
cmF5RQorX19aTjNKU0M4SlNPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVF
Uk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhK
U09iamVjdDE3Y3JlYXRlSW5oZXJpdG9ySURFdgogX19aTjNKU0M4SlNPYmplY3QxN2RlZmluZU93
blByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5
RGVzY3JpcHRvckViCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0RGlyZWN0RnVuY3Rpb25FUE5TXzlF
eGVjU3RhdGVFUE5TXzE2SW50ZXJuYWxGdW5jdGlvbkVqCkBAIC0yNjIsNyArMjYyLDcgQEAgX19a
TjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRU5TXzdKU1ZhbHUKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOGdldE93
blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNK
U0M4SlNPYmplY3QxOGdldFByaW1pdGl2ZU51bWJlckVQTlNfOUV4ZWNTdGF0ZUVSZFJOU183SlNW
YWx1ZUUKLV9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0
YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RQorX19aTjNKU0M4SlNPYmplY3QxOWdldE93blBy
b3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVF
bnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKIF9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3Bl
cnR5U2xvdEVQTlNfN0pTVmFsdWVFICAKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZUVtbQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYK
aW5kZXggYjlhODVjZi4uYjMxZTI0OCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC0xMzgsOSArMTM4LDkgQEAgRVhQT1JUUwogICAgID9nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JASlNTdHJpbmdASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJA
QUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCi0g
ICAgP2dldE93blByb3BlcnR5TmFtZXNASlNWYXJpYWJsZU9iamVjdEBKU0NAQFVBRVhQQVZFeGVj
U3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCi0gICAgP2dldE93blByb3BlcnR5TmFt
ZXNAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFy
cmF5QDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoK
KyAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU1ZhcmlhYmxlT2JqZWN0QEpTQ0BAVUFFWFBBVkV4
ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgor
ICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQFN0cmluZ09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoKICAgICA/
Z2V0T3duUHJvcGVydHlTbG90QEpTQ2VsbEBKU0NAQEVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRl
bnRpZmllckAyQEFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldE93blByb3BlcnR5U2xvdEBK
U0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAg
ID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQElB
QVZQcm9wZXJ0eVNsb3RAMkBAWgpAQCAtMTUyLDcgKzE1Miw3IEBAIEVYUE9SVFMKICAgICA/Z2V0
UHJpbWl0aXZlTnVtYmVyQEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQU5BQVZK
U1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJpbWl0aXZlTnVtYmVyQEpTU3RyaW5nQEpTQ0BARUFFX05Q
QVZFeGVjU3RhdGVAMkBBQU5BQVZKU1ZhbHVlQDJAQFoKICAgICA/Z2V0UHJvcGVydHlEZXNjcmlw
dG9yQEpTT2JqZWN0QEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFW
UHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/Z2V0UHJvcGVydHlOYW1lc0BKU09iamVjdEBK
U0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQEBaCisgICAgP2dl
dFByb3BlcnR5TmFtZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVy
dHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldFNsaWNlQEFyZ0xp
c3RASlNDQEBRQkVYSEFBVjEyQEBaCiAgICAgP2dldFN0cmluZ0BKU0NlbGxASlNDQEBRQkU/QVZV
U3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/Z2V0U3RyaW5nQEpTQ2VsbEBKU0NAQFFC
RV9OUEFWRXhlY1N0YXRlQDJAQUFWVVN0cmluZ0AyQEBaCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBkNDdkYjViLi4wNDQ0ZDIzIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcx
LDkgKzcxLDkgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICByZXR1cm4gbV9hY3RpdmF0
aW9uLT5kZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIERlYnVn
Z2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV9hY3RpdmF0aW9uLT5n
ZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIG1fYWN0aXZhdGlvbi0+
Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBE
ZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aAppbmRleCAzNzNlNjJkLi4zNTRmY2I4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIHNldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRleCA4NmE4ZjBhLi5iYjMwZTNiIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0yMDQsNiArMjA0LDE5IEBAIGJvb2wgQXJndW1l
bnRzOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAordm9pZCBBcmd1bWVudHM6
OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCit7CisgICAgaWYgKG1vZGUgPT0g
SW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZC0+bnVtQXJndW1lbnRzOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghZC0+ZGVsZXRl
ZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkKKyAgICAgICAgICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6OmZyb20oaSkpKTsKKyAg
ICAgICAgfQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Y2FsbGVlKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCk7CisgICAgfQorICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworfQorCiB2b2lkIEFyZ3VtZW50czo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIGlmIChpIDwgZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVsZXRlZEFyZ3VtZW50
cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5oCmluZGV4IDliNjc0YTIuLjc4MzA0NGQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aApAQCAtOTYsNiArOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBhYmU1MDM4Li5kZTI0ZjRhIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC01MCw2ICs1MCw3IEBA
CiAgICAgbWFjcm8oZ2V0KSBcCiAgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKICAgICBtYWNy
byhnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpIFwKKyAgICBtYWNybyhnZXRPd25Qcm9wZXJ0eU5h
bWVzKSBcCiAgICAgbWFjcm8oaGFzT3duUHJvcGVydHkpIFwKICAgICBtYWNybyhpZ25vcmVDYXNl
KSBcCiAgICAgbWFjcm8oaW5kZXgpIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4
IDcyMjFmODcuLjJiZTczNzEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtNDY5
LDcgKzQ2OSw3IEBAIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FycmF5OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMpCit2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCiB7CiAgICAgLy8gRklYTUU6IEZpbGxpbmcgUHJvcGVydHlOYW1lQXJyYXkgd2l0aCBhbiBp
ZGVudGlmaWVyIGZvciBldmVyeSBpbnRlZ2VyCiAgICAgLy8gaXMgaW5jcmVkaWJseSBpbmVmZmlj
aWVudCBmb3IgbGFyZ2UgYXJyYXlzLiBXZSBuZWVkIGEgZGlmZmVyZW50IGFwcHJvYWNoLApAQCAt
NDg5LDcgKzQ4OSwxMCBAQCB2b2lkIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYQogICAgICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpdC0+Zmlyc3QpKTsKICAgICB9
CiAKLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVz
KTsKKyAgICBpZiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKQorICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKKworICAgIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTQXJyYXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKHVuc2lnbmVkIG5ld0xlbmd0
aCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNjM1YjE0Mi4uNjRiMmZmMSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk4LDcgKzk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYs
IEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7CiAKICAgICAgICAgdm9p
ZCogbGF6eUNyZWF0aW9uRGF0YSgpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0J5dGVBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cAppbmRleCAyNTA5Zjg1Li5mOGFiMWU4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcApAQCAtMTA0LDEyICsxMDQsMTIgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogICAgIHNl
dEluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMpCit2b2lkIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0
aW9uTW9kZSBtb2RlKQogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fc3RvcmFnZS0+bGVuZ3Ro
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKLSAgICBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IGRmNDgxZjguLjViN2FkY2Yg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTgyLDcgKzgyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAgIHZpcnR1YWwgY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiBtX2NsYXNzSW5mbzsgfQog
ICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfZGVmYXVsdEluZm87CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBmZGYyMGJkLi5kMjEzYjRhIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTIwOCw2ICsyMDgsMTcgQEAgYm9vbCBKU0Z1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU4KICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgIH0KICAgICAKK3ZvaWQg
SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKK3sKKyAgICBp
ZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGll
cykpIHsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1lcygpLmFy
Z3VtZW50cyk7CisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5jYWxsZWUpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuY2FsbGVyKTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCk7CisgICAgfQorICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywg
cHJvcGVydHlOYW1lcywgbW9kZSk7Cit9CisKIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgaWYgKGlzSG9zdEZ1bmN0aW9uKCkpIHsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggNjdmMDdmYi4uYmRiNzliOCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTgyLDYgKzgyLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBt
b2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGMzNmRjMTAuLmY0NzY0ZTIgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IGJvb2wgSlNOb3RBbk9iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JikKK3ZvaWQg
SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhl
YywgZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgZXhlYy0+ZXhjZXB0aW9uKCkgPT0gbV9leGNlcHRp
b24pOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBhMjcxYzRl
Li5kNWY0MzBjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtOTEs
NyArOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICBKU05v
dEFuT2JqZWN0RXJyb3JTdHViKiBtX2V4Y2VwdGlvbjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCBlZDlmZGMyLi5kOTUwMGFhIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJU
X0NMQVNTX0ZJVFNfSU5fQ0VMTChKU09iamVjdCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBnZXRF
bnVtZXJhYmxlUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3N0YXRpYyBpbmxp
bmUgdm9pZCBnZXRDbGFzc1Byb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQogewogICAgIC8vIEFkZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHN0YXRp
YyBoYXNodGFibGVzIG9mIHByb3BlcnRpZXMKICAgICBmb3IgKDsgY2xhc3NJbmZvOyBjbGFzc0lu
Zm8gPSBjbGFzc0luZm8tPnBhcmVudENsYXNzKSB7CkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IENsYXNzSW5mbyoKICAgICAgICAgaW50IGhhc2hTaXplTWFzayA9IHRhYmxlLT5jb21wYWN0
U2l6ZSAtIDE7CiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+dGFibGU7
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGhhc2hTaXplTWFzazsgKytpLCArK2VudHJ5
KSB7Ci0gICAgICAgICAgICBpZiAoZW50cnktPmtleSgpICYmICEoZW50cnktPmF0dHJpYnV0ZXMo
KSAmIERvbnRFbnVtKSkKKyAgICAgICAgICAgIGlmIChlbnRyeS0+a2V5KCkgJiYgKCEoZW50cnkt
PmF0dHJpYnV0ZXMoKSAmIERvbnRFbnVtKSB8fCAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9w
ZXJ0aWVzKSkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZW50cnktPmtleSgp
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTQyNSw5ICs0MjUsOSBAQCBib29sIEpTT2JqZWN0Ojpn
ZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
KQordm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKLSAg
ICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIGdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiAKICAgICBpZiAocHJvdG90
eXBlKCkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQzNSwxMCArNDM1LDEwIEBAIHZv
aWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lCiAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGFzT2JqZWN0
KHRoaXMtPnByb3RvdHlwZSgpKTsKICAgICB3aGlsZSgxKSB7CiAgICAgICAgIGlmIChwcm90b3R5
cGUtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkg
ewotICAgICAgICAgICAgcHJvdG90eXBlLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMpOworICAgICAgICAgICAgcHJvdG90eXBlLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgcHJvdG90eXBlLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwor
ICAgICAgICBwcm90b3R5cGUtPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cywgbW9kZSk7CiAgICAgICAgIEpTVmFsdWUgbmV4dFByb3RvID0gcHJvdG90eXBlLT5wcm90b3R5
cGUoKTsKICAgICAgICAgaWYgKG5leHRQcm90by5pc051bGwoKSkKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNDQ2LDEwICs0NDYsMTAgQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWUKICAgICB9CiB9
CiAKLXZvaWQgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV9zdHJ1Y3R1cmUtPmdldEVudW1l
cmFibGVQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpOwotICAgIGdldEVudW1lcmFibGVQcm9w
ZXJ0eU5hbWVzKGV4ZWMsIGNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBtX3N0cnVj
dHVyZS0+Z2V0UHJvcGVydHlOYW1lcyhwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBnZXRDbGFz
c1Byb3BlcnR5TmFtZXMoZXhlYywgY2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTT2JqZWN0Ojp0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3QKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCBhNWRhMjY3Li5kOTMxYTRhIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCkBAIC0xMjIsOCArMTIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIEpTVmFsdWUg
cHJvdG90eXBlUHJvcGVydHkpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250
RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSB0b1ByaW1pdGl2ZShF
eGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqLCBkb3Vi
bGUmIG51bWJlciwgSlNWYWx1ZSYgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5jcHAKaW5kZXggM2FhOWU2Mi4uNzM2NTAwMSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCkBAIC00MiwxNSArNDIsMTUgQEAgYm9v
bCBKU1ZhcmlhYmxlT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnQKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzKQordm9pZCBKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewogICAgIFN5bWJvbFRhYmxlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBzeW1i
b2xUYWJsZSgpLmVuZCgpOwogICAgIGZvciAoU3ltYm9sVGFibGU6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gc3ltYm9sVGFibGUoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYg
KCEoaXQtPnNlY29uZC5nZXRBdHRyaWJ1dGVzKCkgJiBEb250RW51bSkpCisgICAgICAgIGlmICgh
KGl0LT5zZWNvbmQuZ2V0QXR0cmlidXRlcygpICYgRG9udEVudW0pIHx8IChtb2RlID09IEluY2x1
ZGVEb250RW51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcihleGVjLCBpdC0+Zmlyc3QuZ2V0KCkpKTsKICAgICB9CiAgICAgCi0gICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IGJvb2wgSlNWYXJpYWJsZU9iamVjdDo6aXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IDE1ZDZmZjUuLjczNzgxNmQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisr
KyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCkBAIC00OSw3ICs0
OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJp
YnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7
CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEeW5hbWljU2NvcGUoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDY5M2VmYzMu
LjA4MzhlYjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCkBAIC0zNiw2ICszNiw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoT2JqZWN0Q29u
c3RydWN0b3IpOwogCiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVj
dG9yR2V0UHJvdG90eXBlT2YoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBB
cmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwg
Y29uc3QgQXJnTGlzdCYpOworc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVl
LCBjb25zdCBBcmdMaXN0Jik7CiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yS2V5cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xp
c3QmKTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZp
bmVQcm9wZXJ0eShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTVmFsdWUsIGNvbnN0IEFyZ0xpc3Qm
KTsKIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQ
cm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYp
OwpAQCAtNTIsNiArNTMsNyBAQCBPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cgogICAgIAogICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5nZXRQcm90b3R5cGVPZiwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90
b3R5cGVPZiksIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlw
ZUZ1bmN0aW9uU3RydWN0dXJlLCAyLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvciks
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMs
IG5ldyAoZXhlYykgTmF0aXZlRnVuY3Rpb25XcmFwcGVyKGV4ZWMsIHByb3RvdHlwZUZ1bmN0aW9u
U3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZ2V0T3duUHJvcGVydHlOYW1lcywg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKSwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVG
dW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5rZXlzLCBvYmplY3RDb25zdHJ1Y3RvcktleXMpLCBEb250RW51bSk7
CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMp
IE5hdGl2ZUZ1bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwg
MywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmRlZmluZVByb3BlcnR5LCBvYmplY3RDb25zdHJ1Y3Rv
ckRlZmluZVByb3BlcnR5KSwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywg
cHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5kZWZp
bmVQcm9wZXJ0aWVzLCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpLCBEb250RW51
bSk7CkBAIC0xMjYsNiArMTI4LDIwIEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsCiB9CiAKIC8v
IEZJWE1FOiBVc2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgorSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAgICBpZiAoIWFyZ3Mu
YXQoMCkuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVy
cm9yLCAiUmVxdWVzdGVkIHByb3BlcnR5IG5hbWVzIG9mIGEgdmFsdWUgdGhhdCBpcyBub3QgYW4g
b2JqZWN0LiIpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoZXhlYyk7CisgICAg
YXNPYmplY3QoYXJncy5hdCgwKSktPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydGll
cywgSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CisgICAgSlNBcnJheSogbmFtZXMgPSBjb25z
dHJ1Y3RFbXB0eUFycmF5KGV4ZWMpOworICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspCisgICAgICAgIG5hbWVzLT5wdXNoKGV4ZWMsIGpzT3duZWRTdHJpbmcoZXhlYywgcHJvcGVy
dGllc1tpXS51c3RyaW5nKCkpKTsKKyAgICByZXR1cm4gbmFtZXM7Cit9CisKKy8vIEZJWE1FOiBV
c2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgogSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yS2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3Qg
QXJnTGlzdCYgYXJncykKIHsKICAgICBpZiAoIWFyZ3MuYXQoMCkuaXNPYmplY3QoKSkKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4IDgyOWY3Y2YuLjM4
ZDNjYjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApA
QCAtNzksMTEgKzc5LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpT
QXJyYXk6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBhcnIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIGFyciwgRW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAobGF6eUNyZWF0aW9uRGF0YSgpKQogICAgICAgICAgICAgICAgIGZpbGxB
cnJheUluc3RhbmNlKGV4ZWMpOwotICAgICAgICAgICAgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhleGVjLCBhcnIpOworICAgICAgICAgICAgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhleGVjLCBhcnIsIG1vZGUpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBmaWxsQXJyYXlJ
bnN0YW5jZShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cAppbmRleCBmMjNhMjBkLi5mOGUwZTg3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwCkBAIC04NiwxMiArODYsMTQgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW0KICAg
ICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9
CiAKLXZvaWQgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFN0cmluZ09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBpbnQgc2l6ZSA9IGlu
dGVybmFsVmFsdWUoKS0+bGVuZ3RoKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXIoZXhlYywgVVN0cmluZzo6
ZnJvbShpKSkpOwotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBpZiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggODRlMWFkMi4uYjcyMGI5MCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAgICAgICAg
IHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5m
bzsgfQogICAgICAgICBzdGF0aWMgY29uc3QgSlNfRVhQT1JUREFUQSBDbGFzc0luZm8gaW5mbzsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA1YjlhNTUzLi5jMzcwMzgzIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBp
bnQgY29tcGFyZVByb3BlcnR5TWFwRW50cnlJbmRpY2VzKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZv
aWQqIGIpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgU3RydWN0dXJlOjpnZXRFbnVtZXJhYmxl
UHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgU3Ry
dWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzKFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZO
ZWNlc3NhcnkoKTsKICAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKQEAgLTEwODYsNyArMTA4Niw3
IEBAIHZvaWQgU3RydWN0dXJlOjpnZXRFbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKICAgICAgICAgdW5zaWduZWQgZW50cnlDb3VudCA9IG1f
cHJvcGVydHlUYWJsZS0+a2V5Q291bnQgKyBtX3Byb3BlcnR5VGFibGUtPmRlbGV0ZWRTZW50aW5l
bENvdW50OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSAxOyBrIDw9IGVudHJ5Q291bnQ7IGsr
KykgewogICAgICAgICAgICAgQVNTRVJUKG1faGFzTm9uRW51bWVyYWJsZVByb3BlcnRpZXMgfHwg
IShtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pKTsK
LSAgICAgICAgICAgIGlmIChtX3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5rZXkgJiYgISht
X3Byb3BlcnR5VGFibGUtPmVudHJpZXMoKVtrXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pKSB7Cisg
ICAgICAgICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba10ua2V5ICYmICghKG1f
cHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2tdLmF0dHJpYnV0ZXMgJiBEb250RW51bSkgfHwgKG1v
ZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVydGllcykpKSB7CiAgICAgICAgICAgICAgICAgUHJv
cGVydHlNYXBFbnRyeSogdmFsdWUgPSAmbV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClba107CiAg
ICAgICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgICAgICAgZm9yIChqID0gaSAtIDE7IGog
Pj0gMCAmJiBhW2pdLT5pbmRleCA+IHZhbHVlLT5pbmRleDsgLS1qKQpAQCAtMTExMyw3ICsxMTEz
LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmdldEVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQogICAgIFByb3BlcnR5TWFwRW50cnkqKiBwID0gc29y
dGVkRW51bWVyYWJsZXMuZGF0YSgpOwogICAgIHVuc2lnbmVkIGVudHJ5Q291bnQgPSBtX3Byb3Bl
cnR5VGFibGUtPmtleUNvdW50ICsgbV9wcm9wZXJ0eVRhYmxlLT5kZWxldGVkU2VudGluZWxDb3Vu
dDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IGVudHJ5Q291bnQ7IGkrKykgewotICAg
ICAgICBpZiAobV9wcm9wZXJ0eVRhYmxlLT5lbnRyaWVzKClbaV0ua2V5ICYmICEobV9wcm9wZXJ0
eVRhYmxlLT5lbnRyaWVzKClbaV0uYXR0cmlidXRlcyAmIERvbnRFbnVtKSkKKyAgICAgICAgaWYg
KG1fcHJvcGVydHlUYWJsZS0+ZW50cmllcygpW2ldLmtleSAmJiAoIShtX3Byb3BlcnR5VGFibGUt
PmVudHJpZXMoKVtpXS5hdHRyaWJ1dGVzICYgRG9udEVudW0pIHx8IChtb2RlID09IEluY2x1ZGVE
b250RW51bVByb3BlcnRpZXMpKSkKICAgICAgICAgICAgICpwKysgPSAmbV9wcm9wZXJ0eVRhYmxl
LT5lbnRyaWVzKClbaV07CiAgICAgfQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRl
eCA4MzljYmQwLi4wOTlkYTZlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTUx
LDYgKzUxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5
OwogICAgIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5RGF0YTsKIAorICAgIGVudW0gRW51bWVyYXRp
b25Nb2RlIHsKKyAgICAgICAgRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcywKKyAgICAgICAgSW5j
bHVkZURvbnRFbnVtUHJvcGVydGllcworICAgIH07CisKICAgICBjbGFzcyBTdHJ1Y3R1cmUgOiBw
dWJsaWMgUmVmQ291bnRlZDxTdHJ1Y3R1cmU+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKSVQ7CkBAIC0xMzEsNyArMTM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgdm9pZCBzZXRFbnVtZXJhdGlvbkNhY2hlKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1l
cmF0aW9uQ2FjaGUpOyAvLyBEZWZpbmVkIGluIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaC4KICAg
ICAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSgpIHsgcmV0dXJu
IG1fZW51bWVyYXRpb25DYWNoZS5nZXQoKTsgfQotICAgICAgICB2b2lkIGdldEVudW1lcmFibGVQ
cm9wZXJ0eU5hbWVzKFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZvaWQgZ2V0UHJvcGVy
dHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlKTsKICAgICAg
ICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlLCBj
b25zdCBUeXBlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IDVmYWNjMTIuLjlhY2ZhN2YgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNl
bkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAg
IEFkZCBuZXcgYXJndW1lbnQgdG8gdGhlIHJlaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVy
dHlOYW1lcygpLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2Vy
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1w
Lmg6CisKIDIwMTAtMDEtMDcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFjIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRHbHVlL1VzZXJP
YmplY3RJbXAuY3BwIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNzEy
OTQ3NS4uMWZiYjk4MiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5j
cHAKKysrIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTk0LDcgKzk0LDcg
QEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMs
IEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdAogfQogCiAKLXZvaWQgVXNlck9iamVjdEltcDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzKQordm9pZCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSAqZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewogICAgIEpTVXNlck9iamVjdCogcHRyID0gR2V0SlNVc2VyT2JqZWN0KCk7
CiAgICAgaWYgKHB0cikgewpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgVXNlck9iamVjdEltcDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wCiAgICAgICAgICAgICBDRlJlbGVhc2UoY2ZQcm9wZXJ0eU5hbWVzKTsKICAgICAgICAgfQog
ICAgIH0KLSAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5h
bWVzKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2VyT2JqZWN0R2V0dGVy
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5o
IGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDZiYjU3OTIuLjY1NDFhODQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVy
dGllcyk7CiAKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgQXJnTGlzdCAmYXJncyk7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZmMjAxMzAuLmQ5NTQxYjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wMS0xMiAgS2VudCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0g
SW1wbGVtZW50IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0MgorCisgICAgICAgIEFkZCB0ZXN0cyBm
b3IgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobyksIGJvdGggc3RhbmRhcmQgdXNhZ2UgYW5k
IGNyb3NzIG9yaWdpbi4KKworICAgICAgICAqIGZhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5
TmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRl
c3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51
bWVyYXRpb24uaHRtbDoKKwogMjAxMC0wMS0xMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdkLiBSZW1vdmUgYSBkdXBsaWNhdGVkIGxpbmUgaW4g
YW4gZXhwZWN0YXRpb24gZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4NzhmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOTAgQEAKK1Rlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZpb3VyIG9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoe30pIGlzIFtdCitQQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoe2E6bnVsbH0pIGlzIFsnYSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5
TmFtZXMoe2E6bnVsbCwgYjpudWxsfSkgaXMgWydhJywgJ2InXQorUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKHtiOm51bGwsIGE6bnVsbH0pIGlzIFsnYScsICdiJ10KK1BBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyh7X19wcm90b19fOnthOm51bGx9fSkgaXMgW10KK1BBU1MgZ2V0
U29ydGVkT3duUHJvcGVydHlOYW1lcyh7X19wcm90b19fOlsxLDIsM119KSBpcyBbXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5jcmVhdGUoe30sIHsgJ2EnOiB7ICd2YWx1
ZSc6IDEsICdlbnVtZXJhYmxlJzogZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhPYmplY3QuY3JlYXRlKFsxLDIsM10sIHsgJ2EnOiB7ICd2YWx1ZSc6
IDEsICdlbnVtZXJhYmxlJzogZmFsc2UgfSB9KSkgaXMgWydhJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhuZXcgRnVuY3Rpb24oKSkgaXMgWydhcmd1bWVudHMnLCAnY2FsbGVlJywg
J2NhbGxlcicsICdsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IEZ1bmN0aW9uKCk7eC5fX3Byb3RvX189WzEsMiwzXTty
ZXR1cm4geDt9KSgpKSBpcyBbJ2FyZ3VtZW50cycsICdjYWxsZWUnLCAnY2FsbGVyJywgJ2xlbmd0
aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3RyaW5nKCcn
KSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJp
bmcoJ2EnKSkgaXMgWycwJywgJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMobmV3IFN0cmluZygnYWJjJykpIGlzIFsnMCcsICcxJywgJzInLCAnbGVuZ3RoJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcygoZnVuY3Rpb24oKXt2YXIgeD1uZXcgU3RyaW5nKCcn
KTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFsnbGVuZ3RoJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbXSkgaXMgWydsZW5ndGgnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKFtudWxsXSkgaXMgWycwJywgJ2xlbmd0aCddCitQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoW251bGwsbnVsbF0pIGlzIFsnMCcsJzEnLCAnbGVuZ3RoJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbbnVsbCxudWxsLCwsLG51bGxdKSBpcyBb
JzAnLCcxJywnNScsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKChm
dW5jdGlvbigpe3ZhciB4PVtdO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSkgaXMg
WydsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBEYXRlKCkpIGlz
IFtdCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3
IERhdGUoKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFtdCitQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IFJlZ0V4cCgnZm9vJykpIGlzIFsnZ2xvYmFsJywg
J2lnbm9yZUNhc2UnLCAnbGFzdEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKChmdW5jdGlvbigpe3ZhciB4PW5ldyBSZWdFeHAoKTt4
Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkpIGlzIFsnZ2xvYmFsJywgJ2lnbm9yZUNh
c2UnLCAnbGFzdEluZGV4JywgJ211bHRpbGluZScsICdzb3VyY2UnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgpKSBpcyBbJ2NhbGxlZScsICdsZW5ndGgn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGFyZ3VtZW50c09iamVjdCgxKSkgaXMg
WycwJywgJ2NhbGxlZScsICdsZW5ndGgnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KGFyZ3VtZW50c09iamVjdCgxLDIsMykpIGlzIFsnMCcsICcxJywgJzInLCAnY2FsbGVlJywgJ2xl
bmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoKGZ1bmN0aW9uKCl7YXJndW1l
bnRzLl9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiBhcmd1bWVudHM7fSkoKSkgaXMgWydjYWxsZWUn
LCAnbGVuZ3RoJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhwYXJzZUludCkgaXMg
WydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMocGFyc2VG
bG9hdCkgaXMgWydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoaXNOYU4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKGlzRmluaXRlKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhlc2NhcGUpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKHVuZXNjYXBlKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhkZWNvZGVVUkkpIGlzIFsnbGVuZ3RoJywgJ25hbWUn
XQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKGRlY29kZVVSSUNvbXBvbmVudCkgaXMg
WydsZW5ndGgnLCAnbmFtZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoZW5jb2Rl
VVJJKSBpcyBbJ2xlbmd0aCcsICduYW1lJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyhlbmNvZGVVUklDb21wb25lbnQpIGlzIFsnbGVuZ3RoJywgJ25hbWUnXQorUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdCkgaXMgWydjcmVhdGUnLCAnZGVmaW5lUHJvcGVydGll
cycsICdkZWZpbmVQcm9wZXJ0eScsICdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCAnZ2V0T3du
UHJvcGVydHlOYW1lcycsICdnZXRQcm90b3R5cGVPZicsICdrZXlzJywgJ2xlbmd0aCcsICduYW1l
JywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnBy
b3RvdHlwZSkgaXMgWydfX2RlZmluZUdldHRlcl9fJywgJ19fZGVmaW5lU2V0dGVyX18nLCAnX19s
b29rdXBHZXR0ZXJfXycsICdfX2xvb2t1cFNldHRlcl9fJywgJ2NvbnN0cnVjdG9yJywgJ2hhc093
blByb3BlcnR5JywgJ2lzUHJvdG90eXBlT2YnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLCAndG9M
b2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVPZiddCitQQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoRnVuY3Rpb24pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5cGUpIGlzIFsn
YXBwbHknLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmlu
ZyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnaXNBcnJheScs
ICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0
eU5hbWVzKEFycmF5LnByb3RvdHlwZSkgaXMgWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZl
cnknLCAnZmlsdGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9m
JywgJ2xlbmd0aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0
JywgJ3JldmVyc2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScs
ICd0b0xvY2FsZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10KK1BBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2xlbmd0aCcsICdu
YW1lJywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5n
LnByb3RvdHlwZSkgaXMgWydhbmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0
JywgJ2NoYXJDb2RlQXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2ZpeGVkJywgJ2ZvbnRj
b2xvcicsICdmb250c2l6ZScsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAn
bGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBsYWNlJywgJ3Nl
YXJjaCcsICdzbGljZScsICdzbWFsbCcsICdzcGxpdCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0
cicsICdzdWJzdHJpbmcnLCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBw
ZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0n
LCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXQorUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKEJvb2xlYW4pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhCb29sZWFuLnByb3RvdHlwZSkgaXMgWydj
b25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhOdW1iZXIpIGlzIFsnTUFYX1ZBTFVFJywgJ01JTl9WQUxVRScsICdORUdBVElW
RV9JTkZJTklUWScsICdOYU4nLCAnUE9TSVRJVkVfSU5GSU5JVFknLCAnbGVuZ3RoJywgJ25hbWUn
LCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhOdW1iZXIucHJv
dG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAndG9GaXhlZCcsICd0
b0xvY2FsZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KK1BB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhEYXRlKSBpcyBbJ1VUQycsICdsZW5ndGgnLCAn
bmFtZScsICdub3cnLCAncGFyc2UnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhEYXRlLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICdnZXREYXRlJywg
J2dldERheScsICdnZXRGdWxsWWVhcicsICdnZXRIb3VycycsICdnZXRNaWxsaXNlY29uZHMnLCAn
Z2V0TWludXRlcycsICdnZXRNb250aCcsICdnZXRTZWNvbmRzJywgJ2dldFRpbWUnLCAnZ2V0VGlt
ZXpvbmVPZmZzZXQnLCAnZ2V0VVRDRGF0ZScsICdnZXRVVENEYXknLCAnZ2V0VVRDRnVsbFllYXIn
LCAnZ2V0VVRDSG91cnMnLCAnZ2V0VVRDTWlsbGlzZWNvbmRzJywgJ2dldFVUQ01pbnV0ZXMnLCAn
Z2V0VVRDTW9udGgnLCAnZ2V0VVRDU2Vjb25kcycsICdnZXRZZWFyJywgJ3NldERhdGUnLCAnc2V0
RnVsbFllYXInLCAnc2V0SG91cnMnLCAnc2V0TWlsbGlzZWNvbmRzJywgJ3NldE1pbnV0ZXMnLCAn
c2V0TW9udGgnLCAnc2V0U2Vjb25kcycsICdzZXRUaW1lJywgJ3NldFVUQ0RhdGUnLCAnc2V0VVRD
RnVsbFllYXInLCAnc2V0VVRDSG91cnMnLCAnc2V0VVRDTWlsbGlzZWNvbmRzJywgJ3NldFVUQ01p
bnV0ZXMnLCAnc2V0VVRDTW9udGgnLCAnc2V0VVRDU2Vjb25kcycsICdzZXRZZWFyJywgJ3RvRGF0
ZVN0cmluZycsICd0b0dNVFN0cmluZycsICd0b0lTT1N0cmluZycsICd0b0pTT04nLCAndG9Mb2Nh
bGVEYXRlU3RyaW5nJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvTG9jYWxlVGltZVN0cmluZycsICd0
b1N0cmluZycsICd0b1RpbWVTdHJpbmcnLCAndG9VVENTdHJpbmcnLCAndmFsdWVPZiddCitQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoUmVnRXhwKSBpcyBbJyQmJywgIiQnIiwgJyQqJywg
JyQrJywgJyQxJywgJyQyJywgJyQzJywgJyQ0JywgJyQ1JywgJyQ2JywgJyQ3JywgJyQ4JywgJyQ5
JywgJyRfJywgJyRgJywgJ2lucHV0JywgJ2xhc3RNYXRjaCcsICdsYXN0UGFyZW4nLCAnbGVmdENv
bnRleHQnLCAnbGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ3Byb3RvdHlwZScsICdyaWdo
dENvbnRleHQnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFJlZ0V4cC5wcm90b3R5
cGUpIGlzIFsnY29tcGlsZScsICdjb25zdHJ1Y3RvcicsICdleGVjJywgJ3Rlc3QnLCAndG9TdHJp
bmcnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yKSBpcyBbJ2xlbmd0aCcs
ICduYW1lJywgJ3Byb3RvdHlwZSddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJy
b3IucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0
cmluZyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywgJ0xO
MTAnLCAnTE4yJywgJ0xPRzEwRScsICdMT0cyRScsICdQSScsICdTUVJUMV8yJywgJ1NRUlQyJywg
J2FicycsICdhY29zJywgJ2FzaW4nLCAnYXRhbicsICdhdGFuMicsICdjZWlsJywgJ2NvcycsICdl
eHAnLCAnZmxvb3InLCAnbG9nJywgJ21heCcsICdtaW4nLCAncG93JywgJ3JhbmRvbScsICdyb3Vu
ZCcsICdzaW4nLCAnc3FydCcsICd0YW4nXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KEpTT04pIGlzIFsncGFyc2UnLCAnc3RyaW5naWZ5J10KK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1l
cy5pbmRleE9mKCdOYU4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignSW5maW5pdHknKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZigndW5kZWZpbmVkJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ3BhcnNlSW50JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9w
ZXJ0eU5hbWVzLmluZGV4T2YoJ3BhcnNlRmxvYXQnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2Jh
bFByb3BlcnR5TmFtZXMuaW5kZXhPZignaXNOYU4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2Jh
bFByb3BlcnR5TmFtZXMuaW5kZXhPZignaXNGaW5pdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGds
b2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBn
bG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ3VuZXNjYXBlJykgIT0gLTEgaXMgdHJ1ZQorUEFT
UyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2RlY29kZVVSSScpICE9IC0xIGlzIHRydWUK
K1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdkZWNvZGVVUklDb21wb25lbnQnKSAh
PSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignZW5jb2RlVVJJ
JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ2VuY29k
ZVVSSUNvbXBvbmVudCcpICE9IC0xIGlzIHRydWUKK1BBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5p
bmRleE9mKCdPYmplY3QnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignRnVuY3Rpb24nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZignQXJyYXknKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5TmFt
ZXMuaW5kZXhPZignU3RyaW5nJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0eU5h
bWVzLmluZGV4T2YoJ0Jvb2xlYW4nKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignTnVtYmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ0RhdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignUmVnRXhwJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ0Vycm9yJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBnbG9iYWxQcm9wZXJ0
eU5hbWVzLmluZGV4T2YoJ01hdGgnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignSlNPTicpICE9IC0xIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYmMxYWM0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9w
ZXJ0eU5hbWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFt
ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3ZjAyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC0wLDAgKzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCB0
byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMi
KTsKKworZnVuY3Rpb24gYXJndW1lbnRzT2JqZWN0KCkgeyByZXR1cm4gYXJndW1lbnRzOyB9Owor
Cit2YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0geworICAgICJ7fSI6ICJbXSIsCisgICAg
InthOm51bGx9IjogIlsnYSddIiwKKyAgICAie2E6bnVsbCwgYjpudWxsfSI6ICJbJ2EnLCAnYidd
IiwKKyAgICAie2I6bnVsbCwgYTpudWxsfSI6ICJbJ2EnLCAnYiddIiwKKyAgICAie19fcHJvdG9f
Xzp7YTpudWxsfX0iOiAiW10iLAorICAgICJ7X19wcm90b19fOlsxLDIsM119IjogIltdIiwKKyAg
ICAiT2JqZWN0LmNyZWF0ZSh7fSwgeyAnYSc6IHsgJ3ZhbHVlJzogMSwgJ2VudW1lcmFibGUnOiBm
YWxzZSB9IH0pIjogIlsnYSddIiwKKyAgICAiT2JqZWN0LmNyZWF0ZShbMSwyLDNdLCB7ICdhJzog
eyAndmFsdWUnOiAxLCAnZW51bWVyYWJsZSc6IGZhbHNlIH0gfSkiOiAiWydhJ10iLAorLy8gRnVu
Y3Rpb24gb2JqZWN0cworICAgICJuZXcgRnVuY3Rpb24oKSI6ICJbJ2FyZ3VtZW50cycsICdjYWxs
ZWUnLCAnY2FsbGVyJywgJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICIoZnVuY3Rpb24oKXt2YXIg
eD1uZXcgRnVuY3Rpb24oKTt4Ll9fcHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiWydh
cmd1bWVudHMnLCAnY2FsbGVlJywgJ2NhbGxlcicsICdsZW5ndGgnLCAnbmFtZSddIiwKKy8vIFN0
cmluZyBvYmplY3RzCisgICAgIm5ldyBTdHJpbmcoJycpIjogIlsnbGVuZ3RoJ10iLAorICAgICJu
ZXcgU3RyaW5nKCdhJykiOiAiWycwJywgJ2xlbmd0aCddIiwKKyAgICAibmV3IFN0cmluZygnYWJj
JykiOiAiWycwJywgJzEnLCAnMicsICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4
PW5ldyBTdHJpbmcoJycpO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2xl
bmd0aCddIiwKKy8vIEFycmF5IG9iamVjdHMKKyAgICAiW10iOiAiWydsZW5ndGgnXSIsCisgICAg
IltudWxsXSI6ICJbJzAnLCAnbGVuZ3RoJ10iLAorICAgICJbbnVsbCxudWxsXSI6ICJbJzAnLCcx
JywgJ2xlbmd0aCddIiwKKyAgICAiW251bGwsbnVsbCwsLCxudWxsXSI6ICJbJzAnLCcxJywnNScs
ICdsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4PVtdO3guX19wcm90b19fPVsxLDIs
M107cmV0dXJuIHg7fSkoKSI6ICJbJ2xlbmd0aCddIiwKKy8vIERhdGUgb2JqZWN0cworICAgICJu
ZXcgRGF0ZSgpIjogIltdIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IERhdGUoKTt4Ll9f
cHJvdG9fXz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiW10iLAorLy8gUmVnRXhwIG9iamVjdHMK
KyAgICAibmV3IFJlZ0V4cCgnZm9vJykiOiAiWydnbG9iYWwnLCAnaWdub3JlQ2FzZScsICdsYXN0
SW5kZXgnLCAnbXVsdGlsaW5lJywgJ3NvdXJjZSddIiwKKyAgICAiKGZ1bmN0aW9uKCl7dmFyIHg9
bmV3IFJlZ0V4cCgpO3guX19wcm90b19fPVsxLDIsM107cmV0dXJuIHg7fSkoKSI6ICJbJ2dsb2Jh
bCcsICdpZ25vcmVDYXNlJywgJ2xhc3RJbmRleCcsICdtdWx0aWxpbmUnLCAnc291cmNlJ10iLAor
Ly8gQXJndW1lbnRzIG9iamVjdHMKKyAgICAgImFyZ3VtZW50c09iamVjdCgpIjogIlsnY2FsbGVl
JywgJ2xlbmd0aCddIiwKKyAgICAgImFyZ3VtZW50c09iamVjdCgxKSI6ICJbJzAnLCAnY2FsbGVl
JywgJ2xlbmd0aCddIiwKKyAgICAgImFyZ3VtZW50c09iamVjdCgxLDIsMykiOiAiWycwJywgJzEn
LCAnMicsICdjYWxsZWUnLCAnbGVuZ3RoJ10iLAorICAgICIoZnVuY3Rpb24oKXthcmd1bWVudHMu
X19wcm90b19fPVsxLDIsM107cmV0dXJuIGFyZ3VtZW50czt9KSgpIjogIlsnY2FsbGVlJywgJ2xl
bmd0aCddIiwKKy8vIEJ1aWx0LWluIEVDTUEgZnVuY3Rpb25zCisgICAgInBhcnNlSW50IjogIlsn
bGVuZ3RoJywgJ25hbWUnXSIsCisgICAgInBhcnNlRmxvYXQiOiAiWydsZW5ndGgnLCAnbmFtZSdd
IiwKKyAgICAiaXNOYU4iOiAiWydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiaXNGaW5pdGUiOiAi
WydsZW5ndGgnLCAnbmFtZSddIiwKKyAgICAiZXNjYXBlIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIs
CisgICAgInVuZXNjYXBlIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisgICAgImRlY29kZVVSSSI6
ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorICAgICJkZWNvZGVVUklDb21wb25lbnQiOiAiWydsZW5n
dGgnLCAnbmFtZSddIiwKKyAgICAiZW5jb2RlVVJJIjogIlsnbGVuZ3RoJywgJ25hbWUnXSIsCisg
ICAgImVuY29kZVVSSUNvbXBvbmVudCI6ICJbJ2xlbmd0aCcsICduYW1lJ10iLAorLy8gQnVpbHQt
aW4gRUNNQSBvYmplY3RzCisgICAgIk9iamVjdCI6ICJbJ2NyZWF0ZScsICdkZWZpbmVQcm9wZXJ0
aWVzJywgJ2RlZmluZVByb3BlcnR5JywgJ2dldE93blByb3BlcnR5RGVzY3JpcHRvcicsICdnZXRP
d25Qcm9wZXJ0eU5hbWVzJywgJ2dldFByb3RvdHlwZU9mJywgJ2tleXMnLCAnbGVuZ3RoJywgJ25h
bWUnLCAncHJvdG90eXBlJ10iLAorICAgICJPYmplY3QucHJvdG90eXBlIjogIlsnX19kZWZpbmVH
ZXR0ZXJfXycsICdfX2RlZmluZVNldHRlcl9fJywgJ19fbG9va3VwR2V0dGVyX18nLCAnX19sb29r
dXBTZXR0ZXJfXycsICdjb25zdHJ1Y3RvcicsICdoYXNPd25Qcm9wZXJ0eScsICdpc1Byb3RvdHlw
ZU9mJywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5n
JywgJ3ZhbHVlT2YnXSIsCisgICAgIkZ1bmN0aW9uIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJv
dG90eXBlJ10iLAorICAgICJGdW5jdGlvbi5wcm90b3R5cGUiOiAiWydhcHBseScsICdjYWxsJywg
J2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJBcnJh
eSI6ICJbJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJB
cnJheS5wcm90b3R5cGUiOiAiWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZXZlcnknLCAnZmls
dGVyJywgJ2ZvckVhY2gnLCAnaW5kZXhPZicsICdqb2luJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0
aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVy
c2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2Fs
ZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0J10iLAorICAgICJTdHJpbmciOiAiWydmcm9t
Q2hhckNvZGUnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJTdHJpbmcu
cHJvdG90eXBlIjogIlsnYW5jaG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJBdCcs
ICdjaGFyQ29kZUF0JywgJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdmaXhlZCcsICdmb250Y29s
b3InLCAnZm9udHNpemUnLCAnaW5kZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xl
bmd0aCcsICdsaW5rJywgJ2xvY2FsZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwbGFjZScsICdzZWFy
Y2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3BsaXQnLCAnc3RyaWtlJywgJ3N1YicsICdzdWJzdHIn
LCAnc3Vic3RyaW5nJywgJ3N1cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xvY2FsZVVwcGVy
Q2FzZScsICd0b0xvd2VyQ2FzZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScsICd0cmltJywg
J3RyaW1MZWZ0JywgJ3RyaW1SaWdodCcsICd2YWx1ZU9mJ10iLAorICAgICJCb29sZWFuIjogIlsn
bGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAorICAgICJCb29sZWFuLnByb3RvdHlwZSI6
ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCisgICAgIk51bWJlciI6
ICJbJ01BWF9WQUxVRScsICdNSU5fVkFMVUUnLCAnTkVHQVRJVkVfSU5GSU5JVFknLCAnTmFOJywg
J1BPU0lUSVZFX0lORklOSVRZJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKKyAg
ICAiTnVtYmVyLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAn
dG9GaXhlZCcsICd0b0xvY2FsZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2
YWx1ZU9mJ10iLAorICAgICJEYXRlIjogIlsnVVRDJywgJ2xlbmd0aCcsICduYW1lJywgJ25vdycs
ICdwYXJzZScsICdwcm90b3R5cGUnXSIsCisgICAgIkRhdGUucHJvdG90eXBlIjogIlsnY29uc3Ry
dWN0b3InLCAnZ2V0RGF0ZScsICdnZXREYXknLCAnZ2V0RnVsbFllYXInLCAnZ2V0SG91cnMnLCAn
Z2V0TWlsbGlzZWNvbmRzJywgJ2dldE1pbnV0ZXMnLCAnZ2V0TW9udGgnLCAnZ2V0U2Vjb25kcycs
ICdnZXRUaW1lJywgJ2dldFRpbWV6b25lT2Zmc2V0JywgJ2dldFVUQ0RhdGUnLCAnZ2V0VVRDRGF5
JywgJ2dldFVUQ0Z1bGxZZWFyJywgJ2dldFVUQ0hvdXJzJywgJ2dldFVUQ01pbGxpc2Vjb25kcycs
ICdnZXRVVENNaW51dGVzJywgJ2dldFVUQ01vbnRoJywgJ2dldFVUQ1NlY29uZHMnLCAnZ2V0WWVh
cicsICdzZXREYXRlJywgJ3NldEZ1bGxZZWFyJywgJ3NldEhvdXJzJywgJ3NldE1pbGxpc2Vjb25k
cycsICdzZXRNaW51dGVzJywgJ3NldE1vbnRoJywgJ3NldFNlY29uZHMnLCAnc2V0VGltZScsICdz
ZXRVVENEYXRlJywgJ3NldFVUQ0Z1bGxZZWFyJywgJ3NldFVUQ0hvdXJzJywgJ3NldFVUQ01pbGxp
c2Vjb25kcycsICdzZXRVVENNaW51dGVzJywgJ3NldFVUQ01vbnRoJywgJ3NldFVUQ1NlY29uZHMn
LCAnc2V0WWVhcicsICd0b0RhdGVTdHJpbmcnLCAndG9HTVRTdHJpbmcnLCAndG9JU09TdHJpbmcn
LCAndG9KU09OJywgJ3RvTG9jYWxlRGF0ZVN0cmluZycsICd0b0xvY2FsZVN0cmluZycsICd0b0xv
Y2FsZVRpbWVTdHJpbmcnLCAndG9TdHJpbmcnLCAndG9UaW1lU3RyaW5nJywgJ3RvVVRDU3RyaW5n
JywgJ3ZhbHVlT2YnXSIsCisgICAgIlJlZ0V4cCI6ICJbJyQmJywgXCIkJ1wiLCAnJConLCAnJCsn
LCAnJDEnLCAnJDInLCAnJDMnLCAnJDQnLCAnJDUnLCAnJDYnLCAnJDcnLCAnJDgnLCAnJDknLCAn
JF8nLCAnJGAnLCAnaW5wdXQnLCAnbGFzdE1hdGNoJywgJ2xhc3RQYXJlbicsICdsZWZ0Q29udGV4
dCcsICdsZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JpZ2h0Q29u
dGV4dCddIiwKKyAgICAiUmVnRXhwLnByb3RvdHlwZSI6ICJbJ2NvbXBpbGUnLCAnY29uc3RydWN0
b3InLCAnZXhlYycsICd0ZXN0JywgJ3RvU3RyaW5nJ10iLAorICAgICJFcnJvciI6ICJbJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKKyAgICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29u
c3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10iLAorICAgICJNYXRoIjog
IlsnRScsICdMTjEwJywgJ0xOMicsICdMT0cxMEUnLCAnTE9HMkUnLCAnUEknLCAnU1FSVDFfMics
ICdTUVJUMicsICdhYnMnLCAnYWNvcycsICdhc2luJywgJ2F0YW4nLCAnYXRhbjInLCAnY2VpbCcs
ICdjb3MnLCAnZXhwJywgJ2Zsb29yJywgJ2xvZycsICdtYXgnLCAnbWluJywgJ3BvdycsICdyYW5k
b20nLCAncm91bmQnLCAnc2luJywgJ3NxcnQnLCAndGFuJ10iLAorICAgICJKU09OIjogIlsncGFy
c2UnLCAnc3RyaW5naWZ5J10iCit9OworCitmdW5jdGlvbiBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKG9iaikKK3sKKyAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5z
b3J0KCk7Cit9CisKK2ZvciAodmFyIGV4cHIgaW4gZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0KQor
ICAgIHNob3VsZEJlKCJnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKCIgKyBleHByICsgIikiLCBl
eHBlY3RlZFByb3BlcnR5TmFtZXNTZXRbZXhwcl0pOworCisvLyBHbG9iYWwgT2JqZWN0CisvLyBP
bmx5IGNoZWNrIGZvciBFQ01BIHByb3BlcnRpZXMgaGVyZQordmFyIGdsb2JhbFByb3BlcnR5TmFt
ZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKTsKK3ZhciBleHBlY3RlZEdsb2Jh
bFByb3BlcnR5TmFtZXMgPSBbCisgICAgIk5hTiIsCisgICAgIkluZmluaXR5IiwKKyAgICAidW5k
ZWZpbmVkIiwKKyAgICAicGFyc2VJbnQiLAorICAgICJwYXJzZUZsb2F0IiwKKyAgICAiaXNOYU4i
LAorICAgICJpc0Zpbml0ZSIsCisgICAgImVzY2FwZSIsCisgICAgInVuZXNjYXBlIiwKKyAgICAi
ZGVjb2RlVVJJIiwKKyAgICAiZGVjb2RlVVJJQ29tcG9uZW50IiwKKyAgICAiZW5jb2RlVVJJIiwK
KyAgICAiZW5jb2RlVVJJQ29tcG9uZW50IiwKKyAgICAiT2JqZWN0IiwKKyAgICAiRnVuY3Rpb24i
LAorICAgICJBcnJheSIsCisgICAgIlN0cmluZyIsCisgICAgIkJvb2xlYW4iLAorICAgICJOdW1i
ZXIiLAorICAgICJEYXRlIiwKKyAgICAiUmVnRXhwIiwKKyAgICAiRXJyb3IiLAorICAgICJNYXRo
IiwKKyAgICAiSlNPTiIKK107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRHbG9iYWxQ
cm9wZXJ0eU5hbWVzLmxlbmd0aDsgKytpKQorICAgIHNob3VsZEJlVHJ1ZSgiZ2xvYmFsUHJvcGVy
dHlOYW1lcy5pbmRleE9mKCciICsgZXhwZWN0ZWRHbG9iYWxQcm9wZXJ0eU5hbWVzW2ldICsgIicp
ICE9IC0xIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVy
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDI2YjQzNjUuLmU5
NzJmMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTE0LDEzICsxNCwyMiBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZl
IEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cAogCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3Mg
ZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
ZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgogCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQg
YXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3Qu
aHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0
aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJv
dG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3RzIHRoYXQgdmFyaWFibGUg
bmFtZXMgY2FuJ3QgYmUgZW51bWVyYXRlZCBjcm9zcyBkb21haW4gKHNlZSBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM4NykKIAogCiBQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgYnkgZW51bWVyYXRpbmcgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6
IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSB3aW5kb3cgb2Jq
ZWN0IHdhcyBkZW5pZWQuCitQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUg
cHJvcGVydHkgbmFtZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENy
b3NzIGZyYW1lIGFjY2VzcyBieSBlbnVtZXJhdGluZyB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRl
bmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRo
ZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVuaWVkLgorUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5
IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9iamVjdCB3YXMgZGVu
aWVkLgogUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGVudW1lcmF0aW5nIHRoZSBMb2NhdGlv
biBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5n
IHRoZSBrZXlzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4KK1BBU1M6IENyb3Nz
IGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgTG9jYXRp
b24gb2JqZWN0IHdhcyBkZW5pZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi5o
dG1sCmluZGV4IDcwN2ZmZjUuLjQ5YmZjZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVy
YXRpb24uaHRtbApAQCAtNTIsNiArNTIsMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhl
IHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4iKTsKIAorICAgICAgICAgICAgdmFyIGJfd2luUHJv
cGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJfd2luKTsKKyAgICAgICAg
ICAgIGlmIChiX3dpblByb3BlcnR5TmFtZXMuaW5kZXhPZigiY3VzdG9tV2luZG93UHJvcGVydHki
KSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNz
IGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBh
bGxvd2VkLiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3Bl
cnR5IG5hbWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuIik7CisKICAgICAgICAg
ICAgIC8vIFRlc3QgZW51bWVyYXRpbmcgdGhlIEhpc3Rvcnkgb2JqZWN0CiAgICAgICAgICAgICB2
YXIgYl93aW5faGlzdG9yeSA9IGJfd2luLmhpc3Rvcnk7CiAgICAgICAgICAgICB0cnkgewpAQCAt
NzIsNiArNzksMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jv
c3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIEhpc3Rvcnkgb2JqZWN0
IHdhcyBkZW5pZWQuIik7CiAKKyAgICAgICAgICAgIHZhciBiX3dpbkhpc3RvcnlQcm9wZXJ0eU5h
bWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYl93aW5faGlzdG9yeSk7CisgICAgICAg
ICAgICBpZiAoYl93aW5IaXN0b3J5UHJvcGVydHlOYW1lcy5pbmRleE9mKCJjdXN0b21IaXN0b3J5
UHJvcGVydHkiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJh
bWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBIaXN0b3J5IG9i
amVjdCB3YXMgYWxsb3dlZC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5n
IHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmllZC4iKTsK
KwogICAgICAgICAgICAgLy8gVGVzdCBlbnVtZXJhdGluZyB0aGUgTG9jYXRpb24gb2JqZWN0CiAg
ICAgICAgICAgICB2YXIgYl93aW5fbG9jYXRpb24gPSBiX3dpbi5sb2NhdGlvbjsKICAgICAgICAg
ICAgIHRyeSB7CkBAIC05MSw2ICsxMDUsMTMgQEAKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBi
eSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4iKTsK
KworICAgICAgICAgICAgdmFyIGJfd2luTG9jYXRpb25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5TmFtZXMoYl93aW5fbG9jYXRpb24pOworICAgICAgICAgICAgaWYgKGJfd2lu
TG9jYXRpb25Qcm9wZXJ0eU5hbWVzLmluZGV4T2YoImN1c3RvbUxvY2F0aW9uUHJvcGVydHkiKSAh
PSAtMSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5
IGdldHRpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGFs
bG93ZWQuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbG9nKCJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUgcHJvcGVy
dHkgbmFtZXMgb2YgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLiIpOwogICAgICAgICB9
CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkOGI1NjAuLjI1MjQ5OTcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTAtMDEtMTIgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5Abm9raWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFUzVdIEltcGxlbWVu
dCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIyNDIKKworICAgICAgICBBZGQgbmV3IGFyZ3VtZW50IHRv
IHJlaW1wbGVtZW50YXRpb25zIG9mIGdldFByb3BlcnR5TmFtZXMoKQorICAgICAgICBhbmQgZ2V0
T3duUHJvcGVydHlOYW1lcygpLCBhbmQgdXBkYXRlIHRoZSBKUyBiaW5kaW5ncyBnZW5lcmF0b3Iu
CisKKyAgICAgICAgVGVzdDogZmFzdC9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
UXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5
LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMC0wMS0x
MiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKaW5kZXggYjlmNmQzMi4uZTZjM2U5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTQxOSwyMCArNDE5LDIwIEBAIGJvb2wgSlNET01XaW5k
b3c6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5
TmFtZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNET01XaW5k
b3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgLy8gT25seSBhbGxv
dyB0aGUgd2luZG93IHRvIGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4K
ICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCiAgICAgICAgIHJldHVybjsKLSAgICBC
YXNlOjpnZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6Omdl
dFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3ZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgLy8gT25seSBhbGxvdyB0aGUgd2luZG93IHRv
IGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KICAgICBpZiAoIWFsbG93
c0FjY2Vzc0Zyb20oZXhlYykpCiAgICAgICAgIHJldHVybjsKLSAgICBCYXNlOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6
OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDkxNDFlZS4uMWU4MmE0
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTQsMTQg
KzExNCwxNCBAQCBib29sIEpTRE9NV2luZG93U2hlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIHJldHVybiBtX3dpbmRvdy0+
ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRv
d1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV93aW5kb3ctPmdldFByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7CisgICAgbV93aW5kb3ctPmdldFByb3BlcnR5TmFtZXMoZXhlYywg
cHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzKQordm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewotICAgIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMpOworICAgIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNP
YmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAyNzAzNmQ0Li5hODk1MTc3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtNzUsOCArNzUsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBK
U0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
LCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0
ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWZpbmVTZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5
Q3VzdG9tLmNwcAppbmRleCAzMDc2NTAzLi5mZmY3NDdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hpc3RvcnlDdXN0b20uY3BwCkBAIC0xNTQsMTIgKzE1NCwxMiBAQCBib29sIEpTSGlzdG9yeTo6
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiB9CiAKLXZvaWQgSlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTSGlzdG9yeTo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBPbmx5IGFsbG93
IHRoZSBoaXN0b3J5IG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBv
cmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1wbCgpLT5mcmFt
ZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogSlNWYWx1ZSBKU0hpc3Rvcnk6OnB1c2hTdGF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA2YzhlMDMyLi43OGQwMGRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTE2OCwxMiArMTY4LDEyIEBAIGJvb2wg
SlNMb2NhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNMb2NhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9p
ZCBKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAg
IC8vIE9ubHkgYWxsb3cgdGhlIGxvY2F0aW9uIG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1l
cyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhl
YywgaW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdm9pZCBKU0xvY2F0aW9u
OjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAK
aW5kZXggZWEyZjcyZi4uZDc3OTdmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKQEAgLTMxMywyMCArMzEzLDIwIEBAIENhbGxU
eXBlIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2Fs
bERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotdm9pZCBKU1F1YXJhbnRpbmVk
T2JqZWN0V3JhcHBlcjo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYgYXJyYXkpCit2b2lkIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiBhcnJheSwgRW51bWVyYXRpb25N
b2RlIG1vZGUpCiB7CiAgICAgaWYgKCFhbGxvd3NHZXRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBtX3Vud3JhcHBlZE9iamVjdC0+Z2V0UHJvcGVydHlOYW1lcyh1
bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOworICAgIG1fdW53cmFwcGVkT2JqZWN0LT5nZXRQ
cm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgpLCBhcnJheSwgbW9kZSk7CiB9CiAKLXZv
aWQgSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXI6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmIGFycmF5KQordm9pZCBKU1F1YXJhbnRpbmVkT2JqZWN0
V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgYXJyYXksIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGlmICghYWxsb3dzR2V0UHJv
cGVydHlOYW1lcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Vud3JhcHBlZE9iamVjdC0+
Z2V0T3duUHJvcGVydHlOYW1lcyh1bndyYXBwZWRFeGVjU3RhdGUoKSwgYXJyYXkpOworICAgIG1f
dW53cmFwcGVkT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgp
LCBhcnJheSwgbW9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaAppbmRleCA5ZjYyNDk1
Li5lNDIzYTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRP
YmplY3RXcmFwcGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2Jq
ZWN0V3JhcHBlci5oCkBAIC03NCw4ICs3NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSBwcm90byk7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQ
cm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpT
Qzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0g
SlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgICAgICB2aXJ0dWFsIEpTQzo6
VVN0cmluZyBjbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiBtX3Vud3JhcHBlZE9iamVjdC0+Y2xh
c3NOYW1lKCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4
IGU0MTZkMzUuLjNjZmUyMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9y
YWdlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5j
cHAKQEAgLTY0LDEzICs2NCwxMyBAQCBib29sIEpTU3RvcmFnZTo6ZGVsZXRlUHJvcGVydHkoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgSlNTdG9yYWdlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTU3RvcmFn
ZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSBtX2ltcGwtPmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcihleGVjLCBt
X2ltcGwtPmtleShpKSkpOwogICAgICAgICAKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNTdG9yYWdlOjpwdXREZWxlZ2F0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGY3ZDBmMDkuLmNhYjM0ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjQ3LDcgKzY0Nyw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBDdXN0b20gZ2V0UHJvcGVydHlOYW1lcyBmdW5jdGlvbiBl
eGlzdHMgb24gRE9NV2luZG93CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGdldFBy
b3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJv
cGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6
OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTtc
biIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyJ9ID0gMTsKICAgICB9CiAKQEAgLTY1Niw3ICs2NTYsNyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKIAogICAgICMgQ3VzdG9tIGdldE93blByb3BlcnR5TmFtZXMgZnVuY3Rpb24KICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIi
fSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYp
O1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5
JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVy
dGllcyk7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMifSA9IDE7ICAgICAgIAogICAgIH0KIApAQCAtMTUzOCwxMyArMTUzOCwxMyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9KSB7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cylcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDwke2ltcGxD
bGFzc05hbWV9Kj4oaW1wbCgpKS0+bGVuZ3RoKCk7ICsraSlcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b20oZXhlYywgaSkpO1xuIik7CiAgICAgICAgIH0KLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7XG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRl
eCBjYjAyN2JmLi45ZThkYTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNTcsMTMg
KzU3LDE2IEBAIEpTVmFsdWUgUnVudGltZUFycmF5OjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wCiAgICAgcmV0dXJuIHRoaXNPYmotPmdl
dENvbmNyZXRlQXJyYXkoKS0+dmFsdWVBdChleGVjLCBzbG90LmluZGV4KCkpOwogfQogCi12b2lk
IFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBSdW50aW1lQXJyYXk6OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZ2V0
TGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKIAotICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAg
IGlmIChtb2RlID09IEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMpCisgICAgICAgIHByb3BlcnR5
TmFtZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpOworCisgICAgSlNPYmplY3Q6
OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJv
b2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAppbmRleCA5OTQyNWVlLi5mNzdlZjZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU09iamVjdCB7
CiBwdWJsaWM6CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIEJpbmRpbmdzOjpBcnJheSop
OwogCi0gICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIHVuc2lnbmVkLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggOTU4M2ZiMi4uOWZjOWYwYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIENvbnN0cnVjdFR5cGUgUnVu
dGltZU9iamVjdEltcDo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3RE
YXRhKQogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKIH0KIAotdm9pZCBSdW50aW1lT2Jq
ZWN0SW1wOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlKQogewogICAgIGlmICghbV9pbnN0YW5jZSkgewogICAgICAgICB0aHJvd0lu
dmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKQEAgLTMxNiw5ICszMTYsOSBAQCB2b2lkIFJ1bnRpbWVP
YmplY3RJbXA6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcAogICAgIGluc3RhbmNlLT5lbmQoKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0
SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgZ2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzKTsKKyAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCiBKU09iamVjdCogUnVudGltZU9iamVjdEltcDo6dGhyb3dJbnZhbGlk
QWNjZXNzRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXgg
MzkxZTA3OC4uODdjNDdiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00NCw4ICs0NCw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7
CiAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0
YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>