<?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>206508</bug_id>
          
          <creation_ts>2020-01-20 12:38:32 -0800</creation_ts>
          <short_desc>Enable -Wconditional-uninitialized in WebCore project</short_desc>
          <delta_ts>2020-01-23 13:49:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206190</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=206269</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=206270</see_also>
          <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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jfbastien</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1608831</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-20 12:38:32 -0800</bug_when>
    <thetext>Enable -Wconditional-uninitialized in WebCore project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608850</commentid>
    <comment_count>1</comment_count>
      <attachid>388254</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-20 13:31:25 -0800</bug_when>
    <thetext>Created attachment 388254
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608861</commentid>
    <comment_count>2</comment_count>
      <attachid>388254</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-20 14:23:38 -0800</bug_when>
    <thetext>Comment on attachment 388254
Patch v1

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

&gt; Source/WTF/ChangeLog:3
&gt; +        Enable -Wconditional-uninitialized in WebCore project

Hard to tell cost/benefit for this one. Did it spot any problems?

&gt; Source/WTF/ChangeLog:13
&gt; +        * icu/unicode/utf16.h:
&gt; +        * icu/unicode/utf_old.h:
&gt; +        - Initialize `__c2` variable in various macros to workaround
&gt; +          a potential clang bug in -Wconditional-uninitialized. This
&gt; +          fixes a warning in WebCore/accessibility/AXObjectCache.cpp,
&gt; +          but only in external SDK builds.

Since these are headers from the ICU project, we would need to upstream the changes to ICU. But perhaps the issue is that we have old versions of these headers? I am not sure it’s OK to change our copies of ICU headers.

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:206
&gt; +    unsigned vectorLength = 0;

How about initializing this to 1 instead of 0. Why is 0 a good value?

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:221
&gt; +    RELEASE_ASSERT(vectorLength);

Not sure adding this is helpful, and if we just start set to 1 that would help.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2530
&gt; +// FIXME: Remove IGNORE_WARNINGS macros once one of &lt;rdar://problem/58615489&amp;58615391&gt; is fixed.
&gt; +IGNORE_WARNINGS_BEGIN(&quot;conditional-uninitialized&quot;)
&gt;          U16_NEXT(characterOffset.node-&gt;textContent(), offset, characterOffset.node-&gt;textContent().length(), ch);
&gt; +IGNORE_WARNINGS_END

Does this work? If it works then why are we also patching the ICU headers? A patch with both changes doesn’t make logical sense to me. Maybe I am missing something?

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1317
&gt; +        case CryptoAlgorithmIdentifier::None:
&gt; +            RELEASE_ASSERT_NOT_REACHED();
&gt; +            break;

Unneeded, lets not add it.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2352
&gt; +        CryptoAlgorithmIdentifier hash = CryptoAlgorithmIdentifier::None;

Please just select some actual algorithm identifier to initialize to. No need to add a &quot;none&quot; case.

&gt; Source/WebCore/crypto/CryptoAlgorithmIdentifier.h:33
&gt; +    None = 0,

Please don’t add this.

&gt; Source/WebCore/dom/Document.cpp:3618
&gt; -        double delay;
&gt; +        double delay = 0;
&gt;          String urlString;
&gt;          if (frame &amp;&amp; parseMetaHTTPEquivRefresh(content, delay, urlString)) {

OK to make this change.

Best fix here is probably to change parseMetaHTTPEquivRefresh to return Optional&lt;X&gt; where X is a struct holding both the delay and the URL string, rather than using out arguments.

&gt; Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp:199
&gt; -        GradientData* gradientData;
&gt; +        GradientData* gradientData = nullptr;
&gt;          if (m_savedContext &amp;&amp; (gradientData = m_gradientMap.get(&amp;renderer))) {

The fact that it warns on this seems like a compiler bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609329</commentid>
    <comment_count>3</comment_count>
      <attachid>388254</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 15:23:20 -0800</bug_when>
    <thetext>Comment on attachment 388254
Patch v1

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

&gt;&gt; Source/WTF/ChangeLog:3
&gt;&gt; +        Enable -Wconditional-uninitialized in WebCore project
&gt; 
&gt; Hard to tell cost/benefit for this one. Did it spot any problems?

Not sure if you&apos;re asking about the changes to the WTF project or the WebCore.  I will assume WebCore.

Yes, it found real issues in WebCore:
- In Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp, `vectorLength` could be left unset, leading to an OOB (or unexpected) write when indexing into a data structure.  This could happen even if `vectorLength` was set to zero on the stack (due to luck), hence the addition of the RELEASE_ASSERT().
- In Source/WebCore/Modules/webgpu/WHLSL/WHLSLParser.cpp, the switch statement had no `default` case for testing a single character value, which would leave `mode` in an undefined state.
- In Source/WebCore/css/parser/CSSSupportsParser.cpp, `result` could start in an unknown state (true or false), which could result in an unexpected state returned from the method.

&gt;&gt; Source/WTF/ChangeLog:13
&gt;&gt; +          but only in external SDK builds.
&gt; 
&gt; Since these are headers from the ICU project, we would need to upstream the changes to ICU. But perhaps the issue is that we have old versions of these headers? I am not sure it’s OK to change our copies of ICU headers.

I filed &lt;rdar://problem/58615489&gt; to fix a potential clang bug (false positive) and &lt;rdar://problem/58615391&gt; to fix this in ICU.

I will back out this change as the change in Source/WebCore/accessibility/AXObjectCache.cpp below works around this false positive.

&gt;&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:206
&gt;&gt; +    unsigned vectorLength = 0;
&gt; 
&gt; How about initializing this to 1 instead of 0. Why is 0 a good value?

The code below assumes `vectorLength` is always set to a non-zero value by the for loop.  If we set it to 1, we can&apos;t detect that scenario.

&gt;&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:221
&gt;&gt; +    RELEASE_ASSERT(vectorLength);
&gt; 
&gt; Not sure adding this is helpful, and if we just start set to 1 that would help.

As noted above, we can&apos;t detect if the for loop above failed to set a value if we set it to 1.  There is no guarantee in the loop that `vectorLength` will be set.

And since `vectorLength - 1` is used as an array index below, it can never be zero.

Additionally, the ASSERT() macros in the loop aren&apos;t compiled into Release builds, so if this code is parsing untrusted data, vectorLength could be set to a large 32-bit value if the ASCII character at `innerType.name()[innerType.name().length() - 1]` is less than the &apos;0&apos; character.  Those ASSERT() macros in the for loop should probably be extracted into an isValidInnerTypeName() inline function like this:

    else if (isValidInnerTypeName(...)) {
        vectorLength = innerType.name()[innerType.name().length() - 1] - &apos;0&apos;;
   }

At minimum, these ASSERT() macros should be ASSERT_WITH_SECURITY_IMPLICATION(), so I&apos;ll do that for now.

&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2530
&gt;&gt; +IGNORE_WARNINGS_END
&gt; 
&gt; Does this work? If it works then why are we also patching the ICU headers? A patch with both changes doesn’t make logical sense to me. Maybe I am missing something?

This works.  I&apos;m patching the ICU headers for time in the future when the ICU headers in the internal SDK are fixed and someone removes these warnings, then forgets that the open source build is not using the internal headers.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1317
&gt;&gt; +            break;
&gt; 
&gt; Unneeded, lets not add it.

Will remove.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2352
&gt;&gt; +        CryptoAlgorithmIdentifier hash = CryptoAlgorithmIdentifier::None;
&gt; 
&gt; Please just select some actual algorithm identifier to initialize to. No need to add a &quot;none&quot; case.

Will do.

&gt;&gt; Source/WebCore/crypto/CryptoAlgorithmIdentifier.h:33
&gt;&gt; +    None = 0,
&gt; 
&gt; Please don’t add this.

Okay.

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp:199
&gt;&gt;          if (m_savedContext &amp;&amp; (gradientData = m_gradientMap.get(&amp;renderer))) {
&gt; 
&gt; The fact that it warns on this seems like a compiler bug.

Yes, I added this test case to &lt;rdar://problem/58615489&gt; as it appears to be the same issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609350</commentid>
    <comment_count>4</comment_count>
      <attachid>388254</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 15:57:01 -0800</bug_when>
    <thetext>Comment on attachment 388254
Patch v1

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

&gt;&gt;&gt; Source/WTF/ChangeLog:3
&gt;&gt;&gt; +        Enable -Wconditional-uninitialized in WebCore project
&gt;&gt; 
&gt;&gt; Hard to tell cost/benefit for this one. Did it spot any problems?
&gt; 
&gt; Not sure if you&apos;re asking about the changes to the WTF project or the WebCore.  I will assume WebCore.
&gt; 
&gt; Yes, it found real issues in WebCore:
&gt; - In Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp, `vectorLength` could be left unset, leading to an OOB (or unexpected) write when indexing into a data structure.  This could happen even if `vectorLength` was set to zero on the stack (due to luck), hence the addition of the RELEASE_ASSERT().
&gt; - In Source/WebCore/Modules/webgpu/WHLSL/WHLSLParser.cpp, the switch statement had no `default` case for testing a single character value, which would leave `mode` in an undefined state.
&gt; - In Source/WebCore/css/parser/CSSSupportsParser.cpp, `result` could start in an unknown state (true or false), which could result in an unexpected state returned from the method.

The issue flagged in Source/WebCore/bindings/js/SerializedScriptValue.cpp was a real issue as well since `hash` could be passed uninitialized into CryptoKeyRSA::create().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609376</commentid>
    <comment_count>5</comment_count>
      <attachid>388254</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2020-01-21 16:34:49 -0800</bug_when>
    <thetext>Comment on attachment 388254
Patch v1

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

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:59
&gt; +    bool result = false;

Below result is only ever set on lines 69 through 74. Is this actually correct? Before &amp;= and |= could have initialized with uninitialized junk, but it&apos;s not clear to me that starting with false is correct either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609380</commentid>
    <comment_count>6</comment_count>
      <attachid>388373</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 16:46:16 -0800</bug_when>
    <thetext>Created attachment 388373
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609382</commentid>
    <comment_count>7</comment_count>
      <attachid>388254</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 16:57:12 -0800</bug_when>
    <thetext>Comment on attachment 388254
Patch v1

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

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:59
&gt;&gt; +    bool result = false;
&gt; 
&gt; Below result is only ever set on lines 69 through 74. Is this actually correct? Before &amp;= and |= could have initialized with uninitialized junk, but it&apos;s not clear to me that starting with false is correct either.

Actually, it doesn&apos;t matter what the starting value of `result` is because `clauseType` is set to `Unresolved` before the loop starts and thus the `if (clauseType == Unresolved)` condition will evaluate to true the first time through the loop.

I just assume that clang isn&apos;t able to reason about &quot;co-dependent&quot; variables like this so I picked the zero-value for a `bool` type.

Should clang be able to reason about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609383</commentid>
    <comment_count>8</comment_count>
      <attachid>388373</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 16:57:41 -0800</bug_when>
    <thetext>Comment on attachment 388373
Patch for landing

Waiting to set cq+ flag until EWS completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609386</commentid>
    <comment_count>9</comment_count>
      <attachid>388377</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 17:03:12 -0800</bug_when>
    <thetext>Created attachment 388377
Patch for landing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609388</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-21 17:07:02 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #9)
&gt; Created attachment 388377 [details]
&gt; Patch for landing v2

ERROR: Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:213:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:214:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:222:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
Total errors found: 3 in 13 files

Heh, forgot I added that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610270</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 12:51:10 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388377:

imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html bug 206554 (authors: shvaikalesh@gmail.com and youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610274</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 12:51:32 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388377:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610303</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 13:47:27 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388377:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610304</commentid>
    <comment_count>14</comment_count>
      <attachid>388377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 13:48:05 -0800</bug_when>
    <thetext>Comment on attachment 388377
Patch for landing v2

Clearing flags on attachment: 388377

Committed r255036: &lt;https://trac.webkit.org/changeset/255036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610305</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 13:48:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610306</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-23 13:49:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/58846881&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388254</attachid>
            <date>2020-01-20 13:31:25 -0800</date>
            <delta_ts>2020-01-21 16:46:13 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-206508-20200120133124.patch</filename>
            <type>text/plain</type>
            <size>17352</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA2NmU1YzdiYjk0NTBkMDUyNDEzMTdi
ZWJjMjUzMzlmOTk2MjAzZTcuLjQwNTAzNjFmNjk5MjQzZDAwMzBhODVlYTUzYjI0ODM5MGVhMWNk
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDEtMjAgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgLVdjb25kaXRpb25hbC11bmluaXRpYWxp
emVkIGluIFdlYkNvcmUgcHJvamVjdAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA2
NTA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aWN1L3VuaWNvZGUvdXRmMTYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGZfb2xkLmg6Cisg
ICAgICAgIC0gSW5pdGlhbGl6ZSBgX19jMmAgdmFyaWFibGUgaW4gdmFyaW91cyBtYWNyb3MgdG8g
d29ya2Fyb3VuZAorICAgICAgICAgIGEgcG90ZW50aWFsIGNsYW5nIGJ1ZyBpbiAtV2NvbmRpdGlv
bmFsLXVuaW5pdGlhbGl6ZWQuIFRoaXMKKyAgICAgICAgICBmaXhlcyBhIHdhcm5pbmcgaW4gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwLAorICAgICAgICAgIGJ1dCBvbmx5
IGluIGV4dGVybmFsIFNESyBidWlsZHMuCisKIDIwMjAtMDEtMjAgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWlzc2luZyBoZWFkZXIgZ3VhcmRzIGFu
ZCBjbGVhbiB1cCBlbXB0eSBmaWxlcyBpbiBibWFsbG9jLCBXVEYsIEphdmFTY3JpcHRDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggM2FiMmNmMDc3YzU0M2JkNzg4ZWRjMzE0YjRlMTUwYjA4MGU2ZDEzZC4uMzY4
NGNjZTkyODQ0ZWFlNzVjZmQwYmIyMmNhODVhMTg2OWYwYTZjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU5IEBACisyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CisKKyAgICAgICAgRW5hYmxlIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCBpbiBXZWJDb3Jl
IHByb2plY3QKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNjUwOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0Jhc2UueGNjb25maWc6CisgICAgICAgIChXQVJOSU5HX0NGTEFHUyk6IEFkZCAtV2NvbmRpdGlv
bmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNoLgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hM
U0wvV0hMU0xJbnRyaW5zaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5z
aWNzOjphZGRGdWxsVGV4dHVyZSk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgdmVjdG9yTGVuZ3Ro
YCB0byB6ZXJvIGFuZCBhZGQgcmVsZWFzZSBhc3NlcnQgdGhhdAorICAgICAgICAgIGl0IGlzIG5v
bi16ZXJvIHRvIHByZXZlbnQgYnVmZmVyIHVuZGVyZmxvdyByZWFkLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OlBhcnNlcjo6cGFyc2VSZXNvdXJjZVNlbWFudGljKToKKyAgICAgICAgLSBBZGQgZGVmYXVs
dCBjYXNlIHRvIHN3aXRjaCBzdGF0ZW1lbnQgd2l0aCByZWxlYXNlIGFzc2VydCBzaW5jZQorICAg
ICAgICAgIGBtb2RlYCBpcyBub3Qgc2V0IGZvciBhbGwgY2hhcmFjdGVyIHZhbHVlcy4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjaGFyYWN0ZXJGb3JDaGFyYWN0ZXJPZmZzZXQpOgorICAgICAgICAtIElnbm9yZSAtV2NvbmRp
dGlvbmFsLXdhcm5pbmcgZm9yIFUxNl9ORVhUKCkgbWFjcm8uIEZpeCBtdXN0IGJlCisgICAgICAg
ICAgaW4gY29tcGlsZXIgb3IgaW4gSUNVIGhlYWRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlh
bGl6ZXI6OndyaXRlKToKKyAgICAgICAgLSBBZGQgY2FzZSBmb3IgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6Tm9uZSB3aXRoIHJlbGVhc2UKKyAgICAgICAgICAgYXNzZXJ0LgorICAgICAgICAo
V2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJlYWRSU0FLZXkpOgorICAgICAgICAtIEluaXRp
YWxpemUgYGhhc2hgIHRvIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6Ok5vbmUuCisKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBpbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZUNvbXBpbGVyOjp0cmFuc2l0
aW9ucyk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgcmFuZ2VNaW5gIGZvciAwLgorCisgICAgICAg
ICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIpOgorICAgICAgICAtIEFkZCBgTm9uZWAgZW51bSBm
b3IgdW5pbml0aXRhbGl6ZWQgdmFsdWVzLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NTdXBw
b3J0c1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29u
c3VtZUNvbmRpdGlvbik6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgcmVzdWx0YCB0byBmYWxzZS4K
KworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6bW9kdWxvKToKKyAg
ICAgICAgLSBJbml0aWFsaXplIGBpbnB1dERpdmlkZW5kQ29weWAgdG8gSlNDOjpJbnZhbGlkR1BS
UmVnLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KToKKyAgICAgICAgLSBJbml0aWFsaXplIGBkZWxheWAg
dG8gemVyby4KKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFk
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50Ojph
cHBseVJlc291cmNlKToKKyAgICAgICAgLSBJbml0aWFsaXplIGBncmFkaWVudERhdGFgIHRvIG51
bGxwdHIuCisKIDIwMjAtMDEtMjAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggbWlzc2luZyBoZWFkZXIgZ3VhcmRzIGFuZCBjbGVhbiB1cCBlbXB0eSBm
aWxlcyBpbiBXZWJDb3JlLCBXZWJLaXRMZWdhY3ksIFdlYktpdCwgVG9vbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCmluZGV4IDQxMWNhMGFkM2M2YzM5NzIwYTFmNWFmNzgxMWQzNGYyOWQzZDE3YmEuLjQ4OWI0
NmUyNDc1NmE3YzZkMjcxZDliYjc5NzU0ZTdiMjZiZDdhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CisKKyAgICAgICAgRW5hYmxlIC1XY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCBpbiBX
ZWJDb3JlIHByb2plY3QKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNjUwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgIChXQVJOSU5HX0NGTEFHUyk6IEFkZCAtV2Nv
bmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNoLgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1
YXJkcyBhbmQgY2xlYW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBX
ZWJLaXQsIFRvb2xzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjE2Lmgg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjE2LmgKaW5kZXggYmRkODhhOGI5YzRmMDBlYTBk
ZjI3MmFjMDJmNjk2N2VmNjEwODliNi4uOGQ1NzZhMDA3ZDUyYjc5YWZkODMyOGE4MDQzNGZhZDRm
Mjk3OTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dGYxNi5oCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmMTYuaApAQCAtMTk4LDcgKzE5OCw3IEBACiAjZGVm
aW5lIFUxNl9HRVQocywgc3RhcnQsIGksIGxlbmd0aCwgYykgeyBcCiAgICAgKGMpPShzKVtpXTsg
XAogICAgIGlmKFUxNl9JU19TVVJST0dBVEUoYykpIHsgXAotICAgICAgICB1aW50MTZfdCBfX2My
OyBcCisgICAgICAgIHVpbnQxNl90IF9fYzIgPSAwOyBcCiAgICAgICAgIGlmKFUxNl9JU19TVVJS
T0dBVEVfTEVBRChjKSkgeyBcCiAgICAgICAgICAgICBpZigoaSkrMSE9KGxlbmd0aCkgJiYgVTE2
X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAogICAgICAgICAgICAgICAgIChjKT1VMTZf
R0VUX1NVUFBMRU1FTlRBUlkoKGMpLCBfX2MyKTsgXApAQCAtMjY0LDcgKzI2NCw3IEBACiAjZGVm
aW5lIFUxNl9ORVhUKHMsIGksIGxlbmd0aCwgYykgeyBcCiAgICAgKGMpPShzKVsoaSkrK107IFwK
ICAgICBpZihVMTZfSVNfTEVBRChjKSkgeyBcCi0gICAgICAgIHVpbnQxNl90IF9fYzI7IFwKKyAg
ICAgICAgdWludDE2X3QgX19jMiA9IDA7IFwKICAgICAgICAgaWYoKGkpIT0obGVuZ3RoKSAmJiBV
MTZfSVNfVFJBSUwoX19jMj0ocylbKGkpXSkpIHsgXAogICAgICAgICAgICAgKysoaSk7IFwKICAg
ICAgICAgICAgIChjKT1VMTZfR0VUX1NVUFBMRU1FTlRBUlkoKGMpLCBfX2MyKTsgXApAQCAtNDky
LDcgKzQ5Miw3IEBACiAjZGVmaW5lIFUxNl9QUkVWKHMsIHN0YXJ0LCBpLCBjKSB7IFwKICAgICAo
Yyk9KHMpWy0tKGkpXTsgXAogICAgIGlmKFUxNl9JU19UUkFJTChjKSkgeyBcCi0gICAgICAgIHVp
bnQxNl90IF9fYzI7IFwKKyAgICAgICAgdWludDE2X3QgX19jMiA9IDA7IFwKICAgICAgICAgaWYo
KGkpPihzdGFydCkgJiYgVTE2X0lTX0xFQUQoX19jMj0ocylbKGkpLTFdKSkgeyBcCiAgICAgICAg
ICAgICAtLShpKTsgXAogICAgICAgICAgICAgKGMpPVUxNl9HRVRfU1VQUExFTUVOVEFSWShfX2My
LCAoYykpOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0Zl9vbGQuaCBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmX29sZC5oCmluZGV4IGY5MTI1YjFkZDJlZDdlMWM2
ODRkYTE2NTRmNWU0N2RkN2NkNWZiMTQuLjlkMTc2NGUyOGJiMDcxZGE3NjAxMjNiOGJjOGVlY2Vl
NWMzZjMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmX29sZC5oCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmX29sZC5oCkBAIC01NzIsNyArNTcyLDcgQEAg
dHlwZWRlZiBpbnQzMl90IFVUZXh0T2Zmc2V0OwogI2RlZmluZSBVVEYxNl9HRVRfQ0hBUl9TQUZF
KHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCiAgICAgKGMpPShzKVtpXTsgXAog
ICAgIGlmKFVURl9JU19TVVJST0dBVEUoYykpIHsgXAotICAgICAgICB1aW50MTZfdCBfX2MyOyBc
CisgICAgICAgIHVpbnQxNl90IF9fYzIgPSAwOyBcCiAgICAgICAgIGlmKFVURl9JU19TVVJST0dB
VEVfRklSU1QoYykpIHsgXAogICAgICAgICAgICAgaWYoKGkpKzE8KGxlbmd0aCkgJiYgVVRGX0lT
X1NFQ09ORF9TVVJST0dBVEUoX19jMj0ocylbKGkpKzFdKSkgeyBcCiAgICAgICAgICAgICAgICAg
KGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKChjKSwgX19jMik7IFwKQEAgLTY0MCw3ICs2NDAsNyBA
QCB0eXBlZGVmIGludDMyX3QgVVRleHRPZmZzZXQ7CiAjZGVmaW5lIFVURjE2X05FWFRfQ0hBUl9T
QUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKICAgICAoYyk9KHMpWyhpKSsrXTsgXAog
ICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoYykpIHsgXAotICAgICAgICB1aW50MTZfdCBf
X2MyOyBcCisgICAgICAgIHVpbnQxNl90IF9fYzIgPSAwOyBcCiAgICAgICAgIGlmKChpKTwobGVu
Z3RoKSAmJiBVVEZfSVNfU0VDT05EX1NVUlJPR0FURShfX2MyPShzKVsoaSldKSkgeyBcCiAgICAg
ICAgICAgICArKyhpKTsgXAogICAgICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKChj
KSwgX19jMik7IFwKQEAgLTcxNSw3ICs3MTUsNyBAQCB0eXBlZGVmIGludDMyX3QgVVRleHRPZmZz
ZXQ7CiAjZGVmaW5lIFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3Qp
IHsgXAogICAgIChjKT0ocylbLS0oaSldOyBcCiAgICAgaWYoVVRGX0lTX1NFQ09ORF9TVVJST0dB
VEUoYykpIHsgXAotICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisgICAgICAgIHVpbnQxNl90IF9f
YzIgPSAwOyBcCiAgICAgICAgIGlmKChpKT4oc3RhcnQpICYmIFVURl9JU19GSVJTVF9TVVJST0dB
VEUoX19jMj0ocylbKGkpLTFdKSkgeyBcCiAgICAgICAgICAgICAtLShpKTsgXAogICAgICAgICAg
ICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKF9fYzIsIChjKSk7IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IGMxMTgxODhiMDY4YzUyNjkzNzNk
YWM1NWNjYjE2ZjFiODhhZGVlM2UuLjA3YmNjYmI4YTZjYTgyY2RmYmViMzgzMmJhM2YzYzBkZWQw
YzA0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpA
QCAtODgsNyArODgsNyBAQCBHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBZRVM7CiBHQ0NfV0FSTl9V
TklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVT
OwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwotV0FSTklOR19DRkxBR1MgPSAtV2Fs
bCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1X
Zm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5n
LW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3Vu
ZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25z
dHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1X
bm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6
ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0
LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1X
cmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3Ry
dWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1w
bGljaXQtZmFsbHRocm91Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOwogCiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ik
KE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTEludHJpbnNpY3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcAppbmRleCA1YzJi
YzRlMWNiZTA0MzExMGNmODMxNDNjYTgzZDE1MmE3ZjUyZTg4Li5hZjQyNjczMThiNzgzZDY0MTAz
OTM5ZDQ4N2RhYTE0NzJmZTRmMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTEludHJpbnNpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMSW50cmluc2ljcy5jcHAKQEAgLTIwMyw3ICsyMDMsNyBA
QCBib29sIEludHJpbnNpY3M6OmFkZEZ1bGxUZXh0dXJlKEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uJiBuYXRpdmVUeXBlRGVjbGFyYXRpbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1
bnNpZ25lZCBpbm5lclR5cGVJbmRleCA9IFdURl9BUlJBWV9MRU5HVEgobV90ZXh0dXJlSW5uZXJU
eXBlTmFtZXMpOwotICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0aDsKKyAgICB1bnNpZ25lZCB2ZWN0
b3JMZW5ndGggPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzKTsgKytpKSB7CiAgICAgICAgIGlmIChpbm5lclR5
cGUubmFtZSgpLnN0YXJ0c1dpdGgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXNbaV0pKSB7CiAgICAg
ICAgICAgICBpbm5lclR5cGVJbmRleCA9IGk7CkBAIC0yMTgsNiArMjE4LDcgQEAgYm9vbCBJbnRy
aW5zaWNzOjphZGRGdWxsVGV4dHVyZShBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiYgbmF0aXZl
VHlwZURlY2xhcmF0aW8KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVCh2ZWN0b3JMZW5ndGgpOwogICAgIEFTU0VSVChpbm5lclR5cGVJbmRleCAhPSBX
VEZfQVJSQVlfTEVOR1RIKG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzKSk7CiAgICAgbmF0aXZlVHlw
ZURlY2xhcmF0aW9uLnNldElzVGV4dHVyZSgpOwogICAgIG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5z
ZXRJc09wYXF1ZVR5cGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCA4ZDZiOTI1NzVhYjBmOWNkMjJjZGY5MzY5YjQ0
ZjUwMmMxMDdiYjFjLi4yMTIzY2ZlYjY2YzYyOGYyYzM2MWJjZDFiZDg5YjlmODZjNDYyYmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJz
ZXIuY3BwCkBAIC02OTYsNiArNjk2LDggQEAgYXV0byBQYXJzZXI6OnBhcnNlUmVzb3VyY2VTZW1h
bnRpYygpIC0+IEV4cGVjdGVkPEFTVDo6UmVzb3VyY2VTZW1hbnRpYywgRXJyb3I+CiAgICAgY2Fz
ZSAncyc6CiAgICAgICAgIG1vZGUgPSBBU1Q6OlJlc291cmNlU2VtYW50aWM6Ok1vZGU6OlNhbXBs
ZXI7CiAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAgYXV0byBpbmRleCA9IHJlY29nbml6ZVNpbXBs
ZVVuc2lnbmVkSW50ZWdlcihpbmZvU3RyaW5nVmlldy5zdWJzdHJpbmcoMSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAzZmIxYTEw
YjlhMDFhZmY4ZTJjYzY3YWVhN2JkNGUxYjJhYWY3YmEzLi5lN2MwM2Y4NWUxNjk1MzI1ZDEwMzM0
ZTY3MmVjNmE2M2Q4N2FkYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtODgsNyArODgsNyBAQCBHQ0NfV0FSTl9TSUdOX0NPTVBB
UkUgPSBZRVM7CiBHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwogR0NDX1dBUk5f
VU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwot
V0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3Jp
cHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1h
dC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAt
V3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0
cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2lt
cGxpY2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKK1dBUk5JTkdf
Q0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2Nv
bmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQt
c2VsZiAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNr
ZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJp
bmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRv
bG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggLVduby11bmtub3duLXdhcm5p
bmctb3B0aW9uOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRl
bnRpZmllcikpOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA2
ZjM3YzBiM2YyODk2MzUwNTI4NDQwNGQ0MmM2MWY3ZWIwNDg5NmIyLi5iM2FlYTYzY2Y5ZDEyYjg1
NzJkN2U2ODM4NzU2OTJmMjZmYWI0MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI1MjMsOCArMjUyMywxMiBAQCBzdGF0aWMgVUNo
YXIzMiBjaGFyYWN0ZXJGb3JDaGFyYWN0ZXJPZmZzZXQoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiBj
aGFyYWN0ZXJPZmZzZQogICAgIAogICAgIFVDaGFyMzIgY2ggPSAwOwogICAgIHVuc2lnbmVkIG9m
ZnNldCA9IGNoYXJhY3Rlck9mZnNldC5zdGFydEluZGV4ICsgY2hhcmFjdGVyT2Zmc2V0Lm9mZnNl
dDsKLSAgICBpZiAob2Zmc2V0IDwgY2hhcmFjdGVyT2Zmc2V0Lm5vZGUtPnRleHRDb250ZW50KCku
bGVuZ3RoKCkpCisgICAgaWYgKG9mZnNldCA8IGNoYXJhY3Rlck9mZnNldC5ub2RlLT50ZXh0Q29u
dGVudCgpLmxlbmd0aCgpKSB7CisvLyBGSVhNRTogUmVtb3ZlIElHTk9SRV9XQVJOSU5HUyBtYWNy
b3Mgb25jZSBvbmUgb2YgPHJkYXI6Ly9wcm9ibGVtLzU4NjE1NDg5JjU4NjE1MzkxPiBpcyBmaXhl
ZC4KK0lHTk9SRV9XQVJOSU5HU19CRUdJTigiY29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCIpCiAg
ICAgICAgIFUxNl9ORVhUKGNoYXJhY3Rlck9mZnNldC5ub2RlLT50ZXh0Q29udGVudCgpLCBvZmZz
ZXQsIGNoYXJhY3Rlck9mZnNldC5ub2RlLT50ZXh0Q29udGVudCgpLmxlbmd0aCgpLCBjaCk7CitJ
R05PUkVfV0FSTklOR1NfRU5ECisgICAgfQogICAgIHJldHVybiBjaDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5k
ZXggNjRkZmYyZDk4NGVmNzJkZDllYmE1MTAyNDA2MTBmYzE4ZTIxZDk0Ny4uNGRkYTQ3OWM2NjRj
Yzc0ZTA3ODhhMWQ5ZTBmZTMzYjlhNWY4NzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xMzEyLDYgKzEzMTIs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgd3JpdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0pCiAgICAgewogICAgICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgeworICAgICAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6Ok5vbmU6CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKICAgICAgICAgICAg
IHdyaXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXJUYWc6OlJTQUVTX1BLQ1MxX3YxXzUpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzQ2LDcgKzIzNDksNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGludDMyX3QgaXNSZXN0cmljdGVkVG9IYXNo
OwotICAgICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7CisgICAgICAgIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6Ok5v
bmU7CiAgICAgICAgIGlmICghcmVhZChpc1Jlc3RyaWN0ZWRUb0hhc2gpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaXNSZXN0cmljdGVkVG9IYXNoICYmICFyZWFkKGhh
c2gpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0
ZWNvZGVDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFC
eXRlY29kZUNvbXBpbGVyLmNwcAppbmRleCAyYjA0YjIyYjAxZTExNGViNmE5MzlhYTBlYWEyYzUz
MjA5NWNmZDA2Li5iOTQyMTliOTJiNmVlYzFkMGE3NjllMTE1NmE1MzY5NTY2NDExYjk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUNvbXBp
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29k
ZUNvbXBpbGVyLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIERGQUJ5dGVjb2RlQ29tcGlsZXI6OlRy
YW5zaXRpb25zIERGQUJ5dGVjb2RlQ29tcGlsZXI6OnRyYW5zaXRpb25zKGNvbnN0IERGQU5vZGUm
CiAgICAgfQogCiAgICAgVmVjdG9yPFJhbmdlPiYgcmFuZ2VzID0gdHJhbnNpdGlvbnMucmFuZ2Vz
OwotICAgIHVpbnQ4X3QgcmFuZ2VNaW47CisgICAgdWludDhfdCByYW5nZU1pbiA9IDA7CiAgICAg
Ym9vbCBoYXNSYW5nZU1pbiA9IGZhbHNlOwogICAgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDEy
ODsgaSsrKSB7CiAgICAgICAgIGlmIChoYXNSYW5nZU1pbikgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgKaW5kZXggNjU3YTdhYWRiZDA4
MTQzY2VlNDE5OWMyYzMyNjczNTFlYTk5YjNiZC4uNGU2MzczYWM5Mzg1MWEzNzI0Mzg2ODE4ZDEz
OTY5ZjNiN2Q2ZTEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllci5oCkBAIC0zMCw2ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGVudW0gY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciB7CisgICAgTm9uZSA9IDAs
CiAgICAgUlNBRVNfUEtDUzFfdjFfNSA9IDEsCiAgICAgUlNBU1NBX1BLQ1MxX3YxXzUsCiAgICAg
UlNBX1BTUywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9y
dHNQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNl
ci5jcHAKaW5kZXggYTFkN2JiYTlmNmQ5ZjQ4ODJjOTJlZjI3MjU1MDk4NjFlODJkOWUxNC4uZGYw
YWQwNjE4NGM0YzQyNGY5ZjM3ZGVmZWM0MzY1MzkzOTBkYjcyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
Q1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25z
dW1lQ29uZGl0aW9uKENTU1BhcnNlclQKICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJ
ZGVudFRva2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVOZWdhdGlvbihyYW5nZSk7CiAKLSAgICBib29sIHJlc3VsdDsKKyAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIENsYXVzZVR5cGUgY2xhdXNlVHlwZSA9IFVucmVz
b2x2ZWQ7CiAgICAgCiAgICAgYXV0byBwcmV2aW91c1Rva2VuVHlwZSA9IElkZW50VG9rZW47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggYmI1ZjE0ZGQx
MjNlMDc2YjAxYjE4NDdmNzEyNjI5MmFhZmFlZjE5OS4uOTc1ZDlhN2UwNzUwYmJkODJkZDVjNTE4
MTY3MjNlOWZmMDcxMGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVj
dG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcApAQCAtMjQ3MSw3ICsyNDcxLDcgQEAgQXNzZW1ibGVyOjpKdW1wIFNlbGVjdG9yQ29k
ZUdlbmVyYXRvcjo6bW9kdWxvKEFzc2VtYmxlcjo6UmVzdWx0Q29uZGl0aW9uIGNvbmRpdGkKICAg
ICB9CiAKICAgICAvLyBJZiB0aGUgaW5wdXQgcmVnaXN0ZXIgaXMgdXNlZCBieSBpZGl2LCBzYXZl
IGl0cyB2YWx1ZSB0byByZXN0b3JlIGl0IGFmdGVyIHRoZSBvcGVyYXRpb24uCi0gICAgQXNzZW1i
bGVyOjpSZWdpc3RlcklEIGlucHV0RGl2aWRlbmRDb3B5OworICAgIEFzc2VtYmxlcjo6UmVnaXN0
ZXJJRCBpbnB1dERpdmlkZW5kQ29weSA9IEpTQzo6SW52YWxpZEdQUlJlZzsKICAgICBTdGFja0Fs
bG9jYXRvcjo6U3RhY2tSZWZlcmVuY2UgcHVzaGVkSW5wdXREaXZpZGVuZFN0YWNrUmVmZXJlbmNl
OwogICAgIFJlZ2lzdGVyQWxsb2NhdGlvblR5cGUgc2F2ZWRJbnB1dERpdmlkZW5kQWxsb2NhdGlv
blR5cGUgPSBSZWdpc3RlckFsbG9jYXRpb25UeXBlOjpFeHRlcm5hbDsKICAgICBpZiAoaW5wdXRE
aXZpZGVuZCA9PSBkaXZpZGVuZCB8fCBpbnB1dERpdmlkZW5kID09IHJlbWFpbmRlcikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzk0MmY4ODFhNzhhZDM3NmFjYmQzY2VjMGJjMDM0MjM4
NDhiMzk2Yy4uY2U5YWFiYzVkOTA2YTllZTYwY2UxY2UyZjg4YWE1OTBjNTI1MjkyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zNjEzLDcgKzM2MTMsNyBAQCB2b2lkIERvY3VtZW50Ojpw
cm9jZXNzSHR0cEVxdWl2KGNvbnN0IFN0cmluZyYgZXF1aXYsIGNvbnN0IFN0cmluZyYgY29udGVu
dCwgYm9vbAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFRUUEhlYWRlck5hbWU6OlJlZnJl
c2g6IHsKLSAgICAgICAgZG91YmxlIGRlbGF5OworICAgICAgICBkb3VibGUgZGVsYXkgPSAwOwog
ICAgICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgICAgICBpZiAoZnJhbWUgJiYgcGFyc2VNZXRh
SFRUUEVxdWl2UmVmcmVzaChjb250ZW50LCBkZWxheSwgdXJsU3RyaW5nKSkgewogICAgICAgICAg
ICAgVVJMIGNvbXBsZXRlZFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwCmluZGV4IGNmM2Y5ZWE4OGIx
NDU5ZDk3NzNkZDUzZjJiMDEyZTJiNGIyYjA2MmMuLjJmYzZkZWU2NGFjNTFlZTZkNGI1ZDYxMDc5
YzBlZThlZTExZmZkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBA
IHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudDo6cG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIsIEdyYXBoCiAgICAgaWYgKHJlc291cmNlTW9kZS5jb250YWlucyhS
ZW5kZXJTVkdSZXNvdXJjZU1vZGU6OkFwcGx5VG9UZXh0KSkgewogI2lmIFVTRShDRykKICAgICAg
ICAgLy8gQ0cgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgZ3JhZGllbnQgb24gdGV4dAot
ICAgICAgICBHcmFkaWVudERhdGEqIGdyYWRpZW50RGF0YTsKKyAgICAgICAgR3JhZGllbnREYXRh
KiBncmFkaWVudERhdGEgPSBudWxscHRyOwogICAgICAgICBpZiAobV9zYXZlZENvbnRleHQgJiYg
KGdyYWRpZW50RGF0YSA9IG1fZ3JhZGllbnRNYXAuZ2V0KCZyZW5kZXJlcikpKSB7CiAgICAgICAg
ICAgICAvLyBSZXN0b3JlIG9uLXNjcmVlbiBkcmF3aW5nIGNvbnRleHQKICAgICAgICAgICAgIGNv
bnRleHQgPSBtX3NhdmVkQ29udGV4dDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388373</attachid>
            <date>2020-01-21 16:46:16 -0800</date>
            <delta_ts>2020-01-21 17:03:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206508-20200121164614.patch</filename>
            <type>text/plain</type>
            <size>14074</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uZWZjNzZkYzg2ZjYzOWU1OGYzZmFjYWFjN2Y3ZjQ0
ZTg2ZGZhYzYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAxLTIxICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIC1XY29uZGl0
aW9uYWwtdW5pbml0aWFsaXplZCBpbiBXZWJDb3JlIHByb2plY3QKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIwNjUwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgIChXQVJO
SU5HX0NGTEFHUyk6IEFkZCAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNoLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5zaWNzOjphZGRGdWxsVGV4dHVyZSk6CisgICAgICAg
IC0gSW5pdGlhbGl6ZSBgdmVjdG9yTGVuZ3RoYCB0byB6ZXJvIGFuZCBhZGQgcmVsZWFzZSBhc3Nl
cnQgdGhhdAorICAgICAgICAgIGl0IGlzIGluIGEgdmFsaWQgcmFuZ2UgWzEtNF0gdG8gcHJldmVu
dCBidWZmZXIgb3V0LW9mLWJvdW5kcworICAgICAgICAgIHJlYWRzLgorICAgICAgICAtIENoYW5n
ZSBBU1NFUlQoKSB0byBBU1NFUlRfV1RJSF9TRUNVUklUWV9JTVBMSUNBVElPTigpIHNpbmNlCisg
ICAgICAgICAgdGhleSBhbGwgaGF2ZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6UGFyc2VyOjpwYXJzZVJlc291cmNlU2VtYW50aWMpOgorICAgICAgICAtIEFkZCBk
ZWZhdWx0IGNhc2UgdG8gc3dpdGNoIHN0YXRlbWVudCB3aXRoIHJlbGVhc2UgYXNzZXJ0IHNpbmNl
CisgICAgICAgICAgYG1vZGVgIGlzIG5vdCBzZXQgZm9yIGFsbCBwb3NzaWJsZSBjaGFyYWN0ZXIg
dmFsdWVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNoYXJhY3RlckZvckNoYXJhY3Rlck9mZnNldCk6CisgICAgICAgIC0g
SWdub3JlIC1XY29uZGl0aW9uYWwtd2FybmluZyBmb3IgVTE2X05FWFQoKSBtYWNyby4gRml4IG11
c3QgYmUKKyAgICAgICAgICBpbiBjb21waWxlciBvciBpbiBJQ1UgaGVhZGVyLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkUlNBS2V5KToKKyAgICAgICAgLSBJbml0aWFsaXpl
IGBoYXNoYCB0byBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMS4gIFNIQV8xCisgICAg
ICAgICAgd2FzIGNob3NlbiBzaW5jZSBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
PgorICAgICAgICAgIHBhcmFtZXRlcnMgdXNlIHRoYXQgYXMgYSBkZWZhdWx0IHZhdWxlIGluCisg
ICAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcC4KKworICAgICAgICAqIGNvbnRl
bnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlQ29tcGlsZXI6OnRyYW5zaXRpb25zKToKKyAg
ICAgICAgLSBJbml0aWFsaXplIGByYW5nZU1pbmAgdG8gMC4KKworICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQ
YXJzZXI6OmNvbnN1bWVDb25kaXRpb24pOgorICAgICAgICAtIEluaXRpYWxpemUgYHJlc3VsdGAg
dG8gZmFsc2UuCisKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6Om1v
ZHVsbyk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgaW5wdXREaXZpZGVuZENvcHlgIHRvIEpTQzo6
SW52YWxpZEdQUlJlZy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6cHJvY2Vzc0h0dHBFcXVpdik6CisgICAgICAgIC0gSW5pdGlhbGl6
ZSBgZGVsYXlgIHRvIHplcm8uCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlR3JhZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VH
cmFkaWVudDo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgZ3JhZGllbnRE
YXRhYCB0byBudWxscHRyLiAgVGhpcyBmYWxzZSBwb3NpdGl2ZSBpcworICAgICAgICAgIHRyYWNr
ZWQgYnkgPHJkYXI6Ly9wcm9ibGVtLzU4NjE1NDg5Pi4KKwogMjAyMC0wMS0yMSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEF0b21TdHJpbmdUYWJs
ZSBzaG91bGQgYmUgc21hbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDc0YWVlYzQ0NzA3MDk1OWRm
OTNlZjM0NjdiYTY3ODI5N2RjNWY1NTUuLjk5MTZlYmU0MWJlNjBlNGZhNTAzZmUwZDVjYjI4OGVm
ZDM4ODExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTIx
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIC1X
Y29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCBpbiBXZWJDb3JlIHByb2plY3QKKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzIwNjUwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAg
IChXQVJOSU5HX0NGTEFHUyk6IEFkZCAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNo
LgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1YXJkcyBhbmQgY2xlYW4gdXAgZW1wdHkgZmlsZXMg
aW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBXZWJLaXQsIFRvb2xzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBjMTE4MTg4YjA2OGM1MjY5MzczZGFj
NTVjY2IxNmYxYjg4YWRlZTNlLi4wN2JjY2JiOGE2Y2E4MmNkZmJlYjM4MzJiYTNmM2MwZGVkMGMw
NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTg4LDcgKzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5J
TklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsK
IEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25v
LXVua25vd24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMSW50cmluc2ljcy5jcHAKaW5kZXggNWMyYmM0
ZTFjYmUwNDMxMTBjZjgzMTQzY2E4M2QxNTJhN2Y1MmU4OC4uMjRjMTRlYjQ4MWY1ODAwMDNjOTRl
NWZiZDVhNzNjOTE3NmQ3ZDgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTEludHJpbnNpY3MuY3BwCkBAIC0yMDMsMjIgKzIwMywyMyBA
QCBib29sIEludHJpbnNpY3M6OmFkZEZ1bGxUZXh0dXJlKEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uJiBuYXRpdmVUeXBlRGVjbGFyYXRpbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1
bnNpZ25lZCBpbm5lclR5cGVJbmRleCA9IFdURl9BUlJBWV9MRU5HVEgobV90ZXh0dXJlSW5uZXJU
eXBlTmFtZXMpOwotICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0aDsKKyAgICB1bnNpZ25lZCB2ZWN0
b3JMZW5ndGggPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzKTsgKytpKSB7CiAgICAgICAgIGlmIChpbm5lclR5
cGUubmFtZSgpLnN0YXJ0c1dpdGgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXNbaV0pKSB7CiAgICAg
ICAgICAgICBpbm5lclR5cGVJbmRleCA9IGk7CiAgICAgICAgICAgICBpZiAoaW5uZXJUeXBlLm5h
bWUoKSA9PSBtX3RleHR1cmVJbm5lclR5cGVOYW1lc1tpXSkKICAgICAgICAgICAgICAgICB2ZWN0
b3JMZW5ndGggPSAxOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
KGlubmVyVHlwZS5uYW1lKCkubGVuZ3RoKCkgPT0gc3RybGVuKG1fdGV4dHVyZUlubmVyVHlwZU5h
bWVzW2ldKSArIDEpOwotICAgICAgICAgICAgICAgIEFTU0VSVChpbm5lclR5cGUubmFtZSgpW2lu
bmVyVHlwZS5uYW1lKCkubGVuZ3RoKCkgLSAxXSA9PSAnMicKKyAgICAgICAgICAgICAgICBBU1NF
UlRfV1RJSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpID09
IHN0cmxlbihtX3RleHR1cmVJbm5lclR5cGVOYW1lc1tpXSkgKyAxKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlRfV1RJSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbm5lclR5cGUubmFtZSgpW2lubmVy
VHlwZS5uYW1lKCkubGVuZ3RoKCkgLSAxXSA9PSAnMicKICAgICAgICAgICAgICAgICAgICAgfHwg
aW5uZXJUeXBlLm5hbWUoKVtpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpIC0gMV0gPT0gJzMnCiAg
ICAgICAgICAgICAgICAgICAgIHx8IGlubmVyVHlwZS5uYW1lKClbaW5uZXJUeXBlLm5hbWUoKS5s
ZW5ndGgoKSAtIDFdID09ICc0Jyk7CiAgICAgICAgICAgICAgICAgdmVjdG9yTGVuZ3RoID0gaW5u
ZXJUeXBlLm5hbWUoKVtpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpIC0gMV0gLSAnMCc7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgQVNTRVJUKGlubmVyVHlwZUluZGV4ICE9
IFdURl9BUlJBWV9MRU5HVEgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXMpKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCh2ZWN0b3JMZW5ndGggJiYgdmVjdG9yTGVuZ3RoIDwgNSk7CisgICAgQVNTRVJUX1dU
SUhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5uZXJUeXBlSW5kZXggIT0gV1RGX0FSUkFZX0xFTkdU
SChtX3RleHR1cmVJbm5lclR5cGVOYW1lcykpOwogICAgIG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5z
ZXRJc1RleHR1cmUoKTsKICAgICBuYXRpdmVUeXBlRGVjbGFyYXRpb24uc2V0SXNPcGFxdWVUeXBl
KCk7CiAgICAgaWYgKG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5uYW1lKCkgPT0gIlRleHR1cmUxREFy
cmF5IiB8fCBuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJSV1RleHR1cmUxREFycmF5
IiB8fCBuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJUZXh0dXJlMkRBcnJheSIgfHwg
bmF0aXZlVHlwZURlY2xhcmF0aW9uLm5hbWUoKSA9PSAiUldUZXh0dXJlMkRBcnJheSIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5jcHAK
aW5kZXggOGQ2YjkyNTc1YWIwZjljZDIyY2RmOTM2OWI0NGY1MDJjMTA3YmIxYy4uMjEyM2NmZWI2
NmM2MjhmMmMzNjFiY2QxYmQ4OWI5Zjg2YzQ2MmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFyc2VyLmNwcApAQCAtNjk2LDYgKzY5Niw4
IEBAIGF1dG8gUGFyc2VyOjpwYXJzZVJlc291cmNlU2VtYW50aWMoKSAtPiBFeHBlY3RlZDxBU1Q6
OlJlc291cmNlU2VtYW50aWMsIEVycm9yPgogICAgIGNhc2UgJ3MnOgogICAgICAgICBtb2RlID0g
QVNUOjpSZXNvdXJjZVNlbWFudGljOjpNb2RlOjpTYW1wbGVyOwogICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
IAogICAgIGF1dG8gaW5kZXggPSByZWNvZ25pemVTaW1wbGVVbnNpZ25lZEludGVnZXIoaW5mb1N0
cmluZ1ZpZXcuc3Vic3RyaW5nKDEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggM2ZiMWExMGI5YTAxYWZmOGUyY2M2N2FlYTdiZDRl
MWIyYWFmN2JhMy4uZTdjMDNmODVlMTY5NTMyNWQxMDMzNGU2NzJlYzZhNjNkODdhZGJiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTg4LDcgKzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5J
TklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsK
IEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25v
LXVua25vd24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNmYzN2MwYjNmMjg5NjM1MDUyODQ0MDRk
NDJjNjFmN2ViMDQ4OTZiMi4uYjNhZWE2M2NmOWQxMmI4NTcyZDdlNjgzODc1NjkyZjI2ZmFiNDA2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0yNTIzLDggKzI1MjMsMTIgQEAgc3RhdGljIFVDaGFyMzIgY2hhcmFjdGVyRm9yQ2hhcmFj
dGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9mZnNldCYgY2hhcmFjdGVyT2Zmc2UKICAgICAKICAg
ICBVQ2hhcjMyIGNoID0gMDsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSBjaGFyYWN0ZXJPZmZzZXQu
c3RhcnRJbmRleCArIGNoYXJhY3Rlck9mZnNldC5vZmZzZXQ7Ci0gICAgaWYgKG9mZnNldCA8IGNo
YXJhY3Rlck9mZnNldC5ub2RlLT50ZXh0Q29udGVudCgpLmxlbmd0aCgpKQorICAgIGlmIChvZmZz
ZXQgPCBjaGFyYWN0ZXJPZmZzZXQubm9kZS0+dGV4dENvbnRlbnQoKS5sZW5ndGgoKSkgeworLy8g
RklYTUU6IFJlbW92ZSBJR05PUkVfV0FSTklOR1MgbWFjcm9zIG9uY2Ugb25lIG9mIDxyZGFyOi8v
cHJvYmxlbS81ODYxNTQ4OSY1ODYxNTM5MT4gaXMgZml4ZWQuCitJR05PUkVfV0FSTklOR1NfQkVH
SU4oImNvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQiKQogICAgICAgICBVMTZfTkVYVChjaGFyYWN0
ZXJPZmZzZXQubm9kZS0+dGV4dENvbnRlbnQoKSwgb2Zmc2V0LCBjaGFyYWN0ZXJPZmZzZXQubm9k
ZS0+dGV4dENvbnRlbnQoKS5sZW5ndGgoKSwgY2gpOworSUdOT1JFX1dBUk5JTkdTX0VORAorICAg
IH0KICAgICByZXR1cm4gY2g7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDY0ZGZmMmQ5ODRlZjcyZGQ5ZWJh
NTEwMjQwNjEwZmMxOGUyMWQ5NDcuLmE0YzZlNzIzODIwYjRjMTMwNDFjODI4ZWUyM2FiNWEzNTU0
YmJmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtMjM0Niw3ICsyMzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpbnQzMl90IGlzUmVzdHJpY3RlZFRvSGFzaDsK
LSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworICAgICAgICBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGhhc2ggPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
MTsKICAgICAgICAgaWYgKCFyZWFkKGlzUmVzdHJpY3RlZFRvSGFzaCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRUb0hhc2ggJiYgIXJlYWQoaGFz
aCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRl
Y29kZUNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5
dGVjb2RlQ29tcGlsZXIuY3BwCmluZGV4IDJiMDRiMjJiMDFlMTE0ZWI2YTkzOWFhMGVhYTJjNTMy
MDk1Y2ZkMDYuLmI5NDIxOWI5MmI2ZWVjMWQwYTc2OWUxMTU2YTUzNjk1NjY0MTFiOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGls
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2Rl
Q29tcGlsZXIuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgREZBQnl0ZWNvZGVDb21waWxlcjo6VHJh
bnNpdGlvbnMgREZBQnl0ZWNvZGVDb21waWxlcjo6dHJhbnNpdGlvbnMoY29uc3QgREZBTm9kZSYK
ICAgICB9CiAKICAgICBWZWN0b3I8UmFuZ2U+JiByYW5nZXMgPSB0cmFuc2l0aW9ucy5yYW5nZXM7
Ci0gICAgdWludDhfdCByYW5nZU1pbjsKKyAgICB1aW50OF90IHJhbmdlTWluID0gMDsKICAgICBi
b29sIGhhc1JhbmdlTWluID0gZmFsc2U7CiAgICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMTI4
OyBpKyspIHsKICAgICAgICAgaWYgKGhhc1JhbmdlTWluKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCmluZGV4IGExZDdiYmE5ZjZkOWY0ODgy
YzkyZWYyNzI1NTA5ODYxZTgyZDllMTQuLmRmMGFkMDYxODRjNGM0MjRmOWYzN2RlZmVjNDM2NTM5
MzkwZGI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9y
dHNQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQ
YXJzZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jl
c3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUCiAgICAg
aWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlw
ZSgpID09IEZ1bmN0aW9uVG9rZW4pCiAgICAgICAgIHJldHVybiBjb25zdW1lTmVnYXRpb24ocmFu
Z2UpOwogCi0gICAgYm9vbCByZXN1bHQ7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBD
bGF1c2VUeXBlIGNsYXVzZVR5cGUgPSBVbnJlc29sdmVkOwogICAgIAogICAgIGF1dG8gcHJldmlv
dXNUb2tlblR5cGUgPSBJZGVudFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCmluZGV4IGJiNWYxNGRkMTIzZTA3NmIwMWIxODQ3ZjcxMjYyOTJhYWZhZWYx
OTkuLjk3NWQ5YTdlMDc1MGJiZDgyZGQ1YzUxODE2NzIzZTlmZjA3MTBkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTI0NzEsNyArMjQ3MSw3IEBA
IEFzc2VtYmxlcjo6SnVtcCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6Om1vZHVsbyhBc3NlbWJsZXI6
OlJlc3VsdENvbmRpdGlvbiBjb25kaXRpCiAgICAgfQogCiAgICAgLy8gSWYgdGhlIGlucHV0IHJl
Z2lzdGVyIGlzIHVzZWQgYnkgaWRpdiwgc2F2ZSBpdHMgdmFsdWUgdG8gcmVzdG9yZSBpdCBhZnRl
ciB0aGUgb3BlcmF0aW9uLgotICAgIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBpbnB1dERpdmlkZW5k
Q29weTsKKyAgICBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgaW5wdXREaXZpZGVuZENvcHkgPSBKU0M6
OkludmFsaWRHUFJSZWc7CiAgICAgU3RhY2tBbGxvY2F0b3I6OlN0YWNrUmVmZXJlbmNlIHB1c2hl
ZElucHV0RGl2aWRlbmRTdGFja1JlZmVyZW5jZTsKICAgICBSZWdpc3RlckFsbG9jYXRpb25UeXBl
IHNhdmVkSW5wdXREaXZpZGVuZEFsbG9jYXRpb25UeXBlID0gUmVnaXN0ZXJBbGxvY2F0aW9uVHlw
ZTo6RXh0ZXJuYWw7CiAgICAgaWYgKGlucHV0RGl2aWRlbmQgPT0gZGl2aWRlbmQgfHwgaW5wdXRE
aXZpZGVuZCA9PSByZW1haW5kZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc5NDJm
ODgxYTc4YWQzNzZhY2JkM2NlYzBiYzAzNDIzODQ4YjM5NmMuLmNlOWFhYmM1ZDkwNmE5ZWU2MGNl
MWNlMmY4OGFhNTkwYzUyNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzYxMyw3
ICszNjEzLDcgQEAgdm9pZCBEb2N1bWVudDo6cHJvY2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcm
IGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEhUVFBIZWFkZXJOYW1lOjpSZWZyZXNoOiB7Ci0gICAgICAgIGRvdWJsZSBkZWxheTsK
KyAgICAgICAgZG91YmxlIGRlbGF5ID0gMDsKICAgICAgICAgU3RyaW5nIHVybFN0cmluZzsKICAg
ICAgICAgaWYgKGZyYW1lICYmIHBhcnNlTWV0YUhUVFBFcXVpdlJlZnJlc2goY29udGVudCwgZGVs
YXksIHVybFN0cmluZykpIHsKICAgICAgICAgICAgIFVSTCBjb21wbGV0ZWRVUkw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGll
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdy
YWRpZW50LmNwcAppbmRleCBjZjNmOWVhODhiMTQ1OWQ5NzczZGQ1M2YyYjAxMmUyYjRiMmIwNjJj
Li4yZmM2ZGVlNjRhYzUxZWU2ZDRiNWQ2MTA3OWMwZWU4ZWUxMWZmZDgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFk
aWVudC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlR3JhZGll
bnQ6OnBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBHcmFwaAogICAg
IGlmIChyZXNvdXJjZU1vZGUuY29udGFpbnMoUmVuZGVyU1ZHUmVzb3VyY2VNb2RlOjpBcHBseVRv
VGV4dCkpIHsKICNpZiBVU0UoQ0cpCiAgICAgICAgIC8vIENHIHJlcXVpcmVzIHNwZWNpYWwgaGFu
ZGxpbmcgZm9yIGdyYWRpZW50IG9uIHRleHQKLSAgICAgICAgR3JhZGllbnREYXRhKiBncmFkaWVu
dERhdGE7CisgICAgICAgIEdyYWRpZW50RGF0YSogZ3JhZGllbnREYXRhID0gbnVsbHB0cjsKICAg
ICAgICAgaWYgKG1fc2F2ZWRDb250ZXh0ICYmIChncmFkaWVudERhdGEgPSBtX2dyYWRpZW50TWFw
LmdldCgmcmVuZGVyZXIpKSkgewogICAgICAgICAgICAgLy8gUmVzdG9yZSBvbi1zY3JlZW4gZHJh
d2luZyBjb250ZXh0CiAgICAgICAgICAgICBjb250ZXh0ID0gbV9zYXZlZENvbnRleHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388377</attachid>
            <date>2020-01-21 17:03:12 -0800</date>
            <delta_ts>2020-01-23 13:48:05 -0800</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>bug-206508-20200121170311.patch</filename>
            <type>text/plain</type>
            <size>14074</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlNzFhNWRjNDQxN2Rm
OGFlM2VjNzg3MjNiMmYzZDI5NjQxYTdhMC4uNDVlYTFhOTdjMTI4YTdlYWVlYTliN2RjYWZjYzk2
MjAzNTlkZTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTAxLTIxICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIC1XY29uZGl0
aW9uYWwtdW5pbml0aWFsaXplZCBpbiBXZWJDb3JlIHByb2plY3QKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIwNjUwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgIChXQVJO
SU5HX0NGTEFHUyk6IEFkZCAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNoLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5zaWNzOjphZGRGdWxsVGV4dHVyZSk6CisgICAgICAg
IC0gSW5pdGlhbGl6ZSBgdmVjdG9yTGVuZ3RoYCB0byB6ZXJvIGFuZCBhZGQgcmVsZWFzZSBhc3Nl
cnQgdGhhdAorICAgICAgICAgIGl0IGlzIGluIGEgdmFsaWQgcmFuZ2UgWzEtNF0gdG8gcHJldmVu
dCBidWZmZXIgb3V0LW9mLWJvdW5kcworICAgICAgICAgIHJlYWRzLgorICAgICAgICAtIENoYW5n
ZSBBU1NFUlQoKSB0byBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigpIHNpbmNlCisg
ICAgICAgICAgdGhleSBhbGwgaGF2ZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6UGFyc2VyOjpwYXJzZVJlc291cmNlU2VtYW50aWMpOgorICAgICAgICAtIEFkZCBk
ZWZhdWx0IGNhc2UgdG8gc3dpdGNoIHN0YXRlbWVudCB3aXRoIHJlbGVhc2UgYXNzZXJ0IHNpbmNl
CisgICAgICAgICAgYG1vZGVgIGlzIG5vdCBzZXQgZm9yIGFsbCBwb3NzaWJsZSBjaGFyYWN0ZXIg
dmFsdWVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNoYXJhY3RlckZvckNoYXJhY3Rlck9mZnNldCk6CisgICAgICAgIC0g
SWdub3JlIC1XY29uZGl0aW9uYWwtd2FybmluZyBmb3IgVTE2X05FWFQoKSBtYWNyby4gRml4IG11
c3QgYmUKKyAgICAgICAgICBpbiBjb21waWxlciBvciBpbiBJQ1UgaGVhZGVyLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkUlNBS2V5KToKKyAgICAgICAgLSBJbml0aWFsaXpl
IGBoYXNoYCB0byBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMS4gIFNIQV8xCisgICAg
ICAgICAgd2FzIGNob3NlbiBzaW5jZSBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
PgorICAgICAgICAgIHBhcmFtZXRlcnMgdXNlIHRoYXQgYXMgYSBkZWZhdWx0IHZhdWxlIGluCisg
ICAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcC4KKworICAgICAgICAqIGNvbnRl
bnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlQ29tcGlsZXI6OnRyYW5zaXRpb25zKToKKyAg
ICAgICAgLSBJbml0aWFsaXplIGByYW5nZU1pbmAgdG8gMC4KKworICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQ
YXJzZXI6OmNvbnN1bWVDb25kaXRpb24pOgorICAgICAgICAtIEluaXRpYWxpemUgYHJlc3VsdGAg
dG8gZmFsc2UuCisKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6Om1v
ZHVsbyk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgaW5wdXREaXZpZGVuZENvcHlgIHRvIEpTQzo6
SW52YWxpZEdQUlJlZy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6cHJvY2Vzc0h0dHBFcXVpdik6CisgICAgICAgIC0gSW5pdGlhbGl6
ZSBgZGVsYXlgIHRvIHplcm8uCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlR3JhZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VH
cmFkaWVudDo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgIC0gSW5pdGlhbGl6ZSBgZ3JhZGllbnRE
YXRhYCB0byBudWxscHRyLiAgVGhpcyBmYWxzZSBwb3NpdGl2ZSBpcworICAgICAgICAgIHRyYWNr
ZWQgYnkgPHJkYXI6Ly9wcm9ibGVtLzU4NjE1NDg5Pi4KKwogMjAyMC0wMS0yMSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEF0b21TdHJpbmdUYWJs
ZSBzaG91bGQgYmUgc21hbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDc0YWVlYzQ0NzA3MDk1OWRm
OTNlZjM0NjdiYTY3ODI5N2RjNWY1NTUuLjk5MTZlYmU0MWJlNjBlNGZhNTAzZmUwZDVjYjI4OGVm
ZDM4ODExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTIx
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIC1X
Y29uZGl0aW9uYWwtdW5pbml0aWFsaXplZCBpbiBXZWJDb3JlIHByb2plY3QKKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzIwNjUwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAg
IChXQVJOSU5HX0NGTEFHUyk6IEFkZCAtV2NvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQgc3dpdGNo
LgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1YXJkcyBhbmQgY2xlYW4gdXAgZW1wdHkgZmlsZXMg
aW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBXZWJLaXQsIFRvb2xzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCBjMTE4MTg4YjA2OGM1MjY5MzczZGFj
NTVjY2IxNmYxYjg4YWRlZTNlLi4wN2JjY2JiOGE2Y2E4MmNkZmJlYjM4MzJiYTNmM2MwZGVkMGMw
NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTg4LDcgKzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5J
TklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsK
IEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25v
LXVua25vd24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMSW50cmluc2ljcy5jcHAKaW5kZXggNWMyYmM0
ZTFjYmUwNDMxMTBjZjgzMTQzY2E4M2QxNTJhN2Y1MmU4OC4uZDYxYjQwNGIyZGNmMjEzYTIxZDZm
ODE4Nzc2NzUxNTdmN2Q1YjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTEludHJpbnNpY3MuY3BwCkBAIC0yMDMsMjIgKzIwMywyMyBA
QCBib29sIEludHJpbnNpY3M6OmFkZEZ1bGxUZXh0dXJlKEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uJiBuYXRpdmVUeXBlRGVjbGFyYXRpbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1
bnNpZ25lZCBpbm5lclR5cGVJbmRleCA9IFdURl9BUlJBWV9MRU5HVEgobV90ZXh0dXJlSW5uZXJU
eXBlTmFtZXMpOwotICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0aDsKKyAgICB1bnNpZ25lZCB2ZWN0
b3JMZW5ndGggPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzKTsgKytpKSB7CiAgICAgICAgIGlmIChpbm5lclR5
cGUubmFtZSgpLnN0YXJ0c1dpdGgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXNbaV0pKSB7CiAgICAg
ICAgICAgICBpbm5lclR5cGVJbmRleCA9IGk7CiAgICAgICAgICAgICBpZiAoaW5uZXJUeXBlLm5h
bWUoKSA9PSBtX3RleHR1cmVJbm5lclR5cGVOYW1lc1tpXSkKICAgICAgICAgICAgICAgICB2ZWN0
b3JMZW5ndGggPSAxOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
KGlubmVyVHlwZS5uYW1lKCkubGVuZ3RoKCkgPT0gc3RybGVuKG1fdGV4dHVyZUlubmVyVHlwZU5h
bWVzW2ldKSArIDEpOwotICAgICAgICAgICAgICAgIEFTU0VSVChpbm5lclR5cGUubmFtZSgpW2lu
bmVyVHlwZS5uYW1lKCkubGVuZ3RoKCkgLSAxXSA9PSAnMicKKyAgICAgICAgICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpID09
IHN0cmxlbihtX3RleHR1cmVJbm5lclR5cGVOYW1lc1tpXSkgKyAxKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbm5lclR5cGUubmFtZSgpW2lubmVy
VHlwZS5uYW1lKCkubGVuZ3RoKCkgLSAxXSA9PSAnMicKICAgICAgICAgICAgICAgICAgICAgfHwg
aW5uZXJUeXBlLm5hbWUoKVtpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpIC0gMV0gPT0gJzMnCiAg
ICAgICAgICAgICAgICAgICAgIHx8IGlubmVyVHlwZS5uYW1lKClbaW5uZXJUeXBlLm5hbWUoKS5s
ZW5ndGgoKSAtIDFdID09ICc0Jyk7CiAgICAgICAgICAgICAgICAgdmVjdG9yTGVuZ3RoID0gaW5u
ZXJUeXBlLm5hbWUoKVtpbm5lclR5cGUubmFtZSgpLmxlbmd0aCgpIC0gMV0gLSAnMCc7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgQVNTRVJUKGlubmVyVHlwZUluZGV4ICE9
IFdURl9BUlJBWV9MRU5HVEgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXMpKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCh2ZWN0b3JMZW5ndGggJiYgdmVjdG9yTGVuZ3RoIDwgNSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5uZXJUeXBlSW5kZXggIT0gV1RGX0FSUkFZX0xFTkdU
SChtX3RleHR1cmVJbm5lclR5cGVOYW1lcykpOwogICAgIG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5z
ZXRJc1RleHR1cmUoKTsKICAgICBuYXRpdmVUeXBlRGVjbGFyYXRpb24uc2V0SXNPcGFxdWVUeXBl
KCk7CiAgICAgaWYgKG5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5uYW1lKCkgPT0gIlRleHR1cmUxREFy
cmF5IiB8fCBuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJSV1RleHR1cmUxREFycmF5
IiB8fCBuYXRpdmVUeXBlRGVjbGFyYXRpb24ubmFtZSgpID09ICJUZXh0dXJlMkRBcnJheSIgfHwg
bmF0aXZlVHlwZURlY2xhcmF0aW9uLm5hbWUoKSA9PSAiUldUZXh0dXJlMkRBcnJheSIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5jcHAK
aW5kZXggOGQ2YjkyNTc1YWIwZjljZDIyY2RmOTM2OWI0NGY1MDJjMTA3YmIxYy4uMjEyM2NmZWI2
NmM2MjhmMmMzNjFiY2QxYmQ4OWI5Zjg2YzQ2MmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFyc2VyLmNwcApAQCAtNjk2LDYgKzY5Niw4
IEBAIGF1dG8gUGFyc2VyOjpwYXJzZVJlc291cmNlU2VtYW50aWMoKSAtPiBFeHBlY3RlZDxBU1Q6
OlJlc291cmNlU2VtYW50aWMsIEVycm9yPgogICAgIGNhc2UgJ3MnOgogICAgICAgICBtb2RlID0g
QVNUOjpSZXNvdXJjZVNlbWFudGljOjpNb2RlOjpTYW1wbGVyOwogICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
IAogICAgIGF1dG8gaW5kZXggPSByZWNvZ25pemVTaW1wbGVVbnNpZ25lZEludGVnZXIoaW5mb1N0
cmluZ1ZpZXcuc3Vic3RyaW5nKDEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggM2ZiMWExMGI5YTAxYWZmOGUyY2M2N2FlYTdiZDRl
MWIyYWFmN2JhMy4uZTdjMDNmODVlMTY5NTMyNWQxMDMzNGU2NzJlYzZhNjNkODdhZGJiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAg
LTg4LDcgKzg4LDcgQEAgR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOwogR0NDX1dBUk5fVU5J
TklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsK
IEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwg
LVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zv
cm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1u
b3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRl
ZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25v
LXVua25vd24td2FybmluZy1vcHRpb247CitXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMgLVdjb25kaXRpb25hbC11bmluaXRpYWxpemVk
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3Jl
ZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVj
dG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNmYzN2MwYjNmMjg5NjM1MDUyODQ0MDRk
NDJjNjFmN2ViMDQ4OTZiMi4uYjNhZWE2M2NmOWQxMmI4NTcyZDdlNjgzODc1NjkyZjI2ZmFiNDA2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0yNTIzLDggKzI1MjMsMTIgQEAgc3RhdGljIFVDaGFyMzIgY2hhcmFjdGVyRm9yQ2hhcmFj
dGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9mZnNldCYgY2hhcmFjdGVyT2Zmc2UKICAgICAKICAg
ICBVQ2hhcjMyIGNoID0gMDsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSBjaGFyYWN0ZXJPZmZzZXQu
c3RhcnRJbmRleCArIGNoYXJhY3Rlck9mZnNldC5vZmZzZXQ7Ci0gICAgaWYgKG9mZnNldCA8IGNo
YXJhY3Rlck9mZnNldC5ub2RlLT50ZXh0Q29udGVudCgpLmxlbmd0aCgpKQorICAgIGlmIChvZmZz
ZXQgPCBjaGFyYWN0ZXJPZmZzZXQubm9kZS0+dGV4dENvbnRlbnQoKS5sZW5ndGgoKSkgeworLy8g
RklYTUU6IFJlbW92ZSBJR05PUkVfV0FSTklOR1MgbWFjcm9zIG9uY2Ugb25lIG9mIDxyZGFyOi8v
cHJvYmxlbS81ODYxNTQ4OSY1ODYxNTM5MT4gaXMgZml4ZWQuCitJR05PUkVfV0FSTklOR1NfQkVH
SU4oImNvbmRpdGlvbmFsLXVuaW5pdGlhbGl6ZWQiKQogICAgICAgICBVMTZfTkVYVChjaGFyYWN0
ZXJPZmZzZXQubm9kZS0+dGV4dENvbnRlbnQoKSwgb2Zmc2V0LCBjaGFyYWN0ZXJPZmZzZXQubm9k
ZS0+dGV4dENvbnRlbnQoKS5sZW5ndGgoKSwgY2gpOworSUdOT1JFX1dBUk5JTkdTX0VORAorICAg
IH0KICAgICByZXR1cm4gY2g7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDY0ZGZmMmQ5ODRlZjcyZGQ5ZWJh
NTEwMjQwNjEwZmMxOGUyMWQ5NDcuLmE0YzZlNzIzODIwYjRjMTMwNDFjODI4ZWUyM2FiNWEzNTU0
YmJmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtMjM0Niw3ICsyMzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpbnQzMl90IGlzUmVzdHJpY3RlZFRvSGFzaDsK
LSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworICAgICAgICBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGhhc2ggPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
MTsKICAgICAgICAgaWYgKCFyZWFkKGlzUmVzdHJpY3RlZFRvSGFzaCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRUb0hhc2ggJiYgIXJlYWQoaGFz
aCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRl
Y29kZUNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5
dGVjb2RlQ29tcGlsZXIuY3BwCmluZGV4IDJiMDRiMjJiMDFlMTE0ZWI2YTkzOWFhMGVhYTJjNTMy
MDk1Y2ZkMDYuLmI5NDIxOWI5MmI2ZWVjMWQwYTc2OWUxMTU2YTUzNjk1NjY0MTFiOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlQ29tcGls
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5dGVjb2Rl
Q29tcGlsZXIuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgREZBQnl0ZWNvZGVDb21waWxlcjo6VHJh
bnNpdGlvbnMgREZBQnl0ZWNvZGVDb21waWxlcjo6dHJhbnNpdGlvbnMoY29uc3QgREZBTm9kZSYK
ICAgICB9CiAKICAgICBWZWN0b3I8UmFuZ2U+JiByYW5nZXMgPSB0cmFuc2l0aW9ucy5yYW5nZXM7
Ci0gICAgdWludDhfdCByYW5nZU1pbjsKKyAgICB1aW50OF90IHJhbmdlTWluID0gMDsKICAgICBi
b29sIGhhc1JhbmdlTWluID0gZmFsc2U7CiAgICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMTI4
OyBpKyspIHsKICAgICAgICAgaWYgKGhhc1JhbmdlTWluKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCmluZGV4IGExZDdiYmE5ZjZkOWY0ODgy
YzkyZWYyNzI1NTA5ODYxZTgyZDllMTQuLmRmMGFkMDYxODRjNGM0MjRmOWYzN2RlZmVjNDM2NTM5
MzkwZGI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9y
dHNQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQ
YXJzZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jl
c3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUCiAgICAg
aWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlw
ZSgpID09IEZ1bmN0aW9uVG9rZW4pCiAgICAgICAgIHJldHVybiBjb25zdW1lTmVnYXRpb24ocmFu
Z2UpOwogCi0gICAgYm9vbCByZXN1bHQ7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBD
bGF1c2VUeXBlIGNsYXVzZVR5cGUgPSBVbnJlc29sdmVkOwogICAgIAogICAgIGF1dG8gcHJldmlv
dXNUb2tlblR5cGUgPSBJZGVudFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCmluZGV4IGJiNWYxNGRkMTIzZTA3NmIwMWIxODQ3ZjcxMjYyOTJhYWZhZWYx
OTkuLjk3NWQ5YTdlMDc1MGJiZDgyZGQ1YzUxODE2NzIzZTlmZjA3MTBkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTI0NzEsNyArMjQ3MSw3IEBA
IEFzc2VtYmxlcjo6SnVtcCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6Om1vZHVsbyhBc3NlbWJsZXI6
OlJlc3VsdENvbmRpdGlvbiBjb25kaXRpCiAgICAgfQogCiAgICAgLy8gSWYgdGhlIGlucHV0IHJl
Z2lzdGVyIGlzIHVzZWQgYnkgaWRpdiwgc2F2ZSBpdHMgdmFsdWUgdG8gcmVzdG9yZSBpdCBhZnRl
ciB0aGUgb3BlcmF0aW9uLgotICAgIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBpbnB1dERpdmlkZW5k
Q29weTsKKyAgICBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgaW5wdXREaXZpZGVuZENvcHkgPSBKU0M6
OkludmFsaWRHUFJSZWc7CiAgICAgU3RhY2tBbGxvY2F0b3I6OlN0YWNrUmVmZXJlbmNlIHB1c2hl
ZElucHV0RGl2aWRlbmRTdGFja1JlZmVyZW5jZTsKICAgICBSZWdpc3RlckFsbG9jYXRpb25UeXBl
IHNhdmVkSW5wdXREaXZpZGVuZEFsbG9jYXRpb25UeXBlID0gUmVnaXN0ZXJBbGxvY2F0aW9uVHlw
ZTo6RXh0ZXJuYWw7CiAgICAgaWYgKGlucHV0RGl2aWRlbmQgPT0gZGl2aWRlbmQgfHwgaW5wdXRE
aXZpZGVuZCA9PSByZW1haW5kZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc5NDJm
ODgxYTc4YWQzNzZhY2JkM2NlYzBiYzAzNDIzODQ4YjM5NmMuLmNlOWFhYmM1ZDkwNmE5ZWU2MGNl
MWNlMmY4OGFhNTkwYzUyNTI5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzYxMyw3
ICszNjEzLDcgQEAgdm9pZCBEb2N1bWVudDo6cHJvY2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcm
IGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIEhUVFBIZWFkZXJOYW1lOjpSZWZyZXNoOiB7Ci0gICAgICAgIGRvdWJsZSBkZWxheTsK
KyAgICAgICAgZG91YmxlIGRlbGF5ID0gMDsKICAgICAgICAgU3RyaW5nIHVybFN0cmluZzsKICAg
ICAgICAgaWYgKGZyYW1lICYmIHBhcnNlTWV0YUhUVFBFcXVpdlJlZnJlc2goY29udGVudCwgZGVs
YXksIHVybFN0cmluZykpIHsKICAgICAgICAgICAgIFVSTCBjb21wbGV0ZWRVUkw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGll
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdy
YWRpZW50LmNwcAppbmRleCBjZjNmOWVhODhiMTQ1OWQ5NzczZGQ1M2YyYjAxMmUyYjRiMmIwNjJj
Li4yZmM2ZGVlNjRhYzUxZWU2ZDRiNWQ2MTA3OWMwZWU4ZWUxMWZmZDgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFk
aWVudC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlR3JhZGll
bnQ6OnBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBHcmFwaAogICAg
IGlmIChyZXNvdXJjZU1vZGUuY29udGFpbnMoUmVuZGVyU1ZHUmVzb3VyY2VNb2RlOjpBcHBseVRv
VGV4dCkpIHsKICNpZiBVU0UoQ0cpCiAgICAgICAgIC8vIENHIHJlcXVpcmVzIHNwZWNpYWwgaGFu
ZGxpbmcgZm9yIGdyYWRpZW50IG9uIHRleHQKLSAgICAgICAgR3JhZGllbnREYXRhKiBncmFkaWVu
dERhdGE7CisgICAgICAgIEdyYWRpZW50RGF0YSogZ3JhZGllbnREYXRhID0gbnVsbHB0cjsKICAg
ICAgICAgaWYgKG1fc2F2ZWRDb250ZXh0ICYmIChncmFkaWVudERhdGEgPSBtX2dyYWRpZW50TWFw
LmdldCgmcmVuZGVyZXIpKSkgewogICAgICAgICAgICAgLy8gUmVzdG9yZSBvbi1zY3JlZW4gZHJh
d2luZyBjb250ZXh0CiAgICAgICAgICAgICBjb250ZXh0ID0gbV9zYXZlZENvbnRleHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>