<?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>86410</bug_id>
          
          <creation_ts>2012-05-14 16:30:45 -0700</creation_ts>
          <short_desc>[texmap][GStreamer][GTK] Composited Video support</short_desc>
          <delta_ts>2019-05-02 16:20:08 -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>528+ (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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>116056</dependson>
    
    <dependson>114742</dependson>
          <blocked>116040</blocked>
    
    <blocked>116042</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>a.renevier</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cwhong893</cc>
    
    <cc>d-r</cc>
    
    <cc>ehdgms</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>godai987654</cc>
    
    <cc>guijemont</cc>
    
    <cc>gustavo</cc>
    
    <cc>halley.zhao</cc>
    
    <cc>hausmann</cc>
    
    <cc>hk</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joone</cc>
    
    <cc>kalyan.kondapally</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ostap73</cc>
    
    <cc>pnormand</cc>
    
    <cc>sakari.poussa</cc>
    
    <cc>sergio</cc>
    
    <cc>slomo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>xingri</cc>
    
    <cc>yael</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>623426</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-14 16:30:45 -0700</bug_when>
    <thetext>Support accelerated/composited video for Qt WebKit2, possibly the same way we&apos;re going to use for WebGL via GraphicsSurfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631158</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-22 21:17:03 -0700</bug_when>
    <thetext>I have a working patch for the GStreamer player using the TextureMapper, it works but performance is not there yet. Any help would be much appreciated, I&apos;m not very familiar with the TextureMapper yet. Would you like to see the patch Noam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631173</commentid>
    <comment_count>2</comment_count>
      <attachid>143452</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-22 21:27:28 -0700</bug_when>
    <thetext>Created attachment 143452
wip patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631179</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-22 21:31:24 -0700</bug_when>
    <thetext>I tested this on WebKitGTK WK1 and WK2 (with Martin&apos;s patch), I can clearly see that playback is not smooth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631189</commentid>
    <comment_count>4</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-22 21:45:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=143452) [details]
&gt; wip patch
Cool!

You might want to convert to TextureMapperGL, and draw the texture with its ID directly. See what we&apos;re doing in GraphicsContext3DQt.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631191</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-22 21:48:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; Created an attachment (id=143452) [details] [details]
&gt; &gt; wip patch
&gt; Cool!
&gt; 
&gt; You might want to convert to TextureMapperGL, and draw the texture with its ID directly. See what we&apos;re doing in GraphicsContext3DQt.cpp.

I thought I was already using the GL implementation. Hum I&apos;ll continue work on the patch, thanks for the help :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631193</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-22 21:52:06 -0700</bug_when>
    <thetext>
&gt; I thought I was already using the GL implementation. Hum I&apos;ll continue work on the patch, thanks for the help :)

You might, but if you cast to it, you can call drawTexture with a texture id instead of keeping your own BitmapTexture around, which feels a bit akward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631198</commentid>
    <comment_count>7</comment_count>
      <attachid>143452</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-05-22 21:56:30 -0700</bug_when>
    <thetext>Comment on attachment 143452
wip patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:164
&gt; +        priv-&gt;texture-&gt;updateContents(GST_BUFFER_DATA(buffer), WebCore::IntRect(WebCore::IntPoint(0, 0), size), WebCore::IntPoint(0,0), bytesPerLine);

I think the problem lies here... looks like there&apos;s going to be some expensive software copy here. I&apos;m not familiar enough with gst texture sink to know how to go about it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631669</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-23 08:04:08 -0700</bug_when>
    <thetext>Retitling the bug, both Qt and GTK use the GStreamer player, so I think this new title makes more sense than the previous one.

Thanks Noam for your insights on the wip patch, I&apos;ll try to send a new version soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632254</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-23 17:56:56 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 143452 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143452&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp:164
&gt; &gt; +        priv-&gt;texture-&gt;updateContents(GST_BUFFER_DATA(buffer), WebCore::IntRect(WebCore::IntPoint(0, 0), size), WebCore::IntPoint(0,0), bytesPerLine);
&gt; 
&gt; I think the problem lies here... looks like there&apos;s going to be some expensive software copy here. I&apos;m not familiar enough with gst texture sink to know how to go about it though.

Right, also we can&apos;t use this texture sink, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637414</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-30 10:52:18 -0700</bug_when>
    <thetext>Maybe someone clicked on the fancy &quot;Submit for EWS analysis&quot; button then :) Anyway, no big deal...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637416</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-30 10:52:43 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Maybe someone clicked on the fancy &quot;Submit for EWS analysis&quot; button then :) Anyway, no big deal...

wrong bug, sorry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643847</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-07 13:31:52 -0700</bug_when>
    <thetext>Maybe one way to proceed would be to use the GstSurfaceBuffer, like the Clutter video-sink. This API is in -bad though and its future seems uncertain, I wonder if we should target only gst 0.11/1.0 support and forget about 0.10 :)


http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstSurfaceBuffer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645842</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-11 02:03:07 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Maybe one way to proceed would be to use the GstSurfaceBuffer, like the Clutter video-sink. This API is in -bad though and its future seems uncertain, I wonder if we should target only gst 0.11/1.0 support and forget about 0.10 :)
&gt; 
&gt; 
&gt; http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstSurfaceBuffer.html

That looks great. Screw old versions :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657532</commentid>
    <comment_count>14</comment_count>
      <attachid>149515</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 05:33:15 -0700</bug_when>
    <thetext>Created attachment 149515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657533</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 05:34:42 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=149515) [details]
&gt; Patch

This is a first shot at an implementation that uses GstSurfaceBuffer and SurfaceBufferConverter. I didn&apos;t mark it for review yet because there are still bugs to iron out:

  * Sometimes the decoder gets stuck and stops delivering new frames.
  * Shutdown is &quot;crashy&quot; :)

Nevertheless any feedback is welcome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657562</commentid>
    <comment_count>16</comment_count>
      <attachid>149515</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-26 06:17:36 -0700</bug_when>
    <thetext>Comment on attachment 149515
Patch

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

Awesome!

&gt; Source/WebCore/WebCore.pri:203
&gt; +        contains(DEFINES, WTF_USE_GSTREAMER_SURFACEBUFFER=1): PKGCONFIG += gstreamer-basevideo-0.10

I&apos;d probably use HAVE(GSTREAMER_SURFACEBUFFER) instead of USE;

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1642
&gt; +#if USE(ACCELERATED_COMPOSITING) &amp;&amp; USE(GSTREAMER_SURFACEBUFFER) &amp;&amp; USE(TEXTURE_MAPPER_GL)

Let&apos;s just go with USE(TEXTURE_MAPPER_GL)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657566</commentid>
    <comment_count>17</comment_count>
      <attachid>149515</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 06:28:46 -0700</bug_when>
    <thetext>Comment on attachment 149515
Patch

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

&gt;&gt; Source/WebCore/WebCore.pri:203
&gt;&gt; +        contains(DEFINES, WTF_USE_GSTREAMER_SURFACEBUFFER=1): PKGCONFIG += gstreamer-basevideo-0.10
&gt; 
&gt; I&apos;d probably use HAVE(GSTREAMER_SURFACEBUFFER) instead of USE;

Ahh right. I always confuse ENABLE, USE and HAVE.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1642
&gt;&gt; +#if USE(ACCELERATED_COMPOSITING) &amp;&amp; USE(GSTREAMER_SURFACEBUFFER) &amp;&amp; USE(TEXTURE_MAPPER_GL)
&gt; 
&gt; Let&apos;s just go with USE(TEXTURE_MAPPER_GL)

Alright.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657567</commentid>
    <comment_count>18</comment_count>
      <attachid>149522</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 06:31:13 -0700</bug_when>
    <thetext>Created attachment 149522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657569</commentid>
    <comment_count>19</comment_count>
      <attachid>149522</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-26 06:34:34 -0700</bug_when>
    <thetext>Comment on attachment 149522
Patch

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

I only have nitpicks, maybe someone with more GStreamer experience has comments of value :)
The TextureMapper stuff looks good.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1688
&gt; +    if (m_buffer &amp;&amp; GST_IS_SURFACE_BUFFER(m_buffer)) {
&gt; +        GstSurfaceBuffer* surface = GST_SURFACE_BUFFER(m_buffer);
&gt; +
&gt; +         GstCaps* caps = GST_BUFFER_CAPS(m_buffer);
&gt; +         GstVideoFormat format;
&gt; +         int width, height;
&gt; +         gst_video_format_parse_caps(caps, &amp;format, &amp;width, &amp;height);
&gt; +         IntSize size(width, height);
&gt; +
&gt; +        if (!m_texture)
&gt; +            m_texture = textureMapper-&gt;createTexture();
&gt; +
&gt; +        if (m_texture-&gt;size() != size) {
&gt; +            m_texture-&gt;reset(size);
&gt; +            m_surfaceConverter.clear();
&gt; +        }
&gt; +
&gt; +        if (!m_surfaceConverter) {
&gt; +            GValue textureValue = G_VALUE_INIT;
&gt; +            g_value_init(&amp;textureValue, G_TYPE_UINT);
&gt; +            g_value_set_uint(&amp;textureValue, static_cast&lt;BitmapTextureGL*&gt;(m_texture.get())-&gt;id());
&gt; +
&gt; +            m_surfaceConverter.set(gst_surface_buffer_create_converter(surface, &quot;opengl&quot;, &amp;textureValue));
&gt; +            g_return_if_fail(m_surfaceConverter);
&gt; +        }
&gt; +
&gt; +        gst_surface_converter_upload(m_surfaceConverter.get(), surface);
&gt; +
&gt; +        gst_buffer_unref(m_buffer);
&gt; +        m_buffer = 0;
&gt; +    }

Maybe this can live in its own function, e.g. convertBufferToTextureIfNeeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657593</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-26 07:26:05 -0700</bug_when>
    <thetext>FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657595</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 07:30:25 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0

What&apos;s the new interface called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657619</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-26 08:19:17 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0
&gt; 
&gt; What&apos;s the new interface called?

There&apos;s no exact plan about keeping GstSurfaceBuffer in 1.0 or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657625</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 08:38:20 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0
&gt; &gt; 
&gt; &gt; What&apos;s the new interface called?
&gt; 
&gt; There&apos;s no exact plan about keeping GstSurfaceBuffer in 1.0 or not.

But there has to be an alternative in the works, right? Otherwise the clutter-gst video sink will also regress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657638</commentid>
    <comment_count>24</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-26 09:12:34 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; &gt; FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0
&gt; &gt; &gt; 
&gt; &gt; &gt; What&apos;s the new interface called?
&gt; &gt; 
&gt; &gt; There&apos;s no exact plan about keeping GstSurfaceBuffer in 1.0 or not.
&gt; 
&gt; But there has to be an alternative in the works, right? Otherwise the clutter-gst video sink will also regress.

The clutter-gst video-sink might need an update, if GstVideoSurfaceBuffer changes, I guess :)
There&apos;s a very interesting draft about the hw-accel plans in 1.0 there: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/docs/design/draft-hw-acceleration.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657675</commentid>
    <comment_count>25</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 09:59:05 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; &gt; &gt; FYI I recently started work on this again, as well. Not using SurfaceBuffer  yet though as I&apos;m uncertain about its future in GStreamer 1.0
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What&apos;s the new interface called?
&gt; &gt; &gt; 
&gt; &gt; &gt; There&apos;s no exact plan about keeping GstSurfaceBuffer in 1.0 or not.
&gt; &gt; 
&gt; &gt; But there has to be an alternative in the works, right? Otherwise the clutter-gst video sink will also regress.
&gt; 
&gt; The clutter-gst video-sink might need an update, if GstVideoSurfaceBuffer changes, I guess :)

Right.

&gt; There&apos;s a very interesting draft about the hw-accel plans in 1.0 there: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/docs/design/draft-hw-acceleration.txt

Ohh, that is interesting indeed. I&apos;ll try to follow what&apos;s going on there and continue to polish this patch. I have an idea what&apos;s causing the issue I&apos;m currently seeing, so I can&apos;t give up ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657697</commentid>
    <comment_count>26</comment_count>
      <attachid>149522</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-26 10:24:53 -0700</bug_when>
    <thetext>Comment on attachment 149522
Patch

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

If that patch lands it&apos;d be great if it doesn&apos;t break the GStreamer 0.11 WebKit build :) There&apos;s no EWS for this setup yet though.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1665
&gt; +         GstCaps* caps = GST_BUFFER_CAPS(m_buffer);
&gt; +         GstVideoFormat format;
&gt; +         int width, height;
&gt; +         gst_video_format_parse_caps(caps, &amp;format, &amp;width, &amp;height);
&gt; +         IntSize size(width, height);

Please use getVideoSizeAndFormatFromCaps()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658299</commentid>
    <comment_count>27</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-26 20:47:06 -0700</bug_when>
    <thetext>Simon, which distro do you use? There&apos;s no gst-plugins-bad pkg shipping gstreamer-basevideo-0.10 in Debian unstable, I can&apos;t test your patch :)

For 0.11, the GstSurfaceBuffer/Converter is currently implemented as buffer metadata btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658366</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 23:09:22 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Simon, which distro do you use? There&apos;s no gst-plugins-bad pkg shipping gstreamer-basevideo-0.10 in Debian unstable, I can&apos;t test your patch :)

I&apos;m using (K)Uubuntu 12.04, which is shipping libgstreamer-plugins-bad0.10-dev 0.10.22.3-2ubuntu2

&gt; For 0.11, the GstSurfaceBuffer/Converter is currently implemented as buffer metadata btw.

Ah yeah, I noticed. I think if we end up landing this patch in the trunk, we should either use the one or the other API. I&apos;d be happy to use 0.11 myself, if I can find convenient packages somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659105</commentid>
    <comment_count>29</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-27 19:30:42 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; Simon, which distro do you use? There&apos;s no gst-plugins-bad pkg shipping gstreamer-basevideo-0.10 in Debian unstable, I can&apos;t test your patch :)
&gt; 
&gt; I&apos;m using (K)Uubuntu 12.04, which is shipping libgstreamer-plugins-bad0.10-dev 0.10.22.3-2ubuntu2
&gt; 

Oh right, I got it now. Managed to test your patch in WebKitGTK but I see no video at all, the video rectangle is correctly sized though and the controls are visible. Haven&apos;t debugged this yet.

Anyway, thanks a lot for the patch Simon! I&apos;m not sure about using this interface  unless its future gets more clear :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659169</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-27 21:52:03 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; (In reply to comment #27)
&gt; &gt; &gt; Simon, which distro do you use? There&apos;s no gst-plugins-bad pkg shipping gstreamer-basevideo-0.10 in Debian unstable, I can&apos;t test your patch :)
&gt; &gt; 
&gt; &gt; I&apos;m using (K)Uubuntu 12.04, which is shipping libgstreamer-plugins-bad0.10-dev 0.10.22.3-2ubuntu2
&gt; &gt; 
&gt; 
&gt; Oh right, I got it now. Managed to test your patch in WebKitGTK but I see no video at all, the video rectangle is correctly sized though and the controls are visible. Haven&apos;t debugged this yet.

Hm, that&apos;s odd. I&apos;m using an nvidia card and the vdpau-va driver to be able to use gst-vaapi, which seems to be the only decoder that currently supports ths interface.

The problem I&apos;m seeing is that at some point the video sink in WebKit doesn&apos;t receive any frame anymore, until I seek. It feels like something is stuck. Oh the joy of multi-threading :)

&gt; Anyway, thanks a lot for the patch Simon! I&apos;m not sure about using this interface  unless its future gets more clear :)

I totally understand.

I&apos;ll be OOO for a while, but I&apos;d like to pick it up again when I&apos;m back. I don&apos;t even mind if the patch continues to just live in Bugzilla in the end. But I want to get it working properly first.

I do see one problem with the interface and that&apos;s that I feel that it would make proxying tedious. Imagine an architecture like OMAP, where there&apos;s a good chance that you already have a gst decoder that can use the DSP to decode efficiently into memory. At the same time you have an existing kernel interface to allocating contiguous framebuffer memory the GPU can use (OMAPFB_SETUP_MEM) and your EGL implementation supports binding such a piece of memory against a texture somehow. In such an architecture it feels cumbersome to implement a proxying element that allocates the GstBuffers backed by FB memory, let the dsp decoding codec element write into those and then do essentially free conversion to a texture. In order to completely transparently implement the GstSufaceBuffer interface it would _have_ to make an unecessary copy of the buffer to hide the fact that the GPU can render the YUV surface natively but it requires the entity drawing (application) to use the GL_OES_EGL_image_external extension in the fragment shader.

I&apos;m looking forward to what the gst folks will come up with :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666530</commentid>
    <comment_count>31</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-07-11 02:00:59 -0700</bug_when>
    <thetext>I&apos;ve been looking a bit at vdpau, which mesa also might get support for. NVidia has some really nice GL extensions that allow conveniently binding a vdp video surface to a texture.

If the gstreamer vdpau sink had a way of exposing the vdpau output surface as a property and working without an x-window, then that would be a nice alternative. We could use that as video sink, retrieving the vdp output surface pointer, bind it to a texture with the GL extensions and be pretty much done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666605</commentid>
    <comment_count>32</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-07-11 03:31:31 -0700</bug_when>
    <thetext>As a first step would it be possible to &quot;simply&quot; make our video sink upload to GL texture, without any specifics about HW-decoding and implication on specific GPU chipset/driver?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666686</commentid>
    <comment_count>33</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-07-11 05:24:33 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; As a first step would it be possible to &quot;simply&quot; make our video sink upload to GL texture, without any specifics about HW-decoding and implication on specific GPU chipset/driver?

I don&apos;t think that would buy us anything, our pipeline would be as slow as it is today.

I&apos;m interested in a solution that gives the best possible performance. If it&apos;s restricted to one type of video acceleration API initially, then that&apos;s fine.

Having one _properly_ accelerated code path is great for demonstrating the required interfaces and benchmarking new approaches. It also makes it easier to then iterate maybe with the gstreamer folks towards an interface that is more generic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666882</commentid>
    <comment_count>34</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-07-11 11:05:54 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; As a first step would it be possible to &quot;simply&quot; make our video sink upload to GL texture, without any specifics about HW-decoding and implication on specific GPU chipset/driver?
&gt; 
&gt; I don&apos;t think that would buy us anything, our pipeline would be as slow as it is today.

One benefit is that color space conversion could be moved to a shader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736572</commentid>
    <comment_count>35</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-08 01:46:02 -0700</bug_when>
    <thetext>Not actively working on this patch anymore. Would love to pick it up again, as it seems the latest gstreamer 1.0 source have received fixes that may improve the reliability of this interface and maybe make it usable, but I prioritize other issues over this currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740125</commentid>
    <comment_count>36</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-11 10:40:13 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Not actively working on this patch anymore. Would love to pick it up again, as it seems the latest gstreamer 1.0 source have received fixes that may improve the reliability of this interface and maybe make it usable, but I prioritize other issues over this currently.

Hi,

From what I understand from
http://blogs.gnome.org/uraeus/2012/09/26/gstreamer-1-0-released/

&gt; The changes will also make it a lot easier to write plugins and use plugins on PC platforms which use the GPU for decoding or encoding and that use OpenGL for rendering the playback

it is currently not possible to get an opengl texture from gstreamer-1.0 yet (although it could be possible in the future). Is there some way we can take advantage of gstreamer now to accelerate video ?

(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; As a first step would it be possible to &quot;simply&quot; make our video sink upload to GL texture, without any specifics about HW-decoding and implication on specific GPU chipset/driver?
&gt; &gt; 
&gt; &gt; I don&apos;t think that would buy us anything, our pipeline would be as slow as it is today.
&gt; 
&gt; One benefit is that color space conversion could be moved to a shader.

do you suggest we ask gstreamer to send the buffer data as yuv, and perform the conversion ourselves. But so, how can we evaluate the performance win ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740129</commentid>
    <comment_count>37</comment_count>
      <attachid>168253</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-11 10:46:49 -0700</bug_when>
    <thetext>Created attachment 168253
patch based on simon&apos;s one

Here is a wip patch I&apos;ve been working on. It just uploads a texture to textureMapper, and applies a shader on it (which does nothing, but may be used if we decide to perform color space conversions).
It is mainly simon&apos;s patch with the following changes:
set needs display to the layer in renderLayerBacking otherwise, the rendering was not updated when new frames were available.
update player in renderer when source changed, to avoid a crash when changing video.src</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740728</commentid>
    <comment_count>38</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-12 01:47:16 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; Not actively working on this patch anymore. Would love to pick it up again, as it seems the latest gstreamer 1.0 source have received fixes that may improve the reliability of this interface and maybe make it usable, but I prioritize other issues over this currently.
&gt; 
&gt; Hi,
&gt; 
&gt; From what I understand from
&gt; http://blogs.gnome.org/uraeus/2012/09/26/gstreamer-1-0-released/
&gt; 
&gt; &gt; The changes will also make it a lot easier to write plugins and use plugins on PC platforms which use the GPU for decoding or encoding and that use OpenGL for rendering the playback
&gt; 
&gt; it is currently not possible to get an opengl texture from gstreamer-1.0 yet (although it could be possible in the future). Is there some way we can take advantage of gstreamer now to accelerate video ?

Well, I think what the blog is referring to is the fact that there&apos;s no stable supported API yet. However
there exists an unstable API and I think the best way to make that unstable API stable is to use it, provide
feedback if it needs changes and otherwise report back to the gstreamer folks that it&apos;s working great (in case it is),
so that they can get confidence in it and declare it stable.

That API is now called GstSurfaceMeta (see gstreamer-1.0/gst/video/gstsurfacemeta.h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740732</commentid>
    <comment_count>39</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-12 01:51:08 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; As a first step would it be possible to &quot;simply&quot; make our video sink upload to GL texture, without any specifics about HW-decoding and implication on specific GPU chipset/driver?
&gt; &gt; 
&gt; &gt; I don&apos;t think that would buy us anything, our pipeline would be as slow as it is today.
&gt; 
&gt; One benefit is that color space conversion could be moved to a shader.

Sure, but that&apos;s a halfway-there solution only. Other frameworks (like Stagefright on Android, AVFoundation on OS X and Media Foundation on Windows) demonstrate nicely that all this belongs behind a curtain that WebKit shouldn&apos;t have to be concerned about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740926</commentid>
    <comment_count>40</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-12 08:23:37 -0700</bug_when>
    <thetext>(In reply to comment #39)
 
&gt; &gt; One benefit is that color space conversion could be moved to a shader.
&gt; 
&gt; Sure, but that&apos;s a halfway-there solution only. Other frameworks (like Stagefright on Android, AVFoundation on OS X and Media Foundation on Windows) demonstrate nicely that all this belongs behind a curtain that WebKit shouldn&apos;t have to be concerned about.

Sure, in an ideal world and for the future, but we can also make things faster for people not using the bleedingest edge versions of Gstreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741034</commentid>
    <comment_count>41</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-12 11:04:56 -0700</bug_when>
    <thetext>(In reply to comment #38)

&gt; That API is now called GstSurfaceMeta (see gstreamer-1.0/gst/video/gstsurfacemeta.h).

I&apos;m not successful in using it.
- documentation is obsolete. It references #GST_VIDEO_CAPS_SURFACE which is no more defined.
- I&apos;ve tried to set the GST_STATIC_PADS to &quot;video/x-surface, opengl=true&quot; or &quot;video/x-surface, type=vaapi&quot; and the video does not render (render sink callback is not called)
- in gstreamer sources, x-surface is only checked for subtitle overlays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741046</commentid>
    <comment_count>42</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-12 11:10:51 -0700</bug_when>
    <thetext>(In reply to comment #36)

&gt; do you suggest we ask gstreamer to send the buffer data as yuv, and perform the conversion ourselves. But so, how can we evaluate the performance win ?

I made some tests: I applied my patch. Then I asked gstreamer for some planar yuv format, and performed the conversion on the shader. With a few videos on a page, GtkLauncher seemed less responsive with accelerated compositing than without. So unless, there is a better way to achieve that, it seems like it decreases performance. I do not have numbers to back that claim though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741060</commentid>
    <comment_count>43</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-12 11:33:39 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (In reply to comment #36)
&gt; 
&gt; &gt; do you suggest we ask gstreamer to send the buffer data as yuv, and perform the conversion ourselves. But so, how can we evaluate the performance win ?
&gt; 
&gt; I made some tests: I applied my patch. Then I asked gstreamer for some planar yuv format, and performed the conversion on the shader. With a few videos on a page, GtkLauncher seemed less responsive with accelerated compositing than without. So unless, there is a better way to achieve that, it seems like it decreases performance. I do not have numbers to back that claim though.

Could it be that you are uploading and downloading  to th GPU more than you think? What happens if you turn the shader off and just render the YUV data directly? Is accelerated compositing slow for you, in general?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741145</commentid>
    <comment_count>44</comment_count>
      <attachid>168470</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-12 13:24:13 -0700</bug_when>
    <thetext>Created attachment 168470
fixes a memory leak

(In reply to comment #43)

&gt; &gt; I made some tests: I applied my patch. Then I asked gstreamer for some planar yuv format, and performed the conversion on the shader. With a few videos on a page, GtkLauncher seemed less responsive with accelerated compositing than without. So unless, there is a better way to achieve that, it seems like it decreases performance. I do not have numbers to back that claim though.
&gt; 
&gt; Could it be that you are uploading and downloading  to th GPU more than you think? What happens if you turn the shader off and just render the YUV data directly? Is accelerated compositing slow for you, in general?

There was indeed a problem with the patch. It did not unref the gstreamer buffer properly, and a lot of memory leaked. Here is an updated patch. With it, there is no noticeable difference between requesting xrgb or yuv format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749879</commentid>
    <comment_count>45</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-24 11:53:37 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; (In reply to comment #39)
&gt; 
&gt; &gt; &gt; One benefit is that color space conversion could be moved to a shader.
&gt; &gt; 
&gt; &gt; Sure, but that&apos;s a halfway-there solution only. Other frameworks (like Stagefright on Android, AVFoundation on OS X and Media Foundation on Windows) demonstrate nicely that all this belongs behind a curtain that WebKit shouldn&apos;t have to be concerned about.
&gt; 
&gt; Sure, in an ideal world and for the future, but we can also make things faster for people not using the bleedingest edge versions of Gstreamer.

Hi,
I could indeed measure a performance win when performing the color conversion in a shader.

I measured gst_video_convert_transform_frame execution time in gstreamer-1.0 for a 480x360 video.  color conversion from I420 to BGRx takes between 2000ns and 6000ns (2 to 6ms) color conversion from I420 to AYUV takes between 300ns and 500ns

current paint method takes between 400ns and 2000ns Without a shader, paintTextureMapper takes between 400ns and 700ns.  With a AYUV -&gt; BGRx shader, paintTextureMapper takes between 600ns and 800ns.  Except first time where it take about 12000ns (12ms).

So it looks like with current gstreamer implementation, we have some win by performing the conversion ourself. But I&apos;m concerned about doing that: What will happen when gstreamer change ? For example by implementing the plugins which will allow us to get the meta surface, or by optimizing the color conversion in some way. Does that mean we would have to perform some version check and have two different code paths then ?

Alternatively, it looks like we still have a (small) gain just by using the
texture mapper without a shader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751723</commentid>
    <comment_count>46</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-26 02:28:13 -0700</bug_when>
    <thetext>I just start to look at webkit, please correct me if there is any misunderstanding.
here are some concern from me for the patch:

1. paint video to graphics layer by drawTexture() is heavy
I expect (and think it is) that video is the only RenderObject in a graphics layer, even NOT share the same graphics layer with player controls; otherwise we composite each video frame twice. one is in the backing surface of graphics layer, another is for final compositing of each graphics layer.
compositing includes glClear/drawTexture/swapBuffer, it is really heavy.
how about the following suggestion:
set video texture to graphics layer by bindSurface() and skip (or do nothing) in beginPainting/endPainting/drawTexture
I had thought to use cairo gl surface for video before, since sw path of gtk/efl uses cairo. do you think it is possible to create a simple graphics layer with one texture only(without the complexity of TextureMapper)?

2. There is both ::paint and ::paintToTextureMapper in MediaPlayerPrivateGStreamer, they may conflict
I don’t know where ::paint inherits from, but when TextureMapperPlatformLayer is used, should we avoid inherit the interface introduce ::paint function.
should we only use ::paint in sw path and ::paintToTextureMapper in ACCELERATED_COMPOSITING path?

3. Create an empty video texture (m_texture), then upload video data to this texture introduce data copy
I’d like create texture from existing native image like: glEGLImageTargetTexture2DOES() from an existing EGLImage
how could I configure webkit to use EGL/GLES instead of GLX/GL? for Qt port, it may decided inside qt. I cares more for gtk/efl port.

thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751755</commentid>
    <comment_count>47</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-26 02:58:22 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; I just start to look at webkit, please correct me if there is any misunderstanding.
&gt; here are some concern from me for the patch:
&gt; 
&gt; 1. paint video to graphics layer by drawTexture() is heavy
&gt; I expect (and think it is) that video is the only RenderObject in a graphics layer, even NOT share the same graphics layer with player controls; otherwise we composite each video frame twice. one is in the backing surface of graphics layer, another is for final compositing of each graphics layer.
&gt; compositing includes glClear/drawTexture/swapBuffer, it is really heavy.
&gt; how about the following suggestion:
&gt; set video texture to graphics layer by bindSurface() and skip (or do nothing) in beginPainting/endPainting/drawTexture

That is kind of what is happening. Each graphics layer has a corresponding TextureMapperPlatformLayer. When the texture mapper renders the scene, it asks each platform layer to paint itself (this is a somewhat simplified model). So if you have a html document with a video element and a bunch of controls on top, you should end up with three platform layers:

    (1) The background / regular content is cached in tile textures as part of a TextureMapperTiledBackingStore (which is a sub-class of TextureMapperPlatformLayer). Its paintTextTextureMapper draws the tile textures.
    (2) The video gets its own TextureMapperPlatformLayer, that&apos;s what MediaPlayerPrivateGStreamer is and implements. So after painting the tiles of the static content, it&apos;s up to the MediaPlayerPrivateGStreamer to draw the video texture.
    (3) Lastly the controls on top are cached in another layer (I think usually also again a TextureMapperTiledBackingStore) and are drawn in one shot.

So for an entire scene there is no double-composition, the video frames are not rendered into an intermediate buffer.

(This is a WK1 TextureMapperGL model, with WK2 video is not implemented yet and might either get an intermediate GraphicsSurface or if the platform supports it perhaps we could also avoid the extra composition).

&gt; I had thought to use cairo gl surface for video before, since sw path of gtk/efl uses cairo. do you think it is possible to create a simple graphics layer with one texture only(without the complexity of TextureMapper)?

I think that&apos;s what we do have today (well, not really, but could :)

&gt; 2. There is both ::paint and ::paintToTextureMapper in MediaPlayerPrivateGStreamer, they may conflict
&gt; I don’t know where ::paint inherits from, but when TextureMapperPlatformLayer is used, should we avoid inherit the interface introduce ::paint function.
&gt; should we only use ::paint in sw path and ::paintToTextureMapper in ACCELERATED_COMPOSITING path?

::paint() will still be called when we&apos;re in the accelerated compositing code path, but we do an early return from there
if we are, so no extra pixels are painted. I don&apos;t remember exactly where it is called from, it might be the population of the root layer? I&apos;ve seen it get called at least, but the early return should catch it.
 
&gt; 3. Create an empty video texture (m_texture), then upload video data to this texture introduce data copy
&gt; I’d like create texture from existing native image like: glEGLImageTargetTexture2DOES() from an existing EGLImage
&gt; how could I configure webkit to use EGL/GLES instead of GLX/GL? for Qt port, it may decided inside qt. I cares more for gtk/efl port.

This may be a missing feature in BitmapTextureGL in the texture mapper I would say. But conceptually it sounds like what we should indeed aim for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751765</commentid>
    <comment_count>48</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-26 03:11:59 -0700</bug_when>
    <thetext>I run into SoftwareMode in TexTureMapper::create(), and shows nothing since hw video frame doesn&apos;t match sw path.
I uses Ubuntu12.04 with KDE desktop, build webkit with &quot;./build-webkit --qt&quot;, my qt version 4.8 which is installed from default repo 
where is wrong for my system or my build configuration?
thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751784</commentid>
    <comment_count>49</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-26 03:27:05 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt;     (2) The video gets its own TextureMapperPlatformLayer, that&apos;s what MediaPlayerPrivateGStreamer is and implements. So after painting the tiles of the static content, it&apos;s up to the MediaPlayerPrivateGStreamer to draw the video texture.

do you mean beginPainting and endPainting will NOT called for each video frame?
if yes, that&apos;s great.

since I run into SoftwareMode on my platform, I don&apos;t know exactly how data flows.
I just read the source code that &quot;textureMapper-&gt;drawTexture&quot; (in MediaPlayerPrivateGStreamer::paintToTextureMapper) will call into TextureMapperGL::drawTextureQuadWithProgram(), I think glClear() is required before the draw func in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751787</commentid>
    <comment_count>50</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-26 03:30:19 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; (In reply to comment #47)
&gt; &gt;     (2) The video gets its own TextureMapperPlatformLayer, that&apos;s what MediaPlayerPrivateGStreamer is and implements. So after painting the tiles of the static content, it&apos;s up to the MediaPlayerPrivateGStreamer to draw the video texture.
&gt; 
&gt; do you mean beginPainting and endPainting will NOT called for each video frame?
&gt; if yes, that&apos;s great.

I&apos;m sure it&apos;s called for each _screen visible_ frame. Every time you want to re-render the entire WebKit scene onto the screen.
 
I don&apos;t see a way around it though, it&apos;s not specific to video frames, isn&apos;t it? I mean, as the video players other content needs updating, too (although only every second).

Can you elaborate how your ideal rendering pass would look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751913</commentid>
    <comment_count>51</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-26 05:15:43 -0700</bug_when>
    <thetext>&gt; I&apos;m sure it&apos;s called for each _screen visible_ frame. Every time you want to re-render the entire WebKit scene onto the screen.
&gt; 
&gt; I don&apos;t see a way around it though, it&apos;s not specific to video frames, isn&apos;t it? I mean, as the video players other content needs updating, too (although only every second).
&gt; 
&gt; Can you elaborate how your ideal rendering pass would look like?

eventually, we just need one texture for each Graphics Layer.
so 3D pipeline (glClear/drawTexture/swapBuffer) isn&apos;t necessary when we have such texture alerady. for example: we can use bindSurface only with video texture as input. any gap for it?

if we reach the above solution, it means TextuerMapper is heavy for us, we can create a simple class for it.

comparing to controls, video layer is larger and higher update frequency, it is really expensive to do glClear and copy the texture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751930</commentid>
    <comment_count>52</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-26 05:25:47 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; &gt; I&apos;m sure it&apos;s called for each _screen visible_ frame. Every time you want to re-render the entire WebKit scene onto the screen.
&gt; &gt; 
&gt; &gt; I don&apos;t see a way around it though, it&apos;s not specific to video frames, isn&apos;t it? I mean, as the video players other content needs updating, too (although only every second).
&gt; &gt; 
&gt; &gt; Can you elaborate how your ideal rendering pass would look like?
&gt; 
&gt; eventually, we just need one texture for each Graphics Layer.

That is what we have. Actually, regular content layers usually have multiple textures because of tiling. But video for example has one texture only. That texture is an implementation detail of MediaPlayerPrivateGStreamer as implementation of TextureMapperPlatformLayer.

&gt; so 3D pipeline (glClear/drawTexture/swapBuffer) isn&apos;t necessary when we have such texture alerady. for example: we can use bindSurface only with video texture as input. any gap for it?
&gt; 
&gt; if we reach the above solution, it means TextuerMapper is heavy for us, we can create a simple class for it.
&gt; 
&gt; comparing to controls, video layer is larger and higher update frequency, it is really expensive to do glClear and copy the texture.

But we don&apos;t copy the texture, we only draw it once, onto the screen (into the back-buffer).

Can you elaborate what you mean with bindSurface()? I think I must be misunderstanding something here.

Note that the video texture is _not_ copied into an intermediate surface, it is copied straight onto the screen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751981</commentid>
    <comment_count>53</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-26 06:46:08 -0700</bug_when>
    <thetext>sorry, I misreading the patch.

&quot;textureMapperGL-&gt;bindSurface(m_texture.get());&quot; 
it uses video texture for video&apos;s graphics layer.

&quot;textureMapper-&gt;drawTexture(*m_texture.get(), targetRect, matrix, opacity, mask);&quot; 
from your explanation, I understand that it happens in 2nd phase compositing. -- I had thought it happens in 1st phase compositing before.

thanks for your detailed explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755017</commentid>
    <comment_count>54</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-10-31 00:08:12 -0700</bug_when>
    <thetext>Is it possible to use YUV texture in 2nd phase compositing?

the advantage is that we needn&apos;t convert YUV to RGB before 2nd phase compositing, (something like reduce memcpy once).

the disadvantage is that we have to introduce some complexity ( some detail of YUV texture) in TextureMapperGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755082</commentid>
    <comment_count>55</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-10-31 02:42:16 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; Is it possible to use YUV texture in 2nd phase compositing?
&gt; 
&gt; the advantage is that we needn&apos;t convert YUV to RGB before 2nd phase compositing, (something like reduce memcpy once).
&gt; 
&gt; the disadvantage is that we have to introduce some complexity ( some detail of YUV texture) in TextureMapperGL.

I think that would be a reasonable extension to TextureMapperGL and I think we need it anyway (despite being SoC/GPU specific). Of course the GStreamer interface doesn&apos;t specify anything there right now, so I think it will require some extensions. Perhaps as simple as the GstSurfaceConverter implementation providing a function for compiling the fragment shader needed for rendering the texture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757033</commentid>
    <comment_count>56</comment_count>
      <attachid>172019</attachid>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-02 02:59:03 -0700</bug_when>
    <thetext>Created attachment 172019
support gst-vaapi to upload vaSurface to webkit texture

revise Simon&apos;s patch with fixes(share the X Display between webkit and gst pipeline), 
it runs on my sandy bridge PC; however, playback stops after several seconds.

it it not my target since there is TFP and FBO in gst-vaapi to support gst_surface_converter_upload(), 
it is something like 3 times memory copy.

next, I will work on the following proposal:
  1. gst-vaapi export a &apos;handler&apos; for video surface
  2. a EGLImage can be create from this handler by eglCreateImageKHR()
  3. texture is created from the above EGLImage by glEGLImageTargetTexture2DOES()

something are not certain are:
  a) should the step 2 be done in gst-vaapi?
    pros: EGLImage is generic, webkit will be happy
    cons: EGL context should be shared between webkit and gst-vaapi, it increases the complexity
  b) should we export YUV (indicated by the &apos;handler&apos;) from gst-vaapi?
    pros: it is better for performance, driver needn&apos;t convert YUV to RGB before export the buffer.
    cons: complexity will be introduced on webkit side: detail info of the YUV buffer layout and corresponding shader to render such YUV texture.
    anyway, I will try RGB first. my SandyBridge can convert 720p video frame to RGB format at ~400fps

I&apos;m not familiar with webkit, 
  could someone give clues on adding glEGLImageTargetTexture2DOES? 
  and how could I make sure EGL/GLES is used instead of GLX/OGL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757042</commentid>
    <comment_count>57</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-11-02 03:13:05 -0700</bug_when>
    <thetext>(In reply to comment #56)
&gt; Created an attachment (id=172019) [details]
&gt; support gst-vaapi to upload vaSurface to webkit texture
&gt; 
&gt; revise Simon&apos;s patch with fixes(share the X Display between webkit and gst pipeline), 
&gt; it runs on my sandy bridge PC; however, playback stops after several seconds.

I&apos;ve observed the same :)
 
&gt; it it not my target since there is TFP and FBO in gst-vaapi to support gst_surface_converter_upload(), 
&gt; it is something like 3 times memory copy.
&gt; 
&gt; next, I will work on the following proposal:
&gt;   1. gst-vaapi export a &apos;handler&apos; for video surface
&gt;   2. a EGLImage can be create from this handler by eglCreateImageKHR()
&gt;   3. texture is created from the above EGLImage by glEGLImageTargetTexture2DOES()
&gt; 
&gt; something are not certain are:
&gt;   a) should the step 2 be done in gst-vaapi?
&gt;     pros: EGLImage is generic, webkit will be happy
&gt;     cons: EGL context should be shared between webkit and gst-vaapi, it increases the complexity

What if WebKit provides the EGL context but gst-vaapi creates its own context that is initialized to _share_
resources with the one provided by WebKit (or the app in general)?

&gt;   b) should we export YUV (indicated by the &apos;handler&apos;) from gst-vaapi?
&gt;     pros: it is better for performance, driver needn&apos;t convert YUV to RGB before export the buffer.
&gt;     cons: complexity will be introduced on webkit side: detail info of the YUV buffer layout and corresponding shader to render such YUV texture.
&gt;     anyway, I will try RGB first. my SandyBridge can convert 720p video frame to RGB format at ~400fps

I wonder if it would be possible to have API in the gst_surface_converter interfaces that would allow for
the app/webkit to call into the implementation (gst-vaapi) to create (compile) the fragment shader required for rendering
the texture? Then WebKit could call that function when it needs to.

Another approach would be for gst-vaapi to provide the shader as a string, but I don&apos;t think that&apos;s as clean.
 
&gt; I&apos;m not familiar with webkit, 
&gt;   could someone give clues on adding glEGLImageTargetTexture2DOES? 

Would this be actually needed in WebKit if gst-vaapi continues to support as texture as interface instead of EGL image?

Then again, I suppose one argument in favour of using EGL images instead of texture is that OpenMax IL has IIRC an extension
that allows for binding a video surface to an EGL image. So maybe that would make the gstreamer interface more useable in the long run.

&gt;   and how could I make sure EGL/GLES is used instead of GLX/OGL?

If you decide to use the Qt port for testing/developing it, just make sure Qt was configured with -opengl es2. You might also want to use wayland as windowing system, i.e. build the qtwayland module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760484</commentid>
    <comment_count>58</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-07 02:23:49 -0800</bug_when>
    <thetext>(In reply to comment #57)
&gt; (In reply to comment #56)
&gt; &gt; Created an attachment (id=172019) [details] [details]
&gt; 
&gt; What if WebKit provides the EGL context but gst-vaapi creates its own context that is initialized to _share_
&gt; resources with the one provided by WebKit (or the app in general)?

EGLClientBuffer is a void* indeed, gst-vaapi can export it without link to EGL.
so I will try it first.

your suggestion looks good, eglInitilize/eglTerminate/eglCreateContext is still required, right?
how about we just pass EGLDisplay/EGLContext from webkit to gst-vaapi?

&gt; 
&gt; I wonder if it would be possible to have API in the gst_surface_converter interfaces that would allow for
&gt; the app/webkit to call into the implementation (gst-vaapi) to create (compile) the fragment shader required for rendering
&gt; the texture? Then WebKit could call that function when it needs to.
&gt; 
&gt; Another approach would be for gst-vaapi to provide the shader as a string, but I don&apos;t think that&apos;s as clean.
&gt; 
if there is implementation for sw decoded YUV frame, gst-vaapi can try to follow it.
in my opinion, it is not so important to support YUV texture by gl shader.
many driver support it inside 3d driver.
(though Intel driver doesn&apos;t, it should be a push to us. and on the other hand, we can convert yuv to rgb before export it, it doesn&apos;t hit performance much)
&gt; Would this be actually needed in WebKit if gst-vaapi continues to support as &gt; texture as interface instead of EGL image?
texture depends on egl context and gl context, and the option between openGL and gles is decide at runtime for webkit. so, I hesitate to support texture as interface
&gt; 
&gt; Then again, I suppose one argument in favour of using EGL images instead of texture is that OpenMax IL has IIRC an extension
&gt; that allows for binding a video surface to an EGL image. So maybe that would make the gstreamer interface more useable in the long run.
&gt; 
I also favour of EGLImage, just postpone it for several days
&gt; 
&gt; If you decide to use the Qt port for testing/developing it, just make sure 
&gt; Qt was configured with -opengl es2. You might also want to use wayland as 
&gt; windowing system, i.e. build the qtwayland module.

now, I&apos;m using gtk port on Ubuntu12.04</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760488</commentid>
    <comment_count>59</comment_count>
      <attachid>172745</attachid>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-07 02:35:12 -0800</bug_when>
    <thetext>Created attachment 172745
temp patch to add eglCreateImageKHR and glEGLImageTargetTexture2DOES, fail to compile

temp patch to add eglCreateImageKHR and glEGLImageTargetTexture2DOES, but fail to compile

I met a strange issue that: compile fail if I try to include GLContextEGL.h in MediaPlayerPrivateGStreamer.cpp.
&quot;MediaPlayerPrivateGStreamer.cpp:321:35: error: expected unqualified-id before numeric constant&quot;
it seems to be namespace issue, but i don&apos;t know where breaks.

you can reproduce the issue by simple include GLContextEGL.h in MediaPlayerPrivateGStreamer.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761497</commentid>
    <comment_count>60</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-11-08 02:22:30 -0800</bug_when>
    <thetext>(In reply to comment #59)
&gt; Created an attachment (id=172745) [details]
&gt; temp patch to add eglCreateImageKHR and glEGLImageTargetTexture2DOES, fail to compile
&gt; 
&gt; temp patch to add eglCreateImageKHR and glEGLImageTargetTexture2DOES, but fail to compile
&gt; 
&gt; I met a strange issue that: compile fail if I try to include GLContextEGL.h in MediaPlayerPrivateGStreamer.cpp.
&gt; &quot;MediaPlayerPrivateGStreamer.cpp:321:35: error: expected unqualified-id before numeric constant&quot;
&gt; it seems to be namespace issue, but i don&apos;t know where breaks.
&gt; 
&gt; you can reproduce the issue by simple include GLContextEGL.h in MediaPlayerPrivateGStreamer.cpp

Preprocess the file with g++ -E ....cpp -o foo.cpp and check the resulting file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762633</commentid>
    <comment_count>61</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-08 23:49:02 -0800</bug_when>
    <thetext>(In reply to comment #60)
&gt; (In reply to comment #59)
&gt; Preprocess the file with g++ -E ....cpp -o foo.cpp and check the resulting file.

thanks Philippe.
the reason is MediaPlayer::None change to MediaPlayer::0L after c pre-process.

I change the definition of MediaPlayer::None to MediaPlayer::PreloadNone, it fixed the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764214</commentid>
    <comment_count>62</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-11-12 03:30:44 -0800</bug_when>
    <thetext>CCing GStreamer hacker extraordinaire, Sebastian Dröge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764348</commentid>
    <comment_count>63</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-11-12 06:24:00 -0800</bug_when>
    <thetext>Note that the removal/replacement of the surfaceconverter/surface(buffer|meta) API will be really soon and it will be replaced with something more generic.

I wouldn&apos;t worry about doing anything for 0.10 here, just concentrate on 1.0/1.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764999</commentid>
    <comment_count>64</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-12 17:12:36 -0800</bug_when>
    <thetext>(In reply to comment #63)
&gt; Note that the removal/replacement of the surfaceconverter/surface(buffer|meta) API will be really soon and it will be replaced with something more generic.
&gt; I wouldn&apos;t worry about doing anything for 0.10 here, just concentrate on 1.0/1.2.

thanks for reminder.
I works on gst 0.10 first, since it&apos;s my platform priority and gst-vaapi doesn&apos;t work with gst 1.0 yet.

after enabling with gst 0.10, I will work on gst 1.0 and try to push it upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765324</commentid>
    <comment_count>65</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-11-12 23:57:22 -0800</bug_when>
    <thetext>(In reply to comment #63)
&gt; Note that the removal/replacement of the surfaceconverter/surface(buffer|meta) API will be really soon and it will be replaced with something more generic.

Interesting, I was secretly hoping for that :). Any hints about the successor?

&gt; I wouldn&apos;t worry about doing anything for 0.10 here, just concentrate on 1.0/1.2.

Agreed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767623</commentid>
    <comment_count>66</comment_count>
      <attachid>174322</attachid>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-11-14 19:29:17 -0800</bug_when>
    <thetext>Created attachment 174322
add eglCreateImage/glEGLImageTargetTexture2DOES to webkit

after adding eglCreateImage/glEGLImageTargetTexture2DOES in webkit, 
I can chain up each component and run it on my PC, however pictures shows incorrectly (far from ok).

1, EGLImage seems to be created correctly after debug, I will continue debug it in gl lib
2, on gst side, finally I come to the same concept as meta data in gst 1.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782259</commentid>
    <comment_count>67</comment_count>
      <attachid>177424</attachid>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-12-03 23:28:33 -0800</bug_when>
    <thetext>Created attachment 177424
Bind texture from hw video surface which exports EGLClientBuffer information

this is the patch works for me on Intel SandyBridge platform, which uses extended GstSurfaceBuffer to get EGL client buffer information.
It is similar idea of Gst 1.0 meta data when I extend GstSurfaceBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782265</commentid>
    <comment_count>68</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-03 23:34:50 -0800</bug_when>
    <thetext>We&apos;re not likely to upstream a patch based on an unstable, deprecated API I&apos;m afraid. The focus should be on GStreamer 1.0, in my opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782361</commentid>
    <comment_count>69</comment_count>
    <who name="Zhao, Halley">halley.zhao</who>
    <bug_when>2012-12-04 01:27:13 -0800</bug_when>
    <thetext>I can port it to gst 1.0(meta data interface) when hw codec is ready for gst 1.0.

gst-vaapi is porting to gst 1.0, the best case is by end of this year to finish the porting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802243</commentid>
    <comment_count>70</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-01-08 07:35:16 -0800</bug_when>
    <thetext>(In reply to comment #69)
&gt; I can port it to gst 1.0(meta data interface) when hw codec is ready for gst 1.0.
&gt; 
&gt; gst-vaapi is porting to gst 1.0, the best case is by end of this year to finish the porting.

https://gitorious.org/~sreerenj/vaapi/sree-gstreamer-vaapi/commits/1.0

I got this working here with gst 1.0 but it still use the -bad unstable API. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827264</commentid>
    <comment_count>71</comment_count>
      <attachid>187046</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-02-07 03:39:01 -0800</bug_when>
    <thetext>Created attachment 187046
Rebase of the proposed patches (without gst surfaces)

I&apos;ve updated the patch to use the current TextureMapperShaderProgram API.

Please note that it still is a work in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827270</commentid>
    <comment_count>72</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-07 03:48:02 -0800</bug_when>
    <thetext>(In reply to comment #71)
&gt; Created an attachment (id=187046) [details]
&gt; Rebase of Phil&apos;s patch
&gt; 

FTR this is not my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839444</commentid>
    <comment_count>73</comment_count>
      <attachid>189741</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-02-22 03:50:17 -0800</bug_when>
    <thetext>Created attachment 189741
simple patch for video composition

Since the gstreamer backend has been refactored in two classes, I applied the previous patches manually and this the result.

I tried to keep the simplest approach, taking many of the elements proposed by arno., such as update player in renderer when source changed and to set needs display to the layer in renderLayerBacking, but removing the shader.

What I want is to keep most of the video processing in the GStreamer pipeline, and try to avoid the context change of the buffer (GPU&lt;-&gt;CPU). That is why applying the proposed shader would imply to move the buffer back and forth, impacting the performance. 

Still, the performance is bad. I would try to remove the color space conversion (YUV-&gt;RGB), and also try to avoid bring the buffer into the CPU, but push the WebKit&apos;s texture to the GStreamer context. Does this make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839537</commentid>
    <comment_count>74</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-02-22 06:11:18 -0800</bug_when>
    <thetext>(In reply to comment #73)
&gt; Created an attachment (id=189741) [details]
&gt; simple patch for video composition
&gt; 

About all these patches, I&apos;ve observed two bugs:

* The video doesn&apos;t play if it doesn&apos;t have the mouse above the video widget

* When two or more videos are rendered in the same page, I got this error:

[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
GtkLauncher: xcb_io.c:178: dequeue_pending_request: La declaración `!xcb_xlib_unknown_req_in_deq&apos; no se cumple.

and the GtkLauncher crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846499</commentid>
    <comment_count>75</comment_count>
      <attachid>191247</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-03-04 07:56:23 -0800</bug_when>
    <thetext>Created attachment 191247
simple patch for video composition

This new patch fix the X problem, because the ::paintToTextureMapper() method is fast as possible. The buffer handler is move out to the gstreamer video sink callback.

Still the method ::paintToTextureMapper() doesn&apos;t happen if the mouse is not above the video area. Furthermore, this method is not called as frequently as the video buffers arrive, so the video looks choppy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859544</commentid>
    <comment_count>76</comment_count>
      <attachid>194084</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-03-20 10:45:42 -0700</bug_when>
    <thetext>Created attachment 194084
New version of the composited video

This new version of the patch fixes the problem of the repainting when the pointer is out of the video area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862871</commentid>
    <comment_count>77</comment_count>
      <attachid>194877</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-03-25 10:05:54 -0700</bug_when>
    <thetext>Created attachment 194877
New version of the composited video

This new version of the patch honors the --enable-accelerated-compositing flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877102</commentid>
    <comment_count>78</comment_count>
      <attachid>198493</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-04-17 03:27:57 -0700</bug_when>
    <thetext>Created attachment 198493
compsited video with GstSurface{Meta/Convert} support 

This an alternative version of my previous patch (attachment 194877)

This version of the patch depends on:

1. The GstSurfaceMeta/GstSurfaceConvert interface, available in gst-plugins-bad v1.0 -though it is already removed for v1.2-

2. The current HEAD of official gstreamer-vaapi (git://gitorious.org/vaapi/gstreamer-vaapi.git - a0e5876)

With this patch I&apos;m able to render 1080p videos in GtkLaunch using a NVIDIA GPU (GT218 ION)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877105</commentid>
    <comment_count>79</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-04-17 03:34:22 -0700</bug_when>
    <thetext>My plan for this bug is

1. Split this patch, taking out the render related bits and file it in a different bug.

2. The other part of the patch will remain as a work in progress within this bug.

3. Work in gstreamer-vaapi and vdpau decoders to support the interfaces in GStreamer. See http://blogs.igalia.com/vjaquez/2013/04/08/gstreamer-hackfest-2013-milan/

4. Update the patch to use those new interfaces

5. Add full-screen support

Does this plan make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877113</commentid>
    <comment_count>80</comment_count>
      <attachid>198493</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-17 04:20:56 -0700</bug_when>
    <thetext>Comment on attachment 198493
compsited video with GstSurface{Meta/Convert} support 

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:311
&gt; +    const void *srcData;

* misplaced

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:323
&gt; +    // @TODO: support cropping

What&apos;s the plan for this? Get the GstCropMeta (or whatever the name is :)) and apply in ::updateContents below?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:381
&gt; +        m_textureMapper = textureMapper; // @TODO Is this a sane enough?

Seems sane to me!

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:385
&gt; +    if (m_texture) {
&gt; +        textureMapper-&gt;drawTexture(*m_texture.get(), targetRect, matrix, opacity);
&gt; +    }

No need for curly braces.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:107
&gt; +    virtual void paintToTextureMapper(TextureMapper*, const FloatRect&amp; targetRect, const TransformationMatrix&amp;, float opacity);

targetRect doesn&apos;t need to be named.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1785
&gt; +        if (m_graphicsLayer-&gt;hasContentsLayer()) {
&gt; +            m_graphicsLayer-&gt;setContentsNeedsDisplay();
&gt; +        } else if (m_graphicsLayer-&gt;drawsContent()) {
&gt; +            m_graphicsLayer-&gt;setNeedsDisplay();
&gt; +        }

Curly braces can be avoided here too, I suppose</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884177</commentid>
    <comment_count>81</comment_count>
      <attachid>200421</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-03 09:40:36 -0700</bug_when>
    <thetext>Created attachment 200421
Composited video support

This patch enables the video rendering using the TextureMapper. 

Depends on the fix at bug #114742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884180</commentid>
    <comment_count>82</comment_count>
      <attachid>200423</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-03 09:46:36 -0700</bug_when>
    <thetext>Created attachment 200423
GstSurface{Meta/Convert} support for gstreamer-vaapi elements (Gst 1.0)

This patch applies on top of attachment #200421.

It enables the FullHD rendering using the GstSurfaceMeta and GstSurfaceConvert from GStreamer 1.0 (note: those APIs are already deprecated and will be replaced by new one in GStreamer 1.2) with gstreamer-vaapi decoding element.

This patch was split because it is not mandatory for the composited video and uses deprecated GStreamer API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888212</commentid>
    <comment_count>83</comment_count>
      <attachid>201553</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-13 06:19:49 -0700</bug_when>
    <thetext>Created attachment 201553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888223</commentid>
    <comment_count>84</comment_count>
      <attachid>201553</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-05-13 06:34:32 -0700</bug_when>
    <thetext>Comment on attachment 201553
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:394
&gt; +        return;

This got me curious, you get the texture here, why then you return instead of drawing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888228</commentid>
    <comment_count>85</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-13 06:43:19 -0700</bug_when>
    <thetext>(In reply to comment #84)
&gt; (From update of attachment 201553 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=201553&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:394
&gt; &gt; +        return;
&gt; 
&gt; This got me curious, you get the texture here, why then you return instead of drawing?

Because it&apos;s empty when created I suppose :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888249</commentid>
    <comment_count>86</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-05-13 07:12:39 -0700</bug_when>
    <thetext>Ah! I thought it was drawing to not from the texture, thanks =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888254</commentid>
    <comment_count>87</comment_count>
      <attachid>201564</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-13 07:23:11 -0700</bug_when>
    <thetext>Created attachment 201564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888268</commentid>
    <comment_count>88</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-05-13 07:57:06 -0700</bug_when>
    <thetext>Texmap changes seem ok, I&apos;ll let kov or Philippe the honors of r+ing/r-ing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888273</commentid>
    <comment_count>89</comment_count>
      <attachid>201564</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-13 08:01:09 -0700</bug_when>
    <thetext>Comment on attachment 201564
Patch

Looks good, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888279</commentid>
    <comment_count>90</comment_count>
      <attachid>201564</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-13 08:14:11 -0700</bug_when>
    <thetext>Comment on attachment 201564
Patch

Clearing flags on attachment: 201564

Committed r150014: &lt;http://trac.webkit.org/changeset/150014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888280</commentid>
    <comment_count>91</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-13 08:14:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888478</commentid>
    <comment_count>92</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-13 12:49:55 -0700</bug_when>
    <thetext>This appears to have caused several regressions on EFL:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565-pretty-diff.html
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444-pretty-diff.html
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551-pretty-diff.html
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888480</commentid>
    <comment_count>93</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-13 12:58:42 -0700</bug_when>
    <thetext>(In reply to comment #92)
&gt; This appears to have caused several regressions on EFL:
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565-pretty-diff.html
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444-pretty-diff.html
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551-pretty-diff.html
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-pretty-diff.html

GTK doesn&apos;t run these tests yet so I suppose that&apos;s why this regression wasn&apos;t spotted by Victor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888490</commentid>
    <comment_count>94</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-05-13 13:14:25 -0700</bug_when>
    <thetext>(In reply to comment #93)
&gt; (In reply to comment #92)
&gt; &gt; This appears to have caused several regressions on EFL:
&gt; &gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565-pretty-diff.html
&gt; &gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444-pretty-diff.html
&gt; &gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551-pretty-diff.html
&gt; &gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r150014%20(12195)/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-pretty-diff.html
&gt; 
&gt; GTK doesn&apos;t run these tests yet so I suppose that&apos;s why this regression wasn&apos;t spotted by Victor.

It is actually worse. HTML5 video playback seems completely broken for us. I have tried to play a few HTML5 video demos on the Web and I see a back screen with only audio :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888492</commentid>
    <comment_count>95</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-13 13:29:28 -0700</bug_when>
    <thetext>Reverted r150014 for reason:

Broke video playback on WK2 and some webgl tests

Committed r150035: &lt;http://trac.webkit.org/changeset/150035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889833</commentid>
    <comment_count>96</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-16 08:16:34 -0700</bug_when>
    <thetext>(In reply to comment #94)

&gt; It is actually worse. HTML5 video playback seems completely broken for us. I have tried to play a few HTML5 video demos on the Web and I see a back screen with only audio :/

That&apos;s odd. I have tested with a nvidia and an intel GPUs and the HTML5 videos work OK.

And it is plain OpenGL&apos;s texture, no other library is involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889962</commentid>
    <comment_count>97</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-05-16 12:35:58 -0700</bug_when>
    <thetext>(In reply to comment #96)
&gt; (In reply to comment #94)
&gt; 
&gt; &gt; It is actually worse. HTML5 video playback seems completely broken for us. I have tried to play a few HTML5 video demos on the Web and I see a back screen with only audio :/
&gt; 
&gt; That&apos;s odd. I have tested with a nvidia and an intel GPUs and the HTML5 videos work OK.
&gt; 
&gt; And it is plain OpenGL&apos;s texture, no other library is involved.

WebGL test failures seem bit odd here.

The current solution would break HTML5 video for ports like EFL, Qt(??) which handle the final composition on UI process side. We would need to have a solution similar to WebGL(using GraphicsSurface).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889964</commentid>
    <comment_count>98</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-05-16 12:39:39 -0700</bug_when>
    <thetext>(In reply to comment #97)
&gt; (In reply to comment #96)
&gt; &gt; (In reply to comment #94)
&gt; &gt; 
&gt; &gt; &gt; It is actually worse. HTML5 video playback seems completely broken for us. I have tried to play a few HTML5 video demos on the Web and I see a back screen with only audio :/
&gt; &gt; 
&gt; &gt; That&apos;s odd. I have tested with a nvidia and an intel GPUs and the HTML5 videos work OK.
&gt; &gt; 
&gt; &gt; And it is plain OpenGL&apos;s texture, no other library is involved.
&gt; 
&gt; WebGL test failures seem bit odd here.
&gt; 
 The current solution would break HTML5 video for ports like EFL, Qt(??) which handle the final composition on UI process side. We would need to have a solution similar to WebGL(using GraphicsSurface) for us(EFL port atleast). Perhaps you could enable this only for GTK port for now (atleast with WebKit2) while we add the needed support from our side??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894808</commentid>
    <comment_count>99</comment_count>
      <attachid>203145</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-29 02:54:19 -0700</bug_when>
    <thetext>Created attachment 203145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894809</commentid>
    <comment_count>100</comment_count>
      <attachid>203145</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-05-29 03:02:45 -0700</bug_when>
    <thetext>Comment on attachment 203145
Patch

How about !USE(COORDINATED_GRAPHICS) instead of PLATFORM(GTK) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894814</commentid>
    <comment_count>101</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-05-29 03:16:04 -0700</bug_when>
    <thetext>(In reply to comment #100)
&gt; (From update of attachment 203145 [details])
&gt; How about !USE(COORDINATED_GRAPHICS) instead of PLATFORM(GTK) ?

!USE(COORDINATED_GRAPHICS) seems a better choice for me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894831</commentid>
    <comment_count>102</comment_count>
      <attachid>203151</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2013-05-29 04:16:57 -0700</bug_when>
    <thetext>Created attachment 203151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894918</commentid>
    <comment_count>103</comment_count>
      <attachid>203151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 06:24:38 -0700</bug_when>
    <thetext>Comment on attachment 203151
Patch

Clearing flags on attachment: 203151

Committed r150890: &lt;http://trac.webkit.org/changeset/150890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894919</commentid>
    <comment_count>104</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 06:24:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143452</attachid>
            <date>2012-05-22 21:27:28 -0700</date>
            <delta_ts>2012-06-26 05:32:59 -0700</delta_ts>
            <desc>wip patch</desc>
            <filename>wip-patch.patch</filename>
            <type>text/plain</type>
            <size>9249</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjMGQ3NDYxMzhjOGQzY2UzN2Y0NmE0OTNkYjI1ZDI3MWEyMTM0NTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDIyIE1heSAyMDEyIDE2OjQwOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
d2lwIHBhdGNoCgotLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCAgICAgIHwgICAyOCArKysrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgICAgIHwgICAzMSArKysrKysrKysrKysrKystLQogLi4u
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwICAgICAgfCAgIDM2ICsr
KysrKysrKysrKysrKysrKystCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJl
YW1lci5oICAgICAgICB8ICAgIDMgKysKIDQgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IGZkODRjMDkuLmQxNWQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01OSw2ICs1OSwxMyBAQAogI2lu
Y2x1ZGUgPGdzdC9pbnRlcmZhY2VzL3N0cmVhbXZvbHVtZS5oPgogI2VuZGlmCiAKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpbmNsdWRl
ICJ0ZXhtYXAvVGV4dHVyZU1hcHBlci5oIgorI2luY2x1ZGUgInRleG1hcC9UZXh0dXJlTWFwcGVy
R0wuaCIKKyNpbmNsdWRlICJ0ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNlbmRpZgorCiAvLyBHc3RQbGF5RmxhZ3MgZmxh
Z3MgZnJvbSBwbGF5YmluMi4gSXQgaXMgdGhlIHBvbGljeSBvZiBHU3RyZWFtZXIgdG8KIC8vIG5v
dCBwdWJsaWNseSBleHBvc2UgZWxlbWVudC1zcGVjaWZpYyBlbnVtcy4gVGhhdCdzIHdoeSB0aGlz
CiAvLyBHc3RQbGF5RmxhZ3MgZW51bSBoYXMgYmVlbiBjb3BpZWQgaGVyZS4KQEAgLTIwMyw2ICsy
MTAsNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV93ZWJraXRWaWRlb1NpbmsoMCkK
ICAgICAsIG1fZnBzU2luaygwKQogICAgICwgbV9zb3VyY2UoMCkKKyAgICAsIG1fY29tcG9zaXRl
ZChmYWxzZSkKICAgICAsIG1fc2Vla1RpbWUoMCkKICAgICAsIG1fY2hhbmdpbmdSYXRlKGZhbHNl
KQogICAgICwgbV9lbmRUaW1lKG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSkKQEAg
LTIzNCw2ICsyNDIsNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV9hdWRpb1RpbWVy
SGFuZGxlcigwKQogICAgICwgbV92aWRlb1RpbWVySGFuZGxlcigwKQogICAgICwgbV93ZWJraXRB
dWRpb1NpbmsoMCkKKyAgICAsIG1fdmlkZW9UZXh0dXJlKDApCiB7CiAgICAgaWYgKGluaXRpYWxp
emVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCiAgICAgICAgIGNyZWF0ZUdT
VFBsYXlCaW4oKTsKQEAgLTE0NzMsNiArMTQ4Miw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp0cmlnZ2VyUmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyAgICBpZiAobV9jb21wb3NpdGVkKQorICAgICAgICBy
ZXR1cm47CisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTE0OTAsNiArMTUwMiwyMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0Jgog
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LCBDb21wb3NpdGVDb3B5LCBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uLCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCit7CisgICAgaWYg
KCFtX2NvbXBvc2l0ZWQpCisgICAgICAgIG1fY29tcG9zaXRlZCA9IHRydWU7CisKKyAgICBpZiAo
IW1fdmlkZW9UZXh0dXJlKSB7CisgICAgICAgIG1fdmlkZW9UZXh0dXJlID0gdGV4dHVyZU1hcHBl
ci0+Y3JlYXRlVGV4dHVyZSgpOworICAgICAgICB3ZWJraXRfdmlkZW9fc2lua19zZXRfdGV4dHVy
ZShtX3dlYmtpdFZpZGVvU2luaywgbV92aWRlb1RleHR1cmUuZ2V0KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1fdmlkZW9UZXh0
dXJlLmdldCgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNpdHksIG1hc2spOworfQorI2VuZGlm
CisKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAxYjBmZjI2Li4xMTU5
Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBA
IC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgorI2VuZGlmCisKIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXRWaWRlb1NpbmsgV2ViS2l0VmlkZW9TaW5rOwogdHlwZWRlZiBzdHJ1Y3Qg
X0dzdEJ1ZmZlciBHc3RCdWZmZXI7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBHc3RNZXNz
YWdlOwpAQCAtNDUsOCArNDksMTEgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEdTdHJlYW1lckdX
b3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAotY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSB7Ci0KK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2UKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUikKKyAgICAgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIKKyNlbmRpZgorewogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICB+TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CiAgICAgICAgICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEyNCw2ICsxMzEsMjIgQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291
bnQoKSBjb25zdDsKICAgICAgICAgICAgIHVuc2lnbmVkIHZpZGVvRGVjb2RlZEJ5dGVDb3VudCgp
IGNvbnN0OwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShURVhU
VVJFX01BUFBFUikKKyAgICAvLyB3aGV0aGVyIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBpcyBzdXBw
b3J0ZWQgYnkgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIGN1cnJlbnQgbWVkaWEuCisgICAgICAg
ICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBm
bGlwcyB0aGUgaW50byBvciBvdXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCisgICAg
dmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgeyB9CisgICAg
Ly8gQ29uc3QtY2FzdGluZyBoZXJlIGlzIHNhZmUsIHNpbmNlIGFsbCBvZiBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllcidzIGZ1bmN0aW9ucyBhcmUgY29uc3QuZworICAgIHZpcnR1YWwgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4odGhpcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0
dXJlKiBtYXNrKTsKKyNlbHNlCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBhY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIHsgfQorICAgIHZpcnR1YWwgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbmRpZgorI2VuZGlm
CisKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcihNZWRpYVBsYXllciopOwogCkBAIC0xNTYsNiArMTc5LDcgQEAgY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiAgICAgICAgICAgICBHc3RFbGVtZW50KiBtX3ZpZGVvU2lua0JpbjsKICAgICAgICAgICAgIEdz
dEVsZW1lbnQqIG1fZnBzU2luazsKICAgICAgICAgICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9z
b3VyY2U7CisgICAgICAgICAgICBib29sIG1fY29tcG9zaXRlZDsKICAgICAgICAgICAgIGZsb2F0
IG1fc2Vla1RpbWU7CiAgICAgICAgICAgICBib29sIG1fY2hhbmdpbmdSYXRlOwogICAgICAgICAg
ICAgZmxvYXQgbV9lbmRUaW1lOwpAQCAtMTkxLDYgKzIxNSw5IEBAIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
ICAgICAgICAgICAgZ3VpbnQgbV9hdWRpb1RpbWVySGFuZGxlcjsKICAgICAgICAgICAgIGd1aW50
IG1fdmlkZW9UaW1lckhhbmRsZXI7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1f
d2Via2l0QXVkaW9TaW5rOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSKQorICAgICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1fdmlk
ZW9UZXh0dXJlOworI2VuZGlmCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcAppbmRleCA0MzYzMDM2Li4zY2I4MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0
cmVhbWVyLmNwcApAQCAtNzUsNiArNzUsOSBAQCBzdHJ1Y3QgX1dlYktpdFZpZGVvU2lua1ByaXZh
dGUgewogICAgIC8vCiAgICAgLy8gUHJvdGVjdGVkIGJ5IHRoZSBidWZmZXIgbXV0ZXgKICAgICBn
Ym9vbGVhbiB1bmxvY2tlZDsKKworICAgIFdlYkNvcmU6OkJpdG1hcFRleHR1cmUqIHRleHR1cmU7
CisgICAgZ2Jvb2xlYW4gdGV4dHVyZVJlc2V0dGVkOwogfTsKIAogI2RlZmluZSBfZG9faW5pdChi
bGEpIFwKQEAgLTExNSw2ICsxMTgsOSBAQCB3ZWJraXRfdmlkZW9fc2lua19pbml0KFdlYktpdFZp
ZGVvU2luayogc2luaywgV2ViS2l0VmlkZW9TaW5rQ2xhc3MqIGtsYXNzKQogICAgIHByaXYtPmRh
dGFfY29uZCA9IGdfY29uZF9uZXcoKTsKICAgICBwcml2LT5idWZmZXJfbXV0ZXggPSBnX211dGV4
X25ldygpOwogI2VuZGlmCisKKyAgICBwcml2LT50ZXh0dXJlID0gMDsKKyAgICBwcml2LT50ZXh0
dXJlUmVzZXR0ZWQgPSBGQUxTRTsKIH0KIAogc3RhdGljIGdib29sZWFuCkBAIC0xMzUsNyArMTQx
LDMwIEBAIHdlYmtpdF92aWRlb19zaW5rX3RpbWVvdXRfZnVuYyhncG9pbnRlciBkYXRhKQogICAg
ICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQogCi0gICAgZ19zaWduYWxfZW1pdChzaW5rLCB3ZWJr
aXRfdmlkZW9fc2lua19zaWduYWxzW1JFUEFJTlRfUkVRVUVTVEVEXSwgMCwgYnVmZmVyKTsKKyAg
ICBpZiAoIXByaXYtPnRleHR1cmUpCisgICAgICAgIGdfc2lnbmFsX2VtaXQoc2luaywgd2Via2l0
X3ZpZGVvX3Npbmtfc2lnbmFsc1tSRVBBSU5UX1JFUVVFU1RFRF0sIDAsIGJ1ZmZlcik7CisgICAg
ZWxzZSB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVIpCisgICAgICAgIEdzdENhcHMgKmNhcHMgPSBHU1RfQlVGRkVSX0NBUFMoYnVmZmVyKTsK
KyAgICAgICAgR3N0VmlkZW9Gb3JtYXQgZm9ybWF0OworICAgICAgICBpbnQgd2lkdGgsIGhlaWdo
dDsKKyAgICAgICAgZ3N0X3ZpZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKGNhcHMsICZmb3JtYXQsICZ3
aWR0aCwgJmhlaWdodCk7CisKKyAgICAgICAgV2ViQ29yZTo6Qml0bWFwVGV4dHVyZTo6RmxhZyBm
bGFnOworICAgICAgICBpbnQgYnl0ZXNQZXJMaW5lID0gd2lkdGggKiA0OworICAgICAgICBpZiAo
Zm9ybWF0ID09IEdTVF9WSURFT19GT1JNQVRfQVJHQiB8fCBmb3JtYXQgPT0gR1NUX1ZJREVPX0ZP
Uk1BVF9CR1JBKQorICAgICAgICAgICAgZmxhZyA9IFdlYkNvcmU6OkJpdG1hcFRleHR1cmU6OlN1
cHBvcnRzQWxwaGE7CisKKyAgICAgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKHdpZHRoLCBoZWln
aHQpOworCisgICAgICAgIGlmICghcHJpdi0+dGV4dHVyZVJlc2V0dGVkKSB7CisgICAgICAgICAg
ICBwcml2LT50ZXh0dXJlLT5yZXNldChzaXplLCBmbGFnKTsKKyAgICAgICAgICAgIHByaXYtPnRl
eHR1cmVSZXNldHRlZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdi0+dGV4dHVyZS0+
dXBkYXRlQ29udGVudHMoR1NUX0JVRkZFUl9EQVRBKGJ1ZmZlciksIFdlYkNvcmU6OkludFJlY3Qo
V2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUpLCBXZWJDb3JlOjpJbnRQb2ludCgwLDApLCBi
eXRlc1BlckxpbmUpOworI2VuZGlmCisgICAgfQorCiAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZm
ZXIpOwogICAgIGdfY29uZF9zaWduYWwocHJpdi0+ZGF0YV9jb25kKTsKICAgICBnX211dGV4X3Vu
bG9jayhwcml2LT5idWZmZXJfbXV0ZXgpOwpAQCAtMzk4LDQgKzQyNyw5IEBAIEdzdEVsZW1lbnQq
IHdlYmtpdF92aWRlb19zaW5rX25ldyhXZWJDb3JlOjpHU3RyZWFtZXJHV29ybGQqIGdzdEdXb3Js
ZCkKICAgICByZXR1cm4gZWxlbWVudDsKIH0KIAordm9pZCB3ZWJraXRfdmlkZW9fc2lua19zZXRf
dGV4dHVyZShHc3RFbGVtZW50KiBlbGVtZW50LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiB0ZXh0
dXJlKQoreworICAgIFdFQktJVF9WSURFT19TSU5LKGVsZW1lbnQpLT5wcml2LT50ZXh0dXJlID0g
dGV4dHVyZTsKK30KKwogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5r
R1N0cmVhbWVyLmgKaW5kZXggNTAxODUwZi4uNzM5YjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtH
U3RyZWFtZXIuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkdTdHJlYW1lckdXb3JsZC5o
IgogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHZpZGVv
c2luay5oPgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKIAogR19CRUdJTl9ERUNMUwogCkBA
IC03Nyw2ICs3OCw4IEBAIHN0cnVjdCBfV2ViS2l0VmlkZW9TaW5rQ2xhc3MgewogR1R5cGUgICAg
ICAgd2Via2l0X3ZpZGVvX3NpbmtfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOwogR3N0RWxl
bWVudCAqd2Via2l0X3ZpZGVvX3NpbmtfbmV3KFdlYkNvcmU6OkdTdHJlYW1lckdXb3JsZCopOwog
Cit2b2lkIHdlYmtpdF92aWRlb19zaW5rX3NldF90ZXh0dXJlKEdzdEVsZW1lbnQqLCBXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlKik7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvLyBVU0UoR1NUUkVB
TUVSKQotLSAKMS43LjEw
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149515</attachid>
            <date>2012-06-26 05:33:15 -0700</date>
            <delta_ts>2012-06-26 06:31:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20120626143331.patch</filename>
            <type>text/plain</type>
            <size>10411</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0MzY3ZjYwMmIwYjlm
MGViY2VlYWYxMGUwNGU5ZjAxYjJmZTg5MC4uMTU0OGRkMTFkODE1ZGE0OGUxNGE2NzhmZDI3ZGNk
ZGMzOWI5OWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTI2ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbdGV4bWFw
XVtHU3RyZWFtZXJdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRlZ3JhdGUgZ3N0cmVhbWVyIHZpZGVvIHJl
bmRlcmluZyBpbnRvIHRoZSBHTCBiYXNlZCB0ZXh0dXJlIG1hcHBlciB0aHJvdWdoIHRoZSB1c2UK
KyAgICAgICAgb2YgdGhlIEdzdFN1cmZhY2VCdWZmZXIvR3N0U3VyZmFjZUJ1ZmZlckNvbnZlcnRl
ciBBUEksIHRoYXQgYWxsb3dzIGZvciBhIHBpcGVsaW5lIHRoYXQKKyAgICAgICAgc3VwcG9ydHMg
ZWZmaWNpZW50IHVwbG9hZHMvY29udmVyc2lvbnMgaW50byBhIHRleHR1cmUuCisKKyAgICAgICAg
KiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorCiAyMDEyLTA2LTI1ICBMdWtlIE1hY3Bo
ZXJzb24gIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgcnVudGltZSBm
bGFnIHRvIGVuYWJsZS9kaXNhYmxlIENTUyB2YXJpYWJsZXMgKGluIGFkZGl0aW9uIHRvIGV4aXN0
aW5nIGNvbXBpbGUtdGltZSBmbGFnKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMTkzZjVmZWEzNTkxYjM3
NmExMDE1ZjEwNTRlNzZjOGYyZWM0MWFlNi4uNTRlNjE3Mzk0ZTZhMzZiMTg1NDE3OWY1M2U1OGZk
NmJiMDg0MTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE5OSw2ICsxOTksOCBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJD
RV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyCiAKICAgICAgICAgUEtHQ09ORklHICs9
IGdsaWItMi4wIGdpby0yLjAgZ3N0cmVhbWVyLTAuMTAgZ3N0cmVhbWVyLWFwcC0wLjEwIGdzdHJl
YW1lci1iYXNlLTAuMTAgZ3N0cmVhbWVyLWludGVyZmFjZXMtMC4xMCBnc3RyZWFtZXItcGJ1dGls
cy0wLjEwIGdzdHJlYW1lci1wbHVnaW5zLWJhc2UtMC4xMCBnc3RyZWFtZXItdmlkZW8tMC4xMAor
CisgICAgICAgIGNvbnRhaW5zKERFRklORVMsIFdURl9VU0VfR1NUUkVBTUVSX1NVUkZBQ0VCVUZG
RVI9MSk6IFBLR0NPTkZJRyArPSBnc3RyZWFtZXItYmFzZXZpZGVvLTAuMTAKICAgICB9IGVsc2U6
Y29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9RVF9NVUxUSU1FRElBPTEpIHsKICAgICAgICAgQ09O
RklHICAgKj0gbW9iaWxpdHkKICAgICAgICAgTU9CSUxJVFkgKj0gbXVsdGltZWRpYQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBlOWQxYmMx
MTk4MWM3NmVkNjY1ZjI0Mzc3ODEzMzhhZWQzNjAzZjFjLi5hMjQxNTRmOGQ1OTA0OTk0N2NjNWQy
YzBkMmUyNTUyYzgxNDJkOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgPGdzdC92aWRlby92
aWRlby5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
I2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCkBAIC0xNDcyLDYgKzE0NzEsMTEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRyaWdnZXJSZXBhaW50KEdzdEJ1ZmZlciogYnVmZmVy
KQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKEdTVFJFQU1FUl9TVVJGQUNFQlVGRkVSKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgcmV0dXJuOworI2Vu
ZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTE2MzUsNiArMTYzOSw1OSBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAgICAgcmV0dXJuIHA7CiB9CiAK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHU1RSRUFNRVJfU1VSRkFD
RUJVRkZFUikgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorUGxhdGZvcm1MYXllciogTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY29uc3RfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqPih0aGlzKTsKK30KKwor
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKQor
eworICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVyZU1h
cHBlcjo6T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYnVmZmVyICYm
IEdTVF9JU19TVVJGQUNFX0JVRkZFUihtX2J1ZmZlcikpIHsKKyAgICAgICAgR3N0U3VyZmFjZUJ1
ZmZlciogc3VyZmFjZSA9IEdTVF9TVVJGQUNFX0JVRkZFUihtX2J1ZmZlcik7CisKKyAgICAgICAg
IEdzdENhcHMqIGNhcHMgPSBHU1RfQlVGRkVSX0NBUFMobV9idWZmZXIpOworICAgICAgICAgR3N0
VmlkZW9Gb3JtYXQgZm9ybWF0OworICAgICAgICAgaW50IHdpZHRoLCBoZWlnaHQ7CisgICAgICAg
ICBnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMoY2FwcywgJmZvcm1hdCwgJndpZHRoLCAmaGVp
Z2h0KTsKKyAgICAgICAgIEludFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKworICAgICAgICBp
ZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgICAgIG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmNy
ZWF0ZVRleHR1cmUoKTsKKworICAgICAgICBpZiAobV90ZXh0dXJlLT5zaXplKCkgIT0gc2l6ZSkg
eworICAgICAgICAgICAgbV90ZXh0dXJlLT5yZXNldChzaXplKTsKKyAgICAgICAgICAgIG1fc3Vy
ZmFjZUNvbnZlcnRlci5jbGVhcigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX3N1cmZh
Y2VDb252ZXJ0ZXIpIHsKKyAgICAgICAgICAgIEdWYWx1ZSB0ZXh0dXJlVmFsdWUgPSBHX1ZBTFVF
X0lOSVQ7CisgICAgICAgICAgICBnX3ZhbHVlX2luaXQoJnRleHR1cmVWYWx1ZSwgR19UWVBFX1VJ
TlQpOworICAgICAgICAgICAgZ192YWx1ZV9zZXRfdWludCgmdGV4dHVyZVZhbHVlLCBzdGF0aWNf
Y2FzdDxCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUuZ2V0KCkpLT5pZCgpKTsKKworICAgICAg
ICAgICAgbV9zdXJmYWNlQ29udmVydGVyLnNldChnc3Rfc3VyZmFjZV9idWZmZXJfY3JlYXRlX2Nv
bnZlcnRlcihzdXJmYWNlLCAib3BlbmdsIiwgJnRleHR1cmVWYWx1ZSkpOworICAgICAgICAgICAg
Z19yZXR1cm5faWZfZmFpbChtX3N1cmZhY2VDb252ZXJ0ZXIpOworICAgICAgICB9CisKKyAgICAg
ICAgZ3N0X3N1cmZhY2VfY29udmVydGVyX3VwbG9hZChtX3N1cmZhY2VDb252ZXJ0ZXIuZ2V0KCks
IHN1cmZhY2UpOworCisgICAgICAgIGdzdF9idWZmZXJfdW5yZWYobV9idWZmZXIpOworICAgICAg
ICBtX2J1ZmZlciA9IDA7CisgICAgfQorCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgdGV4
dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1fdGV4dHVyZS5nZXQoKSwgdGFyZ2V0UmVjdCwgbWF0
cml4LCBvcGFjaXR5LCBtYXNrKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQogewog
ICAgIEFTU0VSVChtX3BsYXlCaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDUwNjk0MmMyYjRkZWRjMmIyODRmMjZlMDRhMzY5NjU3OWE1MjMz
ZjYuLjhhYzg2YTQ5ZGQxMDcxOTg5NTQ0ZTliZjdjYzcyMjI2N2JkYzAyNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDkgKzI4LDE3IEBA
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdTVFJFQU1FUl9TVVJGQUNF
QlVGRkVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBl
ckdMLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNkZWZpbmUg
R1NUX1VTRV9VTlNUQUJMRV9BUEkKKyNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0c3VyZmFjZWJ1ZmZl
ci5oPgorI2VuZGlmCisKICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5o
PgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VmlkZW9TaW5rIFdlYktpdFZpZGVvU2luazsKIHR5
cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIgR3N0QnVmZmVyOwpAQCAtNDUsNyArNTMsMTEgQEAgY2xh
c3MgSW50UmVjdDsKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVi
bGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CitjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVIp
ICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAsIHB1YmxpYyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgorI2VuZGlmCit7CiAKICAg
ICAgICAgcHVibGljOgogICAgICAgICAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigp
OwpAQCAtMTExLDYgKzEyMywxMSBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIAogICAgICAgICAgICAgYm9v
bCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKICAgICAgICAgICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSgpIGNvbnN0OworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKEdTVFJFQU1FUl9TVVJGQUNFQlVGRkVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CisgICAgICAgICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisgICAg
ICAgICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsKKyAgICAg
ICAgICAgIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgQml0
bWFwVGV4dHVyZSogbWFzayk7CisjZW5kaWYKIAogICAgICAgICAgICAgdm9pZCB2aWRlb0NoYW5n
ZWQoKTsKICAgICAgICAgICAgIHZvaWQgYXVkaW9DaGFuZ2VkKCk7CkBAIC0xOTQsNiArMjExLDEw
IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAgZ3VpbnQgbV92aWRlb1RpbWVySGFuZGxl
cjsKICAgICAgICAgICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV93ZWJraXRBdWRpb1Npbms7CiAg
ICAgICAgICAgICBHUmVmUHRyPEdzdFBhZD4gbV92aWRlb1NpbmtQYWQ7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVIpICYmIFVT
RShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBt
X3RleHR1cmU7CisgICAgICAgICAgICBHT3duUHRyPEdzdFN1cmZhY2VDb252ZXJ0ZXI+IG1fc3Vy
ZmFjZUNvbnZlcnRlcjsKKyNlbmRpZgogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dT
dHJlYW1lci5jcHAKaW5kZXggNDU2ZTQwMGMwZGZlNzMxOWIwMWY0ZGM2M2IxMDZmZDQ5MmI0NDg3
Yy4uY2M5MTZkYzNmZGIxMTQ5MTFlZmY3ZDUyYjRkOGMwM2Q4YTM0N2I3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTM5LDYgKzM5LDExIEBACiAjZW5kaWYKICNpbmNs
dWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVIpICYmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKKyNkZWZpbmUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgMQorI2luY2x1ZGUgPGdzdC92aWRl
by9nc3RzdXJmYWNlYnVmZmVyLmg+CisjZW5kaWYKKwogLy8gQ0FJUk9fRk9STUFUX1JHQjI0IHVz
ZWQgdG8gcmVuZGVyIHRoZSB2aWRlbyBidWZmZXJzIGlzIGxpdHRsZS9iaWcgZW5kaWFuIGRlcGVu
ZGFudC4KICNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCiAjaWZuZGVmIEdTVF9B
UElfVkVSU0lPTl8xCkBAIC01Myw3ICs1OCwxNCBAQAogI2RlZmluZSBXRUJLSVRfVklERU9fU0lO
S19QQURfQ0FQUyBHU1RfVklERU9fQ0FQU19NQUtFKCJ7IHhSR0IsIEFSR0IgfSIpCiAjZW5kaWYK
ICNlbmRpZgotc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNfc2lua1RlbXBsYXRlID0gR1NU
X1NUQVRJQ19QQURfVEVNUExBVEUoInNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9QQURfQUxXQVlT
LCBHU1RfU1RBVElDX0NBUFMoV0VCS0lUX1ZJREVPX1NJTktfUEFEX0NBUFMpKTsKKworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdTVFJFQU1FUl9TVVJGQUNFQlVGRkVS
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZGVmaW5lIFNVUkZBQ0VfQ0FQUyBHU1RfVklE
RU9fQ0FQU19TVVJGQUNFICIsIG9wZW5nbCA9IHRydWU7IgorI2Vsc2UKKyNkZWZpbmUgU1VSRkFD
RV9DQVBTCisjZW5kaWYKKworc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNfc2lua1RlbXBs
YXRlID0gR1NUX1NUQVRJQ19QQURfVEVNUExBVEUoInNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9Q
QURfQUxXQVlTLCBHU1RfU1RBVElDX0NBUFMoU1VSRkFDRV9DQVBTIFdFQktJVF9WSURFT19TSU5L
X1BBRF9DQVBTKSk7CiAKIAogR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRWaWRlb1Np
bmtEZWJ1Zyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOGE2NTFmMzQ0NjU1ODA5YzM5NTMxZDgxY2U2NDRjN2FhNzBmY2U4YS4uMmFhYzQyNzU1
ZjQ5YWFjNzkyMDhiNzkyNjc2YjAxNzYzNzQ3ZTkyNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTI2ICBT
aW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbdGV4
bWFwXVtHU3RyZWFtZXJdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgR3N0U3VyZmFjZUJ1ZmZlciBz
dXBwb3J0IGlmIHdlIGZpbmQgYSByZWNlbnQgZW5vdWdoIGdzdC1iYXNldmlkZW8gcGFja2FnZS4K
KworICAgICAgICAqIHFtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmOgorCiAyMDEy
LTA2LTI1ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAg
ICAgICBbUXRdIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgV2ViS2l0IHdpdGhvdXQgUXRXaWRn
ZXRzCmRpZmYgLS1naXQgYS9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnBy
ZiBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmCmluZGV4IDI5ZDQx
ZjAzM2ZmZTA4NWU4NTJhY2M1MGQxY2E0ZjZiYWQ5N2M5ODQuLmNiMDJkYTVjNTExMDk4OGNmZmI1
MmUyYTM1MGE1NTBlYmVkOWNmZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVh
dHVyZXMvZmVhdHVyZXMucHJmCisrKyBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVh
dHVyZXMucHJmCkBAIC0xNjAsNiArMTYwLDcgQEAgaGF2ZVF0KDUpIHsKICAgICAgICAgIWNvbnRh
aW5zKFFUX0NPTkZJRywgbm8tcGtnLWNvbmZpZyk6c3lzdGVtKHBrZy1jb25maWcgLS1leGlzdHMg
Z2xpYi0yLjAgZ2lvLTIuMCBcJ2dzdHJlYW1lci0wLjEwID49IDAuMTAuMzBcJyBcJ2dzdHJlYW1l
ci1wbHVnaW5zLWJhc2UtMC4xMCA+PSAwLjEwLjMwXCcpOiB7CiAgICAgICAgICAgICBERUZJTkVT
ICs9IEVOQUJMRV9WSURFTz0xCiAgICAgICAgICAgICBERUZJTkVTICs9IFdURl9VU0VfR1NUUkVB
TUVSPTEKKyAgICAgICAgICAgIHN5c3RlbShwa2ctY29uZmlnIC0tZXhpc3RzIFwnZ3N0cmVhbWVy
LWJhc2V2aWRlby0wLjEwID49IDAuMTAuMjJcJyk6IERFRklORVMgKz0gV1RGX1VTRV9HU1RSRUFN
RVJfU1VSRkFDRUJVRkZFUj0xCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByb290X3By
b2plY3RfZmlsZTogbWVzc2FnZSgiTWlzc2luZyBHTGliL0dpby9HU3RyZWFtZXIsIGRpc2FibGlu
ZyBtZWRpYSBlbGVtZW50IHN1cHBvcnQiKQogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149522</attachid>
            <date>2012-06-26 06:31:13 -0700</date>
            <delta_ts>2012-06-26 10:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20120626153128.patch</filename>
            <type>text/plain</type>
            <size>10157</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0MzY3ZjYwMmIwYjlm
MGViY2VlYWYxMGUwNGU5ZjAxYjJmZTg5MC4uMTU0OGRkMTFkODE1ZGE0OGUxNGE2NzhmZDI3ZGNk
ZGMzOWI5OWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTI2ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbdGV4bWFw
XVtHU3RyZWFtZXJdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRlZ3JhdGUgZ3N0cmVhbWVyIHZpZGVvIHJl
bmRlcmluZyBpbnRvIHRoZSBHTCBiYXNlZCB0ZXh0dXJlIG1hcHBlciB0aHJvdWdoIHRoZSB1c2UK
KyAgICAgICAgb2YgdGhlIEdzdFN1cmZhY2VCdWZmZXIvR3N0U3VyZmFjZUJ1ZmZlckNvbnZlcnRl
ciBBUEksIHRoYXQgYWxsb3dzIGZvciBhIHBpcGVsaW5lIHRoYXQKKyAgICAgICAgc3VwcG9ydHMg
ZWZmaWNpZW50IHVwbG9hZHMvY29udmVyc2lvbnMgaW50byBhIHRleHR1cmUuCisKKyAgICAgICAg
KiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwOgorCiAyMDEyLTA2LTI1ICBMdWtlIE1hY3Bo
ZXJzb24gIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgcnVudGltZSBm
bGFnIHRvIGVuYWJsZS9kaXNhYmxlIENTUyB2YXJpYWJsZXMgKGluIGFkZGl0aW9uIHRvIGV4aXN0
aW5nIGNvbXBpbGUtdGltZSBmbGFnKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMTkzZjVmZWEzNTkxYjM3
NmExMDE1ZjEwNTRlNzZjOGYyZWM0MWFlNi4uN2YwN2I4MDFjMDE5MmJhMGUwODIzODA2MzUwY2Nj
NTY3YzdlYzU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE5OSw2ICsxOTksOCBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBJTkNMVURFUEFUSCArPSAkJFNPVVJD
RV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyCiAKICAgICAgICAgUEtHQ09ORklHICs9
IGdsaWItMi4wIGdpby0yLjAgZ3N0cmVhbWVyLTAuMTAgZ3N0cmVhbWVyLWFwcC0wLjEwIGdzdHJl
YW1lci1iYXNlLTAuMTAgZ3N0cmVhbWVyLWludGVyZmFjZXMtMC4xMCBnc3RyZWFtZXItcGJ1dGls
cy0wLjEwIGdzdHJlYW1lci1wbHVnaW5zLWJhc2UtMC4xMCBnc3RyZWFtZXItdmlkZW8tMC4xMAor
CisgICAgICAgIGNvbnRhaW5zKERFRklORVMsIEhBVkVfR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVI9
MSk6IFBLR0NPTkZJRyArPSBnc3RyZWFtZXItYmFzZXZpZGVvLTAuMTAKICAgICB9IGVsc2U6Y29u
dGFpbnMoREVGSU5FUywgV1RGX1VTRV9RVF9NVUxUSU1FRElBPTEpIHsKICAgICAgICAgQ09ORklH
ICAgKj0gbW9iaWxpdHkKICAgICAgICAgTU9CSUxJVFkgKj0gbXVsdGltZWRpYQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBlOWQxYmMxMTk4
MWM3NmVkNjY1ZjI0Mzc3ODEzMzhhZWQzNjAzZjFjLi43OGZjZWNhMDMwMDkzYzliZTgwZjBhZTll
MzFlYzU5NzE4YWJmNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgPGdzdC92aWRlby92aWRl
by5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lm
ZGVmIEdTVF9BUElfVkVSU0lPTl8xCkBAIC0xNDcyLDYgKzE0NzEsMTEgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnRyaWdnZXJSZXBhaW50KEdzdEJ1ZmZlciogYnVmZmVyKQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworI2lmIEhBVkUoR1NUUkVBTUVSX1NV
UkZBQ0VCVUZGRVIpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICBpZiAobV90ZXh0dXJl
KQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYzNSw2ICsxNjM5LDU5IEBAIFBsYXRm
b3JtTWVkaWEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1lZGlhKCkgY29u
c3QKICAgICByZXR1cm4gcDsKIH0KIAorI2lmIEhBVkUoR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVIp
ICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKK1BsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4odGhpcyk7Cit9CisKK2Jvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKK3sKKyAgICBp
ZiAodGV4dHVyZU1hcHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBwZXI6Ok9w
ZW5HTE1vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2J1ZmZlciAmJiBHU1RfSVNf
U1VSRkFDRV9CVUZGRVIobV9idWZmZXIpKSB7CisgICAgICAgIEdzdFN1cmZhY2VCdWZmZXIqIHN1
cmZhY2UgPSBHU1RfU1VSRkFDRV9CVUZGRVIobV9idWZmZXIpOworCisgICAgICAgICBHc3RDYXBz
KiBjYXBzID0gR1NUX0JVRkZFUl9DQVBTKG1fYnVmZmVyKTsKKyAgICAgICAgIEdzdFZpZGVvRm9y
bWF0IGZvcm1hdDsKKyAgICAgICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgZ3N0X3Zp
ZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKGNhcHMsICZmb3JtYXQsICZ3aWR0aCwgJmhlaWdodCk7Cisg
ICAgICAgICBJbnRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7CisKKyAgICAgICAgaWYgKCFtX3Rl
eHR1cmUpCisgICAgICAgICAgICBtX3RleHR1cmUgPSB0ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0
dXJlKCk7CisKKyAgICAgICAgaWYgKG1fdGV4dHVyZS0+c2l6ZSgpICE9IHNpemUpIHsKKyAgICAg
ICAgICAgIG1fdGV4dHVyZS0+cmVzZXQoc2l6ZSk7CisgICAgICAgICAgICBtX3N1cmZhY2VDb252
ZXJ0ZXIuY2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbV9zdXJmYWNlQ29udmVy
dGVyKSB7CisgICAgICAgICAgICBHVmFsdWUgdGV4dHVyZVZhbHVlID0gR19WQUxVRV9JTklUOwor
ICAgICAgICAgICAgZ192YWx1ZV9pbml0KCZ0ZXh0dXJlVmFsdWUsIEdfVFlQRV9VSU5UKTsKKyAg
ICAgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQoJnRleHR1cmVWYWx1ZSwgc3RhdGljX2Nhc3Q8Qml0
bWFwVGV4dHVyZUdMKj4obV90ZXh0dXJlLmdldCgpKS0+aWQoKSk7CisKKyAgICAgICAgICAgIG1f
c3VyZmFjZUNvbnZlcnRlci5zZXQoZ3N0X3N1cmZhY2VfYnVmZmVyX2NyZWF0ZV9jb252ZXJ0ZXIo
c3VyZmFjZSwgIm9wZW5nbCIsICZ0ZXh0dXJlVmFsdWUpKTsKKyAgICAgICAgICAgIGdfcmV0dXJu
X2lmX2ZhaWwobV9zdXJmYWNlQ29udmVydGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGdzdF9z
dXJmYWNlX2NvbnZlcnRlcl91cGxvYWQobV9zdXJmYWNlQ29udmVydGVyLmdldCgpLCBzdXJmYWNl
KTsKKworICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG1fYnVmZmVyKTsKKyAgICAgICAgbV9idWZm
ZXIgPSAwOworICAgIH0KKworICAgIGlmIChtX3RleHR1cmUpCisgICAgICAgIHRleHR1cmVNYXBw
ZXItPmRyYXdUZXh0dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3Bh
Y2l0eSwgbWFzayk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBBU1NF
UlQobV9wbGF5QmluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaAppbmRleCA1MDY5NDJjMmI0ZGVkYzJiMjg0ZjI2ZTA0YTM2OTY1NzlhNTIzM2Y2Li5jNjhi
MzFiMzk0ODA2NGM1MmQ2Yzc3NDM4ODFlN2JmY2Q2ZTRlZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw5ICsyOCwxNyBAQAogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpZiBIQVZF
KEdTVFJFQU1FUl9TVVJGQUNFQlVGRkVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXIuaCIKKyNkZWZpbmUgR1NUX1VTRV9VTlNUQUJMRV9BUEkKKyNpbmNsdWRlIDxnc3Qvdmlk
ZW8vZ3N0c3VyZmFjZWJ1ZmZlci5oPgorI2VuZGlmCisKICNpbmNsdWRlIDxnbGliLmg+CiAjaW5j
bHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR093blB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0VmlkZW9TaW5rIFdl
YktpdFZpZGVvU2luazsKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIgR3N0QnVmZmVyOwpAQCAt
NDUsNyArNTMsMTEgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CitjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlCisjaWYgSEFWRShHU1RSRUFNRVJfU1VSRkFDRUJVRkZFUikgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGlj
IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyCisjZW5kaWYKK3sKIAogICAgICAgICBwdWJsaWM6
CiAgICAgICAgICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CkBAIC0xMTEsNiAr
MTIzLDExIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogCiAgICAgICAgICAgICBib29sIHN1cHBvcnRzRnVs
bHNjcmVlbigpIGNvbnN0OwogICAgICAgICAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlh
KCkgY29uc3Q7CisjaWYgSEFWRShHU1RSRUFNRVJfU1VSRkFDRUJVRkZFUikgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorICAgICAgICAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0OworICAgICAgICAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkg
Y29uc3Q7CisgICAgICAgICAgICB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBw
ZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0
IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spOworI2VuZGlmCiAKICAgICAgICAgICAgIHZv
aWQgdmlkZW9DaGFuZ2VkKCk7CiAgICAgICAgICAgICB2b2lkIGF1ZGlvQ2hhbmdlZCgpOwpAQCAt
MTk0LDYgKzIxMSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIGd1aW50IG1fdmlk
ZW9UaW1lckhhbmRsZXI7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fd2Via2l0
QXVkaW9TaW5rOwogICAgICAgICAgICAgR1JlZlB0cjxHc3RQYWQ+IG1fdmlkZW9TaW5rUGFkOwor
I2lmIEhBVkUoR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVIpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKKyAgICAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgICAg
ICAgICBHT3duUHRyPEdzdFN1cmZhY2VDb252ZXJ0ZXI+IG1fc3VyZmFjZUNvbnZlcnRlcjsKKyNl
bmRpZgogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXgg
NDU2ZTQwMGMwZGZlNzMxOWIwMWY0ZGM2M2IxMDZmZDQ5MmI0NDg3Yy4uMWUxNzczOWJlYzI0NmY4
MmM1NzYwMGNmMDZlNmRhYWU2ZDRjZTRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1l
ci5jcHAKQEAgLTM5LDYgKzM5LDExIEBACiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvRmFzdEFsbG9j
QmFzZS5oPgogCisjaWYgSEFWRShHU1RSRUFNRVJfU1VSRkFDRUJVRkZFUikgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorI2RlZmluZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSAxCisjaW5jbHVkZSA8
Z3N0L3ZpZGVvL2dzdHN1cmZhY2VidWZmZXIuaD4KKyNlbmRpZgorCiAvLyBDQUlST19GT1JNQVRf
UkdCMjQgdXNlZCB0byByZW5kZXIgdGhlIHZpZGVvIGJ1ZmZlcnMgaXMgbGl0dGxlL2JpZyBlbmRp
YW4gZGVwZW5kYW50LgogI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4KICNpZm5k
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKQEAgLTUzLDcgKzU4LDE0IEBACiAjZGVmaW5lIFdFQktJVF9W
SURFT19TSU5LX1BBRF9DQVBTIEdTVF9WSURFT19DQVBTX01BS0UoInsgeFJHQiwgQVJHQiB9IikK
ICNlbmRpZgogI2VuZGlmCi1zdGF0aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc19zaW5rVGVtcGxh
dGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgic2luayIsIEdTVF9QQURfU0lOSywgR1NUX1BB
RF9BTFdBWVMsIEdTVF9TVEFUSUNfQ0FQUyhXRUJLSVRfVklERU9fU0lOS19QQURfQ0FQUykpOwor
CisjaWYgSEFWRShHU1RSRUFNRVJfU1VSRkFDRUJVRkZFUikgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQorI2RlZmluZSBTVVJGQUNFX0NBUFMgR1NUX1ZJREVPX0NBUFNfU1VSRkFDRSAiLCBvcGVu
Z2wgPSB0cnVlOyIKKyNlbHNlCisjZGVmaW5lIFNVUkZBQ0VfQ0FQUworI2VuZGlmCisKK3N0YXRp
YyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzX3NpbmtUZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RF
TVBMQVRFKCJzaW5rIiwgR1NUX1BBRF9TSU5LLCBHU1RfUEFEX0FMV0FZUywgR1NUX1NUQVRJQ19D
QVBTKFNVUkZBQ0VfQ0FQUyBXRUJLSVRfVklERU9fU0lOS19QQURfQ0FQUykpOwogCiAKIEdTVF9E
RUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0VmlkZW9TaW5rRGVidWcpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhhNjUxZjM0NDY1NTgwOWMz
OTUzMWQ4MWNlNjQ0YzdhYTcwZmNlOGEuLjJhYWM0Mjc1NWY0OWFhYzc5MjA4Yjc5MjY3NmIwMTc2
Mzc0N2U5MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNi0yNiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5o
YXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAgW3RleG1hcF1bR1N0cmVhbWVyXSBDb21wb3Np
dGVkIFZpZGVvIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRW5hYmxlIEdzdFN1cmZhY2VCdWZmZXIgc3VwcG9ydCBpZiB3ZSBmaW5kIGEgcmVj
ZW50IGVub3VnaCBnc3QtYmFzZXZpZGVvIHBhY2thZ2UuCisKKyAgICAgICAgKiBxbWFrZS9ta3Nw
ZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZjoKKwogMjAxMi0wNi0yNSAgU2ltb24gSGF1c21hbm4g
IDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBNYWtlIGl0IHBvc3Np
YmxlIHRvIGJ1aWxkIFdlYktpdCB3aXRob3V0IFF0V2lkZ2V0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
cW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYgYi9Ub29scy9xbWFrZS9ta3NwZWNz
L2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgppbmRleCAyOWQ0MWYwMzNmZmUwODVlODUyYWNjNTBkMWNh
NGY2YmFkOTdjOTg0Li5mMDU1OTlmMzZlYTQ4ZWE3MjU2YTk3MTI3ODk4MjhkN2NjYTFkMTYzIDEw
MDY0NAotLS0gYS9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgorKysg
Yi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgpAQCAtMTYwLDYgKzE2
MCw3IEBAIGhhdmVRdCg1KSB7CiAgICAgICAgICFjb250YWlucyhRVF9DT05GSUcsIG5vLXBrZy1j
b25maWcpOnN5c3RlbShwa2ctY29uZmlnIC0tZXhpc3RzIGdsaWItMi4wIGdpby0yLjAgXCdnc3Ry
ZWFtZXItMC4xMCA+PSAwLjEwLjMwXCcgXCdnc3RyZWFtZXItcGx1Z2lucy1iYXNlLTAuMTAgPj0g
MC4xMC4zMFwnKTogewogICAgICAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfVklERU89MQogICAg
ICAgICAgICAgREVGSU5FUyArPSBXVEZfVVNFX0dTVFJFQU1FUj0xCisgICAgICAgICAgICBzeXN0
ZW0ocGtnLWNvbmZpZyAtLWV4aXN0cyBcJ2dzdHJlYW1lci1iYXNldmlkZW8tMC4xMCA+PSAwLjEw
LjIyXCcpOiBERUZJTkVTICs9IEhBVkVfR1NUUkVBTUVSX1NVUkZBQ0VCVUZGRVI9MQogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgcm9vdF9wcm9qZWN0X2ZpbGU6IG1lc3NhZ2UoIk1pc3Np
bmcgR0xpYi9HaW8vR1N0cmVhbWVyLCBkaXNhYmxpbmcgbWVkaWEgZWxlbWVudCBzdXBwb3J0IikK
ICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168253</attachid>
            <date>2012-10-11 10:46:49 -0700</date>
            <delta_ts>2012-10-12 13:24:13 -0700</delta_ts>
            <desc>patch based on simon&apos;s one</desc>
            <filename>video.patch</filename>
            <type>text/plain</type>
            <size>11874</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">Y29tbWl0IDg3NGEzMjhiMzUyMGZmZWRhY2VmMzJhOWFiYzc0MmZiYjQ2MWZmYTcKQXV0aG9yOiBB
cm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KRGF0ZTogICBXZWQg
T2N0IDEwIDExOjU4OjU5IDIwMTIgLTA3MDAKCiAgICB2aWRlbwoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ3MTYxNmEuLmZlMTI1NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzU0LDggKzM1NCwxMiBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmli
dXRlKQogewogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHNyY0F0dHIpIHsKICAgICAgICAg
Ly8gVHJpZ2dlciBhIHJlbG9hZCwgYXMgbG9uZyBhcyB0aGUgJ3NyYycgYXR0cmlidXRlIGlzIHBy
ZXNlbnQuCi0gICAgICAgIGlmIChmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpKQorICAgICAgICBp
ZiAoZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRyKSkgewogICAgICAgICAgICAgc2NoZWR1bGVMb2Fk
KE1lZGlhUmVzb3VyY2UpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKKyAgICAgICAg
ICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IGNvbnRyb2xzQXR0
cikKICAgICAgICAgY29uZmlndXJlTWVkaWFDb250cm9scygpOwogI2lmIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
NmY1NzM2Yi4uNGUxN2IyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTE1NTcsNiArMTU1NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQoR3N0QnVmZmVyKiBidWZmZXIpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MzEsNiArMTczNiw3NSBAQCBNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1vdmllTG9hZFR5cGUo
KSBjb25zdAogICAgIHJldHVybiBNZWRpYVBsYXllcjo6RG93bmxvYWQ7CiB9CiAKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hh
bmdlZCgpIHsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QgeworICAgIHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcio+KHRoaXMpOyAKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykgeworICAg
IGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6
T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYnVmZmVyKSB7CisgICAg
ICAgIEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RHZXRQYWRDYXBzKG1fdmlkZW9TaW5rUGFkLmdl
dCgpKTsKKworICAgICAgICBJbnRTaXplIHNpemUgPSBuYXR1cmFsU2l6ZSgpOworCisgICAgICAg
IG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSk7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzb3VyY2UgPSB0ZXh0dXJlTWFwcGVyLT5h
Y3F1aXJlVGV4dHVyZUZyb21Qb29sKHNpemUpOworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEK
KyAgICAgICAgR3N0TWFwSW5mbyBzb3VyY2VJbmZvOworICAgICAgICBnc3RfYnVmZmVyX21hcCht
X2J1ZmZlciwgJnNvdXJjZUluZm8sIEdTVF9NQVBfUkVBRCk7CisgICAgICAgIHNvdXJjZS0+dXBk
YXRlQ29udGVudHMoc291cmNlSW5mby5kYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6Oklu
dFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwwKSwgc2l6ZS53aWR0aCgp
ICogNCk7CisgICAgICAgIGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZzb3VyY2VJbmZvKTsK
KyNlbHNlCisgICAgICAgIHNvdXJjZS0+dXBkYXRlQ29udGVudHMoR1NUX0JVRkZFUl9EQVRBKG1f
YnVmZmVyKSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSks
IFdlYkNvcmU6OkludFBvaW50KDAsMCksIHNpemUud2lkdGgoKSAqIDQpOworI2VuZGlmCisKKyAg
ICAgICAgVGV4dHVyZU1hcHBlckdMKiB0ZXh0dXJlTWFwcGVyR0wgPSBzdGF0aWNfY2FzdDxUZXh0
dXJlTWFwcGVyR0wqPih0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgdGV4dHVyZU1hcHBlckdMLT5i
aW5kU3VyZmFjZShtX3RleHR1cmUuZ2V0KCkpOworCisgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0M0QgPSB0ZXh0dXJlTWFwcGVyR0wtPmdyYXBoaWNzQ29udGV4dDNEKCk7CisgICAg
ICAgIGlmICghbV9wcm9ncmFtKSB7CisgICAgICAgICAgICBtX3Byb2dyYW0gPSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbUJsdWU6OmNyZWF0ZShjb250ZXh0M0QpOworICAgICAgICB9CisgICAg
ICAgIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1CbHVlPiBwcm9ncmFtID0g
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1CbHVlOjpjcmVhdGUoY29udGV4dDNEKTsKKyAgICAg
ICAgY29udGV4dDNELT5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwcm9ncmFtLT52ZXJ0ZXhBdHRy
aWIoKSk7CisgICAgICAgIGNvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocHJvZ3Jh
bS0+dGV4Q29vcmRBdHRyaWIoKSk7CisgICAgICAgIGNvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9n
cmFtLT5pZCgpKTsKKworICAgICAgICBjb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkUwKTsKKyAgICAgICAgY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgc3RhdGljX2Nhc3Q8Y29uc3QgQml0bWFwVGV4dHVy
ZUdMKj4oc291cmNlLmdldCgpKS0+aWQoKSk7CisgICAgICAgIGNvbnRleHQzRC0+dW5pZm9ybTFp
KHByb2dyYW0tPnNvdXJjZVRleHR1cmVMb2NhdGlvbigpLCAwKTsKKworICAgICAgICBjb25zdCBH
QzNEZmxvYXQgdGFyZ2V0VmVydGljZXNbXSA9IHstMSwgLTEsIDEsIC0xLCAxLCAxLCAtMSwgMX07
CisgICAgICAgIGNvbnRleHQzRC0+dmVydGV4QXR0cmliUG9pbnRlcihwcm9ncmFtLT52ZXJ0ZXhB
dHRyaWIoKSwgMiwgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FULCB0cnVlLCAwLCBHQzNEaW50cHRy
KHRhcmdldFZlcnRpY2VzKSk7CisgICAgICAgIGNvbnN0IEdDM0RmbG9hdCBzb3VyY2VWZXJ0aWNl
c1tdID0gezAsIDAsIDEsIDAsIDEsIDEsIDAsIDF9OworICAgICAgICBjb250ZXh0M0QtPnZlcnRl
eEF0dHJpYlBvaW50ZXIocHJvZ3JhbS0+dGV4Q29vcmRBdHRyaWIoKSwgMiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkZMT0FULCB0cnVlLCAwLCBHQzNEaW50cHRyKHNvdXJjZVZlcnRpY2VzKSk7CisKKyAg
ICAgICAgY29udGV4dDNELT5kcmF3QXJyYXlzKEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9G
QU4sIDAsIDQpOworICAgICAgICBjb250ZXh0M0QtPmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShw
cm9ncmFtLT52ZXJ0ZXhBdHRyaWIoKSk7CisgICAgICAgIGNvbnRleHQzRC0+ZGlzYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHByb2dyYW0tPnRleENvb3JkQXR0cmliKCkpOworICAgICAgICB0ZXh0dXJl
TWFwcGVyR0wtPmJpbmRTdXJmYWNlKE5VTEwpOworCisgICAgICAgIG1fYnVmZmVyID0gMDsKKyAg
ICB9CisKKyAgICBpZiAobV90ZXh0dXJlKSB7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdU
ZXh0dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgbWFz
ayk7CisgICAgfQorCit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyAKKyAgICByZXR1cm4gdHJ1ZTsgCit9
CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQo
TWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBtX29yaWdpbmFsUHJlbG9hZFdh
c0F1dG9BbmRXYXNPdmVycmlkZGVuID0gbV9wcmVsb2FkICE9IHByZWxvYWQgJiYgbV9wcmVsb2Fk
ID09IE1lZGlhUGxheWVyOjpBdXRvOwpAQCAtMTg2OSw2ICsxOTQzLDQxIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAogfQogCisjZGVmaW5l
IFNUUklOR0lGWSguLi4pICNfX1ZBX0FSR1NfXworc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleFNo
YWRlclNvdXJjZUJsdWUgPQorICAgIFNUUklOR0lGWSgKKyAgICAgICAgYXR0cmlidXRlIHZlYzQg
YV92ZXJ0ZXg7CisgICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdGV4Q29vcmQ7CisgICAgICAgIHZh
cnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICB2b2lkIG1haW4odm9p
ZCkKKyAgICAgICAgeworICAgICAgICAgICAgdl9zb3VyY2VUZXhDb29yZCA9IHZlYzIoYV90ZXhD
b29yZC54LCBhX3RleENvb3JkLnkpOworICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBhX3ZlcnRl
eDsKKyAgICAgICAgfQorICAgICk7CisKKworc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2hh
ZGVyU291cmNlQmx1ZSA9CisgICAgU1RSSU5HSUZZKAorICAgICAgICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKyAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc19zb3VyY2U7CisgICAgICAgIHZh
cnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICB2b2lkIG1haW4odm9p
ZCkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHNfc291
cmNlLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgIC8vZ2xfRnJhZ0NvbG9yLnkgPSAw
LjA7CisgICAgICAgIH0KKyAgICApOworCisKK1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1
ZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1CbHVlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0KQorICAgIDogVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oY29udGV4dCwgdmVydGV4U2hh
ZGVyU291cmNlQmx1ZSwgZnJhZ21lbnRTaGFkZXJTb3VyY2VCbHVlKQoreworICAgIGluaXRpYWxp
emVQcm9ncmFtKCk7CisgICAgZ2V0VW5pZm9ybUxvY2F0aW9uKG1fc291cmNlVGV4dHVyZUxvY2F0
aW9uLCAic19zb3VyY2UiKTsKKyAgICBtX3RleENvb3JkQXR0cmliID0gbV9jb250ZXh0LT5nZXRB
dHRyaWJMb2NhdGlvbihtX2lkLCAiYV90ZXhDb29yZCIpOworfQorCiB9CiAKICNlbmRpZiAvLyBV
U0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCmluZGV4IGQxNGQwMDQuLjZiODA4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDkgKzI4LDE4IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorI2luY2x1ZGUgIlRleHR1
cmVNYXBwZXJHTC5oIgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGlj
c1R5cGVzM0QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2VuZGlmCisKICNp
bmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCiB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0VmlkZW9TaW5rIFdlYktpdFZpZGVvU2luazsKIHR5cGVkZWYgc3RydWN0IF9Hc3RC
dWZmZXIgR3N0QnVmZmVyOwpAQCAtNDUsNyArNTQsMjcgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNz
IEdTdHJlYW1lckdXb3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAot
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CitjbGFzcyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJsdWUgOiBw
dWJsaWMgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZT4gY3JlYXRlKEdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJsdWUoY29udGV4dCkpOworICAgIH0KKyAgICBHQzNE
dWludCB0ZXhDb29yZEF0dHJpYigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4Q29vcmRBdHRyaWI7IH0K
KworcHJvdGVjdGVkOgorICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZShHcmFwaGlj
c0NvbnRleHQzRCopOworcHJpdmF0ZToKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJs
dWUoKTsKKyAgICBHQzNEdWludCBtX3RleENvb3JkQXR0cmliOworCit9OworCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCisgICAgICAgICwgcHVibGljIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyCisjZW5k
aWYKK3sKIAogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICB+TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKCk7CkBAIC0xMjYsNiArMTU1LDE0IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogCiAgICAg
ICAgICAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7
CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRl
Q2hhbmdlZCgpOworICAgICAgICAgICAgLy8gQ29uc3QtY2FzdGluZyBoZXJlIGlzIHNhZmUsIHNp
bmNlIGFsbCBvZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcidzIGZ1bmN0aW9ucyBhcmUgY29u
c3QuZworICAgICAgICAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkg
Y29uc3Q7CisgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4
dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKTsKKyAgICAg
ICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7
CisjZW5kaWYKKwogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CiAKQEAgLTIwMyw4ICsyNDAsMTYgQEAgY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSB7CiAgICAgICAgICAgICBtdXRhYmxlIEludFNpemUgbV92aWRlb1NpemU7CiAgICAg
ICAgICAgICBLVVJMIG1fdXJsOwogICAgICAgICAgICAgYm9vbCBtX29yaWdpbmFsUHJlbG9hZFdh
c0F1dG9BbmRXYXNPdmVycmlkZGVuOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBtX2NvbnRleHQ7CisgICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90
ZXh0dXJlOworICAgICAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1
ZT4gbV9wcm9ncmFtOworI2VuZGlmCiAgICAgfTsKKworCiB9CiAKKwogI2VuZGlmIC8vIFVTRShH
U1RSRUFNRVIpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
aW5kZXggNjM3YWJkOS4uYTkyYmJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01l
ZGlhKFBsYXRmb3JtTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZh
cyhQbGF0Zm9ybUxheWVyKiBjYW52YXMpIHsgc2V0Q29udGVudHNUb01lZGlhKGNhbnZhcyk7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudHNMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29u
c3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcm
IG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAppbmRleCA4NzI1NWI1Li5jY2U2MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNzcsNiArNzcsMTcgQEAgc3RhdGljIGJv
b2wgaGFzQm94RGVjb3JhdGlvbnNPckJhY2tncm91bmQoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiBz
dGF0aWMgYm9vbCBoYXNCb3hEZWNvcmF0aW9uc09yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRl
clN0eWxlKik7CiBzdGF0aWMgSW50UmVjdCBjbGlwQm94KFJlbmRlckJveCogcmVuZGVyZXIpOwog
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNBY2NlbGVyYXRlZFZpZGVvKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChyZW5kZXJlci0+aXNWaWRlbygp
KSB7CisgICAgICAgIHJldHVybiB0b1JlbmRlclZpZGVvKHJlbmRlcmVyKS0+c3VwcG9ydHNBY2Nl
bGVyYXRlZFJlbmRlcmluZygpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlbmRl
cmVyKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0FjY2VsZXJhdGVkQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAjaWYgRU5BQkxF
KFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQpAQCAtMTM5MSw4ICsxNDAy
LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkoKQog
ewogICAgIEFTU0VSVCghcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKTsKICAgICAKLSAg
ICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkp
CisgICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiAobV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRl
bnQoKSB8fCBtX2dyYXBoaWNzTGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIoKSkpIHsKICAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICB9CiAgICAgCiAgICAgaWYg
KG1fZm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0NvbnRlbnQoKSkK
ICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwpAQCAtMTQwOSw3
ICsxNDIxLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3Bs
YXlJblJlY3QoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSk7CiAKLSAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhp
Y3NMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9ncmFwaGljc0xheWVyICYmICht
X2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhpY3NMYXllci0+aGFzQ29u
dGVudHNMYXllcigpKSkgewogICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlSZWN0ID0gcjsKICAg
ICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9ncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVu
ZGVyZXIoKSk7CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0
KGxheWVyRGlydHlSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168470</attachid>
            <date>2012-10-12 13:24:13 -0700</date>
            <delta_ts>2012-10-12 13:24:13 -0700</delta_ts>
            <desc>fixes a memory leak</desc>
            <filename>video.patch</filename>
            <type>text/plain</type>
            <size>11814</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">Y29tbWl0IDE5ZGVlMTgyZTZmMzIzM2ZjZDBlYzZlMmYzZmIwYzg0ODhjMWRjMDEKQXV0aG9yOiBB
cm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KRGF0ZTogICBXZWQg
T2N0IDEwIDExOjU4OjU5IDIwMTIgLTA3MDAKCiAgICB2aWRlbwoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ3MTYxNmEuLmZlMTI1NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzU0LDggKzM1NCwxMiBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmli
dXRlKQogewogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHNyY0F0dHIpIHsKICAgICAgICAg
Ly8gVHJpZ2dlciBhIHJlbG9hZCwgYXMgbG9uZyBhcyB0aGUgJ3NyYycgYXR0cmlidXRlIGlzIHBy
ZXNlbnQuCi0gICAgICAgIGlmIChmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpKQorICAgICAgICBp
ZiAoZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRyKSkgewogICAgICAgICAgICAgc2NoZWR1bGVMb2Fk
KE1lZGlhUmVzb3VyY2UpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKKyAgICAgICAg
ICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IGNvbnRyb2xzQXR0
cikKICAgICAgICAgY29uZmlndXJlTWVkaWFDb250cm9scygpOwogI2lmIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
NmY1NzM2Yi4uOTM2MTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTE1NTcsNiArMTU1NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQoR3N0QnVmZmVyKiBidWZmZXIpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MzEsNiArMTczNiw3NSBAQCBNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1vdmllTG9hZFR5cGUo
KSBjb25zdAogICAgIHJldHVybiBNZWRpYVBsYXllcjo6RG93bmxvYWQ7CiB9CiAKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hh
bmdlZCgpIHsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QgeworICAgIHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcio+KHRoaXMpOyAKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykgeworICAg
IGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6
T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYnVmZmVyKSB7CisgICAg
ICAgIEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RHZXRQYWRDYXBzKG1fdmlkZW9TaW5rUGFkLmdl
dCgpKTsKKworICAgICAgICBJbnRTaXplIHNpemUgPSBuYXR1cmFsU2l6ZSgpOworCisgICAgICAg
IG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSk7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzb3VyY2UgPSB0ZXh0dXJlTWFwcGVyLT5h
Y3F1aXJlVGV4dHVyZUZyb21Qb29sKHNpemUpOworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEK
KyAgICAgICAgR3N0TWFwSW5mbyBzb3VyY2VJbmZvOworICAgICAgICBnc3RfYnVmZmVyX21hcCht
X2J1ZmZlciwgJnNvdXJjZUluZm8sIEdTVF9NQVBfUkVBRCk7CisgICAgICAgIHNvdXJjZS0+dXBk
YXRlQ29udGVudHMoc291cmNlSW5mby5kYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6Oklu
dFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwwKSwgc2l6ZS53aWR0aCgp
ICogNCk7CisgICAgICAgIGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZzb3VyY2VJbmZvKTsK
KyNlbHNlCisgICAgICAgIHNvdXJjZS0+dXBkYXRlQ29udGVudHMoR1NUX0JVRkZFUl9EQVRBKG1f
YnVmZmVyKSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSks
IFdlYkNvcmU6OkludFBvaW50KDAsMCksIHNpemUud2lkdGgoKSAqIDQpOworI2VuZGlmCisKKyAg
ICAgICAgVGV4dHVyZU1hcHBlckdMKiB0ZXh0dXJlTWFwcGVyR0wgPSBzdGF0aWNfY2FzdDxUZXh0
dXJlTWFwcGVyR0wqPih0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgdGV4dHVyZU1hcHBlckdMLT5i
aW5kU3VyZmFjZShtX3RleHR1cmUuZ2V0KCkpOworCisgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0M0QgPSB0ZXh0dXJlTWFwcGVyR0wtPmdyYXBoaWNzQ29udGV4dDNEKCk7CisgICAg
ICAgIGlmICghbV9wcm9ncmFtKSB7CisgICAgICAgICAgICBtX3Byb2dyYW0gPSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbUJsdWU6OmNyZWF0ZShjb250ZXh0M0QpOworICAgICAgICB9CisgICAg
ICAgIGNvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobV9wcm9ncmFtLT52ZXJ0ZXhB
dHRyaWIoKSk7CisgICAgICAgIGNvbnRleHQzRC0+ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobV9w
cm9ncmFtLT50ZXhDb29yZEF0dHJpYigpKTsKKyAgICAgICAgY29udGV4dDNELT51c2VQcm9ncmFt
KG1fcHJvZ3JhbS0+aWQoKSk7CisKKyAgICAgICAgY29udGV4dDNELT5hY3RpdmVUZXh0dXJlKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCk7CisgICAgICAgIGNvbnRleHQzRC0+YmluZFRleHR1
cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIHN0YXRpY19jYXN0PGNvbnN0IEJpdG1h
cFRleHR1cmVHTCo+KHNvdXJjZS5nZXQoKSktPmlkKCkpOworICAgICAgICBjb250ZXh0M0QtPnVu
aWZvcm0xaShtX3Byb2dyYW0tPnNvdXJjZVRleHR1cmVMb2NhdGlvbigpLCAwKTsKKworICAgICAg
ICBjb25zdCBHQzNEZmxvYXQgdGFyZ2V0VmVydGljZXNbXSA9IHstMSwgLTEsIDEsIC0xLCAxLCAx
LCAtMSwgMX07CisgICAgICAgIGNvbnRleHQzRC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3Byb2dy
YW0tPnZlcnRleEF0dHJpYigpLCAyLCBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQsIHRydWUsIDAs
IEdDM0RpbnRwdHIodGFyZ2V0VmVydGljZXMpKTsKKyAgICAgICAgY29uc3QgR0MzRGZsb2F0IHNv
dXJjZVZlcnRpY2VzW10gPSB7MCwgMCwgMSwgMCwgMSwgMSwgMCwgMX07CisgICAgICAgIGNvbnRl
eHQzRC0+dmVydGV4QXR0cmliUG9pbnRlcihtX3Byb2dyYW0tPnRleENvb3JkQXR0cmliKCksIDIs
IEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCwgdHJ1ZSwgMCwgR0MzRGludHB0cihzb3VyY2VWZXJ0
aWNlcykpOworCisgICAgICAgIGNvbnRleHQzRC0+ZHJhd0FycmF5cyhHcmFwaGljc0NvbnRleHQz
RDo6VFJJQU5HTEVfRkFOLCAwLCA0KTsKKyAgICAgICAgY29udGV4dDNELT5kaXNhYmxlVmVydGV4
QXR0cmliQXJyYXkobV9wcm9ncmFtLT52ZXJ0ZXhBdHRyaWIoKSk7CisgICAgICAgIGNvbnRleHQz
RC0+ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG1fcHJvZ3JhbS0+dGV4Q29vcmRBdHRyaWIoKSk7
CisgICAgICAgIHRleHR1cmVNYXBwZXJHTC0+YmluZFN1cmZhY2UoTlVMTCk7CisKKyAgICAgICAg
Z3N0X2J1ZmZlcl91bnJlZihtX2J1ZmZlcik7CisgICAgICAgIG1fYnVmZmVyID0gMDsKKyAgICB9
CisKKyAgICBpZiAobV90ZXh0dXJlKSB7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdUZXh0
dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgbWFzayk7
CisgICAgfQorCit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyAKKyAgICByZXR1cm4gdHJ1ZTsgCit9Cisj
ZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQoTWVk
aWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBtX29yaWdpbmFsUHJlbG9hZFdhc0F1
dG9BbmRXYXNPdmVycmlkZGVuID0gbV9wcmVsb2FkICE9IHByZWxvYWQgJiYgbV9wcmVsb2FkID09
IE1lZGlhUGxheWVyOjpBdXRvOwpAQCAtMTg2OSw2ICsxOTQzLDQxIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAogfQogCisjZGVmaW5lIFNU
UklOR0lGWSguLi4pICNfX1ZBX0FSR1NfXworc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleFNoYWRl
clNvdXJjZUJsdWUgPQorICAgIFNUUklOR0lGWSgKKyAgICAgICAgYXR0cmlidXRlIHZlYzQgYV92
ZXJ0ZXg7CisgICAgICAgIGF0dHJpYnV0ZSB2ZWM0IGFfdGV4Q29vcmQ7CisgICAgICAgIHZhcnlp
bmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICB2b2lkIG1haW4odm9pZCkK
KyAgICAgICAgeworICAgICAgICAgICAgdl9zb3VyY2VUZXhDb29yZCA9IHZlYzIoYV90ZXhDb29y
ZC54LCBhX3RleENvb3JkLnkpOworICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBhX3ZlcnRleDsK
KyAgICAgICAgfQorICAgICk7CisKKworc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2hhZGVy
U291cmNlQmx1ZSA9CisgICAgU1RSSU5HSUZZKAorICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKKyAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc19zb3VyY2U7CisgICAgICAgIHZhcnlp
bmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAgICB2b2lkIG1haW4odm9pZCkK
KyAgICAgICAgeworICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHNfc291cmNl
LCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgIC8vZ2xfRnJhZ0NvbG9yLnkgPSAwLjA7
CisgICAgICAgIH0KKyAgICApOworCisKK1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZTo6
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1CbHVlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
KQorICAgIDogVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oY29udGV4dCwgdmVydGV4U2hhZGVy
U291cmNlQmx1ZSwgZnJhZ21lbnRTaGFkZXJTb3VyY2VCbHVlKQoreworICAgIGluaXRpYWxpemVQ
cm9ncmFtKCk7CisgICAgZ2V0VW5pZm9ybUxvY2F0aW9uKG1fc291cmNlVGV4dHVyZUxvY2F0aW9u
LCAic19zb3VyY2UiKTsKKyAgICBtX3RleENvb3JkQXR0cmliID0gbV9jb250ZXh0LT5nZXRBdHRy
aWJMb2NhdGlvbihtX2lkLCAiYV90ZXhDb29yZCIpOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0Uo
R1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IGQxNGQwMDQuLjZiODA4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDkgKzI4LDE4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorI2luY2x1ZGUgIlRleHR1cmVN
YXBwZXJHTC5oIgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGljc1R5
cGVzM0QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2VuZGlmCisKICNpbmNs
dWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0VmlkZW9TaW5rIFdlYktpdFZpZGVvU2luazsKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZm
ZXIgR3N0QnVmZmVyOwpAQCAtNDUsNyArNTQsMjcgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEdT
dHJlYW1lckdXb3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAotY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZSB7CitjbGFzcyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJsdWUgOiBwdWJs
aWMgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZT4gY3JlYXRlKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJsdWUoY29udGV4dCkpOworICAgIH0KKyAgICBHQzNEdWlu
dCB0ZXhDb29yZEF0dHJpYigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4Q29vcmRBdHRyaWI7IH0KKwor
cHJvdGVjdGVkOgorICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZShHcmFwaGljc0Nv
bnRleHQzRCopOworcHJpdmF0ZToKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbUJsdWUo
KTsKKyAgICBHQzNEdWludCBtX3RleENvb3JkQXR0cmliOworCit9OworCitjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCisgICAgICAgICwgcHVibGljIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyCisjZW5kaWYK
K3sKIAogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKCk7CkBAIC0xMjYsNiArMTU1LDE0IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogCiAgICAgICAg
ICAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hh
bmdlZCgpOworICAgICAgICAgICAgLy8gQ29uc3QtY2FzdGluZyBoZXJlIGlzIHNhZmUsIHNpbmNl
IGFsbCBvZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcidzIGZ1bmN0aW9ucyBhcmUgY29uc3Qu
ZworICAgICAgICAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Q7CisgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVy
ZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKTsKKyAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7Cisj
ZW5kaWYKKwogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CiAKQEAgLTIwMyw4ICsyNDAsMTYgQEAgY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiAgICAgICAgICAgICBtdXRhYmxlIEludFNpemUgbV92aWRlb1NpemU7CiAgICAgICAg
ICAgICBLVVJMIG1fdXJsOwogICAgICAgICAgICAgYm9vbCBtX29yaWdpbmFsUHJlbG9hZFdhc0F1
dG9BbmRXYXNPdmVycmlkZGVuOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
VVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBtX2NvbnRleHQ7CisgICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90ZXh0
dXJlOworICAgICAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZT4g
bV9wcm9ncmFtOworI2VuZGlmCiAgICAgfTsKKworCiB9CiAKKwogI2VuZGlmIC8vIFVTRShHU1RS
RUFNRVIpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5k
ZXggNjM3YWJkOS4uYTkyYmJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlh
KFBsYXRmb3JtTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQ
bGF0Zm9ybUxheWVyKiBjYW52YXMpIHsgc2V0Q29udGVudHNUb01lZGlhKGNhbnZhcyk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVu
dHNMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3Qg
RmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAppbmRleCA4NzI1NWI1Li5jY2U2MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNzcsNiArNzcsMTcgQEAgc3RhdGljIGJvb2wg
aGFzQm94RGVjb3JhdGlvbnNPckJhY2tncm91bmQoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiBzdGF0
aWMgYm9vbCBoYXNCb3hEZWNvcmF0aW9uc09yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRlclN0
eWxlKik7CiBzdGF0aWMgSW50UmVjdCBjbGlwQm94KFJlbmRlckJveCogcmVuZGVyZXIpOwogCitz
dGF0aWMgaW5saW5lIGJvb2wgaXNBY2NlbGVyYXRlZFZpZGVvKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChyZW5kZXJlci0+aXNWaWRlbygpKSB7
CisgICAgICAgIHJldHVybiB0b1JlbmRlclZpZGVvKHJlbmRlcmVyKS0+c3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlbmRlcmVy
KTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fj
Y2VsZXJhdGVkQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAjaWYgRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQpAQCAtMTM5MSw4ICsxNDAyLDkg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkoKQogewog
ICAgIEFTU0VSVCghcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKTsKICAgICAKLSAgICBp
ZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkpCisg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiAobV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQo
KSB8fCBtX2dyYXBoaWNzTGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIoKSkpIHsKICAgICAgICAgbV9n
cmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICB9CiAgICAgCiAgICAgaWYgKG1f
Zm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAg
ICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwpAQCAtMTQwOSw3ICsx
NDIxLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJ
blJlY3QoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3Np
dGVkQW5jZXN0b3IoKSk7CiAKLSAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NM
YXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIChtX2dy
YXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhpY3NMYXllci0+aGFzQ29udGVu
dHNMYXllcigpKSkgewogICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlSZWN0ID0gcjsKICAgICAg
ICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9ncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVy
ZXIoKSk7CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxh
eWVyRGlydHlSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172019</attachid>
            <date>2012-11-02 02:59:03 -0700</date>
            <delta_ts>2012-12-03 23:29:10 -0800</delta_ts>
            <desc>support gst-vaapi to upload vaSurface to webkit texture</desc>
            <filename>0001-use-GstSurfaceBuffer-to-upload-vaSurface-to-webkit-t.patch</filename>
            <type>text/plain</type>
            <size>8438</size>
            <attacher name="Zhao, Halley">halley.zhao</attacher>
            
              <data encoding="base64">RnJvbSA5YzFiYjA0NWUwOTFmZTMwN2NiMzkxNzU0MTY4NjIyZWUxY2VjNzczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIEhhbGxleSA8aGFsbGV5LnpoYW9AaW50ZWwuY29tPgpE
YXRlOiBGcmksIDIgTm92IDIwMTIgMTc6Mzg6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIXSB1c2Ug
R3N0U3VyZmFjZUJ1ZmZlciB0byB1cGxvYWQgdmFTdXJmYWNlIHRvIHdlYmtpdCB0ZXh0dXJlCgot
LS0KIC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCAgICAgICAgIHwg
ICAyMiArKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcCAgICAgIHwgICAzNiArKysrKysrKysrKysrKysrKysrKwogLi4uL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAgICAzICsrCiAuLi4vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgICAgICB8ICAgMTIgKysrKysrLQog
U291cmNlL2NtYWtlL0ZpbmRHU3RyZWFtZXIuY21ha2UgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJHV29ybGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKaW5kZXggMjEyZGVmYi4uNDYxYmRiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckdXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKQEAgLTMzLDYgKzMzLDEzIEBACiAjZW5kaWYKICNl
bmRpZgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCisgICAgLy8gc2hhcmUgdGhlIERpc3BsYXkgb2YgR0xDb250ZXh0IHRvIEdTdHJl
YW1lciB2aWRlbyBjb250ZXh0CisgICAgI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorICAgICNkZWZp
bmUgR1NUX1VTRV9VTlNUQUJMRV9BUEkgICAgMQorICAgICNpbmNsdWRlIDxnc3QvdmlkZW8vdmlk
ZW9jb250ZXh0Lmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDMsMTAgKzUwLDI1IEBAIGdib29sZWFuIGdzdEdXb3JsZFN5bmNNZXNz
YWdlQ2FsbGJhY2soR3N0QnVzKiwgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0CiAK
ICAgICBHU3RyZWFtZXJHV29ybGQqIGdzdEdXb3JsZCA9IHN0YXRpY19jYXN0PEdTdHJlYW1lckdX
b3JsZCo+KGRhdGEpOwogICAgIGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X21l
c3NhZ2VfZ2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKKyAgICBHc3RWaWRlb0NvbnRleHQgKmNvbnRl
eHQ7CisgICAgY29uc3QgZ2NoYXIgKip0eXBlczsKIAogICAgIGlmIChnc3Rfc3RydWN0dXJlX2hh
c19uYW1lKHN0cnVjdHVyZSwgInByZXBhcmUteHdpbmRvdy1pZCIpCiAgICAgICAgIHx8IGdzdF9z
dHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaGF2ZS1ucy12aWV3IikpCiAgICAgICAgIGdz
dEdXb3JsZC0+c2V0V2luZG93T3ZlcmxheShtZXNzYWdlKTsKKyAgICBlbHNlIGlmIChnc3Rfdmlk
ZW9fY29udGV4dF9tZXNzYWdlX3BhcnNlX3ByZXBhcmUgKG1lc3NhZ2UsICZ0eXBlcywgJmNvbnRl
eHQpKSB7CisgICAgICBnaW50IGk7CisgICAgCisgICAgICBmb3IgKGkgPSAwOyB0eXBlc1tpXTsg
aSsrKSB7CisgICAgCisgICAgICAgIGlmICghc3RyY21wKHR5cGVzW2ldLCAieDExLWRpc3BsYXki
KSkgeworICAgICAgICAgIGdzdF92aWRlb19jb250ZXh0X3NldF9jb250ZXh0X3BvaW50ZXIgKGNv
bnRleHQsICJ4MTEtZGlzcGxheSIsIEdMQ29udGV4dDo6c2hhcmVkWDExRGlzcGxheSgpKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgfQor
ICAgIH0KKwogICAgIHJldHVybiBUUlVFOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJiODg3ZTYuLjZiOTVhNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yNDMsNiAr
MjQzLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fd2Via2l0QXVkaW9TaW5rKDAp
CiAgICAgLCBtX3RvdGFsQnl0ZXMoLTEpCiAgICAgLCBtX29yaWdpbmFsUHJlbG9hZFdhc0F1dG9B
bmRXYXNPdmVycmlkZGVuKGZhbHNlKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgICwgbV9zdXJmYWNlQ29udmVydGVyKDApCisj
ZW5kaWYgICAgCiB7CiAgICAgaWYgKGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktp
dEVsZW1lbnRzKCkpCiAgICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4oKTsKQEAgLTE3NDcsNyArMTc1
MCw0MCBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdCB7CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFp
bnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBm
bG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKSB7CiAgICAgaWYgKHRleHR1cmVNYXBw
ZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQogICAg
ICAgICByZXR1cm47CisjaWYgMQorICAgIGlmIChtX2J1ZmZlciAmJiBHU1RfSVNfU1VSRkFDRV9C
VUZGRVIobV9idWZmZXIpKSB7CisgICAgICAgIEdzdFN1cmZhY2VCdWZmZXIqIHN1cmZhY2UgPSBH
U1RfU1VSRkFDRV9CVUZGRVIobV9idWZmZXIpOworCisgICAgICAgICBHc3RDYXBzKiBjYXBzID0g
R1NUX0JVRkZFUl9DQVBTKG1fYnVmZmVyKTsKKyAgICAgICAgIEdzdFZpZGVvRm9ybWF0IGZvcm1h
dDsKKyAgICAgICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgICAgICAgZ3N0X3ZpZGVvX2Zvcm1h
dF9wYXJzZV9jYXBzKGNhcHMsICZmb3JtYXQsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICBJ
bnRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7CisKKyAgICAgICAgaWYgKCFtX3RleHR1cmUpIHsK
KyAgICAgICAgICAgIG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJv
bVBvb2woc2l6ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV90ZXh0dXJlLT5zaXplKCkg
IT0gc2l6ZSkgeworICAgICAgICAgICAgbV90ZXh0dXJlLT5yZXNldChzaXplKTsKKyAgICAgICAg
ICAgIG1fc3VyZmFjZUNvbnZlcnRlci5jbGVhcigpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCFtX3N1cmZhY2VDb252ZXJ0ZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIEdWYWx1ZSB0ZXh0dXJl
VmFsdWUgPSB7MH07CisgICAgICAgICAgICBnX3ZhbHVlX2luaXQoJnRleHR1cmVWYWx1ZSwgR19U
WVBFX1VJTlQpOworICAgICAgICAgICAgZ192YWx1ZV9zZXRfdWludCgmdGV4dHVyZVZhbHVlLCBz
dGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUuZ2V0KCkpLT5pZCgp
KTsKKyAgICAgICAgICAgIG1fc3VyZmFjZUNvbnZlcnRlci5zZXQoZ3N0X3N1cmZhY2VfYnVmZmVy
X2NyZWF0ZV9jb252ZXJ0ZXIoc3VyZmFjZSwgIm9wZW5nbCIsICZ0ZXh0dXJlVmFsdWUpKTsKKyAg
ICAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwobV9zdXJmYWNlQ29udmVydGVyKTsKKyAgICAgICAg
fQogCisgICAgICAgIGdzdF9zdXJmYWNlX2NvbnZlcnRlcl91cGxvYWQobV9zdXJmYWNlQ29udmVy
dGVyLmdldCgpLCBzdXJmYWNlKTsKKworICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG1fYnVmZmVy
KTsKKyAgICAgICAgbV9idWZmZXIgPSAwOworICAgIH0KKyAgICBlbHNlIAorI2VuZGlmCiAgICAg
aWYgKG1fYnVmZmVyKSB7CiAgICAgICAgIC8vIEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RHZXRQ
YWRDYXBzKG1fdmlkZW9TaW5rUGFkLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZiODA4MGYuLjUzNjU4MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM0LDYgKzM0LDggQEAK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzVHlwZXMzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjZGVmaW5lIEdT
VF9VU0VfVU5TVEFCTEVfQVBJICAgIDEKKyNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0c3VyZmFjZWJ1
ZmZlci5oPgogI2VuZGlmCiAKICNpbmNsdWRlIDxnbGliLmg+CkBAIC0yNDQsNiArMjQ2LDcgQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZQogICAgICAgICAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2Nv
bnRleHQ7CiAgICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90ZXh0dXJlOwogICAg
ICAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZT4gbV9wcm9ncmFt
OworICAgICAgICAgICAgR093blB0cjxHc3RTdXJmYWNlQ29udmVydGVyPiBtX3N1cmZhY2VDb252
ZXJ0ZXI7CiAjZW5kaWYKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ4NTIxODQuLjJhNzAzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIu
Y3BwCkBAIC0zOSw2ICszOSwxMCBAQAogI2luY2x1ZGUgPGdzdC92aWRlby9nc3R2aWRlb3Bvb2wu
aD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgI2RlZmlu
ZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSAxCisgICAgI2luY2x1ZGUgPGdzdC92aWRlby9nc3RzdXJm
YWNlYnVmZmVyLmg+CisjZW5kaWYKIAogLy8gQ0FJUk9fRk9STUFUX1JHQjI0IHVzZWQgdG8gcmVu
ZGVyIHRoZSB2aWRlbyBidWZmZXJzIGlzIGxpdHRsZS9iaWcgZW5kaWFuIGRlcGVuZGFudC4KICNp
ZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCkBAIC01NCw3ICs1OCwxMyBAQAogI2Rl
ZmluZSBXRUJLSVRfVklERU9fU0lOS19QQURfQ0FQUyBHU1RfVklERU9fQ0FQU19NQUtFKCJ7IHhS
R0IsIEFSR0IgfSIpCiAjZW5kaWYKICNlbmRpZgotc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRl
IHNfc2lua1RlbXBsYXRlID0gR1NUX1NUQVRJQ19QQURfVEVNUExBVEUoInNpbmsiLCBHU1RfUEFE
X1NJTkssIEdTVF9QQURfQUxXQVlTLCBHU1RfU1RBVElDX0NBUFMoV0VCS0lUX1ZJREVPX1NJTktf
UEFEX0NBUFMpKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyAgICAjZGVmaW5lIFNVUkZBQ0VfQ0FQUyBHU1RfVklERU9fQ0FQU19T
VVJGQUNFICIsIG9wZW5nbCA9IHRydWU7IgorI2Vsc2UKKyAgICAjZGVmaW5lIFNVUkZBQ0VfQ0FQ
UworI2VuZGlmCisKK3N0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzX3NpbmtUZW1wbGF0ZSA9
IEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFKCJzaW5rIiwgR1NUX1BBRF9TSU5LLCBHU1RfUEFEX0FM
V0FZUywgR1NUX1NUQVRJQ19DQVBTKFNVUkZBQ0VfQ0FQUyBXRUJLSVRfVklERU9fU0lOS19QQURf
Q0FQUykpOwogCiAKIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0VmlkZW9TaW5rRGVi
dWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRHU3RyZWFtZXIuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvRmluZEdTdHJlYW1lci5jbWFrZQppbmRleCA1NDJlYmFjLi42NTMxZmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvRmluZEdTdHJlYW1lci5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvRmluZEdTdHJlYW1lci5jbWFrZQpAQCAtMTE1LDYgKzExNSw3IEBAIEZJTkRfR1NUUkVBTUVS
X0NPTVBPTkVOVChHU1RSRUFNRVJfRkZUIGdzdHJlYW1lci1mZnQtMC4xMCBnc3QvZmZ0L2dzdGZm
dC5oIGdzdGZmCiBGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSX0lOVEVSRkFDRVMg
Z3N0cmVhbWVyLWludGVyZmFjZXMtMC4xMCBnc3QvaW50ZXJmYWNlcy9taXhlci5oIGdzdGludGVy
ZmFjZXMtMC4xMCkKIEZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfUEJVVElMUyBn
c3RyZWFtZXItcGJ1dGlscy0wLjEwIGdzdC9wYnV0aWxzL3BidXRpbHMuaCBnc3RwYnV0aWxzLTAu
MTApCiBGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSX1ZJREVPIGdzdHJlYW1lci12
aWRlby0wLjEwIGdzdC92aWRlby92aWRlby5oIGdzdHZpZGVvLTAuMTApCitGSU5EX0dTVFJFQU1F
Ul9DT01QT05FTlQoR1NUUkVBTUVSX0JBU0VWSURFTyBnc3RyZWFtZXItYmFzZXZpZGVvLTAuMTAg
Z3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2RlY29kZXIuaCBnc3RiYXNldmlkZW8tMC4xMCkKIAogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgMy4gUHJv
Y2VzcyB0aGUgQ09NUE9ORU5UUyBwYXNzZWQgdG8gRklORF9QQUNLQUdFCmRpZmYgLS1naXQgYS9j
b25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggN2RkZGZlYy4uMzQ3MDY4MiAxMDA2NDQK
LS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtOTk3LDcgKzk5Nyw3IEBA
IGlmIHRlc3QgIiRlbmFibGVfdmlkZW8iID0gInllcyIgfHwgdGVzdCAiJGVuYWJsZV93ZWJfYXVk
aW8iID0gInllcyI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXBsdWdp
bnMtYmFzZS0kR1NUX0FQSV9WRVJTSU9OID49ICRHU1RSRUFNRVJfUExVR0lOU19CQVNFX1JFUVVJ
UkVEX1ZFUlNJT04KICAgICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXZpZGVvLSRHU1Rf
QVBJX1ZFUlNJT04iOwogICAgaWYgdGVzdCAiJEdTVF9BUElfVkVSU0lPTiIgIT0gIjEuMCI7IHRo
ZW4KLSAgICAgICBnc3RyZWFtZXJfbW9kdWxlcz0iJGdzdHJlYW1lcl9tb2R1bGVzIGdzdHJlYW1l
ci1pbnRlcmZhY2VzLSRHU1RfQVBJX1ZFUlNJT04iOworICAgICAgIGdzdHJlYW1lcl9tb2R1bGVz
PSIkZ3N0cmVhbWVyX21vZHVsZXMgZ3N0cmVhbWVyLWludGVyZmFjZXMtJEdTVF9BUElfVkVSU0lP
TiBnc3RyZWFtZXItYmFzZXZpZGVvLSRHU1RfQVBJX1ZFUlNJT04iOwogICAgZmkKICAgIFBLR19D
SEVDS19NT0RVTEVTKFtHU1RSRUFNRVJdLCBbJGdzdHJlYW1lcl9tb2R1bGVzXSwgW2hhdmVfZ3N0
cmVhbWVyPXllc10pCiAgICBBQ19TVUJTVChbR1NUUkVBTUVSX0NGTEFHU10pCi0tIAoxLjcuOS41
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>172745</attachid>
            <date>2012-11-07 02:35:12 -0800</date>
            <delta_ts>2012-11-14 19:29:17 -0800</delta_ts>
            <desc>temp patch to add eglCreateImageKHR and glEGLImageTargetTexture2DOES, fail to compile</desc>
            <filename>0001-temp-commit-for-eglCreateImageKHR.patch</filename>
            <type>application/octet-stream</type>
            <size>10588</size>
            <attacher name="Zhao, Halley">halley.zhao</attacher>
            
              <data encoding="base64">RnJvbSBiOGJhNmNlMWQ0NTA3NmJmZTU1MzhkNDg5ODQyMmJmMDZlZDNjZjRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIEhhbGxleSA8aGFsbGV5LnpoYW9AaW50ZWwuY29tPgpE
YXRlOiBXZWQsIDcgTm92IDIwMTIgMTc6Mzg6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIXSB0ZW1w
IGNvbW1pdCBmb3IgZWdsQ3JlYXRlSW1hZ2VLSFIKCi0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCAgfCAgICA1ICsrKysrCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAgICB8ICAgIDEgKwogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCAgICAgfCAgICAzICsrKwogLi4u
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgfCAgIDExICsr
KysrKysrKysKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
aCAgIHwgICAyMiArKysrKysrKysrKysrKysrKy0tCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrLS0KIC4u
Li9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgICAgIHwgICAgMyAr
KysKIC4uLi9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwICAgICAgIHwg
ICAgOCArKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDQgZGVsZXRp
b25zKC0pCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAx
MDA3NTUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCiBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTFNoaW1zLmgKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKIG1vZGUgY2hhbmdl
IDEwMDY0NCA9PiAxMDA3NTUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dM
Q29udGV4dEVHTC5oCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAogbW9kZSBj
aGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBhMGJhOTE5Li5mN2JhNmM3Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtOTUx
LDYgKzk1MSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVHcmFwaGljc1N1cmZhY2VzKGNv
bnN0IEludFNpemUmKTsKICNlbmRpZgogCisjaWYgMQorLy8gZ2xFR0xJbWFnZVRhcmdldFRleHR1
cmUyRE9FUyAoR0xlbnVtIHRhcmdldCwgR0xlZ2xJbWFnZU9FUyBpbWFnZSk7CisgICAgdHlwZWRl
ZiB2b2lkKiBHTGVnbEltYWdlT0VTOworICAgIHZvaWQgdGV4dHVyZUVHTEltYWdlVGFyZ2V0MkRP
RVMoR0MzRGVudW0gdGFyZ2V0LCBHTGVnbEltYWdlT0VTIGltYWdlKTsKKyNlbmRpZgogICAgIGlu
dCBtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0OwogICAgIGJvb2wgaXNSZXNvdXJjZVNh
ZmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3Bl
bkdMU2hpbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hp
bXMuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMWJkZTRhOC4uM2Iw
MzkxMQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3Bw
CkBAIC0yMjMsNiArMjIzLDcgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFT
U0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYjRmLCBzdWNjZXNzKTsKICAg
ICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xWZXJ0ZXhBdHRyaWI0ZnYsIHN1Y2Nlc3Mp
OwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYlBvaW50ZXIs
IHN1Y2Nlc3MpOworICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEVHTEltYWdlVGFy
Z2V0VGV4dHVyZTJET0VTLCBzdWNjZXNzKTsKIAogICAgIGlmICghc3VjY2VzcykKICAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZCBub3QgaW5pdGlhbGl6ZSBPcGVuR0wgc2hpbXMiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggM2Q5NjkyNy4uOTg0YTQxYwotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmgKQEAgLTEzOSw2ICsxMzksNyBAQCB0eXBl
ZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4QXR0cmliM2Z2VHlwZSkgKEdMdWludCwgY29u
c3QgR0xmbG9hdCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbFZlcnRleEF0dHJpYjRm
VHlwZSkgKEdMdWludCwgY29uc3QgR0xmbG9hdCwgY29uc3QgR0xmbG9hdCwgY29uc3QgR0xmbG9h
dCwgY29uc3QgR0xmbG9hdCk7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4QXR0
cmliNGZ2VHlwZSkgKEdMdWludCwgY29uc3QgR0xmbG9hdCopOwogdHlwZWRlZiB2b2lkIChHTEFQ
SUVOVFJZICpnbFZlcnRleEF0dHJpYlBvaW50ZXJUeXBlKSAoR0x1aW50LCBHTGludCwgR0xlbnVt
LCBHTGJvb2xlYW4sIEdMc2l6ZWksIGNvbnN0IEdMdm9pZCopOwordHlwZWRlZiB2b2lkIChHTEFQ
SUVOVFJZICpnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTVHlwZSkgKEdMZW51bSAsIEdMZWds
SW1hZ2VPRVMgKTsKIAogI2RlZmluZSBGVU5DVElPTl9UQUJMRV9FTlRSWShGdW5jdGlvbk5hbWUp
IEZ1bmN0aW9uTmFtZSMjVHlwZSBGdW5jdGlvbk5hbWUKIApAQCAtMjM1LDYgKzIzNiw3IEBAIHR5
cGVkZWYgc3RydWN0IF9PcGVuR0xGdW5jdGlvblRhYmxlIHsKICAgICBGVU5DVElPTl9UQUJMRV9F
TlRSWShnbFZlcnRleEF0dHJpYjRmKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRl
eEF0dHJpYjRmdik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xWZXJ0ZXhBdHRyaWJQb2lu
dGVyKTsKKyAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJE
T0VTKTsKIH0gT3BlbkdMRnVuY3Rpb25UYWJsZTsKIAogLy8gV2UgZGlzYWJsZSB0aGUgc2hpbXMg
Zm9yIE9wZW5HTFNoaW1zLmNwcCwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZW0uCkBAIC0zNTAsNiAr
MzUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBn
bFZlcnRleEF0dHJpYjRmICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04o
Z2xWZXJ0ZXhBdHRyaWI0ZikKICNkZWZpbmUgZ2xWZXJ0ZXhBdHRyaWI0ZnYgICAgICAgICAgICAg
ICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsVmVydGV4QXR0cmliNGZ2KQogI2RlZmluZSBn
bFZlcnRleEF0dHJpYlBvaW50ZXIgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04o
Z2xWZXJ0ZXhBdHRyaWJQb2ludGVyKQorI2RlZmluZSBnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJE
T0VTICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUy
RE9FUykKICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQppbmRleCBiOTM4OWI0Li43MjJkNGZjCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yNzEsNiArMjcxLDE3IEBA
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0xDb250ZXh0RUdMOjpwbGF0Zm9ybUNvbnRleHQo
KQogfQogI2VuZGlmCiAKK0VHTEltYWdlS0hSIEdMQ29udGV4dEVHTDo6Y3JlYXRlSW1hZ2VLSFIo
RUdMZW51bSB0YXJnZXQsIEVHTENsaWVudEJ1ZmZlciBidWZmZXIsIGNvbnN0IEVHTGludCAqYXR0
cmliX2xpc3QpCit7CisgICAgLy8gRklYTUUsIGNoZWNrIHRoYXQgRUdMX0RSTV9CVUZGRVJfTUVT
QSBtYXRjaCBpbnRlbCBkcm0gYnVmZmVyICduYW1lJworICAgIHJldHVybiBlZ2xDcmVhdGVJbWFn
ZUtIUiAoc2hhcmVkRUdMRGlzcGxheSgpLCBtX2NvbnRleHQsIEVHTF9EUk1fQlVGRkVSX01FU0Es
IGJ1ZmZlciwgYXR0cmliX2xpc3QpOworfQorCitib29sIEdMQ29udGV4dEVHTDo6ZGVzdHJveUlt
YWdlS0hSKEVHTEltYWdlS0hSIGltYWdlKQoreworICAgIHJldHVybiBlZ2xEZXN0cm95SW1hZ2VL
SFIoc2hhcmVkRUdMRGlzcGxheSgpLCBpbWFnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFVTRShFR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQppbmRleCBjNWQ0YmY3Li5iYWY0MmQ5Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTI1LDYgKzI1LDkgQEAKICNpbmNsdWRl
ICJHTENvbnRleHQuaCIKIAogI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKy8vIEZJWE1FLCBpdCBpcyBy
ZXF1aXJlZCBieSBlZ2xDcmVhdGVJbWFnZUtIUi4gYnV0Li4uLCBpcyBpdCB0aGUgcmlnaHQgd2F5
IHRvIGFkZCBpdD8KKyNkZWZpbmUgRUdMX0VHTEVYVF9QUk9UT1RZUEVTCisjaW5jbHVkZSA8RUdM
L2VnbGV4dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDggKzQ0LDIzIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2FpdE5hdGl2ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBj
YW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigpOwogICAgIHZpcnR1YWwgSW50U2l6ZSBkZWZh
dWx0RnJhbWVCdWZmZXJTaXplKCk7Ci0KLQorICAgIC8qCisgICAgICAgIEVHTEltYWdlS0hSIGVn
bENyZWF0ZUltYWdlS0hSKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdM
RGlzcGxheSBkcHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xDb250
ZXh0IGN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTGVudW0gdGFy
Z2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMQ2xpZW50QnVmZmVy
IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVHTGlu
dCAqYXR0cmliX2xpc3QpCisgICAgKi8KKyAgICB2aXJ0dWFsIEVHTEltYWdlS0hSIGNyZWF0ZUlt
YWdlS0hSKEVHTGVudW0gdGFyZ2V0LCBFR0xDbGllbnRCdWZmZXIgYnVmZmVyLCBjb25zdCBFR0xp
bnQgKmF0dHJpYl9saXN0ID0gTlVMTCk7CisKKyAgICAvKgorICAgICAgICBFR0xCb29sZWFuIGVn
bERlc3Ryb3lJbWFnZUtIUigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdM
RGlzcGxheSBkcHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTEltYWdl
S0hSIGltYWdlKQorICAgICovCisgICAgdmlydHVhbCBib29sIGRlc3Ryb3lJbWFnZUtIUihFR0xJ
bWFnZUtIUiBpbWFnZSk7CisgICAgCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHZpcnR1YWwgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDZiOTVhNWMuLjdkMWM4OGUKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU5LDYgKzU5LDExIEBACiAjaW5j
bHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjZW5kaWYKIAorI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorLy8gRklY
TUUgCisvLyAjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjZW5kaWYKKwogLy8gR3N0UGxheUZs
YWdzIGZsYWdzIGZyb20gcGxheWJpbjIuIEl0IGlzIHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVyIHRv
CiAvLyBub3QgcHVibGljbHkgZXhwb3NlIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMuIFRoYXQncyB3
aHkgdGhpcwogLy8gR3N0UGxheUZsYWdzIGVudW0gaGFzIGJlZW4gY29waWVkIGhlcmUuCkBAIC0x
NzY2LDkgKzE3NzEsMjMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXAKIAogICAgICAgICBpZiAo
bV90ZXh0dXJlLT5zaXplKCkgIT0gc2l6ZSkgewogICAgICAgICAgICAgbV90ZXh0dXJlLT5yZXNl
dChzaXplKTsKKyAgICAgICAgI2lmICFVU0UoRUdMKQogICAgICAgICAgICAgbV9zdXJmYWNlQ29u
dmVydGVyLmNsZWFyKCk7CisgICAgICAgICNlbmRpZgogICAgICAgICB9Ci0KKyAgICAjaWYgVVNF
KEVHTCkKKyAgICAgICAgVGV4dHVyZU1hcHBlckdMKiB0ZXh0dXJlTWFwcGVyR0wgPSBzdGF0aWNf
Y2FzdDxUZXh0dXJlTWFwcGVyR0wqPih0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQzRCA9IHRleHR1cmVNYXBwZXJHTC0+Z3JhcGhpY3NDb250ZXh0M0Qo
KTsKKyAgICAgICAgLy8gRklYTUUsIGhvdyB0byBnZXQgZWdsQ29udGV4dD8KKyAgICAgICAgR0xD
b250ZXh0KiBnbENvbnRleHQgPSBHTENvbnRleHQ6OmdldEN1cnJlbnQoKTsKKyAgICAgICAgR0xD
b250ZXh0RUdMKiBnbENvbnRleHRFR0wgPSAoR0xDb250ZXh0RUdMKikgZ2xDb250ZXh0OyAKKyAg
ICAgICAgRUdMQ2xpZW50QnVmZmVyIGVnbF9idWZmZXIgPSBzdXJmYWNlLT5jcmVhdGVfZWdsX2J1
ZmZlcihzdXJmYWNlKTsKKyAgICAgICAgR0xlZ2xJbWFnZU9FUyBlZ2xfaW1hZ2UgPSBnbENvbnRl
eHRFR0wtPmNyZWF0ZUltYWdlS0hSKEdyYXBoaWNzQ29udGV4dDNEOjpHTF9URVhUVVJFXzJELCBl
Z2xfYnVmZmVyLCBOVUxMKTsKKyAgICAgICAgICAgIAorICAgICAgICBjb250ZXh0M0QtPmFjdGl2
ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKKyAgICAgICAgLy8gY29udGV4
dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgc3RhdGljX2Nh
c3Q8Y29uc3QgQml0bWFwVGV4dHVyZUdMKj4oc291cmNlLmdldCgpKS0+aWQoKSk7CisgICAgICAg
IGNvbnRleHQzRC0+dGV4dHVyZUVHTEltYWdlVGFyZ2V0MkRPRVMoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIGVnbF9pbWFnZSkgCisgICAgI2Vsc2UgCiAgICAgICAgIGlmICghbV9zdXJm
YWNlQ29udmVydGVyLmdldCgpKSB7CiAgICAgICAgICAgICBHVmFsdWUgdGV4dHVyZVZhbHVlID0g
ezB9OwogICAgICAgICAgICAgZ192YWx1ZV9pbml0KCZ0ZXh0dXJlVmFsdWUsIEdfVFlQRV9VSU5U
KTsKQEAgLTE3NzgsNyArMTc5Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwCiAgICAgICAg
IH0KIAogICAgICAgICBnc3Rfc3VyZmFjZV9jb252ZXJ0ZXJfdXBsb2FkKG1fc3VyZmFjZUNvbnZl
cnRlci5nZXQoKSwgc3VyZmFjZSk7Ci0KKyAgICAjZW5kaWYKICAgICAgICAgZ3N0X2J1ZmZlcl91
bnJlZihtX2J1ZmZlcik7CiAgICAgICAgIG1fYnVmZmVyID0gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCA1MzY1ODM3Li44ZGRiNzNiCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTM0LDYgKzM0LDkgQEAKICNpbmNsdWRlICJUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisvLyAjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisv
LyBGSVhNRSAKKy8vICNpbmNsdWRlIDxHTENvbnRleHRFR0wuaD4KICNkZWZpbmUgR1NUX1VTRV9V
TlNUQUJMRV9BUEkgICAgMQogI2luY2x1ZGUgPGdzdC92aWRlby9nc3RzdXJmYWNlYnVmZmVyLmg+
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3Bw
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZGI5ZmU0My4uMDg4YmE2Zgot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE0MzUsNiAr
MTQzNSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJERGlyZWN0KEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudQogICAgIDo6Z2xUZXhJbWFnZTJEKHRh
cmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1h
dCwgdHlwZSwgcGl4ZWxzKTsKIH0KIAorI2lmIDAKKy8vIGl0IGlzIGRvbmUgaW4gaW5pdGlhbGl6
ZU9wZW5HTFNoaW1zKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnRleHR1cmVFR0xJbWFnZVRh
cmdldDJET0VTKEdDM0RlbnVtIHRhcmdldCwgR0xlZ2xJbWFnZU9FUyBpbWFnZSkgCit7CisgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgOjpnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
KEdyYXBoaWNzQ29udGV4dDNEOjpHTF9URVhUVVJFXzJELCBpbWFnZSk7Cit9CisjZW5kaWYKIH0K
IAogI2VuZGlmIC8vIFVTRSgzRF9HUkFQSElDUykKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174322</attachid>
            <date>2012-11-14 19:29:17 -0800</date>
            <delta_ts>2012-12-03 23:29:25 -0800</delta_ts>
            <desc>add eglCreateImage/glEGLImageTargetTexture2DOES to webkit</desc>
            <filename>0001-add-eglCreateImage-glEGLImageTargetTexture2DOES.patch</filename>
            <type>text/plain</type>
            <size>12753</size>
            <attacher name="Zhao, Halley">halley.zhao</attacher>
            
              <data encoding="base64">RnJvbSBkZWFjOWM3YTg4ZDgwZjBjM2E3MWE4MzRlNWI5OGJiOWE3Yzc3YWZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIEhhbGxleSA8aGFsbGV5LnpoYW9AaW50ZWwuY29tPgpE
YXRlOiBXZWQsIDE0IE5vdiAyMDEyIDE3OjU2OjE1ICswODAwClN1YmplY3Q6IFtQQVRDSF0gYWRk
IGVnbENyZWF0ZUltYWdlL2dsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMKCi0tLQogLi4uL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCAgfCAgICA2ICsrCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAgICB8ICAgIDEg
KwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCAgICAgfCAg
ICAzICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3Bw
IHwgICAxMSArKysrCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmggICB8ICAgMjIgKysrKysrLQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwICAgICAgfCAgIDY0ICsrKysrKysrKysrKysrKysrKystCiAuLi4vb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAgICAgICB8ICAgIDggKysrCiA3IGZp
bGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogbW9kZSBjaGFu
Z2UgMTAwNjQ0ID0+IDEwMDc1NSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAogbW9kZSBjaGFuZ2UgMTAwNjQ0
ID0+IDEwMDc1NSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5o
CiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAogbW9k
ZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAogbW9kZSBjaGFuZ2Ug
MTAwNjQ0ID0+IDEwMDc1NSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBhMGJhOTE5Li44MjRmODYwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNTM2LDYgKzUz
NiwxMiBAQCBwdWJsaWM6CiAgICAgLy8gQnkgZGVmYXVsdCwgYWxpZ25tZW50IGlzIDQsIHRoZSBP
cGVuR0wgZGVmYXVsdCBzZXR0aW5nLgogICAgIGJvb2wgdGV4SW1hZ2UyRFJlc291cmNlU2FmZShH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnQgYWxpZ25tZW50ID0gNCk7CiAKKyNpZiAx
CisgICAgLy8gZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyAoR0xlbnVtIHRhcmdldCwgR0xl
Z2xJbWFnZU9FUyBpbWFnZSk7CisgICAgICAgIHR5cGVkZWYgdm9pZCogR0xlZ2xJbWFnZU9FUzsK
KyAgICAgICAgdm9pZCB0ZXh0dXJlRUdMSW1hZ2VUYXJnZXQyRE9FUyhHQzNEZW51bSB0YXJnZXQs
IEdMZWdsSW1hZ2VPRVMgaW1hZ2UpOworI2VuZGlmCisKICAgICBib29sIGlzR0xFUzJDb21wbGlh
bnQoKSBjb25zdDsKIAogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9k
ZSAxMDA3NTUKaW5kZXggMWJkZTRhOC4uM2IwMzkxMQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCkBAIC0yMjMsNiArMjIzLDcgQEAgYm9vbCBpbml0
aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFZl
cnRleEF0dHJpYjRmLCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlko
Z2xWZXJ0ZXhBdHRyaWI0ZnYsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9F
TlRSWShnbFZlcnRleEF0dHJpYlBvaW50ZXIsIHN1Y2Nlc3MpOworICAgIEFTU0lHTl9GVU5DVElP
Tl9UQUJMRV9FTlRSWShnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTLCBzdWNjZXNzKTsKIAog
ICAgIGlmICghc3VjY2VzcykKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgaW5pdGlhbGl6
ZSBPcGVuR0wgc2hpbXMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTFNoaW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggM2Q5Njky
Ny4uOTg0YTQxYwotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1z
LmgKQEAgLTEzOSw2ICsxMzksNyBAQCB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4
QXR0cmliM2Z2VHlwZSkgKEdMdWludCwgY29uc3QgR0xmbG9hdCopOwogdHlwZWRlZiB2b2lkIChH
TEFQSUVOVFJZICpnbFZlcnRleEF0dHJpYjRmVHlwZSkgKEdMdWludCwgY29uc3QgR0xmbG9hdCwg
Y29uc3QgR0xmbG9hdCwgY29uc3QgR0xmbG9hdCwgY29uc3QgR0xmbG9hdCk7CiB0eXBlZGVmIHZv
aWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4QXR0cmliNGZ2VHlwZSkgKEdMdWludCwgY29uc3QgR0xm
bG9hdCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbFZlcnRleEF0dHJpYlBvaW50ZXJU
eXBlKSAoR0x1aW50LCBHTGludCwgR0xlbnVtLCBHTGJvb2xlYW4sIEdMc2l6ZWksIGNvbnN0IEdM
dm9pZCopOwordHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEVHTEltYWdlVGFyZ2V0VGV4dHVy
ZTJET0VTVHlwZSkgKEdMZW51bSAsIEdMZWdsSW1hZ2VPRVMgKTsKIAogI2RlZmluZSBGVU5DVElP
Tl9UQUJMRV9FTlRSWShGdW5jdGlvbk5hbWUpIEZ1bmN0aW9uTmFtZSMjVHlwZSBGdW5jdGlvbk5h
bWUKIApAQCAtMjM1LDYgKzIzNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9PcGVuR0xGdW5jdGlvblRh
YmxlIHsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYjRmKTsKICAgICBG
VU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYjRmdik7CiAgICAgRlVOQ1RJT05fVEFC
TEVfRU5UUlkoZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKTsKKyAgICBGVU5DVElPTl9UQUJMRV9FTlRS
WShnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKTsKIH0gT3BlbkdMRnVuY3Rpb25UYWJsZTsK
IAogLy8gV2UgZGlzYWJsZSB0aGUgc2hpbXMgZm9yIE9wZW5HTFNoaW1zLmNwcCwgc28gdGhhdCB3
ZSBjYW4gc2V0IHRoZW0uCkBAIC0zNTAsNiArMzUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5H
TEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbFZlcnRleEF0dHJpYjRmICAgICAgICAgICAgICAg
ICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xWZXJ0ZXhBdHRyaWI0ZikKICNkZWZpbmUgZ2xW
ZXJ0ZXhBdHRyaWI0ZnYgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGds
VmVydGV4QXR0cmliNGZ2KQogI2RlZmluZSBnbFZlcnRleEF0dHJpYlBvaW50ZXIgICAgICAgICAg
ICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKQorI2RlZmlu
ZSBnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJ
T04oZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUykKICNlbmRpZgogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5j
cHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBiOTM4OWI0Li41YjQzMDVm
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuY3BwCkBAIC0yNzEsNiArMjcxLDE3IEBAIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0xD
b250ZXh0RUdMOjpwbGF0Zm9ybUNvbnRleHQoKQogfQogI2VuZGlmCiAKK0VHTEltYWdlS0hSIEdM
Q29udGV4dEVHTDo6Y3JlYXRlSW1hZ2VLSFIoRUdMZW51bSB0YXJnZXQsIEVHTENsaWVudEJ1ZmZl
ciBidWZmZXIsIGNvbnN0IEVHTGludCAqYXR0cmliX2xpc3QpCit7CisgICAgLy8gRklYTUUsIGNo
ZWNrIHRoYXQgRUdMX0RSTV9CVUZGRVJfTUVTQSBtYXRjaCBpbnRlbCBkcm0gYnVmZmVyICduYW1l
JworICAgIHJldHVybiBlZ2xDcmVhdGVJbWFnZUtIUiAoc2hhcmVkRUdMRGlzcGxheSgpLCBtX2Nv
bnRleHQsIHRhcmdldCwgYnVmZmVyLCBhdHRyaWJfbGlzdCk7Cit9CisKK2Jvb2wgR0xDb250ZXh0
RUdMOjpkZXN0cm95SW1hZ2VLSFIoRUdMSW1hZ2VLSFIgaW1hZ2UpCit7CisgICAgcmV0dXJuIGVn
bERlc3Ryb3lJbWFnZUtIUihzaGFyZWRFR0xEaXNwbGF5KCksIGltYWdlKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKEVHTCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGM1ZDRiZjcuLjBiOGEwZWYKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMjUsNiArMjUs
OSBAQAogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8RUdML2VnbC5oPgorLy8g
RklYTUUsIEVHTF9FR0xFWFRfUFJPVE9UWVBFUy4gaXQgaXMgcmVxdWlyZWQgYnkgZWdsQ3JlYXRl
SW1hZ2VLSFIuIGJ1dC4uLiwgaXMgaXQgdGhlIHJpZ2h0IHdheSB0byBhZGQgaXQ/CisjZGVmaW5l
IEVHTF9FR0xFWFRfUFJPVE9UWVBFUworI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00MSw4ICs0NCwyMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHdhaXROYXRpdmUoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuUmVuZGVyVG9EZWZhdWx0RnJh
bWVidWZmZXIoKTsKICAgICB2aXJ0dWFsIEludFNpemUgZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgp
OwotCi0KKyAgICAvKgorICAgICAgICBFR0xJbWFnZUtIUiBlZ2xDcmVhdGVJbWFnZUtIUigKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTERpc3BsYXkgZHB5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMQ29udGV4dCBjdHgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xlbnVtIHRhcmdldCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVHTENsaWVudEJ1ZmZlciBidWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFR0xpbnQgKmF0dHJpYl9saXN0KQorICAg
ICovCisgICAgdmlydHVhbCBFR0xJbWFnZUtIUiBjcmVhdGVJbWFnZUtIUihFR0xlbnVtIHRhcmdl
dCwgRUdMQ2xpZW50QnVmZmVyIGJ1ZmZlciwgY29uc3QgRUdMaW50ICphdHRyaWJfbGlzdCA9IE5V
TEwpOworCisgICAgLyoKKyAgICAgICAgRUdMQm9vbGVhbiBlZ2xEZXN0cm95SW1hZ2VLSFIoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTERpc3BsYXkgZHB5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xJbWFnZUtIUiBpbWFnZSkKKyAgICAqLwor
ICAgIHZpcnR1YWwgYm9vbCBkZXN0cm95SW1hZ2VLSFIoRUdMSW1hZ2VLSFIgaW1hZ2UpOworICAg
IAogI2lmIEVOQUJMRShXRUJHTCkKICAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QgcGxhdGZvcm1Db250ZXh0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpp
bmRleCA2Yjk1YTVjLi44Y2U1OWE4Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCkBAIC01OSw2ICs1OSwyMiBAQAogI2luY2x1ZGUgPGdzdC9pbnRlcmZhY2Vz
L3N0cmVhbXZvbHVtZS5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKy8vIEZJWE1FIAorI2luY2x1ZGUgIkdMQ29u
dGV4dEVHTC5oIgorI3VuZGVmIE5vbmUKKworI2lmIFVTRShPUEVOR0xfRVNfMikKKyNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCisjZWxpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSA8T3BlbkdM
L2dsLmg+CisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
UVQpCisjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8aW9zdHJl
YW0+CisjZW5kaWYKKwogLy8gR3N0UGxheUZsYWdzIGZsYWdzIGZyb20gcGxheWJpbjIuIEl0IGlz
IHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVyIHRvCiAvLyBub3QgcHVibGljbHkgZXhwb3NlIGVsZW1l
bnQtc3BlY2lmaWMgZW51bXMuIFRoYXQncyB3aHkgdGhpcwogLy8gR3N0UGxheUZsYWdzIGVudW0g
aGFzIGJlZW4gY29waWVkIGhlcmUuCkBAIC0xNzUwLDkgKzE3NjYsMTQgQEAgUGxhdGZvcm1MYXll
ciogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3Qgewog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgQml0bWFw
VGV4dHVyZSogbWFzaykgewogICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2Rl
KCkgIT0gVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSkKICAgICAgICAgcmV0dXJuOworCisgICAg
R0xDb250ZXh0RUdMKiBnbENvbnRleHRFR0wgPSBOVUxMOworICAgIEVHTEltYWdlS0hSIGVnbF9p
bWFnZSA9IEVHTF9OT19JTUFHRV9LSFI7CisKKwogI2lmIDEKICAgICBpZiAobV9idWZmZXIgJiYg
R1NUX0lTX1NVUkZBQ0VfQlVGRkVSKG1fYnVmZmVyKSkgewotICAgICAgICBHc3RTdXJmYWNlQnVm
ZmVyKiBzdXJmYWNlID0gR1NUX1NVUkZBQ0VfQlVGRkVSKG1fYnVmZmVyKTsKKyAgICAgICAgR3N0
U3VyZmFjZUJ1ZmZlciAqc3VyZmFjZSA9IEdTVF9TVVJGQUNFX0JVRkZFUihtX2J1ZmZlcik7CiAK
ICAgICAgICAgIEdzdENhcHMqIGNhcHMgPSBHU1RfQlVGRkVSX0NBUFMobV9idWZmZXIpOwogICAg
ICAgICAgR3N0VmlkZW9Gb3JtYXQgZm9ybWF0OwpAQCAtMTc2NCwxMSArMTc4NSw0MyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcAogICAgICAgICAgICAgbV90ZXh0dXJlID0gdGV4dHVyZU1hcHBl
ci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKICAgICAgICAgfQogCisjZGVmaW5lIEZP
UkNFX1VTRV9FR0wgICAxCiAgICAgICAgIGlmIChtX3RleHR1cmUtPnNpemUoKSAhPSBzaXplKSB7
CiAgICAgICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHNpemUpOworICAgICAgICAvLyAjaWYgIVVT
RShFR0wpCisgICAgICAgICNpZiAhRk9SQ0VfVVNFX0VHTAogICAgICAgICAgICAgbV9zdXJmYWNl
Q29udmVydGVyLmNsZWFyKCk7CisgICAgICAgICNlbmRpZgogICAgICAgICB9Ci0KKyAgICAvLyAj
aWYgVVNFKEVHTCkKKyAgICAjaWYgRk9SQ0VfVVNFX0VHTAorICAgICAgICBUZXh0dXJlTWFwcGVy
R0wqIHRleHR1cmVNYXBwZXJHTCA9IHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KHRleHR1
cmVNYXBwZXIpOworICAgICAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEID0gdGV4dHVy
ZU1hcHBlckdMLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgICAgICBHTENvbnRleHQqIGdsQ29u
dGV4dCA9IEdMQ29udGV4dDo6Z2V0Q3VycmVudCgpOworICAgICAgICBnbENvbnRleHRFR0wgPSAo
R0xDb250ZXh0RUdMKilnbENvbnRleHQ7IAorCisgICAgICAgIC8vIEZJWE1FLCBFR0xfRFJNX0JV
RkZFUl9TVFJJREVfTUVTQS9FR0xfRFJNX0JVRkZFUl9GT1JNQVRfTUVTQSwgZ2V0IHRoZW0gZnJv
bSBnc3QvZHJpdmVyCisgICAgICAgIGludCByZXQgPSAwOworICAgICAgICBpbnQgZWdsX2ltYWdl
X3dpZHRoID0gMCwgZWdsX2ltYWdlX2hlaWdodCA9IDAsIGVnbF9pbWFnZV9waXRjaCA9IDA7CisJ
ICAgIEVHTENsaWVudEJ1ZmZlciBlZ2xfYnVmZmVyID0gMDsKKyAgICAgICAgcmV0IHw9IGdzdF9z
dXJmYWNlX2J1ZmZlcl9nZXRfbWV0YV9kYXRhKHN1cmZhY2UsIEdzdFN1cmZhY2VCdWZmZXJXaWR0
aCwgJmVnbF9pbWFnZV93aWR0aCk7CisgICAgICAgIHJldCB8PSBnc3Rfc3VyZmFjZV9idWZmZXJf
Z2V0X21ldGFfZGF0YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVySGVpZ2h0LCAmZWdsX2ltYWdl
X2hlaWdodCk7CisgICAgICAgIHJldCB8PSBnc3Rfc3VyZmFjZV9idWZmZXJfZ2V0X21ldGFfZGF0
YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyUGl0Y2gwLCAmZWdsX2ltYWdlX3BpdGNoKTsKKyAg
ICAgICAgcmV0IHw9IGdzdF9zdXJmYWNlX2J1ZmZlcl9nZXRfbWV0YV9kYXRhKHN1cmZhY2UsIEdz
dFN1cmZhY2VCdWZmZXJFR0xDbGllbnRCdWZmZXIsICZlZ2xfYnVmZmVyKTsKKyAgICAgICAgLy8g
cmV0IHw9IGdzdF9zdXJmYWNlX2J1ZmZlcl9nZXRfbWV0YV9kYXRhKHN1cmZhY2UsIEdzdFN1cmZh
Y2VCdWZmZXJGb3JtYXQsICZlZ2xfaW1hZ2VfZm9ybWF0KTsKKyAgICAgICAgLy8gcmV0IHw9IGdz
dF9zdXJmYWNlX2J1ZmZlcl9nZXRfbWV0YV9kYXRhKHN1cmZhY2UsIEdzdFN1cmZhY2VCdWZmZXJF
R0xCdWZmZXJUYXJnZXQsICZlZ2xfaW1hZ2VfdGFyZ2V0KTsKKyAgICAgICAgc3RkOjpjb3V0IDw8
ICJlZ2xfYnVmZmVyOiAiIDw8ICh2b2lkKikgZWdsX2J1ZmZlciA8PCAiZWdsX2ltYWdlX3dpZHRo
OiAiIDw8IGVnbF9pbWFnZV93aWR0aCA8PCAiICBlZ2xfaW1hZ2VfaGVpZ2h0OiAiIDw8IGVnbF9p
bWFnZV9oZWlnaHQgPDwgIiAgZWdsX2ltYWdlX3BpdGNoOiAiIDw8IGVnbF9pbWFnZV9waXRjaCA8
PCBzdGQ6OmVuZGw7CisKKyAgICAgICAgRUdMaW50IGF0dHJpYnNbXSA9IHsgRUdMX1dJRFRILCBl
Z2xfaW1hZ2Vfd2lkdGgsIEVHTF9IRUlHSFQsIGVnbF9pbWFnZV9oZWlnaHQsIAorICAgICAgICAg
ICAgICAgIEVHTF9EUk1fQlVGRkVSX1NUUklERV9NRVNBLCBlZ2xfaW1hZ2VfcGl0Y2ggKiA0LCAK
KyAgICAgICAgICAgICAgICBFR0xfRFJNX0JVRkZFUl9GT1JNQVRfTUVTQSwgRUdMX0RSTV9CVUZG
RVJfRk9STUFUX0FSR0IzMl9NRVNBLCAKKyAgICAgICAgICAgICAgICBFR0xfTk9ORX07IAorICAg
ICAgICBlZ2xfaW1hZ2UgPSBnbENvbnRleHRFR0wtPmNyZWF0ZUltYWdlS0hSKEVHTF9EUk1fQlVG
RkVSX01FU0EsIGVnbF9idWZmZXIsIGF0dHJpYnMpOworICAgICAgICBzdGQ6OmNvdXQgPDwgImVn
bF9pbWFnZTogIiA8PCAodm9pZCopIGVnbF9pbWFnZSA8PCBzdGQ6OmVuZGw7CisgICAgICAgICAg
ICAKKyAgICAgICAgY29udGV4dDNELT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRV8yRCwgc3RhdGljX2Nhc3Q8Y29uc3QgQml0bWFwVGV4dHVyZUdMKj4obV90ZXh0dXJlLmdl
dCgpKS0+aWQoKSk7CisgICAgICAgIGNvbnRleHQzRC0+dGV4dHVyZUVHTEltYWdlVGFyZ2V0MkRP
RVMoR0xfVEVYVFVSRV8yRCwgZWdsX2ltYWdlKTsKKyAgICAjZWxzZSAKICAgICAgICAgaWYgKCFt
X3N1cmZhY2VDb252ZXJ0ZXIuZ2V0KCkpIHsKICAgICAgICAgICAgIEdWYWx1ZSB0ZXh0dXJlVmFs
dWUgPSB7MH07CiAgICAgICAgICAgICBnX3ZhbHVlX2luaXQoJnRleHR1cmVWYWx1ZSwgR19UWVBF
X1VJTlQpOwpAQCAtMTc3OCw3ICsxODMxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXAKICAg
ICAgICAgfQogCiAgICAgICAgIGdzdF9zdXJmYWNlX2NvbnZlcnRlcl91cGxvYWQobV9zdXJmYWNl
Q29udmVydGVyLmdldCgpLCBzdXJmYWNlKTsKLQorICAgICNlbmRpZgogICAgICAgICBnc3RfYnVm
ZmVyX3VucmVmKG1fYnVmZmVyKTsKICAgICAgICAgbV9idWZmZXIgPSAwOwogICAgIH0KQEAgLTE4
MzQsNiArMTg4NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcAogICAgICAgICB0ZXh0dXJl
TWFwcGVyLT5kcmF3VGV4dHVyZSgqbV90ZXh0dXJlLmdldCgpLCB0YXJnZXRSZWN0LCBtYXRyaXgs
IG9wYWNpdHksIG1hc2spOwogICAgIH0KIAorICAgICNpZiBGT1JDRV9VU0VfRUdMCisgICAgaWYg
KG1fYnVmZmVyICYmIEdTVF9JU19TVVJGQUNFX0JVRkZFUihtX2J1ZmZlcikpIHsKKyAgICAgICAg
Z2xDb250ZXh0RUdMLT5kZXN0cm95SW1hZ2VLSFIoZWdsX2ltYWdlKTsKKyAgICB9CisgICAgI2Vu
ZGlmCiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg
ZGI5ZmU0My4uOGZlNGYzYgotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1v
bi5jcHAKQEAgLTE0MzUsNiArMTQzNSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJ
bWFnZTJERGlyZWN0KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudQogICAg
IDo6Z2xUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKTsKIH0KIAorI2lmIDEKKy8vIGl0IGlz
IGRvbmUgaW4gaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnRleHR1cmVFR0xJbWFnZVRhcmdldDJET0VTKEdDM0RlbnVtIHRhcmdldCwgR0xlZ2xJbWFnZU9F
UyBpbWFnZSkgCit7CisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgOjpnbEVHTEltYWdl
VGFyZ2V0VGV4dHVyZTJET0VTKEdMX1RFWFRVUkVfMkQsIGltYWdlKTsKK30KKyNlbmRpZgogfQog
CiAjZW5kaWYgLy8gVVNFKDNEX0dSQVBISUNTKQotLSAKMS43LjkuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177424</attachid>
            <date>2012-12-03 23:28:33 -0800</date>
            <delta_ts>2012-12-03 23:28:33 -0800</delta_ts>
            <desc>Bind texture from hw video surface which exports EGLClientBuffer information</desc>
            <filename>0001-get-EGL-buffer-information-from-GstSurfaceBuffer.patch</filename>
            <type>text/plain</type>
            <size>19439</size>
            <attacher name="Zhao, Halley">halley.zhao</attacher>
            
              <data encoding="base64">RnJvbSA0ZDU0ZDM0MjU5ODVhMmMxNWMyYjFiZWY1OTgwODg2OGJhNThkYTA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIEhhbGxleSA8aGFsbGV5LnpoYW9AaW50ZWwuY29tPgpE
YXRlOiBGcmksIDIgTm92IDIwMTIgMTc6Mzg6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIXSBnZXQg
RUdMIGJ1ZmZlciBpbmZvcm1hdGlvbiBmcm9tIEdzdFN1cmZhY2VCdWZmZXIgICAgIHRoZW4KIGJp
bmQgaXQgdG8gdGV4dHVyZSBmb3IgcmVuZGVyaW5nCgotLS0KIC4uLi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggIHwgICAgNiArKwogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwICAgfCAgICAxICsKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmggICAgIHwgICAgMyArCiAuLi4vV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCB8ICAgMTAgKysKIC4u
Li9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCAgIHwgICAyMiAr
KystCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAgICAgICAgICB8
ICAgMjIgKysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
ICAgICAgfCAgMTE0ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICAgIDIgKwogLi4uL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwICAgICAgfCAgIDEyICsrLQogLi4uL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oICAgICAgICAgfCAgICAyICsKIC4uLi9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwICAgICAgIHwgICAgOCArKwogU291
cmNlL2NtYWtlL0ZpbmRHU3RyZWFtZXIuY21ha2UgICAgICAgICAgICAgICAgICAgfCAgICAxICsK
IGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
MiArLQogMTMgZmlsZXMgY2hhbmdlZCwgMjAxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p
CiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCiBtb2RlIGNo
YW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09w
ZW5HTFNoaW1zLmgKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKIG1vZGUgY2hhbmdlIDEwMDY0
NCA9PiAxMDA3NTUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5oCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCiBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGEwYmE5MTkuLjgyNGY4NjAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBA
IC01MzYsNiArNTM2LDEyIEBAIHB1YmxpYzoKICAgICAvLyBCeSBkZWZhdWx0LCBhbGlnbm1lbnQg
aXMgNCwgdGhlIE9wZW5HTCBkZWZhdWx0IHNldHRpbmcuCiAgICAgYm9vbCB0ZXhJbWFnZTJEUmVz
b3VyY2VTYWZlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgR0MzRGludCBhbGlnbm1lbnQgPSA0
KTsKIAorI2lmIDEKKyAgICAvLyBnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIChHTGVudW0g
dGFyZ2V0LCBHTGVnbEltYWdlT0VTIGltYWdlKTsKKyAgICAgICAgdHlwZWRlZiB2b2lkKiBHTGVn
bEltYWdlT0VTOworICAgICAgICB2b2lkIHRleHR1cmVFR0xJbWFnZVRhcmdldDJET0VTKEdDM0Rl
bnVtIHRhcmdldCwgR0xlZ2xJbWFnZU9FUyBpbWFnZSk7CisjZW5kaWYKKwogICAgIGJvb2wgaXNH
TEVTMkNvbXBsaWFudCgpIGNvbnN0OwogCiAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKb2xkIG1vZGUgMTAw
NjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAxYmRlNGE4Li4zYjAzOTExCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKQEAgLTIyMyw2ICsyMjMsNyBA
QCBib29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxF
X0VOVFJZKGdsVmVydGV4QXR0cmliNGYsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9U
QUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYjRmdiwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNU
SU9OX1RBQkxFX0VOVFJZKGdsVmVydGV4QXR0cmliUG9pbnRlciwgc3VjY2Vzcyk7CisgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMsIHN1
Y2Nlc3MpOwogCiAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5v
dCBpbml0aWFsaXplIE9wZW5HTCBzaGltcyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL09wZW5HTFNoaW1zLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpp
bmRleCAzZDk2OTI3Li45ODRhNDFjCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTFNoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMU2hpbXMuaApAQCAtMTM5LDYgKzEzOSw3IEBAIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRS
WSAqZ2xWZXJ0ZXhBdHRyaWIzZnZUeXBlKSAoR0x1aW50LCBjb25zdCBHTGZsb2F0Kik7CiB0eXBl
ZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4QXR0cmliNGZUeXBlKSAoR0x1aW50LCBjb25z
dCBHTGZsb2F0LCBjb25zdCBHTGZsb2F0LCBjb25zdCBHTGZsb2F0LCBjb25zdCBHTGZsb2F0KTsK
IHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xWZXJ0ZXhBdHRyaWI0ZnZUeXBlKSAoR0x1aW50
LCBjb25zdCBHTGZsb2F0Kik7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsVmVydGV4QXR0
cmliUG9pbnRlclR5cGUpIChHTHVpbnQsIEdMaW50LCBHTGVudW0sIEdMYm9vbGVhbiwgR0xzaXpl
aSwgY29uc3QgR0x2b2lkKik7Cit0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsRUdMSW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVNUeXBlKSAoR0xlbnVtICwgR0xlZ2xJbWFnZU9FUyApOwogCiAjZGVm
aW5lIEZVTkNUSU9OX1RBQkxFX0VOVFJZKEZ1bmN0aW9uTmFtZSkgRnVuY3Rpb25OYW1lIyNUeXBl
IEZ1bmN0aW9uTmFtZQogCkBAIC0yMzUsNiArMjM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5H
TEZ1bmN0aW9uVGFibGUgewogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsVmVydGV4QXR0cmli
NGYpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsVmVydGV4QXR0cmliNGZ2KTsKICAgICBG
VU5DVElPTl9UQUJMRV9FTlRSWShnbFZlcnRleEF0dHJpYlBvaW50ZXIpOworICAgIEZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMpOwogfSBPcGVuR0xGdW5j
dGlvblRhYmxlOwogCiAvLyBXZSBkaXNhYmxlIHRoZSBzaGltcyBmb3IgT3BlbkdMU2hpbXMuY3Bw
LCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlbS4KQEAgLTM1MCw2ICszNTIsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5lIGdsVmVydGV4QXR0cmliNGYgICAg
ICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbFZlcnRleEF0dHJpYjRmKQog
I2RlZmluZSBnbFZlcnRleEF0dHJpYjRmdiAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xf
RlVOQ1RJT04oZ2xWZXJ0ZXhBdHRyaWI0ZnYpCiAjZGVmaW5lIGdsVmVydGV4QXR0cmliUG9pbnRl
ciAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbFZlcnRleEF0dHJpYlBvaW50
ZXIpCisjZGVmaW5lIGdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMgICAgICAgICAgIExPT0tV
UF9HTF9GVU5DVElPTihnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKQogI2VuZGlmCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dM
Q29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGI5Mzg5
YjQuLmQ1Y2EyMzMKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dM
Q29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWds
L0dMQ29udGV4dEVHTC5jcHAKQEAgLTI3MSw2ICsyNzEsMTYgQEAgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCBHTENvbnRleHRFR0w6OnBsYXRmb3JtQ29udGV4dCgpCiB9CiAjZW5kaWYKIAorRUdM
SW1hZ2VLSFIgR0xDb250ZXh0RUdMOjpjcmVhdGVJbWFnZUtIUihFR0xlbnVtIHRhcmdldCwgRUdM
Q2xpZW50QnVmZmVyIGJ1ZmZlciwgY29uc3QgRUdMaW50ICphdHRyaWJfbGlzdCkKK3sKKyAgICBy
ZXR1cm4gZWdsQ3JlYXRlSW1hZ2VLSFIgKHNoYXJlZEVHTERpc3BsYXkoKSwgbV9jb250ZXh0LCB0
YXJnZXQsIGJ1ZmZlciwgYXR0cmliX2xpc3QpOworfQorCitib29sIEdMQ29udGV4dEVHTDo6ZGVz
dHJveUltYWdlS0hSKEVHTEltYWdlS0hSIGltYWdlKQoreworICAgIHJldHVybiBlZ2xEZXN0cm95
SW1hZ2VLSFIoc2hhcmVkRUdMRGlzcGxheSgpLCBpbWFnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShFR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQppbmRleCBjNWQ0YmY3Li4wYjhhMGVmCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTI1LDYgKzI1LDkgQEAKICNp
bmNsdWRlICJHTENvbnRleHQuaCIKIAogI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKy8vIEZJWE1FLCBF
R0xfRUdMRVhUX1BST1RPVFlQRVMuIGl0IGlzIHJlcXVpcmVkIGJ5IGVnbENyZWF0ZUltYWdlS0hS
LiBidXQuLi4sIGlzIGl0IHRoZSByaWdodCB3YXkgdG8gYWRkIGl0PworI2RlZmluZSBFR0xfRUdM
RVhUX1BST1RPVFlQRVMKKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDEsOCArNDQsMjMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3YWl0
TmF0aXZlKCk7CiAgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVy
KCk7CiAgICAgdmlydHVhbCBJbnRTaXplIGRlZmF1bHRGcmFtZUJ1ZmZlclNpemUoKTsKLQotCisg
ICAgLyoKKyAgICAgICAgRUdMSW1hZ2VLSFIgZWdsQ3JlYXRlSW1hZ2VLSFIoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xEaXNwbGF5IGRweSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVHTENvbnRleHQgY3R4LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRUdMZW51bSB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xDbGllbnRCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgRUdMaW50ICphdHRyaWJfbGlzdCkKKyAgICAqLworICAg
IHZpcnR1YWwgRUdMSW1hZ2VLSFIgY3JlYXRlSW1hZ2VLSFIoRUdMZW51bSB0YXJnZXQsIEVHTENs
aWVudEJ1ZmZlciBidWZmZXIsIGNvbnN0IEVHTGludCAqYXR0cmliX2xpc3QgPSBOVUxMKTsKKwor
ICAgIC8qCisgICAgICAgIEVHTEJvb2xlYW4gZWdsRGVzdHJveUltYWdlS0hSKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xEaXNwbGF5IGRweSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRUdMSW1hZ2VLSFIgaW1hZ2UpCisgICAgKi8KKyAgICB2aXJ0
dWFsIGJvb2wgZGVzdHJveUltYWdlS0hSKEVHTEltYWdlS0hSIGltYWdlKTsKKyAgICAKICNpZiBF
TkFCTEUoV0VCR0wpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRm
b3JtQ29udGV4dCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCmluZGV4IDIx
MmRlZmIuLjQ2MWJkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCkBAIC0zMyw2ICsz
MywxMyBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIC8vIHNoYXJlIHRoZSBEaXNwbGF5IG9m
IEdMQ29udGV4dCB0byBHU3RyZWFtZXIgdmlkZW8gY29udGV4dAorICAgICNpbmNsdWRlICJHTENv
bnRleHQuaCIKKyAgICAjZGVmaW5lIEdTVF9VU0VfVU5TVEFCTEVfQVBJICAgIDEKKyAgICAjaW5j
bHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvY29udGV4dC5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDEwICs1MCwyNSBAQCBnYm9vbGVh
biBnc3RHV29ybGRTeW5jTWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyosIEdzdE1lc3NhZ2UqIG1lc3Nh
Z2UsIGdwb2ludGVyIGRhdAogCiAgICAgR1N0cmVhbWVyR1dvcmxkKiBnc3RHV29ybGQgPSBzdGF0
aWNfY2FzdDxHU3RyZWFtZXJHV29ybGQqPihkYXRhKTsKICAgICBjb25zdCBHc3RTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUobWVzc2FnZSk7CisgICAgR3N0
VmlkZW9Db250ZXh0ICpjb250ZXh0OworICAgIGNvbnN0IGdjaGFyICoqdHlwZXM7CiAKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJwcmVwYXJlLXh3aW5kb3ctaWQi
KQogICAgICAgICB8fCBnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImhhdmUtbnMt
dmlldyIpKQogICAgICAgICBnc3RHV29ybGQtPnNldFdpbmRvd092ZXJsYXkobWVzc2FnZSk7Cisg
ICAgZWxzZSBpZiAoZ3N0X3ZpZGVvX2NvbnRleHRfbWVzc2FnZV9wYXJzZV9wcmVwYXJlIChtZXNz
YWdlLCAmdHlwZXMsICZjb250ZXh0KSkgeworICAgICAgZ2ludCBpOworICAgIAorICAgICAgZm9y
IChpID0gMDsgdHlwZXNbaV07IGkrKykgeworICAgIAorICAgICAgICBpZiAoIXN0cmNtcCh0eXBl
c1tpXSwgIngxMS1kaXNwbGF5IikpIHsKKyAgICAgICAgICBnc3RfdmlkZW9fY29udGV4dF9zZXRf
Y29udGV4dF9wb2ludGVyIChjb250ZXh0LCAieDExLWRpc3BsYXkiLCBHTENvbnRleHQ6OnNoYXJl
ZFgxMURpc3BsYXkoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gVFJVRTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDJiODg3ZTYuLjBjZDg2MmEKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU5LDYgKzU5LDIyIEBACiAjaW5j
bHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjZW5kaWYKIAorI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorLy8gRklY
TUUgCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjdW5kZWYgTm9uZQorCisjaWYgVVNFKE9Q
RU5HTF9FU18yKQorI2luY2x1ZGUgIk9wZW5HTEVTU2hpbXMuaCIKKyNlbGlmIFBMQVRGT1JNKE1B
QykKKyNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKSB8fCBQTEFURk9STShRVCkKKyNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgorI2VuZGlm
CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNlbmRpZgorCiAvLyBHc3RQbGF5RmxhZ3MgZmxhZ3Mg
ZnJvbSBwbGF5YmluMi4gSXQgaXMgdGhlIHBvbGljeSBvZiBHU3RyZWFtZXIgdG8KIC8vIG5vdCBw
dWJsaWNseSBleHBvc2UgZWxlbWVudC1zcGVjaWZpYyBlbnVtcy4gVGhhdCdzIHdoeSB0aGlzCiAv
LyBHc3RQbGF5RmxhZ3MgZW51bSBoYXMgYmVlbiBjb3BpZWQgaGVyZS4KQEAgLTE3NDgsNiArMTc2
NCw5OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnRUb1RleHR1cmVN
YXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcAogICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5h
Y2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgR0xDb250ZXh0RUdMKiBnbENvbnRleHRFR0wgPSBOVUxMOworICAgIEVH
TENsaWVudEJ1ZmZlciBlZ2xfYnVmZmVyID0gMDsKKyAgICBFR0xJbWFnZUtIUiBlZ2xfaW1hZ2Ug
PSBFR0xfTk9fSU1BR0VfS0hSOworICAgIEdzdFN1cmZhY2VCdWZmZXIqIHN1cmZhY2UgPSBOVUxM
OworCisKKyNpZiAxCisgICAgaWYgKG1fYnVmZmVyICYmIEdTVF9JU19TVVJGQUNFX0JVRkZFUiht
X2J1ZmZlcikpIHsKKyAgICAgICAgc3VyZmFjZSA9IEdTVF9TVVJGQUNFX0JVRkZFUihtX2J1ZmZl
cik7CisKKyAgICAgICAgIEdzdENhcHMqIGNhcHMgPSBHU1RfQlVGRkVSX0NBUFMobV9idWZmZXIp
OworICAgICAgICAgR3N0VmlkZW9Gb3JtYXQgZm9ybWF0OworICAgICAgICAgaW50IHdpZHRoLCBo
ZWlnaHQ7CisgICAgICAgICBnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMoY2FwcywgJmZvcm1h
dCwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgIEludFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0
KTsKKworICAgICAgICBpZiAoIW1fdGV4dHVyZSkgeworICAgICAgICAgICAgbV90ZXh0dXJlID0g
dGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChtX3RleHR1cmUtPnNpemUoKSAhPSBzaXplKSB7CisgICAgICAgICAgICBt
X3RleHR1cmUtPnJlc2V0KHNpemUpOworICAgICAgICB9CisjZGVmaW5lIEZPUkNFX1VTRV9FR0wg
ICAxCisgICAgLy8gI2lmIFVTRShFR0wpCisgICAgI2lmIEZPUkNFX1VTRV9FR0wKKyAgICAgICAg
VGV4dHVyZU1hcHBlckdMKiB0ZXh0dXJlTWFwcGVyR0wgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFw
cGVyR0wqPih0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQzRCA9IHRleHR1cmVNYXBwZXJHTC0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICAgICAgR0xD
b250ZXh0KiBnbENvbnRleHQgPSBHTENvbnRleHQ6OmdldEN1cnJlbnQoKTsKKyAgICAgICAgZ2xD
b250ZXh0RUdMID0gKEdMQ29udGV4dEVHTCopZ2xDb250ZXh0OyAKKworICAgICAgICBpbnQgcmV0
ID0gMDsKKyAgICAgICAgaW50IGVnbF9pbWFnZV93aWR0aCA9IDAsIGVnbF9pbWFnZV9oZWlnaHQg
PSAwLCBlZ2xfaW1hZ2VfcGl0Y2ggPSAwOworICAgICAgICBpbnQgZWdsX2ltYWdlX2Zvcm1hdCA9
IDAsIGVnbF9idWZmZXJfdGFyZ2V0X3R5cGUgPSAwOworCisgICAgICAgIHR5cGVkZWYgc3RydWN0
IHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBnc3RfZm9ybWF0OworICAgICAgICAgICAgdW5z
aWduZWQgaW50IGVnbF9mb3JtYXQ7CisgICAgICAgIH0gR3N0RWdsRm9ybWF0TWFwOworICAgICAg
ICAvLyB0aGlzIHByaW9yaXRpZWQgZm9ybWF0IGxpc3QgaXMgcGxhdGZvcm0gZGVwZW5kZW50Cisg
ICAgICAgIEdzdEVnbEZvcm1hdE1hcCBleHBlY3RfZm9ybWF0c1tdID0geworICAgICAgICAgICAg
Ly8geyAwLCAwfSAvLyBpbnRlcmFsIHZpZGVvIGJ1ZmZlciBmb3JtYXQgaXMgdXNlZC4gSSdtIHN1
cmUgZ2Z4L3ZpZGVvIHdvcmtzIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0CisgICAgICAgICAgICB7
IEdTVF9NQUtFX0ZPVVJDQygnQicsICdHJywgJ1InLCAnWCcpLCBFR0xfRFJNX0JVRkZFUl9GT1JN
QVRfQVJHQjMyX01FU0EgfSwKKyAgICAgICAgICAgIC8vIHsgR1NUX01BS0VfRk9VUkNDKCdOJywg
J1YnLCAnMScsICcyJyksIH07CisgICAgICAgIH07CisKKyAgICAgICAgaW50IGk7CisgICAgICAg
IGZvciAoaT0wOyBpPHNpemVvZihleHBlY3RfZm9ybWF0cykvc2l6ZW9mKGV4cGVjdF9mb3JtYXRz
WzBdKTsgaSsrKSB7CisgICAgICAgICAgICBnc3Rfc3VyZmFjZV9idWZmZXJfc2V0X21ldGFfZGF0
YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyRXhwZWN0Rm9ybWF0LCBleHBlY3RfZm9ybWF0c1tp
XS5nc3RfZm9ybWF0KTsKKyAgICAgICAgICAgIGlmIChnc3Rfc3VyZmFjZV9idWZmZXJfZ2V0X21l
dGFfZGF0YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyRUdMQ2xpZW50QnVmZmVyLCAmZWdsX2J1
ZmZlcikpIHsKKyAgICAgICAgICAgICAgICBlZ2xfaW1hZ2VfZm9ybWF0ID0gZXhwZWN0X2Zvcm1h
dHNbaV0uZWdsX2Zvcm1hdDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBpZiAoIWVnbF9pbWFnZV9mb3JtYXQpIHsKKyAgICAgICAgICAg
IEFTU0VSVCgwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXQg
fD0gZ3N0X3N1cmZhY2VfYnVmZmVyX2dldF9tZXRhX2RhdGEoc3VyZmFjZSwgR3N0U3VyZmFjZUJ1
ZmZlckVHTEJ1ZmZlclRhcmdldFR5cGUsICZlZ2xfYnVmZmVyX3RhcmdldF90eXBlKTsKKyAgICAg
ICAgCisgICAgICAgIHN3aXRjaCAoZWdsX2J1ZmZlcl90YXJnZXRfdHlwZSkgeworICAgICAgICBj
YXNlIEVHTF9EUk1fQlVGRkVSX01FU0E6IHsKKyAgICAgICAgICAgIHJldCB8PSBnc3Rfc3VyZmFj
ZV9idWZmZXJfZ2V0X21ldGFfZGF0YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyV2lkdGgsICZl
Z2xfaW1hZ2Vfd2lkdGgpOworICAgICAgICAgICAgcmV0IHw9IGdzdF9zdXJmYWNlX2J1ZmZlcl9n
ZXRfbWV0YV9kYXRhKHN1cmZhY2UsIEdzdFN1cmZhY2VCdWZmZXJIZWlnaHQsICZlZ2xfaW1hZ2Vf
aGVpZ2h0KTsKKyAgICAgICAgICAgIHJldCB8PSBnc3Rfc3VyZmFjZV9idWZmZXJfZ2V0X21ldGFf
ZGF0YShzdXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyUGl0Y2gwLCAmZWdsX2ltYWdlX3BpdGNoKTsK
KyAgICAgICAgICAgIC8vIHJldCB8PSBnc3Rfc3VyZmFjZV9idWZmZXJfZ2V0X21ldGFfZGF0YShz
dXJmYWNlLCBHc3RTdXJmYWNlQnVmZmVyRm9ybWF0LCAmZWdsX2ltYWdlX2Zvcm1hdCk7CisgICAg
ICAgICAgICBzdGQ6OmNvdXQgPDwgImVnbF9idWZmZXI6ICIgPDwgKHZvaWQqKSBlZ2xfYnVmZmVy
IDw8ICJlZ2xfaW1hZ2Vfd2lkdGg6ICIgPDwgZWdsX2ltYWdlX3dpZHRoIDw8ICIgIGVnbF9pbWFn
ZV9oZWlnaHQ6ICIgPDwgZWdsX2ltYWdlX2hlaWdodCA8PCAiICBlZ2xfaW1hZ2VfcGl0Y2g6ICIg
PDwgZWdsX2ltYWdlX3BpdGNoIDw8IHN0ZDo6ZW5kbDsKKyAgICAKKyAgICAgICAgICAgIEVHTGlu
dCBhdHRyaWJzW10gPSB7IEVHTF9XSURUSCwgZWdsX2ltYWdlX3dpZHRoLCBFR0xfSEVJR0hULCBl
Z2xfaW1hZ2VfaGVpZ2h0LCAKKyAgICAgICAgICAgICAgICAgICAgRUdMX0RSTV9CVUZGRVJfU1RS
SURFX01FU0EsIGVnbF9pbWFnZV9waXRjaCwgCisgICAgICAgICAgICAgICAgICAgIEVHTF9EUk1f
QlVGRkVSX0ZPUk1BVF9NRVNBLCBlZ2xfaW1hZ2VfZm9ybWF0LAorICAgICAgICAgICAgICAgICAg
ICBFR0xfTk9ORX07IAorICAgICAgICAgICAgZWdsX2ltYWdlID0gZ2xDb250ZXh0RUdMLT5jcmVh
dGVJbWFnZUtIUihFR0xfRFJNX0JVRkZFUl9NRVNBLCBlZ2xfYnVmZmVyLCBhdHRyaWJzKTsKKyAg
ICAgICAgICAgIHN0ZDo6Y291dCA8PCAiZWdsX2ltYWdlOiAiIDw8ICh2b2lkKikgZWdsX2ltYWdl
IDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbnRleHQzRC0+
YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIHN0YXRpY19jYXN0PGNv
bnN0IEJpdG1hcFRleHR1cmVHTCo+KG1fdGV4dHVyZS5nZXQoKSktPmlkKCkpOworICAgICAgICAg
ICAgY29udGV4dDNELT50ZXh0dXJlRUdMSW1hZ2VUYXJnZXQyRE9FUyhHcmFwaGljc0NvbnRleHQz
RDo6VEVYVFVSRV8yRCwgZWdsX2ltYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAvKgorICAgICAgICAgKiBvdGhlci92ZW5kb3Igc3BlY2lmaWMgZWdsIGV4
dGVuc2lvbiBnb2VzIGhlcmUKKyAgICAgICAgY2FzZSB4eHh4OgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICovCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICNlbmRpZgorICAgICAgICBnc3RfYnVmZmVyX3VucmVmKG1fYnVmZmVyKTsKKyAg
ICAgICAgbV9idWZmZXIgPSAwOworICAgIH0KKyAgICBlbHNlIAorI2VuZGlmCiAgICAgaWYgKG1f
YnVmZmVyKSB7CiAgICAgICAgIC8vIEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RHZXRQYWRDYXBz
KG1fdmlkZW9TaW5rUGFkLmdldCgpKTsKIApAQCAtMTc5OCw2ICsxOTA3LDExIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFw
cGVyKiB0ZXh0dXJlTWFwCiAgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3Rl
eHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgbWFzayk7CiAgICAgfQog
CisgICAgI2lmIEZPUkNFX1VTRV9FR0wKKyAgICBpZiAobV9idWZmZXIgJiYgR1NUX0lTX1NVUkZB
Q0VfQlVGRkVSKG1fYnVmZmVyKSkgeworICAgICAgICBnbENvbnRleHRFR0wtPmRlc3Ryb3lJbWFn
ZUtIUihlZ2xfaW1hZ2UpOworICAgIH0KKyAgICAjZW5kaWYKIH0KIAogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZi
ODA4MGYuLmQ1MjY3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCisjZGVmaW5lIEdTVF9VU0VfVU5TVEFCTEVfQVBJICAgIDEKKyNpbmNs
dWRlIDxnc3QvdmlkZW8vZ3N0c3VyZmFjZWJ1ZmZlci5oPgogI2VuZGlmCiAKICNpbmNsdWRlIDxn
bGliLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IGQ4NTIxODQuLjJh
NzAzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0zOSw2ICszOSwx
MCBAQAogI2luY2x1ZGUgPGdzdC92aWRlby9nc3R2aWRlb3Bvb2wuaD4KICNlbmRpZgogI2luY2x1
ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgI2RlZmluZSBHU1RfVVNFX1VOU1RBQkxF
X0FQSSAxCisgICAgI2luY2x1ZGUgPGdzdC92aWRlby9nc3RzdXJmYWNlYnVmZmVyLmg+CisjZW5k
aWYKIAogLy8gQ0FJUk9fRk9STUFUX1JHQjI0IHVzZWQgdG8gcmVuZGVyIHRoZSB2aWRlbyBidWZm
ZXJzIGlzIGxpdHRsZS9iaWcgZW5kaWFuIGRlcGVuZGFudC4KICNpZiBHX0JZVEVfT1JERVIgPT0g
R19MSVRUTEVfRU5ESUFOCkBAIC01NCw3ICs1OCwxMyBAQAogI2RlZmluZSBXRUJLSVRfVklERU9f
U0lOS19QQURfQ0FQUyBHU1RfVklERU9fQ0FQU19NQUtFKCJ7IHhSR0IsIEFSR0IgfSIpCiAjZW5k
aWYKICNlbmRpZgotc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNfc2lua1RlbXBsYXRlID0g
R1NUX1NUQVRJQ19QQURfVEVNUExBVEUoInNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9QQURfQUxX
QVlTLCBHU1RfU1RBVElDX0NBUFMoV0VCS0lUX1ZJREVPX1NJTktfUEFEX0NBUFMpKTsKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAg
ICAjZGVmaW5lIFNVUkZBQ0VfQ0FQUyBHU1RfVklERU9fQ0FQU19TVVJGQUNFICIsIG9wZW5nbCA9
IHRydWU7IgorI2Vsc2UKKyAgICAjZGVmaW5lIFNVUkZBQ0VfQ0FQUworI2VuZGlmCisKK3N0YXRp
YyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzX3NpbmtUZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RF
TVBMQVRFKCJzaW5rIiwgR1NUX1BBRF9TSU5LLCBHU1RfUEFEX0FMV0FZUywgR1NUX1NUQVRJQ19D
QVBTKFNVUkZBQ0VfQ0FQUyBXRUJLSVRfVklERU9fU0lOS19QQURfQ0FQUykpOwogCiAKIEdTVF9E
RUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0VmlkZW9TaW5rRGVidWcpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TEVTLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMRVMuaAppbmRleCBhNzBlYWE3Li4xMDQ3YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMRVMuaApAQCAtMzMsNiArMzMsOCBAQAogLy8gVGFrZXMgY2FyZSBvZiBkZWNsYXJpbmcg
dGhlIEdMRVMgZXh0ZW5zaW9ucy4KICNpbmNsdWRlIDxxb3BlbmdsLmg+CiAjZWxzZQorLy8gRklY
TUUsIG5vdCBzdXJlIGl0IGlzIHRoZSBjb3JyZWN0IHdheSB0byBkbyBzbywgcmVxdWlyZWQgYnkg
Z2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUworI2RlZmluZSBHTF9HTEVYVF9QUk9UT1RZUEVT
CiAjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CiAjaW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCm9sZCBt
b2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZGI5ZmU0My4uOGZlNGYzYgotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE0MzUsNiArMTQzNSwx
NCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJERGlyZWN0KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudQogICAgIDo6Z2xUZXhJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1hdCwgdHlw
ZSwgcGl4ZWxzKTsKIH0KIAorI2lmIDEKKy8vIGl0IGlzIGRvbmUgaW4gaW5pdGlhbGl6ZU9wZW5H
TFNoaW1zKCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnRleHR1cmVFR0xJbWFnZVRhcmdldDJE
T0VTKEdDM0RlbnVtIHRhcmdldCwgR0xlZ2xJbWFnZU9FUyBpbWFnZSkgCit7CisgICAgbWFrZUNv
bnRleHRDdXJyZW50KCk7CisgICAgOjpnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTKEdMX1RF
WFRVUkVfMkQsIGltYWdlKTsKK30KKyNlbmRpZgogfQogCiAjZW5kaWYgLy8gVVNFKDNEX0dSQVBI
SUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRHU3RyZWFtZXIuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvRmluZEdTdHJlYW1lci5jbWFrZQppbmRleCA1NDJlYmFjLi42NTMxZmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvRmluZEdTdHJlYW1lci5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvRmluZEdTdHJlYW1lci5jbWFrZQpAQCAtMTE1LDYgKzExNSw3IEBAIEZJTkRfR1NUUkVBTUVS
X0NPTVBPTkVOVChHU1RSRUFNRVJfRkZUIGdzdHJlYW1lci1mZnQtMC4xMCBnc3QvZmZ0L2dzdGZm
dC5oIGdzdGZmCiBGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSX0lOVEVSRkFDRVMg
Z3N0cmVhbWVyLWludGVyZmFjZXMtMC4xMCBnc3QvaW50ZXJmYWNlcy9taXhlci5oIGdzdGludGVy
ZmFjZXMtMC4xMCkKIEZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfUEJVVElMUyBn
c3RyZWFtZXItcGJ1dGlscy0wLjEwIGdzdC9wYnV0aWxzL3BidXRpbHMuaCBnc3RwYnV0aWxzLTAu
MTApCiBGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSX1ZJREVPIGdzdHJlYW1lci12
aWRlby0wLjEwIGdzdC92aWRlby92aWRlby5oIGdzdHZpZGVvLTAuMTApCitGSU5EX0dTVFJFQU1F
Ul9DT01QT05FTlQoR1NUUkVBTUVSX0JBU0VWSURFTyBnc3RyZWFtZXItYmFzZXZpZGVvLTAuMTAg
Z3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2RlY29kZXIuaCBnc3RiYXNldmlkZW8tMC4xMCkKIAogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgMy4gUHJv
Y2VzcyB0aGUgQ09NUE9ORU5UUyBwYXNzZWQgdG8gRklORF9QQUNLQUdFCmRpZmYgLS1naXQgYS9j
b25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggN2RkZGZlYy4uMzQ3MDY4MiAxMDA2NDQK
LS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtOTk3LDcgKzk5Nyw3IEBA
IGlmIHRlc3QgIiRlbmFibGVfdmlkZW8iID0gInllcyIgfHwgdGVzdCAiJGVuYWJsZV93ZWJfYXVk
aW8iID0gInllcyI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXBsdWdp
bnMtYmFzZS0kR1NUX0FQSV9WRVJTSU9OID49ICRHU1RSRUFNRVJfUExVR0lOU19CQVNFX1JFUVVJ
UkVEX1ZFUlNJT04KICAgICAgICAgICAgICAgICAgICAgICAgZ3N0cmVhbWVyLXZpZGVvLSRHU1Rf
QVBJX1ZFUlNJT04iOwogICAgaWYgdGVzdCAiJEdTVF9BUElfVkVSU0lPTiIgIT0gIjEuMCI7IHRo
ZW4KLSAgICAgICBnc3RyZWFtZXJfbW9kdWxlcz0iJGdzdHJlYW1lcl9tb2R1bGVzIGdzdHJlYW1l
ci1pbnRlcmZhY2VzLSRHU1RfQVBJX1ZFUlNJT04iOworICAgICAgIGdzdHJlYW1lcl9tb2R1bGVz
PSIkZ3N0cmVhbWVyX21vZHVsZXMgZ3N0cmVhbWVyLWludGVyZmFjZXMtJEdTVF9BUElfVkVSU0lP
TiBnc3RyZWFtZXItYmFzZXZpZGVvLSRHU1RfQVBJX1ZFUlNJT04iOwogICAgZmkKICAgIFBLR19D
SEVDS19NT0RVTEVTKFtHU1RSRUFNRVJdLCBbJGdzdHJlYW1lcl9tb2R1bGVzXSwgW2hhdmVfZ3N0
cmVhbWVyPXllc10pCiAgICBBQ19TVUJTVChbR1NUUkVBTUVSX0NGTEFHU10pCi0tIAoxLjcuOS41
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187046</attachid>
            <date>2013-02-07 03:39:01 -0800</date>
            <delta_ts>2013-02-22 03:50:17 -0800</delta_ts>
            <desc>Rebase of the proposed patches (without gst surfaces)</desc>
            <filename>0001-WIP-texmap-GStreamer-Composited-Video-support.patch</filename>
            <type>text/plain</type>
            <size>12530</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSAzZDZiNzJlOTMxYjQ1YjQ5ZDE2YTBmZTY4NDcyODUwYzAzZmY5ODJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogVGh1LCA3IEZlYiAy
MDEzIDA2OjA5OjMwIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gV0lQOiBbdGV4bWFwXVtHU3RyZWFt
ZXJdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2NDEwCi0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCAgICAgICAgICAgfCAgMiArCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggICAgICAgIHwgNjUgKysrKysrKysr
KysrKysrKysrLQogLi4uL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oICAgfCAgMSArCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtLmggICB8ICA4ICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgICAgfCAxNiArKysrLQogNiBmaWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygr
KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCA1ZmI0ODRjLi5hMDAxY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTM5Nyw2ICszOTcsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgog
ICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBjbGVhck1lZGlhUGxh
eWVyKE1lZGlhUmVzb3VyY2UpOwogICAgICAgICAgICAgc2NoZWR1bGVMb2FkKE1lZGlhUmVzb3Vy
Y2UpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgcmVuZGVy
ZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBjb250cm9sc0F0dHIpCiAgICAgICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMTYx
NmY5MS4uYjFjMGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKQEAgLTE2MjUsNiArMTYyNSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQoR3N0QnVmZmVyKiBidWZmZXIpCiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAg
cmV0dXJuOworI2VuZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE4MzksNiArMTg0NCw3MyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6c2V0RG93bmxvYWRCdWZmZXJpbmcoKQogICAgIH0KIH0KIAorI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3Rh
dGVDaGFuZ2VkKCkgeworfQorCitQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4odGhpcyk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgewor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3Qg
RmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4
LCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKSB7CisgICAgaWYgKHRleHR1cmVN
YXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9idWZmZXIpIHsKKyAgICAgICAgSW50U2l6ZSBz
aXplID0gbmF0dXJhbFNpemUoKTsKKworICAgICAgICBtX3RleHR1cmUgPSB0ZXh0dXJlTWFwcGVy
LT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKHNpemUpOworICAgICAgICBSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gc291cmNlID0gdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXpl
KTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIEdzdE1hcEluZm8gc291cmNl
SW5mbzsKKyAgICAgICAgZ3N0X2J1ZmZlcl9tYXAobV9idWZmZXIsICZzb3VyY2VJbmZvLCBHU1Rf
TUFQX1JFQUQpOworICAgICAgICBzb3VyY2UtPnVwZGF0ZUNvbnRlbnRzKHNvdXJjZUluZm8uZGF0
YSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNv
cmU6OkludFBvaW50KDAsMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1hcFRleHR1cmU6OlVwZGF0
ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKyAgICAgICAgZ3N0X2J1ZmZlcl91bm1h
cChtX2J1ZmZlciwgJnNvdXJjZUluZm8pOworI2Vsc2UKKyAgICAgICAgc291cmNlLT51cGRhdGVD
b250ZW50cyhHU1RfQlVGRkVSX0RBVEEobV9idWZmZXIpLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNv
cmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwwKSwgc2l6ZS53
aWR0aCgpICogNCk7CisjZW5kaWYKKworICAgICAgICBUZXh0dXJlTWFwcGVyR0wqIHRleHR1cmVN
YXBwZXJHTCA9IHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KHRleHR1cmVNYXBwZXIpOwor
ICAgICAgICB0ZXh0dXJlTWFwcGVyR0wtPmJpbmRTdXJmYWNlKG1fdGV4dHVyZS5nZXQoKSk7CisK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCA9IHRleHR1cmVNYXBwZXJHTC0+
Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICAgICAgaWYgKCFtX3Byb2dyYW0pIHsKKyAgICAgICAg
ICAgIG1fcHJvZ3JhbSA9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZTo6Y3JlYXRlKGNv
bnRleHQzRCk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dDNELT5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheShtX3Byb2dyYW0tPnZlcnRleExvY2F0aW9uKCkpOworICAgICAgICBjb250ZXh0M0Qt
PmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG1fcHJvZ3JhbS0+dGV4Q29vcmRMb2NhdGlvbigpKTsK
KyAgICAgICAgY29udGV4dDNELT51c2VQcm9ncmFtKG1fcHJvZ3JhbS0+cHJvZ3JhbUlEKCkpOwor
CisgICAgICAgIGNvbnRleHQzRC0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVY
VFVSRTApOworICAgICAgICBjb250ZXh0M0QtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFXzJELCBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wqPihzb3VyY2Uu
Z2V0KCkpLT5pZCgpKTsKKyAgICAgICAgY29udGV4dDNELT51bmlmb3JtMWkobV9wcm9ncmFtLT5t
YXNrTG9jYXRpb24oKSwgMCk7CisKKyAgICAgICAgY29uc3QgR0MzRGZsb2F0IHRhcmdldFZlcnRp
Y2VzW10gPSB7LTEsIC0xLCAxLCAtMSwgMSwgMSwgLTEsIDF9OworICAgICAgICBjb250ZXh0M0Qt
PnZlcnRleEF0dHJpYlBvaW50ZXIobV9wcm9ncmFtLT52ZXJ0ZXhMb2NhdGlvbigpLCAyLCBHcmFw
aGljc0NvbnRleHQzRDo6RkxPQVQsIHRydWUsIDAsIEdDM0RpbnRwdHIodGFyZ2V0VmVydGljZXMp
KTsKKyAgICAgICAgY29uc3QgR0MzRGZsb2F0IHNvdXJjZVZlcnRpY2VzW10gPSB7MCwgMCwgMSwg
MCwgMSwgMSwgMCwgMX07CisgICAgICAgIGNvbnRleHQzRC0+dmVydGV4QXR0cmliUG9pbnRlciht
X3Byb2dyYW0tPnRleENvb3JkTG9jYXRpb24oKSwgMiwgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FU
LCB0cnVlLCAwLCBHQzNEaW50cHRyKHNvdXJjZVZlcnRpY2VzKSk7CisKKyAgICAgICAgY29udGV4
dDNELT5kcmF3QXJyYXlzKEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9GQU4sIDAsIDQpOwor
ICAgICAgICBjb250ZXh0M0QtPmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShtX3Byb2dyYW0tPnZl
cnRleExvY2F0aW9uKCkpOworICAgICAgICBjb250ZXh0M0QtPmRpc2FibGVWZXJ0ZXhBdHRyaWJB
cnJheShtX3Byb2dyYW0tPnRleENvb3JkTG9jYXRpb24oKSk7CisgICAgICAgIHRleHR1cmVNYXBw
ZXJHTC0+YmluZFN1cmZhY2UoTlVMTCk7CisKKyAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihtX2J1
ZmZlcik7CisgICAgICAgIG1fYnVmZmVyID0gMDsKKyAgICB9CisKKyAgICBpZiAobV90ZXh0dXJl
KSB7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3RleHR1cmUuZ2V0KCks
IHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgbWFzayk7CisgICAgfQorCit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5
ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBtX29yaWdpbmFsUHJlbG9hZFdhc0F1dG9BbmRX
YXNPdmVycmlkZGVuID0gbV9wcmVsb2FkICE9IHByZWxvYWQgJiYgbV9wcmVsb2FkID09IE1lZGlh
UGxheWVyOjpBdXRvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCmluZGV4IGZkMzdkODMuLjkxZDVkNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw2ICsyOCwxNCBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyR0wuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIgor
I2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NUeXBlczNELmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNlbmRpZgorCiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgpAQCAtNDYsNyArNTQsNDkgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEdTdHJlYW1l
ckdXb3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAotY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CisjZGVmaW5lIFNUUklOR0lGWSguLi4pICNfX1ZBX0FSR1NfXworCitzdGF0aWMgY29u
c3QgY2hhciogdmVydGV4U2hhZGVyU291cmNlQmx1ZSA9CisgICAgU1RSSU5HSUZZKAorICAgICAg
ICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKKyAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90ZXhD
b29yZDsKKyAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAg
ICAgIHZvaWQgbWFpbih2b2lkKQorICAgICAgICB7CisgICAgICAgICAgICB2X3NvdXJjZVRleENv
b3JkID0gdmVjMihhX3RleENvb3JkLngsIGFfdGV4Q29vcmQueSk7CisgICAgICAgICAgICBnbF9Q
b3NpdGlvbiA9IGFfdmVydGV4OworICAgICAgICB9CisgICAgKTsKKworc3RhdGljIGNvbnN0IGNo
YXIqIGZyYWdtZW50U2hhZGVyU291cmNlQmx1ZSA9CisgICAgU1RSSU5HSUZZKAorICAgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc19zb3Vy
Y2U7CisgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOworICAgICAg
ICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0g
dGV4dHVyZTJEKHNfc291cmNlLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgfQorICAgICk7
CisKK2NsYXNzIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZSA6IHB1YmxpYyBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW1CbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gY29udGV4dCkgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtQmx1ZShjb250ZXh0KSk7CisgICAgfQorCisgICAgVEVYTUFQX0RF
Q0xBUkVfQVRUUklCVVRFKHRleENvb3JkKQorICAgIFRFWE1BUF9ERUNMQVJFX1NBTVBMRVIoc291
cmNlKQorCitwcml2YXRlOgorICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtQmx1ZShQYXNz
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KSA6IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtIChjb250ZXh0LCB2ZXJ0ZXhTaGFkZXJTb3VyY2VCbHVlLCBmcmFnbWVudFNoYWRlclNv
dXJjZUJsdWUpIHsgfQorfTsKKworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDog
cHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQorI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgICAgICAsIHB1YmxpYyBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgorI2VuZGlmCit7CiAKICAgICAgICAgcHVibGljOgog
ICAgICAgICAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpOwpAQCAtMTQxLDYgKzE5
MSwxNCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIAogICAgICAgICAgICAgc3RhdGljIEtVUkwgY29udmVy
dFBsYXliaW5VUkwoY29uc3QgZ2NoYXIqIHVyaSk7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOworICAgICAgICAgICAgLy8g
Q29uc3QtY2FzdGluZyBoZXJlIGlzIHNhZmUsIHNpbmNlIGFsbCBvZiBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllcidzIGZ1bmN0aW9ucyBhcmUgY29uc3QuCisgICAgICAgICAgICB2aXJ0dWFsIFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHks
IEJpdG1hcFRleHR1cmUqIG1hc2spOworICAgICAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgICAgIHByaXZhdGU6
CiAgICAgICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsK
IApAQCAtMjI0LDYgKzI4MiwxMSBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAgICAgICAgIEtVUkwg
bV91cmw7CiAgICAgICAgICAgICBib29sIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092
ZXJyaWRkZW47CiAgICAgICAgICAgICBib29sIG1fcHJlc2VydmVzUGl0Y2g7CisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgICAg
ICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKKyAgICAgICAgICAgIFJl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgICAgICAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW1CbHVlPiBtX3Byb2dyYW07CisjZW5kaWYKICAgICB9OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IDY5NGI1YTMuLmE2
ZmJjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCkBAIC02Niw2
ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xv
ciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFp
bnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNDb250ZW50c0xh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CiAgICAgdmlydHVhbCB2b2lk
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZv
aWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5oCmluZGV4IDAzN2U3ZDYuLjQxNGU5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCkBAIC04NSwxNCArODUsMTYgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRNYXRyaXgoR0MzRHVpbnQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7
CiAKLXByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0oUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25z
dCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IG1f
dmVydGV4U2hhZGVyOwotICAgIFBsYXRmb3JtM0RPYmplY3QgbV9mcmFnbWVudFNoYWRlcjsKIAor
cHJvdGVjdGVkOgogICAgIGVudW0gVmFyaWFibGVUeXBlIHsgVW5pZm9ybVZhcmlhYmxlLCBBdHRy
aWJWYXJpYWJsZSB9OwogICAgIEdDM0R1aW50IGdldExvY2F0aW9uKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIFZhcmlhYmxlVHlwZSk7CiAKK3ByaXZhdGU6CisgICAgUGxhdGZvcm0zRE9iamVjdCBtX3Zl
cnRleFNoYWRlcjsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IG1fZnJhZ21lbnRTaGFkZXI7CisKICAg
ICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBQbGF0Zm9ybTNET2Jq
ZWN0IG1faWQ7CiAgICAgSGFzaE1hcDxBdG9taWNTdHJpbmcsIEdDM0R1aW50PiBtX3ZhcmlhYmxl
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
aW5kZXggNzI2N2JhYS4uOGRlZTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTc5LDYgKzc5LDE3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiBzdGF0aWMgYm9vbCBoYXNCb3hEZWNvcmF0aW9uc09yQmFja2dyb3VuZElt
YWdlKGNvbnN0IFJlbmRlclN0eWxlKik7CiBzdGF0aWMgSW50UmVjdCBjbGlwQm94KFJlbmRlckJv
eCogcmVuZGVyZXIpOwogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNBY2NlbGVyYXRlZFZpZGVvKFJl
bmRlck9iamVjdCogcmVuZGVyZXIpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChyZW5k
ZXJlci0+aXNWaWRlbygpKSB7CisgICAgICAgIHJldHVybiB0b1JlbmRlclZpZGVvKHJlbmRlcmVy
KS0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOworICAgIH0KKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHJlbmRlcmVyKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc0FjY2VsZXJhdGVkQ2FudmFzKFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CiB7CiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQpA
QCAtMTcxMCw4ICsxNzIxLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRz
TmVlZERpc3BsYXkoKQogewogICAgIEFTU0VSVCghcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3Rv
cigpKTsKICAgICAKLSAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NMYXllci0+
ZHJhd3NDb250ZW50KCkpCisgICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiAobV9ncmFwaGljc0xh
eWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBtX2dyYXBoaWNzTGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIo
KSkpIHsKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICB9
CiAgICAgCiAgICAgaWYgKG1fZm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5k
cmF3c0NvbnRlbnQoKSkKICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxh
eSgpOwpAQCAtMTczMSw3ICsxNzQzLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENv
bnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQo
IXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSk7CiAKLSAgICBpZiAobV9ncmFwaGljc0xh
eWVyICYmIG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9ncmFw
aGljc0xheWVyICYmIChtX2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhp
Y3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSkgewogICAgICAgICBJbnRSZWN0IGxheWVyRGly
dHlSZWN0ID0gcjsKICAgICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9ncmFwaGljc0xheWVy
LT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KGxheWVyRGlydHlSZWN0KTsKLS0gCjEuNy4xMS43Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189741</attachid>
            <date>2013-02-22 03:50:17 -0800</date>
            <delta_ts>2013-03-04 07:56:23 -0800</delta_ts>
            <desc>simple patch for video composition</desc>
            <filename>0001-WIP-render-frames-as-opengl-textures.patch</filename>
            <type>text/plain</type>
            <size>7570</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSAzOGViZWQ4ZTViZmI4MmQ5NjgxNWRkNzg4NDljYWU2MDEzOGIxNTdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogRnJpLCAyMiBGZWIg
MjAxMyAxMzo1NDoxOSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFdJUDogcmVuZGVyIGZyYW1lcyBh
cyBvcGVuZ2wgdGV4dHVyZXMKCkNoYW5nZXM6CgoqIHVwZGF0ZSBwbGF5ZXIgaW4gcmVuZGVyZXIg
d2hlbiBzb3VyY2UgY2hhbmdlZCB0byBhdm9pZCBhIGNyYXNoCiAgd2hlbiBjaGFuZ2luZyB2aWRl
by5zcmMKKiBzZXQgbmVlZHMgZGlzcGxheSB0byB0aGUgbGF5ZXIgaW4gcmVuZGVyTGF5ZXJCYWNr
aW5nLCBvdGhlcndpc2UsCiAgdGhlIHJlbmRlcmluZyB3YXMgbm90IHVwZGF0ZWQgd2hlbiBuZXcg
ZnJhbWVzIHdlcmUgYXZhaWxhYmxlLgoqIHVzZSBhIHRleHR1cmUgdG8gZGlzcGxheSB0aGUgdmlk
ZW8gZnJhbWUKLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwICAg
ICAgICAgICB8ICAyICsrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwICB8IDQxICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oICAgIHwgMTkgKysrKysrKysrLQogLi4uL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oICAgfCAgMSArCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCAgICB8ICA0ICstLQog
NSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDJiYzRlNmIuLmU5MGE1Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDA3LDYgKzQw
Nyw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAgICAgICAgIGlmICghdmFsdWUuaXNOdWxs
KCkpIHsKICAgICAgICAgICAgIGNsZWFyTWVkaWFQbGF5ZXIoTWVkaWFSZXNvdXJjZSk7CiAgICAg
ICAgICAgICBzY2hlZHVsZUxvYWQoTWVkaWFSZXNvdXJjZSk7CisgICAgICAgICAgICBpZiAocmVu
ZGVyZXIoKSkKKyAgICAgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNvbnRyb2xzQXR0cikKICAgICAg
ICAgY29uZmlndXJlTWVkaWFDb250cm9scygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGVhOGUxMzMuLjEzMGVlODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTMwOCw2ICszMDgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIGlmIChtX3RleHR1cmUpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgorCiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0zMjksNiArMzM0LDQyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSCiAg
ICAgICAgIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIGZhbHNlKTsKIH0KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCit7
CisgICAgaWYgKHRleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFw
cGVyOjpPcGVuR0xNb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9idWZmZXIpIHsK
KworICAgICAgICBJbnRTaXplIHNpemUgPSBuYXR1cmFsU2l6ZSgpOworCisgICAgICAgIG1fdGV4
dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSk7CisKKyAg
ICAgICAgY29uc3Qgdm9pZCAqc3JjRGF0YTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisg
ICAgICAgIEdzdE1hcEluZm8gc3JjSW5mbzsKKyAgICAgICAgZ3N0X2J1ZmZlcl9tYXAobV9idWZm
ZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOworICAgICAgICBzcmNEYXRhID0gc3JjSW5mby5k
YXRhOworI2Vsc2UKKyAgICAgICAgc3JjRGF0YSA9IEdTVF9CVUZGRVJfREFUQShtX2J1ZmZlcik7
CisjZW5kaWYKKyAgICAgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJD
b3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50
UG9pbnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5v
dE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisg
ICAgICAgIGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZzcmNJbmZvKTsKKyNlbmRpZgorCisg
ICAgICAgIGdzdF9idWZmZXJfdW5yZWYobV9idWZmZXIpOworICAgICAgICBtX2J1ZmZlciA9IDA7
CisgICAgfQorCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJh
d1RleHR1cmUoKm1fdGV4dHVyZS5nZXQoKSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5LCBt
YXNrKTsKK30KKyNlbmRpZgorCiAjaWYgVVNFKE5BVElWRV9GVUxMU0NSRUVOX1ZJREVPKQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjplbnRlckZ1bGxzY3JlZW4oKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5k
ZXggNDdhNzMzMC4uMDNkNTEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0yOSw2ICsyOSwxMCBAQAogCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgi
CisjZW5kaWYKKwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEJ1ZmZlciBHc3RCdWZmZXI7CiB0eXBlZGVm
IHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwogdHlwZWRlZiBzdHJ1Y3QgX0dzdE1lc3Nh
Z2UgR3N0TWVzc2FnZTsKQEAgLTQzLDcgKzQ3LDExIEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBJ
bnRSZWN0OwogY2xhc3MgR1N0cmVhbWVyR1dvcmxkOwogCi1jbGFzcyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7Citj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQorICAgICwgcHVibGljIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyCisjZW5kaWYKK3sKIAogcHVibGljOgogICAgIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKCk7CkBAIC05Myw2ICsxMDEsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGF1ZGlv
RGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0OwogICAgIHVuc2lnbmVkIHZpZGVvRGVjb2RlZEJ5dGVD
b3VudCgpIGNvbnN0OwogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKj4odGhpcyk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0
dXJlKiBtYXNrKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwogICAgIEdzdEVsZW1lbnQqIGNyZWF0ZVZpZGVv
U2luayhHc3RFbGVtZW50KiBwaXBlbGluZSk7CkBAIC0xMTksNiArMTMzLDkgQEAgcHJvdGVjdGVk
OgogICAgIHVuc2lnbmVkIGxvbmcgbV9tdXRlU2lnbmFsSGFuZGxlcjsKICAgICBHUmVmUHRyPEdz
dFBhZD4gbV92aWRlb1NpbmtQYWQ7CiAgICAgbXV0YWJsZSBJbnRTaXplIG1fdmlkZW9TaXplOwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQorICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisjZW5kaWYKIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggNWVlNTM3MS4uY2Uy
OTQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTY3LDYg
KzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9v
bCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9y
JiwgZmxvYXQgd2lkdGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWlu
dENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc0NvbnRlbnRzTGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXI7IH0KICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNDJkZTkwZC4uNmQ0NTY5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE3MjQsNyArMTcyNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05l
ZWREaXNwbGF5KCkKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3Io
KSk7CiAgICAgCi0gICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5ZXItPmRy
YXdzQ29udGVudCgpKQorICAgIGlmIChtX2dyYXBoaWNzTGF5ZXIgJiYgKG1fZ3JhcGhpY3NMYXll
ci0+ZHJhd3NDb250ZW50KCkgfHwgbV9ncmFwaGljc0xheWVyLT5oYXNDb250ZW50c0xheWVyKCkp
KQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAgIAogICAg
IGlmIChtX2ZvcmVncm91bmRMYXllciAmJiBtX2ZvcmVncm91bmRMYXllci0+ZHJhd3NDb250ZW50
KCkpCkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29u
dGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByKQogewogICAgIEFTU0VSVCgh
cGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKTsKIAotICAgIGlmIChtX2dyYXBoaWNzTGF5
ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgeworICAgIGlmIChtX2dyYXBo
aWNzTGF5ZXIgJiYgKG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkgfHwgbV9ncmFwaGlj
c0xheWVyLT5oYXNDb250ZW50c0xheWVyKCkpKSB7CiAgICAgICAgIEludFJlY3QgbGF5ZXJEaXJ0
eVJlY3QgPSByOwogICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX2dyYXBoaWNzTGF5ZXIt
Pm9mZnNldEZyb21SZW5kZXJlcigpKTsKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVk
c0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QpOwotLSAKMS43LjExLjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191247</attachid>
            <date>2013-03-04 07:56:23 -0800</date>
            <delta_ts>2013-03-20 10:45:42 -0700</delta_ts>
            <desc>simple patch for video composition</desc>
            <filename>0001-texmap-GStreamer-Composited-Video-support.patch</filename>
            <type>text/plain</type>
            <size>8453</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSAxYmFhYWQyNzFjMGZhMjc1Y2RjYTk4YTQ0MDQ2ZmQyODNiNzY2Zjg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBcm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCAyMSBGZWIgMjAxMyAxMjo1NTowMyArMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIFt0ZXhtYXBdW0dTdHJlYW1lcl0gQ29tcG9zaXRlZCBWaWRlbyBzdXBwb3J0CgotLS0K
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgIDIg
KwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCAgfCA1
NiArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuaCAgICB8IDIyICsrKysrKysrLQogLi4uL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCAgICB8ICA0ICstCiA1IGZpbGVzIGNoYW5nZWQs
IDgyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYmM3MjcwNS4uZWY3ZTg5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MDEsNiArNDAxLDggQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHIKICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAg
ICAgY2xlYXJNZWRpYVBsYXllcihNZWRpYVJlc291cmNlKTsKICAgICAgICAgICAgIHNjaGVkdWxl
TG9hZChNZWRpYVJlc291cmNlKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKQorICAgICAg
ICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gY29udHJvbHNBdHRyKQogICAgICAgICBjb25maWd1cmVNZWRp
YUNvbnRyb2xzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKaW5kZXggZWE4ZTEzMy4uN2JmMDMwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtOTcsNyArOTcs
MTEgQEAgc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0
Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1MKIAogc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQ
cml2YXRlUmVwYWludENhbGxiYWNrKFdlYktpdFZpZGVvU2luayosIEdzdEJ1ZmZlciAqYnVmZmVy
LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXJQcml2YXRlKQogeworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQor
ICAgIHBsYXllclByaXZhdGUtPnVwZGF0ZVRleHR1cmUoYnVmZmVyKTsKKyNlbHNlCiAgICAgcGxh
eWVyUHJpdmF0ZS0+dHJpZ2dlclJlcGFpbnQoYnVmZmVyKTsKKyNlbmRpZgogfQogCiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCkBAIC0yOTQsNiArMjk4LDM4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZUNoYW5nZWQoKQogICAgIG1fbXV0ZVRpbWVySGFu
ZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVk
aWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQogCisK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShH
c3RCdWZmZXIqIGJ1ZmZlcikKK3sKKyAgICBpZiAoIUdTVF9JU19CVUZGRVIoYnVmZmVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNvbnN0IHZvaWQgKnNyY0RhdGE7CisgICAgSW50U2l6ZSBzaXplID0gbmF0dXJh
bFNpemUoKTsKKyAgICBtX3RleHR1cmUgPSBtX3RleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJl
RnJvbVBvb2woc2l6ZSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEdzdE1hcElu
Zm8gc3JjSW5mbzsKKyAgICBnc3RfYnVmZmVyX21hcChidWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQ
X1JFQUQpOworICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7CisjZWxzZQorICAgIHNyY0RhdGEg
PSBHU1RfQlVGRkVSX0RBVEEoYnVmZmVyKTsKKyNlbmRpZgorCisgICAgbV90ZXh0dXJlLT51cGRh
dGVDb250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAs
IDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJp
dG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKworI2lm
ZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZzcmNJ
bmZvKTsKKyNlbmRpZgorCisgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsgLy8gQFRPRE8gaG93IGRv
IHdlIGZvcmNlIHRoZSByZXBhaW50aW5nIGluIHRoZSB0ZXh0dXJlIG1hcHBlcj8KK30KKyNlbmRp
ZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50
KEdzdEJ1ZmZlciogYnVmZmVyKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR1NUX0lTX0JVRkZF
UihidWZmZXIpKTsKQEAgLTMwOCw2ICszNDQsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIGlmIChtX3RleHR1cmUpCisgICAgICAg
IHJldHVybjsKKyNlbmRpZgorCiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0zMjksNiArMzcwLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBJbnRSCiAgICAgICAgIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIERv
Tm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGZhbHNlKTsKIH0KIAorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQordm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFw
cGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHkpCit7CisgICAgaWYgKHRl
eHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xN
b2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodGV4dHVyZU1hcHBlciAhPSBtX3RleHR1
cmVNYXBwZXIpCisgICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IHRleHR1cmVNYXBwZXI7IC8vIEBU
T0RPIElzIHRoaXMgYSBzYW5lIGVub3VnaD8KKworICAgIGlmIChtX3RleHR1cmUpIHsKKyAgICAg
ICAgdGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1fdGV4dHVyZS5nZXQoKSwgdGFyZ2V0UmVj
dCwgbWF0cml4LCBvcGFjaXR5KTsKKyAgICB9Cit9CisjZW5kaWYKKwogI2lmIFVTRShOQVRJVkVf
RlVMTFNDUkVFTl9WSURFTykKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
ZW50ZXJGdWxsc2NyZWVuKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4IDQ3YTczMzAuLjYxZTYzMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMjksNiArMjks
MTAgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpbmNsdWRlICJUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllci5oIgorI2VuZGlmCisKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZm
ZXIgR3N0QnVmZmVyOwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEVsZW1lbnQgR3N0RWxlbWVudDsKIHR5
cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3NhZ2U7CkBAIC00Myw3ICs0NywxMSBAQCBj
bGFzcyBJbnRTaXplOwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKIAot
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAsIHB1YmxpYyBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgorI2VuZGlmCit7CiAKIHB1YmxpYzoKICAgICB+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpOwpAQCAtOTMsNiArMTAxLDE0IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB1bnNp
Z25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKIAorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSo+KHRoaXMpOyB9CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQgb3BhY2l0eSk7CisKKyAgICB2b2lkIHVwZGF0ZVRleHR1cmUoR3N0QnVmZmVyKiBidWZmZXIp
OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlKE1lZGlhUGxheWVyKik7CiAgICAgR3N0RWxlbWVudCogY3JlYXRlVmlkZW9TaW5rKEdzdEVs
ZW1lbnQqIHBpcGVsaW5lKTsKQEAgLTExOSw2ICsxMzUsMTAgQEAgcHJvdGVjdGVkOgogICAgIHVu
c2lnbmVkIGxvbmcgbV9tdXRlU2lnbmFsSGFuZGxlcjsKICAgICBHUmVmUHRyPEdzdFBhZD4gbV92
aWRlb1NpbmtQYWQ7CiAgICAgbXV0YWJsZSBJbnRTaXplIG1fdmlkZW9TaXplOworI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIFJl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgVGV4dHVyZU1hcHBlciogbV90ZXh0
dXJlTWFwcGVyOworI2VuZGlmCiB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5oCmluZGV4IDkzMjlmYmMuLmNhOWFlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBoYXNDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
c0xheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBG
bG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IGE4MDUyZjMuLjVlYTllZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzM3LDcgKzE3MzcsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSgpCiB7CiAgICAgQVNTRVJUKCFw
YWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpOwogICAgIAotICAgIGlmIChtX2dyYXBoaWNz
TGF5ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICBpZiAobV9ncmFw
aGljc0xheWVyICYmIChtX2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhp
Y3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXROZWVkc0Rpc3BsYXkoKTsKICAgICAKICAgICBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIgJiYgbV9m
b3JlZ3JvdW5kTGF5ZXItPmRyYXdzQ29udGVudCgpKQpAQCAtMTc1OCw3ICsxNzU4LDcgQEAgdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3Qg
SW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3Io
KSk7CiAKLSAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NMYXllci0+ZHJhd3ND
b250ZW50KCkpIHsKKyAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIChtX2dyYXBoaWNzTGF5ZXIt
PmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhpY3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSkg
ewogICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlSZWN0ID0gcjsKICAgICAgICAgbGF5ZXJEaXJ0
eVJlY3QubW92ZSgtbV9ncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAgICAg
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxheWVyRGlydHlSZWN0
KTsKLS0gCjEuNy4xMS43Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194084</attachid>
            <date>2013-03-20 10:45:42 -0700</date>
            <delta_ts>2013-03-25 10:05:54 -0700</delta_ts>
            <desc>New version of the composited video</desc>
            <filename>0001-Composited-Video-support.patch</filename>
            <type>text/plain</type>
            <size>9088</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSBjYjA3OWQ4MGZjN2Q5ODNjODI5MTRmZjQxODYwNmY1NTgxZDJhNjQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBcm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCAyMSBGZWIgMjAxMyAxMjo1NTowMyArMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAyICsKIC4uLi9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgIHwgNTcgKysrKysrKysrKysrKysrKysr
KysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggICAg
fCAyMiArKysrKysrKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaCAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgICAgfCAyNiArKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYWUyZDNiNS4uMTJkZTc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC00MDgsNiArNDA4LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHIKICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgY2xlYXJNZWRp
YVBsYXllcihMb2FkTWVkaWFSZXNvdXJjZSk7CiAgICAgICAgICAgICBzY2hlZHVsZURlbGF5ZWRB
Y3Rpb24oTG9hZE1lZGlhUmVzb3VyY2UpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisg
ICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb250cm9sc0F0dHIpCiAgICAgICAgIGNvbmZpZ3Vy
ZU1lZGlhQ29udHJvbHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBlYThlMTMzLi4wM2I0ZjUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC05Nyw3
ICs5NywxMSBAQCBzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRp
bWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHUwogCiBzdGF0aWMgdm9pZCBtZWRpYVBs
YXllclByaXZhdGVSZXBhaW50Q2FsbGJhY2soV2ViS2l0VmlkZW9TaW5rKiwgR3N0QnVmZmVyICpi
dWZmZXIsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllclByaXZhdGUpCiB7
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCisgICAgcGxheWVyUHJpdmF0ZS0+dXBkYXRlVGV4dHVyZShidWZmZXIpOworI2Vsc2UKICAg
ICBwbGF5ZXJQcml2YXRlLT50cmlnZ2VyUmVwYWludChidWZmZXIpOworI2VuZGlmCiB9CiAKIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTI5NCw2ICsyOTgsMzkgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptdXRlQ2hhbmdlZCgpCiAgICAgbV9tdXRlVGlt
ZXJIYW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
PihtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CiB9
CiAKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0
dXJlKEdzdEJ1ZmZlciogYnVmZmVyKQoreworICAgIGlmICghR1NUX0lTX0JVRkZFUihidWZmZXIp
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29uc3Qgdm9pZCAqc3JjRGF0YTsKKyAgICBJbnRTaXplIHNpemUgPSBu
YXR1cmFsU2l6ZSgpOworICAgIG1fdGV4dHVyZSA9IG1fdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRl
eHR1cmVGcm9tUG9vbChzaXplKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR3N0
TWFwSW5mbyBzcmNJbmZvOworICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNyY0luZm8sIEdT
VF9NQVBfUkVBRCk7CisgICAgc3JjRGF0YSA9IHNyY0luZm8uZGF0YTsKKyNlbHNlCisgICAgc3Jj
RGF0YSA9IEdTVF9CVUZGRVJfREFUQShidWZmZXIpOworI2VuZGlmCisKKyAgICAvLyBAVE9ETzog
c3VwcG9ydCBjcm9wcGluZworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwg
V2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6
OkludFBvaW50KDAsIDApLCBzaXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVD
YW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQorICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisjZW5kaWYKKworICAg
IG1fcGxheWVyLT5yZXBhaW50KCk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKEdTVF9JU19CVUZGRVIoYnVmZmVyKSk7CkBAIC0zMDgsNiArMzQ1
LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIGlm
IChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzI5
LDYgKzM3MSwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UgogICAgICAgICByZWN0LCBnc3RJ
bWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
LCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3Qg
RmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4
LCBmbG9hdCBvcGFjaXR5KQoreworICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25N
b2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHRleHR1cmVNYXBwZXIgIT0gbV90ZXh0dXJlTWFwcGVyKQorICAgICAgICBtX3RleHR1
cmVNYXBwZXIgPSB0ZXh0dXJlTWFwcGVyOyAvLyBAVE9ETyBJcyB0aGlzIGEgc2FuZSBlbm91Z2g/
CisKKyAgICBpZiAobV90ZXh0dXJlKSB7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdUZXh0
dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSk7CisgICAg
fQorfQorI2VuZGlmCisKICNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCA0
N2E3MzMwLi42MWU2MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNl
bmRpZgorCiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3Ry
dWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBH
c3RNZXNzYWdlOwpAQCAtNDMsNyArNDcsMTEgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIK
KyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UoKTsKQEAgLTkzLDYgKzEwMSwxNCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9EZWNv
ZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50
KCkgY29uc3Q7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UqPih0aGlzKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVy
aW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHkpOworCisgICAgdm9pZCB1
cGRhdGVUZXh0dXJlKEdzdEJ1ZmZlciogYnVmZmVyKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwogICAgIEdz
dEVsZW1lbnQqIGNyZWF0ZVZpZGVvU2luayhHc3RFbGVtZW50KiBwaXBlbGluZSk7CkBAIC0xMTks
NiArMTM1LDEwIEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVNpZ25hbEhh
bmRsZXI7CiAgICAgR1JlZlB0cjxHc3RQYWQ+IG1fdmlkZW9TaW5rUGFkOwogICAgIG11dGFibGUg
SW50U2l6ZSBtX3ZpZGVvU2l6ZTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90ZXh0
dXJlOworICAgIFRleHR1cmVNYXBwZXIqIG1fdGV4dHVyZU1hcHBlcjsKKyNlbmRpZgogfTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCA2MDQ0NGVlLi45
NTcyMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihi
b29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29s
b3ImLCBmbG9hdCB3aWR0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBh
aW50Q291bnRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGVudHNM
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllcjsgfQogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBjZWU1YTBmLi4yNmI5OTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTc3NiwxMCArMTc3NiwxNSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0QmxlbmRN
b2RlKEJsZW5kTW9kZSkKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWRE
aXNwbGF5KCkKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSk7
Ci0gICAgCi0gICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5ZXItPmRyYXdz
Q29udGVudCgpKQotICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwot
ICAgIAorCisgICAgaWYgKG1fZ3JhcGhpY3NMYXllcikgeworICAgICAgICBpZiAobV9ncmFwaGlj
c0xheWVyLT5oYXNDb250ZW50c0xheWVyKCkpIHsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXll
ci0+c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBo
aWNzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKG1fZm9yZWdy
b3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAg
bV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCkBAIC0xNzk4LDEwICsxODAz
LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5S
ZWN0KGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgQVNTRVJUKCFwYWludHNJbnRvQ29tcG9zaXRl
ZEFuY2VzdG9yKCkpOwogCi0gICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5
ZXItPmRyYXdzQ29udGVudCgpKSB7Ci0gICAgICAgIEludFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBy
OwotICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX2dyYXBoaWNzTGF5ZXItPm9mZnNldEZy
b21SZW5kZXJlcigpKTsKLSAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJ
blJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgIGlmIChtX2dyYXBoaWNzTGF5ZXIpIHsKKyAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSB7CisgICAgICAgICAg
ICAvLyBwYWludCB0aGUgd2hvbGUgZnJhbWUKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBoaWNz
TGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlS
ZWN0ID0gcjsKKyAgICAgICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fZ3JhcGhpY3NMYXll
ci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKG1fZm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0Nv
bnRlbnQoKSkgewotLSAKMS43LjExLjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194877</attachid>
            <date>2013-03-25 10:05:54 -0700</date>
            <delta_ts>2013-05-03 09:40:36 -0700</delta_ts>
            <desc>New version of the composited video</desc>
            <filename>my_new_patch.diff</filename>
            <type>text/plain</type>
            <size>20410</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSAxMzQxNjA5YjIxYmFmNDdmYjMwZjllNGQwYzkzOTNkMmU0MTNhYWI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBcm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCAyMSBGZWIgMjAxMyAxMjo1NTowMyArMDMwMApTdWJqZWN0OiBb
UEFUQ0ggMS84XSB1cGRhdGUgcGxheWVyIGluIHJlbmRlcmVyIHdoZW4gc291cmNlIGNoYW5nZWQK
ClRvIGF2b2lkIGEgY3Jhc2ggd2hlbiBjaGFuZ2luZyB2aWRlby5zcmMKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIg
aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDgxYjRkYmEuLjU3MTg3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDA4LDYgKzQwOCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAgICAg
ICAgIGlmICghdmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGNsZWFyTWVkaWFQbGF5ZXIo
TG9hZE1lZGlhUmVzb3VyY2UpOwogICAgICAgICAgICAgc2NoZWR1bGVEZWxheWVkQWN0aW9uKExv
YWRNZWRpYVJlc291cmNlKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKQorICAgICAgICAg
ICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gY29udHJvbHNBdHRyKQogICAgICAgICBjb25maWd1cmVNZWRpYUNv
bnRyb2xzKCk7Ci0tIAoxLjcuMTEuNwoKCkZyb20gMjQ4MTE0OWVlZGZmNzBiOTJlNmU4ZGViMDE2
ZjEzZWE0YThhM2RkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJuYXVkIFJlbmV2
aWVyIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CkRhdGU6IFRodSwgMjEgRmViIDIwMTMg
MTQ6MDY6MDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDIvOF0gc2V0IG5lZWRzIGRpc3BsYXkgdG8g
dGhlIGxheWVyIGluIHJlbmRlckxheWVyQmFja2luZwoKT3RoZXJ3aXNlLCB0aGUgcmVuZGVyaW5n
IHdhcyBub3QgdXBkYXRlZCB3aGVuIG5ldyBmcmFtZXMgd2VyZSBhdmFpbGFibGUuCi0tLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmggfCAxICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMg
aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5oCmluZGV4IDYwNDQ0ZWUuLjk1NzIwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlci5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZW50c0xheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYg
bmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCmluZGV4IDA2ZmJjNDAuLjY1MjE5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzgyLDcgKzE3ODIsNyBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSgpCiB7CiAgICAgQVNTRVJU
KCFwYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpOwogICAgIAotICAgIGlmIChtX2dyYXBo
aWNzTGF5ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICBpZiAobV9n
cmFwaGljc0xheWVyICYmIChtX2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3Jh
cGhpY3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSkKICAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICAKICAgICBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIgJiYg
bV9mb3JlZ3JvdW5kTGF5ZXItPmRyYXdzQ29udGVudCgpKQpAQCAtMTgwMyw3ICsxODAzLDcgQEAg
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29u
c3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0
b3IoKSk7CiAKLSAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIG1fZ3JhcGhpY3NMYXllci0+ZHJh
d3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9ncmFwaGljc0xheWVyICYmIChtX2dyYXBoaWNzTGF5
ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fZ3JhcGhpY3NMYXllci0+aGFzQ29udGVudHNMYXllcigp
KSkgewogICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlSZWN0ID0gcjsKICAgICAgICAgbGF5ZXJE
aXJ0eVJlY3QubW92ZSgtbV9ncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CiAg
ICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxheWVyRGlydHlS
ZWN0KTsKLS0gCjEuNy4xMS43CgoKRnJvbSBmNjg2NTMzZmZjMzYxZTg2ZGEwNGZkMzY0MWIyZjY5
NzVjNDVhOGQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1B
RGN0b3I9MjBNYW51ZWw9MjBKPUMzPUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNv
bT4KRGF0ZTogVGh1LCAyMSBGZWIgMjAxMyAyMjowOToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0gg
My84XSBzaG93IHZpZGVvIGJ1ZmZlciBhcyB0ZXh0dXJlCgotLS0KIC4uLi9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgIHwgNDEgKysrKysrKysrKysrKysrKysr
KysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggICAg
fCAxOSArKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDEgZGVs
ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAKaW5kZXggZWE4ZTEzMy4uMTMwZWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMzA4LDYgKzMwOCwx
MSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpw
YWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Cisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBpZiAo
Y29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTMyOSw2
ICszMzQsNDIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFIKICAgICAgICAgcmVjdCwgZ3N0SW1h
Z2UtPnJlY3QoKSwgQ29tcG9zaXRlQ29weSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwg
ZmFsc2UpOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBh
aW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwg
ZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKK3sKKyAgICBpZiAodGV4dHVyZU1h
cHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2J1ZmZlcikgeworCisgICAgICAgIEludFNpemUg
c2l6ZSA9IG5hdHVyYWxTaXplKCk7CisKKyAgICAgICAgbV90ZXh0dXJlID0gdGV4dHVyZU1hcHBl
ci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKKworICAgICAgICBjb25zdCB2b2lkICpz
cmNEYXRhOworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgR3N0TWFwSW5mbyBz
cmNJbmZvOworICAgICAgICBnc3RfYnVmZmVyX21hcChtX2J1ZmZlciwgJnNyY0luZm8sIEdTVF9N
QVBfUkVBRCk7CisgICAgICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7CisjZWxzZQorICAgICAg
ICBzcmNEYXRhID0gR1NUX0JVRkZFUl9EQVRBKG1fYnVmZmVyKTsKKyNlbmRpZgorICAgICAgICBt
X3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKHNyY0RhdGEsIFdlYkNvcmU6OkludFJlY3QoV2ViQ29y
ZTo6SW50UG9pbnQoMCwgMCksIHNpemUpLCBXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZS53
aWR0aCgpICogNCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFn
ZURhdGEpOworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgZ3N0X2J1ZmZlcl91
bm1hcChtX2J1ZmZlciwgJnNyY0luZm8pOworI2VuZGlmCisKKyAgICAgICAgZ3N0X2J1ZmZlcl91
bnJlZihtX2J1ZmZlcik7CisgICAgICAgIG1fYnVmZmVyID0gMDsKKyAgICB9CisKKyAgICBpZiAo
bV90ZXh0dXJlKQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqbV90ZXh0dXJl
LmdldCgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNpdHksIG1hc2spOworfQorI2VuZGlmCisK
ICNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OmVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCA0N2E3MzMwLi4wM2Q1MTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNlbmRpZgorCiB0eXBlZGVm
IHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50
IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBHc3RNZXNzYWdlOwpAQCAt
NDMsNyArNDcsMTEgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBHU3Ry
ZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBw
dWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CisgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIKKyNlbmRpZgorewogCiBw
dWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoKTsKQEAgLTkzLDYg
KzEwMSwxMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9EZWNvZGVkQnl0ZUNvdW50KCkg
Y29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
KyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqPih0aGlzKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0
dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spOworI2VuZGlm
CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlh
UGxheWVyKik7CiAgICAgR3N0RWxlbWVudCogY3JlYXRlVmlkZW9TaW5rKEdzdEVsZW1lbnQqIHBp
cGVsaW5lKTsKQEAgLTExOSw2ICsxMzMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbG9u
ZyBtX211dGVTaWduYWxIYW5kbGVyOwogICAgIEdSZWZQdHI8R3N0UGFkPiBtX3ZpZGVvU2lua1Bh
ZDsKICAgICBtdXRhYmxlIEludFNpemUgbV92aWRlb1NpemU7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgUmVmUHRyPEJpdG1h
cFRleHR1cmU+IG1fdGV4dHVyZTsKKyNlbmRpZgogfTsKIH0KIAotLSAKMS43LjExLjcKCgpGcm9t
IDFlNGE5MTcyZDYzMjViYTdmZTkzNDRjNTUwMWU1YjNkZGQ2MGYxYTkgTW9uIFNlcCAxNyAwMDow
MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9WPUMzPUFEY3Rvcj0yME1hbnVlbD0yMEo9QzM9QTFx
dWV6PTIwTGVhbD89CiA8dmphcXVlekBpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDQgTWFyIDIwMTMg
MTE6NDA6MzMgKzAzMDAKU3ViamVjdDogW1BBVENIIDQvOF0gZGVjb3VwbGUgdGhlIGJ1ZmZlciB1
cGRhdGUgYW5kIHRoZSB0ZXh0dXJlIGV4cG9zaW5nCgotLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgIHwgNjcgKysrKysrKysrKysrKy0tLS0tLS0t
LQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggICAgfCAg
NSArLQogMiBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKaW5kZXggMTMwZWU4MS4uN2JmMDMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtOTcsNyArOTcsMTEgQEAgc3RhdGlj
IGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVk
aWFQbGF5ZXJQcml2YXRlR1MKIAogc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlUmVwYWlu
dENhbGxiYWNrKFdlYktpdFZpZGVvU2luayosIEdzdEJ1ZmZlciAqYnVmZmVyLCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXJQcml2YXRlKQogeworI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIHBsYXllclBy
aXZhdGUtPnVwZGF0ZVRleHR1cmUoYnVmZmVyKTsKKyNlbHNlCiAgICAgcGxheWVyUHJpdmF0ZS0+
dHJpZ2dlclJlcGFpbnQoYnVmZmVyKTsKKyNlbmRpZgogfQogCiBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCkBAIC0yOTQsNiArMjk4LDM4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZTo6bXV0ZUNoYW5nZWQoKQogICAgIG1fbXV0ZVRpbWVySGFuZGxlciA9IGdfdGlt
ZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2
YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQogCisKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShHc3RCdWZmZXIqIGJ1
ZmZlcikKK3sKKyAgICBpZiAoIUdTVF9JU19CVUZGRVIoYnVmZmVyKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGNv
bnN0IHZvaWQgKnNyY0RhdGE7CisgICAgSW50U2l6ZSBzaXplID0gbmF0dXJhbFNpemUoKTsKKyAg
ICBtX3RleHR1cmUgPSBtX3RleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6
ZSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEdzdE1hcEluZm8gc3JjSW5mbzsK
KyAgICBnc3RfYnVmZmVyX21hcChidWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOworICAg
IHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7CisjZWxzZQorICAgIHNyY0RhdGEgPSBHU1RfQlVGRkVS
X0RBVEEoYnVmZmVyKTsKKyNlbmRpZgorCisgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhz
cmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwg
V2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1hcFRleHR1cmU6
OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKworI2lmZGVmIEdTVF9BUElf
VkVSU0lPTl8xCisgICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZzcmNJbmZvKTsKKyNlbmRp
ZgorCisgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsgLy8gQFRPRE8gaG93IGRvIHdlIGZvcmNlIHRo
ZSByZXBhaW50aW5nIGluIHRoZSB0ZXh0dXJlIG1hcHBlcj8KK30KKyNlbmRpZgorCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KEdzdEJ1ZmZlciog
YnVmZmVyKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR1NUX0lTX0JVRkZFUihidWZmZXIpKTsK
QEAgLTMzNSwzOCArMzcxLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSCiB9CiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIo
VGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCBCaXRt
YXBUZXh0dXJlKiBtYXNrKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpw
YWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgs
IGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKHRleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1v
ZGUoKSAhPSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAobV9idWZmZXIpIHsKLQotICAgICAgICBJbnRTaXplIHNpemUgPSBuYXR1cmFsU2l6ZSgp
OworICAgIGlmICh0ZXh0dXJlTWFwcGVyICE9IG1fdGV4dHVyZU1hcHBlcikKKyAgICAgICAgbV90
ZXh0dXJlTWFwcGVyID0gdGV4dHVyZU1hcHBlcjsgLy8gQFRPRE8gSXMgdGhpcyBhIHNhbmUgZW5v
dWdoPwogCi0gICAgICAgIG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJl
RnJvbVBvb2woc2l6ZSk7Ci0KLSAgICAgICAgY29uc3Qgdm9pZCAqc3JjRGF0YTsKLQotI2lmZGVm
IEdTVF9BUElfVkVSU0lPTl8xCi0gICAgICAgIEdzdE1hcEluZm8gc3JjSW5mbzsKLSAgICAgICAg
Z3N0X2J1ZmZlcl9tYXAobV9idWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOwotICAgICAg
ICBzcmNEYXRhID0gc3JjSW5mby5kYXRhOwotI2Vsc2UKLSAgICAgICAgc3JjRGF0YSA9IEdTVF9C
VUZGRVJfREFUQShtX2J1ZmZlcik7Ci0jZW5kaWYKLSAgICAgICAgbV90ZXh0dXJlLT51cGRhdGVD
b250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDAp
LCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1h
cFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKLQotI2lmZGVm
IEdTVF9BUElfVkVSU0lPTl8xCi0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAobV9idWZmZXIsICZz
cmNJbmZvKTsKLSNlbmRpZgotCi0gICAgICAgIGdzdF9idWZmZXJfdW5yZWYobV9idWZmZXIpOwot
ICAgICAgICBtX2J1ZmZlciA9IDA7CisgICAgaWYgKG1fdGV4dHVyZSkgeworICAgICAgICB0ZXh0
dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqbV90ZXh0dXJlLmdldCgpLCB0YXJnZXRSZWN0LCBtYXRy
aXgsIG9wYWNpdHkpOwogICAgIH0KLQotICAgIGlmIChtX3RleHR1cmUpCi0gICAgICAgIHRleHR1
cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJp
eCwgb3BhY2l0eSwgbWFzayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggMDNkNTEwZC4uNjFlNjMwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBA
IC0xMDQsNyArMTA0LDkgQEAgcHVibGljOgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZSo+KHRoaXMpOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwg
Qml0bWFwVGV4dHVyZSogbWFzayk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFw
cGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSk7CisKKyAgICB2b2lkIHVwZGF0ZVRl
eHR1cmUoR3N0QnVmZmVyKiBidWZmZXIpOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKQEAgLTEzNSw2
ICsxMzcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgbXV0YWJsZSBJbnRTaXplIG1fdmlkZW9TaXplOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQogICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgVGV4dHVyZU1hcHBl
ciogbV90ZXh0dXJlTWFwcGVyOwogI2VuZGlmCiB9OwogfQotLSAKMS43LjExLjcKCgpGcm9tIGI0
OTA0YWExM2VjNjliMDI0ZjViYTJlN2U0ZThjNjNmNWQ1ZGE5NTIgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCkZyb206ID0/VVRGLTg/cT9WPUMzPUFEY3Rvcj0yME1hbnVlbD0yMEo9QzM9QTFxdWV6
PTIwTGVhbD89CiA8dmphcXVlekBpZ2FsaWEuY29tPgpEYXRlOiBXZWQsIDIwIE1hciAyMDEzIDEz
OjA2OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSCA1LzhdIHVzZSBzZXRDb250ZW50c05lZWRzRGlz
cGxheQoKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cCB8IDI2ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNl
cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNjUyMTk2MS4uMzM2YWQ1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE3ODEs
MTAgKzE3ODEsMTUgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5kTW9kZShCbGVu
ZE1vZGUpCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSgp
CiB7CiAgICAgQVNTRVJUKCFwYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpOwotICAgIAot
ICAgIGlmIChtX2dyYXBoaWNzTGF5ZXIgJiYgKG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50
KCkgfHwgbV9ncmFwaGljc0xheWVyLT5oYXNDb250ZW50c0xheWVyKCkpKQotICAgICAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwotICAgIAorCisgICAgaWYgKG1fZ3JhcGhp
Y3NMYXllcikgeworICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5oYXNDb250ZW50c0xheWVy
KCkpIHsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNOZWVkc0Rpc3Bs
YXkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBoaWNzTGF5ZXItPmRyYXdzQ29udGVudCgp
KSB7CisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAg
ICAgICB9CisgICAgfQorCiAgICAgaWYgKG1fZm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3Vu
ZExheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5l
ZWRzRGlzcGxheSgpOwogCkBAIC0xODAzLDEwICsxODA4LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIHIpCiB7
CiAgICAgQVNTRVJUKCFwYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpOwogCi0gICAgaWYg
KG1fZ3JhcGhpY3NMYXllciAmJiAobV9ncmFwaGljc0xheWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBt
X2dyYXBoaWNzTGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIoKSkpIHsKLSAgICAgICAgSW50UmVjdCBs
YXllckRpcnR5UmVjdCA9IHI7Ci0gICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fZ3JhcGhp
Y3NMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOwotICAgICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRpcnR5UmVjdCk7CisgICAgaWYgKG1fZ3JhcGhp
Y3NMYXllcikgeworICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5oYXNDb250ZW50c0xheWVy
KCkpIHsKKyAgICAgICAgICAgIC8vIHBhaW50IHRoZSB3aG9sZSBmcmFtZQorICAgICAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c05lZWRzRGlzcGxheSgpOworICAgICAgICB9IGVs
c2UgaWYgKG1fZ3JhcGhpY3NMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICAgICAgICAgIElu
dFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSByOworICAgICAgICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92
ZSgtbV9ncmFwaGljc0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CisgICAgICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRpcnR5UmVjdCk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIgJiYgbV9mb3JlZ3Jv
dW5kTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7Ci0tIAoxLjcuMTEuNwoKCkZyb20gN2UwNWI3YjM1
ZGQ1ODQ5YzI2OTU4ZDFkMzJlMDkxMzI4MGY2ZmE5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
RnJvbTogPT9VVEYtOD9xP1Y9QzM9QURjdG9yPTIwTWFudWVsPTIwSj1DMz1BMXF1ZXo9MjBMZWFs
Pz0KIDx2amFxdWV6QGlnYWxpYS5jb20+CkRhdGU6IFdlZCwgMjAgTWFyIDIwMTMgMjA6MDA6MzMg
KzAzMDAKU3ViamVjdDogW1BBVENIIDYvOF0gY29tbWVudHMKCi0tLQogLi4uL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCAgICB8
IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDdiZjAzMGQuLjAzYjRmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTMyMCwxMyArMzIwLDE0IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShHc3RCdWZmZXIq
IGJ1ZmZlcikKICAgICBzcmNEYXRhID0gR1NUX0JVRkZFUl9EQVRBKGJ1ZmZlcik7CiAjZW5kaWYK
IAorICAgIC8vIEBUT0RPOiBzdXBwb3J0IGNyb3BwaW5nCiAgICAgbV90ZXh0dXJlLT51cGRhdGVD
b250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDAp
LCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1h
cFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKIAogI2lmZGVm
IEdTVF9BUElfVkVSU0lPTl8xCiAgICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZzcmNJbmZv
KTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsgLy8gQFRPRE8gaG93IGRvIHdl
IGZvcmNlIHRoZSByZXBhaW50aW5nIGluIHRoZSB0ZXh0dXJlIG1hcHBlcj8KKyAgICBtX3BsYXll
ci0+cmVwYWludCgpOwogfQogI2VuZGlmCiAKLS0gCjEuNy4xMS43CgoKRnJvbSA2ODUxYjlmNDMw
OTYxNTA5ODhmOGFjNzFlYzdkMjdjNTMyZTIwZWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG
cm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMzPUExcXVlej0yMExlYWw/
PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogTW9uLCAyNSBNYXIgMjAxMyAxMzo1MjoxNiAr
MDMwMApTdWJqZWN0OiBbUEFUQ0ggNy84XSBpbml0IHRvIG51bGwgY2xhc3MgYXR0cmlidXRlcwoK
LS0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwICAgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo
KykKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5jcHAKaW5kZXggMDNiNGY1MS4uMjRkZDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMTEyLDYgKzExMiwxMCBAQCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogICAgICwgbV9idWZmZXIoMCkKICAgICAsIG1fdm9sdW1l
VGltZXJIYW5kbGVyKDApCiAgICAgLCBtX211dGVUaW1lckhhbmRsZXIoMCkKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAsIG1f
dGV4dHVyZSgwKQorICAgICwgbV90ZXh0dXJlTWFwcGVyKDApCisjZW5kaWYKIHsKIH0KIAotLSAK
MS43LjExLjcKCgpGcm9tIGY2MzdlNjA2YTI0ZDBiZDU2MjZhYjE0ZmRmMThlYzNjODQyOWQwYjIg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9WPUMzPUFEY3Rvcj0yME1h
bnVlbD0yMEo9QzM9QTFxdWV6PTIwTGVhbD89CiA8dmphcXVlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDI1IE1hciAyMDEzIDE4OjUwOjA3ICswMzAwClN1YmplY3Q6IFtQQVRDSCA4LzhdIGhvbm9y
IGVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZwoKLS0tCiAuLi4vZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0t
LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAK
aW5kZXggMjRkZDdiNC4uY2E3NDg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtOTcsMTEgKzk3LDcgQEAgc3RhdGljIGdi
b29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQ
bGF5ZXJQcml2YXRlR1MKIAogc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlUmVwYWludENh
bGxiYWNrKFdlYktpdFZpZGVvU2luayosIEdzdEJ1ZmZlciAqYnVmZmVyLCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKiBwbGF5ZXJQcml2YXRlKQogewotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQotICAgIHBsYXllclByaXZh
dGUtPnVwZGF0ZVRleHR1cmUoYnVmZmVyKTsKLSNlbHNlCiAgICAgcGxheWVyUHJpdmF0ZS0+dHJp
Z2dlclJlcGFpbnQoYnVmZmVyKTsKLSNlbmRpZgogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBw
bGF5ZXIpCkBAIC0zMDYsOSArMzAyLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjptdXRlQ2hhbmdlZCgpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnVwZGF0ZVRleHR1cmUoR3N0QnVmZmVyKiBidWZmZXIpCiB7Ci0gICAgaWYgKCFHU1Rf
SVNfQlVGRkVSKGJ1ZmZlcikpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICghbV90ZXh0dXJl
TWFwcGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTMzMCwxNSArMzIzLDIyIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShHc3RCdWZmZXIqIGJ1
ZmZlcikKICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIGdzdF9idWZmZXJfdW5tYXAoYnVm
ZmVyLCAmc3JjSW5mbyk7CiAjZW5kaWYKLQotICAgIG1fcGxheWVyLT5yZXBhaW50KCk7CiB9CiAj
ZW5kaWYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVw
YWludChHc3RCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKEdTVF9JU19C
VUZGRVIoYnVmZmVyKSk7Ci0gICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVy
KTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQorICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5
ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVy
YXRlZChtX3BsYXllcikpCisgICAgICAgIHVwZGF0ZVRleHR1cmUoYnVmZmVyKTsKKyAgICBlbHNl
CisjZW5kaWYKKyAgICB7CisgICAgICAgIGdzdF9idWZmZXJfcmVwbGFjZSgmbV9idWZmZXIsIGJ1
ZmZlcik7CisgICAgfQorCiAgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKIH0KIAotLSAKMS43LjEx
LjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198493</attachid>
            <date>2013-04-17 03:27:57 -0700</date>
            <delta_ts>2013-05-03 09:46:36 -0700</delta_ts>
            <desc>compsited video with GstSurface{Meta/Convert} support </desc>
            <filename>0001-Composited-Video-support.patch</filename>
            <type>text/plain</type>
            <size>9088</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSBjYjA3OWQ4MGZjN2Q5ODNjODI5MTRmZjQxODYwNmY1NTgxZDJhNjQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBcm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCAyMSBGZWIgMjAxMyAxMjo1NTowMyArMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwICAgICAgICAgICB8ICAyICsKIC4uLi9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgIHwgNTcgKysrKysrKysrKysrKysrKysr
KysrKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggICAg
fCAyMiArKysrKysrKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaCAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAgICAgfCAyNiArKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYWUyZDNiNS4uMTJkZTc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC00MDgsNiArNDA4LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHIKICAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgY2xlYXJNZWRp
YVBsYXllcihMb2FkTWVkaWFSZXNvdXJjZSk7CiAgICAgICAgICAgICBzY2hlZHVsZURlbGF5ZWRB
Y3Rpb24oTG9hZE1lZGlhUmVzb3VyY2UpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisg
ICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb250cm9sc0F0dHIpCiAgICAgICAgIGNvbmZpZ3Vy
ZU1lZGlhQ29udHJvbHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBlYThlMTMzLi4wM2I0ZjUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC05Nyw3
ICs5NywxMSBAQCBzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRp
bWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHUwogCiBzdGF0aWMgdm9pZCBtZWRpYVBs
YXllclByaXZhdGVSZXBhaW50Q2FsbGJhY2soV2ViS2l0VmlkZW9TaW5rKiwgR3N0QnVmZmVyICpi
dWZmZXIsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllclByaXZhdGUpCiB7
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCisgICAgcGxheWVyUHJpdmF0ZS0+dXBkYXRlVGV4dHVyZShidWZmZXIpOworI2Vsc2UKICAg
ICBwbGF5ZXJQcml2YXRlLT50cmlnZ2VyUmVwYWludChidWZmZXIpOworI2VuZGlmCiB9CiAKIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTI5NCw2ICsyOTgsMzkgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptdXRlQ2hhbmdlZCgpCiAgICAgbV9tdXRlVGlt
ZXJIYW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
PihtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CiB9
CiAKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0
dXJlKEdzdEJ1ZmZlciogYnVmZmVyKQoreworICAgIGlmICghR1NUX0lTX0JVRkZFUihidWZmZXIp
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29uc3Qgdm9pZCAqc3JjRGF0YTsKKyAgICBJbnRTaXplIHNpemUgPSBu
YXR1cmFsU2l6ZSgpOworICAgIG1fdGV4dHVyZSA9IG1fdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRl
eHR1cmVGcm9tUG9vbChzaXplKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR3N0
TWFwSW5mbyBzcmNJbmZvOworICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNyY0luZm8sIEdT
VF9NQVBfUkVBRCk7CisgICAgc3JjRGF0YSA9IHNyY0luZm8uZGF0YTsKKyNlbHNlCisgICAgc3Jj
RGF0YSA9IEdTVF9CVUZGRVJfREFUQShidWZmZXIpOworI2VuZGlmCisKKyAgICAvLyBAVE9ETzog
c3VwcG9ydCBjcm9wcGluZworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwg
V2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6
OkludFBvaW50KDAsIDApLCBzaXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVD
YW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQorICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisjZW5kaWYKKworICAg
IG1fcGxheWVyLT5yZXBhaW50KCk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKEdTVF9JU19CVUZGRVIoYnVmZmVyKSk7CkBAIC0zMDgsNiArMzQ1
LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIGlm
IChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzI5
LDYgKzM3MSwyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UgogICAgICAgICByZWN0LCBnc3RJ
bWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
LCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3Qg
RmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4
LCBmbG9hdCBvcGFjaXR5KQoreworICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25N
b2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHRleHR1cmVNYXBwZXIgIT0gbV90ZXh0dXJlTWFwcGVyKQorICAgICAgICBtX3RleHR1
cmVNYXBwZXIgPSB0ZXh0dXJlTWFwcGVyOyAvLyBAVE9ETyBJcyB0aGlzIGEgc2FuZSBlbm91Z2g/
CisKKyAgICBpZiAobV90ZXh0dXJlKSB7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdUZXh0
dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSk7CisgICAg
fQorfQorI2VuZGlmCisKICNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCA0
N2E3MzMwLi42MWU2MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNl
bmRpZgorCiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3Ry
dWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBH
c3RNZXNzYWdlOwpAQCAtNDMsNyArNDcsMTEgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJl
Y3Q7CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIK
KyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UoKTsKQEAgLTkzLDYgKzEwMSwxNCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9EZWNv
ZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50
KCkgY29uc3Q7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UqPih0aGlzKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVy
aW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHkpOworCisgICAgdm9pZCB1
cGRhdGVUZXh0dXJlKEdzdEJ1ZmZlciogYnVmZmVyKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwogICAgIEdz
dEVsZW1lbnQqIGNyZWF0ZVZpZGVvU2luayhHc3RFbGVtZW50KiBwaXBlbGluZSk7CkBAIC0xMTks
NiArMTM1LDEwIEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVNpZ25hbEhh
bmRsZXI7CiAgICAgR1JlZlB0cjxHc3RQYWQ+IG1fdmlkZW9TaW5rUGFkOwogICAgIG11dGFibGUg
SW50U2l6ZSBtX3ZpZGVvU2l6ZTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90ZXh0
dXJlOworICAgIFRleHR1cmVNYXBwZXIqIG1fdGV4dHVyZU1hcHBlcjsKKyNlbmRpZgogfTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCA2MDQ0NGVlLi45
NTcyMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihi
b29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29s
b3ImLCBmbG9hdCB3aWR0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBh
aW50Q291bnRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGVudHNM
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllcjsgfQogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBjZWU1YTBmLi4yNmI5OTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTc3NiwxMCArMTc3NiwxNSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0QmxlbmRN
b2RlKEJsZW5kTW9kZSkKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWRE
aXNwbGF5KCkKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSk7
Ci0gICAgCi0gICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5ZXItPmRyYXdz
Q29udGVudCgpKQotICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwot
ICAgIAorCisgICAgaWYgKG1fZ3JhcGhpY3NMYXllcikgeworICAgICAgICBpZiAobV9ncmFwaGlj
c0xheWVyLT5oYXNDb250ZW50c0xheWVyKCkpIHsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXll
ci0+c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBo
aWNzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKG1fZm9yZWdy
b3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAg
bV9mb3JlZ3JvdW5kTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCkBAIC0xNzk4LDEwICsxODAz
LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5S
ZWN0KGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgQVNTRVJUKCFwYWludHNJbnRvQ29tcG9zaXRl
ZEFuY2VzdG9yKCkpOwogCi0gICAgaWYgKG1fZ3JhcGhpY3NMYXllciAmJiBtX2dyYXBoaWNzTGF5
ZXItPmRyYXdzQ29udGVudCgpKSB7Ci0gICAgICAgIEludFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBy
OwotICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX2dyYXBoaWNzTGF5ZXItPm9mZnNldEZy
b21SZW5kZXJlcigpKTsKLSAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJ
blJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgIGlmIChtX2dyYXBoaWNzTGF5ZXIpIHsKKyAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+aGFzQ29udGVudHNMYXllcigpKSB7CisgICAgICAgICAg
ICAvLyBwYWludCB0aGUgd2hvbGUgZnJhbWUKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX2dyYXBoaWNz
TGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgICAgICBJbnRSZWN0IGxheWVyRGlydHlS
ZWN0ID0gcjsKKyAgICAgICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fZ3JhcGhpY3NMYXll
ci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKG1fZm9yZWdyb3VuZExheWVyICYmIG1fZm9yZWdyb3VuZExheWVyLT5kcmF3c0Nv
bnRlbnQoKSkgewotLSAKMS43LjExLjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200421</attachid>
            <date>2013-05-03 09:40:36 -0700</date>
            <delta_ts>2013-05-13 06:19:22 -0700</delta_ts>
            <desc>Composited video support</desc>
            <filename>0002-bug-86410-composited-video-support.patch</filename>
            <type>text/plain</type>
            <size>5942</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSA5NjkwMjUyOGE1MTVjMjAyMDU1NTA4MTg3NzBhNzQyYmU5OGIwYmZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogVGh1LCAyMSBGZWIg
MjAxMyAyMjowOToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBidWcgIzg2NDEwOiBjb21w
b3NpdGVkIHZpZGVvIHN1cHBvcnQKCi0tLQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcCAgfCA3MCArKysrKysrKysrKysrKysrKysrKystCiAuLi4vZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCAgICB8IDIwICsrKysrKy0K
IDIgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5k
ZXggMGNjMjgxMC4uZTljYTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMTExLDYgKzExMSw5IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVk
aWFQbGF5ZXIqIHBsCiAgICAgLCBtX3JlcGFpbnRIYW5kbGVyKDApCiAgICAgLCBtX3ZvbHVtZVNp
Z25hbEhhbmRsZXIoMCkKICAgICAsIG1fbXV0ZVNpZ25hbEhhbmRsZXIoMCkKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICAsIG1f
dGV4dHVyZSgwKQorI2VuZGlmCiB7CiB9CiAKQEAgLTI5NywxMSArMzAwLDU0IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZUNoYW5nZWQoKQogICAgIG1fbXV0ZVRp
bWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVu
Yz4obWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwog
fQogCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4
dHVyZShHc3RCdWZmZXIqIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFjbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
c3Qgdm9pZCogc3JjRGF0YSA9IDA7CisgICAgSW50U2l6ZSBzaXplID0gbmF0dXJhbFNpemUoKTsK
KworICAgIGlmIChtX3RleHR1cmUtPnNpemUoKSAhPSBzaXplKQorICAgICAgICBtX3RleHR1cmUt
PnJlc2V0KHNpemUpOworCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RNYXBJbmZv
IHNyY0luZm87CisgICAgZ3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCAmc3JjSW5mbywgR1NUX01BUF9S
RUFEKTsKKyAgICBzcmNEYXRhID0gc3JjSW5mby5kYXRhOworI2Vsc2UKKyAgICBzcmNEYXRhID0g
R1NUX0JVRkZFUl9EQVRBKGJ1ZmZlcik7CisjZW5kaWYKKworICAgIC8vIEBUT0RPOiBzdXBwb3J0
IGNyb3BwaW5nCisgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJDb3Jl
OjpJbnRSZWN0KFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9p
bnQoMCwgMCksIHNpemUud2lkdGgoKSAqIDQsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1v
ZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAg
Z3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZzcmNJbmZvKTsKKyNlbmRpZgorCisgICAgY2xpZW50
KCktPnNldFBsYXRmb3JtTGF5ZXJOZWVkc0Rpc3BsYXkoKTsKK30KKyNlbmRpZgorCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KEdzdEJ1ZmZlciog
YnVmZmVyKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR1NUX0lTX0JVRkZFUihidWZmZXIpKTsK
LSAgICBnc3RfYnVmZmVyX3JlcGxhY2UoJm1fYnVmZmVyLCBidWZmZXIpOwotICAgIG1fcGxheWVy
LT5yZXBhaW50KCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKKyAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
ICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAgICAgICB1cGRhdGVUZXh0dXJlKGJ1ZmZlcik7
CisgICAgZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICBnc3RfYnVmZmVyX3JlcGxhY2UoJm1f
YnVmZmVyLCBidWZmZXIpOworICAgICAgICBtX3BsYXllci0+cmVwYWludCgpOworICAgIH0KIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzZXRTaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCkBAIC0zMTEsNiArMzU3LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAg
ICByZXR1cm47CisjZW5kaWYKKwogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMzMyLDYgKzM4MywyMSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UgogICAgICAgICByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5KQoreworICAgIGlmICh0
ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVyZU1hcHBlcjo6T3BlbkdM
TW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3RleHR1cmUpIHsKKyAgICAgICAg
bV90ZXh0dXJlID0gdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChuYXR1cmFs
U2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRleHR1cmVNYXBwZXItPmRy
YXdUZXh0dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSk7
Cit9CisjZW5kaWYKKwogI2lmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZW50ZXJGdWxsc2NyZWVuKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4IDQ3
YTczMzAuLjE0MTE4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuaApAQCAtMjksNiArMjksMTAgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgorI2Vu
ZGlmCisKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIgR3N0QnVmZmVyOwogdHlwZWRlZiBzdHJ1
Y3QgX0dzdEVsZW1lbnQgR3N0RWxlbWVudDsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdz
dE1lc3NhZ2U7CkBAIC00Myw3ICs0NywxMSBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgSW50UmVj
dDsKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgeworY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyAgICAsIHB1YmxpYyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgor
I2VuZGlmCit7CiAKIHB1YmxpYzoKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSgpOwpAQCAtOTMsNiArMTAxLDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhdWRpb0RlY29k
ZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQo
KSBjb25zdDsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQorICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSo+KHRoaXMpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0
dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGZsb2F0KTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwogICAgIEdzdEVsZW1lbnQq
IGNyZWF0ZVZpZGVvU2luayhHc3RFbGVtZW50KiBwaXBlbGluZSk7CkBAIC0xMTksNiArMTMzLDEw
IEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVNpZ25hbEhhbmRsZXI7CiAg
ICAgR1JlZlB0cjxHc3RQYWQ+IG1fdmlkZW9TaW5rUGFkOwogICAgIG11dGFibGUgSW50U2l6ZSBt
X3ZpZGVvU2l6ZTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyAgICB2b2lkIHVwZGF0ZVRleHR1cmUoR3N0QnVmZmVyKiBidWZmZXIp
OworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisjZW5kaWYKIH07CiB9CiAK
LS0gCjEuNy4xMS43Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200423</attachid>
            <date>2013-05-03 09:46:36 -0700</date>
            <delta_ts>2013-05-29 02:53:51 -0700</delta_ts>
            <desc>GstSurface{Meta/Convert} support for gstreamer-vaapi elements (Gst 1.0)</desc>
            <filename>0003-GstSurface-support.patch</filename>
            <type>text/plain</type>
            <size>6450</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSBmYTBlZWI3OTdiMWM1N2E0YmFkYmZhZjEwMzVkY2ExZjQwNmI5ODQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogVHVlLCAyIEFwciAy
MDEzIDEzOjE1OjA1ICswNDAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIEdzdFN1cmZhY2Ugc3VwcG9y
dAoKLS0tCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
ICB8IDM4ICsrKysrKysrKysrKysrKysrKy0tLS0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5oICAgIHwgIDcgKysrKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwICAgICAgfCAgOCArKystLQogU291cmNlL2F1dG90b29s
cy9GaW5kRGVwZW5kZW5jaWVzLm00ICAgICAgICAgICAgICAgfCAgMSArCiA0IGZpbGVzIGNoYW5n
ZWQsIDQ1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGU5Y2EzMjEuLmM1
YmIzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAKQEAgLTUxLDYgKzUxLDEyIEBACiAjaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMv
c3RyZWFtdm9sdW1lLmg+CiAjZW5kaWYKIAorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCisjZW5kaWYKKyNlbmRpZgorCiBHU1RfREVCVUdf
Q0FURUdPUllfU1RBVElDKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcpOwogI2RlZmluZSBHU1Rf
Q0FUX0RFRkFVTFQgd2Via2l0X21lZGlhX3BsYXllcl9kZWJ1ZwogCkBAIC0xMTMsNiArMTE5LDkg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZShNZWRpYVBsYXllciogcGwKICAgICAsIG1fbXV0ZVNpZ25hbEhhbmRsZXIoMCkK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkKICAgICAsIG1fdGV4dHVyZSgwKQorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgLCBt
X3N1cmZhY2VDb252ZXJ0ZXIoMCkKKyNlbmRpZgogI2VuZGlmCiB7CiB9CkBAIC0zMTcsMTggKzMy
NiwzMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1
cmUoR3N0QnVmZmVyKiBidWZmZXIpCiAgICAgICAgIG1fdGV4dHVyZS0+cmVzZXQoc2l6ZSk7CiAK
ICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQotICAgIEdzdE1hcEluZm8gc3JjSW5mbzsKLSAgICBn
c3RfYnVmZmVyX21hcChidWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOwotICAgIHNyY0Rh
dGEgPSBzcmNJbmZvLmRhdGE7CisgICAgR3N0U3VyZmFjZU1ldGEgKnN1cmZhY2UgPSBnc3RfYnVm
ZmVyX2dldF9zdXJmYWNlX21ldGEoYnVmZmVyKTsKKworICAgIGlmICghc3VyZmFjZSkgeworICAg
ICAgICBHc3RNYXBJbmZvIHNyY0luZm87CisgICAgICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwg
JnNyY0luZm8sIEdTVF9NQVBfUkVBRCk7CisgICAgICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRhdGE7
CiAjZWxzZQotICAgIHNyY0RhdGEgPSBHU1RfQlVGRkVSX0RBVEEoYnVmZmVyKTsKKyAgICAgICAg
c3JjRGF0YSA9IEdTVF9CVUZGRVJfREFUQShidWZmZXIpOwogI2VuZGlmCiAKLSAgICAvLyBAVE9E
Tzogc3VwcG9ydCBjcm9wcGluZwotICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0
YSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNv
cmU6OkludFBvaW50KDAsIDApLCBzaXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRh
dGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CisgICAgICAgIC8vIEBUT0RPOiBzdXBw
b3J0IGNyb3BwaW5nCisgICAgICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwg
V2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6
OkludFBvaW50KDAsIDApLCBzaXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVD
YW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAKICNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQotICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisgICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KCFtX3N1cmZhY2VDb252ZXJ0ZXIpIHsKKyAgICAgICAgICAgIEdWYWx1ZSB0ZXh0dXJlVmFsdWUg
PSBHX1ZBTFVFX0lOSVQ7CisgICAgICAgICAgICBnX3ZhbHVlX2luaXQoJnRleHR1cmVWYWx1ZSwg
R19UWVBFX1VJTlQpOworICAgICAgICAgICAgY29uc3QgQml0bWFwVGV4dHVyZUdMKiB0ZXh0dXJl
R0wgPSBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUuZ2V0KCkp
OworICAgICAgICAgICAgZ192YWx1ZV9zZXRfdWludCgmdGV4dHVyZVZhbHVlLCB0ZXh0dXJlR0wt
PmlkKCkpOworICAgICAgICAgICAgbV9zdXJmYWNlQ29udmVydGVyID0gYWRvcHRHUmVmKGdzdF9z
dXJmYWNlX21ldGFfY3JlYXRlX2NvbnZlcnRlcihzdXJmYWNlLCAib3BlbmdsIiwgJnRleHR1cmVW
YWx1ZSkpOworICAgICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChtX3N1cmZhY2VDb252ZXJ0ZXIu
Z2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgZ3N0X3N1cmZhY2VfY29udmVydGVyX3VwbG9h
ZChtX3N1cmZhY2VDb252ZXJ0ZXIuZ2V0KCksIGJ1ZmZlcik7CisgICAgfQogI2VuZGlmCiAKICAg
ICBjbGllbnQoKS0+c2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggMTQxMThiNS4u
ZDZjYjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCkBAIC0zMSw2ICszMSwxMCBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXIuaCIKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorI2RlZmluZSBHU1Rf
VVNFX1VOU1RBQkxFX0FQSSAxCisjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHN1cmZhY2VtZXRhLmg+
CisjZW5kaWYKICNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsK
QEAgLTEzNiw2ICsxNDAsOSBAQCBwcm90ZWN0ZWQ6CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgdm9pZCB1cGRhdGVUZXh0dXJl
KEdzdEJ1ZmZlciogYnVmZmVyKTsKICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV90ZXh0dXJl
OworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR1JlZlB0cjxHc3RTdXJmYWNlQ29udmVy
dGVyPiBtX3N1cmZhY2VDb252ZXJ0ZXI7CisjZW5kaWYKICNlbmRpZgogfTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggYmFkODY5ZS4uNTU5ZGY2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTQwLDE4ICs0MCwyMSBAQAogI2VuZGlmCiAj
aW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KIAorI2RlZmluZSBHU1RfVVNFX1VOU1RBQkxF
X0FQSSAxCisjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHN1cmZhY2VtZXRhLmg+CisKIC8vIENBSVJP
X0ZPUk1BVF9SR0IyNCB1c2VkIHRvIHJlbmRlciB0aGUgdmlkZW8gYnVmZmVycyBpcyBsaXR0bGUv
YmlnIGVuZGlhbiBkZXBlbmRhbnQuCiAjaWYgR19CWVRFX09SREVSID09IEdfTElUVExFX0VORElB
TgogI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogI2RlZmluZSBXRUJLSVRfVklERU9fU0lOS19Q
QURfQ0FQUyBHU1RfVklERU9fQ0FQU19CR1J4ICI7IiBHU1RfVklERU9fQ0FQU19CR1JBCiAjZWxz
ZQotI2RlZmluZSBXRUJLSVRfVklERU9fU0lOS19QQURfQ0FQUyBHU1RfVklERU9fQ0FQU19NQUtF
KCJ7IEJHUngsIEJHUkEgfSIpCisjZGVmaW5lIFdFQktJVF9WSURFT19TSU5LX1BBRF9DQVBTICJ2
aWRlby94LXN1cmZhY2UsIG9wZW5nbD10cnVlOyAiIEdTVF9WSURFT19DQVBTX01BS0UoInsgQkdS
eCwgQkdSQSB9IikKICNlbmRpZgogI2Vsc2UKICNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICNk
ZWZpbmUgV0VCS0lUX1ZJREVPX1NJTktfUEFEX0NBUFMgR1NUX1ZJREVPX0NBUFNfeFJHQiAiOyIg
R1NUX1ZJREVPX0NBUFNfQVJHQgogI2Vsc2UKLSNkZWZpbmUgV0VCS0lUX1ZJREVPX1NJTktfUEFE
X0NBUFMgR1NUX1ZJREVPX0NBUFNfTUFLRSgieyB4UkdCLCBBUkdCIH0iKQorI2RlZmluZSBXRUJL
SVRfVklERU9fU0lOS19QQURfQ0FQUyAidmlkZW8veC1zdXJmYWNlLCBvcGVuZ2w9dHJ1ZTsgIiBH
U1RfVklERU9fQ0FQU19NQUtFKCJ7IHhSR0IsIEFSR0IgfSIpCiAjZW5kaWYKICNlbmRpZgogc3Rh
dGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNfc2lua1RlbXBsYXRlID0gR1NUX1NUQVRJQ19QQURf
VEVNUExBVEUoInNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9QQURfQUxXQVlTLCBHU1RfU1RBVElD
X0NBUFMoV0VCS0lUX1ZJREVPX1NJTktfUEFEX0NBUFMpKTsKQEAgLTM1MSw2ICszNTQsNyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0VmlkZW9TaW5rUHJvcG9zZUFsbG9jYXRpb24oR3N0QmFzZVNp
bmsqIGJhc2VTaW5rLCBHc3RRdWVyeQogCiAgICAgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21l
dGEocXVlcnksIEdTVF9WSURFT19NRVRBX0FQSV9UWVBFLCAwKTsKICAgICBnc3RfcXVlcnlfYWRk
X2FsbG9jYXRpb25fbWV0YShxdWVyeSwgR1NUX1ZJREVPX0NST1BfTUVUQV9BUElfVFlQRSwgMCk7
CisgICAgZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX21ldGEocXVlcnksIEdTVF9TVVJGQUNFX01F
VEFfQVBJX1RZUEUsIDApOwogICAgIHJldHVybiBUUlVFOwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvYXV0b3Rvb2xzL0ZpbmREZXBlbmRlbmNpZXMubTQgYi9Tb3VyY2UvYXV0b3Rvb2xz
L0ZpbmREZXBlbmRlbmNpZXMubTQKaW5kZXggZTE1ZWE0Yy4uNDk4Yjg1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL2F1dG90b29scy9GaW5kRGVwZW5kZW5jaWVzLm00CisrKyBiL1NvdXJjZS9hdXRvdG9v
bHMvRmluZERlcGVuZGVuY2llcy5tNApAQCAtNDIwLDYgKzQyMCw3IEBAIGlmIHRlc3QgIiRlbmFi
bGVfdmlkZW8iID0gInllcyIgfHwgdGVzdCAiJGVuYWJsZV93ZWJfYXVkaW8iID0gInllcyI7IHRo
ZW4KICAgICAgICAgZ3N0cmVhbWVyLWZmdC0xLjAsCiAgICAgICAgIGdzdHJlYW1lci1iYXNlLTEu
MCwKICAgICAgICAgZ3N0cmVhbWVyLXBidXRpbHMtMS4wLAorICAgICAgICBnc3RyZWFtZXItYmFz
ZXZpZGVvLTEuMCwKICAgICAgICAgZ3N0cmVhbWVyLXZpZGVvLTEuMF0pCiAgICAgQUNfU1VCU1Qo
W0dTVFJFQU1FUl9DRkxBR1NdKQogICAgIEFDX1NVQlNUKFtHU1RSRUFNRVJfTElCU10pCi0tIAox
LjcuMTEuNwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201553</attachid>
            <date>2013-05-13 06:19:49 -0700</date>
            <delta_ts>2013-05-13 07:22:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20130513165601.patch</filename>
            <type>text/plain</type>
            <size>7401</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhZjIxNmRmMzE0MjA3
MjhlYTQ5YmNiOTlmYjFiMzkzYTZkZTg2My4uMzhiZGI3YzY0ZjljMzQ2NzY3ODY1MjE1MGE1NTk2
ZjFkMzRhMGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA1LTEzICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3RleG1hcF1bR1N0cmVhbWVyXSBDb21wb3NpdGVkIFZpZGVvIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHRoZSB2aWRlbyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZyB1c2luZyB0aGUgV2ViS2l0J3MKKyAgICAgICAgVGV4dHVyZU1h
cHBlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKTogdXBkYXRlIHRoZQorICAgICAgICB0ZXh0
dXJlIGNvbnRlbnQgd2l0aCB0aGUgbmV3IHJlY2VpdmVkIHZpZGVvIGJ1ZmZlci4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50
KTogY2hvb3NlIHRvCisgICAgICAgIHVzZSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb3Ig
dGhlIG5vcm1hbCBjb2RlIHBhdGgKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OnBhaW50KTogaWYgYWNjZWxlcmF0ZWQKKyAgICAgICAgY29tcG9zaXRp
bmcgaXMgdXNlZCB0aGlzIG1ldGhvZCBpcyBoYWx0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBlcik6IGdldAor
ICAgICAgICBhIHRleHR1cmUgZnJvbSB0aGUgcG9vbCBhbmQgZHJhd3MgaXQgaWYgaXQgaXMgYWxy
ZWFkeSBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6cGxhdGZvcm1MYXllcik6IHJldHVybnMgaXRzZWxmCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKToKKyAgICAgICAgcmV0dXJucyB0cnVlCisKIDIwMTMtMDUtMTMgIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQcm9jZXNzIGNvbnN1bWlu
ZyB2ZXJ5IGhpZ2ggQ1BVIG9uIGxpbmtlZGluLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGNkYWExZGI2MTljZTU3YWZi
YTU2NGMyMDk2ZjFjYzA0NTBlNjBiNzMuLjUyZGFiMDVkMWE4MzY5M2NlNTNiMGVlN2Q5ODRmY2Vh
OWM3NTEwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKQEAgLTExMSw2ICsxMTEsOSBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBw
bAogICAgICwgbV9yZXBhaW50SGFuZGxlcigwKQogICAgICwgbV92b2x1bWVTaWduYWxIYW5kbGVy
KDApCiAgICAgLCBtX211dGVTaWduYWxIYW5kbGVyKDApCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLCBtX3RleHR1cmUoMCkK
KyNlbmRpZgogewogfQogCkBAIC0yOTcsMTEgKzMwMCw1NCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U6Om11dGVDaGFuZ2VkKCkKICAgICBtX211dGVUaW1lckhhbmRsZXIg
PSBnX3RpbWVvdXRfYWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KG1lZGlhUGxh
eWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsKIH0KIAorCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUoR3N0QnVm
ZmVyKiBidWZmZXIpCit7CisgICAgaWYgKCFtX3RleHR1cmUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHZvaWQqIHNy
Y0RhdGEgPSAwOworICAgIEludFNpemUgc2l6ZSA9IG5hdHVyYWxTaXplKCk7CisKKyAgICBpZiAo
bV90ZXh0dXJlLT5zaXplKCkgIT0gc2l6ZSkKKyAgICAgICAgbV90ZXh0dXJlLT5yZXNldChzaXpl
KTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR3N0TWFwSW5mbyBzcmNJbmZvOwor
ICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNyY0luZm8sIEdTVF9NQVBfUkVBRCk7CisgICAg
c3JjRGF0YSA9IHNyY0luZm8uZGF0YTsKKyNlbHNlCisgICAgc3JjRGF0YSA9IEdTVF9CVUZGRVJf
REFUQShidWZmZXIpOworI2VuZGlmCisKKyAgICAvLyBAVE9ETzogc3VwcG9ydCBjcm9wcGluZwor
ICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0YSwgV2ViQ29yZTo6SW50UmVjdChX
ZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBz
aXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5h
bEltYWdlRGF0YSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGdzdF9idWZmZXJf
dW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisjZW5kaWYKKworICAgIGNsaWVudCgpLT5zZXRQbGF0
Zm9ybUxheWVyTmVlZHNEaXNwbGF5KCk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikKIHsK
ICAgICBnX3JldHVybl9pZl9mYWlsKEdTVF9JU19CVUZGRVIoYnVmZmVyKSk7Ci0gICAgZ3N0X2J1
ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVyKTsKLSAgICBtX3BsYXllci0+cmVwYWludCgp
OworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCisgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXll
ci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkKG1fcGxheWVyKSkKKyAgICAgICAgdXBkYXRlVGV4dHVyZShidWZmZXIpOworICAgIGVsc2UK
KyNlbmRpZgorICAgIHsKKyAgICAgICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVm
ZmVyKTsKKyAgICAgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKKyAgICB9CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXpl
KQpAQCAtMzExLDYgKzM1NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgcmV0dXJuOwor
I2VuZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTMzMiw2ICszODMsMjEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFIKICAg
ICAgICAgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgQ29tcG9zaXRlQ29weSwgRG9Ob3RSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiwgZmFsc2UpOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1
cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBpZiAodGV4dHVyZU1hcHBl
ci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV90ZXh0dXJlKSB7CisgICAgICAgIG1fdGV4dHVyZSA9
IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wobmF0dXJhbFNpemUoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgq
bV90ZXh0dXJlLmdldCgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNpdHkpOworfQorI2VuZGlm
CisKICNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U6OmVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCA0N2E3MzMwNWUyMTIz
NTY1ZGM2ZmFmZDc4YjA1NTgxNTIyOTIzYzAzLi5iZTZkZjhmZjdmZTVhYzgwMjc3OWEwZmU5OTUx
M2IwNWM2NTE5MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNlbmRp
ZgorCiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0
IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBHc3RN
ZXNzYWdlOwpAQCAtNDMsNyArNDcsMTEgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJlY3Q7
CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIKKyNl
bmRpZgorewogCiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uo
KTsKQEAgLTkzLDYgKzEwMSwxMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9EZWNvZGVk
Qnl0ZUNvdW50KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50KCkg
Y29uc3Q7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uq
Pih0aGlzKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBmbG9hdCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqKTsKICAgICBHc3RFbGVtZW50KiBj
cmVhdGVWaWRlb1NpbmsoR3N0RWxlbWVudCogcGlwZWxpbmUpOwpAQCAtMTE5LDYgKzEzMywxMCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbG9uZyBtX211dGVTaWduYWxIYW5kbGVyOwogICAg
IEdSZWZQdHI8R3N0UGFkPiBtX3ZpZGVvU2lua1BhZDsKICAgICBtdXRhYmxlIEludFNpemUgbV92
aWRlb1NpemU7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisgICAgdm9pZCB1cGRhdGVUZXh0dXJlKEdzdEJ1ZmZlciopOworICAgIFJl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisjZW5kaWYKIH07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201564</attachid>
            <date>2013-05-13 07:23:11 -0700</date>
            <delta_ts>2013-05-29 02:54:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20130513175922.patch</filename>
            <type>text/plain</type>
            <size>7536</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhZjIxNmRmMzE0MjA3
MjhlYTQ5YmNiOTlmYjFiMzkzYTZkZTg2My4uYjczYmFlYzE2NzgwZjI5NTczNmRlZWE3MWUzNDQ4
OGQxYjRlMjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA1LTEzICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3RleG1hcF1bR1N0cmVhbWVyXSBDb21wb3NpdGVkIFZpZGVvIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHRoZSB2aWRlbyBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZyB1c2luZyB0aGUgV2ViS2l0J3MKKyAgICAgICAgVGV4dHVyZU1h
cHBlci4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgbm90IHVzZSBoYXJkd2FyZSBhY2NlbGVy
YXRlZCB2aWRlbyBkZWNvZGluZy4gSXQKKyAgICAgICAgcHJvdmlkZXMgYSBnZW5lcmljIHBhdGgg
Zm9yIHN5c3RlbSBtZW1vcnkgYnVmZmVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVh
ZHkgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKTogdXBk
YXRlIHRoZQorICAgICAgICB0ZXh0dXJlIGNvbnRlbnQgd2l0aCB0aGUgbmV3IHJlY2VpdmVkIHZp
ZGVvIGJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnRyaWdnZXJSZXBhaW50KTogY2hvb3NlIHRvCisgICAgICAgIHVzZSB0aGUgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcgb3IgdGhlIG5vcm1hbCBjb2RlIHBhdGgKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KTogaWYgYWNjZWxlcmF0
ZWQKKyAgICAgICAgY29tcG9zaXRpbmcgaXMgdXNlZCB0aGlzIG1ldGhvZCBpcyBoYWx0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludFRv
VGV4dHVyZU1hcHBlcik6IGdldAorICAgICAgICBhIHRleHR1cmUgZnJvbSB0aGUgcG9vbCBhbmQg
ZHJhd3MgaXQgaWYgaXQgaXMgYWxyZWFkeSBhdmFpbGFibGUuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAg
ICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGxhdGZvcm1MYXllcik6IHJldHVy
bnMgaXRzZWxmCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKyAgICAgICAgcmV0dXJucyB0cnVl
CisKIDIwMTMtMDUtMTMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWJQcm9jZXNzIGNvbnN1bWluZyB2ZXJ5IGhpZ2ggQ1BVIG9uIGxpbmtlZGluLmNvbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmlu
ZGV4IGNkYWExZGI2MTljZTU3YWZiYTU2NGMyMDk2ZjFjYzA0NTBlNjBiNzMuLjUyZGFiMDVkMWE4
MzY5M2NlNTNiMGVlN2Q5ODRmY2VhOWM3NTEwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTExMSw2ICsxMTEsOSBAQCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogICAgICwgbV9yZXBhaW50SGFuZGxlcigwKQogICAgICwg
bV92b2x1bWVTaWduYWxIYW5kbGVyKDApCiAgICAgLCBtX211dGVTaWduYWxIYW5kbGVyKDApCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CisgICAgLCBtX3RleHR1cmUoMCkKKyNlbmRpZgogewogfQogCkBAIC0yOTcsMTEgKzMwMCw1NCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVDaGFuZ2VkKCkKICAg
ICBtX211dGVUaW1lckhhbmRsZXIgPSBnX3RpbWVvdXRfYWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8
R1NvdXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2sp
LCB0aGlzKTsKIH0KIAorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnVwZGF0ZVRleHR1cmUoR3N0QnVmZmVyKiBidWZmZXIpCit7CisgICAgaWYgKCFtX3RleHR1cmUp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghY2xpZW50KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnN0IHZvaWQqIHNyY0RhdGEgPSAwOworICAgIEludFNpemUgc2l6ZSA9IG5hdHVy
YWxTaXplKCk7CisKKyAgICBpZiAobV90ZXh0dXJlLT5zaXplKCkgIT0gc2l6ZSkKKyAgICAgICAg
bV90ZXh0dXJlLT5yZXNldChzaXplKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAg
R3N0TWFwSW5mbyBzcmNJbmZvOworICAgIGdzdF9idWZmZXJfbWFwKGJ1ZmZlciwgJnNyY0luZm8s
IEdTVF9NQVBfUkVBRCk7CisgICAgc3JjRGF0YSA9IHNyY0luZm8uZGF0YTsKKyNlbHNlCisgICAg
c3JjRGF0YSA9IEdTVF9CVUZGRVJfREFUQShidWZmZXIpOworI2VuZGlmCisKKyAgICAvLyBAVE9E
Tzogc3VwcG9ydCBjcm9wcGluZworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoc3JjRGF0
YSwgV2ViQ29yZTo6SW50UmVjdChXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZSksIFdlYkNv
cmU6OkludFBvaW50KDAsIDApLCBzaXplLndpZHRoKCkgKiA0LCBCaXRtYXBUZXh0dXJlOjpVcGRh
dGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmc3JjSW5mbyk7CisjZW5kaWYKKwor
ICAgIGNsaWVudCgpLT5zZXRQbGF0Zm9ybUxheWVyTmVlZHNEaXNwbGF5KCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChH
c3RCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKEdTVF9JU19CVUZGRVIo
YnVmZmVyKSk7Ci0gICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVyKTsKLSAg
ICBtX3BsYXllci0+cmVwYWludCgpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJS
ZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKKyAgICAgICAgdXBkYXRlVGV4dHVy
ZShidWZmZXIpOworICAgIGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAgZ3N0X2J1ZmZlcl9y
ZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVyKTsKKyAgICAgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsK
KyAgICB9CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMzExLDYgKzM1NywxMSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgaWYgKG1fdGV4dHVy
ZSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTMzMiw2ICszODMsMjEgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFIKICAgICAgICAgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgQ29tcG9z
aXRlQ29weSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgZmFsc2UpOwogfQogCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50VG9UZXh0dXJlTWFwcGVy
KFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSkKK3sK
KyAgICBpZiAodGV4dHVyZU1hcHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBw
ZXI6Ok9wZW5HTE1vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV90ZXh0dXJlKSB7
CisgICAgICAgIG1fdGV4dHVyZSA9IHRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBv
b2wobmF0dXJhbFNpemUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0ZXh0dXJl
TWFwcGVyLT5kcmF3VGV4dHVyZSgqbV90ZXh0dXJlLmdldCgpLCB0YXJnZXRSZWN0LCBtYXRyaXgs
IG9wYWNpdHkpOworfQorI2VuZGlmCisKICNpZiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8p
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVudGVyRnVsbHNjcmVlbigp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
aAppbmRleCA0N2E3MzMwNWUyMTIzNTY1ZGM2ZmFmZDc4YjA1NTgxNTIyOTIzYzAzLi5iZTZkZjhm
ZjdmZTVhYzgwMjc3OWEwZmU5OTUxM2IwNWM2NTE5MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXIuaCIKKyNlbmRpZgorCiB0eXBlZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1
ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0
cnVjdCBfR3N0TWVzc2FnZSBHc3RNZXNzYWdlOwpAQCAtNDMsNyArNDcsMTEgQEAgY2xhc3MgSW50
U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlIHsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLCBwdWJsaWMgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXIKKyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgfk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UoKTsKQEAgLTkzLDYgKzEwMSwxMiBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgYXVkaW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlk
ZW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UqPih0aGlzKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCk7CisjZW5kaWYKKwogcHJv
dGVjdGVkOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIq
KTsKICAgICBHc3RFbGVtZW50KiBjcmVhdGVWaWRlb1NpbmsoR3N0RWxlbWVudCogcGlwZWxpbmUp
OwpAQCAtMTE5LDYgKzEzMywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbG9uZyBtX211
dGVTaWduYWxIYW5kbGVyOwogICAgIEdSZWZQdHI8R3N0UGFkPiBtX3ZpZGVvU2lua1BhZDsKICAg
ICBtdXRhYmxlIEludFNpemUgbV92aWRlb1NpemU7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgdm9pZCB1cGRhdGVUZXh0dXJl
KEdzdEJ1ZmZlciopOworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtX3RleHR1cmU7CisjZW5k
aWYKIH07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203145</attachid>
            <date>2013-05-29 02:54:19 -0700</date>
            <delta_ts>2013-05-29 04:16:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20130529133009.patch</filename>
            <type>text/plain</type>
            <size>7785</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYwMGJkNmNkYjQzNjIx
YTY3MmI3ZjViZTExZGQ3ZDczZWFkN2NlYS4uYjhlNDAxNDZhMzAzZjQ2OWJmY2I3MGJjNGFmY2Vh
NzI0MGRiZTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA1LTEzICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3RleG1hcF1bR1N0cmVhbWVyXVtHVEtdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgdGhlIHZpZGVv
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHVzaW5nIHRoZSBXZWJLaXQncworICAgICAgICBUZXh0
dXJlTWFwcGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgdXNlIGhhcmR3YXJlIGFj
Y2VsZXJhdGVkIHZpZGVvIGRlY29kaW5nLiBJdAorICAgICAgICBwcm92aWRlcyBhIGdlbmVyaWMg
cGF0aCBmb3Igc3lzdGVtIG1lbW9yeSBidWZmZXJzLgorCisgICAgICAgIFRoaXMgbmV3IGZ1bmN0
aW9uYWxpdHkgaXMgb25seSBhdmFpbGFibGUgZm9yIEdUSysgcG9ydC4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRh
dGVUZXh0dXJlKTogdXBkYXRlIHRoZQorICAgICAgICB0ZXh0dXJlIGNvbnRlbnQgd2l0aCB0aGUg
bmV3IHJlY2VpdmVkIHZpZGVvIGJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KTogY2hvb3NlIHRvCisgICAgICAg
IHVzZSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb3IgdGhlIG5vcm1hbCBjb2RlIHBhdGgK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50
KTogaWYgYWNjZWxlcmF0ZWQKKyAgICAgICAgY29tcG9zaXRpbmcgaXMgdXNlZCB0aGlzIG1ldGhv
ZCBpcyBoYWx0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBlcik6IGdldAorICAgICAgICBhIHRleHR1cmUgZnJv
bSB0aGUgcG9vbCBhbmQgZHJhd3MgaXQgaWYgaXQgaXMgYWxyZWFkeSBhdmFpbGFibGUuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGxhdGZv
cm1MYXllcik6IHJldHVybnMgaXRzZWxmCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKyAgICAg
ICAgcmV0dXJucyB0cnVlCisKIDIwMTMtMDUtMjcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFN0cmVuZ3RoZW4gdHlwaW5nIG9mIGRldGFjaGluZyBhbiBFbGVt
ZW50IGZyb20gRG9jdW1lbnQncyA6YWN0aXZlIGNoYWluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGNkYWExZGI2MTljZTU3
YWZiYTU2NGMyMDk2ZjFjYzA0NTBlNjBiNzMuLmUxN2Q1NjM1ZDBlMzI3ZmViMzA4ODI0Mjg4ZDRh
ZmYwMjIwNjUxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKQEAgLTExMSw2ICsxMTEsOSBAQCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVy
KiBwbAogICAgICwgbV9yZXBhaW50SGFuZGxlcigwKQogICAgICwgbV92b2x1bWVTaWduYWxIYW5k
bGVyKDApCiAgICAgLCBtX211dGVTaWduYWxIYW5kbGVyKDApCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykK
KyAgICAsIG1fdGV4dHVyZSgwKQorI2VuZGlmCiB7CiB9CiAKQEAgLTI5NywxMSArMzAwLDU0IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZUNoYW5nZWQoKQogICAg
IG1fbXV0ZVRpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxH
U291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayks
IHRoaXMpOwogfQogCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKEdzdEJ1ZmZlciogYnVmZmVyKQoreworICAg
IGlmICghbV90ZXh0dXJlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWNsaWVudCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCB2b2lkKiBzcmNEYXRhID0gMDsKKyAgICBJbnRT
aXplIHNpemUgPSBuYXR1cmFsU2l6ZSgpOworCisgICAgaWYgKG1fdGV4dHVyZS0+c2l6ZSgpICE9
IHNpemUpCisgICAgICAgIG1fdGV4dHVyZS0+cmVzZXQoc2l6ZSk7CisKKyNpZmRlZiBHU1RfQVBJ
X1ZFUlNJT05fMQorICAgIEdzdE1hcEluZm8gc3JjSW5mbzsKKyAgICBnc3RfYnVmZmVyX21hcChi
dWZmZXIsICZzcmNJbmZvLCBHU1RfTUFQX1JFQUQpOworICAgIHNyY0RhdGEgPSBzcmNJbmZvLmRh
dGE7CisjZWxzZQorICAgIHNyY0RhdGEgPSBHU1RfQlVGRkVSX0RBVEEoYnVmZmVyKTsKKyNlbmRp
ZgorCisgICAgLy8gQFRPRE86IHN1cHBvcnQgY3JvcHBpbmcKKyAgICBtX3RleHR1cmUtPnVwZGF0
ZUNvbnRlbnRzKHNyY0RhdGEsIFdlYkNvcmU6OkludFJlY3QoV2ViQ29yZTo6SW50UG9pbnQoMCwg
MCksIHNpemUpLCBXZWJDb3JlOjpJbnRQb2ludCgwLCAwKSwgc2l6ZS53aWR0aCgpICogNCwgQml0
bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOworCisjaWZk
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJnNyY0lu
Zm8pOworI2VuZGlmCisKKyAgICBjbGllbnQoKS0+c2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxh
eSgpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
dHJpZ2dlclJlcGFpbnQoR3N0QnVmZmVyKiBidWZmZXIpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChHU1RfSVNfQlVGRkVSKGJ1ZmZlcikpOwotICAgIGdzdF9idWZmZXJfcmVwbGFjZSgmbV9idWZm
ZXIsIGJ1ZmZlcik7Ci0gICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKKworI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShH
VEspCisgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+
bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVk
KG1fcGxheWVyKSkKKyAgICAgICAgdXBkYXRlVGV4dHVyZShidWZmZXIpOworICAgIGVsc2UKKyNl
bmRpZgorICAgIHsKKyAgICAgICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVy
KTsKKyAgICAgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKKyAgICB9CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpA
QCAtMzExLDYgKzM1NywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKKyAgICBpZiAobV90ZXh0dXJlKQorICAg
ICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzMyLDYgKzM4MywyMSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSW50UgogICAgICAgICByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5
LCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZP
Uk0oR1RLKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9w
YWNpdHkpCit7CisgICAgaWYgKHRleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBU
ZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1f
dGV4dHVyZSkgeworICAgICAgICBtX3RleHR1cmUgPSB0ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4
dHVyZUZyb21Qb29sKG5hdHVyYWxTaXplKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgdGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1fdGV4dHVyZS5nZXQoKSwgdGFyZ2V0UmVj
dCwgbWF0cml4LCBvcGFjaXR5KTsKK30KKyNlbmRpZgorCiAjaWYgVVNFKE5BVElWRV9GVUxMU0NS
RUVOX1ZJREVPKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjplbnRlckZ1
bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmgKaW5kZXggNDdhNzMzMDVlMjEyMzU2NWRjNmZhZmQ3OGIwNTU4MTUyMjkyM2Mw
My4uMDEyNTIyMjY0OGFjNWFhNjY2MTUyNWVkMDYwOGQ5MTNlYjg0N2IwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0yOSw2ICsy
OSwxMCBAQAogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEsp
CisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKKyNlbmRpZgorCiB0eXBl
ZGVmIHN0cnVjdCBfR3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVt
ZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBHc3RNZXNzYWdlOwpA
QCAtNDMsNyArNDcsMTEgQEAgY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBH
U3RyZWFtZXJHV29ybGQ7CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Ug
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpICYmIFBMQVRGT1JNKEdUSykKKyAgICAsIHB1YmxpYyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllcgorI2VuZGlmCit7CiAKIHB1YmxpYzoKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZSgpOwpAQCAtOTMsNiArMTAxLDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhdWRp
b0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRl
Q291bnQoKSBjb25zdDsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCisgICAgdmlydHVhbCBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlKj4odGhpcyk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQpOworI2VuZGlmCisK
IHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxh
eWVyKik7CiAgICAgR3N0RWxlbWVudCogY3JlYXRlVmlkZW9TaW5rKEdzdEVsZW1lbnQqIHBpcGVs
aW5lKTsKQEAgLTExOSw2ICsxMzMsMTAgQEAgcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIGxvbmcg
bV9tdXRlU2lnbmFsSGFuZGxlcjsKICAgICBHUmVmUHRyPEdzdFBhZD4gbV92aWRlb1NpbmtQYWQ7
CiAgICAgbXV0YWJsZSBJbnRTaXplIG1fdmlkZW9TaXplOworI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCisg
ICAgdm9pZCB1cGRhdGVUZXh0dXJlKEdzdEJ1ZmZlciopOworICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiBtX3RleHR1cmU7CisjZW5kaWYKIH07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203151</attachid>
            <date>2013-05-29 04:16:57 -0700</date>
            <delta_ts>2013-05-29 06:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86410-20130529145247.patch</filename>
            <type>text/plain</type>
            <size>7946</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYwMGJkNmNkYjQzNjIx
YTY3MmI3ZjViZTExZGQ3ZDczZWFkN2NlYS4uY2E1ODk1NjU4NGI5MDc3MDE3ZjA0OWUxNWU0Yzk5
ZTE1ODgwNTZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA1LTEzICBWw61j
dG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3RleG1hcF1bR1N0cmVhbWVyXVtHVEtdIENvbXBvc2l0ZWQgVmlkZW8gc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgdGhlIHZpZGVv
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHVzaW5nIHRoZSBXZWJLaXQncworICAgICAgICBUZXh0
dXJlTWFwcGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgdXNlIGhhcmR3YXJlIGFj
Y2VsZXJhdGVkIHZpZGVvIGRlY29kaW5nLiBJdAorICAgICAgICBwcm92aWRlcyBhIGdlbmVyaWMg
cGF0aCBmb3Igc3lzdGVtIG1lbW9yeSBidWZmZXJzLgorCisgICAgICAgIFRoaXMgbmV3IGZ1bmN0
aW9uYWxpdHkgaXMgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgY29vcmRpbmF0ZWQgZ3JhcGhpY3MK
KyAgICAgICAgc3lzdGVtIGlzIG5vdCB1c2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxy
ZWFkeSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnVwZGF0ZVRleHR1cmUpOiB1
cGRhdGUgdGhlCisgICAgICAgIHRleHR1cmUgY29udGVudCB3aXRoIHRoZSBuZXcgcmVjZWl2ZWQg
dmlkZW8gYnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQpOiBjaG9vc2UgdG8KKyAgICAgICAgdXNlIHRoZSBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZyBvciB0aGUgbm9ybWFsIGNvZGUgcGF0aAorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQpOiBpZiBhY2NlbGVy
YXRlZAorICAgICAgICBjb21wb3NpdGluZyBpcyB1c2VkIHRoaXMgbWV0aG9kIGlzIGhhbHRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKTogZ2V0CisgICAgICAgIGEgdGV4dHVyZSBmcm9tIHRoZSBwb29sIGFu
ZCBkcmF3cyBpdCBpZiBpdCBpcyBhbHJlYWR5IGF2YWlsYWJsZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgor
ICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwbGF0Zm9ybUxheWVyKTogcmV0
dXJucyBpdHNlbGYKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcpOgorICAgICAgICByZXR1cm5zIHRy
dWUKKwogMjAxMy0wNS0yNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgU3RyZW5ndGhlbiB0eXBpbmcgb2YgZGV0YWNoaW5nIGFuIEVsZW1lbnQgZnJvbSBEb2N1
bWVudCdzIDphY3RpdmUgY2hhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggY2RhYTFkYjYxOWNlNTdhZmJhNTY0YzIwOTZm
MWNjMDQ1MGU2MGI3My4uMmY4MTk4NDlhN2U5Yjk1NjYxZmJhNDljOTA3MTg5YjA0ZGU3OTg0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtMTExLDYgKzExMSw5IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqIHBsCiAgICAgLCBt
X3JlcGFpbnRIYW5kbGVyKDApCiAgICAgLCBtX3ZvbHVtZVNpZ25hbEhhbmRsZXIoMCkKICAgICAs
IG1fbXV0ZVNpZ25hbEhhbmRsZXIoMCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
KyAgICAsIG1fdGV4dHVyZSgwKQorI2VuZGlmCiB7CiB9CiAKQEAgLTI5NywxMSArMzAwLDU0IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bXV0ZUNoYW5nZWQoKQogICAg
IG1fbXV0ZVRpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxH
U291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayks
IHRoaXMpOwogfQogCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBkYXRlVGV4dHVyZShHc3RCdWZmZXIqIGJ1
ZmZlcikKK3sKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFjbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgdm9pZCogc3JjRGF0YSA9
IDA7CisgICAgSW50U2l6ZSBzaXplID0gbmF0dXJhbFNpemUoKTsKKworICAgIGlmIChtX3RleHR1
cmUtPnNpemUoKSAhPSBzaXplKQorICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHNpemUpOworCisj
aWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RNYXBJbmZvIHNyY0luZm87CisgICAgZ3N0
X2J1ZmZlcl9tYXAoYnVmZmVyLCAmc3JjSW5mbywgR1NUX01BUF9SRUFEKTsKKyAgICBzcmNEYXRh
ID0gc3JjSW5mby5kYXRhOworI2Vsc2UKKyAgICBzcmNEYXRhID0gR1NUX0JVRkZFUl9EQVRBKGJ1
ZmZlcik7CisjZW5kaWYKKworICAgIC8vIEBUT0RPOiBzdXBwb3J0IGNyb3BwaW5nCisgICAgbV90
ZXh0dXJlLT51cGRhdGVDb250ZW50cyhzcmNEYXRhLCBXZWJDb3JlOjpJbnRSZWN0KFdlYkNvcmU6
OkludFBvaW50KDAsIDApLCBzaXplKSwgV2ViQ29yZTo6SW50UG9pbnQoMCwgMCksIHNpemUud2lk
dGgoKSAqIDQsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VE
YXRhKTsKKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgZ3N0X2J1ZmZlcl91bm1hcChi
dWZmZXIsICZzcmNJbmZvKTsKKyNlbmRpZgorCisgICAgY2xpZW50KCktPnNldFBsYXRmb3JtTGF5
ZXJOZWVkc0Rpc3BsYXkoKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OnRyaWdnZXJSZXBhaW50KEdzdEJ1ZmZlciogYnVmZmVyKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoR1NUX0lTX0JVRkZFUihidWZmZXIpKTsKLSAgICBnc3RfYnVmZmVyX3Jl
cGxhY2UoJm1fYnVmZmVyLCBidWZmZXIpOwotICAgIG1fcGxheWVyLT5yZXBhaW50KCk7CisKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkg
JiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXll
clJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAgICAgICB1cGRhdGVUZXh0
dXJlKGJ1ZmZlcik7CisgICAgZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICBnc3RfYnVmZmVy
X3JlcGxhY2UoJm1fYnVmZmVyLCBidWZmZXIpOworICAgICAgICBtX3BsYXllci0+cmVwYWludCgp
OworICAgIH0KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzZXRT
aXplKGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0zMTEsNiArMzU3LDExIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAgICByZXR1cm47CisjZW5k
aWYKKwogICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMzMyLDYgKzM4MywyMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UgogICAgICAg
ICByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCBmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnRUb1RleHR1cmVN
YXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5
KQoreworICAgIGlmICh0ZXh0dXJlTWFwcGVyLT5hY2NlbGVyYXRpb25Nb2RlKCkgIT0gVGV4dHVy
ZU1hcHBlcjo6T3BlbkdMTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3RleHR1
cmUpIHsKKyAgICAgICAgbV90ZXh0dXJlID0gdGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVG
cm9tUG9vbChuYXR1cmFsU2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3RleHR1cmUuZ2V0KCksIHRhcmdldFJlY3QsIG1h
dHJpeCwgb3BhY2l0eSk7Cit9CisjZW5kaWYKKwogI2lmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9W
SURFTykKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZW50ZXJGdWxsc2Ny
ZWVuKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5oCmluZGV4IDQ3YTczMzA1ZTIxMjM1NjVkYzZmYWZkNzhiMDU1ODE1MjI5MjNjMDMuLjZj
NzM4N2ZkN2Q5ODEyZTIyZDllOGYxZjNlMmFkOWIwNzNjOGYyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMjksNiArMjksMTAg
QEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgorI2VuZGlm
CisKIHR5cGVkZWYgc3RydWN0IF9Hc3RCdWZmZXIgR3N0QnVmZmVyOwogdHlwZWRlZiBzdHJ1Y3Qg
X0dzdEVsZW1lbnQgR3N0RWxlbWVudDsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1l
c3NhZ2U7CkBAIC00Myw3ICs0NywxMSBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgSW50UmVjdDsK
IGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgeworY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICAsIHB1YmxpYyBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgorI2VuZGlmCit7CiAKIHB1YmxpYzoKICAgICB+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpOwpAQCAtOTMsNiArMTAxLDEyIEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB1bnNp
Z25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKIAorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQorICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSo+KHRoaXMpOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0
dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGZsb2F0KTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZShNZWRpYVBsYXllciopOwogICAgIEdzdEVsZW1lbnQq
IGNyZWF0ZVZpZGVvU2luayhHc3RFbGVtZW50KiBwaXBlbGluZSk7CkBAIC0xMTksNiArMTMzLDEw
IEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVNpZ25hbEhhbmRsZXI7CiAg
ICAgR1JlZlB0cjxHc3RQYWQ+IG1fdmlkZW9TaW5rUGFkOwogICAgIG11dGFibGUgSW50U2l6ZSBt
X3ZpZGVvU2l6ZTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICB2b2lkIHVw
ZGF0ZVRleHR1cmUoR3N0QnVmZmVyKik7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1fdGV4
dHVyZTsKKyNlbmRpZgogfTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>