<?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>237104</bug_id>
          
          <creation_ts>2022-02-23 12:50:03 -0800</creation_ts>
          <short_desc>Fix for AXIsolatedTree::updateChildren in the case when is called for a non-existing isolated object.</short_desc>
          <delta_ts>2022-02-28 15:49:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845274</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-23 12:50:03 -0800</bug_when>
    <thetext>AXIsolatedTree::updateChildren should update the entire subtree if there are no differences in the children of the existing isolated object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845275</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 12:50:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89372850&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845283</commentid>
    <comment_count>2</comment_count>
      <attachid>453015</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-23 13:02:58 -0800</bug_when>
    <thetext>Created attachment 453015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846322</commentid>
    <comment_count>3</comment_count>
      <attachid>453303</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-26 11:36:28 -0800</bug_when>
    <thetext>Created attachment 453303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846350</commentid>
    <comment_count>4</comment_count>
      <attachid>453303</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-26 14:36:20 -0800</bug_when>
    <thetext>Comment on attachment 453303
Patch

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

review- because of the move semantic mistake

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:293
&gt; +    axChildrenIDs.reserveInitialCapacity(axChildrenCopy.size());

If it’s going to be common to return a vector much smaller than this, we may want to use shrinkToFit. On the other hand, if it’s a temporary that’s immediately used and deallocated then not so important.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:295
&gt; +        collectNodeChangesForSubtree(*axChild, axObject.objectID(), attachWrapper, changes, idsBeingChanged, WTFMove(filter));

This isn’t safe. We can’t use the function after moving it. I suggest passing the Function as const&amp;, not &amp;&amp;.

In some parts of our code, we figure out ways do to this kind of thing without recursion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846351</commentid>
    <comment_count>5</comment_count>
      <attachid>453303</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-26 14:38:48 -0800</bug_when>
    <thetext>Comment on attachment 453303
Patch

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

&gt;&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:295
&gt;&gt; +        collectNodeChangesForSubtree(*axChild, axObject.objectID(), attachWrapper, changes, idsBeingChanged, WTFMove(filter));
&gt; 
&gt; This isn’t safe. We can’t use the function after moving it. I suggest passing the Function as const&amp;, not &amp;&amp;.
&gt; 
&gt; In some parts of our code, we figure out ways do to this kind of thing without recursion.

My language here was imprecise:

We can’t use the function again after moving *from* it, so the next line of code where we call filter is a programming mistake. Best fix is probably to change this to take const Function&lt;bool(const AXCoreObject)&gt;&amp; instead, and removing the WTFMove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846426</commentid>
    <comment_count>6</comment_count>
      <attachid>453340</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-27 06:48:46 -0800</bug_when>
    <thetext>Created attachment 453340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846427</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-27 07:00:55 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 453303 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453303&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:295
&gt; &gt;&gt; +        collectNodeChangesForSubtree(*axChild, axObject.objectID(), attachWrapper, changes, idsBeingChanged, WTFMove(filter));
&gt; &gt; 
&gt; &gt; This isn’t safe. We can’t use the function after moving it. I suggest passing the Function as const&amp;, not &amp;&amp;.
&gt; &gt; 
&gt; &gt; In some parts of our code, we figure out ways do to this kind of thing without recursion.
&gt; 
&gt; My language here was imprecise:
&gt; 
&gt; We can’t use the function again after moving *from* it, so the next line of
&gt; code where we call filter is a programming mistake. Best fix is probably to
&gt; change this to take const Function&lt;bool(const AXCoreObject)&gt;&amp; instead, and
&gt; removing the WTFMove.

Fixed both issues that you pointed out. Concerning the move of a Function, thought that use after move would be ok in this case because the only state that Function is probably keeping is the address of the lambda, and that should be valid after the move, assuming that the move is not zeroing out that address. I.e., for Function, move and copy are the same. But I may be missing something about the implementation of Function. Also agree that for consistency with the move semantics, shouldn&apos;t be used after move. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846430</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-27 07:49:12 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #7)
&gt; Fixed both issues that you pointed out. Concerning the move of a Function,
&gt; thought that use after move would be ok in this case because the only state
&gt; that Function is probably keeping is the address of the lambda, and that
&gt; should be valid after the move, assuming that the move is not zeroing out
&gt; that address. I.e., for Function, move and copy are the same. But I may be
&gt; missing something about the implementation of Function. Also agree that for
&gt; consistency with the move semantics, shouldn&apos;t be used after move. Thanks!

Yes, I can’t emphasize this enough:

it would be *very* dangerous to use after move because we designed a particular class to be usable after moving; makes little sense but is of course possible to make a class work this way. We should absolutely *not* rely on WTF::Function being designed for use after moving from, even if it happens to be true due to implementation details at time of this writing.

In fact, we should probably go the other direction and create debug assertions for classes we design to catch use-after-move mistakes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846762</commentid>
    <comment_count>9</comment_count>
      <attachid>453424</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-28 14:02:17 -0800</bug_when>
    <thetext>Created attachment 453424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846768</commentid>
    <comment_count>10</comment_count>
      <attachid>453424</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 14:09:59 -0800</bug_when>
    <thetext>Comment on attachment 453424
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:437
&gt; +    auto isAncestor = Function&lt;FilterResponse(const AXCoreObject&amp;)&gt;([&amp;axDescendant] (const AXCoreObject&amp; axAncestor) {

I’d think we’d want this local to just be the lambda and construct the function as a side effect of passing it to collectNodeChangesForSubtree. Did you try that?

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:398
&gt; +    enum class FilterResponse : uint8_t {
&gt; +        Include,
&gt; +        Skip,
&gt; +        Stop,
&gt; +    };

I think these read better as one-liners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846804</commentid>
    <comment_count>11</comment_count>
      <attachid>453439</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-28 15:12:00 -0800</bug_when>
    <thetext>Created attachment 453439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846811</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-02-28 15:25:38 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #10)
&gt; Comment on attachment 453424 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453424&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:437
&gt; &gt; +    auto isAncestor = Function&lt;FilterResponse(const AXCoreObject&amp;)&gt;([&amp;axDescendant] (const AXCoreObject&amp; axAncestor) {
&gt; 
&gt; I’d think we’d want this local to just be the lambda and construct the
&gt; function as a side effect of passing it to collectNodeChangesForSubtree. Did
&gt; you try that?

Tried several variants with no luck, except this one. Either get

error: no viable conversion from &apos;(lambda at ./accessibility/isolatedtree/AXIsolatedTree.cpp:437:23)&apos; to &apos;const Function&lt;WebCore::AXIsolatedTree::FilterResponse (const WebCore::AXCoreObject &amp;)&gt;&apos;

or

error: no matching constructor for initialization of &apos;const Function&lt;WebCore::AXIsolatedTree::FilterResponse (const WebCore::AXCoreObject &amp;)&gt; &amp;&apos;

&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:398
&gt; &gt; +    enum class FilterResponse : uint8_t {
&gt; &gt; +        Include,
&gt; &gt; +        Skip,
&gt; &gt; +        Stop,
&gt; &gt; +    };
&gt; 
&gt; I think these read better as one-liners.

Yes, done. Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453015</attachid>
            <date>2022-02-23 13:02:58 -0800</date>
            <delta_ts>2022-02-26 11:36:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237104-20220223160257.patch</filename>
            <type>text/plain</type>
            <size>3935</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwMDM4NjNkNTBlMTI5
MDQxY2ExNWZmMGY2YjcxMTlmY2ZhYmEzYi4uYzVhMTE5OTQ0OTQzNGRhYTA0NDA2ZGIwZTI2ZWM2
MmIxMGE5YzhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTIzICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4gc2hvdWxkIHVwZGF0ZSB0aGUgZW50aXJlIHN1YnRyZWUgaWYg
dGhlcmUgYXJlIG5vIGRpZmZlcmVuY2VzIGluIHRoZSBjaGlsZHJlbiBvZiB0aGUgZXhpc3Rpbmcg
aXNvbGF0ZWQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3MTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTM3Mjg1MD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyB+MTIgdGVz
dHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorCisgICAgICAgIEluIHNvbWUgY2FzZXMgd2hlbiB1
cGRhdGVDaGlsZHJlbiBpcyBjYWxsZWQgZm9yIGFuIG9iamVjdCB0aGF0IGRvZXNuJ3QKKyAgICAg
ICAgZXhpc3QgaW4gdGhlIGlzb2xhdGVkIHRyZWUsIHdlIHdhbGsgdXAgdGhlIGhpZXJhcmNoeSB0
byBmaW5kIHRoZSBjbG9zZXN0CisgICAgICAgIGFuY2VzdG9yIHRoYXQgZXhpc3RzIGluIHRoZSB0
cmVlLiBGb3IgdGhhdCBhbmNlc3RvciB3ZSB0cnkgdG8gdXBkYXRlIGl0cworICAgICAgICBjaGls
ZHJlbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgY2hpbGRyZW4gb2YgdGhl
CisgICAgICAgIGNvcnJlc3BvbmRpbmcgbGl2ZSBhbmQgaXNvbGF0ZWQgb2JqZWN0cy4gVGhlIHBy
b2JsZW0gaXMgdGhhdCB0aGUKKyAgICAgICAgYW5jZXN0b3IgbWF5IGhhdmUgaWRlbnRpY2FsIGNo
aWxkcmVuIGluIGJvdGggdGhlIGxpdmUgYW5kIHRoZSBpc29sYXRlZAorICAgICAgICBvYmplY3Rz
LCByZXN1bHRpbmcgaW4gbm8gdXBkYXRlIHBlcmZvcm1lZCB0byB0aGUgaXNvbGF0ZWQgdHJlZS4g
V2l0aAorICAgICAgICB0aGlzIHBhdGNoLCB3ZSB1cGRhdGUgdGhlIGVudGlyZSBzdWJ0cmVlIHJv
b3RlZCBhdCB0aGUgYW5jZXN0b3IgaW4gc3VjaAorICAgICAgICBzY2VuYXJpby4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlU3VidHJlZSk6IEJyb3VnaHQgYmFjayB3aXRo
IGEgbmV3IGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CisKIDIwMjItMDItMjIgIEFuZHJlcyBHb256YWxleiAgPGFu
ZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgY3Jhc2ggaW4gc2V2ZXJhbCBB
WCBMYXlvdXRUZXN0cyBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAKaW5kZXggZGQ0YTI4NTdkMDY1YjI1ZGY3N2ZjYjAwM2QxMDhmNGFmMzg4OGFiNC4uMDgyODk3
MzNhY2JjMWQxYzJkODAwMDgyZWQzZTVkZWRhYWNiNDQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcApAQCAtNDEyLDcgKzQxMiwyOCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogICAgICAgICAvLyAgIDMuIFRodXMsIHdlIGRv
bid0IHdhbnQgdG8gZGVsZXRlIE9iamVjdCAxMjMgZnJvbSB0aGUgbm9kZW1hcCwgaW5zdGVhZCBh
bGxvd2luZyBpdCB0byBiZSBtb3ZlZC4KICAgICAgICAgcmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFw
KGF4SUQsIGF4QW5jZXN0b3IsIGlkc0JlaW5nQ2hhbmdlZCk7CiAgICAgfQotICAgIHF1ZXVlQ2hh
bmdlc0FuZFJlbW92YWxzKGNoYW5nZXMsIG9sZENoaWxkcmVuSURzKTsKKworICAgIGlmIChjaGFu
Z2VzLnNpemUoKSB8fCBvbGRDaGlsZHJlbklEcy5zaXplKCkpCisgICAgICAgIHF1ZXVlQ2hhbmdl
c0FuZFJlbW92YWxzKGNoYW5nZXMsIG9sZENoaWxkcmVuSURzKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgLy8gTm90aGluZyB3YXMgdXBkYXRlZC4gQXMgYSBsYXN0IHJlc29ydCwgdXBkYXRlIHRoZSBz
dWJ0cmVlLgorICAgICAgICB1cGRhdGVTdWJ0cmVlKCpheEFuY2VzdG9yKTsKKyAgICB9Cit9CisK
K3ZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVj
dCkKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlU3VidHJlZSIpOworICAg
IEFYTE9HKCZheE9iamVjdCk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGF1
dG8qIGF4UGFyZW50ID0gYXhPYmplY3QucGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7CisgICAgQVhJ
RCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCk7Cisg
ICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7CisgICAgSGFzaFNldDxBWElEPiBpZHNCZWlu
Z0FkZGVkOworICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoYXhPYmplY3QsIHBhcmVu
dElELCB0cnVlLCBjaGFuZ2VzLCAmaWRzQmVpbmdBZGRlZCk7CisgICAgcmVtb3ZlU3VidHJlZUZy
b21Ob2RlTWFwKGF4T2JqZWN0Lm9iamVjdElEKCksIGF4UGFyZW50LCBpZHNCZWluZ0FkZGVkKTsK
KyAgICBxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjaGFuZ2VzLCB7IGF4T2JqZWN0Lm9iamVjdElE
KCkgfSk7CiB9CiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9j
dXNlZE5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggNGFlMTI3MWE5Yzc0NTcwZDllNzhj
Zjc5YTU1MTQ0ZTBkMWJjZDNlNy4uN2FkMDU5YWE1OTc2NTRhZDMzNmI4NGQxMGI4MjllY2Y4NWVk
ZjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zNTUsNiArMzU1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlTm9kZShBWENvcmVPYmplY3QmKTsKICAgICB2b2lkIHVwZGF0ZU5vZGVQ
cm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmLCBBWFByb3BlcnR5TmFtZSk7CiAgICAgdm9pZCB1
cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmKTsKKyAgICB2b2lkIHVwZGF0ZVN1YnRyZWUoQVhD
b3JlT2JqZWN0Jik7CiAKICAgICBkb3VibGUgbG9hZGluZ1Byb2dyZXNzKCkgeyByZXR1cm4gbV9s
b2FkaW5nUHJvZ3Jlc3M7IH0KICAgICB2b2lkIHVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453303</attachid>
            <date>2022-02-26 11:36:28 -0800</date>
            <delta_ts>2022-02-27 06:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237104-20220226143627.patch</filename>
            <type>text/plain</type>
            <size>8825</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwMDM4NjNkNTBlMTI5
MDQxY2ExNWZmMGY2YjcxMTlmY2ZhYmEzYi4uNWE4ODBiM2Y0Njk0ZGE1OTkyZjRhNDNkZWRhOThj
NDVhN2E3NzMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTI2ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBpbiB0aGUgY2FzZSB3aGVuIGlzIGNhbGxlZCBm
b3IgYSBub24tZXhpc3RpbmcgaXNvbGF0ZWQgb2JqZWN0IG9yIG5vIGNoaWxkcmVuIGNoYW5nZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxMDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5MzcyODUwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVzIH4xMiB0ZXN0cyBpbiBpc29sYXRlZCB0
cmVlIG1vZGUuCisKKyAgICAgICAgV2hlbiB1cGRhdGVDaGlsZHJlbiBpcyBjYWxsZWQgZm9yIGFu
IG9iamVjdCB0aGF0IGhhcyBubyBjb3JyZXNwb25kaW5nCisgICAgICAgIGlzb2xhdGVkIG9iamVj
dCwgd2Ugbm93IGNyZWF0ZSB0aGUgdHJlZSBwYXRoIHRoYXQgY29ubmVjdHMgdGhlIGNsb3Nlc3QK
KyAgICAgICAgYW5jZXN0b3IgaW4gdGhlIGlzb2xhdGVkIHRyZWUgd2l0aCB0aGUgb2JqZWN0IGlu
IHF1ZXN0aW9uLiBUaGVuIHdlIGFwcGx5CisgICAgICAgIHRoZSBjaGlsZHJlbiBjb21wYXJpc29u
IGhldXJpc3RpY3MgdG8gdGhlIG5ld2x5IGFkZGVkIGlzb2xhdGVkIG9iamVjdCB0bworICAgICAg
ICBkZXRlcm1pbmUgd2hhdCBvYmplY3RzIHRvIGFkZCBvciByZW1vdmUgZnJvbSB0aGUgdHJlZS4K
KyAgICAgICAgSWYgbm8gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgdHJlZSwgaS5lLiwgdGhlcmUg
aXMgbm8gYSBtaXNzaW5nIHBhdGggYW5kCisgICAgICAgIHRoZXJlIGFyZSBubyBjaGFuZ2VzIGlu
IHRoZSBjaGlsZHJlbiBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCB3ZSBzdGlsbAorICAgICAgICByZS1n
ZW5lcmF0ZSB0aGUgc3VidHJlZSByb290ZWQgYXQgdGhlIGdpdmVuIG9iamVjdCBhcyBhIGxhc3Qg
cmVzb3J0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2Rl
Q2hhbmdlc0ZvclN1YnRyZWUpOgorICAgICAgICBUYWtlcyBhIGZpbHRlciB0byBleGNsdWRlIG9i
amVjdHMgZnJvbSBiZWluZyBhZGRlZCB0byB0aGUgaXNvbGF0ZWQgdHJlZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWElzb2xhdGVkVHJlZTo6Y29sbGVjdENoYW5nZXNGb3JNaXNzaW5nUGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlU3VidHJlZSk6CisgICAgICAgIEJyb3Vn
aHQgYmFjayB0aGlzIG1ldGhvZCB3aXRoIGEgbmV3IGltcGxlbWVudGF0aW9uLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisK
IDIwMjItMDItMjIgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBmb3IgY3Jhc2ggaW4gc2V2ZXJhbCBBWCBMYXlvdXRUZXN0cyBpbiBpc29sYXRl
ZCB0cmVlIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggZGQ0YTI4NTdkMDY1YjI1
ZGY3N2ZjYjAwM2QxMDhmNGFmMzg4OGFiNC4uYTg4ZGViMzlhNGNhMzlhMWE0YTFkMzY3MGViYmE1
ZDY1ZTIyZWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMjc1LDIxICsyNzUsMjcg
QEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29uc3QgVmVj
dG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLAogICAgICAgICBxdWV1ZUNoYW5nZShjaGFuZ2UpOwog
fQogCi12b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwg
VmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFYSUQ+KiBpZHNCZWluZ0NoYW5n
ZWQpCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwg
VmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFYSUQ+KiBpZHNCZWluZ0NoYW5n
ZWQsIEZ1bmN0aW9uPGJvb2woY29uc3QgQVhDb3JlT2JqZWN0Jik+JiYgZmlsdGVyKQogewogICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIik7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIGlmICghZmlsdGVyKGF4T2JqZWN0
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byBub2RlQ2hhbmdlID0gbm9kZUNoYW5nZUZv
ck9iamVjdChheE9iamVjdCwgcGFyZW50SUQsIGF0dGFjaFdyYXBwZXIpOwogICAgIGlmIChpZHNC
ZWluZ0NoYW5nZWQpCiAgICAgICAgIGlkc0JlaW5nQ2hhbmdlZC0+YWRkKG5vZGVDaGFuZ2UuaXNv
bGF0ZWRPYmplY3QtPm9iamVjdElEKCkpOwogICAgIGNoYW5nZXMuYXBwZW5kKFdURk1vdmUobm9k
ZUNoYW5nZSkpOwogCiAgICAgYXV0byBheENoaWxkcmVuQ29weSA9IGF4T2JqZWN0LmNoaWxkcmVu
KCk7Ci0gICAgYXV0byBheENoaWxkcmVuSURzID0gYXhDaGlsZHJlbkNvcHkubWFwKFsmXShhdXRv
JiBheENoaWxkKSB7Ci0gICAgICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoKmF4Q2hp
bGQsIGF4T2JqZWN0Lm9iamVjdElEKCksIGF0dGFjaFdyYXBwZXIsIGNoYW5nZXMsIGlkc0JlaW5n
Q2hhbmdlZCk7Ci0gICAgICAgIHJldHVybiBheENoaWxkLT5vYmplY3RJRCgpOwotICAgIH0pOwor
ICAgIFZlY3RvcjxBWElEPiBheENoaWxkcmVuSURzOworICAgIGF4Q2hpbGRyZW5JRHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShheENoaWxkcmVuQ29weS5zaXplKCkpOworICAgIGZvciAoYXV0byBh
eENoaWxkIDogYXhDaGlsZHJlbkNvcHkpIHsKKyAgICAgICAgY29sbGVjdE5vZGVDaGFuZ2VzRm9y
U3VidHJlZSgqYXhDaGlsZCwgYXhPYmplY3Qub2JqZWN0SUQoKSwgYXR0YWNoV3JhcHBlciwgY2hh
bmdlcywgaWRzQmVpbmdDaGFuZ2VkLCBXVEZNb3ZlKGZpbHRlcikpOworICAgICAgICBpZiAoZmls
dGVyKCpheENoaWxkKSkKKyAgICAgICAgICAgIGF4Q2hpbGRyZW5JRHMudW5jaGVja2VkQXBwZW5k
KGF4Q2hpbGQtPm9iamVjdElEKCkpOworICAgIH0KICAgICBtX25vZGVNYXAuc2V0KGF4T2JqZWN0
Lm9iamVjdElEKCksIFBhcmVudENoaWxkcmVuSURzIHsgcGFyZW50SUQsIFdURk1vdmUoYXhDaGls
ZHJlbklEcykgfSk7CiB9CiAKQEAgLTM3MiwxMiArMzc4LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSNpZm5kZWYgTkRFQlVHCisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5n
ZXM7CisgICAgSGFzaFNldDxBWElEPiBpZHNCZWluZ0NoYW5nZWQ7CisKICAgICBpZiAoYXhBbmNl
c3RvciAhPSAmYXhPYmplY3QpIHsKICAgICAgICAgQVhMT0cobWFrZVN0cmluZygiT3JpZ2luYWwg
b2JqZWN0IHdpdGggSUQgIiwgYXhPYmplY3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCksICIg
d2Fzbid0IGluIHRoZSBpc29sYXRlZCB0cmVlLCBzbyBpbnN0ZWFkIHVwZGF0aW5nIHRoZSBjbG9z
ZXN0IGluLWlzb2xhdGVkLXRyZWUgYW5jZXN0b3I6IikpOwogICAgICAgICBBWExPRyhheEFuY2Vz
dG9yKTsKKyAgICAgICAgY29sbGVjdENoYW5nZXNGb3JNaXNzaW5nUGF0aCgqYXhBbmNlc3Rvciwg
YXhPYmplY3QsIGNoYW5nZXMsIGlkc0JlaW5nQ2hhbmdlZCk7CiAgICAgfQotI2VuZGlmCiAKICAg
ICBhdXRvIG9sZElEcyA9IG1fbm9kZU1hcC5nZXQoYXhBbmNlc3Rvci0+b2JqZWN0SUQoKSk7CiAg
ICAgYXV0byYgb2xkQ2hpbGRyZW5JRHMgPSBvbGRJRHMuY2hpbGRyZW5JRHM7CkBAIC0zODUsOCAr
MzkzLDYgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0
JiBheE9iamVjdCkKICAgICBjb25zdCBhdXRvJiBuZXdDaGlsZHJlbiA9IGF4QW5jZXN0b3ItPmNo
aWxkcmVuKCk7CiAgICAgYXV0byBuZXdDaGlsZHJlbklEcyA9IGF4QW5jZXN0b3ItPmNoaWxkcmVu
SURzKGZhbHNlKTsKIAotICAgIFZlY3RvcjxOb2RlQ2hhbmdlPiBjaGFuZ2VzOwotICAgIEhhc2hT
ZXQ8QVhJRD4gaWRzQmVpbmdDaGFuZ2VkOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3
Q2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQVNTRVJUKG5ld0NoaWxkcmVuW2ldLT5v
YmplY3RJRCgpID09IG5ld0NoaWxkcmVuSURzW2ldKTsKICAgICAgICAgQVNTRVJUKG5ld0NoaWxk
cmVuSURzW2ldLmlzVmFsaWQoKSk7CkBAIC00MTIsNyArNDE4LDQ0IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIC8v
ICAgMy4gVGh1cywgd2UgZG9uJ3Qgd2FudCB0byBkZWxldGUgT2JqZWN0IDEyMyBmcm9tIHRoZSBu
b2RlbWFwLCBpbnN0ZWFkIGFsbG93aW5nIGl0IHRvIGJlIG1vdmVkLgogICAgICAgICByZW1vdmVT
dWJ0cmVlRnJvbU5vZGVNYXAoYXhJRCwgYXhBbmNlc3RvciwgaWRzQmVpbmdDaGFuZ2VkKTsKICAg
ICB9Ci0gICAgcXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY2hhbmdlcywgb2xkQ2hpbGRyZW5JRHMp
OworCisgICAgaWYgKGNoYW5nZXMuc2l6ZSgpIHx8IG9sZENoaWxkcmVuSURzLnNpemUoKSkKKyAg
ICAgICAgcXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY2hhbmdlcywgb2xkQ2hpbGRyZW5JRHMpOwor
ICAgIGVsc2UgeworICAgICAgICAvLyBOb3RoaW5nIHdhcyB1cGRhdGVkLiBBcyBhIGxhc3QgcmVz
b3J0LCB1cGRhdGUgdGhlIHN1YnRyZWUuCisgICAgICAgIHVwZGF0ZVN1YnRyZWUoKmF4QW5jZXN0
b3IpOworICAgIH0KK30KKwordm9pZCBBWElzb2xhdGVkVHJlZTo6Y29sbGVjdENoYW5nZXNGb3JN
aXNzaW5nUGF0aChBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QmIGF4RGVzY2Vu
ZGFudCwgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFYSUQ+JiBpZHNCZWlu
Z0NoYW5nZWQpCit7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNvbGxlY3RDaGFuZ2Vz
Rm9yTWlzc2luZ1BhdGgiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgYXV0
byBpc0FuY2VzdG9yID0gWyZheERlc2NlbmRhbnRdIChjb25zdCBBWENvcmVPYmplY3QmIGF4QW5j
ZXN0b3IpIHsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcihheERl
c2NlbmRhbnQsIHRydWUsIFsmYXhBbmNlc3Rvcl0gKGNvbnN0IGF1dG8mIG9iamVjdCkgeworICAg
ICAgICAgICAgcmV0dXJuICZvYmplY3QgPT0gJmF4QW5jZXN0b3I7CisgICAgICAgIH0pOworICAg
IH07CisKKyAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0LnBhcmVudE9iamVjdFVuaWdub3Jl
ZCgpOworICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVudCA/IGF4UGFyZW50LT5vYmplY3RJRCgp
IDogQVhJRCgpOworICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoYXhPYmplY3QsIHBh
cmVudElELCB0cnVlLCBjaGFuZ2VzLCAmaWRzQmVpbmdDaGFuZ2VkLCBXVEZNb3ZlKGlzQW5jZXN0
b3IpKTsKK30KKwordm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlU3VidHJlZShBWENvcmVPYmpl
Y3QmIGF4T2JqZWN0KQoreworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVTdWJ0
cmVlIik7CisgICAgQVhMT0coJmF4T2JqZWN0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgYXV0byogYXhQYXJlbnQgPSBheE9iamVjdC5wYXJlbnRPYmplY3RVbmlnbm9yZWQo
KTsKKyAgICBBWElEIHBhcmVudElEID0gYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6
IEFYSUQoKTsKKyAgICBWZWN0b3I8Tm9kZUNoYW5nZT4gY2hhbmdlczsKKyAgICBIYXNoU2V0PEFY
SUQ+IGlkc0JlaW5nQWRkZWQ7CisgICAgY29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZShheE9i
amVjdCwgcGFyZW50SUQsIHRydWUsIGNoYW5nZXMsICZpZHNCZWluZ0FkZGVkKTsKKyAgICByZW1v
dmVTdWJ0cmVlRnJvbU5vZGVNYXAoYXhPYmplY3Qub2JqZWN0SUQoKSwgYXhQYXJlbnQsIGlkc0Jl
aW5nQWRkZWQpOworICAgIHF1ZXVlQ2hhbmdlc0FuZFJlbW92YWxzKGNoYW5nZXMsIHsgYXhPYmpl
Y3Qub2JqZWN0SUQoKSB9KTsKIH0KIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0
ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA0YWUxMjcxYTlj
NzQ1NzBkOWU3OGNmNzlhNTUxNDRlMGQxYmNkM2U3Li5mYTNiMjBmYzFlZTdlODcyNzJmZjI2MTRm
YjY1NTI1N2IxMzA0M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiUGFn
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM1NSw2ICszNTYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYpOwogICAgIHZvaWQgdXBkYXRlTm9k
ZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYsIEFYUHJvcGVydHlOYW1lKTsKICAgICB2b2lk
IHVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYpOworICAgIHZvaWQgdXBkYXRlU3VidHJlZShB
WENvcmVPYmplY3QmKTsKIAogICAgIGRvdWJsZSBsb2FkaW5nUHJvZ3Jlc3MoKSB7IHJldHVybiBt
X2xvYWRpbmdQcm9ncmVzczsgfQogICAgIHZvaWQgdXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRvdWJs
ZSk7CkBAIC0zODgsNyArMzkwLDggQEAgcHJpdmF0ZToKICAgICAvLyBDb21wdXRlcyB0aGUgcGFy
ZW50IElEIG9mIHRoZSBnaXZlbiBvYmplY3QsIHdoaWNoIGlzIGdlbmVyYWxseSB0aGUgImFzc3Vt
ZWQiIHBhcmVudCBJRCAoYnV0IG5vdCBhbHdheXMsIGxpa2UgaW4gdGhlIGNhc2Ugb2YgdGFibGVz
KS4KICAgICBBWElEIHBhcmVudElERm9yT2JqZWN0KEFYQ29yZU9iamVjdCYsIEFYSUQgYXNzdW1l
ZFBhcmVudElEKTsKICAgICBOb2RlQ2hhbmdlIG5vZGVDaGFuZ2VGb3JPYmplY3QoQVhDb3JlT2Jq
ZWN0JiwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyID0gdHJ1ZSk7Ci0gICAgdm9p
ZCBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50
SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiwgSGFzaFNldDxBWElE
PiogPSBudWxscHRyKTsKKyAgICB2b2lkIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhD
b3JlT2JqZWN0JiwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9k
ZUNoYW5nZT4mLCBIYXNoU2V0PEFYSUQ+KiA9IG51bGxwdHIsIEZ1bmN0aW9uPGJvb2wgKGNvbnN0
IEFYQ29yZU9iamVjdCYpPiYmID0gW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiB0cnVlOyB9KTsK
KyAgICB2b2lkIGNvbGxlY3RDaGFuZ2VzRm9yTWlzc2luZ1BhdGgoQVhDb3JlT2JqZWN0JiwgQVhD
b3JlT2JqZWN0JiwgVmVjdG9yPE5vZGVDaGFuZ2U+JiwgSGFzaFNldDxBWElEPiYpOwogICAgIHZv
aWQgcXVldWVDaGFuZ2UoY29uc3QgTm9kZUNoYW5nZSYpIFdURl9SRVFVSVJFU19MT0NLKG1fY2hh
bmdlTG9nTG9jayk7CiAgICAgdm9pZCBxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjb25zdCBWZWN0
b3I8Tm9kZUNoYW5nZT4mLCBjb25zdCBWZWN0b3I8QVhJRD4mID0geyB9KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453340</attachid>
            <date>2022-02-27 06:48:46 -0800</date>
            <delta_ts>2022-02-28 14:02:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237104-20220227094845.patch</filename>
            <type>text/plain</type>
            <size>8440</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwMDM4NjNkNTBlMTI5
MDQxY2ExNWZmMGY2YjcxMTlmY2ZhYmEzYi4uZjUwM2JjN2E1MjI1YmM2ZTJlMTMyODY5YzFmM2Y0
ZGVjZGJjZDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTI3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBpbiB0aGUgY2FzZSB3aGVuIGlzIGNhbGxlZCBm
b3IgYSBub24tZXhpc3RpbmcgaXNvbGF0ZWQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTM3Mjg1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyB+MTIgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorCisgICAgICAgIFdo
ZW4gdXBkYXRlQ2hpbGRyZW4gaXMgY2FsbGVkIGZvciBhbiBvYmplY3QgdGhhdCBoYXMgbm8gY29y
cmVzcG9uZGluZworICAgICAgICBpc29sYXRlZCBvYmplY3QsIHdlIG5vdyBjcmVhdGUgdGhlIHRy
ZWUgcGF0aCB0aGF0IGNvbm5lY3RzIHRoZSBjbG9zZXN0CisgICAgICAgIGFuY2VzdG9yIGluIHRo
ZSBpc29sYXRlZCB0cmVlIHdpdGggdGhlIG9iamVjdCBpbiBxdWVzdGlvbi4gVGhlbiB3ZSBhcHBs
eQorICAgICAgICB0aGUgY2hpbGRyZW4gY29tcGFyaXNvbiBoZXVyaXN0aWNzIHRvIHRoZSBuZXds
eSBhZGRlZCBpc29sYXRlZCBvYmplY3QgdG8KKyAgICAgICAgZGV0ZXJtaW5lIHdoYXQgb2JqZWN0
cyB0byBhZGQgb3IgcmVtb3ZlIGZyb20gdGhlIHRyZWUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisgICAgICAgIFRh
a2VzIGEgZmlsdGVyIHRvIGV4Y2x1ZGUgb2JqZWN0cyBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSBp
c29sYXRlZCB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Q2hhbmdl
c0Zvck1pc3NpbmdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVTdWJ0cmVlKToKKyAgICAgICAgQnJvdWdodCBiYWNrIHRoaXMgbWV0aG9kIHdpdGggYSBuZXcg
aW1wbGVtZW50YXRpb24uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0
Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKwogMjAyMi0wMi0yMiAgQW5kcmVzIEdvbnphbGV6ICA8
YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBzZXZlcmFs
IEFYIExheW91dFRlc3RzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcAppbmRleCBkZDRhMjg1N2QwNjViMjVkZjc3ZmNiMDAzZDEwOGY0YWYzODg4YWI0Li5kY2Zl
YTA0NTk4MmRlMjg2YjM4N2E5NDI2YWQ1MmU0ODU4ZGVmMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCkBAIC0yNzUsMjEgKzI3NSwyOCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNo
YW5nZXNBbmRSZW1vdmFscyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAgICAg
ICAgIHF1ZXVlQ2hhbmdlKGNoYW5nZSk7CiB9CiAKLXZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxl
Y3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhh
c2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxl
Y3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhh
c2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCwgY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBB
WENvcmVPYmplY3QmKT4mIGZpbHRlcikKIHsKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6
Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKKyAgICBpZiAoIWZpbHRlcihheE9iamVjdCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IGF1dG8gbm9kZUNoYW5nZSA9IG5vZGVDaGFuZ2VGb3JPYmplY3QoYXhPYmplY3QsIHBhcmVudElE
LCBhdHRhY2hXcmFwcGVyKTsKICAgICBpZiAoaWRzQmVpbmdDaGFuZ2VkKQogICAgICAgICBpZHNC
ZWluZ0NoYW5nZWQtPmFkZChub2RlQ2hhbmdlLmlzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpKTsK
ICAgICBjaGFuZ2VzLmFwcGVuZChXVEZNb3ZlKG5vZGVDaGFuZ2UpKTsKIAogICAgIGF1dG8gYXhD
aGlsZHJlbkNvcHkgPSBheE9iamVjdC5jaGlsZHJlbigpOwotICAgIGF1dG8gYXhDaGlsZHJlbklE
cyA9IGF4Q2hpbGRyZW5Db3B5Lm1hcChbJl0oYXV0byYgYXhDaGlsZCkgewotICAgICAgICBjb2xs
ZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKCpheENoaWxkLCBheE9iamVjdC5vYmplY3RJRCgpLCBh
dHRhY2hXcmFwcGVyLCBjaGFuZ2VzLCBpZHNCZWluZ0NoYW5nZWQpOwotICAgICAgICByZXR1cm4g
YXhDaGlsZC0+b2JqZWN0SUQoKTsKLSAgICB9KTsKKyAgICBWZWN0b3I8QVhJRD4gYXhDaGlsZHJl
bklEczsKKyAgICBheENoaWxkcmVuSURzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXhDaGlsZHJl
bkNvcHkuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8gYXhDaGlsZCA6IGF4Q2hpbGRyZW5Db3B5KSB7
CisgICAgICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoKmF4Q2hpbGQsIGF4T2JqZWN0
Lm9iamVjdElEKCksIGF0dGFjaFdyYXBwZXIsIGNoYW5nZXMsIGlkc0JlaW5nQ2hhbmdlZCwgZmls
dGVyKTsKKyAgICAgICAgaWYgKGZpbHRlcigqYXhDaGlsZCkpCisgICAgICAgICAgICBheENoaWxk
cmVuSURzLnVuY2hlY2tlZEFwcGVuZChheENoaWxkLT5vYmplY3RJRCgpKTsKKyAgICB9CisgICAg
YXhDaGlsZHJlbklEcy5zaHJpbmtUb0ZpdCgpOwogICAgIG1fbm9kZU1hcC5zZXQoYXhPYmplY3Qu
b2JqZWN0SUQoKSwgUGFyZW50Q2hpbGRyZW5JRHMgeyBwYXJlbnRJRCwgV1RGTW92ZShheENoaWxk
cmVuSURzKSB9KTsKIH0KIApAQCAtMzcyLDEyICszNzksMTQgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotI2lmbmRlZiBOREVCVUcKKyAgICBWZWN0b3I8Tm9kZUNoYW5nZT4gY2hhbmdl
czsKKyAgICBIYXNoU2V0PEFYSUQ+IGlkc0JlaW5nQ2hhbmdlZDsKKwogICAgIGlmIChheEFuY2Vz
dG9yICE9ICZheE9iamVjdCkgewogICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJPcmlnaW5hbCBv
YmplY3Qgd2l0aCBJRCAiLCBheE9iamVjdC5vYmplY3RJRCgpLmxvZ2dpbmdTdHJpbmcoKSwgIiB3
YXNuJ3QgaW4gdGhlIGlzb2xhdGVkIHRyZWUsIHNvIGluc3RlYWQgdXBkYXRpbmcgdGhlIGNsb3Nl
c3QgaW4taXNvbGF0ZWQtdHJlZSBhbmNlc3RvcjoiKSk7CiAgICAgICAgIEFYTE9HKGF4QW5jZXN0
b3IpOworICAgICAgICBjb2xsZWN0Q2hhbmdlc0Zvck1pc3NpbmdQYXRoKCpheEFuY2VzdG9yLCBh
eE9iamVjdCwgY2hhbmdlcywgaWRzQmVpbmdDaGFuZ2VkKTsKICAgICB9Ci0jZW5kaWYKIAogICAg
IGF1dG8gb2xkSURzID0gbV9ub2RlTWFwLmdldChheEFuY2VzdG9yLT5vYmplY3RJRCgpKTsKICAg
ICBhdXRvJiBvbGRDaGlsZHJlbklEcyA9IG9sZElEcy5jaGlsZHJlbklEczsKQEAgLTM4NSw4ICsz
OTQsNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3Qm
IGF4T2JqZWN0KQogICAgIGNvbnN0IGF1dG8mIG5ld0NoaWxkcmVuID0gYXhBbmNlc3Rvci0+Y2hp
bGRyZW4oKTsKICAgICBhdXRvIG5ld0NoaWxkcmVuSURzID0gYXhBbmNlc3Rvci0+Y2hpbGRyZW5J
RHMoZmFsc2UpOwogCi0gICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7Ci0gICAgSGFzaFNl
dDxBWElEPiBpZHNCZWluZ0NoYW5nZWQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuZXdD
aGlsZHJlbi5zaXplKCk7ICsraSkgewogICAgICAgICBBU1NFUlQobmV3Q2hpbGRyZW5baV0tPm9i
amVjdElEKCkgPT0gbmV3Q2hpbGRyZW5JRHNbaV0pOwogICAgICAgICBBU1NFUlQobmV3Q2hpbGRy
ZW5JRHNbaV0uaXNWYWxpZCgpKTsKQEAgLTQxMiw5ICs0MTksNDEgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICAgICAgLy8g
ICAzLiBUaHVzLCB3ZSBkb24ndCB3YW50IHRvIGRlbGV0ZSBPYmplY3QgMTIzIGZyb20gdGhlIG5v
ZGVtYXAsIGluc3RlYWQgYWxsb3dpbmcgaXQgdG8gYmUgbW92ZWQuCiAgICAgICAgIHJlbW92ZVN1
YnRyZWVGcm9tTm9kZU1hcChheElELCBheEFuY2VzdG9yLCBpZHNCZWluZ0NoYW5nZWQpOwogICAg
IH0KKwogICAgIHF1ZXVlQ2hhbmdlc0FuZFJlbW92YWxzKGNoYW5nZXMsIG9sZENoaWxkcmVuSURz
KTsKIH0KIAordm9pZCBBWElzb2xhdGVkVHJlZTo6Y29sbGVjdENoYW5nZXNGb3JNaXNzaW5nUGF0
aChBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QmIGF4RGVzY2VuZGFudCwgVmVj
dG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFYSUQ+JiBpZHNCZWluZ0NoYW5nZWQp
Cit7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNvbGxlY3RDaGFuZ2VzRm9yTWlzc2lu
Z1BhdGgiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgYXV0byBpc0FuY2Vz
dG9yID0gRnVuY3Rpb248Ym9vbChjb25zdCBBWENvcmVPYmplY3QmKT4oWyZheERlc2NlbmRhbnRd
IChjb25zdCBBWENvcmVPYmplY3QmIGF4QW5jZXN0b3IpIHsKKyAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHk6OmZpbmRBbmNlc3RvcihheERlc2NlbmRhbnQsIHRydWUsIFsmYXhBbmNlc3Rvcl0g
KGNvbnN0IGF1dG8mIG9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuICZvYmplY3QgPT0gJmF4
QW5jZXN0b3I7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgYXV0byogYXhQYXJlbnQgPSBh
eE9iamVjdC5wYXJlbnRPYmplY3RVbmlnbm9yZWQoKTsKKyAgICBBWElEIHBhcmVudElEID0gYXhQ
YXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKKyAgICBjb2xsZWN0Tm9kZUNo
YW5nZXNGb3JTdWJ0cmVlKGF4T2JqZWN0LCBwYXJlbnRJRCwgdHJ1ZSwgY2hhbmdlcywgJmlkc0Jl
aW5nQ2hhbmdlZCwgaXNBbmNlc3Rvcik7Cit9CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0
ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6dXBkYXRlU3VidHJlZSIpOworICAgIEFYTE9HKCZheE9iamVjdCk7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGF1dG8qIGF4UGFyZW50ID0gYXhPYmplY3QucGFy
ZW50T2JqZWN0VW5pZ25vcmVkKCk7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQ
YXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCk7CisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5n
ZXM7CisgICAgSGFzaFNldDxBWElEPiBpZHNCZWluZ0FkZGVkOworICAgIGNvbGxlY3ROb2RlQ2hh
bmdlc0ZvclN1YnRyZWUoYXhPYmplY3QsIHBhcmVudElELCB0cnVlLCBjaGFuZ2VzLCAmaWRzQmVp
bmdBZGRlZCk7CisgICAgcmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKGF4T2JqZWN0Lm9iamVjdElE
KCksIGF4UGFyZW50LCBpZHNCZWluZ0FkZGVkKTsKKyAgICBxdWV1ZUNoYW5nZXNBbmRSZW1vdmFs
cyhjaGFuZ2VzLCB7IGF4T2JqZWN0Lm9iamVjdElEKCkgfSk7Cit9CisKIFJlZlB0cjxBWElzb2xh
dGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewogICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXgg
NGFlMTI3MWE5Yzc0NTcwZDllNzhjZjc5YTU1MTQ0ZTBkMWJjZDNlNy4uZTczZTVmMDQ2ZGVkYTky
MzQzYzBlZTVhY2RiMmE0ZGUzYWQ4M2RhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNTUsNiArMzU2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlTm9kZShBWENvcmVPYmplY3QmKTsKICAgICB2b2lk
IHVwZGF0ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmLCBBWFByb3BlcnR5TmFtZSk7
CiAgICAgdm9pZCB1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmKTsKKyAgICB2b2lkIHVwZGF0
ZVN1YnRyZWUoQVhDb3JlT2JqZWN0Jik7CiAKICAgICBkb3VibGUgbG9hZGluZ1Byb2dyZXNzKCkg
eyByZXR1cm4gbV9sb2FkaW5nUHJvZ3Jlc3M7IH0KICAgICB2b2lkIHVwZGF0ZUxvYWRpbmdQcm9n
cmVzcyhkb3VibGUpOwpAQCAtMzg4LDcgKzM5MCw4IEBAIHByaXZhdGU6CiAgICAgLy8gQ29tcHV0
ZXMgdGhlIHBhcmVudCBJRCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCB3aGljaCBpcyBnZW5lcmFsbHkg
dGhlICJhc3N1bWVkIiBwYXJlbnQgSUQgKGJ1dCBub3QgYWx3YXlzLCBsaWtlIGluIHRoZSBjYXNl
IG9mIHRhYmxlcykuCiAgICAgQVhJRCBwYXJlbnRJREZvck9iamVjdChBWENvcmVPYmplY3QmLCBB
WElEIGFzc3VtZWRQYXJlbnRJRCk7CiAgICAgTm9kZUNoYW5nZSBub2RlQ2hhbmdlRm9yT2JqZWN0
KEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciA9IHRydWUp
OwotICAgIHZvaWQgY29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZShBWENvcmVPYmplY3QmLCBB
WElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIsIFZlY3RvcjxOb2RlQ2hhbmdlPiYsIEhh
c2hTZXQ8QVhJRD4qID0gbnVsbHB0cik7CisgICAgdm9pZCBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JT
dWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwg
VmVjdG9yPE5vZGVDaGFuZ2U+JiwgSGFzaFNldDxBWElEPiogPSBudWxscHRyLCBjb25zdCBGdW5j
dGlvbjxib29sKGNvbnN0IEFYQ29yZU9iamVjdCYpPiYgPSBbXSAoY29uc3QgYXV0byYpIHsgcmV0
dXJuIHRydWU7IH0pOworICAgIHZvaWQgY29sbGVjdENoYW5nZXNGb3JNaXNzaW5nUGF0aChBWENv
cmVPYmplY3QmLCBBWENvcmVPYmplY3QmLCBWZWN0b3I8Tm9kZUNoYW5nZT4mLCBIYXNoU2V0PEFY
SUQ+Jik7CiAgICAgdm9pZCBxdWV1ZUNoYW5nZShjb25zdCBOb2RlQ2hhbmdlJikgV1RGX1JFUVVJ
UkVTX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsKICAgICB2b2lkIHF1ZXVlQ2hhbmdlc0FuZFJlbW92
YWxzKGNvbnN0IFZlY3RvcjxOb2RlQ2hhbmdlPiYsIGNvbnN0IFZlY3RvcjxBWElEPiYgPSB7IH0p
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453424</attachid>
            <date>2022-02-28 14:02:17 -0800</date>
            <delta_ts>2022-02-28 15:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237104-20220228170216.patch</filename>
            <type>text/plain</type>
            <size>9015</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwMDM4NjNkNTBlMTI5
MDQxY2ExNWZmMGY2YjcxMTlmY2ZhYmEzYi4uZjUwM2JjN2E1MjI1YmM2ZTJlMTMyODY5YzFmM2Y0
ZGVjZGJjZDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTI3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBpbiB0aGUgY2FzZSB3aGVuIGlzIGNhbGxlZCBm
b3IgYSBub24tZXhpc3RpbmcgaXNvbGF0ZWQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTM3Mjg1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyB+MTIgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorCisgICAgICAgIFdo
ZW4gdXBkYXRlQ2hpbGRyZW4gaXMgY2FsbGVkIGZvciBhbiBvYmplY3QgdGhhdCBoYXMgbm8gY29y
cmVzcG9uZGluZworICAgICAgICBpc29sYXRlZCBvYmplY3QsIHdlIG5vdyBjcmVhdGUgdGhlIHRy
ZWUgcGF0aCB0aGF0IGNvbm5lY3RzIHRoZSBjbG9zZXN0CisgICAgICAgIGFuY2VzdG9yIGluIHRo
ZSBpc29sYXRlZCB0cmVlIHdpdGggdGhlIG9iamVjdCBpbiBxdWVzdGlvbi4gVGhlbiB3ZSBhcHBs
eQorICAgICAgICB0aGUgY2hpbGRyZW4gY29tcGFyaXNvbiBoZXVyaXN0aWNzIHRvIHRoZSBuZXds
eSBhZGRlZCBpc29sYXRlZCBvYmplY3QgdG8KKyAgICAgICAgZGV0ZXJtaW5lIHdoYXQgb2JqZWN0
cyB0byBhZGQgb3IgcmVtb3ZlIGZyb20gdGhlIHRyZWUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisgICAgICAgIFRh
a2VzIGEgZmlsdGVyIHRvIGV4Y2x1ZGUgb2JqZWN0cyBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSBp
c29sYXRlZCB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Q2hhbmdl
c0Zvck1pc3NpbmdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVTdWJ0cmVlKToKKyAgICAgICAgQnJvdWdodCBiYWNrIHRoaXMgbWV0aG9kIHdpdGggYSBuZXcg
aW1wbGVtZW50YXRpb24uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0
Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKwogMjAyMi0wMi0yMiAgQW5kcmVzIEdvbnphbGV6ICA8
YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBzZXZlcmFs
IEFYIExheW91dFRlc3RzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcAppbmRleCBkZDRhMjg1N2QwNjViMjVkZjc3ZmNiMDAzZDEwOGY0YWYzODg4YWI0Li42OTFi
MGMwMDc3YjJmM2MzZTY5NmM1MjRhNGM4OTMyNDBmY2U5OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCkBAIC0yNzUsMjEgKzI3NSwzNCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNo
YW5nZXNBbmRSZW1vdmFscyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAgICAg
ICAgIHF1ZXVlQ2hhbmdlKGNoYW5nZSk7CiB9CiAKLXZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxl
Y3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhh
c2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxl
Y3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhh
c2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCwgY29uc3QgRnVuY3Rpb248RmlsdGVyUmVzcG9u
c2UoY29uc3QgQVhDb3JlT2JqZWN0Jik+JiBmaWx0ZXIpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCisgICAgYXV0byBmaWx0ZXJSZXNwb25zZSA9IGZpbHRlcihheE9iamVj
dCk7CisgICAgaWYgKGZpbHRlclJlc3BvbnNlID09IEZpbHRlclJlc3BvbnNlOjpTa2lwKQorICAg
ICAgICByZXR1cm47CisKICAgICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hhbmdlRm9yT2JqZWN0
KGF4T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlcik7CiAgICAgaWYgKGlkc0JlaW5nQ2hh
bmdlZCkKICAgICAgICAgaWRzQmVpbmdDaGFuZ2VkLT5hZGQobm9kZUNoYW5nZS5pc29sYXRlZE9i
amVjdC0+b2JqZWN0SUQoKSk7CiAgICAgY2hhbmdlcy5hcHBlbmQoV1RGTW92ZShub2RlQ2hhbmdl
KSk7CiAKKyAgICBpZiAoZmlsdGVyUmVzcG9uc2UgPT0gRmlsdGVyUmVzcG9uc2U6OlN0b3ApIHsK
KyAgICAgICAgbV9ub2RlTWFwLnNldChheE9iamVjdC5vYmplY3RJRCgpLCBQYXJlbnRDaGlsZHJl
bklEcyB7IHBhcmVudElELCB7IH0gfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBh
dXRvIGF4Q2hpbGRyZW5Db3B5ID0gYXhPYmplY3QuY2hpbGRyZW4oKTsKLSAgICBhdXRvIGF4Q2hp
bGRyZW5JRHMgPSBheENoaWxkcmVuQ29weS5tYXAoWyZdKGF1dG8mIGF4Q2hpbGQpIHsKLSAgICAg
ICAgY29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSgqYXhDaGlsZCwgYXhPYmplY3Qub2JqZWN0
SUQoKSwgYXR0YWNoV3JhcHBlciwgY2hhbmdlcywgaWRzQmVpbmdDaGFuZ2VkKTsKLSAgICAgICAg
cmV0dXJuIGF4Q2hpbGQtPm9iamVjdElEKCk7Ci0gICAgfSk7CisgICAgVmVjdG9yPEFYSUQ+IGF4
Q2hpbGRyZW5JRHM7CisgICAgYXhDaGlsZHJlbklEcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF4
Q2hpbGRyZW5Db3B5LnNpemUoKSk7CisgICAgZm9yIChhdXRvIGF4Q2hpbGQgOiBheENoaWxkcmVu
Q29weSkgeworICAgICAgICBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKCpheENoaWxkLCBh
eE9iamVjdC5vYmplY3RJRCgpLCBhdHRhY2hXcmFwcGVyLCBjaGFuZ2VzLCBpZHNCZWluZ0NoYW5n
ZWQsIGZpbHRlcik7CisgICAgICAgIGlmIChmaWx0ZXIoKmF4Q2hpbGQpID09IEZpbHRlclJlc3Bv
bnNlOjpJbmNsdWRlKQorICAgICAgICAgICAgYXhDaGlsZHJlbklEcy51bmNoZWNrZWRBcHBlbmQo
YXhDaGlsZC0+b2JqZWN0SUQoKSk7CisgICAgfQorICAgIGF4Q2hpbGRyZW5JRHMuc2hyaW5rVG9G
aXQoKTsKICAgICBtX25vZGVNYXAuc2V0KGF4T2JqZWN0Lm9iamVjdElEKCksIFBhcmVudENoaWxk
cmVuSURzIHsgcGFyZW50SUQsIFdURk1vdmUoYXhDaGlsZHJlbklEcykgfSk7CiB9CiAKQEAgLTM3
MiwxMiArMzg1LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29y
ZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZm5kZWYgTkRF
QlVHCisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7CisgICAgSGFzaFNldDxBWElEPiBp
ZHNCZWluZ0NoYW5nZWQ7CisKICAgICBpZiAoYXhBbmNlc3RvciAhPSAmYXhPYmplY3QpIHsKICAg
ICAgICAgQVhMT0cobWFrZVN0cmluZygiT3JpZ2luYWwgb2JqZWN0IHdpdGggSUQgIiwgYXhPYmpl
Y3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCksICIgd2Fzbid0IGluIHRoZSBpc29sYXRlZCB0
cmVlLCBzbyBpbnN0ZWFkIHVwZGF0aW5nIHRoZSBjbG9zZXN0IGluLWlzb2xhdGVkLXRyZWUgYW5j
ZXN0b3I6IikpOwogICAgICAgICBBWExPRyhheEFuY2VzdG9yKTsKKyAgICAgICAgY29sbGVjdENo
YW5nZXNGb3JNaXNzaW5nUGF0aCgqYXhBbmNlc3RvciwgYXhPYmplY3QsIGNoYW5nZXMsIGlkc0Jl
aW5nQ2hhbmdlZCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBhdXRvIG9sZElEcyA9IG1fbm9kZU1h
cC5nZXQoYXhBbmNlc3Rvci0+b2JqZWN0SUQoKSk7CiAgICAgYXV0byYgb2xkQ2hpbGRyZW5JRHMg
PSBvbGRJRHMuY2hpbGRyZW5JRHM7CkBAIC0zODUsOCArNDAwLDYgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICBjb25zdCBh
dXRvJiBuZXdDaGlsZHJlbiA9IGF4QW5jZXN0b3ItPmNoaWxkcmVuKCk7CiAgICAgYXV0byBuZXdD
aGlsZHJlbklEcyA9IGF4QW5jZXN0b3ItPmNoaWxkcmVuSURzKGZhbHNlKTsKIAotICAgIFZlY3Rv
cjxOb2RlQ2hhbmdlPiBjaGFuZ2VzOwotICAgIEhhc2hTZXQ8QVhJRD4gaWRzQmVpbmdDaGFuZ2Vk
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgQVNTRVJUKG5ld0NoaWxkcmVuW2ldLT5vYmplY3RJRCgpID09IG5ld0NoaWxkcmVu
SURzW2ldKTsKICAgICAgICAgQVNTRVJUKG5ld0NoaWxkcmVuSURzW2ldLmlzVmFsaWQoKSk7CkBA
IC00MTIsOSArNDI1LDQ1IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIC8vICAgMy4gVGh1cywgd2UgZG9uJ3Qgd2Fu
dCB0byBkZWxldGUgT2JqZWN0IDEyMyBmcm9tIHRoZSBub2RlbWFwLCBpbnN0ZWFkIGFsbG93aW5n
IGl0IHRvIGJlIG1vdmVkLgogICAgICAgICByZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoYXhJRCwg
YXhBbmNlc3RvciwgaWRzQmVpbmdDaGFuZ2VkKTsKICAgICB9CisKICAgICBxdWV1ZUNoYW5nZXNB
bmRSZW1vdmFscyhjaGFuZ2VzLCBvbGRDaGlsZHJlbklEcyk7CiB9CiAKK3ZvaWQgQVhJc29sYXRl
ZFRyZWU6OmNvbGxlY3RDaGFuZ2VzRm9yTWlzc2luZ1BhdGgoQVhDb3JlT2JqZWN0JiBheE9iamVj
dCwgQVhDb3JlT2JqZWN0JiBheERlc2NlbmRhbnQsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdl
cywgSGFzaFNldDxBWElEPiYgaWRzQmVpbmdDaGFuZ2VkKQoreworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpjb2xsZWN0Q2hhbmdlc0Zvck1pc3NpbmdQYXRoIik7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKworICAgIGF1dG8gaXNBbmNlc3RvciA9IEZ1bmN0aW9uPEZpbHRlclJl
c3BvbnNlKGNvbnN0IEFYQ29yZU9iamVjdCYpPihbJmF4RGVzY2VuZGFudF0gKGNvbnN0IEFYQ29y
ZU9iamVjdCYgYXhBbmNlc3RvcikgeworICAgICAgICBpZiAoJmF4QW5jZXN0b3IgPT0gJmF4RGVz
Y2VuZGFudCkKKyAgICAgICAgICAgIHJldHVybiBGaWx0ZXJSZXNwb25zZTo6U3RvcDsKKworICAg
ICAgICBhdXRvKiBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcihheERlc2Nl
bmRhbnQsIHRydWUsIFsmYXhBbmNlc3Rvcl0gKGNvbnN0IGF1dG8mIG9iamVjdCkgeworICAgICAg
ICAgICAgcmV0dXJuICZvYmplY3QgPT0gJmF4QW5jZXN0b3I7CisgICAgICAgIH0pOworICAgICAg
ICByZXR1cm4gYW5jZXN0b3IgPyBGaWx0ZXJSZXNwb25zZTo6SW5jbHVkZSA6IEZpbHRlclJlc3Bv
bnNlOjpTa2lwOworICAgIH0pOworCisgICAgYXV0byogYXhQYXJlbnQgPSBheE9iamVjdC5wYXJl
bnRPYmplY3RVbmlnbm9yZWQoKTsKKyAgICBBWElEIHBhcmVudElEID0gYXhQYXJlbnQgPyBheFBh
cmVudC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKKyAgICBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0
cmVlKGF4T2JqZWN0LCBwYXJlbnRJRCwgdHJ1ZSwgY2hhbmdlcywgJmlkc0JlaW5nQ2hhbmdlZCwg
aXNBbmNlc3Rvcik7Cit9CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVN1YnRyZWUoQVhD
b3JlT2JqZWN0JiBheE9iamVjdCkKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBk
YXRlU3VidHJlZSIpOworICAgIEFYTE9HKCZheE9iamVjdCk7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKworICAgIGF1dG8qIGF4UGFyZW50ID0gYXhPYmplY3QucGFyZW50T2JqZWN0VW5p
Z25vcmVkKCk7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVj
dElEKCkgOiBBWElEKCk7CisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7CisgICAgSGFz
aFNldDxBWElEPiBpZHNCZWluZ0FkZGVkOworICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRy
ZWUoYXhPYmplY3QsIHBhcmVudElELCB0cnVlLCBjaGFuZ2VzLCAmaWRzQmVpbmdBZGRlZCk7Cisg
ICAgcmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKGF4T2JqZWN0Lm9iamVjdElEKCksIGF4UGFyZW50
LCBpZHNCZWluZ0FkZGVkKTsKKyAgICBxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjaGFuZ2VzLCB7
IGF4T2JqZWN0Lm9iamVjdElEKCkgfSk7Cit9CisKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBB
WElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpmb2N1c2VkTm9kZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggNGFlMTI3MWE5Yzc0
NTcwZDllNzhjZjc5YTU1MTQ0ZTBkMWJjZDNlNy4uMzRhMGE2MTdkZmNjNDRlMWFlYTBlZTVlYzA3
ZjQ0ZDY3MmU3NmYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNTUsNiArMzU2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlTm9kZShBWENvcmVPYmplY3QmKTsKICAgICB2b2lkIHVwZGF0ZU5vZGVQ
cm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmLCBBWFByb3BlcnR5TmFtZSk7CiAgICAgdm9pZCB1
cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmKTsKKyAgICB2b2lkIHVwZGF0ZVN1YnRyZWUoQVhD
b3JlT2JqZWN0Jik7CiAKICAgICBkb3VibGUgbG9hZGluZ1Byb2dyZXNzKCkgeyByZXR1cm4gbV9s
b2FkaW5nUHJvZ3Jlc3M7IH0KICAgICB2b2lkIHVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUp
OwpAQCAtMzg4LDcgKzM5MCwxNCBAQCBwcml2YXRlOgogICAgIC8vIENvbXB1dGVzIHRoZSBwYXJl
bnQgSUQgb2YgdGhlIGdpdmVuIG9iamVjdCwgd2hpY2ggaXMgZ2VuZXJhbGx5IHRoZSAiYXNzdW1l
ZCIgcGFyZW50IElEIChidXQgbm90IGFsd2F5cywgbGlrZSBpbiB0aGUgY2FzZSBvZiB0YWJsZXMp
LgogICAgIEFYSUQgcGFyZW50SURGb3JPYmplY3QoQVhDb3JlT2JqZWN0JiwgQVhJRCBhc3N1bWVk
UGFyZW50SUQpOwogICAgIE5vZGVDaGFuZ2Ugbm9kZUNoYW5nZUZvck9iamVjdChBWENvcmVPYmpl
Y3QmLCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIgPSB0cnVlKTsKLSAgICB2b2lk
IGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiwgQVhJRCBwYXJlbnRJ
RCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mLCBIYXNoU2V0PEFYSUQ+
KiA9IG51bGxwdHIpOworCisgICAgZW51bSBjbGFzcyBGaWx0ZXJSZXNwb25zZSA6IHVpbnQ4X3Qg
eworICAgICAgICBJbmNsdWRlLAorICAgICAgICBTa2lwLAorICAgICAgICBTdG9wLAorICAgIH07
CisgICAgdm9pZCBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFY
SUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiwgSGFz
aFNldDxBWElEPiogPSBudWxscHRyLCBjb25zdCBGdW5jdGlvbjxGaWx0ZXJSZXNwb25zZShjb25z
dCBBWENvcmVPYmplY3QmKT4mID0gW10gKGNvbnN0IGF1dG8mKSB7IHJldHVybiBGaWx0ZXJSZXNw
b25zZTo6SW5jbHVkZTsgfSk7CisgICAgdm9pZCBjb2xsZWN0Q2hhbmdlc0Zvck1pc3NpbmdQYXRo
KEFYQ29yZU9iamVjdCYsIEFYQ29yZU9iamVjdCYsIFZlY3RvcjxOb2RlQ2hhbmdlPiYsIEhhc2hT
ZXQ8QVhJRD4mKTsKICAgICB2b2lkIHF1ZXVlQ2hhbmdlKGNvbnN0IE5vZGVDaGFuZ2UmKSBXVEZf
UkVRVUlSRVNfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwogICAgIHZvaWQgcXVldWVDaGFuZ2VzQW5k
UmVtb3ZhbHMoY29uc3QgVmVjdG9yPE5vZGVDaGFuZ2U+JiwgY29uc3QgVmVjdG9yPEFYSUQ+JiA9
IHsgfSk7CiAK
</data>
<flag name="commit-queue"
          id="480820"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453439</attachid>
            <date>2022-02-28 15:12:00 -0800</date>
            <delta_ts>2022-02-28 15:12:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237104-20220228181159.patch</filename>
            <type>text/plain</type>
            <size>8979</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwMDM4NjNkNTBlMTI5
MDQxY2ExNWZmMGY2YjcxMTlmY2ZhYmEzYi4uYWZjZDAwOGFmOGM2MDU3ZmYzNzNjZjc1NmE1ZjE5
Mzg1MzhhMmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTI4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiBpbiB0aGUgY2FzZSB3aGVuIGlzIGNhbGxlZCBm
b3IgYSBub24tZXhpc3RpbmcgaXNvbGF0ZWQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTM3Mjg1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBGaXhlcyB+MTIgdGVzdHMgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorCisgICAgICAgIFdoZW4g
dXBkYXRlQ2hpbGRyZW4gaXMgY2FsbGVkIGZvciBhbiBvYmplY3QgdGhhdCBoYXMgbm8gY29ycmVz
cG9uZGluZworICAgICAgICBpc29sYXRlZCBvYmplY3QsIHdlIG5vdyBjcmVhdGUgdGhlIHRyZWUg
cGF0aCB0aGF0IGNvbm5lY3RzIHRoZSBjbG9zZXN0CisgICAgICAgIGFuY2VzdG9yIGluIHRoZSBp
c29sYXRlZCB0cmVlIHdpdGggdGhlIG9iamVjdCBpbiBxdWVzdGlvbi4gVGhlbiB3ZSBhcHBseQor
ICAgICAgICB0aGUgY2hpbGRyZW4gY29tcGFyaXNvbiBoZXVyaXN0aWNzIHRvIHRoZSBuZXdseSBh
ZGRlZCBpc29sYXRlZCBvYmplY3QgdG8KKyAgICAgICAgZGV0ZXJtaW5lIHdoYXQgb2JqZWN0cyB0
byBhZGQgb3IgcmVtb3ZlIGZyb20gdGhlIHRyZWUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisgICAgICAgIFRha2Vz
IGEgZmlsdGVyIHRvIGV4Y2x1ZGUgb2JqZWN0cyBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSBpc29s
YXRlZCB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Q2hhbmdlc0Zv
ck1pc3NpbmdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVT
dWJ0cmVlKToKKyAgICAgICAgQnJvdWdodCBiYWNrIHRoaXMgbWV0aG9kIHdpdGggYSBuZXcgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9k
ZUNoYW5nZXNGb3JTdWJ0cmVlKToKKwogMjAyMi0wMi0yMiAgQW5kcmVzIEdvbnphbGV6ICA8YW5k
cmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBzZXZlcmFsIEFY
IExheW91dFRlc3RzIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAppbmRleCBkZDRhMjg1N2QwNjViMjVkZjc3ZmNiMDAzZDEwOGY0YWYzODg4YWI0Li42OTFiMGMw
MDc3YjJmM2MzZTY5NmM1MjRhNGM4OTMyNDBmY2U5OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwCkBAIC0yNzUsMjEgKzI3NSwzNCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5n
ZXNBbmRSZW1vdmFscyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAgICAgICAg
IHF1ZXVlQ2hhbmdlKGNoYW5nZSk7CiB9CiAKLXZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3RO
b2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJlbnRJ
RCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhhc2hT
ZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3RO
b2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJlbnRJ
RCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhhc2hT
ZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCwgY29uc3QgRnVuY3Rpb248RmlsdGVyUmVzcG9uc2Uo
Y29uc3QgQVhDb3JlT2JqZWN0Jik+JiBmaWx0ZXIpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCisgICAgYXV0byBmaWx0ZXJSZXNwb25zZSA9IGZpbHRlcihheE9iamVjdCk7
CisgICAgaWYgKGZpbHRlclJlc3BvbnNlID09IEZpbHRlclJlc3BvbnNlOjpTa2lwKQorICAgICAg
ICByZXR1cm47CisKICAgICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hhbmdlRm9yT2JqZWN0KGF4
T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlcik7CiAgICAgaWYgKGlkc0JlaW5nQ2hhbmdl
ZCkKICAgICAgICAgaWRzQmVpbmdDaGFuZ2VkLT5hZGQobm9kZUNoYW5nZS5pc29sYXRlZE9iamVj
dC0+b2JqZWN0SUQoKSk7CiAgICAgY2hhbmdlcy5hcHBlbmQoV1RGTW92ZShub2RlQ2hhbmdlKSk7
CiAKKyAgICBpZiAoZmlsdGVyUmVzcG9uc2UgPT0gRmlsdGVyUmVzcG9uc2U6OlN0b3ApIHsKKyAg
ICAgICAgbV9ub2RlTWFwLnNldChheE9iamVjdC5vYmplY3RJRCgpLCBQYXJlbnRDaGlsZHJlbklE
cyB7IHBhcmVudElELCB7IH0gfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRv
IGF4Q2hpbGRyZW5Db3B5ID0gYXhPYmplY3QuY2hpbGRyZW4oKTsKLSAgICBhdXRvIGF4Q2hpbGRy
ZW5JRHMgPSBheENoaWxkcmVuQ29weS5tYXAoWyZdKGF1dG8mIGF4Q2hpbGQpIHsKLSAgICAgICAg
Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSgqYXhDaGlsZCwgYXhPYmplY3Qub2JqZWN0SUQo
KSwgYXR0YWNoV3JhcHBlciwgY2hhbmdlcywgaWRzQmVpbmdDaGFuZ2VkKTsKLSAgICAgICAgcmV0
dXJuIGF4Q2hpbGQtPm9iamVjdElEKCk7Ci0gICAgfSk7CisgICAgVmVjdG9yPEFYSUQ+IGF4Q2hp
bGRyZW5JRHM7CisgICAgYXhDaGlsZHJlbklEcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF4Q2hp
bGRyZW5Db3B5LnNpemUoKSk7CisgICAgZm9yIChhdXRvIGF4Q2hpbGQgOiBheENoaWxkcmVuQ29w
eSkgeworICAgICAgICBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKCpheENoaWxkLCBheE9i
amVjdC5vYmplY3RJRCgpLCBhdHRhY2hXcmFwcGVyLCBjaGFuZ2VzLCBpZHNCZWluZ0NoYW5nZWQs
IGZpbHRlcik7CisgICAgICAgIGlmIChmaWx0ZXIoKmF4Q2hpbGQpID09IEZpbHRlclJlc3BvbnNl
OjpJbmNsdWRlKQorICAgICAgICAgICAgYXhDaGlsZHJlbklEcy51bmNoZWNrZWRBcHBlbmQoYXhD
aGlsZC0+b2JqZWN0SUQoKSk7CisgICAgfQorICAgIGF4Q2hpbGRyZW5JRHMuc2hyaW5rVG9GaXQo
KTsKICAgICBtX25vZGVNYXAuc2V0KGF4T2JqZWN0Lm9iamVjdElEKCksIFBhcmVudENoaWxkcmVu
SURzIHsgcGFyZW50SUQsIFdURk1vdmUoYXhDaGlsZHJlbklEcykgfSk7CiB9CiAKQEAgLTM3Miwx
MiArMzg1LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9i
amVjdCYgYXhPYmplY3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZm5kZWYgTkRFQlVH
CisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7CisgICAgSGFzaFNldDxBWElEPiBpZHNC
ZWluZ0NoYW5nZWQ7CisKICAgICBpZiAoYXhBbmNlc3RvciAhPSAmYXhPYmplY3QpIHsKICAgICAg
ICAgQVhMT0cobWFrZVN0cmluZygiT3JpZ2luYWwgb2JqZWN0IHdpdGggSUQgIiwgYXhPYmplY3Qu
b2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCksICIgd2Fzbid0IGluIHRoZSBpc29sYXRlZCB0cmVl
LCBzbyBpbnN0ZWFkIHVwZGF0aW5nIHRoZSBjbG9zZXN0IGluLWlzb2xhdGVkLXRyZWUgYW5jZXN0
b3I6IikpOwogICAgICAgICBBWExPRyhheEFuY2VzdG9yKTsKKyAgICAgICAgY29sbGVjdENoYW5n
ZXNGb3JNaXNzaW5nUGF0aCgqYXhBbmNlc3RvciwgYXhPYmplY3QsIGNoYW5nZXMsIGlkc0JlaW5n
Q2hhbmdlZCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBhdXRvIG9sZElEcyA9IG1fbm9kZU1hcC5n
ZXQoYXhBbmNlc3Rvci0+b2JqZWN0SUQoKSk7CiAgICAgYXV0byYgb2xkQ2hpbGRyZW5JRHMgPSBv
bGRJRHMuY2hpbGRyZW5JRHM7CkBAIC0zODUsOCArNDAwLDYgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICBjb25zdCBhdXRv
JiBuZXdDaGlsZHJlbiA9IGF4QW5jZXN0b3ItPmNoaWxkcmVuKCk7CiAgICAgYXV0byBuZXdDaGls
ZHJlbklEcyA9IGF4QW5jZXN0b3ItPmNoaWxkcmVuSURzKGZhbHNlKTsKIAotICAgIFZlY3RvcjxO
b2RlQ2hhbmdlPiBjaGFuZ2VzOwotICAgIEhhc2hTZXQ8QVhJRD4gaWRzQmVpbmdDaGFuZ2VkOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsKICAg
ICAgICAgQVNTRVJUKG5ld0NoaWxkcmVuW2ldLT5vYmplY3RJRCgpID09IG5ld0NoaWxkcmVuSURz
W2ldKTsKICAgICAgICAgQVNTRVJUKG5ld0NoaWxkcmVuSURzW2ldLmlzVmFsaWQoKSk7CkBAIC00
MTIsOSArNDI1LDQ1IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29y
ZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIC8vICAgMy4gVGh1cywgd2UgZG9uJ3Qgd2FudCB0
byBkZWxldGUgT2JqZWN0IDEyMyBmcm9tIHRoZSBub2RlbWFwLCBpbnN0ZWFkIGFsbG93aW5nIGl0
IHRvIGJlIG1vdmVkLgogICAgICAgICByZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoYXhJRCwgYXhB
bmNlc3RvciwgaWRzQmVpbmdDaGFuZ2VkKTsKICAgICB9CisKICAgICBxdWV1ZUNoYW5nZXNBbmRS
ZW1vdmFscyhjaGFuZ2VzLCBvbGRDaGlsZHJlbklEcyk7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRy
ZWU6OmNvbGxlY3RDaGFuZ2VzRm9yTWlzc2luZ1BhdGgoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwg
QVhDb3JlT2JqZWN0JiBheERlc2NlbmRhbnQsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdlcywg
SGFzaFNldDxBWElEPiYgaWRzQmVpbmdDaGFuZ2VkKQoreworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpjb2xsZWN0Q2hhbmdlc0Zvck1pc3NpbmdQYXRoIik7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKworICAgIGF1dG8gaXNBbmNlc3RvciA9IEZ1bmN0aW9uPEZpbHRlclJlc3Bv
bnNlKGNvbnN0IEFYQ29yZU9iamVjdCYpPihbJmF4RGVzY2VuZGFudF0gKGNvbnN0IEFYQ29yZU9i
amVjdCYgYXhBbmNlc3RvcikgeworICAgICAgICBpZiAoJmF4QW5jZXN0b3IgPT0gJmF4RGVzY2Vu
ZGFudCkKKyAgICAgICAgICAgIHJldHVybiBGaWx0ZXJSZXNwb25zZTo6U3RvcDsKKworICAgICAg
ICBhdXRvKiBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcihheERlc2NlbmRh
bnQsIHRydWUsIFsmYXhBbmNlc3Rvcl0gKGNvbnN0IGF1dG8mIG9iamVjdCkgeworICAgICAgICAg
ICAgcmV0dXJuICZvYmplY3QgPT0gJmF4QW5jZXN0b3I7CisgICAgICAgIH0pOworICAgICAgICBy
ZXR1cm4gYW5jZXN0b3IgPyBGaWx0ZXJSZXNwb25zZTo6SW5jbHVkZSA6IEZpbHRlclJlc3BvbnNl
OjpTa2lwOworICAgIH0pOworCisgICAgYXV0byogYXhQYXJlbnQgPSBheE9iamVjdC5wYXJlbnRP
YmplY3RVbmlnbm9yZWQoKTsKKyAgICBBWElEIHBhcmVudElEID0gYXhQYXJlbnQgPyBheFBhcmVu
dC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKKyAgICBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVl
KGF4T2JqZWN0LCBwYXJlbnRJRCwgdHJ1ZSwgY2hhbmdlcywgJmlkc0JlaW5nQ2hhbmdlZCwgaXNB
bmNlc3Rvcik7Cit9CisKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVN1YnRyZWUoQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCkKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRl
U3VidHJlZSIpOworICAgIEFYTE9HKCZheE9iamVjdCk7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGF1dG8qIGF4UGFyZW50ID0gYXhPYmplY3QucGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElE
KCkgOiBBWElEKCk7CisgICAgVmVjdG9yPE5vZGVDaGFuZ2U+IGNoYW5nZXM7CisgICAgSGFzaFNl
dDxBWElEPiBpZHNCZWluZ0FkZGVkOworICAgIGNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUo
YXhPYmplY3QsIHBhcmVudElELCB0cnVlLCBjaGFuZ2VzLCAmaWRzQmVpbmdBZGRlZCk7CisgICAg
cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKGF4T2JqZWN0Lm9iamVjdElEKCksIGF4UGFyZW50LCBp
ZHNCZWluZ0FkZGVkKTsKKyAgICBxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjaGFuZ2VzLCB7IGF4
T2JqZWN0Lm9iamVjdElEKCkgfSk7Cit9CisKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElz
b2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
Ojpmb2N1c2VkTm9kZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggNGFlMTI3MWE5Yzc0NTcw
ZDllNzhjZjc5YTU1MTQ0ZTBkMWJjZDNlNy4uMTZmOGUyNzc0YjcyN2IyNWQ2NTg2OGFiMjAyMjA3
ZTlkOWViOTEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIgogI2luY2x1ZGUgIlBhZ2VJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNTUsNiArMzU2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgdXBkYXRlTm9kZShBWENvcmVPYmplY3QmKTsKICAgICB2b2lkIHVwZGF0ZU5vZGVQcm9w
ZXJ0eShjb25zdCBBWENvcmVPYmplY3QmLCBBWFByb3BlcnR5TmFtZSk7CiAgICAgdm9pZCB1cGRh
dGVDaGlsZHJlbihBWENvcmVPYmplY3QmKTsKKyAgICB2b2lkIHVwZGF0ZVN1YnRyZWUoQVhDb3Jl
T2JqZWN0Jik7CiAKICAgICBkb3VibGUgbG9hZGluZ1Byb2dyZXNzKCkgeyByZXR1cm4gbV9sb2Fk
aW5nUHJvZ3Jlc3M7IH0KICAgICB2b2lkIHVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUpOwpA
QCAtMzg4LDcgKzM5MCwxMCBAQCBwcml2YXRlOgogICAgIC8vIENvbXB1dGVzIHRoZSBwYXJlbnQg
SUQgb2YgdGhlIGdpdmVuIG9iamVjdCwgd2hpY2ggaXMgZ2VuZXJhbGx5IHRoZSAiYXNzdW1lZCIg
cGFyZW50IElEIChidXQgbm90IGFsd2F5cywgbGlrZSBpbiB0aGUgY2FzZSBvZiB0YWJsZXMpLgog
ICAgIEFYSUQgcGFyZW50SURGb3JPYmplY3QoQVhDb3JlT2JqZWN0JiwgQVhJRCBhc3N1bWVkUGFy
ZW50SUQpOwogICAgIE5vZGVDaGFuZ2Ugbm9kZUNoYW5nZUZvck9iamVjdChBWENvcmVPYmplY3Qm
LCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIgPSB0cnVlKTsKLSAgICB2b2lkIGNv
bGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiwgQVhJRCBwYXJlbnRJRCwg
Ym9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mLCBIYXNoU2V0PEFYSUQ+KiA9
IG51bGxwdHIpOworCisgICAgZW51bSBjbGFzcyBGaWx0ZXJSZXNwb25zZSA6IHVpbnQ4X3QgeyBJ
bmNsdWRlLCBTa2lwLCBTdG9wIH07CisgICAgdm9pZCBjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0
cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVj
dG9yPE5vZGVDaGFuZ2U+JiwgSGFzaFNldDxBWElEPiogPSBudWxscHRyLCBjb25zdCBGdW5jdGlv
bjxGaWx0ZXJSZXNwb25zZShjb25zdCBBWENvcmVPYmplY3QmKT4mID0gW10gKGNvbnN0IGF1dG8m
KSB7IHJldHVybiBGaWx0ZXJSZXNwb25zZTo6SW5jbHVkZTsgfSk7CisgICAgdm9pZCBjb2xsZWN0
Q2hhbmdlc0Zvck1pc3NpbmdQYXRoKEFYQ29yZU9iamVjdCYsIEFYQ29yZU9iamVjdCYsIFZlY3Rv
cjxOb2RlQ2hhbmdlPiYsIEhhc2hTZXQ8QVhJRD4mKTsKICAgICB2b2lkIHF1ZXVlQ2hhbmdlKGNv
bnN0IE5vZGVDaGFuZ2UmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwogICAg
IHZvaWQgcXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29uc3QgVmVjdG9yPE5vZGVDaGFuZ2U+Jiwg
Y29uc3QgVmVjdG9yPEFYSUQ+JiA9IHsgfSk7CiAK
</data>
<flag name="review"
          id="480812"
          type_id="1"
          status="?"
          setter="andresg_22"
    />
          </attachment>
      

    </bug>

</bugzilla>