<?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>220534</bug_id>
          
          <creation_ts>2021-01-11 23:02:03 -0800</creation_ts>
          <short_desc>AX: expose focusable elements even if element or ancestor has aria-hidden=true</short_desc>
          <delta_ts>2021-02-09 19:24:43 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221646</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718906</commentid>
    <comment_count>0</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-01-11 23:02:03 -0800</bug_when>
    <thetext>The AX tree inclusion section of ARIA now includes this line:

The accessibility tree inclusion section includes this line:
&gt; [include in the accessibility tree…] &quot;Elements that are focusable even if the element or one of its ancestor elements has its aria-hidden attribute set to true.&quot;

https://w3c.github.io/aria/#tree_inclusion


The ARIA WG discussed the &quot;focusable&quot; vs &quot;expose only when focused&quot; difference and came to the consensus that there were too many instances where authors did hidden focusable elements accidentally (including one recent report on the Benevity site). 

So as I understand it, the way to hide focusable elements would be to make not rendered, or explicitly not focusable.

Visible, but explicitly not focusable
&lt;button tabindex=“-1&quot; aria-hidden=“true&quot;&gt;

Not rendered, and therefore implicitly not focusable.
&lt;button style=“display:none;&quot;&gt;

Also, once WebKit implements @inert, that would also be sufficient:
&lt;div inert&gt;
  &lt;button aria-hidden=“true&quot;&gt;this is inert, so not focusable among other things.. The aria-hidden is likely redundant here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718907</commentid>
    <comment_count>1</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-01-11 23:02:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/71865875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719643</commentid>
    <comment_count>2</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-01-14 10:59:31 -0800</bug_when>
    <thetext>FYI, the spec change was already approved and merged into ARIA 1.2, but an objection was raised today. Okay to post the patch if done/close, but please hold off on merging. Sorry.

https://github.com/w3c/aria/issues/1381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724482</commentid>
    <comment_count>3</comment_count>
      <attachid>418945</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-01 17:34:08 -0800</bug_when>
    <thetext>Created attachment 418945
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724537</commentid>
    <comment_count>4</comment_count>
      <attachid>418964</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-01 23:14:28 -0800</bug_when>
    <thetext>Created attachment 418964
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724538</commentid>
    <comment_count>5</comment_count>
      <attachid>418965</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-01 23:15:12 -0800</bug_when>
    <thetext>Created attachment 418965
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725095</commentid>
    <comment_count>6</comment_count>
      <attachid>418965</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-02-03 05:40:07 -0800</bug_when>
    <thetext>Comment on attachment 418965
patch

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

&gt; LayoutTests/accessibility/focusable-inside-hidden.html:24
&gt; +       document.getElementById(&quot;button&quot;).focus();

It may also be a good test to .blur() the element and then verify it&apos;s no longer accessible after focus is lost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725237</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-02-03 11:28:46 -0800</bug_when>
    <thetext>--- a/LayoutTests/accessibility/focusable-inside-hidden.html
+++ a/LayoutTests/accessibility/focusable-inside-hidden.html

+    description(&quot;This tests that a focusable object inside an aria-hidden is still visible&quot;);

I think it is important to notice that is visible after it gains focus. That&apos;s what this test is showing. The button element is hidden before it gains focus, even though it is always focusable.


+        &lt;div role=&quot;button&quot;&gt;hidden button&lt;/div&gt;

Not used in the test. Should it be removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725262</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-02-03 12:07:32 -0800</bug_when>
    <thetext>--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ a/Source/WebCore/accessibility/AccessibilityObject.cpp

     return Accessibility::findAncestor&lt;AccessibilityObject&gt;(*this, true, [] (const AccessibilityObject&amp; object) {
-        return equalLettersIgnoringASCIICase(object.getAttribute(aria_hiddenAttr), &quot;true&quot;);
+        return equalLettersIgnoringASCIICase(object.getAttribute(aria_hiddenAttr), &quot;true&quot;) &amp;&amp; !object.isFocused();
     }) != nullptr;

For the following case:

&lt;A hidden not focused&gt;
    &lt;B focused&gt;
        &lt;C /&gt;
    &lt;/B&gt;
&lt;/A&gt;

C would be hidden based on above logic. But C may be focused as part of B. Is this the expected behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725265</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-03 12:08:26 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #8)
&gt; --- a/Source/WebCore/accessibility/AccessibilityObject.cpp
&gt; +++ a/Source/WebCore/accessibility/AccessibilityObject.cpp
&gt; 
&gt;      return Accessibility::findAncestor&lt;AccessibilityObject&gt;(*this, true, []
&gt; (const AccessibilityObject&amp; object) {
&gt; -        return
&gt; equalLettersIgnoringASCIICase(object.getAttribute(aria_hiddenAttr), &quot;true&quot;);
&gt; +        return
&gt; equalLettersIgnoringASCIICase(object.getAttribute(aria_hiddenAttr), &quot;true&quot;)
&gt; &amp;&amp; !object.isFocused();
&gt;      }) != nullptr;
&gt; 
&gt; For the following case:
&gt; 
&gt; &lt;A hidden not focused&gt;
&gt;     &lt;B focused&gt;
&gt;         &lt;C /&gt;
&gt;     &lt;/B&gt;
&gt; &lt;/A&gt;
&gt; 
&gt; C would be hidden based on above logic. But C may be focused as part of B.
&gt; Is this the expected behavior?

I am not sure. @JamesCraig?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725276</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-02-03 12:20:06 -0800</bug_when>
    <thetext>@@ -3567,7 +3570,7 @@ void AccessibilityObject::setIsIgnoredFromParentDataForChild(AXCoreObject* child

     AccessibilityIsIgnoredFromParentData result = AccessibilityIsIgnoredFromParentData(this);
     if (!m_isIgnoredFromParentData.isNull()) {
-        result.isAXHidden = m_isIgnoredFromParentData.isAXHidden || equalLettersIgnoringASCIICase(child-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;);
+        result.isAXHidden = (m_isIgnoredFromParentData.isAXHidden || equalLettersIgnoringASCIICase(child-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;)) &amp;&amp; !child-&gt;isFocused();

Not strictly related to this change, but it seems strange that we are consulting the child to set a flag that should depends only on its ancestors, as the name of the method indicates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725516</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-03 23:16:33 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #10)
&gt; @@ -3567,7 +3570,7 @@ void
&gt; AccessibilityObject::setIsIgnoredFromParentDataForChild(AXCoreObject* child
&gt; 
&gt;      AccessibilityIsIgnoredFromParentData result =
&gt; AccessibilityIsIgnoredFromParentData(this);
&gt;      if (!m_isIgnoredFromParentData.isNull()) {
&gt; -        result.isAXHidden = m_isIgnoredFromParentData.isAXHidden ||
&gt; equalLettersIgnoringASCIICase(child-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;);
&gt; +        result.isAXHidden = (m_isIgnoredFromParentData.isAXHidden ||
&gt; equalLettersIgnoringASCIICase(child-&gt;getAttribute(aria_hiddenAttr), &quot;true&quot;))
&gt; &amp;&amp; !child-&gt;isFocused();
&gt; 
&gt; Not strictly related to this change, but it seems strange that we are
&gt; consulting the child to set a flag that should depends only on its
&gt; ancestors, as the name of the method indicates.

Right - looks like it might just have been a convenient place to calculate this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725517</commentid>
    <comment_count>12</comment_count>
      <attachid>419241</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-02-03 23:19:40 -0800</bug_when>
    <thetext>Created attachment 419241
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725779</commentid>
    <comment_count>13</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-02-04 13:45:46 -0800</bug_when>
    <thetext>Looks good! We can go ahead with this improvement, and will open a separate bug if needed for the nested case pointed out above when we get more clarification from the standards group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725794</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 14:16:45 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 419241 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725811</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 14:33:16 -0800</bug_when>
    <thetext>Committed r272390: &lt;https://trac.webkit.org/changeset/272390&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419241.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418945</attachid>
            <date>2021-02-01 17:34:08 -0800</date>
            <delta_ts>2021-02-01 23:14:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_220534.txt</filename>
            <type>text/plain</type>
            <size>6424</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMDJjZjNlOThhZGFjLi4wMDQ4OGNjZDM3MWQgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NCBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGV2ZW4gaWYgZWxlbWVu
dCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUzNA0KKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4tZXhwZWN0
ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRl
LWhpZGRlbi5odG1sOiBBZGRlZC4NCisNCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+DQogDQogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBp
ZiBVUkwgZXhpc3RzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1
c2FibGUtaW5zaWRlLWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uNjBhNDQ2YmNhYzA0DQotLS0gL2Rldi9udWxsDQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4
cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNCBAQA0KK1RoaXMgdGVzdHMgdGhhdCBhIGZvY3VzYWJs
ZSBvYmplY3QgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGlzIHN0aWxsIHZpc2libGUNCisNCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuDQorDQorDQorUEFTUyBidXR0b24gaXMgbnVsbA0KK1BBU1Mg
YnV0dG9uLmRlc2NyaXB0aW9uIGlzICdBWERlc2NyaXB0aW9uOiBCVVRUT04nDQorUEFTUyBidXR0
b24uZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246IEJVVFRPTicNCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KK2hpZGRlbiBidXR0b24NCit0
ZXN0DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUt
aW5zaWRlLWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUt
aW5zaWRlLWhpZGRlbi5odG1sDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw
MDAwLi4yNDM2MWZlMTYxYzgNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4uaHRtbA0KQEAgLTAsMCArMSwzNSBAQA0K
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4NCis8aHRtbD4N
Cis8aGVhZD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpz
Ij48L3NjcmlwdD4NCis8L2hlYWQ+DQorDQorPGJvZHkgaWQ9ImJvZHkiPg0KKw0KKzxkaXYgYXJp
YS1oaWRkZW49InRydWUiPg0KKyAgICA8cCBpZD0iYmFja2dyb3VuZENvbnRlbnQiPg0KKyAgICAg
ICAgPGRpdiByb2xlPSJidXR0b24iPmhpZGRlbiBidXR0b248L2Rpdj4NCisgICAgICAgIDxkaXYg
dGFiaW5kZXg9IjAiIGlkPSJidXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQlVUVE9O
Ij50ZXN0PC9kaXY+DQorICAgIDwvcD4NCis8L2Rpdj4NCisNCis8c2NyaXB0Pg0KKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGEgZm9jdXNhYmxlIG9iamVjdCBpbnNpZGUgYW4gYXJp
YS1oaWRkZW4gaXMgc3RpbGwgdmlzaWJsZSIpOw0KKw0KKyAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7DQorICAgICAgIHZhciBidXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJ1dHRvbiIpOw0KKyAgICAgICBzaG91bGRC
ZU51bGwoImJ1dHRvbiIpOw0KKw0KKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0
dG9uIikuZm9jdXMoKTsNCisgICAgICAgDQorICAgICAgIGJ1dHRvbiA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50Ow0KKyAgICAgICBzaG91bGRCZSgiYnV0dG9uLmRlc2Ny
aXB0aW9uIiwgIidBWERlc2NyaXB0aW9uOiBCVVRUT04nIik7DQorDQorICAgICAgIGJ1dHRvbiA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYnV0dG9uIik7
DQorICAgICAgIHNob3VsZEJlKCJidXR0b24uZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3JpcHRpb246
IEJVVFRPTiciKTsNCisgICAgfQ0KKzwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZjgzYzEyYmM4Li5hZTU3N2Y3MjdlOGMgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KQEAgLTEs
MyArMSwyMiBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4NCisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGV2ZW4gaWYg
ZWxlbWVudCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1ZQ0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUzNA0KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICBBUklBIHN0YXRlcyB0aGF0IGlmIGFuIGl0ZW0gaXMgZm9jdXNlZCwg
dGhlbiBpdCBzaG91bGQgb3ZlcnJpZGUgYXJpYS1oaWRkZW4gc3RhdHVzLg0KKyAgICAgICAgaHR0
cHM6Ly9naXRodWIuY29tL3czYy9hcmlhL3B1bGwvMTM4Ny9maWxlcw0KKw0KKyAgICAgICAgVGVz
dDogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRlbi5odG1sDQorDQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6
aXNOb2RlQXJpYVZpc2libGUpOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
QVhIaWRkZW4gY29uc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQpOg0KKw0KIDIwMjEtMDItMDEgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPg0KIA0KICAgICAgICAgW0xGQ11bSW50ZWdy
YXRpb25dIEZpeCBlZGl0aW5nL2V4ZWNDb21tYW5kL3ByaW1pdGl2ZS12YWx1ZS5odG1sDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDAx
MGQ5NTAwNjhmMS4uZGZmNjExNTkzZTE4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcA0KQEAgLTMzNDksNyArMzM0OSwxMCBAQCBib29sIGlz
Tm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpDQogICAgIGlmICghbm9kZSkNCiAgICAgICAgIHJl
dHVybiBmYWxzZTsNCiANCi0gICAgLy8gQVJJQSBOb2RlIHZpc2liaWxpdHkgaXMgY29udHJvbGxl
ZCBieSBhcmlhLWhpZGRlbg0KKyAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5mb2N1c2VkKCkpDQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisNCisg
ICAgICAgIC8vIEFSSUEgTm9kZSB2aXNpYmlsaXR5IGlzIGNvbnRyb2xsZWQgYnkgYXJpYS1oaWRk
ZW4NCiAgICAgLy8gIDEpIGlmIGFyaWEtaGlkZGVuPXRydWUsIHRoZSB3aG9sZSBzdWJ0cmVlIGlz
IGhpZGRlbg0KICAgICAvLyAgMikgaWYgYXJpYS1oaWRkZW49ZmFsc2UsIGFuZCB0aGUgb2JqZWN0
IGlzIHJlbmRlcmVkLCB0aGVyZSdzIG5vIGVmZmVjdA0KICAgICAvLyAgMykgaWYgYXJpYS1oaWRk
ZW49ZmFsc2UsIGFuZCB0aGUgb2JqZWN0IGlzIE5PVCByZW5kZXJlZCwgdGhlbiBpdCBtdXN0IGhh
dmUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcA0KaW5kZXggOWY3ZjdhN2NjNmNlLi4wNjY4OWEyOTJiNGQgMTAwNjQ0DQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
DQpAQCAtMzE5Nyw4ICszMTk3LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNz
aWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpIGNvbnN0DQogLy8gaHR0cDovL3d3dy53My5vcmcv
VFIvd2FpLWFyaWEvdGVybXMjZGVmX2hpZGRlbg0KIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNBWEhpZGRlbigpIGNvbnN0DQogew0KKyAgICBpZiAoaXNGb2N1c2VkKCkpDQorICAgICAgICBy
ZXR1cm4gZmFsc2U7DQorICAgIA0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2Vz
dG9yPEFjY2Vzc2liaWxpdHlPYmplY3Q+KCp0aGlzLCB0cnVlLCBbXSAoY29uc3QgQWNjZXNzaWJp
bGl0eU9iamVjdCYgb2JqZWN0KSB7DQotICAgICAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uob2JqZWN0LmdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIpLCAidHJ1ZSIp
Ow0KKyAgICAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG9iamVjdC5n
ZXRBdHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiKSAmJiAhb2JqZWN0LmlzRm9jdXNl
ZCgpOw0KICAgICB9KSAhPSBudWxscHRyOw0KIH0NCiANCkBAIC0zNTY3LDcgKzM1NzAsNyBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hp
bGQoQVhDb3JlT2JqZWN0KiBjaGlsZA0KICAgICANCiAgICAgQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZEZyb21QYXJlbnREYXRhIHJlc3VsdCA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50
RGF0YSh0aGlzKTsNCiAgICAgaWYgKCFtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzTnVsbCgp
KSB7DQotICAgICAgICByZXN1bHQuaXNBWEhpZGRlbiA9IG1faXNJZ25vcmVkRnJvbVBhcmVudERh
dGEuaXNBWEhpZGRlbiB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjaGlsZC0+Z2V0
QXR0cmlidXRlKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIik7DQorICAgICAgICByZXN1bHQuaXNB
WEhpZGRlbiA9IChtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY2hpbGQtPmdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0
dHIpLCAidHJ1ZSIpKSAmJiAhY2hpbGQtPmlzRm9jdXNlZCgpOw0KICAgICAgICAgcmVzdWx0Lmlz
UHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgPSBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRh
LmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgfHwgYXJpYVJvbGVIYXNQcmVzZW50YXRp
b25hbENoaWxkcmVuKCk7DQogICAgICAgICByZXN1bHQuaXNEZXNjZW5kYW50T2ZCYXJyZW5QYXJl
bnQgPSBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzRGVzY2VuZGFudE9mQmFycmVuUGFyZW50
IHx8ICFjYW5IYXZlQ2hpbGRyZW4oKTsNCiAgICAgfSBlbHNlIHsNCg==
</data>
<flag name="commit-queue"
          id="437060"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418964</attachid>
            <date>2021-02-01 23:14:28 -0800</date>
            <delta_ts>2021-02-01 23:15:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_220534.txt</filename>
            <type>text/plain</type>
            <size>6464</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMDJjZjNlOThhZGFjLi4wMDQ4OGNjZDM3MWQgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NCBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGV2ZW4gaWYgZWxlbWVu
dCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUzNA0KKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4tZXhwZWN0
ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRl
LWhpZGRlbi5odG1sOiBBZGRlZC4NCisNCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+DQogDQogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBp
ZiBVUkwgZXhpc3RzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1
c2FibGUtaW5zaWRlLWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uOTM4YmU4ODA3NTBlDQotLS0gL2Rldi9udWxsDQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4
cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNCBAQA0KK1RoaXMgdGVzdHMgdGhhdCBhIGZvY3VzYWJs
ZSBvYmplY3QgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGlzIHN0aWxsIHZpc2libGUNCisNCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuDQorDQorDQorUEFTUyAhYnV0dG9uIHx8ICFidXR0b24uaXNW
YWxpZCBpcyB0cnVlDQorUEFTUyBidXR0b24uZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246
IEJVVFRPTicNCitQQVNTIGJ1dHRvbi5kZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogQlVU
VE9OJw0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUNCisNCitURVNUIENPTVBMRVRF
DQoraGlkZGVuIGJ1dHRvbg0KK3Rlc3QNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjE0NjM2NjM1ZDAzZg0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRlbi5odG1s
DQpAQCAtMCwwICsxLDM1IEBADQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNj
ZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCisNCis8Ym9keSBpZD0i
Ym9keSI+DQorDQorPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSI+DQorICAgIDxwIGlkPSJiYWNrZ3Jv
dW5kQ29udGVudCI+DQorICAgICAgICA8ZGl2IHJvbGU9ImJ1dHRvbiI+aGlkZGVuIGJ1dHRvbjwv
ZGl2Pg0KKyAgICAgICAgPGRpdiB0YWJpbmRleD0iMCIgaWQ9ImJ1dHRvbiIgcm9sZT0iYnV0dG9u
IiBhcmlhLWxhYmVsPSJCVVRUT04iPnRlc3Q8L2Rpdj4NCisgICAgPC9wPg0KKzwvZGl2Pg0KKw0K
KzxzY3JpcHQ+DQorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYSBmb2N1c2FibGUg
b2JqZWN0IGluc2lkZSBhbiBhcmlhLWhpZGRlbiBpcyBzdGlsbCB2aXNpYmxlIik7DQorDQorICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsNCisgICAgICAgdmFyIGJ1dHRv
biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYnV0dG9u
Iik7DQorICAgICAgIHNob3VsZEJlVHJ1ZSgiIWJ1dHRvbiB8fCAhYnV0dG9uLmlzVmFsaWQiKTsN
CisNCisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpLmZvY3VzKCk7DQor
ICAgICAgIA0KKyAgICAgICBidXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsNCisgICAgICAgc2hvdWxkQmUoImJ1dHRvbi5kZXNjcmlwdGlvbiIsICInQVhEZXNj
cmlwdGlvbjogQlVUVE9OJyIpOw0KKw0KKyAgICAgICBidXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJ1dHRvbiIpOw0KKyAgICAgICBzaG91bGRC
ZSgiYnV0dG9uLmRlc2NyaXB0aW9uIiwgIidBWERlc2NyaXB0aW9uOiBCVVRUT04nIik7DQorICAg
IH0NCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGUwYmY4M2Mx
MmJjOC4uYWU1NzdmNzI3ZThjIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
DQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMjIgQEANCisyMDIx
LTAyLTAxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAg
ICBBWDogZXhwb3NlIGZvY3VzYWJsZSBlbGVtZW50cyBldmVuIGlmIGVsZW1lbnQgb3IgYW5jZXN0
b3IgaGFzIGFyaWEtaGlkZGVuPXRydWUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjA1MzQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTg2NTg3
NT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
QVJJQSBzdGF0ZXMgdGhhdCBpZiBhbiBpdGVtIGlzIGZvY3VzZWQsIHRoZW4gaXQgc2hvdWxkIG92
ZXJyaWRlIGFyaWEtaGlkZGVuIHN0YXR1cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvYXJpYS9wdWxsLzEzODcvZmlsZXMNCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
Zm9jdXNhYmxlLWluc2lkZS1oaWRkZW4uaHRtbA0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OmlzTm9kZUFyaWFWaXNpYmxl
KToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoNCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FYSGlkZGVuIGNvbnN0KToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRJc0lnbm9yZWRGcm9t
UGFyZW50RGF0YUZvckNoaWxkKToNCisNCiAyMDIxLTAyLTAxICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBGaXggZWRpdGlu
Zy9leGVjQ29tbWFuZC9wcmltaXRpdmUtdmFsdWUuaHRtbA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQppbmRleCAwMTBkOTUwMDY4ZjEuLmRmZjYx
MTU5M2UxOCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHANCkBAIC0zMzQ5LDcgKzMzNDksMTAgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShO
b2RlKiBub2RlKQ0KICAgICBpZiAoIW5vZGUpDQogICAgICAgICByZXR1cm4gZmFsc2U7DQogDQot
ICAgIC8vIEFSSUEgTm9kZSB2aXNpYmlsaXR5IGlzIGNvbnRyb2xsZWQgYnkgYXJpYS1oaWRkZW4N
CisgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSku
Zm9jdXNlZCgpKQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorDQorICAgICAgICAvLyBBUklBIE5v
ZGUgdmlzaWJpbGl0eSBpcyBjb250cm9sbGVkIGJ5IGFyaWEtaGlkZGVuDQogICAgIC8vICAxKSBp
ZiBhcmlhLWhpZGRlbj10cnVlLCB0aGUgd2hvbGUgc3VidHJlZSBpcyBoaWRkZW4NCiAgICAgLy8g
IDIpIGlmIGFyaWEtaGlkZGVuPWZhbHNlLCBhbmQgdGhlIG9iamVjdCBpcyByZW5kZXJlZCwgdGhl
cmUncyBubyBlZmZlY3QNCiAgICAgLy8gIDMpIGlmIGFyaWEtaGlkZGVuPWZhbHNlLCBhbmQgdGhl
IG9iamVjdCBpcyBOT1QgcmVuZGVyZWQsIHRoZW4gaXQgbXVzdCBoYXZlDQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHANCmluZGV4
IDlmN2Y3YTdjYzZjZS4uMDY2ODlhMjkyYjRkIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KQEAgLTMxOTcsOCArMzE5
NywxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWRC
eURlZmF1bHQoKSBjb25zdA0KIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhL3Rlcm1z
I2RlZl9oaWRkZW4NCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4oKSBjb25z
dA0KIHsNCisgICAgaWYgKGlzRm9jdXNlZCgpKQ0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAg
ICANCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PigqdGhpcywgdHJ1ZSwgW10gKGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVj
dCkgew0KLSAgICAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG9iamVj
dC5nZXRBdHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiKTsNCisgICAgICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShvYmplY3QuZ2V0QXR0cmlidXRlKGFyaWFf
aGlkZGVuQXR0ciksICJ0cnVlIikgJiYgIW9iamVjdC5pc0ZvY3VzZWQoKTsNCiAgICAgfSkgIT0g
bnVsbHB0cjsNCiB9DQogDQpAQCAtMzU2Nyw3ICszNTcwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxkKEFYQ29yZU9iamVjdCog
Y2hpbGQNCiAgICAgDQogICAgIEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSBy
ZXN1bHQgPSBBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkRnJvbVBhcmVudERhdGEodGhpcyk7DQogICAg
IGlmICghbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0YS5pc051bGwoKSkgew0KLSAgICAgICAgcmVz
dWx0LmlzQVhIaWRkZW4gPSBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gfHwg
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY2hpbGQtPmdldEF0dHJpYnV0ZShhcmlhX2hp
ZGRlbkF0dHIpLCAidHJ1ZSIpOw0KKyAgICAgICAgcmVzdWx0LmlzQVhIaWRkZW4gPSAobV9pc0ln
bm9yZWRGcm9tUGFyZW50RGF0YS5pc0FYSGlkZGVuIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGNoaWxkLT5nZXRBdHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiKSkgJiYg
IWNoaWxkLT5pc0ZvY3VzZWQoKTsNCiAgICAgICAgIHJlc3VsdC5pc1ByZXNlbnRhdGlvbmFsQ2hp
bGRPZkFyaWFSb2xlID0gbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0YS5pc1ByZXNlbnRhdGlvbmFs
Q2hpbGRPZkFyaWFSb2xlIHx8IGFyaWFSb2xlSGFzUHJlc2VudGF0aW9uYWxDaGlsZHJlbigpOw0K
ICAgICAgICAgcmVzdWx0LmlzRGVzY2VuZGFudE9mQmFycmVuUGFyZW50ID0gbV9pc0lnbm9yZWRG
cm9tUGFyZW50RGF0YS5pc0Rlc2NlbmRhbnRPZkJhcnJlblBhcmVudCB8fCAhY2FuSGF2ZUNoaWxk
cmVuKCk7DQogICAgIH0gZWxzZSB7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418965</attachid>
            <date>2021-02-01 23:15:12 -0800</date>
            <delta_ts>2021-02-03 23:19:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_220534.txt</filename>
            <type>text/plain</type>
            <size>6376</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMDJjZjNlOThhZGFjLi4wMDQ4OGNjZDM3MWQgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NCBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGV2ZW4gaWYgZWxlbWVu
dCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUzNA0KKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4tZXhwZWN0
ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRl
LWhpZGRlbi5odG1sOiBBZGRlZC4NCisNCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+DQogDQogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBp
ZiBVUkwgZXhpc3RzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1
c2FibGUtaW5zaWRlLWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uOTM4YmU4ODA3NTBlDQotLS0gL2Rldi9udWxsDQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4
cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNCBAQA0KK1RoaXMgdGVzdHMgdGhhdCBhIGZvY3VzYWJs
ZSBvYmplY3QgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGlzIHN0aWxsIHZpc2libGUNCisNCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuDQorDQorDQorUEFTUyAhYnV0dG9uIHx8ICFidXR0b24uaXNW
YWxpZCBpcyB0cnVlDQorUEFTUyBidXR0b24uZGVzY3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246
IEJVVFRPTicNCitQQVNTIGJ1dHRvbi5kZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogQlVU
VE9OJw0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUNCisNCitURVNUIENPTVBMRVRF
DQoraGlkZGVuIGJ1dHRvbg0KK3Rlc3QNCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLmh0bWwNCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjE0NjM2NjM1ZDAzZg0KLS0tIC9kZXYvbnVsbA0KKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRlbi5odG1s
DQpAQCAtMCwwICsxLDM1IEBADQorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNj
ZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCisNCis8Ym9keSBpZD0i
Ym9keSI+DQorDQorPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSI+DQorICAgIDxwIGlkPSJiYWNrZ3Jv
dW5kQ29udGVudCI+DQorICAgICAgICA8ZGl2IHJvbGU9ImJ1dHRvbiI+aGlkZGVuIGJ1dHRvbjwv
ZGl2Pg0KKyAgICAgICAgPGRpdiB0YWJpbmRleD0iMCIgaWQ9ImJ1dHRvbiIgcm9sZT0iYnV0dG9u
IiBhcmlhLWxhYmVsPSJCVVRUT04iPnRlc3Q8L2Rpdj4NCisgICAgPC9wPg0KKzwvZGl2Pg0KKw0K
KzxzY3JpcHQ+DQorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYSBmb2N1c2FibGUg
b2JqZWN0IGluc2lkZSBhbiBhcmlhLWhpZGRlbiBpcyBzdGlsbCB2aXNpYmxlIik7DQorDQorICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsNCisgICAgICAgdmFyIGJ1dHRv
biA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYnV0dG9u
Iik7DQorICAgICAgIHNob3VsZEJlVHJ1ZSgiIWJ1dHRvbiB8fCAhYnV0dG9uLmlzVmFsaWQiKTsN
CisNCisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpLmZvY3VzKCk7DQor
ICAgICAgIA0KKyAgICAgICBidXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsNCisgICAgICAgc2hvdWxkQmUoImJ1dHRvbi5kZXNjcmlwdGlvbiIsICInQVhEZXNj
cmlwdGlvbjogQlVUVE9OJyIpOw0KKw0KKyAgICAgICBidXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJ1dHRvbiIpOw0KKyAgICAgICBzaG91bGRC
ZSgiYnV0dG9uLmRlc2NyaXB0aW9uIiwgIidBWERlc2NyaXB0aW9uOiBCVVRUT04nIik7DQorICAg
IH0NCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IGUwYmY4M2Mx
MmJjOC4uYWU1NzdmNzI3ZThjIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
DQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMjIgQEANCisyMDIx
LTAyLTAxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAg
ICBBWDogZXhwb3NlIGZvY3VzYWJsZSBlbGVtZW50cyBldmVuIGlmIGVsZW1lbnQgb3IgYW5jZXN0
b3IgaGFzIGFyaWEtaGlkZGVuPXRydWUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjA1MzQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTg2NTg3
NT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
QVJJQSBzdGF0ZXMgdGhhdCBpZiBhbiBpdGVtIGlzIGZvY3VzZWQsIHRoZW4gaXQgc2hvdWxkIG92
ZXJyaWRlIGFyaWEtaGlkZGVuIHN0YXR1cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvYXJpYS9wdWxsLzEzODcvZmlsZXMNCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
Zm9jdXNhYmxlLWluc2lkZS1oaWRkZW4uaHRtbA0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OmlzTm9kZUFyaWFWaXNpYmxl
KToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoNCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FYSGlkZGVuIGNvbnN0KToN
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRJc0lnbm9yZWRGcm9t
UGFyZW50RGF0YUZvckNoaWxkKToNCisNCiAyMDIxLTAyLTAxICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBGaXggZWRpdGlu
Zy9leGVjQ29tbWFuZC9wcmltaXRpdmUtdmFsdWUuaHRtbA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQppbmRleCAwMTBkOTUwMDY4ZjEuLjE3Nzk3
ZjRhODFiMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHANCkBAIC0zMzQ5LDYgKzMzNDksMTAgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShO
b2RlKiBub2RlKQ0KICAgICBpZiAoIW5vZGUpDQogICAgICAgICByZXR1cm4gZmFsc2U7DQogDQor
ICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgZm9jdXNlZCwgaXQgc2hvdWxkIG5vdCBiZSBoaWRkZW4u
DQorICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
LmZvY3VzZWQoKSkNCisgICAgICAgIHJldHVybiB0cnVlOw0KKw0KICAgICAvLyBBUklBIE5vZGUg
dmlzaWJpbGl0eSBpcyBjb250cm9sbGVkIGJ5IGFyaWEtaGlkZGVuDQogICAgIC8vICAxKSBpZiBh
cmlhLWhpZGRlbj10cnVlLCB0aGUgd2hvbGUgc3VidHJlZSBpcyBoaWRkZW4NCiAgICAgLy8gIDIp
IGlmIGFyaWEtaGlkZGVuPWZhbHNlLCBhbmQgdGhlIG9iamVjdCBpcyByZW5kZXJlZCwgdGhlcmUn
cyBubyBlZmZlY3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcA0KaW5kZXggOWY3ZjdhN2NjNmNlLi4wNjY4OWEyOTJiNGQgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwDQpAQCAtMzE5Nyw4ICszMTk3LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVmYXVsdCgpIGNvbnN0DQogLy8gaHR0cDovL3d3
dy53My5vcmcvVFIvd2FpLWFyaWEvdGVybXMjZGVmX2hpZGRlbg0KIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNBWEhpZGRlbigpIGNvbnN0DQogew0KKyAgICBpZiAoaXNGb2N1c2VkKCkpDQor
ICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgIA0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6
ZmluZEFuY2VzdG9yPEFjY2Vzc2liaWxpdHlPYmplY3Q+KCp0aGlzLCB0cnVlLCBbXSAoY29uc3Qg
QWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KSB7DQotICAgICAgICByZXR1cm4gZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2JqZWN0LmdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIp
LCAidHJ1ZSIpOw0KKyAgICAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KG9iamVjdC5nZXRBdHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiKSAmJiAhb2JqZWN0
LmlzRm9jdXNlZCgpOw0KICAgICB9KSAhPSBudWxscHRyOw0KIH0NCiANCkBAIC0zNTY3LDcgKzM1
NzAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnRE
YXRhRm9yQ2hpbGQoQVhDb3JlT2JqZWN0KiBjaGlsZA0KICAgICANCiAgICAgQWNjZXNzaWJpbGl0
eUlzSWdub3JlZEZyb21QYXJlbnREYXRhIHJlc3VsdCA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRG
cm9tUGFyZW50RGF0YSh0aGlzKTsNCiAgICAgaWYgKCFtX2lzSWdub3JlZEZyb21QYXJlbnREYXRh
LmlzTnVsbCgpKSB7DQotICAgICAgICByZXN1bHQuaXNBWEhpZGRlbiA9IG1faXNJZ25vcmVkRnJv
bVBhcmVudERhdGEuaXNBWEhpZGRlbiB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShj
aGlsZC0+Z2V0QXR0cmlidXRlKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIik7DQorICAgICAgICBy
ZXN1bHQuaXNBWEhpZGRlbiA9IChtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4g
fHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY2hpbGQtPmdldEF0dHJpYnV0ZShhcmlh
X2hpZGRlbkF0dHIpLCAidHJ1ZSIpKSAmJiAhY2hpbGQtPmlzRm9jdXNlZCgpOw0KICAgICAgICAg
cmVzdWx0LmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgPSBtX2lzSWdub3JlZEZyb21Q
YXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgfHwgYXJpYVJvbGVIYXNQ
cmVzZW50YXRpb25hbENoaWxkcmVuKCk7DQogICAgICAgICByZXN1bHQuaXNEZXNjZW5kYW50T2ZC
YXJyZW5QYXJlbnQgPSBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzRGVzY2VuZGFudE9mQmFy
cmVuUGFyZW50IHx8ICFjYW5IYXZlQ2hpbGRyZW4oKTsNCiAgICAgfSBlbHNlIHsNCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419241</attachid>
            <date>2021-02-03 23:19:40 -0800</date>
            <delta_ts>2021-02-04 14:33:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_220534.txt</filename>
            <type>text/plain</type>
            <size>8971</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMDJjZjNlOThhZGFjLi4wMDQ4OGNjZDM3MWQgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NCBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGV2ZW4gaWYgZWxlbWVu
dCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUzNA0KKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4tZXhwZWN0
ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRl
LWhpZGRlbi5odG1sOiBBZGRlZC4NCisNCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+DQogDQogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBp
ZiBVUkwgZXhpc3RzDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mb2N1
c2FibGUtaW5zaWRlLWhpZGRlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4cGVjdGVkLnR4dA0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uYmI0Mzc4M2I2YmZiDQotLS0gL2Rldi9udWxsDQor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1pbnNpZGUtaGlkZGVuLWV4
cGVjdGVkLnR4dA0KQEAgLTAsMCArMSwxNSBAQA0KK1RoaXMgdGVzdHMgdGhhdCBhIGZvY3VzYWJs
ZSBvYmplY3QgaW5zaWRlIGFuIGFyaWEtaGlkZGVuIGlzIGluIHRoZSBoaWVhcmFyY2h5IG9ubHkg
YWZ0ZXIgaXQgZ2FpbnMgZm9jdXMuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0K
Kw0KK1BBU1MgIWJ1dHRvbiB8fCAhYnV0dG9uLmlzVmFsaWQgaXMgdHJ1ZQ0KK1BBU1MgYnV0dG9u
LmRlc2NyaXB0aW9uIGlzICdBWERlc2NyaXB0aW9uOiBCVVRUT04nDQorUEFTUyBidXR0b24uZGVz
Y3JpcHRpb24gaXMgJ0FYRGVzY3JpcHRpb246IEJVVFRPTicNCitQQVNTICFidXR0b24gfHwgIWJ1
dHRvbi5pc1ZhbGlkIGlzIHRydWUNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQor
DQorVEVTVCBDT01QTEVURQ0KK2ENCit0ZXN0DQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRlbi5odG1sDQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi5hYmY3NDE5ZTNkM2UNCi0tLSAvZGV2L251bGwN
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZm9jdXNhYmxlLWluc2lkZS1oaWRkZW4u
aHRtbA0KQEAgLTAsMCArMSw1MCBAQA0KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4NCis8aHRtbD4NCis8aGVhZD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorDQorPGJvZHkg
aWQ9ImJvZHkiPg0KKw0KKzxkaXYgaWQ9Im90aGVyYnV0dG9uIiB0YWJpbmRleD0iMCI+YTwvZGl2
Pg0KKw0KKzxkaXYgYXJpYS1oaWRkZW49InRydWUiPg0KKyAgICA8cCBpZD0iYmFja2dyb3VuZENv
bnRlbnQiPg0KKyAgICAgICAgPGRpdiB0YWJpbmRleD0iMCIgaWQ9ImJ1dHRvbiIgcm9sZT0iYnV0
dG9uIiBhcmlhLWxhYmVsPSJCVVRUT04iPnRlc3Q8L2Rpdj4NCisgICAgPC9wPg0KKzwvZGl2Pg0K
Kw0KKzxzY3JpcHQ+DQorICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYSBmb2N1c2Fi
bGUgb2JqZWN0IGluc2lkZSBhbiBhcmlhLWhpZGRlbiBpcyBpbiB0aGUgaGllYXJhcmNoeSBvbmx5
IGFmdGVyIGl0IGdhaW5zIGZvY3VzLiIpOw0KKw0KKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7DQorICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKw0KKyAgICAg
ICAvLyBCeSBkZWZhdWx0LCBpZiBpdCBkb2Vzbid0IGhhdmUgZm9jdXMgaXQgc2hvdWxkIGJlIGhp
ZGRlbiBiZWNhdXNlIGl0cyBpbnNpZGUgYXJpYS1oaWRkZW4uDQorICAgICAgIHZhciBidXR0b24g
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImJ1dHRvbiIp
Ow0KKyAgICAgICBzaG91bGRCZVRydWUoIiFidXR0b24gfHwgIWJ1dHRvbi5pc1ZhbGlkIik7DQor
DQorICAgICAgIC8vIEdhaW4gZm9jdXMgYW5kIHRoaXMgZWxlbWVudCBzaG91bGQgYmUgdmlzaWJs
ZSB0byBBWC4NCisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpLmZvY3Vz
KCk7DQorDQorICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAgICBidXR0
b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsNCisgICAgICAgICAg
IHNob3VsZEJlKCJidXR0b24uZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3JpcHRpb246IEJVVFRPTici
KTsNCisNCisgICAgICAgICAgIGJ1dHRvbiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgiYnV0dG9uIik7DQorICAgICAgICAgICBzaG91bGRCZSgiYnV0dG9u
LmRlc2NyaXB0aW9uIiwgIidBWERlc2NyaXB0aW9uOiBCVVRUT04nIik7DQorDQorICAgICAgICAg
ICAvLyBMb3NlIGZvY3VzIGFuZCB0aGlzIGVsZW1lbnQgc2hvdWxkIGJlIGhpZGRlbiBhZ2Fpbi4N
CisgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdGhlcmJ1dHRvbiIpLmZvY3Vz
KCk7DQorICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KKyAgICAgICAgICAgICAg
IGJ1dHRvbiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
YnV0dG9uIik7DQorICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIhYnV0dG9uIHx8ICFidXR0
b24uaXNWYWxpZCIpOw0KKyAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOw0KKyAgICAgICAg
ICAgfSwgMSk7DQorICAgICAgICB9LCAxKTsgICANCisgICAgfQ0KKzwvc2NyaXB0Pg0KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+
DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZw0KaW5kZXggZTBiZjgzYzEyYmM4Li5hZTU3N2Y3MjdlOGMgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyMiBAQA0KKzIwMjEtMDItMDEgIENocmlzIEZsZWl6YWNo
ICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBleHBvc2UgZm9jdXNhYmxl
IGVsZW1lbnRzIGV2ZW4gaWYgZWxlbWVudCBvciBhbmNlc3RvciBoYXMgYXJpYS1oaWRkZW49dHJ1
ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDUz
NA0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODY1ODc1Pg0KKw0KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICBBUklBIHN0YXRlcyB0aGF0IGlmIGFu
IGl0ZW0gaXMgZm9jdXNlZCwgdGhlbiBpdCBzaG91bGQgb3ZlcnJpZGUgYXJpYS1oaWRkZW4gc3Rh
dHVzLg0KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hcmlhL3B1bGwvMTM4Ny9maWxl
cw0KKw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9mb2N1c2FibGUtaW5zaWRlLWhpZGRl
bi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQor
ICAgICAgICAoV2ViQ29yZTo6aXNOb2RlQXJpYVZpc2libGUpOg0KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmlzQVhIaWRkZW4gY29uc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQpOg0K
Kw0KIDIwMjEtMDItMDEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPg0KIA0KICAg
ICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEZpeCBlZGl0aW5nL2V4ZWNDb21tYW5kL3ByaW1pdGl2
ZS12YWx1ZS5odG1sDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHANCmluZGV4IDAxMGQ5NTAwNjhmMS4uNjViYmYwM2FkYzU1IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcA0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcA0KQEAgLTE4MjcsNiAr
MTgyNywxMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQ0KICAgICAgICAgb2JqLT5ub3RpZnlJZklnbm9yZWRWYWx1ZUNoYW5n
ZWQoKTsNCiB9DQogDQordm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoTm9k
ZSogbm9kZSkNCit7DQorICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQobm9k
ZSkpDQorICAgICAgICBvYmotPm5vdGlmeUlmSWdub3JlZFZhbHVlQ2hhbmdlZCgpOw0KK30NCisN
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnN0YXJ0Q2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
c1VudGlsVHJlZU11dGF0ZXMoKQ0KIHsNCiAgICAgaWYgKCFtX2NvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGUpDQpAQCAtMzE1MSw4ICszMTU3LDEyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVy
Zm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQ0KICAgICAgICAgaGFuZGxlQXR0cmlidXRlQ2hhbmdl
KGRlZmVycmVkQXR0cmlidXRlQ2hhbmdlQ29udGV4dC52YWx1ZSwgZGVmZXJyZWRBdHRyaWJ1dGVD
aGFuZ2VDb250ZXh0LmtleSk7DQogICAgIG1fZGVmZXJyZWRBdHRyaWJ1dGVDaGFuZ2UuY2xlYXIo
KTsNCiAgICAgDQotICAgIGZvciAoYXV0byYgZGVmZXJyZWRGb2N1c2VkQ2hhbmdlQ29udGV4dCA6
IG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZSkNCisgICAgZm9yIChhdXRvJiBkZWZlcnJlZEZv
Y3VzZWRDaGFuZ2VDb250ZXh0IDogbV9kZWZlcnJlZEZvY3VzZWROb2RlQ2hhbmdlKSB7DQogICAg
ICAgICBoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChkZWZlcnJlZEZvY3VzZWRDaGFuZ2VD
b250ZXh0LmZpcnN0LCBkZWZlcnJlZEZvY3VzZWRDaGFuZ2VDb250ZXh0LnNlY29uZCk7DQorICAg
ICAgICAvLyBSZWNvbXB1dGUgaXNJZ25vcmVkIGFmdGVyIGEgZm9jdXMgY2hhbmdlIGluIGNhc2Ug
dGhhdCBhbHRlcmVkIHZpc2liaWxpdHkuDQorICAgICAgICByZWNvbXB1dGVJc0lnbm9yZWQoZGVm
ZXJyZWRGb2N1c2VkQ2hhbmdlQ29udGV4dC5maXJzdCk7DQorICAgICAgICByZWNvbXB1dGVJc0ln
bm9yZWQoZGVmZXJyZWRGb2N1c2VkQ2hhbmdlQ29udGV4dC5zZWNvbmQpOw0KKyAgICB9DQogICAg
IG1fZGVmZXJyZWRGb2N1c2VkTm9kZUNoYW5nZS5jbGVhcigpOw0KIA0KICAgICBmb3IgKGF1dG8m
IGRlZmVycmVkTW9kYWxDaGFuZ2VkRWxlbWVudCA6IG1fZGVmZXJyZWRNb2RhbENoYW5nZWRMaXN0
KQ0KQEAgLTMzNDksNiArMzM1OSwxMCBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5v
ZGUpDQogICAgIGlmICghbm9kZSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiANCisgICAgLy8g
SWYgYW4gZWxlbWVudCBpcyBmb2N1c2VkLCBpdCBzaG91bGQgbm90IGJlIGhpZGRlbi4NCisgICAg
aWYgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuZm9jdXNl
ZCgpKQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorDQogICAgIC8vIEFSSUEgTm9kZSB2aXNpYmls
aXR5IGlzIGNvbnRyb2xsZWQgYnkgYXJpYS1oaWRkZW4NCiAgICAgLy8gIDEpIGlmIGFyaWEtaGlk
ZGVuPXRydWUsIHRoZSB3aG9sZSBzdWJ0cmVlIGlzIGhpZGRlbg0KICAgICAvLyAgMikgaWYgYXJp
YS1oaWRkZW49ZmFsc2UsIGFuZCB0aGUgb2JqZWN0IGlzIHJlbmRlcmVkLCB0aGVyZSdzIG5vIGVm
ZmVjdA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgNCmlu
ZGV4IDJiZTQxYjFmZGE5MC4uOWYwMjA4ZjRlNDU3IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oDQpAQCAtMTkzLDcgKzE5Myw4IEBAIHB1YmxpYzoN
CiAgICAgTm9kZSogbW9kYWxOb2RlKCk7DQogDQogICAgIHZvaWQgZGVmZXJBdHRyaWJ1dGVDaGFu
Z2VJZk5lZWRlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOw0KLSAgICB2b2lkIHJl
Y29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKTsNCisgICAgdm9pZCByZWNv
bXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0Kik7DQorICAgIHZvaWQgcmVjb21wdXRlSXNJZ25v
cmVkKE5vZGUqKTsNCiANCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpDQogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUFjY2Vzc2liaWxpdHkoKTsNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcA0KaW5kZXgg
OWY3ZjdhN2NjNmNlLi4wNjY4OWEyOTJiNGQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwDQpAQCAtMzE5Nyw4ICszMTk3
LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5
RGVmYXVsdCgpIGNvbnN0DQogLy8gaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvdGVybXMj
ZGVmX2hpZGRlbg0KIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNBWEhpZGRlbigpIGNvbnN0
DQogew0KKyAgICBpZiAoaXNGb2N1c2VkKCkpDQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAg
IA0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yPEFjY2Vzc2liaWxpdHlP
YmplY3Q+KCp0aGlzLCB0cnVlLCBbXSAoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0
KSB7DQotICAgICAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2JqZWN0
LmdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIpLCAidHJ1ZSIpOw0KKyAgICAgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG9iamVjdC5nZXRBdHRyaWJ1dGUoYXJpYV9o
aWRkZW5BdHRyKSwgInRydWUiKSAmJiAhb2JqZWN0LmlzRm9jdXNlZCgpOw0KICAgICB9KSAhPSBu
dWxscHRyOw0KIH0NCiANCkBAIC0zNTY3LDcgKzM1NzAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQoQVhDb3JlT2JqZWN0KiBj
aGlsZA0KICAgICANCiAgICAgQWNjZXNzaWJpbGl0eUlzSWdub3JlZEZyb21QYXJlbnREYXRhIHJl
c3VsdCA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSh0aGlzKTsNCiAgICAg
aWYgKCFtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzTnVsbCgpKSB7DQotICAgICAgICByZXN1
bHQuaXNBWEhpZGRlbiA9IG1faXNJZ25vcmVkRnJvbVBhcmVudERhdGEuaXNBWEhpZGRlbiB8fCBl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjaGlsZC0+Z2V0QXR0cmlidXRlKGFyaWFfaGlk
ZGVuQXR0ciksICJ0cnVlIik7DQorICAgICAgICByZXN1bHQuaXNBWEhpZGRlbiA9IChtX2lzSWdu
b3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoY2hpbGQtPmdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIpLCAidHJ1ZSIpKSAmJiAh
Y2hpbGQtPmlzRm9jdXNlZCgpOw0KICAgICAgICAgcmVzdWx0LmlzUHJlc2VudGF0aW9uYWxDaGls
ZE9mQXJpYVJvbGUgPSBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxD
aGlsZE9mQXJpYVJvbGUgfHwgYXJpYVJvbGVIYXNQcmVzZW50YXRpb25hbENoaWxkcmVuKCk7DQog
ICAgICAgICByZXN1bHQuaXNEZXNjZW5kYW50T2ZCYXJyZW5QYXJlbnQgPSBtX2lzSWdub3JlZEZy
b21QYXJlbnREYXRhLmlzRGVzY2VuZGFudE9mQmFycmVuUGFyZW50IHx8ICFjYW5IYXZlQ2hpbGRy
ZW4oKTsNCiAgICAgfSBlbHNlIHsNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>