<?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>224259</bug_id>
          
          <creation_ts>2021-04-06 19:34:47 -0700</creation_ts>
          <short_desc>Nullptr dereference in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline</short_desc>
          <delta_ts>2021-04-07 22:21:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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="Julian Gonzalez">julian_a_gonzalez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747737</commentid>
    <comment_count>0</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-06 19:34:47 -0700</bug_when>
    <thetext>e.g.

    #0 0x114f9e976 in WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(WebCore::ReplaceSelectionCommand::InsertedNodes&amp;)
    #1 0x114faf0c0 in WebCore::ReplaceSelectionCommand::doApply()
    #2 0x114d83d80 in WebCore::CompositeEditCommand::apply()
    #3 0x114f2b7ab in WebCore::executeInsertFragment(WebCore::Frame&amp;, WTF::Ref&lt;WebCore::DocumentFragment, WTF::RawPtrTraits&lt;WebCore::DocumentFragment&gt; &gt;&amp;&amp;)
    #4 0x114f207d5 in WebCore::executeInsertHTML(WebCore::Frame&amp;, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&amp;)
    #5 0x1149f779e in WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;)

&lt;rdar://problem/76003461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747738</commentid>
    <comment_count>1</comment_count>
      <attachid>425343</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-06 19:42:33 -0700</bug_when>
    <thetext>Created attachment 425343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747739</commentid>
    <comment_count>2</comment_count>
      <attachid>425343</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-06 19:51:23 -0700</bug_when>
    <thetext>Comment on attachment 425343
Patch

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

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:402
&gt; +inline void ReplaceSelectionCommand::InsertedNodes::willRemovePossibleAncestorNode(Node *node)

Nit: * should be on the right of Node, not on the left of node.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:409
&gt; +        m_lastNodeInserted = nullptr;
&gt; +    } else {

We should just add an early exit here.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:415
&gt; +        // Check if the first and last nodes have swapped relative positions.

I don&apos;t think we need to have this comment.
It&apos;s pretty obvious what we&apos;re doing from the code below.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:420
&gt; +        else if (m_firstNodeInserted != m_lastNodeInserted &amp;&amp; m_lastNodeInserted-&gt;contains(m_firstNodeInserted.get())) {

This simply m_firstNodeInserted-&gt;isDescendantOf(*m_lastNodeInserted)

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:421
&gt; +            // Now first == last, and last == first. Swap the pointers.

This is a confusing comment. If we used std::swap below, it would be trivially obvious.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:422
&gt; +            ASSERT(!m_firstNodeInserted-&gt;contains(m_lastNodeInserted.get()));

This assertion is unnecessary if we used isDescendantOf because it would be trivially true.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:425
&gt; +            auto temp = m_firstNodeInserted;
&gt; +            m_firstNodeInserted = m_lastNodeInserted;
&gt; +            m_lastNodeInserted = temp;

Why not just std::swap(~)?

&gt; LayoutTests/editing/inserting/insert-display-contents-crash.html:23
&gt; +    document.execCommand(&apos;InsertHTML&apos;, false, &apos;&lt;h1&gt;PASS&apos;);

Can we add some description that this test passes if we don&apos;t crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747981</commentid>
    <comment_count>3</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-07 11:18:41 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #2)
&gt; Comment on attachment 425343 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425343&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:402
&gt; &gt; +inline void ReplaceSelectionCommand::InsertedNodes::willRemovePossibleAncestorNode(Node *node)
&gt; 
&gt; Nit: * should be on the right of Node, not on the left of node.
&gt; 

This is matching willRemoveNodePreservingChildren() - that seems wrong too. What&apos;s the policy on fixing style nits in code that would not otherwise be part of a patch?


&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:409
&gt; &gt; +        m_lastNodeInserted = nullptr;
&gt; &gt; +    } else {
&gt; 
&gt; We should just add an early exit here.

Agreed.

&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:415
&gt; &gt; +        // Check if the first and last nodes have swapped relative positions.
&gt; 
&gt; I don&apos;t think we need to have this comment.
&gt; It&apos;s pretty obvious what we&apos;re doing from the code below.
&gt; 

It doesn&apos;t feel obvious to me, but I&apos;ll remove it.

&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:420
&gt; &gt; +        else if (m_firstNodeInserted != m_lastNodeInserted &amp;&amp; m_lastNodeInserted-&gt;contains(m_firstNodeInserted.get())) {
&gt; 
&gt; This simply m_firstNodeInserted-&gt;isDescendantOf(*m_lastNodeInserted)

Thanks, that&apos;s definitely an improvement.

&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:421
&gt; &gt; +            // Now first == last, and last == first. Swap the pointers.
&gt; 
&gt; This is a confusing comment. If we used std::swap below, it would be
&gt; trivially obvious.

I&apos;ll use std::swap.

&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:422
&gt; &gt; +            ASSERT(!m_firstNodeInserted-&gt;contains(m_lastNodeInserted.get()));
&gt; 
&gt; This assertion is unnecessary if we used isDescendantOf because it would be
&gt; trivially true.

I&apos;ll use it here too.

&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:425
&gt; &gt; +            auto temp = m_firstNodeInserted;
&gt; &gt; +            m_firstNodeInserted = m_lastNodeInserted;
&gt; &gt; +            m_lastNodeInserted = temp;
&gt; 
&gt; Why not just std::swap(~)?

You made that point already :)

&gt; 
&gt; &gt; LayoutTests/editing/inserting/insert-display-contents-crash.html:23
&gt; &gt; +    document.execCommand(&apos;InsertHTML&apos;, false, &apos;&lt;h1&gt;PASS&apos;);
&gt; 
&gt; Can we add some description that this test passes if we don&apos;t crash?

This test does not crash if you add a body (or doctype, even). I can add an HTML comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748030</commentid>
    <comment_count>4</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-07 12:45:35 -0700</bug_when>
    <thetext>(In reply to Julian Gonzalez from comment #3)
&gt; (In reply to Ryosuke Niwa from comment #2)
&gt; &gt; Comment on attachment 425343 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=425343&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:402
&gt; &gt; &gt; +inline void ReplaceSelectionCommand::InsertedNodes::willRemovePossibleAncestorNode(Node *node)
&gt; &gt; 
&gt; &gt; Nit: * should be on the right of Node, not on the left of node.
&gt; &gt; 
&gt; 
&gt; This is matching willRemoveNodePreservingChildren() - that seems wrong too.
&gt; What&apos;s the policy on fixing style nits in code that would not otherwise be
&gt; part of a patch?

Ah, I think that was a typo I introduced, never mind.
&gt; 
&gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:409
&gt; &gt; &gt; +        m_lastNodeInserted = nullptr;
&gt; &gt; &gt; +    } else {
&gt; &gt; 
&gt; &gt; We should just add an early exit here.
&gt; 
&gt; Agreed.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:415
&gt; &gt; &gt; +        // Check if the first and last nodes have swapped relative positions.
&gt; &gt; 
&gt; &gt; I don&apos;t think we need to have this comment.
&gt; &gt; It&apos;s pretty obvious what we&apos;re doing from the code below.
&gt; &gt; 
&gt; 
&gt; It doesn&apos;t feel obvious to me, but I&apos;ll remove it.
&gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:420
&gt; &gt; &gt; +        else if (m_firstNodeInserted != m_lastNodeInserted &amp;&amp; m_lastNodeInserted-&gt;contains(m_firstNodeInserted.get())) {
&gt; &gt; 
&gt; &gt; This simply m_firstNodeInserted-&gt;isDescendantOf(*m_lastNodeInserted)
&gt; 
&gt; Thanks, that&apos;s definitely an improvement.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:421
&gt; &gt; &gt; +            // Now first == last, and last == first. Swap the pointers.
&gt; &gt; 
&gt; &gt; This is a confusing comment. If we used std::swap below, it would be
&gt; &gt; trivially obvious.
&gt; 
&gt; I&apos;ll use std::swap.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:422
&gt; &gt; &gt; +            ASSERT(!m_firstNodeInserted-&gt;contains(m_lastNodeInserted.get()));
&gt; &gt; 
&gt; &gt; This assertion is unnecessary if we used isDescendantOf because it would be
&gt; &gt; trivially true.
&gt; 
&gt; I&apos;ll use it here too.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:425
&gt; &gt; &gt; +            auto temp = m_firstNodeInserted;
&gt; &gt; &gt; +            m_firstNodeInserted = m_lastNodeInserted;
&gt; &gt; &gt; +            m_lastNodeInserted = temp;
&gt; &gt; 
&gt; &gt; Why not just std::swap(~)?
&gt; 
&gt; You made that point already :)
&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/editing/inserting/insert-display-contents-crash.html:23
&gt; &gt; &gt; +    document.execCommand(&apos;InsertHTML&apos;, false, &apos;&lt;h1&gt;PASS&apos;);
&gt; &gt; 
&gt; &gt; Can we add some description that this test passes if we don&apos;t crash?
&gt; 
&gt; This test does not crash if you add a body (or doctype, even). I can add an
&gt; HTML comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748057</commentid>
    <comment_count>5</comment_count>
      <attachid>425435</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-07 14:04:31 -0700</bug_when>
    <thetext>Created attachment 425435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748134</commentid>
    <comment_count>6</comment_count>
      <attachid>425435</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-07 16:26:39 -0700</bug_when>
    <thetext>Comment on attachment 425435
Patch

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

&gt; LayoutTests/editing/inserting/insert-display-contents-crash.html:23
&gt; +    document.execCommand(&apos;InsertHTML&apos;, false, &apos;&lt;h1&gt;PASS&apos;);

Oh I mean that here, can do:
document.execCommand(&apos;InsertHTML&apos;, false, &apos;&lt;h1&gt;This test passes if WebKit does not crash. PASS&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748171</commentid>
    <comment_count>7</comment_count>
      <attachid>425464</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-07 17:44:26 -0700</bug_when>
    <thetext>Created attachment 425464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748190</commentid>
    <comment_count>8</comment_count>
      <attachid>425464</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-07 20:07:17 -0700</bug_when>
    <thetext>Comment on attachment 425464
Patch

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

Our new code has many branches. Our new test does not cover them. I think we need more tests to cover all the cases that require different logic.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:428
&gt; +    ASSERT(!m_firstNodeInserted || m_firstNodeInserted == node || !node-&gt;contains(m_firstNodeInserted.get()));
&gt; +    ASSERT(!m_lastNodeInserted || m_lastNodeInserted == node || !node-&gt;contains(m_lastNodeInserted.get()));

Seems like we should consider &quot;!isDescendantOf&quot; here to shorten these assertions:

    ASSERT(!m_firstNodeInserted || !m_firstNodeInserted-&gt;isDescendantOf(node));
    ASSERT(!m_lastNodeInserted || !m_lastNodeInserted-&gt;isDescendantOf(node));

Would be even better if we had a non-member version of isDescendantOf that understands that null isn’t a descendant of anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748198</commentid>
    <comment_count>9</comment_count>
      <attachid>425474</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-04-07 20:42:44 -0700</bug_when>
    <thetext>Created attachment 425474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748209</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-07 22:21:15 -0700</bug_when>
    <thetext>Committed r275652: &lt;https://commits.webkit.org/r275652&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425474.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425343</attachid>
            <date>2021-04-06 19:42:33 -0700</date>
            <delta_ts>2021-04-07 14:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224259-20210406194232.patch</filename>
            <type>text/plain</type>
            <size>7002</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1MmI5OTdlMDAyNjNh
ZGI5MGY3MDQ3MmNkZTdlZTU0NDc2ZDVmOC4uZjllNjQ2OGViZTZkN2Q2ZTcxYjQyNjhiMDIwMDk4
ZDZiNDg3OTFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA2ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgTnVs
bHB0ciBkZXJlZmVyZW5jZSBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5k
YW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcnVuaW5nIGFmdGVyIHJlbW92aW5nIHRoZSBl
bmQgPGJyPiBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpLCBtYWtlIHN1cmUK
KyAgICAgICAgdGhhdCBpbnNlcnRlZE5vZGVzIGlzIHVwZGF0ZWQgcHJvcGVybHkgKGdpdmVuIHRo
YXQgd2UgbWF5IGJlIHJlbW92aW5nIGFuIGFuY2VzdG9yCisgICAgICAgIG9mIHRoZSBzdGFydCBv
ciBlbmQgb2YgaW5zZXJ0ZWROb2RlcykuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZVBvc3NpYmxlQW5jZXN0
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNl
cnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorCiAyMDIxLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3NDk4My4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZDkyYjhhNzIxNjgyNWY5OTJkNDhkODgzZDYwY2E2NTg2NGVkZWRhNy4uMTRlNmU4Y2ZjYTVh
ZmIyMGRiNWJmOGZiM2Q4ZTI0NWRkOWJhNjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTM5OSw4ICszOTksMzkgQEAg
aW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OndpbGxS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKICAgICB9CiB9CiAKK2lubGluZSB2b2lkIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlUG9zc2libGVBbmNlc3Rv
ck5vZGUoTm9kZSAqbm9kZSkKK3sKKyAgICBib29sIGNvbnRhaW5zRmlyc3ROb2RlID0gbm9kZS0+
Y29udGFpbnMobV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKSk7CisgICAgYm9vbCBjb250YWluc0xh
c3ROb2RlID0gbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKTsKKyAgICBp
ZiAoY29udGFpbnNGaXJzdE5vZGUgJiYgY29udGFpbnNMYXN0Tm9kZSkgeworICAgICAgICBtX2Zp
cnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0g
bnVsbHB0cjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoY29udGFpbnNMYXN0Tm9kZSkKKyAg
ICAgICAgICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6OnByZXZpb3VzU2tp
cHBpbmdDaGlsZHJlbigqbm9kZSk7CisgICAgICAgIGVsc2UgaWYgKGNvbnRhaW5zRmlyc3ROb2Rl
KQorICAgICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6Om5leHRT
a2lwcGluZ0NoaWxkcmVuKCpub2RlKTsKKworICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3Qg
YW5kIGxhc3Qgbm9kZXMgaGF2ZSBzd2FwcGVkIHJlbGF0aXZlIHBvc2l0aW9ucy4KKyAgICAgICAg
aWYgKCFtX2xhc3ROb2RlSW5zZXJ0ZWQpCisgICAgICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQg
PSBtX2ZpcnN0Tm9kZUluc2VydGVkOworICAgICAgICBlbHNlIGlmICghbV9maXJzdE5vZGVJbnNl
cnRlZCkKKyAgICAgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBtX2xhc3ROb2RlSW5zZXJ0
ZWQ7CisgICAgICAgIGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0ZWQgIT0gbV9sYXN0Tm9kZUlu
c2VydGVkICYmIG1fbGFzdE5vZGVJbnNlcnRlZC0+Y29udGFpbnMobV9maXJzdE5vZGVJbnNlcnRl
ZC5nZXQoKSkpIHsKKyAgICAgICAgICAgIC8vIE5vdyBmaXJzdCA9PSBsYXN0LCBhbmQgbGFzdCA9
PSBmaXJzdC4gU3dhcCB0aGUgcG9pbnRlcnMuCisgICAgICAgICAgICBBU1NFUlQoIW1fZmlyc3RO
b2RlSW5zZXJ0ZWQtPmNvbnRhaW5zKG1fbGFzdE5vZGVJbnNlcnRlZC5nZXQoKSkpOworICAgICAg
ICAgICAgYXV0byB0ZW1wID0gbV9maXJzdE5vZGVJbnNlcnRlZDsKKyAgICAgICAgICAgIG1fZmly
c3ROb2RlSW5zZXJ0ZWQgPSBtX2xhc3ROb2RlSW5zZXJ0ZWQ7CisgICAgICAgICAgICBtX2xhc3RO
b2RlSW5zZXJ0ZWQgPSB0ZW1wOworICAgICAgICB9CisgICAgfQorfQorCiBpbmxpbmUgdm9pZCBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9k
ZSogbm9kZSkKIHsKKyAgICBBU1NFUlQoIW1fZmlyc3ROb2RlSW5zZXJ0ZWQgfHwgbV9maXJzdE5v
ZGVJbnNlcnRlZCA9PSBub2RlIHx8ICFub2RlLT5jb250YWlucyhtX2ZpcnN0Tm9kZUluc2VydGVk
LmdldCgpKSk7CisgICAgQVNTRVJUKCFtX2xhc3ROb2RlSW5zZXJ0ZWQgfHwgbV9sYXN0Tm9kZUlu
c2VydGVkID09IG5vZGUgfHwgIW5vZGUtPmNvbnRhaW5zKG1fbGFzdE5vZGVJbnNlcnRlZC5nZXQo
KSkpOworCiAgICAgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSAmJiBtX2xhc3ROb2Rl
SW5zZXJ0ZWQgPT0gbm9kZSkgewogICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0
cjsKICAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKQEAgLTEzMDIsMTEgKzEz
MzMsMTQgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAg
IHJlbW92ZU5vZGUoKmVuZEJSKTsKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICAgICAgaWYgKGF1dG8gbm9kZVRvUmVtb3ZlID0g
bWFrZVJlZlB0cihoaWdoZXN0Tm9kZVRvUmVtb3ZlSW5QcnVuaW5nKHBhcmVudC5nZXQoKSkpKSB7
Ci0gICAgICAgICAgICBpbnNlcnRlZE5vZGVzLndpbGxSZW1vdmVOb2RlKG5vZGVUb1JlbW92ZS5n
ZXQoKSk7CisgICAgICAgICAgICBpbnNlcnRlZE5vZGVzLndpbGxSZW1vdmVQb3NzaWJsZUFuY2Vz
dG9yTm9kZShub2RlVG9SZW1vdmUuZ2V0KCkpOwogICAgICAgICAgICAgcmVtb3ZlTm9kZSgqbm9k
ZVRvUmVtb3ZlKTsKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChpbnNlcnRlZE5vZGVzLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUluc2VydGVkQ29udGVudFJvdW5k
VHJpcHBhYmxlV2l0aEhUTUxUcmVlQnVpbGRlcihpbnNlcnRlZE5vZGVzKTsKICAgICBpZiAoaW5z
ZXJ0ZWROb2Rlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCAwNjA4YTAwODllNmIw
OGE0OGFkMjk5MmYxODg5ZDhjMzI1OTQxYWEyLi5lNmY4NzFhNmY5NTRjYzkzNTM1OGI5YjBkM2Yz
YzYwODJiZDdhY2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5oCkBAIC02OCw2ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgcHVibGljOgog
ICAgICAgICB2b2lkIHJlc3BvbmRUb05vZGVJbnNlcnRpb24oTm9kZSopOwogICAgICAgICB2b2lk
IHdpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKE5vZGUqKTsKKyAgICAgICAgdm9pZCB3
aWxsUmVtb3ZlUG9zc2libGVBbmNlc3Rvck5vZGUoTm9kZSopOwogICAgICAgICB2b2lkIHdpbGxS
ZW1vdmVOb2RlKE5vZGUqKTsKICAgICAgICAgdm9pZCBkaWRSZXBsYWNlTm9kZShOb2RlKiwgTm9k
ZSogbmV3Tm9kZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTgxZmU4ZWI5MDM0Y2I4MTg3OWFlZWMzOWZkNzBiZWJk
ODY3ZWVlLi5hNzNkZTI3NWYyMDUxMDY2NTcwNjQxOTYwZGE4YjNiNzg5NDJkYzE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDQtMDYgIEp1bGlhbiBHb256YWxleiAgPGp1bGlhbl9hX2dv
bnphbGV6QGFwcGxlLmNvbT4KKworICAgICAgICBOdWxscHRyIGRlcmVmZXJlbmNlIGluIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFu
SW5saW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSB0ZXN0IHRvIGNhdGNoIHRoZSBlZGl0aW5nIGNyYXNoIGZpeGVkIGhlcmU7IHRoYW5rcyB0
byBUdW9tYXMgS2Fya2thaW5lbgorICAgICAgICBmb3IgaXRzIGJhc2ljIHN0cnVjdHVyZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNo
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0
LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMjEtMDMtMjQgIExhdXJv
IE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjc0OTE5
KSBbQVRLXSBhY2Nlc3NpYmlsaXR5L3NldC1zZWxlY3RlZC10ZXh0LXJhbmdlLWNvbnRlbnRlZGl0
YWJsZS5odG1sIGlzIHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
aW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNo
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQw
MTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2Vy
dC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2Vy
dGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNTgy
MzI3YmZmYjMwMjBiOTM5ZDc3ZWM5ZTg5ZjIwOTdlNzc3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFz
aC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitoNiB7Cisg
ICAgcGFkZGluZy1ibG9jay1lbmQ6IDFweDsKK30KK2xpIHsKKyAgICBkaXNwbGF5OiBjb250ZW50
czsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoNicpKTsKKyAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0QWxsJyk7CisgICAgZG9jdW1lbnQuZGVzaWduTW9kZSA9
ICdvbic7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydE9yZGVyZWRMaXN0Jyk7Cisg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0u
aW5zZXJ0UnVsZShgYnIgeyBkaXNwbGF5OiBjb250ZW50czsgfWApOworICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCdJbnNlcnRIVE1MJywgZmFsc2UsICdhPGgxPicpOworICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCdJbnNlcnRIVE1MJywgZmFsc2UsICc8aDE+UEFTUycpOworfTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425435</attachid>
            <date>2021-04-07 14:04:31 -0700</date>
            <delta_ts>2021-04-07 17:44:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224259-20210407140430.patch</filename>
            <type>text/plain</type>
            <size>6655</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1MmI5OTdlMDAyNjNh
ZGI5MGY3MDQ3MmNkZTdlZTU0NDc2ZDVmOC4uNTIyY2VmZWIxMmE0YjNiZGQ2MmIxYjVmZmMzZWY0
YjZiYjQ1N2Q3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA3ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgTnVs
bHB0ciBkZXJlZmVyZW5jZSBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5k
YW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcnVuaW5nIGFmdGVyIHJlbW92aW5nIHRoZSBl
bmQgPGJyPiBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpLCBtYWtlIHN1cmUK
KyAgICAgICAgdGhhdCBpbnNlcnRlZE5vZGVzIGlzIHVwZGF0ZWQgcHJvcGVybHkgKGdpdmVuIHRo
YXQgd2UgbWF5IGJlIHJlbW92aW5nIGFuIGFuY2VzdG9yCisgICAgICAgIG9mIHRoZSBzdGFydCBv
ciBlbmQgb2YgaW5zZXJ0ZWROb2RlcykuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZVBvc3NpYmxlQW5jZXN0
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNl
cnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorCiAyMDIxLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3NDk4My4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZDkyYjhhNzIxNjgyNWY5OTJkNDhkODgzZDYwY2E2NTg2NGVkZWRhNy4uNDc4NGMzMWE3YjNm
MjFjNzc2MTA5Mjg3MTNmYmVlNGExYzEzOTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTM5OSw4ICszOTksMzQgQEAg
aW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OndpbGxS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKICAgICB9CiB9CiAKK2lubGluZSB2b2lkIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlUG9zc2libGVBbmNlc3Rv
ck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBib29sIGNvbnRhaW5zRmlyc3ROb2RlID0gbm9kZS0+
Y29udGFpbnMobV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKSk7CisgICAgYm9vbCBjb250YWluc0xh
c3ROb2RlID0gbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKTsKKyAgICBp
ZiAoY29udGFpbnNGaXJzdE5vZGUgJiYgY29udGFpbnNMYXN0Tm9kZSkgeworICAgICAgICBtX2Zp
cnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjb250YWluc0xhc3RO
b2RlKQorICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91
c1NraXBwaW5nQ2hpbGRyZW4oKm5vZGUpOworICAgIGVsc2UgaWYgKGNvbnRhaW5zRmlyc3ROb2Rl
KQorICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBw
aW5nQ2hpbGRyZW4oKm5vZGUpOworCisgICAgaWYgKCFtX2xhc3ROb2RlSW5zZXJ0ZWQpCisgICAg
ICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBp
ZiAoIW1fZmlyc3ROb2RlSW5zZXJ0ZWQpCisgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBt
X2xhc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBpZiAobV9maXJzdE5vZGVJbnNlcnRlZC0+aXNE
ZXNjZW5kYW50T2YobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKSkKKyAgICAgICAgc3RkOjpzd2Fw
KG1fZmlyc3ROb2RlSW5zZXJ0ZWQsIG1fbGFzdE5vZGVJbnNlcnRlZCk7Cit9CisKIGlubGluZSB2
b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9k
ZShOb2RlKiBub2RlKQogeworICAgIEFTU0VSVCghbV9maXJzdE5vZGVJbnNlcnRlZCB8fCBtX2Zp
cnN0Tm9kZUluc2VydGVkID09IG5vZGUgfHwgIW5vZGUtPmNvbnRhaW5zKG1fZmlyc3ROb2RlSW5z
ZXJ0ZWQuZ2V0KCkpKTsKKyAgICBBU1NFUlQoIW1fbGFzdE5vZGVJbnNlcnRlZCB8fCBtX2xhc3RO
b2RlSW5zZXJ0ZWQgPT0gbm9kZSB8fCAhbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVk
LmdldCgpKSk7CisKICAgICBpZiAobV9maXJzdE5vZGVJbnNlcnRlZCA9PSBub2RlICYmIG1fbGFz
dE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7CiAgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBu
dWxscHRyOwogICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBudWxscHRyOwpAQCAtMTMwMiwx
MSArMTMyOCwxNCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAg
ICAgICAgcmVtb3ZlTm9kZSgqZW5kQlIpOwogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAgICBpZiAoYXV0byBub2RlVG9SZW1v
dmUgPSBtYWtlUmVmUHRyKGhpZ2hlc3ROb2RlVG9SZW1vdmVJblBydW5pbmcocGFyZW50LmdldCgp
KSkpIHsKLSAgICAgICAgICAgIGluc2VydGVkTm9kZXMud2lsbFJlbW92ZU5vZGUobm9kZVRvUmVt
b3ZlLmdldCgpKTsKKyAgICAgICAgICAgIGluc2VydGVkTm9kZXMud2lsbFJlbW92ZVBvc3NpYmxl
QW5jZXN0b3JOb2RlKG5vZGVUb1JlbW92ZS5nZXQoKSk7CiAgICAgICAgICAgICByZW1vdmVOb2Rl
KCpub2RlVG9SZW1vdmUpOwogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGluc2VydGVkTm9k
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlSW5zZXJ0ZWRDb250ZW50
Um91bmRUcmlwcGFibGVXaXRoSFRNTFRyZWVCdWlsZGVyKGluc2VydGVkTm9kZXMpOwogICAgIGlm
IChpbnNlcnRlZE5vZGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IDA2MDhhMDA4
OWU2YjA4YTQ4YWQyOTkyZjE4ODlkOGMzMjU5NDFhYTIuLmU2Zjg3MWE2Zjk1NGNjOTM1MzU4Yjli
MGQzZjNjNjA4MmJkN2FjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTY4LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBwdWJs
aWM6CiAgICAgICAgIHZvaWQgcmVzcG9uZFRvTm9kZUluc2VydGlvbihOb2RlKik7CiAgICAgICAg
IHZvaWQgd2lsbFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oTm9kZSopOworICAgICAgICB2
b2lkIHdpbGxSZW1vdmVQb3NzaWJsZUFuY2VzdG9yTm9kZShOb2RlKik7CiAgICAgICAgIHZvaWQg
d2lsbFJlbW92ZU5vZGUoTm9kZSopOwogICAgICAgICB2b2lkIGRpZFJlcGxhY2VOb2RlKE5vZGUq
LCBOb2RlKiBuZXdOb2RlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxODFmZThlYjkwMzRjYjgxODc5YWVlYzM5ZmQ3
MGJlYmQ4NjdlZWUuLjkyOTI5MjIwOTYxMzQ5ZWYwYmU4MWI0NDQ3ZDIwMmYyNGUzOGE5MGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNC0wNyAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFu
X2FfZ29uemFsZXpAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgZGVyZWZlcmVuY2UgaW4g
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZVJlZHVuZGFudFN0eWxlc0FuZEtlZXBTdHls
ZVNwYW5JbmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDI1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIHRlc3QgdG8gY2F0Y2ggdGhlIGVkaXRpbmcgY3Jhc2ggZml4ZWQgaGVyZTsgdGhh
bmtzIHRvIFR1b21hcyBLYXJra2FpbmVuCisgICAgICAgIGZvciBpdHMgYmFzaWMgc3RydWN0dXJl
LgorCisgICAgICAgICogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMt
Y3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9p
bnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0yNCAg
TGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
NzQ5MTkpIFtBVEtdIGFjY2Vzc2liaWxpdHkvc2V0LXNlbGVjdGVkLXRleHQtcmFuZ2UtY29udGVu
dGVkaXRhYmxlLmh0bWwgaXMgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMt
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRj
ODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lu
c2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcv
aW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
aW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjYwNmZjNmNjNGEzN2RiNjljZmY4Y2IzNmNhMDAwZWMyYjFkYjI3YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRz
LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2g2
IHsKKyAgICBwYWRkaW5nLWJsb2NrLWVuZDogMXB4OworfQorbGkgeworICAgIGRpc3BsYXk6IGNv
bnRlbnRzOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2g2JykpOworICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKTsKKyAgICBkb2N1bWVudC5kZXNpZ25N
b2RlID0gJ29uJzsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0T3JkZXJlZExpc3Qn
KTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgICBkb2N1bWVudC5zdHlsZVNoZWV0
c1swXS5pbnNlcnRSdWxlKGBiciB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9YCk7CisgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ0luc2VydEhUTUwnLCBmYWxzZSwgJ2E8aDE+Jyk7CisgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ0luc2VydEhUTUwnLCBmYWxzZSwgJzxoMT5QQVNTJyk7Cit9OworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8IS0tIFRoaXMgdGVzdCBwYXNzZXMgaWYgd2UgZG8gbm90IGNyYXNo
LiAtLT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425464</attachid>
            <date>2021-04-07 17:44:26 -0700</date>
            <delta_ts>2021-04-07 20:42:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224259-20210407174425.patch</filename>
            <type>text/plain</type>
            <size>6694</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1MmI5OTdlMDAyNjNh
ZGI5MGY3MDQ3MmNkZTdlZTU0NDc2ZDVmOC4uNTIyY2VmZWIxMmE0YjNiZGQ2MmIxYjVmZmMzZWY0
YjZiYjQ1N2Q3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA3ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgTnVs
bHB0ciBkZXJlZmVyZW5jZSBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5k
YW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcnVuaW5nIGFmdGVyIHJlbW92aW5nIHRoZSBl
bmQgPGJyPiBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpLCBtYWtlIHN1cmUK
KyAgICAgICAgdGhhdCBpbnNlcnRlZE5vZGVzIGlzIHVwZGF0ZWQgcHJvcGVybHkgKGdpdmVuIHRo
YXQgd2UgbWF5IGJlIHJlbW92aW5nIGFuIGFuY2VzdG9yCisgICAgICAgIG9mIHRoZSBzdGFydCBv
ciBlbmQgb2YgaW5zZXJ0ZWROb2RlcykuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZVBvc3NpYmxlQW5jZXN0
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNl
cnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorCiAyMDIxLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3NDk4My4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZDkyYjhhNzIxNjgyNWY5OTJkNDhkODgzZDYwY2E2NTg2NGVkZWRhNy4uNDc4NGMzMWE3YjNm
MjFjNzc2MTA5Mjg3MTNmYmVlNGExYzEzOTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTM5OSw4ICszOTksMzQgQEAg
aW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OndpbGxS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKICAgICB9CiB9CiAKK2lubGluZSB2b2lkIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlUG9zc2libGVBbmNlc3Rv
ck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBib29sIGNvbnRhaW5zRmlyc3ROb2RlID0gbm9kZS0+
Y29udGFpbnMobV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKSk7CisgICAgYm9vbCBjb250YWluc0xh
c3ROb2RlID0gbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKTsKKyAgICBp
ZiAoY29udGFpbnNGaXJzdE5vZGUgJiYgY29udGFpbnNMYXN0Tm9kZSkgeworICAgICAgICBtX2Zp
cnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjb250YWluc0xhc3RO
b2RlKQorICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91
c1NraXBwaW5nQ2hpbGRyZW4oKm5vZGUpOworICAgIGVsc2UgaWYgKGNvbnRhaW5zRmlyc3ROb2Rl
KQorICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBw
aW5nQ2hpbGRyZW4oKm5vZGUpOworCisgICAgaWYgKCFtX2xhc3ROb2RlSW5zZXJ0ZWQpCisgICAg
ICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBp
ZiAoIW1fZmlyc3ROb2RlSW5zZXJ0ZWQpCisgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBt
X2xhc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBpZiAobV9maXJzdE5vZGVJbnNlcnRlZC0+aXNE
ZXNjZW5kYW50T2YobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKSkKKyAgICAgICAgc3RkOjpzd2Fw
KG1fZmlyc3ROb2RlSW5zZXJ0ZWQsIG1fbGFzdE5vZGVJbnNlcnRlZCk7Cit9CisKIGlubGluZSB2
b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9k
ZShOb2RlKiBub2RlKQogeworICAgIEFTU0VSVCghbV9maXJzdE5vZGVJbnNlcnRlZCB8fCBtX2Zp
cnN0Tm9kZUluc2VydGVkID09IG5vZGUgfHwgIW5vZGUtPmNvbnRhaW5zKG1fZmlyc3ROb2RlSW5z
ZXJ0ZWQuZ2V0KCkpKTsKKyAgICBBU1NFUlQoIW1fbGFzdE5vZGVJbnNlcnRlZCB8fCBtX2xhc3RO
b2RlSW5zZXJ0ZWQgPT0gbm9kZSB8fCAhbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVk
LmdldCgpKSk7CisKICAgICBpZiAobV9maXJzdE5vZGVJbnNlcnRlZCA9PSBub2RlICYmIG1fbGFz
dE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7CiAgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBu
dWxscHRyOwogICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBudWxscHRyOwpAQCAtMTMwMiwx
MSArMTMyOCwxNCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAg
ICAgICAgcmVtb3ZlTm9kZSgqZW5kQlIpOwogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAgICBpZiAoYXV0byBub2RlVG9SZW1v
dmUgPSBtYWtlUmVmUHRyKGhpZ2hlc3ROb2RlVG9SZW1vdmVJblBydW5pbmcocGFyZW50LmdldCgp
KSkpIHsKLSAgICAgICAgICAgIGluc2VydGVkTm9kZXMud2lsbFJlbW92ZU5vZGUobm9kZVRvUmVt
b3ZlLmdldCgpKTsKKyAgICAgICAgICAgIGluc2VydGVkTm9kZXMud2lsbFJlbW92ZVBvc3NpYmxl
QW5jZXN0b3JOb2RlKG5vZGVUb1JlbW92ZS5nZXQoKSk7CiAgICAgICAgICAgICByZW1vdmVOb2Rl
KCpub2RlVG9SZW1vdmUpOwogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGluc2VydGVkTm9k
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlSW5zZXJ0ZWRDb250ZW50
Um91bmRUcmlwcGFibGVXaXRoSFRNTFRyZWVCdWlsZGVyKGluc2VydGVkTm9kZXMpOwogICAgIGlm
IChpbnNlcnRlZE5vZGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IDA2MDhhMDA4
OWU2YjA4YTQ4YWQyOTkyZjE4ODlkOGMzMjU5NDFhYTIuLmU2Zjg3MWE2Zjk1NGNjOTM1MzU4Yjli
MGQzZjNjNjA4MmJkN2FjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTY4LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBwdWJs
aWM6CiAgICAgICAgIHZvaWQgcmVzcG9uZFRvTm9kZUluc2VydGlvbihOb2RlKik7CiAgICAgICAg
IHZvaWQgd2lsbFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oTm9kZSopOworICAgICAgICB2
b2lkIHdpbGxSZW1vdmVQb3NzaWJsZUFuY2VzdG9yTm9kZShOb2RlKik7CiAgICAgICAgIHZvaWQg
d2lsbFJlbW92ZU5vZGUoTm9kZSopOwogICAgICAgICB2b2lkIGRpZFJlcGxhY2VOb2RlKE5vZGUq
LCBOb2RlKiBuZXdOb2RlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxODFmZThlYjkwMzRjYjgxODc5YWVlYzM5ZmQ3
MGJlYmQ4NjdlZWUuLjkyOTI5MjIwOTYxMzQ5ZWYwYmU4MWI0NDQ3ZDIwMmYyNGUzOGE5MGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNC0wNyAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFu
X2FfZ29uemFsZXpAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgZGVyZWZlcmVuY2UgaW4g
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZVJlZHVuZGFudFN0eWxlc0FuZEtlZXBTdHls
ZVNwYW5JbmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDI1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIHRlc3QgdG8gY2F0Y2ggdGhlIGVkaXRpbmcgY3Jhc2ggZml4ZWQgaGVyZTsgdGhh
bmtzIHRvIFR1b21hcyBLYXJra2FpbmVuCisgICAgICAgIGZvciBpdHMgYmFzaWMgc3RydWN0dXJl
LgorCisgICAgICAgICogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMt
Y3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9p
bnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0yNCAg
TGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
NzQ5MTkpIFtBVEtdIGFjY2Vzc2liaWxpdHkvc2V0LXNlbGVjdGVkLXRleHQtcmFuZ2UtY29udGVu
dGVkaXRhYmxlLmh0bWwgaXMgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMt
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MzgxMDI1YTA1ZmQ4ZDFiNDFhNmE4YmE2
NmY0OGI1Y2UzNTlmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lu
c2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lcyBub3QgY3Jhc2guIFBBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5
LWNvbnRlbnRzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNl
cnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZjFlOTdmNTFlMTlm
YjE2YWNjZDk2YTlkMTgzOTQ3NDdmYTJiOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitoNiB7CisgICAgcGFkZGlu
Zy1ibG9jay1lbmQ6IDFweDsKK30KK2xpIHsKKyAgICBkaXNwbGF5OiBjb250ZW50czsKK30KKzwv
c3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoNicpKTsKKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgnU2VsZWN0QWxsJyk7CisgICAgZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdvbic7Cisg
ICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydE9yZGVyZWRMaXN0Jyk7CisgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRUb3A7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVs
ZShgYnIgeyBkaXNwbGF5OiBjb250ZW50czsgfWApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdJbnNlcnRIVE1MJywgZmFsc2UsICdhPGgxPicpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdJbnNlcnRIVE1MJywgZmFsc2UsICc8aDE+VGhpcyB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9l
cyBub3QgY3Jhc2guIFBBU1MnKTsKK307Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425474</attachid>
            <date>2021-04-07 20:42:44 -0700</date>
            <delta_ts>2021-04-07 22:21:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224259-20210407204244.patch</filename>
            <type>text/plain</type>
            <size>6633</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1MmI5OTdlMDAyNjNh
ZGI5MGY3MDQ3MmNkZTdlZTU0NDc2ZDVmOC4uNTIyY2VmZWIxMmE0YjNiZGQ2MmIxYjVmZmMzZWY0
YjZiYjQ1N2Q3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA3ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgTnVs
bHB0ciBkZXJlZmVyZW5jZSBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5k
YW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcnVuaW5nIGFmdGVyIHJlbW92aW5nIHRoZSBl
bmQgPGJyPiBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpLCBtYWtlIHN1cmUK
KyAgICAgICAgdGhhdCBpbnNlcnRlZE5vZGVzIGlzIHVwZGF0ZWQgcHJvcGVybHkgKGdpdmVuIHRo
YXQgd2UgbWF5IGJlIHJlbW92aW5nIGFuIGFuY2VzdG9yCisgICAgICAgIG9mIHRoZSBzdGFydCBv
ciBlbmQgb2YgaW5zZXJ0ZWROb2RlcykuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWRpc3BsYXktY29udGVudHMtY3Jhc2guaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZVBvc3NpYmxlQW5jZXN0
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNl
cnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorCiAyMDIxLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3NDk4My4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZDkyYjhhNzIxNjgyNWY5OTJkNDhkODgzZDYwY2E2NTg2NGVkZWRhNy4uYWZhYjY5NGM2ZWU5
OTU2NGE4NjE2NjE1NDNhODQ5ODI5MGQ3Zjc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTM5OSw4ICszOTksMzQgQEAg
aW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OndpbGxS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKICAgICB9CiB9CiAKK2lubGluZSB2b2lkIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlUG9zc2libGVBbmNlc3Rv
ck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBib29sIGNvbnRhaW5zRmlyc3ROb2RlID0gbm9kZS0+
Y29udGFpbnMobV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKSk7CisgICAgYm9vbCBjb250YWluc0xh
c3ROb2RlID0gbm9kZS0+Y29udGFpbnMobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKTsKKyAgICBp
ZiAoY29udGFpbnNGaXJzdE5vZGUgJiYgY29udGFpbnNMYXN0Tm9kZSkgeworICAgICAgICBtX2Zp
cnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjb250YWluc0xhc3RO
b2RlKQorICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91
c1NraXBwaW5nQ2hpbGRyZW4oKm5vZGUpOworICAgIGVsc2UgaWYgKGNvbnRhaW5zRmlyc3ROb2Rl
KQorICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBw
aW5nQ2hpbGRyZW4oKm5vZGUpOworCisgICAgaWYgKCFtX2xhc3ROb2RlSW5zZXJ0ZWQpCisgICAg
ICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBp
ZiAoIW1fZmlyc3ROb2RlSW5zZXJ0ZWQpCisgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBt
X2xhc3ROb2RlSW5zZXJ0ZWQ7CisgICAgZWxzZSBpZiAobV9maXJzdE5vZGVJbnNlcnRlZC0+aXNE
ZXNjZW5kYW50T2YobV9sYXN0Tm9kZUluc2VydGVkLmdldCgpKSkKKyAgICAgICAgc3RkOjpzd2Fw
KG1fZmlyc3ROb2RlSW5zZXJ0ZWQsIG1fbGFzdE5vZGVJbnNlcnRlZCk7Cit9CisKIGlubGluZSB2
b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9k
ZShOb2RlKiBub2RlKQogeworICAgIEFTU0VSVCghbV9maXJzdE5vZGVJbnNlcnRlZCB8fCAhbV9m
aXJzdE5vZGVJbnNlcnRlZC0+aXNEZXNjZW5kYW50T2Yobm9kZSkpOworICAgIEFTU0VSVCghbV9s
YXN0Tm9kZUluc2VydGVkIHx8ICFtX2xhc3ROb2RlSW5zZXJ0ZWQtPmlzRGVzY2VuZGFudE9mKG5v
ZGUpKTsKKwogICAgIGlmIChtX2ZpcnN0Tm9kZUluc2VydGVkID09IG5vZGUgJiYgbV9sYXN0Tm9k
ZUluc2VydGVkID09IG5vZGUpIHsKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IG51bGxw
dHI7CiAgICAgICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG51bGxwdHI7CkBAIC0xMzAyLDExICsx
MzI4LDE0IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICByZW1vdmVOb2RlKCplbmRCUik7CiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgICAgIGlmIChhdXRvIG5vZGVUb1JlbW92ZSA9
IG1ha2VSZWZQdHIoaGlnaGVzdE5vZGVUb1JlbW92ZUluUHJ1bmluZyhwYXJlbnQuZ2V0KCkpKSkg
ewotICAgICAgICAgICAgaW5zZXJ0ZWROb2Rlcy53aWxsUmVtb3ZlTm9kZShub2RlVG9SZW1vdmUu
Z2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0ZWROb2Rlcy53aWxsUmVtb3ZlUG9zc2libGVBbmNl
c3Rvck5vZGUobm9kZVRvUmVtb3ZlLmdldCgpKTsKICAgICAgICAgICAgIHJlbW92ZU5vZGUoKm5v
ZGVUb1JlbW92ZSk7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoaW5zZXJ0ZWROb2Rlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VJbnNlcnRlZENvbnRlbnRSb3Vu
ZFRyaXBwYWJsZVdpdGhIVE1MVHJlZUJ1aWxkZXIoaW5zZXJ0ZWROb2Rlcyk7CiAgICAgaWYgKGlu
c2VydGVkTm9kZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggMDYwOGEwMDg5ZTZi
MDhhNDhhZDI5OTJmMTg4OWQ4YzMyNTk0MWFhMi4uZTZmODcxYTZmOTU0Y2M5MzUzNThiOWIwZDNm
M2M2MDgyYmQ3YWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaApAQCAtNjgsNiArNjgsNyBAQCBwcml2YXRlOgogICAgIHB1YmxpYzoK
ICAgICAgICAgdm9pZCByZXNwb25kVG9Ob2RlSW5zZXJ0aW9uKE5vZGUqKTsKICAgICAgICAgdm9p
ZCB3aWxsUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihOb2RlKik7CisgICAgICAgIHZvaWQg
d2lsbFJlbW92ZVBvc3NpYmxlQW5jZXN0b3JOb2RlKE5vZGUqKTsKICAgICAgICAgdm9pZCB3aWxs
UmVtb3ZlTm9kZShOb2RlKik7CiAgICAgICAgIHZvaWQgZGlkUmVwbGFjZU5vZGUoTm9kZSosIE5v
ZGUqIG5ld05vZGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjE4MWZlOGViOTAzNGNiODE4NzlhZWVjMzlmZDcwYmVi
ZDg2N2VlZS4uOTI5MjkyMjA5NjEzNDllZjBiZTgxYjQ0NDdkMjAyZjI0ZTM4YTkwZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA0LTA3ICBKdWxpYW4gR29uemFsZXogIDxqdWxpYW5fYV9n
b256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgTnVsbHB0ciBkZXJlZmVyZW5jZSBpbiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0eWxlU3Bh
bklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI0MjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgdGVzdCB0byBjYXRjaCB0aGUgZWRpdGluZyBjcmFzaCBmaXhlZCBoZXJlOyB0aGFua3Mg
dG8gVHVvbWFzIEthcmtrYWluZW4KKyAgICAgICAgZm9yIGl0cyBiYXNpYyBzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFz
aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2Vy
dC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTI0ICBMYXVy
byBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3NDkx
OSkgW0FUS10gYWNjZXNzaWJpbGl0eS9zZXQtc2VsZWN0ZWQtdGV4dC1yYW5nZS1jb250ZW50ZWRp
dGFibGUuaHRtbCBpcyB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2luc2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFzaC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtZGlzcGxheS1jb250ZW50cy1jcmFz
aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQzODEwMjVhMDVmZDhkMWI0MWE2YThiYTY2ZjQ4
YjVjZTM1OWYxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0
aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2VzIG5vdCBjcmFzaC4gUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWRpc3BsYXktY29u
dGVudHMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1k
aXNwbGF5LWNvbnRlbnRzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmMWU5N2Y1MWUxOWZiMTZh
Y2NkOTZhOWQxODM5NDc0N2ZhMmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvaW5zZXJ0aW5nL2luc2VydC1kaXNwbGF5LWNvbnRlbnRzLWNyYXNoLmh0bWwKQEAgLTAs
MCArMSwyNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2g2IHsKKyAgICBwYWRkaW5nLWJs
b2NrLWVuZDogMXB4OworfQorbGkgeworICAgIGRpc3BsYXk6IGNvbnRlbnRzOworfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2g2JykpOworICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCdTZWxlY3RBbGwnKTsKKyAgICBkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29uJzsKKyAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0T3JkZXJlZExpc3QnKTsKKyAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKKyAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGBi
ciB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9YCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0lu
c2VydEhUTUwnLCBmYWxzZSwgJ2E8aDE+Jyk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0lu
c2VydEhUTUwnLCBmYWxzZSwgJzxoMT5UaGlzIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2VzIG5v
dCBjcmFzaC4gUEFTUycpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>