<?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>235389</bug_id>
          
          <creation_ts>2022-01-19 18:20:47 -0800</creation_ts>
          <short_desc>Create ancestry of isolated objects instead of generating the entire subtree for an ancestor.</short_desc>
          <delta_ts>2022-01-22 10:18:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1832314</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-19 18:20:47 -0800</bug_when>
    <thetext>Create ancestry of isolated objects instead of generating the entire subtree for an ancestor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832315</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-19 18:20:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/87803473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832316</commentid>
    <comment_count>2</comment_count>
      <attachid>449541</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-19 18:29:22 -0800</bug_when>
    <thetext>Created attachment 449541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832317</commentid>
    <comment_count>3</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-19 18:29:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/87803473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832603</commentid>
    <comment_count>4</comment_count>
      <attachid>449617</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-20 16:03:39 -0800</bug_when>
    <thetext>Created attachment 449617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832804</commentid>
    <comment_count>5</comment_count>
      <attachid>449617</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-01-21 10:07:12 -0800</bug_when>
    <thetext>Comment on attachment 449617
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

I think commit queue will fail if this line is still in the patch.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:230
&gt; +void AXIsolatedTree::addChanges(const NodeChange&amp; nodeChange, Vector&lt;AXID&gt;&amp;&amp; childrenIDs)

Would naming this something like `queueChanges` be more informative of what this method is doing?

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:348
&gt; +        auto* axParent = ancestor.parentObject();

parentObject() includes ignored objects (vs. parentObjectUnignored()). Is that OK? It seems our implementation of AXIsolatedObject::parentObjectUnignored assumes the parent is unignored, so adding an ignored object to the tree might break that assumption?

AXCoreObject* AXIsolatedObject::parentObjectUnignored() const
{
    return tree()-&gt;nodeForID(parent()).get();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832806</commentid>
    <comment_count>6</comment_count>
      <attachid>449617</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-01-21 10:26:04 -0800</bug_when>
    <thetext>Comment on attachment 449617
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:205
&gt; +AXIsolatedTree::NodeChange AXIsolatedTree::createNodeChange(AXCoreObject&amp; axObject, AXID parentID, bool attachWrapper)

What does this give us by removing the Ref on the returned object?
the word create, at least at apple, usually implies a new object is allocated that is retained. wonder if this name should be different</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832823</commentid>
    <comment_count>7</comment_count>
      <attachid>449675</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-21 11:34:41 -0800</bug_when>
    <thetext>Created attachment 449675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832827</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-21 11:43:30 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #5)
&gt; Comment on attachment 449617 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449617&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests (OOPS!).
&gt; 
&gt; I think commit queue will fail if this line is still in the patch.

That was strange, it was correct in my local copy, so I must have uploaded the patch without saving the ChangeLog.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:230
&gt; &gt; +void AXIsolatedTree::addChanges(const NodeChange&amp; nodeChange, Vector&lt;AXID&gt;&amp;&amp; childrenIDs)
&gt; 
&gt; Would naming this something like `queueChanges` be more informative of what
&gt; this method is doing?

Yes! thanks, done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:348
&gt; &gt; +        auto* axParent = ancestor.parentObject();
&gt; 
&gt; parentObject() includes ignored objects (vs. parentObjectUnignored()). Is
&gt; that OK? It seems our implementation of
&gt; AXIsolatedObject::parentObjectUnignored assumes the parent is unignored, so
&gt; adding an ignored object to the tree might break that assumption?
&gt; 
&gt; AXCoreObject* AXIsolatedObject::parentObjectUnignored() const
&gt; {
&gt;     return tree()-&gt;nodeForID(parent()).get();
&gt; }

We may need to revisit this since that could create inconsistencies in the isolated Tre because the parent will not have this object as a child.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832828</commentid>
    <comment_count>9</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-21 11:45:07 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #6)
&gt; Comment on attachment 449617 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449617&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:205
&gt; &gt; +AXIsolatedTree::NodeChange AXIsolatedTree::createNodeChange(AXCoreObject&amp; axObject, AXID parentID, bool attachWrapper)
&gt; 
&gt; What does this give us by removing the Ref on the returned object?
&gt; the word create, at least at apple, usually implies a new object is
&gt; allocated that is retained. wonder if this name should be different

We are not removing the Ref to the object but storing it in the NodeChange.
I renamed it to nodeChangeForObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833019</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-22 10:18:16 -0800</bug_when>
    <thetext>Committed r288405 (246296@main): &lt;https://commits.webkit.org/246296@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449675.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449541</attachid>
            <date>2022-01-19 18:29:22 -0800</date>
            <delta_ts>2022-01-20 16:03:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235389-20220119212921.patch</filename>
            <type>text/plain</type>
            <size>2855</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmMzA2NmFiZTUzZmYy
M2U2NWM2OGVlYTRlODJmYzIxYTRkYTM0Zi4uOTFiYzY0NWU0MGJiMDk1MWUzNDFhY2U1OTNlMWMz
NmZlODk0MTYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTE5ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5j
ZXN0cnkgb2YgaXNvbGF0ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgdGhlIGVudGly
ZSBzdWJ0cmVlIGZvciBhbiBhbmNlc3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTM4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKwogMjAyMi0wMS0xOCAgU2Vw
YW5kIFBhcmhhbWkgIDxzcGFyaGFtaUBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEltcHJvdmUg
c3VwcG9ydCBmb3IgYXJpYS1vd25zIGluIGFyaWEgdHJlZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAppbmRleCBjNjcxZjcxZWRiN2Y3YjlkM2U1NmY2NTczODk2MjBhNzcyNTFjYWZhLi40ZDI5Mjdl
ZWI1Yzc1ODJkOGZiNmE2MTFhYjY2ZmZhOTQyMGJjYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwCkBAIC0zMjIsMTIgKzMyMiwyMyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogICAgIC8vIGlzIGFkZGVkIGEgbmV3IGNoaWxk
LiBTbyBmaW5kIHRoZSBjbG9zZXN0IGFuY2VzdG9yIG9mIGF4T2JqZWN0IHRoYXQgaGFzCiAgICAg
Ly8gYW4gYXNzb2NpYXRlZCBpc29sYXRlZCBvYmplY3QgYW5kIHVwZGF0ZSBpdHMgY2hpbGRyZW4u
CiAgICAgYXV0byBpdGVyYXRvciA9IG1fbm9kZU1hcC5lbmQoKTsKLSAgICBhdXRvKiBheEFuY2Vz
dG9yID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yKGF4T2JqZWN0LCB0cnVlLCBbJml0ZXJh
dG9yLCB0aGlzXSAoY29uc3QgQVhDb3JlT2JqZWN0JiBhbmNlc3RvcikgeworICAgIGF1dG8qIGF4
QW5jZXN0b3IgPSBBY2Nlc3NpYmlsaXR5OjpmaW5kQW5jZXN0b3IoYXhPYmplY3QsIHRydWUsIFsm
aXRlcmF0b3IsIHRoaXNdIChhdXRvJiBhbmNlc3RvcikgewogICAgICAgICBhdXRvIGl0ID0gbV9u
b2RlTWFwLmZpbmQoYW5jZXN0b3Iub2JqZWN0SUQoKSk7CiAgICAgICAgIGlmIChpdCAhPSBtX25v
ZGVNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIGl0ZXJhdG9yID0gaXQ7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorCisgICAgICAgIC8vIGFuY2VzdG9yIGhhcyBubyBub2Rl
IGluIHRoZSBpc29sYXRlZCB0cmVlLCB0aHVzIGFkZCBpdC4KKyAgICAgICAgYXV0byogYXhQYXJl
bnQgPSBhbmNlc3Rvci5wYXJlbnRPYmplY3QoKTsKKyAgICAgICAgQVhJRCBheFBhcmVudElEID0g
YXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKKyAgICAgICAgYXV0byBv
YmplY3QgPSBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoYW5jZXN0b3IsIHRoaXMsIGF4UGFyZW50
SUQpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgICAg
IG1fcGVuZGluZ0FwcGVuZHMuYXBwZW5kKHsgb2JqZWN0LCBhbmNlc3Rvci53cmFwcGVyKCkgfSk7
CisgICAgICAgIHVwZGF0ZUNoaWxkcmVuSURzKGFuY2VzdG9yLm9iamVjdElEKCksIGFuY2VzdG9y
LmNoaWxkcmVuSURzKCkpOworICAgICAgICBpZiAoIWF4UGFyZW50KQorICAgICAgICAgICAgc2V0
Um9vdE5vZGUob2JqZWN0LnB0cigpKTsKKwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSk7
CiAgICAgaWYgKCFheEFuY2VzdG9yIHx8ICFheEFuY2VzdG9yLT5vYmplY3RJRCgpLmlzVmFsaWQo
KSB8fCBpdGVyYXRvciA9PSBtX25vZGVNYXAuZW5kKCkpIHsKQEAgLTM2Nyw5ICszNzgsNiBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0
KQogICAgICAgICAvLyBNYWtlIHRoZSBjaGlsZHJlbiBJRHMgb2YgdGhlIGlzb2xhdGVkIG9iamVj
dCB0byBiZSB0aGUgc2FtZSBhcyB0aGUgQVhPYmplY3Qncy4KICAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IG1fY2hhbmdlTG9nTG9jayB9OwogICAgICAgICB1cGRhdGVDaGlsZHJlbklEcyhheEFuY2Vz
dG9yLT5vYmplY3RJRCgpLCBXVEZNb3ZlKGF4Q2hpbGRyZW5JRHMpKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBOb3RoaW5nIHdhcyB1cGRhdGVkLiBBcyBhIGxhc3QgcmVzb3J0LCB1cGRhdGUg
dGhlIHN1YnRyZWUuCi0gICAgICAgIHVwZGF0ZVN1YnRyZWUoKmF4QW5jZXN0b3IpOwogICAgIH0K
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449617</attachid>
            <date>2022-01-20 16:03:39 -0800</date>
            <delta_ts>2022-01-21 11:34:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235389-20220120190338.patch</filename>
            <type>text/plain</type>
            <size>6802</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmMzA2NmFiZTUzZmYy
M2U2NWM2OGVlYTRlODJmYzIxYTRkYTM0Zi4uZWU2YTcwNDVkYzg0MDI4YjY1NWJlMmQyNWMwMWE1
MzNjYjY2ZjBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAxLTIwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5j
ZXN0cnkgb2YgaXNvbGF0ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgdGhlIGVudGly
ZSBzdWJ0cmVlIGZvciBhbiBhbmNlc3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTM4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZU5vZGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OmFkZENoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oOgorCiAyMDIyLTAxLTE4ICBTZXBhbmQgUGFyaGFtaSAgPHNwYXJo
YW1pQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogSW1wcm92ZSBzdXBwb3J0IGZvciBhcmlhLW93
bnMgaW4gYXJpYSB0cmVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGM2NzFmNzFlZGI3
ZjdiOWQzZTU2ZjY1NzM4OTYyMGE3NzI1MWNhZmEuLmNhNzYyYTkyMjBmYTA1ZDE3NWI5ZGMxMTI2
ODZmMTdjNWYxMzIyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTIwMiwyNSArMjAy
LDIxIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZShBWENvcmVPYmplY3Qm
IGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFyCiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuSURz
KGF4UGFyZW50LT5vYmplY3RJRCgpLCBheFBhcmVudC0+Y2hpbGRyZW5JRHMoKSk7CiB9CiAKLVJl
ZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlU3VidHJlZShBWENvcmVP
YmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIpCitBWElz
b2xhdGVkVHJlZTo6Tm9kZUNoYW5nZSBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlTm9kZUNoYW5nZShB
WENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUiKTsKKyAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlTm9kZUNoYW5nZSIpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAoIW1fY3JlYXRpbmdTdWJ0cmVlKQotICAgICAgICBh
eE9iamVjdENhY2hlKCktPnByb2Nlc3NEZWZlcnJlZENoaWxkcmVuQ2hhbmdlZExpc3QoKTsKLSAg
ICBTZXRGb3JTY29wZTxib29sPiBjcmVhdGluZ1N1YnRyZWUobV9jcmVhdGluZ1N1YnRyZWUsIHRy
dWUpOwotCiAgICAgYXV0byBvYmplY3QgPSBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoYXhPYmpl
Y3QsIHRoaXMsIHBhcmVudElEKTsKKyAgICBOb2RlQ2hhbmdlIG5vZGVDaGFuZ2UgeyBvYmplY3Qs
IG51bGxwdHIgfTsKKwogICAgIGlmICghb2JqZWN0LT5vYmplY3RJRCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICAvLyBFaXRoZXIgdGhlIGF4T2JqZWN0IGhhcyBhbiBpbnZhbGlkIElEIG9yIHNvbWV0
aGluZyBlbHNlIHdlbnQgdGVycmlibHkgd3JvbmcuIERvbid0IGJvdGhlciBkb2luZyBhbnl0aGlu
ZyBlbHNlLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG9i
amVjdDsKKyAgICAgICAgcmV0dXJuIG5vZGVDaGFuZ2U7CiAgICAgfQogCiAgICAgQVNTRVJUKGF4
T2JqZWN0LndyYXBwZXIoKSk7Ci0KLSAgICBOb2RlQ2hhbmdlIG5vZGVDaGFuZ2UgeyBvYmplY3Qs
IG51bGxwdHIgfTsKICAgICBpZiAoYXR0YWNoV3JhcHBlcikKICAgICAgICAgb2JqZWN0LT5hdHRh
Y2hQbGF0Zm9ybVdyYXBwZXIoYXhPYmplY3Qud3JhcHBlcigpKTsKICAgICBlbHNlIHsKQEAgLTIy
OCw2ICsyMjQsMjkgQEAgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpjcmVh
dGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQKICAgICAgICAgbm9kZUNoYW5n
ZS53cmFwcGVyID0gYXhPYmplY3Qud3JhcHBlcigpOwogICAgIH0KIAorICAgIHJldHVybiBub2Rl
Q2hhbmdlOworfQorCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjphZGRDaGFuZ2VzKGNvbnN0IE5vZGVD
aGFuZ2UmIG5vZGVDaGFuZ2UsIFZlY3RvcjxBWElEPiYmIGNoaWxkcmVuSURzKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dM
b2NrIH07CisgICAgbV9wZW5kaW5nQXBwZW5kcy5hcHBlbmQobm9kZUNoYW5nZSk7CisgICAgdXBk
YXRlQ2hpbGRyZW5JRHMobm9kZUNoYW5nZS5pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSwgV1RG
TW92ZShjaGlsZHJlbklEcykpOworfQorCitSZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRl
ZFRyZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJlbnRJ
RCwgYm9vbCBhdHRhY2hXcmFwcGVyKQoreworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpj
cmVhdGVTdWJ0cmVlIik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICgh
bV9jcmVhdGluZ1N1YnRyZWUpCisgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+cHJvY2Vzc0RlZmVy
cmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCgpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNyZWF0aW5n
U3VidHJlZShtX2NyZWF0aW5nU3VidHJlZSwgdHJ1ZSk7CisKKyAgICBhdXRvIG5vZGVDaGFuZ2Ug
PSBjcmVhdGVOb2RlQ2hhbmdlKGF4T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlcik7CisK
ICAgICBhdXRvIGF4Q2hpbGRyZW4gPSBheE9iamVjdC5jaGlsZHJlbigpOwogICAgIFZlY3RvcjxB
WElEPiBjaGlsZHJlbklEczsKICAgICBjaGlsZHJlbklEcy5yZXNlcnZlQ2FwYWNpdHkoYXhDaGls
ZHJlbi5zaXplKCkpOwpAQCAtMjM2LDEzICsyNTUsOSBAQCBSZWY8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJ
RAogICAgICAgICBjaGlsZHJlbklEcy51bmNoZWNrZWRBcHBlbmQoY2hpbGQtPm9iamVjdElEKCkp
OwogICAgIH0KIAotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9j
ayB9OwotICAgICAgICBtX3BlbmRpbmdBcHBlbmRzLmFwcGVuZChXVEZNb3ZlKG5vZGVDaGFuZ2Up
KTsKLSAgICAgICAgdXBkYXRlQ2hpbGRyZW5JRHMob2JqZWN0LT5vYmplY3RJRCgpLCBXVEZNb3Zl
KGNoaWxkcmVuSURzKSk7Ci0gICAgfQorICAgIGFkZENoYW5nZXMobm9kZUNoYW5nZSwgV1RGTW92
ZShjaGlsZHJlbklEcykpOwogCi0gICAgcmV0dXJuIG9iamVjdDsKKyAgICByZXR1cm4gbm9kZUNo
YW5nZS5pc29sYXRlZE9iamVjdDsKIH0KIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9k
ZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQpAQCAtMzIyLDEyICszMzcsMTkgQEAgdm9pZCBBWElz
b2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKICAgICAv
LyBpcyBhZGRlZCBhIG5ldyBjaGlsZC4gU28gZmluZCB0aGUgY2xvc2VzdCBhbmNlc3RvciBvZiBh
eE9iamVjdCB0aGF0IGhhcwogICAgIC8vIGFuIGFzc29jaWF0ZWQgaXNvbGF0ZWQgb2JqZWN0IGFu
ZCB1cGRhdGUgaXRzIGNoaWxkcmVuLgogICAgIGF1dG8gaXRlcmF0b3IgPSBtX25vZGVNYXAuZW5k
KCk7Ci0gICAgYXV0byogYXhBbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3Rvcihh
eE9iamVjdCwgdHJ1ZSwgWyZpdGVyYXRvciwgdGhpc10gKGNvbnN0IEFYQ29yZU9iamVjdCYgYW5j
ZXN0b3IpIHsKKyAgICBhdXRvKiBheEFuY2VzdG9yID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2Vz
dG9yKGF4T2JqZWN0LCB0cnVlLCBbJml0ZXJhdG9yLCB0aGlzXSAoYXV0byYgYW5jZXN0b3IpIHsK
ICAgICAgICAgYXV0byBpdCA9IG1fbm9kZU1hcC5maW5kKGFuY2VzdG9yLm9iamVjdElEKCkpOwog
ICAgICAgICBpZiAoaXQgIT0gbV9ub2RlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBpdGVyYXRv
ciA9IGl0OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKworICAgICAgICAv
LyBhbmNlc3RvciBoYXMgbm8gbm9kZSBpbiB0aGUgaXNvbGF0ZWQgdHJlZSwgdGh1cyBhZGQgaXQu
CisgICAgICAgIGF1dG8qIGF4UGFyZW50ID0gYW5jZXN0b3IucGFyZW50T2JqZWN0KCk7CisgICAg
ICAgIEFYSUQgYXhQYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBB
WElEKCk7CisgICAgICAgIGF1dG8gbm9kZUNoYW5nZSA9IGNyZWF0ZU5vZGVDaGFuZ2UoYW5jZXN0
b3IsIGF4UGFyZW50SUQsIHRydWUpOworICAgICAgICBhZGRDaGFuZ2VzKG5vZGVDaGFuZ2UsIGFu
Y2VzdG9yLmNoaWxkcmVuSURzKCkpOworCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9KTsK
ICAgICBpZiAoIWF4QW5jZXN0b3IgfHwgIWF4QW5jZXN0b3ItPm9iamVjdElEKCkuaXNWYWxpZCgp
IHx8IGl0ZXJhdG9yID09IG1fbm9kZU1hcC5lbmQoKSkgewpAQCAtMzY3LDkgKzM4OSw2IEBAIHZv
aWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3Qp
CiAgICAgICAgIC8vIE1ha2UgdGhlIGNoaWxkcmVuIElEcyBvZiB0aGUgaXNvbGF0ZWQgb2JqZWN0
IHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBBWE9iamVjdCdzLgogICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuSURzKGF4QW5jZXN0
b3ItPm9iamVjdElEKCksIFdURk1vdmUoYXhDaGlsZHJlbklEcykpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8vIE5vdGhpbmcgd2FzIHVwZGF0ZWQuIEFzIGEgbGFzdCByZXNvcnQsIHVwZGF0ZSB0
aGUgc3VidHJlZS4KLSAgICAgICAgdXBkYXRlU3VidHJlZSgqYXhBbmNlc3Rvcik7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBkOWRmZmE5OTkyMWU3NmU4ZWE3NDk3NDFkOGJi
OTZjNzJkYTc2MGI4Li5jNDMwMDA0OWVlNTNmMjgwZGM1YTAyNjMyZTc2OTQyZTZjOTYwMmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTM4NSw3ICszODUsOSBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBIYXNoTWFwPEFYSXNvbGF0ZWRUcmVlSUQsIFJlZjxBWElzb2xhdGVkVHJlZT4+JiB0cmVl
SURDYWNoZSgpIFdURl9SRVFVSVJFU19MT0NLKHNfY2FjaGVMb2NrKTsKICAgICBzdGF0aWMgSGFz
aE1hcDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIHRyZWVQYWdlQ2FjaGUo
KSBXVEZfUkVRVUlSRVNfTE9DSyhzX2NhY2hlTG9jayk7CiAKLSAgICAvLyBDYWxsIG9uIG1haW4g
dGhyZWFkCisgICAgLy8gQ2FsbGVkIG9uIG1haW4gdGhyZWFkLgorICAgIE5vZGVDaGFuZ2UgY3Jl
YXRlTm9kZUNoYW5nZShBWENvcmVPYmplY3QmLCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdy
YXBwZXIpOworICAgIHZvaWQgYWRkQ2hhbmdlcyhjb25zdCBOb2RlQ2hhbmdlJiwgVmVjdG9yPEFY
SUQ+JiYgY2hpbGRyZW5JRHMpOwogICAgIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBjcmVhdGVTdWJ0
cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQgcGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlcik7CiAg
ICAgLy8gQ2FsbGVkIG9uIG1haW4gdGhyZWFkIHRvIHVwZGF0ZSBib3RoIG1fbm9kZU1hcCBhbmQg
bV9wZW5kaW5nQ2hpbGRyZW5VcGRhdGVzLgogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JRHMoQVhJ
RCBwYXJlbnRJRCwgVmVjdG9yPEFYSUQ+JiYgY2hpbGRyZW5JRHMpIFdURl9SRVFVSVJFU19MT0NL
KG1fY2hhbmdlTG9nTG9jayk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449675</attachid>
            <date>2022-01-21 11:34:41 -0800</date>
            <delta_ts>2022-01-22 10:18:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235389-20220121143439.patch</filename>
            <type>text/plain</type>
            <size>7576</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmMzA2NmFiZTUzZmYy
M2U2NWM2OGVlYTRlODJmYzIxYTRkYTM0Zi4uMmEzMzBjODY5Zjk2YzZkZWNkMjVmZTkyNDJlOGMw
MTczYzU3YzdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAxLTIwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5j
ZXN0cnkgb2YgaXNvbGF0ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgdGhlIGVudGly
ZSBzdWJ0cmVlIGZvciBhbiBhbmNlc3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTM4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc4MDM0
NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIG1heSBiZSBjYWxsZWQgZm9yIGFuIEFYT2JqZWN0
IHRoYXQgaGFzIG5vCisgICAgICAgIGNvcnJlc3BvbmRpbmcgSXNvbGF0ZWRPYmplY3QuIFRoYXQg
aXMgdGhlIGNhc2Ugb2YgZW1wdHkgY2FudmFzIGFuZCBzb21lCisgICAgICAgIGVtcHR5IGRpdiBl
bGVtZW50cy4gSW4gdGhvc2UgY2FzZXMgd2Ugd2VyZSBnZW5lcmF0aW5nIHRoZSBzdWJ0cmVlIG9m
IHRoZQorICAgICAgICBmaXJzdCBhdmFpbGFibGUgYW5jZXN0b3IgaW4gdGhlIGlzb2xhdGVkIHRy
ZS4gVGhpcyBjYW4gYmUgZXhwZW5zaXZlCisgICAgICAgIGJlY2F1c2UgaW4gc29tZSBjYXNlcyB0
aGUgaW1tZWRpYXRlIGV4aXNpdGluZyBhbmNlc3RvciB3YXMgdGhlIHdlYmFyZWEsCisgICAgICAg
IGNhdXNpbmcgdGhlIHJlLWdlbmVyYXRpb24gb2YgdGhlIGVudGlyZSBpc29sYXRlZCB0cmVlLiBX
aXRoIHRoaXMgcGF0Y2gsCisgICAgICAgIG9ubHkgdGhlIElzb2xhdGVkT2JqZWN0cyB0aGF0IGFy
ZSBtaXNzaW5nIGluIHRoZSBpc29sYXRlZCB0cmVlIGFyZSBhZGRlZAorICAgICAgICB0byB0aGUg
dHJlZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpub2RlQ2hhbmdlRm9y
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5nZXMp
OgorICAgICAgICBUaGUgYWJvdmUgdHdvIG1ldGhvZHMgYXJlIGFkZGVkIHRvIGF2b2lkIGNvdWRl
IGR1cGxpY2F0aW9uIGFuZCB0byBiZQorICAgICAgICBhYmxlIHRvIGRlY291cGxlIHRoZSBjcmVh
dGlvbiBvZiBuZXcgaXNvbGF0ZWQgb2JqZWN0cyBmcm9tIHRoZSBhZGRpdGlvbgorICAgICAgICBv
ZiB0aG9zZSBvYmplY3RzIHRvIHRoZSBpc29sYXRlZCB0cmVlLgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorCiAyMDIyLTAxLTE4ICBTZXBhbmQgUGFyaGFtaSAg
PHNwYXJoYW1pQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogSW1wcm92ZSBzdXBwb3J0IGZvciBh
cmlhLW93bnMgaW4gYXJpYSB0cmVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGM2NzFm
NzFlZGI3ZjdiOWQzZTU2ZjY1NzM4OTYyMGE3NzI1MWNhZmEuLmFhZDUzMzkyYjE5NWI1MTk2Zjc0
NjUwYTRhZTJiYzY0NzhiMTAxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTIwMiwy
NSArMjAyLDIwIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZShBWENvcmVP
YmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFyCiAgICAgICAgIHVwZGF0ZUNoaWxk
cmVuSURzKGF4UGFyZW50LT5vYmplY3RJRCgpLCBheFBhcmVudC0+Y2hpbGRyZW5JRHMoKSk7CiB9
CiAKLVJlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlU3VidHJlZShB
WENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIp
CitBWElzb2xhdGVkVHJlZTo6Tm9kZUNoYW5nZSBBWElzb2xhdGVkVHJlZTo6bm9kZUNoYW5nZUZv
ck9iamVjdChBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVudElELCBib29sIGF0dGFj
aFdyYXBwZXIpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUi
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKCFtX2NyZWF0aW5nU3Vi
dHJlZSkKLSAgICAgICAgYXhPYmplY3RDYWNoZSgpLT5wcm9jZXNzRGVmZXJyZWRDaGlsZHJlbkNo
YW5nZWRMaXN0KCk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3JlYXRpbmdTdWJ0cmVlKG1fY3Jl
YXRpbmdTdWJ0cmVlLCB0cnVlKTsKLQogICAgIGF1dG8gb2JqZWN0ID0gQVhJc29sYXRlZE9iamVj
dDo6Y3JlYXRlKGF4T2JqZWN0LCB0aGlzLCBwYXJlbnRJRCk7CisgICAgTm9kZUNoYW5nZSBub2Rl
Q2hhbmdlIHsgb2JqZWN0LCBudWxscHRyIH07CisKICAgICBpZiAoIW9iamVjdC0+b2JqZWN0SUQo
KS5pc1ZhbGlkKCkpIHsKICAgICAgICAgLy8gRWl0aGVyIHRoZSBheE9iamVjdCBoYXMgYW4gaW52
YWxpZCBJRCBvciBzb21ldGhpbmcgZWxzZSB3ZW50IHRlcnJpYmx5IHdyb25nLiBEb24ndCBib3Ro
ZXIgZG9pbmcgYW55dGhpbmcgZWxzZS4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgICAgIHJldHVybiBub2RlQ2hhbmdlOwogICAgIH0K
IAogICAgIEFTU0VSVChheE9iamVjdC53cmFwcGVyKCkpOwotCi0gICAgTm9kZUNoYW5nZSBub2Rl
Q2hhbmdlIHsgb2JqZWN0LCBudWxscHRyIH07CiAgICAgaWYgKGF0dGFjaFdyYXBwZXIpCiAgICAg
ICAgIG9iamVjdC0+YXR0YWNoUGxhdGZvcm1XcmFwcGVyKGF4T2JqZWN0LndyYXBwZXIoKSk7CiAg
ICAgZWxzZSB7CkBAIC0yMjgsNiArMjIzLDI5IEBAIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElz
b2xhdGVkVHJlZTo6Y3JlYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElECiAg
ICAgICAgIG5vZGVDaGFuZ2Uud3JhcHBlciA9IGF4T2JqZWN0LndyYXBwZXIoKTsKICAgICB9CiAK
KyAgICByZXR1cm4gbm9kZUNoYW5nZTsKK30KKwordm9pZCBBWElzb2xhdGVkVHJlZTo6cXVldWVD
aGFuZ2VzKGNvbnN0IE5vZGVDaGFuZ2UmIG5vZGVDaGFuZ2UsIFZlY3RvcjxBWElEPiYmIGNoaWxk
cmVuSURzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgbV9wZW5kaW5nQXBwZW5kcy5hcHBlbmQobm9k
ZUNoYW5nZSk7CisgICAgdXBkYXRlQ2hpbGRyZW5JRHMobm9kZUNoYW5nZS5pc29sYXRlZE9iamVj
dC0+b2JqZWN0SUQoKSwgV1RGTW92ZShjaGlsZHJlbklEcykpOworfQorCitSZWY8QVhJc29sYXRl
ZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9i
amVjdCwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyKQoreworICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGVTdWJ0cmVlIik7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKworICAgIGlmICghbV9jcmVhdGluZ1N1YnRyZWUpCisgICAgICAgIGF4T2JqZWN0Q2Fj
aGUoKS0+cHJvY2Vzc0RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCgpOworICAgIFNldEZvclNj
b3BlPGJvb2w+IGNyZWF0aW5nU3VidHJlZShtX2NyZWF0aW5nU3VidHJlZSwgdHJ1ZSk7CisKKyAg
ICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hhbmdlRm9yT2JqZWN0KGF4T2JqZWN0LCBwYXJlbnRJ
RCwgYXR0YWNoV3JhcHBlcik7CisKICAgICBhdXRvIGF4Q2hpbGRyZW4gPSBheE9iamVjdC5jaGls
ZHJlbigpOwogICAgIFZlY3RvcjxBWElEPiBjaGlsZHJlbklEczsKICAgICBjaGlsZHJlbklEcy5y
ZXNlcnZlQ2FwYWNpdHkoYXhDaGlsZHJlbi5zaXplKCkpOwpAQCAtMjM2LDEzICsyNTQsOSBAQCBS
ZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCwgQVhJRAogICAgICAgICBjaGlsZHJlbklEcy51bmNoZWNrZWRBcHBl
bmQoY2hpbGQtPm9iamVjdElEKCkpOwogICAgIH0KIAotICAgIHsKLSAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgICAgICBtX3BlbmRpbmdBcHBlbmRzLmFwcGVu
ZChXVEZNb3ZlKG5vZGVDaGFuZ2UpKTsKLSAgICAgICAgdXBkYXRlQ2hpbGRyZW5JRHMob2JqZWN0
LT5vYmplY3RJRCgpLCBXVEZNb3ZlKGNoaWxkcmVuSURzKSk7Ci0gICAgfQorICAgIHF1ZXVlQ2hh
bmdlcyhub2RlQ2hhbmdlLCBXVEZNb3ZlKGNoaWxkcmVuSURzKSk7CiAKLSAgICByZXR1cm4gb2Jq
ZWN0OworICAgIHJldHVybiBub2RlQ2hhbmdlLmlzb2xhdGVkT2JqZWN0OwogfQogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCkBAIC0zMjIs
MTIgKzMzNiwxOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVP
YmplY3QmIGF4T2JqZWN0KQogICAgIC8vIGlzIGFkZGVkIGEgbmV3IGNoaWxkLiBTbyBmaW5kIHRo
ZSBjbG9zZXN0IGFuY2VzdG9yIG9mIGF4T2JqZWN0IHRoYXQgaGFzCiAgICAgLy8gYW4gYXNzb2Np
YXRlZCBpc29sYXRlZCBvYmplY3QgYW5kIHVwZGF0ZSBpdHMgY2hpbGRyZW4uCiAgICAgYXV0byBp
dGVyYXRvciA9IG1fbm9kZU1hcC5lbmQoKTsKLSAgICBhdXRvKiBheEFuY2VzdG9yID0gQWNjZXNz
aWJpbGl0eTo6ZmluZEFuY2VzdG9yKGF4T2JqZWN0LCB0cnVlLCBbJml0ZXJhdG9yLCB0aGlzXSAo
Y29uc3QgQVhDb3JlT2JqZWN0JiBhbmNlc3RvcikgeworICAgIGF1dG8qIGF4QW5jZXN0b3IgPSBB
Y2Nlc3NpYmlsaXR5OjpmaW5kQW5jZXN0b3IoYXhPYmplY3QsIHRydWUsIFsmaXRlcmF0b3IsIHRo
aXNdIChhdXRvJiBhbmNlc3RvcikgewogICAgICAgICBhdXRvIGl0ID0gbV9ub2RlTWFwLmZpbmQo
YW5jZXN0b3Iub2JqZWN0SUQoKSk7CiAgICAgICAgIGlmIChpdCAhPSBtX25vZGVNYXAuZW5kKCkp
IHsKICAgICAgICAgICAgIGl0ZXJhdG9yID0gaXQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQorCisgICAgICAgIC8vIGFuY2VzdG9yIGhhcyBubyBub2RlIGluIHRoZSBpc29s
YXRlZCB0cmVlLCB0aHVzIGFkZCBpdC4KKyAgICAgICAgYXV0byogYXhQYXJlbnQgPSBhbmNlc3Rv
ci5wYXJlbnRPYmplY3QoKTsKKyAgICAgICAgQVhJRCBheFBhcmVudElEID0gYXhQYXJlbnQgPyBh
eFBhcmVudC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKKyAgICAgICAgYXV0byBub2RlQ2hhbmdlID0g
bm9kZUNoYW5nZUZvck9iamVjdChhbmNlc3RvciwgYXhQYXJlbnRJRCwgdHJ1ZSk7CisgICAgICAg
IHF1ZXVlQ2hhbmdlcyhub2RlQ2hhbmdlLCBhbmNlc3Rvci5jaGlsZHJlbklEcygpKTsKKwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSk7CiAgICAgaWYgKCFheEFuY2VzdG9yIHx8ICFheEFu
Y2VzdG9yLT5vYmplY3RJRCgpLmlzVmFsaWQoKSB8fCBpdGVyYXRvciA9PSBtX25vZGVNYXAuZW5k
KCkpIHsKQEAgLTM2Nyw5ICszODgsNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogICAgICAgICAvLyBNYWtlIHRoZSBjaGlsZHJl
biBJRHMgb2YgdGhlIGlzb2xhdGVkIG9iamVjdCB0byBiZSB0aGUgc2FtZSBhcyB0aGUgQVhPYmpl
Y3Qncy4KICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwogICAgICAg
ICB1cGRhdGVDaGlsZHJlbklEcyhheEFuY2VzdG9yLT5vYmplY3RJRCgpLCBXVEZNb3ZlKGF4Q2hp
bGRyZW5JRHMpKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBOb3RoaW5nIHdhcyB1cGRhdGVk
LiBBcyBhIGxhc3QgcmVzb3J0LCB1cGRhdGUgdGhlIHN1YnRyZWUuCi0gICAgICAgIHVwZGF0ZVN1
YnRyZWUoKmF4QW5jZXN0b3IpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXgg
ZDlkZmZhOTk5MjFlNzZlOGVhNzQ5NzQxZDhiYjk2YzcyZGE3NjBiOC4uNjhhZGM1N2Q2Y2UzMjM0
ZjU2MjlkOTUwYzExYjY3YmJkZmE0YzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zODUs
NyArMzg1LDkgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSGFzaE1hcDxBWElzb2xhdGVkVHJlZUlE
LCBSZWY8QVhJc29sYXRlZFRyZWU+PiYgdHJlZUlEQ2FjaGUoKSBXVEZfUkVRVUlSRVNfTE9DSyhz
X2NhY2hlTG9jayk7CiAgICAgc3RhdGljIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIFJlZjxBWElz
b2xhdGVkVHJlZT4+JiB0cmVlUGFnZUNhY2hlKCkgV1RGX1JFUVVJUkVTX0xPQ0soc19jYWNoZUxv
Y2spOwogCi0gICAgLy8gQ2FsbCBvbiBtYWluIHRocmVhZAorICAgIC8vIENhbGxlZCBvbiBtYWlu
IHRocmVhZC4KKyAgICBOb2RlQ2hhbmdlIG5vZGVDaGFuZ2VGb3JPYmplY3QoQVhDb3JlT2JqZWN0
JiwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyKTsKKyAgICB2b2lkIHF1ZXVlQ2hh
bmdlcyhjb25zdCBOb2RlQ2hhbmdlJiwgVmVjdG9yPEFYSUQ+JiYgY2hpbGRyZW5JRHMpOwogICAg
IFJlZjxBWElzb2xhdGVkT2JqZWN0PiBjcmVhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYsIEFYSUQg
cGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlcik7CiAgICAgLy8gQ2FsbGVkIG9uIG1haW4gdGhy
ZWFkIHRvIHVwZGF0ZSBib3RoIG1fbm9kZU1hcCBhbmQgbV9wZW5kaW5nQ2hpbGRyZW5VcGRhdGVz
LgogICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5JRHMoQVhJRCBwYXJlbnRJRCwgVmVjdG9yPEFYSUQ+
JiYgY2hpbGRyZW5JRHMpIFdURl9SRVFVSVJFU19MT0NLKG1fY2hhbmdlTG9nTG9jayk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>