<?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>231432</bug_id>
          
          <creation_ts>2021-10-08 08:41:59 -0700</creation_ts>
          <short_desc>Web Inspector: Move CSS longhand and shorthand mapping away from WI.CSSCompletions</short_desc>
          <delta_ts>2021-10-11 09:13:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>231511</blocked>
    
    <blocked>230351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Razvan Caliman">rcaliman</reporter>
          <assigned_to name="Razvan Caliman">rcaliman</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802078</commentid>
    <comment_count>0</comment_count>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-08 08:41:59 -0700</bug_when>
    <thetext>`WI.CSSCompletions` has scope creep. Beyond handling filtering for CSS completions, it holds logic to deal with CSS property name longhand-to-shorthand mapping and checks.

But `WI.CSSCompletions` already relies heavily on metadata about properties set on `WI.CSSKeywordCompletions`. 
Moreover, the one-time initialization from `WI.CSSCompletions.initializeCSSCompletions(target)` &gt; `WI.CSSKeywordCompletions.addCustomCompletions(properties)` already puts most of the metadata about CSS properties on:

- `WI.CSSKeywordCompletions.LonghandNamesForShorthandProperty`
- `WI.CSSKeywordCompletions.PropertyNameForAlias`
- `WI.CSSKeywordCompletions.InheritedProperties`

It makes sense to also move the longhand-to-shorthand mapping from `WI.CSSCompletions` to `WI.CSSKeywordCompletions`. 
This keep mapping and checks co-located. 

This is prep work for gradually removing `WI.CSSCompletions.cssNameCompletions` as a needlessly specialized completions manager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802080</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-08 08:42:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/84029471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802100</commentid>
    <comment_count>2</comment_count>
      <attachid>440624</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-08 09:00:24 -0700</bug_when>
    <thetext>Created attachment 440624
Patch v1.0

Moving longhand-to-shorthand mapping and checks away from WI.CSSCompletions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802170</commentid>
    <comment_count>3</comment_count>
      <attachid>440624</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-08 11:36:33 -0700</bug_when>
    <thetext>Comment on attachment 440624
Patch v1.0

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:233
&gt; +                let shorthands = WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty.getOrInitialize(longhand, []);
&gt; +                shorthands.push(property.name);

NIT: you could instead use a `Multimap` to avoid the `getOrInitialize` (tho you&apos;d need to either adjust the fallback locations to be a `new Set` or change `Multimap.prototype.get` to have a fallback)

&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:262
&gt; +WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty = new Map;

yknow, technically, it&apos;s a bit odd for info about properties to be on something related to value keywords

IMO it would be better to move these to `WI.CSSCompletions` (or create a new `WI.CSSPropertyCompletions`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802593</commentid>
    <comment_count>4</comment_count>
      <attachid>440624</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-11 06:30:58 -0700</bug_when>
    <thetext>Comment on attachment 440624
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:262
&gt;&gt; +WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty = new Map;
&gt; 
&gt; yknow, technically, it&apos;s a bit odd for info about properties to be on something related to value keywords
&gt; 
&gt; IMO it would be better to move these to `WI.CSSCompletions` (or create a new `WI.CSSPropertyCompletions`)

I agree. I followed precedent, but `WI.CSSKeywordCompletions` holds too much already.
A new `WI.CSSPropertyCompletions` as host for all property-related maps would be best. 
This would isolate logic away from `WI.CSSKeywordCompletions` and `WI.CSSCompletions`.

The task is not big, but it will yield a large code diff which would be best split into multiple patches.

In the interest of making progress on Bug 230351 this week, I&apos;ll land this patch as-is (thanks for R+) and I&apos;ll open follow-ups to restructure code into a new `WI.CSSPropertyCompletions` afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802594</commentid>
    <comment_count>5</comment_count>
      <attachid>440624</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-11 06:30:59 -0700</bug_when>
    <thetext>Comment on attachment 440624
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:262
&gt;&gt; +WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty = new Map;
&gt; 
&gt; yknow, technically, it&apos;s a bit odd for info about properties to be on something related to value keywords
&gt; 
&gt; IMO it would be better to move these to `WI.CSSCompletions` (or create a new `WI.CSSPropertyCompletions`)

I agree. I followed precedent, but `WI.CSSKeywordCompletions` holds too much already.
A new `WI.CSSPropertyCompletions` as host for all property-related maps would be best. 
This would isolate logic away from `WI.CSSKeywordCompletions` and `WI.CSSCompletions`.

The task is not big, but it will yield a large code diff which would be best split into multiple patches.

In the interest of making progress on Bug 230351 this week, I&apos;ll land this patch as-is (thanks for R+) and I&apos;ll open follow-ups to restructure code into a new `WI.CSSPropertyCompletions` afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802595</commentid>
    <comment_count>6</comment_count>
      <attachid>440624</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-11 06:31:00 -0700</bug_when>
    <thetext>Comment on attachment 440624
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:262
&gt;&gt; +WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty = new Map;
&gt; 
&gt; yknow, technically, it&apos;s a bit odd for info about properties to be on something related to value keywords
&gt; 
&gt; IMO it would be better to move these to `WI.CSSCompletions` (or create a new `WI.CSSPropertyCompletions`)

I agree. I followed precedent, but `WI.CSSKeywordCompletions` holds too much already.
A new `WI.CSSPropertyCompletions` as host for all property-related maps would be best. 
This would isolate logic away from `WI.CSSKeywordCompletions` and `WI.CSSCompletions`.

The task is not big, but it will yield a large code diff which would be best split into multiple patches.

In the interest of making progress on Bug 230351 this week, I&apos;ll land this patch as-is (thanks for R+) and I&apos;ll open follow-ups to restructure code into a new `WI.CSSPropertyCompletions` afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802596</commentid>
    <comment_count>7</comment_count>
      <attachid>440624</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-11 06:31:01 -0700</bug_when>
    <thetext>Comment on attachment 440624
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:262
&gt;&gt; +WI.CSSKeywordCompletions.ShorthandNamesForLongHandProperty = new Map;
&gt; 
&gt; yknow, technically, it&apos;s a bit odd for info about properties to be on something related to value keywords
&gt; 
&gt; IMO it would be better to move these to `WI.CSSCompletions` (or create a new `WI.CSSPropertyCompletions`)

I agree. I followed precedent, but `WI.CSSKeywordCompletions` holds too much already.
A new `WI.CSSPropertyCompletions` as host for all property-related maps would be best. 
This would isolate logic away from `WI.CSSKeywordCompletions` and `WI.CSSCompletions`.

The task is not big, but it will yield a large code diff which would be best split into multiple patches.

In the interest of making progress on Bug 230351 this week, I&apos;ll land this patch as-is (thanks for R+) and I&apos;ll open follow-ups to restructure code into a new `WI.CSSPropertyCompletions` afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802598</commentid>
    <comment_count>8</comment_count>
      <attachid>440783</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-11 06:39:05 -0700</bug_when>
    <thetext>Created attachment 440783
Patch v1.0

Carry over R+; Land patch as is and follow-up in Bug 231511</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802645</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 09:13:37 -0700</bug_when>
    <thetext>Committed r283899 (242775@main): &lt;https://commits.webkit.org/242775@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440783.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440624</attachid>
            <date>2021-10-08 09:00:24 -0700</date>
            <delta_ts>2021-10-11 06:39:01 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-231432-20211008180022.patch</filename>
            <type>text/plain</type>
            <size>8453</size>
            <attacher name="Razvan Caliman">rcaliman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDAzNThmNTIzYTRhMjJlODg5MjZlMjdjMzZjNjQx
YjEyMGQwMzI2OTkuLjNlMjM3M2ZiZjAwY2M1YWYyNjYxNzk3NDkzMzM3MGQ3NThhYzM1OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEwLTA4ICBSYXp2
YW4gQ2FsaW1hbiAgPHJjYWxpbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNb3ZlIENTUyBsb25naGFuZCBhbmQgc2hvcnRoYW5kIG1hcHBpbmcgYXdheSBmcm9tIFdJLkNT
U0NvbXBsZXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDI5NDcxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGBXSS5DU1NDb21wbGV0aW9u
c2AgaGFzIHNjb3BlIGNyZWVwLiBCZXlvbmQgaGFuZGxpbmcgZmlsdGVyaW5nIGZvciBDU1MgY29t
cGxldGlvbnMsCisgICAgICAgIGl0IGhvbGRzIGxvZ2ljIHRvIGRlYWwgd2l0aCBDU1MgcHJvcGVy
dHkgbmFtZSBsb25naGFuZC10by1zaG9ydGhhbmQgbWFwcGluZy4KKworICAgICAgICBCdXQgaXQg
YWxyZWFkeSByZWxpZXMgaGVhdmlseSBvbiBtZXRhZGF0YSBhYm91dCBwcm9wZXJ0aWVzIHNldCBv
biBgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zYAorICAgICAgICBwb3B1bGF0ZWQgYXMgYSByZXN1
bHQgb2YgdGhlIG9uZS10aW1lIGluaXRpYWxpemF0aW9uIGZyb20gYFdJLkNTU0NvbXBsZXRpb25z
LmluaXRpYWxpemVDU1NDb21wbGV0aW9ucyh0YXJnZXQpYCA+CisgICAgICAgIGBXSS5DU1NLZXl3
b3JkQ29tcGxldGlvbnMuYWRkQ3VzdG9tQ29tcGxldGlvbnMocHJvcGVydGllcylgLgorCisgICAg
ICAgIFRoaXMgY2hhbmdlIG1vdmVzIHRoZSBsb25naGFuZC10by1zaG9ydGhhbmQgbWFwcGluZyBm
cm9tIGBXSS5DU1NDb21wbGV0aW9uc2AgdG8KKyAgICAgICAgYFdJLkNTU0tleXdvcmRDb21wbGV0
aW9ucy5TaG9ydGhhbmROYW1lc0ZvckxvbmdIYW5kUHJvcGVydHlgIGFuZCB1cGRhdGVzIHJlbGV2
YW50IGNvbnN1bWVycy4KKworICAgICAgICBUaGUgYWltIGlzIHRvIGdyYWR1YWxseSByZW1vdmUg
YWxsIHNwZWNpYWxpemVkIGxvZ2ljIGZvciBwcm9wZXJ0eSBuYW1lcyBmcm9tIGBXSS5DU1NDb21w
bGV0aW9uc2AuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9u
cy5qczoKKyAgICAgICAgKFdJLkNTU0NvbXBsZXRpb25zKToKKyAgICAgICAgKFdJLkNTU0NvbXBs
ZXRpb25zLnByb3RvdHlwZS5pc1Nob3J0aGFuZFByb3BlcnR5TmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXSS5DU1NDb21wbGV0aW9ucy5wcm90b3R5cGUuc2hvcnRoYW5kc0ZvckxvbmdoYW5kKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxl
dGlvbnMuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanM6
CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvRE9NTm9kZVN0eWxlcy5qczoKKyAgICAgICAgKFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBl
Ll9hc3NvY2lhdGVSZWxhdGVkUHJvcGVydGllcyk6CisKIDIwMjEtMTAtMDcgIEJKIEJ1cmcgIDxi
YnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uVGFiQ29udGVudFZpZXcgc2hvdWxkIG5vdCByZWxvYWQgaXRzIGlmcmFtZSB3aGVuIGRl
dGFjaGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ1NTQ29tcGxldGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKaW5kZXggMmExZjhlNGU0MzRhYTE5NzM2NTM5
N2MyZDU0OTI0NDJiM2EwYjExOS4uMjNjZTg1NTA0YjJkMDZiMDZiNjBkYTVmYzRjM2IzMmFmNDE5
OTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NTU0NvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NDb21wbGV0aW9ucy5qcwpAQCAtMzYsNyArMzYsNiBAQCBXSS5DU1ND
b21wbGV0aW9ucyA9IGNsYXNzIENTU0NvbXBsZXRpb25zCiAgICAgY29uc3RydWN0b3IocHJvcGVy
dGllcywgYWNjZXB0RW1wdHlQcmVmaXgpCiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZXMgPSBb
XTsKLSAgICAgICAgdGhpcy5fc2hvcnRoYW5kcyA9IHt9OwogCiAgICAgICAgIC8vIFRoZSBgcHJv
cGVydGllc2AgcGFyYW1ldGVyIGNhbiBiZSBlaXRoZXIgYSBsaXN0IG9mIG9iamVjdHMgd2l0aCAn
bmFtZScgLyAnbG9uZ2hhbmQnCiAgICAgICAgIC8vIHByb3BlcnRpZXMgd2hlbiBpbml0aWFsaXpl
ZCBmcm9tIHRoZSBwcm90b2NvbCBmb3IgQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25z
LgpAQCAtNTMsMjEgKzUyLDYgQEAgV0kuQ1NTQ29tcGxldGlvbnMgPSBjbGFzcyBDU1NDb21wbGV0
aW9ucwogICAgICAgICAgICAgICAgIGxldCBhbGlhc2VzID0gcHJvcGVydHkuYWxpYXNlczsKICAg
ICAgICAgICAgICAgICBpZiAoYWxpYXNlcykKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFs
dWVzLnB1c2hBbGwoYWxpYXNlcyk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbG9uZ2hhbmRzID0g
cHJvcGVydHkubG9uZ2hhbmRzOwotICAgICAgICAgICAgICAgIGlmIChsb25naGFuZHMpIHsKLSAg
ICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsb25naGFuZHMubGVuZ3RoOyAr
K2opIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb25naGFuZE5hbWUgPSBsb25naGFu
ZHNbal07Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzaG9ydGhhbmRzID0gdGhpcy5f
c2hvcnRoYW5kc1tsb25naGFuZE5hbWVdOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFz
aG9ydGhhbmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kcyA9IFtd
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0aGFuZHNbbG9uZ2hhbmRO
YW1lXSA9IHNob3J0aGFuZHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3J0aGFuZHMucHVzaChwcm9wZXJ0eU5hbWUpOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKQEAgLTM0OCwxNiArMzMyLDYgQEAgV0kuQ1NTQ29tcGxldGlvbnMgPSBjbGFzcyBDU1NDb21w
bGV0aW9ucwogICAgICAgICByZXR1cm4gcHJvcGVydGllc1dpdGhQcmVmaXhbal07CiAgICAgfQog
Ci0gICAgaXNTaG9ydGhhbmRQcm9wZXJ0eU5hbWUoc2hvcnRoYW5kKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Mb25naGFuZE5hbWVzRm9yU2hvcnRoYW5k
UHJvcGVydHkuaGFzKHNob3J0aGFuZCk7Ci0gICAgfQotCi0gICAgc2hvcnRoYW5kc0Zvckxvbmdo
YW5kKGxvbmdoYW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3J0aGFuZHNbbG9u
Z2hhbmRdIHx8IFtdOwotICAgIH0KLQogICAgIGlzVmFsaWRQcm9wZXJ0eU5hbWUobmFtZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZXMuaW5jbHVkZXMobmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29y
ZENvbXBsZXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NTU0tleXdvcmRDb21wbGV0aW9ucy5qcwppbmRleCBiYTQ1NWFjYWJlMWI1ZGM1YzA0MWU5
ZGZiNTIyY2JjNGMxMGJiOGU5Li5hMzY2OWVjNDNmYTBhMDViZjliNDE4ZGVkMjY5ODUwOTE4ZDM3
MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ1NTS2V5d29yZENvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMKQEAgLTIyNSw4ICsy
MjUsMTUgQEAgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmFkZEN1c3RvbUNvbXBsZXRpb25zID0g
ZnVuY3Rpb24ocHJvcGVydGllcykKICAgICAgICAgaWYgKHByb3BlcnR5LmluaGVyaXRlZCkKICAg
ICAgICAgICAgIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Jbmhlcml0ZWRQcm9wZXJ0aWVzLmFk
ZChwcm9wZXJ0eS5uYW1lKTsKIAotICAgICAgICBpZiAocHJvcGVydHkubG9uZ2hhbmRzKQorICAg
ICAgICBpZiAocHJvcGVydHkubG9uZ2hhbmRzKSB7CiAgICAgICAgICAgICBXSS5DU1NLZXl3b3Jk
Q29tcGxldGlvbnMuTG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFByb3BlcnR5LnNldChwcm9wZXJ0
eS5uYW1lLCBwcm9wZXJ0eS5sb25naGFuZHMpOworCisgICAgICAgICAgICBmb3IgKGxldCBsb25n
aGFuZCBvZiBwcm9wZXJ0eS5sb25naGFuZHMpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hvcnRo
YW5kcyA9IFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5TaG9ydGhhbmROYW1lc0ZvckxvbmdIYW5k
UHJvcGVydHkuZ2V0T3JJbml0aWFsaXplKGxvbmdoYW5kLCBbXSk7CisgICAgICAgICAgICAgICAg
c2hvcnRoYW5kcy5wdXNoKHByb3BlcnR5Lm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKICAgICB9CiB9OwogCkBAIC0yNTIsNiArMjU5LDcgQEAgV0kuQ1NTS2V5d29yZENvbXBsZXRp
b25zLkFsbFByb3BlcnR5TmFtZXNQbGFjZWhvbGRlciA9ICJfX2FsbC1wcm9wZXJ0aWVzX18iOwog
Ly8gUG9wdWxhdGVkIGJ5IENTUy5nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzLgogV0kuQ1NTS2V5
d29yZENvbXBsZXRpb25zLlByb3BlcnR5TmFtZUZvckFsaWFzID0gbmV3IE1hcDsKIFdJLkNTU0tl
eXdvcmRDb21wbGV0aW9ucy5Mb25naGFuZE5hbWVzRm9yU2hvcnRoYW5kUHJvcGVydHkgPSBuZXcg
TWFwOworV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLlNob3J0aGFuZE5hbWVzRm9yTG9uZ0hhbmRQ
cm9wZXJ0eSA9IG5ldyBNYXA7CiAKIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Jbmhlcml0ZWRQ
cm9wZXJ0aWVzID0gbmV3IFNldChbCiAgICAgLy8gQ29tcGF0aWJpbGl0eSAoaU9TIDEyKTogYGlu
aGVyaXRlZGAgZGlkbid0IGV4aXN0IG9uIGBDU1NQcm9wZXJ0eUluZm9gCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHku
anMKaW5kZXggZjlhZjU4MjA2ZWU3MDRjOGMxZTUxY2ZjYjFkOWVhYmM4YjI3MzczYy4uMTE3Mjk1
OWVhZjIzMDIwMGYxYTk5Nzc3ZjhiYjI3NGQ3NjkxZmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwpA
QCAtNDMwLDcgKzQzMCw3IEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICBnZXQgaXNTaG9ydGhhbmQoKQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX2lzU2hvcnRoYW5kID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHRoaXMuX2lz
U2hvcnRoYW5kID0gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLmlzU2hvcnRo
YW5kUHJvcGVydHlOYW1lKHRoaXMuX25hbWUpOworICAgICAgICAgICAgdGhpcy5faXNTaG9ydGhh
bmQgPSBXSS5DU1NLZXl3b3JkQ29tcGxldGlvbnMuTG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFBy
b3BlcnR5Lmhhcyh0aGlzLl9uYW1lKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9pc1Nob3J0aGFu
ZCkgewogICAgICAgICAgICAgICAgIGxldCBsb25naGFuZHMgPSBXSS5DU1NLZXl3b3JkQ29tcGxl
dGlvbnMuTG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFByb3BlcnR5LmdldCh0aGlzLl9uYW1lKTsK
ICAgICAgICAgICAgICAgICBpZiAobG9uZ2hhbmRzICYmIGxvbmdoYW5kcy5sZW5ndGggPT09IDEp
CkBAIC00NDMsNyArNDQzLDcgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBl
eHRlbmRzIFdJLk9iamVjdAogICAgIGdldCBzaG9ydGhhbmRQcm9wZXJ0eU5hbWVzKCkKICAgICB7
CiAgICAgICAgIGlmICghdGhpcy5fc2hvcnRoYW5kUHJvcGVydHlOYW1lcykgewotICAgICAgICAg
ICAgdGhpcy5fc2hvcnRoYW5kUHJvcGVydHlOYW1lcyA9IFdJLkNTU0NvbXBsZXRpb25zLmNzc05h
bWVDb21wbGV0aW9ucy5zaG9ydGhhbmRzRm9yTG9uZ2hhbmQodGhpcy5fbmFtZSk7CisgICAgICAg
ICAgICB0aGlzLl9zaG9ydGhhbmRQcm9wZXJ0eU5hbWVzID0gV0kuQ1NTS2V5d29yZENvbXBsZXRp
b25zLlNob3J0aGFuZE5hbWVzRm9yTG9uZ0hhbmRQcm9wZXJ0eS5nZXQodGhpcy5fbmFtZSkgfHwg
W107CiAgICAgICAgICAgICB0aGlzLl9zaG9ydGhhbmRQcm9wZXJ0eU5hbWVzLnJlbW92ZSgiYWxs
Iik7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3J0aGFuZFByb3BlcnR5TmFt
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvRE9NTm9kZVN0eWxlcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9ET01Ob2RlU3R5bGVzLmpzCmluZGV4IGNlOGVjZjhlZTFmNzkxMTZhZTA2NzY0MmE3
MWZiY2Y4NTRkZmZiZmEuLjA1ODFmZWI4ZjIyN2FjN2RkNjcwMzZkZGNiZWNmYmZhNTEzZGIwNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9E
T01Ob2RlU3R5bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9ET01Ob2RlU3R5bGVzLmpzCkBAIC05MDMsNyArOTAzLDcgQEAgV0kuRE9NTm9kZVN0
eWxlcyA9IGNsYXNzIERPTU5vZGVTdHlsZXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAg
ICAgICBpZiAoIXByb3BlcnR5LnZhbGlkKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICAgICAgICAgIGlmICghV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRp
b25zLmlzU2hvcnRoYW5kUHJvcGVydHlOYW1lKHByb3BlcnR5Lm5hbWUpKQorICAgICAgICAgICAg
ICAgIGlmICghV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLkxvbmdoYW5kTmFtZXNGb3JTaG9ydGhh
bmRQcm9wZXJ0eS5oYXMocHJvcGVydHkubmFtZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKGtub3duU2hvcnRoYW5kc1twcm9wZXJ0eS5jYW5v
bmljYWxOYW1lXSAmJiAha25vd25TaG9ydGhhbmRzW3Byb3BlcnR5LmNhbm9uaWNhbE5hbWVdLm92
ZXJyaWRkZW4pIHsKQEAgLTkyMyw3ICs5MjMsNyBAQCBXSS5ET01Ob2RlU3R5bGVzID0gY2xhc3Mg
RE9NTm9kZVN0eWxlcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHZhciBzaG9y
dGhhbmRQcm9wZXJ0eSA9IG51bGw7CiAKICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmpl
Y3Qoa25vd25TaG9ydGhhbmRzKSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGVT
aG9ydGhhbmRzID0gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLnNob3J0aGFu
ZHNGb3JMb25naGFuZChwcm9wZXJ0eS5jYW5vbmljYWxOYW1lKTsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHBvc3NpYmxlU2hvcnRoYW5kcyA9IFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5TaG9y
dGhhbmROYW1lc0ZvckxvbmdIYW5kUHJvcGVydHkuZ2V0KHByb3BlcnR5LmNhbm9uaWNhbE5hbWUp
IHx8IFtdOwogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHBvc3NpYmxl
U2hvcnRoYW5kcy5sZW5ndGg7ICsraykgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBv
c3NpYmxlU2hvcnRoYW5kc1trXSBpbiBrbm93blNob3J0aGFuZHMpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eSA9IGtub3duU2hvcnRoYW5kc1twb3NzaWJs
ZVNob3J0aGFuZHNba11dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440783</attachid>
            <date>2021-10-11 06:39:05 -0700</date>
            <delta_ts>2021-10-11 09:13:38 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-231432-20211011153904.patch</filename>
            <type>text/plain</type>
            <size>8447</size>
            <attacher name="Razvan Caliman">rcaliman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRjODgzNzM2M2I0MTBhNmYxZTQxMjZiYzI5MmU5
NGFmYzE0ZTdjYmEuLmNkNGZmMTZjNmIyNjI3ZGNjNjc3NjJjYTNhY2JjZjhlMjYwNGI3Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEwLTExICBSYXp2
YW4gQ2FsaW1hbiAgPHJjYWxpbWFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNb3ZlIENTUyBsb25naGFuZCBhbmQgc2hvcnRoYW5kIG1hcHBpbmcgYXdheSBmcm9tIFdJLkNT
U0NvbXBsZXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDI5NDcxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBgV0kuQ1NTQ29tcGxldGlvbnNg
IGhhcyBzY29wZSBjcmVlcC4gQmV5b25kIGhhbmRsaW5nIGZpbHRlcmluZyBmb3IgQ1NTIGNvbXBs
ZXRpb25zLAorICAgICAgICBpdCBob2xkcyBsb2dpYyB0byBkZWFsIHdpdGggQ1NTIHByb3BlcnR5
IG5hbWUgbG9uZ2hhbmQtdG8tc2hvcnRoYW5kIG1hcHBpbmcuCisKKyAgICAgICAgQnV0IGl0IGFs
cmVhZHkgcmVsaWVzIGhlYXZpbHkgb24gbWV0YWRhdGEgYWJvdXQgcHJvcGVydGllcyBzZXQgb24g
YFdJLkNTU0tleXdvcmRDb21wbGV0aW9uc2AKKyAgICAgICAgcG9wdWxhdGVkIGFzIGEgcmVzdWx0
IG9mIHRoZSBvbmUtdGltZSBpbml0aWFsaXphdGlvbiBmcm9tIGBXSS5DU1NDb21wbGV0aW9ucy5p
bml0aWFsaXplQ1NTQ29tcGxldGlvbnModGFyZ2V0KWAgPgorICAgICAgICBgV0kuQ1NTS2V5d29y
ZENvbXBsZXRpb25zLmFkZEN1c3RvbUNvbXBsZXRpb25zKHByb3BlcnRpZXMpYC4KKworICAgICAg
ICBUaGlzIGNoYW5nZSBtb3ZlcyB0aGUgbG9uZ2hhbmQtdG8tc2hvcnRoYW5kIG1hcHBpbmcgZnJv
bSBgV0kuQ1NTQ29tcGxldGlvbnNgIHRvCisgICAgICAgIGBXSS5DU1NLZXl3b3JkQ29tcGxldGlv
bnMuU2hvcnRoYW5kTmFtZXNGb3JMb25nSGFuZFByb3BlcnR5YCBhbmQgdXBkYXRlcyByZWxldmFu
dCBjb25zdW1lcnMuCisKKyAgICAgICAgVGhlIGFpbSBpcyB0byBncmFkdWFsbHkgcmVtb3ZlIGFs
bCBzcGVjaWFsaXplZCBsb2dpYyBmb3IgcHJvcGVydHkgbmFtZXMgZnJvbSBgV0kuQ1NTQ29tcGxl
dGlvbnNgLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTQ29tcGxldGlvbnMu
anM6CisgICAgICAgIChXSS5DU1NDb21wbGV0aW9ucyk6CisgICAgICAgIChXSS5DU1NDb21wbGV0
aW9ucy5wcm90b3R5cGUuaXNTaG9ydGhhbmRQcm9wZXJ0eU5hbWUpOiBEZWxldGVkLgorICAgICAg
ICAoV0kuQ1NTQ29tcGxldGlvbnMucHJvdG90eXBlLnNob3J0aGFuZHNGb3JMb25naGFuZCk6IERl
bGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29yZENvbXBsZXRp
b25zLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzOgor
ICAgICAgICAoV0kuQ1NTUHJvcGVydHkpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxz
L0RPTU5vZGVTdHlsZXMuanM6CisgICAgICAgIChXSS5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5f
YXNzb2NpYXRlUmVsYXRlZFByb3BlcnRpZXMpOgorCiAyMDIxLTEwLTA4ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBUYWJCYXIgY29udGV4
dCBtZW51IHN1cHBvcnQgZm9yIFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q1NTQ29tcGxldGlvbnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ1NTQ29tcGxldGlvbnMuanMKaW5kZXggMmExZjhlNGU0MzRhYTE5NzM2NTM5N2MyZDU0
OTI0NDJiM2EwYjExOS4uMjNjZTg1NTA0YjJkMDZiMDZiNjBkYTVmYzRjM2IzMmFmNDE5OTgyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U0NvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NDb21wbGV0aW9ucy5qcwpAQCAtMzYsNyArMzYsNiBAQCBXSS5DU1NDb21wbGV0
aW9ucyA9IGNsYXNzIENTU0NvbXBsZXRpb25zCiAgICAgY29uc3RydWN0b3IocHJvcGVydGllcywg
YWNjZXB0RW1wdHlQcmVmaXgpCiAgICAgewogICAgICAgICB0aGlzLl92YWx1ZXMgPSBbXTsKLSAg
ICAgICAgdGhpcy5fc2hvcnRoYW5kcyA9IHt9OwogCiAgICAgICAgIC8vIFRoZSBgcHJvcGVydGll
c2AgcGFyYW1ldGVyIGNhbiBiZSBlaXRoZXIgYSBsaXN0IG9mIG9iamVjdHMgd2l0aCAnbmFtZScg
LyAnbG9uZ2hhbmQnCiAgICAgICAgIC8vIHByb3BlcnRpZXMgd2hlbiBpbml0aWFsaXplZCBmcm9t
IHRoZSBwcm90b2NvbCBmb3IgQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLgpAQCAt
NTMsMjEgKzUyLDYgQEAgV0kuQ1NTQ29tcGxldGlvbnMgPSBjbGFzcyBDU1NDb21wbGV0aW9ucwog
ICAgICAgICAgICAgICAgIGxldCBhbGlhc2VzID0gcHJvcGVydHkuYWxpYXNlczsKICAgICAgICAg
ICAgICAgICBpZiAoYWxpYXNlcykKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzLnB1
c2hBbGwoYWxpYXNlcyk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbG9uZ2hhbmRzID0gcHJvcGVy
dHkubG9uZ2hhbmRzOwotICAgICAgICAgICAgICAgIGlmIChsb25naGFuZHMpIHsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsb25naGFuZHMubGVuZ3RoOyArK2opIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb25naGFuZE5hbWUgPSBsb25naGFuZHNbal07
Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzaG9ydGhhbmRzID0gdGhpcy5fc2hvcnRo
YW5kc1tsb25naGFuZE5hbWVdOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzaG9ydGhh
bmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kcyA9IFtdOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0aGFuZHNbbG9uZ2hhbmROYW1lXSA9
IHNob3J0aGFuZHM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIHNob3J0aGFuZHMucHVzaChwcm9wZXJ0eU5hbWUpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAg
LTM0OCwxNiArMzMyLDYgQEAgV0kuQ1NTQ29tcGxldGlvbnMgPSBjbGFzcyBDU1NDb21wbGV0aW9u
cwogICAgICAgICByZXR1cm4gcHJvcGVydGllc1dpdGhQcmVmaXhbal07CiAgICAgfQogCi0gICAg
aXNTaG9ydGhhbmRQcm9wZXJ0eU5hbWUoc2hvcnRoYW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Mb25naGFuZE5hbWVzRm9yU2hvcnRoYW5kUHJvcGVy
dHkuaGFzKHNob3J0aGFuZCk7Ci0gICAgfQotCi0gICAgc2hvcnRoYW5kc0ZvckxvbmdoYW5kKGxv
bmdoYW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3J0aGFuZHNbbG9uZ2hhbmRd
IHx8IFtdOwotICAgIH0KLQogICAgIGlzVmFsaWRQcm9wZXJ0eU5hbWUobmFtZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl92YWx1ZXMuaW5jbHVkZXMobmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTS2V5d29yZENvbXBs
ZXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U0tleXdvcmRDb21wbGV0aW9ucy5qcwppbmRleCBiYTQ1NWFjYWJlMWI1ZGM1YzA0MWU5ZGZiNTIy
Y2JjNGMxMGJiOGU5Li5hMzY2OWVjNDNmYTBhMDViZjliNDE4ZGVkMjY5ODUwOTE4ZDM3MDY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
S2V5d29yZENvbXBsZXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlvbnMuanMKQEAgLTIyNSw4ICsyMjUsMTUg
QEAgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmFkZEN1c3RvbUNvbXBsZXRpb25zID0gZnVuY3Rp
b24ocHJvcGVydGllcykKICAgICAgICAgaWYgKHByb3BlcnR5LmluaGVyaXRlZCkKICAgICAgICAg
ICAgIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Jbmhlcml0ZWRQcm9wZXJ0aWVzLmFkZChwcm9w
ZXJ0eS5uYW1lKTsKIAotICAgICAgICBpZiAocHJvcGVydHkubG9uZ2hhbmRzKQorICAgICAgICBp
ZiAocHJvcGVydHkubG9uZ2hhbmRzKSB7CiAgICAgICAgICAgICBXSS5DU1NLZXl3b3JkQ29tcGxl
dGlvbnMuTG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFByb3BlcnR5LnNldChwcm9wZXJ0eS5uYW1l
LCBwcm9wZXJ0eS5sb25naGFuZHMpOworCisgICAgICAgICAgICBmb3IgKGxldCBsb25naGFuZCBv
ZiBwcm9wZXJ0eS5sb25naGFuZHMpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2hvcnRoYW5kcyA9
IFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5TaG9ydGhhbmROYW1lc0ZvckxvbmdIYW5kUHJvcGVy
dHkuZ2V0T3JJbml0aWFsaXplKGxvbmdoYW5kLCBbXSk7CisgICAgICAgICAgICAgICAgc2hvcnRo
YW5kcy5wdXNoKHByb3BlcnR5Lm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAg
ICB9CiB9OwogCkBAIC0yNTIsNiArMjU5LDcgQEAgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLkFs
bFByb3BlcnR5TmFtZXNQbGFjZWhvbGRlciA9ICJfX2FsbC1wcm9wZXJ0aWVzX18iOwogLy8gUG9w
dWxhdGVkIGJ5IENTUy5nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzLgogV0kuQ1NTS2V5d29yZENv
bXBsZXRpb25zLlByb3BlcnR5TmFtZUZvckFsaWFzID0gbmV3IE1hcDsKIFdJLkNTU0tleXdvcmRD
b21wbGV0aW9ucy5Mb25naGFuZE5hbWVzRm9yU2hvcnRoYW5kUHJvcGVydHkgPSBuZXcgTWFwOwor
V0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLlNob3J0aGFuZE5hbWVzRm9yTG9uZ0hhbmRQcm9wZXJ0
eSA9IG5ldyBNYXA7CiAKIFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5Jbmhlcml0ZWRQcm9wZXJ0
aWVzID0gbmV3IFNldChbCiAgICAgLy8gQ29tcGF0aWJpbGl0eSAoaU9TIDEyKTogYGluaGVyaXRl
ZGAgZGlkbid0IGV4aXN0IG9uIGBDU1NQcm9wZXJ0eUluZm9gCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKaW5k
ZXggZjlhZjU4MjA2ZWU3MDRjOGMxZTUxY2ZjYjFkOWVhYmM4YjI3MzczYy4uMTE3Mjk1OWVhZjIz
MDIwMGYxYTk5Nzc3ZjhiYjI3NGQ3NjkxZmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwpAQCAtNDMw
LDcgKzQzMCw3IEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBX
SS5PYmplY3QKICAgICBnZXQgaXNTaG9ydGhhbmQoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X2lzU2hvcnRoYW5kID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHRoaXMuX2lzU2hvcnRo
YW5kID0gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLmlzU2hvcnRoYW5kUHJv
cGVydHlOYW1lKHRoaXMuX25hbWUpOworICAgICAgICAgICAgdGhpcy5faXNTaG9ydGhhbmQgPSBX
SS5DU1NLZXl3b3JkQ29tcGxldGlvbnMuTG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFByb3BlcnR5
Lmhhcyh0aGlzLl9uYW1lKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9pc1Nob3J0aGFuZCkgewog
ICAgICAgICAgICAgICAgIGxldCBsb25naGFuZHMgPSBXSS5DU1NLZXl3b3JkQ29tcGxldGlvbnMu
TG9uZ2hhbmROYW1lc0ZvclNob3J0aGFuZFByb3BlcnR5LmdldCh0aGlzLl9uYW1lKTsKICAgICAg
ICAgICAgICAgICBpZiAobG9uZ2hhbmRzICYmIGxvbmdoYW5kcy5sZW5ndGggPT09IDEpCkBAIC00
NDMsNyArNDQzLDcgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRz
IFdJLk9iamVjdAogICAgIGdldCBzaG9ydGhhbmRQcm9wZXJ0eU5hbWVzKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5fc2hvcnRoYW5kUHJvcGVydHlOYW1lcykgewotICAgICAgICAgICAgdGhp
cy5fc2hvcnRoYW5kUHJvcGVydHlOYW1lcyA9IFdJLkNTU0NvbXBsZXRpb25zLmNzc05hbWVDb21w
bGV0aW9ucy5zaG9ydGhhbmRzRm9yTG9uZ2hhbmQodGhpcy5fbmFtZSk7CisgICAgICAgICAgICB0
aGlzLl9zaG9ydGhhbmRQcm9wZXJ0eU5hbWVzID0gV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLlNo
b3J0aGFuZE5hbWVzRm9yTG9uZ0hhbmRQcm9wZXJ0eS5nZXQodGhpcy5fbmFtZSkgfHwgW107CiAg
ICAgICAgICAgICB0aGlzLl9zaG9ydGhhbmRQcm9wZXJ0eU5hbWVzLnJlbW92ZSgiYWxsIik7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3J0aGFuZFByb3BlcnR5TmFtZXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZVN0eWxlcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlU3R5bGVzLmpzCmluZGV4IGNlOGVjZjhlZTFmNzkxMTZhZTA2NzY0MmE3MWZiY2Y4
NTRkZmZiZmEuLjA1ODFmZWI4ZjIyN2FjN2RkNjcwMzZkZGNiZWNmYmZhNTEzZGIwNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2Rl
U3R5bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlU3R5bGVzLmpzCkBAIC05MDMsNyArOTAzLDcgQEAgV0kuRE9NTm9kZVN0eWxlcyA9
IGNsYXNzIERPTU5vZGVTdHlsZXMgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICBp
ZiAoIXByb3BlcnR5LnZhbGlkKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgICAgIGlmICghV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLmlz
U2hvcnRoYW5kUHJvcGVydHlOYW1lKHByb3BlcnR5Lm5hbWUpKQorICAgICAgICAgICAgICAgIGlm
ICghV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLkxvbmdoYW5kTmFtZXNGb3JTaG9ydGhhbmRQcm9w
ZXJ0eS5oYXMocHJvcGVydHkubmFtZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgICAgICAgICAgaWYgKGtub3duU2hvcnRoYW5kc1twcm9wZXJ0eS5jYW5vbmljYWxO
YW1lXSAmJiAha25vd25TaG9ydGhhbmRzW3Byb3BlcnR5LmNhbm9uaWNhbE5hbWVdLm92ZXJyaWRk
ZW4pIHsKQEAgLTkyMyw3ICs5MjMsNyBAQCBXSS5ET01Ob2RlU3R5bGVzID0gY2xhc3MgRE9NTm9k
ZVN0eWxlcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHZhciBzaG9ydGhhbmRQ
cm9wZXJ0eSA9IG51bGw7CiAKICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3Qoa25v
d25TaG9ydGhhbmRzKSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGVTaG9ydGhh
bmRzID0gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLnNob3J0aGFuZHNGb3JM
b25naGFuZChwcm9wZXJ0eS5jYW5vbmljYWxOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHBvc3NpYmxlU2hvcnRoYW5kcyA9IFdJLkNTU0tleXdvcmRDb21wbGV0aW9ucy5TaG9ydGhhbmRO
YW1lc0ZvckxvbmdIYW5kUHJvcGVydHkuZ2V0KHByb3BlcnR5LmNhbm9uaWNhbE5hbWUpIHx8IFtd
OwogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHBvc3NpYmxlU2hvcnRo
YW5kcy5sZW5ndGg7ICsraykgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxl
U2hvcnRoYW5kc1trXSBpbiBrbm93blNob3J0aGFuZHMpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eSA9IGtub3duU2hvcnRoYW5kc1twb3NzaWJsZVNob3J0
aGFuZHNba11dOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>