<?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>234614</bug_id>
          
          <creation_ts>2021-12-22 12:52:34 -0800</creation_ts>
          <short_desc>Web Inspector: Sources: expanding a grouping of blackboxed call frames should be persistent</short_desc>
          <delta_ts>2022-01-04 14:52:32 -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>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>234581</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</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>1826372</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-22 12:52:34 -0800</bug_when>
    <thetext># STEPS TO REPRODUCE
1. inspect &lt;http://bogojoker.com/shell/&gt;
2. create a &quot;click&quot; global Event Breakpoint
3. blackbox the &lt;http://bogojoker.com/shell/js/jquery.js&gt; script
4. click on the down arrow in the page
-&gt; should pause on &lt;http://bogojoker.com/shell/js/easySlider.min.js:64&gt; with two blackboxed call frames
5. click on the &quot;Blackboxed - 2 call frames&quot; to expand
-&gt; should see two call frames in jquery.js
6. Step into

## EXPECTED
the two jquery call frames remain as they are (i.e. are not re-collapsed)

## ACTUAL
the two jquery call frames are re-collapsed


# DISCUSSION

If the developer has explicitly decided to show blackboxed call frames, we should respect that decision.  Requiring them to re-expand after _every_ debugger action is very hostile.  I think so long as the blackboxed call frames remain the same we should persist the expansion.  Only if the location of those blackboxed frames changes should we re-collapse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827194</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-29 12:53:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86989232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828043</commentid>
    <comment_count>2</comment_count>
      <attachid>448324</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-04 12:38:08 -0800</bug_when>
    <thetext>Created attachment 448324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828054</commentid>
    <comment_count>3</comment_count>
      <attachid>448324</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-01-04 13:08:12 -0800</bug_when>
    <thetext>Comment on attachment 448324
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:30
&gt; +        (WI.ThreadTreeElement.prototype.refresh):

Can you add a line or two here describing the refactoring you did so that it is easier to understand at a quick glance what is happening now.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:556
&gt; +        for (let blackboxedCallFrameGroupToAutoExpand of this._blackboxedCallFrameGroupsToAutoExpand) {
&gt; +            if (blackboxedCallFrameGroupToAutoExpand.length !== blackboxedCallFrameGroup.length)
&gt; +                continue;
&gt; +
&gt; +            for (let i = 0; i &lt; blackboxedCallFrameGroupToAutoExpand.length; ++i) {
&gt; +                if (!blackboxedCallFrameGroupToAutoExpand[i].isEqual(blackboxedCallFrameGroup[i]))
&gt; +                    return false;
&gt; +            }
&gt; +
&gt; +            return true;
&gt; +        }

This doesn&apos;t look quite right...If we have expanded two sets of blackboxed frames, each with the same number of frames, we will do the right thing for the first set of frames, but for the second set of frames my understanding here is that we would pass the check on :547 when comparing the second set of frames with the remembered first set of frames, and then proceed to check that the frames match between the two sets, and when they don&apos;t we end up returning instead of checking the second set of remembered frames. I think :552 needs to continue the outer loop with some additional piece of state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828063</commentid>
    <comment_count>4</comment_count>
      <attachid>448324</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-04 13:13:23 -0800</bug_when>
    <thetext>Comment on attachment 448324
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:556
&gt;&gt; +        }
&gt; 
&gt; This doesn&apos;t look quite right...If we have expanded two sets of blackboxed frames, each with the same number of frames, we will do the right thing for the first set of frames, but for the second set of frames my understanding here is that we would pass the check on :547 when comparing the second set of frames with the remembered first set of frames, and then proceed to check that the frames match between the two sets, and when they don&apos;t we end up returning instead of checking the second set of remembered frames. I think :552 needs to continue the outer loop with some additional piece of state.

Oh wow great catch.  Yeah I think :552 should be a `continue`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828070</commentid>
    <comment_count>5</comment_count>
      <attachid>448330</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-04 13:25:41 -0800</bug_when>
    <thetext>Created attachment 448330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828082</commentid>
    <comment_count>6</comment_count>
      <attachid>448330</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-01-04 13:37:51 -0800</bug_when>
    <thetext>Comment on attachment 448330
Patch

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

rs=me

&gt; Source/WebInspectorUI/ChangeLog:40
&gt; +        Add a convenience function to compare two `WI.CallFrame`. Right now it just looks as the

Nit: s/as/at</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828089</commentid>
    <comment_count>7</comment_count>
      <attachid>448334</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-04 13:46:00 -0800</bug_when>
    <thetext>Created attachment 448334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828105</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-04 14:52:29 -0800</bug_when>
    <thetext>Committed r287590 (245719@main): &lt;https://commits.webkit.org/245719@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448334.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448324</attachid>
            <date>2022-01-04 12:38:08 -0800</date>
            <delta_ts>2022-01-04 13:25:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234614-20220104133807.patch</filename>
            <type>text/plain</type>
            <size>15357</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRjYzBmMDk3M2Q1OTk5YWI0YzVjNGJkOTVlOTc3
MDRhYWEyNzEyN2QuLmYzMzkwNWJhYjQ5YTgzNGM4ZmNjOGM3ZTUzY2ViOTJhMDkyYTcwMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
b3VyY2VzOiBleHBhbmRpbmcgYSBncm91cGluZyBvZiBibGFja2JveGVkIGNhbGwgZnJhbWVzIHNo
b3VsZCBiZSBwZXJzaXN0ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2OTg5MjMyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBkZXZl
bG9wZXIgaGFzIGV4cGxpY2l0bHkgZGVjaWRlZCB0byBzaG93IGJsYWNrYm94ZWQgY2FsbCBmcmFt
ZXMsIHdlIHNob3VsZCByZXNwZWN0CisgICAgICAgIHRoYXQgZGVjaXNpb24uIFJlcXVpcmluZyB0
aGVtIHRvIHJlLWV4cGFuZCBhZnRlciBfZXZlcnlfIGRlYnVnZ2VyIGFjdGlvbiBpcyB2ZXJ5IGhv
c3RpbGUuCisgICAgICAgIFNvIGxvbmcgYXMgdGhlIGJsYWNrYm94ZWQgY2FsbCBmcmFtZXMgcmVt
YWluIHRoZSBzYW1lIHdlIHNob3VsZCBwZXJzaXN0IHRoZSBleHBhbnNpb24uIE9ubHkKKyAgICAg
ICAgaWYgdGhlIGxvY2F0aW9uIG9mIHRob3NlIGJsYWNrYm94ZWQgZnJhbWVzIGNoYW5nZXMgc2hv
dWxkIHdlIHJlLWNvbGxhcHNlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIpOgorICAg
ICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5yZW1lbWJlckJsYWNrYm94ZWRDYWxs
RnJhbWVHcm91cFRvQXV0b0V4cGFuZCk6IEFkZGVkLgorICAgICAgICAoV0kuRGVidWdnZXJNYW5h
Z2VyLnByb3RvdHlwZS5zaG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwKTog
QWRkZWQuCisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9kaWRSZXN1bWVJ
bnRlcm5hbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBU
cmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50LnBy
b3RvdHlwZS5leHBhbmQpOgorICAgICAgICBLZWVwIGEgbGlzdCBvZiBibGFja2JveGVkIGNhbGwg
ZnJhbWUgZ3JvdXBpbmdzIHRoYXQgaGF2ZSBiZWVuIGV4cGFuZGVkIGJ5IHRoZSBkZXZlbG9wZXIu
CisgICAgICAgIFVzZSB0aGlzIGxpc3QgdG8gZGVjaWRlIHdoZXRoZXIgIm5ldyIgYmxhY2tib3hl
ZCBjYWxsIGZyYW1lIGdyb3VwaW5nIHNob3VsZCBiZSBhdXRvLWV4cGFuZGVkCisgICAgICAgIGJ5
IGRlZmF1bHQgKGkuZS4gaWYgZXZlcnkgYFdJLkNhbGxGcmFtZWAgaXMgaWRlbnRpY2FsIHdpdGgg
c29tZXRoaW5nIGluIHRoZSBsaXN0KS4gQ2xlYXIgdGhlCisgICAgICAgIGxpc3Qgd2hlbiByZXN1
bWluZywgYXMgd2UncmUgb25seSB0cnlpbmcgdG8ga2VlcCBleHBhbmRlZCBibGFja2JveGVkIGNh
bGwgZnJhbWUgZ3JvdXBpbmdzCisgICAgICAgIHdpdGhpbiB0aGUgc2FtZSBjYWxsIHN0YWNrIChp
LmUuIHdoaWxlIHN0ZXBwaW5nKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGls
aXRpZXMuanM6CisgICAgICAgIChBcnJheS5wcm90b3R5cGUuZ3JvdXBCeSk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdJLlRocmVhZFRyZWVFbGVtZW50LnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgUmVt
b3ZlIHRoZSBjdXN0b20gYEFycmF5LnByb3RvdHlwZS5ncm91cEJ5YCBzaW5jZSBpdCdzIG5vIGxv
bmdlciBuZWVkZWQgKGFuZCB0aGVyZSdzIG5vdyBhCisgICAgICAgIGJ1aWx0aW4gZnVuY3Rpb24g
d2l0aCB0aGUgc2FtZSBuYW1lKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0Nh
bGxGcmFtZS5qczoKKyAgICAgICAgKFdJLkNhbGxGcmFtZS5wcm90b3R5cGUuaXNFcXVhbCk6IEFk
ZGVkLgorICAgICAgICBBZGQgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjb21wYXJlIHR3byBg
V0kuQ2FsbEZyYW1lYC4gUmlnaHQgbm93IGl0IGp1c3QgbG9va3MgYXMgdGhlCisgICAgICAgIGBX
SS5Tb3VyY2VDb2RlTG9jYXRpb25gLCBzaW5jZSBmb3IgbW9zdCBwdXJwb3NlcyB0aGF0J3MgcmVh
bGx5IGhvdyBvbmUgd291bGQgaWRlbnRpZnkgYQorICAgICAgICBgV0kuQ2FsbEZyYW1lYCAoaS5l
LiBpdCdzIHByb2JhYmx5IG1vcmUgaW1wb3J0YW50IHRvIGtub3cgImlzIHRoaXMgdGhlIHNhbWUg
c3BvdCBpbiBjb2RlIgorICAgICAgICBhcyBvcHBvc2VkIHRvICJkbyB3ZSBoYXZlIHRoZSBzYW1l
IGB0aGlzYCBvYmplY3QiKS4KKwogMjAyMS0xMi0yMyAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgY29uaWMgZ3JhZGllbnRzIGlu
IGdyYWRpZW50IGVkaXRvciBhbmQgYXV0b2NvbXBsZXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKaW5kZXggZjQ1MGMz
OWI2M2M3YTRlOTZhNjM2YTQwZTJlMmQ3ZGFkNjM4MDZmNS4uMWQ0MzZhYjM5ZDNmZjIwOWQ1NmZl
YWE5ZGYyMTAzOTc5MTcyMjJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKQEAgLTE2MjQsNDAgKzE2MjQsNiBAQCBP
YmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiAg
ICAgfQogfSk7CiAKLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJncm91
cEJ5IiwKLXsKLSAgICB2YWx1ZShncm91cEZ1bmN0aW9uLCBtaW5Hcm91cFNpemUgPSAxKQotICAg
IHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAgICBsZXQgc3RhcnRJbmRleCA9IG51
bGw7Ci0KLSAgICAgICAgbGV0IGZsdXNoID0gKGVuZEluZGV4KSA9PiB7Ci0gICAgICAgICAgICBp
ZiAoc3RhcnRJbmRleCA9PT0gbnVsbCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICBsZXQgZ3JvdXAgPSB0aGlzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4ICsgMSk7Ci0g
ICAgICAgICAgICBsZXQgYWRqYWNlbnRDb3VudCA9IChlbmRJbmRleCArIDEpIC0gc3RhcnRJbmRl
eDsKLSAgICAgICAgICAgIGlmIChhZGphY2VudENvdW50ID49IG1pbkdyb3VwU2l6ZSkKLSAgICAg
ICAgICAgICAgICByZXN1bHQucHVzaChncm91cCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgcmVzdWx0LnB1c2hBbGwoZ3JvdXApOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhp
cy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7Ci0gICAgICAgICAgICBpZiAoZ3JvdXBGdW5jdGlvbihp
dGVtKSkgewotICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPz89IGk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGkgPT09IHRoaXMubGVuZ3RoIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgZmx1c2go
dGhpcy5sZW5ndGggLSAxKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
Zmx1c2goaSAtIDEpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pOwotICAgICAg
ICAgICAgICAgIHN0YXJ0SW5kZXggPSBudWxsOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsK
LQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX0pOwotCiBPYmplY3QuZGVmaW5lUHJv
cGVydHkoUHJvbWlzZSwgImNoYWluIiwKIHsKICAgICBhc3luYyB2YWx1ZShjYWxsYmFja3MsIGlu
aXRpYWxWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCBlYWYz
OWQ5NmUzY2MwZmFlYjczYWEzMjExMzliNzY3NDkwNzMxNzFiLi5jZjgyZDEyNDVkMjFmZWEwMDZm
NDJjMzFjYjdlYzdiMmU1NDgxODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2Vy
LmpzCkBAIC04MCw2ICs4MCw3IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2Vy
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9ibGFja2JveGVkVVJMc1Nl
dHRpbmcgPSBuZXcgV0kuU2V0dGluZygiZGVidWdnZXItYmxhY2tib3hlZC11cmxzIiwgW10pOwog
ICAgICAgICB0aGlzLl9ibGFja2JveGVkUGF0dGVybnNTZXR0aW5nID0gbmV3IFdJLlNldHRpbmco
ImRlYnVnZ2VyLWJsYWNrYm94ZWQtcGF0dGVybnMiLCBbXSk7CiAgICAgICAgIHRoaXMuX2JsYWNr
Ym94ZWRQYXR0ZXJuRGF0YU1hcCA9IG5ldyBNYXA7CisgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRD
YWxsRnJhbWVHcm91cHNUb0F1dG9FeHBhbmQgPSBbXTsKIAogICAgICAgICB0aGlzLl9hY3RpdmVD
YWxsRnJhbWUgPSBudWxsOwogCkBAIC01MzAsNiArNTMxLDMzIEBAIFdJLkRlYnVnZ2VyTWFuYWdl
ciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhEZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQmxhY2tib3hD
aGFuZ2VkKTsKICAgICB9CiAKKyAgICByZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRv
QXV0b0V4cGFuZChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydCghdGhpcy5zaG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxGcmFtZUdyb3Vw
KGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCksIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCk7CisK
KyAgICAgICAgdGhpcy5fYmxhY2tib3hlZENhbGxGcmFtZUdyb3Vwc1RvQXV0b0V4cGFuZC5wdXNo
KGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCk7CisgICAgfQorCisgICAgc2hvdWxkQXV0b0V4cGFu
ZEJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApCisgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydChXSS5zZXR0aW5ncy5leHBlcmltZW50YWxDb2xsYXBz
ZUJsYWNrYm94ZWRDYWxsRnJhbWVzLnZhbHVlKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoQXJy
YXkuaXNBcnJheShibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApICYmIGJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cC5sZW5ndGggJiYgYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwLmV2ZXJ5KChjYWxsRnJh
bWUpID0+IGNhbGxGcmFtZSBpbnN0YW5jZW9mIFdJLkNhbGxGcmFtZSAmJiBjYWxsRnJhbWUuYmxh
Y2tib3hlZCksIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCk7CisKKyAgICAgICAgZm9yIChsZXQg
YmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9BdXRvRXhwYW5kIG9mIHRoaXMuX2JsYWNrYm94ZWRD
YWxsRnJhbWVHcm91cHNUb0F1dG9FeHBhbmQpIHsKKyAgICAgICAgICAgIGlmIChibGFja2JveGVk
Q2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBhbmQubGVuZ3RoICE9PSBibGFja2JveGVkQ2FsbEZyYW1l
R3JvdXAubGVuZ3RoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4cGFuZC5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghYmxhY2tib3hlZENhbGxGcmFtZUdy
b3VwVG9BdXRvRXhwYW5kW2ldLmlzRXF1YWwoYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwW2ldKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKICAgICBnZXQgYXN5bmNTdGFja1RyYWNlRGVwdGgoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX2FzeW5jU3RhY2tUcmFjZURlcHRoU2V0dGluZy52YWx1ZTsKQEAgLTE0MTgs
NiArMTQ0Niw4IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgYWN0aXZlQ2FsbEZyYW1lRGlkQ2hhbmdlID0g
dHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRDYWxsRnJhbWVHcm91
cHNUb0F1dG9FeHBhbmQgPSBbXTsKKwogICAgICAgICB0aGlzLmRhdGFGb3JUYXJnZXQodGFyZ2V0
KS51cGRhdGVGb3JSZXN1bWUoKTsKIAogICAgICAgICBpZiAoIXRoaXMucGF1c2VkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFt
ZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJh
bWUuanMKaW5kZXggODM0OTdkNTA1ZTcwMTQ0NDAyNTYwNzkzYmNlMDE4N2M2ZTUxZjgyMC4uMzRh
NDdiZTE3NzY4YzVlYzNjN2FhNTFmNDNjNzY2N2UxODY4Y2Q2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzCkBA
IC02NCw2ICs2NCwxNyBAQCBXSS5DYWxsRnJhbWUgPSBjbGFzcyBDYWxsRnJhbWUKICAgICBnZXQg
YmxhY2tib3hlZCgpIHsgcmV0dXJuIHRoaXMuX2JsYWNrYm94ZWQ7IH0KICAgICBnZXQgaXNDb25z
b2xlRXZhbHVhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2lzQ29uc29sZUV2YWx1YXRpb247IH0KIAor
ICAgIGlzRXF1YWwob3RoZXIpCisgICAgeworICAgICAgICBpZiAoIW90aGVyKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24g
JiYgb3RoZXIuX3NvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9z
b3VyY2VDb2RlTG9jYXRpb24uaXNFcXVhbChvdGhlci5fc291cmNlQ29kZUxvY2F0aW9uKTsKKwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc2F2ZUlkZW50aXR5VG9Db29raWUo
KQogICAgIHsKICAgICAgICAgLy8gRG8gbm90aGluZy4gVGhlIGNhbGwgZnJhbWUgaXMgdG9ybiBk
b3duIHdoZW4gdGhlIGluc3BlY3RvciBjbG9zZXMsIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1l
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2Jv
eGVkR3JvdXBUcmVlRWxlbWVudC5qcwppbmRleCA5YzY2OWNjYzUxNmQyYTBlZDgyNGEyYTU1YmE2
NjYzYzNhZThjZmFhLi5hYmRiOTBhMTZlOTU1MTEyNGFjYWVjZjRiNTUyZjI5ZjM3MGU4ODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFj
a2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcwpAQCAtMjcsNyAr
MjcsNyBAQCBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudCA9IGNsYXNzIEJsYWNrYm94ZWRH
cm91cFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogewogICAgIGNvbnN0cnVjdG9yKGNhbGxG
cmFtZXMpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChBcnJheS5pc0FycmF5KGNhbGxG
cmFtZXMpICYmIGNhbGxGcmFtZXMubGVuZ3RoICYmIGNhbGxGcmFtZXMuZXZlcnkoKGNhbGxGcmFt
ZSkgPT4gY2FsbEZyYW1lIGluc3RhbmNlb2YgV0kuQ2FsbEZyYW1lKSk7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCFXSS5kZWJ1Z2dlck1hbmFnZXIuc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRD
YWxsRnJhbWVHcm91cChjYWxsRnJhbWVzKSwgY2FsbEZyYW1lcyk7CiAKICAgICAgICAgY29uc3Qg
Y2xhc3NOYW1lcyA9IFsiYmxhY2tib3hlZC1ncm91cCJdOwogICAgICAgICBjb25zdCB0aXRsZSA9
IFdJLlVJU3RyaW5nKCJCbGFja2JveGVkIiwgIkJsYWNrYm94ZWQgQCBEZWJ1Z2dlciBDYWxsIFN0
YWNrIiwgIlBhcnQgb2YgdGhlICdCbGFja2JveGVkIC0gJWQgY2FsbCBmcmFtZXMnIGxhYmVsIHNo
b3duIGluIHRoZSBkZWJ1Z2dlciBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vi
c2VxdWVudCBjYWxsIGZyYW1lcyB0aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiIpOwpAQCAtNDgs
NiArNDgsOCBAQCBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudCA9IGNsYXNzIEJsYWNrYm94
ZWRHcm91cFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogCiAgICAgZXhwYW5kKCkKICAgICB7
CisgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVH
cm91cFRvQXV0b0V4cGFuZCh0aGlzLl9jYWxsRnJhbWVzKTsKKwogICAgICAgICBsZXQgaW5kZXgg
PSB0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpOwogICAgICAgICBmb3IgKGxldCBp
ID0gdGhpcy5fY2FsbEZyYW1lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKICAgICAgICAgICAg
IHRoaXMucGFyZW50Lmluc2VydENoaWxkKG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudCh0aGlz
Ll9jYWxsRnJhbWVzW2ldKSwgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcwppbmRl
eCA1NWMxYmNhMzJjMWQ1Y2U5N2QwZGUzNjViM2JiYjkzODI4ZDFlNDk0Li4xMTBkNzdmMGM3ODUx
MTczM2JhYjhkNWM3OTdlZmYwZTU5MjUwNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5q
cwpAQCAtNTcsMTYgKzU3LDM1IEBAIFdJLlRocmVhZFRyZWVFbGVtZW50ID0gY2xhc3MgVGhyZWFk
VHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAgICAgbGV0IGFj
dGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50ID0gbnVsbDsKIAogICAgICAgICBsZXQgcmVuZGVyQ2Fs
bEZyYW1lcyA9IChjYWxsRnJhbWVzLCBzaG91bGRTZWxlY3RBY3RpdmVGcmFtZSkgPT4gewotICAg
ICAgICAgICAgaWYgKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbENvbGxhcHNlQmxhY2tib3hlZENh
bGxGcmFtZXMudmFsdWUpCi0gICAgICAgICAgICAgICAgY2FsbEZyYW1lcyA9IGNhbGxGcmFtZXMu
Z3JvdXBCeSgoY2FsbEZyYW1lKSA9PiBjYWxsRnJhbWUuYmxhY2tib3hlZCk7CisgICAgICAgICAg
ICBsZXQgYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCA9IHVuZGVmaW5lZDsKIAot
ICAgICAgICAgICAgZm9yIChsZXQgY2FsbEZyYW1lT3JCbGFja2JveGVkR3JvdXAgb2YgY2FsbEZy
YW1lcykgewotICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNhbGxGcmFtZU9yQmxh
Y2tib3hlZEdyb3VwKSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5l
dyBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudChjYWxsRnJhbWVPckJsYWNrYm94ZWRHcm91
cCkpOworICAgICAgICAgICAgLy8gQWRkIG9uZSBleHRyYSBpdGVyYXRpb24gdG8gaGFuZGxlIGNh
bGwgc3RhY2tzIHRoYXQgc3RhcnQgYmxhY2tib3hlZC4KKyAgICAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgY2FsbEZyYW1lcy5sZW5ndGggKyAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBs
ZXQgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKKworICAgICAgICAgICAgICAgIGlmIChjYWxs
RnJhbWU/LmJsYWNrYm94ZWQgJiYgV0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsQ29sbGFwc2VCbGFj
a2JveGVkQ2FsbEZyYW1lcy52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBibGFja2JveGVk
Q2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ID8/PSBpOwogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZVRy
ZWVFbGVtZW50ID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVFbGVtZW50KGNhbGxGcmFtZU9yQmxhY2ti
b3hlZEdyb3VwKTsKLSAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU2VsZWN0QWN0aXZlRnJhbWUg
JiYgY2FsbEZyYW1lT3JCbGFja2JveGVkR3JvdXAgPT09IGFjdGl2ZUNhbGxGcmFtZSkKKworICAg
ICAgICAgICAgICAgIGlmIChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ICE9PSB1
bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGJsYWNrYm94ZWRDYWxsRnJhbWVH
cm91cCA9IGNhbGxGcmFtZXMuc2xpY2UoYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRl
eCwgaSk7CisgICAgICAgICAgICAgICAgICAgIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0
SW5kZXggPSB1bmRlZmluZWQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFXSS5kZWJ1Z2dl
ck1hbmFnZXIuc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cChibGFja2Jv
eGVkQ2FsbEZyYW1lR3JvdXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVu
ZENoaWxkKG5ldyBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudChibGFja2JveGVkQ2FsbEZy
YW1lR3JvdXApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYmxhY2tib3hlZENh
bGxGcmFtZSBvZiBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApCisgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudChibGFja2Jv
eGVkQ2FsbEZyYW1lKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYg
KCFjYWxsRnJhbWUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICAgICAgbGV0IGNhbGxGcmFtZVRyZWVFbGVtZW50ID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVFbGVt
ZW50KGNhbGxGcmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZFNlbGVjdEFjdGl2ZUZy
YW1lICYmIGNhbGxGcmFtZSA9PT0gYWN0aXZlQ2FsbEZyYW1lKQogICAgICAgICAgICAgICAgICAg
ICBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IGNhbGxGcmFtZVRyZWVFbGVtZW50OwogICAg
ICAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoY2FsbEZyYW1lVHJlZUVsZW1lbnQpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDcyYWUyMmE5ZGUwNmZhZDk1ZTVlMDBhNTM0NzdiYzc3MGY5ZThm
ODIuLjk5YmZjMTM5OThhOTcwZTg5YTFkMjUxZDMyZDA2NzU5MGQyMWQyY2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMi0wMS0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczogZXhwYW5kaW5nIGEgZ3JvdXBpbmcg
b2YgYmxhY2tib3hlZCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgcGVyc2lzdGVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NjE0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84Njk4OTIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgIFJlbW92ZSB0aGUgY3VzdG9tIGBBcnJheS5wcm90b3R5cGUuZ3Jv
dXBCeWAgc2luY2UgaXQncyBubyBsb25nZXIgbmVlZGVkIChhbmQgdGhlcmUncyBub3cgYQorICAg
ICAgICBidWlsdGluIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSkuCisKIDIwMjEtMTItMjMg
IFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5lIGdldENv
bXB1dGVkU3R5bGUgdGVzdHMgZm9yIGlPUyBhZnRlciByMjg3MzU2CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLWV4cGVj
dGVkLnR4dAppbmRleCAxNjgwMmIyZDk4MTBlNjZkYTBlNmYwOTdhZGZmY2MxMjFhYzQ2YTQyLi5l
ZjU0YzA5NWZlYzZmY2MwMDRlMmM4MmFhMDEzNzkyY2UzNmQwMWE0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy1l
eHBlY3RlZC50eHQKQEAgLTEwNSwxNiArMTA1LDYgQEAgUEFTUzogbGFzdFZhbHVlIG9mIGFuIGVt
cHR5IGFycmF5IHNob3VsZCBiZSB1bmRlZmluZWQuCiBbMSwyLDNdID0+IFtbMSwyXSxbMiwzXV0K
IFsxLDIsMyw0XSA9PiBbWzEsMl0sWzIsM10sWzMsNF1dCiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBBcnJheS5wcm90b3R5cGUuZ3JvdXBCeQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLFsx
XSwwLFsxLDFdLDAsWzEsMSwxXSwwXQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLDEsMCxb
MSwxXSwwLFsxLDEsMV0sMF0KLVswLDEsMCwxLDEsMCwxLDEsMSwwXSA9PiBbMCwxLDAsMSwxLDAs
WzEsMSwxXSwwXQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLDEsMCwxLDEsMCwxLDEsMSww
XQotWzAsMSwwLDEsMSwwLDEsMSwxXSA9PiBbMCxbMV0sMCxbMSwxXSwwLFsxLDEsMV1dCi1bMCwx
LDAsMSwxLDAsMSwxLDFdID0+IFswLDEsMCxbMSwxXSwwLFsxLDEsMV1dCi1bMCwxLDAsMSwxLDAs
MSwxLDFdID0+IFswLDEsMCwxLDEsMCxbMSwxLDFdXQotWzAsMSwwLDEsMSwwLDEsMSwxXSA9PiBb
MCwxLDAsMSwxLDAsMSwxLDFdCi0KIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBcnJheS5wcm90b3R5
cGUucmVtb3ZlCiBQQVNTOiByZW1vdmUgc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gcmVtb3Zpbmcg
YSB2YWx1ZSB0aGF0IGV4aXN0cy4KIFBBU1M6IHJlbW92ZSBzaG91bGQgb25seSByZW1vdmUgdGhl
IGZpcnN0IG1hdGNoaW5nIHZhbHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMuaHRtbAppbmRleCAxYzE4NzdkYTU2ZTQwZWM3Zjgx
OTNmZTU1NDM0NzkwNjQ2MTVjOWMzLi5hZTM2ZGU5ZTM2OGVmYjJhZGRkMTk5ZTIzNTMzYTAyNTdk
OGU1ODc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJh
eS11dGlsaXRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9h
cnJheS11dGlsaXRpZXMuaHRtbApAQCAtMjE5LDMyICsyMTksNiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBu
YW1lOiAiQXJyYXkucHJvdG90eXBlLmdyb3VwQnkiLAotICAgICAgICB0ZXN0KCkgewotICAgICAg
ICAgICAgZnVuY3Rpb24gbG9nKGlucHV0LCBvdXRwdXQpIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZyhKU09OLnN0cmluZ2lmeShpbnB1dCkgKyAiID0+ICIgKyBKU09OLnN0cmlu
Z2lmeShvdXRwdXQpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IGFyciA9IFsw
LCAxLCAwLCAxLCAxLCAwLCAxLCAxLCAxLCAwXTsKLSAgICAgICAgICAgIGxldCBpc09uZSA9ICh4
KSA9PiB7IHJldHVybiB4ID09PSAxIH07Ci0KLSAgICAgICAgICAgIGxvZyhhcnIsIGFyci5ncm91
cEJ5KGlzT25lLCAxKSk7Ci0gICAgICAgICAgICBsb2coYXJyLCBhcnIuZ3JvdXBCeShpc09uZSwg
MikpOwotICAgICAgICAgICAgbG9nKGFyciwgYXJyLmdyb3VwQnkoaXNPbmUsIDMpKTsKLSAgICAg
ICAgICAgIGxvZyhhcnIsIGFyci5ncm91cEJ5KGlzT25lLCA0KSk7Ci0KLSAgICAgICAgICAgIGxl
dCBhcnIyID0gWzAsIDEsIDAsIDEsIDEsIDAsIDEsIDEsIDFdOwotCi0gICAgICAgICAgICBsb2co
YXJyMiwgYXJyMi5ncm91cEJ5KGlzT25lLCAxKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJy
Mi5ncm91cEJ5KGlzT25lLCAyKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJyMi5ncm91cEJ5
KGlzT25lLCAzKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJyMi5ncm91cEJ5KGlzT25lLCA0
KSk7Ci0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfSk7Ci0KICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJBcnJheS5wcm90b3R5cGUucmVt
b3ZlIiwKICAgICAgICAgdGVzdCgpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448330</attachid>
            <date>2022-01-04 13:25:41 -0800</date>
            <delta_ts>2022-01-04 13:46:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234614-20220104142540.patch</filename>
            <type>text/plain</type>
            <size>15638</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU2OGNlZDhhYzRhZWRhMjRkNmJiYmZmNGI5NzY3
MjljZWM4Nzc3ZTYuLjQ0M2Q0N2I0MTM1ZTY4NDYzNjQyYjgyMmIxMGQ5NTVhOGFjMDhlZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
b3VyY2VzOiBleHBhbmRpbmcgYSBncm91cGluZyBvZiBibGFja2JveGVkIGNhbGwgZnJhbWVzIHNo
b3VsZCBiZSBwZXJzaXN0ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2OTg5MjMyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBkZXZl
bG9wZXIgaGFzIGV4cGxpY2l0bHkgZGVjaWRlZCB0byBzaG93IGJsYWNrYm94ZWQgY2FsbCBmcmFt
ZXMsIHdlIHNob3VsZCByZXNwZWN0CisgICAgICAgIHRoYXQgZGVjaXNpb24uIFJlcXVpcmluZyB0
aGVtIHRvIHJlLWV4cGFuZCBhZnRlciBfZXZlcnlfIGRlYnVnZ2VyIGFjdGlvbiBpcyB2ZXJ5IGhv
c3RpbGUuCisgICAgICAgIFNvIGxvbmcgYXMgdGhlIGJsYWNrYm94ZWQgY2FsbCBmcmFtZXMgcmVt
YWluIHRoZSBzYW1lIHdlIHNob3VsZCBwZXJzaXN0IHRoZSBleHBhbnNpb24uIE9ubHkKKyAgICAg
ICAgaWYgdGhlIGxvY2F0aW9uIG9mIHRob3NlIGJsYWNrYm94ZWQgZnJhbWVzIGNoYW5nZXMgc2hv
dWxkIHdlIHJlLWNvbGxhcHNlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIpOgorICAg
ICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5yZW1lbWJlckJsYWNrYm94ZWRDYWxs
RnJhbWVHcm91cFRvQXV0b0V4cGFuZCk6IEFkZGVkLgorICAgICAgICAoV0kuRGVidWdnZXJNYW5h
Z2VyLnByb3RvdHlwZS5zaG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwKTog
QWRkZWQuCisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9kaWRSZXN1bWVJ
bnRlcm5hbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBU
cmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50LnBy
b3RvdHlwZS5leHBhbmQpOgorICAgICAgICBLZWVwIGEgbGlzdCBvZiBibGFja2JveGVkIGNhbGwg
ZnJhbWUgZ3JvdXBpbmdzIHRoYXQgaGF2ZSBiZWVuIGV4cGFuZGVkIGJ5IHRoZSBkZXZlbG9wZXIu
CisgICAgICAgIFVzZSB0aGlzIGxpc3QgdG8gZGVjaWRlIHdoZXRoZXIgIm5ldyIgYmxhY2tib3hl
ZCBjYWxsIGZyYW1lIGdyb3VwaW5nIHNob3VsZCBiZSBhdXRvLWV4cGFuZGVkCisgICAgICAgIGJ5
IGRlZmF1bHQgKGkuZS4gaWYgZXZlcnkgYFdJLkNhbGxGcmFtZWAgaXMgaWRlbnRpY2FsIHdpdGgg
c29tZXRoaW5nIGluIHRoZSBsaXN0KS4gQ2xlYXIgdGhlCisgICAgICAgIGxpc3Qgd2hlbiByZXN1
bWluZywgYXMgd2UncmUgb25seSB0cnlpbmcgdG8ga2VlcCBleHBhbmRlZCBibGFja2JveGVkIGNh
bGwgZnJhbWUgZ3JvdXBpbmdzCisgICAgICAgIHdpdGhpbiB0aGUgc2FtZSBjYWxsIHN0YWNrIChp
LmUuIHdoaWxlIHN0ZXBwaW5nKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGls
aXRpZXMuanM6CisgICAgICAgIChBcnJheS5wcm90b3R5cGUuZ3JvdXBCeSk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdJLlRocmVhZFRyZWVFbGVtZW50LnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgUmVt
b3ZlIHRoZSBjdXN0b20gYEFycmF5LnByb3RvdHlwZS5ncm91cEJ5YCBzaW5jZSBpdCdzIG5vIGxv
bmdlciBuZWVkZWQgKGFuZCB0aGVyZSdzIG5vdyBhCisgICAgICAgIGJ1aWx0aW4gZnVuY3Rpb24g
d2l0aCB0aGUgc2FtZSBuYW1lKS4gSW5zdGVhZCwganVzdCBrZWVwIGFuIGluZGV4IG9mIHRoZSBm
aXJzdCBibGFja2JveGVkCisgICAgICAgIGNhbGwgZnJhbWUgYW5kIGl0ZXJhdGUgdW50aWwgZWl0
aGVyIHRoZSBlbmQgb2YgdGhlIGNhbGwgc3RhY2sgb3IgYSBub24tYmxhY2tib3hlZCBjYWxsIGZy
YW1lCisgICAgICAgIGlzIGZvdW5kLCBgc2xpY2VgaW5nIGZyb20gdGhlIHNhdmVkIGluZGV4IHRv
IHRoZSBjdXJyZW50IGl0ZW0gdG8gbWFrZSBhIGJsYWNrYm94ZWQgY2FsbAorICAgICAgICBmcmFt
ZSBncm91cC4gSWYgdGhhdCBibGFja2JveGVkIGNhbGwgZnJhbWUgZ3JvdXAgc2hvdWxkIGJlIGF1
dG8tZXhwYW5kZWQgKHNlZSBhYm92ZSksIGNyZWF0ZQorICAgICAgICBhIGBXSS5DYWxsRnJhbWVU
cmVlRWxlbWVudGAgZm9yIGVhY2ggYmxhY2tib3hlZCBjYWxsIGZyYW1lIGluc3RlYWQgb2Ygb25l
IGBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudGAuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9DYWxsRnJhbWUuanM6CisgICAgICAgIChXSS5DYWxsRnJhbWUucHJvdG90eXBl
LmlzRXF1YWwpOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8g
Y29tcGFyZSB0d28gYFdJLkNhbGxGcmFtZWAuIFJpZ2h0IG5vdyBpdCBqdXN0IGxvb2tzIGFzIHRo
ZQorICAgICAgICBgV0kuU291cmNlQ29kZUxvY2F0aW9uYCwgc2luY2UgZm9yIG1vc3QgcHVycG9z
ZXMgdGhhdCdzIHJlYWxseSBob3cgb25lIHdvdWxkIGlkZW50aWZ5IGEKKyAgICAgICAgYFdJLkNh
bGxGcmFtZWAgKGkuZS4gaXQncyBwcm9iYWJseSBtb3JlIGltcG9ydGFudCB0byBrbm93ICJpcyB0
aGlzIHRoZSBzYW1lIHNwb3QgaW4gY29kZSIKKyAgICAgICAgYXMgb3Bwb3NlZCB0byAiZG8gd2Ug
aGF2ZSB0aGUgc2FtZSBgdGhpc2Agb2JqZWN0IikuCisKIDIwMjEtMTItMzEgIFRpbSBOZ3V5ZW4g
IDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggYXNzZXJ0IHRl
eHQgaW4gR3JhZGllbnQuanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKaW5kZXggZjQ1MGMzOWI2M2M3YTRlOTZhNjM2YTQw
ZTJlMmQ3ZGFkNjM4MDZmNS4uMWQ0MzZhYjM5ZDNmZjIwOWQ1NmZlYWE5ZGYyMTAzOTc5MTcyMjJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9V
dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9VdGlsaXRpZXMuanMKQEAgLTE2MjQsNDAgKzE2MjQsNiBAQCBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoQXJyYXkucHJvdG90eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiAgICAgfQogfSk7CiAKLU9iamVj
dC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJncm91cEJ5IiwKLXsKLSAgICB2YWx1
ZShncm91cEZ1bmN0aW9uLCBtaW5Hcm91cFNpemUgPSAxKQotICAgIHsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IFtdOwotICAgICAgICBsZXQgc3RhcnRJbmRleCA9IG51bGw7Ci0KLSAgICAgICAgbGV0
IGZsdXNoID0gKGVuZEluZGV4KSA9PiB7Ci0gICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0g
bnVsbCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBsZXQgZ3JvdXAgPSB0
aGlzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4ICsgMSk7Ci0gICAgICAgICAgICBsZXQgYWRq
YWNlbnRDb3VudCA9IChlbmRJbmRleCArIDEpIC0gc3RhcnRJbmRleDsKLSAgICAgICAgICAgIGlm
IChhZGphY2VudENvdW50ID49IG1pbkdyb3VwU2l6ZSkKLSAgICAgICAgICAgICAgICByZXN1bHQu
cHVzaChncm91cCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0LnB1
c2hBbGwoZ3JvdXApOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5mb3JFYWNoKChpdGVtLCBp
KSA9PiB7Ci0gICAgICAgICAgICBpZiAoZ3JvdXBGdW5jdGlvbihpdGVtKSkgewotICAgICAgICAg
ICAgICAgIHN0YXJ0SW5kZXggPz89IGk7Ci0gICAgICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMu
bGVuZ3RoIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgZmx1c2godGhpcy5sZW5ndGggLSAxKTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZmx1c2goaSAtIDEpOwotICAg
ICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pOwotICAgICAgICAgICAgICAgIHN0YXJ0SW5k
ZXggPSBudWxsOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIH0KLX0pOwotCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoUHJvbWlzZSwgImNo
YWluIiwKIHsKICAgICBhc3luYyB2YWx1ZShjYWxsYmFja3MsIGluaXRpYWxWYWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Rl
YnVnZ2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCBlYWYzOWQ5NmUzY2MwZmFlYjczYWEz
MjExMzliNzY3NDkwNzMxNzFiLi42MjgyOGE3ZWQ0YWM5NjNlZjIxNWU1NTMwY2E4MGM3NmM4NzZi
MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCkBAIC04MCw2ICs4MCw3
IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICB0aGlzLl9ibGFja2JveGVkVVJMc1NldHRpbmcgPSBuZXcgV0kuU2V0
dGluZygiZGVidWdnZXItYmxhY2tib3hlZC11cmxzIiwgW10pOwogICAgICAgICB0aGlzLl9ibGFj
a2JveGVkUGF0dGVybnNTZXR0aW5nID0gbmV3IFdJLlNldHRpbmcoImRlYnVnZ2VyLWJsYWNrYm94
ZWQtcGF0dGVybnMiLCBbXSk7CiAgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRQYXR0ZXJuRGF0YU1h
cCA9IG5ldyBNYXA7CisgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRDYWxsRnJhbWVHcm91cHNUb0F1
dG9FeHBhbmQgPSBbXTsKIAogICAgICAgICB0aGlzLl9hY3RpdmVDYWxsRnJhbWUgPSBudWxsOwog
CkBAIC01MzAsNiArNTMxLDI2IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2Vy
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhEZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQmxhY2tib3hDaGFuZ2VkKTsKICAgICB9CiAK
KyAgICByZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4cGFuZChibGFja2Jv
eGVkQ2FsbEZyYW1lR3JvdXApCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5z
aG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwKGJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cCksIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCk7CisKKyAgICAgICAgdGhpcy5fYmxh
Y2tib3hlZENhbGxGcmFtZUdyb3Vwc1RvQXV0b0V4cGFuZC5wdXNoKGJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cCk7CisgICAgfQorCisgICAgc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApCisgICAgeworICAgICAgICBjb25zb2xl
LmFzc2VydChXSS5zZXR0aW5ncy5leHBlcmltZW50YWxDb2xsYXBzZUJsYWNrYm94ZWRDYWxsRnJh
bWVzLnZhbHVlKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoQXJyYXkuaXNBcnJheShibGFja2Jv
eGVkQ2FsbEZyYW1lR3JvdXApICYmIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cC5sZW5ndGggJiYg
YmxhY2tib3hlZENhbGxGcmFtZUdyb3VwLmV2ZXJ5KChjYWxsRnJhbWUpID0+IGNhbGxGcmFtZSBp
bnN0YW5jZW9mIFdJLkNhbGxGcmFtZSAmJiBjYWxsRnJhbWUuYmxhY2tib3hlZCksIGJsYWNrYm94
ZWRDYWxsRnJhbWVHcm91cCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX2JsYWNrYm94ZWRDYWxs
RnJhbWVHcm91cHNUb0F1dG9FeHBhbmQuc29tZSgoYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9B
dXRvRXhwYW5kKSA9PiB7CisgICAgICAgICAgICBpZiAoYmxhY2tib3hlZENhbGxGcmFtZUdyb3Vw
VG9BdXRvRXhwYW5kLmxlbmd0aCAhPT0gYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIHJldHVybiBibGFj
a2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBhbmQuZXZlcnkoKGl0ZW0sIGkpID0+IGl0ZW0u
aXNFcXVhbChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBbaV0pKTsKKyAgICAgICAgfSk7CisgICAg
fQorCiAgICAgZ2V0IGFzeW5jU3RhY2tUcmFjZURlcHRoKCkKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9hc3luY1N0YWNrVHJhY2VEZXB0aFNldHRpbmcudmFsdWU7CkBAIC0xNDE4LDYgKzE0
MzksOCBAQCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgICAgIGFjdGl2ZUNhbGxGcmFtZURpZENoYW5nZSA9IHRydWU7
CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9ibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBzVG9B
dXRvRXhwYW5kID0gW107CisKICAgICAgICAgdGhpcy5kYXRhRm9yVGFyZ2V0KHRhcmdldCkudXBk
YXRlRm9yUmVzdW1lKCk7CiAKICAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpz
CmluZGV4IDgzNDk3ZDUwNWU3MDE0NDQwMjU2MDc5M2JjZTAxODdjNmU1MWY4MjAuLjM0YTQ3YmUx
Nzc2OGM1ZWMzYzdhYTUxZjQzYzc2NjdlMTg2OGNkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcwpAQCAtNjQs
NiArNjQsMTcgQEAgV0kuQ2FsbEZyYW1lID0gY2xhc3MgQ2FsbEZyYW1lCiAgICAgZ2V0IGJsYWNr
Ym94ZWQoKSB7IHJldHVybiB0aGlzLl9ibGFja2JveGVkOyB9CiAgICAgZ2V0IGlzQ29uc29sZUV2
YWx1YXRpb24oKSB7IHJldHVybiB0aGlzLl9pc0NvbnNvbGVFdmFsdWF0aW9uOyB9CiAKKyAgICBp
c0VxdWFsKG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKCFvdGhlcikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBpZiAodGhpcy5fc291cmNlQ29kZUxvY2F0aW9uICYmIG90
aGVyLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNl
Q29kZUxvY2F0aW9uLmlzRXF1YWwob3RoZXIuX3NvdXJjZUNvZGVMb2NhdGlvbik7CisKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHNhdmVJZGVudGl0eVRvQ29va2llKCkKICAg
ICB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuIFRoZSBjYWxsIGZyYW1lIGlzIHRvcm4gZG93biB3
aGVuIHRoZSBpbnNwZWN0b3IgY2xvc2VzLCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdy
b3VwVHJlZUVsZW1lbnQuanMKaW5kZXggOWM2NjljY2M1MTZkMmEwZWQ4MjRhMmE1NWJhNjY2M2Mz
YWU4Y2ZhYS4uYWJkYjkwYTE2ZTk1NTExMjRhY2FlY2Y0YjU1MmYyOWYzNzBlODg4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hl
ZEdyb3VwVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQuanMKQEAgLTI3LDcgKzI3LDcg
QEAgV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQgPSBjbGFzcyBCbGFja2JveGVkR3JvdXBU
cmVlRWxlbWVudCBleHRlbmRzIFdJLkdlbmUKIHsKICAgICBjb25zdHJ1Y3RvcihjYWxsRnJhbWVz
KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoQXJyYXkuaXNBcnJheShjYWxsRnJhbWVz
KSAmJiBjYWxsRnJhbWVzLmxlbmd0aCAmJiBjYWxsRnJhbWVzLmV2ZXJ5KChjYWxsRnJhbWUpID0+
IGNhbGxGcmFtZSBpbnN0YW5jZW9mIFdJLkNhbGxGcmFtZSkpOworICAgICAgICBjb25zb2xlLmFz
c2VydCghV0kuZGVidWdnZXJNYW5hZ2VyLnNob3VsZEF1dG9FeHBhbmRCbGFja2JveGVkQ2FsbEZy
YW1lR3JvdXAoY2FsbEZyYW1lcyksIGNhbGxGcmFtZXMpOwogCiAgICAgICAgIGNvbnN0IGNsYXNz
TmFtZXMgPSBbImJsYWNrYm94ZWQtZ3JvdXAiXTsKICAgICAgICAgY29uc3QgdGl0bGUgPSBXSS5V
SVN0cmluZygiQmxhY2tib3hlZCIsICJCbGFja2JveGVkIEAgRGVidWdnZXIgQ2FsbCBTdGFjayIs
ICJQYXJ0IG9mIHRoZSAnQmxhY2tib3hlZCAtICVkIGNhbGwgZnJhbWVzJyBsYWJlbCBzaG93biBp
biB0aGUgZGVidWdnZXIgY2FsbCBzdGFjayB3aGVuIHBhdXNlZCBpbnN0ZWFkIG9mIHN1YnNlcXVl
bnQgY2FsbCBmcmFtZXMgdGhhdCBoYXZlIGJlZW4gYmxhY2tib3hlZC4iKTsKQEAgLTQ4LDYgKzQ4
LDggQEAgV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQgPSBjbGFzcyBCbGFja2JveGVkR3Jv
dXBUcmVlRWxlbWVudCBleHRlbmRzIFdJLkdlbmUKIAogICAgIGV4cGFuZCgpCiAgICAgeworICAg
ICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtZW1iZXJCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXBU
b0F1dG9FeHBhbmQodGhpcy5fY2FsbEZyYW1lcyk7CisKICAgICAgICAgbGV0IGluZGV4ID0gdGhp
cy5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZih0aGlzKTsKICAgICAgICAgZm9yIChsZXQgaSA9IHRo
aXMuX2NhbGxGcmFtZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpCiAgICAgICAgICAgICB0aGlz
LnBhcmVudC5pbnNlcnRDaGlsZChuZXcgV0kuQ2FsbEZyYW1lVHJlZUVsZW1lbnQodGhpcy5fY2Fs
bEZyYW1lc1tpXSksIGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RocmVhZFRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMKaW5kZXggNTVj
MWJjYTMyYzFkNWNlOTdkMGRlMzY1YjNiYmI5MzgyOGQxZTQ5NC4uMTEwZDc3ZjBjNzg1MTE3MzNi
YWI4ZDVjNzk3ZWZmMGU1OTI1MDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMKQEAg
LTU3LDE2ICs1NywzNSBAQCBXSS5UaHJlYWRUcmVlRWxlbWVudCA9IGNsYXNzIFRocmVhZFRyZWVF
bGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFRyZWVFbGVtZW50CiAgICAgICAgIGxldCBhY3RpdmVD
YWxsRnJhbWVUcmVlRWxlbWVudCA9IG51bGw7CiAKICAgICAgICAgbGV0IHJlbmRlckNhbGxGcmFt
ZXMgPSAoY2FsbEZyYW1lcywgc2hvdWxkU2VsZWN0QWN0aXZlRnJhbWUpID0+IHsKLSAgICAgICAg
ICAgIGlmIChXSS5zZXR0aW5ncy5leHBlcmltZW50YWxDb2xsYXBzZUJsYWNrYm94ZWRDYWxsRnJh
bWVzLnZhbHVlKQotICAgICAgICAgICAgICAgIGNhbGxGcmFtZXMgPSBjYWxsRnJhbWVzLmdyb3Vw
QnkoKGNhbGxGcmFtZSkgPT4gY2FsbEZyYW1lLmJsYWNrYm94ZWQpOworICAgICAgICAgICAgbGV0
IGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0SW5kZXggPSB1bmRlZmluZWQ7CiAKLSAgICAg
ICAgICAgIGZvciAobGV0IGNhbGxGcmFtZU9yQmxhY2tib3hlZEdyb3VwIG9mIGNhbGxGcmFtZXMp
IHsKLSAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYWxsRnJhbWVPckJsYWNrYm94
ZWRHcm91cCkpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChuZXcgV0ku
QmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQoY2FsbEZyYW1lT3JCbGFja2JveGVkR3JvdXApKTsK
KyAgICAgICAgICAgIC8vIEFkZCBvbmUgZXh0cmEgaXRlcmF0aW9uIHRvIGhhbmRsZSBjYWxsIHN0
YWNrcyB0aGF0IHN0YXJ0IGJsYWNrYm94ZWQuCisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IGNhbGxGcmFtZXMubGVuZ3RoICsgMTsgKytpKSB7CisgICAgICAgICAgICAgICAgbGV0IGNh
bGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07CisKKyAgICAgICAgICAgICAgICBpZiAoY2FsbEZyYW1l
Py5ibGFja2JveGVkICYmIFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbENvbGxhcHNlQmxhY2tib3hl
ZENhbGxGcmFtZXMudmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgYmxhY2tib3hlZENhbGxG
cmFtZUdyb3VwU3RhcnRJbmRleCA/Pz0gaTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGxldCBjYWxsRnJhbWVUcmVlRWxl
bWVudCA9IG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudChjYWxsRnJhbWVPckJsYWNrYm94ZWRH
cm91cCk7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZFNlbGVjdEFjdGl2ZUZyYW1lICYmIGNh
bGxGcmFtZU9yQmxhY2tib3hlZEdyb3VwID09PSBhY3RpdmVDYWxsRnJhbWUpCisKKyAgICAgICAg
ICAgICAgICBpZiAoYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCAhPT0gdW5kZWZp
bmVkKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXAg
PSBjYWxsRnJhbWVzLnNsaWNlKGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0SW5kZXgsIGkp
OworICAgICAgICAgICAgICAgICAgICBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBTdGFydEluZGV4
ID0gdW5kZWZpbmVkOworCisgICAgICAgICAgICAgICAgICAgIGlmICghV0kuZGVidWdnZXJNYW5h
Z2VyLnNob3VsZEF1dG9FeHBhbmRCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXAoYmxhY2tib3hlZENh
bGxGcmFtZUdyb3VwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGls
ZChuZXcgV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQoYmxhY2tib3hlZENhbGxGcmFtZUdy
b3VwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGJsYWNrYm94ZWRDYWxsRnJh
bWUgb2YgYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5hcHBlbmRDaGlsZChuZXcgV0kuQ2FsbEZyYW1lVHJlZUVsZW1lbnQoYmxhY2tib3hlZENh
bGxGcmFtZSkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghY2Fs
bEZyYW1lKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAg
IGxldCBjYWxsRnJhbWVUcmVlRWxlbWVudCA9IG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudChj
YWxsRnJhbWUpOworICAgICAgICAgICAgICAgIGlmIChzaG91bGRTZWxlY3RBY3RpdmVGcmFtZSAm
JiBjYWxsRnJhbWUgPT09IGFjdGl2ZUNhbGxGcmFtZSkKICAgICAgICAgICAgICAgICAgICAgYWN0
aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQgPSBjYWxsRnJhbWVUcmVlRWxlbWVudDsKICAgICAgICAg
ICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGNhbGxGcmFtZVRyZWVFbGVtZW50KTsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAzYzhmMThiNjEzMDdhZWVjZDU3NjYyOWI1MTMyMGRhODBjZTA4NDFjLi5l
YWNkY2I0OWI3Y2UzNDllNTZjYjZlYTI5NWI3NmJjNmZhNzUwYmJmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjItMDEtMDQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJjZXM6IGV4cGFuZGluZyBhIGdyb3VwaW5nIG9mIGJs
YWNrYm94ZWQgY2FsbCBmcmFtZXMgc2hvdWxkIGJlIHBlcnNpc3RlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDYxNAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODY5ODkyMzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICBSZW1vdmUgdGhlIGN1c3RvbSBgQXJyYXkucHJvdG90eXBlLmdyb3VwQnlg
IHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZCAoYW5kIHRoZXJlJ3Mgbm93IGEKKyAgICAgICAg
YnVpbHRpbiBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUpLgorCiAyMDIyLTAxLTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDE2ODAyYjJkOTgxMGU2NmRhMGU2ZjA5N2FkZmZjYzEyMWFjNDZhNDIuLmVmNTRj
MDk1ZmVjNmZjYzAwNGUyYzgyYWEwMTM3OTJjZTM2ZDAxYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLWV4cGVj
dGVkLnR4dApAQCAtMTA1LDE2ICsxMDUsNiBAQCBQQVNTOiBsYXN0VmFsdWUgb2YgYW4gZW1wdHkg
YXJyYXkgc2hvdWxkIGJlIHVuZGVmaW5lZC4KIFsxLDIsM10gPT4gW1sxLDJdLFsyLDNdXQogWzEs
MiwzLDRdID0+IFtbMSwyXSxbMiwzXSxbMyw0XV0KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFy
cmF5LnByb3RvdHlwZS5ncm91cEJ5Ci1bMCwxLDAsMSwxLDAsMSwxLDEsMF0gPT4gWzAsWzFdLDAs
WzEsMV0sMCxbMSwxLDFdLDBdCi1bMCwxLDAsMSwxLDAsMSwxLDEsMF0gPT4gWzAsMSwwLFsxLDFd
LDAsWzEsMSwxXSwwXQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLDEsMCwxLDEsMCxbMSwx
LDFdLDBdCi1bMCwxLDAsMSwxLDAsMSwxLDEsMF0gPT4gWzAsMSwwLDEsMSwwLDEsMSwxLDBdCi1b
MCwxLDAsMSwxLDAsMSwxLDFdID0+IFswLFsxXSwwLFsxLDFdLDAsWzEsMSwxXV0KLVswLDEsMCwx
LDEsMCwxLDEsMV0gPT4gWzAsMSwwLFsxLDFdLDAsWzEsMSwxXV0KLVswLDEsMCwxLDEsMCwxLDEs
MV0gPT4gWzAsMSwwLDEsMSwwLFsxLDEsMV1dCi1bMCwxLDAsMSwxLDAsMSwxLDFdID0+IFswLDEs
MCwxLDEsMCwxLDEsMV0KLQogLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFycmF5LnByb3RvdHlwZS5y
ZW1vdmUKIFBBU1M6IHJlbW92ZSBzaG91bGQgcmV0dXJuIHRydWUgd2hlbiByZW1vdmluZyBhIHZh
bHVlIHRoYXQgZXhpc3RzLgogUEFTUzogcmVtb3ZlIHNob3VsZCBvbmx5IHJlbW92ZSB0aGUgZmly
c3QgbWF0Y2hpbmcgdmFsdWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9hcnJheS11dGlsaXRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL2FycmF5LXV0aWxpdGllcy5odG1sCmluZGV4IDFjMTg3N2RhNTZlNDBlYzdmODE5M2Zl
NTU0MzQ3OTA2NDYxNWM5YzMuLmFlMzZkZTllMzY4ZWZiMmFkZGQxOTllMjM1MzNhMDI1N2Q4ZTU4
NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0
aWxpdGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5
LXV0aWxpdGllcy5odG1sCkBAIC0yMTksMzIgKzIxOSw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICB9CiAgICAgfSk7CiAKLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6
ICJBcnJheS5wcm90b3R5cGUuZ3JvdXBCeSIsCi0gICAgICAgIHRlc3QoKSB7Ci0gICAgICAgICAg
ICBmdW5jdGlvbiBsb2coaW5wdXQsIG91dHB1dCkgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKEpTT04uc3RyaW5naWZ5KGlucHV0KSArICIgPT4gIiArIEpTT04uc3RyaW5naWZ5
KG91dHB1dCkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsZXQgYXJyID0gWzAsIDEs
IDAsIDEsIDEsIDAsIDEsIDEsIDEsIDBdOwotICAgICAgICAgICAgbGV0IGlzT25lID0gKHgpID0+
IHsgcmV0dXJuIHggPT09IDEgfTsKLQotICAgICAgICAgICAgbG9nKGFyciwgYXJyLmdyb3VwQnko
aXNPbmUsIDEpKTsKLSAgICAgICAgICAgIGxvZyhhcnIsIGFyci5ncm91cEJ5KGlzT25lLCAyKSk7
Ci0gICAgICAgICAgICBsb2coYXJyLCBhcnIuZ3JvdXBCeShpc09uZSwgMykpOwotICAgICAgICAg
ICAgbG9nKGFyciwgYXJyLmdyb3VwQnkoaXNPbmUsIDQpKTsKLQotICAgICAgICAgICAgbGV0IGFy
cjIgPSBbMCwgMSwgMCwgMSwgMSwgMCwgMSwgMSwgMV07Ci0KLSAgICAgICAgICAgIGxvZyhhcnIy
LCBhcnIyLmdyb3VwQnkoaXNPbmUsIDEpKTsKLSAgICAgICAgICAgIGxvZyhhcnIyLCBhcnIyLmdy
b3VwQnkoaXNPbmUsIDIpKTsKLSAgICAgICAgICAgIGxvZyhhcnIyLCBhcnIyLmdyb3VwQnkoaXNP
bmUsIDMpKTsKLSAgICAgICAgICAgIGxvZyhhcnIyLCBhcnIyLmdyb3VwQnkoaXNPbmUsIDQpKTsK
LQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9KTsKLQogICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkFycmF5LnByb3RvdHlwZS5yZW1vdmUi
LAogICAgICAgICB0ZXN0KCkgewo=
</data>
<flag name="review"
          id="474170"
          type_id="1"
          status="+"
          setter="pangle"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448334</attachid>
            <date>2022-01-04 13:46:00 -0800</date>
            <delta_ts>2022-01-04 14:52:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>234614.diff</filename>
            <type>text/plain</type>
            <size>15636</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU2OGNlZDhhYzRhZWRhMjRkNmJiYmZmNGI5NzY3
MjljZWM4Nzc3ZTYuLjQ0M2Q0N2I0MTM1ZTY4NDYzNjQyYjgyMmIxMGQ5NTVhOGFjMDhlZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIyLTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
b3VyY2VzOiBleHBhbmRpbmcgYSBncm91cGluZyBvZiBibGFja2JveGVkIGNhbGwgZnJhbWVzIHNo
b3VsZCBiZSBwZXJzaXN0ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2OTg5MjMyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFBhdHJpY2sgQW5nbGUuCisKKyAgICAgICAgSWYgdGhlIGRldmVs
b3BlciBoYXMgZXhwbGljaXRseSBkZWNpZGVkIHRvIHNob3cgYmxhY2tib3hlZCBjYWxsIGZyYW1l
cywgd2Ugc2hvdWxkIHJlc3BlY3QKKyAgICAgICAgdGhhdCBkZWNpc2lvbi4gUmVxdWlyaW5nIHRo
ZW0gdG8gcmUtZXhwYW5kIGFmdGVyIF9ldmVyeV8gZGVidWdnZXIgYWN0aW9uIGlzIHZlcnkgaG9z
dGlsZS4KKyAgICAgICAgU28gbG9uZyBhcyB0aGUgYmxhY2tib3hlZCBjYWxsIGZyYW1lcyByZW1h
aW4gdGhlIHNhbWUgd2Ugc2hvdWxkIHBlcnNpc3QgdGhlIGV4cGFuc2lvbi4gT25seQorICAgICAg
ICBpZiB0aGUgbG9jYXRpb24gb2YgdGhvc2UgYmxhY2tib3hlZCBmcmFtZXMgY2hhbmdlcyBzaG91
bGQgd2UgcmUtY29sbGFwc2UuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlcik6CisgICAg
ICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLnJlbWVtYmVyQmxhY2tib3hlZENhbGxG
cmFtZUdyb3VwVG9BdXRvRXhwYW5kKTogQWRkZWQuCisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFn
ZXIucHJvdG90eXBlLnNob3VsZEF1dG9FeHBhbmRCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXApOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX2RpZFJlc3VtZUlu
dGVybmFsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRy
ZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQucHJv
dG90eXBlLmV4cGFuZCk6CisgICAgICAgIEtlZXAgYSBsaXN0IG9mIGJsYWNrYm94ZWQgY2FsbCBm
cmFtZSBncm91cGluZ3MgdGhhdCBoYXZlIGJlZW4gZXhwYW5kZWQgYnkgdGhlIGRldmVsb3Blci4K
KyAgICAgICAgVXNlIHRoaXMgbGlzdCB0byBkZWNpZGUgd2hldGhlciAibmV3IiBibGFja2JveGVk
IGNhbGwgZnJhbWUgZ3JvdXBpbmcgc2hvdWxkIGJlIGF1dG8tZXhwYW5kZWQKKyAgICAgICAgYnkg
ZGVmYXVsdCAoaS5lLiBpZiBldmVyeSBgV0kuQ2FsbEZyYW1lYCBpcyBpZGVudGljYWwgd2l0aCBz
b21ldGhpbmcgaW4gdGhlIGxpc3QpLiBDbGVhciB0aGUKKyAgICAgICAgbGlzdCB3aGVuIHJlc3Vt
aW5nLCBhcyB3ZSdyZSBvbmx5IHRyeWluZyB0byBrZWVwIGV4cGFuZGVkIGJsYWNrYm94ZWQgY2Fs
bCBmcmFtZSBncm91cGluZ3MKKyAgICAgICAgd2l0aGluIHRoZSBzYW1lIGNhbGwgc3RhY2sgKGku
ZS4gd2hpbGUgc3RlcHBpbmcpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL1V0aWxp
dGllcy5qczoKKyAgICAgICAgKEFycmF5LnByb3RvdHlwZS5ncm91cEJ5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RocmVhZFRyZWVFbGVtZW50LmpzOgorICAgICAg
ICAoV0kuVGhyZWFkVHJlZUVsZW1lbnQucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICBSZW1v
dmUgdGhlIGN1c3RvbSBgQXJyYXkucHJvdG90eXBlLmdyb3VwQnlgIHNpbmNlIGl0J3Mgbm8gbG9u
Z2VyIG5lZWRlZCAoYW5kIHRoZXJlJ3Mgbm93IGEKKyAgICAgICAgYnVpbHRpbiBmdW5jdGlvbiB3
aXRoIHRoZSBzYW1lIG5hbWUpLiBJbnN0ZWFkLCBqdXN0IGtlZXAgYW4gaW5kZXggb2YgdGhlIGZp
cnN0IGJsYWNrYm94ZWQKKyAgICAgICAgY2FsbCBmcmFtZSBhbmQgaXRlcmF0ZSB1bnRpbCBlaXRo
ZXIgdGhlIGVuZCBvZiB0aGUgY2FsbCBzdGFjayBvciBhIG5vbi1ibGFja2JveGVkIGNhbGwgZnJh
bWUKKyAgICAgICAgaXMgZm91bmQsIGBzbGljZWBpbmcgZnJvbSB0aGUgc2F2ZWQgaW5kZXggdG8g
dGhlIGN1cnJlbnQgaXRlbSB0byBtYWtlIGEgYmxhY2tib3hlZCBjYWxsCisgICAgICAgIGZyYW1l
IGdyb3VwLiBJZiB0aGF0IGJsYWNrYm94ZWQgY2FsbCBmcmFtZSBncm91cCBzaG91bGQgYmUgYXV0
by1leHBhbmRlZCAoc2VlIGFib3ZlKSwgY3JlYXRlCisgICAgICAgIGEgYFdJLkNhbGxGcmFtZVRy
ZWVFbGVtZW50YCBmb3IgZWFjaCBibGFja2JveGVkIGNhbGwgZnJhbWUgaW5zdGVhZCBvZiBvbmUg
YFdJLkJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50YC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NhbGxGcmFtZS5qczoKKyAgICAgICAgKFdJLkNhbGxGcmFtZS5wcm90b3R5cGUu
aXNFcXVhbCk6IEFkZGVkLgorICAgICAgICBBZGQgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBj
b21wYXJlIHR3byBgV0kuQ2FsbEZyYW1lYC4gUmlnaHQgbm93IGl0IGp1c3QgbG9va3MgYXQgdGhl
CisgICAgICAgIGBXSS5Tb3VyY2VDb2RlTG9jYXRpb25gLCBzaW5jZSBmb3IgbW9zdCBwdXJwb3Nl
cyB0aGF0J3MgcmVhbGx5IGhvdyBvbmUgd291bGQgaWRlbnRpZnkgYQorICAgICAgICBgV0kuQ2Fs
bEZyYW1lYCAoaS5lLiBpdCdzIHByb2JhYmx5IG1vcmUgaW1wb3J0YW50IHRvIGtub3cgImlzIHRo
aXMgdGhlIHNhbWUgc3BvdCBpbiBjb2RlIgorICAgICAgICBhcyBvcHBvc2VkIHRvICJkbyB3ZSBo
YXZlIHRoZSBzYW1lIGB0aGlzYCBvYmplY3QiKS4KKwogMjAyMS0xMi0zMSAgVGltIE5ndXllbiAg
PG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZpeCBhc3NlcnQgdGV4
dCBpbiBHcmFkaWVudC5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwppbmRleCBmNDUwYzM5YjYzYzdhNGU5NmE2MzZhNDBl
MmUyZDdkYWQ2MzgwNmY1Li4xZDQzNmFiMzlkM2ZmMjA5ZDU2ZmVhYTlkZjIxMDM5NzkxNzIyMmJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0
aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L1V0aWxpdGllcy5qcwpAQCAtMTYyNCw0MCArMTYyNCw2IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShBcnJheS5wcm90b3R5cGUsICJiaW5hcnlJbmRleE9mIiwKICAgICB9CiB9KTsKIAotT2JqZWN0
LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImdyb3VwQnkiLAotewotICAgIHZhbHVl
KGdyb3VwRnVuY3Rpb24sIG1pbkdyb3VwU2l6ZSA9IDEpCi0gICAgewotICAgICAgICBsZXQgcmVz
dWx0ID0gW107Ci0gICAgICAgIGxldCBzdGFydEluZGV4ID0gbnVsbDsKLQotICAgICAgICBsZXQg
Zmx1c2ggPSAoZW5kSW5kZXgpID0+IHsKLSAgICAgICAgICAgIGlmIChzdGFydEluZGV4ID09PSBu
dWxsKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGxldCBncm91cCA9IHRo
aXMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggKyAxKTsKLSAgICAgICAgICAgIGxldCBhZGph
Y2VudENvdW50ID0gKGVuZEluZGV4ICsgMSkgLSBzdGFydEluZGV4OwotICAgICAgICAgICAgaWYg
KGFkamFjZW50Q291bnQgPj0gbWluR3JvdXBTaXplKQotICAgICAgICAgICAgICAgIHJlc3VsdC5w
dXNoKGdyb3VwKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQucHVz
aEFsbChncm91cCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmZvckVhY2goKGl0ZW0sIGkp
ID0+IHsKLSAgICAgICAgICAgIGlmIChncm91cEZ1bmN0aW9uKGl0ZW0pKSB7Ci0gICAgICAgICAg
ICAgICAgc3RhcnRJbmRleCA/Pz0gaTsKLSAgICAgICAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5s
ZW5ndGggLSAxKQotICAgICAgICAgICAgICAgICAgICBmbHVzaCh0aGlzLmxlbmd0aCAtIDEpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBmbHVzaChpIC0gMSk7Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7Ci0gICAgICAgICAgICAgICAgc3RhcnRJbmRl
eCA9IG51bGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotfSk7Ci0KIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm9taXNlLCAiY2hh
aW4iLAogewogICAgIGFzeW5jIHZhbHVlKGNhbGxiYWNrcywgaW5pdGlhbFZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVi
dWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IGVhZjM5ZDk2ZTNjYzBmYWViNzNhYTMy
MTEzOWI3Njc0OTA3MzE3MWIuLjYyODI4YTdlZDRhYzk2M2VmMjE1ZTU1MzBjYTgwYzc2Yzg3NmIw
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTgwLDYgKzgwLDcg
QEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRVUkxzU2V0dGluZyA9IG5ldyBXSS5TZXR0
aW5nKCJkZWJ1Z2dlci1ibGFja2JveGVkLXVybHMiLCBbXSk7CiAgICAgICAgIHRoaXMuX2JsYWNr
Ym94ZWRQYXR0ZXJuc1NldHRpbmcgPSBuZXcgV0kuU2V0dGluZygiZGVidWdnZXItYmxhY2tib3hl
ZC1wYXR0ZXJucyIsIFtdKTsKICAgICAgICAgdGhpcy5fYmxhY2tib3hlZFBhdHRlcm5EYXRhTWFw
ID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYmxhY2tib3hlZENhbGxGcmFtZUdyb3Vwc1RvQXV0
b0V4cGFuZCA9IFtdOwogCiAgICAgICAgIHRoaXMuX2FjdGl2ZUNhbGxGcmFtZSA9IG51bGw7CiAK
QEAgLTUzMCw2ICs1MzEsMjYgQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJN
YW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKERlYnVnZ2VyTWFuYWdlci5FdmVudC5CbGFja2JveENoYW5nZWQpOwogICAgIH0KIAor
ICAgIHJlbWVtYmVyQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9BdXRvRXhwYW5kKGJsYWNrYm94
ZWRDYWxsRnJhbWVHcm91cCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLnNo
b3VsZEF1dG9FeHBhbmRCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXAoYmxhY2tib3hlZENhbGxGcmFt
ZUdyb3VwKSwgYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwKTsKKworICAgICAgICB0aGlzLl9ibGFj
a2JveGVkQ2FsbEZyYW1lR3JvdXBzVG9BdXRvRXhwYW5kLnB1c2goYmxhY2tib3hlZENhbGxGcmFt
ZUdyb3VwKTsKKyAgICB9CisKKyAgICBzaG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxGcmFt
ZUdyb3VwKGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbENvbGxhcHNlQmxhY2tib3hlZENhbGxGcmFt
ZXMudmFsdWUpOworICAgICAgICBjb25zb2xlLmFzc2VydChBcnJheS5pc0FycmF5KGJsYWNrYm94
ZWRDYWxsRnJhbWVHcm91cCkgJiYgYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwLmxlbmd0aCAmJiBi
bGFja2JveGVkQ2FsbEZyYW1lR3JvdXAuZXZlcnkoKGNhbGxGcmFtZSkgPT4gY2FsbEZyYW1lIGlu
c3RhbmNlb2YgV0kuQ2FsbEZyYW1lICYmIGNhbGxGcmFtZS5ibGFja2JveGVkKSwgYmxhY2tib3hl
ZENhbGxGcmFtZUdyb3VwKTsKKworICAgICAgICByZXR1cm4gdGhpcy5fYmxhY2tib3hlZENhbGxG
cmFtZUdyb3Vwc1RvQXV0b0V4cGFuZC5zb21lKChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1
dG9FeHBhbmQpID0+IHsKKyAgICAgICAgICAgIGlmIChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBU
b0F1dG9FeHBhbmQubGVuZ3RoICE9PSBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXAubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgcmV0dXJuIGJsYWNr
Ym94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4cGFuZC5ldmVyeSgoaXRlbSwgaSkgPT4gaXRlbS5p
c0VxdWFsKGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFtpXSkpOworICAgICAgICB9KTsKKyAgICB9
CisKICAgICBnZXQgYXN5bmNTdGFja1RyYWNlRGVwdGgoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX2FzeW5jU3RhY2tUcmFjZURlcHRoU2V0dGluZy52YWx1ZTsKQEAgLTE0MTgsNiArMTQz
OSw4IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICAgICAgYWN0aXZlQ2FsbEZyYW1lRGlkQ2hhbmdlID0gdHJ1ZTsK
ICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2JsYWNrYm94ZWRDYWxsRnJhbWVHcm91cHNUb0F1
dG9FeHBhbmQgPSBbXTsKKwogICAgICAgICB0aGlzLmRhdGFGb3JUYXJnZXQodGFyZ2V0KS51cGRh
dGVGb3JSZXN1bWUoKTsKIAogICAgICAgICBpZiAoIXRoaXMucGF1c2VkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUuanMK
aW5kZXggODM0OTdkNTA1ZTcwMTQ0NDAyNTYwNzkzYmNlMDE4N2M2ZTUxZjgyMC4uMzRhNDdiZTE3
NzY4YzVlYzNjN2FhNTFmNDNjNzY2N2UxODY4Y2Q2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzCkBAIC02NCw2
ICs2NCwxNyBAQCBXSS5DYWxsRnJhbWUgPSBjbGFzcyBDYWxsRnJhbWUKICAgICBnZXQgYmxhY2ti
b3hlZCgpIHsgcmV0dXJuIHRoaXMuX2JsYWNrYm94ZWQ7IH0KICAgICBnZXQgaXNDb25zb2xlRXZh
bHVhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2lzQ29uc29sZUV2YWx1YXRpb247IH0KIAorICAgIGlz
RXF1YWwob3RoZXIpCisgICAgeworICAgICAgICBpZiAoIW90aGVyKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gJiYgb3Ro
ZXIuX3NvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VD
b2RlTG9jYXRpb24uaXNFcXVhbChvdGhlci5fc291cmNlQ29kZUxvY2F0aW9uKTsKKworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc2F2ZUlkZW50aXR5VG9Db29raWUoKQogICAg
IHsKICAgICAgICAgLy8gRG8gbm90aGluZy4gVGhlIGNhbGwgZnJhbWUgaXMgdG9ybiBkb3duIHdo
ZW4gdGhlIGluc3BlY3RvciBjbG9zZXMsIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3Jv
dXBUcmVlRWxlbWVudC5qcwppbmRleCA5YzY2OWNjYzUxNmQyYTBlZDgyNGEyYTU1YmE2NjYzYzNh
ZThjZmFhLi5hYmRiOTBhMTZlOTU1MTEyNGFjYWVjZjRiNTUyZjI5ZjM3MGU4ODg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVk
R3JvdXBUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcwpAQCAtMjcsNyArMjcsNyBA
QCBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudCA9IGNsYXNzIEJsYWNrYm94ZWRHcm91cFRy
ZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogewogICAgIGNvbnN0cnVjdG9yKGNhbGxGcmFtZXMp
CiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydChBcnJheS5pc0FycmF5KGNhbGxGcmFtZXMp
ICYmIGNhbGxGcmFtZXMubGVuZ3RoICYmIGNhbGxGcmFtZXMuZXZlcnkoKGNhbGxGcmFtZSkgPT4g
Y2FsbEZyYW1lIGluc3RhbmNlb2YgV0kuQ2FsbEZyYW1lKSk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCFXSS5kZWJ1Z2dlck1hbmFnZXIuc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cChjYWxsRnJhbWVzKSwgY2FsbEZyYW1lcyk7CiAKICAgICAgICAgY29uc3QgY2xhc3NO
YW1lcyA9IFsiYmxhY2tib3hlZC1ncm91cCJdOwogICAgICAgICBjb25zdCB0aXRsZSA9IFdJLlVJ
U3RyaW5nKCJCbGFja2JveGVkIiwgIkJsYWNrYm94ZWQgQCBEZWJ1Z2dlciBDYWxsIFN0YWNrIiwg
IlBhcnQgb2YgdGhlICdCbGFja2JveGVkIC0gJWQgY2FsbCBmcmFtZXMnIGxhYmVsIHNob3duIGlu
IHRoZSBkZWJ1Z2dlciBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vic2VxdWVu
dCBjYWxsIGZyYW1lcyB0aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiIpOwpAQCAtNDgsNiArNDgs
OCBAQCBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudCA9IGNsYXNzIEJsYWNrYm94ZWRHcm91
cFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogCiAgICAgZXhwYW5kKCkKICAgICB7CisgICAg
ICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRv
QXV0b0V4cGFuZCh0aGlzLl9jYWxsRnJhbWVzKTsKKwogICAgICAgICBsZXQgaW5kZXggPSB0aGlz
LnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMpOwogICAgICAgICBmb3IgKGxldCBpID0gdGhp
cy5fY2FsbEZyYW1lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKICAgICAgICAgICAgIHRoaXMu
cGFyZW50Lmluc2VydENoaWxkKG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudCh0aGlzLl9jYWxs
RnJhbWVzW2ldKSwgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcwppbmRleCA1NWMx
YmNhMzJjMWQ1Y2U5N2QwZGUzNjViM2JiYjkzODI4ZDFlNDk0Li4xMTBkNzdmMGM3ODUxMTczM2Jh
YjhkNWM3OTdlZmYwZTU5MjUwNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcwpAQCAt
NTcsMTYgKzU3LDM1IEBAIFdJLlRocmVhZFRyZWVFbGVtZW50ID0gY2xhc3MgVGhyZWFkVHJlZUVs
ZW1lbnQgZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAgICAgbGV0IGFjdGl2ZUNh
bGxGcmFtZVRyZWVFbGVtZW50ID0gbnVsbDsKIAogICAgICAgICBsZXQgcmVuZGVyQ2FsbEZyYW1l
cyA9IChjYWxsRnJhbWVzLCBzaG91bGRTZWxlY3RBY3RpdmVGcmFtZSkgPT4gewotICAgICAgICAg
ICAgaWYgKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbENvbGxhcHNlQmxhY2tib3hlZENhbGxGcmFt
ZXMudmFsdWUpCi0gICAgICAgICAgICAgICAgY2FsbEZyYW1lcyA9IGNhbGxGcmFtZXMuZ3JvdXBC
eSgoY2FsbEZyYW1lKSA9PiBjYWxsRnJhbWUuYmxhY2tib3hlZCk7CisgICAgICAgICAgICBsZXQg
YmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCA9IHVuZGVmaW5lZDsKIAotICAgICAg
ICAgICAgZm9yIChsZXQgY2FsbEZyYW1lT3JCbGFja2JveGVkR3JvdXAgb2YgY2FsbEZyYW1lcykg
ewotICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNhbGxGcmFtZU9yQmxhY2tib3hl
ZEdyb3VwKSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBXSS5C
bGFja2JveGVkR3JvdXBUcmVlRWxlbWVudChjYWxsRnJhbWVPckJsYWNrYm94ZWRHcm91cCkpOwor
ICAgICAgICAgICAgLy8gQWRkIG9uZSBleHRyYSBpdGVyYXRpb24gdG8gaGFuZGxlIGNhbGwgc3Rh
Y2tzIHRoYXQgc3RhcnQgYmxhY2tib3hlZC4KKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgY2FsbEZyYW1lcy5sZW5ndGggKyAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsZXQgY2Fs
bEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKKworICAgICAgICAgICAgICAgIGlmIChjYWxsRnJhbWU/
LmJsYWNrYm94ZWQgJiYgV0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsQ29sbGFwc2VCbGFja2JveGVk
Q2FsbEZyYW1lcy52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBibGFja2JveGVkQ2FsbEZy
YW1lR3JvdXBTdGFydEluZGV4ID8/PSBpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZVRyZWVFbGVt
ZW50ID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVFbGVtZW50KGNhbGxGcmFtZU9yQmxhY2tib3hlZEdy
b3VwKTsKLSAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU2VsZWN0QWN0aXZlRnJhbWUgJiYgY2Fs
bEZyYW1lT3JCbGFja2JveGVkR3JvdXAgPT09IGFjdGl2ZUNhbGxGcmFtZSkKKworICAgICAgICAg
ICAgICAgIGlmIChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ICE9PSB1bmRlZmlu
ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCA9
IGNhbGxGcmFtZXMuc2xpY2UoYmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCwgaSk7
CisgICAgICAgICAgICAgICAgICAgIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0SW5kZXgg
PSB1bmRlZmluZWQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFXSS5kZWJ1Z2dlck1hbmFn
ZXIuc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cChibGFja2JveGVkQ2Fs
bEZyYW1lR3JvdXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxk
KG5ldyBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudChibGFja2JveGVkQ2FsbEZyYW1lR3Jv
dXApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYmxhY2tib3hlZENhbGxGcmFt
ZSBvZiBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLmFwcGVuZENoaWxkKG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudChibGFja2JveGVkQ2Fs
bEZyYW1lKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFjYWxs
RnJhbWUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAg
bGV0IGNhbGxGcmFtZVRyZWVFbGVtZW50ID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVFbGVtZW50KGNh
bGxGcmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZFNlbGVjdEFjdGl2ZUZyYW1lICYm
IGNhbGxGcmFtZSA9PT0gYWN0aXZlQ2FsbEZyYW1lKQogICAgICAgICAgICAgICAgICAgICBhY3Rp
dmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IGNhbGxGcmFtZVRyZWVFbGVtZW50OwogICAgICAgICAg
ICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoY2FsbEZyYW1lVHJlZUVsZW1lbnQpOwogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDNjOGYxOGI2MTMwN2FlZWNkNTc2NjI5YjUxMzIwZGE4MGNlMDg0MWMuLmVh
Y2RjYjQ5YjdjZTM0OWU1NmNiNmVhMjk1Yjc2YmM2ZmE3NTBiYmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMi0wMS0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczogZXhwYW5kaW5nIGEgZ3JvdXBpbmcgb2YgYmxh
Y2tib3hlZCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgcGVyc2lzdGVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NjE0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84Njk4OTIzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBQYXRyaWNrIEFuZ2xlLgor
CisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgUmVtb3ZlIHRoZSBjdXN0b20gYEFycmF5LnByb3RvdHlwZS5ncm91cEJ5YCBz
aW5jZSBpdCdzIG5vIGxvbmdlciBuZWVkZWQgKGFuZCB0aGVyZSdzIG5vdyBhCisgICAgICAgIGJ1
aWx0aW4gZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lKS4KKwogMjAyMi0wMS0wNCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEhhbmcgaW4gQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXJyYXktdXRpbGl0aWVzLWV4cGVjdGVkLnR4
dAppbmRleCAxNjgwMmIyZDk4MTBlNjZkYTBlNmYwOTdhZGZmY2MxMjFhYzQ2YTQyLi5lZjU0YzA5
NWZlYzZmY2MwMDRlMmM4MmFhMDEzNzkyY2UzNmQwMWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGlsaXRpZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FycmF5LXV0aWxpdGllcy1leHBlY3Rl
ZC50eHQKQEAgLTEwNSwxNiArMTA1LDYgQEAgUEFTUzogbGFzdFZhbHVlIG9mIGFuIGVtcHR5IGFy
cmF5IHNob3VsZCBiZSB1bmRlZmluZWQuCiBbMSwyLDNdID0+IFtbMSwyXSxbMiwzXV0KIFsxLDIs
Myw0XSA9PiBbWzEsMl0sWzIsM10sWzMsNF1dCiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBcnJh
eS5wcm90b3R5cGUuZ3JvdXBCeQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLFsxXSwwLFsx
LDFdLDAsWzEsMSwxXSwwXQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLDEsMCxbMSwxXSww
LFsxLDEsMV0sMF0KLVswLDEsMCwxLDEsMCwxLDEsMSwwXSA9PiBbMCwxLDAsMSwxLDAsWzEsMSwx
XSwwXQotWzAsMSwwLDEsMSwwLDEsMSwxLDBdID0+IFswLDEsMCwxLDEsMCwxLDEsMSwwXQotWzAs
MSwwLDEsMSwwLDEsMSwxXSA9PiBbMCxbMV0sMCxbMSwxXSwwLFsxLDEsMV1dCi1bMCwxLDAsMSwx
LDAsMSwxLDFdID0+IFswLDEsMCxbMSwxXSwwLFsxLDEsMV1dCi1bMCwxLDAsMSwxLDAsMSwxLDFd
ID0+IFswLDEsMCwxLDEsMCxbMSwxLDFdXQotWzAsMSwwLDEsMSwwLDEsMSwxXSA9PiBbMCwxLDAs
MSwxLDAsMSwxLDFdCi0KIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBcnJheS5wcm90b3R5cGUucmVt
b3ZlCiBQQVNTOiByZW1vdmUgc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gcmVtb3ZpbmcgYSB2YWx1
ZSB0aGF0IGV4aXN0cy4KIFBBU1M6IHJlbW92ZSBzaG91bGQgb25seSByZW1vdmUgdGhlIGZpcnN0
IG1hdGNoaW5nIHZhbHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQt
dGVzdHMvYXJyYXktdXRpbGl0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10
ZXN0cy9hcnJheS11dGlsaXRpZXMuaHRtbAppbmRleCAxYzE4NzdkYTU2ZTQwZWM3ZjgxOTNmZTU1
NDM0NzkwNjQ2MTVjOWMzLi5hZTM2ZGU5ZTM2OGVmYjJhZGRkMTk5ZTIzNTMzYTAyNTdkOGU1ODc0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11dGls
aXRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hcnJheS11
dGlsaXRpZXMuaHRtbApAQCAtMjE5LDMyICsyMTksNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgfQogICAgIH0pOwogCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAi
QXJyYXkucHJvdG90eXBlLmdyb3VwQnkiLAotICAgICAgICB0ZXN0KCkgewotICAgICAgICAgICAg
ZnVuY3Rpb24gbG9nKGlucHV0LCBvdXRwdXQpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhKU09OLnN0cmluZ2lmeShpbnB1dCkgKyAiID0+ICIgKyBKU09OLnN0cmluZ2lmeShv
dXRwdXQpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IGFyciA9IFswLCAxLCAw
LCAxLCAxLCAwLCAxLCAxLCAxLCAwXTsKLSAgICAgICAgICAgIGxldCBpc09uZSA9ICh4KSA9PiB7
IHJldHVybiB4ID09PSAxIH07Ci0KLSAgICAgICAgICAgIGxvZyhhcnIsIGFyci5ncm91cEJ5KGlz
T25lLCAxKSk7Ci0gICAgICAgICAgICBsb2coYXJyLCBhcnIuZ3JvdXBCeShpc09uZSwgMikpOwot
ICAgICAgICAgICAgbG9nKGFyciwgYXJyLmdyb3VwQnkoaXNPbmUsIDMpKTsKLSAgICAgICAgICAg
IGxvZyhhcnIsIGFyci5ncm91cEJ5KGlzT25lLCA0KSk7Ci0KLSAgICAgICAgICAgIGxldCBhcnIy
ID0gWzAsIDEsIDAsIDEsIDEsIDAsIDEsIDEsIDFdOwotCi0gICAgICAgICAgICBsb2coYXJyMiwg
YXJyMi5ncm91cEJ5KGlzT25lLCAxKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJyMi5ncm91
cEJ5KGlzT25lLCAyKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJyMi5ncm91cEJ5KGlzT25l
LCAzKSk7Ci0gICAgICAgICAgICBsb2coYXJyMiwgYXJyMi5ncm91cEJ5KGlzT25lLCA0KSk7Ci0K
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfSk7Ci0KICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJBcnJheS5wcm90b3R5cGUucmVtb3ZlIiwK
ICAgICAgICAgdGVzdCgpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>