<?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>230136</bug_id>
          
          <creation_ts>2021-09-09 16:53:31 -0700</creation_ts>
          <short_desc>Implement &apos;gamepad&apos; Permissions Policy</short_desc>
          <delta_ts>2023-12-17 19:40:31 -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>New Bugs</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://w3c.github.io/gamepad/#permission-policy</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Caceres">marcos</reporter>
          <assigned_to name="Marcos Caceres">marcosc</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>marcosc</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792162</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-09-09 16:53:31 -0700</bug_when>
    <thetext>Gamepad defines has a &quot;gamepad&quot; permission, with an allow list of &apos;self&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794278</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-16 16:54:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/83219098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814284</commentid>
    <comment_count>2</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-11 16:05:49 -0800</bug_when>
    <thetext>We are changing it to &quot;all&quot; instead, as &quot;self&quot; turned out not to be web compatible. 

https://github.com/w3c/gamepad/pull/156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815288</commentid>
    <comment_count>3</comment_count>
      <attachid>444320</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-15 17:09:19 -0800</bug_when>
    <thetext>Created attachment 444320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815788</commentid>
    <comment_count>4</comment_count>
      <attachid>444468</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-16 19:24:58 -0800</bug_when>
    <thetext>Created attachment 444468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815789</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-11-16 19:26:03 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815817</commentid>
    <comment_count>6</comment_count>
      <attachid>444478</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-16 21:40:36 -0800</bug_when>
    <thetext>Created attachment 444478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815962</commentid>
    <comment_count>7</comment_count>
      <attachid>444478</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-17 09:07:29 -0800</bug_when>
    <thetext>Comment on attachment 444478
Patch

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

Feels like the test coverage is a bit light.

&gt; Source/WebCore/Modules/gamepad/Navigator+Gamepad.idl:34
&gt; +    [
&gt; +      EnabledBySetting=GamepadsEnabled,
&gt; +      CallWith=Document
&gt; +    ] sequence&lt;Gamepad&gt; getGamepads();

I don’t think we have to break this out vertically just to fit one more attribute in. Unless this is copying and pasting directly from a specification or something.

    [EnabledBySetting=GamepadsEnabled, CallWith=Document] sequence&lt;Gamepad&gt; getGamepads();

&gt; Source/WebCore/html/FeaturePolicy.cpp:53
&gt; +        return &quot;Gampad&quot;;

Typo: &quot;Gamepad&quot;.

&gt; Source/WebCore/html/FeaturePolicy.cpp:215
&gt; +        if (item.startsWith(&quot;gamepad&quot;)) {

Not new, but why all the startsWith in this function? Is it valid to write &quot;gamepadnotreallyimeantsomethingelse&quot;?

&gt; LayoutTests/http/tests/gamepad/gamepad-allow-attribute.https-expected.txt:4
&gt; +CONSOLE MESSAGE: Feature policy &apos;Gampad&apos; check failed for iframe with origin &apos;https://localhost:8443&apos; and allow attribute &apos;gamepad &apos;none&apos;&apos;.
&gt; +CONSOLE MESSAGE: Feature policy &apos;Gampad&apos; check failed for iframe with origin &apos;https://127.0.0.1:8443&apos; and allow attribute &apos;gamepad &apos;none&apos;&apos;.
&gt; +CONSOLE MESSAGE: Feature policy &apos;Gampad&apos; check failed for iframe with origin &apos;https://localhost:8443&apos; and allow attribute &apos;gamepad &apos;self&apos;&apos;.
&gt; +CONSOLE MESSAGE: Feature policy &apos;Gampad&apos; check failed for iframe with origin &apos;https://127.0.0.1:8443&apos; and allow attribute &apos;gamepad https://localhost:8443&apos;.

Here we have &quot;Gampad&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816195</commentid>
    <comment_count>8</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-17 16:29:33 -0800</bug_when>
    <thetext>&gt; Typo: &quot;Gamepad&quot;.

Programming for 20+ years... never gets better 🤪

&gt; Not new, but why all the startsWith in this function? Is it valid to write &quot;gamepadnotreallyimeantsomethingelse&quot;?

Yeah, the Permissions Policy parser there is fairly simple... it just does a split on &quot;;&quot;, trims, and then checks the &quot;startWith&quot;. I agree that it should probably be a little bit more robust. I think the updated Permission Policy spec has further parsing requirements, so eventually the parser might need to be rewritten.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816207</commentid>
    <comment_count>9</comment_count>
      <attachid>444603</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-17 16:40:13 -0800</bug_when>
    <thetext>Created attachment 444603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816222</commentid>
    <comment_count>10</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-17 16:55:17 -0800</bug_when>
    <thetext>&gt; Feels like the test coverage is a bit light.

I&apos;m open to suggestion to what else to test. 

We might want to eventually consolidate+improve all the Permission Policy tests, as they all basically test the same way as I did here (I just copy-pasted-modified an existing test in the tree).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816239</commentid>
    <comment_count>11</comment_count>
      <attachid>444603</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-17 17:35:03 -0800</bug_when>
    <thetext>Comment on attachment 444603
Patch

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

&gt; Source/WebCore/Modules/gamepad/NavigatorGamepad.h:30
&gt; +#include &quot;ExceptionOr.h&quot;

It’s fine to include ExceptionOr.h and we have been doing that in other headers. But I’ve been wondering lately if we could get away with forward declarations instead in a case like this one.

    template&lt;typename&gt; class ExceptionOr;

That typically works for other return values in other similar cases, but for some reason we haven’t done that for ExecptionOr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816252</commentid>
    <comment_count>12</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-17 18:05:36 -0800</bug_when>
    <thetext>&gt;     template&lt;typename&gt; class ExceptionOr;

Ah, good idea! will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816255</commentid>
    <comment_count>13</comment_count>
      <attachid>444622</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-17 18:07:06 -0800</bug_when>
    <thetext>Created attachment 444622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817882</commentid>
    <comment_count>14</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-25 21:26:29 -0800</bug_when>
    <thetext>@Darin, just kindly checking if you could finish the review or if I should ping someone else? Really appreciate all the feedback thus far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817901</commentid>
    <comment_count>15</comment_count>
      <attachid>444622</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-11-26 00:18:55 -0800</bug_when>
    <thetext>Comment on attachment 444622
Patch

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

&gt; Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp:84
&gt; +    if (!isFeaturePolicyAllowedByDocumentAndAllOwners(FeaturePolicy::Type::Gamepad, document, LogFeaturePolicyFailure::Yes))

I am not sure this is correct to get the document from the execution state.
It seems to me getting it from the navigator is better.
This could be tested with the edge case of a document having a same origin iframe, the iframe being denied gamepad permission, then calling iframe.contentWindow...
Can you check this case?

&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt; +        * web-platform-tests/not-fully-active.https.html: Added.

This does not seem to be the right folder.
This should probably be in web-platform-tests/gamepad folder.
Looking at wpt, I can see tests that would seem useful, in particular gamepad-supported-by-feature-policy.html, which might be a bit redundant with http/tests/gamepad/gamepad-allow-attribute.https.html.
Can we import wpt/gampepad test, either in this patch or as a preliminary patch?
You can use Tools/Scripts/import-w3c-tests -t web-platform-tests/gamepad to do the import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818259</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-29 09:55:12 -0800</bug_when>
    <thetext>My single comment didn’t imply that I was going to review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818260</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-29 09:55:48 -0800</bug_when>
    <thetext>Well, no that’s not right. I could review it. But let’s deal with Youenn’s comments first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818808</commentid>
    <comment_count>18</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-11-30 10:18:02 -0800</bug_when>
    <thetext>Thanks for the additional feedback and comments. I&apos;m traveling this week, but hope to address the feedback next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999760</commentid>
    <comment_count>19</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2023-12-14 16:26:43 -0800</bug_when>
    <thetext>The permission policy was switched to &quot;*&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999823</commentid>
    <comment_count>20</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2023-12-14 22:58:20 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/21851</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2000313</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-17 19:40:28 -0800</bug_when>
    <thetext>Committed 272199@main (82e7a7f64764): &lt;https://commits.webkit.org/272199@main&gt;

Reviewed commits have been landed. Closing PR #21851 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444320</attachid>
            <date>2021-11-15 17:09:19 -0800</date>
            <delta_ts>2021-11-16 19:24:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230136-20211116120917.patch</filename>
            <type>text/plain</type>
            <size>14792</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUwOWY5NTk5ZDBmNWM4
N2EzNWIyNTRiZjUyNzNhZTZjMzZmZTI4YS4uZWY4YThmZGMzODM2Mzk0NzJmYTMyYTJkN2MyNzFh
OTQ5YjA3OWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTExLTE1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRk
IHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1h
bGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05h
dmlnYXRvcitHYW1lcGFkLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHYW1lcGFkOjpnZXRHYW1l
cGFkcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVw
YWQuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cG9saWN5VHlwZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAg
ICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuaDoKKwogMjAyMS0xMS0xNCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaW5nZXJzIGRvd24gb24gdGhl
IHRyYWNrcGFkIHNob3VsZCBzdG9wIGFuIGFuaW1hdGVkIHNjcm9sbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5pZGwKaW5kZXggZGQx
MjY2YmZhZWZlOTMzOTU3MTkyZjc1ZWI1ZDBmMzE3ZTg0N2UxYy4uMDBhMzBjYTJjMmI4NzgzMWVh
ZmQwNDExNzI4OGMzMzA0M2ZmNjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRsCkBAIC0yOCw2ICsyOCw5IEBACiAgICAg
Q29uZGl0aW9uYWw9R0FNRVBBRCwKICAgICBJbXBsZW1lbnRlZEJ5PU5hdmlnYXRvckdhbWVwYWQK
IF0gcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKLSAgICBbRW5hYmxlZEJ5U2V0dGluZz1H
YW1lcGFkc0VuYWJsZWRdIHNlcXVlbmNlPEdhbWVwYWQ+IGdldEdhbWVwYWRzKCk7CisgICAgWwor
ICAgICAgRW5hYmxlZEJ5U2V0dGluZz1HYW1lcGFkc0VuYWJsZWQsCisgICAgICBDYWxsV2l0aD1E
b2N1bWVudAorICAgIF0gc2VxdWVuY2U8R2FtZXBhZD4gZ2V0R2FtZXBhZHMoKTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNw
cAppbmRleCA3ODFmMTZmNjgwMjYwZTMwMmVhOTY4MGE1OWNkM2FmZWQ5NDE4NTcwLi5iZjMwOTM0
ZmUwYWZlNDRlZTY5MDM1ZDljMGRlMDA0MzUzMDgwYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCkBAIC0yOSw2ICsyOSw4
IEBACiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKICNpbmNsdWRlICJH
YW1lcGFkLmgiCiAjaW5jbHVkZSAiR2FtZXBhZE1hbmFnZXIuaCIKICNpbmNsdWRlICJHYW1lcGFk
UHJvdmlkZXIuaCIKQEAgLTcyLDIxICs3NCwyMSBAQCBSZWY8R2FtZXBhZD4gTmF2aWdhdG9yR2Ft
ZXBhZDo6Z2FtZXBhZEZyb21QbGF0Zm9ybUdhbWVwYWQoUGxhdGZvcm1HYW1lcGFkJiBwbGF0Zgog
ICAgIHJldHVybiAqbV9nYW1lcGFkc1tpbmRleF07CiB9CiAKLWNvbnN0IFZlY3RvcjxSZWZQdHI8
R2FtZXBhZD4+JiBOYXZpZ2F0b3JHYW1lcGFkOjpnZXRHYW1lcGFkcyhOYXZpZ2F0b3ImIG5hdmln
YXRvcikKK0V4Y2VwdGlvbk9yPGNvbnN0IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+Jj4gTmF2aWdh
dG9yR2FtZXBhZDo6Z2V0R2FtZXBhZHMoTmF2aWdhdG9yJiBuYXZpZ2F0b3IsIERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICBhdXRvKiBkb21XaW5kb3cgPSBuYXZpZ2F0b3Iud2luZG93KCk7Ci0g
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG9tV2luZG93ID8gZG9tV2luZG93LT5kb2N1bWVudCgp
IDogbnVsbHB0cjsKLSAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgaWYgKCFkb2N1bWVudC5pc0Z1
bGx5QWN0aXZlKCkpIHsKICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxSZWZQ
dHI8R2FtZXBhZD4+PiBlbXB0eUdhbWVwYWRzOwotICAgICAgICByZXR1cm4gZW1wdHlHYW1lcGFk
czsKKyAgICAgICAgcmV0dXJuIHsgZW1wdHlHYW1lcGFkcy5nZXQoKSB9OwogICAgIH0KIAotICAg
IGlmICghZG9jdW1lbnQtPmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgaWYgKCFpc0ZlYXR1cmVQ
b2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpH
YW1lcGFkLCBkb2N1bWVudCwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6OlllcykpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBh
cmUgbm90IGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpIHVubGVzcyBleHBsaWNpdGx5IGFs
bG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChnYW1lcGFkKSJfcyB9OworCisgICAgaWYgKCFkb2N1
bWVudC5pc1NlY3VyZUNvbnRleHQoKSkgewogICAgICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUZsYWc7Ci0gICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbZG9jdW1lbnRdIHsK
LSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiTmF2aWdhdG9yLmdldEdhbWVwYWRzKCkg
d2lsbCBiZSByZW1vdmVkIGZyb20gaW5zZWN1cmUgY29udGV4dHMgaW4gYSBmdXR1cmUgcmVsZWFz
ZSJfcyk7CisgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJmRvY3VtZW50XSB7Cisg
ICAgICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1
cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiTmF2aWdhdG9yLmdldEdhbWVwYWRzKCkgd2ls
bCBiZSByZW1vdmVkIGZyb20gaW5zZWN1cmUgY29udGV4dHMgaW4gYSBmdXR1cmUgcmVsZWFzZSJf
cyk7CiAgICAgICAgIH0pOwotCiAgICAgfQogCiAgICAgcmV0dXJuIE5hdmlnYXRvckdhbWVwYWQ6
OmZyb20oJm5hdmlnYXRvciktPmdhbWVwYWRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaAppbmRleCAyY2NkYmZmMzA1OWNjMjdmODBh
NWRhZjE0NGQ5MzI2Nzk0MTVmYTZmLi5iNzBiODYwOGI0YTcwYTJkNTM4OGRhYTMwMzU3Y2E5NWVh
OGRmMzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0
b3JHYW1lcGFkLmgKQEAgLTI3LDExICsyNywxMyBAQAogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAK
KyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERv
Y3VtZW50OwogY2xhc3MgR2FtZXBhZDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNsYXNzIFBsYXRmb3Jt
R2FtZXBhZDsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlIGFycmF5IG9m
IEdhbWVwYWRzIG1pZ2h0IGJlIHNwYXJzZS4KICAgICAvLyBOdWxsIGNoZWNraW5nIGVhY2ggZW50
cnkgaXMgbmVjZXNzYXJ5LgotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+
PiYgZ2V0R2FtZXBhZHMoTmF2aWdhdG9yJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPGNvbnN0
IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+Jj4gZ2V0R2FtZXBhZHMoTmF2aWdhdG9yJiwgRG9jdW1l
bnQmKTsKIAogICAgIHZvaWQgZ2FtZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmKTsKICAg
ICB2b2lkIGdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GZWF0dXJlUG9saWN5LmNwcAppbmRleCA1NjAwY2ExYWJiMDRiOTRiYmZmYzRmZWQ1MDQz
NWIxMzQ1Mjk2M2U2Li5mOTExZjYyYTBhMWZiZWM2MjYwY2IxMDM5MmQ2OWQ1OTQyNzY1NjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKQEAgLTQ5LDYgKzQ5LDggQEAgc3Rh
dGljIGNvbnN0IGNoYXIqIHBvbGljeVR5cGVOYW1lKEZlYXR1cmVQb2xpY3k6OlR5cGUgdHlwZSkK
ICAgICAgICAgcmV0dXJuICJTcGVha2VyU2VsZWN0aW9uIjsKICAgICBjYXNlIEZlYXR1cmVQb2xp
Y3k6OlR5cGU6OkRpc3BsYXlDYXB0dXJlOgogICAgICAgICByZXR1cm4gIkRpc3BsYXlDYXB0dXJl
IjsKKyAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6OkdhbWVwYWQ6CisgICAgICAgIHJldHVy
biAiR2FtcGFkIjsKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6Okdlb2xvY2F0aW9uOgog
ICAgICAgICByZXR1cm4gIkdlb2xvY2F0aW9uIjsKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5
cGU6OlBheW1lbnQ6CkBAIC0xNzQsNiArMTc2LDcgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9s
aWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50Jgog
ICAgIGJvb2wgaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3Bl
YWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0
dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzR2FtZXBhZEluaXRpYWxpemVkID0g
ZmFsc2U7CiAgICAgYm9vbCBpc0dlb2xvY2F0aW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBi
b29sIGlzUGF5bWVudEluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc1N5bmNYSFJJbml0
aWFsaXplZCA9IGZhbHNlOwpAQCAtMjA5LDYgKzIxMiwxMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1
cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1l
bnQmCiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9kaXNwbGF5Q2Fw
dHVyZVJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDE2KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJnYW1lcGFkIikpIHsKKyAgICAg
ICAgICAgIGlzR2FtZXBhZEluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxp
c3QoZG9jdW1lbnQsIHBvbGljeS5tX2dhbWVwYWRSdWxlLCBpdGVtLnN1YnN0cmluZyg4KSk7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICBpZiAoaXRlbS5zdGFydHNX
aXRoKCJnZW9sb2NhdGlvbiIpKSB7CiAgICAgICAgICAgICBpc0dlb2xvY2F0aW9uSW5pdGlhbGl6
ZWQgPSB0cnVlOwogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZ2Vv
bG9jYXRpb25SdWxlLCBpdGVtLnN1YnN0cmluZygxMikpOwpAQCAtMjY5LDYgKzI3Nyw4IEBAIEZl
YXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICAgICAgcG9saWN5Lm1fc3BlYWtlclNlbGVjdGlvblJ1
bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAg
ICBpZiAoIWlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fZGlz
cGxheUNhcHR1cmVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LmRhdGEoKSk7CisgICAgaWYgKCFpc0dhbWVwYWRJbml0aWFsaXplZCkKKyAgICAgICAgcG9saWN5
Lm1fZ2FtZXBhZFJ1bGUudHlwZSA9IEZlYXR1cmVQb2xpY3k6OkFsbG93UnVsZTo6VHlwZTo6QWxs
OwogICAgIGlmICghaXNHZW9sb2NhdGlvbkluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9n
ZW9sb2NhdGlvblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKICAgICBpZiAoIWlzUGF5bWVudEluaXRpYWxpemVkKQpAQCAtMzIwLDYgKzMzMCw4
IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1
cmVQb2xpY3kobV9zcGVha2VyU2VsZWN0aW9uUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6
OkRpc3BsYXlDYXB0dXJlOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5
KG1fZGlzcGxheUNhcHR1cmVSdWxlLCBvcmlnaW4pOworICAgIGNhc2UgVHlwZTo6R2FtZXBhZDoK
KyAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2dhbWVwYWRSdWxlLCBv
cmlnaW4pOwogICAgIGNhc2UgVHlwZTo6R2VvbG9jYXRpb246CiAgICAgICAgIHJldHVybiBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3kobV9nZW9sb2NhdGlvblJ1bGUsIG9yaWdpbik7CiAgICAgY2Fz
ZSBUeXBlOjpQYXltZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAppbmRleCBlNjQw
ZjhhNWQ3MjNkZTAxZTlhNjRiNTEwNjY2YjkzYTY3OTdhNzkyLi5lZDliM2E5ZjZhNmQ4OGUxZjQw
MGY0MWY5NGU5OTBjM2RiZjNkOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zl
YXR1cmVQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApA
QCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIE1pY3JvcGhvbmUsCiAgICAgICAgIFNw
ZWFrZXJTZWxlY3Rpb24sCiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAorICAgICAgICBHYW1lcGFk
LAogICAgICAgICBHZW9sb2NhdGlvbiwKICAgICAgICAgUGF5bWVudCwKICAgICAgICAgU3luY1hI
UiwKQEAgLTcwLDYgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9taWNyb3Bob25l
UnVsZTsKICAgICBBbGxvd1J1bGUgbV9zcGVha2VyU2VsZWN0aW9uUnVsZTsKICAgICBBbGxvd1J1
bGUgbV9kaXNwbGF5Q2FwdHVyZVJ1bGU7CisgICAgQWxsb3dSdWxlIG1fZ2FtZXBhZFJ1bGU7CiAg
ICAgQWxsb3dSdWxlIG1fZ2VvbG9jYXRpb25SdWxlOwogICAgIEFsbG93UnVsZSBtX3BheW1lbnRS
dWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNYSFJSdWxlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1NGQwMGUyYWY3MTZl
ZTJkMjI1MDhkNjc0MGM4MDNjYzdjY2U4ZTkuLjE4NzE0OWZmZTk5YTkyYmUwYTc4MThiNjFmZjU1
Yjk3MTY2YzAwMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0xNSAgTWFyY29zIENh
Y2VyZXMgIDxtYXJjb3NAbWFyY29zYy5jb20+CisKKyAgICAgICAgW0dhbWVwYWRdIGFkZCBwZXJt
aXNzaW9uIHBvbGljeSBpbnRlZ3JhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRy
aWJ1dGUuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9nYW1lcGFkL3Jl
c291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTE0ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpbmdlcnMg
ZG93biBvbiB0aGUgdHJhY2twYWQgc2hvdWxkIHN0b3AgYW4gYW5pbWF0ZWQgc2Nyb2xsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRy
aWJ1dGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFk
LWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzYzlkYzhhODc0MGJhZWJi
ZjVmODRlNWUwZDJmYmE5NWMwOTBlMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbApAQCAt
MCwwICsxLDEzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRp
dGxlPgorICAgICAgVGVzdCBhbGxvdyBhdHRyaWJ1dGUgd2l0aCAiZ2FtZXBhZCIgYW5kIGdldEdh
bWVwYWRzKCkgbWV0aG9kCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdFJ1
bm5lcj8uZHVtcEFzVGV4dCgpOworICAgICAgdGVzdFJ1bm5lcj8ud2FpdFVudGlsRG9uZSgpOwor
CisgICAgICBmdW5jdGlvbiB3YWl0Rm9yKHRhcmdldCwgZXZlbnROYW1lKSB7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICAgIHRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKGV2ZW50TmFtZSwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pOworICAgICAgICB9
KTsKKyAgICAgIH0KKworICAgICAgY29uc3QgaWZyYW1lRGV0YWlscyA9IFsKKyAgICAgICAgewor
ICAgICAgICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2Fs
aG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAg
ICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCIsCisgICAgICAgICAgZW5h
YmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2Ft
ZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCIsCisgICAgICAgICAgZW5hYmxlZDog
InRydWUiLAorICAgICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2Uu
aHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQg
KiIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8v
bG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1s
IiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCAqIiwK
KyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMv
Z2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgIGFsbG93OiAiZ2FtZXBhZCAnbm9uZSciLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIs
CisgICAgICAgICAgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNl
cy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgYWxsb3c6ICJnYW1lcGFkICdub25lJyIsCisgICAgICAgICAgZW5hYmxlZDogImZhbHNl
IiwKKyAgICAgICAgICBzcmM6ICIuL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwi
LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1lcGFkICdzZWxm
JyIsCisgICAgICAgICAgZW5hYmxlZDogImZhbHNlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczov
L2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRt
bCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgJ3Nl
bGYnIiwKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNv
dXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCBodHRwczovL2xvY2FsaG9zdDo4NDQzIiwKKyAgICAg
ICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6
ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1lcGFkIGh0dHBzOi8vbG9jYWxo
b3N0Ojg0NDMiLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAi
Li9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAg
IF07CisKKyAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRJZnJhbWUoZGV0YWlscykgeworICAgICAg
ICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgaWYgKGRldGFpbHMuaGFzT3duUHJvcGVydHkoImFsbG93IikpIHsKKyAgICAgICAgICBpZnJh
bWUuc2V0QXR0cmlidXRlKCJhbGxvdyIsIGRldGFpbHMuYWxsb3cpOworICAgICAgICB9CisgICAg
ICAgIGlmcmFtZS5kYXRhc2V0LmVuYWJsZWQgPSBkZXRhaWxzLmVuYWJsZWQ7CisgICAgICAgIGlm
cmFtZS5zcmMgPSBkZXRhaWxzLnNyYzsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWUpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKGlmcmFtZSwgImxvYWQiKTsKKyAgICAg
ICAgcmV0dXJuIGlmcmFtZTsKKyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dHMoKSB7CisgICAgICAgIGZvciAoY29uc3QgZGV0YWlscyBvZiBpZnJhbWVEZXRhaWxzKSB7Cisg
ICAgICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgbG9hZElmcmFtZShkZXRhaWxzKTsKKyAgICAg
ICAgICBjb25zdCB7IGVuYWJsZWQgfSA9IGlmcmFtZS5kYXRhc2V0OworICAgICAgICAgIGNvbnN0
IGlzQWxsb3dlZCA9IGVuYWJsZWQgPT09ICJ0cnVlIjsKKyAgICAgICAgICBjb25zdCBhY3Rpb24g
PSAiY2FsbCBnZXRHYW1lcGFkcygpIjsKKyAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5w
b3N0TWVzc2FnZSh7IGFjdGlvbiB9LCAiKiIpOworICAgICAgICAgIGNvbnN0IHsgZGF0YSB9ID0g
YXdhaXQgd2FpdEZvcih3aW5kb3csICJtZXNzYWdlIik7CisgICAgICAgICAgY29uc3QgeyBleGNl
cHRpb25NZXNzYWdlLCBleGNlcHRpb25OYW1lLCByZXN1bHQgfSA9IGRhdGE7CisgICAgICAgICAg
Y29uc3QgbXNnID0gYGlmcmFtZSBzcmM6ICIke2lmcmFtZS5zcmN9IiB3aXRoIGFsbG93PSIkewor
ICAgICAgICAgICAgaWZyYW1lLmFsbG93CisgICAgICAgICAgfSIgJHsKKyAgICAgICAgICAgIGlz
QWxsb3dlZCA/ICJpcyBhbGxvd2VkIHRvIiA6ICJNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIgorICAg
ICAgICAgIH0gJHthY3Rpb259LiAke2V4Y2VwdGlvbk5hbWUgPz8gIiJ9ICR7ZXhjZXB0aW9uTWVz
c2FnZSA/PyAiIn1gOworICAgICAgICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgICAgICAgICBj
YXNlICJbXSI6CisgICAgICAgICAgICAgIGlzQWxsb3dlZCA/IHRlc3RQYXNzZWQobXNnKSA6IHRl
c3RGYWlsZWQobXNnKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJl
eGNlcHRpb24iOgorICAgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgIWlzQWxsb3dl
ZCAmJgorICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk5hbWUgPT09ICJOb3RBbGxvd2VkRXJyb3Ii
ICYmCisgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZS5lbmRzV2l0aCgiRmVhdHVyZS1Q
b2xpY3kgKGdhbWVwYWQpIikKKyAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZChtc2cpOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQobXNnKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgIHRlc3RGYWlsZWQobXNnICsgYCAtIHJl
c3VsdCB3YXM6ICR7cmVzdWx0fWApOworICAgICAgICAgIH0KKyAgICAgICAgICBpZnJhbWUucmVt
b3ZlKCk7CisgICAgICAgIH0KKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJydW5UZXN0cygp
Ij4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9y
ZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjY5OTRlYjZmNDgzM2JmZmY2ZDUxMjNhYjY4OTZiNWNkY2M2NzFkYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0
bWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiIC8+Cis8bWV0YSB2aWV3cG9ydD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEuMCIgLz4KKzxib2R5PgorICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKAorICAgICAgIm1lc3NhZ2UiLAorICAgICAgKGV2ZW50KSA9PiB7CisgICAgICAg
IGNvbnN0IHsgYWN0aW9uIH0gPSBldmVudC5kYXRhOworICAgICAgICBsZXQgcmVzdWx0ID0gbnVs
bDsKKyAgICAgICAgbGV0IGV4Y2VwdGlvbk1lc3NhZ2U7CisgICAgICAgIGxldCBleGNlcHRpb25O
YW1lOworICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICAgIGNhc2UgImNhbGwgZ2V0
R2FtZXBhZHMoKSI6CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICByZXN1bHQgPSBu
YXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gSlNPTi5zdHJp
bmdpZnkocmVzdWx0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ZXhjZXB0aW9uTWVzc2FnZSA9IGUubWVzc2FnZTsKKyAgICAgICAgICAgICAgZXhjZXB0aW9uTmFt
ZSA9IGUubmFtZTsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gImV4Y2VwdGlvbiI7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFjdGlvbjogJHthY3Rpb259YCk7CisgICAgICAg
IH0KKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKAorICAgICAgICAgIHsgYWN0aW9u
LCByZXN1bHQsIGV4Y2VwdGlvbk1lc3NhZ2UsIGV4Y2VwdGlvbk5hbWUgfSwKKyAgICAgICAgICBl
dmVudC5vcmlnaW4KKyAgICAgICAgKTsKKyAgICAgIH0sCisgICAgICB7IG9uY2U6IHRydWUgfQor
ICAgICk7CisgIDwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444468</attachid>
            <date>2021-11-16 19:24:58 -0800</date>
            <delta_ts>2021-11-16 21:40:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230136-20211117142456.patch</filename>
            <type>text/plain</type>
            <size>20680</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUyNDdhYmQ5N2Y0MDY5
ZjE0NTg4NGY4MjA0NGQ1N2YxNTlmMTkxMC4uNTE1ZTgxNWVlODRiODVkNzY1NTU0YWU0MGJmODgz
NDEzZDU0MTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE2ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRk
IHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmln
YXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZWF0dXJlUG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5
OjphbGxvd3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5oOgorCiAyMDIx
LTExLTE2ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBUZXh0RGVjb3JhdGlvbiB0byBUZXh0RGVjb3JhdGlvbkxpbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRs
CmluZGV4IGRkMTI2NmJmYWVmZTkzMzk1NzE5MmY3NWViNWQwZjMxN2U4NDdlMWMuLjAwYTMwY2Ey
YzJiODc4MzFlYWZkMDQxMTcyODhjMzMwNDNmZjY2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbApAQCAtMjgsNiArMjgs
OSBAQAogICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgSW1wbGVtZW50ZWRCeT1OYXZpZ2F0
b3JHYW1lcGFkCiBdIHBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0VuYWJsZWRC
eVNldHRpbmc9R2FtZXBhZHNFbmFibGVkXSBzZXF1ZW5jZTxHYW1lcGFkPiBnZXRHYW1lcGFkcygp
OworICAgIFsKKyAgICAgIEVuYWJsZWRCeVNldHRpbmc9R2FtZXBhZHNFbmFibGVkLAorICAgICAg
Q2FsbFdpdGg9RG9jdW1lbnQKKyAgICBdIHNlcXVlbmNlPEdhbWVwYWQ+IGdldEdhbWVwYWRzKCk7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5jcHAKaW5kZXggNzgxZjE2ZjY4MDI2MGUzMDJlYTk2ODBhNTljZDNhZmVkOTQxODU3
MC4uYmYzMDkzNGZlMGFmZTQ0ZWU2OTAzNWQ5YzBkZTAwNDM1MzA4MGI3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2lmIEVOQUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAj
aW5jbHVkZSAiR2FtZXBhZC5oIgogI2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC03MiwyMSArNzQsMjEgQEAgUmVmPEdhbWVwYWQ+IE5h
dmlnYXRvckdhbWVwYWQ6OmdhbWVwYWRGcm9tUGxhdGZvcm1HYW1lcGFkKFBsYXRmb3JtR2FtZXBh
ZCYgcGxhdGYKICAgICByZXR1cm4gKm1fZ2FtZXBhZHNbaW5kZXhdOwogfQogCi1jb25zdCBWZWN0
b3I8UmVmUHRyPEdhbWVwYWQ+PiYgTmF2aWdhdG9yR2FtZXBhZDo6Z2V0R2FtZXBhZHMoTmF2aWdh
dG9yJiBuYXZpZ2F0b3IpCitFeGNlcHRpb25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+
PiY+IE5hdmlnYXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgYXV0byogZG9tV2luZG93ID0gbmF2aWdhdG9yLndp
bmRvdygpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvbVdpbmRvdyA/IGRvbVdpbmRvdy0+
ZG9jdW1lbnQoKSA6IG51bGxwdHI7Ci0gICAgaWYgKCFkb2N1bWVudCkgeworICAgIGlmICghZG9j
dW1lbnQuaXNGdWxseUFjdGl2ZSgpKSB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8UmVmUHRyPEdhbWVwYWQ+Pj4gZW1wdHlHYW1lcGFkczsKLSAgICAgICAgcmV0dXJuIGVt
cHR5R2FtZXBhZHM7CisgICAgICAgIHJldHVybiB7IGVtcHR5R2FtZXBhZHMuZ2V0KCkgfTsKICAg
ICB9CiAKLSAgICBpZiAoIWRvY3VtZW50LT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgIGlmICgh
aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGlj
eTo6VHlwZTo6R2FtZXBhZCwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpZZXMp
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoaXJkLXBhcnR5
IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhw
bGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkiX3MgfTsKKworICAg
IGlmICghZG9jdW1lbnQuaXNTZWN1cmVDb250ZXh0KCkpIHsKICAgICAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwotICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW2Rv
Y3VtZW50XSB7Ci0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRH
YW1lcGFkcygpIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0
dXJlIHJlbGVhc2UiX3MpOworICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZkb2N1
bWVudF0geworICAgICAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1l
cGFkcygpIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJl
IHJlbGVhc2UiX3MpOwogICAgICAgICB9KTsKLQogICAgIH0KIAogICAgIHJldHVybiBOYXZpZ2F0
b3JHYW1lcGFkOjpmcm9tKCZuYXZpZ2F0b3IpLT5nYW1lcGFkcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgKaW5kZXggMmNjZGJmZjMw
NTljYzI3ZjgwYTVkYWYxNDRkOTMyNjc5NDE1ZmE2Zi4uYjcwYjg2MDhiNGE3MGEyZDUzODhkYWEz
MDM1N2NhOTVlYThkZjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1l
cGFkL05hdmlnYXRvckdhbWVwYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVw
YWQvTmF2aWdhdG9yR2FtZXBhZC5oCkBAIC0yNywxMSArMjcsMTMgQEAKIAogI2lmIEVOQUJMRShH
QU1FUEFEKQogCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50
YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEdhbWVwYWQ7CiBjbGFzcyBOYXZpZ2F0b3I7CiBjbGFz
cyBQbGF0Zm9ybUdhbWVwYWQ7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRo
ZSBhcnJheSBvZiBHYW1lcGFkcyBtaWdodCBiZSBzcGFyc2UuCiAgICAgLy8gTnVsbCBjaGVja2lu
ZyBlYWNoIGVudHJ5IGlzIG5lY2Vzc2FyeS4KLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFJlZlB0
cjxHYW1lcGFkPj4mIGdldEdhbWVwYWRzKE5hdmlnYXRvciYpOworICAgIHN0YXRpYyBFeGNlcHRp
b25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiY+IGdldEdhbWVwYWRzKE5hdmlnYXRv
ciYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJik7CiAgICAgdm9pZCBnYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXggNTYwMGNhMWFiYjA0Yjk0YmJm
ZmM0ZmVkNTA0MzViMTM0NTI5NjNlNi4uZjkxMWY2MmEwYTFmYmVjNjI2MGNiMTAzOTJkNjlkNTk0
Mjc2NTY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCkBAIC00OSw2ICs0
OSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBwb2xpY3lUeXBlTmFtZShGZWF0dXJlUG9saWN5OjpU
eXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiU3BlYWtlclNlbGVjdGlvbiI7CiAgICAgY2FzZSBG
ZWF0dXJlUG9saWN5OjpUeXBlOjpEaXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuICJEaXNw
bGF5Q2FwdHVyZSI7CisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHYW1lcGFkOgorICAg
ICAgICByZXR1cm4gIkdhbXBhZCI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHZW9s
b2NhdGlvbjoKICAgICAgICAgcmV0dXJuICJHZW9sb2NhdGlvbiI7CiAgICAgY2FzZSBGZWF0dXJl
UG9saWN5OjpUeXBlOjpQYXltZW50OgpAQCAtMTc0LDYgKzE3Niw3IEBAIEZlYXR1cmVQb2xpY3kg
RmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1l
RWxlbWVudCYKICAgICBib29sIGlzTWljcm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAg
Ym9vbCBpc1NwZWFrZXJTZWxlY3Rpb25Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNE
aXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc0dhbWVwYWRJbml0
aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNHZW9sb2NhdGlvbkluaXRpYWxpemVkID0gZmFs
c2U7CiAgICAgYm9vbCBpc1BheW1lbnRJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNT
eW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTIwOSw2ICsyMTIsMTEgQEAgRmVhdHVyZVBv
bGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJ
RnJhbWVFbGVtZW50JgogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1f
ZGlzcGxheUNhcHR1cmVSdWxlLCBpdGVtLnN1YnN0cmluZygxNikpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZ2FtZXBhZCIp
KSB7CisgICAgICAgICAgICBpc0dhbWVwYWRJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgICAg
ICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9nYW1lcGFkUnVsZSwgaXRlbS5zdWJzdHJp
bmcoOCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKGl0
ZW0uc3RhcnRzV2l0aCgiZ2VvbG9jYXRpb24iKSkgewogICAgICAgICAgICAgaXNHZW9sb2NhdGlv
bkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBv
bGljeS5tX2dlb2xvY2F0aW9uUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTIpKTsKQEAgLTI2OSw2ICsy
NzcsOCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgIHBvbGljeS5tX3NwZWFrZXJT
ZWxlY3Rpb25SdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRh
dGEoKSk7CiAgICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBv
bGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKS5kYXRhKCkpOworICAgIGlmICghaXNHYW1lcGFkSW5pdGlhbGl6ZWQpCisgICAg
ICAgIHBvbGljeS5tX2dhbWVwYWRSdWxlLnR5cGUgPSBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGU6
OlR5cGU6OkFsbDsKICAgICBpZiAoIWlzR2VvbG9jYXRpb25Jbml0aWFsaXplZCkKICAgICAgICAg
cG9saWN5Lm1fZ2VvbG9jYXRpb25SdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLmRhdGEoKSk7CiAgICAgaWYgKCFpc1BheW1lbnRJbml0aWFsaXplZCkKQEAgLTMy
MCw2ICszMzAsOCBAQCBib29sIEZlYXR1cmVQb2xpY3k6OmFsbG93cyhUeXBlIHR5cGUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAogICAgICAgICByZXR1cm4gaXNBbGxv
d2VkQnlGZWF0dXJlUG9saWN5KG1fc3BlYWtlclNlbGVjdGlvblJ1bGUsIG9yaWdpbik7CiAgICAg
Y2FzZSBUeXBlOjpEaXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVh
dHVyZVBvbGljeShtX2Rpc3BsYXlDYXB0dXJlUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6
OkdhbWVwYWQ6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9nYW1l
cGFkUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6Okdlb2xvY2F0aW9uOgogICAgICAgICBy
ZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZ2VvbG9jYXRpb25SdWxlLCBvcmlnaW4p
OwogICAgIGNhc2UgVHlwZTo6UGF5bWVudDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmVhdHVyZVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgK
aW5kZXggZTY0MGY4YTVkNzIzZGUwMWU5YTY0YjUxMDY2NmI5M2E2Nzk3YTc5Mi4uZWQ5YjNhOWY2
YTZkODhlMWY0MDBmNDFmOTRlOTkwYzNkYmYzZDhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgICAgICBNaWNyb3Bob25lLAog
ICAgICAgICBTcGVha2VyU2VsZWN0aW9uLAogICAgICAgICBEaXNwbGF5Q2FwdHVyZSwKKyAgICAg
ICAgR2FtZXBhZCwKICAgICAgICAgR2VvbG9jYXRpb24sCiAgICAgICAgIFBheW1lbnQsCiAgICAg
ICAgIFN5bmNYSFIsCkBAIC03MCw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgQWxsb3dSdWxlIG1f
bWljcm9waG9uZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3BlYWtlclNlbGVjdGlvblJ1bGU7CiAg
ICAgQWxsb3dSdWxlIG1fZGlzcGxheUNhcHR1cmVSdWxlOworICAgIEFsbG93UnVsZSBtX2dhbWVw
YWRSdWxlOwogICAgIEFsbG93UnVsZSBtX2dlb2xvY2F0aW9uUnVsZTsKICAgICBBbGxvd1J1bGUg
bV9wYXltZW50UnVsZTsKICAgICBBbGxvd1J1bGUgbV9zeW5jWEhSUnVsZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDU3
YTMwZWJlYTYwNjY3ZDU5ZDgxZWMxNWU1NmQ2YmFlZDNhMmFiLi4yYzFkMzBjMmY4Njk4MmMyZTBh
N2I5NGVhMGE2NTc2MTUxOGQ2ODVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTEtMTYg
IE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1hcmNvc2MuY29tPgorCisgICAgICAgIFtHYW1lcGFk
XSBhZGQgcGVybWlzc2lvbiBwb2xpY3kgaW50ZWdyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVz
c2FnZS5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xNiAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2ls
eWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51c2VkIGBk
b250Q3JlYXRlSWZNaXNzaW5nYCBhcmd1bWVudCBmcm9tIENTU1N0eWxlRGVjbGFyYXRpb24ucHJv
dG90eXBlLnByb3BlcnR5Rm9yTmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YjM5YmE0N2Y4Mjk4MDdjZDc0MjIwMWVkZmZmOGZjNTM1OGEzMzQ3MS4uMzQ3ZjNjOGRjOWUwNzFh
OThiZmM4YjJjNmQzNjFlZTVkYTJiY2NhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMTYgIE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1h
cmNvc2MuY29tPgorCisgICAgICAgIFtHYW1lcGFkXSBhZGQgcGVybWlzc2lvbiBwb2xpY3kgaW50
ZWdyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMDEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5o
dHRwcy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtY29udGFpbl0gU3VwcG9ydCBjb250YWluOnBhaW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRy
aWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFk
L2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NWM3ZDE5NTBlZTIzMmMxNTRiOGY3NjViOTg2MzA1OTQzN2FkNjE0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitDT05TT0xFIE1FU1NBR0U6IEZl
YXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2lu
ICdodHRwczovL2xvY2FsaG9zdDo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdu
b25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZh
aWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBhbmQg
YWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdub25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1
cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdo
dHRwczovL2xvY2FsaG9zdDo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdzZWxm
JycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxl
ZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBhbmQgYWxs
b3cgYXR0cmlidXRlICdnYW1lcGFkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMnLgorUEFTUyBpZnJh
bWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9IiIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdh
bWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVw
YWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iIiBpcyBh
bGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8v
bG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1s
IiB3aXRoIGFsbG93PSJnYW1lcGFkIiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4K
K1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJj
ZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkIiBpcyBhbGxv
d2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vbG9j
YWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3
aXRoIGFsbG93PSJnYW1lcGFkICoiIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpLgor
UEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9nYW1lcGFkL3Jlc291cmNl
cy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgKiIgaXMgYWxs
b3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovL2xv
Y2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIg
d2l0aCBhbGxvdz0iZ2FtZXBhZCAnbm9uZSciIE1VU1QgTk9UIGJlIGFsbG93ZWQgdG8gY2FsbCBn
ZXRHYW1lcGFkcygpLiBTZWN1cml0eUVycm9yIFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBh
bGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZp
YSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkKK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3
aXRoIGFsbG93PSJnYW1lcGFkICdub25lJyIgTVVTVCBOT1QgYmUgYWxsb3dlZCB0byBjYWxsIGdl
dEdhbWVwYWRzKCkuIFNlY3VyaXR5RXJyb3IgVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlh
IEZlYXR1cmUtUG9saWN5IChnYW1lcGFkKQorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2Nh
bGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdp
dGggYWxsb3c9ImdhbWVwYWQgJ3NlbGYnIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0
R2FtZXBhZHMoKS4gU2VjdXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxs
b3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEg
RmVhdHVyZS1Qb2xpY3kgKGdhbWVwYWQpCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4w
LjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0
aCBhbGxvdz0iZ2FtZXBhZCAnc2VsZiciIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygp
LgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291
cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0MyIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNT
IGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dh
bWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCBodHRwczovL2xvY2Fs
aG9zdDo4NDQzIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4gU2Vj
dXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byBjYWxsIGdl
dEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kg
KGdhbWVwYWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9n
YW1lcGFkLWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGZkZjg2YjhiYWRmMmZmN2EzMDBlYjU0ZTcyNTkzMjQ3OWU0ZTg5MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJpYnV0
ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGFsbG93IGF0dHJpYnV0ZSB3aXRoICJn
YW1lcGFkIiBhbmQgZ2V0R2FtZXBhZHMoKSBtZXRob2QKKyAgICA8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICB0ZXN0UnVubmVyPy5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVubmVyPy53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgIGZ1bmN0aW9uIHdhaXRGb3IodGFyZ2V0LCBldmVudE5h
bWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAg
ICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCByZXNvbHZlLCB7IG9uY2U6IHRy
dWUgfSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICAvLyBVc2VzICdhbGwnIGFzIHRo
ZSBwZXJtaXNzaW9ucyBwb2xpY3kKKyAgICAgIGNvbnN0IGlmcmFtZURldGFpbHMgPSBbCisgICAg
ICAgIHsKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0
bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAor
ICAgICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAorICAgICAg
ICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2FsaG9zdDo4
NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAorICAgICAgICAgIGVu
YWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICIuL3Jlc291cmNlcy9nYW1lcGFkLXBvc3Rt
ZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJn
YW1lcGFkICoiLAorICAgICAgICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJo
dHRwczovL2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3Nh
Z2UuaHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVw
YWQgKiIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogIi4vcmVz
b3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgJ25vbmUnIiwKKyAgICAgICAgICBlbmFibGVkOiAi
ZmFsc2UiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9y
ZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCAnbm9uZSciLAorICAgICAgICAgIGVuYWJsZWQ6
ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2Fn
ZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBh
ZCAnc2VsZiciLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAi
aHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNz
YWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1l
cGFkICdzZWxmJyIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzog
Ii4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIs
CisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9j
YWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCBodHRwczov
L2xvY2FsaG9zdDo4NDQzIiwKKyAgICAgICAgICBlbmFibGVkOiAiZmFsc2UiLAorICAgICAgICAg
IHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0s
CisgICAgICBdOworCisgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkSWZyYW1lKGRldGFpbHMpIHsK
KyAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgICAgIGlmIChkZXRhaWxzLmhhc093blByb3BlcnR5KCJhbGxvdyIpKSB7CisgICAgICAg
ICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCBkZXRhaWxzLmFsbG93KTsKKyAgICAgICAg
fQorICAgICAgICBpZnJhbWUuZGF0YXNldC5lbmFibGVkID0gZGV0YWlscy5lbmFibGVkOworICAg
ICAgICBpZnJhbWUuc3JjID0gZGV0YWlscy5zcmM7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihpZnJhbWUsICJsb2FkIik7
CisgICAgICAgIHJldHVybiBpZnJhbWU7CisgICAgICB9CisKKyAgICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgICAgICBmb3IgKGNvbnN0IGRldGFpbHMgb2YgaWZyYW1lRGV0YWls
cykgeworICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGxvYWRJZnJhbWUoZGV0YWlscyk7
CisgICAgICAgICAgY29uc3QgeyBlbmFibGVkIH0gPSBpZnJhbWUuZGF0YXNldDsKKyAgICAgICAg
ICBjb25zdCBpc0FsbG93ZWQgPSBlbmFibGVkID09PSAidHJ1ZSI7CisgICAgICAgICAgY29uc3Qg
YWN0aW9uID0gImNhbGwgZ2V0R2FtZXBhZHMoKSI7CisgICAgICAgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cucG9zdE1lc3NhZ2UoeyBhY3Rpb24gfSwgIioiKTsKKyAgICAgICAgICBjb25zdCB7IGRh
dGEgfSA9IGF3YWl0IHdhaXRGb3Iod2luZG93LCAibWVzc2FnZSIpOworICAgICAgICAgIGNvbnN0
IHsgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSwgcmVzdWx0IH0gPSBkYXRhOworICAg
ICAgICAgIGNvbnN0IG1zZyA9IGBpZnJhbWUgc3JjOiAiJHtpZnJhbWUuc3JjfSIgd2l0aCBhbGxv
dz0iJHsKKyAgICAgICAgICAgIGlmcmFtZS5hbGxvdworICAgICAgICAgIH0iICR7CisgICAgICAg
ICAgICBpc0FsbG93ZWQgPyAiaXMgYWxsb3dlZCB0byIgOiAiTVVTVCBOT1QgYmUgYWxsb3dlZCB0
byIKKyAgICAgICAgICB9ICR7YWN0aW9ufS4gJHtleGNlcHRpb25OYW1lID8/ICIifSAke2V4Y2Vw
dGlvbk1lc3NhZ2UgPz8gIiJ9YDsKKyAgICAgICAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgICAg
ICAgICAgY2FzZSAiW10iOgorICAgICAgICAgICAgICBpc0FsbG93ZWQgPyB0ZXN0UGFzc2VkKG1z
ZykgOiB0ZXN0RmFpbGVkKG1zZyk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiZXhjZXB0aW9uIjoKKyAgICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgICFp
c0FsbG93ZWQgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25OYW1lID09PSAiU2VjdXJpdHlF
cnJvciIgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlLmVuZHNXaXRoKCJGZWF0
dXJlLVBvbGljeSAoZ2FtZXBhZCkiKQorICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChtc2cpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZChtc2cgKyBg
IC0gcmVzdWx0IHdhczogJHtyZXN1bHR9YCk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmcmFt
ZS5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InJ1blRl
c3RzKCkiPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1l
cGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNjk5NGViNmY0ODMzYmZmZjZkNTEyM2FiNjg5NmI1Y2RjYzY3MWRhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzxtZXRhIHZpZXdwb3J0PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MS4wIiAvPgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoCisgICAgICAibWVzc2FnZSIsCisgICAgICAoZXZlbnQpID0+IHsKKyAg
ICAgICAgY29uc3QgeyBhY3Rpb24gfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGxldCByZXN1bHQg
PSBudWxsOworICAgICAgICBsZXQgZXhjZXB0aW9uTWVzc2FnZTsKKyAgICAgICAgbGV0IGV4Y2Vw
dGlvbk5hbWU7CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgICAgY2FzZSAiY2Fs
bCBnZXRHYW1lcGFkcygpIjoKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHJlc3Vs
dCA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgICAgICAgICAgICByZXN1bHQgPSBKU09O
LnN0cmluZ2lmeShyZXN1bHQpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAg
ICAgICBleGNlcHRpb25NZXNzYWdlID0gZS5tZXNzYWdlOworICAgICAgICAgICAgICBleGNlcHRp
b25OYW1lID0gZS5uYW1lOworICAgICAgICAgICAgICByZXN1bHQgPSAiZXhjZXB0aW9uIjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uOiAke2FjdGlvbn1gKTsKKyAg
ICAgICAgfQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoCisgICAgICAgICAgeyBh
Y3Rpb24sIHJlc3VsdCwgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSB9LAorICAgICAg
ICAgIGV2ZW50Lm9yaWdpbgorICAgICAgICApOworICAgICAgfSwKKyAgICAgIHsgb25jZTogdHJ1
ZSB9CisgICAgKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWM0MWJi
YTNhODJkOGU1NzM4NzJlN2U1NzEzYmU0ODllZDJlZTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHktYWN0aXZl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjYWxsaW5nIGdldEdh
bWVwYWRzKCkgaW4gYSBub24tZnVsbHktYWN0aXZlIGRvY3VtZW50CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwYWZlZjNkMmRlYjI5
YzA4N2RlMGJiNzA4OTA0YWNlODE3OThjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiIC8+Cis8dGl0bGU+R2FtZXBhZCB0ZXN0cyBmb3Igbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVu
dDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAg
Y29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgaWZy
YW1lLnNyY2RvYyA9IGA8aDE+dGVzdDwvaDE+YAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4geworICAgICAgaWZyYW1lLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSk7CisgICAgY29uc3QgbmF2aWdhdG9yID0g
aWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAg
ICBjb25zdCBnYW1lcGFkcyA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgIGFzc2VydF90
cnVlKEFycmF5LmlzQXJyYXkoZ2FtZXBhZHMpLCAnZ2V0R2FtZXBhZHMgc2hvdWxkIHJldHVybiBh
biBhcnJheScpOworICAgIGFzc2VydF9lcXVhbHMoZ2FtZXBhZHMubGVuZ3RoLCAwLCAiTm8gZ2Ft
ZXBhZHMgc2hvdWxkIGJlIGF2YWlsYWJsZSIpOworICB9LCAiY2FsbGluZyBnZXRHYW1lcGFkcygp
IGluIGEgbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVudCIpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444478</attachid>
            <date>2021-11-16 21:40:36 -0800</date>
            <delta_ts>2021-11-17 16:40:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230136-20211117164034.patch</filename>
            <type>text/plain</type>
            <size>21291</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUyNDdhYmQ5N2Y0MDY5
ZjE0NTg4NGY4MjA0NGQ1N2YxNTlmMTkxMC4uNTE1ZTgxNWVlODRiODVkNzY1NTU0YWU0MGJmODgz
NDEzZDU0MTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE2ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRk
IHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmln
YXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZWF0dXJlUG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5
OjphbGxvd3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5oOgorCiAyMDIx
LTExLTE2ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBUZXh0RGVjb3JhdGlvbiB0byBUZXh0RGVjb3JhdGlvbkxpbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRs
CmluZGV4IGRkMTI2NmJmYWVmZTkzMzk1NzE5MmY3NWViNWQwZjMxN2U4NDdlMWMuLjAwYTMwY2Ey
YzJiODc4MzFlYWZkMDQxMTcyODhjMzMwNDNmZjY2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbApAQCAtMjgsNiArMjgs
OSBAQAogICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgSW1wbGVtZW50ZWRCeT1OYXZpZ2F0
b3JHYW1lcGFkCiBdIHBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0VuYWJsZWRC
eVNldHRpbmc9R2FtZXBhZHNFbmFibGVkXSBzZXF1ZW5jZTxHYW1lcGFkPiBnZXRHYW1lcGFkcygp
OworICAgIFsKKyAgICAgIEVuYWJsZWRCeVNldHRpbmc9R2FtZXBhZHNFbmFibGVkLAorICAgICAg
Q2FsbFdpdGg9RG9jdW1lbnQKKyAgICBdIHNlcXVlbmNlPEdhbWVwYWQ+IGdldEdhbWVwYWRzKCk7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5jcHAKaW5kZXggNzgxZjE2ZjY4MDI2MGUzMDJlYTk2ODBhNTljZDNhZmVkOTQxODU3
MC4uYmYzMDkzNGZlMGFmZTQ0ZWU2OTAzNWQ5YzBkZTAwNDM1MzA4MGI3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2lmIEVOQUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAj
aW5jbHVkZSAiR2FtZXBhZC5oIgogI2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC03MiwyMSArNzQsMjEgQEAgUmVmPEdhbWVwYWQ+IE5h
dmlnYXRvckdhbWVwYWQ6OmdhbWVwYWRGcm9tUGxhdGZvcm1HYW1lcGFkKFBsYXRmb3JtR2FtZXBh
ZCYgcGxhdGYKICAgICByZXR1cm4gKm1fZ2FtZXBhZHNbaW5kZXhdOwogfQogCi1jb25zdCBWZWN0
b3I8UmVmUHRyPEdhbWVwYWQ+PiYgTmF2aWdhdG9yR2FtZXBhZDo6Z2V0R2FtZXBhZHMoTmF2aWdh
dG9yJiBuYXZpZ2F0b3IpCitFeGNlcHRpb25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+
PiY+IE5hdmlnYXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgYXV0byogZG9tV2luZG93ID0gbmF2aWdhdG9yLndp
bmRvdygpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvbVdpbmRvdyA/IGRvbVdpbmRvdy0+
ZG9jdW1lbnQoKSA6IG51bGxwdHI7Ci0gICAgaWYgKCFkb2N1bWVudCkgeworICAgIGlmICghZG9j
dW1lbnQuaXNGdWxseUFjdGl2ZSgpKSB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8UmVmUHRyPEdhbWVwYWQ+Pj4gZW1wdHlHYW1lcGFkczsKLSAgICAgICAgcmV0dXJuIGVt
cHR5R2FtZXBhZHM7CisgICAgICAgIHJldHVybiB7IGVtcHR5R2FtZXBhZHMuZ2V0KCkgfTsKICAg
ICB9CiAKLSAgICBpZiAoIWRvY3VtZW50LT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgIGlmICgh
aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGlj
eTo6VHlwZTo6R2FtZXBhZCwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpZZXMp
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoaXJkLXBhcnR5
IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhw
bGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkiX3MgfTsKKworICAg
IGlmICghZG9jdW1lbnQuaXNTZWN1cmVDb250ZXh0KCkpIHsKICAgICAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwotICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW2Rv
Y3VtZW50XSB7Ci0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRH
YW1lcGFkcygpIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0
dXJlIHJlbGVhc2UiX3MpOworICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZkb2N1
bWVudF0geworICAgICAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1l
cGFkcygpIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJl
IHJlbGVhc2UiX3MpOwogICAgICAgICB9KTsKLQogICAgIH0KIAogICAgIHJldHVybiBOYXZpZ2F0
b3JHYW1lcGFkOjpmcm9tKCZuYXZpZ2F0b3IpLT5nYW1lcGFkcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmgKaW5kZXggMmNjZGJmZjMw
NTljYzI3ZjgwYTVkYWYxNDRkOTMyNjc5NDE1ZmE2Zi4uYjcwYjg2MDhiNGE3MGEyZDUzODhkYWEz
MDM1N2NhOTVlYThkZjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1l
cGFkL05hdmlnYXRvckdhbWVwYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVw
YWQvTmF2aWdhdG9yR2FtZXBhZC5oCkBAIC0yNywxMSArMjcsMTMgQEAKIAogI2lmIEVOQUJMRShH
QU1FUEFEKQogCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50
YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEdhbWVwYWQ7CiBjbGFzcyBOYXZpZ2F0b3I7CiBjbGFz
cyBQbGF0Zm9ybUdhbWVwYWQ7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRo
ZSBhcnJheSBvZiBHYW1lcGFkcyBtaWdodCBiZSBzcGFyc2UuCiAgICAgLy8gTnVsbCBjaGVja2lu
ZyBlYWNoIGVudHJ5IGlzIG5lY2Vzc2FyeS4KLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFJlZlB0
cjxHYW1lcGFkPj4mIGdldEdhbWVwYWRzKE5hdmlnYXRvciYpOworICAgIHN0YXRpYyBFeGNlcHRp
b25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiY+IGdldEdhbWVwYWRzKE5hdmlnYXRv
ciYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1l
cGFkJik7CiAgICAgdm9pZCBnYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXggNTYwMGNhMWFiYjA0Yjk0YmJm
ZmM0ZmVkNTA0MzViMTM0NTI5NjNlNi4uZjkxMWY2MmEwYTFmYmVjNjI2MGNiMTAzOTJkNjlkNTk0
Mjc2NTY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCkBAIC00OSw2ICs0
OSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBwb2xpY3lUeXBlTmFtZShGZWF0dXJlUG9saWN5OjpU
eXBlIHR5cGUpCiAgICAgICAgIHJldHVybiAiU3BlYWtlclNlbGVjdGlvbiI7CiAgICAgY2FzZSBG
ZWF0dXJlUG9saWN5OjpUeXBlOjpEaXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuICJEaXNw
bGF5Q2FwdHVyZSI7CisgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHYW1lcGFkOgorICAg
ICAgICByZXR1cm4gIkdhbXBhZCI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHZW9s
b2NhdGlvbjoKICAgICAgICAgcmV0dXJuICJHZW9sb2NhdGlvbiI7CiAgICAgY2FzZSBGZWF0dXJl
UG9saWN5OjpUeXBlOjpQYXltZW50OgpAQCAtMTc0LDYgKzE3Niw3IEBAIEZlYXR1cmVQb2xpY3kg
RmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1l
RWxlbWVudCYKICAgICBib29sIGlzTWljcm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAg
Ym9vbCBpc1NwZWFrZXJTZWxlY3Rpb25Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNE
aXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc0dhbWVwYWRJbml0
aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNHZW9sb2NhdGlvbkluaXRpYWxpemVkID0gZmFs
c2U7CiAgICAgYm9vbCBpc1BheW1lbnRJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNT
eW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTIwOSw2ICsyMTIsMTEgQEAgRmVhdHVyZVBv
bGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJ
RnJhbWVFbGVtZW50JgogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1f
ZGlzcGxheUNhcHR1cmVSdWxlLCBpdGVtLnN1YnN0cmluZygxNikpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiZ2FtZXBhZCIp
KSB7CisgICAgICAgICAgICBpc0dhbWVwYWRJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgICAg
ICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9nYW1lcGFkUnVsZSwgaXRlbS5zdWJzdHJp
bmcoOCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKGl0
ZW0uc3RhcnRzV2l0aCgiZ2VvbG9jYXRpb24iKSkgewogICAgICAgICAgICAgaXNHZW9sb2NhdGlv
bkluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBv
bGljeS5tX2dlb2xvY2F0aW9uUnVsZSwgaXRlbS5zdWJzdHJpbmcoMTIpKTsKQEAgLTI2OSw2ICsy
NzcsOCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgICAgIHBvbGljeS5tX3NwZWFrZXJT
ZWxlY3Rpb25SdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRh
dGEoKSk7CiAgICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBv
bGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKS5kYXRhKCkpOworICAgIGlmICghaXNHYW1lcGFkSW5pdGlhbGl6ZWQpCisgICAg
ICAgIHBvbGljeS5tX2dhbWVwYWRSdWxlLnR5cGUgPSBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGU6
OlR5cGU6OkFsbDsKICAgICBpZiAoIWlzR2VvbG9jYXRpb25Jbml0aWFsaXplZCkKICAgICAgICAg
cG9saWN5Lm1fZ2VvbG9jYXRpb25SdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLmRhdGEoKSk7CiAgICAgaWYgKCFpc1BheW1lbnRJbml0aWFsaXplZCkKQEAgLTMy
MCw2ICszMzAsOCBAQCBib29sIEZlYXR1cmVQb2xpY3k6OmFsbG93cyhUeXBlIHR5cGUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAogICAgICAgICByZXR1cm4gaXNBbGxv
d2VkQnlGZWF0dXJlUG9saWN5KG1fc3BlYWtlclNlbGVjdGlvblJ1bGUsIG9yaWdpbik7CiAgICAg
Y2FzZSBUeXBlOjpEaXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVh
dHVyZVBvbGljeShtX2Rpc3BsYXlDYXB0dXJlUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6
OkdhbWVwYWQ6CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9nYW1l
cGFkUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6Okdlb2xvY2F0aW9uOgogICAgICAgICBy
ZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZ2VvbG9jYXRpb25SdWxlLCBvcmlnaW4p
OwogICAgIGNhc2UgVHlwZTo6UGF5bWVudDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmVhdHVyZVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgK
aW5kZXggZTY0MGY4YTVkNzIzZGUwMWU5YTY0YjUxMDY2NmI5M2E2Nzk3YTc5Mi4uZWQ5YjNhOWY2
YTZkODhlMWY0MDBmNDFmOTRlOTkwYzNkYmYzZDhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgICAgICBNaWNyb3Bob25lLAog
ICAgICAgICBTcGVha2VyU2VsZWN0aW9uLAogICAgICAgICBEaXNwbGF5Q2FwdHVyZSwKKyAgICAg
ICAgR2FtZXBhZCwKICAgICAgICAgR2VvbG9jYXRpb24sCiAgICAgICAgIFBheW1lbnQsCiAgICAg
ICAgIFN5bmNYSFIsCkBAIC03MCw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgQWxsb3dSdWxlIG1f
bWljcm9waG9uZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3BlYWtlclNlbGVjdGlvblJ1bGU7CiAg
ICAgQWxsb3dSdWxlIG1fZGlzcGxheUNhcHR1cmVSdWxlOworICAgIEFsbG93UnVsZSBtX2dhbWVw
YWRSdWxlOwogICAgIEFsbG93UnVsZSBtX2dlb2xvY2F0aW9uUnVsZTsKICAgICBBbGxvd1J1bGUg
bV9wYXltZW50UnVsZTsKICAgICBBbGxvd1J1bGUgbV9zeW5jWEhSUnVsZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDU3
YTMwZWJlYTYwNjY3ZDU5ZDgxZWMxNWU1NmQ2YmFlZDNhMmFiLi4yYzFkMzBjMmY4Njk4MmMyZTBh
N2I5NGVhMGE2NTc2MTUxOGQ2ODVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTEtMTYg
IE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1hcmNvc2MuY29tPgorCisgICAgICAgIFtHYW1lcGFk
XSBhZGQgcGVybWlzc2lvbiBwb2xpY3kgaW50ZWdyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVz
c2FnZS5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xNiAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2ls
eWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51c2VkIGBk
b250Q3JlYXRlSWZNaXNzaW5nYCBhcmd1bWVudCBmcm9tIENTU1N0eWxlRGVjbGFyYXRpb24ucHJv
dG90eXBlLnByb3BlcnR5Rm9yTmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YjM5YmE0N2Y4Mjk4MDdjZDc0MjIwMWVkZmZmOGZjNTM1OGEzMzQ3MS4uMzQ3ZjNjOGRjOWUwNzFh
OThiZmM4YjJjNmQzNjFlZTVkYTJiY2NhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTEtMTYgIE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1h
cmNvc2MuY29tPgorCisgICAgICAgIFtHYW1lcGFkXSBhZGQgcGVybWlzc2lvbiBwb2xpY3kgaW50
ZWdyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMDEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5o
dHRwcy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtY29udGFpbl0gU3VwcG9ydCBjb250YWluOnBhaW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRy
aWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFk
L2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NWM3ZDE5NTBlZTIzMmMxNTRiOGY3NjViOTg2MzA1OTQzN2FkNjE0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitDT05TT0xFIE1FU1NBR0U6IEZl
YXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2lu
ICdodHRwczovL2xvY2FsaG9zdDo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdu
b25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZh
aWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBhbmQg
YWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdub25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1
cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdo
dHRwczovL2xvY2FsaG9zdDo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFkICdzZWxm
JycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1wYWQnIGNoZWNrIGZhaWxl
ZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBhbmQgYWxs
b3cgYXR0cmlidXRlICdnYW1lcGFkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMnLgorUEFTUyBpZnJh
bWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9IiIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdh
bWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVw
YWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iIiBpcyBh
bGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8v
bG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1s
IiB3aXRoIGFsbG93PSJnYW1lcGFkIiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4K
K1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJj
ZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkIiBpcyBhbGxv
d2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vbG9j
YWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3
aXRoIGFsbG93PSJnYW1lcGFkICoiIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpLgor
UEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9nYW1lcGFkL3Jlc291cmNl
cy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgKiIgaXMgYWxs
b3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovL2xv
Y2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIg
d2l0aCBhbGxvdz0iZ2FtZXBhZCAnbm9uZSciIE1VU1QgTk9UIGJlIGFsbG93ZWQgdG8gY2FsbCBn
ZXRHYW1lcGFkcygpLiBTZWN1cml0eUVycm9yIFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBh
bGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZp
YSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkKK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3
aXRoIGFsbG93PSJnYW1lcGFkICdub25lJyIgTVVTVCBOT1QgYmUgYWxsb3dlZCB0byBjYWxsIGdl
dEdhbWVwYWRzKCkuIFNlY3VyaXR5RXJyb3IgVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlh
IEZlYXR1cmUtUG9saWN5IChnYW1lcGFkKQorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2Nh
bGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdp
dGggYWxsb3c9ImdhbWVwYWQgJ3NlbGYnIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0
R2FtZXBhZHMoKS4gU2VjdXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxs
b3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEg
RmVhdHVyZS1Qb2xpY3kgKGdhbWVwYWQpCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4w
LjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0
aCBhbGxvdz0iZ2FtZXBhZCAnc2VsZiciIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygp
LgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291
cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0MyIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNT
IGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dh
bWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCBodHRwczovL2xvY2Fs
aG9zdDo4NDQzIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4gU2Vj
dXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byBjYWxsIGdl
dEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kg
KGdhbWVwYWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9n
YW1lcGFkLWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGZkZjg2YjhiYWRmMmZmN2EzMDBlYjU0ZTcyNTkzMjQ3OWU0ZTg5MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJpYnV0
ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGFsbG93IGF0dHJpYnV0ZSB3aXRoICJn
YW1lcGFkIiBhbmQgZ2V0R2FtZXBhZHMoKSBtZXRob2QKKyAgICA8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICB0ZXN0UnVubmVyPy5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVubmVyPy53
YWl0VW50aWxEb25lKCk7CisKKyAgICAgIGZ1bmN0aW9uIHdhaXRGb3IodGFyZ2V0LCBldmVudE5h
bWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAg
ICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCByZXNvbHZlLCB7IG9uY2U6IHRy
dWUgfSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICAvLyBVc2VzICdhbGwnIGFzIHRo
ZSBwZXJtaXNzaW9ucyBwb2xpY3kKKyAgICAgIGNvbnN0IGlmcmFtZURldGFpbHMgPSBbCisgICAg
ICAgIHsKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0
bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAor
ICAgICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAorICAgICAg
ICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2FsaG9zdDo4
NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAorICAgICAgICAgIGVu
YWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICIuL3Jlc291cmNlcy9nYW1lcGFkLXBvc3Rt
ZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJn
YW1lcGFkICoiLAorICAgICAgICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJo
dHRwczovL2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3Nh
Z2UuaHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVw
YWQgKiIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogIi4vcmVz
b3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgJ25vbmUnIiwKKyAgICAgICAgICBlbmFibGVkOiAi
ZmFsc2UiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9y
ZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCAnbm9uZSciLAorICAgICAgICAgIGVuYWJsZWQ6
ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2Fn
ZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBh
ZCAnc2VsZiciLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAi
aHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNz
YWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1l
cGFkICdzZWxmJyIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzog
Ii4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIs
CisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9j
YWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCBodHRwczov
L2xvY2FsaG9zdDo4NDQzIiwKKyAgICAgICAgICBlbmFibGVkOiAiZmFsc2UiLAorICAgICAgICAg
IHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0s
CisgICAgICBdOworCisgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkSWZyYW1lKGRldGFpbHMpIHsK
KyAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgICAgIGlmIChkZXRhaWxzLmhhc093blByb3BlcnR5KCJhbGxvdyIpKSB7CisgICAgICAg
ICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCBkZXRhaWxzLmFsbG93KTsKKyAgICAgICAg
fQorICAgICAgICBpZnJhbWUuZGF0YXNldC5lbmFibGVkID0gZGV0YWlscy5lbmFibGVkOworICAg
ICAgICBpZnJhbWUuc3JjID0gZGV0YWlscy5zcmM7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihpZnJhbWUsICJsb2FkIik7
CisgICAgICAgIHJldHVybiBpZnJhbWU7CisgICAgICB9CisKKyAgICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgICAgICBmb3IgKGNvbnN0IGRldGFpbHMgb2YgaWZyYW1lRGV0YWls
cykgeworICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGxvYWRJZnJhbWUoZGV0YWlscyk7
CisgICAgICAgICAgY29uc3QgeyBlbmFibGVkIH0gPSBpZnJhbWUuZGF0YXNldDsKKyAgICAgICAg
ICBjb25zdCBpc0FsbG93ZWQgPSBlbmFibGVkID09PSAidHJ1ZSI7CisgICAgICAgICAgY29uc3Qg
YWN0aW9uID0gImNhbGwgZ2V0R2FtZXBhZHMoKSI7CisgICAgICAgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cucG9zdE1lc3NhZ2UoeyBhY3Rpb24gfSwgIioiKTsKKyAgICAgICAgICBjb25zdCB7IGRh
dGEgfSA9IGF3YWl0IHdhaXRGb3Iod2luZG93LCAibWVzc2FnZSIpOworICAgICAgICAgIGNvbnN0
IHsgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSwgcmVzdWx0IH0gPSBkYXRhOworICAg
ICAgICAgIGNvbnN0IG1zZyA9IGBpZnJhbWUgc3JjOiAiJHtpZnJhbWUuc3JjfSIgd2l0aCBhbGxv
dz0iJHsKKyAgICAgICAgICAgIGlmcmFtZS5hbGxvdworICAgICAgICAgIH0iICR7CisgICAgICAg
ICAgICBpc0FsbG93ZWQgPyAiaXMgYWxsb3dlZCB0byIgOiAiTVVTVCBOT1QgYmUgYWxsb3dlZCB0
byIKKyAgICAgICAgICB9ICR7YWN0aW9ufS4gJHtleGNlcHRpb25OYW1lID8/ICIifSAke2V4Y2Vw
dGlvbk1lc3NhZ2UgPz8gIiJ9YDsKKyAgICAgICAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgICAg
ICAgICAgY2FzZSAiW10iOgorICAgICAgICAgICAgICBpc0FsbG93ZWQgPyB0ZXN0UGFzc2VkKG1z
ZykgOiB0ZXN0RmFpbGVkKG1zZyk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiZXhjZXB0aW9uIjoKKyAgICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgICFp
c0FsbG93ZWQgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25OYW1lID09PSAiU2VjdXJpdHlF
cnJvciIgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlLmVuZHNXaXRoKCJGZWF0
dXJlLVBvbGljeSAoZ2FtZXBhZCkiKQorICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChtc2cpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZChtc2cgKyBg
IC0gcmVzdWx0IHdhczogJHtyZXN1bHR9YCk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmcmFt
ZS5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InJ1blRl
c3RzKCkiPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1l
cGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNjk5NGViNmY0ODMzYmZmZjZkNTEyM2FiNjg5NmI1Y2RjYzY3MWRhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzxtZXRhIHZpZXdwb3J0PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MS4wIiAvPgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoCisgICAgICAibWVzc2FnZSIsCisgICAgICAoZXZlbnQpID0+IHsKKyAg
ICAgICAgY29uc3QgeyBhY3Rpb24gfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGxldCByZXN1bHQg
PSBudWxsOworICAgICAgICBsZXQgZXhjZXB0aW9uTWVzc2FnZTsKKyAgICAgICAgbGV0IGV4Y2Vw
dGlvbk5hbWU7CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgICAgY2FzZSAiY2Fs
bCBnZXRHYW1lcGFkcygpIjoKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHJlc3Vs
dCA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgICAgICAgICAgICByZXN1bHQgPSBKU09O
LnN0cmluZ2lmeShyZXN1bHQpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAg
ICAgICBleGNlcHRpb25NZXNzYWdlID0gZS5tZXNzYWdlOworICAgICAgICAgICAgICBleGNlcHRp
b25OYW1lID0gZS5uYW1lOworICAgICAgICAgICAgICByZXN1bHQgPSAiZXhjZXB0aW9uIjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uOiAke2FjdGlvbn1gKTsKKyAg
ICAgICAgfQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoCisgICAgICAgICAgeyBh
Y3Rpb24sIHJlc3VsdCwgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSB9LAorICAgICAg
ICAgIGV2ZW50Lm9yaWdpbgorICAgICAgICApOworICAgICAgfSwKKyAgICAgIHsgb25jZTogdHJ1
ZSB9CisgICAgKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWM0MWJi
YTNhODJkOGU1NzM4NzJlN2U1NzEzYmU0ODllZDJlZTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHktYWN0aXZl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjYWxsaW5nIGdldEdh
bWVwYWRzKCkgaW4gYSBub24tZnVsbHktYWN0aXZlIGRvY3VtZW50CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwYWZlZjNkMmRlYjI5
YzA4N2RlMGJiNzA4OTA0YWNlODE3OThjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiIC8+Cis8dGl0bGU+R2FtZXBhZCB0ZXN0cyBmb3Igbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVu
dDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAg
Y29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgaWZy
YW1lLnNyY2RvYyA9IGA8aDE+dGVzdDwvaDE+YAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4geworICAgICAgaWZyYW1lLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSk7CisgICAgY29uc3QgbmF2aWdhdG9yID0g
aWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAg
ICBjb25zdCBnYW1lcGFkcyA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgIGFzc2VydF90
cnVlKEFycmF5LmlzQXJyYXkoZ2FtZXBhZHMpLCAnZ2V0R2FtZXBhZHMgc2hvdWxkIHJldHVybiBh
biBhcnJheScpOworICAgIGFzc2VydF9lcXVhbHMoZ2FtZXBhZHMubGVuZ3RoLCAwLCAiTm8gZ2Ft
ZXBhZHMgc2hvdWxkIGJlIGF2YWlsYWJsZSIpOworICB9LCAiY2FsbGluZyBnZXRHYW1lcGFkcygp
IGluIGEgbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVudCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFmYTIyOTEzMTZkMjllOTQzZjIx
ZTNjNTc0YmM1MDBlNzg5MGM5MTcuLmIwNTAxZGJmNjUxZWYzZjBmNGQ5M2E2MDAwMjY0Yjk0Mzk4
NTliZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
ODgsNiArMzg4LDcgQEAgZmFzdC9mb3Jtcy9maWxlL29wZW4tZmlsZS1wYW5lbC5odG1sIFsgU2tp
cCBdCiAjIEVOQUJMRV9HQU1FUEFEIG5vdCBlbmFibGVkLgogZ2FtZXBhZC8gWyBTa2lwIF0KIGh0
dHAvdGVzdHMvbWlzYy9nYW1lcGFkcy1pbnNlY3VyZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3Rz
L2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbCAgWyBTa2lwIF0KIAog
IyBUT0RPIFVzZXJzY3JpcHRzIHN0dWZmIGlzIG5vdCBpbXBsZW1lbnRlZAogd2Via2l0Lm9yZy9i
LzE0MDI1OCB1c2Vyc2NyaXB0cy8gWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444603</attachid>
            <date>2021-11-17 16:40:13 -0800</date>
            <delta_ts>2021-11-17 18:06:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230136-20211118114012.patch</filename>
            <type>text/plain</type>
            <size>21275</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUyNDdhYmQ5N2Y0MDY5
ZjE0NTg4NGY4MjA0NGQ1N2YxNTlmMTkxMC4uNTE1ZTgxNWVlODRiODVkNzY1NTU0YWU0MGJmODgz
NDEzZDU0MTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE2ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRk
IHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmln
YXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZWF0dXJlUG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5
OjphbGxvd3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5oOgorCiAyMDIx
LTExLTE2ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBUZXh0RGVjb3JhdGlvbiB0byBUZXh0RGVjb3JhdGlvbkxpbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRs
CmluZGV4IGRkMTI2NmJmYWVmZTkzMzk1NzE5MmY3NWViNWQwZjMxN2U4NDdlMWMuLjUwZThhZmVl
NTYzMTA0N2NhMzgzMzdiMzQ0YjA0NmVhNjA2YjExMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbApAQCAtMjgsNiArMjgs
NiBAQAogICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgSW1wbGVtZW50ZWRCeT1OYXZpZ2F0
b3JHYW1lcGFkCiBdIHBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0VuYWJsZWRC
eVNldHRpbmc9R2FtZXBhZHNFbmFibGVkXSBzZXF1ZW5jZTxHYW1lcGFkPiBnZXRHYW1lcGFkcygp
OworICAgIFtFbmFibGVkQnlTZXR0aW5nPUdhbWVwYWRzRW5hYmxlZCwgQ2FsbFdpdGg9RG9jdW1l
bnRdIHNlcXVlbmNlPEdhbWVwYWQ+IGdldEdhbWVwYWRzKCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKaW5kZXggNzgx
ZjE2ZjY4MDI2MGUzMDJlYTk2ODBhNTljZDNhZmVkOTQxODU3MC4uYmYzMDkzNGZlMGFmZTQ0ZWU2
OTAzNWQ5YzBkZTAwNDM1MzA4MGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lmIEVO
QUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAjaW5jbHVkZSAiR2FtZXBhZC5oIgog
I2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVyLmgi
CkBAIC03MiwyMSArNzQsMjEgQEAgUmVmPEdhbWVwYWQ+IE5hdmlnYXRvckdhbWVwYWQ6OmdhbWVw
YWRGcm9tUGxhdGZvcm1HYW1lcGFkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGYKICAgICByZXR1cm4g
Km1fZ2FtZXBhZHNbaW5kZXhdOwogfQogCi1jb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiYg
TmF2aWdhdG9yR2FtZXBhZDo6Z2V0R2FtZXBhZHMoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCitFeGNl
cHRpb25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiY+IE5hdmlnYXRvckdhbWVwYWQ6
OmdldEdhbWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgYXV0byogZG9tV2luZG93ID0gbmF2aWdhdG9yLndpbmRvdygpOwotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGRvbVdpbmRvdyA/IGRvbVdpbmRvdy0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7
Ci0gICAgaWYgKCFkb2N1bWVudCkgeworICAgIGlmICghZG9jdW1lbnQuaXNGdWxseUFjdGl2ZSgp
KSB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+
Pj4gZW1wdHlHYW1lcGFkczsKLSAgICAgICAgcmV0dXJuIGVtcHR5R2FtZXBhZHM7CisgICAgICAg
IHJldHVybiB7IGVtcHR5R2FtZXBhZHMuZ2V0KCkgfTsKICAgICB9CiAKLSAgICBpZiAoIWRvY3Vt
ZW50LT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgIGlmICghaXNGZWF0dXJlUG9saWN5QWxsb3dl
ZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6R2FtZXBhZCwgZG9j
dW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpZZXMpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxv
d2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBG
ZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkiX3MgfTsKKworICAgIGlmICghZG9jdW1lbnQuaXNTZWN1
cmVDb250ZXh0KCkpIHsKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwot
ICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW2RvY3VtZW50XSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1lcGFkcygpIHdpbGwgYmUgcmVt
b3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJlIHJlbGVhc2UiX3MpOworICAg
ICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZkb2N1bWVudF0geworICAgICAgICAgICAg
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1lcGFkcygpIHdpbGwgYmUgcmVtb3Zl
ZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJlIHJlbGVhc2UiX3MpOwogICAgICAg
ICB9KTsKLQogICAgIH0KIAogICAgIHJldHVybiBOYXZpZ2F0b3JHYW1lcGFkOjpmcm9tKCZuYXZp
Z2F0b3IpLT5nYW1lcGFkcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
YW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBh
ZC9OYXZpZ2F0b3JHYW1lcGFkLmgKaW5kZXggMmNjZGJmZjMwNTljYzI3ZjgwYTVkYWYxNDRkOTMy
Njc5NDE1ZmE2Zi4uYjcwYjg2MDhiNGE3MGEyZDUzODhkYWEzMDM1N2NhOTVlYThkZjM5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5o
CkBAIC0yNywxMSArMjcsMTMgQEAKIAogI2lmIEVOQUJMRShHQU1FUEFEKQogCisjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIEdhbWVwYWQ7CiBjbGFzcyBOYXZpZ2F0b3I7CiBjbGFzcyBQbGF0Zm9ybUdhbWVwYWQ7CkBA
IC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBhcnJheSBvZiBHYW1lcGFkcyBt
aWdodCBiZSBzcGFyc2UuCiAgICAgLy8gTnVsbCBjaGVja2luZyBlYWNoIGVudHJ5IGlzIG5lY2Vz
c2FyeS4KLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1lcGFkPj4mIGdldEdhbWVw
YWRzKE5hdmlnYXRvciYpOworICAgIHN0YXRpYyBFeGNlcHRpb25Pcjxjb25zdCBWZWN0b3I8UmVm
UHRyPEdhbWVwYWQ+PiY+IGdldEdhbWVwYWRzKE5hdmlnYXRvciYsIERvY3VtZW50Jik7CiAKICAg
ICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFkJik7CiAgICAgdm9pZCBnYW1l
cGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVy
ZVBvbGljeS5jcHAKaW5kZXggNTYwMGNhMWFiYjA0Yjk0YmJmZmM0ZmVkNTA0MzViMTM0NTI5NjNl
Ni4uMjZkNDM1NzhiYTVhOTAwZDI3OGUyNzFkMjNjOGE4ZmY0MDBlMjM4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCkBAIC00OSw2ICs0OSw4IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBwb2xpY3lUeXBlTmFtZShGZWF0dXJlUG9saWN5OjpUeXBlIHR5cGUpCiAgICAgICAgIHJl
dHVybiAiU3BlYWtlclNlbGVjdGlvbiI7CiAgICAgY2FzZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpE
aXNwbGF5Q2FwdHVyZToKICAgICAgICAgcmV0dXJuICJEaXNwbGF5Q2FwdHVyZSI7CisgICAgY2Fz
ZSBGZWF0dXJlUG9saWN5OjpUeXBlOjpHYW1lcGFkOgorICAgICAgICByZXR1cm4gIkdhbWVwYWQi
OwogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6R2VvbG9jYXRpb246CiAgICAgICAgIHJl
dHVybiAiR2VvbG9jYXRpb24iOwogICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6UGF5bWVu
dDoKQEAgLTE3NCw2ICsxNzYsNyBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNl
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmCiAgICAgYm9vbCBp
c01pY3JvcGhvbmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNTcGVha2VyU2VsZWN0
aW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzRGlzcGxheUNhcHR1cmVJbml0aWFs
aXplZCA9IGZhbHNlOworICAgIGJvb2wgaXNHYW1lcGFkSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAg
ICBib29sIGlzR2VvbG9jYXRpb25Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNQYXlt
ZW50SW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0g
ZmFsc2U7CkBAIC0yMDksNiArMjEyLDExIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6
cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICAg
ICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZSwg
aXRlbS5zdWJzdHJpbmcoMTYpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Cisg
ICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImdhbWVwYWQiKSkgeworICAgICAgICAgICAgaXNH
YW1lcGFkSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVu
dCwgcG9saWN5Lm1fZ2FtZXBhZFJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDgpKTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImdlb2xv
Y2F0aW9uIikpIHsKICAgICAgICAgICAgIGlzR2VvbG9jYXRpb25Jbml0aWFsaXplZCA9IHRydWU7
CiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3kubV9nZW9sb2NhdGlvblJ1
bGUsIGl0ZW0uc3Vic3RyaW5nKDEyKSk7CkBAIC0yNjksNiArMjc3LDggQEAgRmVhdHVyZVBvbGlj
eSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJh
bWVFbGVtZW50JgogICAgICAgICBwb2xpY3kubV9zcGVha2VyU2VsZWN0aW9uUnVsZS5hbGxvd2Vk
TGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNE
aXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVy
ZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsK
KyAgICBpZiAoIWlzR2FtZXBhZEluaXRpYWxpemVkKQorICAgICAgICBwb2xpY3kubV9nYW1lcGFk
UnVsZS50eXBlID0gRmVhdHVyZVBvbGljeTo6QWxsb3dSdWxlOjpUeXBlOjpBbGw7CiAgICAgaWYg
KCFpc0dlb2xvY2F0aW9uSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2dlb2xvY2F0aW9u
UnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwog
ICAgIGlmICghaXNQYXltZW50SW5pdGlhbGl6ZWQpCkBAIC0zMjAsNiArMzMwLDggQEAgYm9vbCBG
ZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeSht
X3NwZWFrZXJTZWxlY3Rpb25SdWxlLCBvcmlnaW4pOwogICAgIGNhc2UgVHlwZTo6RGlzcGxheUNh
cHR1cmU6CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9kaXNwbGF5
Q2FwdHVyZVJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBlOjpHYW1lcGFkOgorICAgICAgICBy
ZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZ2FtZXBhZFJ1bGUsIG9yaWdpbik7CiAg
ICAgY2FzZSBUeXBlOjpHZW9sb2NhdGlvbjoKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVh
dHVyZVBvbGljeShtX2dlb2xvY2F0aW9uUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OlBh
eW1lbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCmluZGV4IGU2NDBmOGE1ZDcyM2Rl
MDFlOWE2NGI1MTA2NjZiOTNhNjc5N2E3OTIuLmVkOWIzYTlmNmE2ZDg4ZTFmNDAwZjQxZjk0ZTk5
MGMzZGJmM2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGlj
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oCkBAIC00Myw2ICs0
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgTWljcm9waG9uZSwKICAgICAgICAgU3BlYWtlclNlbGVj
dGlvbiwKICAgICAgICAgRGlzcGxheUNhcHR1cmUsCisgICAgICAgIEdhbWVwYWQsCiAgICAgICAg
IEdlb2xvY2F0aW9uLAogICAgICAgICBQYXltZW50LAogICAgICAgICBTeW5jWEhSLApAQCAtNzAs
NiArNzEsNyBAQCBwcml2YXRlOgogICAgIEFsbG93UnVsZSBtX21pY3JvcGhvbmVSdWxlOwogICAg
IEFsbG93UnVsZSBtX3NwZWFrZXJTZWxlY3Rpb25SdWxlOwogICAgIEFsbG93UnVsZSBtX2Rpc3Bs
YXlDYXB0dXJlUnVsZTsKKyAgICBBbGxvd1J1bGUgbV9nYW1lcGFkUnVsZTsKICAgICBBbGxvd1J1
bGUgbV9nZW9sb2NhdGlvblJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fcGF5bWVudFJ1bGU7CiAgICAg
QWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODQ1N2EzMGViZWE2MDY2N2Q1OWQ4MWVj
MTVlNTZkNmJhZWQzYTJhYi4uMmMxZDMwYzJmODY5ODJjMmUwYTdiOTRlYTBhNjU3NjE1MThkNjg1
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTExLTE2ICBNYXJjb3MgQ2FjZXJlcyAgPG1h
cmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRkIHBlcm1pc3Npb24gcG9s
aWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJpYnV0ZS5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZ2FtZXBhZC9nYW1l
cGFkLWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbDogQWRkZWQuCisK
IDIwMjEtMTEtMTYgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVudXNlZCBgZG9udENyZWF0ZUlmTWlzc2luZ2Ag
YXJndW1lbnQgZnJvbSBDU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5wcm9wZXJ0eUZvck5h
bWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGIzOWJhNDdmODI5ODA3Y2Q3NDIy
MDFlZGZmZjhmYzUzNThhMzM0NzEuLjM0N2YzYzhkYzllMDcxYTk4YmZjOGIyYzZkMzYxZWU1ZGEy
YmNjYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTExLTE2ICBNYXJjb3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAg
ICBbR2FtZXBhZF0gYWRkIHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMuaHRtbDogQWRkZWQuCisK
IDIwMjEtMTEtMTYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3Nz
LWNvbnRhaW5dIFN1cHBvcnQgY29udGFpbjpwYWludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJp
YnV0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGEwZjM1MWI0NGY3NzRiNzEzYTU5
N2JiODBhNWExYWI3MzUzM2E4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJpYnV0ZS5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorQ09OU09MRSBNRVNTQUdFOiBGZWF0dXJlIHBvbGljeSAnR2FtZXBh
ZCcgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmlnaW4gJ2h0dHBzOi8vbG9jYWxob3N0
Ojg0NDMnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJ2dhbWVwYWQgJ25vbmUnJy4KK0NPTlNPTEUgTUVT
U0FHRTogRmVhdHVyZSBwb2xpY3kgJ0dhbWVwYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdp
dGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdn
YW1lcGFkICdub25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1lcGFk
JyBjaGVjayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cHM6Ly9sb2NhbGhvc3Q6
ODQ0MycgYW5kIGFsbG93IGF0dHJpYnV0ZSAnZ2FtZXBhZCAnc2VsZicnLgorQ09OU09MRSBNRVNT
QUdFOiBGZWF0dXJlIHBvbGljeSAnR2FtZXBhZCcgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0
aCBvcmlnaW4gJ2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJ2dh
bWVwYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MycuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczov
L2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRt
bCIgd2l0aCBhbGxvdz0iIiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1Mg
aWZyYW1lIHNyYzogImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2Ft
ZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSIiIGlzIGFsbG93ZWQgdG8gY2FsbCBn
ZXRHYW1lcGFkcygpLgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9n
YW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9Imdh
bWVwYWQiIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpLgorUEFTUyBpZnJhbWUgc3Jj
OiAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3Rt
ZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQiIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRH
YW1lcGFkcygpLgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1l
cGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVw
YWQgKiIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1l
c3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCAqIiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0
R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2Ft
ZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSJnYW1l
cGFkICdub25lJyIgTVVTVCBOT1QgYmUgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuIFNl
Y3VyaXR5RXJyb3IgVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gY2FsbCBn
ZXRHYW1lcGFkcygpIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5
IChnYW1lcGFkKQorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9nYW1l
cGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVw
YWQgJ25vbmUnIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4gU2Vj
dXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byBjYWxsIGdl
dEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kg
KGdhbWVwYWQpCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL2dhbWVw
YWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBh
ZCAnc2VsZiciIE1VU1QgTk9UIGJlIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpLiBTZWN1
cml0eUVycm9yIFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0
R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAo
Z2FtZXBhZCkKK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBh
ZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFk
ICdzZWxmJyIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBz
cmM6ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9z
dG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCBodHRwczovL2xvY2FsaG9zdDo4NDQz
IiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2Fn
ZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMiIE1VU1Qg
Tk9UIGJlIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpLiBTZWN1cml0eUVycm9yIFRoaXJk
LXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxl
c3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0
cmlidXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBh
ZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmRmODZiOGJhZGYyZmY3
YTMwMGViNTRlNzI1OTMyNDc5ZTRlODkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwxMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0
aXRsZT4KKyAgICAgIFRlc3QgYWxsb3cgYXR0cmlidXRlIHdpdGggImdhbWVwYWQiIGFuZCBnZXRH
YW1lcGFkcygpIG1ldGhvZAorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIHRlc3RS
dW5uZXI/LmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXI/LndhaXRVbnRpbERvbmUoKTsK
KworICAgICAgZnVuY3Rpb24gd2FpdEZvcih0YXJnZXQsIGV2ZW50TmFtZSkgeworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgICB0YXJnZXQuYWRkRXZl
bnRMaXN0ZW5lcihldmVudE5hbWUsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICAgICAg
fSk7CisgICAgICB9CisKKyAgICAgIC8vIFVzZXMgJ2FsbCcgYXMgdGhlIHBlcm1pc3Npb25zIHBv
bGljeQorICAgICAgY29uc3QgaWZyYW1lRGV0YWlscyA9IFsKKyAgICAgICAgeworICAgICAgICAg
IGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2FsaG9zdDo4NDQz
L2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAi
Li9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCIsCisgICAgICAgICAgZW5hYmxlZDogInRy
dWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNv
dXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAor
ICAgICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgKiIsCisgICAg
ICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0
Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCAqIiwKKyAgICAgICAg
ICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2FtZXBhZC1w
b3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93
OiAiZ2FtZXBhZCAnbm9uZSciLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAg
ICAgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxs
b3c6ICJnYW1lcGFkICdub25lJyIsCisgICAgICAgICAgZW5hYmxlZDogImZhbHNlIiwKKyAgICAg
ICAgICBzcmM6ICIuL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1lcGFkICdzZWxmJyIsCisgICAg
ICAgICAgZW5hYmxlZDogImZhbHNlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2FsaG9z
dDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgJ3NlbGYnIiwKKyAg
ICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2Ft
ZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
IGFsbG93OiAiZ2FtZXBhZCBodHRwczovL2xvY2FsaG9zdDo4NDQzIiwKKyAgICAgICAgICBlbmFi
bGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1l
cGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgYWxsb3c6ICJnYW1lcGFkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMi
LAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJj
ZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgIF07CisKKyAg
ICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRJZnJhbWUoZGV0YWlscykgeworICAgICAgICBjb25zdCBp
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWYgKGRl
dGFpbHMuaGFzT3duUHJvcGVydHkoImFsbG93IikpIHsKKyAgICAgICAgICBpZnJhbWUuc2V0QXR0
cmlidXRlKCJhbGxvdyIsIGRldGFpbHMuYWxsb3cpOworICAgICAgICB9CisgICAgICAgIGlmcmFt
ZS5kYXRhc2V0LmVuYWJsZWQgPSBkZXRhaWxzLmVuYWJsZWQ7CisgICAgICAgIGlmcmFtZS5zcmMg
PSBkZXRhaWxzLnNyYzsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OworICAgICAgICBhd2FpdCB3YWl0Rm9yKGlmcmFtZSwgImxvYWQiKTsKKyAgICAgICAgcmV0dXJu
IGlmcmFtZTsKKyAgICAgIH0KKworICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKSB7Cisg
ICAgICAgIGZvciAoY29uc3QgZGV0YWlscyBvZiBpZnJhbWVEZXRhaWxzKSB7CisgICAgICAgICAg
Y29uc3QgaWZyYW1lID0gYXdhaXQgbG9hZElmcmFtZShkZXRhaWxzKTsKKyAgICAgICAgICBjb25z
dCB7IGVuYWJsZWQgfSA9IGlmcmFtZS5kYXRhc2V0OworICAgICAgICAgIGNvbnN0IGlzQWxsb3dl
ZCA9IGVuYWJsZWQgPT09ICJ0cnVlIjsKKyAgICAgICAgICBjb25zdCBhY3Rpb24gPSAiY2FsbCBn
ZXRHYW1lcGFkcygpIjsKKyAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2Fn
ZSh7IGFjdGlvbiB9LCAiKiIpOworICAgICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgd2Fp
dEZvcih3aW5kb3csICJtZXNzYWdlIik7CisgICAgICAgICAgY29uc3QgeyBleGNlcHRpb25NZXNz
YWdlLCBleGNlcHRpb25OYW1lLCByZXN1bHQgfSA9IGRhdGE7CisgICAgICAgICAgY29uc3QgbXNn
ID0gYGlmcmFtZSBzcmM6ICIke2lmcmFtZS5zcmN9IiB3aXRoIGFsbG93PSIkeworICAgICAgICAg
ICAgaWZyYW1lLmFsbG93CisgICAgICAgICAgfSIgJHsKKyAgICAgICAgICAgIGlzQWxsb3dlZCA/
ICJpcyBhbGxvd2VkIHRvIiA6ICJNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIgorICAgICAgICAgIH0g
JHthY3Rpb259LiAke2V4Y2VwdGlvbk5hbWUgPz8gIiJ9ICR7ZXhjZXB0aW9uTWVzc2FnZSA/PyAi
In1gOworICAgICAgICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgICAgICAgICBjYXNlICJbXSI6
CisgICAgICAgICAgICAgIGlzQWxsb3dlZCA/IHRlc3RQYXNzZWQobXNnKSA6IHRlc3RGYWlsZWQo
bXNnKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJleGNlcHRpb24i
OgorICAgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgIWlzQWxsb3dlZCAmJgorICAg
ICAgICAgICAgICAgIGV4Y2VwdGlvbk5hbWUgPT09ICJTZWN1cml0eUVycm9yIiAmJgorICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2UuZW5kc1dpdGgoIkZlYXR1cmUtUG9saWN5IChnYW1l
cGFkKSIpCisgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQobXNn
KTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1z
Zyk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1zZyArIGAgLSByZXN1bHQgd2FzOiAk
e3Jlc3VsdH1gKTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAg
ICAgICB9CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dh
bWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9y
ZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OTk0ZWI2ZjQ4
MzNiZmZmNmQ1MTIzYWI2ODk2YjVjZGNjNjcxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRt
bApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
IiAvPgorPG1ldGEgdmlld3BvcnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
LjAiIC8+Cis8Ym9keT4KKyAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigK
KyAgICAgICJtZXNzYWdlIiwKKyAgICAgIChldmVudCkgPT4geworICAgICAgICBjb25zdCB7IGFj
dGlvbiB9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7CisgICAgICAg
IGxldCBleGNlcHRpb25NZXNzYWdlOworICAgICAgICBsZXQgZXhjZXB0aW9uTmFtZTsKKyAgICAg
ICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgICBjYXNlICJjYWxsIGdldEdhbWVwYWRzKCki
OgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgcmVzdWx0ID0gbmF2aWdhdG9yLmdl
dEdhbWVwYWRzKCk7CisgICAgICAgICAgICAgIHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHJlc3Vs
dCk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIGV4Y2VwdGlvbk1l
c3NhZ2UgPSBlLm1lc3NhZ2U7CisgICAgICAgICAgICAgIGV4Y2VwdGlvbk5hbWUgPSBlLm5hbWU7
CisgICAgICAgICAgICAgIHJlc3VsdCA9ICJleGNlcHRpb24iOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihgVW5rbm93biBhY3Rpb246ICR7YWN0aW9ufWApOworICAgICAgICB9CisgICAgICAg
IGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgKKyAgICAgICAgICB7IGFjdGlvbiwgcmVzdWx0LCBl
eGNlcHRpb25NZXNzYWdlLCBleGNlcHRpb25OYW1lIH0sCisgICAgICAgICAgZXZlbnQub3JpZ2lu
CisgICAgICAgICk7CisgICAgICB9LAorICAgICAgeyBvbmNlOiB0cnVlIH0KKyAgICApOworICA8
L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3Rp
dmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5YzQxYmJhM2E4MmQ4ZTU3Mzg3MmU3
ZTU3MTNiZTQ4OWVkMmVlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGNhbGxpbmcgZ2V0R2FtZXBhZHMoKSBpbiBhIG5v
bi1mdWxseS1hY3RpdmUgZG9jdW1lbnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3Rp
dmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDBhZmVmM2QyZGViMjljMDg3ZGUwYmI3MDg5MDRh
Y2U4MTc5OGM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwy
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzx0aXRsZT5H
YW1lcGFkIHRlc3RzIGZvciBub24tZnVsbHktYWN0aXZlIGRvY3VtZW50PC90aXRsZT4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBjb25zdCBpZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBpZnJhbWUuc3JjZG9jID0gYDxo
MT50ZXN0PC9oMT5gCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBp
ZnJhbWUub25sb2FkID0gcmVzb2x2ZTsKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKKyAgICB9KTsKKyAgICBjb25zdCBuYXZpZ2F0b3IgPSBpZnJhbWUuY29udGVudFdp
bmRvdy5uYXZpZ2F0b3I7CisgICAgaWZyYW1lLnJlbW92ZSgpOworICAgIGNvbnN0IGdhbWVwYWRz
ID0gbmF2aWdhdG9yLmdldEdhbWVwYWRzKCk7CisgICAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJh
eShnYW1lcGFkcyksICdnZXRHYW1lcGFkcyBzaG91bGQgcmV0dXJuIGFuIGFycmF5Jyk7CisgICAg
YXNzZXJ0X2VxdWFscyhnYW1lcGFkcy5sZW5ndGgsIDAsICJObyBnYW1lcGFkcyBzaG91bGQgYmUg
YXZhaWxhYmxlIik7CisgIH0sICJjYWxsaW5nIGdldEdhbWVwYWRzKCkgaW4gYSBub24tZnVsbHkt
YWN0aXZlIGRvY3VtZW50Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYWZhMjI5MTMxNmQyOWU5NDNmMjFlM2M1NzRiYzUwMGU3ODkw
YzkxNy4uYjA1MDFkYmY2NTFlZjNmMGY0ZDkzYTYwMDAyNjRiOTQzOTg1OWJlYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM4OCw2ICszODgsNyBAQCBm
YXN0L2Zvcm1zL2ZpbGUvb3Blbi1maWxlLXBhbmVsLmh0bWwgWyBTa2lwIF0KICMgRU5BQkxFX0dB
TUVQQUQgbm90IGVuYWJsZWQuCiBnYW1lcGFkLyBbIFNraXAgXQogaHR0cC90ZXN0cy9taXNjL2dh
bWVwYWRzLWluc2VjdXJlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFk
LWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sICBbIFNraXAgXQogCiAjIFRPRE8gVXNlcnNjcmlw
dHMgc3R1ZmYgaXMgbm90IGltcGxlbWVudGVkCiB3ZWJraXQub3JnL2IvMTQwMjU4IHVzZXJzY3Jp
cHRzLyBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444622</attachid>
            <date>2021-11-17 18:07:06 -0800</date>
            <delta_ts>2021-11-17 18:07:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230136-20211118130704.patch</filename>
            <type>text/plain</type>
            <size>21297</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUyNDdhYmQ5N2Y0MDY5
ZjE0NTg4NGY4MjA0NGQ1N2YxNTlmMTkxMC4uNTE1ZTgxNWVlODRiODVkNzY1NTU0YWU0MGJmODgz
NDEzZDU0MTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE2ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbR2FtZXBhZF0gYWRk
IHBlcm1pc3Npb24gcG9saWN5IGludGVncmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQt
YWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmln
YXRvckdhbWVwYWQ6OmdldEdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5oOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwb2xpY3lUeXBlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGZWF0dXJlUG9saWN5OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlUG9saWN5
OjphbGxvd3MgY29uc3QpOgorICAgICAgICAqIGh0bWwvRmVhdHVyZVBvbGljeS5oOgorCiAyMDIx
LTExLTE2ICBOaWtvbGFvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBUZXh0RGVjb3JhdGlvbiB0byBUZXh0RGVjb3JhdGlvbkxpbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yK0dhbWVwYWQuaWRs
CmluZGV4IGRkMTI2NmJmYWVmZTkzMzk1NzE5MmY3NWViNWQwZjMxN2U4NDdlMWMuLjUwZThhZmVl
NTYzMTA0N2NhMzgzMzdiMzQ0YjA0NmVhNjA2YjExMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3IrR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvcitHYW1lcGFkLmlkbApAQCAtMjgsNiArMjgs
NiBAQAogICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgSW1wbGVtZW50ZWRCeT1OYXZpZ2F0
b3JHYW1lcGFkCiBdIHBhcnRpYWwgaW50ZXJmYWNlIE5hdmlnYXRvciB7Ci0gICAgW0VuYWJsZWRC
eVNldHRpbmc9R2FtZXBhZHNFbmFibGVkXSBzZXF1ZW5jZTxHYW1lcGFkPiBnZXRHYW1lcGFkcygp
OworICAgIFtFbmFibGVkQnlTZXR0aW5nPUdhbWVwYWRzRW5hYmxlZCwgQ2FsbFdpdGg9RG9jdW1l
bnRdIHNlcXVlbmNlPEdhbWVwYWQ+IGdldEdhbWVwYWRzKCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKaW5kZXggNzgx
ZjE2ZjY4MDI2MGUzMDJlYTk2ODBhNTljZDNhZmVkOTQxODU3MC4uYmYzMDkzNGZlMGFmZTQ0ZWU2
OTAzNWQ5YzBkZTAwNDM1MzA4MGI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lmIEVO
QUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAjaW5jbHVkZSAiR2FtZXBhZC5oIgog
I2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVyLmgi
CkBAIC03MiwyMSArNzQsMjEgQEAgUmVmPEdhbWVwYWQ+IE5hdmlnYXRvckdhbWVwYWQ6OmdhbWVw
YWRGcm9tUGxhdGZvcm1HYW1lcGFkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGYKICAgICByZXR1cm4g
Km1fZ2FtZXBhZHNbaW5kZXhdOwogfQogCi1jb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiYg
TmF2aWdhdG9yR2FtZXBhZDo6Z2V0R2FtZXBhZHMoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCitFeGNl
cHRpb25Pcjxjb25zdCBWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+PiY+IE5hdmlnYXRvckdhbWVwYWQ6
OmdldEdhbWVwYWRzKE5hdmlnYXRvciYgbmF2aWdhdG9yLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgYXV0byogZG9tV2luZG93ID0gbmF2aWdhdG9yLndpbmRvdygpOwotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGRvbVdpbmRvdyA/IGRvbVdpbmRvdy0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7
Ci0gICAgaWYgKCFkb2N1bWVudCkgeworICAgIGlmICghZG9jdW1lbnQuaXNGdWxseUFjdGl2ZSgp
KSB7CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVmUHRyPEdhbWVwYWQ+
Pj4gZW1wdHlHYW1lcGFkczsKLSAgICAgICAgcmV0dXJuIGVtcHR5R2FtZXBhZHM7CisgICAgICAg
IHJldHVybiB7IGVtcHR5R2FtZXBhZHMuZ2V0KCkgfTsKICAgICB9CiAKLSAgICBpZiAoIWRvY3Vt
ZW50LT5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgIGlmICghaXNGZWF0dXJlUG9saWN5QWxsb3dl
ZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6R2FtZXBhZCwgZG9j
dW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpZZXMpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxv
d2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBG
ZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkiX3MgfTsKKworICAgIGlmICghZG9jdW1lbnQuaXNTZWN1
cmVDb250ZXh0KCkpIHsKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwot
ICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW2RvY3VtZW50XSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1lcGFkcygpIHdpbGwgYmUgcmVt
b3ZlZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJlIHJlbGVhc2UiX3MpOworICAg
ICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZkb2N1bWVudF0geworICAgICAgICAgICAg
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIk5hdmlnYXRvci5nZXRHYW1lcGFkcygpIHdpbGwgYmUgcmVtb3Zl
ZCBmcm9tIGluc2VjdXJlIGNvbnRleHRzIGluIGEgZnV0dXJlIHJlbGVhc2UiX3MpOwogICAgICAg
ICB9KTsKLQogICAgIH0KIAogICAgIHJldHVybiBOYXZpZ2F0b3JHYW1lcGFkOjpmcm9tKCZuYXZp
Z2F0b3IpLT5nYW1lcGFkcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
YW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBh
ZC9OYXZpZ2F0b3JHYW1lcGFkLmgKaW5kZXggMmNjZGJmZjMwNTljYzI3ZjgwYTVkYWYxNDRkOTMy
Njc5NDE1ZmE2Zi4uZmNlYWM0ZjE4ZTE1NWEwNjU5YTNiYTQyOTgzNzc2N2M4Yjc2NzNmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5o
CkBAIC0zMiw5ICszMiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3Vt
ZW50OwogY2xhc3MgR2FtZXBhZDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNsYXNzIFBsYXRmb3JtR2Ft
ZXBhZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgTmF2
aWdhdG9yR2FtZXBhZCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDYsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBU
aGUgYXJyYXkgb2YgR2FtZXBhZHMgbWlnaHQgYmUgc3BhcnNlLgogICAgIC8vIE51bGwgY2hlY2tp
bmcgZWFjaCBlbnRyeSBpcyBuZWNlc3NhcnkuCi0gICAgc3RhdGljIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8R2FtZXBhZD4+JiBnZXRHYW1lcGFkcyhOYXZpZ2F0b3ImKTsKKyAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8Y29uc3QgVmVjdG9yPFJlZlB0cjxHYW1lcGFkPj4mPiBnZXRHYW1lcGFkcyhOYXZpZ2F0
b3ImLCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2Ft
ZXBhZCYpOwogICAgIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuY3BwCmluZGV4IDU2MDBjYTFhYmIwNGI5NGJi
ZmZjNGZlZDUwNDM1YjEzNDUyOTYzZTYuLjI2ZDQzNTc4YmE1YTkwMGQyNzhlMjcxZDIzYzhhOGZm
NDAwZTIzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmNwcApAQCAtNDksNiAr
NDksOCBAQCBzdGF0aWMgY29uc3QgY2hhciogcG9saWN5VHlwZU5hbWUoRmVhdHVyZVBvbGljeTo6
VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gIlNwZWFrZXJTZWxlY3Rpb24iOwogICAgIGNhc2Ug
RmVhdHVyZVBvbGljeTo6VHlwZTo6RGlzcGxheUNhcHR1cmU6CiAgICAgICAgIHJldHVybiAiRGlz
cGxheUNhcHR1cmUiOworICAgIGNhc2UgRmVhdHVyZVBvbGljeTo6VHlwZTo6R2FtZXBhZDoKKyAg
ICAgICAgcmV0dXJuICJHYW1lcGFkIjsKICAgICBjYXNlIEZlYXR1cmVQb2xpY3k6OlR5cGU6Okdl
b2xvY2F0aW9uOgogICAgICAgICByZXR1cm4gIkdlb2xvY2F0aW9uIjsKICAgICBjYXNlIEZlYXR1
cmVQb2xpY3k6OlR5cGU6OlBheW1lbnQ6CkBAIC0xNzQsNiArMTc2LDcgQEAgRmVhdHVyZVBvbGlj
eSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJh
bWVFbGVtZW50JgogICAgIGJvb2wgaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAg
ICBib29sIGlzU3BlYWtlclNlbGVjdGlvbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBp
c0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzR2FtZXBhZElu
aXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0dlb2xvY2F0aW9uSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKICAgICBib29sIGlzUGF5bWVudEluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBp
c1N5bmNYSFJJbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMjA5LDYgKzIxMiwxMSBAQCBGZWF0dXJl
UG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRN
TElGcmFtZUVsZW1lbnQmCiAgICAgICAgICAgICB1cGRhdGVMaXN0KGRvY3VtZW50LCBwb2xpY3ku
bV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDE2KSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJnYW1lcGFk
IikpIHsKKyAgICAgICAgICAgIGlzR2FtZXBhZEluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2dhbWVwYWRSdWxlLCBpdGVtLnN1YnN0
cmluZyg4KSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICBpZiAo
aXRlbS5zdGFydHNXaXRoKCJnZW9sb2NhdGlvbiIpKSB7CiAgICAgICAgICAgICBpc0dlb2xvY2F0
aW9uSW5pdGlhbGl6ZWQgPSB0cnVlOwogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwg
cG9saWN5Lm1fZ2VvbG9jYXRpb25SdWxlLCBpdGVtLnN1YnN0cmluZygxMikpOwpAQCAtMjY5LDYg
KzI3Nyw4IEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYKICAgICAgICAgcG9saWN5Lm1fc3BlYWtl
clNlbGVjdGlvblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKICAgICBpZiAoIWlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCkKICAgICAgICAg
cG9saWN5Lm1fZGlzcGxheUNhcHR1cmVSdWxlLmFsbG93ZWRMaXN0LmFkZChkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLmRhdGEoKSk7CisgICAgaWYgKCFpc0dhbWVwYWRJbml0aWFsaXplZCkKKyAg
ICAgICAgcG9saWN5Lm1fZ2FtZXBhZFJ1bGUudHlwZSA9IEZlYXR1cmVQb2xpY3k6OkFsbG93UnVs
ZTo6VHlwZTo6QWxsOwogICAgIGlmICghaXNHZW9sb2NhdGlvbkluaXRpYWxpemVkKQogICAgICAg
ICBwb2xpY3kubV9nZW9sb2NhdGlvblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCkuZGF0YSgpKTsKICAgICBpZiAoIWlzUGF5bWVudEluaXRpYWxpemVkKQpAQCAt
MzIwLDYgKzMzMCw4IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3kobV9zcGVha2VyU2VsZWN0aW9uUnVsZSwgb3JpZ2luKTsKICAg
ICBjYXNlIFR5cGU6OkRpc3BsYXlDYXB0dXJlOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlG
ZWF0dXJlUG9saWN5KG1fZGlzcGxheUNhcHR1cmVSdWxlLCBvcmlnaW4pOworICAgIGNhc2UgVHlw
ZTo6R2FtZXBhZDoKKyAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2dh
bWVwYWRSdWxlLCBvcmlnaW4pOwogICAgIGNhc2UgVHlwZTo6R2VvbG9jYXRpb246CiAgICAgICAg
IHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9nZW9sb2NhdGlvblJ1bGUsIG9yaWdp
bik7CiAgICAgY2FzZSBUeXBlOjpQYXltZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GZWF0dXJlUG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3ku
aAppbmRleCBlNjQwZjhhNWQ3MjNkZTAxZTlhNjRiNTEwNjY2YjkzYTY3OTdhNzkyLi5lZDliM2E5
ZjZhNmQ4OGUxZjQwMGY0MWY5NGU5OTBjM2RiZjNkOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1
cmVQb2xpY3kuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIE1pY3JvcGhvbmUs
CiAgICAgICAgIFNwZWFrZXJTZWxlY3Rpb24sCiAgICAgICAgIERpc3BsYXlDYXB0dXJlLAorICAg
ICAgICBHYW1lcGFkLAogICAgICAgICBHZW9sb2NhdGlvbiwKICAgICAgICAgUGF5bWVudCwKICAg
ICAgICAgU3luY1hIUiwKQEAgLTcwLDYgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUg
bV9taWNyb3Bob25lUnVsZTsKICAgICBBbGxvd1J1bGUgbV9zcGVha2VyU2VsZWN0aW9uUnVsZTsK
ICAgICBBbGxvd1J1bGUgbV9kaXNwbGF5Q2FwdHVyZVJ1bGU7CisgICAgQWxsb3dSdWxlIG1fZ2Ft
ZXBhZFJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fZ2VvbG9jYXRpb25SdWxlOwogICAgIEFsbG93UnVs
ZSBtX3BheW1lbnRSdWxlOwogICAgIEFsbG93UnVsZSBtX3N5bmNYSFJSdWxlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg0
NTdhMzBlYmVhNjA2NjdkNTlkODFlYzE1ZTU2ZDZiYWVkM2EyYWIuLjJjMWQzMGMyZjg2OTgyYzJl
MGE3Yjk0ZWEwYTY1NzYxNTE4ZDY4NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMS0x
NiAgTWFyY29zIENhY2VyZXMgIDxtYXJjb3NAbWFyY29zYy5jb20+CisKKyAgICAgICAgW0dhbWVw
YWRdIGFkZCBwZXJtaXNzaW9uIHBvbGljeSBpbnRlZ3JhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBh
ZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3Rt
ZXNzYWdlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTE2ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFz
aWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQg
YGRvbnRDcmVhdGVJZk1pc3NpbmdgIGFyZ3VtZW50IGZyb20gQ1NTU3R5bGVEZWNsYXJhdGlvbi5w
cm90b3R5cGUucHJvcGVydHlGb3JOYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCBiMzliYTQ3ZjgyOTgwN2NkNzQyMjAxZWRmZmY4ZmM1MzU4YTMzNDcxLi4zNDdmM2M4ZGM5ZTA3
MWE5OGJmYzhiMmM2ZDM2MWVlNWRhMmJjY2E3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMS0xNiAgTWFyY29zIENhY2VyZXMgIDxtYXJjb3NA
bWFyY29zYy5jb20+CisKKyAgICAgICAgW0dhbWVwYWRdIGFkZCBwZXJtaXNzaW9uIHBvbGljeSBp
bnRlZ3JhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMwMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHktYWN0aXZl
Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW2Nzcy1jb250YWluXSBTdXBwb3J0IGNvbnRhaW46cGFpbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0
dHJpYnV0ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVw
YWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBhMGYzNTFiNDRmNzc0YjcxM2E1OTdiYjgwYTVhMWFiNzM1MzNhODMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1
dGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK0NPTlNPTEUgTUVTU0FHRTog
RmVhdHVyZSBwb2xpY3kgJ0dhbWVwYWQnIGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3Jp
Z2luICdodHRwczovL2xvY2FsaG9zdDo4NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFk
ICdub25lJycuCitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdHYW1lcGFkJyBjaGVj
ayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0Mycg
YW5kIGFsbG93IGF0dHJpYnV0ZSAnZ2FtZXBhZCAnbm9uZScnLgorQ09OU09MRSBNRVNTQUdFOiBG
ZWF0dXJlIHBvbGljeSAnR2FtZXBhZCcgY2hlY2sgZmFpbGVkIGZvciBpZnJhbWUgd2l0aCBvcmln
aW4gJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnIGFuZCBhbGxvdyBhdHRyaWJ1dGUgJ2dhbWVwYWQg
J3NlbGYnJy4KK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ0dhbWVwYWQnIGNoZWNr
IGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovLzEyNy4wLjAuMTo4NDQzJyBh
bmQgYWxsb3cgYXR0cmlidXRlICdnYW1lcGFkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMnLgorUEFT
UyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9n
YW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9IiIgaXMgYWxsb3dlZCB0byBjYWxs
IGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQz
L2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0i
IiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0
dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2Fn
ZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkIiBpcyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBh
ZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9y
ZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkIiBp
cyBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKS4KK1BBU1MgaWZyYW1lIHNyYzogImh0dHBz
Oi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5o
dG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkICoiIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFk
cygpLgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9nYW1lcGFkL3Jl
c291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgKiIg
aXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkuCitQQVNTIGlmcmFtZSBzcmM6ICJodHRw
czovL2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2Uu
aHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCAnbm9uZSciIE1VU1QgTk9UIGJlIGFsbG93ZWQgdG8g
Y2FsbCBnZXRHYW1lcGFkcygpLiBTZWN1cml0eUVycm9yIFRoaXJkLXBhcnR5IGlmcmFtZXMgYXJl
IG5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMoKSB1bmxlc3MgZXhwbGljaXRseSBhbGxv
d2VkIHZpYSBGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkKK1BBU1MgaWZyYW1lIHNyYzogImh0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5o
dG1sIiB3aXRoIGFsbG93PSJnYW1lcGFkICdub25lJyIgTVVTVCBOT1QgYmUgYWxsb3dlZCB0byBj
YWxsIGdldEdhbWVwYWRzKCkuIFNlY3VyaXR5RXJyb3IgVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUg
bm90IGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1lcGFkcygpIHVubGVzcyBleHBsaWNpdGx5IGFsbG93
ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChnYW1lcGFkKQorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6
Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0
bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQgJ3NlbGYnIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNh
bGwgZ2V0R2FtZXBhZHMoKS4gU2VjdXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBu
b3QgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dl
ZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKGdhbWVwYWQpCitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczov
LzEyNy4wLjAuMTo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRt
bCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCAnc2VsZiciIGlzIGFsbG93ZWQgdG8gY2FsbCBnZXRHYW1l
cGFkcygpLgorUEFTUyBpZnJhbWUgc3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFk
L3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwiIHdpdGggYWxsb3c9ImdhbWVwYWQg
aHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIgaXMgYWxsb3dlZCB0byBjYWxsIGdldEdhbWVwYWRzKCku
CitQQVNTIGlmcmFtZSBzcmM6ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2dhbWVwYWQvcmVzb3Vy
Y2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIgd2l0aCBhbGxvdz0iZ2FtZXBhZCBodHRwczov
L2xvY2FsaG9zdDo4NDQzIiBNVVNUIE5PVCBiZSBhbGxvd2VkIHRvIGNhbGwgZ2V0R2FtZXBhZHMo
KS4gU2VjdXJpdHlFcnJvciBUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byBj
YWxsIGdldEdhbWVwYWRzKCkgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Q
b2xpY3kgKGdhbWVwYWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2Ft
ZXBhZC9nYW1lcGFkLWFsbG93LWF0dHJpYnV0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9nYW1lcGFkL2dhbWVwYWQtYWxsb3ctYXR0cmlidXRlLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGZkZjg2YjhiYWRmMmZmN2EzMDBlYjU0ZTcyNTkzMjQ3OWU0ZTg5MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZ2FtZXBhZC9nYW1lcGFkLWFsbG93LWF0
dHJpYnV0ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGFsbG93IGF0dHJpYnV0ZSB3
aXRoICJnYW1lcGFkIiBhbmQgZ2V0R2FtZXBhZHMoKSBtZXRob2QKKyAgICA8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICB0ZXN0UnVubmVyPy5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVu
bmVyPy53YWl0VW50aWxEb25lKCk7CisKKyAgICAgIGZ1bmN0aW9uIHdhaXRGb3IodGFyZ2V0LCBl
dmVudE5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Cisg
ICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCByZXNvbHZlLCB7IG9u
Y2U6IHRydWUgfSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICAvLyBVc2VzICdhbGwn
IGFzIHRoZSBwZXJtaXNzaW9ucyBwb2xpY3kKKyAgICAgIGNvbnN0IGlmcmFtZURldGFpbHMgPSBb
CisgICAgICAgIHsKKyAgICAgICAgICBlbmFibGVkOiAidHJ1ZSIsCisgICAgICAgICAgc3JjOiAi
aHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNz
YWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZW5hYmxlZDogInRy
dWUiLAorICAgICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRt
bCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAor
ICAgICAgICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICJodHRwczovL2xvY2Fs
aG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQiLAorICAgICAg
ICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBzcmM6ICIuL3Jlc291cmNlcy9nYW1lcGFk
LXBvc3RtZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxs
b3c6ICJnYW1lcGFkICoiLAorICAgICAgICAgIGVuYWJsZWQ6ICJ0cnVlIiwKKyAgICAgICAgICBz
cmM6ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9z
dG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzog
ImdhbWVwYWQgKiIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzog
Ii4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgJ25vbmUnIiwKKyAgICAgICAgICBlbmFi
bGVkOiAiZmFsc2UiLAorICAgICAgICAgIHNyYzogImh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvZ2Ft
ZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCAnbm9uZSciLAorICAgICAgICAgIGVu
YWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAgc3JjOiAiLi9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0
bWVzc2FnZS5odG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAi
Z2FtZXBhZCAnc2VsZiciLAorICAgICAgICAgIGVuYWJsZWQ6ICJmYWxzZSIsCisgICAgICAgICAg
c3JjOiAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBv
c3RtZXNzYWdlLmh0bWwiLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgYWxsb3c6
ICJnYW1lcGFkICdzZWxmJyIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAg
IHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICBhbGxvdzogImdhbWVwYWQgaHR0cHM6Ly9sb2NhbGhvc3Q6
ODQ0MyIsCisgICAgICAgICAgZW5hYmxlZDogInRydWUiLAorICAgICAgICAgIHNyYzogImh0dHBz
Oi8vbG9jYWxob3N0Ojg0NDMvZ2FtZXBhZC9yZXNvdXJjZXMvZ2FtZXBhZC1wb3N0bWVzc2FnZS5o
dG1sIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGFsbG93OiAiZ2FtZXBhZCBo
dHRwczovL2xvY2FsaG9zdDo4NDQzIiwKKyAgICAgICAgICBlbmFibGVkOiAiZmFsc2UiLAorICAg
ICAgICAgIHNyYzogIi4vcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbCIsCisgICAg
ICAgIH0sCisgICAgICBdOworCisgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkSWZyYW1lKGRldGFp
bHMpIHsKKyAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgIGlmIChkZXRhaWxzLmhhc093blByb3BlcnR5KCJhbGxvdyIpKSB7Cisg
ICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCBkZXRhaWxzLmFsbG93KTsKKyAg
ICAgICAgfQorICAgICAgICBpZnJhbWUuZGF0YXNldC5lbmFibGVkID0gZGV0YWlscy5lbmFibGVk
OworICAgICAgICBpZnJhbWUuc3JjID0gZGV0YWlscy5zcmM7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihpZnJhbWUsICJs
b2FkIik7CisgICAgICAgIHJldHVybiBpZnJhbWU7CisgICAgICB9CisKKyAgICAgIGFzeW5jIGZ1
bmN0aW9uIHJ1blRlc3RzKCkgeworICAgICAgICBmb3IgKGNvbnN0IGRldGFpbHMgb2YgaWZyYW1l
RGV0YWlscykgeworICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGxvYWRJZnJhbWUoZGV0
YWlscyk7CisgICAgICAgICAgY29uc3QgeyBlbmFibGVkIH0gPSBpZnJhbWUuZGF0YXNldDsKKyAg
ICAgICAgICBjb25zdCBpc0FsbG93ZWQgPSBlbmFibGVkID09PSAidHJ1ZSI7CisgICAgICAgICAg
Y29uc3QgYWN0aW9uID0gImNhbGwgZ2V0R2FtZXBhZHMoKSI7CisgICAgICAgICAgaWZyYW1lLmNv
bnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoeyBhY3Rpb24gfSwgIioiKTsKKyAgICAgICAgICBjb25z
dCB7IGRhdGEgfSA9IGF3YWl0IHdhaXRGb3Iod2luZG93LCAibWVzc2FnZSIpOworICAgICAgICAg
IGNvbnN0IHsgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSwgcmVzdWx0IH0gPSBkYXRh
OworICAgICAgICAgIGNvbnN0IG1zZyA9IGBpZnJhbWUgc3JjOiAiJHtpZnJhbWUuc3JjfSIgd2l0
aCBhbGxvdz0iJHsKKyAgICAgICAgICAgIGlmcmFtZS5hbGxvdworICAgICAgICAgIH0iICR7Cisg
ICAgICAgICAgICBpc0FsbG93ZWQgPyAiaXMgYWxsb3dlZCB0byIgOiAiTVVTVCBOT1QgYmUgYWxs
b3dlZCB0byIKKyAgICAgICAgICB9ICR7YWN0aW9ufS4gJHtleGNlcHRpb25OYW1lID8/ICIifSAk
e2V4Y2VwdGlvbk1lc3NhZ2UgPz8gIiJ9YDsKKyAgICAgICAgICBzd2l0Y2ggKHJlc3VsdCkgewor
ICAgICAgICAgICAgY2FzZSAiW10iOgorICAgICAgICAgICAgICBpc0FsbG93ZWQgPyB0ZXN0UGFz
c2VkKG1zZykgOiB0ZXN0RmFpbGVkKG1zZyk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiZXhjZXB0aW9uIjoKKyAgICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAg
ICAgICFpc0FsbG93ZWQgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25OYW1lID09PSAiU2Vj
dXJpdHlFcnJvciIgJiYKKyAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlLmVuZHNXaXRo
KCJGZWF0dXJlLVBvbGljeSAoZ2FtZXBhZCkiKQorICAgICAgICAgICAgICApIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCht
c2cgKyBgIC0gcmVzdWx0IHdhczogJHtyZXN1bHR9YCk7CisgICAgICAgICAgfQorICAgICAgICAg
IGlmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9
InJ1blRlc3RzKCkiPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9nYW1lcGFkL3Jlc291cmNlcy9nYW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2dhbWVwYWQvcmVzb3VyY2VzL2dhbWVwYWQtcG9zdG1lc3NhZ2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNjk5NGViNmY0ODMzYmZmZjZkNTEyM2FiNjg5NmI1Y2RjYzY3MWRhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9nYW1lcGFkL3Jlc291cmNlcy9n
YW1lcGFkLXBvc3RtZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKzxtZXRhIHZpZXdwb3J0PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgorPGJvZHk+CisgIDxzY3JpcHQ+CisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAibWVzc2FnZSIsCisgICAgICAoZXZlbnQpID0+
IHsKKyAgICAgICAgY29uc3QgeyBhY3Rpb24gfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGxldCBy
ZXN1bHQgPSBudWxsOworICAgICAgICBsZXQgZXhjZXB0aW9uTWVzc2FnZTsKKyAgICAgICAgbGV0
IGV4Y2VwdGlvbk5hbWU7CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgICAgY2Fz
ZSAiY2FsbCBnZXRHYW1lcGFkcygpIjoKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
IHJlc3VsdCA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgICAgICAgICAgICByZXN1bHQg
PSBKU09OLnN0cmluZ2lmeShyZXN1bHQpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gZS5tZXNzYWdlOworICAgICAgICAgICAgICBl
eGNlcHRpb25OYW1lID0gZS5uYW1lOworICAgICAgICAgICAgICByZXN1bHQgPSAiZXhjZXB0aW9u
IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uOiAke2FjdGlvbn1g
KTsKKyAgICAgICAgfQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoCisgICAgICAg
ICAgeyBhY3Rpb24sIHJlc3VsdCwgZXhjZXB0aW9uTWVzc2FnZSwgZXhjZXB0aW9uTmFtZSB9LAor
ICAgICAgICAgIGV2ZW50Lm9yaWdpbgorICAgICAgICApOworICAgICAgfSwKKyAgICAgIHsgb25j
ZTogdHJ1ZSB9CisgICAgKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdC1mdWxseS1hY3RpdmUu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
OWM0MWJiYTNhODJkOGU1NzM4NzJlN2U1NzEzYmU0ODllZDJlZTUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3QtZnVsbHkt
YWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjYWxsaW5n
IGdldEdhbWVwYWRzKCkgaW4gYSBub24tZnVsbHktYWN0aXZlIGRvY3VtZW50CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5
LWFjdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9ub3QtZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwYWZlZjNk
MmRlYjI5YzA4N2RlMGJiNzA4OTA0YWNlODE3OThjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90LWZ1bGx5LWFjdGl2ZS5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiIC8+Cis8dGl0bGU+R2FtZXBhZCB0ZXN0cyBmb3Igbm9uLWZ1bGx5LWFjdGl2ZSBk
b2N1bWVudDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Cisg
ICAgaWZyYW1lLnNyY2RvYyA9IGA8aDE+dGVzdDwvaDE+YAorICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4geworICAgICAgaWZyYW1lLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSk7CisgICAgY29uc3QgbmF2aWdh
dG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yOworICAgIGlmcmFtZS5yZW1vdmUo
KTsKKyAgICBjb25zdCBnYW1lcGFkcyA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcygpOworICAgIGFz
c2VydF90cnVlKEFycmF5LmlzQXJyYXkoZ2FtZXBhZHMpLCAnZ2V0R2FtZXBhZHMgc2hvdWxkIHJl
dHVybiBhbiBhcnJheScpOworICAgIGFzc2VydF9lcXVhbHMoZ2FtZXBhZHMubGVuZ3RoLCAwLCAi
Tm8gZ2FtZXBhZHMgc2hvdWxkIGJlIGF2YWlsYWJsZSIpOworICB9LCAiY2FsbGluZyBnZXRHYW1l
cGFkcygpIGluIGEgbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVudCIpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFmYTIyOTEzMTZkMjll
OTQzZjIxZTNjNTc0YmM1MDBlNzg5MGM5MTcuLmIwNTAxZGJmNjUxZWYzZjBmNGQ5M2E2MDAwMjY0
Yjk0Mzk4NTliZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0zODgsNiArMzg4LDcgQEAgZmFzdC9mb3Jtcy9maWxlL29wZW4tZmlsZS1wYW5lbC5odG1s
IFsgU2tpcCBdCiAjIEVOQUJMRV9HQU1FUEFEIG5vdCBlbmFibGVkLgogZ2FtZXBhZC8gWyBTa2lw
IF0KIGh0dHAvdGVzdHMvbWlzYy9nYW1lcGFkcy1pbnNlY3VyZS5odG1sIFsgU2tpcCBdCitodHRw
L3Rlc3RzL2dhbWVwYWQvZ2FtZXBhZC1hbGxvdy1hdHRyaWJ1dGUuaHR0cHMuaHRtbCAgWyBTa2lw
IF0KIAogIyBUT0RPIFVzZXJzY3JpcHRzIHN0dWZmIGlzIG5vdCBpbXBsZW1lbnRlZAogd2Via2l0
Lm9yZy9iLzE0MDI1OCB1c2Vyc2NyaXB0cy8gWyBTa2lwIF0K
</data>
<flag name="review"
          id="469690"
          type_id="1"
          status="?"
          setter="marcos"
    />
          </attachment>
      

    </bug>

</bugzilla>