<?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>206636</bug_id>
          
          <creation_ts>2020-01-22 17:40:47 -0800</creation_ts>
          <short_desc>getUserMedia video stream to texture sometimes gives old frames.</short_desc>
          <delta_ts>2026-01-12 09:06:19 -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>WebRTC</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>iOS 13</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="Nicholas Butko">nb</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>graouts</cc>
    
    <cc>jer.noble</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>simontaylor1</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1609890</commentid>
    <comment_count>0</comment_count>
      <attachid>388497</attachid>
    <who name="Nicholas Butko">nb</who>
    <bug_when>2020-01-22 17:40:47 -0800</bug_when>
    <thetext>Created attachment 388497
source code for repro case

Sometimes calling 

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video)

populates the texture with frame data that is old, usually 2-3 frames old but sometimes 15 or more.  When drawing these textures to a canvas, this gives an impression that the video feed is jumping, because a scene from a while ago will flash momentarily.

The effect is rare in normal conditions but can be reliably triggered by extending the length of an animation frame by a long random interval, e.g. 20ms-200ms.

The effect can be mitigated by skipping every other animation frame, i.e. 

const nativeRaf = window.requestAnimationFrame
window.requestAnimationFrame = (fn) =&gt; nativeRaf(() =&gt; nativeRaf((timestamp) =&gt; fn(timestamp)))

A repro case can be viewed on an iphone here: 8th.io/ft4h9

The repro app does the following:
* getUserMedia -&gt; stream -&gt; video
* video -&gt; texture (there is a rotating pool of 10 textures)
* texture -&gt; luminance shader -&gt; framebuffer -&gt; readpixels -&gt; uint8array
* texture -&gt; canvas -&gt; window
* uint8array -&gt; frame hash code based on pixel content -&gt; frame hash history
* search frame hash history to find duplicate hashes
* if there is a duplicate hash, print the number of frames ago for the duplicate frame pixels (do this for the 5 most recent duplicates), and increment a counter for the number of duplicate frames.

We tested this with an iPhone11 Pro with iOS 13.3.

Source code for the repro is attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609978</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-22 22:52:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/58825426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610074</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-23 06:00:55 -0800</bug_when>
    <thetext>I am wondering whether this still repro with WebKit ToT.

We got rid off re-enqueuing samples when the display layer could not go fast enough, which could explain why old samples would come back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829201</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Taylor">simontaylor1</who>
    <bug_when>2022-01-07 23:41:03 -0800</bug_when>
    <thetext>As you mention using a texture pool, this sounds like a duplicate of Bug 203148.

Effectively there&apos;s an optimization in WebKit that prevents re-uploading frames if the source video hasn&apos;t changed since the last texImage2d call, but it fails to check whether a different texture is now bound.

In that case the previous content of the newly-bound texture is left unchanged, which with a texture pool will probably appear to be an older frame.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>388497</attachid>
            <date>2020-01-22 17:40:47 -0800</date>
            <delta_ts>2020-01-22 17:40:47 -0800</delta_ts>
            <desc>source code for repro case</desc>
            <filename>webkit-duplicate-frames.js</filename>
            <type>text/javascript</type>
            <size>7514</size>
            <attacher name="Nicholas Butko">nb</attacher>
            
              <data encoding="base64">Ly8gQ29weXJpZ2h0IChjKSAyMDIwIDh0aCBXYWxsLCBJbmMuCi8vCi8vIEVsaWNpdCBhbmQgY2hh
cmFjdGVyaXplIGFuIGlzc3VlIHdoZXJlIFNhZmFyaSBhcHBlYXJzIHRvIHJlc3VycmVjdCBhcmJp
dHJhcmlseSBvbGQgY2FtZXJhCi8vIGZyYW1lcyB3aGVuIHJlYWRpbmcgd2ViZ2wgdGV4dHVyZXMg
ZnJvbSA8dmlkZW8+IHRhZ3MsIHdoaWNoIGlzIGV4YWNlcmJhdGVkIGJ5IGhlYXZ5IENQVQovLyBw
cm9jZXNzaW5nLgoKY29uc3QgU1BJTl9GQUNUT1IgPSAyLjUgICAgICAgICAgICAvLyBBZGQgbW9y
ZSBhcnRpZmljaWFsIGRlbGF5IGJldHdlZW4gZnJhbWVzLgpjb25zdCBERURVUF9ISVNUT1JZX0xF
TkdUSCA9IDEyMCAgIC8vIE1heCBudW1iZXIgb2YgZnJhbWVzIGJhY2sgdG8gc2VhcmNoIGZvciBk
dXBsaWNhdGVzLgpjb25zdCBFTkFCTEVfRE9VQkxFX1JBRiA9IGZhbHNlICAgIC8vIEVuYWJsZSBk
b3VibGUtUkFGIG1pdGlnYXRpb24gZm9yIHRoaXMgYnVnLgoKY29uc3Qgb3JpZ1JhZiA9IHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUKCi8vIEZyYW1lIGhhc2ggY29uc3RydWN0cyBhIHNtYWxs
ICgxMDAgYnl0ZSkgc3RhdGlzdGljIG9mIGFuIGltYWdlIGluIGEgZmFzdCB3YXkgdGhhdCBjYW4g
YmUgdXNlZAovLyB0byBjaGVjayBmb3IgZXF1YWxpdHkgd2l0aCBhbm90aGVyIGltYWdlLgpjb25z
dCBmcmFtZUhhc2ggPSAoe3Jvd3MsIGNvbHMsIHJvd0J5dGVzLCBwaXhlbHN9KSA9PiB7CiAgY29u
c3QgaGFzaFZhbHVlc18gPSBuZXcgVWludDhBcnJheSgxMDApCiAgY29uc3QgY3N0ZXAgPSBjb2xz
IC8gMTEuMCAgLy8gQ29tcHV0ZSB0aGUgc2l6ZSBvZiBlYWNoIGNlbGwgdGhhdCBmb3JtIGEgMTB4
MTAgZ3JpZCBvdmVyIHRoZSBpbWFnZS4KICBjb25zdCByc3RlcCA9IHJvd3MgLyAxMS4wCiAgbGV0
IHIgPSByc3RlcCAqIC41ICAvLyBTdGFydCBpbiB0aGUgbWlkZGxlIGlmIHRoZSBmaXJzdCBncmlk
IHJvdy4KICBsZXQgaWR4ID0gMAogIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkgewogICAg
bGV0IGMgPSBjc3RlcCAqIC41ICAvLyBTdGFydCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBmaXJzdCBn
cmlkIGNvbHVtbi4KICAgIGxldCB5ID0gTWF0aC5mbG9vcihNYXRoLnJvdW5kKHIpKSAqIHJvd0J5
dGVzCiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDEwOyArK2opIHsKICAgICAgY29uc3QgcCA9IHkg
KyBNYXRoLmZsb29yKE1hdGgucm91bmQoYykpICAvLyBMb2NhdGUgdGhlIHBpeGVsIGluIHRoZSBj
ZW50ZXIgb2YgZWFjaCBncmlkIGNlbGwuCiAgICAgIC8vIFNhbXBsZSB0aGUgVUludDggcGl4ZWwg
dmFsdWVzIG9mIDUgcGl4bGVzIGluIGEgcm93IGFyb3VuZCB0aGUgY2VudHJhbCBwb2ludCBhbmQg
WE9SIHRoZW0uCiAgICAgIGhhc2hWYWx1ZXNfW2lkeCsrXSA9IHBpeGVsc1twIC0gMl0gXiBwaXhl
bHNbcCAtIDFdIF4gcGl4ZWxzW3BdIF4gcGl4ZWxzW3AgKyAxXSBeIHBpeGVsc1twICsgMl0KICAg
ICAgYyArPSBjc3RlcAogICAgfQogICAgciArPSByc3RlcAogIH0KICByZXR1cm4gewogICAgaGFz
aFZhbHVlOiAoaSkgPT4gaGFzaFZhbHVlc19baV0sCiAgICBlcXVhbHM6IChiKSA9PiBoYXNoVmFs
dWVzXy5ldmVyeSgodiwgaSkgPT4gdiA9PT0gYi5oYXNoVmFsdWUoaSkpLAogIH0KfQoKLy8gTWFp
bnRhaW4gYSBjaXJjdWxhciBidWZmZXIgb2YgREVEVVBfSElTVE9SWV9MRU5HVEggKGUuZy4gMTIw
KSBoYXNoZXMgb2YgZnJhbWVzIGhpc3RvcnksIHdoaWNoIGNhbgovLyBiZSB1c2VkIHRvIGNoZWNr
IHdoZW4gdGhlIGxhc3QgdGltZSB3ZSBzYXcgdGhpcyBmcmFtZSB3YXMuCmNvbnN0IGZyYW1lSGFz
aFNldCA9ICgpID0+IHsKICBjb25zdCBoYXNoZXNfID0gW10gICAvLyBUaGUgY2lyY3VsYXIgYnVm
ZmVyIG9mIGZyYW1lIGhhc2ggaGlzdG9yeS4KICBsZXQgbnVtSW5TZXRfID0gMCAgICAvLyBUaGUg
bnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBjaXJjdWxhciBidWZmZXIsIHVwIHRvIERFRFVQX0hJU1RP
UllfTEVOR1RILgogIGxldCBuZXh0QWRkSWR4XyA9IDAgIC8vIFRoZSBsb2NhdGlvbiBpbiB0aGUg
Y2lyY3VsYXIgYnVmZmVyIHdoZXJlIHRoZSBuZXh0IGl0ZW0gc2hvdWxkIGJlIGFkZGVkLgogIAog
IGZvciAobGV0IGkgPSAwOyBpIDwgREVEVVBfSElTVE9SWV9MRU5HVEg7ICsraSkgewogICAgaGFz
aGVzXy5wdXNoKG51bGwpICAvLyBJbml0aWFsaXplIHRoZSBhcnJheSB3aXRoIGVtcHR5IGRhdGEu
CiAgfQogIAogIHJldHVybiB7CiAgICAvLyBQZXJmb3JtIGEgYmFja3dhcmQgc2VhcmNoIHRvIHNl
ZSBpZiBhIGNhbmRpZGF0ZSBmcmFtZSB3YXMgc2VlbiBpbiB0aGUgaGlzdG9yeS4gSWYgc2VlbiwK
ICAgIC8vIHJldHVybiB0aGUgYW1vdW50IG9mIHRpbWUgaXQncyBiZWVuIHNpbmNlIHdlIHNhdyB0
aGlzIGZyYW1lLiBJZiBub3Qgc2VlbiwgYWRkIGEgaGFzaCBvZiB0aGlzCiAgICAvLyBmcmFtZSB0
byB0aGUgaGlzdG9yeSBhbmQgcmV0dXJuIDAuCiAgICBjaGVja0FuZEFkZDogKHApID0+IHsKICAg
ICAgLy8gQ29tcHV0ZSBhIG5ldyBmcmFtZSBoYXNoIGZvciB0aGlzIGZyYW1lLgogICAgICBjb25z
dCBoID0gZnJhbWVIYXNoKHApCiAgICAgIAogICAgICAvLyBDb21wdXRlIHRoZSByYW5nZSBvZiB2
YWxpZCBoaXN0b3J5IHVzaW5nIAogICAgICBjb25zdCBzdGFydENoZWNrID0gbmV4dEFkZElkeF8g
KyBoYXNoZXNfLmxlbmd0aCAtIDEKICAgICAgY29uc3QgZW5kQ2hlY2sgPSBzdGFydENoZWNrIC0g
bnVtSW5TZXRfCiAgICAgIAogICAgICAvLyBSZXZlcnNlIHNlYXJjaCB0byBzZWUgaWYgdGhpcyBm
cmFtZSBpcyBpbiB0aGUgaGlzdG9yeS4KICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0Q2hlY2s7IGkg
PiBlbmRDaGVjazsgLS1pKSB7CiAgICAgICAgaWYgKGguZXF1YWxzKGhhc2hlc19baSAlIGhhc2hl
c18ubGVuZ3RoXSkpIHsKICAgICAgICAgIHJldHVybiBzdGFydENoZWNrIC0gaSArIDEgIC8vIElm
IGZvdW5kLCByZXR1cm4gdGhlIGhpc3RvcmljYWwgZHVwbGljYXRlIGFuZCBkb24ndCBhZGQuCiAg
ICAgICAgfQogICAgICB9CiAgCiAgICAgIC8vIEFkZCB0aGUgaGFzaCB0byB0aGUgc2V0IGFuZCBp
bmNyZW1lbnQgY2lyY3VsYXIgYnVmZmVyIGNvdW50ZXJzLgogICAgICBoYXNoZXNfW25leHRBZGRJ
ZHhfXSA9IGgKICAgICAgaWYgKG51bUluU2V0XyA8IGhhc2hlc18ubGVuZ3RoKSB7CiAgICAgICAg
bnVtSW5TZXRfKysKICAgICAgfQogICAgICBuZXh0QWRkSWR4XyA9IChuZXh0QWRkSWR4XyArIDEp
ICUgaGFzaGVzXy5sZW5ndGgKICAgICAgCiAgICAgIHJldHVybiAwICAvLyBSZXR1cm4gMCBmb3Ig
cHJldmlvdXNseSB1bnNlZW4uCiAgICB9CiAgfQp9Cgpjb25zdCBzYWZhcmlGcmFtZUJ1Z1BpcGVs
aW5lTW9kdWxlID0gKCkgPT4gewogIGNvbnN0IHNraXBIaXN0b3J5XyA9IFtdICAvLyBTdGF0cy4K
ICBsZXQgc2tpcE51bV8gPSAwCiAgY29uc3QgZnJhbWVIYXNoZXNfID0gZnJhbWVIYXNoU2V0KCkg
IC8vIEhpc3Rvcnkgb2YgZnJhbWUgaGFzaGVzIGZvciBmaW5kaW5nIGR1cGxpY2F0ZSBmcmFtZXMu
CiAgY29uc3QgZGVidWdpbmZvXyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kZWJ1Z2luZm8n
KSAgLy8gRGlzcGxheQogIAogIHJldHVybiB7CiAgICBuYW1lOiAnc2FmYXJpZnJhbWVidWcnLAog
ICAgb25BdHRhY2g6ICgpID0+IHsKICAgICAgLy8gVW5kbyB0aGUgZG91YmxlIFJBRiBzdHJhdGVn
eSB0aGF0IG1pdGlnYXRlcyB0aGlzIGlzc3VlLgogICAgICBpZiAoIUVOQUJMRV9ET1VCTEVfUkFG
ICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgIT09IG9yaWdSYWYpIHsKICAgICAgICBj
b25zb2xlLmxvZygnUmVzZXR0aW5nIG9yaWdpbmFsIFJBRi4nKQogICAgICAgIHdpbmRvdy5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUgPSBvcmlnUmFmCiAgICAgIH0KICAgIH0sCiAgICBvblByb2Nlc3ND
cHU6ICh7cHJvY2Vzc0dwdVJlc3VsdH0pID0+IHsKICAgICAgbGV0IGZyYW1lc0JhY2sgPSAwICAv
LyBDaGVjayB3aGV0aGVyIHdlJ3ZlIHNlZW4gdGhlIGN1cnJlbnQgZnJhbWUgaW4gdGhlIGxhc3Qg
MTIwIGZyYW1lcy4KICAgICAgaWYgKHByb2Nlc3NHcHVSZXN1bHQuY2FtZXJhcGl4ZWxhcnJheSAm
JiBwcm9jZXNzR3B1UmVzdWx0LmNhbWVyYXBpeGVsYXJyYXkucGl4ZWxzKSB7CiAgICAgICAgZnJh
bWVzQmFjayA9IGZyYW1lSGFzaGVzXy5jaGVja0FuZEFkZChwcm9jZXNzR3B1UmVzdWx0LmNhbWVy
YXBpeGVsYXJyYXkpCiAgICAgIH0KCiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCkgIC8vIERl
bGF5IGZvciBhIHJhbmRvbSBhbW91bnQgb2YgdGltZS4KICAgICAgY29uc3QgdGFyZ2V0ID0gbm93
ICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDcwKSArIDcpICogU1BJTl9GQUNUT1IKICAg
ICAgbGV0IHNwaW5zID0gMAogICAgICB3aGlsZSAoRGF0ZS5ub3coKSA8IHRhcmdldCkgewogICAg
ICAgICsrc3BpbnMKICAgICAgfQogICAgIAogICAgICByZXR1cm4ge2ZyYW1lc0JhY2t9ICAvLyBQ
cm9wYWdhdGUgd2hldGhlciB3ZSd2ZSBzY2VuZSB0aGlzIGZyYW1lIHRvIHVwZGF0ZS4KICAgIH0s
CiAgICBvblVwZGF0ZTogKHtwcm9jZXNzQ3B1UmVzdWx0fSkgPT4gewogICAgICBjb25zdCB7IHNh
ZmFyaWZyYW1lYnVnIH0gPSBwcm9jZXNzQ3B1UmVzdWx0CiAgICAgIGlmIChzYWZhcmlmcmFtZWJ1
Zy5mcmFtZXNCYWNrID4gMSkgeyAgLy8gVXBkYXRlIHN0YXRzIGFib3V0IGZyYW1lIHNraXBzLgog
ICAgICAgIHNraXBIaXN0b3J5Xy5wdXNoKHNhZmFyaWZyYW1lYnVnLmZyYW1lc0JhY2spCiAgICAg
ICAgaWYgKHNraXBIaXN0b3J5Xy5sZW5ndGggPiA1KSB7CiAgICAgICAgICBza2lwSGlzdG9yeV8u
c2hpZnQoKQogICAgICAgIH0KICAgICAgICBza2lwTnVtXysrCiAgICAgIH0KICAgICAgCiAgICAg
IC8vIFVwZGF0ZSBkaXNwbGF5IHRleHQgaW4gdGhlIGRvbS4KICAgICAgZGVidWdpbmZvXy5pbm5l
ckhUTUwgPSBgWyMgYmFja10gKCMgdG90YWwpOjxicj5bJHtza2lwSGlzdG9yeV8uam9pbignLCcp
fV0gKCR7c2tpcE51bV99KWAKICAgIH0sCiAgfQp9Cgpkb2N1bWVudC5oZWFkLmluc2VydEFkamFj
ZW50SFRNTCgnYmVmb3JlZW5kJywgYAogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIj4K
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgYm9keSB7bWFyZ2luOiAwOyBib3JkZXI6IDA7
IHBhZGRpbmc6IDA7fQogICAgLmRlYnVnaW5mbyB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgei1p
bmRleDogMTAwMDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgbGVmdDogNSU7IHRvcDog
MyU7IHdpZHRoOiA5MCU7IG1pbi1oZWlnaHQ6IDEyJTsKICAgICAgY29sb3I6ICNBRDUwRkY7IGJh
Y2tncm91bmQtY29sb3I6ICMzMjMyMzI7IG9wYWNpdHk6IDEuMDsKICAgICAgYm94LXNoYWRvdzog
MCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAw
LCAwLjE5KTsKICAgICAgZm9udC1mYW1pbHk6IG1vbm87IGZvbnQtc2l6ZTogNXZoOyB0ZXh0LWFs
aWduOiBjZW50ZXI7CiAgICB9CiAgICBjYW52YXMgI2NhbWVyYSB7CiAgICAgIHBvc2l0aW9uOiBm
aXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyAgei1pbmRleDogNTAw
OwogICAgICBtYXJnaW46IDA7IGJvcmRlcjogMDsgcGFkZGluZzogMDsgd2lkdGg6IDEwMCU7IGhl
aWdodDogMTAwJTsKICAgIH0KICAgIC5pbmZvIHsKICAgICAgcG9zaXRpb246IGZpeGVkOyB6LWlu
ZGV4OiAxMDAwOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICBjb2xvcjogI0ZGRkZGRjsg
YmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjsgb3BhY2l0eTogMS4wOwogICAgICBsZWZ0OiA1JTsg
Ym90dG9tOiAzJTsgd2lkdGg6IDkwJTsgbWluLWhlaWdodDogMTIlOwogICAgICBib3gtc2hhZG93
OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAs
IDAsIDAuMTkpOwogICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgZm9udC1zaXplOiAydmg7
IHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CiAgICAuaW5mbyBhIHtjb2xvcjogI0FENTBGRjt9CiAg
ICAuaW5mbyBhOnZpc2l0ZWQge2NvbG9yOiAjQUQ1MEZGO30KICA8L3N0eWxlPgpgKQoKLy8gQWRk
IGEgY2FudmFzIHRvIHRoZSBkb2N1bWVudCBmb3Igb3VyIHhyIHNjZW5lLgpkb2N1bWVudC5ib2R5
Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgYAo8Y2FudmFzIGlkPSJjYW1lcmEiIHdp
ZHRoPSIke3dpbmRvdy5pbm5lcldpZHRofSIgaGVpZ2h0PSIke3dpbmRvdy5pbm5lckhlaWdodH0i
PjwvY2FudmFzPgo8ZGl2IGNsYXNzPSJkZWJ1Z2luZm8iPjwvZGl2Pgo8ZGl2IGNsYXNzPSJpbmZv
Ij4KVHJ5IHRoaXMgZGVtbyBieSBuYXZpZ2F0aW5nIHRvIHRoaXMgcGFnZSAoPGEgaHJlZj0iaHR0
cHM6Ly84dGguaW8vZnQ0aDkiPjh0aC5pby9mdDRoOTwvYT4pIG9uIApTYWZhcmkgb24geW91ciBp
T1MgZGV2aWNlLiBUaGlzIGRlbW8gZWxpY2l0cyBhbmQgY2hhcmFjdGVyaXplcyBhbiBlZmZlY3Qg
d2hlcmUgd2Via2l0IGFwcGVhcnMgdG8Kc3VwcGx5IGNhbWVyYSBmcmFtZXMgdGhhdCBhcmUgdXAg
dG8gYSBmZXcgc2Vjb25kcyBvbGQgd2hlbiByZWFkaW5nIHdlYmdsIHRleHR1cmVzIApmcm9tICZs
dDt2aWRlbyZndDsgdGFncy4gVGhpcyBlZmZlY3QgYXBwZWFycyB0byBiZSBleGFjZXJiYXRlZCBi
eSBsb25nIFJBRiB0aW1lcywgd2hpY2ggd2UgYWRkIAphcnRpZmljaWFsbHkuIFdlIGRldGVjdCB0
aGVzZSBkdXBsaWNhdGUgZnJhbWVzLCBhbmQgZm9yIHRoZSBsYXN0IDUgZHVwbGljYXRlcywgcHJp
bnQgaG93IG1hbnkgZnJhbWVzCmJhY2sgdGhlIHNvdXJjZSBmcmFtZSB3YXMuPC9kaXY+YCkKCmNv
bnN0IG9ueHJsb2FkZWQgPSAoKSA9PiB7CiAgWFI4LmFkZENhbWVyYVBpcGVsaW5lTW9kdWxlcyhb
ICAgICAgICAgICAgICAgICAvLyBBZGQgY2FtZXJhIHBpcGVsaW5lIG1vZHVsZXMuCiAgICBYUjgu
R2xUZXh0dXJlUmVuZGVyZXIucGlwZWxpbmVNb2R1bGUoKSwgICAgICAvLyBEcmF3cyB0aGUgY2Ft
ZXJhIGZlZWQuCiAgICBYUjguQ2FtZXJhUGl4ZWxBcnJheS5waXBlbGluZU1vZHVsZSh7bHVtaW5h
bmNlOiB0cnVlLCBtYXhEaW1lbnNpb246IDk2MH0pLCAvLyBDYXB0dXJlcyBmcmFtZS4KICAgIHNh
ZmFyaUZyYW1lQnVnUGlwZWxpbmVNb2R1bGUoKSwgICAgICAgICAgICAgIC8vIEFkZHMgcmFuZG9t
IGRlbGF5cyBhbmQgY2hlY2tzIGZvciBkdXBsaWNhdGVzLgogIF0pCiAgWFI4LnJ1bih7Y2FudmFz
OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FtZXJhJyl9KSAgLy8gT3BlbiB0aGUgY2FtZXJh
IGFuZCBzdGFydCB0aGUgcnVuIGxvb3AuCn0KCndpbmRvdy5YUjggPyBvbnhybG9hZGVkKCkgOiB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigneHJsb2FkZWQnLCBvbnhybG9hZGVkKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>