<?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>208454</bug_id>
          
          <creation_ts>2020-03-02 11:00:42 -0800</creation_ts>
          <short_desc>[GStreamer][MSE] Playback rate update support</short_desc>
          <delta_ts>2020-04-07 04:14:14 -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>Media</component>
          <version>WebKit Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>kpect</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>aboya</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eocanha</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>erusan</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-bugzilla</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624614</commentid>
    <comment_count>0</comment_count>
    <who name="">kpect</who>
    <bug_when>2020-03-02 11:00:42 -0800</bug_when>
    <thetext>Hi.
I&apos;m using www/surf browser (on FreeBSD 12.1 STABLE) which leverages www/webkit2-gtk3 and multimedia/gstreamer1 as a backend and I&apos;m not able to change playback rate when watching youtube videos.

$ uname -a
FreeBSD KPECT 12.1-STABLE FreeBSD 12.1-STABLE GENERIC  amd64
$ pkg query -a &quot;%n-%v&quot; | grep gstreamer
gstreamer1-1.16.2
gstreamer1-libav-1.16.2
gstreamer1-plugins-1.16.2
gstreamer1-plugins-bad-1.16.2
gstreamer1-plugins-curl-1.16.2
gstreamer1-plugins-gl-1.16.2
gstreamer1-plugins-good-1.16.2
gstreamer1-plugins-neon-1.16.2
gstreamer1-plugins-soup-1.16.2
gstreamer1-plugins-vpx-1.16.2

&gt; pkginfo webkit2-gtk3                                                                                                                                                                      /home/x ]
webkit2-gtk3-2.26.4
Name           : webkit2-gtk3
Version        : 2.26.4
Installed on   : Mon Mar  2 20:19:16 2020 +03
Origin         : www/webkit2-gtk3
Architecture   : FreeBSD:12:amd64
Prefix         : /usr/local
Categories     : www
Licenses       : 
Maintainer     : gnome@FreeBSD.org
WWW            : https://webkitgtk.org/
Comment        : Opensource browser engine using the GTK+ 3 toolkit
Options        :
        DEBUG          : off
        GEOIP          : off
        WAYLAND        : off
Shared Libs required:
        libicudata.so.65
        libxslt.so.1
        libsoup-2.4.so.1
        libpango-1.0.so.0
        libjpeg.so.8
        libgstapp-1.0.so.0
        libsqlite3.so.0
        libcairo.so.2
        libgtk-3.so.0
        libxml2.so.2
        libtasn1.so.6
        libgcrypt.so.20
        libwebp.so.7
        libsecret-1.so.0
        libatk-1.0.so.0
        libgstfft-1.0.so.0
        libfreetype.so.6
        libgstreamer-1.0.so.0
        libgmodule-2.0.so.0
        libharfbuzz-icu.so.0
        libXcomposite.so.1
        libgdk_pixbuf-2.0.so.0
        libcairo-gobject.so.2
        libgio-2.0.so.0
        libgstgl-1.0.so.0
        libX11.so.6
        libwebpdemux.so.2
        libglib-2.0.so.0
        libGL.so.1
        libgobject-2.0.so.0
        libXrender.so.1
        libXt.so.6
        libicuuc.so.65
        libharfbuzz.so.0
        libEGL.so.1
        libgstpbutils-1.0.so.0
        libXdamage.so.1
        libgstvideo-1.0.so.0
        libgsttag-1.0.so.0
        libpng16.so.16
        libintl.so.8
        libgstaudio-1.0.so.0
        libgstbase-1.0.so.0
        libopenjp2.so.7
        libicui18n.so.65
        libfontconfig.so.1
        libgdk-3.so.0
        libpangocairo-1.0.so.0
Shared Libs provided:
        libwebkit2gtk-4.0.so.37
        libjavascriptcoregtk-4.0.so.18
Annotations    :
        FreeBSD_version: 1201511
Flat size      : 61.2MiB
Description    :
WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable
for projects requiring any kind of web integration, from hybrid HTML/CSS
applications to full-fledged web browsers. It offers WebKit&apos;s full
functionality and is useful in a wide range of systems from desktop
computers to embedded systems like phones, tablets, and televisions.

WebKitGTK+ is made by a lively community of developers and designers,
who hope to bring the web platform to everyone. It&apos;s the official web
engine of the GNOME platform and is used in browsers such as Epiphany
and Midori.

WWW: https://webkitgtk.org/


Thank you in advance.

Sergey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629568</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-13 04:03:31 -0700</bug_when>
    <thetext>This is overridden as unimplemented in the MSE player, I currently see no reason for such override.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629584</commentid>
    <comment_count>2</comment_count>
      <attachid>393475</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-13 06:03:44 -0700</bug_when>
    <thetext>Created attachment 393475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629662</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-03-13 10:06:43 -0700</bug_when>
    <thetext>I&apos;m open to give an r+ but I would prefer Alicia has a look at this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630052</commentid>
    <comment_count>4</comment_count>
      <attachid>393475</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-03-14 10:27:07 -0700</bug_when>
    <thetext>Comment on attachment 393475
Patch

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

I hope some day I can finally get playbin3 and the new WebKitMediaSrc working and landed and I can get rid of most of this madness with seeks... but that is an ongoing rabbit hole (currently working on fixing WebKitWebSrc races to be able to debug playbin3 player races to be able to use playbin3 for MSE).

With that in mind, if this passes tests, LGTM.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248
&gt; +    // FIXME: Make a copy here because in some cases below it is modified. This
&gt; +    // sounds like a bad idea and should be investigated further.
&gt; +    MediaTime seekTime = position;

Could you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630053</commentid>
    <comment_count>5</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-03-14 10:27:14 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=393475&amp;action=review

I hope some day I can finally get playbin3 and the new WebKitMediaSrc working and landed and I can get rid of most of this madness with seeks... but that is an ongoing rabbit hole (currently working on fixing WebKitWebSrc races to be able to debug playbin3 player races to be able to use playbin3 for MSE).

With that in mind, if this passes tests, LGTM.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248
&gt; +    // FIXME: Make a copy here because in some cases below it is modified. This
&gt; +    // sounds like a bad idea and should be investigated further.
&gt; +    MediaTime seekTime = position;

Could you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630055</commentid>
    <comment_count>6</comment_count>
      <attachid>393475</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-14 10:37:11 -0700</bug_when>
    <thetext>Comment on attachment 393475
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248
&gt;&gt; +    MediaTime seekTime = position;
&gt; 
&gt; Could you elaborate?

the seek time is updated there: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp#L315</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630357</commentid>
    <comment_count>7</comment_count>
      <attachid>393475</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-03-16 10:00:04 -0700</bug_when>
    <thetext>Comment on attachment 393475
Patch

The only thing I&apos;d say is that it would be better if you split in two, one for the debug and the other one to actually fix the problem but I won&apos;t object if you want to land it like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630666</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-17 02:36:47 -0700</bug_when>
    <thetext>Committed r258542: &lt;https://trac.webkit.org/changeset/258542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630667</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-17 02:37:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/60532167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638063</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-04-06 03:23:42 -0700</bug_when>
    <thetext>*** Bug 209386 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638504</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-04-07 04:14:14 -0700</bug_when>
    <thetext>*** Bug 190844 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393475</attachid>
            <date>2020-03-13 06:03:44 -0700</date>
            <delta_ts>2020-03-16 10:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208454-20200313130342.patch</filename>
            <type>text/plain</type>
            <size>15731</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk5YzlkYWJjZTZmZjhk
NjE2ZTQzMzY0NjEyMmJmOThkOGJiODMwYS4uZGM4YmI2NTkzZjMzNWM3NGZkZDI5MmQ3Mzg0OTUx
ZThiZGY2NTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTEzICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNU0VdIFBsYXliYWNrIHJhdGUgdXBkYXRlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQ1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBwbGF5YmFjayByYXRlIHVwZGF0
ZSBzdXBwb3J0IGZvciB0aGUgTVNFIHBsYXllci4gQWxzbworICAgICAgICBpbmNsdWRlcyBkcml2
ZS1ieSBsb2dnaW5nIGNsZWFudXBzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVBsYXliYWNrUmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFJhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRQcmVzZXJ2ZXNQ
aXRjaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpwaXBlbGluZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzZWVrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6ZG9TZWVrKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6bWF5YmVGaW5p
c2hTZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RTo6c2Vla0NvbXBsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0U6OnVwZGF0ZVBsYXliYWNrUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnNldFJhdGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFLmg6CisKIDIwMjAtMDMtMTMgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNh
dGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgLVdyZWR1bmRhbnQtbW92ZSBpbiBDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCmluZGV4IGQxMzI0ZjY5ZmQ1MDdjZDBjOTU2ZGE5ZjM2NDRmNDUyZTc0
NWU2ODYuLjhjNTBjMjIxNzgzY2M0MjI4ZjlmNjMwZDY3MzRmZWQ3NmYyMGE0MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC03OTksNyAr
Nzk5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVBsYXliYWNr
UmF0ZSgpCiAgICAgaWYgKCFtX2lzQ2hhbmdpbmdSYXRlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBHU1RfSU5GT19PQkpFQ1QocGlwZWxpbmUoKSwgIlNldCBSYXRlIHRvICVmIiwgbV9wbGF5YmFj
a1JhdGUpOworICAgIEdTVF9JTkZPX09CSkVDVChwaXBlbGluZSgpLCAiU2V0IHBsYXliYWNrIHJh
dGUgdG8gJWYiLCBtX3BsYXliYWNrUmF0ZSk7CiAKICAgICAvLyBNdXRlIHRoZSBzb3VuZCBpZiB0
aGUgcGxheWJhY2sgcmF0ZSBpcyBuZWdhdGl2ZSBvciB0b28gZXh0cmVtZSBhbmQgYXVkaW8gcGl0
Y2ggaXMgbm90IGFkanVzdGVkLgogICAgIGJvb2wgbXV0ZSA9IG1fcGxheWJhY2tSYXRlIDw9IDAg
fHwgKCFtX3Nob3VsZFByZXNlcnZlUGl0Y2ggJiYgKG1fcGxheWJhY2tSYXRlIDwgMC44IHx8IG1f
cGxheWJhY2tSYXRlID4gMikpOwpAQCAtODEwLDggKzgxMCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp1cGRhdGVQbGF5YmFja1JhdGUoKQogICAgICAgICBnX29iamVjdF9z
ZXQobV9waXBlbGluZS5nZXQoKSwgIm11dGUiLCBtdXRlLCBudWxscHRyKTsKICAgICAgICAgbV9s
YXN0UGxheWJhY2tSYXRlID0gbV9wbGF5YmFja1JhdGU7CiAgICAgfSBlbHNlIHsKKyAgICAgICAg
R1NUX0VSUk9SX09CSkVDVChwaXBlbGluZSgpLCAiU2V0IHJhdGUgdG8gJWYgZmFpbGVkIiwgbV9w
bGF5YmFja1JhdGUpOwogICAgICAgICBtX3BsYXliYWNrUmF0ZSA9IG1fbGFzdFBsYXliYWNrUmF0
ZTsKLSAgICAgICAgR1NUX0VSUk9SKCJTZXQgcmF0ZSB0byAlZiBmYWlsZWQiLCBtX3BsYXliYWNr
UmF0ZSk7CiAgICAgfQogCiAgICAgaWYgKG1faXNQbGF5YmFja1JhdGVQYXVzZWQpIHsKQEAgLTg1
OCw4ICs4NTgsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmF0ZShm
bG9hdCByYXRlKQogewogICAgIGZsb2F0IHJhdGVDbGFtcGVkID0gY2xhbXBUbyhyYXRlLCAtMjAu
MCwgMjAuMCk7CiAgICAgaWYgKHJhdGVDbGFtcGVkICE9IHJhdGUpCi0gICAgICAgIEdTVF9XQVJO
SU5HKCJDbGFtcGluZyBvcmlnaW5hbCByYXRlICglZikgdG8gWy0yMCwgMjBdICglZiksIGhpZ2hl
ciByYXRlcyBjYXVzZSBjcmFzaGVzIiwgcmF0ZSwgcmF0ZUNsYW1wZWQpOworICAgICAgICBHU1Rf
V0FSTklOR19PQkpFQ1QocGlwZWxpbmUoKSwgIkNsYW1waW5nIG9yaWdpbmFsIHJhdGUgKCVmKSB0
byBbLTIwLCAyMF0gKCVmKSwgaGlnaGVyIHJhdGVzIGNhdXNlIGNyYXNoZXMiLCByYXRlLCByYXRl
Q2xhbXBlZCk7CiAKKyAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJTZXR0aW5nIHBs
YXliYWNrIHJhdGUgdG8gJWYiLCByYXRlQ2xhbXBlZCk7CiAgICAgLy8gQXZvaWQgdXNlbGVzcyBw
bGF5YmFjayByYXRlIHVwZGF0ZS4KICAgICBpZiAobV9wbGF5YmFja1JhdGUgPT0gcmF0ZUNsYW1w
ZWQpIHsKICAgICAgICAgLy8gQW5kIG1ha2Ugc3VyZSB0aGF0IHVwcGVyIGxheWVycyB3ZXJlIG5v
dGlmaWVkIGlmIHJhdGUgd2FzIHNldC4KQEAgLTkwNSw2ICs5MDYsNyBAQCBkb3VibGUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyYXRlKCkgY29uc3QKIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVzUGl0Y2gpCiB7
CisgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUHJlc2VydmluZyBhdWRpbyBwaXRj
aDogJXMiLCBib29sRm9yUHJpbnRpbmcocHJlc2VydmVzUGl0Y2gpKTsKICAgICBtX3Nob3VsZFBy
ZXNlcnZlUGl0Y2ggPSBwcmVzZXJ2ZXNQaXRjaDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGFiZWI4NTdhN2ZkZTU0YTI3OWVmYzVkNTg4
ZThkMzJjNjllZGYyYTguLmNjNTc5ZTJkOTYxMTM3MGRhZjg3YTc5MjViNDZlOGM3YmQyM2M4MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI0
Niw2ICsyNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVNldHVwKEdz
dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJlUGxheVNpbmsoKSB7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVBsYXliYWNrUmF0ZSgpOwogCiAjaWYgVVNFKEdTVFJFQU1FUl9IT0xFUFVO
Q0gpCiAgICAgR3N0RWxlbWVudCogY3JlYXRlSG9sZVB1bmNoVmlkZW9TaW5rKCk7CkBAIC0yNzIs
NiArMjczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0U3RyZWFtVm9sdW1lRWxlbWVudChH
c3RTdHJlYW1Wb2x1bWUqKTsKIAogICAgIHZvaWQgc2V0UGlwZWxpbmUoR3N0RWxlbWVudCopOwor
ICAgIEdzdEVsZW1lbnQqIHBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9waXBlbGluZS5nZXQo
KTsgfQogCiAgICAgdm9pZCByZXBhaW50KCk7CiAgICAgdm9pZCBjYW5jZWxSZXBhaW50KGJvb2wg
ZGVzdHJveWluZyA9IGZhbHNlKTsKQEAgLTM4Niw3ICszODgsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2
YXRlOgogICAgIGJvb2wgaXNQbGF5ZXJTaHV0dGluZ0Rvd24oKSBjb25zdCB7IHJldHVybiBtX2lz
UGxheWVyU2h1dHRpbmdEb3duLmxvYWQoKTsgfQogICAgIE1lZGlhVGltZSBtYXhUaW1lTG9hZGVk
KCkgY29uc3Q7Ci0gICAgR3N0RWxlbWVudCogcGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3Bp
cGVsaW5lLmdldCgpOyB9CiAgICAgdm9pZCBzZXRWaWRlb1NvdXJjZU9yaWVudGF0aW9uKEltYWdl
T3JpZW50YXRpb24pOwogICAgIE1lZGlhVGltZSBwbGF0Zm9ybUR1cmF0aW9uKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc011dGVkKCkgY29uc3Q7CkBAIC00MzIsNyArNDMzLDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHB1cmdlSW52YWxpZFRleHRUcmFja3MoVmVjdG9yPFN0cmluZz4gdmFsaWRUcmFja0lk
cyk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgZG9TZWVrKGNvbnN0IE1lZGlhVGltZSYgcG9z
aXRpb24sIGZsb2F0IHJhdGUsIEdzdFNlZWtGbGFncyBzZWVrVHlwZSk7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVBsYXliYWNrUmF0ZSgpOwogCiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkdTdHJlYW1lciI7IH0KICAgICBib29sIGRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCA2YjZkOWUw
NGFjZDQwNTE4OTRlMjEwNjVkNGE1NmZkZDI1Y2NhMzI2Li4xYjcwMGJiYzA4NGM3MTI5ZGRiMDE0
N2I0NDZkOTFlNDY4ZWM5MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5j
bHVkZSAiUGxheWJhY2tQaXBlbGluZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCkBAIC0xNzMsNyArMTcyLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnNlZWsoY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQogICAgIGlmIChVTkxJS0VMWSghbV9waXBlbGluZSB8fCBtX2RpZEVycm9yT2NjdXIp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBHU1RfSU5GTygiW1NlZWtdIHNlZWsgYXR0ZW1wdCB0
byAlcyBzZWNzIiwgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CisgICAgR1NUX0lORk9f
T0JKRUNUKHBpcGVsaW5lKCksICJbU2Vla10gc2VlayBhdHRlbXB0IHRvICVzIHNlY3MiLCB0b1N0
cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIC8vIEF2b2lkIHVzZWxlc3Mgc2Vla2lu
Zy4KICAgICBNZWRpYVRpbWUgY3VycmVudCA9IGN1cnJlbnRNZWRpYVRpbWUoKTsKQEAgLTE5MSwx
OSArMTkwLDE5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzZWVrKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEdTVF9E
RUJVRygiU2Vla2luZyBmcm9tICVzIHRvICVzIHNlY29uZHMiLCB0b1N0cmluZyhjdXJyZW50KS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJTZWVraW5nIGZyb20gJXMgdG8gJXMgc2Vjb25kcyIsIHRv
U3RyaW5nKGN1cnJlbnQpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRh
KCkpOwogCiAgICAgTWVkaWFUaW1lIHByZXZpb3VzU2Vla1RpbWUgPSBtX3NlZWtUaW1lOwogICAg
IG1fc2Vla1RpbWUgPSB0aW1lOwogCi0gICAgaWYgKCFkb1NlZWsoKSkgeworICAgIGlmICghZG9T
ZWVrKG1fc2Vla1RpbWUsIG1fcGxheWJhY2tSYXRlLCBzdGF0aWNfY2FzdDxHc3RTZWVrRmxhZ3M+
KEdTVF9TRUVLX0ZMQUdfRkxVU0ggfCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRFKSkpIHsKICAgICAg
ICAgbV9zZWVrVGltZSA9IHByZXZpb3VzU2Vla1RpbWU7Ci0gICAgICAgIEdTVF9XQVJOSU5HKCJT
ZWVraW5nIHRvICVzIGZhaWxlZCIsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBHU1RfV0FSTklOR19PQkpFQ1QocGlwZWxpbmUoKSwgIlNlZWtpbmcgdG8gJXMgZmFpbGVk
IiwgdG9TdHJpbmcodGltZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBtX2lzRW5kUmVhY2hlZCA9IGZhbHNlOwotICAgIEdTVF9ERUJVRygibV9pc1NlZWtp
bmc9JXMsIG1fc2Vla1RpbWU9JXMiLCBib29sRm9yUHJpbnRpbmcobV9pc1NlZWtpbmcpLCB0b1N0
cmluZyhtX3NlZWtUaW1lKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJtX2lzU2Vla2luZz0lcywgbV9zZWVrVGltZT0lcyIsIGJvb2xGb3JQcmludGlu
ZyhtX2lzU2Vla2luZyksIHRvU3RyaW5nKG1fc2Vla1RpbWUpLnV0ZjgoKS5kYXRhKCkpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6Y29uZmlndXJlUGxheVNpbmso
KQpAQCAtMjQyLDE4ICsyNDEsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0U6Om5vdGlmeVNlZWtOZWVkc0RhdGFGb3JUaW1lKGNvbnN0IE1lZGlhVGltZSYKICAgICB9CiB9
CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpkb1NlZWsoY29uc3QgTWVk
aWFUaW1lJiwgZmxvYXQsIEdzdFNlZWtGbGFncykKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFOjpkb1NlZWsoY29uc3QgTWVkaWFUaW1lJiBwb3NpdGlvbiwgZmxvYXQgcmF0ZSwg
R3N0U2Vla0ZsYWdzIHNlZWtUeXBlKQogewotICAgIC8vIFVzZSBkb1NlZWsoKSBpbnN0ZWFkLiBJ
ZiBhbnlib2R5IGlzIGNhbGxpbmcgdGhpcyB2ZXJzaW9uIG9mIGRvU2VlaygpLCBzb21ldGhpbmcg
aXMgd3JvbmcuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6ZG9TZWVrKCkKLXsKLSAg
ICBNZWRpYVRpbWUgc2Vla1RpbWUgPSBtX3NlZWtUaW1lOwotICAgIGRvdWJsZSByYXRlID0gbV9w
bGF5ZXItPnJhdGUoKTsKLSAgICBHc3RTZWVrRmxhZ3Mgc2Vla1R5cGUgPSBzdGF0aWNfY2FzdDxH
c3RTZWVrRmxhZ3M+KEdTVF9TRUVLX0ZMQUdfRkxVU0ggfCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRF
KTsKKyAgICAvLyBGSVhNRTogTWFrZSBhIGNvcHkgaGVyZSBiZWNhdXNlIGluIHNvbWUgY2FzZXMg
YmVsb3cgaXQgaXMgbW9kaWZpZWQuIFRoaXMKKyAgICAvLyBzb3VuZHMgbGlrZSBhIGJhZCBpZGVh
IGFuZCBzaG91bGQgYmUgaW52ZXN0aWdhdGVkIGZ1cnRoZXIuCisgICAgTWVkaWFUaW1lIHNlZWtU
aW1lID0gcG9zaXRpb247CiAKICAgICAvLyBBbHdheXMgbW92ZSB0byBzZWVraW5nIHN0YXRlIHRv
IHJlcG9ydCBjb3JyZWN0ICdjdXJyZW50VGltZScgd2hpbGUgcGVuZGluZyBmb3IgYWN0dWFsIHNl
ZWsgdG8gY29tcGxldGUuCiAgICAgbV9pc1NlZWtpbmcgPSB0cnVlOwpAQCAtMjYyLDcgKzI1NCw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpkb1NlZWsoKQogICAgIEdz
dFN0YXRlIHN0YXRlLCBuZXdTdGF0ZTsKICAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiBnZXRTdGF0
ZVJlc3VsdCA9IGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCAmc3RhdGUs
ICZuZXdTdGF0ZSwgMCk7CiAgICAgaWYgKGdldFN0YXRlUmVzdWx0ID09IEdTVF9TVEFURV9DSEFO
R0VfRkFJTFVSRSB8fCBnZXRTdGF0ZVJlc3VsdCA9PSBHU1RfU1RBVEVfQ0hBTkdFX05PX1BSRVJP
TEwpIHsKLSAgICAgICAgR1NUX0RFQlVHKCJbU2Vla10gY2Fubm90IHNlZWssIGN1cnJlbnQgc3Rh
dGUgY2hhbmdlIGlzICVzIiwgZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFt
ZShnZXRTdGF0ZVJlc3VsdCkpOworICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCks
ICJbU2Vla10gY2Fubm90IHNlZWssIGN1cnJlbnQgc3RhdGUgY2hhbmdlIGlzICVzIiwgZ3N0X2Vs
ZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZShnZXRTdGF0ZVJlc3VsdCkpOwogICAg
ICAgICB3ZWJLaXRNZWRpYVNyY1NldFJlYWR5Rm9yU2FtcGxlcyhXRUJLSVRfTUVESUFfU1JDKG1f
c291cmNlLmdldCgpKSwgdHJ1ZSk7CiAgICAgICAgIG1faXNTZWVraW5nID0gZmFsc2U7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NCw3ICsyNzYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lck1TRTo6ZG9TZWVrKCkKICAgICAgICAgZWxzZSBpZiAoIW1fZ3N0U2Vla0Nv
bXBsZXRlZCkKICAgICAgICAgICAgIHJlYXNvbiA9ICJQcmV2aW91cyBzZWVrIGlzIG5vdCBmaW5p
c2hlZCB5ZXQiOwogCi0gICAgICAgIEdTVF9ERUJVRygiW1NlZWtdIERlbGF5aW5nIHRoZSBzZWVr
OiAlcyIsIHJlYXNvbi5kYXRhKCkpOworICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5l
KCksICJbU2Vla10gRGVsYXlpbmcgdGhlIHNlZWs6ICVzIiwgcmVhc29uLmRhdGEoKSk7CiAKICAg
ICAgICAgbV9pc1NlZWtQZW5kaW5nID0gdHJ1ZTsKIApAQCAtMzExLDcgKzMwMyw3IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpkb1NlZWsoKQogICAgICAgICAgICAgY29u
c3QgTWVkaWFUaW1lIG1pbmlHYXAgPSBNZWRpYVRpbWUoMSwgMTApOwogICAgICAgICAgICAgTWVk
aWFUaW1lIG5lYXJlc3QgPSBtX21lZGlhU291cmNlLT5idWZmZXJlZCgpLT5uZWFyZXN0KHNlZWtU
aW1lKTsKICAgICAgICAgICAgIGlmIChuZWFyZXN0LmlzVmFsaWQoKSAmJiBuZWFyZXN0ID4gc2Vl
a1RpbWUgJiYgKG5lYXJlc3QgLSBzZWVrVGltZSkgPD0gbWluaUdhcCAmJiBpc1RpbWVCdWZmZXJl
ZChuZWFyZXN0ICsgbWluaUdhcCkpIHsKLSAgICAgICAgICAgICAgICBHU1RfREVCVUcoIltTZWVr
XSBDaGFuZ2VkIHRoZSBzZWVrIHRhcmdldCB0aW1lIGZyb20gJXMgdG8gJXMsIGEgbmVhciBwb2lu
dCBpbiB0aGUgZnV0dXJlIiwgdG9TdHJpbmcoc2Vla1RpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3Ry
aW5nKG5lYXJlc3QpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1QocGlwZWxpbmUoKSwgIltTZWVrXSBDaGFuZ2VkIHRoZSBzZWVrIHRhcmdldCB0aW1lIGZy
b20gJXMgdG8gJXMsIGEgbmVhciBwb2ludCBpbiB0aGUgZnV0dXJlIiwgdG9TdHJpbmcoc2Vla1Rp
bWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKG5lYXJlc3QpLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICAgICAgICAgIHNlZWtUaW1lID0gbmVhcmVzdDsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtMzE5LDEwICszMTEsMTAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0U6OmRvU2VlaygpCiAKICAgICAvLyBDaGVjayBpZiBNU0UgaGFzIHNhbXBsZXMgZm9yIHJlcXVl
c3RlZCB0aW1lIGFuZCBkZWZlciBhY3R1YWwgc2VlayBpZiBuZWVkZWQuCiAgICAgaWYgKCFpc1Rp
bWVCdWZmZXJlZChzZWVrVGltZSkpIHsKLSAgICAgICAgR1NUX0RFQlVHKCJbU2Vla10gRGVsYXlp
bmcgdGhlIHNlZWs6IE1TRSBpcyBub3QgcmVhZHkiKTsKKyAgICAgICAgR1NUX0RFQlVHX09CSkVD
VChwaXBlbGluZSgpLCAiW1NlZWtdIERlbGF5aW5nIHRoZSBzZWVrOiBNU0UgaXMgbm90IHJlYWR5
Iik7CiAgICAgICAgIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHNldFN0YXRlUmVzdWx0ID0gZ3N0X2Vs
ZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksIEdTVF9TVEFURV9QQVVTRUQpOwogICAg
ICAgICBpZiAoc2V0U3RhdGVSZXN1bHQgPT0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFKSB7Ci0g
ICAgICAgICAgICBHU1RfREVCVUcoIltTZWVrXSBDYW5ub3Qgc2VlaywgZmFpbGVkIHRvIHBhdXNl
IHBsYXliYWNrIHBpcGVsaW5lLiIpOworICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiW1NlZWtdIENhbm5vdCBzZWVrLCBmYWlsZWQgdG8gcGF1c2UgcGxheWJhY2sgcGlw
ZWxpbmUuIik7CiAgICAgICAgICAgICB3ZWJLaXRNZWRpYVNyY1NldFJlYWR5Rm9yU2FtcGxlcyhX
RUJLSVRfTUVESUFfU1JDKG1fc291cmNlLmdldCgpKSwgdHJ1ZSk7CiAgICAgICAgICAgICBtX2lz
U2Vla2luZyA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzQxLDcgKzMz
Myw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpkb1NlZWsoKQogICAg
ICAgICByZXR1cm4gbV9pc1NlZWtpbmc7CiAgICAgfQogCi0gICAgR1NUX0RFQlVHKCJXZSBjYW4g
c2VlayBub3ciKTsKKyAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJXZSBjYW4gc2Vl
ayBub3ciKTsKIAogICAgIE1lZGlhVGltZSBzdGFydFRpbWUgPSBzZWVrVGltZSwgZW5kVGltZSA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIApAQCAtMzUzLDcgKzM0NSw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpkb1NlZWsoKQogICAgIGlmICghcmF0ZSkKICAg
ICAgICAgcmF0ZSA9IDE7CiAKLSAgICBHU1RfREVCVUcoIkFjdHVhbCBzZWVrIHRvICVzLCBlbmQg
dGltZTogICVzLCByYXRlOiAlZiIsIHRvU3RyaW5nKHN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSwg
dG9TdHJpbmcoZW5kVGltZSkudXRmOCgpLmRhdGEoKSwgcmF0ZSk7CisgICAgR1NUX0RFQlVHX09C
SkVDVChwaXBlbGluZSgpLCAiQWN0dWFsIHNlZWsgdG8gJXMsIGVuZCB0aW1lOiAgJXMsIHJhdGU6
ICVmIiwgdG9TdHJpbmcoc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmRUaW1l
KS51dGY4KCkuZGF0YSgpLCByYXRlKTsKIAogICAgIC8vIFRoaXMgd2lsbCBjYWxsIG5vdGlmeVNl
ZWtOZWVkc0RhdGEoKSBhZnRlciBzb21lIHRpbWUgdG8gdGVsbCB0aGF0IHRoZSBwaXBlbGluZSBp
cyByZWFkeSBmb3Igc2FtcGxlIGVucXVldWluZy4KICAgICB3ZWJLaXRNZWRpYVNyY1ByZXBhcmVT
ZWVrKFdFQktJVF9NRURJQV9TUkMobV9zb3VyY2UuZ2V0KCkpLCBzZWVrVGltZSk7CkBAIC0zNjMs
MTIgKzM1NSwxMiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6ZG9TZWVr
KCkKICAgICAgICAgd2ViS2l0TWVkaWFTcmNTZXRSZWFkeUZvclNhbXBsZXMoV0VCS0lUX01FRElB
X1NSQyhtX3NvdXJjZS5nZXQoKSksIHRydWUpOwogICAgICAgICBtX2lzU2Vla2luZyA9IGZhbHNl
OwogICAgICAgICBtX2dzdFNlZWtDb21wbGV0ZWQgPSB0cnVlOwotICAgICAgICBHU1RfREVCVUco
ImRvU2VlaygpOiBnc3RfZWxlbWVudF9zZWVrKCkgZmFpbGVkLCByZXR1cm5pbmcgZmFsc2UiKTsK
KyAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiZG9TZWVrKCk6IGdzdF9lbGVt
ZW50X3NlZWsoKSBmYWlsZWQsIHJldHVybmluZyBmYWxzZSIpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCiAgICAgLy8gVGhlIHNhbXBsZXMgd2lsbCBiZSBlbnF1ZXVlZCBpbiBub3Rp
ZnlTZWVrTmVlZHNEYXRhKCkuCi0gICAgR1NUX0RFQlVHKCJkb1NlZWsoKTogZ3N0X2VsZW1lbnRf
c2VlaygpIHN1Y2NlZWRlZCwgcmV0dXJuaW5nIHRydWUiKTsKKyAgICBHU1RfREVCVUdfT0JKRUNU
KHBpcGVsaW5lKCksICJkb1NlZWsoKTogZ3N0X2VsZW1lbnRfc2VlaygpIHN1Y2NlZWRlZCwgcmV0
dXJuaW5nIHRydWUiKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzg5LDcgKzM4MSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjptYXliZUZpbmlzaFNlZWsoKQog
ICAgIGlmIChtX2lzU2Vla1BlbmRpbmcpIHsKICAgICAgICAgR1NUX0RFQlVHKCJbU2Vla10gQ29t
bWl0dGluZyBwZW5kaW5nIHNlZWsgdG8gJXMiLCB0b1N0cmluZyhtX3NlZWtUaW1lKS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgbV9pc1NlZWtQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgIGlmICgh
ZG9TZWVrKCkpIHsKKyAgICAgICAgaWYgKCFkb1NlZWsobV9zZWVrVGltZSwgbV9wbGF5YmFja1Jh
dGUsIHN0YXRpY19jYXN0PEdzdFNlZWtGbGFncz4oR1NUX1NFRUtfRkxBR19GTFVTSCB8IEdTVF9T
RUVLX0ZMQUdfQUNDVVJBVEUpKSkgewogICAgICAgICAgICAgR1NUX1dBUk5JTkcoIltTZWVrXSBT
ZWVraW5nIHRvICVzIGZhaWxlZCIsIHRvU3RyaW5nKG1fc2Vla1RpbWUpLnV0ZjgoKS5kYXRhKCkp
OwogICAgICAgICAgICAgbV9jYWNoZWRQb3NpdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUo
KTsKICAgICAgICAgfQpAQCAtNDA3LDExICszOTksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6bWF5YmVGaW5pc2hTZWVrKCkKICAgICB0aW1lQ2hhbmdlZCgpOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dXBkYXRlUGxheWJhY2tSYXRl
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRTo6c2Vla2luZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faXNTZWVraW5n
OwpAQCAtNDY3LDcgKzQ1NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
OjpzZWVrQ29tcGxldGVkKCkKICAgICBHU1RfREVCVUcoIk1TRSBzZWVrIGNvbXBsZXRlZCIpOwog
ICAgIG1fbXNlU2Vla0NvbXBsZXRlZCA9IHRydWU7CiAKLSAgICBkb1NlZWsoKTsKKyAgICBkb1Nl
ZWsobV9zZWVrVGltZSwgbV9wbGF5YmFja1JhdGUsIHN0YXRpY19jYXN0PEdzdFNlZWtGbGFncz4o
R1NUX1NFRUtfRkxBR19GTFVTSCB8IEdTVF9TRUVLX0ZMQUdfQUNDVVJBVEUpKTsKIAogICAgIGlm
ICghc2Vla2luZygpICYmIG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUZ1dHVyZURhdGEpCiAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUoR1NUX1NUQVRFX1BM
QVlJTkcpOwpAQCAtNDc2LDExICs0NjMsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c2Vla0NvbXBsZXRlZCgpCiAgICAgICAgIG1fcGxheWVyLT50aW1lQ2hhbmdlZCgp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c2V0UmF0ZShmbG9h
dCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OmJ1ZmZlcmVkKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9tZWRpYVNvdXJjZSA/IG1fbWVkaWFTb3VyY2UtPmJ1ZmZl
cmVkKCkgOiBtYWtlVW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyTVNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCmluZGV4IDVkMTAx
M2ZjYmVmMDU3OTM0ODBiYjM4ZWRlZmU0YjY0ZjBhY2Y0MmMuLjRkZGYyYmZjNTNmYTMzNTc4YTYy
NmI5MjczZWYxN2IwNTRkOWJkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaApAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKSBvdmVycmlkZTsKICAgICBNZWRpYVRpbWUgZHVyYXRp
b25NZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0UmF0ZShmbG9hdCkg
b3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVy
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUo
KSBjb25zdCBvdmVycmlkZTsKIApAQCAtOTMsOSArOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
dXBkYXRlU3RhdGVzKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGRvU2Vlayhjb25zdCBNZWRpYVRp
bWUmLCBmbG9hdCwgR3N0U2Vla0ZsYWdzKSBvdmVycmlkZTsKLSAgICBib29sIGRvU2VlaygpOwog
ICAgIHZvaWQgbWF5YmVGaW5pc2hTZWVrKCk7Ci0gICAgdm9pZCB1cGRhdGVQbGF5YmFja1JhdGUo
KSBvdmVycmlkZTsKKwogICAgIHZvaWQgYXN5bmNTdGF0ZUNoYW5nZURvbmUoKSBvdmVycmlkZTsK
IAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLgo=
</data>
<flag name="review"
          id="408866"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>