<?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>159552</bug_id>
          
          <creation_ts>2016-07-08 04:00:34 -0700</creation_ts>
          <short_desc>[GStreamer][GL] crash within triggerRepaint</short_desc>
          <delta_ts>2016-07-13 05:05:16 -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>Platform</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159626</blocked>
    
    <blocked>154066</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1209046</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-08 04:00:34 -0700</bug_when>
    <thetext>../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp(787) : virtual void WebCore::MediaPlayerPrivateGStreamerBase::setSize(const WebCore::IntSize&amp;)
1   0x73989ebe WTFCrash
2   0x7281a976 WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::pendingDispatchers()
3   0x7281a6f6 WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::postTask(WTF::NoncopyableFunction&lt;void ()&gt;&amp;&amp;)
4   0x724ebba8 WebCore::GenericTaskQueue&lt;WebCore::Timer&gt;::enqueueTask(WTF::NoncopyableFunction&lt;void ()&gt;&amp;&amp;)
5   0x72f482f0 WebCore::GenericEventQueue::enqueueEvent(WTF::RefPtr&lt;WebCore::Event&gt;&amp;&amp;)
6   0x724d6102 WebCore::HTMLMediaElement::scheduleEvent(WTF::AtomicString const&amp;)
7   0x7304ac00 WebCore::HTMLVideoElement::scheduleResizeEvent()
8   0x7304ac46 WebCore::HTMLVideoElement::scheduleResizeEventIfSizeChanged()
9   0x724e1932 WebCore::HTMLMediaElement::mediaPlayerSizeChanged(WebCore::MediaPlayer*)
10  0x728a5a5c WebCore::MediaPlayer::sizeChanged()
11  0x72ce1eee WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint(_GstSample*)
mediaControlsScript:22:14: CONSOLE ERROR TypeError: null is not an object (evaluating &apos;panel.parentElement.querySelector&apos;)
12  0x72ce1fc2 WebCore::MediaPlayerPrivateGStreamerBase::drawCallback(WebCore::MediaPlayerPrivateGStreamerBase*, _GstBuffer*, _GstPad*, _GstBaseSink*)
13  0x6a250adc ffi_call_VFP
14  0x6a2510ea ffi_call

The sizeChanged() call needs to be scheduled to run on the main loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209047</commentid>
    <comment_count>1</comment_count>
      <attachid>283134</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-08 04:04:03 -0700</bug_when>
    <thetext>Created attachment 283134
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209048</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 04:04:46 -0700</bug_when>
    <thetext>Attachment 283134 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:553:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209050</commentid>
    <comment_count>3</comment_count>
      <attachid>283134</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-08 04:13:15 -0700</bug_when>
    <thetext>Comment on attachment 283134
patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:553
&gt; -        m_player-&gt;sizeChanged();
&gt; +        RunLoop::main().dispatch([this] { m_player-&gt;sizeChanged(); });

Are you sure this is because of the threaded compositor and not because of GStreamerGL. Because I think in case of not using GSTGL, triggerRepaint is called in the main thread. In case of being in the main thread we would be scheduling this unnecessarily. Also, if the instance is destroyed before the source is dispatches in the main thread, this will crash, so you would need to protect this. It would be better if we could use the main thread notifier for this, but it&apos;s int he derived class not here in the base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209053</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-08 04:18:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 283134 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283134&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:553
&gt; &gt; -        m_player-&gt;sizeChanged();
&gt; &gt; +        RunLoop::main().dispatch([this] { m_player-&gt;sizeChanged(); });
&gt; 
&gt; Are you sure this is because of the threaded compositor and not because of
&gt; GStreamerGL. Because I think in case of not using GSTGL, triggerRepaint is
&gt; called in the main thread. In case of being in the main thread we would be
&gt; scheduling this unnecessarily. Also, if the instance is destroyed before the
&gt; source is dispatches in the main thread, this will crash, so you would need
&gt; to protect this. It would be better if we could use the main thread notifier
&gt; for this, but it&apos;s int he derived class not here in the base class.

We already have a weak factory for this, so could you do something like this:

if (isMainThread())
    m_player-&gt;sizeChanged();
else {
    auto weakThis = player.createWeakPtr();
    RunLoop::main().dispatch([weakThis]) { 
        if (weakThis)
            weakThis-&gt;m_player-&gt;sizeChanged();
    });
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209065</commentid>
    <comment_count>5</comment_count>
      <attachid>283139</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-08 05:40:06 -0700</bug_when>
    <thetext>Created attachment 283139
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209626</commentid>
    <comment_count>6</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-07-11 06:38:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; if (isMainThread())
&gt;     m_player-&gt;sizeChanged();
&gt; else {
&gt;     auto weakThis = player.createWeakPtr();
&gt;     RunLoop::main().dispatch([weakThis]) { 
&gt;         if (weakThis)
&gt;             weakThis-&gt;m_player-&gt;sizeChanged();
&gt;     });
&gt; }

I understand the concerns about reducing performance but if there isn&apos;t we should create a function to do something like:

{
     auto weakThis = player.createWeakPtr();
     RunLoop::main().runNowIfMainThreadOrdispatch([weakThis]) { 
         if (weakThis)
             weakThis-&gt;m_player-&gt;sizeChanged();
     });
}

Otherwise I think we are creating these code structures and IMHO it makes code hard to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209639</commentid>
    <comment_count>7</comment_count>
      <attachid>283139</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-07-11 07:21:03 -0700</bug_when>
    <thetext>Comment on attachment 283139
patch

&gt; I understand the concerns about reducing performance but if there isn&apos;t we
&gt; should create a function to do something like:
&gt; 
&gt; {
&gt;      auto weakThis = player.createWeakPtr();
&gt;      RunLoop::main().runNowIfMainThreadOrdispatch([weakThis]) { 
&gt;          if (weakThis)
&gt;              weakThis-&gt;m_player-&gt;sizeChanged();
&gt;      });
&gt; }
&gt; 
&gt; Otherwise I think we are creating these code structures and IMHO it makes
&gt; code hard to read.

Let&apos;s not block landing this because of this nit, but please, open a new bug about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209647</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-11 07:37:18 -0700</bug_when>
    <thetext>Committed r203056: &lt;http://trac.webkit.org/changeset/203056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210343</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-12 23:45:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; if (isMainThread())
&gt; &gt;     m_player-&gt;sizeChanged();
&gt; &gt; else {
&gt; &gt;     auto weakThis = player.createWeakPtr();
&gt; &gt;     RunLoop::main().dispatch([weakThis]) { 
&gt; &gt;         if (weakThis)
&gt; &gt;             weakThis-&gt;m_player-&gt;sizeChanged();
&gt; &gt;     });
&gt; &gt; }
&gt; 
&gt; I understand the concerns about reducing performance but if there isn&apos;t we
&gt; should create a function to do something like:

This is not about performance at all, this is to a void a use after free.

&gt; {
&gt;      auto weakThis = player.createWeakPtr();
&gt;      RunLoop::main().runNowIfMainThreadOrdispatch([weakThis]) { 
&gt;          if (weakThis)
&gt;              weakThis-&gt;m_player-&gt;sizeChanged();
&gt;      });
&gt; }
&gt; 
&gt; Otherwise I think we are creating these code structures and IMHO it makes
&gt; code hard to read.

That&apos;s what the MainThreadNotifier is for, I already agreed with philn to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210344</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-12 23:46:59 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 283139 [details]
&gt; patch
&gt; 
&gt; &gt; I understand the concerns about reducing performance but if there isn&apos;t we
&gt; &gt; should create a function to do something like:
&gt; &gt; 
&gt; &gt; {
&gt; &gt;      auto weakThis = player.createWeakPtr();
&gt; &gt;      RunLoop::main().runNowIfMainThreadOrdispatch([weakThis]) { 
&gt; &gt;          if (weakThis)
&gt; &gt;              weakThis-&gt;m_player-&gt;sizeChanged();
&gt; &gt;      });
&gt; &gt; }
&gt; &gt; 
&gt; &gt; Otherwise I think we are creating these code structures and IMHO it makes
&gt; &gt; code hard to read.
&gt; 
&gt; Let&apos;s not block landing this because of this nit, but please, open a new bug
&gt; about this.

A nit? This is needed to avoid a crash because of a user after free, I wouldn&apos;t say it&apos;s a nit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210346</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-12 23:56:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r203056: &lt;http://trac.webkit.org/changeset/203056&gt;

Landed patch is not correct, the advantage of using the MainThreadNotifier is that you don&apos;t need to care about creating a weak ptr, nor checking the caller thread. MainThreadNotifier has its own weak ptr and it&apos;s destroyed by the media player private class destructor, so you don&apos;t need to move the weak ptr factory either. You just need to add the new notification to the enum and then 

- m_player-&gt;sizeChanged();
+ m_notifier.notify(MainThreadNotification::SizeChanged, [this] { m_player-&gt;sizeChanged() });

That&apos;s all</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210348</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-13 00:11:30 -0700</bug_when>
    <thetext>Ok then I&apos;ll prepare a follow-up patch, reverting the un-needed changes. Thanks Carlos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210351</commentid>
    <comment_count>13</comment_count>
      <attachid>283493</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-13 00:33:41 -0700</bug_when>
    <thetext>Created attachment 283493
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210352</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-13 00:34:25 -0700</bug_when>
    <thetext>Reopening for follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210359</commentid>
    <comment_count>15</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-07-13 01:17:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Let&apos;s not block landing this because of this nit, but please, open a new bug
&gt; &gt; about this.
&gt; 
&gt; A nit? This is needed to avoid a crash because of a user after free, I
&gt; wouldn&apos;t say it&apos;s a nit.

The nit I referred was not to avoid what is needed to avoid the crash, but the implementation of a function like runNowIfMainThreadOrDispatch.

Good catch about the weak ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210418</commentid>
    <comment_count>16</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-13 05:05:16 -0700</bug_when>
    <thetext>Committed r203159: &lt;http://trac.webkit.org/changeset/203159&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283134</attachid>
            <date>2016-07-08 04:04:03 -0700</date>
            <delta_ts>2016-07-08 05:40:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>1895</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3NDAyZTAyMjVkOTRhYjU5ZDU0MWQwODQ5ZDRiNDVhNmNkYTBlMDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDggSnVsIDIwMTYgMTM6MDM6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgICB8ICAyICstCiAyIGZpbGVzIGNo
YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJh
ZDhmNS4uOWFhYmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA3LTA4ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSBjcmFzaCB3aXRoaW4gVGhyZWFkZWQgY29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludCk6CisgICAg
ICAgIFNjaGVkdWxlIHRoZSBzaXplQ2hhbmdlZCBjYWxsIHRvIHRoZSBtYWluIHRocmVhZC4gVGhp
cyBpcyBuZWVkZWQKKyAgICAgICAgZXNwZWNpYWxseSB3aGVuIHRoZSB0aHJlYWRlZCBjb21wb3Np
dG9yIGlzIGVuYWJsZWQuCisKIDIwMTYtMDctMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEdlbmVyYXRlIFdlYkNvcmUgYnVpbHRpbiB3cmFwcGVyIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKaW5kZXggZWQ1NjhhYy4uY2RhZWI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTUwLDcgKzU1MCw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxl
KiBzYW1wbGUpCiAKICAgICBpZiAodHJpZ2dlclJlc2l6ZSkgewogICAgICAgICBMT0dfTUVESUFf
TUVTU0FHRSgiRmlyc3Qgc2FtcGxlIHJlYWNoZWQgdGhlIHNpbmssIHRyaWdnZXJpbmcgdmlkZW8g
ZGltZW5zaW9ucyB1cGRhdGUiKTsKLSAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpc10geyBtX3BsYXllci0+c2l6ZUNo
YW5nZWQoKTsgfSk7CiAgICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQotLSAKMi44LjE=
</data>
<flag name="review"
          id="306854"
          type_id="1"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283139</attachid>
            <date>2016-07-08 05:40:06 -0700</date>
            <delta_ts>2016-07-13 00:33:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>7052</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxMWFjNzQyMGZiYmM2MWFlYjQ0YzkyMjBkZWIyM2IxY2QwY2RjYTczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDggSnVsIDIwMTYgMTQ6Mzk6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
YXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgIDcgKysrLS0tCiAuLi4vZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICA1IC0tLS0tCiAuLi4vZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwICB8IDEzICsrKysrKysrKy0t
CiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCAgICB8ICA2
ICsrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiMmFkOGY1Li43ZmM5N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjkgQEAKKzIwMTYtMDctMDggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdW0dMXSBjcmFzaCB3aXRoaW4gdHJpZ2dlclJlcGFpbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTU1Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZSB0
aGUgc2l6ZUNoYW5nZWQgbm90aWZpY2F0aW9uIGlzIGVtaXR0ZWQgZnJvbSB0aGUgbWFpbgorICAg
ICAgICB0aHJlYWQuIFdoZW4gR1N0cmVhbWVyLUdMIHJlbmRlcmluZyBpcyBlbmFibGVkIHRoZSBh
cHBzaW5rIGRyYXcKKyAgICAgICAgY2FsbGJhY2tzIGFyZSBmaXJlZCBpbiBhIG5vbi1tYWluIHRo
cmVhZC4KKworICAgICAgICBUaGUgV2Vha1B0ciBzdXBwb3J0IHdhcyBtb3ZlZCB0byB0aGUgcGxh
eWVyIGJhc2UgY2xhc3Mgc28gdGhhdCBpdAorICAgICAgICBjYW4gYmUgdXNlZCB0aGVyZSBhcyB3
ZWxsIGFzIGluIHRoZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIKKyAgICAgICAgc3ViLWNs
YXNzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y3JlYXRlV2Vha1B0cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZVdl
YWtQdHIpOgorCiAyMDE2LTA3LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBHZW5lcmF0ZSBXZWJDb3JlIGJ1aWx0aW4gd3JhcHBlciBmaWxlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjNTE2NDIy
Li5lZTBkMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTMyLDcgKzEzMiw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjppc0F2YWlsYWJsZSgpCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlKHBsYXllcikKLSAgICAsIG1fd2Vha1B0ckZhY3Rvcnko
dGhpcykKICAgICAsIG1fc291cmNlKDApCiAgICAgLCBtX3NlZWtUaW1lKDApCiAgICAgLCBtX2No
YW5naW5nUmF0ZShmYWxzZSkKQEAgLTE5MjksOCArMTkyOCwxMCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgICAgICAgICBHUmVmUHRy
PEdzdE1lc3NhZ2U+IHByb3RlY3RlZE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgICAgICBhdXRv
IHdlYWtUaGlzID0gcGxheWVyLmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMsIHByb3RlY3RlZE1lc3NhZ2VdIHsKLSAgICAgICAg
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5oYW5k
bGVNZXNzYWdlKHByb3RlY3RlZE1lc3NhZ2UuZ2V0KCkpOworICAgICAgICAgICAgICAgIGlmICh3
ZWFrVGhpcykgeworICAgICAgICAgICAgICAgICAgICBhdXRvKiBwbGF5ZXIgPSByZWludGVycHJl
dF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcio+KHdlYWtUaGlzLmdldCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcGxheWVyLT5oYW5kbGVNZXNzYWdlKHByb3RlY3RlZE1lc3NhZ2Uu
Z2V0KCkpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAg
ICAgICAgIGdzdF9tZXNzYWdlX3VucmVmKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGFjZDc2OWYuLmM1MTQwODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM0LDcgKzM0LDYg
QEAKICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgVVNFKEdTVFJFQU1FUl9NUEVH
VFMpCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtMTMxLDggKzEz
MCw2IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCi0gICAg
V2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQotCiAgICAgR3N0RWxlbWVu
dCogY3JlYXRlQXVkaW9TaW5rKCkgb3ZlcnJpZGU7CiAKICAgICBmbG9hdCBwbGF5YmFja1Bvc2l0
aW9uKCkgY29uc3Q7CkBAIC0xOTQsOCArMTkxLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgR3N0
Rmxvd1JldHVybiBuZXdUZXh0U2FtcGxlQ2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKik7CiAjZW5kaWYKIAotICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcj4gbV93ZWFrUHRyRmFjdG9yeTsKLQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9z
b3VyY2U7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4g
bV90ZXh0QXBwU2luazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcAppbmRleCBlZDU2OGFjLi4wNzgzMGM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0xNDYsNyAr
MTQ2LDggQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhS
RUFERUQpICYmIFVTRShHU1RSRUFNRVJfR0wpCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqIHBsYXll
cikKLSAgICA6IG1fcGxheWVyKHBsYXllcikKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
KyAgICAsIG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fZnBzU2luaygwKQogICAgICwgbV9yZWFk
eVN0YXRlKE1lZGlhUGxheWVyOjpIYXZlTm90aGluZykKICAgICAsIG1fbmV0d29ya1N0YXRlKE1l
ZGlhUGxheWVyOjpFbXB0eSkKQEAgLTU1MCw3ICs1NTEsMTUgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNhbXBsZSkKIAog
ICAgIGlmICh0cmlnZ2VyUmVzaXplKSB7CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJGaXJz
dCBzYW1wbGUgcmVhY2hlZCB0aGUgc2luaywgdHJpZ2dlcmluZyB2aWRlbyBkaW1lbnNpb25zIHVw
ZGF0ZSIpOwotICAgICAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgaWYgKGlz
TWFpblRocmVhZCgpKQorICAgICAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsK
KyAgICAgICAgICAgIG1fbm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWROb3RpZmljYXRpb246OlNp
emVDaGFuZ2VkLCBbd2Vha1RoaXNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisg
ICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX1RIUkVBREVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmgKaW5kZXggMWI5YmUwYy4uMzQzOTBkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiAjaWYg
VVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
LmgiCkBAIC0xMjYsNiArMTI3LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqKTsKKworICAgIFdlYWtQdHJG
YWN0b3J5PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U+IG1fd2Vha1B0ckZhY3Rvcnk7
CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKwogICAg
IHZpcnR1YWwgR3N0RWxlbWVudCogY3JlYXRlVmlkZW9TaW5rKCk7CiAKICNpZiBVU0UoR1NUUkVB
TUVSX0dMKQpAQCAtMTYyLDYgKzE2Nyw3IEBAIHByb3RlY3RlZDoKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgICAgIFRleHRDaGFuZ2VkID0gMSA8PCA1LAogI2VuZGlmCisgICAgICAgIFNp
emVDaGFuZ2VkID0gMSA8PCA2CiAgICAgfTsKIAogICAgIE1haW5UaHJlYWROb3RpZmllcjxNYWlu
VGhyZWFkTm90aWZpY2F0aW9uPiBtX25vdGlmaWVyOwotLSAKMi44LjE=
</data>
<flag name="review"
          id="306857"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283493</attachid>
            <date>2016-07-13 00:33:41 -0700</date>
            <delta_ts>2016-07-13 04:01:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6727</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkZDc5OWY4NjJlNTY1MjFjZDcyMzNjNmRhMzcyOGRhZDNkOGY2MzRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDEzIEp1bCAyMDE2IDA5OjMyOjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICAgfCAgNyArKystLS0tCiAuLi4vZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICAgfCAgNSArKysrKwogLi4uL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCAgIHwgMTMgKystLS0t
LS0tLS0tLQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgg
ICAgIHwgIDUgLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMjAgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE3YTFkYjcuLjM5NGUzM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxNi0wNy0xMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR0xdIGNyYXNoIHdpdGhpbiB0cmlnZ2Vy
UmVwYWludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU5NTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmV2ZXJ0IHRoZSB1bi1uZWVkZWQgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHIyMDMwNTYgYW5kIHVz
ZSB0aGUKKyAgICAgICAgTWFpblRocmVhZE5vdGlmaWVyIHdpdGhvdXQgcmVkdW5kYW50IGNoZWNr
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVXZWFrUHRyKTogRGVsZXRlZC4KKwog
MjAxNi0wNy0xMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjAyNTA5KTogbWVkaWEgY29udHJvbHMgY29udHJvbHMgZW5hYmxl
ZCBBaXJQbGF5IHBsYWNlaG9sZGVyIGlzIHNob3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGVjMWRlYzEuLjlmOTg5NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMzIsNiAr
MTMyLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkK
IAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UocGxheWVyKQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zb3Vy
Y2UoMCkKICAgICAsIG1fc2Vla1RpbWUoMCkKICAgICAsIG1fY2hhbmdpbmdSYXRlKGZhbHNlKQpA
QCAtMTkyOCwxMCArMTkyOSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVHU1RQbGF5QmluKCkKICAgICAgICAgICAgIEdSZWZQdHI8R3N0TWVzc2FnZT4gcHJvdGVj
dGVkTWVzc2FnZShtZXNzYWdlKTsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBwbGF5ZXIu
Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3
ZWFrVGhpcywgcHJvdGVjdGVkTWVzc2FnZV0gewotICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykgewotICAgICAgICAgICAgICAgICAgICBhdXRvKiBwbGF5ZXIgPSByZWludGVycHJldF9jYXN0
PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcio+KHdlYWtUaGlzLmdldCgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgcGxheWVyLT5oYW5kbGVNZXNzYWdlKHByb3RlY3RlZE1lc3NhZ2UuZ2V0KCkp
OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5oYW5kbGVNZXNzYWdlKHByb3RlY3RlZE1lc3NhZ2Uu
Z2V0KCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgZ3N0X21lc3NhZ2Vf
dW5yZWYobWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKaW5kZXggYzUxNDA4MS4uYWNkNzY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGdzdC9w
YnV0aWxzL2luc3RhbGwtcGx1Z2lucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBVU0UoR1NUUkVBTUVSX01QRUdUUykKICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CkBAIC0xMzAsNiArMTMxLDggQEAgcHJpdmF0ZToKIAog
ICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKKyAgICBXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisKICAgICBHc3RFbGVtZW50KiBjcmVhdGVBdWRpb1Npbmso
KSBvdmVycmlkZTsKIAogICAgIGZsb2F0IHBsYXliYWNrUG9zaXRpb24oKSBjb25zdDsKQEAgLTE5
MSw2ICsxOTQsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBHc3RGbG93UmV0dXJuIG5ld1RleHRT
YW1wbGVDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKICNlbmRpZgogCisg
ICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBtX3dlYWtQdHJG
YWN0b3J5OworCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3NvdXJjZTsKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3RleHRBcHBTaW5rOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmlu
ZGV4IGY3OTc5YjQuLjZiZGI1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTE0Niw4ICsxNDYsNyBAQCBwcml2YXRlOgog
I2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkgJiYgVVNFKEdTVFJF
QU1FUl9HTCkKIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciogcGxheWVyKQotICAgIDogbV93ZWFrUHRy
RmFjdG9yeSh0aGlzKQotICAgICwgbV9wbGF5ZXIocGxheWVyKQorICAgIDogbV9wbGF5ZXIocGxh
eWVyKQogICAgICwgbV9mcHNTaW5rKDApCiAgICAgLCBtX3JlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6
OkhhdmVOb3RoaW5nKQogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQpA
QCAtNTUxLDE1ICs1NTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnRyaWdnZXJSZXBhaW50KEdzdFNhbXBsZSogc2FtcGxlKQogCiAgICAgaWYgKHRyaWdnZXJSZXNp
emUpIHsKICAgICAgICAgR1NUX0RFQlVHKCJGaXJzdCBzYW1wbGUgcmVhY2hlZCB0aGUgc2luaywg
dHJpZ2dlcmluZyB2aWRlbyBkaW1lbnNpb25zIHVwZGF0ZSIpOwotICAgICAgICBpZiAoaXNNYWlu
VGhyZWFkKCkpCi0gICAgICAgICAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLSAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAg
ICAgICAgICAgbV9ub3RpZmllci5ub3RpZnkoTWFpblRocmVhZE5vdGlmaWNhdGlvbjo6U2l6ZUNo
YW5nZWQsIFt3ZWFrVGhpc10gewotICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAg
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9ub3RpZmllci5ub3RpZnkoTWFpblRocmVh
ZE5vdGlmaWNhdGlvbjo6U2l6ZUNoYW5nZWQsIFt0aGlzXSB7IG1fcGxheWVyLT5zaXplQ2hhbmdl
ZCgpOyB9KTsKICAgICB9CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApp
bmRleCAzNDM5MGQ0Li5hMmI0MDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDx3dGYv
Q29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKQEAgLTEyNywxMCAr
MTI2LDYgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwotCi0gICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZT4gbV93ZWFrUHRyRmFjdG9yeTsKLSAgICBXZWFrUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQotCiAgICAgdmlydHVhbCBHc3RFbGVt
ZW50KiBjcmVhdGVWaWRlb1NpbmsoKTsKIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCi0tIAoyLjgu
MQ==
</data>
<flag name="review"
          id="307176"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>