<?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>194367</bug_id>
          
          <creation_ts>2019-02-06 16:35:54 -0800</creation_ts>
          <short_desc>Missing media controls when WebKit is built with Python3</short_desc>
          <delta_ts>2022-02-27 23:38:55 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=200894</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>aperez</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>guillaume.webkit</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1503531</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-06 16:35:54 -0800</bug_when>
    <thetext>This video plays perfectly fine in WebKitGTK+ 2.23.3:

https://ftp.osuosl.org/pub/fosdem/2019/H.1309/media_gstreamer_wpe.webm

Except the media controls are missing! It should surely be displaying WebKit&apos;s media controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503731</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-02-07 08:15:56 -0800</bug_when>
    <thetext>I can&apos;t reproduce this issue with MiniBrowser from ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503740</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-07 08:37:45 -0800</bug_when>
    <thetext>Indeed, it works in MiniBrowser, but it&apos;s broken in the GNOME runtime. When 2.23.90 is released we should check if it&apos;s fixed there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517662</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-18 06:08:00 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Indeed, it works in MiniBrowser, but it&apos;s broken in the GNOME runtime. When
&gt; 2.23.90 is released we should check if it&apos;s fixed there.

Ping :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517676</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-18 07:20:15 -0700</bug_when>
    <thetext>Nope, still no media controls with 2.24.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517749</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-18 10:24:58 -0700</bug_when>
    <thetext>Looks like an Ephy bug then. Before reopening please provide a reproducer with MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517772</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-18 10:46:19 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #5)
&gt; Looks like an Ephy bug then. Before reopening please provide a reproducer
&gt; with MiniBrowser.

You know Epiphany doesn&apos;t have anything to do with media controls.

The WebKit development jhbuild is old and stale, whereas the GNOME master runtime is shiny and new. No wonder the set of bugs is different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517791</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-18 11:01:57 -0700</bug_when>
    <thetext>I checked Fedora 30&apos;s Epiphany, with WebKitGTK 2.23.91. The media controls slider is working fine. This strongly suggests that it&apos;s not Epiphany&apos;s fault, but something else in the runtime. You should reopen this until it&apos;s fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517858</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-18 13:06:00 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; (In reply to Philippe Normand from comment #5)
&gt; &gt; Looks like an Ephy bug then. Before reopening please provide a reproducer
&gt; &gt; with MiniBrowser.
&gt; 
&gt; You know Epiphany doesn&apos;t have anything to do with media controls.
&gt; 

Of course I know that.
But perhaps Ephy uses a different API to load URIs?

&gt; The WebKit development jhbuild is old and stale, whereas the GNOME master
&gt; runtime is shiny and new. No wonder the set of bugs is different.

I&apos;ve just updated my local WebKit-Flatpak to the 3.32 GNOME Platform/Sdk and wasn&apos;t able to reproduce the bug there either (with MiniBrowser).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517891</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-18 13:46:27 -0700</bug_when>
    <thetext>Try the master SDK, that&apos;s what Ephy Tech Preview uses. It probably has newer GStreamer or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517892</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-18 13:47:10 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #8)
&gt; Of course I know that.
&gt; But perhaps Ephy uses a different API to load URIs?

webkit_web_view_load_uri()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518274</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-19 08:24:52 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #9)
&gt; Try the master SDK, that&apos;s what Ephy Tech Preview uses. It probably has
&gt; newer GStreamer or something.

Controls are not a GStreamer thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525950</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-10 08:42:10 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; I checked Fedora 30&apos;s Epiphany, with WebKitGTK 2.23.91. The media controls
&gt; slider is working fine. This strongly suggests that it&apos;s not Epiphany&apos;s
&gt; fault, but something else in the runtime. You should reopen this until it&apos;s
&gt; fixed.

OK, now one month later with WebKitGTK 2.24.0 it&apos;s broken. So I don&apos;t think WebKit version is to blame here. Whatever is to blame must have made it into Fedora within the past month.

There are errors in the web inspector when playing Phil&apos;s video in the first comment:

[Error] SyntaxError: Unexpected string literal &apos;v&apos;

[Error] Failed to load resource: Plug-in handled load (media_gstreamer_wpe.webm, line 0)

(Plus an unrelated favicon error.) I think these errors are our hints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525951</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-10 08:56:09 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)
&gt; [Error] Failed to load resource: Plug-in handled load
&gt; (media_gstreamer_wpe.webm, line 0)

This is coming from WebFrameLoaderClient::committedLoad and it seems to be intentional for any standalone media document, which is weird because of course intentional internal errors shouldn&apos;t reach the web inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547449</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-24 11:50:03 -0700</bug_when>
    <thetext>This one is really bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561722</commentid>
    <comment_count>15</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-15 13:33:32 -0700</bug_when>
    <thetext>Is there a way to help fixing this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562665</commentid>
    <comment_count>16</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-19 00:47:26 -0700</bug_when>
    <thetext>The issue is that, for some reason, the shadow DOM (supposed to contain the media controls) of the &lt;video&gt; element is empty. You can check that with the web-inspector.

But since this issue happens only with the Ephy flatpak runtime, it&apos;s quite hard to track down...

And it&apos;s not only for MediaDocuments, it&apos;s for all &lt;video&gt; relying on WebKit&apos;s media controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562700</commentid>
    <comment_count>17</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-19 04:29:55 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #16)
&gt; The issue is that, for some reason, the shadow DOM (supposed to contain the
&gt; media controls) of the &lt;video&gt; element is empty. You can check that with the
&gt; web-inspector.
&gt; 
&gt; But since this issue happens only with the Ephy flatpak runtime, it&apos;s quite
&gt; hard to track down...
&gt; 
&gt; And it&apos;s not only for MediaDocuments, it&apos;s for all &lt;video&gt; relying on
&gt; WebKit&apos;s media controls.

And it&apos;s the same for &lt;audio&gt; too.

I&apos;ve reinstalled older versions of Epiphany (the oldest being 3.24.0) with latest WebKitGTK+, and the controls are always missing. I think that controls were visible at least 2 years ago, so I can imagine that the bug is not caused by a change in Epiphany.

Bisecting WebKitGTK+ is really painful, but I can do this. If anyone knows where &quot;SyntaxError: Unexpected string literal &apos;v&apos;&quot; comes from (and if it&apos;s related), that would be helpful!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562702</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-19 04:59:08 -0700</bug_when>
    <thetext>Seems like that error comes from Source/JavaScriptCore/parser/Parser.cpp but I doubt it&apos;s related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562703</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-19 05:00:37 -0700</bug_when>
    <thetext>With Ephy 3.32.1.2 (wkgtk 2.24.3) from Debian Testing, I do see controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562708</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-08-19 06:17:51 -0700</bug_when>
    <thetext>(In reply to Guilaume Ayoub from comment #17) 
&gt; Bisecting WebKitGTK+ is really painful, but I can do this.

Thanks so much. But I&apos;m really not sure a WebKit change is to blame. You might need to do a flatpak-bisect to bisect the runtime itself, except this bug is now so old that there&apos;s probably not enough old runtimes left on the server, so it&apos;s probably impossible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562709</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-08-19 06:20:48 -0700</bug_when>
    <thetext>Ah sorry, I guess you&apos;re testing with Fedora packages. Anyway, first step before we start bisecting is to pin down which package change caused the problem. If we can verify that it&apos;s really caused by a WebKit change, then it&apos;s bisectable, but unfortunately I&apos;m not confident that&apos;s what we&apos;ll find. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562710</commentid>
    <comment_count>22</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-19 06:29:05 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #21)
&gt; Ah sorry, I guess you&apos;re testing with Fedora packages.

I&apos;m not testing with Fedora, I&apos;m using Gentoo. Fedora&apos;s not to blame here :).

&gt; Anyway, first step
&gt; before we start bisecting is to pin down which package change caused the
&gt; problem. If we can verify that it&apos;s really caused by a WebKit change, then
&gt; it&apos;s bisectable, but unfortunately I&apos;m not confident that&apos;s what we&apos;ll find.
&gt; :/

I can at least rebuild an old version of WebKit and see if the controls are visible. That way we can be sure that the problem is not caused by another package.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562711</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-08-19 06:40:47 -0700</bug_when>
    <thetext>OK, thanks.

Figuring out what package would be tremendously helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562790</commentid>
    <comment_count>24</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-19 13:51:10 -0700</bug_when>
    <thetext>Media controls are visible with Epiphany 2.28.0 + WebKitGTK 2.20.3.

I continue the bisection, but it&apos;s long because Ephy and WebKitGTK versions can&apos;t be mixed as we want…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562819</commentid>
    <comment_count>25</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-19 15:24:34 -0700</bug_when>
    <thetext>Media controls are visible with Epiphany 2.30.3 + WebKitGTK 2.22.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562851</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-08-19 17:00:21 -0700</bug_when>
    <thetext>You mean Epiphany 3.28.0 and Epiphany 3.30.3?

There&apos;s no need to build Epiphany at all because this bug occurs in MiniBrowser. On Fedora it&apos;s packaged as /usr/libexec/webkit2gtk-4.0/MiniBrowser. Probably on Gentoo it would be under /usr/lib/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562853</commentid>
    <comment_count>27</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-19 17:09:29 -0700</bug_when>
    <thetext>Media controls are also visible with Epiphany 2.31.91 + WebKitGTK 2.23.2.

As the original bug report is for WebKitGTK 2.23.3, I&apos;ll compile this version and check that the media controls are missing. We&apos;ll be sure that the problem comes from a change between 2.23.2 and 2.23.3.

It&apos;s time for me to sleep while my computer is compiling, see you tomorrow!

(In reply to Michael Catanzaro from comment #26)
&gt; You mean Epiphany 3.28.0 and Epiphany 3.30.3?
&gt; 
&gt; There&apos;s no need to build Epiphany at all because this bug occurs in
&gt; MiniBrowser. On Fedora it&apos;s packaged as
&gt; /usr/libexec/webkit2gtk-4.0/MiniBrowser. Probably on Gentoo it would be
&gt; under /usr/lib/.

Oh, as it was said in Comment #2 that the bug wasn&apos;t visible in MiniBrowser, I assumed that I had to compile Epiphany too. Well, compiling Epiphany is so fast that it doesn&apos;t bother me…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562869</commentid>
    <comment_count>28</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-19 17:44:07 -0700</bug_when>
    <thetext>I think this issue may be the same (or very similar) than bug 200894

Can you check in your CMakeCache.txt file for the build the value you have configured for PYTHON_EXECUTABLE? If its pointing to python3 please test to rebuild with python2. First install python2 (if needed) and then pass something like &quot;-DPYTHON_EXECUTABLE=/usr/bin/python2.7&quot;. Test this from a clean build state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562976</commentid>
    <comment_count>29</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-20 00:34:24 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #28)
&gt; I think this issue may be the same (or very similar) than bug 200894
&gt; 
&gt; Can you check in your CMakeCache.txt file for the build the value you have
&gt; configured for PYTHON_EXECUTABLE? If its pointing to python3 please test to
&gt; rebuild with python2. First install python2 (if needed) and then pass
&gt; something like &quot;-DPYTHON_EXECUTABLE=/usr/bin/python2.7&quot;. Test this from a
&gt; clean build state.

You&apos;re probably right. I have controls with 2.23.3 compiled with Python 2.7, but I didn&apos;t have them with 2.24.x versions compiled with Python 3.7.

Do you want some help finding the problem in Python scripts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562991</commentid>
    <comment_count>30</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 01:42:51 -0700</bug_when>
    <thetext>Carlos!!!!!
You nailed the bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562992</commentid>
    <comment_count>31</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 01:45:51 -0700</bug_when>
    <thetext>Guillaume,

Maybe start with checking these 2 fellows?

Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py
Source/WebCore/css/makeSelectorPseudoElementsMap.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562994</commentid>
    <comment_count>32</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-20 02:02:04 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #31)
&gt; Guillaume,
&gt; 
&gt; Maybe start with checking these 2 fellows?
&gt; 
&gt; Source/WebCore/css/makeSelectorPseudoClassAndCompatibilityElementMap.py
&gt; Source/WebCore/css/makeSelectorPseudoElementsMap.py

They generate the same files with Py2 and Py3.

I&apos;ve also tried Source/JavaScriptCore/Scripts/inline-and-minify-stylesheets-and-scripts.py, it gives the same results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562998</commentid>
    <comment_count>33</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 02:10:20 -0700</bug_when>
    <thetext>We would need the build to fail when the python3 raises an exception, basically. I can have a look at this later on today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563000</commentid>
    <comment_count>34</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-20 02:12:14 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #33)
&gt; We would need the build to fail when the python3 raises an exception,
&gt; basically. I can have a look at this later on today.

I&apos;m not sure that it raises an exception, it may just generate a JS or CSS file with a syntax error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563015</commentid>
    <comment_count>35</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 02:53:25 -0700</bug_when>
    <thetext>Comparing 2 builds, Source/JavaScriptCore/Scripts/make-js-file-arrays.py generates broken UserAgentScriptsData.cpp for Python3 builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563018</commentid>
    <comment_count>36</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 03:16:19 -0700</bug_when>
    <thetext>Starting a patch, the js minifier is broken as well...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563026</commentid>
    <comment_count>37</comment_count>
      <attachid>376763</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 04:40:07 -0700</bug_when>
    <thetext>Created attachment 376763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563027</commentid>
    <comment_count>38</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 04:40:58 -0700</bug_when>
    <thetext>Fixes #200894 as well \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563028</commentid>
    <comment_count>39</comment_count>
    <who name="Guilaume Ayoub">guillaume.webkit</who>
    <bug_when>2019-08-20 05:08:50 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #37)
&gt; Created attachment 376763 [details]
&gt; Patch

It works perfectly, thanks a lot everybody! &lt;3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563033</commentid>
    <comment_count>40</comment_count>
      <attachid>376763</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-20 06:04:59 -0700</bug_when>
    <thetext>Comment on attachment 376763
Patch

It seems to work, but I&apos;m a bit puzzled why it still gives different results for python2 and python3.

See:
$ python2 Source/JavaScriptCore/Scripts/make-js-file-arrays.py test2.h test2.cpp -n WebCore Source/WebCore/Modules/mediacontrols/mediaControlsBase.js
$ python3 Source/JavaScriptCore/Scripts/make-js-file-arrays.py test3.h test3.cpp -n WebCore Source/WebCore/Modules/mediacontrols/mediaControlsBase.js
$ diff -u test2.h test3.h
--- test2.h	2019-08-20 13:02:55.818755324 +0000
+++ test3.h	2019-08-20 13:03:06.312126092 +0000
@@ -1,3 +1,3 @@
 namespace WebCore {
-extern const char mediaControlsBaseJavaScript[35332];
+extern const char mediaControlsBaseJavaScript[46873];
 } // namespace WebCore

$ diff -u test2.cpp test3.cpp
[... redacted, lots of diffs ... ]

Any idea what causes this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563036</commentid>
    <comment_count>41</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-20 06:05:46 -0700</bug_when>
    <thetext>*** Bug 200894 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563046</commentid>
    <comment_count>42</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 06:33:42 -0700</bug_when>
    <thetext>The biggest issue seems to be in the minifier, the bug was introduced during its port to Python3 I think:

&gt; /home/phil/WebKit/Source/JavaScriptCore/Scripts/jsmin.py(89)write()
-&gt; self.outs.write(str(char))
(Pdb) char
b&apos;v&apos;
(Pdb) str(char)
&quot;b&apos;v&apos;&quot;
(Pdb) 

the write function declared line 79 doesn&apos;t handle byte values, you can see the b is embedded in the string. This is where the SyntaxError comes from at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563047</commentid>
    <comment_count>43</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 06:44:50 -0700</bug_when>
    <thetext>Though that doesn&apos;t explain why the array sizes differ... It&apos;s a bit odd :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563048</commentid>
    <comment_count>44</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 06:47:27 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #43)
&gt; Though that doesn&apos;t explain why the array sizes differ... It&apos;s a bit odd :)

Ah found it. In that same write function, for Python3 the return_buf should be a byte string, and the &apos;return&apos; constant as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563051</commentid>
    <comment_count>45</comment_count>
      <attachid>376763</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 07:12:48 -0700</bug_when>
    <thetext>Comment on attachment 376763
Patch

This needs some more investigation...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563052</commentid>
    <comment_count>46</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-20 07:29:24 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #45)
&gt; Comment on attachment 376763 [details]
&gt; Patch
&gt; 
&gt; This needs some more investigation...

By printing the generated char array to stdout with a small C program I can see that in the case of python3 the JS is not minified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563056</commentid>
    <comment_count>47</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-20 07:49:30 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #46)
&gt; (In reply to Philippe Normand from comment #45)
&gt; &gt; Comment on attachment 376763 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; This needs some more investigation...
&gt; 
&gt; By printing the generated char array to stdout with a small C program I can
&gt; see that in the case of python3 the JS is not minified.

The issue is caused because all over the function JavascriptMinify:minify() the code does comparisons with strings, which fail on python3 because now the type for the variable is bytes

b&apos;/&apos; == &apos;/&apos; is False

Something like this is needed:

--- a/Source/JavaScriptCore/Scripts/jsmin.py
+++ b/Source/JavaScriptCore/Scripts/jsmin.py
@@ -82,11 +82,17 @@ class JavascriptMinify(object):
             if str(char) in &apos;return&apos;:
                 self.return_buf += char
                 self.is_return = self.return_buf == &apos;return&apos;
+            if is_3:
+                char=str.encode(char)
             self.outs.write(char)
             if self.is_return:
                 self.return_buf = &apos;&apos;
 
-        read = self.ins.read
+        def read(char):
+            if is_3:
+                return self.ins.read(char).decode()
+            else:
+                return self.ins.read(char)


Maybe there is a better way of doing this that doesn&apos;t require converting between str and bytes back and fort?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563057</commentid>
    <comment_count>48</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 07:53:29 -0700</bug_when>
    <thetext>Ah I missed the read part earlier.

I think the simplest is likely to convert byte strings to utf-8 in Python3, so that the Python2 code can work as-is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563072</commentid>
    <comment_count>49</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-20 08:51:29 -0700</bug_when>
    <thetext>I may have an updated patch but it needs some more testing wrt l10n files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563408</commentid>
    <comment_count>50</comment_count>
      <attachid>376851</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-21 01:10:55 -0700</bug_when>
    <thetext>Created attachment 376851
WiP patch

This is my current status. However I would like to move this jsmin thing to webkitpy and add unit-tests. But right now I don&apos;t have time for this, so unless someone else picks up the task I will try to get back to it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563423</commentid>
    <comment_count>51</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-21 02:46:39 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #50)
&gt; Created attachment 376851 [details]
&gt; WiP patch
&gt; 
&gt; This is my current status. However I would like to move this jsmin thing to
&gt; webkitpy and add unit-tests. But right now I don&apos;t have time for this, so
&gt; unless someone else picks up the task I will try to get back to it soon.

I don&apos;t think moving this to webkitpy is a good idea. This needs to be shipped on release tarballs as is part of the built, and release tarballs don&apos;t include webkitpy (AFAIK).

On the other hand the unit tests for webkitpy are currently ran only with python2, we don&apos;t have any facility to run unit tests with python3.

Maybe an idea is to test this from webkitpy (without moving it, simply call it where is it from webkitpy) and also start testing webkitpy with python3 (on top of python2). But this is not going to be easy and is already out of the scope of this bug. I suggest to simply fix the issue here and after that (if you want), on a new bug, start working on this extra tests with python3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563693</commentid>
    <comment_count>52</comment_count>
      <attachid>376851</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-08-21 14:38:57 -0700</bug_when>
    <thetext>Comment on attachment 376851
WiP patch

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

Overall patch idea LGTM, but I think there is one situation
which is not being covered — please check the comment.

I agree with Carlos López that it would be good to try
things with Python 3.x, but that is indeed scope for a
different bug.

&gt; Source/JavaScriptCore/Scripts/jsmin.py:56
&gt; +    ins = klass(js.readall())

This is problematic, because from the code above which checks whether “js”
is an “unicode” instance, it looks to me that it is acceptable to pass a
string to “jsmin()” — I think something like the following would be better:

  text_class = str if is_3 else unicode
  bytes_class = bytes if is_3 else str
  if hasattr(js, &quot;readall&quot;):
      js = js.readall()
  elif isinstance(js, text_class):
      js = js.encode(&quot;utf-8&quot;)

  # In the end we always want a sequence of bytes.
  assert isinstance(js, bytes_class)  
  ins = klass(js)
  # ...

I think something in the spirit of the example above should cover all bases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563695</commentid>
    <comment_count>53</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-08-21 14:42:38 -0700</bug_when>
    <thetext>FWIW, shouldn&apos;t we tag this with [WPE] as well? I was under
the impression that WPE uses media controls with CSS/JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563967</commentid>
    <comment_count>54</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-08-21 23:27:35 -0700</bug_when>
    <thetext>Actually I suppose that the Apple ports are also affected by this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563974</commentid>
    <comment_count>55</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-08-22 00:30:46 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #54)
&gt; Actually I suppose that the Apple ports are also affected by this issue.

Yes, that will be the case when they start using Python 3.x for
building later on; IIRC for the moment they are still using 2.x</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564316</commentid>
    <comment_count>56</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-22 16:58:40 -0700</bug_when>
    <thetext>I think I have a patch that fixes this :)

I tested to run manually the command make-js-file-arrays.py with different source files and compared the outputs for python2 and python3. With this patch it is generating always the same result as far as I was able to test. I also tested to match with the output it was generating before this patch for python2 and it matches.

I also compared the generated sources after a build before and after this patch, and with python2 and python3, and the sources affected by this seem to match exactly as expected.

And of course this bug and bug 200894 are fixed with this.

I&apos;ll upload it now for review/test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564324</commentid>
    <comment_count>57</comment_count>
      <attachid>377080</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-22 17:08:56 -0700</bug_when>
    <thetext>Created attachment 377080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564901</commentid>
    <comment_count>58</comment_count>
      <attachid>377080</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-26 02:05:36 -0700</bug_when>
    <thetext>Comment on attachment 377080
Patch

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

&gt; Source/JavaScriptCore/Scripts/jsmin.py:94
&gt; +                raise ValueError(&quot;ERROR: The script jsmin.py only can handle text input, but it received input with type %s&quot; % type(char))

I think it should be &quot;can only handle&quot; and &quot;received input of type&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564935</commentid>
    <comment_count>59</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-08-26 07:36:55 -0700</bug_when>
    <thetext>Committed r249095: &lt;https://trac.webkit.org/changeset/249095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564936</commentid>
    <comment_count>60</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 07:37:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/54706396&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376763</attachid>
            <date>2019-08-20 04:40:07 -0700</date>
            <delta_ts>2019-08-21 01:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194367-20190820124006.patch</filename>
            <type>text/plain</type>
            <size>4374</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Y2E1ZGVmYzJlY2MzY2MzYTliMGIwZjgyNGIxZjlmZjljNzJjM2UzLi4yZjExYTEzNDZlOTMzNTVi
YmU0M2RiZjg3M2JhMTZkOWZhYWJiNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0wOC0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gTWlzc2luZyBtZWRpYSBjb250cm9scyBpbiBNZWRpYURv
Y3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTQzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgbWVkaWEgY29udHJvbHMgd2VyZSBub3QgYWRkZWQgaW4gdGhlIHNoYWRvdyBET00gYmVjYXVz
ZSB0aGUgSlMKKyAgICAgICAgZW1iZWRkZWQgaW4gVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwIGdl
bmVyYXRlZCBteQorICAgICAgICBtYWtlLWpzLWZpbGUtYXJyYXlzLnB5IHVuZGVyIHRoZSBQeXRo
b24zIHJ1bnRpbWUgd2FzIGludmFsaWQgYW5kCisgICAgICAgIHJhaXNpbmcgU3ludGF4RXJyb3Jz
LgorCisgICAgICAgIE1hbnkgdGhhbmtzIHRvIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6IGZv
ciBmaW5kaW5nIHRoZSBjb3JlIGlzc3VlLgorCisgICAgICAgICogU2NyaXB0cy9qc21pbi5weToK
KyAgICAgICAgKGpzbWluKTogV2hlbiBpbiBQeXRob24zLCB1c2UgQnl0ZXNJTyB3aGljaCBhbGxv
d3MgdXMgdG86CisgICAgICAgIChKYXZhc2NyaXB0TWluaWZ5Lm1pbmlmeS53cml0ZSk6IHJlbW92
ZSB1bi1uZWVkZWQgUHl0aG9uIHZlcnNpb24gY2hlY2suCisgICAgICAgIChKYXZhc2NyaXB0TWlu
aWZ5KToKKyAgICAgICAgKiBTY3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHk6IFVzZSB0aGUg
anNtaW4oKSBmdW5jdGlvbiB3aGljaAorICAgICAgICBzZXRzLXVwIHRoZSBKYXZhc2NyaXB0TWlu
aWZ5IHBhcmFtZXRlcnMgaW4gYSBQeXRob24gdmVyc2lvbgorICAgICAgICBhZ25vc3RpYyBtYW5u
ZXIuCisgICAgICAgIChtYWluKTogSW4gUHl0aG9uIDMgaW5kZXhpbmcgYSBieXRlcyBvYmplY3Qg
cmV0dXJucyBhbiBpbnRlZ2VyLCBzbworICAgICAgICBubyBuZWVkIGZvciBvcmQoKS4KKwogMjAx
OS0wOC0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogRGVidWdnZXI6IGFkZCBhIGdsb2JhbCBicmVha3BvaW50IGZvciBwYXVzaW5n
IGluIHRoZSBuZXh0IG1pY3JvdGFzawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvanNtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5w
eQppbmRleCBmYzY0N2M3OWYzNzQ2NDgyMDYzNmFkNjgzYjk2Mzg2NmNkMjEwODBmLi5lM2JmZWVk
NThiNmJhNjM4M2Y5MjMyYjE4M2U0YjVlOGM3N2M5YTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy9qc21pbi5weQpAQCAtNTIsOCArNTIsOCBAQCBkZWYganNtaW4oanMpOgogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAga2xhc3MgPSBTdHJpbmdJTy5TdHJpbmdJTwogICAgIGVsc2U6
Ci0gICAgICAgIGtsYXNzID0gaW8uU3RyaW5nSU8KLSAgICBpbnMgPSBrbGFzcyhqcykKKyAgICAg
ICAga2xhc3MgPSBpby5CeXRlc0lPCisgICAgaW5zID0ga2xhc3MoanMucmVhZGFsbCgpKQogICAg
IG91dHMgPSBrbGFzcygpCiAgICAgSmF2YXNjcmlwdE1pbmlmeShpbnMsIG91dHMpLm1pbmlmeSgp
CiAgICAgcmV0dXJuIG91dHMuZ2V0dmFsdWUoKQpAQCAtODIsMTAgKzgyLDcgQEAgY2xhc3MgSmF2
YXNjcmlwdE1pbmlmeShvYmplY3QpOgogICAgICAgICAgICAgaWYgc3RyKGNoYXIpIGluICdyZXR1
cm4nOgogICAgICAgICAgICAgICAgIHNlbGYucmV0dXJuX2J1ZiArPSBjaGFyCiAgICAgICAgICAg
ICAgICAgc2VsZi5pc19yZXR1cm4gPSBzZWxmLnJldHVybl9idWYgPT0gJ3JldHVybicKLSAgICAg
ICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPT0gMjoKLSAgICAgICAgICAgICAgICBz
ZWxmLm91dHMud3JpdGUoY2hhcikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5vdXRzLndyaXRlKHN0cihjaGFyKSkKKyAgICAgICAgICAgIHNlbGYub3V0cy53cml0ZShj
aGFyKQogICAgICAgICAgICAgaWYgc2VsZi5pc19yZXR1cm46CiAgICAgICAgICAgICAgICAgc2Vs
Zi5yZXR1cm5fYnVmID0gJycKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL21ha2UtanMtZmlsZS1hcnJheXMucHkKaW5kZXggODYyNGJmZThkYWY2Y2MyNDRiNWIxNmE4
ZmFjNzFjOWVlMDgyMDE2NS4uYmQ4NGQyZDFlZWIyMzI4MzhiMTFjMGM1ZTU1MTdiMmY2MzU3MjVh
YSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvbWFrZS1qcy1maWxl
LWFycmF5cy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9tYWtlLWpzLWZp
bGUtYXJyYXlzLnB5CkBAIC0yNiwxMSArMjYsNyBAQCBpbXBvcnQgaW8KIGltcG9ydCBvcwogZnJv
bSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCiBpbXBvcnQgc3lzCi1pZiBzeXMudmVyc2lv
bl9pbmZvLm1ham9yID09IDI6Ci0gICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KLWVs
c2U6Ci0gICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KLWZyb20ganNtaW4gaW1wb3J0IEphdmFz
Y3JpcHRNaW5pZnkKK2ltcG9ydCBqc21pbiBhcyBqc20KIAogCiBkZWYgc3RyaW5naWZ5Q29kZXBv
aW50KGNvZGUpOgpAQCAtNzEsMTUgKzY3LDExIEBAIGRlZiBtYWluKCk6CiAgICAgcHJpbnQoJyNp
bmNsdWRlICJ7MDpzfSInLmZvcm1hdChvcy5wYXRoLmJhc2VuYW1lKGhlYWRlclBhdGgpKSwgZmls
ZT1zb3VyY2VGaWxlKQogICAgIHByaW50KCduYW1lc3BhY2UgezA6c30ge3snLmZvcm1hdChuYW1l
c3BhY2UpLCBmaWxlPXNvdXJjZUZpbGUpCiAKLSAgICBqc20gPSBKYXZhc2NyaXB0TWluaWZ5KCkK
LQogICAgIGZvciBpbnB1dEZpbGVOYW1lIGluIGlucHV0UGF0aHM6CiAgICAgICAgIGlucHV0U3Ry
ZWFtID0gaW8uRmlsZUlPKGlucHV0RmlsZU5hbWUpCi0gICAgICAgIG91dHB1dFN0cmVhbSA9IFN0
cmluZ0lPKCkKIAogICAgICAgICBpZiBub3Qgb3B0aW9ucy5ub19taW5pZnk6Ci0gICAgICAgICAg
ICBqc20ubWluaWZ5KGlucHV0U3RyZWFtLCBvdXRwdXRTdHJlYW0pCi0gICAgICAgICAgICBjaGFy
YWN0ZXJzID0gb3V0cHV0U3RyZWFtLmdldHZhbHVlKCkKKyAgICAgICAgICAgIGNoYXJhY3RlcnMg
PSBqc20uanNtaW4oaW5wdXRTdHJlYW0pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjaGFy
YWN0ZXJzID0gaW5wdXRTdHJlYW0ucmVhZCgpCiAKQEAgLTg5LDcgKzgxLDExIEBAIGRlZiBtYWlu
KCk6CiAgICAgICAgIHByaW50KCdleHRlcm4gY29uc3QgY2hhciB7MDpzfUphdmFTY3JpcHRbezE6
ZH1dOycuZm9ybWF0KHZhcmlhYmxlTmFtZSwgc2l6ZSksIGZpbGU9aGVhZGVyRmlsZSkKICAgICAg
ICAgcHJpbnQoJ2NvbnN0IGNoYXIgezA6c31KYXZhU2NyaXB0W3sxOmR9XSA9IHt7Jy5mb3JtYXQo
dmFyaWFibGVOYW1lLCBzaXplKSwgZmlsZT1zb3VyY2VGaWxlKQogCi0gICAgICAgIGNvZGVwb2lu
dHMgPSBsaXN0KG1hcChvcmQsIGNoYXJhY3RlcnMpKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9p
bmZvLm1ham9yID09IDI6CisgICAgICAgICAgICBjb2RlcG9pbnRzID0gbGlzdChtYXAob3JkLCBj
aGFyYWN0ZXJzKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgSW4gUHl0aG9uIDMgaW5k
ZXhpbmcgYSBieXRlcyBvYmplY3QgcmV0dXJucyBhbiBpbnRlZ2VyLCBzbyBubyBuZWVkIGZvciBv
cmQoKS4KKyAgICAgICAgICAgIGNvZGVwb2ludHMgPSBsaXN0KGNoYXJhY3RlcnMpCiAgICAgICAg
IGZvciBjb2RlcG9pbnRDaHVuayBpbiBjaHVuayhjb2RlcG9pbnRzLCAxNik6CiAgICAgICAgICAg
ICBwcmludCgnICAgIHswOnN9LCcuZm9ybWF0KCcsJy5qb2luKG1hcChzdHJpbmdpZnlDb2RlcG9p
bnQsIGNvZGVwb2ludENodW5rKSkpLCBmaWxlPXNvdXJjZUZpbGUpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376851</attachid>
            <date>2019-08-21 01:10:55 -0700</date>
            <delta_ts>2019-08-22 17:08:52 -0700</delta_ts>
            <desc>WiP patch</desc>
            <filename>0001-WIP.patch</filename>
            <type>text/plain</type>
            <size>6203</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlZWZlNTk1MWVmMGFlY2FhNzAwYWNkYjU4NzhiOGQyZjgzZTFmMGJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIwIEF1ZyAyMDE5IDEyOjM5OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4
c2VydmVyXSBXSVAKCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgIHwgMjQgKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9q
c21pbi5weSAgICAgICAgfCAzOSArKysrKysrKysrKysrLS0tLS0tCiAuLi4vU2NyaXB0cy9tYWtl
LWpzLWZpbGUtYXJyYXlzLnB5ICAgICAgICAgICAgfCAxOCArKysrLS0tLS0KIDMgZmlsZXMgY2hh
bmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggMmZkZDc0ZWQzMjMuLjdlZDcxNzQxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wOC0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gTWlzc2luZyBtZWRpYSBjb250cm9s
cyBpbiBNZWRpYURvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbWVkaWEgY29udHJvbHMgd2VyZSBub3QgYWRkZWQgaW4gdGhlIHNoYWRv
dyBET00gYmVjYXVzZSB0aGUgSlMKKyAgICAgICAgZW1iZWRkZWQgaW4gVXNlckFnZW50U2NyaXB0
c0RhdGEuY3BwIGdlbmVyYXRlZCBteQorICAgICAgICBtYWtlLWpzLWZpbGUtYXJyYXlzLnB5IHVu
ZGVyIHRoZSBQeXRob24zIHJ1bnRpbWUgd2FzIGludmFsaWQgYW5kCisgICAgICAgIHJhaXNpbmcg
U3ludGF4RXJyb3JzLgorCisgICAgICAgIE1hbnkgdGhhbmtzIHRvIENhcmxvcyBBbGJlcnRvIExv
cGV6IFBlcmV6IGZvciBmaW5kaW5nIHRoZSBjb3JlIGlzc3VlLgorCisgICAgICAgICogU2NyaXB0
cy9qc21pbi5weToKKyAgICAgICAgKGpzbWluKTogV2hlbiBpbiBQeXRob24zLCB1c2UgQnl0ZXNJ
TyB3aGljaCBhbGxvd3MgdXMgdG86CisgICAgICAgIChKYXZhc2NyaXB0TWluaWZ5Lm1pbmlmeS53
cml0ZSk6IHJlbW92ZSB1bi1uZWVkZWQgUHl0aG9uIHZlcnNpb24gY2hlY2suCisgICAgICAgIChK
YXZhc2NyaXB0TWluaWZ5KToKKyAgICAgICAgKiBTY3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMu
cHk6IFVzZSB0aGUganNtaW4oKSBmdW5jdGlvbiB3aGljaAorICAgICAgICBzZXRzLXVwIHRoZSBK
YXZhc2NyaXB0TWluaWZ5IHBhcmFtZXRlcnMgaW4gYSBQeXRob24gdmVyc2lvbgorICAgICAgICBh
Z25vc3RpYyBtYW5uZXIuCisgICAgICAgIChtYWluKTogSW4gUHl0aG9uIDMgaW5kZXhpbmcgYSBi
eXRlcyBvYmplY3QgcmV0dXJucyBhbiBpbnRlZ2VyLCBzbworICAgICAgICBubyBuZWVkIGZvciBv
cmQoKS4KKwogMjAxOS0wOC0yMCAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgSWRlbnRpZnkgbWVtY3B5IGxvb3BzIGluIGIzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2pzbWluLnB5CmluZGV4IGZjNjQ3Yzc5ZjM3Li41MGZjYWJlMTFlOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvanNtaW4ucHkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvanNtaW4ucHkKQEAgLTUyLDggKzUyLDggQEAg
ZGVmIGpzbWluKGpzKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGtsYXNzID0gU3RyaW5n
SU8uU3RyaW5nSU8KICAgICBlbHNlOgotICAgICAgICBrbGFzcyA9IGlvLlN0cmluZ0lPCi0gICAg
aW5zID0ga2xhc3MoanMpCisgICAgICAgIGtsYXNzID0gaW8uQnl0ZXNJTworICAgIGlucyA9IGts
YXNzKGpzLnJlYWRhbGwoKSkKICAgICBvdXRzID0ga2xhc3MoKQogICAgIEphdmFzY3JpcHRNaW5p
ZnkoaW5zLCBvdXRzKS5taW5pZnkoKQogICAgIHJldHVybiBvdXRzLmdldHZhbHVlKCkKQEAgLTc3
LDE5ICs3NywzMSBAQCBjbGFzcyBKYXZhc2NyaXB0TWluaWZ5KG9iamVjdCk6CiAgICAgICAgIHNl
bGYucmV0dXJuX2J1ZiA9ICcnCiAKICAgICAgICAgZGVmIHdyaXRlKGNoYXIpOgorICAgICAgICAg
ICAgaWYgaXNfMzoKKyAgICAgICAgICAgICAgICBjaGFyX2FzX3N0cmluZyA9IGNoYXIKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjaGFyLCBzdHIpOgor
ICAgICAgICAgICAgICAgICAgICBjaGFyX2FzX3N0cmluZyA9IGNoYXIuZGVjb2RlKCd1dGYtOCcp
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY2hhcl9hc19zdHJp
bmcgPSB1bmljb2RlKGNoYXIpCiAgICAgICAgICAgICAjIGFsbCBvZiB0aGlzIGlzIHRvIHN1cHBv
cnQgbGl0ZXJhbCByZWd1bGFyIGV4cHJlc3Npb25zLgogICAgICAgICAgICAgIyBzaWdoCi0gICAg
ICAgICAgICBpZiBzdHIoY2hhcikgaW4gJ3JldHVybic6Ci0gICAgICAgICAgICAgICAgc2VsZi5y
ZXR1cm5fYnVmICs9IGNoYXIKKyAgICAgICAgICAgIGlmIGNoYXJfYXNfc3RyaW5nIGluICdyZXR1
cm4nOgorICAgICAgICAgICAgICAgIHNlbGYucmV0dXJuX2J1ZiArPSBjaGFyX2FzX3N0cmluZwog
ICAgICAgICAgICAgICAgIHNlbGYuaXNfcmV0dXJuID0gc2VsZi5yZXR1cm5fYnVmID09ICdyZXR1
cm4nCi0gICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvLm1ham9yID09IDI6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5vdXRzLndyaXRlKGNoYXIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHNlbGYub3V0cy53cml0ZShzdHIoY2hhcikpCisgICAgICAgICAgICBzZWxmLm91
dHMud3JpdGUoY2hhcl9hc19zdHJpbmcuZW5jb2RlKCd1dGYtOCcpKQogICAgICAgICAgICAgaWYg
c2VsZi5pc19yZXR1cm46CiAgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmID0gJycKIAot
ICAgICAgICByZWFkID0gc2VsZi5pbnMucmVhZAorICAgICAgICBkZWYgcmVhZChsKToKKyAgICAg
ICAgICAgIGJ1ZiA9IHNlbGYuaW5zLnJlYWQobCkKKyAgICAgICAgICAgIGlmIGlzXzMgYW5kIGlz
aW5zdGFuY2UoYnVmLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBidWYKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBjaGFyX2FzX3N0cmluZyA9IGJ1Zi5kZWNvZGUoJ3V0
Zi04JykKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBjaGFyX2FzX3N0cmlu
ZyA9IGJ1Zi5kZWNvZGUoJ2xhdGluMScpCisgICAgICAgICAgICByZXR1cm4gY2hhcl9hc19zdHJp
bmcKIAogICAgICAgICBzcGFjZV9zdHJpbmdzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IlwKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OV8kXFwiCkBA
IC0yMjcsNyArMjM5LDcgQEAgY2xhc3MgSmF2YXNjcmlwdE1pbmlmeShvYmplY3QpOgogICAgICAg
ICAgICAgcHJldmlvdXMgPSBuZXh0MQogICAgICAgICAgICAgbmV4dDEgPSBuZXh0MgogCi0gICAg
ICAgICAgICBpZiBzdHIocHJldmlvdXMpID49ICchJzoKKyAgICAgICAgICAgIGlmIHByZXZpb3Vz
ID49ICchJzoKICAgICAgICAgICAgICAgICBwcmV2aW91c19ub25fc3BhY2UgPSBwcmV2aW91cwog
CiAgICAgICAgICAgICBpZiBwcmV2aW91cyA9PSAnXFwnOgpAQCAtMjM2LDYgKzI0OCwxMSBAQCBj
bGFzcyBKYXZhc2NyaXB0TWluaWZ5KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZXNjYXBlX3Ns
YXNoX2NvdW50ID0gMAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1pbmlmaWVy
ID0gSmF2YXNjcmlwdE1pbmlmeShzeXMuc3RkaW4sIHN5cy5zdGRvdXQpCisgICAgaWYgaXNfMzoK
KyAgICAgICAgc3Rkb3V0ID0gc3lzLnN0ZG91dC5idWZmZXIKKyAgICBlbHNlOgorICAgICAgICBz
dGRvdXQgPSBzeXMuc3Rkb3V0CisKKyAgICBtaW5pZmllciA9IEphdmFzY3JpcHRNaW5pZnkoc3lz
LnN0ZGluLCBzdGRvdXQpCiAgICAgbWluaWZpZXIubWluaWZ5KCkKICAgICBzeXMuc3Rkb3V0Lndy
aXRlKCdcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9tYWtl
LWpzLWZpbGUtYXJyYXlzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvbWFrZS1q
cy1maWxlLWFycmF5cy5weQppbmRleCA4NjI0YmZlOGRhZi4uYmQ4NGQyZDFlZWIgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL21ha2UtanMtZmlsZS1hcnJheXMucHkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvbWFrZS1qcy1maWxlLWFycmF5cy5w
eQpAQCAtMjYsMTEgKzI2LDcgQEAgaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2Ug
aW1wb3J0IE9wdGlvblBhcnNlcgogaW1wb3J0IHN5cwotaWYgc3lzLnZlcnNpb25faW5mby5tYWpv
ciA9PSAyOgotICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi1lbHNlOgotICAgIGZy
b20gaW8gaW1wb3J0IFN0cmluZ0lPCi1mcm9tIGpzbWluIGltcG9ydCBKYXZhc2NyaXB0TWluaWZ5
CitpbXBvcnQganNtaW4gYXMganNtCiAKIAogZGVmIHN0cmluZ2lmeUNvZGVwb2ludChjb2RlKToK
QEAgLTcxLDE1ICs2NywxMSBAQCBkZWYgbWFpbigpOgogICAgIHByaW50KCcjaW5jbHVkZSAiezA6
c30iJy5mb3JtYXQob3MucGF0aC5iYXNlbmFtZShoZWFkZXJQYXRoKSksIGZpbGU9c291cmNlRmls
ZSkKICAgICBwcmludCgnbmFtZXNwYWNlIHswOnN9IHt7Jy5mb3JtYXQobmFtZXNwYWNlKSwgZmls
ZT1zb3VyY2VGaWxlKQogCi0gICAganNtID0gSmF2YXNjcmlwdE1pbmlmeSgpCi0KICAgICBmb3Ig
aW5wdXRGaWxlTmFtZSBpbiBpbnB1dFBhdGhzOgogICAgICAgICBpbnB1dFN0cmVhbSA9IGlvLkZp
bGVJTyhpbnB1dEZpbGVOYW1lKQotICAgICAgICBvdXRwdXRTdHJlYW0gPSBTdHJpbmdJTygpCiAK
ICAgICAgICAgaWYgbm90IG9wdGlvbnMubm9fbWluaWZ5OgotICAgICAgICAgICAganNtLm1pbmlm
eShpbnB1dFN0cmVhbSwgb3V0cHV0U3RyZWFtKQotICAgICAgICAgICAgY2hhcmFjdGVycyA9IG91
dHB1dFN0cmVhbS5nZXR2YWx1ZSgpCisgICAgICAgICAgICBjaGFyYWN0ZXJzID0ganNtLmpzbWlu
KGlucHV0U3RyZWFtKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY2hhcmFjdGVycyA9IGlu
cHV0U3RyZWFtLnJlYWQoKQogCkBAIC04OSw3ICs4MSwxMSBAQCBkZWYgbWFpbigpOgogICAgICAg
ICBwcmludCgnZXh0ZXJuIGNvbnN0IGNoYXIgezA6c31KYXZhU2NyaXB0W3sxOmR9XTsnLmZvcm1h
dCh2YXJpYWJsZU5hbWUsIHNpemUpLCBmaWxlPWhlYWRlckZpbGUpCiAgICAgICAgIHByaW50KCdj
b25zdCBjaGFyIHswOnN9SmF2YVNjcmlwdFt7MTpkfV0gPSB7eycuZm9ybWF0KHZhcmlhYmxlTmFt
ZSwgc2l6ZSksIGZpbGU9c291cmNlRmlsZSkKIAotICAgICAgICBjb2RlcG9pbnRzID0gbGlzdCht
YXAob3JkLCBjaGFyYWN0ZXJzKSkKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mby5tYWpvciA9
PSAyOgorICAgICAgICAgICAgY29kZXBvaW50cyA9IGxpc3QobWFwKG9yZCwgY2hhcmFjdGVycykp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEluIFB5dGhvbiAzIGluZGV4aW5nIGEgYnl0
ZXMgb2JqZWN0IHJldHVybnMgYW4gaW50ZWdlciwgc28gbm8gbmVlZCBmb3Igb3JkKCkuCisgICAg
ICAgICAgICBjb2RlcG9pbnRzID0gbGlzdChjaGFyYWN0ZXJzKQogICAgICAgICBmb3IgY29kZXBv
aW50Q2h1bmsgaW4gY2h1bmsoY29kZXBvaW50cywgMTYpOgogICAgICAgICAgICAgcHJpbnQoJyAg
ICB7MDpzfSwnLmZvcm1hdCgnLCcuam9pbihtYXAoc3RyaW5naWZ5Q29kZXBvaW50LCBjb2RlcG9p
bnRDaHVuaykpKSwgZmlsZT1zb3VyY2VGaWxlKQogCi0tIAoyLjIzLjAucmMxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377080</attachid>
            <date>2019-08-22 17:08:56 -0700</date>
            <delta_ts>2022-02-27 23:38:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194367-20190823020855.patch</filename>
            <type>text/plain</type>
            <size>6480</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YTdiZmUzYzkwN2QyNDY1MDZkODI4NDk5ZmQ5Mjc0NjdmNDcyYTRlLi5jNjU3YThiYmNlMGNlYzdh
ZjMxZWIyNmQ2OWZjYWIzZDUxYzE1NDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxOS0wOC0yMiAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9w
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBNaXNzaW5nIG1lZGlhIGNvbnRyb2xzIHdoZW4gV2Vi
S2l0IGlzIGJ1aWx0IHdpdGggUHl0aG9uMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIEphdmFTY3JpcHQgbWluaWZpZXIgc2NyaXB0IGpzbWluLnB5
IGV4cGVjdHMgYSB0ZXh0IHN0cmVhbQorICAgICAgICB3aXRoIHRleHQgdHlwZSBhcyBpbnB1dCwg
YnV0IHRoZSBzY3JpcHQgbWFrZS1qcy1maWxlLWFycmF5cy5weQorICAgICAgICB3YXMgcGFzc2lu
ZyB0byBpdCBhIEZpbGVJTygpIG9iamVjdC4gU28sIHdoZW4gdGhlIGpzbWluIHNjcmlwdAorICAg
ICAgICBjYWxsZWQgcmVhZCgpIG92ZXIgdGhpcyBvYmplY3QsIHB5dGhvbjMgd2FzIHJldHVybmlu
ZyBhIHR5cGUgb2YKKyAgICAgICAgYnl0ZXMsIGJ1dCBmb3IgcHl0aG9uMiBpdCByZXR1cm5zIHR5
cGUgc3RyLgorCisgICAgICAgIFRoaXMgY2F1c2VkIHR3byBwcm9ibGVtczogZmlyc3QgdGhhdCBq
c21pbiBmYWlsZWQgdG8gZG8gYW55IG1pbmlmeWluZworICAgICAgICBiZWNhdXNlIGl0IHdhcyBj
b21wYXJpbmcgc3RyaW5ncyB3aXRoIGEgdmFyaWFibGUgb2YgdHlwZSBieXRlcy4KKyAgICAgICAg
VGhlIHNlY29uZCBtYWpvciBwcm9ibGVtIHdhcyBpbiB0aGUgd3JpdGUoKSBmdW5jdGlvbiwgd2hl
biB0aGUKKyAgICAgICAganNtaW4gc2NyaXB0IHRyaWVkIHRvIGNvbnZlcnQgYSBieXRlIGNoYXJh
Y3RlciB0byB0ZXh0IGJ5IGNhbGxpbmcKKyAgICAgICAgc3RyKCkgb24gaXQuIEJlY2F1c2Ugd2hh
dCB0aGlzIGRvZXMgaXMgbm90IHRvIGNvbnZlcnQgZnJvbSBieXRlCisgICAgICAgIHR5cGUgdG8g
c3RyaW5nLCBidXQgdG8gc2ltcGx5IGdlbmVyYXRlIGEgc3RyaW5nIHdpdGggdGhlIGZvcm1hdCBi
J2MnLgorICAgICAgICBTbyB0aGUganNtaW4gc2NyaXB0IHdhcyByZXR1cm5pbmcgYmFjayBhcyBt
aW5pZmllZCBKUyBjb21wbGV0ZQorICAgICAgICBnYXJiYWdlIGluIHRoZSBmb3JtIG9mICJiJ3Qn
YidoJ2InaCdiJ2kiIGZvciBweXRob24zLgorCisgICAgICAgIFRoZXJlZm9yZSwgd2hlbiBXZWJL
aXQgd2FzIGJ1aWx0IHdpdGggcHl0aG9uMyB0aGlzIGJyb2tlIGV2ZXJ5dGhpbmcKKyAgICAgICAg
dGhhdCBkZXBlbmRlZCBvbiB0aGUgZW1iZWRkZWQgSlMgY29kZSB0aGF0IG1ha2UtanMtZmlsZS1h
cnJheXMucHkKKyAgICAgICAgd2FzIHN1cHBvc2VkIHRvIGdlbmVyYXRlLCBsaWtlIHRoZSBtZWRp
YSBjb250cm9scyBhbmQgdGhlIFdlYkRyaXZlcgorICAgICAgICBhdG9tcy4KKworICAgICAgICBG
aXggdGhpcyBieSByZXdvcmtpbmcgdGhlIGNvZGUgaW4gbWFrZS1qcy1maWxlLWFycmF5cyBzY3Jp
cHQgdG8KKyAgICAgICAgcmVhZCB0aGUgZGF0YSBmcm9tIHRoZSBmaWxlIHVzaW5nIGEgVGV4dElP
V3JhcHBlciBpbiBweXRob24gMworICAgICAgICB3aXRoIGRlY29kaW5nIGZvciAndXRmLTgnLiBU
aGlzIGVuc3VyZXMgdGhhdCB0aGUganNtaW4gcmVjZWl2ZXMKKyAgICAgICAgYSB0ZXh0IHR5cGUu
IEZvciBweXRob24yIGtlZXAgdXNpbmcgdGhlIHNhbWUgRmlsZUlPIGNsYXNzLgorCisgICAgICAg
IE9uIHRoZSBqc21pbi5weSBzY3JpcHQgcmVtb3ZlIHRoZSBwcm9ibGVtYXRpYyBjYWxsIHRvIHN0
cigpIGluc2lkZQorICAgICAgICB0aGUgd3JpdGUoKSBmdW5jdGlvbiB3aGVuIHJ1bm5pbmcgd2l0
aCBweXRob24zLgorICAgICAgICBPbiB0b3Agb2YgdGhhdCwgYWRkIGFuIGV4dHJhIGNoZWNrIGlu
IGpzbWluLnB5IHNjcmlwdCB0byBtYWtlIGl0CisgICAgICAgIGZhaWwgaWYgdGhlIGNoYXJhY3Rl
ciB0eXBlIHJlYWQgaXMgbm90IHRoZSBvbmUgZXhwZWN0ZWQuIFRoaXMKKyAgICAgICAgd2lsbCBj
YXVzZSB0aGUgYnVpbGQgdG8gZmFpbCBpbnN0ZWFkIG9mIGZhaWxpbmcgc2lsZW50bHkgbGlrZQor
ICAgICAgICBub3cuIEkgZGlkIHNvbWUgdGVzdHMgYW5kIHRoZSBydW50aW1lIGNvc3Qgb2YgdGhp
cyBleHRyYSBjaGVjaworICAgICAgICBpcyBhbG1vc3QgemVyby4KKworICAgICAgICAqIFNjcmlw
dHMvanNtaW4ucHk6CisgICAgICAgIChKYXZhc2NyaXB0TWluaWZ5Lm1pbmlmeS53cml0ZSk6Cisg
ICAgICAgIChKYXZhc2NyaXB0TWluaWZ5KToKKyAgICAgICAgKiBTY3JpcHRzL21ha2UtanMtZmls
ZS1hcnJheXMucHk6CisgICAgICAgIChtYWluKToKKwogMjAxOS0wOC0yMSAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV2FzbTo6RnVuY3Rpb25QYXJzZXIgaXMgZmFp
bGluZyB0byBlbmZvcmNlIG1heEZ1bmN0aW9uTG9jYWxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvanNtaW4ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9qc21pbi5weQppbmRleCBmYzY0N2M3OWYzNzQ2NDgyMDYzNmFkNjgzYjk2Mzg2NmNkMjEw
ODBmLi5mZWYwYWRjYjcwYjllMGI1MWMxYWJmNmEyYTllMDk2NDg0YzI3NWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9qc21pbi5weQpAQCAtMjgsMTIgKzI4LDE0IEBAIGltcG9ydCBz
eXMKIGlzXzMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQogaWYgaXNfMzoKICAgICBpbXBv
cnQgaW8KKyAgICBweXRob25fdGV4dF90eXBlID0gc3RyCiBlbHNlOgogICAgIGltcG9ydCBTdHJp
bmdJTwogICAgIHRyeToKICAgICAgICAgaW1wb3J0IGNTdHJpbmdJTwogICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKICAgICAgICAgY1N0cmluZ0lPID0gTm9uZQorICAgIHB5dGhvbl90ZXh0X3R5cGUg
PSBiYXNlc3RyaW5nCiAKIAogX19hbGxfXyA9IFsnanNtaW4nLCAnSmF2YXNjcmlwdE1pbmlmeSdd
CkBAIC04MiwxNCArODQsMTUgQEAgY2xhc3MgSmF2YXNjcmlwdE1pbmlmeShvYmplY3QpOgogICAg
ICAgICAgICAgaWYgc3RyKGNoYXIpIGluICdyZXR1cm4nOgogICAgICAgICAgICAgICAgIHNlbGYu
cmV0dXJuX2J1ZiArPSBjaGFyCiAgICAgICAgICAgICAgICAgc2VsZi5pc19yZXR1cm4gPSBzZWxm
LnJldHVybl9idWYgPT0gJ3JldHVybicKLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8u
bWFqb3IgPT0gMjoKLSAgICAgICAgICAgICAgICBzZWxmLm91dHMud3JpdGUoY2hhcikKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5vdXRzLndyaXRlKHN0cihjaGFyKSkK
KyAgICAgICAgICAgIHNlbGYub3V0cy53cml0ZShjaGFyKQogICAgICAgICAgICAgaWYgc2VsZi5p
c19yZXR1cm46CiAgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5fYnVmID0gJycKIAotICAgICAg
ICByZWFkID0gc2VsZi5pbnMucmVhZAorICAgICAgICBkZWYgcmVhZChuKToKKyAgICAgICAgICAg
IGNoYXIgPSBzZWxmLmlucy5yZWFkKG4pCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShj
aGFyLCBweXRob25fdGV4dF90eXBlKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJFUlJPUjogVGhlIHNjcmlwdCBqc21pbi5weSBvbmx5IGNhbiBoYW5kbGUgdGV4dCBpbnB1dCwg
YnV0IGl0IHJlY2VpdmVkIGlucHV0IHdpdGggdHlwZSAlcyIgJSB0eXBlKGNoYXIpKQorICAgICAg
ICAgICAgcmV0dXJuIGNoYXIKIAogICAgICAgICBzcGFjZV9zdHJpbmdzID0gImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IlwKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEy
MzQ1Njc4OV8kXFwiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9t
YWtlLWpzLWZpbGUtYXJyYXlzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvbWFr
ZS1qcy1maWxlLWFycmF5cy5weQppbmRleCA4NjI0YmZlOGRhZjZjYzI0NGI1YjE2YThmYWM3MWM5
ZWUwODIwMTY1Li5kOWZmYjYwMmUzNWU4NDEzNDk3YTkxODJjZGVlZGUwYjZjMTQ4N2JmIDEwMDc1
NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9tYWtlLWpzLWZpbGUtYXJyYXlz
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL21ha2UtanMtZmlsZS1hcnJh
eXMucHkKQEAgLTI2LDExICsyNiw4IEBAIGltcG9ydCBpbwogaW1wb3J0IG9zCiBmcm9tIG9wdHBh
cnNlIGltcG9ydCBPcHRpb25QYXJzZXIKIGltcG9ydCBzeXMKLWlmIHN5cy52ZXJzaW9uX2luZm8u
bWFqb3IgPT0gMjoKLSAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotZWxzZToKLSAg
ICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotZnJvbSBqc21pbiBpbXBvcnQgSmF2YXNjcmlwdE1p
bmlmeQorZnJvbSBqc21pbiBpbXBvcnQganNtaW4KK2lzXzMgPSBzeXMudmVyc2lvbl9pbmZvID49
ICgzLCAwKQogCiAKIGRlZiBzdHJpbmdpZnlDb2RlcG9pbnQoY29kZSk6CkBAIC03MSwyNSArNjgs
MzQgQEAgZGVmIG1haW4oKToKICAgICBwcmludCgnI2luY2x1ZGUgInswOnN9IicuZm9ybWF0KG9z
LnBhdGguYmFzZW5hbWUoaGVhZGVyUGF0aCkpLCBmaWxlPXNvdXJjZUZpbGUpCiAgICAgcHJpbnQo
J25hbWVzcGFjZSB7MDpzfSB7eycuZm9ybWF0KG5hbWVzcGFjZSksIGZpbGU9c291cmNlRmlsZSkK
IAotICAgIGpzbSA9IEphdmFzY3JpcHRNaW5pZnkoKQotCiAgICAgZm9yIGlucHV0RmlsZU5hbWUg
aW4gaW5wdXRQYXRoczoKLSAgICAgICAgaW5wdXRTdHJlYW0gPSBpby5GaWxlSU8oaW5wdXRGaWxl
TmFtZSkKLSAgICAgICAgb3V0cHV0U3RyZWFtID0gU3RyaW5nSU8oKQorCisgICAgICAgIGlmIGlz
XzM6CisgICAgICAgICAgICBpbnB1dFN0cmVhbSA9IGlvLm9wZW4oaW5wdXRGaWxlTmFtZSwgZW5j
b2Rpbmc9J3V0Zi04JykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0g
aW8uRmlsZUlPKGlucHV0RmlsZU5hbWUpCisKKyAgICAgICAgZGF0YSA9IGlucHV0U3RyZWFtLnJl
YWQoKQogCiAgICAgICAgIGlmIG5vdCBvcHRpb25zLm5vX21pbmlmeToKLSAgICAgICAgICAgIGpz
bS5taW5pZnkoaW5wdXRTdHJlYW0sIG91dHB1dFN0cmVhbSkKLSAgICAgICAgICAgIGNoYXJhY3Rl
cnMgPSBvdXRwdXRTdHJlYW0uZ2V0dmFsdWUoKQorICAgICAgICAgICAgY2hhcmFjdGVycyA9IGpz
bWluKGRhdGEpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjaGFyYWN0ZXJzID0gaW5wdXRT
dHJlYW0ucmVhZCgpCisgICAgICAgICAgICBjaGFyYWN0ZXJzID0gZGF0YQorCisgICAgICAgIGlm
IGlzXzM6CisgICAgICAgICAgICBjb2RlcG9pbnRzID0gYnl0ZWFycmF5KGNoYXJhY3RlcnMsIGVu
Y29kaW5nPSd1dGYtOCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb2RlcG9pbnRzID0g
bGlzdChtYXAob3JkLCBjaGFyYWN0ZXJzKSkKKworICAgICAgICAjIFVzZSB0aGUgc2l6ZSBvZiBj
b2RlcG9pbnRzIGluc3RlYWQgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgICAgIyBiZWNhdXNlIFVU
Ri04IGNoYXJhY3RlcnMgbWF5IG5lZWQgbW9yZSB0aGFuIG9uZSBieXRlLgorICAgICAgICBzaXpl
ID0gbGVuKGNvZGVwb2ludHMpCiAKLSAgICAgICAgc2l6ZSA9IGxlbihjaGFyYWN0ZXJzKQogICAg
ICAgICB2YXJpYWJsZU5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoaW5w
dXRGaWxlTmFtZSkpWzBdCiAKICAgICAgICAgcHJpbnQoJ2V4dGVybiBjb25zdCBjaGFyIHswOnN9
SmF2YVNjcmlwdFt7MTpkfV07Jy5mb3JtYXQodmFyaWFibGVOYW1lLCBzaXplKSwgZmlsZT1oZWFk
ZXJGaWxlKQogICAgICAgICBwcmludCgnY29uc3QgY2hhciB7MDpzfUphdmFTY3JpcHRbezE6ZH1d
ID0ge3snLmZvcm1hdCh2YXJpYWJsZU5hbWUsIHNpemUpLCBmaWxlPXNvdXJjZUZpbGUpCiAKLSAg
ICAgICAgY29kZXBvaW50cyA9IGxpc3QobWFwKG9yZCwgY2hhcmFjdGVycykpCiAgICAgICAgIGZv
ciBjb2RlcG9pbnRDaHVuayBpbiBjaHVuayhjb2RlcG9pbnRzLCAxNik6CiAgICAgICAgICAgICBw
cmludCgnICAgIHswOnN9LCcuZm9ybWF0KCcsJy5qb2luKG1hcChzdHJpbmdpZnlDb2RlcG9pbnQs
IGNvZGVwb2ludENodW5rKSkpLCBmaWxlPXNvdXJjZUZpbGUpCiAK
</data>
<flag name="review"
          id="392854"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>