<?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>50382</bug_id>
          
          <creation_ts>2010-12-02 04:09:16 -0800</creation_ts>
          <short_desc>[GStreamer] hasVideo/Audio return false until the pipeline reaches PAUSED</short_desc>
          <delta_ts>2010-12-03 03:07:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>50228</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>316080</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-02 04:09:16 -0800</bug_when>
    <thetext>For a video with preload=none and controls shown, no autoplay, the controls won&apos;t display the fullscreen/mute buttons until playback started. This is because in that case the playback is delayed and pipeline state remains NULL. So in this case hasVideo and hasAudio return false because the queries on playbin are failing.

The proposed solution is to set pipeline state to PAUSED even if preload=none and in this case ignore the state-change messages and call ::updateStates() once in commitLoad().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316143</commentid>
    <comment_count>1</comment_count>
      <attachid>75377</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-02 07:40:51 -0800</bug_when>
    <thetext>Created attachment 75377
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316150</commentid>
    <comment_count>2</comment_count>
      <attachid>75377</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-02 07:54:51 -0800</bug_when>
    <thetext>Comment on attachment 75377
proposed patch

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

Seems quite reasonable. I think it needs just a couple fixes.

&gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:208
&gt; +void mediaPlayerPrivateVideoTagsChangedCallback(GObject* element, gint streamId, gpointer data)

You can just make this void mediaPlayerPrivateVideoTagsChangedCallback(GObject* element, gint streamId, MediaPlayerPrivateGStreamer* player)

&gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:214
&gt; +void mediaPlayerPrivateAudioTagsChangedCallback(GObject* element, gint streamId, gpointer data)

Same here.

&gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:346
&gt; +    , m_hasAudio(false)

Shouldn&apos;t m_videoTagsTimerHandler and m_audioTagstimreHandler be initialized to 0 here. To guard touching junk data in the destructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316174</commentid>
    <comment_count>3</comment_count>
      <attachid>75381</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-02 08:56:55 -0800</bug_when>
    <thetext>Created attachment 75381
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316221</commentid>
    <comment_count>4</comment_count>
      <attachid>75381</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-02 09:54:36 -0800</bug_when>
    <thetext>Comment on attachment 75381
proposed patch

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

Seems reasonable, but please remove the unecessary lines from the destructor.

&gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:396
&gt; +    m_videoTagsTimerHandler = 0;

You shouldn&apos;t need to zero this field out in the destructor.

&gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:400
&gt; +    m_audioTagsTimerHandler = 0;

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316752</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-03 02:17:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 75381 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75381&amp;action=review
&gt; 
&gt; Seems reasonable, but please remove the unecessary lines from the destructor.
&gt; 
&gt; &gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:396
&gt; &gt; +    m_videoTagsTimerHandler = 0;
&gt; 
&gt; You shouldn&apos;t need to zero this field out in the destructor.
&gt; 
&gt; &gt; WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:400
&gt; &gt; +    m_audioTagsTimerHandler = 0;
&gt; 
&gt; Same here.

Hum ok but why did you approve the similar changes for the mute/volume timer handlers? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316761</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-03 02:57:36 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; Hum ok but why did you approve the similar changes for the mute/volume timer handlers? :)

Sorry. I missed this in the previous patch. Since this code is in the destructor, it would be an error if any other method ran after this one. Thus, you don&apos;t have to worry about nulling out members that aren&apos;t accessed again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316767</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-12-03 03:07:52 -0800</bug_when>
    <thetext>Committed r73257: &lt;http://trac.webkit.org/changeset/73257&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75377</attachid>
            <date>2010-12-02 07:40:51 -0800</date>
            <delta_ts>2010-12-02 08:56:55 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>15366</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmZTFmZDc5OTU4ODM3OWY3MzA1NzcwZDE1MTY3ODIzYzRlYTY1MTE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIgRGVjIDIwMTAgMTQ6NDg6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTIgKysrCiBMYXlvdXRUZXN0cy9tZWRpYS9jb250cm9scy13aXRo
b3V0LXByZWxvYWQuaHRtbCAgICB8ICAgMjYgKysrKysrCiAuLi4vbWVkaWEvY29udHJvbHMtd2l0
aG91dC1wcmVsb2FkLWV4cGVjdGVkLnR4dCAgICB8ICAgMjQgKysrKysKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysrCiAuLi4v
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgOTUgKysr
KysrKysrKysrKysrKy0tLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmggICAgICAgIHwgICAxOSArKysrLQogNiBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9u
cygrKSwgMjAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbWVk
aWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLWV4cGVj
dGVkLnR4dAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3M2FmYzM3Li4zMTU0N2Y2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGhhc1ZpZGVvL2hh
c0F1ZGlvIHJlaW1wbGVtZW50YXRpb25zCisKKyAgICAgICAgW0dTdHJlYW1lcl0gaGFzVmlkZW8v
QXVkaW8gcmV0dXJuIGZhbHNlIHVudGlsIHRoZSBwaXBlbGluZSByZWFjaGVzIFBBVVNFRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzODIKKworICAg
ICAgICAqIG1lZGlhL2NvbnRyb2xzLXdpdGhvdXQtcHJlbG9hZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL2NvbnRyb2xzLXdpdGhvdXQtcHJlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNGEyZDQ5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL2NvbnRyb2xzLXdpdGhvdXQtcHJlbG9hZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBzZXRTcmNCeVRhZ05hbWUoInZpZGVvIiwgZmluZE1lZGlhRmlsZSgidmlk
ZW8iLCAiY29udGVudC90ZXN0IikpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZmluaXNo
LCAyMDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisg
ICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICAgICAgPHA+VGhlIGNvbnRyb2xzIHNob3Vs
ZCBub3QgZGVwZW5kIG9uIHByZWxvYWQgdmFsdWUuPC9wPgorICAgICAgICA8dmlkZW8gcHJlbG9h
ZD1ub25lIGNvbnRyb2xzID48L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9tZWRpYS9jb250cm9scy13aXRob3V0LXByZWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL2NvbnRyb2xz
LXdpdGhvdXQtcHJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYTU5M2Y2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9tZWRpYS9jb250cm9scy13aXRob3V0LXByZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXpl
IDc4NHgxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTJ4MTkK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTI6ICJUaGUgY29udHJvbHMgc2hv
dWxkIG5vdCBkZXBlbmQgb24gcHJlbG9hZCB2YWx1ZS4iCisgICAgICBSZW5kZXJCbG9jayAoYW5v
bnltb3VzKSBhdCAoMCwzNSkgc2l6ZSA3ODR4MTUwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsNDMpIHNpemUgMzAweDE1MAorICBSZW5k
ZXJWaWRlbyB7VklERU99IGF0ICgwLDApIHNpemUgMzAweDE1MAorbGF5ZXIgYXQgKDgsNDMpIHNp
emUgMzAweDE1MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQg
KDAsMCkgc2l6ZSAzMDB4MTUwCitsYXllciBhdCAoOCwxNzMpIHNpemUgMzAweDIwCisgIFJlbmRl
ckZsZXhpYmxlQm94IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxMzApIHNpemUgMzAweDIwCisg
ICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDAsMCkgc2l6ZSAyMHgyMAorICAgIFJlbmRlckZs
ZXhpYmxlQm94IHtESVZ9IGF0ICgyMCwwKSBzaXplIDIwMHgyMCBbYm9yZGVyOiAoMXB4IHNvbGlk
ICNGRkZGRkYzMykgbm9uZSAoMXB4IHNvbGlkICNGRkZGRkYzMyldCisgICAgICBSZW5kZXJTbGlk
ZXIge0lOUFVUfSBhdCAoMSwwKSBzaXplIDE5OHgyMAorICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMiw0KSBzaXplIDEyeDEyCisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDIyMCww
KSBzaXplIDIweDIwCisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDI0MCwwKSBzaXplIDIw
eDIwCisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDI2MCwwKSBzaXplIDIweDIwCisgICAg
UmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDI4MCwwKSBzaXplIDIweDIwCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVkZGM2ODguLjQ5NTA1
ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMTItMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtHU3RyZWFtZXJdIGhhc1ZpZGVvL0F1ZGlvIHJldHVybiBmYWxzZSB1bnRpbCB0aGUg
cGlwZWxpbmUgcmVhY2hlcyBQQVVTRUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUwMzgyCisKKyAgICAgICAgR28gdG8gUEFVU0VEIGV2ZW4gaWYgcHJl
bG9hZCBpcyBkZWFjdGl2YXRlZC4gSW4gdGhhdCBjYXNlIGRvbid0CisgICAgICAgIHByb2Nlc3Mg
dGhlIEdTdHJlYW1lciBzdGF0ZSBjaGFuZ2VzIHVudGlsIGNvbW1pdExvYWQoKSBoYXMgYmVlbgor
ICAgICAgICBjYWxsZWQuIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBoYXNWaWRlbyBhbmQgaGFzQXVk
aW8gbWV0aG9kcywKKyAgICAgICAgbWFraW5nIHRoZW0gcmVhY3RpdmUgdG8gdGhlIHBsYXliaW4y
IGF1ZGlvL3ZpZGVvIHRhZ3MtY2hhbmdlZAorICAgICAgICBzaWduYWxzLgorCisgICAgICAgIFRl
c3Q6IG1lZGlhL2NvbnRyb2xzLXdpdGhvdXQtcHJlbG9hZC5odG1sCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZU1lc3NhZ2VDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdl
ZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvVGFn
c0NoYW5nZVRpbWVvdXRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclBy
aXZhdGVWaWRlb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmNvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp2aWRlb1RhZ3NDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlb1RhZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphdWRpb1RhZ3NDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5UGxheWVyT2ZBdWRpb1RhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omhhc1ZpZGVvKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFzQXVkaW8pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkRGVsYXllZCk6CisK
IDIwMTAtMTItMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGRiZWY0YzkuLjk2ZjQ3YzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMTM0LDYgKzEzNCwxMyBAQCBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZh
dGVNZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwbwog
ICAgICAgICBtcC0+ZGlkRW5kKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NUX01FU1NB
R0VfU1RBVEVfQ0hBTkdFRDoKKyAgICAgICAgLy8gSWdub3JlIHN0YXRlIGNoYW5nZXMgaWYgbG9h
ZCBpcyBkZWxheWVkIChwcmVsb2FkPW5vbmUpLiBUaGUKKyAgICAgICAgLy8gcGxheWVyIHN0YXRl
IHdpbGwgYmUgdXBkYXRlZCBvbmNlIGNvbW1pdExvYWQoKSBpcyBjYWxsZWQuCisgICAgICAgIGlm
IChtcC0+bG9hZERlbGF5ZWQoKSkgeworICAgICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJN
ZWRpYSBsb2FkIGhhcyBiZWVuIGRlbGF5ZWQuIElnbm9yaW5nIHN0YXRlIGNoYW5nZXMgZm9yIG5v
dyIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICAvLyBJZ25vcmUg
c3RhdGUgY2hhbmdlcyBmcm9tIGludGVybmFsIGVsZW1lbnRzLiBUaGV5IGFyZQogICAgICAgICAv
LyBmb3J3YXJkZWQgdG8gcGxheWJpbjIgYW55d2F5LgogICAgICAgICBpZiAoR1NUX01FU1NBR0Vf
U1JDKG1lc3NhZ2UpID09IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0T2JqZWN0Kj4ocGlwZWxpbmUpKQpA
QCAtMTk4LDYgKzIwNSwzMiBAQCBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdl
VGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgogICAgIHJldHVybiBG
QUxTRTsKIH0KIAordm9pZCBtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJh
Y2soR09iamVjdCogZWxlbWVudCwgZ2ludCBzdHJlYW1JZCwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAg
ICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIqPihkYXRhKTsKKyAgICBtcC0+dmlkZW9UYWdzQ2hhbmdl
ZChzdHJlYW1JZCk7Cit9CisKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdl
ZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQgc3RyZWFtSWQsIGdwb2ludGVyIGRhdGEp
Cit7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBtcCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4oZGF0YSk7CisgICAgbXAtPmF1ZGlvVGFn
c0NoYW5nZWQoc3RyZWFtSWQpOworfQorCitnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVBdWRp
b1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBw
bGF5ZXIpCit7CisgICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291
cmNlIGNyZWF0ZWQgaW4gOjphdWRpb1RhZ3NDaGFuZ2VkLgorICAgIHBsYXllci0+bm90aWZ5UGxh
eWVyT2ZBdWRpb1RhZ3MoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK2dib29sZWFuIG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK3sKKyAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBv
ZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OnZpZGVvVGFnc0NoYW5nZWQuCisgICAg
cGxheWVyLT5ub3RpZnlQbGF5ZXJPZlZpZGVvVGFncygpOworICAgIHJldHVybiBGQUxTRTsKK30K
Kwogc3RhdGljIGZsb2F0IHBsYXliYWNrUG9zaXRpb24oR3N0RWxlbWVudCogcGxheWJpbikKIHsK
IApAQCAtMzA5LDYgKzM0Miw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3ByZWxv
YWQoTWVkaWFQbGF5ZXI6OkF1dG8pCiAgICAgLCBtX2RlbGF5aW5nTG9hZChmYWxzZSkKICAgICAs
IG1fbWVkaWFEdXJhdGlvbktub3duKHRydWUpCisgICAgLCBtX2hhc1ZpZGVvKGZhbHNlKQorICAg
ICwgbV9oYXNBdWRpbyhmYWxzZSkKIHsKICAgICBpZiAoZG9Hc3RJbml0KCkpCiAgICAgICAgIGNy
ZWF0ZUdTVFBsYXlCaW4oKTsKQEAgLTM1Myw2ICszODgsMTQgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICBpZiAobV92b2x1
bWVUaW1lckhhbmRsZXIpCiAgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZvbHVtZVRpbWVySGFu
ZGxlcik7CiAgICAgbV92b2x1bWVUaW1lckhhbmRsZXIgPSAwOworCisgICAgaWYgKG1fdmlkZW9U
YWdzVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92aWRlb1RhZ3NUaW1l
ckhhbmRsZXIpOworICAgIG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyID0gMDsKKworICAgIGlmICht
X2F1ZGlvVGFnc1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9U
YWdzVGltZXJIYW5kbGVyKTsKKyAgICBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlciA9IDA7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJs
KQpAQCAtMzY0LDI3ICs0MDcsMjEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgaWYgKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXll
cjo6Tm9uZSkgewogICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkRlbGF5aW5nIGxvYWQuIik7
CiAgICAgICAgIG1fZGVsYXlpbmdMb2FkID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGNvbW1pdExvYWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNvbW1pdExvYWQoKQotewogICAgIC8vIEdTdHJlYW1lciBuZWVkcyB0byBoYXZlIHRoZSBw
aXBlbGluZSBzZXQgdG8gYSBwYXVzZWQgc3RhdGUgdG8KICAgICAvLyBzdGFydCBwcm92aWRpbmcg
YW55dGhpbmcgdXNlZnVsLgogICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4sIEdT
VF9TVEFURV9QQVVTRUQpOwogCisgICAgaWYgKCFtX2RlbGF5aW5nTG9hZCkKKyAgICAgICAgY29t
bWl0TG9hZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29tbWl0
TG9hZCgpCit7CisgICAgQVNTRVJUKCFtX2RlbGF5aW5nTG9hZCk7CiAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJDb21taXR0aW5nIGxvYWQuIik7Ci0gICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IE1l
ZGlhUGxheWVyOjpMb2FkaW5nKSB7Ci0gICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5
ZXI6OkxvYWRpbmc7Ci0gICAgICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Ci0g
ICAgfQotICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nKSB7
Ci0gICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsKLSAgICAg
ICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7Ci0gICAgfQorICAgIHVwZGF0ZVN0YXRl
cygpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2hhbmdlUGlwZWxp
bmVTdGF0ZShHc3RTdGF0ZSBuZXdTdGF0ZSkKQEAgLTU4NCwyMCArNjIxLDQwIEBAIEludFNpemUg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIEludFNpemUoc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0YXRpY19jYXN0PGludD4oaGVp
Z2h0KSk7CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYXNWaWRlbygp
IGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9UYWdzQ2hhbmdl
ZChnaW50IHN0cmVhbUlkKQoreworICAgIGlmIChtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcikKKyAg
ICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKTsKKyAgICBtX3Zp
ZGVvVGFnc1RpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxH
U291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxi
YWNrKSwgdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3Rp
ZnlQbGF5ZXJPZlZpZGVvVGFncygpCiB7CisgICAgbV92aWRlb1RhZ3NUaW1lckhhbmRsZXIgPSAw
OworCiAgICAgZ2ludCBjdXJyZW50VmlkZW8gPSAtMTsKICAgICBpZiAobV9wbGF5QmluKQogICAg
ICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAiY3VycmVudC12aWRlbyIsICZjdXJyZW50Vmlk
ZW8sIE5VTEwpOwotICAgIHJldHVybiBjdXJyZW50VmlkZW8gPiAtMTsKKyAgICBtX2hhc1ZpZGVv
ID0gY3VycmVudFZpZGVvID4gLTE7CisgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCkt
Pm1lZGlhUGxheWVyQmFja2VuZFVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCi1ib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFzQXVkaW8oKSBjb25zdAordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmF1ZGlvVGFnc0NoYW5nZWQoZ2ludCBzdHJlYW1JZCkKIHsKKyAgICBp
ZiAobV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX2F1
ZGlvVGFnc1RpbWVySGFuZGxlcik7CisgICAgbV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIgPSBnX3Rp
bWVvdXRfYWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJp
dmF0ZUF1ZGlvVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpb1RhZ3MoKQorewor
ICAgIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyID0gMDsKKwogICAgIGdpbnQgY3VycmVudEF1ZGlv
ID0gLTE7CiAgICAgaWYgKG1fcGxheUJpbikKICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJp
biwgImN1cnJlbnQtYXVkaW8iLCAmY3VycmVudEF1ZGlvLCBOVUxMKTsKLSAgICByZXR1cm4gY3Vy
cmVudEF1ZGlvID4gLTE7CisgICAgbV9oYXNBdWRpbyA9IGN1cnJlbnRBdWRpbyA+IC0xOworICAg
IG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckJhY2tlbmRVcGRhdGVk
KG1fcGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFZv
bHVtZShmbG9hdCB2b2x1bWUpCkBAIC0xNDQxLDYgKzE0OTgsOCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgZ19zaWduYWxfY29ubmVj
dChtX3BsYXlCaW4sICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdCht
X3BsYXlCaW4sICJub3RpZnk6OnNvdXJjZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRl
U291cmNlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3Bs
YXlCaW4sICJub3RpZnk6Om11dGUiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU11dGVD
aGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwg
InZpZGVvLXRhZ3MtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9U
YWdzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlC
aW4sICJhdWRpby10YWdzLWNoYW5nZWQiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZUF1
ZGlvVGFnc0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiAgICAgbV93ZWJraXRWaWRlb1Npbmsg
PSB3ZWJraXRfdmlkZW9fc2lua19uZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaAppbmRleCAyMzA5NWVjLi5iMjVkYzkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaApAQCAtNDksNiArNDksMTEgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVz
c2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIHZvaWQg
bWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQs
IEdQYXJhbVNwZWMqIHBzcGVjLCBncG9pbnRlciBkYXRhKTsKIHZvaWQgbWVkaWFQbGF5ZXJQcml2
YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBHUGFyYW1TcGVjKiBwc3Bl
YywgZ3BvaW50ZXIgZGF0YSk7CiB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRD
YWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIgZGF0
YSk7Cit2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZWRDYWxsYmFjayhHT2Jq
ZWN0KiBlbGVtZW50LCBnaW50IHN0cmVhbUlkLCBncG9pbnRlciBkYXRhKTsKK3ZvaWQgbWVkaWFQ
bGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdp
bnQgc3RyZWFtSWQsIGdwb2ludGVyIGRhdGEpOworZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRl
QXVkaW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciogcGxheWVyKTsKK2dib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZVRp
bWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcik7CisKIGdi
b29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11
dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7CiAK
QEAgLTYxLDggKzY2LDggQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVi
bGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBzdGF0aWMgdm9p
ZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogICAgICAgICAg
ICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwotICAgICAgICAgICAgYm9vbCBoYXNWaWRl
bygpIGNvbnN0OwotICAgICAgICAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0OworICAgICAgICAg
ICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlkZW87IH0KKyAgICAgICAg
ICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2hhc0F1ZGlvOyB9CiAKICAgICAg
ICAgICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcgJnVybCk7CiAgICAgICAgICAgICB2b2lkIGNv
bW1pdExvYWQoKTsKQEAgLTkxLDYgKzk2LDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAg
ICB2b2lkIG11dGVDaGFuZ2VkKCk7CiAgICAgICAgICAgICB2b2lkIG5vdGlmeVBsYXllck9mTXV0
ZSgpOwogCisgICAgICAgICAgICBib29sIGxvYWREZWxheWVkKCkgY29uc3QgeyByZXR1cm4gbV9k
ZWxheWluZ0xvYWQ7IH0KICAgICAgICAgICAgIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBsYXllcjo6
UHJlbG9hZCk7CiAgICAgICAgICAgICB2b2lkIGZpbGxUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcj4qKTsKIApAQCAtMTI0LDYgKzEzMCwxMSBAQCBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIHsKICAgICAgICAgICAgIEdzdEVsZW1lbnQqIHBpcGVsaW5lKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF5QmluOyB9CiAgICAgICAgICAgICBib29sIHBpcGVsaW5lUmVzZXQoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc2V0UGlwZWxpbmU7IH0KIAorICAgICAgICAgICAgdm9pZCB2aWRlb1RhZ3NDaGFu
Z2VkKGdpbnQpOworICAgICAgICAgICAgdm9pZCBhdWRpb1RhZ3NDaGFuZ2VkKGdpbnQpOworICAg
ICAgICAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZlZpZGVvVGFncygpOworICAgICAgICAgICAgdm9p
ZCBub3RpZnlQbGF5ZXJPZkF1ZGlvVGFncygpOworCiAgICAgICAgIHByaXZhdGU6CiAgICAgICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAgICAgICAg
ICAgIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKQEAgLTE4MSw2ICsxOTIsMTAgQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBSZWZQdHI8R1N0cmVhbWVyR1dvcmxkPiBtX2dz
dEdXb3JsZDsKICAgICAgICAgICAgIGd1aW50IG1fdm9sdW1lVGltZXJIYW5kbGVyOwogICAgICAg
ICAgICAgZ3VpbnQgbV9tdXRlVGltZXJIYW5kbGVyOworICAgICAgICAgICAgYm9vbCBtX2hhc1Zp
ZGVvOworICAgICAgICAgICAgYm9vbCBtX2hhc0F1ZGlvOworICAgICAgICAgICAgZ3VpbnQgbV9h
dWRpb1RhZ3NUaW1lckhhbmRsZXI7CisgICAgICAgICAgICBndWludCBtX3ZpZGVvVGFnc1RpbWVy
SGFuZGxlcjsKICAgICB9OwogfQogCi0tIAoxLjcuMi4z
</data>
<flag name="review"
          id="66165"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75381</attachid>
            <date>2010-12-02 08:56:55 -0800</date>
            <delta_ts>2010-12-02 09:54:36 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>15449</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4ZGQ2ODUyYzZmZWFiNzEwYzhkNzJhMzNiYjJiZmFhYWQzMWIxOGRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIgRGVjIDIwMTAgMTQ6NDg6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTIgKysrCiBMYXlvdXRUZXN0cy9tZWRpYS9jb250cm9scy13aXRo
b3V0LXByZWxvYWQuaHRtbCAgICB8ICAgMjYgKysrKysKIC4uLi9tZWRpYS9jb250cm9scy13aXRo
b3V0LXByZWxvYWQtZXhwZWN0ZWQudHh0ICAgIHwgICAyNCArKysrKwogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysKIC4uLi9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICA5NyArKysr
KysrKysrKysrKysrLS0tLQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaCAgICAgICAgfCAgIDE5ICsrKystCiA2IGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25z
KCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9tZWRp
YS9jb250cm9scy13aXRob3V0LXByZWxvYWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9tZWRpYS9jb250cm9scy13aXRob3V0LXByZWxvYWQtZXhwZWN0
ZWQudHh0CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDhjZGFlYzEuLjI0NTc4YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAog
MjAxMC0xMi0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaGFzVmlkZW8vaGFz
QXVkaW8gcmVpbXBsZW1lbnRhdGlvbnMKKworICAgICAgICBbR1N0cmVhbWVyXSBoYXNWaWRlby9B
dWRpbyByZXR1cm4gZmFsc2UgdW50aWwgdGhlIHBpcGVsaW5lIHJlYWNoZXMgUEFVU0VECisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDM4MgorCisgICAg
ICAgICogbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9tZWRpYS9jb250cm9scy13aXRob3V0LXByZWxvYWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKworMjAxMC0xMi0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBmYWlsaW5nIHRlc3QuCiAKICAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogU2tpcCBtZWRpYS92aWRlby12b2x1bWUuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2Fk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250cm9scy13aXRob3V0LXByZWxvYWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTJkNDkyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWwKQEAg
LTAsMCArMSwyNiBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPW1l
ZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQo
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNldFNyY0J5VGFnTmFtZSgidmlkZW8i
LCBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSk7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChmaW5pc2gsIDIwMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8
cD5UaGUgY29udHJvbHMgc2hvdWxkIG5vdCBkZXBlbmQgb24gcHJlbG9hZCB2YWx1ZS48L3A+Cisg
ICAgICAgIDx2aWRlbyBwcmVsb2FkPW5vbmUgY29udHJvbHMgPjwvdmlkZW8+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL2Nv
bnRyb2xzLXdpdGhvdXQtcHJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTkzZjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL21lZGlhL2NvbnRyb2xzLXdpdGhvdXQtcHJlbG9hZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDMxMngxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMx
MjogIlRoZSBjb250cm9scyBzaG91bGQgbm90IGRlcGVuZCBvbiBwcmVsb2FkIHZhbHVlLiIKKyAg
ICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM1KSBzaXplIDc4NHgxNTAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCw0Mykg
c2l6ZSAzMDB4MTUwCisgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDAsMCkgc2l6ZSAzMDB4MTUw
CitsYXllciBhdCAoOCw0Mykgc2l6ZSAzMDB4MTUwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKK2xheWVyIGF0ICg4LDE3Mykg
c2l6ZSAzMDB4MjAKKyAgUmVuZGVyRmxleGlibGVCb3ggKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgw
LDEzMCkgc2l6ZSAzMDB4MjAKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMCwwKSBzaXpl
IDIweDIwCisgICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDIwLDApIHNpemUgMjAweDIw
IFtib3JkZXI6ICgxcHggc29saWQgI0ZGRkZGRjMzKSBub25lICgxcHggc29saWQgI0ZGRkZGRjMz
KV0KKyAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgxLDApIHNpemUgMTk4eDIwCisgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyLDQpIHNpemUgMTJ4MTIKKyAgICBSZW5kZXJCdXR0
b24ge0lOUFVUfSBhdCAoMjIwLDApIHNpemUgMjB4MjAKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVU
fSBhdCAoMjQwLDApIHNpemUgMjB4MjAKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjYw
LDApIHNpemUgMjB4MjAKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjgwLDApIHNpemUg
MjB4MjAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNzUyODQ4ZC4uOTZiMjYxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0xMi0wMiAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dTdHJlYW1lcl0gaGFzVmlkZW8vQXVkaW8gcmV0
dXJuIGZhbHNlIHVudGlsIHRoZSBwaXBlbGluZSByZWFjaGVzIFBBVVNFRAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzODIKKworICAgICAgICBHbyB0
byBQQVVTRUQgZXZlbiBpZiBwcmVsb2FkIGlzIGRlYWN0aXZhdGVkLiBJbiB0aGF0IGNhc2UgZG9u
J3QKKyAgICAgICAgcHJvY2VzcyB0aGUgR1N0cmVhbWVyIHN0YXRlIGNoYW5nZXMgdW50aWwgY29t
bWl0TG9hZCgpIGhhcyBiZWVuCisgICAgICAgIGNhbGxlZC4gVGhpcyBwYXRjaCBhbHNvIGZpeGVz
IGhhc1ZpZGVvIGFuZCBoYXNBdWRpbyBtZXRob2RzLAorICAgICAgICBtYWtpbmcgdGhlbSByZWFj
dGl2ZSB0byB0aGUgcGxheWJpbjIgYXVkaW8vdmlkZW8gdGFncy1jaGFuZ2VkCisgICAgICAgIHNp
Z25hbHMuCisKKyAgICAgICAgVGVzdDogbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQbGF5ZXJQcml2YXRl
TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZp
ZGVvVGFnc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclBy
aXZhdGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFQ
bGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29tbWl0TG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvVGFnc0NoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5
ZXJPZlZpZGVvVGFncyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmF1ZGlvVGFnc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvVGFncyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aGFzVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpoYXNBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmxvYWREZWxheWVkKToKKwogMjAxMC0xMi0wMiAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBkYmVmNGM5Li5hMTBkMzEwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEzNCw2ICsxMzQsMTMgQEAgZ2Jvb2xl
YW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNz
YWdlKiBtZXNzYWdlLCBncG8KICAgICAgICAgbXAtPmRpZEVuZCgpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdTVF9NRVNTQUdFX1NUQVRFX0NIQU5HRUQ6CisgICAgICAgIC8vIElnbm9yZSBz
dGF0ZSBjaGFuZ2VzIGlmIGxvYWQgaXMgZGVsYXllZCAocHJlbG9hZD1ub25lKS4gVGhlCisgICAg
ICAgIC8vIHBsYXllciBzdGF0ZSB3aWxsIGJlIHVwZGF0ZWQgb25jZSBjb21taXRMb2FkKCkgaXMg
Y2FsbGVkLgorICAgICAgICBpZiAobXAtPmxvYWREZWxheWVkKCkpIHsKKyAgICAgICAgICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiTWVkaWEgbG9hZCBoYXMgYmVlbiBkZWxheWVkLiBJZ25vcmluZyBz
dGF0ZSBjaGFuZ2VzIGZvciBub3ciKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisK
ICAgICAgICAgLy8gSWdub3JlIHN0YXRlIGNoYW5nZXMgZnJvbSBpbnRlcm5hbCBlbGVtZW50cy4g
VGhleSBhcmUKICAgICAgICAgLy8gZm9yd2FyZGVkIHRvIHBsYXliaW4yIGFueXdheS4KICAgICAg
ICAgaWYgKEdTVF9NRVNTQUdFX1NSQyhtZXNzYWdlKSA9PSByZWludGVycHJldF9jYXN0PEdzdE9i
amVjdCo+KHBpcGVsaW5lKSkKQEAgLTE5OCw2ICsyMDUsMzAgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5
ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlk
ZW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQgc3RyZWFtSWQsIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQoreworICAgIHBsYXllci0+dmlkZW9U
YWdzQ2hhbmdlZChzdHJlYW1JZCk7Cit9CisKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9U
YWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQgc3RyZWFtSWQsIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQoreworICAgIHBsYXllci0+YXVkaW9UYWdz
Q2hhbmdlZChzdHJlYW1JZCk7Cit9CisKK2dib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlv
VGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBs
YXllcikKK3sKKyAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3Vy
Y2UgY3JlYXRlZCBpbiA6OmF1ZGlvVGFnc0NoYW5nZWQuCisgICAgcGxheWVyLT5ub3RpZnlQbGF5
ZXJPZkF1ZGlvVGFncygpOworICAgIHJldHVybiBGQUxTRTsKK30KKworZ2Jvb2xlYW4gbWVkaWFQ
bGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lciogcGxheWVyKQoreworICAgIC8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIG9m
IHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6dmlkZW9UYWdzQ2hhbmdlZC4KKyAgICBw
bGF5ZXItPm5vdGlmeVBsYXllck9mVmlkZW9UYWdzKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQor
CiBzdGF0aWMgZmxvYXQgcGxheWJhY2tQb3NpdGlvbihHc3RFbGVtZW50KiBwbGF5YmluKQogewog
CkBAIC0zMDksNiArMzQwLDEyIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3ByZWxv
YWQoTWVkaWFQbGF5ZXI6OkF1dG8pCiAgICAgLCBtX2RlbGF5aW5nTG9hZChmYWxzZSkKICAgICAs
IG1fbWVkaWFEdXJhdGlvbktub3duKHRydWUpCisgICAgLCBtX3ZvbHVtZVRpbWVySGFuZGxlcigw
KQorICAgICwgbV9tdXRlVGltZXJIYW5kbGVyKDApCisgICAgLCBtX2hhc1ZpZGVvKGZhbHNlKQor
ICAgICwgbV9oYXNBdWRpbyhmYWxzZSkKKyAgICAsIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKDAp
CisgICAgLCBtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcigwKQogewogICAgIGlmIChkb0dzdEluaXQo
KSkKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigpOwpAQCAtMzUzLDYgKzM5MCwxNCBAQCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQog
ICAgIGlmIChtX3ZvbHVtZVRpbWVySGFuZGxlcikKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1f
dm9sdW1lVGltZXJIYW5kbGVyKTsKICAgICBtX3ZvbHVtZVRpbWVySGFuZGxlciA9IDA7CisKKyAg
ICBpZiAobV92aWRlb1RhZ3NUaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZSht
X3ZpZGVvVGFnc1RpbWVySGFuZGxlcik7CisgICAgbV92aWRlb1RhZ3NUaW1lckhhbmRsZXIgPSAw
OworCisgICAgaWYgKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9y
ZW1vdmUobV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIpOworICAgIG1fYXVkaW9UYWdzVGltZXJIYW5k
bGVyID0gMDsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29u
c3QgU3RyaW5nJiB1cmwpCkBAIC0zNjQsMjcgKzQwOSwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKICAgICBpZiAobV9wcmVsb2Fk
ID09IE1lZGlhUGxheWVyOjpOb25lKSB7CiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiRGVs
YXlpbmcgbG9hZC4iKTsKICAgICAgICAgbV9kZWxheWluZ0xvYWQgPSB0cnVlOwotICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgY29tbWl0TG9hZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y29tbWl0TG9hZCgpCi17CiAgICAgLy8gR1N0cmVhbWVyIG5lZWRz
IHRvIGhhdmUgdGhlIHBpcGVsaW5lIHNldCB0byBhIHBhdXNlZCBzdGF0ZSB0bwogICAgIC8vIHN0
YXJ0IHByb3ZpZGluZyBhbnl0aGluZyB1c2VmdWwuCiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRl
KG1fcGxheUJpbiwgR1NUX1NUQVRFX1BBVVNFRCk7CiAKKyAgICBpZiAoIW1fZGVsYXlpbmdMb2Fk
KQorICAgICAgICBjb21taXRMb2FkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjb21taXRMb2FkKCkKK3sKKyAgICBBU1NFUlQoIW1fZGVsYXlpbmdMb2FkKTsKICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIkNvbW1pdHRpbmcgbG9hZC4iKTsKLSAgICBpZiAobV9uZXR3
b3JrU3RhdGUgIT0gTWVkaWFQbGF5ZXI6OkxvYWRpbmcpIHsKLSAgICAgICAgbV9uZXR3b3JrU3Rh
dGUgPSBNZWRpYVBsYXllcjo6TG9hZGluZzsKLSAgICAgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0
ZUNoYW5nZWQoKTsKLSAgICB9Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBNZWRpYVBsYXllcjo6
SGF2ZU5vdGhpbmcpIHsKLSAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVO
b3RoaW5nOwotICAgICAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKLSAgICB9Cisg
ICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0YXRlIG5ld1N0YXRlKQpAQCAtNTg0LDIwICs2MjMs
NDAgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkg
Y29uc3QKICAgICByZXR1cm4gSW50U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoKSwgc3RhdGlj
X2Nhc3Q8aW50PihoZWlnaHQpKTsKIH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6Omhhc1ZpZGVvKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2
aWRlb1RhZ3NDaGFuZ2VkKGdpbnQgc3RyZWFtSWQpCit7CisgICAgaWYgKG1fdmlkZW9UYWdzVGlt
ZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92aWRlb1RhZ3NUaW1lckhhbmRs
ZXIpOworICAgIG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFu
Z2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVmlkZW9UYWdzKCkKIHsKKyAgICBtX3ZpZGVvVGFnc1Rp
bWVySGFuZGxlciA9IDA7CisKICAgICBnaW50IGN1cnJlbnRWaWRlbyA9IC0xOwogICAgIGlmICht
X3BsYXlCaW4pCiAgICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJjdXJyZW50LXZpZGVv
IiwgJmN1cnJlbnRWaWRlbywgTlVMTCk7Ci0gICAgcmV0dXJuIGN1cnJlbnRWaWRlbyA+IC0xOwor
ICAgIG1faGFzVmlkZW8gPSBjdXJyZW50VmlkZW8gPiAtMTsKKyAgICBtX3BsYXllci0+bWVkaWFQ
bGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJCYWNrZW5kVXBkYXRlZChtX3BsYXllcik7CiB9CiAK
LWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYXNBdWRpbygpIGNvbnN0Cit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6YXVkaW9UYWdzQ2hhbmdlZChnaW50IHN0cmVh
bUlkKQogeworICAgIGlmIChtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3Vy
Y2VfcmVtb3ZlKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKTsKKyAgICBtX2F1ZGlvVGFnc1RpbWVy
SGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4o
bWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1
ZGlvVGFncygpCit7CisgICAgbV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIgPSAwOworCiAgICAgZ2lu
dCBjdXJyZW50QXVkaW8gPSAtMTsKICAgICBpZiAobV9wbGF5QmluKQogICAgICAgICBnX29iamVj
dF9nZXQobV9wbGF5QmluLCAiY3VycmVudC1hdWRpbyIsICZjdXJyZW50QXVkaW8sIE5VTEwpOwot
ICAgIHJldHVybiBjdXJyZW50QXVkaW8gPiAtMTsKKyAgICBtX2hhc0F1ZGlvID0gY3VycmVudEF1
ZGlvID4gLTE7CisgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVy
QmFja2VuZFVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKQEAgLTE0NDEsNiArMTUwMCw4IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICBn
X3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyht
ZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRp
YVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5
ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5l
Y3QobV9wbGF5QmluLCAidmlkZW8tdGFncy1jaGFuZ2VkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXll
clByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KG1fcGxheUJpbiwgImF1ZGlvLXRhZ3MtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQ
bGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBtX3dl
YmtpdFZpZGVvU2luayA9IHdlYmtpdF92aWRlb19zaW5rX25ldygpOwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDIzMDk1ZWMuLjQ2OTQzYWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC00OSw2ICs0OSwxMSBAQCBnYm9vbGVhbiBtZWRpYVBs
YXllclByaXZhdGVNZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3Nh
Z2UsIGdwbwogdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09i
amVjdCogZWxlbWVudCwgR1BhcmFtU3BlYyogcHNwZWMsIGdwb2ludGVyIGRhdGEpOwogdm9pZCBt
ZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQ
YXJhbVNwZWMqIHBzcGVjLCBncG9pbnRlciBkYXRhKTsKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
U291cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVj
LCBncG9pbnRlciBkYXRhKTsKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdl
ZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciopOwordm9pZCBtZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2so
R09iamVjdCogZWxlbWVudCwgZ2ludCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7Citn
Ym9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2so
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpOworZ2Jvb2xlYW4gbWVkaWFQbGF5
ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lciogcGxheWVyKTsKKwogZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1l
Q2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwogZ2Jv
b2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIqKTsKIApAQCAtNjEsOCArNjYsOCBAQCBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
IHsKICAgICAgICAgICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdp
bmVSZWdpc3RyYXIpOwogCiAgICAgICAgICAgICBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Q7
Ci0gICAgICAgICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0gICAgICAgICAgICBib29sIGhh
c0F1ZGlvKCkgY29uc3Q7CisgICAgICAgICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNWaWRlbzsgfQorICAgICAgICAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IHsgcmV0
dXJuIG1faGFzQXVkaW87IH0KIAogICAgICAgICAgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyAm
dXJsKTsKICAgICAgICAgICAgIHZvaWQgY29tbWl0TG9hZCgpOwpAQCAtOTEsNiArOTYsNyBAQCBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIHZvaWQgbXV0ZUNoYW5nZWQoKTsKICAgICAgICAg
ICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZNdXRlKCk7CiAKKyAgICAgICAgICAgIGJvb2wgbG9hZERl
bGF5ZWQoKSBjb25zdCB7IHJldHVybiBtX2RlbGF5aW5nTG9hZDsgfQogICAgICAgICAgICAgdm9p
ZCBzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkKTsKICAgICAgICAgICAgIHZvaWQgZmls
bFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiopOwogCkBAIC0x
MjQsNiArMTMwLDExIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1Ymxp
YyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgR3N0RWxlbWVudCog
cGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXlCaW47IH0KICAgICAgICAgICAgIGJvb2wg
cGlwZWxpbmVSZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzZXRQaXBlbGluZTsgfQogCisgICAg
ICAgICAgICB2b2lkIHZpZGVvVGFnc0NoYW5nZWQoZ2ludCk7CisgICAgICAgICAgICB2b2lkIGF1
ZGlvVGFnc0NoYW5nZWQoZ2ludCk7CisgICAgICAgICAgICB2b2lkIG5vdGlmeVBsYXllck9mVmlk
ZW9UYWdzKCk7CisgICAgICAgICAgICB2b2lkIG5vdGlmeVBsYXllck9mQXVkaW9UYWdzKCk7CisK
ICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cihNZWRpYVBsYXllciopOwogICAgICAgICAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cigpOwpAQCAtMTgxLDYgKzE5MiwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIFJl
ZlB0cjxHU3RyZWFtZXJHV29ybGQ+IG1fZ3N0R1dvcmxkOwogICAgICAgICAgICAgZ3VpbnQgbV92
b2x1bWVUaW1lckhhbmRsZXI7CiAgICAgICAgICAgICBndWludCBtX211dGVUaW1lckhhbmRsZXI7
CisgICAgICAgICAgICBib29sIG1faGFzVmlkZW87CisgICAgICAgICAgICBib29sIG1faGFzQXVk
aW87CisgICAgICAgICAgICBndWludCBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcjsKKyAgICAgICAg
ICAgIGd1aW50IG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyOwogICAgIH07CiB9CiAKLS0gCjEuNy4y
LjM=
</data>
<flag name="review"
          id="66167"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>