<?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>214270</bug_id>
          
          <creation_ts>2020-07-13 14:11:59 -0700</creation_ts>
          <short_desc>Add support for parsing VP-style codec strings.</short_desc>
          <delta_ts>2020-07-14 14:28:32 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671146</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 14:11:59 -0700</bug_when>
    <thetext>Add support for parsing VP-style codec strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671148</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-13 14:13:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/65500048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671149</commentid>
    <comment_count>2</comment_count>
      <attachid>404173</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 14:13:37 -0700</bug_when>
    <thetext>Created attachment 404173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671158</commentid>
    <comment_count>3</comment_count>
      <attachid>404173</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-13 14:30:24 -0700</bug_when>
    <thetext>Comment on attachment 404173
Patch

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

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:37
&gt; +static HashSet&lt;uint8_t&gt; validVPLevels()

HashSet is not a good way to search a short list of integers. A better pattern is implemented in the portAllowed function in the URL.cpp file.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:39
&gt; +    static auto levels = makeNeverDestroyed(HashSet&lt;uint8_t&gt; {

If we stick with this we should add a const here. I think static const.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:60
&gt; +    static auto primaries = makeNeverDestroyed(HashSet&lt;uint8_t&gt; {

Ditto.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:94
&gt; +    if (!equal(configuration.codecName, &quot;vp08&quot;) &amp;&amp; !equal(configuration.codecName, &quot;vp09&quot;))

I suggest using != here.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:106
&gt; +    configuration.profile = toIntegralType&lt;uint8_t&gt;(profile, &amp;isValidProfile);

Would be much better to use the one returning Optional instead of the boolean out argument. Even if we have to add that; otherwise it’s just code we have to rewrite later. This applies many times below.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:117
&gt; +    if (!isValidLevel || !validVPLevels().contains(configuration.level))

We need to make sure we test with empty and deleted values of the HashSet. Could avoid that issue by rewriting as I suggest above.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:153
&gt; +    // Fifth element: colourPrimaries. Legal values are defined by  ISO/IEC 23001-8:2016, superceded

We shouldn&apos;t use the British colour in WebKit code. Why would we do that here?

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:158
&gt; +    if (!isValidColourPrimaries || !validColourPrimaries().contains(configuration.colourPrimaries))

We need to make sure we test with empty and deleted values of the HashSet. Could avoid that issue by rewriting as I suggest above.

&gt; Source/WebCore/platform/graphics/VP9Utilities.h:28
&gt; +#include &lt;wtf/Vector.h&gt;

This include should not be needed.

&gt; Source/WebCore/platform/graphics/VP9Utilities.h:42
&gt; +    uint8_t profile;
&gt; +    uint8_t level;
&gt; +    uint8_t bitDepth;
&gt; +    uint8_t chromaSubsampling;
&gt; +    uint8_t videoFullRangeFlag;
&gt; +    uint8_t colourPrimaries;
&gt; +    uint8_t transferCharacteristics;
&gt; +    uint8_t matrixCoefficients;

I suggest we initialize these to 0.

&gt; Source/WebCore/platform/graphics/VP9Utilities.h:45
&gt; +WEBCORE_EXPORT Optional&lt;VPCodecConfigurationRecord&gt; parseVPCodecParameters(const String&amp; codecString);

This should take a StringView, not a String.

&gt; Source/WebCore/testing/Internals.idl:204
&gt; +    unsigned short profile;
&gt; +    unsigned short level;
&gt; +    unsigned short bitDepth;
&gt; +    unsigned short chromaSubsampling;
&gt; +    unsigned short videoFullRangeFlag;
&gt; +    unsigned short colourPrimaries;
&gt; +    unsigned short transferCharacteristics;
&gt; +    unsigned short matrixCoefficients;

These say unsigned short, but our enum says uint8_t. Those are different types.

&gt; LayoutTests/media/vp-codec-parameters.html:45
&gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;bad-parameter&quot;)&apos;, null);
&gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09&quot;)&apos;, null);
&gt; +        testExpectedVPCodecConfigurationRecord(&apos;internals.parseVPCodecParameters(&quot;vp09.00.41.08&quot;)&apos;, makeVPCodecConfigurationRecord(&apos;vp09&apos;, 0, 41, 8, 1, 1, 1, 1, 0));
&gt; +        testExpectedVPCodecConfigurationRecord(&apos;internals.parseVPCodecParameters(&quot;vp09.02.10.10.01.09.16.09.01&quot;)&apos;, makeVPCodecConfigurationRecord(&apos;vp09&apos;, 2, 10, 10, 1, 9, 16, 9, 1));
&gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp10.00.41.08&quot;)&apos;, null);
&gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09.00.41.08.01.01.01.00.00&quot;)&apos;, null);

I’d like to see way more test cases. A separate one for every check we do in the function above. That should add maybe 20 more test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671267</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 20:00:34 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 404173 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404173&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:37
&gt; &gt; +static HashSet&lt;uint8_t&gt; validVPLevels()
&gt; 
&gt; HashSet is not a good way to search a short list of integers. A better
&gt; pattern is implemented in the portAllowed function in the URL.cpp file.

Oh! A sorted binary search! Much better; will adopt.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:94
&gt; &gt; +    if (!equal(configuration.codecName, &quot;vp08&quot;) &amp;&amp; !equal(configuration.codecName, &quot;vp09&quot;))
&gt; 
&gt; I suggest using != here.

Ok.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:106
&gt; &gt; +    configuration.profile = toIntegralType&lt;uint8_t&gt;(profile, &amp;isValidProfile);
&gt; 
&gt; Would be much better to use the one returning Optional instead of the
&gt; boolean out argument. Even if we have to add that; otherwise it’s just code
&gt; we have to rewrite later. This applies many times below.

Okay, we&apos;ll need to add it, but it shouldn&apos;t be difficult.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:153
&gt; &gt; +    // Fifth element: colourPrimaries. Legal values are defined by  ISO/IEC 23001-8:2016, superceded
&gt; 
&gt; We shouldn&apos;t use the British colour in WebKit code. Why would we do that
&gt; here?

Only because that&apos;s literally the spelling in the VP9 specification.  But sure, we can Americanize the spelling.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.h:28
&gt; &gt; +#include &lt;wtf/Vector.h&gt;
&gt; 
&gt; This include should not be needed.

Removed.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.h:42
&gt; &gt; +    uint8_t profile;
&gt; &gt; +    uint8_t level;
&gt; &gt; +    uint8_t bitDepth;
&gt; &gt; +    uint8_t chromaSubsampling;
&gt; &gt; +    uint8_t videoFullRangeFlag;
&gt; &gt; +    uint8_t colourPrimaries;
&gt; &gt; +    uint8_t transferCharacteristics;
&gt; &gt; +    uint8_t matrixCoefficients;
&gt; 
&gt; I suggest we initialize these to 0.

Ok.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.h:45
&gt; &gt; +WEBCORE_EXPORT Optional&lt;VPCodecConfigurationRecord&gt; parseVPCodecParameters(const String&amp; codecString);
&gt; 
&gt; This should take a StringView, not a String.

Ok.

&gt; &gt; Source/WebCore/testing/Internals.idl:204
&gt; &gt; +    unsigned short profile;
&gt; &gt; +    unsigned short level;
&gt; &gt; +    unsigned short bitDepth;
&gt; &gt; +    unsigned short chromaSubsampling;
&gt; &gt; +    unsigned short videoFullRangeFlag;
&gt; &gt; +    unsigned short colourPrimaries;
&gt; &gt; +    unsigned short transferCharacteristics;
&gt; &gt; +    unsigned short matrixCoefficients;
&gt; 
&gt; These say unsigned short, but our enum says uint8_t. Those are different
&gt; types.

TIL about &quot;octet&quot; in WebIDL.

&gt; &gt; LayoutTests/media/vp-codec-parameters.html:45
&gt; &gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;bad-parameter&quot;)&apos;, null);
&gt; &gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09&quot;)&apos;, null);
&gt; &gt; +        testExpectedVPCodecConfigurationRecord(&apos;internals.parseVPCodecParameters(&quot;vp09.00.41.08&quot;)&apos;, makeVPCodecConfigurationRecord(&apos;vp09&apos;, 0, 41, 8, 1, 1, 1, 1, 0));
&gt; &gt; +        testExpectedVPCodecConfigurationRecord(&apos;internals.parseVPCodecParameters(&quot;vp09.02.10.10.01.09.16.09.01&quot;)&apos;, makeVPCodecConfigurationRecord(&apos;vp09&apos;, 2, 10, 10, 1, 9, 16, 9, 1));
&gt; &gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp10.00.41.08&quot;)&apos;, null);
&gt; &gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09.00.41.08.01.01.01.00.00&quot;)&apos;, null);
&gt; 
&gt; I’d like to see way more test cases. A separate one for every check we do in
&gt; the function above. That should add maybe 20 more test cases.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671271</commentid>
    <comment_count>5</comment_count>
      <attachid>404173</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-13 20:52:11 -0700</bug_when>
    <thetext>Comment on attachment 404173
Patch

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

&gt; Source/WebCore/testing/Internals.idl:195
&gt; +] dictionary VPCodecConfigurationRecord {

Will this be used beyond these tests? Any reason to not just use TestWebKitAPI and test the interface directly? Seems like that would be more straightforward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671274</commentid>
    <comment_count>6</comment_count>
      <attachid>404205</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 21:08:48 -0700</bug_when>
    <thetext>Created attachment 404205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671275</commentid>
    <comment_count>7</comment_count>
      <attachid>404206</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 21:14:40 -0700</bug_when>
    <thetext>Created attachment 404206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671278</commentid>
    <comment_count>8</comment_count>
      <attachid>404209</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-13 21:26:43 -0700</bug_when>
    <thetext>Created attachment 404209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671417</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 10:21:22 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 404173 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404173&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.idl:195
&gt; &gt; +] dictionary VPCodecConfigurationRecord {
&gt; 
&gt; Will this be used beyond these tests? Any reason to not just use
&gt; TestWebKitAPI and test the interface directly? Seems like that would be more
&gt; straightforward.

No, and that&apos;s why it&apos;s there. We can&apos;t test the interface directly. This parser isn&apos;t exposed directly to JS. It&apos;s used by MediaCapabilities, but even then you can&apos;t disambiguate between &quot;this property isn&apos;t supported by the codec&quot; and &quot;this property parsed badly&quot;, hence this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671418</commentid>
    <comment_count>10</comment_count>
      <attachid>404209</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-14 10:26:41 -0700</bug_when>
    <thetext>Comment on attachment 404209
Patch

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

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:161
&gt; +    if (!transferCharacteristics || (!*transferCharacteristics || *transferCharacteristics == 3 || *transferCharacteristics &gt; 18))
&gt; +        return WTF::nullopt;

As discussed, 2 is undefined.

&gt; LayoutTests/media/vp-codec-parameters.html:130
&gt; +        consoleWrite(&apos;&apos;);
&gt; +        consoleWrite(&apos;Test invalid videoFullRangeFlag:&apos;);
&gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09.02.10.10.01.09.16.01.02&quot;)&apos;, null);
&gt; +        endTest();

Your parser fails if there is anything after the videoFullRangeFlag, so you might as well test that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671421</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 10:27:53 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #10)
&gt; Comment on attachment 404209 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404209&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:161
&gt; &gt; +    if (!transferCharacteristics || (!*transferCharacteristics || *transferCharacteristics == 3 || *transferCharacteristics &gt; 18))
&gt; &gt; +        return WTF::nullopt;
&gt; 
&gt; As discussed, 2 is undefined.

Good catch!

&gt; &gt; LayoutTests/media/vp-codec-parameters.html:130
&gt; &gt; +        consoleWrite(&apos;&apos;);
&gt; &gt; +        consoleWrite(&apos;Test invalid videoFullRangeFlag:&apos;);
&gt; &gt; +        testExpected(&apos;internals.parseVPCodecParameters(&quot;vp09.02.10.10.01.09.16.01.02&quot;)&apos;, null);
&gt; &gt; +        endTest();
&gt; 
&gt; Your parser fails if there is anything after the videoFullRangeFlag, so you
&gt; might as well test that as well.

That&apos;s tested in the last entry of &quot;Test invalid number of optional parameters&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671422</commentid>
    <comment_count>12</comment_count>
      <attachid>404250</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 10:29:55 -0700</bug_when>
    <thetext>Created attachment 404250
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671427</commentid>
    <comment_count>13</comment_count>
      <attachid>404250</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-14 10:47:36 -0700</bug_when>
    <thetext>Comment on attachment 404250
Patch for landing

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

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:36
&gt; +    static const uint16_t validLevels[] = {

constexpr uint8_t

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:57
&gt; +static bool isValidVPcolorPrimaries(uint8_t colorPrimarary)

&quot;primarary&quot;

Is it &quot;primaries&quot; or &quot;primary&quot;? This calls it both.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:59
&gt; +    static const uint16_t validcolorPrimaries[] = {

Ditto.

Why is &quot;color&quot; lowercase here?

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:77
&gt; +Optional&lt;VPCodecConfigurationRecord&gt; parseVPCodecParameters(const StringView&amp; codecString)

Should just be StringView, not const StringView&amp;.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:85
&gt; +    StringView codecView(codecString);

This is strange, both are StringView.

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:133
&gt; +        configuration.chromaSubsampling = 1;
&gt; +        configuration.colorPrimaries = 1;
&gt; +        configuration.transferCharacteristics = 1;
&gt; +        configuration.matrixCoefficients = 1;

Could initialize to 1 instead of 0 and get rid of this?

&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:134
&gt; +        configuration.videoFullRangeFlag = 0;

Not needed, since we initialize to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671428</commentid>
    <comment_count>14</comment_count>
      <attachid>404250</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-14 10:48:13 -0700</bug_when>
    <thetext>Comment on attachment 404250
Patch for landing

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

&gt;&gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:59
&gt;&gt; +    static const uint16_t validcolorPrimaries[] = {
&gt; 
&gt; Ditto.
&gt; 
&gt; Why is &quot;color&quot; lowercase here?

By &quot;Ditto&quot; I meant:

static constexpr uint8_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671437</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 11:06:57 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; Comment on attachment 404250 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404250&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:36
&gt; &gt; +    static const uint16_t validLevels[] = {
&gt; 
&gt; constexpr uint8_t

Ok.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:57
&gt; &gt; +static bool isValidVPcolorPrimaries(uint8_t colorPrimarary)
&gt; 
&gt; &quot;primarary&quot;
&gt; 
&gt; Is it &quot;primaries&quot; or &quot;primary&quot;? This calls it both.

Yeah, this is confusing. Each enumerated value is a single number that represents a trio of color primaries. But they&apos;re a single enumerated value, so they feel like they should be singular, and a group of multiple enumerated values should be plural. Having them both be plural leads to a &quot;1 fish, 2 fish&quot; situation. But that&apos;s probably more correct anyway.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:59
&gt; &gt; +    static const uint16_t validcolorPrimaries[] = {
&gt; 
&gt; Ditto.
&gt; 
&gt; Why is &quot;color&quot; lowercase here?

Whoops, bad search-replace.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:77
&gt; &gt; +Optional&lt;VPCodecConfigurationRecord&gt; parseVPCodecParameters(const StringView&amp; codecString)
&gt; 
&gt; Should just be StringView, not const StringView&amp;.

Ok.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:85
&gt; &gt; +    StringView codecView(codecString);
&gt; 
&gt; This is strange, both are StringView.

Will remove.

&gt; &gt; Source/WebCore/platform/graphics/VP9Utilities.cpp:133
&gt; &gt; +        configuration.chromaSubsampling = 1;
&gt; &gt; +        configuration.colorPrimaries = 1;
&gt; &gt; +        configuration.transferCharacteristics = 1;
&gt; &gt; +        configuration.matrixCoefficients = 1;
&gt; 
&gt; Could initialize to 1 instead of 0 and get rid of this?

I didn&apos;t want to necessarily bake the default values into the header, but I don&apos;t have a good justification for that, so I&apos;ll just do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671443</commentid>
    <comment_count>16</comment_count>
      <attachid>404254</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 11:14:24 -0700</bug_when>
    <thetext>Created attachment 404254
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671472</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-14 12:18:44 -0700</bug_when>
    <thetext>Committed r264367: &lt;https://trac.webkit.org/changeset/264367&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404254.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671525</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-14 14:28:32 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #9)
&gt; (In reply to Sam Weinig from comment #5)
&gt; &gt; Comment on attachment 404173 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=404173&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/testing/Internals.idl:195
&gt; &gt; &gt; +] dictionary VPCodecConfigurationRecord {
&gt; &gt; 
&gt; &gt; Will this be used beyond these tests? Any reason to not just use
&gt; &gt; TestWebKitAPI and test the interface directly? Seems like that would be more
&gt; &gt; straightforward.
&gt; 
&gt; No, and that&apos;s why it&apos;s there. We can&apos;t test the interface directly. This
&gt; parser isn&apos;t exposed directly to JS. It&apos;s used by MediaCapabilities, but
&gt; even then you can&apos;t disambiguate between &quot;this property isn&apos;t supported by
&gt; the codec&quot; and &quot;this property parsed badly&quot;, hence this test.

Right, I am asking why you don&apos;t test the parser directly in TestWebKitAPI, which is the way we can test C/C++ interfaces directly. It doesn&apos;t seem necessary to expose this to JS at all.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404173</attachid>
            <date>2020-07-13 14:13:37 -0700</date>
            <delta_ts>2020-07-13 21:08:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214270-20200713141336.patch</filename>
            <type>text/plain</type>
            <size>21925</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMyZWJkNDc2Y2FhZjcw
ZTI0MDI5YjUyMjFhOTc3YTdiZWQzMjhjOS4uN2FiMmNmMTA0MDYwM2I2MjJjMjdhOGQ0MTUxOTYw
N2NmMDg0M2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA3LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBw
YXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBtZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLmh0
bWwKKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRp
ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkVlBMZXZlbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRDb2xvdXJQcmltYXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRp
bGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMjAtMDctMDIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52aWRlb1JhbmdlT3ZlcnJpZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggMThlZTAwYTQ3NzFhMGU4NmVlNTE0ODBjNzhiYjAzNjY1NWZjY2QxNS4uYmYyYmY1ZTdj
MWExN2QzYWM2NzY4YTA1M2M5MDQ0MWVjZjE1YjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4OTEs
NiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVy
YXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9WZWxvY2l0eURhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZv
cm1hdC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzQ2OWUw
NmVjYTkyOGUxNDEzMjE0NmQyMTVhOTlmNjhlZDFmOTNhZC4uM2M1NjMxZTRiYzg0MTMwZTlhYjVi
MjU5YTcxOTVkMjIyNGYxYzM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwOTcsNiArMTQwOTcsOCBAQAogCQlDRDY0MUVC
MTE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVF
NEM0MSAvKiBNZWRpYVNhbXBsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQOVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDZGRTVCQjI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZQOVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENzIwQjQ3MjI2ODJDN0UwMDA0N0ZERSAvKiBJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSVNPRmFpclBsYXlTdHJlYW1p
bmdQc3NoQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3MjBCNDkyMjY4
MkM3RjAwMDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q3OEEyRUMxRjc1NjQ4NjAwREUzNzFCIC8qIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNTcyMCw2ICsyNTcyMiw4IEBACiAJCQkJMDc2RTExQkUxRjY4M0Uw
RDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2UuY3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4
RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlB
MzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKKwkJCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNE
QTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCisJCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8q
IFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZl
bG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9j
aXR5RGF0YS5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVlA5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQ
OVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcxN2RhYWEzMzQ3ODkwMmYwMjQyMDQ5ZWRjYmM0
ZDk4MDRjYzgyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVlA5VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgSGFzaFNldDx1aW50OF90PiB2YWxpZFZQTGV2ZWxzKCkKK3sK
KyAgICBzdGF0aWMgYXV0byBsZXZlbHMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFzaFNldDx1aW50
OF90PiB7CisgICAgICAgIDEwLAorICAgICAgICAxMSwKKyAgICAgICAgMjAsCisgICAgICAgIDIx
LAorICAgICAgICAzMCwKKyAgICAgICAgMzEsCisgICAgICAgIDQwLAorICAgICAgICA0MSwKKyAg
ICAgICAgNTAsCisgICAgICAgIDUxLAorICAgICAgICA1MiwKKyAgICAgICAgNjAsCisgICAgICAg
IDYxLAorICAgICAgICA2MiwKKyAgICB9KTsKKyAgICByZXR1cm4gbGV2ZWxzOworfQorCitzdGF0
aWMgSGFzaFNldDx1aW50OF90PiB2YWxpZENvbG91clByaW1hcmllcygpCit7CisgICAgc3RhdGlj
IGF1dG8gcHJpbWFyaWVzID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8dWludDhfdD4gewor
ICAgICAgICAxLAorICAgICAgICA0LAorICAgICAgICA1LAorICAgICAgICA2LAorICAgICAgICA3
LAorICAgICAgICA4LAorICAgICAgICA5LAorICAgICAgICAxMCwKKyAgICAgICAgMTEsCisgICAg
ICAgIDEyLAorICAgICAgICAyMiwKKyAgICB9KTsKKyAgICByZXR1cm4gcHJpbWFyaWVzOworfQor
CitPcHRpb25hbDxWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZD4gcGFyc2VWUENvZGVjUGFyYW1l
dGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5nKQoreworICAgIC8vIFRoZSBmb3JtYXQgb2Yg
dGhlICd2cDA5JyBjb2RlYyBzdHJpbmcgaXMgc3BlY2lmaWVkIGluIHRoZSB3ZWJtIEdpdEh1YiBy
ZXBvOgorICAgIC8vIDxodHRwczovL2dpdGh1Yi5jb20vd2VibXByb2plY3QvdnA5LWRhc2gvYmxv
Yi9tYXN0ZXIvVlBDb2RlY0lTT01lZGlhRmlsZUZvcm1hdEJpbmRpbmcubWQjY29kZWNzLXBhcmFt
ZXRlci1zdHJpbmc+CisKKyAgICAvLyAic2FtcGxlIGVudHJ5IDRDQywgcHJvZmlsZSwgbGV2ZWws
IGFuZCBiaXREZXB0aCBhcmUgYWxsIG1hbmRhdG9yeSBmaWVsZHMuIElmIGFueSBvZiB0aGVzZSBm
aWVsZHMgYXJlIGVtcHR5LCBvciBub3QKKyAgICAvLyB3aXRoaW4gdGhlaXIgYWxsb3dlZCByYW5n
ZSwgdGhlIHByb2Nlc3NpbmcgZGV2aWNlIFNIQUxMIHRyZWF0IGl0IGFzIGFuIGVycm9yLiIKKwor
ICAgIFN0cmluZ1ZpZXcgY29kZWNWaWV3KGNvZGVjU3RyaW5nKTsKKyAgICBhdXRvIGNvZGVjU3Bs
aXQgPSBjb2RlY1ZpZXcuc3BsaXQoJy4nKTsKKyAgICBhdXRvIG5leHRFbGVtZW50ID0gY29kZWNT
cGxpdC5iZWdpbigpOworICAgIGlmIChuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgVlBDb2RlY0NvbmZpZ3VyYXRpb25S
ZWNvcmQgY29uZmlndXJhdGlvbjsKKworICAgIC8vIENvZGVjIGlkZW50aWZpZXI6IGxlZ2FsIHZh
bHVlcyBhcmUgJ3ZwMDgnIG9yICd2cDA5Jy4KKyAgICBjb25maWd1cmF0aW9uLmNvZGVjTmFtZSA9
ICgqbmV4dEVsZW1lbnQpLnRvU3RyaW5nKCk7CisgICAgaWYgKCFlcXVhbChjb25maWd1cmF0aW9u
LmNvZGVjTmFtZSwgInZwMDgiKSAmJiAhZXF1YWwoY29uZmlndXJhdGlvbi5jb2RlY05hbWUsICJ2
cDA5IikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoKytuZXh0RWxl
bWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgLy8gRmlyc3QgZWxlbWVudDogcHJvZmlsZS4gTGVnYWwgdmFsdWVzIGFyZSAwLTMuCisg
ICAgYXV0byBwcm9maWxlID0gKm5leHRFbGVtZW50OworICAgIGlmICghcHJvZmlsZS5sZW5ndGgo
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGJvb2wgaXNWYWxpZFByb2Zp
bGUgPSBmYWxzZTsKKyAgICBjb25maWd1cmF0aW9uLnByb2ZpbGUgPSB0b0ludGVncmFsVHlwZTx1
aW50OF90Pihwcm9maWxlLCAmaXNWYWxpZFByb2ZpbGUpOworICAgIGlmICghaXNWYWxpZFByb2Zp
bGUgfHwgY29uZmlndXJhdGlvbi5wcm9maWxlID4gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBTZWNvbmQgZWxlbWVudDogbGV2ZWwu
IExlZ2FsIHZhbHVlcyBhcmUgZW51bWVyYXRlZCBpbiB2YWxpZFZQTGV2ZWxzIGFib3ZlLgorICAg
IGF1dG8gbGV2ZWwgPSAqbmV4dEVsZW1lbnQ7CisgICAgYm9vbCBpc1ZhbGlkTGV2ZWwgPSBmYWxz
ZTsKKyAgICBjb25maWd1cmF0aW9uLmxldmVsID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4obGV2
ZWwsICZpc1ZhbGlkTGV2ZWwpOworICAgIGlmICghaXNWYWxpZExldmVsIHx8ICF2YWxpZFZQTGV2
ZWxzKCkuY29udGFpbnMoY29uZmlndXJhdGlvbi5sZXZlbCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gVGhpcmQgZWxlbWVudDogYml0
RGVwdGguIExlZ2FsIHZhbHVlcyBhcmUgOCwgMTAsIGFuZCAxMi4KKyAgICBhdXRvIGJpdERlcHRo
ID0gKm5leHRFbGVtZW50OworICAgIGJvb2wgaXNWYWxpZEJpdERlcHRoID0gZmFsc2U7CisgICAg
Y29uZmlndXJhdGlvbi5iaXREZXB0aCA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KGJpdERlcHRo
LCAmaXNWYWxpZEJpdERlcHRoKTsKKyAgICBpZiAoIWlzVmFsaWRCaXREZXB0aCB8fCAoY29uZmln
dXJhdGlvbi5iaXREZXB0aCAhPSA4ICYmIGNvbmZpZ3VyYXRpb24uYml0RGVwdGggIT0gMTAgJiYg
Y29uZmlndXJhdGlvbi5iaXREZXB0aCAhPSAxMikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAvLyAiY29sb3VyUHJpbWFyaWVzLCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywg
bWF0cml4Q29lZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcsIGFuZCBjaHJvbWFTdWJzYW1w
bGluZyBhcmUgT1BUSU9OQUwsCisgICAgLy8gbXV0dWFsbHkgaW5jbHVzaXZlIChhbGwgb3Igbm9u
ZSkgZmllbGRzLiBJZiBub3Qgc3BlY2lmaWVkIHRoZW4gdGhlIHByb2Nlc3NpbmcgZGV2aWNlIE1V
U1QgdXNlIHRoZSB2YWx1ZXMgbGlzdGVkIGluIHRoZQorICAgIC8vIHRhYmxlIGJlbG93IGFzIGRl
ZmF1bHRzIHdoZW4gZGVjaWRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIGRlY29kZSBhbmQg
cG90ZW50aWFsbHkgcmVuZGVyIHRoZSB2aWRlby4iCisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9
PSBjb2RlY1NwbGl0LmVuZCgpKSB7CisgICAgICAgIGNvbmZpZ3VyYXRpb24uY2hyb21hU3Vic2Ft
cGxpbmcgPSAxOworICAgICAgICBjb25maWd1cmF0aW9uLmNvbG91clByaW1hcmllcyA9IDE7Cisg
ICAgICAgIGNvbmZpZ3VyYXRpb24udHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPSAxOworICAgICAg
ICBjb25maWd1cmF0aW9uLm1hdHJpeENvZWZmaWNpZW50cyA9IDE7CisgICAgICAgIGNvbmZpZ3Vy
YXRpb24udmlkZW9GdWxsUmFuZ2VGbGFnID0gMDsKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRp
b247CisgICAgfQorCisgICAgLy8gRm91cnRoIGVsZW1lbnQ6IGNocm9tYVN1YnNhbXBsaW5nLiBM
ZWdhbCB2YWx1ZXMgYXJlIDAtMy4KKyAgICBhdXRvIGNocm9tYVN1YnNhbXBsaW5nID0gKm5leHRF
bGVtZW50OworICAgIGJvb2wgaXNWYWxpZENocm9tYVN1YnNhbXBsaW5nID0gZmFsc2U7CisgICAg
Y29uZmlndXJhdGlvbi5jaHJvbWFTdWJzYW1wbGluZyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+
KGNocm9tYVN1YnNhbXBsaW5nLCAmaXNWYWxpZENocm9tYVN1YnNhbXBsaW5nKTsKKyAgICBpZiAo
IWlzVmFsaWRDaHJvbWFTdWJzYW1wbGluZyB8fCBjb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBs
aW5nID4gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICgrK25leHRF
bGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAvLyBGaWZ0aCBlbGVtZW50OiBjb2xvdXJQcmltYXJpZXMuIExlZ2FsIHZhbHVlcyBh
cmUgZGVmaW5lZCBieSAgSVNPL0lFQyAyMzAwMS04OjIwMTYsIHN1cGVyY2VkZWQKKyAgICAvLyBi
eSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICBhdXRvIGNvbG91clByaW1hcmllcyA9ICpuZXh0
RWxlbWVudDsKKyAgICBib29sIGlzVmFsaWRDb2xvdXJQcmltYXJpZXMgPSBmYWxzZTsKKyAgICBj
b25maWd1cmF0aW9uLmNvbG91clByaW1hcmllcyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KGNv
bG91clByaW1hcmllcywgJmlzVmFsaWRDb2xvdXJQcmltYXJpZXMpOworICAgIGlmICghaXNWYWxp
ZENvbG91clByaW1hcmllcyB8fCAhdmFsaWRDb2xvdXJQcmltYXJpZXMoKS5jb250YWlucyhjb25m
aWd1cmF0aW9uLmNvbG91clByaW1hcmllcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2l4dGggZWxlbWVudDogdHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3MuIExlZ2FsIHZhbHVlcyBhcmUgZGVmaW5lZCBieSAgSVNPL0lFQyAyMzAwMS04
OjIwMTYsIHN1cGVyY2VkZWQKKyAgICAvLyBieSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICBh
dXRvIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gKm5leHRFbGVtZW50OworICAgIGJvb2wgaXNW
YWxpZFRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gZmFsc2U7CisgICAgY29uZmlndXJhdGlvbi50
cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KHRyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzLCAmaXNWYWxpZFRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzKTsKKyAgICBp
ZiAoIWlzVmFsaWRUcmFuc2ZlckNoYXJhY3RlcmlzdGljcyB8fCAoY29uZmlndXJhdGlvbi50cmFu
c2ZlckNoYXJhY3RlcmlzdGljcyA9PSAwIHx8IGNvbmZpZ3VyYXRpb24udHJhbnNmZXJDaGFyYWN0
ZXJpc3RpY3MgPT0gMyB8fCBjb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID4g
MTgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCsrbmV4dEVsZW1l
bnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIC8vIFNldmVudGggZWxlbWVudDogbWF0cml4Q29lZmZpY2llbnRzLiBMZWdhbCB2YWx1ZXMg
YXJlIGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEtODoyMDE2LCBzdXBlcmNlZGVkCisgICAgLy8g
YnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgYXV0byBtYXRyaXhDb2VmZmljaWVudHMgPSAq
bmV4dEVsZW1lbnQ7CisgICAgYm9vbCBpc1ZhbGlkTWF0cml4Q29lZmZpY2llbnRzID0gZmFsc2U7
CisgICAgY29uZmlndXJhdGlvbi5tYXRyaXhDb2VmZmljaWVudHMgPSB0b0ludGVncmFsVHlwZTx1
aW50OF90PihtYXRyaXhDb2VmZmljaWVudHMsICZpc1ZhbGlkTWF0cml4Q29lZmZpY2llbnRzKTsK
KyAgICBpZiAoIWlzVmFsaWRNYXRyaXhDb2VmZmljaWVudHMgfHwgKGNvbmZpZ3VyYXRpb24ubWF0
cml4Q29lZmZpY2llbnRzID09IDIgfHwgY29uZmlndXJhdGlvbi5tYXRyaXhDb2VmZmljaWVudHMg
PT0gMyB8fCBjb25maWd1cmF0aW9uLm1hdHJpeENvZWZmaWNpZW50cyA+IDE0KSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vICJJZiBtYXRyaXhDb2VmZmljaWVudHMgaXMg
MCAoUkdCKSwgdGhlbiBjaHJvbWEgc3Vic2FtcGxpbmcgTVVTVCBiZSAzICg0OjQ6NCkuIgorICAg
IGlmIChjb25maWd1cmF0aW9uLm1hdHJpeENvZWZmaWNpZW50cyA9PSAwICYmIGNvbmZpZ3VyYXRp
b24uY2hyb21hU3Vic2FtcGxpbmcgIT0gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBFaWdodGggZWxlbWVudDogdmlkZW9GdWxsUmFu
Z2VGbGFnLiBMZWdhbCB2YWx1ZXMgYXJlIDAgYW5kIDEuCisgICAgYXV0byB2aWRlb0Z1bGxSYW5n
ZUZsYWcgPSAqbmV4dEVsZW1lbnQ7CisgICAgYm9vbCBpc1ZhbGlkVmlkZW9GdWxsUmFuZ2VGbGFn
ID0gZmFsc2U7CisgICAgY29uZmlndXJhdGlvbi52aWRlb0Z1bGxSYW5nZUZsYWcgPSB0b0ludGVn
cmFsVHlwZTx1aW50OF90Pih2aWRlb0Z1bGxSYW5nZUZsYWcsICZpc1ZhbGlkVmlkZW9GdWxsUmFu
Z2VGbGFnKTsKKyAgICBpZiAoIWlzVmFsaWRWaWRlb0Z1bGxSYW5nZUZsYWcgfHwgY29uZmlndXJh
dGlvbi52aWRlb0Z1bGxSYW5nZUZsYWcgPiAxKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRjYWNkNWNl
MDlhNjc2ZTMxZGQ2MjgwNTM0ZjlmZTIxNGNiZTIzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgeworICAgIFN0cmluZyBjb2RlY05h
bWU7CisgICAgdWludDhfdCBwcm9maWxlOworICAgIHVpbnQ4X3QgbGV2ZWw7CisgICAgdWludDhf
dCBiaXREZXB0aDsKKyAgICB1aW50OF90IGNocm9tYVN1YnNhbXBsaW5nOworICAgIHVpbnQ4X3Qg
dmlkZW9GdWxsUmFuZ2VGbGFnOworICAgIHVpbnQ4X3QgY29sb3VyUHJpbWFyaWVzOworICAgIHVp
bnQ4X3QgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M7CisgICAgdWludDhfdCBtYXRyaXhDb2VmZmlj
aWVudHM7Cit9OworCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZD4gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5n
KTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGUyZTU3ZWNiZWY0
NWQzYzI0NjNmOTg2MzczNzEzMzJmYWJmNDUyOTcuLmNlOTZiYTc2N2UwYzA1NzU4MGZlMTA1Y2Qy
YjMzN2U3YTE1NDJhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU2
MDAsNiArNTYwMCwxMSBAQCBPcHRpb25hbDxEb1ZpUGFyYW1ldGVyU2V0PiBJbnRlcm5hbHM6OnBh
cnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZAogICAgIHJldHVybiBXZWJD
b3JlOjpwYXJzZURvVmlDb2RlY1BhcmFtZXRlcnMoY29kZWNTdHJpbmcpOwogfQogCitPcHRpb25h
bDxWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZD4gSW50ZXJuYWxzOjpwYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kZWNTdHJpbmcpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6
OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29kZWNTdHJpbmcpOworfQorCiBhdXRvIEludGVybmFs
czo6Z2V0Q29va2llcygpIGNvbnN0IC0+IFZlY3RvcjxDb29raWVEYXRhPgogewogICAgIGF1dG8q
IGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA4NWNlNjkyNDJmNjQzMmNmNjdkODE5OTgxZmRhOTk5MzUxYTUzMTBiLi5iZWM1OWNi
Y2MwMThmZDZiMTliZWEyM2U3OTkwZmNhZGEzNTJlMTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNl
LmgiCiAjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgogI2luY2x1ZGUgIlRleHRJbmRpY2F0b3Iu
aCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
bG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtOTE1LDYgKzkx
Niw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBEb1ZpUGFyYW1ldGVyU2V0ID0gV2ViQ29yZTo6RG9W
aVBhcmFtZXRlclNldDsKICAgICBPcHRpb25hbDxEb1ZpUGFyYW1ldGVyU2V0PiBwYXJzZURvVmlD
b2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZyk7CiAKKyAgICB1c2luZyBW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCA9IFdlYkNvcmU6OlZQQ29kZWNDb25maWd1cmF0aW9u
UmVjb3JkOworICAgIE9wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPiBwYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kZWNTdHJpbmcpOworCiAgICAgc3RydWN0
IENvb2tpZURhdGEgewogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgU3RyaW5nIHZhbHVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGVmMGIwZGVlNGEyM2U1YzJk
NWQxNmFiMDQwYWNlZWYxMDk2ZTFlN2QuLjc2N2ViNjBlNDk4MWRiYWY2MThjMjQxMThiOTBmMjk2
YTczNzFmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE4OSw2ICsx
ODksMjEgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICB1bnNpZ25lZCBzaG9ydCBi
aXRzdHJlYW1MZXZlbElEOwogfTsKIAorWworICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNV
UFBPUlRfRVhQT1JULAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IFZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkIHsKKyAgICBET01TdHJpbmcgY29kZWNOYW1lOworICAg
IHVuc2lnbmVkIHNob3J0IHByb2ZpbGU7CisgICAgdW5zaWduZWQgc2hvcnQgbGV2ZWw7CisgICAg
dW5zaWduZWQgc2hvcnQgYml0RGVwdGg7CisgICAgdW5zaWduZWQgc2hvcnQgY2hyb21hU3Vic2Ft
cGxpbmc7CisgICAgdW5zaWduZWQgc2hvcnQgdmlkZW9GdWxsUmFuZ2VGbGFnOworICAgIHVuc2ln
bmVkIHNob3J0IGNvbG91clByaW1hcmllczsKKyAgICB1bnNpZ25lZCBzaG9ydCB0cmFuc2ZlckNo
YXJhY3RlcmlzdGljczsKKyAgICB1bnNpZ25lZCBzaG9ydCBtYXRyaXhDb2VmZmljaWVudHM7Cit9
OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCiAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCkBAIC04ODEsNiArODk2LDcgQEAgZW51bSBDb250ZW50U2l6
ZUNhdGVnb3J5IHsKIAogICAgIEhFVkNQYXJhbWV0ZXJTZXQ/IHBhcnNlSEVWQ0NvZGVjUGFyYW1l
dGVycyhET01TdHJpbmcgY29kZWNQYXJhbWV0ZXJzKTsKICAgICBEb1ZpUGFyYW1ldGVyU2V0PyBw
YXJzZURvVmlDb2RlY1BhcmFtZXRlcnMoRE9NU3RyaW5nIGNvZGVjUGFyYW1ldGVycyk7CisgICAg
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ/IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoRE9NU3Ry
aW5nIGNvZGVjUGFyYW1ldGVycyk7CiAKICAgICBzZXF1ZW5jZTxDb29raWVEYXRhPiBnZXRDb29r
aWVzKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzZTQ3NGMzZTBmOTgwNDRjYmJlZGY5ZmExN2ZlODY5MzI4YjEzNzc4
Li41NzRhMzE4OTA4MGM4ZWNmODI2NDVmNDQxZDVkYTlmODMzZDI2OWJjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMgc3RyaW5ncy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEv
dnAtY29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbDogQWRkZWQuCisKIDIwMjAtMDYtMjkgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRl
bmluZzsgInJlYmFzZWxpbmUiIHRoZSB2aWRlby1vcmllbnRhdGlvbi1jYW52YXMuaHRtbCB0ZXN0
IHRvIGNlbnRlciB0aGUgZXhwZWN0ZWQgcmVkIGNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjNTY2N2M1
NTc5NjhkNTNhMzgxMmE5YTE4YTZhMWI1NGU1YjAzYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygiYmFkLXBh
cmFtZXRlciIpID09ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOSIpID09ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFy
c2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5LCAwLCA0MSwg
OCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIs
IDEwLCAxMCwgMSwgOSwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAxMC4wMC40MS4wOCIpID09ICdudWxsJykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOC4wMS4wMS4w
MS4wMC4wMCIpID09ICdudWxsJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWE5MmQyOThhODg4NTY2ZjU1
ZWYzMjQyZjViNGEyNDAxZmZiOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBWUENvZGVjQ29uZmlndXJhdGlvblJl
Y29yZFRvU3RyaW5nKHNldCkgeworICAgICAgICByZXR1cm4gYHsgJHtzZXQuY29kZWNOYW1lfSwg
JHtzZXQucHJvZmlsZX0sICR7c2V0LmxldmVsfSwgJHtzZXQuYml0RGVwdGh9LCAke3NldC5jaHJv
bWFTdWJzYW1wbGluZ30sICR7c2V0LmNvbG91clByaW1hcmllc30sICR7c2V0LnRyYW5zZmVyQ2hh
cmFjdGVyaXN0aWNzfSwgJHtzZXQubWF0cml4Q29lZmZpY2llbnRzfSwgJHtzZXQudmlkZW9GdWxs
UmFuZ2VGbGFnfX1gOworICAgIH0KKyAgICBmdW5jdGlvbiBpc0VxdWFsVlBDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmQoc2V0QSwgc2V0QikgeworICAgICAgICByZXR1cm4gc2V0QS5wcm9maWxlID09
IHNldEIucHJvZmlsZSAmJgorICAgICAgICAgICAgc2V0QS5sZXZlbCA9PSBzZXRCLmxldmVsICYm
CisgICAgICAgICAgICBzZXRBLmJpdERlcHRoID09IHNldEIuYml0RGVwdGggJiYKKyAgICAgICAg
ICAgIHNldEEuY2hyb21hU3Vic2FtcGxpbmcgPT0gc2V0Qi5jaHJvbWFTdWJzYW1wbGluZyAmJgor
ICAgICAgICAgICAgc2V0QS52aWRlb0Z1bGxSYW5nZUZsYWcgPT0gc2V0Qi52aWRlb0Z1bGxSYW5n
ZUZsYWcgJiYKKyAgICAgICAgICAgIHNldEEuY29sb3VyUHJpbWFyaWVzID09IHNldEIuY29sb3Vy
UHJpbWFyaWVzICYmCisgICAgICAgICAgICBzZXRBLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID09
IHNldEIudHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgJiYKKyAgICAgICAgICAgIHNldEEubWF0cml4
Q29lZmZpY2llbnRzID09IHNldEIubWF0cml4Q29lZmZpY2llbnRzOworICAgIH0KKyAgICBmdW5j
dGlvbiBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoY29kZWNOYW1lLCBwcm9maWxlLCBs
ZXZlbCwgYml0RGVwdGgsIGNocm9tYVN1YnNhbXBsaW5nLCBjb2xvdXJQcmltYXJpZXMsIHRyYW5z
ZmVyQ2hhcmFjdGVyaXN0aWNzLCBtYXRyaXhDb2VmZmljaWVudHMsIHZpZGVvRnVsbFJhbmdlRmxh
ZykKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBjb2RlY05hbWU6IGNvZGVj
TmFtZSwKKyAgICAgICAgICAgIHByb2ZpbGU6IHByb2ZpbGUsCisgICAgICAgICAgICBsZXZlbDog
bGV2ZWwsCisgICAgICAgICAgICBiaXREZXB0aDogYml0RGVwdGgsCisgICAgICAgICAgICBjaHJv
bWFTdWJzYW1wbGluZzogY2hyb21hU3Vic2FtcGxpbmcsCisgICAgICAgICAgICB2aWRlb0Z1bGxS
YW5nZUZsYWc6IHZpZGVvRnVsbFJhbmdlRmxhZywKKyAgICAgICAgICAgIGNvbG91clByaW1hcmll
czogY29sb3VyUHJpbWFyaWVzLAorICAgICAgICAgICAgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6
IHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLAorICAgICAgICAgICAgbWF0cml4Q29lZmZpY2llbnRz
OiBtYXRyaXhDb2VmZmljaWVudHMKKyAgICAgICAgfTsKKyAgICB9CisgICAgZnVuY3Rpb24gdGVz
dEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQodGVzdEZ1bmNTdHJpbmcsIGV4cGVj
dGVkKQorICAgIHsKKyAgICAgICAgbGV0IG9ic2VydmVkID0gZXZhbCh0ZXN0RnVuY1N0cmluZyk7
CisgICAgICAgIGxldCBzdWNjZXNzID0gaXNFcXVhbFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3Jk
KG9ic2VydmVkLCBleHBlY3RlZCk7CisgICAgICAgIHJlcG9ydEV4cGVjdGVkKHN1Y2Nlc3MsIHRl
c3RGdW5jU3RyaW5nLCAnPT09JywgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRUb1N0cmluZyhl
eHBlY3RlZCksIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkVG9TdHJpbmcob2JzZXJ2ZWQpKTsK
KyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBldmVudCA9PiB7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoImJh
ZC1wYXJhbWV0ZXIiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5IiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IiknLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQo
J3ZwMDknLCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMCkpOworICAgICAgICB0ZXN0RXhwZWN0ZWRW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKScsIG1ha2VWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDEpKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAxMC4wMC40
MS4wOCIpJywgbnVsbCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMDguMDEuMDEuMDEuMDAuMDAiKScsIG51bGwpOwor
ICAgICAgICBlbmRUZXN0KCk7CisgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404205</attachid>
            <date>2020-07-13 21:08:48 -0700</date>
            <delta_ts>2020-07-13 21:14:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214270-20200713210847.patch</filename>
            <type>text/plain</type>
            <size>39952</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiOWYxMTA4NjAwY2MzMGZlMzIyNGU2
N2RiNTFhZjA4NTJhMWY4NGQuLjYxNjRhZWNhNTNhY2M3NTE2NmVlODRmODQwMzFlZDUzNjQyMWY1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUg
Y29kZWMgc3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MDAwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdmFyaWFudCBv
ZiB0b0ludGVncmFsVHlwZTw+IHdoaWNoIHJldHVybnMgYW4gT3B0aW9uYWwuIFNpbmNlIG5vIGV4
aXN0aW5nIGNhbGxlcnMgb2YgdGhlCisgICAgICAgIG9yaWdpbmFsIHRvSW50ZWdyYWxUeXBlIGZh
aWwgdG8gcGFzcyBpbiB0aGUgb3B0aW9uYWwgYm9vbCogcGFyYW1ldGVyLCBtYWtlIHRoYXQgcGFy
YW1ldGVyCisgICAgICAgIG5vbi1vcHRpb25hbCwgYXMgaXQgY2F1c2VzIGEgY29uZmxpY3Qgd2l0
aCB0aGUgbmV3IE9wdGlvbmFsLXJldHVybmluZyB2ZXJzaW9uLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oOgorICAgICAgICAoV1RGOjp0b0ludGVncmFs
VHlwZSk6CisKIDIwMjAtMDctMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nlc3MgaGFuZ3Mgd2hlbiBicm93c2luZyBH
aXRIdWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3MzJlYmQ0NzZjYWFmNzBlMjQwMjliNTIyMWE5NzdhN2JlZDMy
OGM5Li43YWIyY2YxMDQwNjAzYjYyMmMyN2E4ZDQxNTE5NjA3Y2YwODQzYjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMg
c3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbAorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRWUExldmVscyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZENvbG91
clByaW1hcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNy0wMiAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkb3B0IEFWUGxh
eWVyLnZpZGVvUmFuZ2VPdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1Rv
SW50ZWdlckNvbnZlcnNpb24uaAppbmRleCA3Njg5YzdlYmM1ZTliYzI4YjYwMDM4OTk0ZGU4NGM3
Y2E1MTliODdjLi43ZTAyNDRiMGVmNjdjZWVlZTVhZTFhNjBkYmE0MTA1Mzk3YTg4OWJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaApAQCAt
NDYsNyArNDYsNyBAQCBpbmxpbmUgYm9vbCBpc0NoYXJhY3RlckFsbG93ZWRJbkJhc2UoVUNoYXIg
YywgaW50IGJhc2UpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZT4KLWlubGluZSBJbnRlZ3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29u
c3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2sgPSBudWxscHRy
LCBpbnQgYmFzZSA9IDEwKQoraW5saW5lIEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25z
dCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaywgaW50IGJhc2Ug
PSAxMCkKIHsKICAgICBzdGF0aWMgY29uc3RleHByIEludGVncmFsVHlwZSBpbnRlZ3JhbE1heCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8SW50ZWdyYWxUeXBlPjo6bWF4KCk7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzU2lnbmVkID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ3JhbFR5cGU+
Ojppc19zaWduZWQ7CkBAIC0xMjIsMTMgKzEyMiwzMyBAQCBieWU6CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5hbWUgU3RyaW5nT3JTdHJpbmdWaWV3PgotaW5saW5l
IEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25zdCBTdHJpbmdPclN0cmluZ1ZpZXcmIHN0
cmluZ1ZpZXcsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCkKK2lubGluZSBJbnRl
Z3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29uc3QgU3RyaW5nT3JTdHJpbmdWaWV3JiBzdHJpbmdW
aWV3LCBib29sKiBvaywgaW50IGJhc2UgPSAxMCkKIHsKICAgICBpZiAoc3RyaW5nVmlldy5pczhC
aXQoKSkKICAgICAgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPEludGVncmFsVHlwZSwgTENoYXI+
KHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSwgb2ssIGJhc2Up
OwogICAgIHJldHVybiB0b0ludGVncmFsVHlwZTxJbnRlZ3JhbFR5cGUsIFVDaGFyPihzdHJpbmdW
aWV3LmNoYXJhY3RlcnMxNigpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpLCBvaywgYmFzZSk7CiB9CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4K
K2lubGluZSBPcHRpb25hbDxJbnRlZ3JhbFR5cGU+IHRvSW50ZWdyYWxUeXBlKGNvbnN0IENoYXJh
Y3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGludCBiYXNlID0gMTApCit7CisgICAgYm9v
bCBvayA9IGZhbHNlOworICAgIEludGVncmFsVHlwZSB2YWx1ZSA9IHRvSW50ZWdyYWxUeXBlPElu
dGVncmFsVHlwZT4oZGF0YSwgbGVuZ3RoLCAmb2ssIGJhc2UpOworICAgIGlmICghb2spCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIFN0cmluZ09yU3RyaW5nVmlldz4KK2lu
bGluZSBPcHRpb25hbDxJbnRlZ3JhbFR5cGU+IHRvSW50ZWdyYWxUeXBlKGNvbnN0IFN0cmluZ09y
U3RyaW5nVmlldyYgc3RyaW5nVmlldywgaW50IGJhc2UgPSAxMCkKK3sKKyAgICBib29sIG9rID0g
ZmFsc2U7CisgICAgSW50ZWdyYWxUeXBlIHZhbHVlID0gdG9JbnRlZ3JhbFR5cGU8SW50ZWdyYWxU
eXBlPihzdHJpbmdWaWV3LCAmb2ssIGJhc2UpOworICAgIGlmICghb2spCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHZhbHVlOworfQorCiB9CiAKIHVzaW5nIFdURjo6
dG9JbnRlZ3JhbFR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDE4ZWUwMGE0NzcxYTBlODZlZTUxNDgw
Yzc4YmIwMzY2NTVmY2NkMTUuLmJmMmJmNWU3YzFhMTdkM2FjNjc2OGEwNTNjOTA0NDFlY2YxNWIz
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODkxLDYgKzE4OTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGlj
cy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvVlA5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9X
aWR0aEl0ZXJhdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGM0NjllMDZlY2E5MjhlMTQxMzIxNDZkMjE1YTk5ZjY4ZWQx
ZjkzYWQuLjNjNTYzMWU0YmM4NDEzMGU5YWI1YjI1OWE3MTk1ZDIyMjRmMWMzN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0
MDk3LDYgKzE0MDk3LDggQEAKIAkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291
cmNlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJj
ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQjIxODE4RjVF
RDAwRUU0QzQxIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTYW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2
RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
UDlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2RkU1QkIyNEJD
RTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUDlV
dGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDcyMEI0NzIyNjgy
QzdFMDAwNDdGREUgLyogSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNENzIwQjQ5MjI2ODJDN0YwMDA0N0ZERSAvKiBJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSVNPRmFpclBsYXlTdHJlYW1pbmdQc3No
Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzhBMkVDMUY3NTY0ODYwMERF
MzcxQiAvKiBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU3MjAsNiArMjU3
MjIsOCBAQAogCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNl
LmNwcCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFz
ZS5oICovLAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8s
CisJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLAorCQkJ
CUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCTBG
NUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEw
QzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQlCRUYyOUVFQTE3
MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIx
MmNmMmE5YzRmZTZhYWRiOGY1M2MyYzBjZGRkMjg3NTMxMjljZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3BwCkBAIC0w
LDAgKzEsMTkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlZQOVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGlzVmFsaWRWUExldmVsKHVpbnQ4X3QgbGV2ZWwpCit7
CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHZhbGlkTGV2ZWxzW10gPSB7CisgICAgICAgIDEw
LAorICAgICAgICAxMSwKKyAgICAgICAgMjAsCisgICAgICAgIDIxLAorICAgICAgICAzMCwKKyAg
ICAgICAgMzEsCisgICAgICAgIDQwLAorICAgICAgICA0MSwKKyAgICAgICAgNTAsCisgICAgICAg
IDUxLAorICAgICAgICA1MiwKKyAgICAgICAgNjAsCisgICAgICAgIDYxLAorICAgICAgICA2MiwK
KyAgICB9OworCisgICAgQVNTRVJUKHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4odmFsaWRMZXZl
bHMpLCBzdGQ6OmVuZCh2YWxpZExldmVscykpKTsKKyAgICByZXR1cm4gc3RkOjpiaW5hcnlfc2Vh
cmNoKHN0ZDo6YmVnaW4odmFsaWRMZXZlbHMpLCBzdGQ6OmVuZCh2YWxpZExldmVscyksIGxldmVs
KTsKK30KKworc3RhdGljIGJvb2wgaXNWYWxpZFZQQ29sb3VyUHJpbWFyaWVzKHVpbnQ4X3QgY29s
b3VyUHJpbWFyeSkKK3sKKyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdmFsaWRDb2xvdXJQcmlt
YXJpZXNbXSA9IHsKKyAgICAgICAgMSwKKyAgICAgICAgNCwKKyAgICAgICAgNSwKKyAgICAgICAg
NiwKKyAgICAgICAgNywKKyAgICAgICAgOCwKKyAgICAgICAgOSwKKyAgICAgICAgMTAsCisgICAg
ICAgIDExLAorICAgICAgICAxMiwKKyAgICAgICAgMjIsCisgICAgfTsKKworICAgIEFTU0VSVChz
dGQ6OmlzX3NvcnRlZChzdGQ6OmJlZ2luKHZhbGlkQ29sb3VyUHJpbWFyaWVzKSwgc3RkOjplbmQo
dmFsaWRDb2xvdXJQcmltYXJpZXMpKSk7CisgICAgcmV0dXJuIHN0ZDo6YmluYXJ5X3NlYXJjaChz
dGQ6OmJlZ2luKHZhbGlkQ29sb3VyUHJpbWFyaWVzKSwgc3RkOjplbmQodmFsaWRDb2xvdXJQcmlt
YXJpZXMpLCBjb2xvdXJQcmltYXJ5KTsKK30KKworT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nVmlldyYgY29kZWNT
dHJpbmcpCit7CisgICAgLy8gVGhlIGZvcm1hdCBvZiB0aGUgJ3ZwMDknIGNvZGVjIHN0cmluZyBp
cyBzcGVjaWZpZWQgaW4gdGhlIHdlYm0gR2l0SHViIHJlcG86CisgICAgLy8gPGh0dHBzOi8vZ2l0
aHViLmNvbS93ZWJtcHJvamVjdC92cDktZGFzaC9ibG9iL21hc3Rlci9WUENvZGVjSVNPTWVkaWFG
aWxlRm9ybWF0QmluZGluZy5tZCNjb2RlY3MtcGFyYW1ldGVyLXN0cmluZz4KKworICAgIC8vICJz
YW1wbGUgZW50cnkgNENDLCBwcm9maWxlLCBsZXZlbCwgYW5kIGJpdERlcHRoIGFyZSBhbGwgbWFu
ZGF0b3J5IGZpZWxkcy4gSWYgYW55IG9mIHRoZXNlIGZpZWxkcyBhcmUgZW1wdHksIG9yIG5vdAor
ICAgIC8vIHdpdGhpbiB0aGVpciBhbGxvd2VkIHJhbmdlLCB0aGUgcHJvY2Vzc2luZyBkZXZpY2Ug
U0hBTEwgdHJlYXQgaXQgYXMgYW4gZXJyb3IuIgorCisgICAgU3RyaW5nVmlldyBjb2RlY1ZpZXco
Y29kZWNTdHJpbmcpOworICAgIGF1dG8gY29kZWNTcGxpdCA9IGNvZGVjVmlldy5zcGxpdCgnLicp
OworICAgIGF1dG8gbmV4dEVsZW1lbnQgPSBjb2RlY1NwbGl0LmJlZ2luKCk7CisgICAgaWYgKG5l
eHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCBjb25maWd1cmF0aW9uOworCisg
ICAgLy8gQ29kZWMgaWRlbnRpZmllcjogbGVnYWwgdmFsdWVzIGFyZSAndnAwOCcgb3IgJ3ZwMDkn
LgorICAgIGNvbmZpZ3VyYXRpb24uY29kZWNOYW1lID0gKCpuZXh0RWxlbWVudCkudG9TdHJpbmco
KTsKKyAgICBpZiAoY29uZmlndXJhdGlvbi5jb2RlY05hbWUgIT0gInZwMDgiICYmIGNvbmZpZ3Vy
YXRpb24uY29kZWNOYW1lICE9ICJ2cDA5IikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBGaXJzdCBlbGVtZW50OiBwcm9maWxlLiBMZWdh
bCB2YWx1ZXMgYXJlIDAtMy4KKyAgICBhdXRvIHByb2ZpbGUgPSB0b0ludGVncmFsVHlwZTx1aW50
OF90PigqbmV4dEVsZW1lbnQpOworICAgIGlmICghcHJvZmlsZSB8fCAqcHJvZmlsZSA+IDMpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5wcm9maWxlID0g
KnByb2ZpbGU7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2Vjb25kIGVsZW1lbnQ6IGxl
dmVsLiBMZWdhbCB2YWx1ZXMgYXJlIGVudW1lcmF0ZWQgaW4gdmFsaWRWUExldmVscyBhYm92ZS4K
KyAgICBhdXRvIGxldmVsID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsK
KyAgICBpZiAoIWxldmVsIHx8ICFpc1ZhbGlkVlBMZXZlbCgqbGV2ZWwpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24ubGV2ZWwgPSAqbGV2ZWw7CisKKyAg
ICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgLy8gVGhpcmQgZWxlbWVudDogYml0RGVwdGguIExlZ2FsIHZh
bHVlcyBhcmUgOCwgMTAsIGFuZCAxMi4KKyAgICBhdXRvIGJpdERlcHRoID0gdG9JbnRlZ3JhbFR5
cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIWJpdERlcHRoIHx8ICgqYml0RGVw
dGggIT0gOCAmJiAqYml0RGVwdGggIT0gMTAgJiYgKmJpdERlcHRoICE9IDEyKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmJpdERlcHRoID0gKmJpdERl
cHRoOworCisgICAgLy8gImNvbG91clByaW1hcmllcywgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3Ms
IG1hdHJpeENvZWZmaWNpZW50cywgdmlkZW9GdWxsUmFuZ2VGbGFnLCBhbmQgY2hyb21hU3Vic2Ft
cGxpbmcgYXJlIE9QVElPTkFMLAorICAgIC8vIG11dHVhbGx5IGluY2x1c2l2ZSAoYWxsIG9yIG5v
bmUpIGZpZWxkcy4gSWYgbm90IHNwZWNpZmllZCB0aGVuIHRoZSBwcm9jZXNzaW5nIGRldmljZSBN
VVNUIHVzZSB0aGUgdmFsdWVzIGxpc3RlZCBpbiB0aGUKKyAgICAvLyB0YWJsZSBiZWxvdyBhcyBk
ZWZhdWx0cyB3aGVuIGRlY2lkaW5nIGlmIHRoZSBkZXZpY2UgaXMgYWJsZSB0byBkZWNvZGUgYW5k
IHBvdGVudGlhbGx5IHJlbmRlciB0aGUgdmlkZW8uIgorCisgICAgaWYgKCsrbmV4dEVsZW1lbnQg
PT0gY29kZWNTcGxpdC5lbmQoKSkgeworICAgICAgICBjb25maWd1cmF0aW9uLmNocm9tYVN1YnNh
bXBsaW5nID0gMTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5jb2xvdXJQcmltYXJpZXMgPSAxOwor
ICAgICAgICBjb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gMTsKKyAgICAg
ICAgY29uZmlndXJhdGlvbi5tYXRyaXhDb2VmZmljaWVudHMgPSAxOworICAgICAgICBjb25maWd1
cmF0aW9uLnZpZGVvRnVsbFJhbmdlRmxhZyA9IDA7CisgICAgICAgIHJldHVybiBjb25maWd1cmF0
aW9uOworICAgIH0KKworICAgIC8vIEZvdXJ0aCBlbGVtZW50OiBjaHJvbWFTdWJzYW1wbGluZy4g
TGVnYWwgdmFsdWVzIGFyZSAwLTMuCisgICAgYXV0byBjaHJvbWFTdWJzYW1wbGluZyA9IHRvSW50
ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFjaHJvbWFTdWJzYW1w
bGluZyB8fCAqY2hyb21hU3Vic2FtcGxpbmcgPiAzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgIGNvbmZpZ3VyYXRpb24uY2hyb21hU3Vic2FtcGxpbmcgPSAqY2hyb21hU3Vic2Ft
cGxpbmc7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gRmlmdGggZWxlbWVudDogY29sb3Vy
UHJpbWFyaWVzLiBMZWdhbCB2YWx1ZXMgYXJlIGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEtODoy
MDE2LCBzdXBlcmNlZGVkCisgICAgLy8gYnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgYXV0
byBjb2xvdXJQcmltYXJpZXMgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4dEVsZW1lbnQp
OworICAgIGlmICghY29sb3VyUHJpbWFyaWVzIHx8ICFpc1ZhbGlkVlBDb2xvdXJQcmltYXJpZXMo
KmNvbG91clByaW1hcmllcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29u
ZmlndXJhdGlvbi5jb2xvdXJQcmltYXJpZXMgPSAqY29sb3VyUHJpbWFyaWVzOworCisgICAgaWYg
KCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIC8vIFNpeHRoIGVsZW1lbnQ6IHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
LiBMZWdhbCB2YWx1ZXMgYXJlIGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEtODoyMDE2LCBzdXBl
cmNlZGVkCisgICAgLy8gYnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgYXV0byB0cmFuc2Zl
ckNoYXJhY3RlcmlzdGljcyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7
CisgICAgaWYgKCF0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyB8fCAoISp0cmFuc2ZlckNoYXJhY3Rl
cmlzdGljcyB8fCAqdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPT0gMyB8fCAqdHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3MgPiAxOCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29u
ZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9ICp0cmFuc2ZlckNoYXJhY3Rlcmlz
dGljczsKKworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBTZXZlbnRoIGVsZW1lbnQ6IG1hdHJp
eENvZWZmaWNpZW50cy4gTGVnYWwgdmFsdWVzIGFyZSBkZWZpbmVkIGJ5ICBJU08vSUVDIDIzMDAx
LTg6MjAxNiwgc3VwZXJjZWRlZAorICAgIC8vIGJ5IElTTy9JRUMgMjMwOTEtMjoyMDE5LgorICAg
IGF1dG8gbWF0cml4Q29lZmZpY2llbnRzID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4oKm5leHRF
bGVtZW50KTsKKyAgICBpZiAoIW1hdHJpeENvZWZmaWNpZW50cyB8fCAoKm1hdHJpeENvZWZmaWNp
ZW50cyA9PSAyIHx8ICptYXRyaXhDb2VmZmljaWVudHMgPT0gMyB8fCAqbWF0cml4Q29lZmZpY2ll
bnRzID4gMTQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRp
b24ubWF0cml4Q29lZmZpY2llbnRzID0gKm1hdHJpeENvZWZmaWNpZW50czsKKworICAgIC8vICJJ
ZiBtYXRyaXhDb2VmZmljaWVudHMgaXMgMCAoUkdCKSwgdGhlbiBjaHJvbWEgc3Vic2FtcGxpbmcg
TVVTVCBiZSAzICg0OjQ6NCkuIgorICAgIGlmICghY29uZmlndXJhdGlvbi5tYXRyaXhDb2VmZmlj
aWVudHMgJiYgY29uZmlndXJhdGlvbi5jaHJvbWFTdWJzYW1wbGluZyAhPSAzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxp
dC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vIEVpZ2h0aCBl
bGVtZW50OiB2aWRlb0Z1bGxSYW5nZUZsYWcuIExlZ2FsIHZhbHVlcyBhcmUgMCBhbmQgMS4KKyAg
ICBhdXRvIHZpZGVvRnVsbFJhbmdlRmxhZyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0
RWxlbWVudCk7CisgICAgaWYgKCF2aWRlb0Z1bGxSYW5nZUZsYWcgfHwgKnZpZGVvRnVsbFJhbmdl
RmxhZyA+IDEpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlv
bi52aWRlb0Z1bGxSYW5nZUZsYWcgPSAqdmlkZW9GdWxsUmFuZ2VGbGFnOworCisgICAgaWYgKCsr
bmV4dEVsZW1lbnQgIT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBjb25maWd1cmF0aW9uOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZDdk
MGUxZWIxMTUyMzYzODljZTI4ZjY1MmY4YTU4MzIyZGQyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkIHsKKyAgICBT
dHJpbmcgY29kZWNOYW1lOworICAgIHVpbnQ4X3QgcHJvZmlsZSB7IDAgfTsKKyAgICB1aW50OF90
IGxldmVsIHsgMCB9OworICAgIHVpbnQ4X3QgYml0RGVwdGggeyAwIH07CisgICAgdWludDhfdCBj
aHJvbWFTdWJzYW1wbGluZyB7IDAgfTsKKyAgICB1aW50OF90IHZpZGVvRnVsbFJhbmdlRmxhZyB7
IDAgfTsKKyAgICB1aW50OF90IGNvbG91clByaW1hcmllcyB7IDAgfTsKKyAgICB1aW50OF90IHRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzIHsgMCB9OworICAgIHVpbnQ4X3QgbWF0cml4Q29lZmZpY2ll
bnRzIHsgMCB9OworfTsKKworV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nVmlldyYgY29k
ZWNTdHJpbmcpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTJl
NTdlY2JlZjQ1ZDNjMjQ2M2Y5ODYzNzM3MTMzMmZhYmY0NTI5Ny4uY2U5NmJhNzY3ZTBjMDU3NTgw
ZmUxMDVjZDJiMzM3ZTdhMTU0MmE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtNTYwMCw2ICs1NjAwLDExIEBAIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IEludGVy
bmFsczo6cGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kCiAgICAgcmV0
dXJuIFdlYkNvcmU6OnBhcnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7CiB9CiAK
K09wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPiBJbnRlcm5hbHM6OnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZykKK3sKKyAgICByZXR1cm4g
V2ViQ29yZTo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7Cit9CisKIGF1dG8g
SW50ZXJuYWxzOjpnZXRDb29raWVzKCkgY29uc3QgLT4gVmVjdG9yPENvb2tpZURhdGE+CiB7CiAg
ICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDg1Y2U2OTI0MmY2NDMyY2Y2N2Q4MTk5ODFmZGE5OTkzNTFhNTMxMGIu
LmJlYzU5Y2JjYzAxOGZkNmIxOWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2UuaCIKICNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAiVGV4dElu
ZGljYXRvci5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllcy5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC05
MTUsNiArOTE2LDkgQEAgcHVibGljOgogICAgIHVzaW5nIERvVmlQYXJhbWV0ZXJTZXQgPSBXZWJD
b3JlOjpEb1ZpUGFyYW1ldGVyU2V0OwogICAgIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IHBh
cnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5nKTsKIAorICAg
IHVzaW5nIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkID0gV2ViQ29yZTo6VlBDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmQ7CisgICAgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+
IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZyk7CisKICAg
ICBzdHJ1Y3QgQ29va2llRGF0YSB7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgICAgICBTdHJp
bmcgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZWYwYjBkZWU0
YTIzZTVjMmQ1ZDE2YWIwNDBhY2VlZjEwOTZlMWU3ZC4uY2NmNDhlMzhiNDQyZjk4YzAzNzMxOTgy
Y2FkY2MzNzkzODQ5OWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MTg5LDYgKzE4OSwyMSBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogICAgIHVuc2lnbmVk
IHNob3J0IGJpdHN0cmVhbUxldmVsSUQ7CiB9OwogCitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rp
b25hcnkgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgeworICAgIERPTVN0cmluZyBjb2RlY05h
bWU7CisgICAgb2N0ZXQgcHJvZmlsZTsKKyAgICBvY3RldCBsZXZlbDsKKyAgICBvY3RldCBiaXRE
ZXB0aDsKKyAgICBvY3RldCBjaHJvbWFTdWJzYW1wbGluZzsKKyAgICBvY3RldCB2aWRlb0Z1bGxS
YW5nZUZsYWc7CisgICAgb2N0ZXQgY29sb3VyUHJpbWFyaWVzOworICAgIG9jdGV0IHRyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzOworICAgIG9jdGV0IG1hdHJpeENvZWZmaWNpZW50czsKK307CisKIFsK
ICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdCwKQEAgLTg4MSw2ICs4OTYsNyBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdv
cnkgewogCiAgICAgSEVWQ1BhcmFtZXRlclNldD8gcGFyc2VIRVZDQ29kZWNQYXJhbWV0ZXJzKERP
TVN0cmluZyBjb2RlY1BhcmFtZXRlcnMpOwogICAgIERvVmlQYXJhbWV0ZXJTZXQ/IHBhcnNlRG9W
aUNvZGVjUGFyYW1ldGVycyhET01TdHJpbmcgY29kZWNQYXJhbWV0ZXJzKTsKKyAgICBWUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZD8gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhET01TdHJpbmcgY29k
ZWNQYXJhbWV0ZXJzKTsKIAogICAgIHNlcXVlbmNlPENvb2tpZURhdGE+IGdldENvb2tpZXMoKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDNlNDc0YzNlMGY5ODA0NGNiYmVkZjlmYTE3ZmU4NjkzMjhiMTM3NzguLjU3NGEz
MTg5MDgwYzhlY2Y4MjY0NWY0NDFkNWRhOWY4MzNkMjY5YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMC0wNy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBWUC1zdHlsZSBjb2RlYyBzdHJpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS92cC1jb2Rl
Yy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdnAtY29k
ZWMtcGFyYW1ldGVycy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNi0yOSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nOyAi
cmViYXNlbGluZSIgdGhlIHZpZGVvLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIHRlc3QgdG8gY2Vu
dGVyIHRoZSBleHBlY3RlZCByZWQgY29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdnAt
Y29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVkZDZiODc0MmU2ZGE2
Y2M0ZDQ5MGM2YmEyYjJjYjI3YWE4M2NmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMxIEBA
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoImJhZC1wYXJhbWV0
ZXIiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgaW52YWxpZCBudW1iZXIgb2YgcmVxdWlyZWQgcGFy
YW1ldGVyczoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OSIpID09ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMCIpID09ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MSIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxp
ZCBkZWZhdWx0IG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDgs
IDEsIDEsIDEsIDEsIDB9JykgT0sKKworVGVzdCBpbnZhbGlkIG51bWJlciBvZiBvcHRpb25hbCBw
YXJhbWV0ZXJzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2
cDA5LjAyLjEwLjEwLjAxIikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5IikgPT0gJ251bGwnKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjE2IikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5IikgPT0gJ251bGwnKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjE2LjA5LjAxLjAwIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIHJlcXVpcmVk
IGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDks
IDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIGNvZGVjIHR5
cGUKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAxMC4wMC40
MS4wOCIpID09ICdudWxsJykgT0sKKworVGVzdCBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG1hdHJp
eENvZWZmaWNpZW50cyBhbmQgY2hyb21hU3Vic2FtcGxpbmcKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOC4wMS4wMS4wMS4wMC4wMCIpID09
ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBwcm9maWxlczoKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5LCAwLCA0
MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAxLjQxLjA4IikgPT09ICd7IHZwMDksIDEsIDQxLCA4LCAxLCAx
LCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMiwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
My40MS4wOCIpID09PSAneyB2cDA5LCAzLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitU
ZXN0IGludmFsaWQgcHJvZmlsZToKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wNC40MS4wOCIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBsZXZl
bHM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAu
MTAuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMTAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4xMS4wOCIpID09
PSAneyB2cDA5LCAwLCAxMSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjIwLjA4IikgPT09ICd7IHZwMDks
IDAsIDIwLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMjEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMjEsIDgs
IDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMC4zMC4wOCIpID09PSAneyB2cDA5LCAwLCAzMCwgOCwgMSwgMSwgMSwg
MSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2
cDA5LjAwLjMxLjA4IikgPT09ICd7IHZwMDksIDAsIDMxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDAu
MDgiKSA9PT0gJ3sgdnAwOSwgMCwgNDAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAn
eyB2cDA5LCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjUwLjA4IikgPT09ICd7IHZwMDksIDAs
IDUwLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNTEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNTEsIDgsIDEs
IDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC41Mi4wOCIpID09PSAneyB2cDA5LCAwLCA1MiwgOCwgMSwgMSwgMSwgMSwg
MH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAwLjYwLjA4IikgPT09ICd7IHZwMDksIDAsIDYwLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNjEuMDgi
KSA9PT0gJ3sgdnAwOSwgMCwgNjEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC42Mi4wOCIpID09PSAneyB2
cDA5LCAwLCA2MiwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitUZXN0IGludmFsaWQgbGV2ZWw6
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTIu
MDgiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFsaWQgYml0RGVwdGhzOgorRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09ICd7IHZw
MDksIDAsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMTAiKSA9PT0gJ3sgdnAwOSwgMCwgNDEs
IDEwLCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMTIiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDEyLCAxLCAx
LCAxLCAxLCAwfScpIE9LCisKK1Rlc3QgaW52YWxpZCBiaXREZXB0aDoKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOSIpID09ICdudWxsJykg
T0sKKworVGVzdCB2YWxpZCBjaHJvbWFTdWJzYW1wbGluZzoKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMC4wOS4xNi4wOS4wMSIpID09
PSAneyB2cDA5LCAyLCAxMCwgMTAsIDAsIDksIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDku
MDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAyLjA5
LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMiwgOSwgMTYsIDksIDF9JykgT0sK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMy4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDMsIDksIDE2LCA5LCAx
fScpIE9LCisKK1Rlc3QgaW52YWxpZCBjaHJvbWFTdWJzYW1wbGluZzoKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wNC4wOS4xNi4wOS4w
MSIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBjb2xvdXJQcmltYXJpZXM6CitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDEu
MTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCAxLCAxNiwgOSwgMX0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA0LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgNCwgMTYsIDksIDF9
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
Mi4xMC4xMC4wMS4wNS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDUsIDE2
LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDYuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAx
LCA2LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA3LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEw
LCAxMCwgMSwgNywgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOC4xNi4wOS4wMSIpID09PSAneyB2cDA5
LCAyLCAxMCwgMTAsIDEsIDgsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0g
J3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjEwLjE2LjA5LjAx
IikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMTAsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMTEu
MTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCAxMSwgMTYsIDksIDF9JykgT0sK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4xMi4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDEyLCAxNiwgOSwg
MX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjIyLjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMjIs
IDE2LCA5LCAxfScpIE9LCisKK1Rlc3QgaW52YWxpZCBjb2xvdXJQcmltYXJpZXM6CitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDIu
MTYuMDkuMDEiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFsaWQgdHJhbnNmZXJDaGFyYWN0ZXJp
c3RpY3M6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDkuMDEuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAx
LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMDIuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAx
LCA5LCAyLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDQuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA5LCA0LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDUuMDkuMDEiKSA9PT0gJ3sgdnAwOSwg
MiwgMTAsIDEwLCAxLCA5LCA1LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDYuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDcuMDkuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA3LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDguMDku
MDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA4LCA5LCAxfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDku
MDkuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA5LCA5LCAxfScpIE9LCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkuMTAuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMCwgOSwgMX0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LjExLjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTEs
IDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMi4xMC4xMC4wMS4wOS4xMi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEs
IDksIDEyLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTMuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA5LCAxMywgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE0LjA5LjAxIikgPT09ICd7IHZwMDks
IDIsIDEwLCAxMCwgMSwgOSwgMTQsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHRyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjAzLjA5LjAxIikgPT0gJ251bGwnKSBPSworCitUZXN0
IHZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMy4wOS4xNi4wMC4wMSIpID09PSAneyB2cDA5
LCAyLCAxMCwgMTAsIDMsIDksIDE2LCAwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDEiKSA9PT0g
J3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMX0nKSBPSworRVhQRUNURUQgKGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA0LjAx
IikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDQsIDF9JykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4x
Ni4wNS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA1LCAxfScpIE9LCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkuMTYuMDYuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgNiwgMX0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LjE2LjA3LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYs
IDcsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOC4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEs
IDksIDE2LCA4LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjEwLjAxIikgPT09ICd7IHZwMDks
IDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTEuMDEiKSA9PT0g
J3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMTEsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4xMi4w
MSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxMiwgMX0nKSBPSworRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5
LjE2LjEzLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEzLCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTYuMTQuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMTQs
IDF9JykgT0sKKworVGVzdCBpbnZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4w
OS4wMyIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6CitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkuMTYuMDEuMDAiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMH0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LjE2LjAxLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYs
IDEsIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzoKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4x
Ni4wMS4wMiIpID09ICdudWxsJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDBiYWU1YjUxYTQ4NjE4YmM4
M2NhZTRlYTYxYzVjYmZhYmEyMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gVlBDb2RlY0NvbmZpZ3VyYXRpb25S
ZWNvcmRUb1N0cmluZyhzZXQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBg
eyAke3NldC5jb2RlY05hbWV9LCAke3NldC5wcm9maWxlfSwgJHtzZXQubGV2ZWx9LCAke3NldC5i
aXREZXB0aH0sICR7c2V0LmNocm9tYVN1YnNhbXBsaW5nfSwgJHtzZXQuY29sb3VyUHJpbWFyaWVz
fSwgJHtzZXQudHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3N9LCAke3NldC5tYXRyaXhDb2VmZmljaWVu
dHN9LCAke3NldC52aWRlb0Z1bGxSYW5nZUZsYWd9fWA7CisgICAgICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICAgICAgcmV0dXJuIGB7ICR7c2V0fSB9YDsKKyAgICAgICAgfQorICAgIH0KKyAgICBm
dW5jdGlvbiBpc0VxdWFsVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoc2V0QSwgc2V0Qikgewor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHNldEEucHJvZmlsZSA9PSBzZXRCLnBy
b2ZpbGUgJiYKKyAgICAgICAgICAgICAgICBzZXRBLmxldmVsID09IHNldEIubGV2ZWwgJiYKKyAg
ICAgICAgICAgICAgICBzZXRBLmJpdERlcHRoID09IHNldEIuYml0RGVwdGggJiYKKyAgICAgICAg
ICAgICAgICBzZXRBLmNocm9tYVN1YnNhbXBsaW5nID09IHNldEIuY2hyb21hU3Vic2FtcGxpbmcg
JiYKKyAgICAgICAgICAgICAgICBzZXRBLnZpZGVvRnVsbFJhbmdlRmxhZyA9PSBzZXRCLnZpZGVv
RnVsbFJhbmdlRmxhZyAmJgorICAgICAgICAgICAgICAgIHNldEEuY29sb3VyUHJpbWFyaWVzID09
IHNldEIuY29sb3VyUHJpbWFyaWVzICYmCisgICAgICAgICAgICAgICAgc2V0QS50cmFuc2ZlckNo
YXJhY3RlcmlzdGljcyA9PSBzZXRCLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICYmCisgICAgICAg
ICAgICAgICAgc2V0QS5tYXRyaXhDb2VmZmljaWVudHMgPT0gc2V0Qi5tYXRyaXhDb2VmZmljaWVu
dHM7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZChjb2RlY05hbWUsIHByb2ZpbGUsIGxldmVsLCBiaXREZXB0aCwgY2hyb21hU3Vic2FtcGxpbmcs
IGNvbG91clByaW1hcmllcywgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsIG1hdHJpeENvZWZmaWNp
ZW50cywgdmlkZW9GdWxsUmFuZ2VGbGFnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIGNvZGVjTmFtZTogY29kZWNOYW1lLAorICAgICAgICAgICAgcHJvZmlsZTogcHJvZmls
ZSwKKyAgICAgICAgICAgIGxldmVsOiBsZXZlbCwKKyAgICAgICAgICAgIGJpdERlcHRoOiBiaXRE
ZXB0aCwKKyAgICAgICAgICAgIGNocm9tYVN1YnNhbXBsaW5nOiBjaHJvbWFTdWJzYW1wbGluZywK
KyAgICAgICAgICAgIHZpZGVvRnVsbFJhbmdlRmxhZzogdmlkZW9GdWxsUmFuZ2VGbGFnLAorICAg
ICAgICAgICAgY29sb3VyUHJpbWFyaWVzOiBjb2xvdXJQcmltYXJpZXMsCisgICAgICAgICAgICB0
cmFuc2ZlckNoYXJhY3RlcmlzdGljczogdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsCisgICAgICAg
ICAgICBtYXRyaXhDb2VmZmljaWVudHM6IG1hdHJpeENvZWZmaWNpZW50cworICAgICAgICB9Owor
ICAgIH0KKyAgICBmdW5jdGlvbiB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZCh0ZXN0RnVuY1N0cmluZywgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBsZXQgb2JzZXJ2ZWQg
PSBldmFsKHRlc3RGdW5jU3RyaW5nKTsKKyAgICAgICAgbGV0IHN1Y2Nlc3MgPSBpc0VxdWFsVlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQob2JzZXJ2ZWQsIGV4cGVjdGVkKTsKKyAgICAgICAgcmVw
b3J0RXhwZWN0ZWQoc3VjY2VzcywgdGVzdEZ1bmNTdHJpbmcsICc9PT0nLCBWUENvZGVjQ29uZmln
dXJhdGlvblJlY29yZFRvU3RyaW5nKGV4cGVjdGVkKSwgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNv
cmRUb1N0cmluZyhvYnNlcnZlZCkpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFy
c2VWUENvZGVjUGFyYW1ldGVycygiYmFkLXBhcmFtZXRlciIpJywgbnVsbCk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIG51bWJl
ciBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOicpCisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkiKScsIG51bGwpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIiknLCBu
dWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC40MSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Cisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBkZWZhdWx0IG9wdGlvbmFsIHBhcmFtZXRl
cnM6JykKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ2lu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IiknLCBtYWtlVlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMCkp
OworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3Qg
aW52YWxpZCBudW1iZXIgb2Ygb3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAx
IiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOSIpJywgbnVsbCk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkuMTYiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5IiknLCBudWxsKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMS4wMCIpJywgbnVsbCk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCByZXF1aXJlZCBh
bmQgb3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKScsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29kZWMgdHlwZScp
OworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDEwLjAwLjQxLjA4IiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29tYmluYXRpb24gb2YgbWF0cml4Q29l
ZmZpY2llbnRzIGFuZCBjaHJvbWFTdWJzYW1wbGluZycpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAxLjAx
LjAwLjAwIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCdUZXN0IHZhbGlkIHByb2ZpbGVzOicpOworICAgICAgICBmb3IgKGxldCBwcm9m
aWxlIG9mIFswLCAxLCAyLCAzXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25m
aWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4k
e3Byb2ZpbGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS40MS4wOCIpYCwgbWFrZVZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgcHJvZmlsZSwgNDEsIDgsIDEsIDEsIDEsIDEs
IDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdU
ZXN0IGludmFsaWQgcHJvZmlsZTonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wNC40MS4wOCIpJywgbnVsbCk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBsZXZl
bHM6Jyk7CisgICAgICAgIGZvciAobGV0IGxldmVsIG9mIFsxMCwgMTEsIDIwLCAyMSwgMzAsIDMx
LCA0MCwgNDEsIDUwLCA1MSwgNTIsIDYwLCA2MSwgNjJdKQorICAgICAgICAgICAgdGVzdEV4cGVj
dGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAwLiR7bGV2ZWwudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOCIp
YCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMCwgbGV2ZWwsIDgsIDEs
IDEsIDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29s
ZVdyaXRlKCdUZXN0IGludmFsaWQgbGV2ZWw6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTIuMDgiKScsIG51bGwpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFs
aWQgYml0RGVwdGhzOicpOworICAgICAgICBmb3IgKGxldCBiaXREZXB0aCBvZiBbOCwgMTAsIDEy
XSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4ke2JpdERlcHRoLnRv
U3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0iKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJl
Y29yZCgndnAwOScsIDAsIDQxLCBiaXREZXB0aCwgMSwgMSwgMSwgMSwgMCkpOworICAgICAgICBj
b25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBiaXRE
ZXB0aDonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMC40MS4wOSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBjaHJvbWFTdWJzYW1wbGluZzon
KTsKKyAgICAgICAgZm9yIChsZXQgY2hyb21hU3Vic2FtcGxpbmcgb2YgWzAsIDEsIDIsIDNdKQor
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLiR7Y2hyb21hU3Vic2Ft
cGxpbmcudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOS4xNi4wOS4wMSIpYCwgbWFrZVZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCBjaHJvbWFTdWJzYW1w
bGluZywgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY2hyb21hU3Vic2FtcGxpbmc6Jyk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDQuMDkuMTYuMDkuMDEiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgY29sb3VyUHJpbWFyaWVzOicpOwor
ICAgICAgICBmb3IgKGxldCBjb2xvdXJQcmltYXJpZXMgb2YgWzEsIDQsIDUsIDYsIDcsIDgsIDks
IDEwLCAxMSwgMTIsIDIyXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1
cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4x
MC4xMC4wMS4ke2NvbG91clByaW1hcmllcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjE2
LjA5LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwg
MTAsIDEsIGNvbG91clByaW1hcmllcywgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29sb3VyUHJpbWFyaWVz
OicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjAyLjE2LjA5LjAxIiknLCBudWxsKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIHRyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzOicpOworICAgICAgICBmb3IgKGxldCB0cmFuc2ZlckNoYXJhY3Rlcmlz
dGljcyBvZiBbMSwgMiwgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XSkKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4ke3RyYW5zZmVy
Q2hhcmFjdGVyaXN0aWNzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0uMDkuMDEiKWAsIG1h
a2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgdHJh
bnNmZXJDaGFyYWN0ZXJpc3RpY3MsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
KyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgdHJhbnNmZXJDaGFyYWN0ZXJpc3Rp
Y3M6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDMuMDkuMDEiKScsIG51bGwpOworICAgICAgICBj
b25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgbWF0cml4
Q29lZmZpY2llbnRzOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDMuMDkuMTYuMDAuMDEiKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScs
IDIsIDEwLCAxMCwgMywgOSwgMTYsIDAsIDEpKTsKKyAgICAgICAgZm9yIChsZXQgbWF0cml4Q29l
ZmZpY2llbnRzIG9mIFsxLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTRdKQor
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LiR7bWF0
cml4Q29lZmZpY2llbnRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0uMDEiKWAsIG1ha2VW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIG1h
dHJpeENvZWZmaWNpZW50cywgMSkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBtYXRyaXhDb2VmZmljaWVudHM6Jyk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDkuMTYuMDkuMDMiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUo
JycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgdmlkZW9GdWxsUmFuZ2VGbGFn
OicpOworICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEu
MDAiKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwg
MSwgOSwgMTYsIDEsIDApKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjE2LjAxLjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDkn
LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxLCAxKSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzon
KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wMS4wMiIpJywgbnVsbCk7CisgICAgICAgIGVuZFRl
c3QoKTsKKyAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404206</attachid>
            <date>2020-07-13 21:14:40 -0700</date>
            <delta_ts>2020-07-13 21:29:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214270-20200713211439.patch</filename>
            <type>text/plain</type>
            <size>39953</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiOWYxMTA4NjAwY2MzMGZlMzIyNGU2
N2RiNTFhZjA4NTJhMWY4NGQuLjYxNjRhZWNhNTNhY2M3NTE2NmVlODRmODQwMzFlZDUzNjQyMWY1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUg
Y29kZWMgc3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MDAwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdmFyaWFudCBv
ZiB0b0ludGVncmFsVHlwZTw+IHdoaWNoIHJldHVybnMgYW4gT3B0aW9uYWwuIFNpbmNlIG5vIGV4
aXN0aW5nIGNhbGxlcnMgb2YgdGhlCisgICAgICAgIG9yaWdpbmFsIHRvSW50ZWdyYWxUeXBlIGZh
aWwgdG8gcGFzcyBpbiB0aGUgb3B0aW9uYWwgYm9vbCogcGFyYW1ldGVyLCBtYWtlIHRoYXQgcGFy
YW1ldGVyCisgICAgICAgIG5vbi1vcHRpb25hbCwgYXMgaXQgY2F1c2VzIGEgY29uZmxpY3Qgd2l0
aCB0aGUgbmV3IE9wdGlvbmFsLXJldHVybmluZyB2ZXJzaW9uLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oOgorICAgICAgICAoV1RGOjp0b0ludGVncmFs
VHlwZSk6CisKIDIwMjAtMDctMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nlc3MgaGFuZ3Mgd2hlbiBicm93c2luZyBH
aXRIdWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3MzJlYmQ0NzZjYWFmNzBlMjQwMjliNTIyMWE5NzdhN2JlZDMy
OGM5Li40YzI0YjMzNjU5ZjdjNjc3ZjQwNDE0OTc2ZjRkZTc5NDRlMTUxZTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMg
c3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbAorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRWUExldmVscyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZENvbG9y
UHJpbWFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTA3LTAyICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRvcHQgQVZQbGF5
ZXIudmlkZW9SYW5nZU92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9J
bnRlZ2VyQ29udmVyc2lvbi5oCmluZGV4IDc2ODljN2ViYzVlOWJjMjhiNjAwMzg5OTRkZTg0Yzdj
YTUxOWI4N2MuLjdlMDI0NGIwZWY2N2NlZWVlNWFlMWE2MGRiYTQxMDUzOTdhODg5YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCkBAIC00
Niw3ICs0Niw3IEBAIGlubGluZSBib29sIGlzQ2hhcmFjdGVyQWxsb3dlZEluQmFzZShVQ2hhciBj
LCBpbnQgYmFzZSkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgotaW5saW5lIEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25z
dCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvayA9IG51bGxwdHIs
IGludCBiYXNlID0gMTApCitpbmxpbmUgSW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0
IENoYXJhY3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFzZSA9
IDEwKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgSW50ZWdyYWxUeXBlIGludGVncmFsTWF4ID0g
c3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ3JhbFR5cGU+OjptYXgoKTsKICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNTaWduZWQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46
OmlzX3NpZ25lZDsKQEAgLTEyMiwxMyArMTIyLDMzIEBAIGJ5ZToKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBTdHJpbmdPclN0cmluZ1ZpZXc+Ci1pbmxpbmUg
SW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IFN0cmluZ09yU3RyaW5nVmlldyYgc3Ry
aW5nVmlldywgYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKQoraW5saW5lIEludGVn
cmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25zdCBTdHJpbmdPclN0cmluZ1ZpZXcmIHN0cmluZ1Zp
ZXcsIGJvb2wqIG9rLCBpbnQgYmFzZSA9IDEwKQogewogICAgIGlmIChzdHJpbmdWaWV3LmlzOEJp
dCgpKQogICAgICAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8SW50ZWdyYWxUeXBlLCBMQ2hhcj4o
c3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpLCBvaywgYmFzZSk7
CiAgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPEludGVncmFsVHlwZSwgVUNoYXI+KHN0cmluZ1Zp
ZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCksIG9rLCBiYXNlKTsKIH0KIAor
dGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgor
aW5saW5lIE9wdGlvbmFsPEludGVncmFsVHlwZT4gdG9JbnRlZ3JhbFR5cGUoY29uc3QgQ2hhcmFj
dGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgaW50IGJhc2UgPSAxMCkKK3sKKyAgICBib29s
IG9rID0gZmFsc2U7CisgICAgSW50ZWdyYWxUeXBlIHZhbHVlID0gdG9JbnRlZ3JhbFR5cGU8SW50
ZWdyYWxUeXBlPihkYXRhLCBsZW5ndGgsICZvaywgYmFzZSk7CisgICAgaWYgKCFvaykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5hbWUgU3RyaW5nT3JTdHJpbmdWaWV3PgoraW5s
aW5lIE9wdGlvbmFsPEludGVncmFsVHlwZT4gdG9JbnRlZ3JhbFR5cGUoY29uc3QgU3RyaW5nT3JT
dHJpbmdWaWV3JiBzdHJpbmdWaWV3LCBpbnQgYmFzZSA9IDEwKQoreworICAgIGJvb2wgb2sgPSBm
YWxzZTsKKyAgICBJbnRlZ3JhbFR5cGUgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxJbnRlZ3JhbFR5
cGU+KHN0cmluZ1ZpZXcsICZvaywgYmFzZSk7CisgICAgaWYgKCFvaykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIH0KIAogdXNpbmcgV1RGOjp0
b0ludGVncmFsVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMThlZTAwYTQ3NzFhMGU4NmVlNTE0ODBj
NzhiYjAzNjY1NWZjY2QxNS4uYmYyYmY1ZTdjMWExN2QzYWM2NzY4YTA1M2M5MDQ0MWVjZjE1YjNl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4OTEsNiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9WUDlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZvcm1hdC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1dp
ZHRoSXRlcmF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYzQ2OWUwNmVjYTkyOGUxNDEzMjE0NmQyMTVhOTlmNjhlZDFm
OTNhZC4uM2M1NjMxZTRiYzg0MTMwZTlhYjViMjU5YTcxOTVkMjIyNGYxYzM3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQw
OTcsNiArMTQwOTcsOCBAQAogCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3Vy
Y2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNl
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVCMjE4MThGNUVE
MDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZG
RTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQ
OVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZQOVV0
aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzIwQjQ3MjI2ODJD
N0UwMDA0N0ZERSAvKiBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q3MjBCNDkyMjY4MkM3RjAwMDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3Ry
ZWFtaW5nUHNzaEJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hC
b3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3OEEyRUMxRjc1NjQ4NjAwREUz
NzFCIC8qIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTcyMCw2ICsyNTcy
Miw4IEBACiAJCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNl
LmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywK
KwkJCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCisJCQkJ
Q0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMEY1
QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBD
MzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCUJFRjI5RUVBMTcx
NUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThi
ZDk4YzM5ODdlNDI5YzQxOThjOGIwM2VkOGVlMGU0MzIwMjU1YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSwxOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VlA5VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIGJvb2wgaXNWYWxpZFZQTGV2ZWwodWludDhfdCBsZXZlbCkKK3sK
KyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdmFsaWRMZXZlbHNbXSA9IHsKKyAgICAgICAgMTAs
CisgICAgICAgIDExLAorICAgICAgICAyMCwKKyAgICAgICAgMjEsCisgICAgICAgIDMwLAorICAg
ICAgICAzMSwKKyAgICAgICAgNDAsCisgICAgICAgIDQxLAorICAgICAgICA1MCwKKyAgICAgICAg
NTEsCisgICAgICAgIDUyLAorICAgICAgICA2MCwKKyAgICAgICAgNjEsCisgICAgICAgIDYyLAor
ICAgIH07CisKKyAgICBBU1NFUlQoc3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbih2YWxpZExldmVs
cyksIHN0ZDo6ZW5kKHZhbGlkTGV2ZWxzKSkpOworICAgIHJldHVybiBzdGQ6OmJpbmFyeV9zZWFy
Y2goc3RkOjpiZWdpbih2YWxpZExldmVscyksIHN0ZDo6ZW5kKHZhbGlkTGV2ZWxzKSwgbGV2ZWwp
OworfQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkVlBDb2xvclByaW1hcmFyaWVzKHVpbnQ4X3QgY29s
b3JQcmltYXJhcnkpCit7CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHZhbGlkQ29sb3JQcmlt
YXJhcmllc1tdID0geworICAgICAgICAxLAorICAgICAgICA0LAorICAgICAgICA1LAorICAgICAg
ICA2LAorICAgICAgICA3LAorICAgICAgICA4LAorICAgICAgICA5LAorICAgICAgICAxMCwKKyAg
ICAgICAgMTEsCisgICAgICAgIDEyLAorICAgICAgICAyMiwKKyAgICB9OworCisgICAgQVNTRVJU
KHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4odmFsaWRDb2xvclByaW1hcmFyaWVzKSwgc3RkOjpl
bmQodmFsaWRDb2xvclByaW1hcmFyaWVzKSkpOworICAgIHJldHVybiBzdGQ6OmJpbmFyeV9zZWFy
Y2goc3RkOjpiZWdpbih2YWxpZENvbG9yUHJpbWFyYXJpZXMpLCBzdGQ6OmVuZCh2YWxpZENvbG9y
UHJpbWFyYXJpZXMpLCBjb2xvclByaW1hcmFyeSk7Cit9CisKK09wdGlvbmFsPFZQQ29kZWNDb25m
aWd1cmF0aW9uUmVjb3JkPiBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZ1ZpZXcm
IGNvZGVjU3RyaW5nKQoreworICAgIC8vIFRoZSBmb3JtYXQgb2YgdGhlICd2cDA5JyBjb2RlYyBz
dHJpbmcgaXMgc3BlY2lmaWVkIGluIHRoZSB3ZWJtIEdpdEh1YiByZXBvOgorICAgIC8vIDxodHRw
czovL2dpdGh1Yi5jb20vd2VibXByb2plY3QvdnA5LWRhc2gvYmxvYi9tYXN0ZXIvVlBDb2RlY0lT
T01lZGlhRmlsZUZvcm1hdEJpbmRpbmcubWQjY29kZWNzLXBhcmFtZXRlci1zdHJpbmc+CisKKyAg
ICAvLyAic2FtcGxlIGVudHJ5IDRDQywgcHJvZmlsZSwgbGV2ZWwsIGFuZCBiaXREZXB0aCBhcmUg
YWxsIG1hbmRhdG9yeSBmaWVsZHMuIElmIGFueSBvZiB0aGVzZSBmaWVsZHMgYXJlIGVtcHR5LCBv
ciBub3QKKyAgICAvLyB3aXRoaW4gdGhlaXIgYWxsb3dlZCByYW5nZSwgdGhlIHByb2Nlc3Npbmcg
ZGV2aWNlIFNIQUxMIHRyZWF0IGl0IGFzIGFuIGVycm9yLiIKKworICAgIFN0cmluZ1ZpZXcgY29k
ZWNWaWV3KGNvZGVjU3RyaW5nKTsKKyAgICBhdXRvIGNvZGVjU3BsaXQgPSBjb2RlY1ZpZXcuc3Bs
aXQoJy4nKTsKKyAgICBhdXRvIG5leHRFbGVtZW50ID0gY29kZWNTcGxpdC5iZWdpbigpOworICAg
IGlmIChuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgY29uZmlndXJhdGlv
bjsKKworICAgIC8vIENvZGVjIGlkZW50aWZpZXI6IGxlZ2FsIHZhbHVlcyBhcmUgJ3ZwMDgnIG9y
ICd2cDA5Jy4KKyAgICBjb25maWd1cmF0aW9uLmNvZGVjTmFtZSA9ICgqbmV4dEVsZW1lbnQpLnRv
U3RyaW5nKCk7CisgICAgaWYgKGNvbmZpZ3VyYXRpb24uY29kZWNOYW1lICE9ICJ2cDA4IiAmJiBj
b25maWd1cmF0aW9uLmNvZGVjTmFtZSAhPSAidnAwOSIpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gRmlyc3QgZWxlbWVudDogcHJvZmls
ZS4gTGVnYWwgdmFsdWVzIGFyZSAwLTMuCisgICAgYXV0byBwcm9maWxlID0gdG9JbnRlZ3JhbFR5
cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIXByb2ZpbGUgfHwgKnByb2ZpbGUg
PiAzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24ucHJv
ZmlsZSA9ICpwcm9maWxlOworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vIFNlY29uZCBlbGVt
ZW50OiBsZXZlbC4gTGVnYWwgdmFsdWVzIGFyZSBlbnVtZXJhdGVkIGluIHZhbGlkVlBMZXZlbHMg
YWJvdmUuCisgICAgYXV0byBsZXZlbCA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxl
bWVudCk7CisgICAgaWYgKCFsZXZlbCB8fCAhaXNWYWxpZFZQTGV2ZWwoKmxldmVsKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmxldmVsID0gKmxldmVs
OworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vIFRoaXJkIGVsZW1lbnQ6IGJpdERlcHRoLiBM
ZWdhbCB2YWx1ZXMgYXJlIDgsIDEwLCBhbmQgMTIuCisgICAgYXV0byBiaXREZXB0aCA9IHRvSW50
ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFiaXREZXB0aCB8fCAo
KmJpdERlcHRoICE9IDggJiYgKmJpdERlcHRoICE9IDEwICYmICpiaXREZXB0aCAhPSAxMikpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5iaXREZXB0aCA9
ICpiaXREZXB0aDsKKworICAgIC8vICJjb2xvclByaW1hcmFyaWVzLCB0cmFuc2ZlckNoYXJhY3Rl
cmlzdGljcywgbWF0cml4Q29lZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcsIGFuZCBjaHJv
bWFTdWJzYW1wbGluZyBhcmUgT1BUSU9OQUwsCisgICAgLy8gbXV0dWFsbHkgaW5jbHVzaXZlIChh
bGwgb3Igbm9uZSkgZmllbGRzLiBJZiBub3Qgc3BlY2lmaWVkIHRoZW4gdGhlIHByb2Nlc3Npbmcg
ZGV2aWNlIE1VU1QgdXNlIHRoZSB2YWx1ZXMgbGlzdGVkIGluIHRoZQorICAgIC8vIHRhYmxlIGJl
bG93IGFzIGRlZmF1bHRzIHdoZW4gZGVjaWRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIGRl
Y29kZSBhbmQgcG90ZW50aWFsbHkgcmVuZGVyIHRoZSB2aWRlby4iCisKKyAgICBpZiAoKytuZXh0
RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKSB7CisgICAgICAgIGNvbmZpZ3VyYXRpb24uY2hy
b21hU3Vic2FtcGxpbmcgPSAxOworICAgICAgICBjb25maWd1cmF0aW9uLmNvbG9yUHJpbWFyYXJp
ZXMgPSAxOworICAgICAgICBjb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0g
MTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5tYXRyaXhDb2VmZmljaWVudHMgPSAxOworICAgICAg
ICBjb25maWd1cmF0aW9uLnZpZGVvRnVsbFJhbmdlRmxhZyA9IDA7CisgICAgICAgIHJldHVybiBj
b25maWd1cmF0aW9uOworICAgIH0KKworICAgIC8vIEZvdXJ0aCBlbGVtZW50OiBjaHJvbWFTdWJz
YW1wbGluZy4gTGVnYWwgdmFsdWVzIGFyZSAwLTMuCisgICAgYXV0byBjaHJvbWFTdWJzYW1wbGlu
ZyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFjaHJv
bWFTdWJzYW1wbGluZyB8fCAqY2hyb21hU3Vic2FtcGxpbmcgPiAzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24uY2hyb21hU3Vic2FtcGxpbmcgPSAqY2hy
b21hU3Vic2FtcGxpbmc7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVu
ZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gRmlmdGggZWxlbWVu
dDogY29sb3JQcmltYXJhcmllcy4gTGVnYWwgdmFsdWVzIGFyZSBkZWZpbmVkIGJ5ICBJU08vSUVD
IDIzMDAxLTg6MjAxNiwgc3VwZXJjZWRlZAorICAgIC8vIGJ5IElTTy9JRUMgMjMwOTEtMjoyMDE5
LgorICAgIGF1dG8gY29sb3JQcmltYXJhcmllcyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpu
ZXh0RWxlbWVudCk7CisgICAgaWYgKCFjb2xvclByaW1hcmFyaWVzIHx8ICFpc1ZhbGlkVlBDb2xv
clByaW1hcmFyaWVzKCpjb2xvclByaW1hcmFyaWVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmNvbG9yUHJpbWFyYXJpZXMgPSAqY29sb3JQcmltYXJh
cmllczsKKworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBTaXh0aCBlbGVtZW50OiB0cmFuc2Zl
ckNoYXJhY3RlcmlzdGljcy4gTGVnYWwgdmFsdWVzIGFyZSBkZWZpbmVkIGJ5ICBJU08vSUVDIDIz
MDAxLTg6MjAxNiwgc3VwZXJjZWRlZAorICAgIC8vIGJ5IElTTy9JRUMgMjMwOTEtMjoyMDE5Lgor
ICAgIGF1dG8gdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPSB0b0ludGVncmFsVHlwZTx1aW50OF90
PigqbmV4dEVsZW1lbnQpOworICAgIGlmICghdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgfHwgKCEq
dHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgfHwgKnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID09IDMg
fHwgKnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID4gMTgpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24udHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPSAqdHJh
bnNmZXJDaGFyYWN0ZXJpc3RpY3M7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1Nw
bGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2V2ZW50
aCBlbGVtZW50OiBtYXRyaXhDb2VmZmljaWVudHMuIExlZ2FsIHZhbHVlcyBhcmUgZGVmaW5lZCBi
eSAgSVNPL0lFQyAyMzAwMS04OjIwMTYsIHN1cGVyY2VkZWQKKyAgICAvLyBieSBJU08vSUVDIDIz
MDkxLTI6MjAxOS4KKyAgICBhdXRvIG1hdHJpeENvZWZmaWNpZW50cyA9IHRvSW50ZWdyYWxUeXBl
PHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFtYXRyaXhDb2VmZmljaWVudHMgfHwg
KCptYXRyaXhDb2VmZmljaWVudHMgPT0gMiB8fCAqbWF0cml4Q29lZmZpY2llbnRzID09IDMgfHwg
Km1hdHJpeENvZWZmaWNpZW50cyA+IDE0KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICBjb25maWd1cmF0aW9uLm1hdHJpeENvZWZmaWNpZW50cyA9ICptYXRyaXhDb2VmZmljaWVu
dHM7CisKKyAgICAvLyAiSWYgbWF0cml4Q29lZmZpY2llbnRzIGlzIDAgKFJHQiksIHRoZW4gY2hy
b21hIHN1YnNhbXBsaW5nIE1VU1QgYmUgMyAoNDo0OjQpLiIKKyAgICBpZiAoIWNvbmZpZ3VyYXRp
b24ubWF0cml4Q29lZmZpY2llbnRzICYmIGNvbmZpZ3VyYXRpb24uY2hyb21hU3Vic2FtcGxpbmcg
IT0gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICgrK25leHRFbGVt
ZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAvLyBFaWdodGggZWxlbWVudDogdmlkZW9GdWxsUmFuZ2VGbGFnLiBMZWdhbCB2YWx1ZXMg
YXJlIDAgYW5kIDEuCisgICAgYXV0byB2aWRlb0Z1bGxSYW5nZUZsYWcgPSB0b0ludGVncmFsVHlw
ZTx1aW50OF90PigqbmV4dEVsZW1lbnQpOworICAgIGlmICghdmlkZW9GdWxsUmFuZ2VGbGFnIHx8
ICp2aWRlb0Z1bGxSYW5nZUZsYWcgPiAxKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIGNvbmZpZ3VyYXRpb24udmlkZW9GdWxsUmFuZ2VGbGFnID0gKnZpZGVvRnVsbFJhbmdlRmxh
ZzsKKworICAgIGlmICgrK25leHRFbGVtZW50ICE9IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYmU1ZmNkOTA3M2Y0NmY2NjIwZWFiZmU4YzQ1OTMxYTMwOTc2ODYwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0
aWVzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZCB7CisgICAgU3RyaW5nIGNvZGVjTmFtZTsKKyAgICB1aW50OF90IHByb2ZpbGUgeyAw
IH07CisgICAgdWludDhfdCBsZXZlbCB7IDAgfTsKKyAgICB1aW50OF90IGJpdERlcHRoIHsgMCB9
OworICAgIHVpbnQ4X3QgY2hyb21hU3Vic2FtcGxpbmcgeyAwIH07CisgICAgdWludDhfdCB2aWRl
b0Z1bGxSYW5nZUZsYWcgeyAwIH07CisgICAgdWludDhfdCBjb2xvclByaW1hcmllcyB7IDAgfTsK
KyAgICB1aW50OF90IHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzIHsgMCB9OworICAgIHVpbnQ4X3Qg
bWF0cml4Q29lZmZpY2llbnRzIHsgMCB9OworfTsKKworV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3Qg
U3RyaW5nVmlldyYgY29kZWNTdHJpbmcpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggZTJlNTdlY2JlZjQ1ZDNjMjQ2M2Y5ODYzNzM3MTMzMmZhYmY0NTI5Ny4uY2U5
NmJhNzY3ZTBjMDU3NTgwZmUxMDVjZDJiMzM3ZTdhMTU0MmE1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNTYwMCw2ICs1NjAwLDExIEBAIE9wdGlvbmFsPERvVmlQYXJh
bWV0ZXJTZXQ+IEludGVybmFsczo6cGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmlu
ZyYgY29kCiAgICAgcmV0dXJuIFdlYkNvcmU6OnBhcnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb2Rl
Y1N0cmluZyk7CiB9CiAKK09wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPiBJbnRl
cm5hbHM6OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZykK
K3sKKyAgICByZXR1cm4gV2ViQ29yZTo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmlu
Zyk7Cit9CisKIGF1dG8gSW50ZXJuYWxzOjpnZXRDb29raWVzKCkgY29uc3QgLT4gVmVjdG9yPENv
b2tpZURhdGE+CiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDg1Y2U2OTI0MmY2NDMyY2Y2N2Q4MTk5ODFm
ZGE5OTkzNTFhNTMxMGIuLmJlYzU5Y2JjYzAxOGZkNmIxOWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAj
aW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgogCkBAIC05MTUsNiArOTE2LDkgQEAgcHVibGljOgogICAgIHVzaW5nIERvVmlQYXJh
bWV0ZXJTZXQgPSBXZWJDb3JlOjpEb1ZpUGFyYW1ldGVyU2V0OwogICAgIE9wdGlvbmFsPERvVmlQ
YXJhbWV0ZXJTZXQ+IHBhcnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVj
U3RyaW5nKTsKIAorICAgIHVzaW5nIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkID0gV2ViQ29y
ZTo6VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ7CisgICAgT3B0aW9uYWw8VlBDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2Rl
Y1N0cmluZyk7CisKICAgICBzdHJ1Y3QgQ29va2llRGF0YSB7CiAgICAgICAgIFN0cmluZyBuYW1l
OwogICAgICAgICBTdHJpbmcgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggZWYwYjBkZWU0YTIzZTVjMmQ1ZDE2YWIwNDBhY2VlZjEwOTZlMWU3ZC4uODhiNDYxZTYx
M2U1ODIyMjY4M2Q5YWFhMjJiNDZhM2RiZjJlZTVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtMTg5LDYgKzE4OSwyMSBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkg
ewogICAgIHVuc2lnbmVkIHNob3J0IGJpdHN0cmVhbUxldmVsSUQ7CiB9OwogCitbCisgICAgRXhw
b3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCisgICAgSlNHZW5lcmF0ZVRvSlNP
YmplY3QsCitdIGRpY3Rpb25hcnkgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgeworICAgIERP
TVN0cmluZyBjb2RlY05hbWU7CisgICAgb2N0ZXQgcHJvZmlsZTsKKyAgICBvY3RldCBsZXZlbDsK
KyAgICBvY3RldCBiaXREZXB0aDsKKyAgICBvY3RldCBjaHJvbWFTdWJzYW1wbGluZzsKKyAgICBv
Y3RldCB2aWRlb0Z1bGxSYW5nZUZsYWc7CisgICAgb2N0ZXQgY29sb3JQcmltYXJpZXM7CisgICAg
b2N0ZXQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M7CisgICAgb2N0ZXQgbWF0cml4Q29lZmZpY2ll
bnRzOworfTsKKwogWwogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JU
LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LApAQCAtODgxLDYgKzg5Niw3IEBAIGVudW0gQ29u
dGVudFNpemVDYXRlZ29yeSB7CiAKICAgICBIRVZDUGFyYW1ldGVyU2V0PyBwYXJzZUhFVkNDb2Rl
Y1BhcmFtZXRlcnMoRE9NU3RyaW5nIGNvZGVjUGFyYW1ldGVycyk7CiAgICAgRG9WaVBhcmFtZXRl
clNldD8gcGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKERPTVN0cmluZyBjb2RlY1BhcmFtZXRlcnMp
OworICAgIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPyBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KERPTVN0cmluZyBjb2RlY1BhcmFtZXRlcnMpOwogCiAgICAgc2VxdWVuY2U8Q29va2llRGF0YT4g
Z2V0Q29va2llcygpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U0NzRjM2UwZjk4MDQ0Y2JiZWRmOWZhMTdmZTg2OTMy
OGIxMzc3OC4uNTc0YTMxODkwODBjOGVjZjgyNjQ1ZjQ0MWQ1ZGE5ZjgzM2QyNjliYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0
cmluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IG1lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI5ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVz
dCBnYXJkZW5pbmc7ICJyZWJhc2VsaW5lIiB0aGUgdmlkZW8tb3JpZW50YXRpb24tY2FudmFzLmh0
bWwgdGVzdCB0byBjZW50ZXIgdGhlIGV4cGVjdGVkIHJlZCBjb2xvcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MTE5Yjg5NmJhMDhiMjVkZWJhMzM0MTU3OGZjNzQzM2RjOGMxY2JiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMzEgQEAKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygiYmFkLXBhcmFtZXRlciIpID09ICdudWxsJykgT0sKKworVGVzdCBpbnZhbGlkIG51bWJlciBv
ZiByZXF1aXJlZCBwYXJhbWV0ZXJzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5IikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxIikgPT0gJ251bGwnKSBP
SworCitUZXN0IHZhbGlkIGRlZmF1bHQgb3B0aW9uYWwgcGFyYW1ldGVyczoKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2
cDA5LCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitUZXN0IGludmFsaWQgbnVtYmVy
IG9mIG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkiKSA9
PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMTYiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkiKSA9
PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEuMDAiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3Qg
dmFsaWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEi
KSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworCitUZXN0IGlu
dmFsaWQgY29kZWMgdHlwZQorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDEwLjAwLjQxLjA4IikgPT0gJ251bGwnKSBPSworCitUZXN0IGludmFsaWQgY29tYmlu
YXRpb24gb2YgbWF0cml4Q29lZmZpY2llbnRzIGFuZCBjaHJvbWFTdWJzYW1wbGluZworRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAx
LjAxLjAwLjAwIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIHByb2ZpbGVzOgorRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09
ICd7IHZwMDksIDAsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDEuNDEuMDgiKSA9PT0gJ3sgdnAwOSwg
MSwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi40MS4wOCIpID09PSAneyB2cDA5LCAyLCA0MSwgOCwg
MSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAzLjQxLjA4IikgPT09ICd7IHZwMDksIDMsIDQxLCA4LCAxLCAxLCAxLCAx
LCAwfScpIE9LCisKK1Rlc3QgaW52YWxpZCBwcm9maWxlOgorRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjA0LjQxLjA4IikgPT0gJ251bGwnKSBPSworCitU
ZXN0IHZhbGlkIGxldmVsczoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC4xMC4wOCIpID09PSAneyB2cDA5LCAwLCAxMCwgOCwgMSwgMSwgMSwgMSwg
MH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAwLjExLjA4IikgPT09ICd7IHZwMDksIDAsIDExLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMjAuMDgi
KSA9PT0gJ3sgdnAwOSwgMCwgMjAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4yMS4wOCIpID09PSAneyB2
cDA5LCAwLCAyMSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjMwLjA4IikgPT09ICd7IHZwMDksIDAsIDMw
LCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDAuMzEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMzEsIDgsIDEsIDEs
IDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC40MC4wOCIpID09PSAneyB2cDA5LCAwLCA0MCwgOCwgMSwgMSwgMSwgMSwgMH0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAw
LjQxLjA4IikgPT09ICd7IHZwMDksIDAsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNTAuMDgiKSA9
PT0gJ3sgdnAwOSwgMCwgNTAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC41MS4wOCIpID09PSAneyB2cDA5
LCAwLCA1MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjUyLjA4IikgPT09ICd7IHZwMDksIDAsIDUyLCA4
LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDAuNjAuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNjAsIDgsIDEsIDEsIDEs
IDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMC42MS4wOCIpID09PSAneyB2cDA5LCAwLCA2MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBP
SworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjYy
LjA4IikgPT09ICd7IHZwMDksIDAsIDYyLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCisKK1Rlc3Qg
aW52YWxpZCBsZXZlbDoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC4xMi4wOCIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBiaXREZXB0aHM6
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEu
MDgiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4xMCIpID09PSAn
eyB2cDA5LCAwLCA0MSwgMTAsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4xMiIpID09PSAneyB2cDA5LCAw
LCA0MSwgMTIsIDEsIDEsIDEsIDEsIDB9JykgT0sKKworVGVzdCBpbnZhbGlkIGJpdERlcHRoOgor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA5
IikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGNocm9tYVN1YnNhbXBsaW5nOgorRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAwLjA5
LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMCwgOSwgMTYsIDksIDF9JykgT0sK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA5LCAx
fScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDIuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAyLCA5LCAx
NiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAzLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwg
MywgOSwgMTYsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIGNocm9tYVN1YnNhbXBsaW5nOgor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjA0LjA5LjE2LjA5LjAxIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGNvbG9yUHJpbWFy
aWVzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjAxLjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMSwgMTYs
IDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMi4xMC4xMC4wMS4wNC4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEs
IDQsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDUuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA1LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA2LjE2LjA5LjAxIikgPT09ICd7IHZwMDks
IDIsIDEwLCAxMCwgMSwgNiwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFy
c2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wNy4xNi4wOS4wMSIpID09PSAn
eyB2cDA5LCAyLCAxMCwgMTAsIDEsIDcsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDguMTYuMDkuMDEi
KSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA4LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQg
KGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2
LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDF9JykgT0sKK0VY
UEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4w
MS4xMC4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDEwLCAxNiwgOSwgMX0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjExLjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMTEsIDE2
LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMTIuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAx
LCAxMiwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4yMi4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAx
MCwgMTAsIDEsIDIyLCAxNiwgOSwgMX0nKSBPSworCitUZXN0IGludmFsaWQgY29sb3JQcmltYXJp
ZXM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDIuMTYuMDkuMDEiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFsaWQgdHJhbnNm
ZXJDaGFyYWN0ZXJpc3RpY3M6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDEuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA5LCAxLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDIuMDkuMDEiKSA9PT0gJ3sgdnAwOSwg
MiwgMTAsIDEwLCAxLCA5LCAyLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDQuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA0LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDUuMDkuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA1LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDYuMDku
MDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA2LCA5LCAxfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDku
MDcuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA3LCA5LCAxfScpIE9LCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkuMDguMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA4LCA5LCAxfScp
IE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDkuMDkuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA5LCA5
LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTAuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5
LCAxMCwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjExLjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAx
MCwgMSwgOSwgMTEsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xMi4wOS4wMSIpID09PSAneyB2cDA5LCAy
LCAxMCwgMTAsIDEsIDksIDEyLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTMuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMywgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE0LjA5LjAxIikg
PT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTQsIDksIDF9JykgT0sKKworVGVzdCBpbnZh
bGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjAzLjA5LjAxIikgPT0gJ251bGwn
KSBPSworCitUZXN0IHZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMy4wOS4xNi4wMC4wMSIp
ID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDMsIDksIDE2LCAwLCAxfScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYu
MDEuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMX0nKSBPSworRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAx
LjA5LjE2LjA0LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDQsIDF9Jykg
T0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4x
MC4xMC4wMS4wOS4xNi4wNS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA1
LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYuMDYuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5
LCAxNiwgNiwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA3LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAx
MCwgMSwgOSwgMTYsIDcsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOC4wMSIpID09PSAneyB2cDA5LCAy
LCAxMCwgMTAsIDEsIDksIDE2LCA4LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjEwLjAxIikg
PT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEwLCAxfScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYu
MTEuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMTEsIDF9JykgT0sKK0VY
UEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4w
MS4wOS4xNi4xMi4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxMiwgMX0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LjE2LjEzLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYs
IDEzLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTQuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAx
LCA5LCAxNiwgMTQsIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4wOS4xNi4wOS4wMyIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCB2aWRlb0Z1bGxS
YW5nZUZsYWc6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDAiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5
LCAxNiwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAx
MCwgMSwgOSwgMTYsIDEsIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHZpZGVvRnVsbFJhbmdlRmxh
ZzoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4x
MC4xMC4wMS4wOS4xNi4wMS4wMiIpID09ICdudWxsJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTczNmMw
YTQ2MDY0OGJhNDk2NGNmNmU4ODEyMGUzMWQzOTdmMDJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCkBAIC0wLDAgKzEsMTM2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InZpZGVv
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gVlBDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmRUb1N0cmluZyhzZXQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIHJldHVybiBgeyAke3NldC5jb2RlY05hbWV9LCAke3NldC5wcm9maWxlfSwgJHtzZXQubGV2
ZWx9LCAke3NldC5iaXREZXB0aH0sICR7c2V0LmNocm9tYVN1YnNhbXBsaW5nfSwgJHtzZXQuY29s
b3JQcmltYXJpZXN9LCAke3NldC50cmFuc2ZlckNoYXJhY3RlcmlzdGljc30sICR7c2V0Lm1hdHJp
eENvZWZmaWNpZW50c30sICR7c2V0LnZpZGVvRnVsbFJhbmdlRmxhZ319YDsKKyAgICAgICAgfSBj
YXRjaChlKSB7CisgICAgICAgICAgICByZXR1cm4gYHsgJHtzZXR9IH1gOworICAgICAgICB9Cisg
ICAgfQorICAgIGZ1bmN0aW9uIGlzRXF1YWxWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChzZXRB
LCBzZXRCKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc2V0QS5wcm9maWxl
ID09IHNldEIucHJvZmlsZSAmJgorICAgICAgICAgICAgICAgIHNldEEubGV2ZWwgPT0gc2V0Qi5s
ZXZlbCAmJgorICAgICAgICAgICAgICAgIHNldEEuYml0RGVwdGggPT0gc2V0Qi5iaXREZXB0aCAm
JgorICAgICAgICAgICAgICAgIHNldEEuY2hyb21hU3Vic2FtcGxpbmcgPT0gc2V0Qi5jaHJvbWFT
dWJzYW1wbGluZyAmJgorICAgICAgICAgICAgICAgIHNldEEudmlkZW9GdWxsUmFuZ2VGbGFnID09
IHNldEIudmlkZW9GdWxsUmFuZ2VGbGFnICYmCisgICAgICAgICAgICAgICAgc2V0QS5jb2xvclBy
aW1hcmllcyA9PSBzZXRCLmNvbG9yUHJpbWFyaWVzICYmCisgICAgICAgICAgICAgICAgc2V0QS50
cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9PSBzZXRCLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICYm
CisgICAgICAgICAgICAgICAgc2V0QS5tYXRyaXhDb2VmZmljaWVudHMgPT0gc2V0Qi5tYXRyaXhD
b2VmZmljaWVudHM7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIG1ha2VWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZChjb2RlY05hbWUsIHByb2ZpbGUsIGxldmVsLCBiaXREZXB0aCwgY2hyb21hU3Vi
c2FtcGxpbmcsIGNvbG9yUHJpbWFyaWVzLCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywgbWF0cml4
Q29lZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcpCisgICAgeworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgY29kZWNOYW1lOiBjb2RlY05hbWUsCisgICAgICAgICAgICBwcm9maWxl
OiBwcm9maWxlLAorICAgICAgICAgICAgbGV2ZWw6IGxldmVsLAorICAgICAgICAgICAgYml0RGVw
dGg6IGJpdERlcHRoLAorICAgICAgICAgICAgY2hyb21hU3Vic2FtcGxpbmc6IGNocm9tYVN1YnNh
bXBsaW5nLAorICAgICAgICAgICAgdmlkZW9GdWxsUmFuZ2VGbGFnOiB2aWRlb0Z1bGxSYW5nZUZs
YWcsCisgICAgICAgICAgICBjb2xvclByaW1hcmllczogY29sb3JQcmltYXJpZXMsCisgICAgICAg
ICAgICB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczogdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsCisg
ICAgICAgICAgICBtYXRyaXhDb2VmZmljaWVudHM6IG1hdHJpeENvZWZmaWNpZW50cworICAgICAg
ICB9OworICAgIH0KKyAgICBmdW5jdGlvbiB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZCh0ZXN0RnVuY1N0cmluZywgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBsZXQgb2Jz
ZXJ2ZWQgPSBldmFsKHRlc3RGdW5jU3RyaW5nKTsKKyAgICAgICAgbGV0IHN1Y2Nlc3MgPSBpc0Vx
dWFsVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQob2JzZXJ2ZWQsIGV4cGVjdGVkKTsKKyAgICAg
ICAgcmVwb3J0RXhwZWN0ZWQoc3VjY2VzcywgdGVzdEZ1bmNTdHJpbmcsICc9PT0nLCBWUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZFRvU3RyaW5nKGV4cGVjdGVkKSwgVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmRUb1N0cmluZyhvYnNlcnZlZCkpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygiYmFkLXBhcmFtZXRlciIpJywgbnVsbCk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlk
IG51bWJlciBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOicpCisgICAgICAgIHRlc3RFeHBlY3RlZCgn
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkiKScsIG51bGwpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAw
IiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMC40MSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBkZWZhdWx0IG9wdGlvbmFsIHBh
cmFtZXRlcnM6JykKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNv
cmQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IiknLCBt
YWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAwLCA0MSwgOCwgMSwgMSwgMSwg
MSwgMCkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgaW52YWxpZCBudW1iZXIgb2Ygb3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEw
LjEwLjAxIiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOSIpJywgbnVsbCk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDkuMTYiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5IiknLCBu
dWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMS4wMCIpJywgbnVsbCk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCByZXF1
aXJlZCBhbmQgb3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhwZWN0ZWRWUENv
ZGVjQ29uZmlndXJhdGlvblJlY29yZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKScsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29kZWMg
dHlwZScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDEwLjAwLjQxLjA4IiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcn
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29tYmluYXRpb24gb2YgbWF0
cml4Q29lZmZpY2llbnRzIGFuZCBjaHJvbWFTdWJzYW1wbGluZycpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAx
LjAxLjAxLjAwLjAwIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIHByb2ZpbGVzOicpOworICAgICAgICBmb3IgKGxl
dCBwcm9maWxlIG9mIFswLCAxLCAyLCAzXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4ke3Byb2ZpbGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS40MS4wOCIpYCwgbWFr
ZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgcHJvZmlsZSwgNDEsIDgsIDEsIDEs
IDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCdUZXN0IGludmFsaWQgcHJvZmlsZTonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wNC40MS4wOCIpJywgbnVsbCk7Cisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxp
ZCBsZXZlbHM6Jyk7CisgICAgICAgIGZvciAobGV0IGxldmVsIG9mIFsxMCwgMTEsIDIwLCAyMSwg
MzAsIDMxLCA0MCwgNDEsIDUwLCA1MSwgNTIsIDYwLCA2MSwgNjJdKQorICAgICAgICAgICAgdGVz
dEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLiR7bGV2ZWwudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcp
fS4wOCIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMCwgbGV2ZWws
IDgsIDEsIDEsIDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgbGV2ZWw6Jyk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTIuMDgiKScsIG51
bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rl
c3QgdmFsaWQgYml0RGVwdGhzOicpOworICAgICAgICBmb3IgKGxldCBiaXREZXB0aCBvZiBbOCwg
MTAsIDEyXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVj
b3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4ke2JpdERl
cHRoLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0iKWAsIG1ha2VWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZCgndnAwOScsIDAsIDQxLCBiaXREZXB0aCwgMSwgMSwgMSwgMSwgMCkpOworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxp
ZCBiaXREZXB0aDonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVX
cml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBjaHJvbWFTdWJzYW1w
bGluZzonKTsKKyAgICAgICAgZm9yIChsZXQgY2hyb21hU3Vic2FtcGxpbmcgb2YgWzAsIDEsIDIs
IDNdKQorICAgICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQo
YGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLiR7Y2hyb21h
U3Vic2FtcGxpbmcudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOS4xNi4wOS4wMSIpYCwg
bWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCBjaHJvbWFT
dWJzYW1wbGluZywgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY2hyb21hU3Vic2FtcGxpbmc6Jyk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDQuMDkuMTYuMDkuMDEiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3Jp
dGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgY29sb3JQcmltYXJpZXM6
Jyk7CisgICAgICAgIGZvciAobGV0IGNvbG9yUHJpbWFyaWVzIG9mIFsxLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMCwgMTEsIDEyLCAyMl0pCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuJHtjb2xvclByaW1hcmllcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9
LjE2LjA5LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAx
MCwgMTAsIDEsIGNvbG9yUHJpbWFyaWVzLCAxNiwgOSwgMSkpOworICAgICAgICBjb25zb2xlV3Jp
dGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBjb2xvclByaW1hcmll
czonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMi4xMC4xMC4wMS4wMi4xNi4wOS4wMSIpJywgbnVsbCk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCB0cmFuc2Zl
ckNoYXJhY3RlcmlzdGljczonKTsKKyAgICAgICAgZm9yIChsZXQgdHJhbnNmZXJDaGFyYWN0ZXJp
c3RpY3Mgb2YgWzEsIDIsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pCisg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuJHt0cmFuc2Zl
ckNoYXJhY3RlcmlzdGljcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjA5LjAxIilgLCBt
YWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIHRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzLCA5LCAxKSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0
aWNzOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjAzLjA5LjAxIiknLCBudWxsKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIG1hdHJp
eENvZWZmaWNpZW50czonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAzLjA5LjE2LjAwLjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDkn
LCAyLCAxMCwgMTAsIDMsIDksIDE2LCAwLCAxKSk7CisgICAgICAgIGZvciAobGV0IG1hdHJpeENv
ZWZmaWNpZW50cyBvZiBbMSwgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XSkK
KyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4ke21h
dHJpeENvZWZmaWNpZW50cy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjAxIilgLCBtYWtl
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIDE2LCBt
YXRyaXhDb2VmZmljaWVudHMsIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgbWF0cml4Q29lZmZpY2llbnRzOicpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAzIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIHZpZGVvRnVsbFJhbmdlRmxh
ZzonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAx
LjAwIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAs
IDEsIDksIDE2LCAxLCAwKSk7CisgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0
aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4wOS4xNi4wMS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5
JywgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMSkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6
Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDIiKScsIG51bGwpOworICAgICAgICBlbmRU
ZXN0KCk7CisgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="419590"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404209</attachid>
            <date>2020-07-13 21:26:43 -0700</date>
            <delta_ts>2020-07-14 10:26:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214270-20200713212642.patch</filename>
            <type>text/plain</type>
            <size>39923</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiOWYxMTA4NjAwY2MzMGZlMzIyNGU2
N2RiNTFhZjA4NTJhMWY4NGQuLjYxNjRhZWNhNTNhY2M3NTE2NmVlODRmODQwMzFlZDUzNjQyMWY1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUg
Y29kZWMgc3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MDAwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdmFyaWFudCBv
ZiB0b0ludGVncmFsVHlwZTw+IHdoaWNoIHJldHVybnMgYW4gT3B0aW9uYWwuIFNpbmNlIG5vIGV4
aXN0aW5nIGNhbGxlcnMgb2YgdGhlCisgICAgICAgIG9yaWdpbmFsIHRvSW50ZWdyYWxUeXBlIGZh
aWwgdG8gcGFzcyBpbiB0aGUgb3B0aW9uYWwgYm9vbCogcGFyYW1ldGVyLCBtYWtlIHRoYXQgcGFy
YW1ldGVyCisgICAgICAgIG5vbi1vcHRpb25hbCwgYXMgaXQgY2F1c2VzIGEgY29uZmxpY3Qgd2l0
aCB0aGUgbmV3IE9wdGlvbmFsLXJldHVybmluZyB2ZXJzaW9uLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oOgorICAgICAgICAoV1RGOjp0b0ludGVncmFs
VHlwZSk6CisKIDIwMjAtMDctMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nlc3MgaGFuZ3Mgd2hlbiBicm93c2luZyBH
aXRIdWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3MzJlYmQ0NzZjYWFmNzBlMjQwMjliNTIyMWE5NzdhN2JlZDMy
OGM5Li40YzI0YjMzNjU5ZjdjNjc3ZjQwNDE0OTc2ZjRkZTc5NDRlMTUxZTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMg
c3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbAorCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRWUExldmVscyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZENvbG9y
UHJpbWFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTA3LTAyICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRvcHQgQVZQbGF5
ZXIudmlkZW9SYW5nZU92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9J
bnRlZ2VyQ29udmVyc2lvbi5oCmluZGV4IDc2ODljN2ViYzVlOWJjMjhiNjAwMzg5OTRkZTg0Yzdj
YTUxOWI4N2MuLjdlMDI0NGIwZWY2N2NlZWVlNWFlMWE2MGRiYTQxMDUzOTdhODg5YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCkBAIC00
Niw3ICs0Niw3IEBAIGlubGluZSBib29sIGlzQ2hhcmFjdGVyQWxsb3dlZEluQmFzZShVQ2hhciBj
LCBpbnQgYmFzZSkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgotaW5saW5lIEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25z
dCBDaGFyYWN0ZXJUeXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvayA9IG51bGxwdHIs
IGludCBiYXNlID0gMTApCitpbmxpbmUgSW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0
IENoYXJhY3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFzZSA9
IDEwKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgSW50ZWdyYWxUeXBlIGludGVncmFsTWF4ID0g
c3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ3JhbFR5cGU+OjptYXgoKTsKICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNTaWduZWQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46
OmlzX3NpZ25lZDsKQEAgLTEyMiwxMyArMTIyLDMzIEBAIGJ5ZToKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBTdHJpbmdPclN0cmluZ1ZpZXc+Ci1pbmxpbmUg
SW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IFN0cmluZ09yU3RyaW5nVmlldyYgc3Ry
aW5nVmlldywgYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKQoraW5saW5lIEludGVn
cmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25zdCBTdHJpbmdPclN0cmluZ1ZpZXcmIHN0cmluZ1Zp
ZXcsIGJvb2wqIG9rLCBpbnQgYmFzZSA9IDEwKQogewogICAgIGlmIChzdHJpbmdWaWV3LmlzOEJp
dCgpKQogICAgICAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8SW50ZWdyYWxUeXBlLCBMQ2hhcj4o
c3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmdWaWV3Lmxlbmd0aCgpLCBvaywgYmFzZSk7
CiAgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPEludGVncmFsVHlwZSwgVUNoYXI+KHN0cmluZ1Zp
ZXcuY2hhcmFjdGVyczE2KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCksIG9rLCBiYXNlKTsKIH0KIAor
dGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgor
aW5saW5lIE9wdGlvbmFsPEludGVncmFsVHlwZT4gdG9JbnRlZ3JhbFR5cGUoY29uc3QgQ2hhcmFj
dGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgaW50IGJhc2UgPSAxMCkKK3sKKyAgICBib29s
IG9rID0gZmFsc2U7CisgICAgSW50ZWdyYWxUeXBlIHZhbHVlID0gdG9JbnRlZ3JhbFR5cGU8SW50
ZWdyYWxUeXBlPihkYXRhLCBsZW5ndGgsICZvaywgYmFzZSk7CisgICAgaWYgKCFvaykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5hbWUgU3RyaW5nT3JTdHJpbmdWaWV3PgoraW5s
aW5lIE9wdGlvbmFsPEludGVncmFsVHlwZT4gdG9JbnRlZ3JhbFR5cGUoY29uc3QgU3RyaW5nT3JT
dHJpbmdWaWV3JiBzdHJpbmdWaWV3LCBpbnQgYmFzZSA9IDEwKQoreworICAgIGJvb2wgb2sgPSBm
YWxzZTsKKyAgICBJbnRlZ3JhbFR5cGUgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxJbnRlZ3JhbFR5
cGU+KHN0cmluZ1ZpZXcsICZvaywgYmFzZSk7CisgICAgaWYgKCFvaykKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIH0KIAogdXNpbmcgV1RGOjp0
b0ludGVncmFsVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMThlZTAwYTQ3NzFhMGU4NmVlNTE0ODBj
NzhiYjAzNjY1NWZjY2QxNS4uYmYyYmY1ZTdjMWExN2QzYWM2NzY4YTA1M2M5MDQ0MWVjZjE1YjNl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4OTEsNiArMTg5MSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9WUDlVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZvcm1hdC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1dp
ZHRoSXRlcmF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYzQ2OWUwNmVjYTkyOGUxNDEzMjE0NmQyMTVhOTlmNjhlZDFm
OTNhZC4uM2M1NjMxZTRiYzg0MTMwZTlhYjViMjU5YTcxOTVkMjIyNGYxYzM3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQw
OTcsNiArMTQwOTcsOCBAQAogCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3Vy
Y2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNl
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVCMjE4MThGNUVE
MDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZG
RTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQ
OVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZQOVV0
aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzIwQjQ3MjI2ODJD
N0UwMDA0N0ZERSAvKiBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q3MjBCNDkyMjY4MkM3RjAwMDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3Ry
ZWFtaW5nUHNzaEJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hC
b3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3OEEyRUMxRjc1NjQ4NjAwREUz
NzFCIC8qIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTcyMCw2ICsyNTcy
Miw4IEBACiAJCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNl
LmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywK
KwkJCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCisJCQkJ
Q0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMEY1
QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBD
MzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCUJFRjI5RUVBMTcx
NUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5
OTE0YmU5ZjA4N2VmZTQ2NWU2NmM2OWE0YTMwMjZiYjFkOTJjMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSwxOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VlA5VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIGJvb2wgaXNWYWxpZFZQTGV2ZWwodWludDhfdCBsZXZlbCkKK3sK
KyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdmFsaWRMZXZlbHNbXSA9IHsKKyAgICAgICAgMTAs
CisgICAgICAgIDExLAorICAgICAgICAyMCwKKyAgICAgICAgMjEsCisgICAgICAgIDMwLAorICAg
ICAgICAzMSwKKyAgICAgICAgNDAsCisgICAgICAgIDQxLAorICAgICAgICA1MCwKKyAgICAgICAg
NTEsCisgICAgICAgIDUyLAorICAgICAgICA2MCwKKyAgICAgICAgNjEsCisgICAgICAgIDYyLAor
ICAgIH07CisKKyAgICBBU1NFUlQoc3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbih2YWxpZExldmVs
cyksIHN0ZDo6ZW5kKHZhbGlkTGV2ZWxzKSkpOworICAgIHJldHVybiBzdGQ6OmJpbmFyeV9zZWFy
Y2goc3RkOjpiZWdpbih2YWxpZExldmVscyksIHN0ZDo6ZW5kKHZhbGlkTGV2ZWxzKSwgbGV2ZWwp
OworfQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkVlBjb2xvclByaW1hcmllcyh1aW50OF90IGNvbG9y
UHJpbWFyYXJ5KQoreworICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCB2YWxpZGNvbG9yUHJpbWFy
aWVzW10gPSB7CisgICAgICAgIDEsCisgICAgICAgIDQsCisgICAgICAgIDUsCisgICAgICAgIDYs
CisgICAgICAgIDcsCisgICAgICAgIDgsCisgICAgICAgIDksCisgICAgICAgIDEwLAorICAgICAg
ICAxMSwKKyAgICAgICAgMTIsCisgICAgICAgIDIyLAorICAgIH07CisKKyAgICBBU1NFUlQoc3Rk
Ojppc19zb3J0ZWQoc3RkOjpiZWdpbih2YWxpZGNvbG9yUHJpbWFyaWVzKSwgc3RkOjplbmQodmFs
aWRjb2xvclByaW1hcmllcykpKTsKKyAgICByZXR1cm4gc3RkOjpiaW5hcnlfc2VhcmNoKHN0ZDo6
YmVnaW4odmFsaWRjb2xvclByaW1hcmllcyksIHN0ZDo6ZW5kKHZhbGlkY29sb3JQcmltYXJpZXMp
LCBjb2xvclByaW1hcmFyeSk7Cit9CisKK09wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0aW9uUmVj
b3JkPiBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZ1ZpZXcmIGNvZGVjU3RyaW5n
KQoreworICAgIC8vIFRoZSBmb3JtYXQgb2YgdGhlICd2cDA5JyBjb2RlYyBzdHJpbmcgaXMgc3Bl
Y2lmaWVkIGluIHRoZSB3ZWJtIEdpdEh1YiByZXBvOgorICAgIC8vIDxodHRwczovL2dpdGh1Yi5j
b20vd2VibXByb2plY3QvdnA5LWRhc2gvYmxvYi9tYXN0ZXIvVlBDb2RlY0lTT01lZGlhRmlsZUZv
cm1hdEJpbmRpbmcubWQjY29kZWNzLXBhcmFtZXRlci1zdHJpbmc+CisKKyAgICAvLyAic2FtcGxl
IGVudHJ5IDRDQywgcHJvZmlsZSwgbGV2ZWwsIGFuZCBiaXREZXB0aCBhcmUgYWxsIG1hbmRhdG9y
eSBmaWVsZHMuIElmIGFueSBvZiB0aGVzZSBmaWVsZHMgYXJlIGVtcHR5LCBvciBub3QKKyAgICAv
LyB3aXRoaW4gdGhlaXIgYWxsb3dlZCByYW5nZSwgdGhlIHByb2Nlc3NpbmcgZGV2aWNlIFNIQUxM
IHRyZWF0IGl0IGFzIGFuIGVycm9yLiIKKworICAgIFN0cmluZ1ZpZXcgY29kZWNWaWV3KGNvZGVj
U3RyaW5nKTsKKyAgICBhdXRvIGNvZGVjU3BsaXQgPSBjb2RlY1ZpZXcuc3BsaXQoJy4nKTsKKyAg
ICBhdXRvIG5leHRFbGVtZW50ID0gY29kZWNTcGxpdC5iZWdpbigpOworICAgIGlmIChuZXh0RWxl
bWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgY29uZmlndXJhdGlvbjsKKworICAgIC8v
IENvZGVjIGlkZW50aWZpZXI6IGxlZ2FsIHZhbHVlcyBhcmUgJ3ZwMDgnIG9yICd2cDA5Jy4KKyAg
ICBjb25maWd1cmF0aW9uLmNvZGVjTmFtZSA9ICgqbmV4dEVsZW1lbnQpLnRvU3RyaW5nKCk7Cisg
ICAgaWYgKGNvbmZpZ3VyYXRpb24uY29kZWNOYW1lICE9ICJ2cDA4IiAmJiBjb25maWd1cmF0aW9u
LmNvZGVjTmFtZSAhPSAidnAwOSIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgLy8gRmlyc3QgZWxlbWVudDogcHJvZmlsZS4gTGVnYWwgdmFs
dWVzIGFyZSAwLTMuCisgICAgYXV0byBwcm9maWxlID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4o
Km5leHRFbGVtZW50KTsKKyAgICBpZiAoIXByb2ZpbGUgfHwgKnByb2ZpbGUgPiAzKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24ucHJvZmlsZSA9ICpwcm9m
aWxlOworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vIFNlY29uZCBlbGVtZW50OiBsZXZlbC4g
TGVnYWwgdmFsdWVzIGFyZSBlbnVtZXJhdGVkIGluIHZhbGlkVlBMZXZlbHMgYWJvdmUuCisgICAg
YXV0byBsZXZlbCA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAg
aWYgKCFsZXZlbCB8fCAhaXNWYWxpZFZQTGV2ZWwoKmxldmVsKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmxldmVsID0gKmxldmVsOworCisgICAgaWYg
KCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIC8vIFRoaXJkIGVsZW1lbnQ6IGJpdERlcHRoLiBMZWdhbCB2YWx1ZXMg
YXJlIDgsIDEwLCBhbmQgMTIuCisgICAgYXV0byBiaXREZXB0aCA9IHRvSW50ZWdyYWxUeXBlPHVp
bnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFiaXREZXB0aCB8fCAoKmJpdERlcHRoICE9
IDggJiYgKmJpdERlcHRoICE9IDEwICYmICpiaXREZXB0aCAhPSAxMikpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5iaXREZXB0aCA9ICpiaXREZXB0aDsK
KworICAgIC8vICJjb2xvclByaW1hcmllcywgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsIG1hdHJp
eENvZWZmaWNpZW50cywgdmlkZW9GdWxsUmFuZ2VGbGFnLCBhbmQgY2hyb21hU3Vic2FtcGxpbmcg
YXJlIE9QVElPTkFMLAorICAgIC8vIG11dHVhbGx5IGluY2x1c2l2ZSAoYWxsIG9yIG5vbmUpIGZp
ZWxkcy4gSWYgbm90IHNwZWNpZmllZCB0aGVuIHRoZSBwcm9jZXNzaW5nIGRldmljZSBNVVNUIHVz
ZSB0aGUgdmFsdWVzIGxpc3RlZCBpbiB0aGUKKyAgICAvLyB0YWJsZSBiZWxvdyBhcyBkZWZhdWx0
cyB3aGVuIGRlY2lkaW5nIGlmIHRoZSBkZXZpY2UgaXMgYWJsZSB0byBkZWNvZGUgYW5kIHBvdGVu
dGlhbGx5IHJlbmRlciB0aGUgdmlkZW8uIgorCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29k
ZWNTcGxpdC5lbmQoKSkgeworICAgICAgICBjb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5n
ID0gMTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5jb2xvclByaW1hcmllcyA9IDE7CisgICAgICAg
IGNvbmZpZ3VyYXRpb24udHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPSAxOworICAgICAgICBjb25m
aWd1cmF0aW9uLm1hdHJpeENvZWZmaWNpZW50cyA9IDE7CisgICAgICAgIGNvbmZpZ3VyYXRpb24u
dmlkZW9GdWxsUmFuZ2VGbGFnID0gMDsKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247Cisg
ICAgfQorCisgICAgLy8gRm91cnRoIGVsZW1lbnQ6IGNocm9tYVN1YnNhbXBsaW5nLiBMZWdhbCB2
YWx1ZXMgYXJlIDAtMy4KKyAgICBhdXRvIGNocm9tYVN1YnNhbXBsaW5nID0gdG9JbnRlZ3JhbFR5
cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIWNocm9tYVN1YnNhbXBsaW5nIHx8
ICpjaHJvbWFTdWJzYW1wbGluZyA+IDMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgY29uZmlndXJhdGlvbi5jaHJvbWFTdWJzYW1wbGluZyA9ICpjaHJvbWFTdWJzYW1wbGluZzsK
KworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBGaWZ0aCBlbGVtZW50OiBjb2xvclByaW1hcmll
cy4gTGVnYWwgdmFsdWVzIGFyZSBkZWZpbmVkIGJ5ICBJU08vSUVDIDIzMDAxLTg6MjAxNiwgc3Vw
ZXJjZWRlZAorICAgIC8vIGJ5IElTTy9JRUMgMjMwOTEtMjoyMDE5LgorICAgIGF1dG8gY29sb3JQ
cmltYXJpZXMgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4dEVsZW1lbnQpOworICAgIGlm
ICghY29sb3JQcmltYXJpZXMgfHwgIWlzVmFsaWRWUGNvbG9yUHJpbWFyaWVzKCpjb2xvclByaW1h
cmllcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5j
b2xvclByaW1hcmllcyA9ICpjb2xvclByaW1hcmllczsKKworICAgIGlmICgrK25leHRFbGVtZW50
ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICAvLyBTaXh0aCBlbGVtZW50OiB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcy4gTGVnYWwgdmFsdWVz
IGFyZSBkZWZpbmVkIGJ5ICBJU08vSUVDIDIzMDAxLTg6MjAxNiwgc3VwZXJjZWRlZAorICAgIC8v
IGJ5IElTTy9JRUMgMjMwOTEtMjoyMDE5LgorICAgIGF1dG8gdHJhbnNmZXJDaGFyYWN0ZXJpc3Rp
Y3MgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4dEVsZW1lbnQpOworICAgIGlmICghdHJh
bnNmZXJDaGFyYWN0ZXJpc3RpY3MgfHwgKCEqdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgfHwgKnRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzID09IDMgfHwgKnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID4g
MTgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24udHJh
bnNmZXJDaGFyYWN0ZXJpc3RpY3MgPSAqdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M7CisKKyAgICBp
ZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgLy8gU2V2ZW50aCBlbGVtZW50OiBtYXRyaXhDb2VmZmljaWVudHMu
IExlZ2FsIHZhbHVlcyBhcmUgZGVmaW5lZCBieSAgSVNPL0lFQyAyMzAwMS04OjIwMTYsIHN1cGVy
Y2VkZWQKKyAgICAvLyBieSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICBhdXRvIG1hdHJpeENv
ZWZmaWNpZW50cyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAg
aWYgKCFtYXRyaXhDb2VmZmljaWVudHMgfHwgKCptYXRyaXhDb2VmZmljaWVudHMgPT0gMiB8fCAq
bWF0cml4Q29lZmZpY2llbnRzID09IDMgfHwgKm1hdHJpeENvZWZmaWNpZW50cyA+IDE0KSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLm1hdHJpeENvZWZm
aWNpZW50cyA9ICptYXRyaXhDb2VmZmljaWVudHM7CisKKyAgICAvLyAiSWYgbWF0cml4Q29lZmZp
Y2llbnRzIGlzIDAgKFJHQiksIHRoZW4gY2hyb21hIHN1YnNhbXBsaW5nIE1VU1QgYmUgMyAoNDo0
OjQpLiIKKyAgICBpZiAoIWNvbmZpZ3VyYXRpb24ubWF0cml4Q29lZmZpY2llbnRzICYmIGNvbmZp
Z3VyYXRpb24uY2hyb21hU3Vic2FtcGxpbmcgIT0gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBFaWdodGggZWxlbWVudDogdmlkZW9G
dWxsUmFuZ2VGbGFnLiBMZWdhbCB2YWx1ZXMgYXJlIDAgYW5kIDEuCisgICAgYXV0byB2aWRlb0Z1
bGxSYW5nZUZsYWcgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4dEVsZW1lbnQpOworICAg
IGlmICghdmlkZW9GdWxsUmFuZ2VGbGFnIHx8ICp2aWRlb0Z1bGxSYW5nZUZsYWcgPiAxKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24udmlkZW9GdWxsUmFu
Z2VGbGFnID0gKnZpZGVvRnVsbFJhbmdlRmxhZzsKKworICAgIGlmICgrK25leHRFbGVtZW50ICE9
IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBy
ZXR1cm4gY29uZmlndXJhdGlvbjsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmU1ZmNkOTA3M2Y0NmY2NjIw
ZWFiZmU4YzQ1OTMxYTMwOTc2ODYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCB7CisgICAgU3RyaW5nIGNvZGVjTmFt
ZTsKKyAgICB1aW50OF90IHByb2ZpbGUgeyAwIH07CisgICAgdWludDhfdCBsZXZlbCB7IDAgfTsK
KyAgICB1aW50OF90IGJpdERlcHRoIHsgMCB9OworICAgIHVpbnQ4X3QgY2hyb21hU3Vic2FtcGxp
bmcgeyAwIH07CisgICAgdWludDhfdCB2aWRlb0Z1bGxSYW5nZUZsYWcgeyAwIH07CisgICAgdWlu
dDhfdCBjb2xvclByaW1hcmllcyB7IDAgfTsKKyAgICB1aW50OF90IHRyYW5zZmVyQ2hhcmFjdGVy
aXN0aWNzIHsgMCB9OworICAgIHVpbnQ4X3QgbWF0cml4Q29lZmZpY2llbnRzIHsgMCB9OworfTsK
KworV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nVmlldyYgY29kZWNTdHJpbmcpOworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTJlNTdlY2JlZjQ1ZDNjMjQ2
M2Y5ODYzNzM3MTMzMmZhYmY0NTI5Ny4uY2U5NmJhNzY3ZTBjMDU3NTgwZmUxMDVjZDJiMzM3ZTdh
MTU0MmE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTYwMCw2ICs1
NjAwLDExIEBAIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IEludGVybmFsczo6cGFyc2VEb1Zp
Q29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kCiAgICAgcmV0dXJuIFdlYkNvcmU6OnBh
cnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7CiB9CiAKK09wdGlvbmFsPFZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkPiBJbnRlcm5hbHM6OnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
Y29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6cGFyc2VW
UENvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7Cit9CisKIGF1dG8gSW50ZXJuYWxzOjpnZXRD
b29raWVzKCkgY29uc3QgLT4gVmVjdG9yPENvb2tpZURhdGE+CiB7CiAgICAgYXV0byogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDg1Y2U2OTI0MmY2NDMyY2Y2N2Q4MTk5ODFmZGE5OTkzNTFhNTMxMGIuLmJlYzU5Y2JjYzAxOGZk
NmIxOWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNp
bmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgorI2lu
Y2x1ZGUgIlZQOVV0aWxpdGllcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJB
cnJheS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC05MTUsNiArOTE2LDkgQEAg
cHVibGljOgogICAgIHVzaW5nIERvVmlQYXJhbWV0ZXJTZXQgPSBXZWJDb3JlOjpEb1ZpUGFyYW1l
dGVyU2V0OwogICAgIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IHBhcnNlRG9WaUNvZGVjUGFy
YW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5nKTsKIAorICAgIHVzaW5nIFZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkID0gV2ViQ29yZTo6VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ7
CisgICAgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZyk7CisKICAgICBzdHJ1Y3QgQ29va2ll
RGF0YSB7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgICAgICBTdHJpbmcgdmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZWYwYjBkZWU0YTIzZTVjMmQ1ZDE2YWIw
NDBhY2VlZjEwOTZlMWU3ZC4uODhiNDYxZTYxM2U1ODIyMjY4M2Q5YWFhMjJiNDZhM2RiZjJlZTVj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTg5LDYgKzE4OSwyMSBA
QCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogICAgIHVuc2lnbmVkIHNob3J0IGJpdHN0cmVh
bUxldmVsSUQ7CiB9OwogCitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9F
WFBPUlQsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgVlBDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmQgeworICAgIERPTVN0cmluZyBjb2RlY05hbWU7CisgICAgb2N0ZXQg
cHJvZmlsZTsKKyAgICBvY3RldCBsZXZlbDsKKyAgICBvY3RldCBiaXREZXB0aDsKKyAgICBvY3Rl
dCBjaHJvbWFTdWJzYW1wbGluZzsKKyAgICBvY3RldCB2aWRlb0Z1bGxSYW5nZUZsYWc7CisgICAg
b2N0ZXQgY29sb3JQcmltYXJpZXM7CisgICAgb2N0ZXQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M7
CisgICAgb2N0ZXQgbWF0cml4Q29lZmZpY2llbnRzOworfTsKKwogWwogICAgIEV4cG9ydE1hY3Jv
PVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LApA
QCAtODgxLDYgKzg5Niw3IEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAKICAgICBIRVZD
UGFyYW1ldGVyU2V0PyBwYXJzZUhFVkNDb2RlY1BhcmFtZXRlcnMoRE9NU3RyaW5nIGNvZGVjUGFy
YW1ldGVycyk7CiAgICAgRG9WaVBhcmFtZXRlclNldD8gcGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJz
KERPTVN0cmluZyBjb2RlY1BhcmFtZXRlcnMpOworICAgIFZQQ29kZWNDb25maWd1cmF0aW9uUmVj
b3JkPyBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKERPTVN0cmluZyBjb2RlY1BhcmFtZXRlcnMpOwog
CiAgICAgc2VxdWVuY2U8Q29va2llRGF0YT4gZ2V0Q29va2llcygpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U0NzRj
M2UwZjk4MDQ0Y2JiZWRmOWZhMTdmZTg2OTMyOGIxMzc3OC4uNTc0YTMxODkwODBjOGVjZjgyNjQ1
ZjQ0MWQ1ZGE5ZjgzM2QyNjliYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTEzICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmc7ICJyZWJhc2VsaW5lIiB0aGUg
dmlkZW8tb3JpZW50YXRpb24tY2FudmFzLmh0bWwgdGVzdCB0byBjZW50ZXIgdGhlIGV4cGVjdGVk
IHJlZCBjb2xvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTE5Yjg5NmJhMDhiMjVkZWJhMzM0MTU3OGZjNzQz
M2RjOGMxY2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMt
cGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMzEgQEAKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygiYmFkLXBhcmFtZXRlciIpID09ICdudWxsJykg
T0sKKworVGVzdCBpbnZhbGlkIG51bWJlciBvZiByZXF1aXJlZCBwYXJhbWV0ZXJzOgorRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5IikgPT0gJ251bGwnKSBP
SworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIikg
PT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAwLjQxIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGRlZmF1bHQgb3B0aW9u
YWwgcGFyYW1ldGVyczoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5LCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0n
KSBPSworCitUZXN0IGludmFsaWQgbnVtYmVyIG9mIG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEi
KSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYiKSA9PSAn
bnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEu
MDAiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFsaWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBh
cmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5
LCAxNiwgOSwgMX0nKSBPSworCitUZXN0IGludmFsaWQgY29kZWMgdHlwZQorRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDEwLjAwLjQxLjA4IikgPT0gJ251bGwn
KSBPSworCitUZXN0IGludmFsaWQgY29tYmluYXRpb24gb2YgbWF0cml4Q29lZmZpY2llbnRzIGFu
ZCBjaHJvbWFTdWJzYW1wbGluZworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAxLjAxLjAwLjAwIikgPT0gJ251bGwnKSBPSworCitU
ZXN0IHZhbGlkIHByb2ZpbGVzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09ICd7IHZwMDksIDAsIDQxLCA4LCAxLCAxLCAxLCAx
LCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDEuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMSwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi40MS4w
OCIpID09PSAneyB2cDA5LCAyLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQg
KGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAzLjQxLjA4IikgPT09ICd7
IHZwMDksIDMsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCisKK1Rlc3QgaW52YWxpZCBwcm9m
aWxlOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjA0
LjQxLjA4IikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGxldmVsczoKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4xMC4wOCIpID09PSAneyB2
cDA5LCAwLCAxMCwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjExLjA4IikgPT09ICd7IHZwMDksIDAsIDEx
LCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDAuMjAuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMjAsIDgsIDEsIDEs
IDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC4yMS4wOCIpID09PSAneyB2cDA5LCAwLCAyMSwgOCwgMSwgMSwgMSwgMSwgMH0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAw
LjMwLjA4IikgPT09ICd7IHZwMDksIDAsIDMwLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMzEuMDgiKSA9
PT0gJ3sgdnAwOSwgMCwgMzEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MC4wOCIpID09PSAneyB2cDA5
LCAwLCA0MCwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09ICd7IHZwMDksIDAsIDQxLCA4
LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDAuNTAuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNTAsIDgsIDEsIDEsIDEs
IDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMC41MS4wOCIpID09PSAneyB2cDA5LCAwLCA1MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBP
SworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjUy
LjA4IikgPT09ICd7IHZwMDksIDAsIDUyLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNjAuMDgiKSA9PT0g
J3sgdnAwOSwgMCwgNjAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC42MS4wOCIpID09PSAneyB2cDA5LCAw
LCA2MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjYyLjA4IikgPT09ICd7IHZwMDksIDAsIDYyLCA4LCAx
LCAxLCAxLCAxLCAwfScpIE9LCisKK1Rlc3QgaW52YWxpZCBsZXZlbDoKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4xMi4wOCIpID09ICdudWxsJykg
T0sKKworVGVzdCB2YWxpZCBiaXREZXB0aHM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDgsIDEs
IDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC40MS4xMCIpID09PSAneyB2cDA5LCAwLCA0MSwgMTAsIDEsIDEsIDEsIDEs
IDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMC40MS4xMiIpID09PSAneyB2cDA5LCAwLCA0MSwgMTIsIDEsIDEsIDEsIDEsIDB9JykgT0sK
KworVGVzdCBpbnZhbGlkIGJpdERlcHRoOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA5IikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlk
IGNocm9tYVN1YnNhbXBsaW5nOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAwLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEw
LCAxMCwgMCwgOSwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5
LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDIuMDkuMTYuMDkuMDEiKSA9PT0g
J3sgdnAwOSwgMiwgMTAsIDEwLCAyLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAzLjA5LjE2LjA5LjAx
IikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMywgOSwgMTYsIDksIDF9JykgT0sKKworVGVzdCBp
bnZhbGlkIGNocm9tYVN1YnNhbXBsaW5nOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjA0LjA5LjE2LjA5LjAxIikgPT0gJ251bGwnKSBP
SworCitUZXN0IHZhbGlkIGNvbG9yUHJpbWFyaWVzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjAxLjE2LjA5LjAxIikgPT09ICd7
IHZwMDksIDIsIDEwLCAxMCwgMSwgMSwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wNC4xNi4wOS4wMSIp
ID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDQsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDUuMTYu
MDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA1LCAxNiwgOSwgMX0nKSBPSworRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAx
LjA2LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgNiwgMTYsIDksIDF9Jykg
T0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4x
MC4xMC4wMS4wNy4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDcsIDE2LCA5
LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDguMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA4
LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAx
MCwgMSwgOSwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4xMC4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAy
LCAxMCwgMTAsIDEsIDEwLCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjExLjE2LjA5LjAxIikgPT09ICd7
IHZwMDksIDIsIDEwLCAxMCwgMSwgMTEsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMTIuMTYuMDkuMDEi
KSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCAxMiwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4yMi4x
Ni4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDIyLCAxNiwgOSwgMX0nKSBPSwor
CitUZXN0IGludmFsaWQgY29sb3JQcmltYXJpZXM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDIuMTYuMDkuMDEiKSA9PSAnbnVs
bCcpIE9LCisKK1Rlc3QgdmFsaWQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6CitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDEu
MDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxLCA5LCAxfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEu
MDkuMDIuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAyLCA5LCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMDQuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA0LCA5LCAx
fScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDkuMDUuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA1
LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDIuMTAuMTAuMDEuMDkuMDYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAx
LCA5LCA2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDcuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAs
IDEwLCAxLCA5LCA3LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDguMDkuMDEiKSA9PT0gJ3sgdnAwOSwg
MiwgMTAsIDEwLCAxLCA5LCA4LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDkuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA5LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTAuMDkuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMCwgOSwgMX0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjExLjA5
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTEsIDksIDF9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4w
OS4xMi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDEyLCA5LCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTMuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMywgOSwg
MX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE0LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwg
MTQsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOgor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjAzLjA5LjAxIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIG1hdHJpeENvZWZm
aWNpZW50czoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMi4xMC4xMC4wMy4wOS4xNi4wMC4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDMsIDks
IDE2LCAwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEw
LCAxLCA5LCAxNiwgMSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA0LjAxIikgPT09ICd7IHZwMDksIDIs
IDEwLCAxMCwgMSwgOSwgMTYsIDQsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wNS4wMSIpID09PSAneyB2
cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA1LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDYuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgNiwgMX0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA3
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDcsIDF9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4w
OS4xNi4wOC4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA4LCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwg
MX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE2LjEwLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwg
MTYsIDEwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTEuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEw
LCAxLCA5LCAxNiwgMTEsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4xMi4wMSIpID09PSAneyB2cDA5LCAy
LCAxMCwgMTAsIDEsIDksIDE2LCAxMiwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjEzLjAxIikgPT09ICd7
IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEzLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTQuMDEi
KSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMTQsIDF9JykgT0sKKworVGVzdCBp
bnZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMyIpID09ICdudWxsJykg
T0sKKworVGVzdCB2YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6CitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDAiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMH0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAx
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEsIDF9JykgT0sKKworVGVz
dCBpbnZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wMS4wMiIpID09ICdudWxs
JykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZwLWNv
ZGVjLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRl
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZTczNmMwYTQ2MDY0OGJhNDk2NGNmNmU4ODEyMGUzMWQzOTdm
MDJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1l
dGVycy5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgZnVuY3Rpb24gVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRUb1N0cmluZyhzZXQp
IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBgeyAke3NldC5jb2RlY05hbWV9
LCAke3NldC5wcm9maWxlfSwgJHtzZXQubGV2ZWx9LCAke3NldC5iaXREZXB0aH0sICR7c2V0LmNo
cm9tYVN1YnNhbXBsaW5nfSwgJHtzZXQuY29sb3JQcmltYXJpZXN9LCAke3NldC50cmFuc2ZlckNo
YXJhY3RlcmlzdGljc30sICR7c2V0Lm1hdHJpeENvZWZmaWNpZW50c30sICR7c2V0LnZpZGVvRnVs
bFJhbmdlRmxhZ319YDsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICByZXR1cm4g
YHsgJHtzZXR9IH1gOworICAgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIGlzRXF1YWxWUENv
ZGVjQ29uZmlndXJhdGlvblJlY29yZChzZXRBLCBzZXRCKSB7CisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICByZXR1cm4gc2V0QS5wcm9maWxlID09IHNldEIucHJvZmlsZSAmJgorICAgICAgICAg
ICAgICAgIHNldEEubGV2ZWwgPT0gc2V0Qi5sZXZlbCAmJgorICAgICAgICAgICAgICAgIHNldEEu
Yml0RGVwdGggPT0gc2V0Qi5iaXREZXB0aCAmJgorICAgICAgICAgICAgICAgIHNldEEuY2hyb21h
U3Vic2FtcGxpbmcgPT0gc2V0Qi5jaHJvbWFTdWJzYW1wbGluZyAmJgorICAgICAgICAgICAgICAg
IHNldEEudmlkZW9GdWxsUmFuZ2VGbGFnID09IHNldEIudmlkZW9GdWxsUmFuZ2VGbGFnICYmCisg
ICAgICAgICAgICAgICAgc2V0QS5jb2xvclByaW1hcmllcyA9PSBzZXRCLmNvbG9yUHJpbWFyaWVz
ICYmCisgICAgICAgICAgICAgICAgc2V0QS50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9PSBzZXRC
LnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICYmCisgICAgICAgICAgICAgICAgc2V0QS5tYXRyaXhD
b2VmZmljaWVudHMgPT0gc2V0Qi5tYXRyaXhDb2VmZmljaWVudHM7CisgICAgICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGZ1
bmN0aW9uIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChjb2RlY05hbWUsIHByb2ZpbGUs
IGxldmVsLCBiaXREZXB0aCwgY2hyb21hU3Vic2FtcGxpbmcsIGNvbG9yUHJpbWFyaWVzLCB0cmFu
c2ZlckNoYXJhY3RlcmlzdGljcywgbWF0cml4Q29lZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZs
YWcpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgY29kZWNOYW1lOiBjb2Rl
Y05hbWUsCisgICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlLAorICAgICAgICAgICAgbGV2ZWw6
IGxldmVsLAorICAgICAgICAgICAgYml0RGVwdGg6IGJpdERlcHRoLAorICAgICAgICAgICAgY2hy
b21hU3Vic2FtcGxpbmc6IGNocm9tYVN1YnNhbXBsaW5nLAorICAgICAgICAgICAgdmlkZW9GdWxs
UmFuZ2VGbGFnOiB2aWRlb0Z1bGxSYW5nZUZsYWcsCisgICAgICAgICAgICBjb2xvclByaW1hcmll
czogY29sb3JQcmltYXJpZXMsCisgICAgICAgICAgICB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczog
dHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsCisgICAgICAgICAgICBtYXRyaXhDb2VmZmljaWVudHM6
IG1hdHJpeENvZWZmaWNpZW50cworICAgICAgICB9OworICAgIH0KKyAgICBmdW5jdGlvbiB0ZXN0
RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCh0ZXN0RnVuY1N0cmluZywgZXhwZWN0
ZWQpCisgICAgeworICAgICAgICBsZXQgb2JzZXJ2ZWQgPSBldmFsKHRlc3RGdW5jU3RyaW5nKTsK
KyAgICAgICAgbGV0IHN1Y2Nlc3MgPSBpc0VxdWFsVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQo
b2JzZXJ2ZWQsIGV4cGVjdGVkKTsKKyAgICAgICAgcmVwb3J0RXhwZWN0ZWQoc3VjY2VzcywgdGVz
dEZ1bmNTdHJpbmcsICc9PT0nLCBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZFRvU3RyaW5nKGV4
cGVjdGVkKSwgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRUb1N0cmluZyhvYnNlcnZlZCkpOwor
ICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGV2ZW50ID0+IHsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygiYmFk
LXBhcmFtZXRlciIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIG51bWJlciBvZiByZXF1aXJlZCBwYXJhbWV0ZXJz
OicpCisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MSIpJywgbnVs
bCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVz
dCB2YWxpZCBkZWZhdWx0IG9wdGlvbmFsIHBhcmFtZXRlcnM6JykKKyAgICAgICAgdGVzdEV4cGVj
dGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IiknLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQo
J3ZwMDknLCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMCkpOworICAgICAgICBjb25zb2xlV3JpdGUo
JycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBudW1iZXIgb2Ygb3B0aW9u
YWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxIiknLCBudWxsKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4wOSIpJywgbnVsbCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYiKScsIG51bGwpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE2LjA5IiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4w
OS4wMS4wMCIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnVGVzdCB2YWxpZCByZXF1aXJlZCBhbmQgb3B0aW9uYWwgcGFyYW1ldGVyczon
KQorICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgnaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEi
KScsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwg
OSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29s
ZVdyaXRlKCdUZXN0IGludmFsaWQgY29kZWMgdHlwZScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDEwLjAwLjQxLjA4IiknLCBudWxs
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0
IGludmFsaWQgY29tYmluYXRpb24gb2YgbWF0cml4Q29lZmZpY2llbnRzIGFuZCBjaHJvbWFTdWJz
YW1wbGluZycpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAxLjAxLjAwLjAwIiknLCBudWxsKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIHBy
b2ZpbGVzOicpOworICAgICAgICBmb3IgKGxldCBwcm9maWxlIG9mIFswLCAxLCAyLCAzXSkKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4ke3Byb2ZpbGUudG9TdHJpbmcoKS5wYWRT
dGFydCgyLCAnMCcpfS40MS4wOCIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2
cDA5JywgcHJvZmlsZSwgNDEsIDgsIDEsIDEsIDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgcHJvZmlsZTonKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wNC40MS4wOCIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBsZXZlbHM6Jyk7CisgICAgICAgIGZvciAobGV0
IGxldmVsIG9mIFsxMCwgMTEsIDIwLCAyMSwgMzAsIDMxLCA0MCwgNDEsIDUwLCA1MSwgNTIsIDYw
LCA2MSwgNjJdKQorICAgICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25S
ZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLiR7bGV2ZWwu
dG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOCIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0
aW9uUmVjb3JkKCd2cDA5JywgMCwgbGV2ZWwsIDgsIDEsIDEsIDEsIDEsIDApKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgbGV2
ZWw6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDAuMTIuMDgiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgYml0RGVwdGhzOicpOworICAgICAg
ICBmb3IgKGxldCBiaXREZXB0aCBvZiBbOCwgMTAsIDEyXSkKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMC40MS4ke2JpdERlcHRoLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAn
KX0iKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAwOScsIDAsIDQxLCBiaXRE
ZXB0aCwgMSwgMSwgMSwgMSwgMCkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBiaXREZXB0aDonKTsKKyAgICAgICAgdGVzdEV4
cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOSIp
JywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnVGVzdCB2YWxpZCBjaHJvbWFTdWJzYW1wbGluZzonKTsKKyAgICAgICAgZm9yIChsZXQgY2hy
b21hU3Vic2FtcGxpbmcgb2YgWzAsIDEsIDIsIDNdKQorICAgICAgICAgICAgdGVzdEV4cGVjdGVk
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLiR7Y2hyb21hU3Vic2FtcGxpbmcudG9TdHJpbmcoKS5wYWRTdGFy
dCgyLCAnMCcpfS4wOS4xNi4wOS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3Jk
KCd2cDA5JywgMiwgMTAsIDEwLCBjaHJvbWFTdWJzYW1wbGluZywgOSwgMTYsIDksIDEpKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFs
aWQgY2hyb21hU3Vic2FtcGxpbmc6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDQuMDkuMTYuMDkuMDEiKScs
IG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgdmFsaWQgY29sb3JQcmltYXJpZXM6Jyk7CisgICAgICAgIGZvciAobGV0IGNvbG9yUHJp
bWFyaWVzIG9mIFsxLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAyMl0pCisgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuJHtjb2xvclByaW1hcmllcy50
b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjE2LjA5LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIGNvbG9yUHJpbWFyaWVzLCAxNiwg
OSwgMSkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgaW52YWxpZCBjb2xvclByaW1hcmllczonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wMi4xNi4w
OS4wMSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnVGVzdCB2YWxpZCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczonKTsKKyAgICAgICAg
Zm9yIChsZXQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3Mgb2YgWzEsIDIsIDQsIDUsIDYsIDcsIDgs
IDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVj
Q29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuJHt0cmFuc2ZlckNoYXJhY3RlcmlzdGljcy50b1N0cmluZygpLnBh
ZFN0YXJ0KDIsICcwJyl9LjA5LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQo
J3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLCA5LCAxKSk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBp
bnZhbGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjAz
LjA5LjAxIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCdUZXN0IHZhbGlkIG1hdHJpeENvZWZmaWNpZW50czonKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAzLjA5LjE2LjAwLjAxIilgLCBtYWtlVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDMsIDksIDE2LCAwLCAxKSk7
CisgICAgICAgIGZvciAobGV0IG1hdHJpeENvZWZmaWNpZW50cyBvZiBbMSwgNCwgNSwgNiwgNywg
OCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4ke21hdHJpeENvZWZmaWNpZW50cy50b1N0cmluZygpLnBh
ZFN0YXJ0KDIsICcwJyl9LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3Zw
MDknLCAyLCAxMCwgMTAsIDEsIDksIDE2LCBtYXRyaXhDb2VmZmljaWVudHMsIDEpKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQg
bWF0cml4Q29lZmZpY2llbnRzOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAzIiknLCBu
dWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdU
ZXN0IHZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAwIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxLCAwKSk7CisgICAgICAgIHRl
c3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wMS4wMSIpYCwgbWFrZVZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMSkp
OworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3Qg
aW52YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEu
MDIiKScsIG51bGwpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSwgeyBvbmNlOiB0cnVlIH0p
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="419589"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404250</attachid>
            <date>2020-07-14 10:29:55 -0700</date>
            <delta_ts>2020-07-14 11:14:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214270-20200714102955.patch</filename>
            <type>text/plain</type>
            <size>39827</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiOWYxMTA4NjAwY2MzMGZlMzIyNGU2
N2RiNTFhZjA4NTJhMWY4NGQuLjQyY2E5N2VjYWI0MmE0M2Q5ZWRjYTBlMWYzYTNkOTA0NjcwYWI3
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUg
Y29kZWMgc3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MDAwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHZhcmlhbnQgb2Yg
dG9JbnRlZ3JhbFR5cGU8PiB3aGljaCByZXR1cm5zIGFuIE9wdGlvbmFsLiBTaW5jZSBubyBleGlz
dGluZyBjYWxsZXJzIG9mIHRoZQorICAgICAgICBvcmlnaW5hbCB0b0ludGVncmFsVHlwZSBmYWls
IHRvIHBhc3MgaW4gdGhlIG9wdGlvbmFsIGJvb2wqIHBhcmFtZXRlciwgbWFrZSB0aGF0IHBhcmFt
ZXRlcgorICAgICAgICBub24tb3B0aW9uYWwsIGFzIGl0IGNhdXNlcyBhIGNvbmZsaWN0IHdpdGgg
dGhlIG5ldyBPcHRpb25hbC1yZXR1cm5pbmcgdmVyc2lvbi4KKworICAgICAgICAqIHd0Zi90ZXh0
L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaDoKKyAgICAgICAgKFdURjo6dG9JbnRlZ3JhbFR5
cGUpOgorCiAyMDIwLTA3LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJQcm9jZXNzIGhhbmdzIHdoZW4gYnJvd3NpbmcgR2l0
SHViCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNzMyZWJkNDc2Y2FhZjcwZTI0MDI5YjUyMjFhOTc3YTdiZWQzMjhj
OS4uYTYxMmExZmNkN2EyYWY0MzZmOWY5MDgxMWNmODliNWUwZjQwNThiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0
cmluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVz
dDogbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZFZQTGV2ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkQ29sb3JQcmlt
YXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFy
c2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDctMDIgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52
aWRlb1JhbmdlT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
VG9JbnRlZ2VyQ29udmVyc2lvbi5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVn
ZXJDb252ZXJzaW9uLmgKaW5kZXggNzY4OWM3ZWJjNWU5YmMyOGI2MDAzODk5NGRlODRjN2NhNTE5
Yjg3Yy4uN2UwMjQ0YjBlZjY3Y2VlZWU1YWUxYTYwZGJhNDEwNTM5N2E4ODliYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgaW5saW5lIGJvb2wgaXNDaGFyYWN0ZXJBbGxvd2VkSW5CYXNlKFVDaGFyIGMsIGlu
dCBiYXNlKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+Ci1pbmxpbmUgSW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IENo
YXJhY3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50
IGJhc2UgPSAxMCkKK2lubGluZSBJbnRlZ3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29uc3QgQ2hh
cmFjdGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2ssIGludCBiYXNlID0gMTAp
CiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbnRlZ3JhbFR5cGUgaW50ZWdyYWxNYXggPSBzdGQ6
Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46Om1heCgpOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc1NpZ25lZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8SW50ZWdyYWxUeXBlPjo6aXNf
c2lnbmVkOwpAQCAtMTIyLDEzICsxMjIsMzMgQEAgYnllOgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIFN0cmluZ09yU3RyaW5nVmlldz4KLWlubGluZSBJbnRl
Z3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29uc3QgU3RyaW5nT3JTdHJpbmdWaWV3JiBzdHJpbmdW
aWV3LCBib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTApCitpbmxpbmUgSW50ZWdyYWxU
eXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IFN0cmluZ09yU3RyaW5nVmlldyYgc3RyaW5nVmlldywg
Ym9vbCogb2ssIGludCBiYXNlID0gMTApCiB7CiAgICAgaWYgKHN0cmluZ1ZpZXcuaXM4Qml0KCkp
CiAgICAgICAgIHJldHVybiB0b0ludGVncmFsVHlwZTxJbnRlZ3JhbFR5cGUsIExDaGFyPihzdHJp
bmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCksIG9rLCBiYXNlKTsKICAg
ICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8SW50ZWdyYWxUeXBlLCBVQ2hhcj4oc3RyaW5nVmlldy5j
aGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSwgb2ssIGJhc2UpOwogfQogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Citpbmxp
bmUgT3B0aW9uYWw8SW50ZWdyYWxUeXBlPiB0b0ludGVncmFsVHlwZShjb25zdCBDaGFyYWN0ZXJU
eXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBpbnQgYmFzZSA9IDEwKQoreworICAgIGJvb2wgb2sg
PSBmYWxzZTsKKyAgICBJbnRlZ3JhbFR5cGUgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxJbnRlZ3Jh
bFR5cGU+KGRhdGEsIGxlbmd0aCwgJm9rLCBiYXNlKTsKKyAgICBpZiAoIW9rKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiB2YWx1ZTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBTdHJpbmdPclN0cmluZ1ZpZXc+CitpbmxpbmUg
T3B0aW9uYWw8SW50ZWdyYWxUeXBlPiB0b0ludGVncmFsVHlwZShjb25zdCBTdHJpbmdPclN0cmlu
Z1ZpZXcmIHN0cmluZ1ZpZXcsIGludCBiYXNlID0gMTApCit7CisgICAgYm9vbCBvayA9IGZhbHNl
OworICAgIEludGVncmFsVHlwZSB2YWx1ZSA9IHRvSW50ZWdyYWxUeXBlPEludGVncmFsVHlwZT4o
c3RyaW5nVmlldywgJm9rLCBiYXNlKTsKKyAgICBpZiAoIW9rKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiB2YWx1ZTsKK30KKwogfQogCiB1c2luZyBXVEY6OnRvSW50
ZWdyYWxUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxOGVlMDBhNDc3MWEwZTg2ZWU1MTQ4MGM3OGJi
MDM2NjU1ZmNjZDE1Li5iZjJiZjVlN2MxYTE3ZDNhYzY3NjhhMDUzYzkwNDQxZWNmMTViM2U2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTg5MSw2ICsxODkxLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvU3Vy
cm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1
bi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1ZQ
OVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjNDY5ZTA2ZWNhOTI4ZTE0MTMyMTQ2ZDIxNWE5OWY2OGVkMWY5M2Fk
Li4zYzU2MzFlNGJjODQxMzBlOWFiNWIyNTlhNzE5NWQyMjI0ZjFjMzdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA5Nyw2
ICsxNDA5Nyw4IEBACiAJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIyMTgxOEY1RUQwMEVF
NEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUJB
MjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlA5VXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUJCMjRCQ0U3QjYw
MDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlA5VXRpbGl0
aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3MjBCNDcyMjY4MkM3RTAw
MDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDcyMEI0OTIyNjgyQzdGMDAwNDdGREUgLyogSVNPRmFpclBsYXlTdHJlYW1p
bmdQc3NoQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDc4QTJFQzFGNzU2NDg2MDBERTM3MUIg
LyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzIwLDYgKzI1NzIyLDgg
QEAKIAkJCQkwNzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAg
Ki8sCiAJCQkJQkU5MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAq
LywKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJ
CUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKKwkJCQlDRDZG
RTVCQjI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRjVBNTdD
QTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIy
OUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQw
OTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2ZhNzE5
MzVkNWU2YTczZjNiNDdhZDI5ZTBiMWJmMGQ1ZjNlYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcApAQCAtMCwwICsx
LDE5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWUDlV
dGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgYm9vbCBpc1ZhbGlkVlBMZXZlbCh1aW50OF90IGxldmVsKQoreworICAg
IHN0YXRpYyBjb25zdCB1aW50MTZfdCB2YWxpZExldmVsc1tdID0geworICAgICAgICAxMCwKKyAg
ICAgICAgMTEsCisgICAgICAgIDIwLAorICAgICAgICAyMSwKKyAgICAgICAgMzAsCisgICAgICAg
IDMxLAorICAgICAgICA0MCwKKyAgICAgICAgNDEsCisgICAgICAgIDUwLAorICAgICAgICA1MSwK
KyAgICAgICAgNTIsCisgICAgICAgIDYwLAorICAgICAgICA2MSwKKyAgICAgICAgNjIsCisgICAg
fTsKKworICAgIEFTU0VSVChzdGQ6OmlzX3NvcnRlZChzdGQ6OmJlZ2luKHZhbGlkTGV2ZWxzKSwg
c3RkOjplbmQodmFsaWRMZXZlbHMpKSk7CisgICAgcmV0dXJuIHN0ZDo6YmluYXJ5X3NlYXJjaChz
dGQ6OmJlZ2luKHZhbGlkTGV2ZWxzKSwgc3RkOjplbmQodmFsaWRMZXZlbHMpLCBsZXZlbCk7Cit9
CisKK3N0YXRpYyBib29sIGlzVmFsaWRWUGNvbG9yUHJpbWFyaWVzKHVpbnQ4X3QgY29sb3JQcmlt
YXJhcnkpCit7CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHZhbGlkY29sb3JQcmltYXJpZXNb
XSA9IHsKKyAgICAgICAgMSwKKyAgICAgICAgNCwKKyAgICAgICAgNSwKKyAgICAgICAgNiwKKyAg
ICAgICAgNywKKyAgICAgICAgOCwKKyAgICAgICAgOSwKKyAgICAgICAgMTAsCisgICAgICAgIDEx
LAorICAgICAgICAxMiwKKyAgICAgICAgMjIsCisgICAgfTsKKworICAgIEFTU0VSVChzdGQ6Omlz
X3NvcnRlZChzdGQ6OmJlZ2luKHZhbGlkY29sb3JQcmltYXJpZXMpLCBzdGQ6OmVuZCh2YWxpZGNv
bG9yUHJpbWFyaWVzKSkpOworICAgIHJldHVybiBzdGQ6OmJpbmFyeV9zZWFyY2goc3RkOjpiZWdp
bih2YWxpZGNvbG9yUHJpbWFyaWVzKSwgc3RkOjplbmQodmFsaWRjb2xvclByaW1hcmllcyksIGNv
bG9yUHJpbWFyYXJ5KTsKK30KKworT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+
IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nVmlldyYgY29kZWNTdHJpbmcpCit7
CisgICAgLy8gVGhlIGZvcm1hdCBvZiB0aGUgJ3ZwMDknIGNvZGVjIHN0cmluZyBpcyBzcGVjaWZp
ZWQgaW4gdGhlIHdlYm0gR2l0SHViIHJlcG86CisgICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS93
ZWJtcHJvamVjdC92cDktZGFzaC9ibG9iL21hc3Rlci9WUENvZGVjSVNPTWVkaWFGaWxlRm9ybWF0
QmluZGluZy5tZCNjb2RlY3MtcGFyYW1ldGVyLXN0cmluZz4KKworICAgIC8vICJzYW1wbGUgZW50
cnkgNENDLCBwcm9maWxlLCBsZXZlbCwgYW5kIGJpdERlcHRoIGFyZSBhbGwgbWFuZGF0b3J5IGZp
ZWxkcy4gSWYgYW55IG9mIHRoZXNlIGZpZWxkcyBhcmUgZW1wdHksIG9yIG5vdAorICAgIC8vIHdp
dGhpbiB0aGVpciBhbGxvd2VkIHJhbmdlLCB0aGUgcHJvY2Vzc2luZyBkZXZpY2UgU0hBTEwgdHJl
YXQgaXQgYXMgYW4gZXJyb3IuIgorCisgICAgU3RyaW5nVmlldyBjb2RlY1ZpZXcoY29kZWNTdHJp
bmcpOworICAgIGF1dG8gY29kZWNTcGxpdCA9IGNvZGVjVmlldy5zcGxpdCgnLicpOworICAgIGF1
dG8gbmV4dEVsZW1lbnQgPSBjb2RlY1NwbGl0LmJlZ2luKCk7CisgICAgaWYgKG5leHRFbGVtZW50
ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCBjb25maWd1cmF0aW9uOworCisgICAgLy8gQ29k
ZWMgaWRlbnRpZmllcjogbGVnYWwgdmFsdWVzIGFyZSAndnAwOCcgb3IgJ3ZwMDknLgorICAgIGNv
bmZpZ3VyYXRpb24uY29kZWNOYW1lID0gKCpuZXh0RWxlbWVudCkudG9TdHJpbmcoKTsKKyAgICBp
ZiAoY29uZmlndXJhdGlvbi5jb2RlY05hbWUgIT0gInZwMDgiICYmIGNvbmZpZ3VyYXRpb24uY29k
ZWNOYW1lICE9ICJ2cDA5IikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlm
ICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAvLyBGaXJzdCBlbGVtZW50OiBwcm9maWxlLiBMZWdhbCB2YWx1ZXMg
YXJlIDAtMy4KKyAgICBhdXRvIHByb2ZpbGUgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4
dEVsZW1lbnQpOworICAgIGlmICghcHJvZmlsZSB8fCAqcHJvZmlsZSA+IDMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5wcm9maWxlID0gKnByb2ZpbGU7
CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2Vjb25kIGVsZW1lbnQ6IGxldmVsLiBMZWdh
bCB2YWx1ZXMgYXJlIGVudW1lcmF0ZWQgaW4gdmFsaWRWUExldmVscyBhYm92ZS4KKyAgICBhdXRv
IGxldmVsID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAo
IWxldmVsIHx8ICFpc1ZhbGlkVlBMZXZlbCgqbGV2ZWwpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24ubGV2ZWwgPSAqbGV2ZWw7CisKKyAgICBpZiAoKytu
ZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgLy8gVGhpcmQgZWxlbWVudDogYml0RGVwdGguIExlZ2FsIHZhbHVlcyBhcmUg
OCwgMTAsIGFuZCAxMi4KKyAgICBhdXRvIGJpdERlcHRoID0gdG9JbnRlZ3JhbFR5cGU8dWludDhf
dD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIWJpdERlcHRoIHx8ICgqYml0RGVwdGggIT0gOCAm
JiAqYml0RGVwdGggIT0gMTAgJiYgKmJpdERlcHRoICE9IDEyKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmJpdERlcHRoID0gKmJpdERlcHRoOworCisg
ICAgLy8gImNvbG9yUHJpbWFyaWVzLCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywgbWF0cml4Q29l
ZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcsIGFuZCBjaHJvbWFTdWJzYW1wbGluZyBhcmUg
T1BUSU9OQUwsCisgICAgLy8gbXV0dWFsbHkgaW5jbHVzaXZlIChhbGwgb3Igbm9uZSkgZmllbGRz
LiBJZiBub3Qgc3BlY2lmaWVkIHRoZW4gdGhlIHByb2Nlc3NpbmcgZGV2aWNlIE1VU1QgdXNlIHRo
ZSB2YWx1ZXMgbGlzdGVkIGluIHRoZQorICAgIC8vIHRhYmxlIGJlbG93IGFzIGRlZmF1bHRzIHdo
ZW4gZGVjaWRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIGRlY29kZSBhbmQgcG90ZW50aWFs
bHkgcmVuZGVyIHRoZSB2aWRlby4iCisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1Nw
bGl0LmVuZCgpKSB7CisgICAgICAgIGNvbmZpZ3VyYXRpb24uY2hyb21hU3Vic2FtcGxpbmcgPSAx
OworICAgICAgICBjb25maWd1cmF0aW9uLmNvbG9yUHJpbWFyaWVzID0gMTsKKyAgICAgICAgY29u
ZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9IDE7CisgICAgICAgIGNvbmZpZ3Vy
YXRpb24ubWF0cml4Q29lZmZpY2llbnRzID0gMTsKKyAgICAgICAgY29uZmlndXJhdGlvbi52aWRl
b0Z1bGxSYW5nZUZsYWcgPSAwOworICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKKyAgICB9
CisKKyAgICAvLyBGb3VydGggZWxlbWVudDogY2hyb21hU3Vic2FtcGxpbmcuIExlZ2FsIHZhbHVl
cyBhcmUgMC0zLgorICAgIGF1dG8gY2hyb21hU3Vic2FtcGxpbmcgPSB0b0ludGVncmFsVHlwZTx1
aW50OF90PigqbmV4dEVsZW1lbnQpOworICAgIGlmICghY2hyb21hU3Vic2FtcGxpbmcgfHwgKmNo
cm9tYVN1YnNhbXBsaW5nID4gMykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBj
b25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nID0gKmNocm9tYVN1YnNhbXBsaW5nOworCisg
ICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIC8vIEZpZnRoIGVsZW1lbnQ6IGNvbG9yUHJpbWFyaWVzLiBM
ZWdhbCB2YWx1ZXMgYXJlIGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEtODoyMDE2LCBzdXBlcmNl
ZGVkCisgICAgLy8gYnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgYXV0byBjb2xvclByaW1h
cmllcyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCFj
b2xvclByaW1hcmllcyB8fCAhaXNWYWxpZFZQY29sb3JQcmltYXJpZXMoKmNvbG9yUHJpbWFyaWVz
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmNvbG9y
UHJpbWFyaWVzID0gKmNvbG9yUHJpbWFyaWVzOworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0g
Y29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8v
IFNpeHRoIGVsZW1lbnQ6IHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLiBMZWdhbCB2YWx1ZXMgYXJl
IGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEtODoyMDE2LCBzdXBlcmNlZGVkCisgICAgLy8gYnkg
SVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgYXV0byB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9
IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCF0cmFuc2Zl
ckNoYXJhY3RlcmlzdGljcyB8fCAoISp0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyB8fCAqdHJhbnNm
ZXJDaGFyYWN0ZXJpc3RpY3MgPT0gMiB8fCAqdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPT0gMyB8
fCAqdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPiAxOCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9ICp0cmFu
c2ZlckNoYXJhY3RlcmlzdGljczsKKworICAgIGlmICgrK25leHRFbGVtZW50ID09IGNvZGVjU3Bs
aXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAvLyBTZXZlbnRo
IGVsZW1lbnQ6IG1hdHJpeENvZWZmaWNpZW50cy4gTGVnYWwgdmFsdWVzIGFyZSBkZWZpbmVkIGJ5
ICBJU08vSUVDIDIzMDAxLTg6MjAxNiwgc3VwZXJjZWRlZAorICAgIC8vIGJ5IElTTy9JRUMgMjMw
OTEtMjoyMDE5LgorICAgIGF1dG8gbWF0cml4Q29lZmZpY2llbnRzID0gdG9JbnRlZ3JhbFR5cGU8
dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIW1hdHJpeENvZWZmaWNpZW50cyB8fCAo
Km1hdHJpeENvZWZmaWNpZW50cyA9PSAyIHx8ICptYXRyaXhDb2VmZmljaWVudHMgPT0gMyB8fCAq
bWF0cml4Q29lZmZpY2llbnRzID4gMTQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIGNvbmZpZ3VyYXRpb24ubWF0cml4Q29lZmZpY2llbnRzID0gKm1hdHJpeENvZWZmaWNpZW50
czsKKworICAgIC8vICJJZiBtYXRyaXhDb2VmZmljaWVudHMgaXMgMCAoUkdCKSwgdGhlbiBjaHJv
bWEgc3Vic2FtcGxpbmcgTVVTVCBiZSAzICg0OjQ6NCkuIgorICAgIGlmICghY29uZmlndXJhdGlv
bi5tYXRyaXhDb2VmZmljaWVudHMgJiYgY29uZmlndXJhdGlvbi5jaHJvbWFTdWJzYW1wbGluZyAh
PSAzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCsrbmV4dEVsZW1l
bnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIC8vIEVpZ2h0aCBlbGVtZW50OiB2aWRlb0Z1bGxSYW5nZUZsYWcuIExlZ2FsIHZhbHVlcyBh
cmUgMCBhbmQgMS4KKyAgICBhdXRvIHZpZGVvRnVsbFJhbmdlRmxhZyA9IHRvSW50ZWdyYWxUeXBl
PHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7CisgICAgaWYgKCF2aWRlb0Z1bGxSYW5nZUZsYWcgfHwg
KnZpZGVvRnVsbFJhbmdlRmxhZyA+IDEpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgY29uZmlndXJhdGlvbi52aWRlb0Z1bGxSYW5nZUZsYWcgPSAqdmlkZW9GdWxsUmFuZ2VGbGFn
OworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgIT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBjb25maWd1cmF0aW9uOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFiZTVmY2Q5MDczZjQ2ZjY2MjBlYWJmZThjNDU5MzFhMzA5NzY4NjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRp
ZXMuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZQQ29kZWNDb25maWd1cmF0aW9u
UmVjb3JkIHsKKyAgICBTdHJpbmcgY29kZWNOYW1lOworICAgIHVpbnQ4X3QgcHJvZmlsZSB7IDAg
fTsKKyAgICB1aW50OF90IGxldmVsIHsgMCB9OworICAgIHVpbnQ4X3QgYml0RGVwdGggeyAwIH07
CisgICAgdWludDhfdCBjaHJvbWFTdWJzYW1wbGluZyB7IDAgfTsKKyAgICB1aW50OF90IHZpZGVv
RnVsbFJhbmdlRmxhZyB7IDAgfTsKKyAgICB1aW50OF90IGNvbG9yUHJpbWFyaWVzIHsgMCB9Owor
ICAgIHVpbnQ4X3QgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgeyAwIH07CisgICAgdWludDhfdCBt
YXRyaXhDb2VmZmljaWVudHMgeyAwIH07Cit9OworCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZD4gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb25zdCBT
dHJpbmdWaWV3JiBjb2RlY1N0cmluZyk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCBlMmU1N2VjYmVmNDVkM2MyNDYzZjk4NjM3MzcxMzMyZmFiZjQ1Mjk3Li5jZTk2
YmE3NjdlMGMwNTc1ODBmZTEwNWNkMmIzMzdlN2ExNTQyYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC01NjAwLDYgKzU2MDAsMTEgQEAgT3B0aW9uYWw8RG9WaVBhcmFt
ZXRlclNldD4gSW50ZXJuYWxzOjpwYXJzZURvVmlDb2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5n
JiBjb2QKICAgICByZXR1cm4gV2ViQ29yZTo6cGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKGNvZGVj
U3RyaW5nKTsKIH0KIAorT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IEludGVy
bmFsczo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5nKQor
eworICAgIHJldHVybiBXZWJDb3JlOjpwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNvZGVjU3RyaW5n
KTsKK30KKwogYXV0byBJbnRlcm5hbHM6OmdldENvb2tpZXMoKSBjb25zdCAtPiBWZWN0b3I8Q29v
a2llRGF0YT4KIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggODVjZTY5MjQyZjY0MzJjZjY3ZDgxOTk4MWZk
YTk5OTM1MWE1MzEwYi4uYmVjNTljYmNjMDE4ZmQ2YjE5YmVhMjNlNzk5MGZjYWRhMzUyZTE2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNp
bmNsdWRlICJUZXh0SW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiVlA5VXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAKQEAgLTkxNSw2ICs5MTYsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRG9WaVBhcmFt
ZXRlclNldCA9IFdlYkNvcmU6OkRvVmlQYXJhbWV0ZXJTZXQ7CiAgICAgT3B0aW9uYWw8RG9WaVBh
cmFtZXRlclNldD4gcGFyc2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kZWNT
dHJpbmcpOwogCisgICAgdXNpbmcgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgPSBXZWJDb3Jl
OjpWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZDsKKyAgICBPcHRpb25hbDxWUENvZGVjQ29uZmln
dXJhdGlvblJlY29yZD4gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVj
U3RyaW5nKTsKKwogICAgIHN0cnVjdCBDb29raWVEYXRhIHsKICAgICAgICAgU3RyaW5nIG5hbWU7
CiAgICAgICAgIFN0cmluZyB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCBlZjBiMGRlZTRhMjNlNWMyZDVkMTZhYjA0MGFjZWVmMTA5NmUxZTdkLi44OGI0NjFlNjEz
ZTU4MjIyNjgzZDlhYWEyMmI0NmEzZGJmMmVlNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0xODksNiArMTg5LDIxIEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7
CiAgICAgdW5zaWduZWQgc2hvcnQgYml0c3RyZWFtTGV2ZWxJRDsKIH07CiAKK1sKKyAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKKyAgICBKU0dlbmVyYXRlVG9KU09i
amVjdCwKK10gZGljdGlvbmFyeSBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCB7CisgICAgRE9N
U3RyaW5nIGNvZGVjTmFtZTsKKyAgICBvY3RldCBwcm9maWxlOworICAgIG9jdGV0IGxldmVsOwor
ICAgIG9jdGV0IGJpdERlcHRoOworICAgIG9jdGV0IGNocm9tYVN1YnNhbXBsaW5nOworICAgIG9j
dGV0IHZpZGVvRnVsbFJhbmdlRmxhZzsKKyAgICBvY3RldCBjb2xvclByaW1hcmllczsKKyAgICBv
Y3RldCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczsKKyAgICBvY3RldCBtYXRyaXhDb2VmZmljaWVu
dHM7Cit9OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQs
CiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCkBAIC04ODEsNiArODk2LDcgQEAgZW51bSBDb250
ZW50U2l6ZUNhdGVnb3J5IHsKIAogICAgIEhFVkNQYXJhbWV0ZXJTZXQ/IHBhcnNlSEVWQ0NvZGVj
UGFyYW1ldGVycyhET01TdHJpbmcgY29kZWNQYXJhbWV0ZXJzKTsKICAgICBEb1ZpUGFyYW1ldGVy
U2V0PyBwYXJzZURvVmlDb2RlY1BhcmFtZXRlcnMoRE9NU3RyaW5nIGNvZGVjUGFyYW1ldGVycyk7
CisgICAgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ/IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
RE9NU3RyaW5nIGNvZGVjUGFyYW1ldGVycyk7CiAKICAgICBzZXF1ZW5jZTxDb29raWVEYXRhPiBn
ZXRDb29raWVzKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZTQ3NGMzZTBmOTgwNDRjYmJlZGY5ZmExN2ZlODY5MzI4
YjEzNzc4Li4yYjk3Y2RhZDY3YzNhM2QyOWZmOTI0OTFmNGU1ZmQzMDcwZDljZGJlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMgc3Ry
aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1l
ZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBn
YXJkZW5pbmc7ICJyZWJhc2VsaW5lIiB0aGUgdmlkZW8tb3JpZW50YXRpb24tY2FudmFzLmh0bWwg
dGVzdCB0byBjZW50ZXIgdGhlIGV4cGVjdGVkIHJlZCBjb2xvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTgz
Y2E1MWU0NGQ2ZjQ4NDU5OThlYjlmYjQxOWE5OGI3Mjg5NTRmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMzAgQEAKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
YmFkLXBhcmFtZXRlciIpID09ICdudWxsJykgT0sKKworVGVzdCBpbnZhbGlkIG51bWJlciBvZiBy
ZXF1aXJlZCBwYXJhbWV0ZXJzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5IikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxIikgPT0gJ251bGwnKSBPSwor
CitUZXN0IHZhbGlkIGRlZmF1bHQgb3B0aW9uYWwgcGFyYW1ldGVyczoKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5
LCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitUZXN0IGludmFsaWQgbnVtYmVyIG9m
IG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkiKSA9PSAn
bnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYiKSA9PSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkiKSA9PSAn
bnVsbCcpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEuMDAiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFs
aWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworCitUZXN0IGludmFs
aWQgY29kZWMgdHlwZQorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDEwLjAwLjQxLjA4IikgPT0gJ251bGwnKSBPSworCitUZXN0IGludmFsaWQgY29tYmluYXRp
b24gb2YgbWF0cml4Q29lZmZpY2llbnRzIGFuZCBjaHJvbWFTdWJzYW1wbGluZworRVhQRUNURUQg
KGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAxLjAx
LjAwLjAwIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIHByb2ZpbGVzOgorRVhQRUNURUQg
KGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09ICd7
IHZwMDksIDAsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDEuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMSwg
NDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi40MS4wOCIpID09PSAneyB2cDA5LCAyLCA0MSwgOCwgMSwg
MSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAzLjQxLjA4IikgPT09ICd7IHZwMDksIDMsIDQxLCA4LCAxLCAxLCAxLCAxLCAw
fScpIE9LCisKK1Rlc3QgaW52YWxpZCBwcm9maWxlOgorRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjA0LjQxLjA4IikgPT0gJ251bGwnKSBPSworCitUZXN0
IHZhbGlkIGxldmVsczoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC4xMC4wOCIpID09PSAneyB2cDA5LCAwLCAxMCwgOCwgMSwgMSwgMSwgMSwgMH0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAw
LjExLjA4IikgPT09ICd7IHZwMDksIDAsIDExLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMjAuMDgiKSA9
PT0gJ3sgdnAwOSwgMCwgMjAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4yMS4wOCIpID09PSAneyB2cDA5
LCAwLCAyMSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjMwLjA4IikgPT09ICd7IHZwMDksIDAsIDMwLCA4
LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDAuMzEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMzEsIDgsIDEsIDEsIDEs
IDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMC40MC4wOCIpID09PSAneyB2cDA5LCAwLCA0MCwgOCwgMSwgMSwgMSwgMSwgMH0nKSBP
SworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQx
LjA4IikgPT09ICd7IHZwMDksIDAsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNTAuMDgiKSA9PT0g
J3sgdnAwOSwgMCwgNTAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC41MS4wOCIpID09PSAneyB2cDA5LCAw
LCA1MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjUyLjA4IikgPT09ICd7IHZwMDksIDAsIDUyLCA4LCAx
LCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDAuNjAuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNjAsIDgsIDEsIDEsIDEsIDEs
IDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMC42MS4wOCIpID09PSAneyB2cDA5LCAwLCA2MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjYyLjA4
IikgPT09ICd7IHZwMDksIDAsIDYyLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCisKK1Rlc3QgaW52
YWxpZCBsZXZlbDoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygi
dnAwOS4wMC4xMi4wOCIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBiaXREZXB0aHM6CitF
WFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMDgi
KSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4xMCIpID09PSAneyB2
cDA5LCAwLCA0MSwgMTAsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4xMiIpID09PSAneyB2cDA5LCAwLCA0
MSwgMTIsIDEsIDEsIDEsIDEsIDB9JykgT0sKKworVGVzdCBpbnZhbGlkIGJpdERlcHRoOgorRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA5Iikg
PT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGNocm9tYVN1YnNhbXBsaW5nOgorRVhQRUNURUQg
KGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAwLjA5LjE2
LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMCwgOSwgMTYsIDksIDF9JykgT0sKK0VY
UEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4w
MS4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA5LCAxfScp
IE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDIuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAyLCA5LCAxNiwg
OSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2
cDA5LjAyLjEwLjEwLjAzLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMywg
OSwgMTYsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIGNocm9tYVN1YnNhbXBsaW5nOgorRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjA0
LjA5LjE2LjA5LjAxIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIGNvbG9yUHJpbWFyaWVz
OgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEw
LjEwLjAxLjAxLjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMSwgMTYsIDks
IDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMi4xMC4xMC4wMS4wNC4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDQs
IDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDUuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEw
LCAxLCA1LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA2LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIs
IDEwLCAxMCwgMSwgNiwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wNy4xNi4wOS4wMSIpID09PSAneyB2
cDA5LCAyLCAxMCwgMTAsIDEsIDcsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDguMTYuMDkuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA4LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDF9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4x
MC4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDEwLCAxNiwgOSwgMX0nKSBP
SworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEw
LjEwLjAxLjExLjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMTEsIDE2LCA5
LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDIuMTAuMTAuMDEuMTIuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCAx
MiwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMi4xMC4xMC4wMS4yMi4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwg
MTAsIDEsIDIyLCAxNiwgOSwgMX0nKSBPSworCitUZXN0IGludmFsaWQgY29sb3JQcmltYXJpZXM6
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDIuMTYuMDkuMDEiKSA9PSAnbnVsbCcpIE9LCisKK1Rlc3QgdmFsaWQgdHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3M6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDEuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEw
LCAxLCA5LCAxLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDQuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwg
MTAsIDEwLCAxLCA5LCA0LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDUuMDkuMDEiKSA9PT0gJ3sgdnAw
OSwgMiwgMTAsIDEwLCAxLCA5LCA1LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBh
cnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDYuMDkuMDEiKSA9PT0g
J3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDcuMDkuMDEi
KSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA3LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMDgu
MDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA4LCA5LCAxfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEu
MDkuMDkuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCA5LCA5LCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTAuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMCwgOSwg
MX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjExLjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwg
MTEsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMi4xMC4xMC4wMS4wOS4xMi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAs
IDEsIDksIDEyLCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTMuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwg
MTAsIDEwLCAxLCA5LCAxMywgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE0LjA5LjAxIikgPT09ICd7IHZw
MDksIDIsIDEwLCAxMCwgMSwgOSwgMTQsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHRyYW5z
ZmVyQ2hhcmFjdGVyaXN0aWNzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjAzLjA5LjAxIikgPT0gJ251bGwnKSBPSworCitU
ZXN0IHZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMy4wOS4xNi4wMC4wMSIpID09PSAneyB2
cDA5LCAyLCAxMCwgMTAsIDMsIDksIDE2LCAwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMX0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA0
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDQsIDF9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4w
OS4xNi4wNS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA1LCAxfScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTYuMDYuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgNiwg
MX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE2LjA3LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwg
MTYsIDcsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOC4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAs
IDEsIDksIDE2LCA4LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwg
MTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjEwLjAxIikgPT09ICd7IHZw
MDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEwLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTEuMDEiKSA9
PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMTEsIDF9JykgT0sKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4x
Mi4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxMiwgMX0nKSBPSworRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAx
LjA5LjE2LjEzLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEzLCAxfScp
IE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDkuMTYuMTQuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwg
MTQsIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIG1hdHJpeENvZWZmaWNpZW50czoKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4x
Ni4wOS4wMyIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDEuMDkuMTYuMDEuMDAiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwg
MH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwg
MTYsIDEsIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzoKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4w
OS4xNi4wMS4wMiIpID09ICdudWxsJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZwLWNvZGVjLXBhcmFtZXRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTdiZjY2MmU0ZDJhOTVk
YTgzZDEzNzBjZTQ4YzA0ZGExMjRhZTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmRUb1N0cmluZyhzZXQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVy
biBgeyAke3NldC5jb2RlY05hbWV9LCAke3NldC5wcm9maWxlfSwgJHtzZXQubGV2ZWx9LCAke3Nl
dC5iaXREZXB0aH0sICR7c2V0LmNocm9tYVN1YnNhbXBsaW5nfSwgJHtzZXQuY29sb3JQcmltYXJp
ZXN9LCAke3NldC50cmFuc2ZlckNoYXJhY3RlcmlzdGljc30sICR7c2V0Lm1hdHJpeENvZWZmaWNp
ZW50c30sICR7c2V0LnZpZGVvRnVsbFJhbmdlRmxhZ319YDsKKyAgICAgICAgfSBjYXRjaChlKSB7
CisgICAgICAgICAgICByZXR1cm4gYHsgJHtzZXR9IH1gOworICAgICAgICB9CisgICAgfQorICAg
IGZ1bmN0aW9uIGlzRXF1YWxWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChzZXRBLCBzZXRCKSB7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc2V0QS5wcm9maWxlID09IHNldEIu
cHJvZmlsZSAmJgorICAgICAgICAgICAgICAgIHNldEEubGV2ZWwgPT0gc2V0Qi5sZXZlbCAmJgor
ICAgICAgICAgICAgICAgIHNldEEuYml0RGVwdGggPT0gc2V0Qi5iaXREZXB0aCAmJgorICAgICAg
ICAgICAgICAgIHNldEEuY2hyb21hU3Vic2FtcGxpbmcgPT0gc2V0Qi5jaHJvbWFTdWJzYW1wbGlu
ZyAmJgorICAgICAgICAgICAgICAgIHNldEEudmlkZW9GdWxsUmFuZ2VGbGFnID09IHNldEIudmlk
ZW9GdWxsUmFuZ2VGbGFnICYmCisgICAgICAgICAgICAgICAgc2V0QS5jb2xvclByaW1hcmllcyA9
PSBzZXRCLmNvbG9yUHJpbWFyaWVzICYmCisgICAgICAgICAgICAgICAgc2V0QS50cmFuc2ZlckNo
YXJhY3RlcmlzdGljcyA9PSBzZXRCLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICYmCisgICAgICAg
ICAgICAgICAgc2V0QS5tYXRyaXhDb2VmZmljaWVudHMgPT0gc2V0Qi5tYXRyaXhDb2VmZmljaWVu
dHM7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZChjb2RlY05hbWUsIHByb2ZpbGUsIGxldmVsLCBiaXREZXB0aCwgY2hyb21hU3Vic2FtcGxpbmcs
IGNvbG9yUHJpbWFyaWVzLCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywgbWF0cml4Q29lZmZpY2ll
bnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgY29kZWNOYW1lOiBjb2RlY05hbWUsCisgICAgICAgICAgICBwcm9maWxlOiBwcm9maWxl
LAorICAgICAgICAgICAgbGV2ZWw6IGxldmVsLAorICAgICAgICAgICAgYml0RGVwdGg6IGJpdERl
cHRoLAorICAgICAgICAgICAgY2hyb21hU3Vic2FtcGxpbmc6IGNocm9tYVN1YnNhbXBsaW5nLAor
ICAgICAgICAgICAgdmlkZW9GdWxsUmFuZ2VGbGFnOiB2aWRlb0Z1bGxSYW5nZUZsYWcsCisgICAg
ICAgICAgICBjb2xvclByaW1hcmllczogY29sb3JQcmltYXJpZXMsCisgICAgICAgICAgICB0cmFu
c2ZlckNoYXJhY3RlcmlzdGljczogdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MsCisgICAgICAgICAg
ICBtYXRyaXhDb2VmZmljaWVudHM6IG1hdHJpeENvZWZmaWNpZW50cworICAgICAgICB9OworICAg
IH0KKyAgICBmdW5jdGlvbiB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCh0
ZXN0RnVuY1N0cmluZywgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBsZXQgb2JzZXJ2ZWQgPSBl
dmFsKHRlc3RGdW5jU3RyaW5nKTsKKyAgICAgICAgbGV0IHN1Y2Nlc3MgPSBpc0VxdWFsVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQob2JzZXJ2ZWQsIGV4cGVjdGVkKTsKKyAgICAgICAgcmVwb3J0
RXhwZWN0ZWQoc3VjY2VzcywgdGVzdEZ1bmNTdHJpbmcsICc9PT0nLCBWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZFRvU3RyaW5nKGV4cGVjdGVkKSwgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRU
b1N0cmluZyhvYnNlcnZlZCkpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGV2ZW50ID0+IHsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygiYmFkLXBhcmFtZXRlciIpJywgbnVsbCk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIG51bWJlciBv
ZiByZXF1aXJlZCBwYXJhbWV0ZXJzOicpCisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwIiknLCBudWxs
KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMC40MSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBkZWZhdWx0IG9wdGlvbmFsIHBhcmFtZXRlcnM6
JykKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ2ludGVy
bmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IiknLCBtYWtlVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAwLCA0MSwgOCwgMSwgMSwgMSwgMSwgMCkpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52
YWxpZCBudW1iZXIgb2Ygb3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxIikn
LCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOSIpJywgbnVsbCk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEu
MDkuMTYiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5IiknLCBudWxsKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMS4wMCIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVX
cml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCByZXF1aXJlZCBhbmQg
b3B0aW9uYWwgcGFyYW1ldGVyczonKQorICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmln
dXJhdGlvblJlY29yZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDkuMTYuMDkuMDEiKScsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgn
dnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29kZWMgdHlwZScpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2
cDEwLjAwLjQxLjA4IiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgY29tYmluYXRpb24gb2YgbWF0cml4Q29lZmZp
Y2llbnRzIGFuZCBjaHJvbWFTdWJzYW1wbGluZycpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2lu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4LjAxLjAxLjAxLjAw
LjAwIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29s
ZVdyaXRlKCdUZXN0IHZhbGlkIHByb2ZpbGVzOicpOworICAgICAgICBmb3IgKGxldCBwcm9maWxl
IG9mIFswLCAxLCAyLCAzXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1
cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4ke3By
b2ZpbGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS40MS4wOCIpYCwgbWFrZVZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgcHJvZmlsZSwgNDEsIDgsIDEsIDEsIDEsIDEsIDAp
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0
IGludmFsaWQgcHJvZmlsZTonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFy
c2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wNC40MS4wOCIpJywgbnVsbCk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBsZXZlbHM6
Jyk7CisgICAgICAgIGZvciAobGV0IGxldmVsIG9mIFsxMCwgMTEsIDIwLCAyMSwgMzAsIDMxLCA0
MCwgNDEsIDUwLCA1MSwgNTIsIDYwLCA2MSwgNjJdKQorICAgICAgICAgICAgdGVzdEV4cGVjdGVk
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAwLiR7bGV2ZWwudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOCIpYCwg
bWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMCwgbGV2ZWwsIDgsIDEsIDEs
IDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCdUZXN0IGludmFsaWQgbGV2ZWw6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJu
YWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTIuMDgiKScsIG51bGwpOworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQg
Yml0RGVwdGhzOicpOworICAgICAgICBmb3IgKGxldCBiaXREZXB0aCBvZiBbOCwgMTAsIDEyXSkK
KyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4ke2JpdERlcHRoLnRvU3Ry
aW5nKCkucGFkU3RhcnQoMiwgJzAnKX0iKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZCgndnAwOScsIDAsIDQxLCBiaXREZXB0aCwgMSwgMSwgMSwgMSwgMCkpOworICAgICAgICBjb25z
b2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBiaXREZXB0
aDonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC40MS4wOSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBjaHJvbWFTdWJzYW1wbGluZzonKTsK
KyAgICAgICAgZm9yIChsZXQgY2hyb21hU3Vic2FtcGxpbmcgb2YgWzAsIDEsIDIsIDNdKQorICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLiR7Y2hyb21hU3Vic2FtcGxp
bmcudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4wOS4xNi4wOS4wMSIpYCwgbWFrZVZQQ29k
ZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCBjaHJvbWFTdWJzYW1wbGlu
ZywgOSwgMTYsIDksIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCdUZXN0IGludmFsaWQgY2hyb21hU3Vic2FtcGxpbmc6Jyk7CisgICAgICAgIHRl
c3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAu
MTAuMDQuMDkuMTYuMDkuMDEiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgY29sb3JQcmltYXJpZXM6Jyk7CisgICAg
ICAgIGZvciAobGV0IGNvbG9yUHJpbWFyaWVzIG9mIFsxLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwg
MTEsIDEyLCAyMl0pCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuJHtjb2xvclByaW1hcmllcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjE2LjA5LjAx
IilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEs
IGNvbG9yUHJpbWFyaWVzLCAxNiwgOSwgMSkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBjb2xvclByaW1hcmllczonKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMi4xMC4xMC4wMS4wMi4xNi4wOS4wMSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCB0cmFuc2ZlckNoYXJhY3Rl
cmlzdGljczonKTsKKyAgICAgICAgZm9yIChsZXQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3Mgb2Yg
WzEsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0pCisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuJHt0cmFuc2ZlckNoYXJhY3Rlcmlz
dGljcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjA5LjAxIilgLCBtYWtlVlBDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIHRyYW5zZmVyQ2hhcmFj
dGVyaXN0aWNzLCA5LCAxKSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOicpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5
LjAyLjEwLjEwLjAxLjA5LjAzLjA5LjAxIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIG1hdHJpeENvZWZmaWNpZW50
czonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAzLjA5LjE2LjAw
LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAs
IDMsIDksIDE2LCAwLCAxKSk7CisgICAgICAgIGZvciAobGV0IG1hdHJpeENvZWZmaWNpZW50cyBv
ZiBbMSwgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XSkKKyAgICAgICAgICAg
IHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4ke21hdHJpeENvZWZmaWNp
ZW50cy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LjAxIilgLCBtYWtlVlBDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIDE2LCBtYXRyaXhDb2VmZmlj
aWVudHMsIDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCdUZXN0IGludmFsaWQgbWF0cml4Q29lZmZpY2llbnRzOicpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAx
LjA5LjE2LjA5LjAzIiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIHZpZGVvRnVsbFJhbmdlRmxhZzonKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAwIilgLCBtYWtl
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDksIDE2LCAx
LCAwKSk7CisgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4w
MS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEw
LCAxLCA5LCAxNiwgMSwgMSkpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBj
b25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6Jyk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
MTAuMTAuMDEuMDkuMTYuMDEuMDIiKScsIG51bGwpOworICAgICAgICBlbmRUZXN0KCk7CisgICAg
fSwgeyBvbmNlOiB0cnVlIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404254</attachid>
            <date>2020-07-14 11:14:24 -0700</date>
            <delta_ts>2020-07-14 12:18:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214270-20200714111423.patch</filename>
            <type>text/plain</type>
            <size>39519</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiOWYxMTA4NjAwY2MzMGZlMzIyNGU2
N2RiNTFhZjA4NTJhMWY4NGQuLjQyY2E5N2VjYWI0MmE0M2Q5ZWRjYTBlMWYzYTNkOTA0NjcwYWI3
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUg
Y29kZWMgc3RyaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDI3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MDAwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHZhcmlhbnQgb2Yg
dG9JbnRlZ3JhbFR5cGU8PiB3aGljaCByZXR1cm5zIGFuIE9wdGlvbmFsLiBTaW5jZSBubyBleGlz
dGluZyBjYWxsZXJzIG9mIHRoZQorICAgICAgICBvcmlnaW5hbCB0b0ludGVncmFsVHlwZSBmYWls
IHRvIHBhc3MgaW4gdGhlIG9wdGlvbmFsIGJvb2wqIHBhcmFtZXRlciwgbWFrZSB0aGF0IHBhcmFt
ZXRlcgorICAgICAgICBub24tb3B0aW9uYWwsIGFzIGl0IGNhdXNlcyBhIGNvbmZsaWN0IHdpdGgg
dGhlIG5ldyBPcHRpb25hbC1yZXR1cm5pbmcgdmVyc2lvbi4KKworICAgICAgICAqIHd0Zi90ZXh0
L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaDoKKyAgICAgICAgKFdURjo6dG9JbnRlZ3JhbFR5
cGUpOgorCiAyMDIwLTA3LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJQcm9jZXNzIGhhbmdzIHdoZW4gYnJvd3NpbmcgR2l0
SHViCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNzMyZWJkNDc2Y2FhZjcwZTI0MDI5YjUyMjFhOTc3YTdiZWQzMjhj
OS4uYTYxMmExZmNkN2EyYWY0MzZmOWY5MDgxMWNmODliNWUwZjQwNThiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0
cmluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVz
dDogbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVycy5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZFZQTGV2ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkQ29sb3JQcmlt
YXJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGFy
c2VWUENvZGVjUGFyYW1ldGVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDctMDIgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZG9wdCBBVlBsYXllci52
aWRlb1JhbmdlT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
VG9JbnRlZ2VyQ29udmVyc2lvbi5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVn
ZXJDb252ZXJzaW9uLmgKaW5kZXggNzY4OWM3ZWJjNWU5YmMyOGI2MDAzODk5NGRlODRjN2NhNTE5
Yjg3Yy4uN2UwMjQ0YjBlZjY3Y2VlZWU1YWUxYTYwZGJhNDEwNTM5N2E4ODliYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgaW5saW5lIGJvb2wgaXNDaGFyYWN0ZXJBbGxvd2VkSW5CYXNlKFVDaGFyIGMsIGlu
dCBiYXNlKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+Ci1pbmxpbmUgSW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IENo
YXJhY3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50
IGJhc2UgPSAxMCkKK2lubGluZSBJbnRlZ3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29uc3QgQ2hh
cmFjdGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2ssIGludCBiYXNlID0gMTAp
CiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbnRlZ3JhbFR5cGUgaW50ZWdyYWxNYXggPSBzdGQ6
Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46Om1heCgpOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc1NpZ25lZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8SW50ZWdyYWxUeXBlPjo6aXNf
c2lnbmVkOwpAQCAtMTIyLDEzICsxMjIsMzMgQEAgYnllOgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIFN0cmluZ09yU3RyaW5nVmlldz4KLWlubGluZSBJbnRl
Z3JhbFR5cGUgdG9JbnRlZ3JhbFR5cGUoY29uc3QgU3RyaW5nT3JTdHJpbmdWaWV3JiBzdHJpbmdW
aWV3LCBib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTApCitpbmxpbmUgSW50ZWdyYWxU
eXBlIHRvSW50ZWdyYWxUeXBlKGNvbnN0IFN0cmluZ09yU3RyaW5nVmlldyYgc3RyaW5nVmlldywg
Ym9vbCogb2ssIGludCBiYXNlID0gMTApCiB7CiAgICAgaWYgKHN0cmluZ1ZpZXcuaXM4Qml0KCkp
CiAgICAgICAgIHJldHVybiB0b0ludGVncmFsVHlwZTxJbnRlZ3JhbFR5cGUsIExDaGFyPihzdHJp
bmdWaWV3LmNoYXJhY3RlcnM4KCksIHN0cmluZ1ZpZXcubGVuZ3RoKCksIG9rLCBiYXNlKTsKICAg
ICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8SW50ZWdyYWxUeXBlLCBVQ2hhcj4oc3RyaW5nVmlldy5j
aGFyYWN0ZXJzMTYoKSwgc3RyaW5nVmlldy5sZW5ndGgoKSwgb2ssIGJhc2UpOwogfQogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Citpbmxp
bmUgT3B0aW9uYWw8SW50ZWdyYWxUeXBlPiB0b0ludGVncmFsVHlwZShjb25zdCBDaGFyYWN0ZXJU
eXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBpbnQgYmFzZSA9IDEwKQoreworICAgIGJvb2wgb2sg
PSBmYWxzZTsKKyAgICBJbnRlZ3JhbFR5cGUgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxJbnRlZ3Jh
bFR5cGU+KGRhdGEsIGxlbmd0aCwgJm9rLCBiYXNlKTsKKyAgICBpZiAoIW9rKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiB2YWx1ZTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgSW50ZWdyYWxUeXBlLCB0eXBlbmFtZSBTdHJpbmdPclN0cmluZ1ZpZXc+CitpbmxpbmUg
T3B0aW9uYWw8SW50ZWdyYWxUeXBlPiB0b0ludGVncmFsVHlwZShjb25zdCBTdHJpbmdPclN0cmlu
Z1ZpZXcmIHN0cmluZ1ZpZXcsIGludCBiYXNlID0gMTApCit7CisgICAgYm9vbCBvayA9IGZhbHNl
OworICAgIEludGVncmFsVHlwZSB2YWx1ZSA9IHRvSW50ZWdyYWxUeXBlPEludGVncmFsVHlwZT4o
c3RyaW5nVmlldywgJm9rLCBiYXNlKTsKKyAgICBpZiAoIW9rKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiB2YWx1ZTsKK30KKwogfQogCiB1c2luZyBXVEY6OnRvSW50
ZWdyYWxUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxOGVlMDBhNDc3MWEwZTg2ZWU1MTQ4MGM3OGJi
MDM2NjU1ZmNjZDE1Li5iZjJiZjVlN2MxYTE3ZDNhYzY3NjhhMDUzYzkwNDQxZWNmMTViM2U2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTg5MSw2ICsxODkxLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvU3Vy
cm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1
bi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1ZQ
OVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJ
dGVyYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjNDY5ZTA2ZWNhOTI4ZTE0MTMyMTQ2ZDIxNWE5OWY2OGVkMWY5M2Fk
Li4zYzU2MzFlNGJjODQxMzBlOWFiNWIyNTlhNzE5NWQyMjI0ZjFjMzdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA5Nyw2
ICsxNDA5Nyw4IEBACiAJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIyMTgxOEY1RUQwMEVF
NEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUJB
MjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVlA5VXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUJCMjRCQ0U3QjYw
MDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlA5VXRpbGl0
aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3MjBCNDcyMjY4MkM3RTAw
MDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDcyMEI0OTIyNjgyQzdGMDAwNDdGREUgLyogSVNPRmFpclBsYXlTdHJlYW1p
bmdQc3NoQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDc4QTJFQzFGNzU2NDg2MDBERTM3MUIg
LyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzIwLDYgKzI1NzIyLDgg
QEAKIAkJCQkwNzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAg
Ki8sCiAJCQkJQkU5MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAq
LywKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAorCQkJ
CUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKKwkJCQlDRDZG
RTVCQjI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRjVBNTdD
QTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIy
OUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQw
OTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDJhNjUz
MWYxNTNmYjNjOWM3NTA2M2E2NzVmYzEwNzI2MjFjNDA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcApAQCAtMCwwICsx
LDE4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWUDlV
dGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgYm9vbCBpc1ZhbGlkVlBMZXZlbCh1aW50OF90IGxldmVsKQoreworICAg
IGNvbnN0ZXhwciB1aW50OF90IHZhbGlkTGV2ZWxzW10gPSB7CisgICAgICAgIDEwLAorICAgICAg
ICAxMSwKKyAgICAgICAgMjAsCisgICAgICAgIDIxLAorICAgICAgICAzMCwKKyAgICAgICAgMzEs
CisgICAgICAgIDQwLAorICAgICAgICA0MSwKKyAgICAgICAgNTAsCisgICAgICAgIDUxLAorICAg
ICAgICA1MiwKKyAgICAgICAgNjAsCisgICAgICAgIDYxLAorICAgICAgICA2MiwKKyAgICB9Owor
CisgICAgQVNTRVJUKHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4odmFsaWRMZXZlbHMpLCBzdGQ6
OmVuZCh2YWxpZExldmVscykpKTsKKyAgICByZXR1cm4gc3RkOjpiaW5hcnlfc2VhcmNoKHN0ZDo6
YmVnaW4odmFsaWRMZXZlbHMpLCBzdGQ6OmVuZCh2YWxpZExldmVscyksIGxldmVsKTsKK30KKwor
c3RhdGljIGJvb2wgaXNWYWxpZFZQY29sb3JQcmltYXJpZXModWludDhfdCBjb2xvclByaW1hcmll
cykKK3sKKyAgICBjb25zdGV4cHIgdWludDhfdCB2YWxpZENvbG9yUHJpbWFyaWVzW10gPSB7Cisg
ICAgICAgIDEsCisgICAgICAgIDQsCisgICAgICAgIDUsCisgICAgICAgIDYsCisgICAgICAgIDcs
CisgICAgICAgIDgsCisgICAgICAgIDksCisgICAgICAgIDEwLAorICAgICAgICAxMSwKKyAgICAg
ICAgMTIsCisgICAgICAgIDIyLAorICAgIH07CisKKyAgICBBU1NFUlQoc3RkOjppc19zb3J0ZWQo
c3RkOjpiZWdpbih2YWxpZENvbG9yUHJpbWFyaWVzKSwgc3RkOjplbmQodmFsaWRDb2xvclByaW1h
cmllcykpKTsKKyAgICByZXR1cm4gc3RkOjpiaW5hcnlfc2VhcmNoKHN0ZDo6YmVnaW4odmFsaWRD
b2xvclByaW1hcmllcyksIHN0ZDo6ZW5kKHZhbGlkQ29sb3JQcmltYXJpZXMpLCBjb2xvclByaW1h
cmllcyk7Cit9CisKK09wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPiBwYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKFN0cmluZ1ZpZXcgY29kZWNWaWV3KQoreworICAgIC8vIFRoZSBmb3Jt
YXQgb2YgdGhlICd2cDA5JyBjb2RlYyBzdHJpbmcgaXMgc3BlY2lmaWVkIGluIHRoZSB3ZWJtIEdp
dEh1YiByZXBvOgorICAgIC8vIDxodHRwczovL2dpdGh1Yi5jb20vd2VibXByb2plY3QvdnA5LWRh
c2gvYmxvYi9tYXN0ZXIvVlBDb2RlY0lTT01lZGlhRmlsZUZvcm1hdEJpbmRpbmcubWQjY29kZWNz
LXBhcmFtZXRlci1zdHJpbmc+CisKKyAgICAvLyAic2FtcGxlIGVudHJ5IDRDQywgcHJvZmlsZSwg
bGV2ZWwsIGFuZCBiaXREZXB0aCBhcmUgYWxsIG1hbmRhdG9yeSBmaWVsZHMuIElmIGFueSBvZiB0
aGVzZSBmaWVsZHMgYXJlIGVtcHR5LCBvciBub3QKKyAgICAvLyB3aXRoaW4gdGhlaXIgYWxsb3dl
ZCByYW5nZSwgdGhlIHByb2Nlc3NpbmcgZGV2aWNlIFNIQUxMIHRyZWF0IGl0IGFzIGFuIGVycm9y
LiIKKworICAgIGF1dG8gY29kZWNTcGxpdCA9IGNvZGVjVmlldy5zcGxpdCgnLicpOworICAgIGF1
dG8gbmV4dEVsZW1lbnQgPSBjb2RlY1NwbGl0LmJlZ2luKCk7CisgICAgaWYgKG5leHRFbGVtZW50
ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCBjb25maWd1cmF0aW9uOworCisgICAgLy8gQ29k
ZWMgaWRlbnRpZmllcjogbGVnYWwgdmFsdWVzIGFyZSAndnAwOCcgb3IgJ3ZwMDknLgorICAgIGNv
bmZpZ3VyYXRpb24uY29kZWNOYW1lID0gKCpuZXh0RWxlbWVudCkudG9TdHJpbmcoKTsKKyAgICBp
ZiAoY29uZmlndXJhdGlvbi5jb2RlY05hbWUgIT0gInZwMDgiICYmIGNvbmZpZ3VyYXRpb24uY29k
ZWNOYW1lICE9ICJ2cDA5IikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlm
ICgrK25leHRFbGVtZW50ID09IGNvZGVjU3BsaXQuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAvLyBGaXJzdCBlbGVtZW50OiBwcm9maWxlLiBMZWdhbCB2YWx1ZXMg
YXJlIDAtMy4KKyAgICBhdXRvIHByb2ZpbGUgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4
dEVsZW1lbnQpOworICAgIGlmICghcHJvZmlsZSB8fCAqcHJvZmlsZSA+IDMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlvbi5wcm9maWxlID0gKnByb2ZpbGU7
CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2Vjb25kIGVsZW1lbnQ6IGxldmVsLiBMZWdh
bCB2YWx1ZXMgYXJlIGVudW1lcmF0ZWQgaW4gdmFsaWRWUExldmVscyBhYm92ZS4KKyAgICBhdXRv
IGxldmVsID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAo
IWxldmVsIHx8ICFpc1ZhbGlkVlBMZXZlbCgqbGV2ZWwpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24ubGV2ZWwgPSAqbGV2ZWw7CisKKyAgICBpZiAoKytu
ZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgLy8gVGhpcmQgZWxlbWVudDogYml0RGVwdGguIExlZ2FsIHZhbHVlcyBhcmUg
OCwgMTAsIGFuZCAxMi4KKyAgICBhdXRvIGJpdERlcHRoID0gdG9JbnRlZ3JhbFR5cGU8dWludDhf
dD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIWJpdERlcHRoIHx8ICgqYml0RGVwdGggIT0gOCAm
JiAqYml0RGVwdGggIT0gMTAgJiYgKmJpdERlcHRoICE9IDEyKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9uLmJpdERlcHRoID0gKmJpdERlcHRoOworCisg
ICAgLy8gImNvbG9yUHJpbWFyaWVzLCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywgbWF0cml4Q29l
ZmZpY2llbnRzLCB2aWRlb0Z1bGxSYW5nZUZsYWcsIGFuZCBjaHJvbWFTdWJzYW1wbGluZyBhcmUg
T1BUSU9OQUwsCisgICAgLy8gbXV0dWFsbHkgaW5jbHVzaXZlIChhbGwgb3Igbm9uZSkgZmllbGRz
LiBJZiBub3Qgc3BlY2lmaWVkIHRoZW4gdGhlIHByb2Nlc3NpbmcgZGV2aWNlIE1VU1QgdXNlIHRo
ZSB2YWx1ZXMgbGlzdGVkIGluIHRoZQorICAgIC8vIHRhYmxlIGJlbG93IGFzIGRlZmF1bHRzIHdo
ZW4gZGVjaWRpbmcgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIGRlY29kZSBhbmQgcG90ZW50aWFs
bHkgcmVuZGVyIHRoZSB2aWRlby4iCisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1Nw
bGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKKworICAgIC8vIEZvdXJ0
aCBlbGVtZW50OiBjaHJvbWFTdWJzYW1wbGluZy4gTGVnYWwgdmFsdWVzIGFyZSAwLTMuCisgICAg
YXV0byBjaHJvbWFTdWJzYW1wbGluZyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxl
bWVudCk7CisgICAgaWYgKCFjaHJvbWFTdWJzYW1wbGluZyB8fCAqY2hyb21hU3Vic2FtcGxpbmcg
PiAzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24uY2hy
b21hU3Vic2FtcGxpbmcgPSAqY2hyb21hU3Vic2FtcGxpbmc7CisKKyAgICBpZiAoKytuZXh0RWxl
bWVudCA9PSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgLy8gRmlmdGggZWxlbWVudDogY29sb3JQcmltYXJpZXMuIExlZ2FsIHZhbHVlcyBhcmUg
ZGVmaW5lZCBieSAgSVNPL0lFQyAyMzAwMS04OjIwMTYsIHN1cGVyY2VkZWQKKyAgICAvLyBieSBJ
U08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICBhdXRvIGNvbG9yUHJpbWFyaWVzID0gdG9JbnRlZ3Jh
bFR5cGU8dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIWNvbG9yUHJpbWFyaWVzIHx8
ICFpc1ZhbGlkVlBjb2xvclByaW1hcmllcygqY29sb3JQcmltYXJpZXMpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgIGNvbmZpZ3VyYXRpb24uY29sb3JQcmltYXJpZXMgPSAqY29s
b3JQcmltYXJpZXM7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0LmVuZCgp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gU2l4dGggZWxlbWVudDog
dHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MuIExlZ2FsIHZhbHVlcyBhcmUgZGVmaW5lZCBieSAgSVNP
L0lFQyAyMzAwMS04OjIwMTYsIHN1cGVyY2VkZWQKKyAgICAvLyBieSBJU08vSUVDIDIzMDkxLTI6
MjAxOS4KKyAgICBhdXRvIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gdG9JbnRlZ3JhbFR5cGU8
dWludDhfdD4oKm5leHRFbGVtZW50KTsKKyAgICBpZiAoIXRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNz
IHx8ICghKnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzIHx8ICp0cmFuc2ZlckNoYXJhY3RlcmlzdGlj
cyA9PSAyIHx8ICp0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA9PSAzIHx8ICp0cmFuc2ZlckNoYXJh
Y3RlcmlzdGljcyA+IDE4KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25m
aWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzID0gKnRyYW5zZmVyQ2hhcmFjdGVyaXN0
aWNzOworCisgICAgaWYgKCsrbmV4dEVsZW1lbnQgPT0gY29kZWNTcGxpdC5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIC8vIFNldmVudGggZWxlbWVudDogbWF0cml4
Q29lZmZpY2llbnRzLiBMZWdhbCB2YWx1ZXMgYXJlIGRlZmluZWQgYnkgIElTTy9JRUMgMjMwMDEt
ODoyMDE2LCBzdXBlcmNlZGVkCisgICAgLy8gYnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAg
YXV0byBtYXRyaXhDb2VmZmljaWVudHMgPSB0b0ludGVncmFsVHlwZTx1aW50OF90PigqbmV4dEVs
ZW1lbnQpOworICAgIGlmICghbWF0cml4Q29lZmZpY2llbnRzIHx8ICgqbWF0cml4Q29lZmZpY2ll
bnRzID09IDIgfHwgKm1hdHJpeENvZWZmaWNpZW50cyA9PSAzIHx8ICptYXRyaXhDb2VmZmljaWVu
dHMgPiAxNCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgY29uZmlndXJhdGlv
bi5tYXRyaXhDb2VmZmljaWVudHMgPSAqbWF0cml4Q29lZmZpY2llbnRzOworCisgICAgLy8gIklm
IG1hdHJpeENvZWZmaWNpZW50cyBpcyAwIChSR0IpLCB0aGVuIGNocm9tYSBzdWJzYW1wbGluZyBN
VVNUIGJlIDMgKDQ6NDo0KS4iCisgICAgaWYgKCFjb25maWd1cmF0aW9uLm1hdHJpeENvZWZmaWNp
ZW50cyAmJiBjb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nICE9IDMpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoKytuZXh0RWxlbWVudCA9PSBjb2RlY1NwbGl0
LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgLy8gRWlnaHRoIGVs
ZW1lbnQ6IHZpZGVvRnVsbFJhbmdlRmxhZy4gTGVnYWwgdmFsdWVzIGFyZSAwIGFuZCAxLgorICAg
IGF1dG8gdmlkZW9GdWxsUmFuZ2VGbGFnID0gdG9JbnRlZ3JhbFR5cGU8dWludDhfdD4oKm5leHRF
bGVtZW50KTsKKyAgICBpZiAoIXZpZGVvRnVsbFJhbmdlRmxhZyB8fCAqdmlkZW9GdWxsUmFuZ2VG
bGFnID4gMSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBjb25maWd1cmF0aW9u
LnZpZGVvRnVsbFJhbmdlRmxhZyA9ICp2aWRlb0Z1bGxSYW5nZUZsYWc7CisKKyAgICBpZiAoKytu
ZXh0RWxlbWVudCAhPSBjb2RlY1NwbGl0LmVuZCgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4ZDZk
ZDU1MGJjYTE2NWZiMGQyNDZhMzU5NmZkZGQxNWE1MjRjMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ1ZpZXcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgeworICAgIFN0
cmluZyBjb2RlY05hbWU7CisgICAgdWludDhfdCBwcm9maWxlIHsgMCB9OworICAgIHVpbnQ4X3Qg
bGV2ZWwgeyAwIH07CisgICAgdWludDhfdCBiaXREZXB0aCB7IDAgfTsKKyAgICB1aW50OF90IGNo
cm9tYVN1YnNhbXBsaW5nIHsgMSB9OworICAgIHVpbnQ4X3QgdmlkZW9GdWxsUmFuZ2VGbGFnIHsg
MCB9OworICAgIHVpbnQ4X3QgY29sb3JQcmltYXJpZXMgeyAxIH07CisgICAgdWludDhfdCB0cmFu
c2ZlckNoYXJhY3RlcmlzdGljcyB7IDEgfTsKKyAgICB1aW50OF90IG1hdHJpeENvZWZmaWNpZW50
cyB7IDEgfTsKK307CisKK1dFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFZQQ29kZWNDb25maWd1cmF0
aW9uUmVjb3JkPiBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKFN0cmluZ1ZpZXcgY29kZWNTdHJpbmcp
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTJlNTdlY2JlZjQ1
ZDNjMjQ2M2Y5ODYzNzM3MTMzMmZhYmY0NTI5Ny4uY2U5NmJhNzY3ZTBjMDU3NTgwZmUxMDVjZDJi
MzM3ZTdhMTU0MmE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTYw
MCw2ICs1NjAwLDExIEBAIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IEludGVybmFsczo6cGFy
c2VEb1ZpQ29kZWNQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgY29kCiAgICAgcmV0dXJuIFdlYkNv
cmU6OnBhcnNlRG9WaUNvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7CiB9CiAKK09wdGlvbmFs
PFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkPiBJbnRlcm5hbHM6OnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZykKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6
cGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb2RlY1N0cmluZyk7Cit9CisKIGF1dG8gSW50ZXJuYWxz
OjpnZXRDb29raWVzKCkgY29uc3QgLT4gVmVjdG9yPENvb2tpZURhdGE+CiB7CiAgICAgYXV0byog
ZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDg1Y2U2OTI0MmY2NDMyY2Y2N2Q4MTk5ODFmZGE5OTkzNTFhNTMxMGIuLmJlYzU5Y2Jj
YzAxOGZkNmIxOWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCIKICNpbmNsdWRlICJTbGVlcERpc2FibGVyLmgiCiAjaW5jbHVkZSAiVGV4dEluZGljYXRvci5o
IgorI2luY2x1ZGUgIlZQOVV0aWxpdGllcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zs
b2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC05MTUsNiArOTE2
LDkgQEAgcHVibGljOgogICAgIHVzaW5nIERvVmlQYXJhbWV0ZXJTZXQgPSBXZWJDb3JlOjpEb1Zp
UGFyYW1ldGVyU2V0OwogICAgIE9wdGlvbmFsPERvVmlQYXJhbWV0ZXJTZXQ+IHBhcnNlRG9WaUNv
ZGVjUGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIGNvZGVjU3RyaW5nKTsKIAorICAgIHVzaW5nIFZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkID0gV2ViQ29yZTo6VlBDb2RlY0NvbmZpZ3VyYXRpb25S
ZWNvcmQ7CisgICAgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBjb2RlY1N0cmluZyk7CisKICAgICBzdHJ1Y3Qg
Q29va2llRGF0YSB7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgICAgICBTdHJpbmcgdmFsdWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZWYwYjBkZWU0YTIzZTVjMmQ1
ZDE2YWIwNDBhY2VlZjEwOTZlMWU3ZC4uODhiNDYxZTYxM2U1ODIyMjY4M2Q5YWFhMjJiNDZhM2Ri
ZjJlZTVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTg5LDYgKzE4
OSwyMSBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogICAgIHVuc2lnbmVkIHNob3J0IGJp
dHN0cmVhbUxldmVsSUQ7CiB9OwogCitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQ
UE9SVF9FWFBPUlQsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgVlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgeworICAgIERPTVN0cmluZyBjb2RlY05hbWU7CisgICAg
b2N0ZXQgcHJvZmlsZTsKKyAgICBvY3RldCBsZXZlbDsKKyAgICBvY3RldCBiaXREZXB0aDsKKyAg
ICBvY3RldCBjaHJvbWFTdWJzYW1wbGluZzsKKyAgICBvY3RldCB2aWRlb0Z1bGxSYW5nZUZsYWc7
CisgICAgb2N0ZXQgY29sb3JQcmltYXJpZXM7CisgICAgb2N0ZXQgdHJhbnNmZXJDaGFyYWN0ZXJp
c3RpY3M7CisgICAgb2N0ZXQgbWF0cml4Q29lZmZpY2llbnRzOworfTsKKwogWwogICAgIEV4cG9y
dE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAogICAgIEpTR2VuZXJhdGVUb0pTT2Jq
ZWN0LApAQCAtODgxLDYgKzg5Niw3IEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAKICAg
ICBIRVZDUGFyYW1ldGVyU2V0PyBwYXJzZUhFVkNDb2RlY1BhcmFtZXRlcnMoRE9NU3RyaW5nIGNv
ZGVjUGFyYW1ldGVycyk7CiAgICAgRG9WaVBhcmFtZXRlclNldD8gcGFyc2VEb1ZpQ29kZWNQYXJh
bWV0ZXJzKERPTVN0cmluZyBjb2RlY1BhcmFtZXRlcnMpOworICAgIFZQQ29kZWNDb25maWd1cmF0
aW9uUmVjb3JkPyBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKERPTVN0cmluZyBjb2RlY1BhcmFtZXRl
cnMpOwogCiAgICAgc2VxdWVuY2U8Q29va2llRGF0YT4gZ2V0Q29va2llcygpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
M2U0NzRjM2UwZjk4MDQ0Y2JiZWRmOWZhMTdmZTg2OTMyOGIxMzc3OC4uMmI5N2NkYWQ2N2MzYTNk
MjlmZjkyNDkxZjRlNWZkMzA3MGQ5Y2RiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3
LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmluZ3MuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyNzAKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBtZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdnAtY29kZWMtcGFyYW1ldGVy
cy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNi0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nOyAicmViYXNlbGluZSIg
dGhlIHZpZGVvLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIHRlc3QgdG8gY2VudGVyIHRoZSBleHBl
Y3RlZCByZWQgY29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBh
cmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdnAtY29kZWMtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE4M2NhNTFlNDRkNmY0ODQ1OTk4ZWI5ZmI0
MTlhOThiNzI4OTU0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZwLWNv
ZGVjLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMwIEBACitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoImJhZC1wYXJhbWV0ZXIiKSA9PSAnbnVs
bCcpIE9LCisKK1Rlc3QgaW52YWxpZCBudW1iZXIgb2YgcmVxdWlyZWQgcGFyYW1ldGVyczoKK0VY
UEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOSIpID09ICdudWxs
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
MCIpID09ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC40MSIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBkZWZhdWx0IG9w
dGlvbmFsIHBhcmFtZXRlcnM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDAuNDEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDgsIDEsIDEsIDEsIDEs
IDB9JykgT0sKKworVGVzdCBpbnZhbGlkIG51bWJlciBvZiBvcHRpb25hbCBwYXJhbWV0ZXJzOgor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxIikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5IikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2Iikg
PT0gJ251bGwnKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5IikgPT0gJ251bGwnKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5
LjAxLjAwIikgPT0gJ251bGwnKSBPSworCitUZXN0IHZhbGlkIHJlcXVpcmVkIGFuZCBvcHRpb25h
bCBwYXJhbWV0ZXJzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwg
MSwgOSwgMTYsIDksIDF9JykgT0sKKworVGVzdCBpbnZhbGlkIGNvZGVjIHR5cGUKK0VYUEVDVEVE
IChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAxMC4wMC40MS4wOCIpID09ICdu
dWxsJykgT0sKKworVGVzdCBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG1hdHJpeENvZWZmaWNpZW50
cyBhbmQgY2hyb21hU3Vic2FtcGxpbmcKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMC40MS4wOC4wMS4wMS4wMS4wMC4wMCIpID09ICdudWxsJykgT0sK
KworVGVzdCB2YWxpZCBwcm9maWxlczoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5LCAwLCA0MSwgOCwgMSwgMSwg
MSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAxLjQxLjA4IikgPT09ICd7IHZwMDksIDEsIDQxLCA4LCAxLCAxLCAxLCAxLCAwfScp
IE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIu
NDEuMDgiKSA9PT0gJ3sgdnAwOSwgMiwgNDEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVD
VEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMy40MS4wOCIpID09
PSAneyB2cDA5LCAzLCA0MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitUZXN0IGludmFsaWQg
cHJvZmlsZToKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wNC40MS4wOCIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBsZXZlbHM6CitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTAuMDgiKSA9PT0g
J3sgdnAwOSwgMCwgMTAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5h
bHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4xMS4wOCIpID09PSAneyB2cDA5LCAw
LCAxMSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjIwLjA4IikgPT09ICd7IHZwMDksIDAsIDIwLCA4LCAx
LCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDAuMjEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgMjEsIDgsIDEsIDEsIDEsIDEs
IDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMC4zMC4wOCIpID09PSAneyB2cDA5LCAwLCAzMCwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjMxLjA4
IikgPT09ICd7IHZwMDksIDAsIDMxLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDAuMDgiKSA9PT0gJ3sg
dnAwOSwgMCwgNDAsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOCIpID09PSAneyB2cDA5LCAwLCA0
MSwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29k
ZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjUwLjA4IikgPT09ICd7IHZwMDksIDAsIDUwLCA4LCAxLCAx
LCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRl
cnMoInZwMDkuMDAuNTEuMDgiKSA9PT0gJ3sgdnAwOSwgMCwgNTEsIDgsIDEsIDEsIDEsIDEsIDB9
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
MC41Mi4wOCIpID09PSAneyB2cDA5LCAwLCA1MiwgOCwgMSwgMSwgMSwgMSwgMH0nKSBPSworRVhQ
RUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjYwLjA4Iikg
PT09ICd7IHZwMDksIDAsIDYwLCA4LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNjEuMDgiKSA9PT0gJ3sgdnAw
OSwgMCwgNjEsIDgsIDEsIDEsIDEsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFy
c2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC42Mi4wOCIpID09PSAneyB2cDA5LCAwLCA2Miwg
OCwgMSwgMSwgMSwgMSwgMH0nKSBPSworCitUZXN0IGludmFsaWQgbGV2ZWw6CitFWFBFQ1RFRCAo
aW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuMTIuMDgiKSA9PSAnbnVs
bCcpIE9LCisKK1Rlc3QgdmFsaWQgYml0RGVwdGhzOgorRVhQRUNURUQgKGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAwLjQxLjA4IikgPT09ICd7IHZwMDksIDAsIDQxLCA4
LCAxLCAxLCAxLCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDAuNDEuMTAiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDEwLCAxLCAxLCAx
LCAxLCAwfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
InZwMDkuMDAuNDEuMTIiKSA9PT0gJ3sgdnAwOSwgMCwgNDEsIDEyLCAxLCAxLCAxLCAxLCAwfScp
IE9LCisKK1Rlc3QgaW52YWxpZCBiaXREZXB0aDoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMC40MS4wOSIpID09ICdudWxsJykgT0sKKworVGVzdCB2
YWxpZCBjaHJvbWFTdWJzYW1wbGluZzoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVj
UGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMC4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAy
LCAxMCwgMTAsIDAsIDksIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNl
VlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDEiKSA9PT0gJ3sg
dnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAyLjA5LjE2LjA5LjAxIikg
PT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMiwgOSwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMy4wOS4xNi4w
OS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDMsIDksIDE2LCA5LCAxfScpIE9LCisKK1Rl
c3QgaW52YWxpZCBjaHJvbWFTdWJzYW1wbGluZzoKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wNC4wOS4xNi4wOS4wMSIpID09ICdudWxs
JykgT0sKKworVGVzdCB2YWxpZCBjb2xvclByaW1hcmllczoKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wMS4xNi4wOS4wMSIpID09
PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDEsIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDQuMTYuMDku
MDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA0LCAxNiwgOSwgMX0nKSBPSworRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA1
LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgNSwgMTYsIDksIDF9JykgT0sK
K0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4x
MC4wMS4wNi4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDYsIDE2LCA5LCAx
fScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDcuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA3LCAx
NiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA4LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwg
MSwgOCwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAx
MCwgMTAsIDEsIDksIDE2LCA5LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMTAuMTYuMDkuMDEiKSA9PT0gJ3sgdnAw
OSwgMiwgMTAsIDEwLCAxLCAxMCwgMTYsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMu
cGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4xMS4xNi4wOS4wMSIpID09
PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDExLCAxNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGlu
dGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjEyLjE2LjA5
LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgMTIsIDE2LCA5LCAxfScpIE9LCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEu
MjIuMTYuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCAyMiwgMTYsIDksIDF9Jykg
T0sKKworVGVzdCBpbnZhbGlkIGNvbG9yUHJpbWFyaWVzOgorRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjAyLjE2LjA5LjAxIikgPT0g
J251bGwnKSBPSworCitUZXN0IHZhbGlkIHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzOgorRVhQRUNU
RUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5
LjAxLjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMSwgOSwgMX0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjA0LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgNCwgOSwgMX0n
KSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LjA1LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgNSwg
OSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2
cDA5LjAyLjEwLjEwLjAxLjA5LjA2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwg
OSwgNiwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjA3LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAx
MCwgMSwgOSwgNywgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjA4LjA5LjAxIikgPT09ICd7IHZwMDksIDIs
IDEwLCAxMCwgMSwgOSwgOCwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjA5LjA5LjAxIikgPT09ICd7IHZw
MDksIDIsIDEwLCAxMCwgMSwgOSwgOSwgOSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjEwLjA5LjAxIikgPT09
ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTAsIDksIDF9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xMS4wOS4w
MSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDExLCA5LCAxfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDku
MTIuMDkuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxMiwgOSwgMX0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjEzLjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTMsIDksIDF9
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
Mi4xMC4xMC4wMS4wOS4xNC4wOS4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE0
LCA5LCAxfScpIE9LCisKK1Rlc3QgaW52YWxpZCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczoKK0VY
UEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4w
MS4wOS4wMy4wOS4wMSIpID09ICdudWxsJykgT0sKKworVGVzdCB2YWxpZCBtYXRyaXhDb2VmZmlj
aWVudHM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDMuMDkuMTYuMDAuMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAzLCA5LCAx
NiwgMCwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwg
MSwgOSwgMTYsIDEsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wNC4wMSIpID09PSAneyB2cDA5LCAyLCAx
MCwgMTAsIDEsIDksIDE2LCA0LCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDUuMDEiKSA9PT0gJ3sgdnAw
OSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgNSwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA2LjAxIikgPT09
ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDYsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wNy4w
MSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCA3LCAxfScpIE9LCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDku
MTYuMDguMDEiKSA9PT0gJ3sgdnAwOSwgMiwgMTAsIDEwLCAxLCA5LCAxNiwgOCwgMX0nKSBPSwor
RVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEw
LjAxLjA5LjE2LjA5LjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDksIDF9
JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
Mi4xMC4xMC4wMS4wOS4xNi4xMC4wMSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2
LCAxMCwgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjExLjAxIikgPT09ICd7IHZwMDksIDIsIDEwLCAxMCwg
MSwgOSwgMTYsIDExLCAxfScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMTIuMDEiKSA9PT0gJ3sgdnAwOSwgMiwg
MTAsIDEwLCAxLCA5LCAxNiwgMTIsIDF9JykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4xMy4wMSIpID09PSAneyB2
cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxMywgMX0nKSBPSworRVhQRUNURUQgKGludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjE0LjAxIikg
PT09ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDE0LCAxfScpIE9LCisKK1Rlc3QgaW52
YWxpZCBtYXRyaXhDb2VmZmljaWVudHM6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBDb2Rl
Y1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDkuMDMiKSA9PSAnbnVsbCcpIE9L
CisKK1Rlc3QgdmFsaWQgdmlkZW9GdWxsUmFuZ2VGbGFnOgorRVhQRUNURUQgKGludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAwIikgPT09
ICd7IHZwMDksIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEsIDB9JykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wMS4w
MSIpID09PSAneyB2cDA5LCAyLCAxMCwgMTAsIDEsIDksIDE2LCAxLCAxfScpIE9LCisKK1Rlc3Qg
aW52YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6CitFWFBFQ1RFRCAoaW50ZXJuYWxzLnBhcnNlVlBD
b2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDIiKSA9PSAnbnVsbCcp
IE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92cC1jb2Rl
Yy1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92cC1jb2RlYy1wYXJhbWV0ZXJz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTE3YmY2NjJlNGQyYTk1ZGE4M2QxMzcwY2U0OGMwNGRhMTI0YWUw
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZwLWNvZGVjLXBhcmFtZXRl
cnMuaHRtbApAQCAtMCwwICsxLDEzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgIGZ1bmN0aW9uIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkVG9TdHJpbmcoc2V0KSB7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gYHsgJHtzZXQuY29kZWNOYW1lfSwg
JHtzZXQucHJvZmlsZX0sICR7c2V0LmxldmVsfSwgJHtzZXQuYml0RGVwdGh9LCAke3NldC5jaHJv
bWFTdWJzYW1wbGluZ30sICR7c2V0LmNvbG9yUHJpbWFyaWVzfSwgJHtzZXQudHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3N9LCAke3NldC5tYXRyaXhDb2VmZmljaWVudHN9LCAke3NldC52aWRlb0Z1bGxS
YW5nZUZsYWd9fWA7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgcmV0dXJuIGB7
ICR7c2V0fSB9YDsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbiBpc0VxdWFsVlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQoc2V0QSwgc2V0QikgeworICAgICAgICB0cnkgeworICAgICAg
ICAgICAgcmV0dXJuIHNldEEucHJvZmlsZSA9PSBzZXRCLnByb2ZpbGUgJiYKKyAgICAgICAgICAg
ICAgICBzZXRBLmxldmVsID09IHNldEIubGV2ZWwgJiYKKyAgICAgICAgICAgICAgICBzZXRBLmJp
dERlcHRoID09IHNldEIuYml0RGVwdGggJiYKKyAgICAgICAgICAgICAgICBzZXRBLmNocm9tYVN1
YnNhbXBsaW5nID09IHNldEIuY2hyb21hU3Vic2FtcGxpbmcgJiYKKyAgICAgICAgICAgICAgICBz
ZXRBLnZpZGVvRnVsbFJhbmdlRmxhZyA9PSBzZXRCLnZpZGVvRnVsbFJhbmdlRmxhZyAmJgorICAg
ICAgICAgICAgICAgIHNldEEuY29sb3JQcmltYXJpZXMgPT0gc2V0Qi5jb2xvclByaW1hcmllcyAm
JgorICAgICAgICAgICAgICAgIHNldEEudHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPT0gc2V0Qi50
cmFuc2ZlckNoYXJhY3RlcmlzdGljcyAmJgorICAgICAgICAgICAgICAgIHNldEEubWF0cml4Q29l
ZmZpY2llbnRzID09IHNldEIubWF0cml4Q29lZmZpY2llbnRzOworICAgICAgICB9IGNhdGNoKGUp
IHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmdW5j
dGlvbiBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoY29kZWNOYW1lLCBwcm9maWxlLCBs
ZXZlbCwgYml0RGVwdGgsIGNocm9tYVN1YnNhbXBsaW5nLCBjb2xvclByaW1hcmllcywgdHJhbnNm
ZXJDaGFyYWN0ZXJpc3RpY3MsIG1hdHJpeENvZWZmaWNpZW50cywgdmlkZW9GdWxsUmFuZ2VGbGFn
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGNvZGVjTmFtZTogY29kZWNO
YW1lLAorICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZSwKKyAgICAgICAgICAgIGxldmVsOiBs
ZXZlbCwKKyAgICAgICAgICAgIGJpdERlcHRoOiBiaXREZXB0aCwKKyAgICAgICAgICAgIGNocm9t
YVN1YnNhbXBsaW5nOiBjaHJvbWFTdWJzYW1wbGluZywKKyAgICAgICAgICAgIHZpZGVvRnVsbFJh
bmdlRmxhZzogdmlkZW9GdWxsUmFuZ2VGbGFnLAorICAgICAgICAgICAgY29sb3JQcmltYXJpZXM6
IGNvbG9yUHJpbWFyaWVzLAorICAgICAgICAgICAgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6IHRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzLAorICAgICAgICAgICAgbWF0cml4Q29lZmZpY2llbnRzOiBt
YXRyaXhDb2VmZmljaWVudHMKKyAgICAgICAgfTsKKyAgICB9CisgICAgZnVuY3Rpb24gdGVzdEV4
cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQodGVzdEZ1bmNTdHJpbmcsIGV4cGVjdGVk
KQorICAgIHsKKyAgICAgICAgbGV0IG9ic2VydmVkID0gZXZhbCh0ZXN0RnVuY1N0cmluZyk7Cisg
ICAgICAgIGxldCBzdWNjZXNzID0gaXNFcXVhbFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKG9i
c2VydmVkLCBleHBlY3RlZCk7CisgICAgICAgIHJlcG9ydEV4cGVjdGVkKHN1Y2Nlc3MsIHRlc3RG
dW5jU3RyaW5nLCAnPT09JywgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRUb1N0cmluZyhleHBl
Y3RlZCksIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkVG9TdHJpbmcob2JzZXJ2ZWQpKTsKKyAg
ICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBldmVudCA9PiB7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoImJhZC1w
YXJhbWV0ZXIiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBj
b25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxpZCBudW1iZXIgb2YgcmVxdWlyZWQgcGFyYW1ldGVyczon
KQorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJz
KCJ2cDA5IiknLCBudWxsKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMCIpJywgbnVsbCk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEiKScsIG51bGwp
OworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3Qg
dmFsaWQgZGVmYXVsdCBvcHRpb25hbCBwYXJhbWV0ZXJzOicpCisgICAgICAgIHRlc3RFeHBlY3Rl
ZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1l
dGVycygidnAwOS4wMC40MS4wOCIpJywgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2
cDA5JywgMCwgNDEsIDgsIDEsIDEsIDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcn
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgbnVtYmVyIG9mIG9wdGlvbmFs
IHBhcmFtZXRlcnM6JykKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENv
ZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMSIpJywgbnVsbCk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAu
MDEuMDkiKScsIG51bGwpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2IiknLCBudWxsKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4w
Mi4xMC4xMC4wMS4wOS4xNi4wOSIpJywgbnVsbCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDku
MDEuMDAiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25z
b2xlV3JpdGUoJ1Rlc3QgdmFsaWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnM6JykK
KyAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ2ludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjA5LjAxIikn
LCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAyLCAxMCwgMTAsIDEsIDks
IDE2LCA5LCAxKSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVX
cml0ZSgnVGVzdCBpbnZhbGlkIGNvZGVjIHR5cGUnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdp
bnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAxMC4wMC40MS4wOCIpJywgbnVsbCk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBp
bnZhbGlkIGNvbWJpbmF0aW9uIG9mIG1hdHJpeENvZWZmaWNpZW50cyBhbmQgY2hyb21hU3Vic2Ft
cGxpbmcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMC40MS4wOC4wMS4wMS4wMS4wMC4wMCIpJywgbnVsbCk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2YWxpZCBwcm9m
aWxlczonKTsKKyAgICAgICAgZm9yIChsZXQgcHJvZmlsZSBvZiBbMCwgMSwgMiwgM10pCisgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxz
LnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuJHtwcm9maWxlLnRvU3RyaW5nKCkucGFkU3Rh
cnQoMiwgJzAnKX0uNDEuMDgiKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgndnAw
OScsIHByb2ZpbGUsIDQxLCA4LCAxLCAxLCAxLCAxLCAwKSk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIHByb2ZpbGU6Jyk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZw
MDkuMDQuNDEuMDgiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJ1Rlc3QgdmFsaWQgbGV2ZWxzOicpOworICAgICAgICBmb3IgKGxldCBs
ZXZlbCBvZiBbMTAsIDExLCAyMCwgMjEsIDMwLCAzMSwgNDAsIDQxLCA1MCwgNTEsIDUyLCA2MCwg
NjEsIDYyXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVj
b3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMC4ke2xldmVsLnRv
U3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0uMDgiKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZCgndnAwOScsIDAsIGxldmVsLCA4LCAxLCAxLCAxLCAxLCAwKSk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIGxldmVs
OicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKCJ2cDA5LjAwLjEyLjA4IiknLCBudWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
KyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHZhbGlkIGJpdERlcHRoczonKTsKKyAgICAgICAg
Zm9yIChsZXQgYml0RGVwdGggb2YgWzgsIDEwLCAxMl0pCisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoInZwMDkuMDAuNDEuJHtiaXREZXB0aC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9
IilgLCBtYWtlVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoJ3ZwMDknLCAwLCA0MSwgYml0RGVw
dGgsIDEsIDEsIDEsIDEsIDApKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCdUZXN0IGludmFsaWQgYml0RGVwdGg6Jyk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgnaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDAuNDEuMDkiKScs
IG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgdmFsaWQgY2hyb21hU3Vic2FtcGxpbmc6Jyk7CisgICAgICAgIGZvciAobGV0IGNocm9t
YVN1YnNhbXBsaW5nIG9mIFswLCAxLCAyLCAzXSkKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZFZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVy
cygidnAwOS4wMi4xMC4xMC4ke2Nocm9tYVN1YnNhbXBsaW5nLnRvU3RyaW5nKCkucGFkU3RhcnQo
MiwgJzAnKX0uMDkuMTYuMDkuMDEiKWAsIG1ha2VWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCgn
dnAwOScsIDIsIDEwLCAxMCwgY2hyb21hU3Vic2FtcGxpbmcsIDksIDE2LCA5LCAxKSk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlk
IGNocm9tYVN1YnNhbXBsaW5nOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5w
YXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjA0LjA5LjE2LjA5LjAxIiknLCBu
dWxsKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdU
ZXN0IHZhbGlkIGNvbG9yUHJpbWFyaWVzOicpOworICAgICAgICBmb3IgKGxldCBjb2xvclByaW1h
cmllcyBvZiBbMSwgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMjJdKQorICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJz
ZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLiR7Y29sb3JQcmltYXJpZXMudG9T
dHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS4xNi4wOS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1
cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCAxLCBjb2xvclByaW1hcmllcywgMTYsIDks
IDEpKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdU
ZXN0IGludmFsaWQgY29sb3JQcmltYXJpZXM6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50
ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDIuMTYuMDku
MDEiKScsIG51bGwpOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xl
V3JpdGUoJ1Rlc3QgdmFsaWQgdHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3M6Jyk7CisgICAgICAgIGZv
ciAobGV0IHRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzIG9mIFsxLCA0LCA1LCA2LCA3LCA4LCA5LCAx
MCwgMTEsIDEyLCAxMywgMTRdKQorICAgICAgICAgICAgdGVzdEV4cGVjdGVkVlBDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmQoYGludGVybmFscy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAy
LjEwLjEwLjAxLjA5LiR7dHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MudG9TdHJpbmcoKS5wYWRTdGFy
dCgyLCAnMCcpfS4wOS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5
JywgMiwgMTAsIDEwLCAxLCA5LCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcywgOSwgMSkpOworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgaW52YWxp
ZCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljczonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRl
cm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4wMy4wOS4w
MSIpJywgbnVsbCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVX
cml0ZSgnVGVzdCB2YWxpZCBtYXRyaXhDb2VmZmljaWVudHM6Jyk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFy
YW1ldGVycygidnAwOS4wMi4xMC4xMC4wMy4wOS4xNi4wMC4wMSIpYCwgbWFrZVZQQ29kZWNDb25m
aWd1cmF0aW9uUmVjb3JkKCd2cDA5JywgMiwgMTAsIDEwLCAzLCA5LCAxNiwgMCwgMSkpOworICAg
ICAgICBmb3IgKGxldCBtYXRyaXhDb2VmZmljaWVudHMgb2YgWzEsIDQsIDUsIDYsIDcsIDgsIDks
IDEwLCAxMSwgMTIsIDEzLCAxNF0pCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWRWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoInZwMDku
MDIuMTAuMTAuMDEuMDkuMTYuJHttYXRyaXhDb2VmZmljaWVudHMudG9TdHJpbmcoKS5wYWRTdGFy
dCgyLCAnMCcpfS4wMSIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkKCd2cDA5Jywg
MiwgMTAsIDEwLCAxLCA5LCAxNiwgbWF0cml4Q29lZmZpY2llbnRzLCAxKSk7CisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCBpbnZhbGlkIG1hdHJp
eENvZWZmaWNpZW50czonKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMucGFyc2VW
UENvZGVjUGFyYW1ldGVycygidnAwOS4wMi4xMC4xMC4wMS4wOS4xNi4wOS4wMyIpJywgbnVsbCk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB2
YWxpZCB2aWRlb0Z1bGxSYW5nZUZsYWc6Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZFZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkKGBpbnRlcm5hbHMucGFyc2VWUENvZGVjUGFyYW1ldGVycygidnAw
OS4wMi4xMC4xMC4wMS4wOS4xNi4wMS4wMCIpYCwgbWFrZVZQQ29kZWNDb25maWd1cmF0aW9uUmVj
b3JkKCd2cDA5JywgMiwgMTAsIDEwLCAxLCA5LCAxNiwgMSwgMCkpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWRWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZChgaW50ZXJuYWxzLnBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoInZwMDkuMDIuMTAuMTAuMDEuMDkuMTYuMDEuMDEiKWAsIG1ha2VWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZCgndnAwOScsIDIsIDEwLCAxMCwgMSwgOSwgMTYsIDEsIDEpKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IGludmFs
aWQgdmlkZW9GdWxsUmFuZ2VGbGFnOicpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFs
cy5wYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKCJ2cDA5LjAyLjEwLjEwLjAxLjA5LjE2LjAxLjAyIikn
LCBudWxsKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>