<?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>235879</bug_id>
          
          <creation_ts>2022-01-31 01:29:47 -0800</creation_ts>
          <short_desc>[GStreamer][WebRTC] Allow backend to keep track of buffered-amount</short_desc>
          <delta_ts>2022-06-30 05:31:27 -0700</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>235885</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>philn</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835455</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-01-31 01:29:47 -0800</bug_when>
    <thetext>In GstWebRTC the buffered-amount and corresponding low-threshold are managed at public properties, so in WebKit we shouldn&apos;t need to manually update those in RTCDataChannel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835461</commentid>
    <comment_count>1</comment_count>
      <attachid>450388</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-01-31 01:59:02 -0800</bug_when>
    <thetext>Created attachment 450388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835468</commentid>
    <comment_count>2</comment_count>
      <attachid>450388</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-31 02:21:33 -0800</bug_when>
    <thetext>Comment on attachment 450388
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        corresponding property instead.

m_bufferedAmount is mapping precisely to https://w3c.github.io/webrtc-pc/#dfn-bufferedamount.
By adding the logic in RTCDataChannel, we can follow the spec to the letter, for instance:
- https://w3c.github.io/webrtc-pc/#datachannel-send step 6 (Increase [[BufferedAmount]] for each send call synchronously).
- https://w3c.github.io/webrtc-pc/#dom-datachannel-bufferedamount (backend to queue a task to reduce [[BufferedAmount]] asynchronously).

What is the goal of this change? Won&apos;t it affect interop for GstWebRTC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835472</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-01-31 02:48:51 -0800</bug_when>
    <thetext>GstWebRTC follows the spec and defines a public interface in:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/datachannel.c

So with the current code we end-up managing buffered-amount and low-threshold twice, which is prone to inconsistencies, and actually introduces test failures in webrtc/ data-channel tests with the GstWebRTC backend enabled. That&apos;s why I propose this patch :)

Fortunately I didn&apos;t have to change much of the platform-agnostic WebRTC code WebKit, most of the GStreamer-specific code will be contained to dedicated platform modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835475</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-31 03:03:32 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #3)
&gt; GstWebRTC follows the spec and defines a public interface in:
&gt; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/
&gt; gst-plugins-bad/gst-libs/gst/webrtc/datachannel.c
&gt; 
&gt; So with the current code we end-up managing buffered-amount and
&gt; low-threshold twice, which is prone to inconsistencies, and actually
&gt; introduces test failures in webrtc/ data-channel tests with the GstWebRTC
&gt; backend enabled. That&apos;s why I propose this patch :)
&gt; 
&gt; Fortunately I didn&apos;t have to change much of the platform-agnostic WebRTC
&gt; code WebKit, most of the GStreamer-specific code will be contained to
&gt; dedicated platform modules.

I am not sure this will work properly, due to blob data being sent asynchronously to the backend, but the blob size impacting bufferedAmount synchronously (see NetworkSendQueue).

Here is an example:
// amount is initially zero for channel and backend.
channel.send(string1);
// RTCDataChannel amount is string1.size. backend amount is also string1.size.
channel.send(blob1);
// RTCDataChannel amount is string1.size+blob1.size, backend amount is string1.size since blob1 data will be received asynchronously.
channel.send(string2);
// RTCDataChannel amount is string1.size+blob1.size+string2.size, backend amount is still string1.size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835488</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-01-31 03:39:02 -0800</bug_when>
    <thetext>Right, this approach is a bit flawed indeed, as the gstwebrtc implementation also has an internal queue (in the appsrc element)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838036</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-07 01:30:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/88561869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872717</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-05-30 04:12:56 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1157</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879332</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-30 05:31:22 -0700</bug_when>
    <thetext>Committed 251990@main (af95424cb233): &lt;https://commits.webkit.org/251990@main&gt;

Reviewed commits have been landed. Closing PR #1157 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450388</attachid>
            <date>2022-01-31 01:59:02 -0800</date>
            <delta_ts>2022-01-31 03:39:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235879-20220131015901.patch</filename>
            <type>text/plain</type>
            <size>11072</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ1MjdiMGUyMjY5Y2Zh
ZDVhODEzNDg5NDRhMWM1NzQ4NmE3OTU5YS4uNTFhZDY3ODgwMTc0ODc2YmI3YjM1YTlmZGI0ZTIy
MDRjN2Y5NjAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBB
bGxvdyBiYWNrZW5kIHRvIGtlZXAgdHJhY2sgb2YgYnVmZmVyZWQtYW1vdW50IGFuZCBsb3ctdGhy
ZXNob2xkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzU4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
bGxvdyB0aGUgUlRDRGF0YUNoYW5uZWwgaGFuZGxlciB0byBwcm9wYWdhdGUgbG93LXRocmVzaG9s
ZCBhbmQgcmVzdHJpY3QgbG9jYWwKKyAgICAgICAgYnVmZmVyZWQtYW1vdW50IG1hbmFnZW1lbnQg
dG8gdGhlIGxpYndlYnJ0YyBiYWNrZW5kLiBGb3IgR3N0V2ViUlRDIHdlIGNhbiBtb25pdG9yIHRo
ZQorICAgICAgICBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGluc3RlYWQuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RhdGFDaGFubmVsOjpzZXRCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCk6CisgICAgICAg
IChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbDo6YnVmZmVyZWRBbW91bnRJc0RlY3JlYXNpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50Q2hhbmdlZCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oOgorCiAyMDIyLTAx
LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0g
QWRkIEdlbmVyaWNIYXNoS2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDhmODMzNzNkYmM3NGI1MmM0NTU1MzA2
YTUwNTZkMmZkZTBlYWFlNzUuLjg4YzQyOTU1OGFhYmIwYzBiMWUyMDdlNjkyNzFjZjZkYWFmMDhm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuY3BwCkBAIC0xMDQsNiArMTA0LDEyIEBAIFJUQ0RhdGFDaGFubmVsOjpSVENE
YXRhQ2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9w
dHI8CiB7CiB9CiAKK3ZvaWQgUlRDRGF0YUNoYW5uZWw6OnNldEJ1ZmZlcmVkQW1vdW50TG93VGhy
ZXNob2xkKHNpemVfdCB2YWx1ZSkKK3sKKyAgICBtX2J1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xk
ID0gdmFsdWU7CisgICAgbV9oYW5kbGVyLT5zZXRCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCh2
YWx1ZSk7Cit9CisKIGNvbnN0IEF0b21TdHJpbmcmIFJUQ0RhdGFDaGFubmVsOjpiaW5hcnlUeXBl
KCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fYmluYXJ5VHlwZSkgewpAQCAtMTM3LDcgKzE0Myw5
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ0RhdGFDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYg
ZGF0YSkKIAogICAgIC8vIEZJWE1FOiBXZSBtaWdodCB3YW50IHRvIHVzZSBzdHJpY3QgY29udmVy
c2lvbiBsaWtlIFdlYlNvY2tldC4KICAgICBhdXRvIHV0ZjggPSBkYXRhLnV0ZjgoKTsKKyNpZiBV
U0UoTElCV0VCUlRDKQogICAgIG1fYnVmZmVyZWRBbW91bnQgKz0gdXRmOC5sZW5ndGgoKTsKKyNl
bmRpZgogICAgIG1fbWVzc2FnZVF1ZXVlLmVucXVldWUoV1RGTW92ZSh1dGY4KSk7CiAgICAgcmV0
dXJuIHsgfTsKIH0KQEAgLTE0Nyw3ICsxNTUsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENEYXRh
Q2hhbm5lbDo6c2VuZChBcnJheUJ1ZmZlciYgZGF0YSkKICAgICBpZiAobV9yZWFkeVN0YXRlICE9
IFJUQ0RhdGFDaGFubmVsU3RhdGU6Ok9wZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCisjaWYgVVNFKExJQldFQlJUQykKICAgICBtX2J1ZmZlcmVk
QW1vdW50ICs9IGRhdGEuYnl0ZUxlbmd0aCgpOworI2VuZGlmCiAgICAgbV9tZXNzYWdlUXVldWUu
ZW5xdWV1ZShkYXRhLCAwLCBkYXRhLmJ5dGVMZW5ndGgoKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTE1Nyw3ICsxNjcsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENEYXRhQ2hhbm5lbDo6c2Vu
ZChBcnJheUJ1ZmZlclZpZXcmIGRhdGEpCiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBSVENEYXRh
Q2hhbm5lbFN0YXRlOjpPcGVuKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfTsKIAorI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgbV9idWZmZXJlZEFtb3VudCAr
PSBkYXRhLmJ5dGVMZW5ndGgoKTsKKyNlbmRpZgogICAgIG1fbWVzc2FnZVF1ZXVlLmVucXVldWUo
KmRhdGEudW5zaGFyZWRCdWZmZXIoKSwgZGF0YS5ieXRlT2Zmc2V0KCksIGRhdGEuYnl0ZUxlbmd0
aCgpKTsKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTY3LDcgKzE3OSw5IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFJUQ0RhdGFDaGFubmVsOjpzZW5kKEJsb2ImIGJsb2IpCiAgICAgaWYgKG1fcmVhZHlT
dGF0ZSAhPSBSVENEYXRhQ2hhbm5lbFN0YXRlOjpPcGVuKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAorI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgbV9i
dWZmZXJlZEFtb3VudCArPSBibG9iLnNpemUoKTsKKyNlbmRpZgogICAgIG1fbWVzc2FnZVF1ZXVl
LmVucXVldWUoYmxvYik7CiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTI0OCwxMyArMjYyLDIzIEBA
IHZvaWQgUlRDRGF0YUNoYW5uZWw6OmRpZERldGVjdEVycm9yKFJlZjxSVENFcnJvcj4mJiBlcnJv
cikKIHZvaWQgUlRDRGF0YUNoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHNpemVf
dCBhbW91bnQpCiB7CiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNr
U291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgYW1vdW50XSB7CisjaWYgVVNFKExJQldFQlJUQykK
ICAgICAgICAgYXV0byBwcmV2aW91c0J1ZmZlcmVkQW1vdW50ID0gbV9idWZmZXJlZEFtb3VudDsK
ICAgICAgICAgbV9idWZmZXJlZEFtb3VudCAtPSBhbW91bnQ7CiAgICAgICAgIGlmIChwcmV2aW91
c0J1ZmZlcmVkQW1vdW50ID4gbV9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCAmJiBtX2J1ZmZl
cmVkQW1vdW50IDw9IG1fYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQpCiAgICAgICAgICAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJ1ZmZlcmVkYW1vdW50bG93
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
I2Vsc2UKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKGFtb3VudCk7CisgICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYnVmZmVyZWRhbW91bnRsb3dFdmVudCwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisjZW5kaWYK
ICAgICB9KTsKIH0KIAordm9pZCBSVENEYXRhQ2hhbm5lbDo6YnVmZmVyZWRBbW91bnRDaGFuZ2Vk
KHVpbnQ2NF90IGJ1ZmZlcmVkQW1vdW50KQoreworICAgIG1fYnVmZmVyZWRBbW91bnQgPSBidWZm
ZXJlZEFtb3VudDsKK30KKwogdm9pZCBSVENEYXRhQ2hhbm5lbDo6c3RvcCgpCiB7CiAgICAgcmVt
b3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCmluZGV4IDY5NGZhZjQw
OGU2ZjUyYzRiNDQ4NDNjZDRhZGFkNzRmZmQ1NWY4NGYuLjJkNDdjMjc0ZWJjMWY5OGMwNDNmMjE5
ZWRjNDk3MGRjNmM0N2Q2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAg
IFJUQ0RhdGFDaGFubmVsU3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHtyZXR1cm4gbV9yZWFkeVN0
YXRlOyB9CiAgICAgc2l6ZV90IGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9idWZm
ZXJlZEFtb3VudDsgfQogICAgIHNpemVfdCBidWZmZXJlZEFtb3VudExvd1RocmVzaG9sZCgpIGNv
bnN0IHsgcmV0dXJuIG1fYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQ7IH0KLSAgICB2b2lkIHNl
dEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkKHNpemVfdCB2YWx1ZSkgeyBtX2J1ZmZlcmVkQW1v
dW50TG93VGhyZXNob2xkID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldEJ1ZmZlcmVkQW1vdW50TG93
VGhyZXNob2xkKHNpemVfdCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBiaW5hcnlUeXBlKCkg
Y29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmluYXJ5VHlwZShjb25zdCBBdG9tU3Ry
aW5nJik7CkBAIC0xMTUsNiArMTE1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVS
YXdEYXRhKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgZGlkRGV0ZWN0
RXJyb3IoUmVmPFJUQ0Vycm9yPiYmKSBmaW5hbDsKICAgICB2b2lkIGJ1ZmZlcmVkQW1vdW50SXNE
ZWNyZWFzaW5nKHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBidWZmZXJlZEFtb3VudENoYW5nZWQo
dWludDY0X3QpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFu
ZGxlcj4gbV9oYW5kbGVyOwogICAgIFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Rh
dGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5jcHAKaW5kZXggY2M1YTg2NTczMDU2
NTdkMGE5NzA1NjYxZTRiYjQ5Y2UwYjg0MDVjOS4uOTM1MzYzOWRjNjA2MDg5OTNjZTdiNjhkMTJi
NmE2NzM1MzFlMzlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmNwcApAQCAt
NzcsNiArNzcsMTEgQEAgdm9pZCBSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OmJ1ZmZlcmVk
QW1vdW50SXNEZWNyZWFzaW5nKHNpemVfdCBhbW91bnQpCiAgICAgbV9jbGllbnQtPmJ1ZmZlcmVk
QW1vdW50SXNEZWNyZWFzaW5nKGFtb3VudCk7CiB9CiAKK3ZvaWQgUlRDRGF0YUNoYW5uZWxSZW1v
dGVIYW5kbGVyOjpidWZmZXJlZEFtb3VudENoYW5nZWQodWludDY0X3QgYW1vdW50KQoreworICAg
IG1fY2xpZW50LT5idWZmZXJlZEFtb3VudENoYW5nZWQoYW1vdW50KTsKK30KKwogdm9pZCBSVENE
YXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXI6OnJlYWR5VG9TZW5kKCkKIHsKICAgICBtX2lzUmVhZHlU
b1NlbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyLmgKaW5kZXggNzM5NDJh
ODM1OTMxYTlkMjg0YzZhNDUxYmI4ZGJmYjU3NjVjYWRhZS4uMjZiYmZmMzY5N2EyZGEzZjRiYzE1
YTJkODI0NzA5NWU0MGFiNWNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlSGFuZGxlci5oCkBA
IC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlY2Vp
dmVSYXdEYXRhKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkRGV0ZWN0RXJyb3IoUmVmPFJUQ0Vycm9yPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGJ1ZmZlcmVkQW1vdW50SXNEZWNyZWFzaW5nKHNpemVfdCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBidWZmZXJlZEFtb3VudENoYW5nZWQodWludDY0X3QpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZWFkeVRvU2VuZCgpOwogCkBAIC02MSw2ICs2Miw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgLy8gUlRDRGF0YUNoYW5uZWxIYW5kbGVyCiAgICAgdm9pZCBzZXRDbGllbnQo
UlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpIGZpbmFsOworICAgIHZvaWQgc2V0QnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQoc2l6
ZV90KSBmaW5hbCB7IH0KICAgICBib29sIHNlbmRTdHJpbmdEYXRhKGNvbnN0IENTdHJpbmcmKSBm
aW5hbDsKICAgICBib29sIHNlbmRSYXdEYXRhKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpIGZpbmFs
OwogICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2UuaApp
bmRleCBjMDQ3NTQzMGYxNGE4MDI3ZDMxNGVhOWVjM2E4MWM1OGVlY2IzYTUyLi4yYTlmY2UzMmZm
NTU4OWU0MWI5ZGM3NzM0ZjZhYjNhZWYzNzlhNDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbFJlbW90ZVNv
dXJjZS5oCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmF3
RGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgZmluYWwgeyBtX2Nvbm5lY3Rp
b24tPmRpZFJlY2VpdmVSYXdEYXRhKG1faWRlbnRpZmllciwgZGF0YSwgc2l6ZSk7IH0KICAgICB2
b2lkIGRpZERldGVjdEVycm9yKFJlZjxSVENFcnJvcj4mJiBlcnJvcikgZmluYWwgeyBtX2Nvbm5l
Y3Rpb24tPmRpZERldGVjdEVycm9yKG1faWRlbnRpZmllciwgZXJyb3ItPmVycm9yRGV0YWlsKCks
IGVycm9yLT5tZXNzYWdlKCkpOyB9CiAgICAgdm9pZCBidWZmZXJlZEFtb3VudElzRGVjcmVhc2lu
ZyhzaXplX3QgYW1vdW50KSBmaW5hbCB7IG1fY29ubmVjdGlvbi0+YnVmZmVyZWRBbW91bnRJc0Rl
Y3JlYXNpbmcobV9pZGVudGlmaWVyLCBhbW91bnQpOyB9CisgICAgdm9pZCBidWZmZXJlZEFtb3Vu
dENoYW5nZWQodWludDY0X3QpIGZpbmFsIHsgfQogCiAgICAgUlRDRGF0YUNoYW5uZWxJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKICAgICBVbmlxdWVSZWY8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBt
X2hhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxl
ci5oCmluZGV4IDExYmQ0NWRlOTE1NTc3OWZmYzllZmIwM2U5NTUyOGYwNWU2NGQ3NDQuLjE5YmM3
OGQzYjRkODY1ZTRmOTc2ODc0ZGE0ZWUxNDIyMDFmZWRlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC03MCw2ICs3MCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBzZW5kU3RyaW5nRGF0YShjb25zdCBDU3RyaW5nJikgZmluYWw7CiAgICAg
Ym9vbCBzZW5kUmF3RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lk
IGNsb3NlKCkgZmluYWw7CisgICAgdm9pZCBzZXRCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZChz
aXplX3QpIGZpbmFsIHsgfQogCiAgICAgLy8gd2VicnRjOjpEYXRhQ2hhbm5lbE9ic2VydmVyIEFQ
SQogICAgIHZvaWQgT25TdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRleCA2
YTNhYTg3ZDg5MzFjNGI4MGNhMGRlYTczODA2YjU3MGM4Njc4ZTU4Li5kMzljMzc1YjkyYjZmNjky
NTZjNmE2ZDM0MzM0ZmMyMTY2NTA0NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtMTA3
LDYgKzEwNyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0
YUNoYW5uZWxIYW5kbGVyQ2xpZW50JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIp
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZChz
aXplX3QpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmlu
ZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZFJhd0RhdGEoY29uc3QgdWludDhfdCosIHNp
emVfdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsSGFuZGxlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyQ2xpZW50LmgKaW5kZXggM2FiZTQxY2ZmNGYzNmRhOWZjNDQyZGExZWVjZjZjMjc1
ZWU1NmFlMi4uMDFjOTc5MGNmMTc2MDJiNzdlMjEyMjEwYmFjZDkwMDhhMjRhMjBhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxI
YW5kbGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERldGVjdEVycm9yKFJlZjxSVENFcnJvcj4mJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBidWZmZXJlZEFtb3VudElzRGVjcmVhc2luZyhzaXplX3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyZWRBbW91bnRDaGFuZ2VkKHVpbnQ2NF90KSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCmluZGV4IGUw
NzBiZGIxM2U4NzI1ODdjNTNlMDRmNDk2MTdmZWQ1NTlhMGE4OWIuLmNiOGQ1MDY2YjgwOTkyZmJj
NGQ1MDU4NzY4MGJlZTlhZjE3MjdiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5oCkBAIC00MCw2ICs0MCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxI
YW5kbGVyQ2xpZW50JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOwog
CisgICAgdm9pZCBzZXRCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZChzaXplX3QpIGZpbmFsIHsg
fQogICAgIGJvb2wgc2VuZFN0cmluZ0RhdGEoY29uc3QgQ1N0cmluZyYpIGZpbmFsOwogICAgIGJv
b2wgc2VuZFJhd0RhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCkgZmluYWw7CiAgICAgdm9pZCBj
bG9zZSgpIGZpbmFsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>