<?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>237163</bug_id>
          
          <creation_ts>2022-02-24 15:27:05 -0800</creation_ts>
          <short_desc>AX: WebKit should ignore empty modals rather than trapping focus inside them</short_desc>
          <delta_ts>2022-02-28 23:47:22 -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>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845799</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-24 15:27:05 -0800</bug_when>
    <thetext>Given this markup:

&lt;div role=&quot;dialog&quot; aria-modal=&quot;true&quot;&gt;
    &lt;div aria-hidden=&quot;true&quot;&gt;
        &lt;button&gt;Close modal (inside modal)&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

There is no accessible content inside this modal, but WebKit traps user focus inside, making all of the rest of the page completely inaccessible.

medium.com articles (e.g. https://medium.com/@emilymenonbender/no-llms-arent-like-people-with-disabilities-and-it-s-problematic-to-argue-that-they-are-a2ac0df0e435) have similar markup, and are thus entirely inaccessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845801</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 15:27:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/89442583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845810</commentid>
    <comment_count>2</comment_count>
      <attachid>453145</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-24 15:52:08 -0800</bug_when>
    <thetext>Created attachment 453145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845828</commentid>
    <comment_count>3</comment_count>
      <attachid>453145</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-02-24 16:26:32 -0800</bug_when>
    <thetext>Comment on attachment 453145
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:277
&gt; +    RenderObject* renderer = node-&gt;renderer();

auto*

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:305
&gt; +{

This seems very expensive now. Determining aria modal will have to visit every node. Is this something we could determine another way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845835</commentid>
    <comment_count>4</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-24 16:38:00 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:305
&gt; &gt; +{
&gt; 
&gt; This seems very expensive now. Determining aria modal will have to visit
&gt; every node. Is this something we could determine another way?
The only additional work we&apos;re doing is on elements within m_modalElementsSet, which is limited only to page elements with role=&quot;dialog&quot; and aria-modal=&quot;true&quot;, or &lt;dialog&gt; elements.

And from there, the additional work we do is a scan of the direct children of the modal (i.e. one layer traversal vs. an entire subtree traversal).

And then the result is cached in m_currentModalElement, so we shouldn&apos;t have to re-compute this often.

So I don&apos;t think it&apos;s much more expensive. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845844</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-24 17:14:11 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #2)
&gt; Created attachment 453145 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ a/Source/WebCore/accessibility/AXObjectCache.cpp

+static bool isNodeVisible(Node* node)
+{
+    if (!is&lt;Element&gt;(node))
+        return false;

I think static text will return false here, don&apos;t see the need for this check, only when you are going to check for element attributes like aria-hidden.

Ah I see down below that this was a class method and you turned it into a static function. Still I don&apos;t think that the check for is&lt;Element&gt; is good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845912</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-02-24 22:35:50 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; &gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:305
&gt; &gt; &gt; +{
&gt; &gt; 
&gt; &gt; This seems very expensive now. Determining aria modal will have to visit
&gt; &gt; every node. Is this something we could determine another way?
&gt; The only additional work we&apos;re doing is on elements within
&gt; m_modalElementsSet, which is limited only to page elements with
&gt; role=&quot;dialog&quot; and aria-modal=&quot;true&quot;, or &lt;dialog&gt; elements.
&gt; 
&gt; And from there, the additional work we do is a scan of the direct children
&gt; of the modal (i.e. one layer traversal vs. an entire subtree traversal).

Will a one level traversal be enough or do we need to keep digging to determine if we still have accessible content?

&gt; 
&gt; And then the result is cached in m_currentModalElement, so we shouldn&apos;t have
&gt; to re-compute this often.
&gt; 
&gt; So I don&apos;t think it&apos;s much more expensive. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846003</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-02-25 06:41:22 -0800</bug_when>
    <thetext>I cancelled https://ews-build.webkit.org/#/builders/68/builds/9127 to speed up ios-wk2  queue. It finished running layout-test and indicated some failures, please have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846037</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-25 08:51:39 -0800</bug_when>
    <thetext>&gt; Will a one level traversal be enough or do we need to keep digging to
&gt; determine if we still have accessible content?
One layer is enough, since aria-hidden=&quot;true&quot;, visibility: hidden, and display: none all inherently make the layers beneath also invisible to AX. So we only need to find one thing in the first layer that is none of those to consider the modal valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846040</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-02-25 09:00:19 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #8)
&gt; &gt; Will a one level traversal be enough or do we need to keep digging to
&gt; &gt; determine if we still have accessible content?
&gt; One layer is enough, since aria-hidden=&quot;true&quot;, visibility: hidden, and
&gt; display: none all inherently make the layers beneath also invisible to AX.
&gt; So we only need to find one thing in the first layer that is none of those
&gt; to consider the modal valid.

What if we had (apologies for code typed on a phone)

&lt;div modal=true&gt;
    &lt;div&gt;
       &lt;div&gt;
          &lt;div hidden&gt;
             Content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846043</commentid>
    <comment_count>10</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-25 09:11:15 -0800</bug_when>
    <thetext>&gt; What if we had (apologies for code typed on a phone)
&gt; 
&gt; &lt;div modal=true&gt;
&gt;     &lt;div&gt;
&gt;        &lt;div&gt;
&gt;           &lt;div hidden&gt;
&gt;              Content
You&apos;re right, we do need to traverse multiple levels in this case. I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846307</commentid>
    <comment_count>11</comment_count>
      <attachid>453297</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-26 09:40:18 -0800</bug_when>
    <thetext>Created attachment 453297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846314</commentid>
    <comment_count>12</comment_count>
      <attachid>453297</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-02-26 10:00:46 -0800</bug_when>
    <thetext>Comment on attachment 453297
Patch

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

&gt; Source/WebCore/accessibility/ShouldConsiderModals.h:30
&gt; +enum class ShouldConsiderModals : uint8_t { No, Yes };

I think we could drop the should from this and still have same clarity. 

Also can we put this enum in some accessibility file? Seems like a little for just one yes/no</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846317</commentid>
    <comment_count>13</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-26 10:08:05 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #12)
&gt; Comment on attachment 453297 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453297&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/ShouldConsiderModals.h:30
&gt; &gt; +enum class ShouldConsiderModals : uint8_t { No, Yes };
&gt; 
&gt; I think we could drop the should from this and still have same clarity. 
&gt; 
&gt; Also can we put this enum in some accessibility file? Seems like a little
&gt; for just one yes/no
I tried putting it in AccessibilityObjectInterface.h, which worked everywhere except when it&apos;s used in AXObjectCache.cpp which doesn&apos;t include the interface header. They don&apos;t share any includes that would make sense to put this new enum in, so I went for a separate file.

ConsiderModals sounds good to me, will update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846318</commentid>
    <comment_count>14</comment_count>
      <attachid>453301</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-26 10:24:23 -0800</bug_when>
    <thetext>Created attachment 453301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846324</commentid>
    <comment_count>15</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-26 12:06:20 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #14)
&gt; Created attachment 453301 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h
+++ a/Source/WebCore/accessibility/AccessibilityObjectInterface.h

-    virtual AccessibilityObjectInclusion defaultObjectInclusion() const = 0;
-    virtual bool accessibilityIsIgnoredByDefault() const = 0;
+    virtual AccessibilityObjectInclusion defaultObjectInclusion(ConsiderModals = ConsiderModals::Yes) const = 0;
+    virtual bool accessibilityIsIgnoredByDefault(ConsiderModals = ConsiderModals::Yes) const = 0;

I think this is the wrong implementation. If modal elements need to be special cased, it would be a lot cleaner to have a subclass of AccessibilityObject for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846480</commentid>
    <comment_count>16</comment_count>
      <attachid>453353</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-27 12:45:00 -0800</bug_when>
    <thetext>Created attachment 453353
Alternate approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846487</commentid>
    <comment_count>17</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-02-27 13:29:03 -0800</bug_when>
    <thetext>New approach looks better than the last one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846613</commentid>
    <comment_count>18</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-28 05:42:20 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #16)
&gt; Created attachment 453353 [details]
&gt; Alternate approach

Yes, much better approach.

--- a/LayoutTests/accessibility/ignore-modals-without-any-content.html
+++ a/LayoutTests/accessibility/ignore-modals-without-any-content.html

+    async function findTextInsideId(id) {
+        const containerElement = accessibilityController.accessibleElementById(id);
+        testOutput += `\nBeginning search from #${id} element.\n`;
+
+        let searchResult = null;
+        while (true) {
+            searchResult = containerElement.uiElementForSearchPredicate(searchResult, true, &quot;AXAnyTypeSearchKey&quot;, &quot;&quot;, false);
+            if (!searchResult)
+                break;
+
+            if (searchResult.role.includes(&quot;StaticText&quot;)) {
+                testOutput += `\n${searchResult.role}`;
+                const textContent = accessibilityController.platformName === &quot;ios&quot; ? searchResult.description : searchResult.stringValue;
+                testOutput += `\n${textContent}\n`;
+            }
+        }
+    }
+

Do we need a while loop here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846729</commentid>
    <comment_count>19</comment_count>
      <attachid>453415</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-02-28 12:50:50 -0800</bug_when>
    <thetext>Created attachment 453415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846934</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-28 23:47:18 -0800</bug_when>
    <thetext>Committed r290630 (247903@main): &lt;https://commits.webkit.org/247903@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453415.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453145</attachid>
            <date>2022-02-24 15:52:08 -0800</date>
            <delta_ts>2022-02-26 09:40:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237163-20220224175207.patch</filename>
            <type>text/plain</type>
            <size>9902</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1NWJlYTg5MWI5ZGU2
OGZlMjA4MmQ4YTZjNDE4OTIwMDQ1MjU5Yi4uYjljMzQ4ZjU1NDY5MWM2MWI5YTg2ZTAyMjdiZjlh
MTVlNGY5YWY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTAyLTI0ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdlYktpdCBzaG91
bGQgaWdub3JlIGVtcHR5IG1vZGFscyByYXRoZXIgdGhhbiB0cmFwcGluZyBmb2N1cyBpbnNpZGUg
dGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2l2
ZW4gdGhpcyBtYXJrdXA6CisKKyAgICAgICAgPGRpdiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9
InRydWUiPgorICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSI+CisgICAgICAgICAg
ICAgICAgPGJ1dHRvbj5DbG9zZSBtb2RhbCAoaW5zaWRlIG1vZGFsKTwvYnV0dG9uPgorICAgICAg
ICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIFRoZXJlIGlzIG5vIGFjY2Vz
c2libGUgY29udGVudCBpbnNpZGUgdGhpcyBtb2RhbCwgYnV0IFdlYktpdCB0cmFwcyB1c2VyIGZv
Y3VzIGluc2lkZSwKKyAgICAgICAgbWFraW5nIHRoZSByZXN0IG9mIHRoZSBwYWdlIGNvbXBsZXRl
bHkgaW5hY2Nlc3NpYmxlLgorCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2UgaWdub3JlIG1v
ZGFscyB0aGF0IGRvbid0IGhhdmUgYWNjZXNzaWJsZSBjb250ZW50LgorCisgICAgICAgIFRlc3Q6
IGFjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwKKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc05vZGVWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc1Zpc2libGVDaGlsZCk6
CisgICAgICAgIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y3VycmVu
dE1vZGFsTm9kZSk6CisgICAgICAgIFNraXAgbW9kYWxzIHRoYXQgZG9uJ3QgaGF2ZSBhY2Nlc3Np
YmxlIGNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc05vZGVWaXNp
YmxlIGNvbnN0KToKKyAgICAgICAgTWFrZSB0aGlzIGEgc3RhdGljIGZ1bmN0aW9uIGluc3RlYWQg
b2YgYW4gQVhPYmplY3RDYWNoZSBjbGFzcworICAgICAgICBmdW5jdGlvbiBzaW5jZSBpdCBkaWRu
J3QgdXNlIG1lbWJlciB2YXJpYWJsZXMgb3IgZnVuY3Rpb25zLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorCiAyMDIyLTAyLTIyICBUaW0gTmd1eWVuICA8bnRpbUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmUtc3R5bGUgUERGLmpzIGZvcm0gZmllbGRzIHRvIG1hdGNo
IFBERktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggMGZlMTQzYzJiOGVhMjk1MTc1MjY2MTJjOWY2YTI4NmVjMmVmMzA4MC4uMzA4Yjkw
YzA2NjlmYzYwOWJmN2E3YjZjMzM0MTJlYTRmNDY0YjZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0yNjksNiArMjY5LDQ3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZmluZE1vZGFsTm9kZXMoKQogICAgIG1fbW9kYWxOb2Rlc0luaXRp
YWxpemVkID0gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaXNOb2RlVmlzaWJsZShOb2RlKiBub2Rl
KQoreworICAgIGlmICghaXM8RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlm
ICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbnN0IGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CisgICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNw
bGF5VHlwZTo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byogcmVuZGVy
TGF5ZXIgPSByZW5kZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBpZiAoc3R5bGUudmlzaWJp
bGl0eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUgJiYgcmVuZGVyTGF5ZXIgJiYgIXJlbmRlckxh
eWVyLT5oYXNWaXNpYmxlQ29udGVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBDaGVjayB3aGV0aGVyIHRoaXMgb2JqZWN0IG9yIGFueSBvZiBpdHMgYW5jZXN0b3JzIGhhcyBv
cGFjaXR5IDAuCisgICAgLy8gVGhlIHJlc3VsdGluZyBvcGFjaXR5IG9mIGEgUmVuZGVyT2JqZWN0
IGlzIGNvbXB1dGVkIGFzIHRoZSBtdWx0aXBsaWNhdGlvbgorICAgIC8vIG9mIGl0cyBvcGFjaXR5
IHRpbWVzIHRoZSBvcGFjaXRpZXMgb2YgaXRzIGFuY2VzdG9ycy4KKyAgICBmb3IgKGF1dG8qIHJl
bmRlck9iamVjdCA9IHJlbmRlcmVyOyByZW5kZXJPYmplY3Q7IHJlbmRlck9iamVjdCA9IHJlbmRl
ck9iamVjdC0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKCFyZW5kZXJPYmplY3QtPnN0eWxlKCku
b3BhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIFdl
IGFsc28gbmVlZCB0byBjb25zaWRlciBhcmlhIGhpZGRlbiBzdGF0dXMuCisgICAgaWYgKCFpc05v
ZGVBcmlhVmlzaWJsZShub2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3N0YXRpYyBib29sIGhhc1Zpc2libGVDaGlsZChOb2RlJiBub2RlKQorewor
ICAgIGZvciAoTm9kZSogY3VycmVudCA9IG5vZGUuZmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJy
ZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoaXNOb2RlVmlzaWJs
ZShjdXJyZW50KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIEVsZW1lbnQqIEFYT2JqZWN0Q2FjaGU6OmN1cnJlbnRNb2RhbE5vZGUoKQog
ewogICAgIC8vIFRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIG1vZGFsIGRpYWxvZyBub2Rlcy4KQEAg
LTI4OCw3ICszMjksOCBAQCBFbGVtZW50KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2Rl
KCkKICAgICBSZWZQdHI8RWxlbWVudD4gZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgpLmZvY3Vz
ZWRFbGVtZW50KCk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGxhc3RWaXNpYmxlOwogICAgIGZvciAo
YXV0byYgZWxlbWVudCA6IG1fbW9kYWxFbGVtZW50c1NldCkgewotICAgICAgICBpZiAoaXNOb2Rl
VmlzaWJsZShlbGVtZW50KSkgeworICAgICAgICAvLyBUbyBhdm9pZCB0cmFwcGluZyB1c2VycyBp
biBhbiBlbXB0eSBtb2RhbCwgc2tpcCBhbnkgbm9uLXZpc2libGUgZWxlbWVudCwgb3IgYW55IGVs
ZW1lbnQgd2l0aG91dCB2aXNpYmxlIGNoaWxkcmVuLgorICAgICAgICBpZiAoaXNOb2RlVmlzaWJs
ZShlbGVtZW50KSAmJiBoYXNWaXNpYmxlQ2hpbGQoKmVsZW1lbnQpKSB7CiAgICAgICAgICAgICBp
ZiAoZm9jdXNlZEVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKGVsZW1l
bnQpKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0gZWxlbWVudDsK
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTMwNCwzOCArMzQ2LDYgQEAgRWxlbWVudCogQVhP
YmplY3RDYWNoZTo6Y3VycmVudE1vZGFsTm9kZSgpCiAgICAgcmV0dXJuIG1fY3VycmVudE1vZGFs
RWxlbWVudC5nZXQoKTsKIH0KIAotYm9vbCBBWE9iamVjdENhY2hlOjppc05vZGVWaXNpYmxlKE5v
ZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRl
cmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
Y29uc3QgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICBpZiAoc3R5bGUuZGlz
cGxheSgpID09IERpc3BsYXlUeXBlOjpOb25lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBhdXRvKiByZW5kZXJMYXllciA9IHJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpOwotICAgIGlm
IChzdHlsZS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJsZSAmJiByZW5kZXJMYXll
ciAmJiAhcmVuZGVyTGF5ZXItPmhhc1Zpc2libGVDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIC8vIENoZWNrIHdoZXRoZXIgdGhpcyBvYmplY3Qgb3IgYW55IG9mIGl0cyBh
bmNlc3RvcnMgaGFzIG9wYWNpdHkgMC4KLSAgICAvLyBUaGUgcmVzdWx0aW5nIG9wYWNpdHkgb2Yg
YSBSZW5kZXJPYmplY3QgaXMgY29tcHV0ZWQgYXMgdGhlIG11bHRpcGxpY2F0aW9uCi0gICAgLy8g
b2YgaXRzIG9wYWNpdHkgdGltZXMgdGhlIG9wYWNpdGllcyBvZiBpdHMgYW5jZXN0b3JzLgotICAg
IGZvciAoYXV0byogcmVuZGVyT2JqZWN0ID0gcmVuZGVyZXI7IHJlbmRlck9iamVjdDsgcmVuZGVy
T2JqZWN0ID0gcmVuZGVyT2JqZWN0LT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoIXJlbmRlck9i
amVjdC0+c3R5bGUoKS5vcGFjaXR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgLy8gV2UgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIGFyaWEgaGlkZGVuIHN0YXR1cy4K
LSAgICBpZiAoIWlzTm9kZUFyaWFWaXNpYmxlKG5vZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB2
YWxpZCBhcmlhIG1vZGFsIG5vZGUuCiBOb2RlKiBBWE9iamVjdENhY2hlOjptb2RhbE5vZGUoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBm
NzMyYTkxMGFkNThiMWViODQ0ZDllYWE3ZTlmOTM2YTE4MjVmMGYyLi45ZjY5NDY3YWU0NGMyOWYx
OWM2NzYyYzMxMjQ3Nzk1OWE3NWUxNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDcyLDcgKzQ3Miw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBpc01vZGFsRWxlbWVudChFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBmaW5kTW9kYWxOb2Rl
cygpOwogICAgIEVsZW1lbnQqIGN1cnJlbnRNb2RhbE5vZGUoKTsKLSAgICBib29sIGlzTm9kZVZp
c2libGUoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaGFuZGxlTW9kYWxDaGFuZ2UoRWxlbWVudCYp
OwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzU0ZWM0OTUxZTQ2ODViMmM5
M2Q3OWZlOTMzOGI5MDA3MTZjYjJkOC4uNDI0NzA4ZGRhNTU2NzQwMDNiYjk3MTkwMDdhOTIyZjA5
OWE4OTUyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTI0ICBUeWxlciBXaWxjb2Nr
ICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdlYktpdCBzaG91bGQgaWdub3Jl
IGVtcHR5IG1vZGFscyByYXRoZXIgdGhhbiB0cmFwcGluZyBmb2N1cyBpbnNpZGUgdGhlbQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTYzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250
ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
OiBFbmFibGUgbmV3IHRlc3QuCisKIDIwMjItMDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3Mu
aHRtbCBmYWlscyB3aXRoIFdlYlJUQ1JlbW90ZVZpZGVvRnJhbWVFbmFibGVkPXRydWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFu
eS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3Jl
LW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTE0
N2YwYWJmOTAwNzgzNTk2OTAzZjYxN2FhNjRjYzAwNGRmMjFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRl
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
d2UgaWdub3JlIG1vZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29udGVudC4K
KworQmVnaW5uaW5nIHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC4KKworQVhSb2xlOiBB
WFN0YXRpY1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBiZWZvcmUgbW9kYWwKKworQVhSb2xlOiBB
WFN0YXRpY1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBhZnRlciBtb2RhbAorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQu
aHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFu
eS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFmYzUyYzg3ZTlkYWVkZTg5Yjk1ZTVlNTFkZWM3
Y2FmOWQyZjE2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
aWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw0OSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJjb250YWluZXIiIHJvbGU9Imdyb3VwIj4K
KyAgICA8ZGl2PkZvbyB0ZXh0LCBiZWZvcmUgbW9kYWw8L2Rpdj4KKworICAgIDxkaXYgcm9sZT0i
ZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj4KKyAgICAgICA8ZGl2IGFyaWEtaGlkZGVuPSJ0cnVl
Ij4KKyAgICAgICAgICAgIDxidXR0b24+Q2xvc2UgbW9kYWwgKGluc2lkZSBtb2RhbCk8L2J1dHRv
bj4KKyAgICAgICA8L2Rpdj4KKyAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyI+Cisg
ICAgICAgICAgICBUZXh0IGluc2lkZSBkaXNwbGF5OiBub25lCisgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisKKyAgICA8ZGl2PkZvbyB0ZXh0LCBhZnRlciBtb2RhbDwvZGl2PgorPC9kaXY+CisK
KzxzY3JpcHQ+CisgICAgbGV0IHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3
ZSBpZ25vcmUgbW9kYWxzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgYWNjZXNzaWJsZSBjb250ZW50Llxu
XG4iOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSAiQmVn
aW5uaW5nIHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC5cbiI7CisKKyAgICAgICAgbGV0
IHNlYXJjaFJlc3VsdCA9IG51bGw7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAg
ICBzZWFyY2hSZXN1bHQgPSBjb250YWluZXJFbGVtZW50LnVpRWxlbWVudEZvclNlYXJjaFByZWRp
Y2F0ZShzZWFyY2hSZXN1bHQsIHRydWUsICJBWEFueVR5cGVTZWFyY2hLZXkiLCAiIiwgZmFsc2Up
OworICAgICAgICAgICAgaWYgKCFzZWFyY2hSZXN1bHQpCisgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHQucm9sZS5pbmNsdWRlcygiU3RhdGljVGV4
dCIpKSB7CisgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4ke3NlYXJjaFJlc3VsdC5y
b2xlfWA7CisgICAgICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT09ICJpb3MiID8gc2VhcmNoUmVzdWx0LmRlc2NyaXB0
aW9uIDogc2VhcmNoUmVzdWx0LnN0cmluZ1ZhbHVlOworICAgICAgICAgICAgICAgIHRlc3RPdXRw
dXQgKz0gYFxuJHt0ZXh0Q29udGVudH1cbmA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKKyAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNDJiMTA5ZGJjZGNhMzcxNWVlOTlhMDIxNzdhMjVjYmViNWNhMGJmMi4u
NWFkYWQzODlhMTI1NjE2ZmFlZGMzZTc0NmZjMWQ5NDAwMmQzODk2NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwOTksNiArMjA5OSw3IEBAIHdlYmtp
dC5vcmcvYi8xNTAzNjYgYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCBb
IFBhc3MgXQogCiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2ZXJzYWwuaHRtbCBbIFBh
c3MgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1pZnJhbWUtcmVtYWlucy1h
Y2Nlc3NpYmxlLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRo
b3V0LWFueS1jb250ZW50Lmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9zZWxlY3RlZC1z
dGF0ZS1jaGFuZ2VkLW5vdGlmaWNhdGlvbnMuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9l
bGVtZW50LWxpbmUtcmVjdHMtYW5kLXRleHQuaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453297</attachid>
            <date>2022-02-26 09:40:18 -0800</date>
            <delta_ts>2022-02-26 10:24:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237163-20220226114016.patch</filename>
            <type>text/plain</type>
            <size>66734</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1NWJlYTg5MWI5ZGU2
OGZlMjA4MmQ4YTZjNDE4OTIwMDQ1MjU5Yi4uZTk2YjVmMWRiYWRjZWYzNzQ0ZjM2ZmIwYWJhNTEz
ODcwOWFmNjVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMi0wMi0yNiAgVHls
ZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBXZWJLaXQgc2hv
dWxkIGlnbm9yZSBlbXB0eSBtb2RhbHMgcmF0aGVyIHRoYW4gdHJhcHBpbmcgZm9jdXMgaW5zaWRl
IHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdp
dmVuIHRoaXMgbWFya3VwOgorCisgICAgICAgIDxkaXYgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFs
PSJ0cnVlIj4KKyAgICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49InRydWUiPgorICAgICAgICAg
ICAgICAgIDxidXR0b24+Q2xvc2UgbW9kYWwgKGluc2lkZSBtb2RhbCk8L2J1dHRvbj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKworICAgICAgICBUaGVyZSBpcyBubyBhY2Nl
c3NpYmxlIGNvbnRlbnQgaW5zaWRlIHRoaXMgbW9kYWwsIGJ1dCBXZWJLaXQgdHJhcHMgdXNlciBm
b2N1cyBpbnNpZGUsCisgICAgICAgIG1ha2luZyB0aGUgcmVzdCBvZiB0aGUgcGFnZSBjb21wbGV0
ZWx5IGluYWNjZXNzaWJsZS4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGlnbm9yZSBt
b2RhbHMgdGhhdCBkb24ndCBoYXZlIGFjY2Vzc2libGUgY29udGVudC4KKyAgICAgICAgV2UgZG8g
dGhpcyBieSB3YWxraW5nIHRoZSBET00gdG8gZmluZCBhbnkgbm9uLUFYLWlnbm9yZWQgb2JqZWN0
cy4KKyAgICAgICAgQmVjYXVzZSBkZXRlcm1pbmluZyB3aGV0aGVyIG9yIG5vdCBhbiBlbGVtZW50
IGlzIGlnbm9yZWQgaXMgZGVwZW5kZW50CisgICAgICAgIG9uIG1vZGFscyBwcmVzZW50IG9uIHRo
ZSBwYWdlLCB0aGlzIHBhdGNoIGFkZHMgYSBmbGFnIHRvIGF2b2lkCisgICAgICAgIGNvbnNpZGVy
aW5nIG1vZGFscyAoY2FsbGVkIFNob3VsZENvbnNpZGVyTW9kYWxzKSB3aGVuIGNvbXB1dGluZyBp
cy1pZ25vcmVkIHN0YXR1cywKKyAgICAgICAgc2luY2Ugb3RoZXJ3aXNlIHdlIHdvdWxkIGJlIHN0
dWNrIGluIGluZmluaXRlIHJlY3Vyc2lvbi4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5
L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgQWRkIFNob3VsZENvbnNpZGVyTW9kYWxzLmgKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bW9kYWxFbGVtZW50SGFzQWNjZXNzaWJsZUNvbnRlbnQpOgorICAgICAgICBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmN1cnJlbnRNb2RhbE5vZGUpOgorICAgICAgICBP
bmx5IGNvbnNpZGVyIG1vZGFscyB3aXRoIGFjY2Vzc2libGUgY29udGVudCB0byBiZSBjYW5kaWRh
dGVzIGZvcgorICAgICAgICBzZWxlY3Rpb24uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXR0YWNobWVudDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMYWJlbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFi
ZWw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxp
c3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZWRpYU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
b2NrT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0
Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TW9ja09iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1
bHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVmYXVs
dE9iamVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3IuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L1Nob3Vs
ZENvbnNpZGVyTW9kYWxzLmg6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0IGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
Lmg6CisgICAgICAgIEFsbCBmdW5jdGlvbnMgYWJvdmUgZ2FpbiBhIG5ldyBTaG91bGRDb25zaWRl
ck1vZGFscyBwYXJhbWV0ZXIuCisKIDIwMjItMDItMjIgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZS1zdHlsZSBQREYuanMgZm9ybSBmaWVsZHMgdG8gbWF0Y2ggUERG
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmMWNlZGI5Yzc1YmNmOTc3N2MwZmM4OWY1Njg5N2Uy
M2M4YTI3YmQwLi5mYjc5M2VjM2IwYjY4Mzg5MWU2YTVhZmIwOTVkZGYwYzU4Mjg2NzIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTM5Myw2ICszOTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKICAgICBh
Y2Nlc3NpYmlsaXR5L0ZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oCisgICAgYWNjZXNzaWJpbGl0
eS9TaG91bGRDb25zaWRlck1vZGFscy5oCiAKICAgICBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmgKICAgICBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzhmY2JiMDc3Yjc1MTI2OTM2NmIyNGZjNzVmYTRlMTg5ZDE0NzYx
ZC4uYmQ4YjhhODNhZjdmNTY0YWE1YjRmNTRkZTkxMWM5YWQyM2I1Y2IzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQxMSw2
ICsxNDExLDcgQEAKIAkJNDdDNEQ1N0QyNjUwOEJDQjAwQzdBQjFGIC8qIElubGluZUZvcm1hdHRp
bmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDdDNEQ1N0MyNjUwOEJDQTAwQzdBQjFGIC8qIElubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ3Rjk0
N0RCMjY1MDJGMkYwMDg3OTY4QyAvKiBCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ3Rjk0N0RBMjY1MDJGMkYwMDg3
OTY4QyAvKiBCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0N0ZBOTcwMDI2NTA5ODJCMDA4NDE0MTYgLyogVGFi
bGVGb3JtYXR0aW5nR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ3RkE5NkZGMjY1MDk4MkEwMDg0MTQxNiAvKiBUYWJsZUZvcm1hdHRpbmdH
ZW9tZXRyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTQ4NkExRTM4MjdDOUE1ODEwMDlFM0UyOCAvKiBTaG91bGRDb25zaWRlck1vZGFscy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDg2QTFFMzcyN0M5
QTU4MTAwOUUzRTI4IC8qIFNob3VsZENvbnNpZGVyTW9kYWxzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDkzRTVFMDkxMkQ2NDIwNTAwMDIwMDgx
IC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgxIC8qIFBsYXRmb3JtQ0FM
YXllckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ5NDVCRkQ0MTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0NUJGRDIxM0NGODA5
MDAwQ0MzQjM4IC8qIFRyYW5zZm9ybVN0YXRlLmggKi87IH07CiAJCTQ5NDg0RkMyMTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRp
ZW50LmggKi87IH07CkBAIC05MzkwLDYgKzkzOTEsNyBAQAogCQk0N0M0RDU3QzI2NTA4QkNBMDBD
N0FCMUYgLyogSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0N0Y5NDdEQTI2NTAyRjJGMDA4Nzk2OEMgLyogQmxvY2tGb3JtYXR0aW5n
UXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrRm9ybWF0dGlu
Z1F1aXJrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0N0ZBOTZGRjI2NTA5ODJB
MDA4NDE0MTYgLyogVGFibGVGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nR2VvbWV0cnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDg2QTFFMzcyN0M5QTU4MTAwOUUzRTI4IC8qIFNob3VsZENvbnNpZGVy
TW9kYWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNob3VsZENvbnNpZGVyTW9kYWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1DQUxheWVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDVCRkQx
MTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUcmFuc2Zvcm1TdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5NDVCRkQyMTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFuc2Zvcm1TdGF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2ODEsNiArMjA2ODMsNyBAQAogCQkJCTI5QTgx
MjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlLmggKi8sCiAJCQkJOTFDOUYyRjgx
QUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkJQkM0
QTUzMzAyNTYwNTkwMzAwMjhDNTkyIC8qIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oICovLAor
CQkJCTQ4NkExRTM3MjdDOUE1ODEwMDlFM0UyOCAvKiBTaG91bGRDb25zaWRlck1vZGFscy5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTM3MzE4LDYgKzM3MzIxLDcgQEAKIAkJCQk0NjdBNjhEODI3NUVBOTk1MDA5QjMx
QzUgLyogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjdB
NjhENzI3NUVBOTkxMDA5QjMxQzUgLyogU2hhcmVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NjdBNjhEOTI3NUVBOTk4MDA5QjMxQzUgLyogU2hhcmVkV29ya2VyVGhyZWFkUHJv
eHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ4NkExRTM4MjdDOUE1ODEwMDlFM0UyOCAvKiBTaG91
bGRDb25zaWRlck1vZGFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM0REIwMjYyNzMzOUZFMDAw
N0IwQUQxIC8qIFNob3VsZExvY2FsaXplQXhpc05hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
RjE5RTJBQzI0NzcyQkMxMDA3QkRBQ0IgLyogU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMGZlMTQzYzJiOGVh
Mjk1MTc1MjY2MTJjOWY2YTI4NmVjMmVmMzA4MC4uZWJmZTM3NzVmMmQzYTRiZGZkNGM1M2UwMzhl
NTQyZGI3MzM4MjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmll
dy5oIgorI2luY2x1ZGUgIlNob3VsZENvbnNpZGVyTW9kYWxzLmgiCiAjaW5jbHVkZSAiVGV4dEJv
dW5kYXJpZXMuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTI2OSw2ICsyNzAsMzQgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpmaW5kTW9kYWxOb2RlcygpCiAgICAgbV9tb2RhbE5vZGVzSW5pdGlhbGl6ZWQgPSB0cnVl
OwogfQogCitib29sIEFYT2JqZWN0Q2FjaGU6Om1vZGFsRWxlbWVudEhhc0FjY2Vzc2libGVDb250
ZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAvLyBVbmxlc3MgeW91J3JlIHRyeWluZyB0byBjb21wdXRlIHRoZSBu
ZXcgbW9kYWwgbm9kZSwgZGV0ZXJtaW5pbmcgd2hldGhlciBhbiBlbGVtZW50CisgICAgLy8gaGFz
IGFjY2Vzc2libGUgY29udGVudCBpcyBhcyBlYXN5IGFzICFnZXRPckNyZWF0ZShlbGVtZW50KS0+
Y2hpbGRyZW4oKS5pc0VtcHR5KCkuCisgICAgLy8gU28gZG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBv
biBhbnl0aGluZyBiZXNpZGVzIG1vZGFsIGVsZW1lbnRzLgorICAgIEFTU0VSVChpc01vZGFsRWxl
bWVudCgqZWxlbWVudCkpOworCisgICAgLy8gQmVjYXVzZSBjb21wdXRpbmcgYW55IG9iamVjdCdz
IGNoaWxkcmVuKCkgaXMgZGVwZW5kZW50IG9uIHdoZXRoZXIgYSBtb2RhbCBpcyBvbiB0aGUgcGFn
ZSwKKyAgICAvLyB3ZSdsbCBuZWVkIHRvIHdhbGsgdGhlIERPTSBhbmQgZmluZCBub24taWdub3Jl
ZCBBWCBvYmplY3RzIG1hbnVhbGx5LgorICAgIFZlY3RvcjxOb2RlKj4gbm9kZVN0YWNrID0geyBl
bGVtZW50LT5maXJzdENoaWxkKCkgfTsKKyAgICB3aGlsZSAoIW5vZGVTdGFjay5pc0VtcHR5KCkp
IHsKKyAgICAgICAgZm9yIChhdXRvKiBub2RlID0gbm9kZVN0YWNrLnRha2VMYXN0KCk7IG5vZGU7
IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogYXhP
YmplY3QgPSBnZXRPckNyZWF0ZShub2RlKSkgeworICAgICAgICAgICAgICAgIGlmICghYXhPYmpl
Y3QtPmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzOjpO
bykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAvLyBEb24ndCBkZXNjZW5kIGludG8gc3VidHJlZXMgZm9yIG5vbi12aXNpYmxl
IG5vZGVzLgorICAgICAgICAgICAgaWYgKGlzTm9kZVZpc2libGUobm9kZSkpCisgICAgICAgICAg
ICAgICAgbm9kZVN0YWNrLmFwcGVuZChub2RlLT5maXJzdENoaWxkKCkpOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogRWxlbWVudCogQVhPYmplY3RDYWNoZTo6Y3Vy
cmVudE1vZGFsTm9kZSgpCiB7CiAgICAgLy8gVGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgbW9kYWwg
ZGlhbG9nIG5vZGVzLgpAQCAtMjg4LDEyICszMTcsMTIgQEAgRWxlbWVudCogQVhPYmplY3RDYWNo
ZTo6Y3VycmVudE1vZGFsTm9kZSgpCiAgICAgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50
ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOwogICAgIFJlZlB0cjxFbGVtZW50PiBsYXN0
VmlzaWJsZTsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBtX21vZGFsRWxlbWVudHNTZXQpIHsK
LSAgICAgICAgaWYgKGlzTm9kZVZpc2libGUoZWxlbWVudCkpIHsKKyAgICAgICAgLy8gVG8gYXZv
aWQgdHJhcHBpbmcgdXNlcnMgaW4gYW4gZW1wdHkgbW9kYWwsIHNraXAgYW55IG5vbi12aXNpYmxl
IGVsZW1lbnQsIG9yIGFueSBlbGVtZW50IHdpdGhvdXQgYWNjZXNzaWJsZSBjb250ZW50LgorICAg
ICAgICBpZiAoaXNOb2RlVmlzaWJsZShlbGVtZW50KSAmJiBtb2RhbEVsZW1lbnRIYXNBY2Nlc3Np
YmxlQ29udGVudChlbGVtZW50KSkgewogICAgICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICYm
IGZvY3VzZWRFbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KSkgewogICAgICAgICAgICAg
ICAgIG1fY3VycmVudE1vZGFsRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGxhc3RWaXNpYmxlID0gZWxlbWVudDsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggZjczMmE5MTBhZDU4YjFlYjg0NGQ5ZWFhN2U5ZjkzNmExODI1ZjBmMi4u
OTllYzFiYmRiOTM4MzVlZjRhYjMwMWI0OTFhZjVkMWM1ZmU3ZjA4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTQ3NCw2ICs0NzQsNyBAQCBw
cml2YXRlOgogICAgIEVsZW1lbnQqIGN1cnJlbnRNb2RhbE5vZGUoKTsKICAgICBib29sIGlzTm9k
ZVZpc2libGUoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaGFuZGxlTW9kYWxDaGFuZ2UoRWxlbWVu
dCYpOworICAgIGJvb2wgbW9kYWxFbGVtZW50SGFzQWNjZXNzaWJsZUNvbnRlbnQoRWxlbWVudCop
OwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGlt
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QXR0YWNobWVudC5jcHAKaW5kZXggZWRiY2I0NjFjOThlMzYxZmM0YjM4OWY0NjNjMmI5Y2U2
ODA4NDViZi4uNzQxZWJiNWQ3ZDEzZGFjZjIyMGZhYmFhODMyYjZkNTQyOTM3ZTgyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNobWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0
YWNobWVudC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlBdHRhY2ht
ZW50Ojpyb2xlRGVzY3JpcHRpb24oKSBjb25zdAogICAgIHJldHVybiBBWEF0dGFjaG1lbnRSb2xl
VGV4dCgpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Ojpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscykgY29uc3QK
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmgKaW5kZXggNGQzNTVkOGZiMjljODlh
NjQ3YWQwODIyMjJlNzNlNzBlMmE2NWZmMC4uMjUwY2ZlN2NkMWU0YjU5ZTg0MmExN2RmM2M1YmEw
MDJhMGJjMjc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogCiAg
ICAgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGZsb2F0IHZh
bHVlRm9yUmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9kYWxz
OjpZZXMpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9y
PEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGV4cGxpY2l0IEFjY2Vz
c2liaWxpdHlBdHRhY2htZW50KFJlbmRlckF0dGFjaG1lbnQqKTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAKaW5kZXggNjIy
NWZlMDQ0NDU1ZGYwZTFmMzI2NWMxMzQ5MmJjNWY2MjFhOTk5Mi4uM2U4MGM2Y2VjNTc0NzExZjU5
YjhmMjI2YWU3ZTQ3MTVjMWEwMjk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmNwcApAQCAtNDgsOSArNDgsOSBAQCBSZWY8QWNj
ZXNzaWJpbGl0eUxhYmVsPiBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNyZWF0ZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMYWJlbChy
ZW5kZXJlcikpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlMYWJlbDo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzIHNob3VsZENvbnNpZGVy
TW9kYWxzKSBjb25zdAogewotICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZh
dWx0KCk7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoc2hvdWxk
Q29uc2lkZXJNb2RhbHMpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eUxhYmVsOjpzdHJpbmdW
YWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMYWJlbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGFiZWwuaAppbmRleCA2MjVhMjdmMmFlODBhMTg1NDQ5NTJkMmYyMmFmOTUzYzAxZWY2
ZGMwLi40M2E0ZjgxYWNmZTMwZDFkNDU1Zjg5MmU1MTdiODA0ZDliZWMyOTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmgKQEAgLTQy
LDcgKzQyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxp
dHlMYWJlbChSZW5kZXJPYmplY3QqKTsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9kYWxzOjpZZXMpIGNv
bnN0IGZpbmFsOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbDsgfQogICAgIGJvb2wgaXNMYWJlbCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgc3RyaW5nVmFsdWUoKSBj
b25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5jcHAKaW5kZXggYWQ4ZmNkODAzNTI1MjlkYjEwNWUzMzE4YWU0N2FkOWU2MWEy
MjVmNi4uN2I3NTgxNzAxMWQyZjJhMWFmNGU4YWMxZWMxZjI3OWFkMWM1ZDQ3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5jcHAKQEAg
LTUzLDkgKzUzLDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5TGlzdDo6
Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TGlz
dDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmls
aXR5TGlzdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2Rh
bHMgc2hvdWxkQ29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZEJ5RGVmYXVsdChzaG91bGRDb25zaWRlck1vZGFscyk7CiB9CiAgICAgCiBib29sIEFjY2Vzc2li
aWxpdHlMaXN0Ojppc1Vub3JkZXJlZExpc3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCmluZGV4IDBhN2UwYWEzYjFkZmYxMzkz
MjAwMDM3MWU2YzgyMzI4MmVmNGYwNmQuLjg0MzVkZTY2Mzk3NTc0YjA1MTM5YzU1MDg0M2U5NTcy
MTM0ZGRlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzT3JkZXJl
ZExpc3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzRGVzY3JpcHRpb25MaXN0KCkgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChT
aG91bGRDb25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9kYWxzOjpZZXMpIGNvbnN0IG92
ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBjaGlsZEhhc1BzZXVkb1Zpc2libGVMaXN0SXRlbU1hcmtl
cnMoUmVuZGVyT2JqZWN0Kik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcAppbmRleCAxNmIzNGI5
ZjE4ZjQ1NGRiZmRkMGI1NTEwNzFlZGQ1YjQ3Y2MyYTc5Li4xMzRlMzQxOGI0N2U1ZjRlNDRhZmJh
Zjc1MmQ4OTJmNTQwZGQxZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcApAQCAtMTA4LDEyICsx
MDgsMTIgQEAgTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6ZWxlbWVudFJl
Y3QoKSBjb25zdAogICAgIHJldHVybiByZWN0OwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFj
Y2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChT
aG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsKICAgICBp
ZiAoIW1fb3B0aW9uRWxlbWVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpKQorICAgIGlmIChhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkQnlEZWZhdWx0KHNob3VsZENvbnNpZGVyTW9kYWxzKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBhdXRvKiBwYXJlbnQgPSBwYXJlbnRPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
aAppbmRleCBjMWI5NDQ5YTQwNzQyZDQzN2JmNGVjOWM3YjdlZWU5MDM1NjZjYzI4Li5mNmNhYzAx
ZjMwNzQ3NjA0OTgxY2U2ZDZiZDYxMzE1YzM3ZmRmMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCkBA
IC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgaW50IGxpc3RCb3hPcHRpb25JbmRleCgpIGNv
bnN0OwogICAgIEludFJlY3QgbGlzdEJveE9wdGlvblJlY3QoKSBjb25zdDsKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChIVE1MRWxlbWVu
dCopIGNvbnN0OwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBmaW5hbDsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENv
bnNpZGVyTW9kYWxzID0gU2hvdWxkQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3QgZmluYWw7CiAK
ICAgICBXZWFrUHRyPEhUTUxFbGVtZW50PiBtX29wdGlvbkVsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmpl
Y3QuY3BwCmluZGV4IDI1MGYzODgzNTYxNmEyOTY5NmMxNDI4NzY2OTU5MmY0Y2JmZjQzZmMuLmUz
YTU4ODkwN2M2NmY1NDJjZjliZDUwYTk3YTlhMzY5NDhmNDFlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5j
cHAKQEAgLTUzLDkgKzUzLDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdD4gQWNjZXNz
aWJpbGl0eU1lZGlhT2JqZWN0OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW4KICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QocmVuZGVyZXIpKTsKIH0KIAot
Ym9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFs
cykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgp
OworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KHNob3VsZENvbnNp
ZGVyTW9kYWxzKTsKIH0KIAogSFRNTE1lZGlhRWxlbWVudCogQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0OjptZWRpYUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmgKaW5kZXggZGQ1MTZkYjg0YzVj
NzkxY2VmMzI3OGM2OGU5NTc5NDYzOGZjNzc5NC4uOTQyMTU4M2ZmZTUxZDA3ZGE5Y2M2YzlhM2U4
ODIzNGJmMDUxMTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZW51bSBBWFNlZWtEaXJlY3Rpb24geyBBWFNlZWtGb3J3YXJkLCBBWFNl
ZWtCYWNrd2FyZCB9OwogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdChSZW5k
ZXJPYmplY3QqKTsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3QgZmluYWw7CisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRD
b25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9kYWxzOjpZZXMpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgaXNNZWRpYU9iamVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAg
ICAKICAgICBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uLmNwcAppbmRleCA3ZDFhODQyNzEyYThiNWMzMTc5OTU1ZjA1MzA3ODM0NzRlYzI1YjA3
Li5mYTZkYjZjZmU5NmYyZDg3YTFjMDhlNDgwYzNhNWNhNTgxZDcyNjExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb24uY3BwCkBAIC0xMDIsOSArMTAyLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb246OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gaXNF
bmFibGVkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2Rh
bHMgc2hvdWxkQ29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZEJ5RGVmYXVsdChzaG91bGRDb25zaWRlck1vZGFscyk7CiB9CiAKIExheW91dFJlY3QgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaAppbmRleCA0MDFhN2QwZjIzNGVlMTg4ZGUyOTAzNWIxY2FlZjk0OWM3ZGRkZWQzLi42OGY5
ZWY5NmY1YTk4NjFiZWZlOTUxMjNmYjg3MDkwYmVkYjZiODBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblNldFNlbGVjdGVkQXR0
cmlidXRlKCkgY29uc3QgZmluYWw7CiAgICAgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0
IGZpbmFsOwogICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxk
Q29uc2lkZXJNb2RhbHM6OlllcykgY29uc3QgZmluYWw7CiAKICAgICBXZWFrUHRyPEhUTUxPcHRp
b25FbGVtZW50PiBtX2VsZW1lbnQ7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbV9wYXJlbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZW51TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDdlYzIyNTU4MmYxYjVkNGJmYjc5NWNkMzlmMWM5
ZjZlNjM3Y2I4N2YuLjk0OTNmNTY3MWRjNDQ5YTgzMzRmMTU5Y2FkZDFjY2JlMzczZjI0NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAuY3BwCkBAIC02Myw5ICs2Myw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXA6OmlzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50LT5p
c0VuYWJsZWQoKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxp
c3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2Rh
bHMgc2hvdWxkQ29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxp
dHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZEJ5RGVmYXVsdChzaG91bGRDb25zaWRlck1vZGFscyk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXA6OmNhbkhhdmVTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXAuaAppbmRleCAxNWIxYjA1ZjY2NGNkZDVmNDk3M2EzOWYwODZlZDRhZjc3ZjRjN2RmLi4y
Mjc5NGRlMGFmYjFmMjBjNjgyNjgzMzk4ODRkZTY2ZmE2MTI0MjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwcmVzcygpIG92ZXJyaWRl
OwogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUNoaWxk
cmVuQ2hhbmdlZCgpOwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNo
b3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxkQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TW9ja09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNwcAppbmRleCA4OTI3NjYzMDI5Y2YyZTFlYzdkZDRl
MDNiNTRiZmUwZjFlMmY0MzU0Li5jYzc1MGYxMmM5MjY5YmZmZGRjNGExNmUwNzU0OWI1ZjA0Mzg3
ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNb2NrT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNb2NrT2JqZWN0LmNwcApAQCAtMzUsOSArMzUsOSBAQCBBY2Nlc3NpYmlsaXR5TW9j
a09iamVjdDo6QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QoKQogCiBBY2Nlc3NpYmlsaXR5TW9ja09i
amVjdDo6fkFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0KCkgPSBkZWZhdWx0OwogICAgIAotYm9vbCBB
Y2Nlc3NpYmlsaXR5TW9ja09iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2RhbHMgc2hvdWxkQ29uc2lkZXJNb2RhbHMpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICBy
ZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdChzaG91bGRDb25zaWRlck1vZGFs
cyk7CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmgKaW5kZXggNjY4Zjg4OWQ0YTNhZjJiYTIxMmIyNzM1
NzBjYjUzMzQ3NzM2OTE1Ni4uMjExYTEyZGJmYmQ2MzI5YmI4MjI5NGIwNDIwY2M4ZmE1MGY0ZjUx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TW9ja09iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1vY2tPYmplY3QuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNN
b2NrT2JqZWN0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNEZXRh
Y2hlZEZyb21QYXJlbnQoKSBvdmVycmlkZSB7IHJldHVybiAhbV9wYXJlbnQ7IH0KIAotICAgIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzID0g
U2hvdWxkQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA1Y2Y4MzQ1MWYzZTIyOWQ0ZTNk
ODM2NGIxZDk1ZTE2OGVjMjBiOGI0Li4yZDk5N2RjNWM1MmFkYWE4ZmNhMzUzYzM1YTAwM2E3ODEw
YTA5OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNDkyLDcgKzQ5Miw3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiAgICAgfQogfQogCi1i
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFscykg
Y29uc3QKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgLy8gRG91YmxlLWNoZWNrIHRoYXQgYW4gQWNj
ZXNzaWJpbGl0eU9iamVjdCBpcyBuZXZlciBhY2Nlc3NlZCBiZWZvcmUKQEAgLTUxMiw3ICs1MTIs
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVmYXVsdE9iamVjdEluY2x1
c2lvbigpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBkZWZh
dWx0T2JqZWN0SW5jbHVzaW9uKHNob3VsZENvbnNpZGVyTW9kYWxzKTsKICAgICBpZiAoZGVjaXNp
b24gPT0gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SW5jbHVkZU9iamVjdCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChkZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0
SW5jbHVzaW9uOjpJZ25vcmVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggMDY2OGQ0NWFjYmYyNzJj
ZGQzYTBjM2IzNWY1MWFhNTYzYzk3OGE0OS4uZThhMDQ2MDNlYTgyNWJhZGFiZjc0ZTEzYzg1ZTI2
MzUzZTkxMDU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtMTk2LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB2aXNpYmxlVGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAg
ICAgU3RyaW5nIGFsdGVybmF0aXZlVGV4dEZvcldlYkFyZWEoKSBjb25zdDsKICAgICB2b2lkIGFy
aWFMYWJlbGVkQnlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKLSAgICBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9
IFNob3VsZENvbnNpZGVyTW9kYWxzOjpZZXMpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgdXNl
c0FsdFRhZ0ZvclRleHRDb21wdXRhdGlvbigpIGNvbnN0OwogICAgIGJvb2wgcm9sZUlnbm9yZXNU
aXRsZSgpIGNvbnN0OwogICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJv
b2wgaW5jcmVhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMzEzYTE4Y2UyY2UzOGQ3YjNlZWFiYjY2ZDRjNDBi
MmMwZGZhNmRiYy4uNTliMjIzODg1ZTFlMWZjMGY2ODQ3NDBjMDQ5ZWU4MzdiOGFiNDk1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCkBAIC0zNTY2LDkgKzM1NjYsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
RmlsZVVwbG9hZEJ1dHRvbigpIGNvbnN0CiAgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KG5vZGUoKSkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUoKSkuaXNGaWxlVXBs
b2FkKCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZEJ5RGVmYXVsdCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2li
aWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoU2hvdWxkQ29uc2lkZXJNb2RhbHMgc2hvdWxkQ29uc2lk
ZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSA9
PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7CisgICAgcmV0dXJu
IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oc2hvdWxkQ29uc2lkZXJNb2RhbHMpID09IEFjY2Vzc2li
aWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKIH0KIAogLy8gQVJJQSBjb21wb25l
bnQgb2YgaGlkZGVuIGRlZmluaXRpb24uCkBAIC0zNjA5LDE0ICszNjA5LDE1IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojp2YWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCi1BY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25zdAorQWNjZXNzaWJpbGl0eU9i
amVjdEluY2x1c2lvbiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9u
KFNob3VsZENvbnNpZGVyTW9kYWxzIHNob3VsZENvbnNpZGVyTW9kYWxzKSBjb25zdAogewogICAg
IGJvb2wgdXNlUGFyZW50RGF0YSA9ICFtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzTnVsbCgp
OwogCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlz
QVhIaWRkZW4gOiBpc0FYSGlkZGVuKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7CiAKLSAgICBpZiAoKHJlbmRlcmVyKCkgJiYgcmVu
ZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKSB8fCBpZ25vcmVkRnJvbU1vZGFsUHJl
c2VuY2UoKSkKKyAgICBib29sIGlzSWdub3JlZEZyb21Nb2RhbFByZXNlbmNlID0gc2hvdWxkQ29u
c2lkZXJNb2RhbHMgPT0gU2hvdWxkQ29uc2lkZXJNb2RhbHM6OlllcyAmJiBpZ25vcmVkRnJvbU1v
ZGFsUHJlc2VuY2UoKTsKKyAgICBpZiAoKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUo
KS5lZmZlY3RpdmVJbmVydCgpKSB8fCBpc0lnbm9yZWRGcm9tTW9kYWxQcmVzZW5jZSkKICAgICAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKIAog
ICAgIGlmICh1c2VQYXJlbnREYXRhID8gbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0YS5pc1ByZXNl
bnRhdGlvbmFsQ2hpbGRPZkFyaWFSb2xlIDogaXNQcmVzZW50YXRpb25hbENoaWxkT2ZBcmlhUm9s
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAppbmRleCA5ZTkzMjk1M2VkNWY1OTM0YWFkMTE5ZTg2YmY5N2U2NTkxOTEyYmQwLi41
MTU4OGNlNjYwNTU5OTg4YWVmY2YyOWZmNGFhOTAzMDBmMmM5NmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMjc2LDkg
KzI3NiwxMCBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIE5vZGUqIG5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxw
dHI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hv
dWxkQ29uc2lkZXJNb2RhbHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0SW5j
bHVzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
QnlEZWZhdWx0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxk
Q29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkQnlEZWZhdWx0KFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxkQ29uc2lk
ZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzU2hvd2luZ1ZhbGlk
YXRpb25NZXNzYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03OTMsNyArNzk0LDYgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YShBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
RnJvbVBhcmVudERhdGEmIGRhdGEpIG92ZXJyaWRlIHsgbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSA9IGRhdGE7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGlzQWNjZXNzaWJpbGl0eU9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIElmIHRoaXMg
b2JqZWN0IGl0c2VsZiBzY3JvbGxzLCByZXR1cm4gaXRzIFNjcm9sbGFibGVBcmVhLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaAppbmRleCAyMDRiMmI5MWEyNTJiMDA2MjU2ZjhjNjIxNjcyZGUxZWZjNDM4
YzFiLi5iZTc5Mjg4NDljZDIxZjM5ZDQwZGNiYmFkYTkyYjI1NDYxNzBiNjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiU2hvdWxkQ29uc2lkZXJNb2RhbHMuaCIKICNpbmNs
dWRlICJTaW1wbGVSYW5nZS5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvckJlaGF2aW9yLmgiCiAj
aW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgpAQCAtMTAyOSw4ICsxMDMwLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNvbnN0ID0gMDsKIAogICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9u
KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlE
ZWZhdWx0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxk
Q29uc2lkZXJNb2RhbHM6OlllcykgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxkQ29u
c2lkZXJNb2RhbHM6OlllcykgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGlzU2hvd2lu
Z1ZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCmlu
ZGV4IGUxZmVlMTcxMWVmZGU4OThmZTczZDkzZWQzNmU5MjdkMDg4ZTUwMTguLmJiNWE2M2NiNzBk
MzcwMjIzMGQ1NzhkMWUyYjI0OTUzY2I0NWU3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
ci5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
cj4gQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUoUmVuZGUKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIp
KTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFs
cyBzaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0
eUlzSWdub3JlZEJ5RGVmYXVsdCgpOworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
QnlEZWZhdWx0KHNob3VsZENvbnNpZGVyTW9kYWxzKTsKIH0KICAgICAKIFN0cmluZyBBY2Nlc3Np
YmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OnZhbHVlRGVzY3JpcHRpb24oKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVBy
b2dyZXNzSW5kaWNhdG9yLmgKaW5kZXggMDZlMjU2N2ZmNTMzMTg1OThiMzkyODg1NTg4YTU0MzQx
ZmU2YzI1MS4uMGQ1NDdhYWNmN2ViY2FhMTJhMzlmNGM5MWQwOGZlYjAzNDRhYjU5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvci5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKFJlbmRlck1ldGVyKik7CiAgICAg
SFRNTE1ldGVyRWxlbWVudCogbWV0ZXJFbGVtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2RhbHMgPSBTaG91
bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDI3ZTM3OGFiMDQ5Y2MwNDg3NGE1
YTk3MmUwNmVkOWQ1ZTRmNWVkOTcuLjM1ZjE0MjdlNzhmZTNjYTMyOWU5ZDE4YjQzMWUwMjcxYTJl
ODQwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTIzNCw3ICsxMjM0LDcgQEAgc3RhdGlj
IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gb2JqZWN0SW5jbHVzaW9uRnJvbUFsdFRleHQo
Y29uc3QgU3RyaW5nJiBhbHQKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
bjo6RGVmYXVsdEJlaGF2aW9yOwogfQogCi1BY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25zdAor
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpk
ZWZhdWx0T2JqZWN0SW5jbHVzaW9uKFNob3VsZENvbnNpZGVyTW9kYWxzIHNob3VsZENvbnNpZGVy
TW9kYWxzKSBjb25zdAogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgY2FzZXMgY2FuIGFwcGx5IHRv
IGFueSBlbGVtZW50IHRoYXQncyBhIHN1YmNsYXNzIG9mIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuCiAgICAgCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVz
aW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKQog
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0
OwogICAgIH0KIAotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZWZhdWx0T2JqZWN0
SW5jbHVzaW9uKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmpl
Y3RJbmNsdXNpb24oc2hvdWxkQ29uc2lkZXJNb2RhbHMpOwogfQogICAgIAogc3RhdGljIGJvb2wg
d2ViQXJlYUlzUHJlc2VudGF0aW9uYWwoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKQEAgLTEyNjMs
NyArMTI2Myw3IEBAIHN0YXRpYyBib29sIHdlYkFyZWFJc1ByZXNlbnRhdGlvbmFsKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
Citib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzIHNob3VsZENvbnNpZGVyTW9kYWxzKSBjb25zdAog
ewogI2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7CkBAIC0xMjc1LDcg
KzEyNzUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAvLyBDaGVjayBmaXJzdCBpZiBhbnkgb2YgdGhl
IGNvbW1vbiByZWFzb25zIGNhdXNlIHRoaXMgZWxlbWVudCB0byBiZSBpZ25vcmVkLgogICAgIC8v
IFRoZW4gcHJvY2VzcyBvdGhlciB1c2UgY2FzZXMgdGhhdCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8g
YWxsIHRoZSB2YXJpb3VzIHJvbGVzCiAgICAgLy8gdGhhdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0cyB0YWtlIG9uLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24g
PSBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oc2hvdWxkQ29uc2lkZXJNb2Rh
bHMpOwogICAgIGlmIChkZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJ
bmNsdWRlT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRlY2lzaW9uID09
IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKaW5kZXggZDhmOGE4NGYwYzdlMTczNzQyNGMzZTc4M2JlMGJlMjEyM2MyZGU2Ni4uMmFjMTkw
MWVkMGExNjdiYTc2NzA4NzkyNDIzNTFkYzUwMDdkNWQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAg
LTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWNjZXNzaWJsZU5hbWUoY29uc3Qg
QXRvbVN0cmluZyYpIG92ZXJyaWRlOwogICAgIAogICAgIC8vIFByb3ZpZGVzIGNvbW1vbiBsb2dp
YyB1c2VkIGJ5IGFsbCBlbGVtZW50cyB3aGVuIGRldGVybWluaW5nIGlzSWdub3JlZC4KLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25z
dCBvdmVycmlkZTsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlZmF1bHRPYmpl
Y3RJbmNsdXNpb24oU2hvdWxkQ29uc2lkZXJNb2RhbHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6
WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBpbnQgbGF5b3V0Q291bnQoKSBjb25zdCBv
dmVycmlkZTsKICAgICBkb3VibGUgbG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CkBA
IC0yMDQsNyArMjA0LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVBdHRy
aWJ1dGVSb2xlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9k
YWxzOjpZZXMpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKE1BVEhNTCkKICAgICB2aXJ0
dWFsIGJvb2wgaXNJZ25vcmVkRWxlbWVudFdpdGhpbk1hdGhUcmVlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1l
bnQuY3BwCmluZGV4IDQ4OTZlMjYzMmJjMjNkNzE3ZGU1YTliOGRhZThmZjhkNjQ3NGM3NGEuLjkx
ZGRjMGM4NjNjOGRmYzkxMjRkNGIyMjkyNzBjMmI3YmFlMTBlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3Bw
CkBAIC0xOTEsNyArMTkxLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50OjpoZWxw
VGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIEFjY2Vzc2liaWxp
dHlTVkdFbGVtZW50Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29s
IEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChT
aG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsKICAgICAv
LyBBY2NvcmRpbmcgdG8gdGhlIFNWRyBBY2Nlc3NpYmlsaXR5IEFQSSBNYXBwaW5ncyBzcGVjLCBp
dGVtcyBzaG91bGQgYmUgZXhjbHVkZWQgaWY6CiAgICAgLy8gKiBUaGV5IHdvdWxkIGJlIGV4Y2x1
ZGVkIGFjY29yZGluZyB0byB0aGUgQ29yZSBBY2Nlc3NpYmlsaXR5IEFQSSBNYXBwaW5ncy4KQEAg
LTIwMCw3ICsyMDAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgLy8gICBhdHRyaWJ1dGUgKGNvdmVyZWQg
YnkgQ29yZSBBQU0pIG9yIGF0IGxlYXN0IG9uZSAndGl0bGUnIG9yICdkZXNjJyBjaGlsZCBlbGVt
ZW50LgogICAgIC8vICogVGhleSBoYXZlIGFuIGFuY2VzdG9yIHdpdGggQ2hpbGRyZW4gUHJlc2Vu
dGF0aW9uYWw6IFRydWUgKGNvdmVyZWQgYnkgQ29yZSBBQU0pCiAKLSAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVmYXVsdE9iamVjdEluY2x1c2lvbigpOworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBkZWZhdWx0T2JqZWN0SW5j
bHVzaW9uKHNob3VsZENvbnNpZGVyTW9kYWxzKTsKICAgICBpZiAoZGVjaXNpb24gPT0gQWNjZXNz
aWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIApAQCAtMjQwLDcgKzI0MCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ6OmNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKHNob3VsZENvbnNpZGVyTW9kYWxz
KTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6aW5oZXJpdHNQcmVzZW50YXRp
b25hbFJvbGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5oCmluZGV4IDk2MmM0ODE1MDRhYTk0ZjFlZWIwMTc4
YmYyMzdhM2UxMTliZGZiMDguLmE3Njg5OWIwNjY4ZjUyMjY1NTczODM2M2JlMDU0MDI4NTQ0MjVi
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTVkdFbGVtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3Np
YmlsaXR5Um9sZSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgaW5oZXJpdHNQcmVzZW50YXRpb25hbFJvbGUoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGlzQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
Ci0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IGZpbmFsOwor
ICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2Rh
bHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBmaW5hbDsKIAogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHRhcmdldEZvclVzZUVsZW1lbnQoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmNwcAppbmRleCA2YmVlYTUxM2FkYmMzZDA1NDFkODIzYjdmY2U0NDU0YTY2ZDJkYmY4Li45ZThj
MDZmZWFhMDNjZGMxYTBiMGViZWE5ZGNkOTM5ZWMzZjc5MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcApA
QCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNsZWFyQ2hp
bGRyZW4oKQogICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhciA9IG51bGxwdHI7CiB9CiAKLWJvb2wg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzKSBjb25zdAogewogICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHdlYkFyZWEgPSB3ZWJBcmVhT2JqZWN0KCk7CiAgICAgaWYgKCF3ZWJBcmVhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCmluZGV4IGFkYzY1Y2E1YTAzMzg5NzcyODZmYzNmNjBhNjc2OGM1MjI1YTk3MTEu
LmY5ZWI1ODczN2JlNmJiMjU4MGI2NWUyNWU2YTQ2ZmQxMjE5ZjgxZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxWaWV3KiBjdXJyZW50U2Nyb2xs
VmlldygpIGNvbnN0OwogICAgIFNjcm9sbGFibGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Ny
b2xsYWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGN1cnJlbnRTY3JvbGxWaWV3KCk7IH0K
ICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2RhbHMg
PSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlz
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXdJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KICAgICBib29sIGlzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTbGlkZXIuY3BwCmluZGV4IDllZjU4Y2Y5NzZiYmZiZmM4YjYyYzYzMmJmMjRjYjI4
ZTE4ZGVlYmEuLjNkNDlkZmYxZmRmMGUyMTk5YTdjMGUwNjUyMTMwNDc1MDRmZTc5YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVy
LmNwcApAQCAtMTgzLDkgKzE4Myw5IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVNsaWRlclRo
dW1iOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIH0KIAot
Ym9vbCBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFs
cykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgp
OworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KHNob3VsZENvbnNp
ZGVyTW9kYWxzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAppbmRleCBhYmE5MTIw
MDA4NDk3ZDBmMWQ1NzFkZTM5MDAzOWQxZTk1ZWUwNTY4Li5iODUyZWI2ZGQ5ZDg5NDk2MzFmNTNm
OTBlNjM0ZjFhMzgwZTM5NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAg
IEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYigpOwogCiAgICAgYm9vbCBpc1NsaWRlclRodW1iKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hvdWxkQ29uc2lkZXJNb2Rh
bHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5j
cHAKaW5kZXggZjc1ZjAzZDQyMGQ2Nzk5ZWJiODMzNTNmNTkyNjU0Y2YxNjQzNTMwMS4uYWQ1MDA2
NjhjODAyZGUxNmQyODhlMTJkMmM3ZjRmNjlmZjJlOThmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtNjU0LDE2ICs2
NTQsMTYgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRhYmxlOjpyb2xlVmFsdWUo
KSBjb25zdAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU7CiB9CiAgICAgCi1i
b29sIEFjY2Vzc2liaWxpdHlUYWJsZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKFNob3VsZENvbnNpZGVyTW9kYWxzIHNob3VsZENvbnNpZGVyTW9kYWxzKSBjb25zdAogewot
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBkZWZhdWx0T2JqZWN0
SW5jbHVzaW9uKCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9
IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oc2hvdWxkQ29uc2lkZXJNb2RhbHMpOwogICAgIGlmIChk
ZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJbmNsdWRlT2JqZWN0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRlY2lzaW9uID09IEFjY2Vzc2liaWxpdHlP
YmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
CiAgICAgaWYgKCFpc0V4cG9zYWJsZSgpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKKyAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKHNob3VsZENvbnNpZGVyTW9kYWxzKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4
IGU0MDc3YjZlNjZiMzFlMGQzNGEyNjlkZjA5ZjM0ZjNkYWEzZDI3MDUuLmVmNzQ3ZDAwOTY1OGVl
YzBkNTJiNjFlMGUzMTQyYjQ2ODk3ZDI4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaApAQCAtOTQsNyArOTQsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgLy8gaXNEYXRhVGFibGUgaXMgd2hldGhlciBpdCBpcyBleHBvc2VkIGFzIGFuIEFj
Y2Vzc2liaWxpdHlUYWJsZSBiZWNhdXNlIHRoZSBoZXVyaXN0aWMKICAgICAvLyB0aGluayB0aGlz
ICJsb29rcyIgbGlrZSBhIGRhdGEtYmFzZWQgdGFibGUgKGluc3RlYWQgb2YgYSB0YWJsZSB1c2Vk
IGZvciBsYXlvdXQpLgogICAgIGJvb2wgaXNEYXRhVGFibGUoKSBjb25zdCBmaW5hbDsKLSAgICBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgZmluYWw7CisgICAgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9IFNo
b3VsZENvbnNpZGVyTW9kYWxzOjpZZXMpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBjb21wdXRlSXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcAppbmRleCAyN2NmODY5ZjRkNTc3MWM5ODRiMmJlM2Y0NjEyNmI5
ODc3YjYwMDE1Li5kZTRkMDg5ZDg1Y2Q5NTk3MWQwYjY1MTAzMjJhM2YwZDFhNGVjOTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlQ2VsbC5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+
IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmUKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKHJlbmRlcmVyKSk7
CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyBzaG91bGRDb25zaWRlck1v
ZGFscykgY29uc3QKIHsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9u
ID0gZGVmYXVsdE9iamVjdEluY2x1c2lvbigpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNs
dXNpb24gZGVjaXNpb24gPSBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKHNob3VsZENvbnNpZGVyTW9k
YWxzKTsKICAgICBpZiAoZGVjaXNpb24gPT0gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6
SW5jbHVkZU9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChkZWNpc2lvbiA9
PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3QpCkBAIC03MCw3ICs3
MCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCiAgICAgaWYg
KCFpc1RhYmxlQ2VsbCgpKQotICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKHNob3Vs
ZENvbnNpZGVyTW9kYWxzKTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCmlu
ZGV4IDlmZDQ0ZWMyMTcwYjljYjVjZjgyMDRiYjc0MGY1YTY5NjA1MGUyN2UuLmNhYTQ1NDNkMWMx
Y2VhMmVmOTFkMmJlMDEzNjA2YWY2Y2EwODQ1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCkBAIC03NCw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgYSB0YWJsZSBjZWxsIGlzIG5vdCBleHBvc2VkIGFzIGEg
dGFibGUgY2VsbCwgYSBUSCBlbGVtZW50IGNhbiBzZXJ2ZSBhcyBpdHMgdGl0bGUgVUkgZWxlbWVu
dC4KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB0aXRsZVVJRWxlbWVudCgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgZXhwb3Nlc1RpdGxlVUlFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBm
aW5hbDsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNp
ZGVyTW9kYWxzID0gU2hvdWxkQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIGV4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0
c0V4cGFuZGVkVGV4dFZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgQWNjZXNzaWJpbGl0eVRhYmxl
Um93KiBhcmlhT3duZWRCeVBhcmVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCmluZGV4IDRj
OTM3MTIzM2E4M2ZjMGRmZjJjMTA4MTQyYjQyM2U0OTdkNDhlMTQuLmQ2Y2MwMWM4ZWU4MmNmMTQ0
MzVjNWM1MDJmYmNjNGQ5NDRhMmY4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKQEAgLTE2Nyw3ICsx
NjcsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46Omhl
YWRlck9iamVjdEZvclNlY3Rpb24oUmVuZGVyVGFibAogICAgIHJldHVybiBjZWxsT2JqZWN0Owog
fQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46OmNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsK
ICAgICBpZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCmlu
ZGV4IGYzMjY0N2FmODFlNTYzNDhkZTM3N2NkNGFjNTlhMGI4OTMyNzliOTAuLjY2NzM4ODRjMzBh
ZTQzYmZjMTAyNjkzOGE0OTUwYmJhNWZiMmJmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaApAQCAtNTcsNyAr
NTcsNyBAQCBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbigpOwogICAgIAog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlck9iamVjdEZvclNlY3Rpb24oUmVuZGVyVGFi
bGVTZWN0aW9uKiwgYm9vbCB0aFRhZ1JlcXVpcmVkKTsKLSAgICBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscyA9IFNob3VsZENvbnNpZGVyTW9k
YWxzOjpZZXMpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUYWJsZUNvbHVtbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFi
bGVDb2x1bW5JbnN0YW5jZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcAppbmRleCAwNzQyMjhlMjAxZTA3MmU0ZTY3YzdjMTU1
M2E1OWNmYmE1MWE3ZGJkLi5mZDYxYjVmNDUwMmRmNzk3ZDhjOWNiZGRhMTQwMzNhODA5OGQyZjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUhlYWRlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjplbGVtZW50UmVj
dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGVhZGVyUmVjdDsKIH0KIAotYm9vbCBBY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsKICAgICBp
ZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNv
bnRhaW5lci5oCmluZGV4IDRhNmNjYmQ0Y2MyNDA4ZTQ1MTgyM2NhZmY5YzVlYTgyYmI2OWNmNTku
Ljg1ZmZmYWI4YjE2Njg4MzdiNjBhMGVkY2Q1NTA2YjMzNWJmMzkxNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFp
bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcigpOwogICAgIAotICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKFNob3VsZENvbnNpZGVyTW9kYWxzID0gU2hv
dWxkQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRSZWN0
IG1faGVhZGVyUmVjdDsKIH07IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCmluZGV4IDFkZjk4YzhkNjE5Y2RlMGY4MzMx
ZGFmNThlYWZhZWJmOWRjZTZkNGEuLmQwNjI3MDBhNDllODg1MjViMjE4NTQ3NGU1OWE1ZTUxZmQ1
NGZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZVJvdy5jcHAKQEAgLTc3LDE2ICs3NywxNiBAQCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6Om9ic2VydmFibGVPYmplY3QoKSBjb25zdAogICAg
IHJldHVybiBwYXJlbnRUYWJsZSgpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVS
b3c6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJp
bGl0eVRhYmxlUm93Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChTaG91bGRDb25zaWRl
ck1vZGFscyBzaG91bGRDb25zaWRlck1vZGFscykgY29uc3QKIHsgICAgCi0gICAgQWNjZXNzaWJp
bGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKTsK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVmYXVsdE9iamVj
dEluY2x1c2lvbihzaG91bGRDb25zaWRlck1vZGFscyk7CiAgICAgaWYgKGRlY2lzaW9uID09IEFj
Y2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246OkluY2x1ZGVPYmplY3QpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAoZGVjaXNpb24gPT0gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
bjo6SWdub3JlT2JqZWN0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAoIWlz
VGFibGVSb3coKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChzaG91bGRDb25z
aWRlck1vZGFscyk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAppbmRleCA5NTM1OGNm
MjI2YTQ3ZWJkMTBkNDMxYTYxZDlkYjA1YmVmNGJjOGEyLi4wNmU4ZGY5ZjY5OTY0YjEwNmY5YTk2
MDcwZjg2NWQ4MGUyMDgyNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICBib29sIGlzVGFibGVSb3coKSBjb25zdCBmaW5hbDsKICAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3QgZmluYWw7Ci0gICAgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJNb2RhbHMgPSBTaG91
bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIG1fcm93
SW5kZXg7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUcmVlLmNwcAppbmRleCA1OTBjOTYxNTk2MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0NTRl
NjhkLi4yNzkwOWZkZDAwMDBiMzcyZjVhYjQyMDAxNmZiNmJjMjFlZDM2ZWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApAQCAt
NTIsOSArNTIsOSBAQCBSZWY8QWNjZXNzaWJpbGl0eVRyZWU+IEFjY2Vzc2liaWxpdHlUcmVlOjpj
cmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
Y2Nlc3NpYmlsaXR5VHJlZShyZW5kZXJlcikpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5
VHJlZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBBY2Nlc3Np
YmlsaXR5VHJlZTo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJN
b2RhbHMgc2hvdWxkQ29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2li
aWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZEJ5RGVmYXVsdChzaG91bGRDb25zaWRlck1vZGFscyk7CiB9CiAKIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlUcmVlOjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmgKaW5kZXgg
MzVjN2YxNGY3Y2NiNDVkZjNlMzA2YTQ1ZjYzZTQ5OWJmZTVlM2UzYS4uMmUxNDNjZmJjZmEyOWEx
OTlmYWU2MWUzMmViYzQ2NjBlY2QyMDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVRyZWUoUmVuZGVyT2JqZWN0Kik7
Ci0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoU2hvdWxkQ29uc2lkZXJN
b2RhbHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICBB
Y2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpIG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNUcmVlVmFsaWQoKSBjb25zdDsKICAgICBib29sIG5vZGVIYXNUcmVlSXRlbUNo
aWxkKE5vZGUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvU2hvdWxkQ29uc2lkZXJNb2RhbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
U2hvdWxkQ29uc2lkZXJNb2RhbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODIxZTI3ODg1MmJkODM0ODcwY2Nh
MGFlNGRjNzhlYTJmOWY2MzEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9TaG91bGRDb25zaWRlck1vZGFscy5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IFNob3VsZENvbnNpZGVyTW9kYWxzIDogdWludDhfdCB7IE5vLCBZZXMgfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA2OTNlOWZlOWZlYzIxMjIxNDAxYmNmMTc3NTg4NzBm
YzRhOGFkMmNhLi45NDFjYjc5OTM2ODQ2N2M5ZGEyNjljMDU2Y2FkMjJkM2NjMDVjOGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTg2OSwxMyArMTg2OSwxMyBAQCBSZW5kZXJP
YmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OnJlbmRlcmVyKCkgY29uc3QKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWElzb2xhdGVkT2JqZWN0
OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3QKK0FjY2Vzc2liaWxpdHlPYmplY3RJbmNs
dXNpb24gQVhJc29sYXRlZE9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbihTaG91bGRDb25z
aWRlck1vZGFscykgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6RGVmYXVsdEJlaGF2aW9yOwogfQogCi1i
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKSBj
b25zdAorYm9vbCBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZh
dWx0KFNob3VsZENvbnNpZGVyTW9kYWxzKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCAzZDdk
MDI3NTNhZDJkM2FjYTJhNzI1YTIzZmM0ZTcxOWQ4NTQ0Yjk3Li44YTUxYzI2ODcxZDY4M2NhODZi
NGVmYzc5MjllOWExODZhMjIyNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC01Mzks
OCArNTM5LDggQEAgcHJpdmF0ZToKICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVz
aW9uIGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlZmF1bHRPYmplY3RJbmNsdXNpb24oU2hvdWxkQ29u
c2lkZXJNb2RhbHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsK
KyAgICBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoU2hvdWxkQ29uc2lkZXJN
b2RhbHMgPSBTaG91bGRDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICBm
bG9hdCBzdGVwVmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFYQ29yZU9iamVj
dCogc2VsZWN0ZWRMaXN0SXRlbSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYXJpYUFjdGl2ZURlc2Nl
bmRhbnRSZWZlcmVuY2luZ0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM1NGVjNDk1MWU0Njg1YjJjOTNkNzlmZTkzMzhiOTAwNzE2
Y2IyZDguLjJjZDZkYmRjODk1NTc1YjlmNmIzNDQwNmQ3NjI5Mzg3YTYxODhjYWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMi0wMi0yNiAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBXZWJLaXQgc2hvdWxkIGlnbm9yZSBlbXB0eSBtb2RhbHMgcmF0
aGVyIHRoYW4gdHJhcHBpbmcgZm9jdXMgaW5zaWRlIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzE2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxz
LXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIG5ldyB0ZXN0
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0
aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dsaWIvVGVzdEV4cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdC4KKwogMjAyMi0wMi0yMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9tdXRlLXRyYWNrcy5odG1sIGZhaWxzIHdpdGggV2ViUlRDUmVtb3RlVmlkZW9GcmFt
ZUVuYWJsZWQ9dHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZ25v
cmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiZGVkZGE3ODYzMGU4NTI5Yjg5YjA2NzE0YjEwZjJhZGY0MjY5MDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2Rh
bHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCB3ZSBpZ25vcmUgbW9kYWxzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkg
YWNjZXNzaWJsZSBjb250ZW50LgorCitCZWdpbm5pbmcgc2VhcmNoIGZyb20gI2NvbnRhaW5lciBl
bGVtZW50LgorCitBWFJvbGU6IEFYU3RhdGljVGV4dAorQVhWYWx1ZTogRm9vIHRleHQsIGJlZm9y
ZSBtb2RhbAorCitBWFJvbGU6IEFYU3RhdGljVGV4dAorQVhWYWx1ZTogRm9vIHRleHQsIGFmdGVy
IG1vZGFsCisKK0FwcGVuZGluZyBhIHRleHQgbm9kZSB0byBtb2RhbCB0byBtYWtlIGl0IGFjY2Vz
c2libGUuCitQQVNTOiAjY29udGFpbmVyIEFYIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGFjY2Vzc2li
bGUgYWZ0ZXIgYWRkaW5nIGFjY2Vzc2libGUgY29udGVudCB0byBtb2RhbC4KKworQmVnaW5uaW5n
IHNlYXJjaCBmcm9tICNtb2RhbCBlbGVtZW50LgorCitBWFJvbGU6IEFYU3RhdGljVGV4dAorQVhW
YWx1ZTogRm9vIHRleHQsIGluc2lkZSBtb2RhbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjlmYjgzOGVmMWM0ZjgzMzJmYmYxMTcwYjM0YTZiNjQ4MGFhMWRmNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13
aXRob3V0LWFueS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorCis8ZGl2IGlkPSJjb250YWluZXIiIHJvbGU9Imdyb3VwIj4KKyAgICA8ZGl2PkZvbyB0
ZXh0LCBiZWZvcmUgbW9kYWw8L2Rpdj4KKworICAgIDxkaXYgaWQ9Im1vZGFsIiByb2xlPSJkaWFs
b2ciIGFyaWEtbW9kYWw9InRydWUiPgorICAgICAgICA8IS0tIFdyYXAgdGhlIGFyaWEtaGlkZGVu
IGNvbnRlbnQgaW4gYXJiaXRyYXJ5IGRpdiBsYXllcnMgdG8gZW5zdXJlIHdlIGRvbid0IGNvbnNp
ZGVyIHRoZSBhcmJpdHJhcnkgZGl2cyBhY2Nlc3NpYmxlIGNvbnRlbnQuIC0tPgorICAgICAgICA8
ZGl2PgorICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGFyaWEtaGlkZGVu
PSJ0cnVlIj4KKyAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+SGlkZGVuIGJ1dHRvbiAoaW5z
aWRlIG1vZGFsKTwvYnV0dG9uPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAg
ICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KKyAgICAgICAgICAgICAgICAgICAgIFRl
eHQgaW5zaWRlIGRpc3BsYXk6IG5vbmUKKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXY+Rm9vIHRl
eHQsIGFmdGVyIG1vZGFsPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAgICB2YXIgdGVzdE91
dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdlIGlnbm9yZSBtb2RhbHMgdGhhdCBkb24n
dCBoYXZlIGFueSBhY2Nlc3NpYmxlIGNvbnRlbnQuXG4iOworCisgICAgYXN5bmMgZnVuY3Rpb24g
ZmluZFRleHRJbnNpZGVJZChpZCkgeworICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAg
ICAgdGVzdE91dHB1dCArPSBgXG5CZWdpbm5pbmcgc2VhcmNoIGZyb20gIyR7aWR9IGVsZW1lbnQu
XG5gOworCisgICAgICAgIGxldCBzZWFyY2hSZXN1bHQgPSBudWxsOworICAgICAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICAgICAgc2VhcmNoUmVzdWx0ID0gY29udGFpbmVyRWxlbWVudC51aUVs
ZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoc2VhcmNoUmVzdWx0LCB0cnVlLCAiQVhBbnlUeXBlU2Vh
cmNoS2V5IiwgIiIsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghc2VhcmNoUmVzdWx0KQorICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0LnJvbGUu
aW5jbHVkZXMoIlN0YXRpY1RleHQiKSkgeworICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0g
YFxuJHtzZWFyY2hSZXN1bHQucm9sZX1gOworICAgICAgICAgICAgICAgIGNvbnN0IHRleHRDb250
ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09PSAiaW9zIiA/IHNl
YXJjaFJlc3VsdC5kZXNjcmlwdGlvbiA6IHNlYXJjaFJlc3VsdC5zdHJpbmdWYWx1ZTsKKyAgICAg
ICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbiR7dGV4dENvbnRlbnR9XG5gOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgeworICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IGZpbmRU
ZXh0SW5zaWRlSWQoImNvbnRhaW5lciIpOworCisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJc
bkFwcGVuZGluZyBhIHRleHQgbm9kZSB0byBtb2RhbCB0byBtYWtlIGl0IGFjY2Vzc2libGUuIjsK
KyAgICAgICAgICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZvbyB0ZXh0
LCBpbnNpZGUgbW9kYWwiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJt
b2RhbCIpLmFwcGVuZENoaWxkKHRleHQpOworCisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgp
ID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgaW5uZXJNb2RhbEdyb3VwID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJtb2RhbCIpLmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgICAgICAgICAvLyBXYWl0IGZvciB0ZXh0IG5vZGUgdG8gYmUgYWRkZWQgYXMg
YW4gQVggY2hpbGQuCisgICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyTW9kYWxHcm91cCAmJiBp
bm5lck1vZGFsR3JvdXAuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgIGxldCBjb250YWluZXJFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgICAgICAgICAgIGlmIChjb250YWlu
ZXJFbGVtZW50KQorICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuRkFJTDogI2NvbnRh
aW5lciBBWCBlbGVtZW50IHdhcyBzdGlsbCBhY2Nlc3NpYmxlIGFmdGVyIGFkZGluZyBhY2Nlc3Np
YmxlIGNvbnRlbnQgdG8gbW9kYWwuXG4iOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RPdXRwdXQgKz0gIlxuUEFTUzogI2NvbnRhaW5lciBBWCBlbGVtZW50IGlzIG5vIGxv
bmdlciBhY2Nlc3NpYmxlIGFmdGVyIGFkZGluZyBhY2Nlc3NpYmxlIGNvbnRlbnQgdG8gbW9kYWwu
XG4iOworCisgICAgICAgICAgICBhd2FpdCBmaW5kVGV4dEluc2lkZUlkKCJtb2RhbCIpOworCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuc3R5bGUudmlz
aWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGli
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNTg2YjNjZWIyNmU3YzA2ZDI2Y2IxNDhiMTc3OTMxNjlkMzIxZWNkNS4uMGEz
MmRhYTg0NGNiMGVkNWNiYmUxZGIyYjIwYzFjYmViNzU0Yzc3MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQzLDYgKzM0Myw3IEBAIGFjY2Vzc2li
aWxpdHkvZm9jdXNhYmxlLWRpdi5odG1sIFsgU2tpcCBdCiAjIE1pc3NpbmcgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlIGltcGxlbWVudGF0aW9uLgog
YWNjZXNzaWJpbGl0eS90YWJsZS1zZWFyY2gtdHJhdmVyc2FsLmh0bWwgWyBTa2lwIF0KIGFjY2Vz
c2liaWxpdHkvZHluYW1pY2FsbHktY2hhbmdpbmctaWZyYW1lLXJlbWFpbnMtYWNjZXNzaWJsZS5o
dG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29u
dGVudC5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8yMTI4MDUgYWNjZXNzaWJpbGl0eS9z
dmctdGV4dC5odG1sIFsgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNDJiMTA5ZGJjZGNhMzcxNWVlOTlhMDIxNzdhMjVjYmViNWNhMGJm
Mi4uNWFkYWQzODlhMTI1NjE2ZmFlZGMzZTc0NmZjMWQ5NDAwMmQzODk2NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwOTksNiArMjA5OSw3IEBAIHdl
YmtpdC5vcmcvYi8xNTAzNjYgYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRt
bCBbIFBhc3MgXQogCiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2ZXJzYWwuaHRtbCBb
IFBhc3MgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1pZnJhbWUtcmVtYWlu
cy1hY2Nlc3NpYmxlLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13
aXRob3V0LWFueS1jb250ZW50Lmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9zZWxlY3Rl
ZC1zdGF0ZS1jaGFuZ2VkLW5vdGlmaWNhdGlvbnMuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0
eS9lbGVtZW50LWxpbmUtcmVjdHMtYW5kLXRleHQuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRo
b3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9h
Y2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTNhMTQ5NGYyZDk0YmU0NzJmZmVkZjVjOTZiZTJiZmEzM2Y2ZDBkNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5
L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3ZSBpZ25vcmUgbW9kYWxzIHRoYXQgZG9u
J3QgaGF2ZSBhbnkgYWNjZXNzaWJsZSBjb250ZW50LgorCitCZWdpbm5pbmcgc2VhcmNoIGZyb20g
I2NvbnRhaW5lciBlbGVtZW50LgorCitTdGF0aWNUZXh0CitBWExhYmVsOiBGb28gdGV4dCwgYmVm
b3JlIG1vZGFsCisKK1N0YXRpY1RleHQKK0FYTGFiZWw6IEZvbyB0ZXh0LCBhZnRlciBtb2RhbAor
CitBcHBlbmRpbmcgYSB0ZXh0IG5vZGUgdG8gbW9kYWwgdG8gbWFrZSBpdCBhY2Nlc3NpYmxlLgor
UEFTUzogI2NvbnRhaW5lciBBWCBlbGVtZW50IGlzIG5vIGxvbmdlciBhY2Nlc3NpYmxlIGFmdGVy
IGFkZGluZyBhY2Nlc3NpYmxlIGNvbnRlbnQgdG8gbW9kYWwuCisKK0JlZ2lubmluZyBzZWFyY2gg
ZnJvbSAjbW9kYWwgZWxlbWVudC4KKworU3RhdGljVGV4dAorQVhMYWJlbDogRm9vIHRleHQsIGlu
c2lkZSBtb2RhbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3
YTNkMDA1Njc4ODhjZjI1MGI4M2EzNDAwNTVlOGQ3ZGIxNzYzMDlkLi5lZTY3YTM2NzcxMmU4NDcy
NTJmOGQ2NjZjMjU1ODY1OGViNjEzMzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDc2LDYgKzQ3Niw3IEBAIGFjY2Vzc2liaWxpdHkvYW5jZXN0b3It
Y29tcHV0YXRpb24uaHRtbCBbIFNraXAgXQogIyBNaXNzaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSBpbXBsZW1lbnRhdGlvbi4KIGFjY2Vzc2li
aWxpdHkvdGFibGUtc2VhcmNoLXRyYXZlcnNhbC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5
L2R5bmFtaWNhbGx5LWNoYW5naW5nLWlmcmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFNr
aXAgXQorYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRt
bCBbIFNraXAgXQogCiAjIFRPRE8gQ29uaWMgZ3JhZGllbnRzCiBodHRwL3dwdC9jc3MvY3NzLWlt
YWdlcy00L2NvbmljLWdyYWRpZW50LXBhcnNpbmcuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453301</attachid>
            <date>2022-02-26 10:24:23 -0800</date>
            <delta_ts>2022-02-28 12:50:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237163-20220226122421.patch</filename>
            <type>text/plain</type>
            <size>65796</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1NWJlYTg5MWI5ZGU2
OGZlMjA4MmQ4YTZjNDE4OTIwMDQ1MjU5Yi4uMjE2OTA2ZmQ1YTQwMjc1ZjVlNjU1MDRiNjBiNzVm
ZWE5NTUxYmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMi0wMi0yNiAgVHls
ZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBXZWJLaXQgc2hv
dWxkIGlnbm9yZSBlbXB0eSBtb2RhbHMgcmF0aGVyIHRoYW4gdHJhcHBpbmcgZm9jdXMgaW5zaWRl
IHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdp
dmVuIHRoaXMgbWFya3VwOgorCisgICAgICAgIDxkaXYgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFs
PSJ0cnVlIj4KKyAgICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49InRydWUiPgorICAgICAgICAg
ICAgICAgIDxidXR0b24+Q2xvc2UgbW9kYWwgKGluc2lkZSBtb2RhbCk8L2J1dHRvbj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKworICAgICAgICBUaGVyZSBpcyBubyBhY2Nl
c3NpYmxlIGNvbnRlbnQgaW5zaWRlIHRoaXMgbW9kYWwsIGJ1dCBXZWJLaXQgdHJhcHMgdXNlciBm
b2N1cyBpbnNpZGUsCisgICAgICAgIG1ha2luZyB0aGUgcmVzdCBvZiB0aGUgcGFnZSBjb21wbGV0
ZWx5IGluYWNjZXNzaWJsZS4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGlnbm9yZSBt
b2RhbHMgdGhhdCBkb24ndCBoYXZlIGFjY2Vzc2libGUgY29udGVudC4KKyAgICAgICAgV2UgZG8g
dGhpcyBieSB3YWxraW5nIHRoZSBET00gdG8gZmluZCBhbnkgbm9uLUFYLWlnbm9yZWQgb2JqZWN0
cy4KKyAgICAgICAgQmVjYXVzZSBkZXRlcm1pbmluZyB3aGV0aGVyIG9yIG5vdCBhbiBlbGVtZW50
IGlzIGlnbm9yZWQgaXMgZGVwZW5kZW50CisgICAgICAgIG9uIG1vZGFscyBwcmVzZW50IG9uIHRo
ZSBwYWdlLCB0aGlzIHBhdGNoIGFkZHMgYSBmbGFnIHRvIGF2b2lkCisgICAgICAgIGNvbnNpZGVy
aW5nIG1vZGFscyAoY2FsbGVkIENvbnNpZGVyTW9kYWxzKSB3aGVuIGNvbXB1dGluZyBpcy1pZ25v
cmVkIHN0YXR1cywKKyAgICAgICAgc2luY2Ugb3RoZXJ3aXNlIHdlIHdvdWxkIGJlIHN0dWNrIGlu
IGluZmluaXRlIHJlY3Vyc2lvbi4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2lnbm9y
ZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgQWRkIENvbnNpZGVyTW9kYWxzLmgKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bW9kYWxFbGVtZW50
SGFzQWNjZXNzaWJsZUNvbnRlbnQpOgorICAgICAgICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmN1cnJlbnRNb2RhbE5vZGUpOgorICAgICAgICBPbmx5IGNvbnNpZGVy
IG1vZGFscyB3aXRoIGFjY2Vzc2libGUgY29udGVudCB0byBiZSBjYW5kaWRhdGVzIGZvcgorICAg
ICAgICBzZWxlY3Rpb24uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXR0YWNobWVudDo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
YWJlbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGFiZWw6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMYWJlbC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMaXN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJv
eE9wdGlvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9i
amVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmg6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQg
Y29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TW9ja09iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1
c2lvbiBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVmYXVs
dE9iamVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVy
VGh1bWI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5VGFibGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uOjpjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDb2x1bW4uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXI6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
ci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6Y29tcHV0ZUFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRyZWUuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0NvbnNpZGVyTW9kYWxzLmg6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6ZGVmYXVsdE9i
amVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0
OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0IGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgIEFsbCBm
dW5jdGlvbnMgYWJvdmUgZ2FpbiBhIG5ldyBDb25zaWRlck1vZGFscyBwYXJhbWV0ZXIuCisKIDIw
MjItMDItMjIgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zdHls
ZSBQREYuanMgZm9ybSBmaWVsZHMgdG8gbWF0Y2ggUERGS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCBmMWNlZGI5Yzc1YmNmOTc3N2MwZmM4OWY1Njg5N2UyM2M4YTI3YmQwLi5iODMwMDMxYzFkOGFl
NDE3MzZjZWU2MzQ1YWVjNjZiMGU2OTMxY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTM5Miw2
ICszOTIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKICAgICBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcuaAorICAgIGFjY2Vzc2liaWxpdHkvQ29uc2lkZXJNb2RhbHMuaAog
ICAgIGFjY2Vzc2liaWxpdHkvRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgKIAogICAgIGFjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4ZmNiYjA3N2I3
NTEyNjkzNjZiMjRmYzc1ZmE0ZTE4OWQxNDc2MWQuLjM5MmMxOTE2YzRkODFjMzFmMmI2ZGExNjkx
ZGFkYmVhNDc2NDM2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTEsNiArMTQxMSw3IEBACiAJCTQ3QzRENTdEMjY1MDhC
Q0IwMEM3QUIxRiAvKiBJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ3QzRENTdDMjY1MDhCQ0EwMEM3QUIxRiAv
KiBJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0N0Y5NDdEQjI2NTAyRjJGMDA4Nzk2OEMgLyogQmxvY2tG
b3JtYXR0aW5nUXVpcmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0N0Y5NDdEQTI2NTAyRjJGMDA4Nzk2OEMgLyogQmxvY2tGb3JtYXR0aW5nUXVpcmtz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDdG
QTk3MDAyNjUwOTgyQjAwODQxNDE2IC8qIFRhYmxlRm9ybWF0dGluZ0dlb21ldHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0N0ZBOTZGRjI2NTA5ODJB
MDA4NDE0MTYgLyogVGFibGVGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0ODZBMUUzODI3QzlBNTgxMDA5RTNFMjgg
LyogQ29uc2lkZXJNb2RhbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ4NkExRTM3MjdDOUE1ODEwMDlFM0UyOCAvKiBDb25zaWRlck1vZGFscy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5M0U1RTA5
MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4
MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0OTQ1QkZENDEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNm
b3JtU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5NDVCRkQyMTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5oICovOyB9OwogCQk0
OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwpAQCAtOTM5MCw2ICs5MzkxLDcgQEAKIAkJNDdD
NEQ1N0MyNjUwOEJDQTAwQzdBQjFGIC8qIElubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDdGOTQ3REEyNjUwMkYyRjAwODc5NjhDIC8q
IEJsb2NrRm9ybWF0dGluZ1F1aXJrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDdGQTk2RkYyNjUwOTgyQTAwODQxNDE2IC8qIFRhYmxlRm9ybWF0dGluZ0dlb21ldHJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhYmxlRm9ybWF0dGluZ0dlb21ldHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ4NkExRTM3MjdDOUE1ODEwMDlFM0UyOCAv
KiBDb25zaWRlck1vZGFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zaWRlck1vZGFscy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEgLyogUGxh
dGZvcm1DQUxheWVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtQ0FMYXllckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ1
QkZEMTEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNmb3JtU3RhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJhbnNmb3JtU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTQ1QkZEMjEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNmb3JtU3Rh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhbnNmb3JtU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNjgwLDYgKzIwNjgyLDcgQEAKIAkJCQky
OTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCiAJCQkJMjlB
ODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKIAkJCQk5MUM5RjJG
ODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAqLywKKwkJCQk0
ODZBMUUzNzI3QzlBNTgxMDA5RTNFMjggLyogQ29uc2lkZXJNb2RhbHMuaCAqLywKIAkJCQlCQzRB
NTMzMDI1NjA1OTAzMDAyOEM1OTIgLyogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CkBAIC0zMzkxNiw2ICszMzkxOSw3IEBACiAJ
CQkJNTVBRDA5NDEyNDA4OTY0QTAwREU0RDJGIC8qIENvbmNyZXRlSW1hZ2VCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEMzE2MDhGMTJCMDI2RjcwMEMxQTM1OSAvKiBDb25lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NUM5N0FGMzA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0ODZBMUUzODI3QzlBNTgxMDA5RTNFMjggLyogQ29uc2lkZXJNb2RhbHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEQUYzNDNEMUVBN0UwRjEwMDM4MkNEMyAvKiBDb25zdGFu
dFByb3BlcnR5TWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlFN0M4RTEzQjI0RTJGRTdFMDAyN0Ey
N0YgLyogQ29uc3RhbnRTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFN0M4RTEzNzI0
RTJGQkNFMDAyN0EyN0YgLyogQ29uc3RhbnRTb3VyY2VPcHRpb25zLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4
IDBmZTE0M2MyYjhlYTI5NTE3NTI2NjEyYzlmNmEyODZlYzJlZjMwODAuLjRjZTJiNmMyNTFmM2Ux
MmM1MDM4OTgxNjRhMGYyZmMxOTNlN2ViMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlUcmVlLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmgiCiAj
aW5jbHVkZSAiQ2FyZXRSZWN0Q29tcHV0YXRpb24uaCIKKyNpbmNsdWRlICJDb25zaWRlck1vZGFs
cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtMjY5LDYgKzI3MCwzNCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZp
bmRNb2RhbE5vZGVzKCkKICAgICBtX21vZGFsTm9kZXNJbml0aWFsaXplZCA9IHRydWU7CiB9CiAK
K2Jvb2wgQVhPYmplY3RDYWNoZTo6bW9kYWxFbGVtZW50SGFzQWNjZXNzaWJsZUNvbnRlbnQoRWxl
bWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIFVubGVzcyB5b3UncmUgdHJ5aW5nIHRvIGNvbXB1dGUgdGhlIG5ldyBtb2Rh
bCBub2RlLCBkZXRlcm1pbmluZyB3aGV0aGVyIGFuIGVsZW1lbnQKKyAgICAvLyBoYXMgYWNjZXNz
aWJsZSBjb250ZW50IGlzIGFzIGVhc3kgYXMgIWdldE9yQ3JlYXRlKGVsZW1lbnQpLT5jaGlsZHJl
bigpLmlzRW1wdHkoKS4KKyAgICAvLyBTbyBkb24ndCBjYWxsIHRoaXMgbWV0aG9kIG9uIGFueXRo
aW5nIGJlc2lkZXMgbW9kYWwgZWxlbWVudHMuCisgICAgQVNTRVJUKGlzTW9kYWxFbGVtZW50KCpl
bGVtZW50KSk7CisKKyAgICAvLyBCZWNhdXNlIGNvbXB1dGluZyBhbnkgb2JqZWN0J3MgY2hpbGRy
ZW4oKSBpcyBkZXBlbmRlbnQgb24gd2hldGhlciBhIG1vZGFsIGlzIG9uIHRoZSBwYWdlLAorICAg
IC8vIHdlJ2xsIG5lZWQgdG8gd2FsayB0aGUgRE9NIGFuZCBmaW5kIG5vbi1pZ25vcmVkIEFYIG9i
amVjdHMgbWFudWFsbHkuCisgICAgVmVjdG9yPE5vZGUqPiBub2RlU3RhY2sgPSB7IGVsZW1lbnQt
PmZpcnN0Q2hpbGQoKSB9OworICAgIHdoaWxlICghbm9kZVN0YWNrLmlzRW1wdHkoKSkgeworICAg
ICAgICBmb3IgKGF1dG8qIG5vZGUgPSBub2RlU3RhY2sudGFrZUxhc3QoKTsgbm9kZTsgbm9kZSA9
IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBheE9iamVjdCA9
IGdldE9yQ3JlYXRlKG5vZGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFheE9iamVjdC0+Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHM6Ok5vKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8v
IERvbid0IGRlc2NlbmQgaW50byBzdWJ0cmVlcyBmb3Igbm9uLXZpc2libGUgbm9kZXMuCisgICAg
ICAgICAgICBpZiAoaXNOb2RlVmlzaWJsZShub2RlKSkKKyAgICAgICAgICAgICAgICBub2RlU3Rh
Y2suYXBwZW5kKG5vZGUtPmZpcnN0Q2hpbGQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBFbGVtZW50KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2Rl
KCkKIHsKICAgICAvLyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBtb2RhbCBkaWFsb2cgbm9kZXMu
CkBAIC0yODgsMTIgKzMxNywxMiBAQCBFbGVtZW50KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9k
YWxOb2RlKCkKICAgICBSZWZQdHI8RWxlbWVudD4gZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgp
LmZvY3VzZWRFbGVtZW50KCk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGxhc3RWaXNpYmxlOwogICAg
IGZvciAoYXV0byYgZWxlbWVudCA6IG1fbW9kYWxFbGVtZW50c1NldCkgewotICAgICAgICBpZiAo
aXNOb2RlVmlzaWJsZShlbGVtZW50KSkgeworICAgICAgICAvLyBUbyBhdm9pZCB0cmFwcGluZyB1
c2VycyBpbiBhbiBlbXB0eSBtb2RhbCwgc2tpcCBhbnkgbm9uLXZpc2libGUgZWxlbWVudCwgb3Ig
YW55IGVsZW1lbnQgd2l0aG91dCBhY2Nlc3NpYmxlIGNvbnRlbnQuCisgICAgICAgIGlmIChpc05v
ZGVWaXNpYmxlKGVsZW1lbnQpICYmIG1vZGFsRWxlbWVudEhhc0FjY2Vzc2libGVDb250ZW50KGVs
ZW1lbnQpKSB7CiAgICAgICAgICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgJiYgZm9jdXNlZEVsZW1l
bnQtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50
TW9kYWxFbGVtZW50ID0gZWxlbWVudDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KLQogICAgICAgICAgICAgbGFzdFZpc2libGUgPSBlbGVtZW50OwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRl
eCBmNzMyYTkxMGFkNThiMWViODQ0ZDllYWE3ZTlmOTM2YTE4MjVmMGYyLi45OWVjMWJiZGI5Mzgz
NWVmNGFiMzAxYjQ5MWFmNWQxYzVmZTdmMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDc0LDYgKzQ3NCw3IEBAIHByaXZhdGU6CiAgICAg
RWxlbWVudCogY3VycmVudE1vZGFsTm9kZSgpOwogICAgIGJvb2wgaXNOb2RlVmlzaWJsZShOb2Rl
KikgY29uc3Q7CiAgICAgdm9pZCBoYW5kbGVNb2RhbENoYW5nZShFbGVtZW50Jik7CisgICAgYm9v
bCBtb2RhbEVsZW1lbnRIYXNBY2Nlc3NpYmxlQ29udGVudChFbGVtZW50Kik7CiAKICAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNobWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmNwcAppbmRleCBlZGJjYjQ2MWM5OGUzNjFmYzRiMzg5ZjQ2M2MyYjljZTY4MDg0NWJmLi5kYWQ3
YThlZjIwM2EyZjZiOTVhMDE4ZWE3NTk0ZGRmZmJjMmQ2MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcApA
QCAtNzksNyArNzksNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ6OnJvbGVEZXNj
cmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIEFYQXR0YWNobWVudFJvbGVUZXh0KCk7CiB9CiAK
LWJvb2wgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzKSBjb25zdAogewogICAgIHJldHVybiBmYWxz
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUF0dGFjaG1lbnQuaAppbmRleCA0ZDM1NWQ4ZmIyOWM4OWE2NDdhZDA4MjIyMmU3M2U3MGUy
YTY1ZmYwLi45MTVmMjEwMWQ2Yjg0NWJmNjdmOGJiYTQyMTJjZDE0Zjk3M2M3NmM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXR0YWNo
bWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgcm9sZURlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNp
ZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQoUmVuZGVyQXR0YWNo
bWVudCopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxhYmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxhYmVsLmNwcAppbmRleCA2MjI1ZmUwNDQ0NTVkZjBlMWYzMjY1YzEzNDkyYmM1ZjYy
MWE5OTkyLi4xZGQwYjIyY2EzYTIxZjYwY2YzNjBmNWM1NjA0MzVmYTcwZWU0ZGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMYWJlbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwuY3Bw
CkBAIC00OCw5ICs0OCw5IEBAIFJlZjxBY2Nlc3NpYmlsaXR5TGFiZWw+IEFjY2Vzc2liaWxpdHlM
YWJlbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eUxhYmVsKHJlbmRlcmVyKSk7CiB9CiAKLWJvb2wgQWNjZXNzaWJp
bGl0eUxhYmVsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFj
Y2Vzc2liaWxpdHlMYWJlbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJN
b2RhbHMgY29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5
RGVmYXVsdChjb25zaWRlck1vZGFscyk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5TGFiZWw6
OnN0cmluZ1ZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMYWJlbC5oCmluZGV4IDYyNWEyN2YyYWU4MGExODU0NDk1MmQyZjIyYWY5
NTNjMDFlZjZkYzAuLjljOWE1YzM4NWQyMzc2YzRjODNkZjMzMmFjYjIxNDVhMjgwMWJkNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxhYmVs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGFiZWwu
aApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNj
ZXNzaWJpbGl0eUxhYmVsKFJlbmRlck9iamVjdCopOwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qg
ZmluYWw7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOyB9CiAgICAgYm9vbCBpc0xhYmVsKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlMaXN0LmNwcAppbmRleCBhZDhmY2Q4MDM1MjUyOWRiMTA1ZTMzMThhZTQ3YWQ5ZTYxYTIyNWY2
Li44ODg4Nzc5ZjE2NWNmNGE3OTFlNDQ2OTQ3YmQ3ZjFkN2Q1ODdjMzAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNTMs
OSArNTMsOSBAQCBSZWY8QWNjZXNzaWJpbGl0eUxpc3Q+IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVh
dGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nl
c3NpYmlsaXR5TGlzdChyZW5kZXJlcikpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlMaXN0Ojpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlM
aXN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyBjb25zaWRl
ck1vZGFscykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVm
YXVsdCgpOworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KGNvbnNp
ZGVyTW9kYWxzKTsKIH0KICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eUxpc3Q6OmlzVW5vcmRlcmVk
TGlzdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMaXN0LmgKaW5kZXggMGE3ZTBhYTNiMWRmZjEzOTMyMDAwMzcxZTZjODIzMjgyZWY0ZjA2
ZC4uMmVmNTI3MTk0MDc5MDU1OWNjMTE4ZWUwNjY5OTQ2NTRmYjc5MGI0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaApAQCAtNDUsNyAr
NDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNPcmRlcmVkTGlzdCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIGJvb2wgaXNEZXNjcmlwdGlvbkxpc3QoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lk
ZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKICAgICBib29sIGNoaWxkSGFzUHNl
dWRvVmlzaWJsZUxpc3RJdGVtTWFya2VycyhSZW5kZXJPYmplY3QqKTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hP
cHRpb24uY3BwCmluZGV4IDE2YjM0YjlmMThmNDU0ZGJmZGQwYjU1MTA3MWVkZDViNDdjYzJhNzku
LmFiODBkMTNjOTEzOThmOTkyMDg0OWU4ZTZlMGNkMzNlNTExYjMyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hP
cHRpb24uY3BwCkBAIC0xMDgsMTIgKzEwOCwxMiBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlM
aXN0Qm94T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAK
LWJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzIGNvbnNpZGVyTW9kYWxzKSBjb25z
dAogewogICAgIGlmICghbV9vcHRpb25FbGVtZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIGlmIChhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCkpCisgICAgaWYgKGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoY29uc2lkZXJNb2RhbHMpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGF1dG8qIHBhcmVudCA9IHBhcmVudE9iamVjdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5oCmluZGV4IGMxYjk0NDlhNDA3NDJkNDM3YmY0ZWM5YzdiN2VlZTkwMzU2NmNjMjguLjJj
NDExNjU2ZmFkNWQ4NDgyNThjOWJiOWRmOTNiNTcwZmQ5ZDQ1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbGlzdEJveE9wdGlvbkluZGV4
KCkgY29uc3Q7CiAgICAgSW50UmVjdCBsaXN0Qm94T3B0aW9uUmVjdCgpIGNvbnN0OwogICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxF
bGVtZW50KikgY29uc3Q7Ci0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29u
c2lkZXJNb2RhbHMgPSBDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBmaW5hbDsKIAogICAgIFdl
YWtQdHI8SFRNTEVsZW1lbnQ+IG1fb3B0aW9uRWxlbWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5jcHAK
aW5kZXggMjUwZjM4ODM1NjE2YTI5Njk2YzE0Mjg3NjY5NTkyZjRjYmZmNDNmYy4uNzFiNmMxNDk0
ZmFiMzFhYWM1MzJiN2ZiZDhiMWVkMzQ5MWE2MDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0LmNwcApAQCAt
NTMsOSArNTMsOSBAQCBSZWY8QWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0PiBBY2Nlc3NpYmlsaXR5
TWVkaWFPYmplY3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbgogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFjY2Vzc2liaWxpdHlNZWRpYU9iamVjdChyZW5kZXJlcikpOwogfQogCi1ib29sIEFj
Y2Vzc2liaWxpdHlNZWRpYU9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzIGNvbnNpZGVyTW9kYWxzKSBjb25zdAogewotICAgIHJl
dHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCk7CisgICAgcmV0dXJuIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoY29uc2lkZXJNb2RhbHMpOwogfQogCiBIVE1MTWVk
aWFFbGVtZW50KiBBY2Nlc3NpYmlsaXR5TWVkaWFPYmplY3Q6Om1lZGlhRWxlbWVudCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZWRpYU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVkaWFPYmplY3QuaAppbmRleCBkZDUxNmRiODRjNWM3OTFjZWYzMjc4YzY4ZTk1Nzk0NjM4ZmM3
Nzk0Li41ZmUwODYyZmYxOWRiMzliOTY5YWE1ODcyNWExMzM3ZTJjNDI2ODZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhT2Jq
ZWN0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEFYU2Vl
a0RpcmVjdGlvbiB7IEFYU2Vla0ZvcndhcmQsIEFYU2Vla0JhY2t3YXJkIH07CiAgICAgZXhwbGlj
aXQgQWNjZXNzaWJpbGl0eU1lZGlhT2JqZWN0KFJlbmRlck9iamVjdCopOwotICAgIGJvb2wgY29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6
OlllcykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc01lZGlhT2JqZWN0KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIAogICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCmluZGV4IDdkMWE4NDI3MTJhOGI1YzMxNzk5
NTVmMDUzMDc4MzQ3NGVjMjViMDcuLjFmZDUyOTUxMTRkM2U4YmU0OTJlY2Y5OTczMThmMjNlMmY0
YWNjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKQEAgLTEwMiw5ICsxMDIsOSBAQCBib29s
IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y2FuU2V0U2VsZWN0ZWRBdHRyaWJ1dGUoKSBj
b25zdAogICAgIHJldHVybiBpc0VuYWJsZWQoKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wg
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZChDb25zaWRlck1vZGFscyBjb25zaWRlck1vZGFscykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkQnlEZWZhdWx0KGNvbnNpZGVyTW9kYWxzKTsKIH0KIAogTGF5b3V0UmVjdCBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbi5oCmluZGV4IDQwMWE3ZDBmMjM0ZWUxODhkZTI5MDM1YjFjYWVmOTQ5YzdkZGRlZDMuLjNk
YWZkNDAxNGRlMWMwODAwMTY5MTk0MDhlODRjODY1NjYwYTg4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU2V0U2VsZWN0ZWRB
dHRyaWJ1dGUoKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29u
c3QgZmluYWw7CiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7Ci0gICAgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgPSBDb25zaWRlck1v
ZGFsczo6WWVzKSBjb25zdCBmaW5hbDsKIAogICAgIFdlYWtQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+
IG1fZWxlbWVudDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBtX3BhcmVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RQb3B1cC5jcHAKaW5kZXggN2VjMjI1NTgyZjFiNWQ0YmZiNzk1Y2QzOWYxYzlmNmU2MzdjYjg3
Zi4uNjgwYTVhNDc2MmY5YmJmMmExMTk5ZmJlZDI0ZDU2MjFmNzE1ZDMyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RQb3B1cC5jcHAKQEAgLTYzLDkgKzYzLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQ
b3B1cDo6aXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYXJlbnQtPmlzRW5hYmxlZCgp
OwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyBjb25zaWRlck1vZGFs
cykgY29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgp
OworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KGNvbnNpZGVyTW9k
YWxzKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y2FuSGF2ZVNlbGVj
dGVkQ2hpbGRyZW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCmluZGV4IDE1YjFiMDVmNjY0Y2Rk
NWY0OTczYTM5ZjA4NmVkNGFmNzdmNGM3ZGYuLjIzYzNiM2I1ZjAyNGE0ZmE4YTM2N2NjNDJiZjdh
NWI1MWRiMjFiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHByZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZHJlbigpIG92
ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgYm9vbCBjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgY29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgPSBDb25zaWRlck1vZGFs
czo6WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhbkhhdmVTZWxlY3RlZENoaWxkcmVu
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwCmluZGV4IDg5Mjc2
NjMwMjljZjJlMWVjN2RkNGUwM2I1NGJmZTBmMWUyZjQzNTQuLjQzMGIyOWNlMzJkNDAxYWMzMDlj
ZWYzMWJlYTc3ZWUzMGY3MWI2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwCkBAIC0zNSw5ICszNSw5IEBA
IEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0OjpBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCgpCiAKIEFj
Y2Vzc2liaWxpdHlNb2NrT2JqZWN0Ojp+QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QoKSA9IGRlZmF1
bHQ7CiAgICAgCi1ib29sIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyBjb25zaWRlck1vZGFscykg
Y29uc3QKIHsKLSAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpOwor
ICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KGNvbnNpZGVyTW9kYWxz
KTsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaAppbmRleCA2NjhmODg5ZDRhM2FmMmJhMjEyYjI3MzU3
MGNiNTMzNDc3MzY5MTU2Li4xYzAyYjBkNmZlMzFiZjdlODJjODQwOTRiNzFhY2Q1MzdhMTFlZmQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
b2NrT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TW9ja09iamVjdC5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc01v
Y2tPYmplY3QoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc0RldGFj
aGVkRnJvbVBhcmVudCgpIG92ZXJyaWRlIHsgcmV0dXJuICFtX3BhcmVudDsgfQogCi0gICAgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgPSBDb25zaWRl
ck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDVjZjgzNDUxZjNlMjI5ZDRlM2Q4MzY0YjFkOTVlMTY4
ZWMyMGI4YjQuLmY5NjczYzgwZjIzYzk0ZDY3MGEzYzk0MDdiN2EzODhmMjcyOWU4ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKICAgICB9CiB9CiAKLWJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jv
b2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KENvbnNpZGVyTW9kYWxzIGNvbnNpZGVyTW9kYWxzKSBjb25zdAogewogI2lmbmRlZiBOREVCVUcK
ICAgICAvLyBEb3VibGUtY2hlY2sgdGhhdCBhbiBBY2Nlc3NpYmlsaXR5T2JqZWN0IGlzIG5ldmVy
IGFjY2Vzc2VkIGJlZm9yZQpAQCAtNTEyLDcgKzUxMiw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNp
b24gZGVjaXNpb24gPSBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCk7CisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oY29uc2lk
ZXJNb2RhbHMpOwogICAgIGlmIChkZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVz
aW9uOjpJbmNsdWRlT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRlY2lz
aW9uID09IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaAppbmRleCAwNjY4ZDQ1YWNiZjI3MmNkZDNhMGMzYjM1ZjUxYWE1NjNjOTc4YTQ5Li4xZmMz
Y2U2YjU0NGE1NGM2NjZkZjhlYjk5NWNmMThhYzA5YmFkN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC0x
OTYsNyArMTk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2libGVUZXh0KFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4mKSBjb25zdDsKICAgICBTdHJpbmcgYWx0ZXJuYXRpdmVUZXh0Rm9yV2Vi
QXJlYSgpIGNvbnN0OwogICAgIHZvaWQgYXJpYUxhYmVsZWRCeVRleHQoVmVjdG9yPEFjY2Vzc2li
aWxpdHlUZXh0PiYpIGNvbnN0OwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCB1c2VzQWx0VGFnRm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7CiAgICAgYm9v
bCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7CiAgICAgYm9vbCBwb3N0S2V5Ym9hcmRLZXlzRm9y
VmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzMTNhMThjZTJjZTM4ZDdi
M2VlYWJiNjZkNGM0MGIyYzBkZmE2ZGJjLi4xN2FjMTA4YzIyNDM4NzczOWEzNGRhM2NjZWY4OTQ0
YzllNDczZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTM1NjYsOSArMzU2Niw5IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNGaWxlVXBsb2FkQnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4gaXM8SFRN
TElucHV0RWxlbWVudD4obm9kZSgpKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9k
ZSgpKS5pc0ZpbGVVcGxvYWQoKTsKIH0KIAotYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdChDb25zaWRlck1vZGFscyBjb25z
aWRlck1vZGFscykgY29uc3QKIHsKLSAgICByZXR1cm4gZGVmYXVsdE9iamVjdEluY2x1c2lvbigp
ID09IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKKyAgICByZXR1
cm4gZGVmYXVsdE9iamVjdEluY2x1c2lvbihjb25zaWRlck1vZGFscykgPT0gQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogfQogCiAvLyBBUklBIGNvbXBvbmVudCBv
ZiBoaWRkZW4gZGVmaW5pdGlvbi4KQEAgLTM2MDksMTQgKzM2MDksMTUgQEAgU3RyaW5nIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKLUFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9i
amVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CitBY2Nlc3NpYmlsaXR5T2JqZWN0
SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oQ29u
c2lkZXJNb2RhbHMgY29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7CiAgICAgYm9vbCB1c2VQYXJlbnRE
YXRhID0gIW1faXNJZ25vcmVkRnJvbVBhcmVudERhdGEuaXNOdWxsKCk7CiAKICAgICBpZiAodXNl
UGFyZW50RGF0YSA/IG1faXNJZ25vcmVkRnJvbVBhcmVudERhdGEuaXNBWEhpZGRlbiA6IGlzQVhI
aWRkZW4oKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Okln
bm9yZU9iamVjdDsKIAotICAgIGlmICgocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgp
LmVmZmVjdGl2ZUluZXJ0KCkpIHx8IGlnbm9yZWRGcm9tTW9kYWxQcmVzZW5jZSgpKQorICAgIGJv
b2wgaXNJZ25vcmVkRnJvbU1vZGFsUHJlc2VuY2UgPSBjb25zaWRlck1vZGFscyA9PSBDb25zaWRl
ck1vZGFsczo6WWVzICYmIGlnbm9yZWRGcm9tTW9kYWxQcmVzZW5jZSgpOworICAgIGlmICgocmVu
ZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCkpIHx8IGlzSWdu
b3JlZEZyb21Nb2RhbFByZXNlbmNlKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVj
dEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lz
SWdub3JlZEZyb21QYXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgOiBp
c1ByZXNlbnRhdGlvbmFsQ2hpbGRPZkFyaWFSb2xlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDllOTMyOTUzZWQ1ZjU5
MzRhYWQxMTllODZiZjk3ZTY1OTE5MTJiZDAuLjFhNTcwOTUxZjRlMWYwYTNjMjI1OTNlYjM5ZjZj
NjhmYmU2MGM4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yNzYsOSArMjc2LDEwIEBAIHB1YmxpYzoKICAgICBFbGVt
ZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyA9IENvbnNpZGVyTW9kYWxz
OjpZZXMpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlZmF1bHRPYmplY3RJbmNsdXNpb24oQ29uc2lkZXJNb2Rh
bHMgPSBDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoQ29uc2lkZXJNb2RhbHMgPSBDb25zaWRlck1vZGFs
czo6WWVzKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNTaG93aW5nVmFsaWRhdGlvbk1l
c3NhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKSBj
b25zdCBvdmVycmlkZTsKQEAgLTc5Myw3ICs3OTQsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lk
IHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFy
ZW50RGF0YSYgZGF0YSkgb3ZlcnJpZGUgeyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhID0gZGF0
YTsgfQogCi0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gSWYgdGhpcyBvYmplY3Qg
aXRzZWxmIHNjcm9sbHMsIHJldHVybiBpdHMgU2Nyb2xsYWJsZUFyZWEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oCmluZGV4IDIwNGIyYjkxYTI1MmIwMDYyNTZmOGM2MjE2NzJkZTFlZmM0MzhjMWIuLjIx
ZjEwZjA5OTYxYTMwMzQ3ZGFkOTkxOTU2YWMwNTU1NjU3Nzk3ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKIC8vIEZJWE1FOiBTaG91bGQgcmVuYW1lIHRoaXMg
ZmlsZSBBWENvcmVPYmplY3QuaC4KIAorI2luY2x1ZGUgIkNvbnNpZGVyTW9kYWxzLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEwMjksOCArMTAzMCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCA9IDA7
CiAKICAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0ID0gMDsK
LSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVjdElu
Y2x1c2lvbigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZEJ5RGVmYXVsdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb24gZGVmYXVsdE9iamVjdEluY2x1c2lvbihDb25zaWRlck1vZGFscyA9IENvbnNp
ZGVyTW9kYWxzOjpZZXMpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0
eUlzSWdub3JlZEJ5RGVmYXVsdChDb25zaWRlck1vZGFscyA9IENvbnNpZGVyTW9kYWxzOjpZZXMp
IGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2Fn
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAppbmRleCBlMWZlZTE3MTFlZmRl
ODk4ZmU3M2Q5M2VkMzZlOTI3ZDA4OGU1MDE4Li5iOGE1OWQyOTRkODVkNTRmMTBjMzRkMmIyY2Fk
MDVlMDA2YzZlYmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCkBAIC01NSw5ICs1
NSw5IEBAIFJlZjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQ
cm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKFJlbmRlCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7CiB9CiAKLWJvb2wgQWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgY29uc2lkZXJNb2RhbHMpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsKKyAgICBy
ZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdChjb25zaWRlck1vZGFscyk7CiB9
CiAgICAgCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjp2YWx1ZURlc2Ny
aXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCmluZGV4IDA2ZTI1NjdmZjUz
MzE4NTk4YjM5Mjg4NTU4OGE1NDM0MWZlNmMyNTEuLjBlZGY5MWJjNDIzYzZiYTQwMjU5ZDIwYWNk
YjJkNjdlZGY4OTNjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaApAQCAtNTUsNyArNTUs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
cihSZW5kZXJNZXRlciopOwogICAgIEhUTUxNZXRlckVsZW1lbnQqIG1ldGVyRWxlbWVudCgpIGNv
bnN0OwogICAgIAotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNp
ZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyN2UzNzhhYjA0
OWNjMDQ4NzRhNWE5NzJlMDZlZDlkNWU0ZjVlZDk3Li44NDZjNjU0ZjI1YTA0NTNlNWM5MjYyMDJl
ZjU2MWNjZmE1ZjhkNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEyMzQsNyArMTIzNCw3
IEBAIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIG9iamVjdEluY2x1c2lvbkZy
b21BbHRUZXh0KGNvbnN0IFN0cmluZyYgYWx0CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb246OkRlZmF1bHRCZWhhdmlvcjsKIH0KIAotQWNjZXNzaWJpbGl0eU9iamVjdElu
Y2x1c2lvbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9u
KCkgY29uc3QKK0FjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbihDb25zaWRlck1vZGFscyBjb25zaWRlck1v
ZGFscykgY29uc3QKIHsKICAgICAvLyBUaGUgZm9sbG93aW5nIGNhc2VzIGNhbiBhcHBseSB0byBh
bnkgZWxlbWVudCB0aGF0J3MgYSBzdWJjbGFzcyBvZiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LgogICAgIApAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
biBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkKICAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsK
ICAgICB9CiAKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVmYXVsdE9iamVjdElu
Y2x1c2lvbigpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZWZhdWx0T2JqZWN0
SW5jbHVzaW9uKGNvbnNpZGVyTW9kYWxzKTsKIH0KICAgICAKIHN0YXRpYyBib29sIHdlYkFyZWFJ
c1ByZXNlbnRhdGlvbmFsKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCkBAIC0xMjYzLDcgKzEyNjMs
NyBAQCBzdGF0aWMgYm9vbCB3ZWJBcmVhSXNQcmVzZW50YXRpb25hbChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAorYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChD
b25zaWRlck1vZGFscyBjb25zaWRlck1vZGFscykgY29uc3QKIHsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgQVNTRVJUKG1faW5pdGlhbGl6ZWQpOwpAQCAtMTI3NSw3ICsxMjc1LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0CiAgICAgLy8gQ2hlY2sgZmlyc3QgaWYgYW55IG9mIHRoZSBjb21tb24gcmVhc29ucyBjYXVz
ZSB0aGlzIGVsZW1lbnQgdG8gYmUgaWdub3JlZC4KICAgICAvLyBUaGVuIHByb2Nlc3Mgb3RoZXIg
dXNlIGNhc2VzIHRoYXQgbmVlZCB0byBiZSBhcHBsaWVkIHRvIGFsbCB0aGUgdmFyaW91cyByb2xl
cwogICAgIC8vIHRoYXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdHMgdGFrZSBvbi4KLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVmYXVsdE9iamVjdEluY2x1
c2lvbigpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBkZWZh
dWx0T2JqZWN0SW5jbHVzaW9uKGNvbnNpZGVyTW9kYWxzKTsKICAgICBpZiAoZGVjaXNpb24gPT0g
QWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SW5jbHVkZU9iamVjdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmIChkZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVz
aW9uOjpJZ25vcmVPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IGQ4ZjhhODRmMGM3ZTE3Mzc0
MjRjM2U3ODNiZTBiZTIxMjNjMmRlNjYuLjU3NjlmOTQ2MTVmNGJhMTc2M2JhYTZmNmRjYjA5N2Yy
MmJjNGQ3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEFjY2Vzc2libGVOYW1lKGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKICAg
ICAKICAgICAvLyBQcm92aWRlcyBjb21tb24gbG9naWMgdXNlZCBieSBhbGwgZWxlbWVudHMgd2hl
biBkZXRlcm1pbmluZyBpc0lnbm9yZWQuCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
biBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKENvbnNpZGVyTW9kYWxz
ID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgaW50IGxh
eW91dENvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGxvYWRpbmdQcm9ncmVzcygp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJv
b2wgc2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vz
c2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgPSBDb25z
aWRlck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShNQVRITUwpCiAg
ICAgdmlydHVhbCBib29sIGlzSWdub3JlZEVsZW1lbnRXaXRoaW5NYXRoVHJlZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZH
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
VkdFbGVtZW50LmNwcAppbmRleCA0ODk2ZTI2MzJiYzIzZDcxN2RlNWE5YjhkYWU4ZmY4ZDY0NzRj
NzRhLi40MTllNjE0MjBlZDYxZDkzZjE1OGU2M2I3ZTkyYzZlZDA3YzU3MzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVt
ZW50LmNwcApAQCAtMTkxLDcgKzE5MSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVu
dDo6aGVscFRleHQoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBBY2Nl
c3NpYmlsaXR5U1ZHRWxlbWVudDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAorYm9vbCBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoQ29uc2lkZXJNb2RhbHMgY29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHRoZSBTVkcgQWNjZXNzaWJpbGl0eSBBUEkgTWFwcGluZ3Mgc3BlYywgaXRlbXMg
c2hvdWxkIGJlIGV4Y2x1ZGVkIGlmOgogICAgIC8vICogVGhleSB3b3VsZCBiZSBleGNsdWRlZCBh
Y2NvcmRpbmcgdG8gdGhlIENvcmUgQWNjZXNzaWJpbGl0eSBBUEkgTWFwcGluZ3MuCkBAIC0yMDAs
NyArMjAwLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIC8vICAgYXR0cmlidXRlIChjb3ZlcmVkIGJ5IENv
cmUgQUFNKSBvciBhdCBsZWFzdCBvbmUgJ3RpdGxlJyBvciAnZGVzYycgY2hpbGQgZWxlbWVudC4K
ICAgICAvLyAqIFRoZXkgaGF2ZSBhbiBhbmNlc3RvciB3aXRoIENoaWxkcmVuIFByZXNlbnRhdGlv
bmFsOiBUcnVlIChjb3ZlcmVkIGJ5IENvcmUgQUFNKQogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVj
dEluY2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oKTsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lzaW9uID0gZGVmYXVsdE9iamVjdEluY2x1c2lv
bihjb25zaWRlck1vZGFscyk7CiAgICAgaWYgKGRlY2lzaW9uID09IEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb246Oklnbm9yZU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTI0
MCw3ICsyNDAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChjb25zaWRlck1vZGFscyk7CiB9CiAKIGJvb2wgQWNj
ZXNzaWJpbGl0eVNWR0VsZW1lbnQ6OmluaGVyaXRzUHJlc2VudGF0aW9uYWxSb2xlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNW
R0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNW
R0VsZW1lbnQuaAppbmRleCA5NjJjNDgxNTA0YWE5NGYxZWViMDE3OGJmMjM3YTNlMTE5YmRmYjA4
Li4wNjc4MDJiYzVmODJlOWYxY2ZhOTZmZmJhOGNmNjliYTkwMmRkZDM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5o
CkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJt
aW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGluaGVyaXRzUHJl
c2VudGF0aW9uYWxSb2xlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlT
VkdFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgY29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6Olll
cykgY29uc3QgZmluYWw7CiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB0YXJnZXRGb3JVc2VF
bGVtZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKaW5kZXggNmJlZWE1MTNhZGJjM2QwNTQx
ZDgyM2I3ZmNlNDQ1NGE2NmQyZGJmOC4uOWQxZTcwOThjNWY1NmMxMzk0YjI4YTM3ZWNlZTNlMTQw
YTNlMTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3OjpjbGVhckNoaWxkcmVuKCkKICAgICBtX2hvcml6b250YWxTY3Jv
bGxiYXIgPSBudWxscHRyOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscykgY29u
c3QKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gd2ViQXJlYU9iamVjdCgp
OwogICAgIGlmICghd2ViQXJlYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBhZGM2NWNhNWEwMzM4OTc3Mjg2
ZmMzZjYwYTY3NjhjNTIyNWE5NzExLi4xNGY5ZjQ5ODk5MzEyZDQxZjZhYWQ4OWQ1ZDgyYjE2NTEz
NzRhZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgU2Ny
b2xsVmlldyogY3VycmVudFNjcm9sbFZpZXcoKSBjb25zdDsKICAgICBTY3JvbGxhYmxlQXJlYSog
Z2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBj
dXJyZW50U2Nyb2xsVmlldygpOyB9CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3SW5zdGFuY2UoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCA5ZWY1OGNmOTc2YmJmYmZjOGI2MmM2
MzJiZjI0Y2IyOGUxOGRlZWJhLi5mNTFiOTkyYWRkNzlmYjVmYTM1NmUxNGM3NjlhMTA5NWRiZGNh
MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNsaWRlci5jcHAKQEAgLTE4Myw5ICsxODMsOSBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxp
dHlTbGlkZXJUaHVtYjo6ZWxlbWVudFJlY3QoKSBjb25zdAogICAgIHJldHVybiBMYXlvdXRSZWN0
KCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYjo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgY29uc2lkZXJNb2RhbHMp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQoKTsK
KyAgICByZXR1cm4gYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdChjb25zaWRlck1vZGFs
cyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKaW5kZXggYWJhOTEyMDAwODQ5N2Qw
ZjFkNTcxZGUzOTAwMzlkMWU5NWVlMDU2OC4uYjg5NGZhMjFiYjhhNzdkZmFhMjE2NWI2ZmE1Mzgx
YjI4NzIzOWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2xpZGVyLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWIoKTsKIAogICAgIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZChDb25zaWRlck1vZGFscyA9IENvbnNpZGVyTW9kYWxzOjpZZXMpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IGY3NWYwM2Q0MjBk
Njc5OWViYjgzMzUzZjU5MjY1NGNmMTY0MzUzMDEuLmYyMjY5NjBkMzBjN2E3MDZjNmE0YmJhYjUy
MmI2Y2VlMWNhZGI2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKQEAgLTY1NCwxNiArNjU0LDE2IEBAIEFjY2Vzc2liaWxp
dHlSb2xlIEFjY2Vzc2liaWxpdHlUYWJsZTo6cm9sZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5VGFi
bGU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJp
bGl0eVRhYmxlOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyBj
b25zaWRlck1vZGFscykgY29uc3QKIHsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
IGRlY2lzaW9uID0gZGVmYXVsdE9iamVjdEluY2x1c2lvbigpOworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3RJbmNsdXNpb24gZGVjaXNpb24gPSBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKGNvbnNpZGVy
TW9kYWxzKTsKICAgICBpZiAoZGVjaXNpb24gPT0gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
bjo6SW5jbHVkZU9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChkZWNpc2lv
biA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3QpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIAogICAgIGlmICghaXNFeHBvc2FibGUoKSkKLSAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZChjb25zaWRlck1vZGFscyk7CiAKICAgICByZXR1cm4gZmFs
c2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGUuaAppbmRleCBlNDA3N2I2ZTY2YjMxZTBkMzRhMjY5ZGYwOWYzNGYzZGFhM2QyNzA1Li4y
MzNhM2VlMzE1YjhlMGViNGM3NGNiZTQxOTY2YWY4NGU4NzAxZTUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTk0LDcgKzk0
LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIGlzRGF0YVRhYmxlIGlzIHdoZXRoZXIgaXQgaXMgZXhw
b3NlZCBhcyBhbiBBY2Nlc3NpYmlsaXR5VGFibGUgYmVjYXVzZSB0aGUgaGV1cmlzdGljCiAgICAg
Ly8gdGhpbmsgdGhpcyAibG9va3MiIGxpa2UgYSBkYXRhLWJhc2VkIHRhYmxlIChpbnN0ZWFkIG9m
IGEgdGFibGUgdXNlZCBmb3IgbGF5b3V0KS4KICAgICBib29sIGlzRGF0YVRhYmxlKCkgY29uc3Qg
ZmluYWw7Ci0gICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IGZp
bmFsOworICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2Rh
bHMgPSBDb25zaWRlck1vZGFsczo6WWVzKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlQ2VsbC5jcHAKaW5kZXggMjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNmNDYxMjZi
OTg3N2I2MDAxNS4uMTgyNDdhMWUyM2RjMWVhZWRiNDYxNWM5MWUwMDYzYzdlOGZhZjM4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuY3BwCkBAIC01NSw5ICs1NSw5IEBAIFJlZjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxs
PiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChyZW5kZXJlcikp
OwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgY29uc2lkZXJNb2RhbHMpIGNvbnN0
CiB7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRP
YmplY3RJbmNsdXNpb24oKTsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGRlY2lz
aW9uID0gZGVmYXVsdE9iamVjdEluY2x1c2lvbihjb25zaWRlck1vZGFscyk7CiAgICAgaWYgKGRl
Y2lzaW9uID09IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246OkluY2x1ZGVPYmplY3QpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoZGVjaXNpb24gPT0gQWNjZXNzaWJpbGl0eU9i
amVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0KQpAQCAtNzAsNyArNzAsNyBAQCBib29sIEFjY2Vz
c2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAogICAgIGlmICghaXNUYWJsZUNlbGwoKSkK
LSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChjb25zaWRlck1vZGFscyk7CiAgICAg
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaAppbmRleCA5ZmQ0NGVjMjE3MGI5Y2I1Y2Y4
MjA0YmI3NDBmNWE2OTYwNTBlMjdlLi4xOGI4ZDY3ODMxZTI5NWUyZTgwODUyZTg1YjI3ZTVkY2M1
YjVmZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUNlbGwuaApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIC8vIElm
IGEgdGFibGUgY2VsbCBpcyBub3QgZXhwb3NlZCBhcyBhIHRhYmxlIGNlbGwsIGEgVEggZWxlbWVu
dCBjYW4gc2VydmUgYXMgaXRzIHRpdGxlIFVJIGVsZW1lbnQuCiAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogdGl0bGVVSUVsZW1lbnQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGV4cG9zZXNUaXRs
ZVVJRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyA9IENvbnNpZGVyTW9kYWxzOjpZ
ZXMpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBleHBhbmRlZFRleHRWYWx1ZSgpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgc3VwcG9ydHNFeHBhbmRlZFRleHRWYWx1ZSgpIGNvbnN0IGZpbmFsOwog
ICAgIEFjY2Vzc2liaWxpdHlUYWJsZVJvdyogYXJpYU93bmVkQnlQYXJlbnQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlQ29sdW1uLmNwcAppbmRleCA0YzkzNzEyMzNhODNmYzBkZmYyYzEwODE0MmI0MjNlNDk3ZDQ4
ZTE0Li43ZGJkZmE4YWUzZTk5MjkwNWUzMGY1ZGIxMzcwN2RlODZiZWZhZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVD
b2x1bW4uY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNz
aWJpbGl0eVRhYmxlQ29sdW1uOjpoZWFkZXJPYmplY3RGb3JTZWN0aW9uKFJlbmRlclRhYmwKICAg
ICByZXR1cm4gY2VsbE9iamVjdDsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ29s
dW1uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2li
aWxpdHlUYWJsZUNvbHVtbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJN
b2RhbHMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNvbHVtbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDb2x1bW4uaAppbmRleCBmMzI2NDdhZjgxZTU2MzQ4ZGUzNzdjZDRhYzU5YTBiODkzMjc5
YjkwLi5jYWU0NmJiYmI0NmZkMGI4OTYwYmFkZDU5ZjYzYWVmNjgxZDM4ZDYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29s
dW1uLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5VGFibGVD
b2x1bW4oKTsKICAgICAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3RGb3JT
ZWN0aW9uKFJlbmRlclRhYmxlU2VjdGlvbiosIGJvb2wgdGhUYWdSZXF1aXJlZCk7Ci0gICAgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgPSBDb25zaWRl
ck1vZGFsczo6WWVzKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGFibGVDb2x1bW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uSW5zdGFuY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAKaW5kZXggMDc0MjI4ZTIwMWUwNzJlNGU2N2M3
YzE1NTNhNTljZmJhNTFhN2RiZC4uZjFiNjc5MWRlNzkyYjE1NDkxYjhkYmJkNDk5M2Q3YThkMWMy
OGFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNwcApAQCAtNDksNyArNDks
NyBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6ZWxlbWVu
dFJlY3QoKSBjb25zdAogICAgIHJldHVybiBtX2hlYWRlclJlY3Q7CiB9CiAKLWJvb2wgQWNjZXNz
aWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250
YWluZXIuaAppbmRleCA0YTZjY2JkNGNjMjQwOGU0NTE4MjNjYWZmOWM1ZWE4MmJiNjljZjU5Li5i
YTg2YjM3YWVkZjc2YzhhNTQ3ZDZmMzlkNzg3ZGI1NzI1OGFhYWExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
SGVhZGVyQ29udGFpbmVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIoKTsKICAgICAKLSAgICBib29sIGNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBj
b21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZChDb25zaWRlck1vZGFscyA9IENvbnNpZGVyTW9k
YWxzOjpZZXMpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0UmVjdCBtX2hlYWRlclJlY3Q7
CiB9OyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcAppbmRleCAxZGY5OGM4ZDYxOWNkZTBmODMzMWRhZjU4ZWFmYWViZjlk
Y2U2ZDRhLi5jMzNjZTBkY2Q1YWQ2ZGE1NzI3NmQxYTUzOWJhNzZhNjM2ZTBhZjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVS
b3cuY3BwCkBAIC03NywxNiArNzcsMTYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eVRhYmxlUm93OjpvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50
VGFibGUoKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlUm93Ojpjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoQ29uc2lkZXJNb2RhbHMgY29uc2lkZXJNb2Rh
bHMpIGNvbnN0CiB7ICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVjaXNp
b24gPSBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdElu
Y2x1c2lvbiBkZWNpc2lvbiA9IGRlZmF1bHRPYmplY3RJbmNsdXNpb24oY29uc2lkZXJNb2RhbHMp
OwogICAgIGlmIChkZWNpc2lvbiA9PSBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJbmNs
dWRlT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRlY2lzaW9uID09IEFj
Y2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9yZU9iamVjdCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgCiAgICAgaWYgKCFpc1RhYmxlUm93KCkpCi0gICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOwor
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2li
aWxpdHlJc0lnbm9yZWQoY29uc2lkZXJNb2RhbHMpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmgKaW5kZXggOTUzNThjZjIyNmE0N2ViZDEwZDQzMWE2MWQ5ZGIwNWJlZjRiYzhhMi4uMDY4
MjNkZWFjNTQ4ZDk1MjY2YzBmZmNiYmMxZWUwZWU4ZjIzY2U3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCkBAIC02Myw3
ICs2Myw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1RhYmxlUm93KCkgY29u
c3QgZmluYWw7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCgpIGNv
bnN0IGZpbmFsOwotICAgIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBmaW5hbDsKKyAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVy
TW9kYWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3QgZmluYWw7CiAKICAgICB1bnNpZ25l
ZCBtX3Jvd0luZGV4OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VHJlZS5jcHAKaW5kZXggNTkwYzk2MTU5NjA2MGRiNmRiMTU1Mzg5OGViMTZm
MzBiNDU0ZTY4ZC4uMzQ0YWJjZTEyMGQ3MGNhZjI4M2E2ZWI4N2U5YzEzNmE0ZWRlYzE0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5j
cHAKQEAgLTUyLDkgKzUyLDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlUcmVlPiBBY2Nlc3NpYmlsaXR5
VHJlZTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eVRyZWUocmVuZGVyZXIpKTsKIH0KICAgICAKLWJvb2wgQWNjZXNz
aWJpbGl0eVRyZWU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKK2Jvb2wg
QWNjZXNzaWJpbGl0eVRyZWU6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVy
TW9kYWxzIGNvbnNpZGVyTW9kYWxzKSBjb25zdAogewotICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkQnlEZWZhdWx0KCk7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRC
eURlZmF1bHQoY29uc2lkZXJNb2RhbHMpOwogfQogCiBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3Np
YmlsaXR5VHJlZTo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5oCmluZGV4IDM1YzdmMTRmN2Nj
YjQ1ZGYzZTMwNmE0NWY2M2U0OTliZmU1ZTNlM2EuLmZhNmQ3MzBkYWRkYzE1MDIwOWY0NmMyNTE5
YjMyY2Y4YTAxOThmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUcmVlLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlUcmVlKFJlbmRlck9iamVjdCopOwotICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJN
b2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBvdmVycmlkZTsKICAgICBib29sIGlzVHJlZVZhbGlkKCkg
Y29uc3Q7CiAgICAgYm9vbCBub2RlSGFzVHJlZUl0ZW1DaGlsZChOb2RlJikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0NvbnNpZGVyTW9kYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0NvbnNpZGVyTW9kYWxzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmVmYmMxNTUxNzljMGI5NmU0MmFhMDAwM2VjYzE2NjYxNmMxMjhkNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQ29uc2lkZXJNb2RhbHMuaApAQCAtMCww
ICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBDb25zaWRlck1vZGFscyA6IHVpbnQ4X3QgeyBObywgWWVzIH07CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggNjkzZTlmZTlmZWMyMTIyMTQwMWJj
ZjE3NzU4ODcwZmM0YThhZDJjYS4uYmY3MGJhNDZlOGMwMmZkNmNiMDIxZTU0YzkxNWY3MDg0N2Fm
YWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTE4NjksMTMgKzE4NjksMTMg
QEAgUmVuZGVyT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjpyZW5kZXJlcigpIGNvbnN0CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLUFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhJc29s
YXRlZE9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CitBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uIEFYSXNvbGF0ZWRPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24o
Q29uc2lkZXJNb2RhbHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246OkRlZmF1bHRCZWhhdmlvcjsKIH0K
IAotYm9vbCBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0
KCkgY29uc3QKK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5
RGVmYXVsdChDb25zaWRlck1vZGFscykgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggM2Q3ZDAy
NzUzYWQyZDNhY2EyYTcyNWEyM2ZjNGU3MTlkODU0NGI5Ny4uMWEzYzE1YTE2MThmOGM4MjZlOTdj
ZWFmMzg4NWQwOGNmYjA1NmIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtNTM5LDgg
KzUzOSw4IEBAIHByaXZhdGU6CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIE5vZGUqIG5vZGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lv
biBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKENvbnNpZGVyTW9k
YWxzID0gQ29uc2lkZXJNb2RhbHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBhY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KENvbnNpZGVyTW9kYWxzID0gQ29uc2lkZXJNb2Rh
bHM6OlllcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQgc3RlcFZhbHVlRm9yUmFuZ2UoKSBj
b25zdCBvdmVycmlkZTsKICAgICBBWENvcmVPYmplY3QqIHNlbGVjdGVkTGlzdEl0ZW0oKSBvdmVy
cmlkZTsKICAgICB2b2lkIGFyaWFBY3RpdmVEZXNjZW5kYW50UmVmZXJlbmNpbmdFbGVtZW50cyhB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTRl
YzQ5NTFlNDY4NWIyYzkzZDc5ZmU5MzM4YjkwMDcxNmNiMmQ4Li4yY2Q2ZGJkYzg5NTU3NWI5ZjZi
MzQ0MDZkNzYyOTM4N2E2MTg4Y2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDItMjYg
IFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogV2ViS2l0
IHNob3VsZCBpZ25vcmUgZW1wdHkgbW9kYWxzIHJhdGhlciB0aGFuIHRyYXBwaW5nIGZvY3VzIGlu
c2lkZSB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcxNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdp
dGhvdXQtYW55LWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rl
c3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
YWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFNr
aXAgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6IFNr
aXAgbmV3IHRlc3QuCisKIDIwMjItMDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MuaHRtbCBm
YWlscyB3aXRoIFdlYlJUQ1JlbW90ZVZpZGVvRnJhbWVFbmFibGVkPXRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFs
cy13aXRob3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmRlZGRhNzg2
MzBlODUyOWI4OWIwNjcxNGIxMGYyYWRmNDI2OTA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd2UgaWdu
b3JlIG1vZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29udGVudC4KKworQmVn
aW5uaW5nIHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC4KKworQVhSb2xlOiBBWFN0YXRp
Y1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBiZWZvcmUgbW9kYWwKKworQVhSb2xlOiBBWFN0YXRp
Y1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBhZnRlciBtb2RhbAorCitBcHBlbmRpbmcgYSB0ZXh0
IG5vZGUgdG8gbW9kYWwgdG8gbWFrZSBpdCBhY2Nlc3NpYmxlLgorUEFTUzogI2NvbnRhaW5lciBB
WCBlbGVtZW50IGlzIG5vIGxvbmdlciBhY2Nlc3NpYmxlIGFmdGVyIGFkZGluZyBhY2Nlc3NpYmxl
IGNvbnRlbnQgdG8gbW9kYWwuCisKK0JlZ2lubmluZyBzZWFyY2ggZnJvbSAjbW9kYWwgZWxlbWVu
dC4KKworQVhSb2xlOiBBWFN0YXRpY1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBpbnNpZGUgbW9k
YWwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRo
b3V0LWFueS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1t
b2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZmI4MzhlZjFjNGY4
MzMyZmJmMTE3MGIzNGE2YjY0ODBhYTFkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCkBA
IC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGFpbmVy
IiByb2xlPSJncm91cCI+CisgICAgPGRpdj5Gb28gdGV4dCwgYmVmb3JlIG1vZGFsPC9kaXY+CisK
KyAgICA8ZGl2IGlkPSJtb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj4KKyAg
ICAgICAgPCEtLSBXcmFwIHRoZSBhcmlhLWhpZGRlbiBjb250ZW50IGluIGFyYml0cmFyeSBkaXYg
bGF5ZXJzIHRvIGVuc3VyZSB3ZSBkb24ndCBjb25zaWRlciB0aGUgYXJiaXRyYXJ5IGRpdnMgYWNj
ZXNzaWJsZSBjb250ZW50LiAtLT4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXY+Cisg
ICAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSI+CisgICAgICAgICAgICAgICAg
ICAgICA8YnV0dG9uPkhpZGRlbiBidXR0b24gKGluc2lkZSBtb2RhbCk8L2J1dHRvbj4KKyAgICAg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBu
b25lOyI+CisgICAgICAgICAgICAgICAgICAgICBUZXh0IGluc2lkZSBkaXNwbGF5OiBub25lCisg
ICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+CisKKyAgICA8ZGl2PkZvbyB0ZXh0LCBhZnRlciBtb2RhbDwvZGl2PgorPC9k
aXY+CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCB3ZSBpZ25vcmUgbW9kYWxzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgYWNjZXNzaWJsZSBjb250
ZW50LlxuIjsKKworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmRUZXh0SW5zaWRlSWQoaWQpIHsKKyAg
ICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuQmVnaW5u
aW5nIHNlYXJjaCBmcm9tICMke2lkfSBlbGVtZW50LlxuYDsKKworICAgICAgICBsZXQgc2VhcmNo
UmVzdWx0ID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHNlYXJj
aFJlc3VsdCA9IGNvbnRhaW5lckVsZW1lbnQudWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlKHNl
YXJjaFJlc3VsdCwgdHJ1ZSwgIkFYQW55VHlwZVNlYXJjaEtleSIsICIiLCBmYWxzZSk7CisgICAg
ICAgICAgICBpZiAoIXNlYXJjaFJlc3VsdCkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgaWYgKHNlYXJjaFJlc3VsdC5yb2xlLmluY2x1ZGVzKCJTdGF0aWNUZXh0IikpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbiR7c2VhcmNoUmVzdWx0LnJvbGV9YDsK
KyAgICAgICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLnBsYXRmb3JtTmFtZSA9PT0gImlvcyIgPyBzZWFyY2hSZXN1bHQuZGVzY3JpcHRpb24gOiBz
ZWFyY2hSZXN1bHQuc3RyaW5nVmFsdWU7CisgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSBg
XG4ke3RleHRDb250ZW50fVxuYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBhd2FpdCBmaW5kVGV4dEluc2lkZUlkKCJjb250YWluZXIiKTsK
KworICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5BcHBlbmRpbmcgYSB0ZXh0IG5vZGUgdG8g
bW9kYWwgdG8gbWFrZSBpdCBhY2Nlc3NpYmxlLiI7CisgICAgICAgICAgICBsZXQgdGV4dCA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJGb28gdGV4dCwgaW5zaWRlIG1vZGFsIik7CisgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKS5hcHBlbmRDaGlsZCh0ZXh0KTsK
KworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0
IGlubmVyTW9kYWxHcm91cCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgibW9kYWwiKS5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgLy8gV2Fp
dCBmb3IgdGV4dCBub2RlIHRvIGJlIGFkZGVkIGFzIGFuIEFYIGNoaWxkLgorICAgICAgICAgICAg
ICAgIHJldHVybiBpbm5lck1vZGFsR3JvdXAgJiYgaW5uZXJNb2RhbEdyb3VwLmNoaWxkQXRJbmRl
eCgwKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBsZXQgY29udGFpbmVyRWxlbWVu
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY29udGFp
bmVyIik7CisgICAgICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkKKyAgICAgICAgICAgICAg
ICB0ZXN0T3V0cHV0ICs9ICJcbkZBSUw6ICNjb250YWluZXIgQVggZWxlbWVudCB3YXMgc3RpbGwg
YWNjZXNzaWJsZSBhZnRlciBhZGRpbmcgYWNjZXNzaWJsZSBjb250ZW50IHRvIG1vZGFsLlxuIjsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblBBU1M6
ICNjb250YWluZXIgQVggZWxlbWVudCBpcyBubyBsb25nZXIgYWNjZXNzaWJsZSBhZnRlciBhZGRp
bmcgYWNjZXNzaWJsZSBjb250ZW50IHRvIG1vZGFsLlxuIjsKKworICAgICAgICAgICAgYXdhaXQg
ZmluZFRleHRJbnNpZGVJZCgibW9kYWwiKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRhaW5lciIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAg
ICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU4NmIzY2ViMjZlN2Mw
NmQyNmNiMTQ4YjE3NzkzMTY5ZDMyMWVjZDUuLjBhMzJkYWE4NDRjYjBlZDVjYmJlMWRiMmIyMGMx
Y2JlYjc1NGM3NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTM0Myw2ICszNDMsNyBAQCBhY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1kaXYuaHRtbCBb
IFNraXAgXQogIyBNaXNzaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNl
YXJjaFByZWRpY2F0ZSBpbXBsZW1lbnRhdGlvbi4KIGFjY2Vzc2liaWxpdHkvdGFibGUtc2VhcmNo
LXRyYXZlcnNhbC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2R5bmFtaWNhbGx5LWNoYW5n
aW5nLWlmcmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0
eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBbIFNraXAgXQogCiB3ZWJr
aXQub3JnL2IvMjEyODA1IGFjY2Vzc2liaWxpdHkvc3ZnLXRleHQuaHRtbCBbIEZhaWx1cmUgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQyYjEwOWRi
Y2RjYTM3MTVlZTk5YTAyMTc3YTI1Y2JlYjVjYTBiZjIuLjVhZGFkMzg5YTEyNTYxNmZhZWRjM2U3
NDZmYzFkOTQwMDJkMzg5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMDk5LDYgKzIwOTksNyBAQCB3ZWJraXQub3JnL2IvMTUwMzY2IGFjY2Vzc2li
aWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0
eS90YWJsZS1zZWFyY2gtdHJhdmVyc2FsLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZHlu
YW1pY2FsbHktY2hhbmdpbmctaWZyYW1lLXJlbWFpbnMtYWNjZXNzaWJsZS5odG1sIFsgUGFzcyBd
CithY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sIFsg
UGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvc2VsZWN0ZWQtc3RhdGUtY2hhbmdlZC1ub3RpZmljYXRp
b25zLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZWxlbWVudC1saW5lLXJlY3RzLWFuZC10
ZXh0Lmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9h
Y2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxz
LXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTE0OTRmMmQ5
NGJlNDcyZmZlZGY1Yzk2YmUyYmZhMzNmNmQwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55
LWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgd2UgaWdub3JlIG1vZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29u
dGVudC4KKworQmVnaW5uaW5nIHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC4KKworU3Rh
dGljVGV4dAorQVhMYWJlbDogRm9vIHRleHQsIGJlZm9yZSBtb2RhbAorCitTdGF0aWNUZXh0CitB
WExhYmVsOiBGb28gdGV4dCwgYWZ0ZXIgbW9kYWwKKworQXBwZW5kaW5nIGEgdGV4dCBub2RlIHRv
IG1vZGFsIHRvIG1ha2UgaXQgYWNjZXNzaWJsZS4KK1BBU1M6ICNjb250YWluZXIgQVggZWxlbWVu
dCBpcyBubyBsb25nZXIgYWNjZXNzaWJsZSBhZnRlciBhZGRpbmcgYWNjZXNzaWJsZSBjb250ZW50
IHRvIG1vZGFsLgorCitCZWdpbm5pbmcgc2VhcmNoIGZyb20gI21vZGFsIGVsZW1lbnQuCisKK1N0
YXRpY1RleHQKK0FYTGFiZWw6IEZvbyB0ZXh0LCBpbnNpZGUgbW9kYWwKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2EzZDAwNTY3ODg4Y2YyNTBiODNhMzQwMDU1
ZThkN2RiMTc2MzA5ZC4uZWU2N2EzNjc3MTJlODQ3MjUyZjhkNjY2YzI1NTg2NThlYjYxMzM5NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3Niw2ICs0
NzYsNyBAQCBhY2Nlc3NpYmlsaXR5L2FuY2VzdG9yLWNvbXB1dGF0aW9uLmh0bWwgWyBTa2lwIF0K
ICMgTWlzc2luZyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVk
aWNhdGUgaW1wbGVtZW50YXRpb24uCiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2ZXJz
YWwuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1pZnJh
bWUtcmVtYWlucy1hY2Nlc3NpYmxlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaWdub3Jl
LW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwgWyBTa2lwIF0KIAogIyBUT0RPIENvbmlj
IGdyYWRpZW50cwogaHR0cC93cHQvY3NzL2Nzcy1pbWFnZXMtNC9jb25pYy1ncmFkaWVudC1wYXJz
aW5nLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453353</attachid>
            <date>2022-02-27 12:45:00 -0800</date>
            <delta_ts>2022-02-28 12:50:45 -0800</delta_ts>
            <desc>Alternate approach</desc>
            <filename>bug-237163-20220227144459.patch</filename>
            <type>text/plain</type>
            <size>16998</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1NWJlYTg5MWI5ZGU2
OGZlMjA4MmQ4YTZjNDE4OTIwMDQ1MjU5Yi4uYzg4ZTkyYWRmNjViZGY0YTBkOWMxNjE5M2I2NDkz
NzBjMmFhNDZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTAyLTI3ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdlYktpdCBzaG91
bGQgaWdub3JlIGVtcHR5IG1vZGFscyByYXRoZXIgdGhhbiB0cmFwcGluZyBmb2N1cyBpbnNpZGUg
dGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2l2
ZW4gdGhpcyBtYXJrdXA6CisgCisgICAgICAgIDxkaXYgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFs
PSJ0cnVlIj4KKyAgICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49InRydWUiPgorICAgICAgICAg
ICAgICAgIDxidXR0b24+Q2xvc2UgbW9kYWwgKGluc2lkZSBtb2RhbCk8L2J1dHRvbj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKworICAgICAgICBUaGVyZSBpcyBubyBhY2Nl
c3NpYmxlIGNvbnRlbnQgaW5zaWRlIHRoaXMgbW9kYWwsIGJ1dCBXZWJLaXQgdHJhcHMgdXNlciBm
b2N1cyBpbnNpZGUsCisgICAgICAgIG1ha2luZyB0aGUgcmVzdCBvZiB0aGUgcGFnZSBjb21wbGV0
ZWx5IGluYWNjZXNzaWJsZS4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGlnbm9yZSBt
b2RhbHMgdGhhdCBkb24ndCBoYXZlIGFjY2Vzc2libGUgY29udGVudC4KKyAgICAgICAgV2UgZG8g
dGhpcyBieSB3YWxraW5nIHRoZSBET00gdG8gZmluZCBhbnkgbm9uLUFYLWlnbm9yZWQgb2JqZWN0
cy4KKworICAgICAgICBCZWNhdXNlIGRldGVybWluaW5nIHdoZXRoZXIgb3Igbm90IGFuIGVsZW1l
bnQgaXMgaWdub3JlZCBpcyBkZXBlbmRlbnQKKyAgICAgICAgb24gbW9kYWxzIHByZXNlbnQgb24g
dGhlIHBhZ2UsIHRoaXMgcGF0Y2ggbW92ZXMgdGhlIGNhbGwgdG8gYGlnbm9yZWRGcm9tTW9kYWxQ
cmVzZW5jZWAKKyAgICAgICAgb3V0IG9mIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpkZWZhdWx0T2Jq
ZWN0SW5jbHVzaW9uYCwgYXMgdGhpcyBmdW5jdGlvbiBpcworICAgICAgICBkb3duc3RyZWFtIG9m
IGBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZGAsIGFuZCB3ZSBuZWVkIHRvIGNhbGwKKyAg
ICAgICAgdGhhdCBvbiBvYmplY3RzIGluc2lkZSBtb2RhbCBjYW5kaWRhdGVzLiBXaXRob3V0IHRo
aXMgbW92ZSwgd2Ugd291bGQKKyAgICAgICAgcmVjdXJzZSBpbmZpbml0ZWx5IGluIGBBWE9iamVj
dENhY2hlOjptb2RhbEVsZW1lbnRIYXNBY2Nlc3NpYmxlQ29udGVudGAuCisKKyAgICAgICAgV2Ug
bm93IGNoZWNrIHdoZXRoZXIgYW4gb2JqZWN0IGlzIGlnbm9yZWQgZHVlIHRvIG1vZGFsIHByZXNl
bmNlIGluCisgICAgICAgIGBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKClgLCBzbyB0aGF0IGZ1bmN0aW9uIHNob3VsZAorICAgICAgICBiZSB1c2VkIGFzIHRoZSBm
aW5hbCBzYXkgaW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhbiBvYmplY3QgaXMgaWdub3JlZC4KKwor
ICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29u
dGVudC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bW9kYWxFbGVtZW50SGFzQWNjZXNzaWJs
ZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y3VycmVudE1vZGFs
Tm9kZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisKIDIwMjItMDItMjIgIFRpbSBOZ3V5ZW4gIDxudGlt
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zdHlsZSBQREYuanMgZm9ybSBmaWVsZHMgdG8gbWF0
Y2ggUERGS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAppbmRleCAwZmUxNDNjMmI4ZWEyOTUxNzUyNjYxMmM5ZjZhMjg2ZWMyZWYzMDgwLi5mNDE3
NGU2MzI5MDk4MzhkYzIzNTU2ZGIwNjM0NDQ4MDMyNzk4NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI2OSw2ICsyNjksMzQgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpmaW5kTW9kYWxOb2RlcygpCiAgICAgbV9tb2RhbE5vZGVzSW5p
dGlhbGl6ZWQgPSB0cnVlOwogfQogCitib29sIEFYT2JqZWN0Q2FjaGU6Om1vZGFsRWxlbWVudEhh
c0FjY2Vzc2libGVDb250ZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBVbmxlc3MgeW91J3JlIHRyeWluZyB0
byBjb21wdXRlIHRoZSBuZXcgbW9kYWwgbm9kZSwgZGV0ZXJtaW5pbmcgd2hldGhlciBhbiBlbGVt
ZW50CisgICAgLy8gaGFzIGFjY2Vzc2libGUgY29udGVudCBpcyBhcyBlYXN5IGFzICFnZXRPckNy
ZWF0ZShlbGVtZW50KS0+Y2hpbGRyZW4oKS5pc0VtcHR5KCkuCisgICAgLy8gU28gZG9uJ3QgY2Fs
bCB0aGlzIG1ldGhvZCBvbiBhbnl0aGluZyBiZXNpZGVzIG1vZGFsIGVsZW1lbnRzLgorICAgIEFT
U0VSVChpc01vZGFsRWxlbWVudCgqZWxlbWVudCkpOworCisgICAgLy8gQmVjYXVzZSBjb21wdXRp
bmcgYW55IG9iamVjdCdzIGNoaWxkcmVuKCkgaXMgZGVwZW5kZW50IG9uIHdoZXRoZXIgYSBtb2Rh
bCBpcyBvbiB0aGUgcGFnZSwKKyAgICAvLyB3ZSdsbCBuZWVkIHRvIHdhbGsgdGhlIERPTSBhbmQg
ZmluZCBub24taWdub3JlZCBBWCBvYmplY3RzIG1hbnVhbGx5LgorICAgIFZlY3RvcjxOb2RlKj4g
bm9kZVN0YWNrID0geyBlbGVtZW50LT5maXJzdENoaWxkKCkgfTsKKyAgICB3aGlsZSAoIW5vZGVT
dGFjay5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChhdXRvKiBub2RlID0gbm9kZVN0YWNrLnRh
a2VMYXN0KCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byogYXhPYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKSkgeworICAgICAgICAgICAg
ICAgIGlmICghYXhPYmplY3QtPmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAvLyBEb24ndCBkZXNjZW5kIGludG8gc3VidHJlZXMgZm9yIG5vbi12aXNpYmxlIG5vZGVzLgor
ICAgICAgICAgICAgaWYgKGlzTm9kZVZpc2libGUobm9kZSkpCisgICAgICAgICAgICAgICAgbm9k
ZVN0YWNrLmFwcGVuZChub2RlLT5maXJzdENoaWxkKCkpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwogRWxlbWVudCogQVhPYmplY3RDYWNoZTo6Y3VycmVudE1vZGFs
Tm9kZSgpCiB7CiAgICAgLy8gVGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgbW9kYWwgZGlhbG9nIG5v
ZGVzLgpAQCAtMjg4LDcgKzMxNiw4IEBAIEVsZW1lbnQqIEFYT2JqZWN0Q2FjaGU6OmN1cnJlbnRN
b2RhbE5vZGUoKQogICAgIFJlZlB0cjxFbGVtZW50PiBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50
KCkuZm9jdXNlZEVsZW1lbnQoKTsKICAgICBSZWZQdHI8RWxlbWVudD4gbGFzdFZpc2libGU7CiAg
ICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9tb2RhbEVsZW1lbnRzU2V0KSB7Ci0gICAgICAgIGlm
IChpc05vZGVWaXNpYmxlKGVsZW1lbnQpKSB7CisgICAgICAgIC8vIFRvIGF2b2lkIHRyYXBwaW5n
IHVzZXJzIGluIGFuIGVtcHR5IG1vZGFsLCBza2lwIGFueSBub24tdmlzaWJsZSBlbGVtZW50LCBv
ciBhbnkgZWxlbWVudCB3aXRob3V0IGFjY2Vzc2libGUgY29udGVudC4KKyAgICAgICAgaWYgKGlz
Tm9kZVZpc2libGUoZWxlbWVudCkgJiYgbW9kYWxFbGVtZW50SGFzQWNjZXNzaWJsZUNvbnRlbnQo
ZWxlbWVudCkpIHsKICAgICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAmJiBmb2N1c2VkRWxl
bWVudC0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCkpIHsKICAgICAgICAgICAgICAgICBtX2N1cnJl
bnRNb2RhbEVsZW1lbnQgPSBlbGVtZW50OwogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBmNzMyYTkxMGFk
NThiMWViODQ0ZDllYWE3ZTlmOTM2YTE4MjVmMGYyLi45OWVjMWJiZGI5MzgzNWVmNGFiMzAxYjQ5
MWFmNWQxYzVmZTdmMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaApAQCAtNDc0LDYgKzQ3NCw3IEBAIHByaXZhdGU6CiAgICAgRWxlbWVudCogY3Vy
cmVudE1vZGFsTm9kZSgpOwogICAgIGJvb2wgaXNOb2RlVmlzaWJsZShOb2RlKikgY29uc3Q7CiAg
ICAgdm9pZCBoYW5kbGVNb2RhbENoYW5nZShFbGVtZW50Jik7CisgICAgYm9vbCBtb2RhbEVsZW1l
bnRIYXNBY2Nlc3NpYmxlQ29udGVudChFbGVtZW50Kik7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1
bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBtX3BhZ2VJRDsg
Ly8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMzEzYTE4Y2Uy
Y2UzOGQ3YjNlZWFiYjY2ZDRjNDBiMmMwZGZhNmRiYy4uNTA1MDlkNjAyNmRmYWNkZTM4MjJhMmRj
NmY3NjUyOGExZGNmMDJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zNjE2LDcgKzM2MTYsNyBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJ
bmNsdXNpb24oKSBjb25zdAogICAgIGlmICh1c2VQYXJlbnREYXRhID8gbV9pc0lnbm9yZWRGcm9t
UGFyZW50RGF0YS5pc0FYSGlkZGVuIDogaXNBWEhpZGRlbigpKQogICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogCi0gICAgaWYgKChyZW5k
ZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgfHwgaWdub3Jl
ZEZyb21Nb2RhbFByZXNlbmNlKCkpCisgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+
c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9i
amVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBt
X2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUg
OiBpc1ByZXNlbnRhdGlvbmFsQ2hpbGRPZkFyaWFSb2xlKCkpCkBAIC0zNjQ4LDEzICszNjQ4LDE1
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIHJlc3VsdCA9IGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCk7CisgICAgYm9vbCBpZ25vcmVkID0gaWdub3JlZEZyb21Nb2RhbFBy
ZXNlbmNlKCk7CisgICAgaWYgKCFpZ25vcmVkKQorICAgICAgICBpZ25vcmVkID0gY29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsKIAogICAgIC8vIEluIGNhc2UgY29tcHV0aW5nIGF4SXNJ
Z25vcmVkIGRpc2FibGVzIGF0dHJpYnV0ZSBjYWNoaW5nLCB3ZSBzaG91bGQgcmVmZXRjaCB0aGUg
b2JqZWN0IHRvIHNlZSBpZiBpdCBleGlzdHMuCiAgICAgaWYgKGNhY2hlICYmIChhdHRyaWJ1dGVD
YWNoZSA9IGNhY2hlLT5jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkpKQotICAgICAgICBh
dHRyaWJ1dGVDYWNoZS0+c2V0SWdub3JlZChvYmplY3RJRCgpLCByZXN1bHQgPyBBY2Nlc3NpYmls
aXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3QgOiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5j
bHVzaW9uOjpJbmNsdWRlT2JqZWN0KTsKKyAgICAgICAgYXR0cmlidXRlQ2FjaGUtPnNldElnbm9y
ZWQob2JqZWN0SUQoKSwgaWdub3JlZCA/IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Okln
bm9yZU9iamVjdCA6IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246OkluY2x1ZGVPYmplY3Qp
OwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gaWdub3JlZDsKIH0KIAogdm9pZCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjplbGVtZW50c0Zyb21BdHRyaWJ1dGUoVmVjdG9yPEVsZW1lbnQq
PiYgZWxlbWVudHMsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5k
ZXggOWU5MzI5NTNlZDVmNTkzNGFhZDExOWU4NmJmOTdlNjU5MTkxMmJkMC4uYjlhOGI5YzA5N2Rh
NGVlOGU4ZWU3OWM3MzBkOWYzZTA0NmU0ODJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTI3Niw2ICsyNzYsOSBAQCBw
dWJsaWM6CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE5vZGUq
IG5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICAv
LyBOb3RlOiBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBkb2VzIG5vdCBjb25zaWRlciB3
aGV0aGVyIGFuIG9iamVjdCBpcyBpZ25vcmVkIGR1ZSB0byBwcmVzZW5jZSBvZiBtb2RhbHMuCisg
ICAgLy8gVXNlIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgYXMgdGhlIHdvcmQgb2YgbGF3IHdoZW4g
ZGV0ZXJtaW5pbmcgaWYgYW4gb2JqZWN0IGlzIGlnbm9yZWQuCisgICAgdmlydHVhbCBib29sIGNv
bXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpIGNvbnN0
IG92ZXJyaWRlOwpAQCAtNzkzLDcgKzc5Niw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0
SXNJZ25vcmVkRnJvbVBhcmVudERhdGEoQWNjZXNzaWJpbGl0eUlzSWdub3JlZEZyb21QYXJlbnRE
YXRhJiBkYXRhKSBvdmVycmlkZSB7IG1faXNJZ25vcmVkRnJvbVBhcmVudERhdGEgPSBkYXRhOyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBJZiB0aGlzIG9iamVjdCBpdHNl
bGYgc2Nyb2xscywgcmV0dXJuIGl0cyBTY3JvbGxhYmxlQXJlYS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTRlYzQ5NTFl
NDY4NWIyYzkzZDc5ZmU5MzM4YjkwMDcxNmNiMmQ4Li41ZGNkZGY2NjRjYzQ2MWJmMTBjMTJkMDM3
YTQ5MTY5ZTk1MjJiYmU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDItMjcgIFR5bGVy
IFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogV2ViS2l0IHNob3Vs
ZCBpZ25vcmUgZW1wdHkgbW9kYWxzIHJhdGhlciB0aGFuIHRyYXBwaW5nIGZvY3VzIGluc2lkZSB0
aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcx
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQt
YW55LWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhw
ZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2FjY2Vz
c2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgbmV3
IHRlc3QuCisKIDIwMjItMDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MuaHRtbCBmYWlscyB3
aXRoIFdlYlJUQ1JlbW90ZVZpZGVvRnJhbWVFbmFibGVkPXRydWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRo
b3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmRlZGRhNzg2MzBlODUy
OWI4OWIwNjcxNGIxMGYyYWRmNDI2OTA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd2UgaWdub3JlIG1v
ZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29udGVudC4KKworQmVnaW5uaW5n
IHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC4KKworQVhSb2xlOiBBWFN0YXRpY1RleHQK
K0FYVmFsdWU6IEZvbyB0ZXh0LCBiZWZvcmUgbW9kYWwKKworQVhSb2xlOiBBWFN0YXRpY1RleHQK
K0FYVmFsdWU6IEZvbyB0ZXh0LCBhZnRlciBtb2RhbAorCitBcHBlbmRpbmcgYSB0ZXh0IG5vZGUg
dG8gbW9kYWwgdG8gbWFrZSBpdCBhY2Nlc3NpYmxlLgorUEFTUzogI2NvbnRhaW5lciBBWCBlbGVt
ZW50IGlzIG5vIGxvbmdlciBhY2Nlc3NpYmxlIGFmdGVyIGFkZGluZyBhY2Nlc3NpYmxlIGNvbnRl
bnQgdG8gbW9kYWwuCisKK0JlZ2lubmluZyBzZWFyY2ggZnJvbSAjbW9kYWwgZWxlbWVudC4KKwor
QVhSb2xlOiBBWFN0YXRpY1RleHQKK0FYVmFsdWU6IEZvbyB0ZXh0LCBpbnNpZGUgbW9kYWwKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFu
eS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMt
d2l0aG91dC1hbnktY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZmI4MzhlZjFjNGY4MzMyZmJm
MTE3MGIzNGE2YjY0ODBhYTFkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCkBAIC0wLDAg
KzEsODEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29udGFpbmVyIiByb2xl
PSJncm91cCI+CisgICAgPGRpdj5Gb28gdGV4dCwgYmVmb3JlIG1vZGFsPC9kaXY+CisKKyAgICA8
ZGl2IGlkPSJtb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj4KKyAgICAgICAg
PCEtLSBXcmFwIHRoZSBhcmlhLWhpZGRlbiBjb250ZW50IGluIGFyYml0cmFyeSBkaXYgbGF5ZXJz
IHRvIGVuc3VyZSB3ZSBkb24ndCBjb25zaWRlciB0aGUgYXJiaXRyYXJ5IGRpdnMgYWNjZXNzaWJs
ZSBjb250ZW50LiAtLT4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSI+CisgICAgICAgICAgICAgICAgICAgICA8
YnV0dG9uPkhpZGRlbiBidXR0b24gKGluc2lkZSBtb2RhbCk8L2J1dHRvbj4KKyAgICAgICAgICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyI+
CisgICAgICAgICAgICAgICAgICAgICBUZXh0IGluc2lkZSBkaXNwbGF5OiBub25lCisgICAgICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisKKyAgICA8ZGl2PkZvbyB0ZXh0LCBhZnRlciBtb2RhbDwvZGl2PgorPC9kaXY+CisK
KzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB3
ZSBpZ25vcmUgbW9kYWxzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgYWNjZXNzaWJsZSBjb250ZW50Llxu
IjsKKworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmRUZXh0SW5zaWRlSWQoaWQpIHsKKyAgICAgICAg
Y29uc3QgY29udGFpbmVyRWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuQmVnaW5uaW5nIHNl
YXJjaCBmcm9tICMke2lkfSBlbGVtZW50LlxuYDsKKworICAgICAgICBsZXQgc2VhcmNoUmVzdWx0
ID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHNlYXJjaFJlc3Vs
dCA9IGNvbnRhaW5lckVsZW1lbnQudWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlKHNlYXJjaFJl
c3VsdCwgdHJ1ZSwgIkFYQW55VHlwZVNlYXJjaEtleSIsICIiLCBmYWxzZSk7CisgICAgICAgICAg
ICBpZiAoIXNlYXJjaFJlc3VsdCkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgaWYgKHNlYXJjaFJlc3VsdC5yb2xlLmluY2x1ZGVzKCJTdGF0aWNUZXh0IikpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbiR7c2VhcmNoUmVzdWx0LnJvbGV9YDsKKyAgICAg
ICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnBs
YXRmb3JtTmFtZSA9PT0gImlvcyIgPyBzZWFyY2hSZXN1bHQuZGVzY3JpcHRpb24gOiBzZWFyY2hS
ZXN1bHQuc3RyaW5nVmFsdWU7CisgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4ke3Rl
eHRDb250ZW50fVxuYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBhd2FpdCBmaW5kVGV4dEluc2lkZUlkKCJjb250YWluZXIiKTsKKworICAg
ICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5BcHBlbmRpbmcgYSB0ZXh0IG5vZGUgdG8gbW9kYWwg
dG8gbWFrZSBpdCBhY2Nlc3NpYmxlLiI7CisgICAgICAgICAgICBsZXQgdGV4dCA9IGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCJGb28gdGV4dCwgaW5zaWRlIG1vZGFsIik7CisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKS5hcHBlbmRDaGlsZCh0ZXh0KTsKKworICAg
ICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IGlubmVy
TW9kYWxHcm91cCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgibW9kYWwiKS5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3Ig
dGV4dCBub2RlIHRvIGJlIGFkZGVkIGFzIGFuIEFYIGNoaWxkLgorICAgICAgICAgICAgICAgIHJl
dHVybiBpbm5lck1vZGFsR3JvdXAgJiYgaW5uZXJNb2RhbEdyb3VwLmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBsZXQgY29udGFpbmVyRWxlbWVudCA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY29udGFpbmVyIik7
CisgICAgICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkKKyAgICAgICAgICAgICAgICB0ZXN0
T3V0cHV0ICs9ICJcbkZBSUw6ICNjb250YWluZXIgQVggZWxlbWVudCB3YXMgc3RpbGwgYWNjZXNz
aWJsZSBhZnRlciBhZGRpbmcgYWNjZXNzaWJsZSBjb250ZW50IHRvIG1vZGFsLlxuIjsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblBBU1M6ICNjb250
YWluZXIgQVggZWxlbWVudCBpcyBubyBsb25nZXIgYWNjZXNzaWJsZSBhZnRlciBhZGRpbmcgYWNj
ZXNzaWJsZSBjb250ZW50IHRvIG1vZGFsLlxuIjsKKworICAgICAgICAgICAgYXdhaXQgZmluZFRl
eHRJbnNpZGVJZCgibW9kYWwiKTsKKworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRhaW5lciIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgICAg
IGRlYnVnKHRlc3RPdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0sIDApOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU4NmIzY2ViMjZlN2MwNmQyNmNi
MTQ4YjE3NzkzMTY5ZDMyMWVjZDUuLjBhMzJkYWE4NDRjYjBlZDVjYmJlMWRiMmIyMGMxY2JlYjc1
NGM3NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM0Myw2ICszNDMsNyBAQCBhY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1kaXYuaHRtbCBbIFNraXAg
XQogIyBNaXNzaW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFBy
ZWRpY2F0ZSBpbXBsZW1lbnRhdGlvbi4KIGFjY2Vzc2liaWxpdHkvdGFibGUtc2VhcmNoLXRyYXZl
cnNhbC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2R5bmFtaWNhbGx5LWNoYW5naW5nLWlm
cmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJpbGl0eS9pZ25v
cmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3Jn
L2IvMjEyODA1IGFjY2Vzc2liaWxpdHkvc3ZnLXRleHQuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQyYjEwOWRiY2RjYTM3
MTVlZTk5YTAyMTc3YTI1Y2JlYjVjYTBiZjIuLjVhZGFkMzg5YTEyNTYxNmZhZWRjM2U3NDZmYzFk
OTQwMDJkMzg5NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMDk5LDYgKzIwOTksNyBAQCB3ZWJraXQub3JnL2IvMTUwMzY2IGFjY2Vzc2liaWxpdHkv
YXJpYS10YWJsZS1hdHRyaWJ1dGVzLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS90YWJs
ZS1zZWFyY2gtdHJhdmVyc2FsLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZHluYW1pY2Fs
bHktY2hhbmdpbmctaWZyYW1lLXJlbWFpbnMtYWNjZXNzaWJsZS5odG1sIFsgUGFzcyBdCithY2Nl
c3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC5odG1sIFsgUGFzcyBd
CiAKIGFjY2Vzc2liaWxpdHkvc2VsZWN0ZWQtc3RhdGUtY2hhbmdlZC1ub3RpZmljYXRpb25zLmh0
bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZWxlbWVudC1saW5lLXJlY3RzLWFuZC10ZXh0Lmh0
bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3Np
YmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhv
dXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTE0OTRmMmQ5NGJlNDcy
ZmZlZGY1Yzk2YmUyYmZhMzNmNmQwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRl
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
d2UgaWdub3JlIG1vZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29udGVudC4K
KworQmVnaW5uaW5nIHNlYXJjaCBmcm9tICNjb250YWluZXIgZWxlbWVudC4KKworU3RhdGljVGV4
dAorQVhMYWJlbDogRm9vIHRleHQsIGJlZm9yZSBtb2RhbAorCitTdGF0aWNUZXh0CitBWExhYmVs
OiBGb28gdGV4dCwgYWZ0ZXIgbW9kYWwKKworQXBwZW5kaW5nIGEgdGV4dCBub2RlIHRvIG1vZGFs
IHRvIG1ha2UgaXQgYWNjZXNzaWJsZS4KK1BBU1M6ICNjb250YWluZXIgQVggZWxlbWVudCBpcyBu
byBsb25nZXIgYWNjZXNzaWJsZSBhZnRlciBhZGRpbmcgYWNjZXNzaWJsZSBjb250ZW50IHRvIG1v
ZGFsLgorCitCZWdpbm5pbmcgc2VhcmNoIGZyb20gI21vZGFsIGVsZW1lbnQuCisKK1N0YXRpY1Rl
eHQKK0FYTGFiZWw6IEZvbyB0ZXh0LCBpbnNpZGUgbW9kYWwKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2EzZDAwNTY3ODg4Y2YyNTBiODNhMzQwMDU1ZThkN2Ri
MTc2MzA5ZC4uZWU2N2EzNjc3MTJlODQ3MjUyZjhkNjY2YzI1NTg2NThlYjYxMzM5NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3Niw2ICs0NzYsNyBA
QCBhY2Nlc3NpYmlsaXR5L2FuY2VzdG9yLWNvbXB1dGF0aW9uLmh0bWwgWyBTa2lwIF0KICMgTWlz
c2luZyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUg
aW1wbGVtZW50YXRpb24uCiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2ZXJzYWwuaHRt
bCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1pZnJhbWUtcmVt
YWlucy1hY2Nlc3NpYmxlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFs
cy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwgWyBTa2lwIF0KIAogIyBUT0RPIENvbmljIGdyYWRp
ZW50cwogaHR0cC93cHQvY3NzL2Nzcy1pbWFnZXMtNC9jb25pYy1ncmFkaWVudC1wYXJzaW5nLmh0
bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453415</attachid>
            <date>2022-02-28 12:50:50 -0800</date>
            <delta_ts>2022-02-28 23:47:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237163-20220228145049.patch</filename>
            <type>text/plain</type>
            <size>17569</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI1NWJlYTg5MWI5ZGU2
OGZlMjA4MmQ4YTZjNDE4OTIwMDQ1MjU5Yi4uOTcxMzk3YmRlYWJjYTIwZjlkN2MxY2NhMjYwODIx
ZTI4MmViN2Y1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTAyLTI3ICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdlYktpdCBzaG91
bGQgaWdub3JlIGVtcHR5IG1vZGFscyByYXRoZXIgdGhhbiB0cmFwcGluZyBmb2N1cyBpbnNpZGUg
dGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIEFuZHJlcyBHb256
YWxlei4KKworICAgICAgICBHaXZlbiB0aGlzIG1hcmt1cDoKKworICAgICAgICA8ZGl2IHJvbGU9
ImRpYWxvZyIgYXJpYS1tb2RhbD0idHJ1ZSI+CisgICAgICAgICAgICA8ZGl2IGFyaWEtaGlkZGVu
PSJ0cnVlIj4KKyAgICAgICAgICAgICAgICA8YnV0dG9uPkNsb3NlIG1vZGFsIChpbnNpZGUgbW9k
YWwpPC9idXR0b24+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisKKyAgICAg
ICAgVGhlcmUgaXMgbm8gYWNjZXNzaWJsZSBjb250ZW50IGluc2lkZSB0aGlzIG1vZGFsLCBidXQg
V2ViS2l0IHRyYXBzIHVzZXIgZm9jdXMgaW5zaWRlLAorICAgICAgICBtYWtpbmcgdGhlIHJlc3Qg
b2YgdGhlIHBhZ2UgY29tcGxldGVseSBpbmFjY2Vzc2libGUuCisKKyAgICAgICAgV2l0aCB0aGlz
IHBhdGNoIHdlIGlnbm9yZSBtb2RhbHMgdGhhdCBkb24ndCBoYXZlIGFjY2Vzc2libGUgY29udGVu
dC4KKyAgICAgICAgV2UgZG8gdGhpcyBieSB3YWxraW5nIHRoZSBET00gdG8gZmluZCBhbnkgbm9u
LUFYLWlnbm9yZWQgb2JqZWN0cy4KKworICAgICAgICBCZWNhdXNlIGRldGVybWluaW5nIHdoZXRo
ZXIgb3Igbm90IGFuIGVsZW1lbnQgaXMgaWdub3JlZCBpcyBkZXBlbmRlbnQKKyAgICAgICAgb24g
bW9kYWxzIHByZXNlbnQgb24gdGhlIHBhZ2UsIHRoaXMgcGF0Y2ggbW92ZXMgdGhlIGNhbGwgdG8g
YGlnbm9yZWRGcm9tTW9kYWxQcmVzZW5jZWAKKyAgICAgICAgb3V0IG9mIGBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpkZWZhdWx0T2JqZWN0SW5jbHVzaW9uYCwgYXMgdGhpcyBmdW5jdGlvbiBpcworICAg
ICAgICBkb3duc3RyZWFtIG9mIGBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZGAsIGFuZCB3
ZSBuZWVkIHRvIGNhbGwKKyAgICAgICAgdGhhdCBvbiBvYmplY3RzIGluc2lkZSBtb2RhbCBjYW5k
aWRhdGVzLiBXaXRob3V0IHRoaXMgbW92ZSwgd2Ugd291bGQKKyAgICAgICAgcmVjdXJzZSBpbmZp
bml0ZWx5IGluIGBBWE9iamVjdENhY2hlOjptb2RhbEVsZW1lbnRIYXNBY2Nlc3NpYmxlQ29udGVu
dGAuCisKKyAgICAgICAgV2Ugbm93IGNoZWNrIHdoZXRoZXIgYW4gb2JqZWN0IGlzIGlnbm9yZWQg
ZHVlIHRvIG1vZGFsIHByZXNlbmNlIGluCisgICAgICAgIGBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKClgLCBzbyB0aGF0IGZ1bmN0aW9uIHNob3VsZAorICAgICAg
ICBiZSB1c2VkIGFzIHRoZSBmaW5hbCBzYXkgaW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhbiBvYmpl
Y3QgaXMgaWdub3JlZC4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2Rh
bHMtd2l0aG91dC1hbnktY29udGVudC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bW9kYWxF
bGVtZW50SGFzQWNjZXNzaWJsZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6Y3VycmVudE1vZGFsTm9kZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJ
bmNsdXNpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisKIDIwMjItMDItMjIg
IFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zdHlsZSBQREYuanMg
Zm9ybSBmaWVsZHMgdG8gbWF0Y2ggUERGS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAwZmUxNDNjMmI4ZWEyOTUxNzUyNjYxMmM5ZjZh
Mjg2ZWMyZWYzMDgwLi41Y2E1Yjc5NzM1N2QyMjQ4ZGMwMGI4NTU2OTZjMTZiN2RmNzZlMzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTI2OSw2ICsyNjksMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpmaW5kTW9kYWxOb2RlcygpCiAg
ICAgbV9tb2RhbE5vZGVzSW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCitib29sIEFYT2JqZWN0Q2Fj
aGU6Om1vZGFsRWxlbWVudEhhc0FjY2Vzc2libGVDb250ZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7
CisgICAgLy8gVW5sZXNzIHlvdSdyZSB0cnlpbmcgdG8gY29tcHV0ZSB0aGUgbmV3IG1vZGFsIG5v
ZGUsIGRldGVybWluaW5nIHdoZXRoZXIgYW4gZWxlbWVudAorICAgIC8vIGhhcyBhY2Nlc3NpYmxl
IGNvbnRlbnQgaXMgYXMgZWFzeSBhcyAhZ2V0T3JDcmVhdGUoZWxlbWVudCktPmNoaWxkcmVuKCku
aXNFbXB0eSgpLgorICAgIC8vIFNvIGRvbid0IGNhbGwgdGhpcyBtZXRob2Qgb24gYW55dGhpbmcg
YmVzaWRlcyBtb2RhbCBlbGVtZW50cy4KKyAgICBBU1NFUlQoaXNNb2RhbEVsZW1lbnQoZWxlbWVu
dCkpOworCisgICAgLy8gQmVjYXVzZSBjb21wdXRpbmcgYW55IG9iamVjdCdzIGNoaWxkcmVuKCkg
aXMgZGVwZW5kZW50IG9uIHdoZXRoZXIgYSBtb2RhbCBpcyBvbiB0aGUgcGFnZSwKKyAgICAvLyB3
ZSdsbCBuZWVkIHRvIHdhbGsgdGhlIERPTSBhbmQgZmluZCBub24taWdub3JlZCBBWCBvYmplY3Rz
IG1hbnVhbGx5LgorICAgIFZlY3RvcjxOb2RlKj4gbm9kZVN0YWNrID0geyBlbGVtZW50LmZpcnN0
Q2hpbGQoKSB9OworICAgIHdoaWxlICghbm9kZVN0YWNrLmlzRW1wdHkoKSkgeworICAgICAgICBm
b3IgKGF1dG8qIG5vZGUgPSBub2RlU3RhY2sudGFrZUxhc3QoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
Pm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBheE9iamVjdCA9IGdldE9y
Q3JlYXRlKG5vZGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFheE9iamVjdC0+Y29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIERvbid0IGRlc2NlbmQgaW50byBzdWJ0
cmVlcyBmb3Igbm9uLXZpc2libGUgbm9kZXMuCisgICAgICAgICAgICBpZiAoaXNOb2RlVmlzaWJs
ZShub2RlKSkKKyAgICAgICAgICAgICAgICBub2RlU3RhY2suYXBwZW5kKG5vZGUtPmZpcnN0Q2hp
bGQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBFbGVtZW50
KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2RlKCkKIHsKICAgICAvLyBUaGVyZSBtaWdo
dCBiZSBtdWx0aXBsZSBtb2RhbCBkaWFsb2cgbm9kZXMuCkBAIC0yODgsMTQgKzMxMywyMCBAQCBF
bGVtZW50KiBBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2RlKCkKICAgICBSZWZQdHI8RWxl
bWVudD4gZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7CiAgICAg
UmVmUHRyPEVsZW1lbnQ+IGxhc3RWaXNpYmxlOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IG1f
bW9kYWxFbGVtZW50c1NldCkgewotICAgICAgICBpZiAoaXNOb2RlVmlzaWJsZShlbGVtZW50KSkg
ewotICAgICAgICAgICAgaWYgKGZvY3VzZWRFbGVtZW50ICYmIGZvY3VzZWRFbGVtZW50LT5pc0Rl
c2NlbmRhbnRPZihlbGVtZW50KSkgewotICAgICAgICAgICAgICAgIG1fY3VycmVudE1vZGFsRWxl
bWVudCA9IGVsZW1lbnQ7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgIC8vIEVsZW1lbnRzIGluIG1fbW9kYWxFbGVtZW50c1NldCBtYXkgaGF2ZSBiZWNvbWUg
dW4tbW9kYWwgc2luY2Ugd2UgYWRkZWQgdGhlbSwgYnV0IG5vdCB5ZXQgcmVtb3ZlZAorICAgICAg
ICAvLyBhcyBwYXJ0IG9mIHRoZSBhc3luY2hyb25vdXMgbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExp
c3QgaGFuZGxpbmcuIFNraXAgdGhlc2UuCisgICAgICAgIGlmICghZWxlbWVudCB8fCAhaXNNb2Rh
bEVsZW1lbnQoKmVsZW1lbnQpKQorICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IGxhc3RWaXNpYmxlID0gZWxlbWVudDsKKyAgICAgICAgLy8gVG8gYXZvaWQgdHJhcHBpbmcgdXNl
cnMgaW4gYW4gZW1wdHkgbW9kYWwsIHNraXAgYW55IG5vbi12aXNpYmxlIGVsZW1lbnQsIG9yIGFu
eSBlbGVtZW50IHdpdGhvdXQgYWNjZXNzaWJsZSBjb250ZW50LgorICAgICAgICBpZiAoIWlzTm9k
ZVZpc2libGUoZWxlbWVudCkgfHwgIW1vZGFsRWxlbWVudEhhc0FjY2Vzc2libGVDb250ZW50KCpl
bGVtZW50KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChmb2N1c2VkRWxl
bWVudCAmJiBmb2N1c2VkRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCkpIHsKKyAgICAg
ICAgICAgIG1fY3VycmVudE1vZGFsRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBsYXN0VmlzaWJsZSA9IGVsZW1lbnQ7CiAgICAgfQogCiAg
ICAgaWYgKCFtX2N1cnJlbnRNb2RhbEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGY3MzJhOTEwYWQ1OGIxZWI4NDRkOWVhYTdlOWY5
MzZhMTgyNWYwZjIuLmM1ZGM5YmM0NmNhMTQzZDhjNjdkMWQwMDcyMDFhMDAzNDRmNjBkMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC00NzQs
NiArNDc0LDcgQEAgcHJpdmF0ZToKICAgICBFbGVtZW50KiBjdXJyZW50TW9kYWxOb2RlKCk7CiAg
ICAgYm9vbCBpc05vZGVWaXNpYmxlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZU1vZGFs
Q2hhbmdlKEVsZW1lbnQmKTsKKyAgICBib29sIG1vZGFsRWxlbWVudEhhc0FjY2Vzc2libGVDb250
ZW50KEVsZW1lbnQmKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG1fcGFnZUlEOyAvLyBjb25zdGFudCBmb3Igb2Jq
ZWN0J3MgbGlmZXRpbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzMTNhMThjZTJjZTM4ZDdiM2VlYWJiNjZkNGM0
MGIyYzBkZmE2ZGJjLi41MDUwOWQ2MDI2ZGZhY2RlMzgyMmEyZGM2Zjc2NTI4YTFkY2YwMmVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKQEAgLTM2MTYsNyArMzYxNiw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNp
b24gQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiAg
ICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRk
ZW4gOiBpc0FYSGlkZGVuKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5j
bHVzaW9uOjpJZ25vcmVPYmplY3Q7CiAKLSAgICBpZiAoKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIo
KS0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKSB8fCBpZ25vcmVkRnJvbU1vZGFsUHJlc2VuY2Uo
KSkKKyAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZUlu
ZXJ0KCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25v
cmVPYmplY3Q7CiAKICAgICBpZiAodXNlUGFyZW50RGF0YSA/IG1faXNJZ25vcmVkRnJvbVBhcmVu
dERhdGEuaXNQcmVzZW50YXRpb25hbENoaWxkT2ZBcmlhUm9sZSA6IGlzUHJlc2VudGF0aW9uYWxD
aGlsZE9mQXJpYVJvbGUoKSkKQEAgLTM2NDgsMTMgKzM2NDgsMTUgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAgICAgfQogICAg
IH0KIAotICAgIGJvb2wgcmVzdWx0ID0gY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKTsK
KyAgICBib29sIGlnbm9yZWQgPSBpZ25vcmVkRnJvbU1vZGFsUHJlc2VuY2UoKTsKKyAgICBpZiAo
IWlnbm9yZWQpCisgICAgICAgIGlnbm9yZWQgPSBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpOwogCiAgICAgLy8gSW4gY2FzZSBjb21wdXRpbmcgYXhJc0lnbm9yZWQgZGlzYWJsZXMgYXR0
cmlidXRlIGNhY2hpbmcsIHdlIHNob3VsZCByZWZldGNoIHRoZSBvYmplY3QgdG8gc2VlIGlmIGl0
IGV4aXN0cy4KICAgICBpZiAoY2FjaGUgJiYgKGF0dHJpYnV0ZUNhY2hlID0gY2FjaGUtPmNvbXB1
dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSkpCi0gICAgICAgIGF0dHJpYnV0ZUNhY2hlLT5zZXRJ
Z25vcmVkKG9iamVjdElEKCksIHJlc3VsdCA/IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246
Oklnbm9yZU9iamVjdCA6IEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246OkluY2x1ZGVPYmpl
Y3QpOworICAgICAgICBhdHRyaWJ1dGVDYWNoZS0+c2V0SWdub3JlZChvYmplY3RJRCgpLCBpZ25v
cmVkID8gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0IDogQWNjZXNz
aWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SW5jbHVkZU9iamVjdCk7CiAKLSAgICByZXR1cm4gcmVz
dWx0OworICAgIHJldHVybiBpZ25vcmVkOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmVsZW1lbnRzRnJvbUF0dHJpYnV0ZShWZWN0b3I8RWxlbWVudCo+JiBlbGVtZW50cywgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA5ZTkzMjk1M2VkNWY1OTM0
YWFkMTE5ZTg2YmY5N2U2NTkxOTEyYmQwLi5iOWE4YjljMDk3ZGE0ZWU4ZThlZTc5YzczMGQ5ZjNl
MDQ2ZTQ4MmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaApAQCAtMjc2LDYgKzI3Niw5IEBAIHB1YmxpYzoKICAgICBFbGVtZW50
KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIC8vIE5vdGU6IGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkIGRvZXMgbm90IGNvbnNpZGVyIHdoZXRoZXIgYW4gb2JqZWN0IGlz
IGlnbm9yZWQgZHVlIHRvIHByZXNlbmNlIG9mIG1vZGFscy4KKyAgICAvLyBVc2UgYWNjZXNzaWJp
bGl0eUlzSWdub3JlZCBhcyB0aGUgd29yZCBvZiBsYXcgd2hlbiBkZXRlcm1pbmluZyBpZiBhbiBv
YmplY3QgaXMgaWdub3JlZC4KKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBkZWZhdWx0T2JqZWN0SW5jbHVzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkQnlEZWZhdWx0KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03OTMs
NyArNzk2LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50
RGF0YShBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkRnJvbVBhcmVudERhdGEmIGRhdGEpIG92ZXJyaWRl
IHsgbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0YSA9IGRhdGE7IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
ICAgICBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIC8vIElmIHRoaXMgb2JqZWN0IGl0c2VsZiBzY3JvbGxzLCByZXR1cm4g
aXRzIFNjcm9sbGFibGVBcmVhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM1NGVjNDk1MWU0Njg1YjJjOTNkNzlmZTkzMzhi
OTAwNzE2Y2IyZDguLmU5ODFjYTkyMDViYjk2ZDJmNTg0ZDk5ZGIwOGRlMzgwMmU5YmJkMTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMi0yNyAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dA
YXBwbGUuY29tPgorCisgICAgICAgIEFYOiBXZWJLaXQgc2hvdWxkIGlnbm9yZSBlbXB0eSBtb2Rh
bHMgcmF0aGVyIHRoYW4gdHJhcHBpbmcgZm9jdXMgaW5zaWRlIHRoZW0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzE2MworCisgICAgICAgIFJldmll
d2VkIGJ5IENocmlzIEZsZWl6YWNoIGFuZCBBbmRyZXMgR29uemFsZXouCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0
LWFueS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9uczogRW5hYmxlIG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9hY2Nl
c3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5l
dyB0ZXN0LgorCiAyMDIyLTAyLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBodHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwgZmFpbHMg
d2l0aCBXZWJSVENSZW1vdGVWaWRlb0ZyYW1lRW5hYmxlZD10cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1hbnktY29udGVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0
aG91dC1hbnktY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJkZWRkYTc4NjMwZTg1
MjliODliMDY3MTRiMTBmMmFkZjQyNjkwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdlIGlnbm9yZSBt
b2RhbHMgdGhhdCBkb24ndCBoYXZlIGFueSBhY2Nlc3NpYmxlIGNvbnRlbnQuCisKK0JlZ2lubmlu
ZyBzZWFyY2ggZnJvbSAjY29udGFpbmVyIGVsZW1lbnQuCisKK0FYUm9sZTogQVhTdGF0aWNUZXh0
CitBWFZhbHVlOiBGb28gdGV4dCwgYmVmb3JlIG1vZGFsCisKK0FYUm9sZTogQVhTdGF0aWNUZXh0
CitBWFZhbHVlOiBGb28gdGV4dCwgYWZ0ZXIgbW9kYWwKKworQXBwZW5kaW5nIGEgdGV4dCBub2Rl
IHRvIG1vZGFsIHRvIG1ha2UgaXQgYWNjZXNzaWJsZS4KK1BBU1M6ICNjb250YWluZXIgQVggZWxl
bWVudCBpcyBubyBsb25nZXIgYWNjZXNzaWJsZSBhZnRlciBhZGRpbmcgYWNjZXNzaWJsZSBjb250
ZW50IHRvIG1vZGFsLgorCitCZWdpbm5pbmcgc2VhcmNoIGZyb20gI21vZGFsIGVsZW1lbnQuCisK
K0FYUm9sZTogQVhTdGF0aWNUZXh0CitBWFZhbHVlOiBGb28gdGV4dCwgaW5zaWRlIG1vZGFsCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2RhbHMtd2l0aG91dC1h
bnktY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxz
LXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWZiODM4ZWYxYzRmODMzMmZi
ZjExNzBiMzRhNmI2NDgwYWExZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbApAQCAtMCww
ICsxLDgxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciIgcm9s
ZT0iZ3JvdXAiPgorICAgIDxkaXY+Rm9vIHRleHQsIGJlZm9yZSBtb2RhbDwvZGl2PgorCisgICAg
PGRpdiBpZD0ibW9kYWwiIHJvbGU9ImRpYWxvZyIgYXJpYS1tb2RhbD0idHJ1ZSI+CisgICAgICAg
IDwhLS0gV3JhcCB0aGUgYXJpYS1oaWRkZW4gY29udGVudCBpbiBhcmJpdHJhcnkgZGl2IGxheWVy
cyB0byBlbnN1cmUgd2UgZG9uJ3QgY29uc2lkZXIgdGhlIGFyYml0cmFyeSBkaXZzIGFjY2Vzc2li
bGUgY29udGVudC4gLS0+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8ZGl2PgorICAgICAg
ICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49InRydWUiPgorICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbj5IaWRkZW4gYnV0dG9uIChpbnNpZGUgbW9kYWwpPC9idXR0b24+CisgICAgICAgICAg
ICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsi
PgorICAgICAgICAgICAgICAgICAgICAgVGV4dCBpbnNpZGUgZGlzcGxheTogbm9uZQorICAgICAg
ICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorCisgICAgPGRpdj5Gb28gdGV4dCwgYWZ0ZXIgbW9kYWw8L2Rpdj4KKzwvZGl2Pgor
Cis8c2NyaXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
d2UgaWdub3JlIG1vZGFscyB0aGF0IGRvbid0IGhhdmUgYW55IGFjY2Vzc2libGUgY29udGVudC5c
biI7CisKKyAgICBhc3luYyBmdW5jdGlvbiBmaW5kVGV4dEluc2lkZUlkKGlkKSB7CisgICAgICAg
IGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoaWQpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGBcbkJlZ2lubmluZyBz
ZWFyY2ggZnJvbSAjJHtpZH0gZWxlbWVudC5cbmA7CisKKyAgICAgICAgbGV0IHNlYXJjaFJlc3Vs
dCA9IG51bGw7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBzZWFyY2hSZXN1
bHQgPSBjb250YWluZXJFbGVtZW50LnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShzZWFyY2hS
ZXN1bHQsIHRydWUsICJBWEFueVR5cGVTZWFyY2hLZXkiLCAiIiwgZmFsc2UpOworICAgICAgICAg
ICAgaWYgKCFzZWFyY2hSZXN1bHQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgIGlmIChzZWFyY2hSZXN1bHQucm9sZS5pbmNsdWRlcygiU3RhdGljVGV4dCIpKSB7CisgICAg
ICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgXG4ke3NlYXJjaFJlc3VsdC5yb2xlfWA7CisgICAg
ICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5w
bGF0Zm9ybU5hbWUgPT09ICJpb3MiID8gc2VhcmNoUmVzdWx0LmRlc2NyaXB0aW9uIDogc2VhcmNo
UmVzdWx0LnN0cmluZ1ZhbHVlOworICAgICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYFxuJHt0
ZXh0Q29udGVudH1cbmA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgYXdhaXQgZmluZFRleHRJbnNpZGVJZCgiY29udGFpbmVyIik7CisKKyAg
ICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuQXBwZW5kaW5nIGEgdGV4dCBub2RlIHRvIG1vZGFs
IHRvIG1ha2UgaXQgYWNjZXNzaWJsZS4iOworICAgICAgICAgICAgbGV0IHRleHQgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiRm9vIHRleHQsIGluc2lkZSBtb2RhbCIpOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsIikuYXBwZW5kQ2hpbGQodGV4dCk7CisKKyAg
ICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAgIGxldCBpbm5l
ck1vZGFsR3JvdXAgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoIm1vZGFsIikuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgICAgIC8vIFdhaXQgZm9y
IHRleHQgbm9kZSB0byBiZSBhZGRlZCBhcyBhbiBBWCBjaGlsZC4KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaW5uZXJNb2RhbEdyb3VwICYmIGlubmVyTW9kYWxHcm91cC5jaGlsZEF0SW5kZXgoMCk7
CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgbGV0IGNvbnRhaW5lckVsZW1lbnQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNvbnRhaW5lciIp
OworICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpCisgICAgICAgICAgICAgICAgdGVz
dE91dHB1dCArPSAiXG5GQUlMOiAjY29udGFpbmVyIEFYIGVsZW1lbnQgd2FzIHN0aWxsIGFjY2Vz
c2libGUgYWZ0ZXIgYWRkaW5nIGFjY2Vzc2libGUgY29udGVudCB0byBtb2RhbC5cbiI7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5QQVNTOiAjY29u
dGFpbmVyIEFYIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIGFjY2Vzc2libGUgYWZ0ZXIgYWRkaW5nIGFj
Y2Vzc2libGUgY29udGVudCB0byBtb2RhbC5cbiI7CisKKyAgICAgICAgICAgIGF3YWl0IGZpbmRU
ZXh0SW5zaWRlSWQoIm1vZGFsIik7CisKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb250YWluZXIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAg
ICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ODZiM2NlYjI2ZTdjMDZkMjZj
YjE0OGIxNzc5MzE2OWQzMjFlY2Q1Li4wYTMyZGFhODQ0Y2IwZWQ1Y2JiZTFkYjJiMjBjMWNiZWI3
NTRjNzcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNDMsNiArMzQzLDcgQEAgYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtZGl2Lmh0bWwgWyBTa2lw
IF0KICMgTWlzc2luZyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQ
cmVkaWNhdGUgaW1wbGVtZW50YXRpb24uCiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2
ZXJzYWwuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1p
ZnJhbWUtcmVtYWlucy1hY2Nlc3NpYmxlLmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaWdu
b3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9y
Zy9iLzIxMjgwNSBhY2Nlc3NpYmlsaXR5L3N2Zy10ZXh0Lmh0bWwgWyBGYWlsdXJlIF0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MmIxMDlkYmNkY2Ez
NzE1ZWU5OWEwMjE3N2EyNWNiZWI1Y2EwYmYyLi41YWRhZDM4OWExMjU2MTZmYWVkYzNlNzQ2ZmMx
ZDk0MDAyZDM4OTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjA5OSw2ICsyMDk5LDcgQEAgd2Via2l0Lm9yZy9iLzE1MDM2NiBhY2Nlc3NpYmlsaXR5
L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sIFsgUGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvdGFi
bGUtc2VhcmNoLXRyYXZlcnNhbC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2R5bmFtaWNh
bGx5LWNoYW5naW5nLWlmcmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFBhc3MgXQorYWNj
ZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBbIFBhc3Mg
XQogCiBhY2Nlc3NpYmlsaXR5L3NlbGVjdGVkLXN0YXRlLWNoYW5nZWQtbm90aWZpY2F0aW9ucy5o
dG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2VsZW1lbnQtbGluZS1yZWN0cy1hbmQtdGV4dC5o
dG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNz
aWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRo
b3V0LWFueS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2ExNDk0ZjJkOTRiZTQ3
MmZmZWRmNWM5NmJlMmJmYTMzZjZkMGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IHdlIGlnbm9yZSBtb2RhbHMgdGhhdCBkb24ndCBoYXZlIGFueSBhY2Nlc3NpYmxlIGNvbnRlbnQu
CisKK0JlZ2lubmluZyBzZWFyY2ggZnJvbSAjY29udGFpbmVyIGVsZW1lbnQuCisKK1N0YXRpY1Rl
eHQKK0FYTGFiZWw6IEZvbyB0ZXh0LCBiZWZvcmUgbW9kYWwKKworU3RhdGljVGV4dAorQVhMYWJl
bDogRm9vIHRleHQsIGFmdGVyIG1vZGFsCisKK0FwcGVuZGluZyBhIHRleHQgbm9kZSB0byBtb2Rh
bCB0byBtYWtlIGl0IGFjY2Vzc2libGUuCitQQVNTOiAjY29udGFpbmVyIEFYIGVsZW1lbnQgaXMg
bm8gbG9uZ2VyIGFjY2Vzc2libGUgYWZ0ZXIgYWRkaW5nIGFjY2Vzc2libGUgY29udGVudCB0byBt
b2RhbC4KKworQmVnaW5uaW5nIHNlYXJjaCBmcm9tICNtb2RhbCBlbGVtZW50LgorCitTdGF0aWNU
ZXh0CitBWExhYmVsOiBGb28gdGV4dCwgaW5zaWRlIG1vZGFsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdhM2QwMDU2Nzg4OGNmMjUwYjgzYTM0MDA1NWU4ZDdk
YjE3NjMwOWQuLmVlNjdhMzY3NzEyZTg0NzI1MmY4ZDY2NmMyNTU4NjU4ZWI2MTMzOTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NzYsNiArNDc2LDcg
QEAgYWNjZXNzaWJpbGl0eS9hbmNlc3Rvci1jb21wdXRhdGlvbi5odG1sIFsgU2tpcCBdCiAjIE1p
c3NpbmcgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRl
IGltcGxlbWVudGF0aW9uLgogYWNjZXNzaWJpbGl0eS90YWJsZS1zZWFyY2gtdHJhdmVyc2FsLmh0
bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxpdHkvZHluYW1pY2FsbHktY2hhbmdpbmctaWZyYW1lLXJl
bWFpbnMtYWNjZXNzaWJsZS5odG1sIFsgU2tpcCBdCithY2Nlc3NpYmlsaXR5L2lnbm9yZS1tb2Rh
bHMtd2l0aG91dC1hbnktY29udGVudC5odG1sIFsgU2tpcCBdCiAKICMgVE9ETyBDb25pYyBncmFk
aWVudHMKIGh0dHAvd3B0L2Nzcy9jc3MtaW1hZ2VzLTQvY29uaWMtZ3JhZGllbnQtcGFyc2luZy5o
dG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>