<?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>180696</bug_id>
          
          <creation_ts>2017-12-12 07:54:31 -0800</creation_ts>
          <short_desc>createMediaElementSource() not working with Hls stream</short_desc>
          <delta_ts>2025-11-04 03:24:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>Safari 10</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Francesco Cretti">francesco.cretti</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>8beeeaaat</cc>
    
    <cc>adeshpandey836</cc>
    
    <cc>b</cc>
    
    <cc>bennlich</cc>
    
    <cc>chrisguttandin</cc>
    
    <cc>electroteque</cc>
    
    <cc>erikmillergalow</cc>
    
    <cc>greg</cc>
    
    <cc>guy.sapir</cc>
    
    <cc>it</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonas.liden</cc>
    
    <cc>jonlee</cc>
    
    <cc>jtodaone</cc>
    
    <cc>justin</cc>
    
    <cc>olliek</cc>
    
    <cc>paulineh</cc>
    
    <cc>suyuan.chang</cc>
    
    <cc>tom.jenkinson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xofino7406</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380655</commentid>
    <comment_count>0</comment_count>
      <attachid>329112</attachid>
    <who name="Francesco Cretti">francesco.cretti</who>
    <bug_when>2017-12-12 07:54:31 -0800</bug_when>
    <thetext>Created attachment 329112
Source code of demo page

Hi everyone,
I&apos;m developing an interactive web application based on WebAudio Api and Hls streams.

I know that a previous issue has been fixed (https://bugs.webkit.org/show_bug.cgi?id=143332), that prevented to import audio content from an HTML5 &lt;audio&gt; tag inside the WebAudio routing graph.

I found out that if the content source of the HTML5 &lt;audio&gt; tag it&apos;s an HLS stream (or other stream protocols, such as icecast) the bud is still present.

I prepared an online demo here: http://anaconda.polito.it:9080/~cretti/Hls_createMediaElementsource/

In this page an HLS stream is loaded with a an HTML5 &lt;audio&gt; tag and then is wrapped inside the WebAudio API Context with the createMediaElementSource() method. 
Later, the song is filtered with a LPF at 500 Hz using a BiquadFilter Node. Furthermore, the song volume is modulated by the mouse vertical position, such as in this example. 

The script works with Chrome, Firefox or Opera but it does not in Safari, where the stream plays, but the WebAudioAPI cannot apply any effect.

Thanks in any case,
Francesco</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384751</commentid>
    <comment_count>1</comment_count>
    <who name="Jaewon Choi">jtodaone</who>
    <bug_when>2017-12-26 15:04:56 -0800</bug_when>
    <thetext>Yeah, I also visited here for the first time to report the same problem.

Hope it gets fixed soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388886</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-12 11:45:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/36477841&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389915</commentid>
    <comment_count>3</comment_count>
    <who name="Francesco Cretti">francesco.cretti</who>
    <bug_when>2018-01-17 01:01:27 -0800</bug_when>
    <thetext>I would also add that on iOS the createMeadiaElementSource() does not work with an entire MP3 file either, while it works on Safari desktop (https://bugs.webkit.org/show_bug.cgi?id=143332).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395478</commentid>
    <comment_count>4</comment_count>
    <who name="Tom">tom.jenkinson</who>
    <bug_when>2018-02-01 08:35:58 -0800</bug_when>
    <thetext>We have a similar problem on desktop. It doesn&apos;t seem to work with MSE. It&apos;s as if the element is not routed into the web audio graph.

The sound is still heard if nothing is connected to the audio context destination, and any gain nodes have no effect.

Would be great to have this fixed as it means we currently cannot enable a feature on Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395479</commentid>
    <comment_count>5</comment_count>
    <who name="Tom">tom.jenkinson</who>
    <bug_when>2018-02-01 08:36:49 -0800</bug_when>
    <thetext>This might also be related: https://openradar.appspot.com/37084774</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803616</commentid>
    <comment_count>6</comment_count>
    <who name="Guy">guy.sapir</who>
    <bug_when>2021-10-12 18:55:31 -0700</bug_when>
    <thetext>This is still not working also for Safari 15 version. 

createMediaElementSource will work ok with Audio mp3 or Video mp4 as the source for the HTMLMediaElement, but for m3u8/hls stream, as the source the HTMLMediaElement&apos;s audio is not correctly routed to the AudioContext and instead the audio is not passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831655</commentid>
    <comment_count>7</comment_count>
    <who name="Ollie">olliek</who>
    <bug_when>2022-01-18 04:25:51 -0800</bug_when>
    <thetext>Is this ever going to be fixed or even looked at? 3 years later and we still can&apos;t do audio visualisations from live HLS/MP3 streams in Safari, this is really holding our product back currently as we have to provide a CSS fallback.

Related 
https://bugs.webkit.org/show_bug.cgi?id=195043
https://bugs.webkit.org/show_bug.cgi?id=231656

Multiple reports on various JS libs as well.

https://github.com/foobar404/Wave.js/issues/17
https://audiomotion.dev/#/?id=visualization-of-live-streams-wont-work-on-safari
https://discourse.threejs.org/t/audioanalyser-not-working-with-audio-source-as-stream-type-in-safari/18950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841526</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-02-14 19:03:19 -0800</bug_when>
    <thetext>&lt;rdar://84328473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1893853</commentid>
    <comment_count>9</comment_count>
    <who name="">justin</who>
    <bug_when>2022-08-25 15:13:26 -0700</bug_when>
    <thetext>Our product is also severely impacted by this bug. 

While other major browsers like Chrome and Firefox have no issue with using HLS-backed media elements within their Web Audio contexts, Safari still seems to not support this. 

We have confirmed that this bug persists on Safari 15.5 and Safari Tech Preview 16.0 even in the case where all HLS assets are hosted from the same origin, so it seems that Safari is not adhering to the W3C spec (based on my understanding).

We would greatly appreciate if this bug could receive higher priority and be resolved soon. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917926</commentid>
    <comment_count>10</comment_count>
    <who name="Benny Lichtner">bennlich</who>
    <bug_when>2022-12-09 06:17:04 -0800</bug_when>
    <thetext>Having the same issue here. We are unable to serve HLS media to our ios users until this bug is fixed :(

Seems to be related to or a duplicate of: https://bugs.webkit.org/show_bug.cgi?id=231656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917928</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-12-09 06:32:20 -0800</bug_when>
    <thetext>*** Bug 231656 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1953571</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Chang">suyuan.chang</who>
    <bug_when>2023-05-07 20:22:39 -0700</bug_when>
    <thetext>I have the same issue on latest iOS and macOS Safari.
Leave a comment to raise attention, hopefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977784</commentid>
    <comment_count>13</comment_count>
    <who name="brett">b</who>
    <bug_when>2023-09-15 16:38:20 -0700</bug_when>
    <thetext>running into the same issue here. has anyone figured out any solutions yet? this seems to be quite old. 

tested on Safari 16.6 (macOS 13.5.2) + Safari Preview Release 178 + iOS 16.6.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2037829</commentid>
    <comment_count>14</comment_count>
    <who name="Erik Miller-Galow">erikmillergalow</who>
    <bug_when>2024-05-24 19:46:55 -0700</bug_when>
    <thetext>I&apos;m running into the same thing, trying to render visuals to react to my icecast stream. It works in all browsers I&apos;ve tested besides Safari. Audio does play in Safari but I&apos;ve yet to find a way to retrieve the frequency data from my analyser (it&apos;s all zeroes in Safari).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2074080</commentid>
    <comment_count>15</comment_count>
    <who name="Robert">xofino7406</who>
    <bug_when>2024-11-09 19:35:21 -0800</bug_when>
    <thetext>Hello, I had the displeasure of encountering this longstanding bug today when I decided to use Safari to view the website I had been developing
Without getting into details, this is quite a kafkaesque situation considering it all works perfectly on other browsers and there are no easy solutions to this bug.
This is a StackOverflow question from 2016 about this bug: https://stackoverflow.com/questions/38936642
you can see that in October 2024, the original poster came back and said: &quot;This still haunts me 8 years later&quot;

I&apos;d really appreciate if this bug could be fixed to save future devs from PTSD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2082666</commentid>
    <comment_count>16</comment_count>
    <who name="Jonas Lidén">jonas.liden</who>
    <bug_when>2024-12-18 06:47:21 -0800</bug_when>
    <thetext>We&apos;re also having this issue in our products in the M&amp;E space. We are using the Media Source Extensions API together with Web Audio API and that works great with Chrome and Firefox but not in Safari. We use the Web Audio API to extract waveform data and it&apos;s reporting all zeroes. We also use it for other purposes, like audio routing and solo/mute functionality that does not work, it&apos;s like the source nodes are not connected to the audio graph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2097701</commentid>
    <comment_count>17</comment_count>
    <who name="dj8000">it</who>
    <bug_when>2025-02-24 22:32:30 -0800</bug_when>
    <thetext>Dear Sirs:

I would like to the add to the chorus as regards this bug. The people want stream visualizers! Let them visualize the stream! WebKit&apos;s total disregard for createMediaElementSource spec is a major blow to those who would like to explore the richness of the Web Audio API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2101930</commentid>
    <comment_count>18</comment_count>
    <who name="Adesh Pandey">adeshpandey836</who>
    <bug_when>2025-03-10 08:43:10 -0700</bug_when>
    <thetext>Hey! I totally agree with @dj800, we have been using visualisers widely and this has been a pain to manage. 
What I have done rn and might be a intermediate fix for people is, play the audio using audio element and then also play it in another audio context (make sure to implement logics that ensure they are always at the same state). 
Now, play the context along with audio element but do not add the gain to the source just set the gain node as 1. 
This works like a charm but very hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2137856</commentid>
    <comment_count>19</comment_count>
    <who name="gogonowski">greg</who>
    <bug_when>2025-08-20 16:45:01 -0700</bug_when>
    <thetext>Here is another relevant WebAudio Demo using HLS.
Specifically, this is hls.js using Managed Media Source.

https://la2.indexcom.com/player/aa/
Choose the first stream, and scroll down.

Safari fails to render the audio visualization.
This will be more than likely due to the native HLS support , and the lack of an audio pipe to support web audio when in HLS mode.
Works perfectly on Mac using Firefox, as that will more than likely be MSE.
Chrome clips the floating-point audio at +/-1.0. But it does render. Sorry Google!


Any questions:
greg@indexcom.com
Thanks.
/greg.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2150530</commentid>
    <comment_count>20</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-13 07:33:37 -0700</bug_when>
    <thetext>I had no idea there was a problem with HLS but as expected webkit don&apos;t run any tests with HLS. Their own streaming format. Its the same with WebGL they don&apos;t use HLS texture tests so there is always bugs there.

What is the work around ? It doesn&apos;t look like they care to fix it to be compatible with every other browser that works with HLS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2150534</commentid>
    <comment_count>21</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-13 08:01:58 -0700</bug_when>
    <thetext>Using mediasource is also a problem with both hls.js and shaka player. Even Dash under Shaka player there is no audio data. No idea why mp4 works but this does not. It&apos;s not just a native HLS issue. What is the work around ? Maybe Brave should become the default browser in macOS and IOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2151163</commentid>
    <comment_count>22</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-14 23:05:09 -0700</bug_when>
    <thetext>I looked into intercepting the audio data of a chunk with hls.js to add to a buffersource. But it seems really hard to see if it even works. It can&apos;t use the chunk directly and the aac may need to be decoded into channel data via a worker creating a complex work around. What is the suggested work around ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2151219</commentid>
    <comment_count>23</comment_count>
    <who name="Ollie">olliek</who>
    <bug_when>2025-10-15 04:27:41 -0700</bug_when>
    <thetext>There is no workaround for this, and seeing as though this bug was initially reported 8 years ago I don&apos;t hold out much hope they will ever fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2151313</commentid>
    <comment_count>24</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-15 08:36:52 -0700</bug_when>
    <thetext>Where there is a will there is a way. I believe source buffer of the audio data of the fragment in a way it accepts the aac data may work. I just cant find an example how source buffer can work with live streams and ts chunks. I tried AudioDecoder api but failed to decode. the aac data is already transmuxed from the ts via hls.js. I just need to get it working on chrome first. 

For Safari can use mediasource streaming method for hls and with hls.js or hopefully videojs can intercept the audio data about to be buffered. I can provide demo once I get it working but some suggestions how to get source buffer working with the transmuxed aac data would be good.

as annoying as it is. It&apos;s not working right yet

https://electroteque.org/dev/safari/video5.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2153269</commentid>
    <comment_count>25</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-22 00:00:45 -0700</bug_when>
    <thetext>Unfortunately I am stuck trying to make the demuxed AAC packet useable for a source buffer node. Nothing accepts partial packets including decoders. I put a call out here. If the packet can be formatted to be usable this work around may just work. There is zero resources about making partial chunk packets usable for source buffers and audio decoders. I didn&apos;t realise HLS was broken on Safari until now but not surprised as HLS is never used for any of the browser tests.

https://stackoverflow.com/questions/79794737/making-an-aac-packet-usable-with-creatsourcebuffer-audio-api-to-be-usable-with-h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155468</commentid>
    <comment_count>26</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-10-31 02:39:44 -0700</bug_when>
    <thetext>I can&apos;t understand why I have to keep making work arounds for webkit with anything to do with HLS. They need to add HLS sources to all their tests. It was the same with having to figure out work arounds for webgl rendering of HLS bugs years ago which I figured out. So costly and time consuming.

After many hours and weeks I figured out a solution. But it&apos;s playing back the buffers so not in sync with the video. I need to sync the buffers with the video timecode while playing back. Any ideas how to schedule the source buffers correctly ?

So my own solution needs alot of work to integrate the different setup where the element source cant be used. adding complications.

After hours researching what is required and no information out there. Basically you need to capture the start segment aac packet then append to further aac packets to be able to decode it. Decoding is required before making a buffer source. The start segment includes headers. 

So it works with hls.js but there is videojs vhs to figure out now.

https://electroteque.org/dev/safari/safarifix.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155708</commentid>
    <comment_count>27</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-11-01 02:03:28 -0700</bug_when>
    <thetext>I figured out videojs didn&apos;t think it through providing an append buffer event with the data and init segment. And unfortunately mediasource doesn&apos;t allow access to the bytes appended. So it required patching the api to get to it.

https://electroteque.org/dev/safari/videojs.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155710</commentid>
    <comment_count>28</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-11-01 02:10:42 -0700</bug_when>
    <thetext>The source buffer node has to be in sync with the playback. As its automatically playing back the buffered data. That is the last problem to figure out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155725</commentid>
    <comment_count>29</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-11-01 06:35:24 -0700</bug_when>
    <thetext>I&apos;ve figured out a synchronisation solution using texttrack cues. It will play at the exact time as the video. However another roadblock now is forcing mediasource for safari with videojs. It&apos;s broken. 

Perhaps webkit can internally do what this hack is doing externally if its broken with HLS chunks with the mediaelement source.

https://electroteque.org/dev/safari/videojs.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155816</commentid>
    <comment_count>30</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-11-02 09:09:52 -0800</bug_when>
    <thetext>Here is the hack working with shaka player. They also did not think about offering an append event so requires patching their api.

video.js&apos;s built in VHS tech is broken with Safari and likely has for a while as they don&apos;t test it like webkit doesn&apos;t make tests for HLS. So requires either hls.js or shakaplayer as a tech to capture the data. I will use my shakaplayer tech then.

https://electroteque.org/dev/safari/shakaplayer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2156233</commentid>
    <comment_count>31</comment_count>
    <who name="Daniel Rossi">electroteque</who>
    <bug_when>2025-11-04 03:24:08 -0800</bug_when>
    <thetext>I&apos;ve released the working integrations showing audio worker nodes working with the buffer source node. To show an audio meter. the videojs version has to use shaka player which requires patching the api as they dont offer append events. The built in mediasource library is broken with safari. The other is using hls.js capturing data from the event,

I can&apos;t believe the level of effort required when dealing with webkit. There is so many missing api issues and bugs. This one has been the hardest and time consuming hack I&apos;ve had to do  to date. 

https://electroteque.org/plugins/videojs/audio-visualiser/demos/hls/
https://electroteque.org/plugins/flowplayer/flowplayer7/audio-visualiser/demos/hls/</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>329112</attachid>
            <date>2017-12-12 07:54:31 -0800</date>
            <delta_ts>2017-12-12 07:54:31 -0800</delta_ts>
            <desc>Source code of demo page</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>5906</size>
            <attacher name="Francesco Cretti">francesco.cretti</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgoKICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KICAgIDx0aXRsZT5bSExTICsgQ1JFQVRFLU1FRElBRUxFTUVOVC1TT1VSQ0VdIFRFU1Q8L3Rp
dGxlPgogICAgPHNjcmlwdCBzcmM9Imhscy5qcyI+PC9zY3JpcHQ+CgogIDwvaGVhZD4KICAgIDxi
b2R5PgogICAgICA8aDE+SExTIHN0cmVhbSArIGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSgpPC9o
MT4KICAgICAgPHA+VGhpcyB0ZXN0IGlsbHVzdHJhdGVzIHRoZSB1c2Ugb2YgbWV0aG9kIDxhIGhy
ZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BdWRp
b0NvbnRleHQvY3JlYXRlTWVkaWFFbGVtZW50U291cmNlIj5jcmVhdGVNZWRpYUVsZW1lbnRTb3Vy
Y2UoKTwvYT4KICAgICAgdG8gY3JlYXRlIGEgc291cmNlIG5vZGUgc3RhcnRpbmcgZnJvbSBhbiBI
VE1MNSAmbHQ7YXVkaW8mZ3Q7IHRhZyB0aGF0IGhhcyBhbiBITFMgc3RyZWFtIGFzIHNvdXJjZS4K
ICAgICAgPGJyPlRoaXMgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSBtb3N0IGNvbW1vbiBicm93c2Vy
cyBzdWNoIGFzIENocm9tZSwgRmlyZWZveCBhbmQgU2FmYXJpLgogICAgICA8YnI+U2FmYXJpIHN1
cHBvcnRzIG5hdGl2ZWx5IEhMUyBzdHJlYW1pbmcgc2luY2UgaXQncyBhbgogICAgICA8YSBocmVm
PSJodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9jb250ZW50L2RvY3VtZW50YXRp
b24vTmV0d29ya2luZ0ludGVybmV0L0NvbmNlcHR1YWwvU3RyZWFtaW5nTWVkaWFHdWlkZS9JbnRy
b2R1Y3Rpb24vSW50cm9kdWN0aW9uLmh0bWwjLy9hcHBsZV9yZWYvZG9jL3VpZC9UUDQwMDA4MzMy
LUNIMS1TVzEiPkFwcGxlIHRlY2hub2xvZ3k8L2E+LgogICAgICBGb3Igb3RoZXIgYnJvd3NlcnMg
aXQncyBwb3NzaWJsZSB0byB1c2UgdGhlIGV4dGVybmFsIGxpYnJhcnkgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3ZpZGVvLWRldi9obHMuanMiPkhscy5qczwvYT4KICAgICAgPGJyPkhscyBz
dHJlYW0gaXMgZ2VuZXJhdGVkIHVzaW5nIHRoZQogICAgICA8YSBocmVmPSJodHRwczovL2RldmVs
b3Blci5hcHBsZS5jb20vbGlicmFyeS9jb250ZW50L3RlY2hub3Rlcy90bjIyMjQvX2luZGV4Lmh0
bWwjLy9hcHBsZV9yZWYvZG9jL3VpZC9EVFM0MDAwOTc0NS1DSDEtTUVESUFTVFJFQU1TRUdNRU5U
QVRJT04tTUVESUFfRklMRV9TRUdNRU5URVJfVE9PTCI+bWVkaWFmaWxlc2VnbWVudGVyIHRvb2w8
L2E+CiAgICAgIGJ5IEFwcGxlLgogICAgICA8YnI+PGJyPiBJbiB0aGlzIHBhZ2UgYW4gSExTIHN0
cmVhbSBpcyBsb2FkZWQgd2l0aCBhIGFuIEhUTUw1ICZsdDthdWRpbyZndDsgdGFnCiAgICAgIGFu
ZCB0aGVuIGlzIHdyYXBwZWQgaW5zaWRlIHRoZSBXZWJBdWRpbyBBUEkgQ29udGV4dCB3aXRoIHRo
ZSBjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoKSBtZXRob2QuCiAgICAgIDxicj5MYXRlciwgdGhl
IHNvbmcgaXMgZmlsdGVyZWQgd2l0aCBhIExQRiBhdCA1MDAgSHogdXNpbmcgYSA8YSBocmVmPSJo
dHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQmlxdWFkRmls
dGVyTm9kZSI+IEJpcXVhZEZpbHRlciBOb2RlLjwvYT4KICAgICAgRnVydGhlcm1vcmUsIHRoZSBz
b25nIHZvbHVtZSBpcyBtb2R1bGF0ZWQgYnkgdGhlIG1vdXNlIHZlcnRpY2FsIHBvc2l0aW9uLCBz
dWNoIGFzCiAgICAgIGluIDxhIGhyZWY9Imh0dHBzOi8vbWRuLmdpdGh1Yi5pby93ZWJhdWRpby1l
eGFtcGxlcy9tZWRpYS1zb3VyY2UtYnVmZmVyLyI+dGhpcyBleGFtcGxlLjwvYT4KICAgICAgPGJy
Pjxicj4gV2UgY2FuIG5vdGljZSB0aGF0IHRoZSBzY3JpcHQgd29ya3MgcGVyZmVjdGx5IHdpdGgg
Q2hyb21lIG9yIEZpcmVmb3ggYnV0IGl0IGRvZXMgbm90IGluIFNhZmFyaS4KICAgICAgPGJyPjxi
cj5TYW1wbGUgc29uZyBieSA8YSBocmVmPSJodHRwczovL3d3dy5iZW5zb3VuZC5jb20iPkJlbm11
c2ljPC9hPjwvcD4KCiAgICAgIDxhdWRpbyBpZD0nYXVkaW8xJyBhdXRvcGxheT0nZmFsc2UnIGNv
bnRyb2xzPSdjb250cm9scyc+PC9hdWRpbz4KICAgICAgPGJ1dHRvbiBpZD0nZmlsdGVyQnV0dG9u
JyB0eXBlPSJidXR0b24iPkRpc2FibGUgTFBGPC9idXR0b24+CiAgICAgIDxzY3JpcHQgdHlwZT0n
dGV4dC9qYXZhc2NyaXB0Jz4KCiAgICAgIHZhciBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYXVkaW8xJyk7CiAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZmlsdGVyQnV0dG9uJyk7CiAgICAgIHZhciBzb3VyY2VVUkw9J2F1ZGlvL2F1ZGlv
MS9tYXN0ZXIxLm0zdTgnOwoKICAgICAgLy8gQnJvd3NlciBkZXRlY3Rpb24KICAgICAgLy8gT3Bl
cmEgOC4wKwogICAgICB2YXIgaXNPcGVyYSA9ICghIXdpbmRvdy5vcHIgJiYgISFvcHIuYWRkb25z
KSB8fCAhIXdpbmRvdy5vcGVyYSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJyBPUFIv
JykgPj0gMDsKICAgICAgLy8gRmlyZWZveCAxLjArCiAgICAgIHZhciBpc0ZpcmVmb3ggPSB0eXBl
b2YgSW5zdGFsbFRyaWdnZXIgIT09ICd1bmRlZmluZWQnOwogICAgICAvLyBTYWZhcmkgMy4wKyAi
W29iamVjdCBIVE1MRWxlbWVudENvbnN0cnVjdG9yXSIKICAgICAgdmFyIGlzU2FmYXJpID0gL2Nv
bnN0cnVjdG9yL2kudGVzdCh3aW5kb3cuSFRNTEVsZW1lbnQpIHx8IChmdW5jdGlvbiAocCkgeyBy
ZXR1cm4gcC50b1N0cmluZygpID09PSAiW29iamVjdCBTYWZhcmlSZW1vdGVOb3RpZmljYXRpb25d
IjsgfSkoIXdpbmRvd1snc2FmYXJpJ10gfHwgKHR5cGVvZiBzYWZhcmkgIT09ICd1bmRlZmluZWQn
ICYmIHNhZmFyaS5wdXNoTm90aWZpY2F0aW9uKSk7CiAgICAgIC8vIEludGVybmV0IEV4cGxvcmVy
IDYtMTEKICAgICAgdmFyIGlzSUUgPSAvKkBjY19vbiFAKi9mYWxzZSB8fCAhIWRvY3VtZW50LmRv
Y3VtZW50TW9kZTsKICAgICAgLy8gRWRnZSAyMCsKICAgICAgdmFyIGlzRWRnZSA9ICFpc0lFICYm
ICEhd2luZG93LlN0eWxlTWVkaWE7CiAgICAgIC8vIENocm9tZSAxKwogICAgICB2YXIgaXNDaHJv
bWUgPSAhIXdpbmRvdy5jaHJvbWUgJiYgISF3aW5kb3cuY2hyb21lLndlYnN0b3JlOwogICAgICAv
LyBCbGluayBlbmdpbmUgZGV0ZWN0aW9uCiAgICAgIHZhciBpc0JsaW5rID0gKGlzQ2hyb21lIHx8
IGlzT3BlcmEpICYmICEhd2luZG93LkNTUzsKCgogICAgICBpZiAoSGxzLmlzU3VwcG9ydGVkKCkg
JiYgIWlzU2FmYXJpKSB7CiAgICAgICAgYWxlcnQgKCdVc2UgSGxzLmpzIGxpYnJhcnknKTsKICAg
ICAgICBhdWRpb0VsZW1lbnQuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJzsgLy9wcmV2ZW50IENP
UlMgZXJyb3JzCiAgICAgICAgYXVkaW9FbGVtZW50Lmxvb3A9dHJ1ZTsgLy9hY3RpdmF0ZSBsb29w
CiAgICAgICAgdmFyIGhscyA9IG5ldyBIbHMoKTsKICAgICAgICBobHMubG9hZFNvdXJjZShzb3Vy
Y2VVUkwpOwogICAgICAgIGhscy5hdHRhY2hNZWRpYShhdWRpb0VsZW1lbnQpOwogICAgICAgIGhs
cy5vbihIbHMuRXZlbnRzLk1BTklGRVNUX1BBUlNFRCxmdW5jdGlvbigpIHsKICAgICAgICAgIGNv
bnNvbGUubG9nKCdIbHMgYXVkaW8gbWFuaWZlc3QgcGFyc2VkJykKICAgICAgICB9KTsKICAgICAg
fSBlbHNlIHsKICAgICAgICBhbGVydCAoIlVzZSBuYXRpdmUgaGxzIHN1cHBvcnQiKTsKICAgICAg
ICBhdWRpb0VsZW1lbnQuc3JjID0gc291cmNlVVJMOwogICAgICAgIGF1ZGlvRWxlbWVudC5jcm9z
c09yaWdpbiA9ICdhbm9ueW1vdXMnOwogICAgICAgIGF1ZGlvRWxlbWVudC5sb29wPXRydWU7IC8v
YWN0aXZhdGUgbG9vcAogICAgICB9CgogICAgICAvLyBXZWJBdWRpb0FwaSB2YXJpYWJsZXMKICAg
ICAgdmFyIGF1ZGlvQ3R4ID0gY3JlYXRlQXVkaW9Db250ZXh0KCk7CiAgICAgIHZhciBzb3VyY2Ug
PSBhdWRpb0N0eC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW9FbGVtZW50KTsKICAgICAg
dmFyIGZpbHRlck5vZGUgPSBhdWRpb0N0eC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKICAgICAgZmls
dGVyTm9kZS50eXBlID0gJ2xvd3Bhc3MnOwogICAgICBmaWx0ZXJOb2RlLmZyZXF1ZW5jeS52YWx1
ZSA9IDUwMDsKICAgICAgdmFyIGdhaW5Ob2RlID0gYXVkaW9DdHguY3JlYXRlR2FpbigpOwogICAg
ICB2YXIgQ3VyWTsKICAgICAgdmFyIEhFSUdIVCA9IHdpbmRvdy5pbm5lckhlaWdodDsKCiAgICAg
IC8vIENvbm5lY3Q6IHNvdXJjZSAtLT4gZmlsdGVyIC0tPiBnYWluIC0tPiBkZXN0aW5hdGlvbgog
ICAgICBzb3VyY2UuY29ubmVjdChmaWx0ZXJOb2RlKTsKICAgICAgZmlsdGVyTm9kZS5jb25uZWN0
KGdhaW5Ob2RlKTsKICAgICAgZ2Fpbk5vZGUuY29ubmVjdChhdWRpb0N0eC5kZXN0aW5hdGlvbik7
CgogICAgICAvLyBQbGF5CiAgICAgIGF1ZGlvRWxlbWVudC5wbGF5KCk7CgogICAgICAvLyBGdW5j
dGlvbnMKICAgICAgZnVuY3Rpb24gY3JlYXRlQXVkaW9Db250ZXh0KCkgewogICAgICAgIHZhciBj
b250ZXh0Q2xhc3MgPSAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9D
b250ZXh0IHx8CiAgICAgICAgICB3aW5kb3cubW96QXVkaW9Db250ZXh0IHx8IHdpbmRvdy5vQXVk
aW9Db250ZXh0IHx8IHdpbmRvdy5tc0F1ZGlvQ29udGV4dCk7CiAgICAgICAgICBpZiAoY29udGV4
dENsYXNzKSB7CiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IGNvbnRleHRDbGFzcygpOwog
ICAgICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
IHdpbmRvdy5hbGVydCgnV2ViQXVkaW9BUEkgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93
c2VyJyk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgZnVuY3Rpb24gdXBkYXRlUGFnZShl
KSB7CiAgICAgICAgQ3VyWSA9ICh3aW5kb3cuRXZlbnQpID8gZS5wYWdlWSA6IGV2ZW50LmNsaWVu
dFkgKyAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA/IGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5zY3JvbGxUb3AgOiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCk7CiAgICAgICAg
Z2Fpbk5vZGUuZ2Fpbi52YWx1ZT1DdXJZL0hFSUdIVDsKICAgICAgICBjb25zb2xlLmxvZygnZ2Fp
bi52YWx1ZTogJyArIGdhaW5Ob2RlLmdhaW4udmFsdWUpOwogICAgICB9CgogICAgICBmdW5jdGlv
biBkaXNhYmxlTFBGKCkgewogICAgICAgIHNvdXJjZS5kaXNjb25uZWN0KCk7CiAgICAgICAgZmls
dGVyTm9kZS5kaXNjb25uZWN0KCk7CiAgICAgICAgc291cmNlLmNvbm5lY3QoZ2Fpbk5vZGUpOwog
ICAgICAgIGJ1dHRvbi5pbm5lckhUTUwgPSAgJ0VuYWJsZSBMUEYnOwogICAgICAgIGJ1dHRvbi5y
ZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGRpc2FibGVMUEYpOwogICAgICAgIGJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGVuYWJsZUxQRik7CiAgICAgIH0KICAgICAgZnVuY3Rp
b24gZW5hYmxlTFBGKCkgewogICAgICAgIHNvdXJjZS5kaXNjb25uZWN0KCk7CiAgICAgICAgc291
cmNlLmNvbm5lY3QoZmlsdGVyTm9kZSk7CiAgICAgICAgZmlsdGVyTm9kZS5jb25uZWN0KGdhaW5O
b2RlKTsKICAgICAgICBidXR0b24uaW5uZXJIVE1MID0gICdEaXNhYmxlIExQRic7CiAgICAgICAg
YnV0dG9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZW5hYmxlTFBGKTsKICAgICAgICBi
dXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBkaXNhYmxlTFBGKTsKICAgICAgfQoKICAg
ICAgLy8gTElTVEVORVJTCiAgICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gdXBkYXRlUGFnZTsK
CiAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGRpc2FibGVMUEYpOwoKICAg
ICAgPC9zY3JpcHQ+CiAgICA8L2JvZHk+CiAgPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>