<?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>77089</bug_id>
          
          <creation_ts>2012-01-26 03:00:15 -0800</creation_ts>
          <short_desc>[GStreamer] 0.11 support in MediaPlayerPrivateGStreamer</short_desc>
          <delta_ts>2012-02-27 10:04:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77005</blocked>
    
    <blocked>77087</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>slomo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>543013</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-26 03:00:15 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543020</commentid>
    <comment_count>1</comment_count>
      <attachid>124092</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-26 03:16:13 -0800</bug_when>
    <thetext>Created attachment 124092
0.11 MediaPlayerPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543021</commentid>
    <comment_count>2</comment_count>
      <attachid>124092</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-26 03:21:22 -0800</bug_when>
    <thetext>Comment on attachment 124092
0.11 MediaPlayerPrivate

Attachment 124092 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11191294</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543024</commentid>
    <comment_count>3</comment_count>
      <attachid>124094</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-26 03:31:18 -0800</bug_when>
    <thetext>Created attachment 124094
0.11 MediaPlayerPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544975</commentid>
    <comment_count>4</comment_count>
      <attachid>124094</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2012-01-30 02:45:08 -0800</bug_when>
    <thetext>Comment on attachment 124094
0.11 MediaPlayerPrivate

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:979
&gt; +            gst_object_unref(pad);

Nope, g_value_unset() please :)

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1802
&gt; +    GstElement* videoConvert = gst_element_factory_make(&quot;videoconvert&quot;, 0);

Why is this necessary in 1.0 only?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544978</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-30 03:12:49 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 124094 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124094&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:979
&gt; &gt; +            gst_object_unref(pad);
&gt; 
&gt; Nope, g_value_unset() please :)
&gt; 

Ouch!

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1802
&gt; &gt; +    GstElement* videoConvert = gst_element_factory_make(&quot;videoconvert&quot;, 0);
&gt; 
&gt; Why is this necessary in 1.0 only?

Oh hum yeah I don&apos;t remember why I added that, I&apos;ll check this part again. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545132</commentid>
    <comment_count>6</comment_count>
      <attachid>124094</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-30 08:47:51 -0800</bug_when>
    <thetext>Comment on attachment 124094
0.11 MediaPlayerPrivate

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

Nice stuff.

&gt; Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp:43
&gt; +#ifdef GST_API_VERSION_1
&gt; +        gst_object_ref_sink(GST_OBJECT(ptr));
&gt; +#else
&gt;          gst_object_ref(GST_OBJECT(ptr));
&gt;          gst_object_sink(GST_OBJECT(ptr));
&gt; +#endif
&gt;      }

It&apos;s probably cleaner to just abstract this away into a helper function that does the right thing for each GStreamer. Imagine something like GtkVersioning.h.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:53
&gt; +#ifdef GST_API_VERSION_1
&gt; +#include &lt;gst/audio/streamvolume.h&gt;
&gt; +#else
&gt;  #include &lt;gst/interfaces/streamvolume.h&gt;
&gt; +#endif

Headers included behind ifdefs usually go in their own block.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:78
&gt; +#ifdef GST_API_VERSION_1
&gt; +#define PLAYBIN_NAME &quot;playbin&quot;
&gt; +#else
&gt; +#define PLAYBIN_NAME &quot;playbin2&quot;
&gt; +#endif

Please use a const char* instead of a #define.

static const char* gPlaybinName = &quot;playbin&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557224</commentid>
    <comment_count>7</comment_count>
      <attachid>124094</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-15 06:31:03 -0800</bug_when>
    <thetext>Comment on attachment 124094
0.11 MediaPlayerPrivate

needs work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557247</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-15 07:10:40 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1802
&gt; &gt; +    GstElement* videoConvert = gst_element_factory_make(&quot;videoconvert&quot;, 0);
&gt; 
&gt; Why is this necessary in 1.0 only?

I&apos;ve actually tried to remove this videoconvert element but I now get a warning from basetransform


:00:00.524129217 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:527:gst_base_transform_transform_caps:&lt;identity&gt; to: video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1
0:00:00.524214702 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:977:gst_base_transform_find_transform:&lt;identity&gt; intersecting against padtemplate ANY
0:00:00.524267991 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:1051:gst_base_transform_find_transform: have fixed caps video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1
0:00:00.524344258 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:1060:gst_base_transform_find_transform:&lt;identity&gt; calling fixate_caps for video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1 using caps video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1 on pad identity:src
0:00:00.524459286 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:927:gst_base_transform_default_fixate:&lt;identity&gt; using default caps fixate function
0:00:00.524500772 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:1065:gst_base_transform_find_transform:&lt;identity&gt; after fixating video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1
0:00:00.524648417 31921  0x9f8a000 DEBUG          basetransform gstbasetransform.c:1106:gst_base_transform_find_transform:&lt;identity&gt; FAILED to get peer of &lt;identity:src&gt; to accept video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1
0:00:00.524736626 31921  0x9f8a000 WARN           basetransform gstbasetransform.c:1280:gst_base_transform_setcaps:&lt;identity&gt; transform could not transform video/x-raw, format=(string)I420, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, chroma-site=(string)jpeg, colorimetry=(string)bt601, framerate=(fraction)30/1 in anything we support

If I add videoconvert some caps fields like colorimetry and chroma-site get removed from the caps before the video-sink.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565479</commentid>
    <comment_count>9</comment_count>
      <attachid>128986</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 01:57:12 -0800</bug_when>
    <thetext>Created attachment 128986
0.11 MediaPlayerPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565482</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 01:58:58 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1802
&gt; &gt; &gt; +    GstElement* videoConvert = gst_element_factory_make(&quot;videoconvert&quot;, 0);
&gt; &gt; 
&gt; &gt; Why is this necessary in 1.0 only?
&gt; 
&gt; I&apos;ve actually tried to remove this videoconvert element but I now get a warning from basetransform
&gt; 
&gt; 

Managed to get rid of it :) I guess the issue was fixed in basetransform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565485</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 02:02:26 -0800</bug_when>
    <thetext>Attachment 128986 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.c:26:  webkit_gst_object_ref_sink is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.c:36:  webkit_gst_element_get_pad_caps is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.h:31:  webkit_gst_object_ref_sink is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.h:32:  webkit_gst_element_get_pad_caps is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 4 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565495</commentid>
    <comment_count>12</comment_count>
      <attachid>128986</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-02-27 02:14:17 -0800</bug_when>
    <thetext>Comment on attachment 128986
0.11 MediaPlayerPrivate

Would that be possible that you patch Source/WebCore/Target.pri to compile the new files? Line 3228. It should be very trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565497</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 02:20:09 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 128986 [details])
&gt; Would that be possible that you patch Source/WebCore/Target.pri to compile the new files? Line 3228. It should be very trivial.

Ok, I&apos;ll have a look!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565503</commentid>
    <comment_count>14</comment_count>
      <attachid>128992</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 02:26:32 -0800</bug_when>
    <thetext>Created attachment 128992
0.11 MediaPlayerPrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565508</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 02:30:11 -0800</bug_when>
    <thetext>Attachment 128992 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.c:26:  webkit_gst_object_ref_sink is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.c:36:  webkit_gst_element_get_pad_caps is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.h:31:  webkit_gst_object_ref_sink is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.h:32:  webkit_gst_element_get_pad_caps is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 4 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565529</commentid>
    <comment_count>16</comment_count>
      <attachid>128992</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-27 03:00:26 -0800</bug_when>
    <thetext>Comment on attachment 128992
0.11 MediaPlayerPrivate

Attachment 128992 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11628941</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565547</commentid>
    <comment_count>17</comment_count>
      <attachid>128992</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-27 03:32:57 -0800</bug_when>
    <thetext>Comment on attachment 128992
0.11 MediaPlayerPrivate

Attachment 128992 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11628956</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565647</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 07:55:54 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 128992 [details])
&gt; Attachment 128992 [details] did not pass qt-ews (qt):
&gt; Output: http://queues.webkit.org/results/11628941

I can&apos;t reproduce this build error here. Any help would be appreciated :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565660</commentid>
    <comment_count>19</comment_count>
      <attachid>129039</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:14:27 -0800</bug_when>
    <thetext>Created attachment 129039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565663</commentid>
    <comment_count>20</comment_count>
      <attachid>129039</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-27 08:19:27 -0800</bug_when>
    <thetext>Comment on attachment 129039
Patch

Attachment 129039 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11643042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565664</commentid>
    <comment_count>21</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:19:40 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 128992 [details])
&gt; Attachment 128992 [details] did not pass efl-ews (efl):
&gt; Output: http://queues.webkit.org/results/11628956

Kim can you please have a look? I can&apos;t build the EFL port here, seems like eina is too old, even on debian unstable...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565665</commentid>
    <comment_count>22</comment_count>
      <attachid>129039</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-27 08:20:27 -0800</bug_when>
    <thetext>Comment on attachment 129039
Patch

Attachment 129039 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11633964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565666</commentid>
    <comment_count>23</comment_count>
      <attachid>129040</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:21:03 -0800</bug_when>
    <thetext>Created attachment 129040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565668</commentid>
    <comment_count>24</comment_count>
      <attachid>129040</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-27 08:26:16 -0800</bug_when>
    <thetext>Comment on attachment 129040
Patch

Attachment 129040 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11634006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565673</commentid>
    <comment_count>25</comment_count>
      <attachid>129043</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:31:10 -0800</bug_when>
    <thetext>Created attachment 129043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565674</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:33:46 -0800</bug_when>
    <thetext>Crossing fingers for EFL green-go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565675</commentid>
    <comment_count>27</comment_count>
      <attachid>129043</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-27 08:36:46 -0800</bug_when>
    <thetext>Comment on attachment 129043
Patch

Attachment 129043 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11643051</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565677</commentid>
    <comment_count>28</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-27 08:37:33 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=129040&amp;action=review

r- just because a few confusing bits. Looks good generally!

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.c:22
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#include &quot;GStreamerVersioning.h&quot;

Extra newline here.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.h:26
&gt; +G_BEGIN_DECLS

You should not need B_BEGIN_DECLS and G_END_DECLS unless you are using this file from a C file. They just unmangle the symbols.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:978
&gt; +            GstPad* pad = reinterpret_cast&lt;GstPad*&gt;(g_value_dup_object(&amp;item));

A static_cast here should be enough.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:981
&gt; +            if (gst_pad_query_duration(pad, fmt, &amp;padLength)
&gt; +                &amp;&amp; padLength &gt; length)

Typically lines go to 120 characters in WebKit, so don&apos;t break this line.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:983
&gt; +            g_value_unset(reinterpret_cast&lt;GValue*&gt;(pad));

This confuses me. You are calling g_value_unset below, why are you treating the pad like a GValue here, since it&apos;s a GstObject? Shouldn&apos;t you instead be calling gst_object_unref here? Additionally, if you used g_value_get_object instead of g_value_dup_object above, couldn&apos;t you avoid this line entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565680</commentid>
    <comment_count>29</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:40:51 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 129043 [details])
&gt; Attachment 129043 [details] did not pass efl-ews (efl):
&gt; Output: http://queues.webkit.org/results/11643051

This EFL build error is even more confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565690</commentid>
    <comment_count>30</comment_count>
      <attachid>129046</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 08:55:03 -0800</bug_when>
    <thetext>Created attachment 129046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565697</commentid>
    <comment_count>31</comment_count>
      <attachid>129046</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-27 09:00:16 -0800</bug_when>
    <thetext>Comment on attachment 129046
Patch

Attachment 129046 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11639110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565700</commentid>
    <comment_count>32</comment_count>
      <attachid>129046</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-27 09:01:21 -0800</bug_when>
    <thetext>Comment on attachment 129046
Patch

Attachment 129046 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11641069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565701</commentid>
    <comment_count>33</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 09:02:14 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #27)
&gt; &gt; (From update of attachment 129043 [details] [details])
&gt; &gt; Attachment 129043 [details] [details] did not pass efl-ews (efl):
&gt; &gt; Output: http://queues.webkit.org/results/11643051
&gt; 
&gt; This EFL build error is even more confusing.

Thanks Martin for the review but it&apos;d be great to sort out this EFL issue before landing. Any EFL human-folks around?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565704</commentid>
    <comment_count>34</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 09:03:57 -0800</bug_when>
    <thetext>Ah stupid me, I forgot to add the GStreamerVersioning files in that patch. Will send a new patch just to make sure it builds on EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565707</commentid>
    <comment_count>35</comment_count>
      <attachid>129047</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 09:04:43 -0800</bug_when>
    <thetext>Created attachment 129047
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565712</commentid>
    <comment_count>36</comment_count>
      <attachid>129047</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-27 09:09:49 -0800</bug_when>
    <thetext>Comment on attachment 129047
Patch for landing

Attachment 129047 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11607034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565717</commentid>
    <comment_count>37</comment_count>
      <attachid>129047</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-27 09:14:22 -0800</bug_when>
    <thetext>Comment on attachment 129047
Patch for landing

Attachment 129047 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11644058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565721</commentid>
    <comment_count>38</comment_count>
      <attachid>129051</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 09:18:34 -0800</bug_when>
    <thetext>Created attachment 129051
Patch for landing, renaming GStreamerVersioning.c to GStreamerVersioning.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565724</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 09:21:01 -0800</bug_when>
    <thetext>Attachment 129051 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.cpp:36:  Declaration has space between type name and * in GstPad *pad  [whitespace/declaration] [3]
Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.cpp:40:  Declaration has space between type name and * in GstCaps *caps  [whitespace/declaration] [3]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565730</commentid>
    <comment_count>40</comment_count>
      <attachid>129051</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-27 09:23:08 -0800</bug_when>
    <thetext>Comment on attachment 129051
Patch for landing, renaming GStreamerVersioning.c to GStreamerVersioning.cpp

Attachment 129051 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11644067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565745</commentid>
    <comment_count>41</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 09:43:35 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; Attachment 129051 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.cpp:36:  Declaration has space between type name and * in GstPad *pad  [whitespace/declaration] [3]
&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerVersioning.cpp:40:  Declaration has space between type name and * in GstCaps *caps  [whitespace/declaration] [3]
&gt; Total errors found: 2 in 8 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Will fix this when landing. For gtk-ews, looks like it&apos;s hosed from previous builds with the .c file, I&apos;ve checked a clean build works locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565766</commentid>
    <comment_count>42</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-27 10:04:43 -0800</bug_when>
    <thetext>Committed r109005: &lt;http://trac.webkit.org/changeset/109005&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124092</attachid>
            <date>2012-01-26 03:16:13 -0800</date>
            <delta_ts>2012-01-26 03:31:18 -0800</delta_ts>
            <desc>0.11 MediaPlayerPrivate</desc>
            <filename>011-MediaPlayerPrivate.patch</filename>
            <type>text/plain</type>
            <size>10710</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5ZjBjNjcxYmVhMTVlOTc5MjEyMjBjNmRiMDk2YmE1YzUzZTg4OGY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI2IEphbiAyMDEyIDEyOjExOjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MC4xMSBNZWRpYVBsYXllclByaXZhdGUKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKwogLi4uL2dyYXBoaWNzL2dzdHJl
YW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysKIC4uLi9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICA3NSArKysrKysrKysr
KysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYWIzNThmYy4uMDZjYzljMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDI4IEBACiAyMDEyLTAxLTI2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAorICAgICAgICBbR1N0cmVhbWVyXSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NzA4OQorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVhbWVyIDAuMTEgQVBJ
cy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFpbnRpbmcgY2hhbmdl
cyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBoYW5kbGVkCisgICAg
ICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4OCkuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAgIGdzdF9vYmplY3Rf
cmVmX3NpbmsgaXMgbm93IHByZWZlcnJlZCB0byBjb21iaW5lZCBfcmVmICsgX3NpbmsgY2FsbHMu
CisgICAgICAgIChXVEY6OkdzdEVsZW1lbnQpOgorICAgICAgICAoV1RGOjpHc3RQYWQpOgorICAg
ICAgICAoV1RGOjpHc3RQYWRUZW1wbGF0ZSk6CisgICAgICAgIChXVEY6OkdzdFRhc2spOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bmF0dXJhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKToKKworMjAxMi0wMS0yNiAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dTdHJlYW1lcl0gMC4xMSB3ZWJr
aXR3ZWJzcmMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3MDg2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCAyNDI3YzA2Li4zYmE1
ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0zNCw4ICszNCwxMiBAQCB0
ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdEVsZW1lbnQ+IGFkb3B0R1JlZihHc3RFbGVtZW50KiBwdHIp
CiB0ZW1wbGF0ZSA8PiBHc3RFbGVtZW50KiByZWZHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQq
IHB0cikKIHsKICAgICBpZiAocHRyKSB7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAg
ICAgZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JKRUNUKHB0cikpOworI2Vsc2UKICAgICAgICAg
Z3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKICAgICAgICAgZ3N0X29iamVjdF9zaW5r
KEdTVF9PQkpFQ1QocHRyKSk7CisjZW5kaWYKICAgICB9CiAKICAgICByZXR1cm4gcHRyOwpAQCAt
NTYsOCArNjAsMTIgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWQ+IGFkb3B0R1JlZihHc3RQ
YWQqIHB0cikKIHRlbXBsYXRlIDw+IEdzdFBhZCogcmVmR1B0cjxHc3RQYWQ+KEdzdFBhZCogcHRy
KQogewogICAgIGlmIChwdHIpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBn
c3Rfb2JqZWN0X3JlZl9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisjZWxzZQogICAgICAgICBnc3Rf
b2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwogICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NU
X09CSkVDVChwdHIpKTsKKyNlbmRpZgogICAgIH0KICAgICByZXR1cm4gcHRyOwogfQpAQCAtNzcs
OCArODUsMTIgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWRUZW1wbGF0ZT4gYWRvcHRHUmVm
KEdzdFBhZFRlbXBsYXRlKiBwdHIpCiB0ZW1wbGF0ZSA8PiBHc3RQYWRUZW1wbGF0ZSogcmVmR1B0
cjxHc3RQYWRUZW1wbGF0ZT4oR3N0UGFkVGVtcGxhdGUqIHB0cikKIHsKICAgICBpZiAocHRyKSB7
CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgZ3N0X29iamVjdF9yZWZfc2luayhH
U1RfT0JKRUNUKHB0cikpOworI2Vsc2UKICAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVD
VChwdHIpKTsKICAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisjZW5k
aWYKICAgICB9CiAgICAgcmV0dXJuIHB0cjsKIH0KQEAgLTExMiw4ICsxMjQsMTIgQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RUYXNrPiBhZG9wdEdSZWYoR3N0VGFzayogcHRyKQogdGVtcGxhdGUg
PD4gR3N0VGFzayogcmVmR1B0cjxHc3RUYXNrPihHc3RUYXNrKiBwdHIpCiB7CiAgICAgaWYgKHB0
cikgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIGdzdF9vYmplY3RfcmVmX3Np
bmsoR1NUX09CSkVDVChwdHIpKTsKKyNlbHNlCiAgICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9P
QkpFQ1QocHRyKSk7CiAgICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwor
I2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZTI4YjY3Yi4uNTg4MzYxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQ2LDcg
KzQ2LDExIEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSA8R093blB0ci5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCiAjaW5jbHVk
ZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKICNpbmNsdWRlIDxnc3Qv
dmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgpAQCAt
NjcsNiArNzEsMTIgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBHU1RfUExBWV9GTEFHX0JVRkZFUklO
RyAgICAgPSAweDAwMDAwMDEwMAogfSBHc3RQbGF5RmxhZ3M7CiAKKyNpZmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQorI2RlZmluZSBQTEFZQklOX05BTUUgInBsYXliaW4iCisjZWxzZQorI2RlZmluZSBQ
TEFZQklOX05BTUUgInBsYXliaW4yIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Niw3ICsxOTYsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0g
Z3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluMiIpOworICAgIEdzdEVsZW1lbnRGYWN0
b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKFBMQVlCSU5fTkFNRSk7CiAg
ICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKGZh
Y3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zOTIsNyArNDAyLDEyIEBAIGZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdAogICAgIEdzdEZv
cm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1BVF9USU1FOwogICAgIGdpbnQ2NCB0aW1lTGVuZ3Ro
ID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAm
dGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1F
IHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05P
TkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3Rf
ZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sIHRpbWVGb3JtYXQsICZ0aW1lTGVuZ3Ro
KSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9O
T05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRp
b24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0g
R1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdT
VF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYKKyAgICBpZiAoZmFpbHVyZSkgewogICAgICAgICBM
T0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAg
ICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwogICAgIH0KQEAgLTQ4
NSw4ICs1MDAsNiBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJh
bFNpemUoKSBjb25zdAogICAgIGlmICghcGFkKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwog
Ci0gICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7Ci0gICAgR3N0Q2FwcyogY2FwcyA9
IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOwogICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJh
dG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3I7CiAgICAgaW50IGRpc3BsYXlXaWR0aCwg
ZGlzcGxheUhlaWdodCwgZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogICAgIGludCBvcmlnaW5hbFdp
ZHRoID0gMCwgb3JpZ2luYWxIZWlnaHQgPSAwOwpAQCAtNDk4LDExICs1MTEsMjkgQEAgSW50U2l6
ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKIAogICAg
IC8vIEdldCB0aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLCBpZiB0aGlzIGZhaWxzIHRo
ZQogICAgIC8vIHZpZGVvLXNpbmsgaGFzIGxpa2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNh
cHMuCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RDYXBzKiBjYXBzID0gZ3N0X3Bh
ZF9nZXRfY3VycmVudF9jYXBzKHBhZC5nZXQoKSk7CisgICAgaWYgKCFjYXBzKQorICAgICAgICBj
YXBzID0gZ3N0X3BhZF9xdWVyeV9jYXBzKHBhZC5nZXQoKSwgMCk7CisKKyAgICBHc3RWaWRlb0lu
Zm8gaW5mbzsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2Fwcykp
CisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICBvcmlnaW5hbFdpZHRoID0gR1NUX1ZJ
REVPX0lORk9fV0lEVEgoJmluZm8pOworICAgIG9yaWdpbmFsSGVpZ2h0ID0gR1NUX1ZJREVPX0lO
Rk9fSEVJR0hUKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJ
REVPX0lORk9fUEFSX04oJmluZm8pOworICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9
IEdTVF9WSURFT19JTkZPX1BBUl9EKCZpbmZvKTsKKyNlbHNlCisgICAgR3N0Q2FwcyogY2FwcyA9
IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOworCisgICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5k
IG9yaWdpbmFsIHNpemUuCiAgICAgaWYgKCFHU1RfSVNfQ0FQUyhjYXBzKSB8fCAhZ3N0X2NhcHNf
aXNfZml4ZWQoY2FwcykKICAgICAgICAgfHwgIWdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2Fwcyhj
YXBzLCAwLCAmb3JpZ2luYWxXaWR0aCwgJm9yaWdpbmFsSGVpZ2h0KQogICAgICAgICB8fCAhZ3N0
X3ZpZGVvX3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKQogICAgICAgICByZXR1cm4g
SW50U2l6ZSgpOworI2VuZGlmCiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIk9yaWdpbmFsIHZp
ZGVvIHNpemU6ICVkeCVkIiwgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQpOwogICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0
UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CkBAIC05MjEsNyAr
OTUyLDExIEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRl
cygpIGNvbnN0CiAKICAgICBHc3RGb3JtYXQgZm10ID0gR1NUX0ZPUk1BVF9CWVRFUzsKICAgICBn
aW50NjQgbGVuZ3RoID0gMDsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGlmIChnc3Rf
ZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3NvdXJjZSwgZm10LCAmbGVuZ3RoKSkgeworI2Vsc2UK
ICAgICBpZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9zb3VyY2UsICZmbXQsICZsZW5n
dGgpKSB7CisjZW5kaWYKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUi
IEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihsZW5ndGgpOwogICAgIH0KQEAgLTkzMSw2ICs5NjYsMTkgQEAgdW5zaWduZWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICBHc3RJdGVy
YXRvciogaXRlciA9IGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMobV9zb3VyY2UpOwogICAg
IGJvb2wgZG9uZSA9IGZhbHNlOwogICAgIHdoaWxlICghZG9uZSkgeworI2lmZGVmIEdTVF9BUElf
VkVSU0lPTl8xCisgICAgICAgIEdWYWx1ZSBpdGVtID0gezAsIH07CisgICAgICAgIHN3aXRjaCAo
Z3N0X2l0ZXJhdG9yX25leHQoaXRlciwgJml0ZW0pKSB7CisgICAgICAgIGNhc2UgR1NUX0lURVJB
VE9SX09LOiB7CisgICAgICAgICAgICBHc3RQYWQqIHBhZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0
UGFkKj4oZ192YWx1ZV9kdXBfb2JqZWN0KCZpdGVtKSk7CisgICAgICAgICAgICBnaW50NjQgcGFk
TGVuZ3RoID0gMDsKKyAgICAgICAgICAgIGlmIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKHBhZCwg
Zm10LCAmcGFkTGVuZ3RoKQorICAgICAgICAgICAgICAgICYmIHBhZExlbmd0aCA+IGxlbmd0aCkK
KyAgICAgICAgICAgICAgICBsZW5ndGggPSBwYWRMZW5ndGg7CisgICAgICAgICAgICBnc3Rfb2Jq
ZWN0X3VucmVmKHBhZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2Vsc2UKICAg
ICAgICAgZ3BvaW50ZXIgZGF0YTsKIAogICAgICAgICBzd2l0Y2ggKGdzdF9pdGVyYXRvcl9uZXh0
KGl0ZXIsICZkYXRhKSkgewpAQCAtOTQyLDYgKzk5MCw3IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgICAgICAgICAgICAgbGVu
Z3RoID0gcGFkTGVuZ3RoOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICBjYXNlIEdTVF9JVEVSQVRPUl9SRVNZTkM6CiAgICAgICAgICAgICBnc3RfaXRlcmF0
b3JfcmVzeW5jKGl0ZXIpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC05NTEsNyArMTAwMCwxMiBA
QCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25z
dAogICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQorCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgZ192YWx1ZV91bnNldCgmaXRl
bSk7CisjZW5kaWYKICAgICB9CisKICAgICBnc3RfaXRlcmF0b3JfZnJlZShpdGVyKTsKIAogICAg
IExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxlbmd0
aCk7CkBAIC0xNjY3LDcgKzE3MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogewogICAgIEFTU0VSVCgh
bV9wbGF5QmluKTsKLSAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInBs
YXliaW4yIiwgInBsYXkiKTsKKyAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21h
a2UoUExBWUJJTl9OQU1FLCAicGxheSIpOwogCiAgICAgbV9nc3RHV29ybGQgPSBHU3RyZWFtZXJH
V29ybGQ6OmNyZWF0ZUdXb3JsZChtX3BsYXlCaW4pOwogCkBAIC0xNzAzLDcgKzE3NTcsMTEgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAg
IGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihtX3ZpZGVvU2lua0JpbiksIHZpZGVvVGVlLCBxdWV1
ZSwgTlVMTCk7CiAKICAgICAvLyBMaW5rIGEgbmV3IHNyYyBwYWQgZnJvbSB0ZWUgdG8gcXVldWUx
LgorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR1JlZlB0cjxHc3RQYWQ+IHNyY1BhZCA9
IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQodmlkZW9UZWUsICJzcmNfJXUi
KSk7CisjZWxzZQogICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2Vs
ZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKHZpZGVvVGVlLCAic3JjJWQiKSk7CisjZW5kaWYKICAgICBH
UmVmUHRyPEdzdFBhZD4gc2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGlj
X3BhZChxdWV1ZSwgInNpbmsiKSk7CiAgICAgZ3N0X3BhZF9saW5rKHNyY1BhZC5nZXQoKSwgc2lu
a1BhZC5nZXQoKSk7CiAKQEAgLTE3MzksOCArMTc5NywxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICBBU1NFUlQoYWN0dWFsVmlk
ZW9TaW5rKTsKIAorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR3N0RWxlbWVudCogdmlk
ZW9Db252ZXJ0ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ2aWRlb2NvbnZlcnQiLCAwKTsK
KyAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5rQmluKSwgdmlkZW9Db252ZXJ0KTsK
KyAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChxdWV1ZSwgInNyYyIsIHZpZGVvQ29udmVy
dCwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgZ3N0X2VsZW1lbnRf
bGlua19wYWRzX2Z1bGwodmlkZW9Db252ZXJ0LCAic3JjIiwgYWN0dWFsVmlkZW9TaW5rLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyNlbHNlCiAgICAgLy8gRmFzdGVyIGVs
ZW1lbnRzIGxpbmtpbmcuCiAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJz
cmMiLCBhY3R1YWxWaWRlb1NpbmssICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcp
OworI2VuZGlmCiAKICAgICAvLyBBZGQgYSBnaG9zdHBhZCB0byB0aGUgYmluIHNvIGl0IGNhbiBw
cm94eSB0byB0ZWUuCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1JlZihnc3RfZWxl
bWVudF9nZXRfc3RhdGljX3BhZCh2aWRlb1RlZSwgInNpbmsiKSk7Ci0tIAoxLjcuOC4z
</data>
<flag name="commit-queue"
          id="125267"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124094</attachid>
            <date>2012-01-26 03:31:18 -0800</date>
            <delta_ts>2012-02-27 01:57:12 -0800</delta_ts>
            <desc>0.11 MediaPlayerPrivate</desc>
            <filename>011-MediaPlayerPrivate.patch</filename>
            <type>text/plain</type>
            <size>11173</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjMmFlMWQyYTc1OGM2ZGU2ZThjNzEwMmJhNjUzMWNjMjZiYTA5YWVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDI2IEphbiAyMDEyIDEyOjExOjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MC4xMSBNZWRpYVBsYXllclByaXZhdGUKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKwogLi4uL2dyYXBoaWNzL2dzdHJl
YW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysKIC4uLi9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICA3NiArKysrKysrKysr
KysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYWIzNThmYy4uMDZjYzljMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDI4IEBACiAyMDEyLTAxLTI2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAorICAgICAgICBbR1N0cmVhbWVyXSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NzA4OQorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVhbWVyIDAuMTEgQVBJ
cy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFpbnRpbmcgY2hhbmdl
cyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBoYW5kbGVkCisgICAg
ICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4OCkuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAgIGdzdF9vYmplY3Rf
cmVmX3NpbmsgaXMgbm93IHByZWZlcnJlZCB0byBjb21iaW5lZCBfcmVmICsgX3NpbmsgY2FsbHMu
CisgICAgICAgIChXVEY6OkdzdEVsZW1lbnQpOgorICAgICAgICAoV1RGOjpHc3RQYWQpOgorICAg
ICAgICAoV1RGOjpHc3RQYWRUZW1wbGF0ZSk6CisgICAgICAgIChXVEY6OkdzdFRhc2spOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojppc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bmF0dXJhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKToKKworMjAxMi0wMS0yNiAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dTdHJlYW1lcl0gMC4xMSB3ZWJr
aXR3ZWJzcmMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3MDg2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCAyNDI3YzA2Li4zYmE1
ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0zNCw4ICszNCwxMiBAQCB0
ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdEVsZW1lbnQ+IGFkb3B0R1JlZihHc3RFbGVtZW50KiBwdHIp
CiB0ZW1wbGF0ZSA8PiBHc3RFbGVtZW50KiByZWZHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQq
IHB0cikKIHsKICAgICBpZiAocHRyKSB7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAg
ICAgZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JKRUNUKHB0cikpOworI2Vsc2UKICAgICAgICAg
Z3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKICAgICAgICAgZ3N0X29iamVjdF9zaW5r
KEdTVF9PQkpFQ1QocHRyKSk7CisjZW5kaWYKICAgICB9CiAKICAgICByZXR1cm4gcHRyOwpAQCAt
NTYsOCArNjAsMTIgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWQ+IGFkb3B0R1JlZihHc3RQ
YWQqIHB0cikKIHRlbXBsYXRlIDw+IEdzdFBhZCogcmVmR1B0cjxHc3RQYWQ+KEdzdFBhZCogcHRy
KQogewogICAgIGlmIChwdHIpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBn
c3Rfb2JqZWN0X3JlZl9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisjZWxzZQogICAgICAgICBnc3Rf
b2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwogICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NU
X09CSkVDVChwdHIpKTsKKyNlbmRpZgogICAgIH0KICAgICByZXR1cm4gcHRyOwogfQpAQCAtNzcs
OCArODUsMTIgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWRUZW1wbGF0ZT4gYWRvcHRHUmVm
KEdzdFBhZFRlbXBsYXRlKiBwdHIpCiB0ZW1wbGF0ZSA8PiBHc3RQYWRUZW1wbGF0ZSogcmVmR1B0
cjxHc3RQYWRUZW1wbGF0ZT4oR3N0UGFkVGVtcGxhdGUqIHB0cikKIHsKICAgICBpZiAocHRyKSB7
CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgZ3N0X29iamVjdF9yZWZfc2luayhH
U1RfT0JKRUNUKHB0cikpOworI2Vsc2UKICAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVD
VChwdHIpKTsKICAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisjZW5k
aWYKICAgICB9CiAgICAgcmV0dXJuIHB0cjsKIH0KQEAgLTExMiw4ICsxMjQsMTIgQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RUYXNrPiBhZG9wdEdSZWYoR3N0VGFzayogcHRyKQogdGVtcGxhdGUg
PD4gR3N0VGFzayogcmVmR1B0cjxHc3RUYXNrPihHc3RUYXNrKiBwdHIpCiB7CiAgICAgaWYgKHB0
cikgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIGdzdF9vYmplY3RfcmVmX3Np
bmsoR1NUX09CSkVDVChwdHIpKTsKKyNlbHNlCiAgICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9P
QkpFQ1QocHRyKSk7CiAgICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwor
I2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZTI4YjY3Yi4uYzdiOTkyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQ2LDcg
KzQ2LDExIEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSA8R093blB0ci5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCiAjaW5jbHVk
ZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKICNpbmNsdWRlIDxnc3Qv
dmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgpAQCAt
NjcsNiArNzEsMTIgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBHU1RfUExBWV9GTEFHX0JVRkZFUklO
RyAgICAgPSAweDAwMDAwMDEwMAogfSBHc3RQbGF5RmxhZ3M7CiAKKyNpZmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQorI2RlZmluZSBQTEFZQklOX05BTUUgInBsYXliaW4iCisjZWxzZQorI2RlZmluZSBQ
TEFZQklOX05BTUUgInBsYXliaW4yIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Niw3ICsxOTYsNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0g
Z3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluMiIpOworICAgIEdzdEVsZW1lbnRGYWN0
b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKFBMQVlCSU5fTkFNRSk7CiAg
ICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKGZh
Y3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zOTIsNyArNDAyLDEyIEBAIGZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdAogICAgIEdzdEZv
cm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1BVF9USU1FOwogICAgIGdpbnQ2NCB0aW1lTGVuZ3Ro
ID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAm
dGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1F
IHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05P
TkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3Rf
ZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sIHRpbWVGb3JtYXQsICZ0aW1lTGVuZ3Ro
KSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9O
T05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRp
b24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0g
R1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdT
VF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYKKyAgICBpZiAoZmFpbHVyZSkgewogICAgICAgICBM
T0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAg
ICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwogICAgIH0KQEAgLTQ4
NSw4ICs1MDAsNiBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJh
bFNpemUoKSBjb25zdAogICAgIGlmICghcGFkKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwog
Ci0gICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7Ci0gICAgR3N0Q2FwcyogY2FwcyA9
IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOwogICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJh
dG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3I7CiAgICAgaW50IGRpc3BsYXlXaWR0aCwg
ZGlzcGxheUhlaWdodCwgZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogICAgIGludCBvcmlnaW5hbFdp
ZHRoID0gMCwgb3JpZ2luYWxIZWlnaHQgPSAwOwpAQCAtNDk4LDExICs1MTEsMjkgQEAgSW50U2l6
ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKIAogICAg
IC8vIEdldCB0aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLCBpZiB0aGlzIGZhaWxzIHRo
ZQogICAgIC8vIHZpZGVvLXNpbmsgaGFzIGxpa2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNh
cHMuCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RDYXBzKiBjYXBzID0gZ3N0X3Bh
ZF9nZXRfY3VycmVudF9jYXBzKHBhZC5nZXQoKSk7CisgICAgaWYgKCFjYXBzKQorICAgICAgICBj
YXBzID0gZ3N0X3BhZF9xdWVyeV9jYXBzKHBhZC5nZXQoKSwgMCk7CisKKyAgICBHc3RWaWRlb0lu
Zm8gaW5mbzsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2Fwcykp
CisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICBvcmlnaW5hbFdpZHRoID0gR1NUX1ZJ
REVPX0lORk9fV0lEVEgoJmluZm8pOworICAgIG9yaWdpbmFsSGVpZ2h0ID0gR1NUX1ZJREVPX0lO
Rk9fSEVJR0hUKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJ
REVPX0lORk9fUEFSX04oJmluZm8pOworICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9
IEdTVF9WSURFT19JTkZPX1BBUl9EKCZpbmZvKTsKKyNlbHNlCisgICAgR3N0Q2FwcyogY2FwcyA9
IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOworCisgICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5k
IG9yaWdpbmFsIHNpemUuCiAgICAgaWYgKCFHU1RfSVNfQ0FQUyhjYXBzKSB8fCAhZ3N0X2NhcHNf
aXNfZml4ZWQoY2FwcykKICAgICAgICAgfHwgIWdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2Fwcyhj
YXBzLCAwLCAmb3JpZ2luYWxXaWR0aCwgJm9yaWdpbmFsSGVpZ2h0KQogICAgICAgICB8fCAhZ3N0
X3ZpZGVvX3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKQogICAgICAgICByZXR1cm4g
SW50U2l6ZSgpOworI2VuZGlmCiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIk9yaWdpbmFsIHZp
ZGVvIHNpemU6ICVkeCVkIiwgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQpOwogICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0
UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CkBAIC01MTcsNiAr
NTQ4LDcgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXpl
KCkgY29uc3QKICAgICBkaXNwbGF5SGVpZ2h0IC89IGRpc3BsYXlBc3BlY3RSYXRpb0dDRDsKIAog
ICAgIC8vIEFwcGx5IERBUiB0byBvcmlnaW5hbCB2aWRlbyBzaXplLiBUaGlzIGlzIHRoZSBzYW1l
IGJlaGF2aW9yIGFzIGluIHh2aW1hZ2VzaW5rJ3Mgc2V0Y2FwcyBmdW5jdGlvbi4KKyAgICBndWlu
dDY0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKICAgICBpZiAoIShvcmlnaW5hbEhlaWdodCAlIGRp
c3BsYXlIZWlnaHQpKSB7CiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiS2VlcGluZyB2aWRl
byBvcmlnaW5hbCBoZWlnaHQiKTsKICAgICAgICAgd2lkdGggPSBnc3RfdXRpbF91aW50NjRfc2Nh
bGVfaW50KG9yaWdpbmFsSGVpZ2h0LCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQpOwpAQCAt
OTIxLDcgKzk1MywxMSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRv
dGFsQnl0ZXMoKSBjb25zdAogCiAgICAgR3N0Rm9ybWF0IGZtdCA9IEdTVF9GT1JNQVRfQllURVM7
CiAgICAgZ2ludDY0IGxlbmd0aCA9IDA7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBp
ZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9zb3VyY2UsIGZtdCwgJmxlbmd0aCkpIHsK
KyNlbHNlCiAgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCAmZm10
LCAmbGVuZ3RoKSkgeworI2VuZGlmCiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxC
eXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obGVuZ3RoKTsKICAgICB9CkBAIC05MzEsNiArOTY3LDE5IEBAIHVuc2ln
bmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAg
R3N0SXRlcmF0b3IqIGl0ZXIgPSBnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKG1fc291cmNl
KTsKICAgICBib29sIGRvbmUgPSBmYWxzZTsKICAgICB3aGlsZSAoIWRvbmUpIHsKKyNpZmRlZiBH
U1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBHVmFsdWUgaXRlbSA9IHswLCB9OworICAgICAgICBz
d2l0Y2ggKGdzdF9pdGVyYXRvcl9uZXh0KGl0ZXIsICZpdGVtKSkgeworICAgICAgICBjYXNlIEdT
VF9JVEVSQVRPUl9PSzogeworICAgICAgICAgICAgR3N0UGFkKiBwYWQgPSByZWludGVycHJldF9j
YXN0PEdzdFBhZCo+KGdfdmFsdWVfZHVwX29iamVjdCgmaXRlbSkpOworICAgICAgICAgICAgZ2lu
dDY0IHBhZExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlv
bihwYWQsIGZtdCwgJnBhZExlbmd0aCkKKyAgICAgICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBs
ZW5ndGgpCisgICAgICAgICAgICAgICAgbGVuZ3RoID0gcGFkTGVuZ3RoOworICAgICAgICAgICAg
Z3N0X29iamVjdF91bnJlZihwYWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNl
bHNlCiAgICAgICAgIGdwb2ludGVyIGRhdGE7CiAKICAgICAgICAgc3dpdGNoIChnc3RfaXRlcmF0
b3JfbmV4dChpdGVyLCAmZGF0YSkpIHsKQEAgLTk0Miw2ICs5OTEsNyBAQCB1bnNpZ25lZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgICAgICAgICAg
ICAgIGxlbmd0aCA9IHBhZExlbmd0aDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgY2FzZSBHU1RfSVRFUkFUT1JfUkVTWU5DOgogICAgICAgICAgICAgZ3N0
X2l0ZXJhdG9yX3Jlc3luYyhpdGVyKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTUxLDcgKzEw
MDEsMTIgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVz
KCkgY29uc3QKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIGdfdmFsdWVfdW5z
ZXQoJml0ZW0pOworI2VuZGlmCiAgICAgfQorCiAgICAgZ3N0X2l0ZXJhdG9yX2ZyZWUoaXRlcik7
CiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFU
LCBsZW5ndGgpOwpAQCAtMTY2Nyw3ICsxNzIyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIHsKICAgICBB
U1NFUlQoIW1fcGxheUJpbik7Ci0gICAgbV9wbGF5QmluID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJwbGF5YmluMiIsICJwbGF5Iik7CisgICAgbV9wbGF5QmluID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKFBMQVlCSU5fTkFNRSwgInBsYXkiKTsKIAogICAgIG1fZ3N0R1dvcmxkID0gR1N0
cmVhbWVyR1dvcmxkOjpjcmVhdGVHV29ybGQobV9wbGF5QmluKTsKIApAQCAtMTcwMyw3ICsxNzU4
LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5Qmlu
KCkKICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV92aWRlb1NpbmtCaW4pLCB2aWRlb1Rl
ZSwgcXVldWUsIE5VTEwpOwogCiAgICAgLy8gTGluayBhIG5ldyBzcmMgcGFkIGZyb20gdGVlIHRv
IHF1ZXVlMS4KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEdSZWZQdHI8R3N0UGFkPiBz
cmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKHZpZGVvVGVlLCAi
c3JjXyV1IikpOworI2Vsc2UKICAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVm
KGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCh2aWRlb1RlZSwgInNyYyVkIikpOworI2VuZGlm
CiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0
X3N0YXRpY19wYWQocXVldWUsICJzaW5rIikpOwogICAgIGdzdF9wYWRfbGluayhzcmNQYWQuZ2V0
KCksIHNpbmtQYWQuZ2V0KCkpOwogCkBAIC0xNzM5LDggKzE3OTgsMTUgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgQVNTRVJUKGFj
dHVhbFZpZGVvU2luayk7CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEdzdEVsZW1l
bnQqIHZpZGVvQ29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgidmlkZW9jb252ZXJ0
IiwgMCk7CisgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihtX3ZpZGVvU2lua0JpbiksIHZpZGVvQ29u
dmVydCk7CisgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJzcmMiLCB2aWRl
b0NvbnZlcnQsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKHZpZGVvQ29udmVydCwgInNyYyIsIGFjdHVhbFZpZGVvU2lu
aywgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisjZWxzZQogICAgIC8vIEZh
c3RlciBlbGVtZW50cyBsaW5raW5nLgogICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1
ZXVlLCAic3JjIiwgYWN0dWFsVmlkZW9TaW5rLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19O
T1RISU5HKTsKKyNlbmRpZgogCiAgICAgLy8gQWRkIGEgZ2hvc3RwYWQgdG8gdGhlIGJpbiBzbyBp
dCBjYW4gcHJveHkgdG8gdGVlLgogICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQgPSBhZG9wdEdSZWYo
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQodmlkZW9UZWUsICJzaW5rIikpOwotLSAKMS43Ljgu
Mw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128986</attachid>
            <date>2012-02-27 01:57:12 -0800</date>
            <delta_ts>2012-02-27 02:26:32 -0800</delta_ts>
            <desc>0.11 MediaPlayerPrivate</desc>
            <filename>011-MediaPlayerPrivate.patch</filename>
            <type>text/plain</type>
            <size>17660</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0YWQ4NDBjZjBkNWY3ZDBmNzVmMTkxOGYzNjk3NzliZmNkZDUwMGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI3IEZlYiAyMDEyIDEwOjQ3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MC4xMSBNZWRpYVBsYXllclByaXZhdGUKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKwogU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9ncmFwaGljcy9n
c3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgICAgICAgIHwgICAyNyArKystLS0tCiAuLi4v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYyAgICAgICB8ICAgNTIgKysr
KysrKysrKysrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaCAg
ICAgICB8ICAgMzYgKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCAgICAgIHwgICA4NSArKysrKysrKysrKysrKysrKy0tLQogNiBmaWxlcyBjaGFu
Z2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZl
cnNpb25pbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmgKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAw
YTZmZS4uZDU4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0
cmVhbWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAg
cGFpbnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFy
ZSBoYW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3
NzA4OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdU
Rjo6R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6Okdz
dFBhZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAg
ICAgICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2Vs
ZW1lbnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXpl
KToKKwogMjAxMi0wMi0yNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1vdmUgd2Vic29ja2V0cyB0byBNb2R1bGVzL3dlYnNvY2tldHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDNiZTU4ODkuLjdiM2RlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDUyMyw2ICs0NTIzLDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJl
YW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyR1dvcmxkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWly
by5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJl
YW1lci5jcHAKaW5kZXggMjQyN2MwNi4uN2M0MzQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVh
bWVyLmNwcApAQCAtMTksNiArMTksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiR1JlZlB0ckdTdHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIK
IAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KQEAgLTMz
LDEwICszNCw4IEBAIHRlbXBsYXRlIDw+IEdSZWZQdHI8R3N0RWxlbWVudD4gYWRvcHRHUmVmKEdz
dEVsZW1lbnQqIHB0cikKIAogdGVtcGxhdGUgPD4gR3N0RWxlbWVudCogcmVmR1B0cjxHc3RFbGVt
ZW50PihHc3RFbGVtZW50KiBwdHIpCiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2Jq
ZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09C
SkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0X2dzdF9vYmpl
Y3RfcmVmX3NpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CkBAIC01
NSwxMCArNTQsOSBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZD4gYWRvcHRHUmVmKEdzdFBh
ZCogcHRyKQogCiB0ZW1wbGF0ZSA8PiBHc3RQYWQqIHJlZkdQdHI8R3N0UGFkPihHc3RQYWQqIHB0
cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpFQ1Qo
cHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAgIH0K
KyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JK
RUNUKHB0cikpOworCiAgICAgcmV0dXJuIHB0cjsKIH0KIApAQCAtNzYsMTAgKzc0LDkgQEAgdGVt
cGxhdGUgPD4gR1JlZlB0cjxHc3RQYWRUZW1wbGF0ZT4gYWRvcHRHUmVmKEdzdFBhZFRlbXBsYXRl
KiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdzdFBhZFRlbXBsYXRlKiByZWZHUHRyPEdzdFBhZFRlbXBs
YXRlPihHc3RQYWRUZW1wbGF0ZSogcHRyKQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0
X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdT
VF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdF9nc3Rf
b2JqZWN0X3JlZl9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwogfQog
CkBAIC0xMTEsMTAgKzEwOCw4IEBAIHRlbXBsYXRlIDw+IEdSZWZQdHI8R3N0VGFzaz4gYWRvcHRH
UmVmKEdzdFRhc2sqIHB0cikKIAogdGVtcGxhdGUgPD4gR3N0VGFzayogcmVmR1B0cjxHc3RUYXNr
PihHc3RUYXNrKiBwdHIpCiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3Jl
ZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChw
dHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0X2dzdF9vYmplY3RfcmVm
X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVy
c2lvbmluZy5jIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclZlcnNpb25pbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
OGJiM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYwpAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCisKKyNpbmNsdWRl
IDxnc3QvZ3N0Lmg+CisKK3ZvaWQgd2Via2l0X2dzdF9vYmplY3RfcmVmX3NpbmsoR3N0T2JqZWN0
KiBnc3RPYmplY3QpCit7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBnc3Rfb2JqZWN0
X3JlZl9zaW5rKGdzdE9iamVjdCk7CisjZWxzZQorICAgIGdzdF9vYmplY3RfcmVmKGdzdE9iamVj
dCk7CisgICAgZ3N0X29iamVjdF9zaW5rKGdzdE9iamVjdCk7CisjZW5kaWYKK30KKworR3N0Q2Fw
cyAqIHdlYmtpdF9nc3RfZWxlbWVudF9nZXRfcGFkX2NhcHMoR3N0RWxlbWVudCogZWxlbWVudCwg
Y29uc3QgY2hhciogZGlyZWN0aW9uKQoreworICAgIEdzdFBhZCAqcGFkID0gZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQoZWxlbWVudCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoIXBhZCkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBHc3RDYXBzICpjYXBzOworI2lmZGVmIEdTVF9BUElfVkVSU0lP
Tl8xCisgICAgY2FwcyA9IGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcyhwYWQpOworICAgIGlmICgh
Y2FwcykKKyAgICAgICAgY2FwcyA9IGdzdF9wYWRfcXVlcnlfY2FwcyhwYWQsIDApOworI2Vsc2UK
KyAgICBjYXBzID0gR1NUX1BBRF9DQVBTKHBhZCk7CisjZW5kaWYKKyAgICBnc3Rfb2JqZWN0X3Vu
cmVmKEdTVF9PQkpFQ1QocGFkKSk7CisgICAgcmV0dXJuIGNhcHM7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lv
bmluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclZlcnNpb25pbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjM5
MzkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdTdHJl
YW1lclZlcnNpb25pbmdfaAorI2RlZmluZSBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKKworI2luY2x1
ZGUgPGdsaWIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX0dzdE9iamVjdCBHc3RPYmplY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dzdENh
cHMgR3N0Q2FwczsKKworR19CRUdJTl9ERUNMUworCit2b2lkIHdlYmtpdF9nc3Rfb2JqZWN0X3Jl
Zl9zaW5rKEdzdE9iamVjdCopOworR3N0Q2Fwcyogd2Via2l0X2dzdF9lbGVtZW50X2dldF9wYWRf
Y2FwcyhHc3RFbGVtZW50KiwgY29uc3QgY2hhciopOworCitHX0VORF9ERUNMUworCisjZW5kaWYg
Ly8gR1N0cmVhbWVyVmVyc2lvbmluZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZkOTBmYTkuLjZmN2NhYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgog
I2luY2x1ZGUgIkdTdHJlYW1lckdXb3JsZC5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25p
bmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5
cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIKQEAgLTQ2LDEyICs0NywxNyBAQAog
I2luY2x1ZGUgIldlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgPEdPd25QdHIu
aD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+Ci0jaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFt
dm9sdW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAjaW5jbHVkZSA8bGltaXRz
PgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNp
ZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUu
aD4KKyNlbHNlCisjaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5k
aWYKKwogLy8gR3N0UGxheUZsYWdzIGZsYWdzIGZyb20gcGxheWJpbjIuIEl0IGlzIHRoZSBwb2xp
Y3kgb2YgR1N0cmVhbWVyIHRvCiAvLyBub3QgcHVibGljbHkgZXhwb3NlIGVsZW1lbnQtc3BlY2lm
aWMgZW51bXMuIFRoYXQncyB3aHkgdGhpcwogLy8gR3N0UGxheUZsYWdzIGVudW0gaGFzIGJlZW4g
Y29waWVkIGhlcmUuCkBAIC02Nyw2ICs3MywxMiBAQCB0eXBlZGVmIGVudW0gewogICAgIEdTVF9Q
TEFZX0ZMQUdfQlVGRkVSSU5HICAgICA9IDB4MDAwMDAwMTAwCiB9IEdzdFBsYXlGbGFnczsKIAor
I2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCitzdGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1l
ID0gInBsYXliaW4iOworI2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyKiBnUGxheWJpbk5hbWUgPSAi
cGxheWJpbjIiOworI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE4Niw3ICsxOTgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6aXNBdmFpbGFibGUoKQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9maW5kKCJwbGF5YmluMiIpOworICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKGdQbGF5YmluTmFtZSk7CiAgICAgaWYgKGZhY3Rv
cnkpIHsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKGZhY3RvcnkpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC00MDAsNyArNDEyLDEyIEBAIGZsb2F0IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdAogICAgIEdzdEZvcm1hdCB0aW1lRm9y
bWF0ID0gR1NUX0ZPUk1BVF9USU1FOwogICAgIGdpbnQ2NCB0aW1lTGVuZ3RoID0gMDsKIAotICAg
IGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwg
JnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19j
YXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkUpIHsKKyNpZmRl
ZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3RfZWxlbWVudF9xdWVy
eV9kdXJhdGlvbihtX3BsYXlCaW4sIHRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fCBzdGF0aWNf
Y2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FOworI2Vsc2UK
KyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5Qmlu
LCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9U
SU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1F
X05PTkU7CisjZW5kaWYKKyAgICBpZiAoZmFpbHVyZSkgewogICAgICAgICBMT0dfVkVSQk9TRShN
ZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAgICByZXR1cm4gbnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwogICAgIH0KQEAgLTQ4OSwxMiArNTA2LDEw
IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNv
bnN0CiAgICAgaWYgKCFoYXNWaWRlbygpKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0g
ICAgR1JlZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGlj
X3BhZChtX3dlYmtpdFZpZGVvU2luaywgInNpbmsiKSk7Ci0gICAgaWYgKCFwYWQpCisgICAgR3N0
Q2FwcyogY2FwcyA9IHdlYmtpdF9nc3RfZWxlbWVudF9nZXRfcGFkX2NhcHMobV93ZWJraXRWaWRl
b1NpbmssICJzaW5rIik7CisgICAgaWYgKCFjYXBzKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgp
OwogCi0gICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7Ci0gICAgR3N0Q2FwcyogY2Fw
cyA9IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOwogICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVt
ZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3I7CiAgICAgaW50IGRpc3BsYXlXaWR0
aCwgZGlzcGxheUhlaWdodCwgZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogICAgIGludCBvcmlnaW5h
bFdpZHRoID0gMCwgb3JpZ2luYWxIZWlnaHQgPSAwOwpAQCAtNTA2LDExICs1MjEsMjMgQEAgSW50
U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKIAog
ICAgIC8vIEdldCB0aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLCBpZiB0aGlzIGZhaWxz
IHRoZQogICAgIC8vIHZpZGVvLXNpbmsgaGFzIGxpa2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRz
IGNhcHMuCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RWaWRlb0luZm8gaW5mbzsK
KyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCisgICAgICAg
IHJldHVybiBJbnRTaXplKCk7CisKKyAgICBvcmlnaW5hbFdpZHRoID0gR1NUX1ZJREVPX0lORk9f
V0lEVEgoJmluZm8pOworICAgIG9yaWdpbmFsSGVpZ2h0ID0gR1NUX1ZJREVPX0lORk9fSEVJR0hU
KCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9f
UEFSX04oJmluZm8pOworICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9IEdTVF9WSURF
T19JTkZPX1BBUl9EKCZpbmZvKTsKKyNlbHNlCisgICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5k
IG9yaWdpbmFsIHNpemUuCiAgICAgaWYgKCFHU1RfSVNfQ0FQUyhjYXBzKSB8fCAhZ3N0X2NhcHNf
aXNfZml4ZWQoY2FwcykKICAgICAgICAgfHwgIWdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2Fwcyhj
YXBzLCAwLCAmb3JpZ2luYWxXaWR0aCwgJm9yaWdpbmFsSGVpZ2h0KQogICAgICAgICB8fCAhZ3N0
X3ZpZGVvX3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJh
dGlvTnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKQogICAgICAgICByZXR1cm4g
SW50U2l6ZSgpOworI2VuZGlmCiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIk9yaWdpbmFsIHZp
ZGVvIHNpemU6ICVkeCVkIiwgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQpOwogICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0
UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CkBAIC01MjUsNiAr
NTUyLDcgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXpl
KCkgY29uc3QKICAgICBkaXNwbGF5SGVpZ2h0IC89IGRpc3BsYXlBc3BlY3RSYXRpb0dDRDsKIAog
ICAgIC8vIEFwcGx5IERBUiB0byBvcmlnaW5hbCB2aWRlbyBzaXplLiBUaGlzIGlzIHRoZSBzYW1l
IGJlaGF2aW9yIGFzIGluIHh2aW1hZ2VzaW5rJ3Mgc2V0Y2FwcyBmdW5jdGlvbi4KKyAgICBndWlu
dDY0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKICAgICBpZiAoIShvcmlnaW5hbEhlaWdodCAlIGRp
c3BsYXlIZWlnaHQpKSB7CiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiS2VlcGluZyB2aWRl
byBvcmlnaW5hbCBoZWlnaHQiKTsKICAgICAgICAgd2lkdGggPSBnc3RfdXRpbF91aW50NjRfc2Nh
bGVfaW50KG9yaWdpbmFsSGVpZ2h0LCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQpOwpAQCAt
OTI5LDcgKzk1NywxMSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRv
dGFsQnl0ZXMoKSBjb25zdAogCiAgICAgR3N0Rm9ybWF0IGZtdCA9IEdTVF9GT1JNQVRfQllURVM7
CiAgICAgZ2ludDY0IGxlbmd0aCA9IDA7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBp
ZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9zb3VyY2UsIGZtdCwgJmxlbmd0aCkpIHsK
KyNlbHNlCiAgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCAmZm10
LCAmbGVuZ3RoKSkgeworI2VuZGlmCiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxC
eXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obGVuZ3RoKTsKICAgICB9CkBAIC05MzksNiArOTcxLDE5IEBAIHVuc2ln
bmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAg
R3N0SXRlcmF0b3IqIGl0ZXIgPSBnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKG1fc291cmNl
KTsKICAgICBib29sIGRvbmUgPSBmYWxzZTsKICAgICB3aGlsZSAoIWRvbmUpIHsKKyNpZmRlZiBH
U1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBHVmFsdWUgaXRlbSA9IHswLCB9OworICAgICAgICBz
d2l0Y2ggKGdzdF9pdGVyYXRvcl9uZXh0KGl0ZXIsICZpdGVtKSkgeworICAgICAgICBjYXNlIEdT
VF9JVEVSQVRPUl9PSzogeworICAgICAgICAgICAgR3N0UGFkKiBwYWQgPSByZWludGVycHJldF9j
YXN0PEdzdFBhZCo+KGdfdmFsdWVfZHVwX29iamVjdCgmaXRlbSkpOworICAgICAgICAgICAgZ2lu
dDY0IHBhZExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlv
bihwYWQsIGZtdCwgJnBhZExlbmd0aCkKKyAgICAgICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBs
ZW5ndGgpCisgICAgICAgICAgICAgICAgbGVuZ3RoID0gcGFkTGVuZ3RoOworICAgICAgICAgICAg
Z192YWx1ZV91bnNldChyZWludGVycHJldF9jYXN0PEdWYWx1ZSo+KHBhZCkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyNlbHNlCiAgICAgICAgIGdwb2ludGVyIGRhdGE7CiAKICAg
ICAgICAgc3dpdGNoIChnc3RfaXRlcmF0b3JfbmV4dChpdGVyLCAmZGF0YSkpIHsKQEAgLTk1MCw2
ICs5OTUsNyBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0
ZXMoKSBjb25zdAogICAgICAgICAgICAgICAgIGxlbmd0aCA9IHBhZExlbmd0aDsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgY2FzZSBHU1RfSVRFUkFUT1Jf
UkVTWU5DOgogICAgICAgICAgICAgZ3N0X2l0ZXJhdG9yX3Jlc3luYyhpdGVyKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtOTU5LDcgKzEwMDUsMTIgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICAgICAgICAgIGRvbmUgPSB0cnVl
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKworI2lmZGVmIEdTVF9BUElfVkVSU0lP
Tl8xCisgICAgICAgIGdfdmFsdWVfdW5zZXQoJml0ZW0pOworI2VuZGlmCiAgICAgfQorCiAgICAg
Z3N0X2l0ZXJhdG9yX2ZyZWUoaXRlcik7CiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFs
Qnl0ZXMgJSIgR19HSU5UNjRfRk9STUFULCBsZW5ndGgpOwpAQCAtMTY3MSw3ICsxNzIyLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6
OlByZWxvYWQgcHJlbG9hZCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVh
dGVHU1RQbGF5QmluKCkKIHsKICAgICBBU1NFUlQoIW1fcGxheUJpbik7Ci0gICAgbV9wbGF5Qmlu
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJwbGF5YmluMiIsICJwbGF5Iik7CisgICAgbV9w
bGF5QmluID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKGdQbGF5YmluTmFtZSwgInBsYXkiKTsK
IAogICAgIG1fZ3N0R1dvcmxkID0gR1N0cmVhbWVyR1dvcmxkOjpjcmVhdGVHV29ybGQobV9wbGF5
QmluKTsKIApAQCAtMTY5Miw3ICsxNzQzLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV93ZWJr
aXRWaWRlb1NpbmssICJyZXBhaW50LXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQ
cml2YXRlUmVwYWludENhbGxiYWNrKSwgdGhpcyk7CiAKKworI2lmbmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQogICAgIG1fdmlkZW9TaW5rQmluID0gZ3N0X2Jpbl9uZXcoInNpbmsiKTsKKwogICAgIEdz
dEVsZW1lbnQqIHZpZGVvVGVlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ0ZWUiLCAidmlk
ZW9UZWUiKTsKICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgicXVldWUiLCAwKTsKIApAQCAtMTcxMCw2ICsxNzY0LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIEdSZWZQdHI8R3N0UGFkPiBz
cmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKHZpZGVvVGVlLCAi
c3JjJWQiKSk7CiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2Vs
ZW1lbnRfZ2V0X3N0YXRpY19wYWQocXVldWUsICJzaW5rIikpOwogICAgIGdzdF9wYWRfbGluayhz
cmNQYWQuZ2V0KCksIHNpbmtQYWQuZ2V0KCkpOworI2VuZGlmCiAKICAgICBHc3RFbGVtZW50KiBh
Y3R1YWxWaWRlb1NpbmsgPSAwOwogICAgIG1fZnBzU2luayA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgiZnBzZGlzcGxheXNpbmsiLCAic2luayIpOwpAQCAtMTcyOCw3ICsxNzgzLDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAg
ICAgICAgICBpZiAoZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xB
U1MobV9mcHNTaW5rKSwgInZpZGVvLXNpbmsiKSkgewogICAgICAgICAgICAgICAgIGdfb2JqZWN0
X3NldChtX2Zwc1NpbmssICJ2aWRlby1zaW5rIiwgbV93ZWJraXRWaWRlb1NpbmssIE5VTEwpOwor
I2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgICAgICAgICAgICAgIGdzdF9iaW5fYWRkKEdT
VF9CSU4obV92aWRlb1NpbmtCaW4pLCBtX2Zwc1NpbmspOworI2VuZGlmCiAgICAgICAgICAgICAg
ICAgYWN0dWFsVmlkZW9TaW5rID0gbV9mcHNTaW5rOwogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgbV9mcHNTaW5rID0gMDsKQEAgLTE3MzcsMTIgKzE3OTQsMTUgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIH0KIAog
ICAgIGlmICghbV9mcHNTaW5rKSB7CisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAg
IGdzdF9iaW5fYWRkKEdTVF9CSU4obV92aWRlb1NpbmtCaW4pLCBtX3dlYmtpdFZpZGVvU2luayk7
CisjZW5kaWYKICAgICAgICAgYWN0dWFsVmlkZW9TaW5rID0gbV93ZWJraXRWaWRlb1Npbms7CiAg
ICAgfQogCiAgICAgQVNTRVJUKGFjdHVhbFZpZGVvU2luayk7CiAKKyNpZm5kZWYgR1NUX0FQSV9W
RVJTSU9OXzEKICAgICAvLyBGYXN0ZXIgZWxlbWVudHMgbGlua2luZy4KICAgICBnc3RfZWxlbWVu
dF9saW5rX3BhZHNfZnVsbChxdWV1ZSwgInNyYyIsIGFjdHVhbFZpZGVvU2luaywgInNpbmsiLCBH
U1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CiAKQEAgLTE3NTIsMTAgKzE4MTIsMTMgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAg
Ly8gU2V0IHRoZSBiaW4gYXMgdmlkZW8gc2luayBvZiBwbGF5YmluLgogICAgIGdfb2JqZWN0X3Nl
dChtX3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgbV92aWRlb1NpbmtCaW4sIE5VTEwpOworI2Vsc2UK
KyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAidmlkZW8tc2luayIsIGFjdHVhbFZpZGVvU2lu
aywgTlVMTCk7CisjZW5kaWYKIAotICAgIHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2luaywgInNpbmsiKSk7Ci0gICAgaWYgKHBhZCkKLSAg
ICAgICAgZ19zaWduYWxfY29ubmVjdChwYWQuZ2V0KCksICJub3RpZnk6OmNhcHMiLCBHX0NBTExC
QUNLKG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlz
KTsKKyAgICBHUmVmUHRyPEdzdFBhZD4gdmlkZW9TaW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpKTsKKyAgICBpZiAo
dmlkZW9TaW5rUGFkKQorICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHZpZGVvU2lua1BhZC5nZXQo
KSwgIm5vdGlmeTo6Y2FwcyIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9TaW5r
Q2Fwc0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogCiB9CiAKLS0gCjEuNy45LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128992</attachid>
            <date>2012-02-27 02:26:32 -0800</date>
            <delta_ts>2012-02-27 08:14:14 -0800</delta_ts>
            <desc>0.11 MediaPlayerPrivate</desc>
            <filename>011-MediaPlayerPrivate.patch</filename>
            <type>text/plain</type>
            <size>18842</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA1YzQ2YTE5NWQzMDBhMGY1ZmUzMzcwMmQwNTdiOWZmZTNlZThmYWUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI3IEZlYiAyMDEyIDEwOjQ3OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
MC4xMSBNZWRpYVBsYXllclByaXZhdGUKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKwogU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiAuLi4vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwICAgICAgICB8ICAgMjcgKysrLS0tLQog
Li4uL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmMgICAgICAgfCAgIDUy
ICsrKysrKysrKysrKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5n
LmggICAgICAgfCAgIDM2ICsrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgODUgKysrKysrKysrKysrKysrKystLS0KIDcgZmlsZXMg
Y2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJWZXJzaW9uaW5nLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDcwMGE2ZmUuLmQ1ODQ1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wMi0y
NyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gMC4xMSBzdXBwb3J0IGluIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwODkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpYyBwb3J0IHRv
IEdTdHJlYW1lciAwLjExIEFQSXMuIFRoaXMgcGF0Y2ggZXhjbHVkZXMgdGhlIHZpZGVvCisgICAg
ICAgIHBhaW50aW5nIGNoYW5nZXMgYW5kIHRoZSBHU3RyZWFtZXJHV29ybGQgY2hhbmdlcyB3aGlj
aCBhcmUgaGFuZGxlZAorICAgICAgICBpbiB0d28gb3RoZXIgcGF0Y2hlcyAoYnVncyA3NzA4NyBh
bmQgNzcwODgpLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHA6CisgICAgICAg
IChXVEY6OkdzdEVsZW1lbnQpOgorICAgICAgICAoV1RGOjpHc3RQYWQpOgorICAgICAgICAoV1RG
OjpHc3RQYWRUZW1wbGF0ZSk6CisgICAgICAgIChXVEY6OkdzdFRhc2spOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmM6IEFkZGVkLgor
ICAgICAgICAod2Via2l0X2dzdF9vYmplY3RfcmVmX3NpbmspOgorICAgICAgICAod2Via2l0X2dz
dF9lbGVtZW50X2dldF9wYWRfY2Fwcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFs
U2l6ZSk6CisKIDIwMTItMDItMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBNb3ZlIHdlYnNvY2tldHMgdG8gTW9kdWxlcy93ZWJzb2NrZXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCAzYmU1ODg5Li43YjNkZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTQ1MjMsNiArNDUyMyw4IEBAIHdlYmNvcmVndGtfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lckdXb3JsZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYyBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
SW1hZ2VHU3RyZWFtZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
NGUwY2Q4ZC4uMmE0OGYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMjMxLDYgKzMyMzEsNyBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBIRUFERVJTICs9IFwKICAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgg
XAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3Js
ZC5oIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJW
ZXJzaW9uaW5nLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmggXApAQCAtMzI0
MCw2ICszMjQxLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAg
ICAgU09VUkNFUyArPSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAgXAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYyBcCiAgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBcCiAg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVy
LmNwcCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKaW5kZXgg
MjQyN2MwNi4uN2M0MzQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcApAQCAtMTks
NiArMTksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJl
YW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKIAogI2lmIFVTRShHU1RS
RUFNRVIpCiAjaW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KQEAgLTMzLDEwICszNCw4IEBAIHRl
bXBsYXRlIDw+IEdSZWZQdHI8R3N0RWxlbWVudD4gYWRvcHRHUmVmKEdzdEVsZW1lbnQqIHB0cikK
IAogdGVtcGxhdGUgPD4gR3N0RWxlbWVudCogcmVmR1B0cjxHc3RFbGVtZW50PihHc3RFbGVtZW50
KiBwdHIpCiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JK
RUNUKHB0cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAg
ICB9CisgICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0X2dzdF9vYmplY3RfcmVmX3NpbmsoR1NU
X09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CkBAIC01NSwxMCArNTQsOSBAQCB0
ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZD4gYWRvcHRHUmVmKEdzdFBhZCogcHRyKQogCiB0ZW1w
bGF0ZSA8PiBHc3RQYWQqIHJlZkdQdHI8R3N0UGFkPihHc3RQYWQqIHB0cikKIHsKLSAgICBpZiAo
cHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgICAg
IGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAgIH0KKyAgICBpZiAocHRyKQor
ICAgICAgICB3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JKRUNUKHB0cikpOworCiAg
ICAgcmV0dXJuIHB0cjsKIH0KIApAQCAtNzYsMTAgKzc0LDkgQEAgdGVtcGxhdGUgPD4gR1JlZlB0
cjxHc3RQYWRUZW1wbGF0ZT4gYWRvcHRHUmVmKEdzdFBhZFRlbXBsYXRlKiBwdHIpCiAKIHRlbXBs
YXRlIDw+IEdzdFBhZFRlbXBsYXRlKiByZWZHUHRyPEdzdFBhZFRlbXBsYXRlPihHc3RQYWRUZW1w
bGF0ZSogcHRyKQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NU
X09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7
Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdF9nc3Rfb2JqZWN0X3JlZl9zaW5r
KEdTVF9PQkpFQ1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwogfQogCkBAIC0xMTEsMTAgKzEw
OCw4IEBAIHRlbXBsYXRlIDw+IEdSZWZQdHI8R3N0VGFzaz4gYWRvcHRHUmVmKEdzdFRhc2sqIHB0
cikKIAogdGVtcGxhdGUgPD4gR3N0VGFzayogcmVmR1B0cjxHc3RUYXNrPihHc3RUYXNrKiBwdHIp
CiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0
cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9Cisg
ICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0X2dzdF9vYmplY3RfcmVmX3NpbmsoR1NUX09CSkVD
VChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25p
bmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGJiM2Y5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclZlcnNpb25pbmcuYwpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCisKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisK
K3ZvaWQgd2Via2l0X2dzdF9vYmplY3RfcmVmX3NpbmsoR3N0T2JqZWN0KiBnc3RPYmplY3QpCit7
CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBnc3Rfb2JqZWN0X3JlZl9zaW5rKGdzdE9i
amVjdCk7CisjZWxzZQorICAgIGdzdF9vYmplY3RfcmVmKGdzdE9iamVjdCk7CisgICAgZ3N0X29i
amVjdF9zaW5rKGdzdE9iamVjdCk7CisjZW5kaWYKK30KKworR3N0Q2FwcyAqIHdlYmtpdF9nc3Rf
ZWxlbWVudF9nZXRfcGFkX2NhcHMoR3N0RWxlbWVudCogZWxlbWVudCwgY29uc3QgY2hhciogZGly
ZWN0aW9uKQoreworICAgIEdzdFBhZCAqcGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQo
ZWxlbWVudCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoIXBhZCkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBHc3RDYXBzICpjYXBzOworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgY2FwcyA9
IGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcyhwYWQpOworICAgIGlmICghY2FwcykKKyAgICAgICAg
Y2FwcyA9IGdzdF9wYWRfcXVlcnlfY2FwcyhwYWQsIDApOworI2Vsc2UKKyAgICBjYXBzID0gR1NU
X1BBRF9DQVBTKHBhZCk7CisjZW5kaWYKKyAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1Qo
cGFkKSk7CisgICAgcmV0dXJuIGNhcHM7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjM5MzkxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclZlcnNpb25pbmcuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdTdHJlYW1lclZlcnNpb25pbmdf
aAorI2RlZmluZSBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKwor
dHlwZWRlZiBzdHJ1Y3QgX0dzdE9iamVjdCBHc3RPYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR3N0
RWxlbWVudCBHc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dzdENhcHMgR3N0Q2FwczsKKwor
R19CRUdJTl9ERUNMUworCit2b2lkIHdlYmtpdF9nc3Rfb2JqZWN0X3JlZl9zaW5rKEdzdE9iamVj
dCopOworR3N0Q2Fwcyogd2Via2l0X2dzdF9lbGVtZW50X2dldF9wYWRfY2FwcyhHc3RFbGVtZW50
KiwgY29uc3QgY2hhciopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLy8gR1N0cmVhbWVyVmVy
c2lvbmluZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOTBmYTkuLjZmN2NhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJl
YW1lckdXb3JsZC5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VHU3RyZWFtZXIuaCIKQEAgLTQ2LDEyICs0NywxNyBAQAogI2luY2x1ZGUgIldlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgPEdPd25QdHIuaD4KICNpbmNsdWRlIDxn
c3QvZ3N0Lmg+Ci0jaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjaW5j
bHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1h
dGguaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZmRlZiBHU1RfQVBJX1ZF
UlNJT05fMQorI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCisjaW5j
bHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKKwogLy8gR3N0UGxh
eUZsYWdzIGZsYWdzIGZyb20gcGxheWJpbjIuIEl0IGlzIHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVy
IHRvCiAvLyBub3QgcHVibGljbHkgZXhwb3NlIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMuIFRoYXQn
cyB3aHkgdGhpcwogLy8gR3N0UGxheUZsYWdzIGVudW0gaGFzIGJlZW4gY29waWVkIGhlcmUuCkBA
IC02Nyw2ICs3MywxMiBAQCB0eXBlZGVmIGVudW0gewogICAgIEdTVF9QTEFZX0ZMQUdfQlVGRkVS
SU5HICAgICA9IDB4MDAwMDAwMTAwCiB9IEdzdFBsYXlGbGFnczsKIAorI2lmZGVmIEdTVF9BUElf
VkVSU0lPTl8xCitzdGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4iOwor
I2Vsc2UKK3N0YXRpYyBjb25zdCBjaGFyKiBnUGxheWJpbk5hbWUgPSAicGxheWJpbjIiOworI2Vu
ZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4
Niw3ICsxOTgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFi
bGUoKQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJw
bGF5YmluMiIpOworICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9maW5kKGdQbGF5YmluTmFtZSk7CiAgICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAg
Z3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKGZhY3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC00MDAsNyArNDEyLDEyIEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZHVyYXRpb24oKSBjb25zdAogICAgIEdzdEZvcm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1B
VF9USU1FOwogICAgIGdpbnQ2NCB0aW1lTGVuZ3RoID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1l
bnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8
IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRp
bWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3Bs
YXlCaW4sIHRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0
aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1
cmUgPSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwg
JnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19j
YXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYK
KyAgICBpZiAoZmFpbHVyZSkgewogICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVy
YXRpb24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjppbmZpbml0eSgpOwogICAgIH0KQEAgLTQ4OSwxMiArNTA2LDEwIEBAIEludFNpemUgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFo
YXNWaWRlbygpKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgR1JlZlB0cjxHc3RQ
YWQ+IHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZp
ZGVvU2luaywgInNpbmsiKSk7Ci0gICAgaWYgKCFwYWQpCisgICAgR3N0Q2FwcyogY2FwcyA9IHdl
YmtpdF9nc3RfZWxlbWVudF9nZXRfcGFkX2NhcHMobV93ZWJraXRWaWRlb1NpbmssICJzaW5rIik7
CisgICAgaWYgKCFjYXBzKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgZ3VpbnQ2
NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7Ci0gICAgR3N0Q2FwcyogY2FwcyA9IEdTVF9QQURfQ0FQ
UyhwYWQuZ2V0KCkpOwogICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFz
cGVjdFJhdGlvRGVub21pbmF0b3I7CiAgICAgaW50IGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdo
dCwgZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogICAgIGludCBvcmlnaW5hbFdpZHRoID0gMCwgb3Jp
Z2luYWxIZWlnaHQgPSAwOwpAQCAtNTA2LDExICs1MjEsMjMgQEAgSW50U2l6ZSBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKIAogICAgIC8vIEdldCB0aGUg
dmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLCBpZiB0aGlzIGZhaWxzIHRoZQogICAgIC8vIHZp
ZGVvLXNpbmsgaGFzIGxpa2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNhcHMuCisjaWZkZWYg
R1NUX0FQSV9WRVJTSU9OXzEKKyAgICBHc3RWaWRlb0luZm8gaW5mbzsKKyAgICBpZiAoIWdzdF92
aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgY2FwcykpCisgICAgICAgIHJldHVybiBJbnRTaXpl
KCk7CisKKyAgICBvcmlnaW5hbFdpZHRoID0gR1NUX1ZJREVPX0lORk9fV0lEVEgoJmluZm8pOwor
ICAgIG9yaWdpbmFsSGVpZ2h0ID0gR1NUX1ZJREVPX0lORk9fSEVJR0hUKCZpbmZvKTsKKyAgICBw
aXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX04oJmluZm8pOwor
ICAgIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9EKCZp
bmZvKTsKKyNlbHNlCisgICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5kIG9yaWdpbmFsIHNpemUu
CiAgICAgaWYgKCFHU1RfSVNfQ0FQUyhjYXBzKSB8fCAhZ3N0X2NhcHNfaXNfZml4ZWQoY2FwcykK
ICAgICAgICAgfHwgIWdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2FwcyhjYXBzLCAwLCAmb3JpZ2lu
YWxXaWR0aCwgJm9yaWdpbmFsSGVpZ2h0KQogICAgICAgICB8fCAhZ3N0X3ZpZGVvX3BhcnNlX2Nh
cHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworI2Vu
ZGlmCiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIk9yaWdpbmFsIHZpZGVvIHNpemU6ICVkeCVk
Iiwgb3JpZ2luYWxXaWR0aCwgb3JpZ2luYWxIZWlnaHQpOwogICAgIExPR19WRVJCT1NFKE1lZGlh
LCAiUGl4ZWwgYXNwZWN0IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3Is
IHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcik7CkBAIC01MjUsNiArNTUyLDcgQEAgSW50U2l6
ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICBk
aXNwbGF5SGVpZ2h0IC89IGRpc3BsYXlBc3BlY3RSYXRpb0dDRDsKIAogICAgIC8vIEFwcGx5IERB
UiB0byBvcmlnaW5hbCB2aWRlbyBzaXplLiBUaGlzIGlzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIGlu
IHh2aW1hZ2VzaW5rJ3Mgc2V0Y2FwcyBmdW5jdGlvbi4KKyAgICBndWludDY0IHdpZHRoID0gMCwg
aGVpZ2h0ID0gMDsKICAgICBpZiAoIShvcmlnaW5hbEhlaWdodCAlIGRpc3BsYXlIZWlnaHQpKSB7
CiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiS2VlcGluZyB2aWRlbyBvcmlnaW5hbCBoZWln
aHQiKTsKICAgICAgICAgd2lkdGggPSBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KG9yaWdpbmFs
SGVpZ2h0LCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQpOwpAQCAtOTI5LDcgKzk1NywxMSBA
QCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25z
dAogCiAgICAgR3N0Rm9ybWF0IGZtdCA9IEdTVF9GT1JNQVRfQllURVM7CiAgICAgZ2ludDY0IGxl
bmd0aCA9IDA7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBpZiAoZ3N0X2VsZW1lbnRf
cXVlcnlfZHVyYXRpb24obV9zb3VyY2UsIGZtdCwgJmxlbmd0aCkpIHsKKyNlbHNlCiAgICAgaWYg
KGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCAmZm10LCAmbGVuZ3RoKSkgewor
I2VuZGlmCiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyAlIiBHX0dJTlQ2
NF9GT1JNQVQsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
bGVuZ3RoKTsKICAgICB9CkBAIC05MzksNiArOTcxLDE5IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgR3N0SXRlcmF0b3IqIGl0
ZXIgPSBnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKG1fc291cmNlKTsKICAgICBib29sIGRv
bmUgPSBmYWxzZTsKICAgICB3aGlsZSAoIWRvbmUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQorICAgICAgICBHVmFsdWUgaXRlbSA9IHswLCB9OworICAgICAgICBzd2l0Y2ggKGdzdF9pdGVy
YXRvcl9uZXh0KGl0ZXIsICZpdGVtKSkgeworICAgICAgICBjYXNlIEdTVF9JVEVSQVRPUl9PSzog
eworICAgICAgICAgICAgR3N0UGFkKiBwYWQgPSByZWludGVycHJldF9jYXN0PEdzdFBhZCo+KGdf
dmFsdWVfZHVwX29iamVjdCgmaXRlbSkpOworICAgICAgICAgICAgZ2ludDY0IHBhZExlbmd0aCA9
IDA7CisgICAgICAgICAgICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbihwYWQsIGZtdCwgJnBh
ZExlbmd0aCkKKyAgICAgICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBsZW5ndGgpCisgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gcGFkTGVuZ3RoOworICAgICAgICAgICAgZ192YWx1ZV91bnNldChy
ZWludGVycHJldF9jYXN0PEdWYWx1ZSo+KHBhZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyNlbHNlCiAgICAgICAgIGdwb2ludGVyIGRhdGE7CiAKICAgICAgICAgc3dpdGNoIChn
c3RfaXRlcmF0b3JfbmV4dChpdGVyLCAmZGF0YSkpIHsKQEAgLTk1MCw2ICs5OTUsNyBAQCB1bnNp
Z25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAg
ICAgICAgICAgICAgIGxlbmd0aCA9IHBhZExlbmd0aDsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgY2FzZSBHU1RfSVRFUkFUT1JfUkVTWU5DOgogICAgICAg
ICAgICAgZ3N0X2l0ZXJhdG9yX3Jlc3luYyhpdGVyKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
OTU5LDcgKzEwMDUsMTIgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0
b3RhbEJ5dGVzKCkgY29uc3QKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIGdf
dmFsdWVfdW5zZXQoJml0ZW0pOworI2VuZGlmCiAgICAgfQorCiAgICAgZ3N0X2l0ZXJhdG9yX2Zy
ZWUoaXRlcik7CiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5U
NjRfRk9STUFULCBsZW5ndGgpOwpAQCAtMTY3MSw3ICsxNzIyLDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkK
IHsKICAgICBBU1NFUlQoIW1fcGxheUJpbik7Ci0gICAgbV9wbGF5QmluID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlKCJwbGF5YmluMiIsICJwbGF5Iik7CisgICAgbV9wbGF5QmluID0gZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKGdQbGF5YmluTmFtZSwgInBsYXkiKTsKIAogICAgIG1fZ3N0R1dv
cmxkID0gR1N0cmVhbWVyR1dvcmxkOjpjcmVhdGVHV29ybGQobV9wbGF5QmluKTsKIApAQCAtMTY5
Miw3ICsxNzQzLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVH
U1RQbGF5QmluKCkKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV93ZWJraXRWaWRlb1NpbmssICJy
ZXBhaW50LXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlUmVwYWludENh
bGxiYWNrKSwgdGhpcyk7CiAKKworI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIG1fdmlk
ZW9TaW5rQmluID0gZ3N0X2Jpbl9uZXcoInNpbmsiKTsKKwogICAgIEdzdEVsZW1lbnQqIHZpZGVv
VGVlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ0ZWUiLCAidmlkZW9UZWUiKTsKICAgICBH
c3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAwKTsK
IApAQCAtMTcxMCw2ICsxNzY0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBhZG9wdEdS
ZWYoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkKHZpZGVvVGVlLCAic3JjJWQiKSk7CiAgICAg
R1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRp
Y19wYWQocXVldWUsICJzaW5rIikpOwogICAgIGdzdF9wYWRfbGluayhzcmNQYWQuZ2V0KCksIHNp
bmtQYWQuZ2V0KCkpOworI2VuZGlmCiAKICAgICBHc3RFbGVtZW50KiBhY3R1YWxWaWRlb1Npbmsg
PSAwOwogICAgIG1fZnBzU2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZnBzZGlzcGxh
eXNpbmsiLCAic2luayIpOwpAQCAtMTcyOCw3ICsxNzgzLDkgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgICAgICAgICBpZiAoZ19v
YmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1MobV9mcHNTaW5rKSwg
InZpZGVvLXNpbmsiKSkgewogICAgICAgICAgICAgICAgIGdfb2JqZWN0X3NldChtX2Zwc1Npbmss
ICJ2aWRlby1zaW5rIiwgbV93ZWJraXRWaWRlb1NpbmssIE5VTEwpOworI2lmbmRlZiBHU1RfQVBJ
X1ZFUlNJT05fMQogICAgICAgICAgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4obV92aWRlb1Np
bmtCaW4pLCBtX2Zwc1NpbmspOworI2VuZGlmCiAgICAgICAgICAgICAgICAgYWN0dWFsVmlkZW9T
aW5rID0gbV9mcHNTaW5rOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9m
cHNTaW5rID0gMDsKQEAgLTE3MzcsMTIgKzE3OTQsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIH0KIAogICAgIGlmICghbV9mcHNT
aW5rKSB7CisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAgIGdzdF9iaW5fYWRkKEdT
VF9CSU4obV92aWRlb1NpbmtCaW4pLCBtX3dlYmtpdFZpZGVvU2luayk7CisjZW5kaWYKICAgICAg
ICAgYWN0dWFsVmlkZW9TaW5rID0gbV93ZWJraXRWaWRlb1Npbms7CiAgICAgfQogCiAgICAgQVNT
RVJUKGFjdHVhbFZpZGVvU2luayk7CiAKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAv
LyBGYXN0ZXIgZWxlbWVudHMgbGlua2luZy4KICAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVs
bChxdWV1ZSwgInNyYyIsIGFjdHVhbFZpZGVvU2luaywgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hF
Q0tfTk9USElORyk7CiAKQEAgLTE3NTIsMTAgKzE4MTIsMTMgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgLy8gU2V0IHRoZSBiaW4g
YXMgdmlkZW8gc2luayBvZiBwbGF5YmluLgogICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2
aWRlby1zaW5rIiwgbV92aWRlb1NpbmtCaW4sIE5VTEwpOworI2Vsc2UKKyAgICBnX29iamVjdF9z
ZXQobV9wbGF5QmluLCAidmlkZW8tc2luayIsIGFjdHVhbFZpZGVvU2luaywgTlVMTCk7CisjZW5k
aWYKIAotICAgIHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dl
YmtpdFZpZGVvU2luaywgInNpbmsiKSk7Ci0gICAgaWYgKHBhZCkKLSAgICAgICAgZ19zaWduYWxf
Y29ubmVjdChwYWQuZ2V0KCksICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVy
UHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBHUmVmUHRy
PEdzdFBhZD4gdmlkZW9TaW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNf
cGFkKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpKTsKKyAgICBpZiAodmlkZW9TaW5rUGFkKQor
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHZpZGVvU2lua1BhZC5nZXQoKSwgIm5vdGlmeTo6Y2Fw
cyIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9TaW5rQ2Fwc0NoYW5nZWRDYWxs
YmFjayksIHRoaXMpOwogCiB9CiAKLS0gCjEuNy45LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129039</attachid>
            <date>2012-02-27 08:14:27 -0800</date>
            <delta_ts>2012-02-27 08:20:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77089-20120227171450.patch</filename>
            <type>text/plain</type>
            <size>18419</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QzMzg3NGQwNGM1N2Uz
OWIzZTY2YjY5NDc1NGE3MzAxNzgyNWEzOC4uZmIxYTA0ZWM2YjI1OTRlNDRhZWU5ZGRmNTlkZmEw
NTMwMTEwNjMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVh
bWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFp
bnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBo
YW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4
OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdURjo6
R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6OkdzdFBh
ZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAgICAg
ICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2VsZW1l
bnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KwogMjAxMi0wMi0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZXBhaW50IGNvdW50ZXIgZ3JhcGhzIHdoZW4gdGltZWxp
bmUgc3BsaXR0ZXIgbW92ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEzZWQx
NzY4MDczZTFiZDU2ZjIxZDM0NGRhNjc1NDhhNTU3NGRjNGUuLmE3YjE0ZjZiMGYwOTFjMDI4ZWYx
MTYwYThjNTU2ODJlM2Q5ZmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDUzMCw2ICs0NTMwLDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckdXb3JsZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkODI3Y2QzZDM4MTgwYmE3Yzll
ZTUxMWQwNGE1Y2JmZDIwYTFmOWFiLi40NDUxZTVmM2MyNjVhYzEzYTk3Y2ZkN2Q5YTliY2I0NjA4
ZGY1MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMyMzEsNiArMzIzMSw3IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaCBcCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmggXAorICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcu
aCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCBcCkBAIC0zMjQwLDYgKzMyNDEs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBTT1VSQ0VT
ICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmNwcCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyR1dvcmxkLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKICAgICAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIFwKICAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCAyNDI3YzA2YjI5
NDI5MjBmNTU2M2M2NGIwYTZkMmFjNTNlNzJjMWM3Li5iODUzODcwN2NmMDFjMWI3NzE4Njk5NGFj
M2Q1ODU2Y2M5ZGQ3YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0xOSw2
ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogCiAjaWYgVVNFKEdTVFJF
QU1FUikKICNpbmNsdWRlIDxnc3QvZ3N0ZWxlbWVudC5oPgpAQCAtMzMsMTAgKzM0LDggQEAgdGVt
cGxhdGUgPD4gR1JlZlB0cjxHc3RFbGVtZW50PiBhZG9wdEdSZWYoR3N0RWxlbWVudCogcHRyKQog
CiB0ZW1wbGF0ZSA8PiBHc3RFbGVtZW50KiByZWZHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQq
IHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpF
Q1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAg
IH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpF
Q1QocHRyKSk7CiAKICAgICByZXR1cm4gcHRyOwogfQpAQCAtNTUsMTAgKzU0LDkgQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RQYWQ+IGFkb3B0R1JlZihHc3RQYWQqIHB0cikKIAogdGVtcGxhdGUg
PD4gR3N0UGFkKiByZWZHUHRyPEdzdFBhZD4oR3N0UGFkKiBwdHIpCiB7Ci0gICAgaWYgKHB0cikg
ewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rf
b2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAgICAg
ICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOworCiAgICAgcmV0dXJu
IHB0cjsKIH0KIApAQCAtNzYsMTAgKzc0LDkgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWRU
ZW1wbGF0ZT4gYWRvcHRHUmVmKEdzdFBhZFRlbXBsYXRlKiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdz
dFBhZFRlbXBsYXRlKiByZWZHUHRyPEdzdFBhZFRlbXBsYXRlPihHc3RQYWRUZW1wbGF0ZSogcHRy
KQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChw
dHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQor
ICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChw
dHIpKTsKKwogICAgIHJldHVybiBwdHI7CiB9CiAKQEAgLTExMSwxMCArMTA4LDggQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RUYXNrPiBhZG9wdEdSZWYoR3N0VGFzayogcHRyKQogCiB0ZW1wbGF0
ZSA8PiBHc3RUYXNrKiByZWZHUHRyPEdzdFRhc2s+KEdzdFRhc2sqIHB0cikKIHsKLSAgICBpZiAo
cHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgICAg
IGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAgIH0KKyAgICBpZiAocHRyKQor
ICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpFQ1QocHRyKSk7CiAKICAgICBy
ZXR1cm4gcHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGRlNjU3MmE4OTYwY2JkZDc1ZDI4MWRhOTlhODJiNzkyM2RlMDBjZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJW
ZXJzaW9uaW5nLmMKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
Z2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
R1N0cmVhbWVyVmVyc2lvbmluZy5oIgorCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorCit2b2lkIHdl
YmtpdEdzdE9iamVjdFJlZlNpbmsoR3N0T2JqZWN0KiBnc3RPYmplY3QpCit7CisjaWZkZWYgR1NU
X0FQSV9WRVJTSU9OXzEKKyAgICBnc3Rfb2JqZWN0X3JlZl9zaW5rKGdzdE9iamVjdCk7CisjZWxz
ZQorICAgIGdzdF9vYmplY3RfcmVmKGdzdE9iamVjdCk7CisgICAgZ3N0X29iamVjdF9zaW5rKGdz
dE9iamVjdCk7CisjZW5kaWYKK30KKworR3N0Q2FwcyAqIHdlYmtpdEdzdEVsZW1lbnRHZXRQYWRD
YXBzKEdzdEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IGNoYXIqIGRpcmVjdGlvbikKK3sKKyAgICBH
c3RQYWQgKnBhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGVsZW1lbnQsIGRpcmVjdGlv
bik7CisgICAgaWYgKCFwYWQpCisgICAgICAgIHJldHVybiAwOworCisgICAgR3N0Q2FwcyAqY2Fw
czsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGNhcHMgPSBnc3RfcGFkX2dldF9jdXJy
ZW50X2NhcHMocGFkKTsKKyAgICBpZiAoIWNhcHMpCisgICAgICAgIGNhcHMgPSBnc3RfcGFkX3F1
ZXJ5X2NhcHMocGFkLCAwKTsKKyNlbHNlCisgICAgY2FwcyA9IEdTVF9QQURfQ0FQUyhwYWQpOwor
I2VuZGlmCisgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKHBhZCkpOworICAgIHJldHVy
biBjYXBzOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdh
YTc3YTZmNjYzMmI0YjMyZjg4YmI2NTViM2Q3ODdjYmNiMzAwZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJz
aW9uaW5nLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKKyNkZWZp
bmUgR1N0cmVhbWVyVmVyc2lvbmluZ19oCisKKyNpbmNsdWRlIDxnbGliLmg+CisKK3R5cGVkZWYg
c3RydWN0IF9Hc3RPYmplY3QgR3N0T2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dzdEVsZW1lbnQg
R3N0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9Hc3RDYXBzIEdzdENhcHM7CisKK0dfQkVHSU5f
REVDTFMKKwordm9pZCB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdzdE9iamVjdCopOworR3N0Q2Fw
cyogd2Via2l0R3N0RWxlbWVudEdldFBhZENhcHMoR3N0RWxlbWVudCosIGNvbnN0IGNoYXIqKTsK
KworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIEdTdHJlYW1lclZlcnNpb25pbmdfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZDkwZmE5
YTZhZmU2M2Y3YWI1NTQxYmFjZmY0MzEzMmNlYzU1MTQ5Li44YjU2ODYxYjg2ZTA0NWMzOTYzNjA2
MDFmNWM1NmZkMGY4NTYyZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJHV29y
bGQuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdl
R1N0cmVhbWVyLmgiCkBAIC00NiwxMiArNDcsMTcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxHT3duUHRyLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5o
PgotI2luY2x1ZGUgPGdzdC9pbnRlcmZhY2VzL3N0cmVhbXZvbHVtZS5oPgogI2luY2x1ZGUgPGdz
dC92aWRlby92aWRlby5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEK
KyNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9sdW1lLmg+CisjZWxzZQorI2luY2x1ZGUgPGdz
dC9pbnRlcmZhY2VzL3N0cmVhbXZvbHVtZS5oPgorI2VuZGlmCisKIC8vIEdzdFBsYXlGbGFncyBm
bGFncyBmcm9tIHBsYXliaW4yLiBJdCBpcyB0aGUgcG9saWN5IG9mIEdTdHJlYW1lciB0bwogLy8g
bm90IHB1YmxpY2x5IGV4cG9zZSBlbGVtZW50LXNwZWNpZmljIGVudW1zLiBUaGF0J3Mgd2h5IHRo
aXMKIC8vIEdzdFBsYXlGbGFncyBlbnVtIGhhcyBiZWVuIGNvcGllZCBoZXJlLgpAQCAtNjcsNiAr
NzMsMTIgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBHU1RfUExBWV9GTEFHX0JVRkZFUklORyAgICAg
PSAweDAwMDAwMDEwMAogfSBHc3RQbGF5RmxhZ3M7CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQorc3RhdGljIGNvbnN0IGNoYXIqIGdQbGF5YmluTmFtZSA9ICJwbGF5YmluIjsKKyNlbHNlCitz
dGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4yIjsKKyNlbmRpZgorCiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODYsNyArMTk4
LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKICAg
ICBpZiAoIWRvR3N0SW5pdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBHc3RFbGVt
ZW50RmFjdG9yeSogZmFjdG9yeSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZCgicGxheWJpbjIi
KTsKKyAgICBHc3RFbGVtZW50RmFjdG9yeSogZmFjdG9yeSA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
ZmluZChnUGxheWJpbk5hbWUpOwogICAgIGlmIChmYWN0b3J5KSB7CiAgICAgICAgIGdzdF9vYmpl
Y3RfdW5yZWYoR1NUX09CSkVDVChmYWN0b3J5KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NDAwLDcgKzQxMiwxMiBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0
aW9uKCkgY29uc3QKICAgICBHc3RGb3JtYXQgdGltZUZvcm1hdCA9IEdTVF9GT1JNQVRfVElNRTsK
ICAgICBnaW50NjQgdGltZUxlbmd0aCA9IDA7CiAKLSAgICBpZiAoIWdzdF9lbGVtZW50X3F1ZXJ5
X2R1cmF0aW9uKG1fcGxheUJpbiwgJnRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fCB0aW1lRm9y
bWF0ICE9IEdTVF9GT1JNQVRfVElNRSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3Ro
KSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FKSB7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAg
ICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCB0
aW1lRm9ybWF0LCAmdGltZUxlbmd0aCkgfHwgc3RhdGljX2Nhc3Q8Z3VpbnQ2ND4odGltZUxlbmd0
aCkgPT0gR1NUX0NMT0NLX1RJTUVfTk9ORTsKKyNlbHNlCisgICAgYm9vbCBmYWlsdXJlID0gIWdz
dF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgJnRpbWVGb3JtYXQsICZ0aW1lTGVu
Z3RoKSB8fCB0aW1lRm9ybWF0ICE9IEdTVF9GT1JNQVRfVElNRSB8fCBzdGF0aWNfY2FzdDxndWlu
dDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FOworI2VuZGlmCisgICAgaWYg
KGZhaWx1cmUpIHsKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJUaW1lIGR1cmF0aW9uIHF1
ZXJ5IGZhaWxlZC4iKTsKICAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5m
aW5pdHkoKTsKICAgICB9CkBAIC00ODksMTIgKzUwNiwxMCBAQCBJbnRTaXplIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGlmICghaGFzVmlkZW8o
KSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKIAotICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQg
PSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRWaWRlb1Npbmss
ICJzaW5rIikpOwotICAgIGlmICghcGFkKQorICAgIEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RF
bGVtZW50R2V0UGFkQ2FwcyhtX3dlYmtpdFZpZGVvU2luaywgInNpbmsiKTsKKyAgICBpZiAoIWNh
cHMpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKLSAgICBndWludDY0IHdpZHRoID0gMCwg
aGVpZ2h0ID0gMDsKLSAgICBHc3RDYXBzKiBjYXBzID0gR1NUX1BBRF9DQVBTKHBhZC5nZXQoKSk7
CiAgICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5v
bWluYXRvcjsKICAgICBpbnQgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0LCBkaXNwbGF5QXNw
ZWN0UmF0aW9HQ0Q7CiAgICAgaW50IG9yaWdpbmFsV2lkdGggPSAwLCBvcmlnaW5hbEhlaWdodCA9
IDA7CkBAIC01MDYsMTEgKzUyMSwyMyBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogCiAgICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5k
IG9yaWdpbmFsIHNpemUsIGlmIHRoaXMgZmFpbHMgdGhlCiAgICAgLy8gdmlkZW8tc2luayBoYXMg
bGlrZWx5IG5vdCB5ZXQgbmVnb3RpYXRlZCBpdHMgY2Fwcy4KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorICAgIEdzdFZpZGVvSW5mbyBpbmZvOworICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJv
bV9jYXBzKCZpbmZvLCBjYXBzKSkKKyAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKworICAgIG9y
aWdpbmFsV2lkdGggPSBHU1RfVklERU9fSU5GT19XSURUSCgmaW5mbyk7CisgICAgb3JpZ2luYWxI
ZWlnaHQgPSBHU1RfVklERU9fSU5GT19IRUlHSFQoJmluZm8pOworICAgIHBpeGVsQXNwZWN0UmF0
aW9OdW1lcmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJfTigmaW5mbyk7CisgICAgcGl4ZWxBc3Bl
Y3RSYXRpb0Rlbm9taW5hdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX0QoJmluZm8pOworI2Vsc2UK
KyAgICAvLyBHZXQgdGhlIHZpZGVvIFBBUiBhbmQgb3JpZ2luYWwgc2l6ZS4KICAgICBpZiAoIUdT
VF9JU19DQVBTKGNhcHMpIHx8ICFnc3RfY2Fwc19pc19maXhlZChjYXBzKQogICAgICAgICB8fCAh
Z3N0X3ZpZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKGNhcHMsIDAsICZvcmlnaW5hbFdpZHRoLCAmb3Jp
Z2luYWxIZWlnaHQpCiAgICAgICAgIHx8ICFnc3RfdmlkZW9fcGFyc2VfY2Fwc19waXhlbF9hc3Bl
Y3RfcmF0aW8oY2FwcywgJnBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpeGVsQXNwZWN0UmF0aW9E
ZW5vbWluYXRvcikpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisjZW5kaWYKIAogICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiT3JpZ2luYWwgdmlkZW8gc2l6ZTogJWR4JWQiLCBvcmlnaW5hbFdp
ZHRoLCBvcmlnaW5hbEhlaWdodCk7CiAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJQaXhlbCBhc3Bl
Y3QgcmF0aW86ICVkLyVkIiwgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RS
YXRpb0Rlbm9taW5hdG9yKTsKQEAgLTUyNSw2ICs1NTIsNyBAQCBJbnRTaXplIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGRpc3BsYXlIZWlnaHQg
Lz0gZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogCiAgICAgLy8gQXBwbHkgREFSIHRvIG9yaWdpbmFs
IHZpZGVvIHNpemUuIFRoaXMgaXMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgaW4geHZpbWFnZXNpbmsn
cyBzZXRjYXBzIGZ1bmN0aW9uLgorICAgIGd1aW50NjQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwog
ICAgIGlmICghKG9yaWdpbmFsSGVpZ2h0ICUgZGlzcGxheUhlaWdodCkpIHsKICAgICAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJLZWVwaW5nIHZpZGVvIG9yaWdpbmFsIGhlaWdodCIpOwogICAgICAg
ICB3aWR0aCA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQob3JpZ2luYWxIZWlnaHQsIGRpc3Bs
YXlXaWR0aCwgZGlzcGxheUhlaWdodCk7CkBAIC05MjksNyArOTU3LDExIEBAIHVuc2lnbmVkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAKICAgICBHc3RG
b3JtYXQgZm10ID0gR1NUX0ZPUk1BVF9CWVRFUzsKICAgICBnaW50NjQgbGVuZ3RoID0gMDsKKyNp
ZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlv
bihtX3NvdXJjZSwgZm10LCAmbGVuZ3RoKSkgeworI2Vsc2UKICAgICBpZiAoZ3N0X2VsZW1lbnRf
cXVlcnlfZHVyYXRpb24obV9zb3VyY2UsICZmbXQsICZsZW5ndGgpKSB7CisjZW5kaWYKICAgICAg
ICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVu
Z3RoKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihsZW5ndGgpOwogICAg
IH0KQEAgLTkzOSw2ICs5NzEsMTkgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICBHc3RJdGVyYXRvciogaXRlciA9IGdzdF9lbGVt
ZW50X2l0ZXJhdGVfc3JjX3BhZHMobV9zb3VyY2UpOwogICAgIGJvb2wgZG9uZSA9IGZhbHNlOwog
ICAgIHdoaWxlICghZG9uZSkgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIEdW
YWx1ZSBpdGVtID0gezAsIH07CisgICAgICAgIHN3aXRjaCAoZ3N0X2l0ZXJhdG9yX25leHQoaXRl
ciwgJml0ZW0pKSB7CisgICAgICAgIGNhc2UgR1NUX0lURVJBVE9SX09LOiB7CisgICAgICAgICAg
ICBHc3RQYWQqIHBhZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0UGFkKj4oZ192YWx1ZV9kdXBfb2Jq
ZWN0KCZpdGVtKSk7CisgICAgICAgICAgICBnaW50NjQgcGFkTGVuZ3RoID0gMDsKKyAgICAgICAg
ICAgIGlmIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKHBhZCwgZm10LCAmcGFkTGVuZ3RoKQorICAg
ICAgICAgICAgICAgICYmIHBhZExlbmd0aCA+IGxlbmd0aCkKKyAgICAgICAgICAgICAgICBsZW5n
dGggPSBwYWRMZW5ndGg7CisgICAgICAgICAgICBnX3ZhbHVlX3Vuc2V0KHJlaW50ZXJwcmV0X2Nh
c3Q8R1ZhbHVlKj4ocGFkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2Vsc2UK
ICAgICAgICAgZ3BvaW50ZXIgZGF0YTsKIAogICAgICAgICBzd2l0Y2ggKGdzdF9pdGVyYXRvcl9u
ZXh0KGl0ZXIsICZkYXRhKSkgewpAQCAtOTUwLDYgKzk5NSw3IEBAIHVuc2lnbmVkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgICAgICAgICAgICAg
bGVuZ3RoID0gcGFkTGVuZ3RoOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICBjYXNlIEdTVF9JVEVSQVRPUl9SRVNZTkM6CiAgICAgICAgICAgICBnc3RfaXRl
cmF0b3JfcmVzeW5jKGl0ZXIpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC05NTksNyArMTAwNSwx
MiBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBj
b25zdAogICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQorCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAgICAgZ192YWx1ZV91bnNldCgm
aXRlbSk7CisjZW5kaWYKICAgICB9CisKICAgICBnc3RfaXRlcmF0b3JfZnJlZShpdGVyKTsKIAog
ICAgIExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxl
bmd0aCk7CkBAIC0xNjcxLDcgKzE3MjIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogewogICAgIEFTU0VS
VCghbV9wbGF5QmluKTsKLSAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
InBsYXliaW4yIiwgInBsYXkiKTsKKyAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoZ1BsYXliaW5OYW1lLCAicGxheSIpOwogCiAgICAgbV9nc3RHV29ybGQgPSBHU3RyZWFt
ZXJHV29ybGQ6OmNyZWF0ZUdXb3JsZChtX3BsYXlCaW4pOwogCkBAIC0xNjkyLDcgKzE3NDMsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQog
CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYmtpdFZpZGVvU2luaywgInJlcGFpbnQtcmVxdWVz
dGVkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVSZXBhaW50Q2FsbGJhY2spLCB0aGlz
KTsKIAorCisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgbV92aWRlb1NpbmtCaW4gPSBn
c3RfYmluX25ldygic2luayIpOworCiAgICAgR3N0RWxlbWVudCogdmlkZW9UZWUgPSBnc3RfZWxl
bWVudF9mYWN0b3J5X21ha2UoInRlZSIsICJ2aWRlb1RlZSIpOwogICAgIEdzdEVsZW1lbnQqIHF1
ZXVlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJxdWV1ZSIsIDApOwogCkBAIC0xNzEwLDYg
KzE3NjQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxh
eUJpbigpCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNyY1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVu
dF9nZXRfcmVxdWVzdF9wYWQodmlkZW9UZWUsICJzcmMlZCIpKTsKICAgICBHUmVmUHRyPEdzdFBh
ZD4gc2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChxdWV1ZSwg
InNpbmsiKSk7CiAgICAgZ3N0X3BhZF9saW5rKHNyY1BhZC5nZXQoKSwgc2lua1BhZC5nZXQoKSk7
CisjZW5kaWYKIAogICAgIEdzdEVsZW1lbnQqIGFjdHVhbFZpZGVvU2luayA9IDA7CiAgICAgbV9m
cHNTaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJmcHNkaXNwbGF5c2luayIsICJzaW5r
Iik7CkBAIC0xNzI4LDcgKzE3ODMsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICAgICAgICAgIGlmIChnX29iamVjdF9jbGFzc19m
aW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyhtX2Zwc1NpbmspLCAidmlkZW8tc2luayIp
KSB7CiAgICAgICAgICAgICAgICAgZ19vYmplY3Rfc2V0KG1fZnBzU2luaywgInZpZGVvLXNpbmsi
LCBtX3dlYmtpdFZpZGVvU2luaywgTlVMTCk7CisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAg
ICAgICAgICAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihtX3ZpZGVvU2lua0JpbiksIG1fZnBz
U2luayk7CisjZW5kaWYKICAgICAgICAgICAgICAgICBhY3R1YWxWaWRlb1NpbmsgPSBtX2Zwc1Np
bms7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBtX2Zwc1NpbmsgPSAwOwpA
QCAtMTczNywxMiArMTc5NCwxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgfQogCiAgICAgaWYgKCFtX2Zwc1NpbmspIHsKKyNpZm5k
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihtX3ZpZGVv
U2lua0JpbiksIG1fd2Via2l0VmlkZW9TaW5rKTsKKyNlbmRpZgogICAgICAgICBhY3R1YWxWaWRl
b1NpbmsgPSBtX3dlYmtpdFZpZGVvU2luazsKICAgICB9CiAKICAgICBBU1NFUlQoYWN0dWFsVmlk
ZW9TaW5rKTsKIAorI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIC8vIEZhc3RlciBlbGVt
ZW50cyBsaW5raW5nLgogICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVlLCAic3Jj
IiwgYWN0dWFsVmlkZW9TaW5rLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsK
IApAQCAtMTc1MiwxMCArMTgxMiwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICAvLyBTZXQgdGhlIGJpbiBhcyB2aWRlbyBzaW5r
IG9mIHBsYXliaW4uCiAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBt
X3ZpZGVvU2lua0JpbiwgTlVMTCk7CisjZWxzZQorICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4s
ICJ2aWRlby1zaW5rIiwgYWN0dWFsVmlkZW9TaW5rLCBOVUxMKTsKKyNlbmRpZgogCi0gICAgcGFk
ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5r
LCAic2luayIpKTsKLSAgICBpZiAocGFkKQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHBhZC5n
ZXQoKSwgIm5vdGlmeTo6Y2FwcyIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9T
aW5rQ2Fwc0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAgIEdSZWZQdHI8R3N0UGFkPiB2aWRl
b1NpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRW
aWRlb1NpbmssICJzaW5rIikpOworICAgIGlmICh2aWRlb1NpbmtQYWQpCisgICAgICAgIGdfc2ln
bmFsX2Nvbm5lY3QodmlkZW9TaW5rUGFkLmdldCgpLCAibm90aWZ5OjpjYXBzIiwgR19DQUxMQkFD
SyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1NpbmtDYXBzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7
CiAKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129040</attachid>
            <date>2012-02-27 08:21:03 -0800</date>
            <delta_ts>2012-02-27 08:31:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77089-20120227172127.patch</filename>
            <type>text/plain</type>
            <size>18303</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QzMzg3NGQwNGM1N2Uz
OWIzZTY2YjY5NDc1NGE3MzAxNzgyNWEzOC4uZmIxYTA0ZWM2YjI1OTRlNDRhZWU5ZGRmNTlkZmEw
NTMwMTEwNjMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVh
bWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFp
bnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBo
YW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4
OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdURjo6
R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6OkdzdFBh
ZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAgICAg
ICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2VsZW1l
bnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KwogMjAxMi0wMi0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZXBhaW50IGNvdW50ZXIgZ3JhcGhzIHdoZW4gdGltZWxp
bmUgc3BsaXR0ZXIgbW92ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEzZWQx
NzY4MDczZTFiZDU2ZjIxZDM0NGRhNjc1NDhhNTU3NGRjNGUuLmE3YjE0ZjZiMGYwOTFjMDI4ZWYx
MTYwYThjNTU2ODJlM2Q5ZmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDUzMCw2ICs0NTMwLDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckdXb3JsZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkODI3Y2QzZDM4MTgwYmE3Yzll
ZTUxMWQwNGE1Y2JmZDIwYTFmOWFiLi40NDUxZTVmM2MyNjVhYzEzYTk3Y2ZkN2Q5YTliY2I0NjA4
ZGY1MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMyMzEsNiArMzIzMSw3IEBAIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gXAogICAgICAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaCBcCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmggXAorICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcu
aCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCBcCkBAIC0zMjQwLDYgKzMyNDEs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVklERU89MSkgewogICAgICAgICBTT1VSQ0VT
ICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmNwcCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyR1dvcmxkLmNwcCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKICAgICAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIFwKICAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAppbmRleCAyNDI3YzA2YjI5
NDI5MjBmNTU2M2M2NGIwYTZkMmFjNTNlNzJjMWM3Li5iODUzODcwN2NmMDFjMWI3NzE4Njk5NGFj
M2Q1ODU2Y2M5ZGQ3YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCkBAIC0xOSw2
ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVh
bWVyLmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogCiAjaWYgVVNFKEdTVFJF
QU1FUikKICNpbmNsdWRlIDxnc3QvZ3N0ZWxlbWVudC5oPgpAQCAtMzMsMTAgKzM0LDggQEAgdGVt
cGxhdGUgPD4gR1JlZlB0cjxHc3RFbGVtZW50PiBhZG9wdEdSZWYoR3N0RWxlbWVudCogcHRyKQog
CiB0ZW1wbGF0ZSA8PiBHc3RFbGVtZW50KiByZWZHUHRyPEdzdEVsZW1lbnQ+KEdzdEVsZW1lbnQq
IHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpF
Q1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAg
IH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpF
Q1QocHRyKSk7CiAKICAgICByZXR1cm4gcHRyOwogfQpAQCAtNTUsMTAgKzU0LDkgQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RQYWQ+IGFkb3B0R1JlZihHc3RQYWQqIHB0cikKIAogdGVtcGxhdGUg
PD4gR3N0UGFkKiByZWZHUHRyPEdzdFBhZD4oR3N0UGFkKiBwdHIpCiB7Ci0gICAgaWYgKHB0cikg
ewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rf
b2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAgICAg
ICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOworCiAgICAgcmV0dXJu
IHB0cjsKIH0KIApAQCAtNzYsMTAgKzc0LDkgQEAgdGVtcGxhdGUgPD4gR1JlZlB0cjxHc3RQYWRU
ZW1wbGF0ZT4gYWRvcHRHUmVmKEdzdFBhZFRlbXBsYXRlKiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdz
dFBhZFRlbXBsYXRlKiByZWZHUHRyPEdzdFBhZFRlbXBsYXRlPihHc3RQYWRUZW1wbGF0ZSogcHRy
KQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChw
dHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQor
ICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChw
dHIpKTsKKwogICAgIHJldHVybiBwdHI7CiB9CiAKQEAgLTExMSwxMCArMTA4LDggQEAgdGVtcGxh
dGUgPD4gR1JlZlB0cjxHc3RUYXNrPiBhZG9wdEdSZWYoR3N0VGFzayogcHRyKQogCiB0ZW1wbGF0
ZSA8PiBHc3RUYXNrKiByZWZHUHRyPEdzdFRhc2s+KEdzdFRhc2sqIHB0cikKIHsKLSAgICBpZiAo
cHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgICAg
IGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAgIH0KKyAgICBpZiAocHRyKQor
ICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpFQ1QocHRyKSk7CiAKICAgICBy
ZXR1cm4gcHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjkyMzcxZjUwOTI4NmMxM2I3YzYzMDg3NzU0OGI0M2JjYzcxZTQzMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJW
ZXJzaW9uaW5nLmMKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
Z2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
R1N0cmVhbWVyVmVyc2lvbmluZy5oIgorCit2b2lkIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR3N0
T2JqZWN0KiBnc3RPYmplY3QpCit7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBnc3Rf
b2JqZWN0X3JlZl9zaW5rKGdzdE9iamVjdCk7CisjZWxzZQorICAgIGdzdF9vYmplY3RfcmVmKGdz
dE9iamVjdCk7CisgICAgZ3N0X29iamVjdF9zaW5rKGdzdE9iamVjdCk7CisjZW5kaWYKK30KKwor
R3N0Q2FwcyAqIHdlYmtpdEdzdEVsZW1lbnRHZXRQYWRDYXBzKEdzdEVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IGNoYXIqIGRpcmVjdGlvbikKK3sKKyAgICBHc3RQYWQgKnBhZCA9IGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkKGVsZW1lbnQsIGRpcmVjdGlvbik7CisgICAgaWYgKCFwYWQpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgR3N0Q2FwcyAqY2FwczsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorICAgIGNhcHMgPSBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMocGFkKTsKKyAgICBpZiAo
IWNhcHMpCisgICAgICAgIGNhcHMgPSBnc3RfcGFkX3F1ZXJ5X2NhcHMocGFkLCAwKTsKKyNlbHNl
CisgICAgY2FwcyA9IEdTVF9QQURfQ0FQUyhwYWQpOworI2VuZGlmCisgICAgZ3N0X29iamVjdF91
bnJlZihHU1RfT0JKRUNUKHBhZCkpOworICAgIHJldHVybiBjYXBzOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNp
b25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWZXJzaW9uaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5OWM0YWRhYzUxNWMyZjU2ZjVkOWM5Mjhi
NDYxMjZlY2YyNDdiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmgKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKKyNkZWZpbmUgR1N0cmVhbWVyVmVyc2lvbmluZ19o
CisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorCitHX0JFR0lOX0RF
Q0xTCisKK3ZvaWQgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHc3RPYmplY3QqKTsKK0dzdENhcHMq
IHdlYmtpdEdzdEVsZW1lbnRHZXRQYWRDYXBzKEdzdEVsZW1lbnQqLCBjb25zdCBjaGFyKik7CisK
K0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvLyBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZmQ5MGZhOWE2
YWZlNjNmN2FiNTU0MWJhY2ZmNDMxMzJjZWM1NTE0OS4uOGI1Njg2MWI4NmUwNDVjMzk2MzYwNjAx
ZjVjNTZmZDBmODU2MmRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyR1dvcmxk
LmgiCisjaW5jbHVkZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZUdT
dHJlYW1lci5oIgpAQCAtNDYsMTIgKzQ3LDE3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmgiCiAjaW5jbHVkZSA8R093blB0ci5oPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4K
LSNpbmNsdWRlIDxnc3QvaW50ZXJmYWNlcy9zdHJlYW12b2x1bWUuaD4KICNpbmNsdWRlIDxnc3Qv
dmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisj
aW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgorI2Vsc2UKKyNpbmNsdWRlIDxnc3Qv
aW50ZXJmYWNlcy9zdHJlYW12b2x1bWUuaD4KKyNlbmRpZgorCiAvLyBHc3RQbGF5RmxhZ3MgZmxh
Z3MgZnJvbSBwbGF5YmluMi4gSXQgaXMgdGhlIHBvbGljeSBvZiBHU3RyZWFtZXIgdG8KIC8vIG5v
dCBwdWJsaWNseSBleHBvc2UgZWxlbWVudC1zcGVjaWZpYyBlbnVtcy4gVGhhdCdzIHdoeSB0aGlz
CiAvLyBHc3RQbGF5RmxhZ3MgZW51bSBoYXMgYmVlbiBjb3BpZWQgaGVyZS4KQEAgLTY3LDYgKzcz
LDEyIEBAIHR5cGVkZWYgZW51bSB7CiAgICAgR1NUX1BMQVlfRkxBR19CVUZGRVJJTkcgICAgID0g
MHgwMDAwMDAxMDAKIH0gR3N0UGxheUZsYWdzOwogCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEK
K3N0YXRpYyBjb25zdCBjaGFyKiBnUGxheWJpbk5hbWUgPSAicGxheWJpbiI7CisjZWxzZQorc3Rh
dGljIGNvbnN0IGNoYXIqIGdQbGF5YmluTmFtZSA9ICJwbGF5YmluMiI7CisjZW5kaWYKKwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg2LDcgKzE5OCw3
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJsZSgpCiAgICAg
aWYgKCFkb0dzdEluaXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgR3N0RWxlbWVu
dEZhY3RvcnkqIGZhY3RvcnkgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoInBsYXliaW4yIik7
CisgICAgR3N0RWxlbWVudEZhY3RvcnkqIGZhY3RvcnkgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2Zp
bmQoZ1BsYXliaW5OYW1lKTsKICAgICBpZiAoZmFjdG9yeSkgewogICAgICAgICBnc3Rfb2JqZWN0
X3VucmVmKEdTVF9PQkpFQ1QoZmFjdG9yeSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQw
MCw3ICs0MTIsMTIgQEAgZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlv
bigpIGNvbnN0CiAgICAgR3N0Rm9ybWF0IHRpbWVGb3JtYXQgPSBHU1RfRk9STUFUX1RJTUU7CiAg
ICAgZ2ludDY0IHRpbWVMZW5ndGggPSAwOwogCi0gICAgaWYgKCFnc3RfZWxlbWVudF9xdWVyeV9k
dXJhdGlvbihtX3BsYXlCaW4sICZ0aW1lRm9ybWF0LCAmdGltZUxlbmd0aCkgfHwgdGltZUZvcm1h
dCAhPSBHU1RfRk9STUFUX1RJTUUgfHwgc3RhdGljX2Nhc3Q8Z3VpbnQ2ND4odGltZUxlbmd0aCkg
PT0gR1NUX0NMT0NLX1RJTUVfTk9ORSkgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAg
Ym9vbCBmYWlsdXJlID0gIWdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgdGlt
ZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgp
ID09IEdTVF9DTE9DS19USU1FX05PTkU7CisjZWxzZQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3Rf
ZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sICZ0aW1lRm9ybWF0LCAmdGltZUxlbmd0
aCkgfHwgdGltZUZvcm1hdCAhPSBHU1RfRk9STUFUX1RJTUUgfHwgc3RhdGljX2Nhc3Q8Z3VpbnQ2
ND4odGltZUxlbmd0aCkgPT0gR1NUX0NMT0NLX1RJTUVfTk9ORTsKKyNlbmRpZgorICAgIGlmIChm
YWlsdXJlKSB7CiAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiVGltZSBkdXJhdGlvbiBxdWVy
eSBmYWlsZWQuIik7CiAgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmlu
aXR5KCk7CiAgICAgfQpAQCAtNDg5LDEyICs1MDYsMTAgQEAgSW50U2l6ZSBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICBpZiAoIWhhc1ZpZGVvKCkp
CiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKLSAgICBHUmVmUHRyPEdzdFBhZD4gcGFkID0g
YWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5rLCAi
c2luayIpKTsKLSAgICBpZiAoIXBhZCkKKyAgICBHc3RDYXBzKiBjYXBzID0gd2Via2l0R3N0RWxl
bWVudEdldFBhZENhcHMobV93ZWJraXRWaWRlb1NpbmssICJzaW5rIik7CisgICAgaWYgKCFjYXBz
KQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhl
aWdodCA9IDA7Ci0gICAgR3N0Q2FwcyogY2FwcyA9IEdTVF9QQURfQ0FQUyhwYWQuZ2V0KCkpOwog
ICAgIGludCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21p
bmF0b3I7CiAgICAgaW50IGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdodCwgZGlzcGxheUFzcGVj
dFJhdGlvR0NEOwogICAgIGludCBvcmlnaW5hbFdpZHRoID0gMCwgb3JpZ2luYWxIZWlnaHQgPSAw
OwpAQCAtNTA2LDExICs1MjEsMjMgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKIAogICAgIC8vIEdldCB0aGUgdmlkZW8gUEFSIGFuZCBv
cmlnaW5hbCBzaXplLCBpZiB0aGlzIGZhaWxzIHRoZQogICAgIC8vIHZpZGVvLXNpbmsgaGFzIGxp
a2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNhcHMuCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9O
XzEKKyAgICBHc3RWaWRlb0luZm8gaW5mbzsKKyAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21f
Y2FwcygmaW5mbywgY2FwcykpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICBvcmln
aW5hbFdpZHRoID0gR1NUX1ZJREVPX0lORk9fV0lEVEgoJmluZm8pOworICAgIG9yaWdpbmFsSGVp
Z2h0ID0gR1NUX1ZJREVPX0lORk9fSEVJR0hUKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlv
TnVtZXJhdG9yID0gR1NUX1ZJREVPX0lORk9fUEFSX04oJmluZm8pOworICAgIHBpeGVsQXNwZWN0
UmF0aW9EZW5vbWluYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9EKCZpbmZvKTsKKyNlbHNlCisg
ICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5kIG9yaWdpbmFsIHNpemUuCiAgICAgaWYgKCFHU1Rf
SVNfQ0FQUyhjYXBzKSB8fCAhZ3N0X2NhcHNfaXNfZml4ZWQoY2FwcykKICAgICAgICAgfHwgIWdz
dF92aWRlb19mb3JtYXRfcGFyc2VfY2FwcyhjYXBzLCAwLCAmb3JpZ2luYWxXaWR0aCwgJm9yaWdp
bmFsSGVpZ2h0KQogICAgICAgICB8fCAhZ3N0X3ZpZGVvX3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0
X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwaXhlbEFzcGVjdFJhdGlvRGVu
b21pbmF0b3IpKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworI2VuZGlmCiAKICAgICBMT0df
VkVSQk9TRShNZWRpYSwgIk9yaWdpbmFsIHZpZGVvIHNpemU6ICVkeCVkIiwgb3JpZ2luYWxXaWR0
aCwgb3JpZ2luYWxIZWlnaHQpOwogICAgIExPR19WRVJCT1NFKE1lZGlhLCAiUGl4ZWwgYXNwZWN0
IHJhdGlvOiAlZC8lZCIsIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0
aW9EZW5vbWluYXRvcik7CkBAIC01MjUsNiArNTUyLDcgQEAgSW50U2l6ZSBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICBkaXNwbGF5SGVpZ2h0IC89
IGRpc3BsYXlBc3BlY3RSYXRpb0dDRDsKIAogICAgIC8vIEFwcGx5IERBUiB0byBvcmlnaW5hbCB2
aWRlbyBzaXplLiBUaGlzIGlzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIGluIHh2aW1hZ2VzaW5rJ3Mg
c2V0Y2FwcyBmdW5jdGlvbi4KKyAgICBndWludDY0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKICAg
ICBpZiAoIShvcmlnaW5hbEhlaWdodCAlIGRpc3BsYXlIZWlnaHQpKSB7CiAgICAgICAgIExPR19W
RVJCT1NFKE1lZGlhLCAiS2VlcGluZyB2aWRlbyBvcmlnaW5hbCBoZWlnaHQiKTsKICAgICAgICAg
d2lkdGggPSBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KG9yaWdpbmFsSGVpZ2h0LCBkaXNwbGF5
V2lkdGgsIGRpc3BsYXlIZWlnaHQpOwpAQCAtOTI5LDcgKzk1NywxMSBAQCB1bnNpZ25lZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogCiAgICAgR3N0Rm9y
bWF0IGZtdCA9IEdTVF9GT1JNQVRfQllURVM7CiAgICAgZ2ludDY0IGxlbmd0aCA9IDA7CisjaWZk
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBpZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24o
bV9zb3VyY2UsIGZtdCwgJmxlbmd0aCkpIHsKKyNlbHNlCiAgICAgaWYgKGdzdF9lbGVtZW50X3F1
ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCAmZm10LCAmbGVuZ3RoKSkgeworI2VuZGlmCiAgICAgICAg
IExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxlbmd0
aCk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGVuZ3RoKTsKICAgICB9
CkBAIC05MzksNiArOTcxLDE5IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgR3N0SXRlcmF0b3IqIGl0ZXIgPSBnc3RfZWxlbWVu
dF9pdGVyYXRlX3NyY19wYWRzKG1fc291cmNlKTsKICAgICBib29sIGRvbmUgPSBmYWxzZTsKICAg
ICB3aGlsZSAoIWRvbmUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBHVmFs
dWUgaXRlbSA9IHswLCB9OworICAgICAgICBzd2l0Y2ggKGdzdF9pdGVyYXRvcl9uZXh0KGl0ZXIs
ICZpdGVtKSkgeworICAgICAgICBjYXNlIEdTVF9JVEVSQVRPUl9PSzogeworICAgICAgICAgICAg
R3N0UGFkKiBwYWQgPSByZWludGVycHJldF9jYXN0PEdzdFBhZCo+KGdfdmFsdWVfZHVwX29iamVj
dCgmaXRlbSkpOworICAgICAgICAgICAgZ2ludDY0IHBhZExlbmd0aCA9IDA7CisgICAgICAgICAg
ICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbihwYWQsIGZtdCwgJnBhZExlbmd0aCkKKyAgICAg
ICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBsZW5ndGgpCisgICAgICAgICAgICAgICAgbGVuZ3Ro
ID0gcGFkTGVuZ3RoOworICAgICAgICAgICAgZ192YWx1ZV91bnNldChyZWludGVycHJldF9jYXN0
PEdWYWx1ZSo+KHBhZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNlbHNlCiAg
ICAgICAgIGdwb2ludGVyIGRhdGE7CiAKICAgICAgICAgc3dpdGNoIChnc3RfaXRlcmF0b3JfbmV4
dChpdGVyLCAmZGF0YSkpIHsKQEAgLTk1MCw2ICs5OTUsNyBAQCB1bnNpZ25lZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgICAgICAgICAgICAgIGxl
bmd0aCA9IHBhZExlbmd0aDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgY2FzZSBHU1RfSVRFUkFUT1JfUkVTWU5DOgogICAgICAgICAgICAgZ3N0X2l0ZXJh
dG9yX3Jlc3luYyhpdGVyKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTU5LDcgKzEwMDUsMTIg
QEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29u
c3QKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KKworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIGdfdmFsdWVfdW5zZXQoJml0
ZW0pOworI2VuZGlmCiAgICAgfQorCiAgICAgZ3N0X2l0ZXJhdG9yX2ZyZWUoaXRlcik7CiAKICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFULCBsZW5n
dGgpOwpAQCAtMTY3MSw3ICsxNzIyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIHsKICAgICBBU1NFUlQo
IW1fcGxheUJpbik7Ci0gICAgbV9wbGF5QmluID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJw
bGF5YmluMiIsICJwbGF5Iik7CisgICAgbV9wbGF5QmluID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKGdQbGF5YmluTmFtZSwgInBsYXkiKTsKIAogICAgIG1fZ3N0R1dvcmxkID0gR1N0cmVhbWVy
R1dvcmxkOjpjcmVhdGVHV29ybGQobV9wbGF5QmluKTsKIApAQCAtMTY5Miw3ICsxNzQzLDEwIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QobV93ZWJraXRWaWRlb1NpbmssICJyZXBhaW50LXJlcXVlc3Rl
ZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlUmVwYWludENhbGxiYWNrKSwgdGhpcyk7
CiAKKworI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgIG1fdmlkZW9TaW5rQmluID0gZ3N0
X2Jpbl9uZXcoInNpbmsiKTsKKwogICAgIEdzdEVsZW1lbnQqIHZpZGVvVGVlID0gZ3N0X2VsZW1l
bnRfZmFjdG9yeV9tYWtlKCJ0ZWUiLCAidmlkZW9UZWUiKTsKICAgICBHc3RFbGVtZW50KiBxdWV1
ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCAwKTsKIApAQCAtMTcxMCw2ICsx
NzY0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlC
aW4oKQogICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRf
Z2V0X3JlcXVlc3RfcGFkKHZpZGVvVGVlLCAic3JjJWQiKSk7CiAgICAgR1JlZlB0cjxHc3RQYWQ+
IHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQocXVldWUsICJz
aW5rIikpOwogICAgIGdzdF9wYWRfbGluayhzcmNQYWQuZ2V0KCksIHNpbmtQYWQuZ2V0KCkpOwor
I2VuZGlmCiAKICAgICBHc3RFbGVtZW50KiBhY3R1YWxWaWRlb1NpbmsgPSAwOwogICAgIG1fZnBz
U2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZnBzZGlzcGxheXNpbmsiLCAic2luayIp
OwpAQCAtMTcyOCw3ICsxNzgzLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgICAgICAgICBpZiAoZ19vYmplY3RfY2xhc3NfZmlu
ZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1MobV9mcHNTaW5rKSwgInZpZGVvLXNpbmsiKSkg
ewogICAgICAgICAgICAgICAgIGdfb2JqZWN0X3NldChtX2Zwc1NpbmssICJ2aWRlby1zaW5rIiwg
bV93ZWJraXRWaWRlb1NpbmssIE5VTEwpOworI2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAg
ICAgICAgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4obV92aWRlb1NpbmtCaW4pLCBtX2Zwc1Np
bmspOworI2VuZGlmCiAgICAgICAgICAgICAgICAgYWN0dWFsVmlkZW9TaW5rID0gbV9mcHNTaW5r
OwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9mcHNTaW5rID0gMDsKQEAg
LTE3MzcsMTIgKzE3OTQsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZUdTVFBsYXlCaW4oKQogICAgIH0KIAogICAgIGlmICghbV9mcHNTaW5rKSB7CisjaWZuZGVm
IEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4obV92aWRlb1Np
bmtCaW4pLCBtX3dlYmtpdFZpZGVvU2luayk7CisjZW5kaWYKICAgICAgICAgYWN0dWFsVmlkZW9T
aW5rID0gbV93ZWJraXRWaWRlb1Npbms7CiAgICAgfQogCiAgICAgQVNTRVJUKGFjdHVhbFZpZGVv
U2luayk7CiAKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAvLyBGYXN0ZXIgZWxlbWVu
dHMgbGlua2luZy4KICAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChxdWV1ZSwgInNyYyIs
IGFjdHVhbFZpZGVvU2luaywgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CiAK
QEAgLTE3NTIsMTAgKzE4MTIsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgLy8gU2V0IHRoZSBiaW4gYXMgdmlkZW8gc2luayBv
ZiBwbGF5YmluLgogICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgbV92
aWRlb1NpbmtCaW4sIE5VTEwpOworI2Vsc2UKKyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAi
dmlkZW8tc2luayIsIGFjdHVhbFZpZGVvU2luaywgTlVMTCk7CisjZW5kaWYKIAotICAgIHBhZCA9
IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2luaywg
InNpbmsiKSk7Ci0gICAgaWYgKHBhZCkKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChwYWQuZ2V0
KCksICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvU2lu
a0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBHUmVmUHRyPEdzdFBhZD4gdmlkZW9T
aW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0Vmlk
ZW9TaW5rLCAic2luayIpKTsKKyAgICBpZiAodmlkZW9TaW5rUGFkKQorICAgICAgICBnX3NpZ25h
bF9jb25uZWN0KHZpZGVvU2lua1BhZC5nZXQoKSwgIm5vdGlmeTo6Y2FwcyIsIEdfQ0FMTEJBQ0so
bWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9TaW5rQ2Fwc0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOwog
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129043</attachid>
            <date>2012-02-27 08:31:10 -0800</date>
            <delta_ts>2012-02-27 08:54:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77089-20120227173133.patch</filename>
            <type>text/plain</type>
            <size>15574</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QzMzg3NGQwNGM1N2Uz
OWIzZTY2YjY5NDc1NGE3MzAxNzgyNWEzOC4uZmIxYTA0ZWM2YjI1OTRlNDRhZWU5ZGRmNTlkZmEw
NTMwMTEwNjMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVh
bWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFp
bnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBo
YW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4
OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdURjo6
R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6OkdzdFBh
ZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAgICAg
ICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2VsZW1l
bnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KwogMjAxMi0wMi0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZXBhaW50IGNvdW50ZXIgZ3JhcGhzIHdoZW4gdGltZWxp
bmUgc3BsaXR0ZXIgbW92ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEzZWQx
NzY4MDczZTFiZDU2ZjIxZDM0NGRhNjc1NDhhNTU3NGRjNGUuLmE3YjE0ZjZiMGYwOTFjMDI4ZWYx
MTYwYThjNTU2ODJlM2Q5ZmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NDUzMCw2ICs0NTMwLDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckdXb3JsZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5jIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDVkOThj
ODkwNDliOTJkZmEyZGI3NmI1ZTE0NzJlOWMyNGIyM2EwNWQuLmU2MDNlOTk2MWI2OGMxYjhmMWFl
MzA2MzlkNTkzZmYyYzlkYzBiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xODgs
NiArMTg4LDcgQEAgSUYgKEVOQUJMRV9WSURFTykKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3Bw
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd0Vm
bC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGQ4MjdjZDNkMzgxODBiYTdjOWVlNTExZDA0YTVjYmZkMjBh
MWY5YWIuLjQ0NTFlNWYzYzI2NWFjMTNhOTdjZmQ3ZDlhOWJjYjQ2MDhkZjUyYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtMzIzMSw2ICszMjMxLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVP
PTEpIHsKICAgICAgICAgSEVBREVSUyArPSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuaCBcCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKICAgICAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0
cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5oIFwKQEAgLTMyNDAsNiArMzI0MSw3IEBAIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAgIFNPVVJDRVMgKz0gXAogICAgICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwIFwKICAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3Bw
IFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJz
aW9uaW5nLmMgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQ
dHJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCmluZGV4IDI0MjdjMDZiMjk0MjkyMGY1NTYzYzY0YjBh
NmQyYWM1M2U3MmMxYzcuLmI4NTM4NzA3Y2YwMWMxYjc3MTg2OTk0YWMzZDU4NTZjYzlkZDdjMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
UmVmUHRyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKQEAgLTE5LDYgKzE5LDcgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRl
ICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCiAKICNpZiBVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUg
PGdzdC9nc3RlbGVtZW50Lmg+CkBAIC0zMywxMCArMzQsOCBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRy
PEdzdEVsZW1lbnQ+IGFkb3B0R1JlZihHc3RFbGVtZW50KiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdz
dEVsZW1lbnQqIHJlZkdQdHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCogcHRyKQogewotICAgIGlm
IChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAg
ICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIp
CisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAg
IHJldHVybiBwdHI7CiB9CkBAIC01NSwxMCArNTQsOSBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdz
dFBhZD4gYWRvcHRHUmVmKEdzdFBhZCogcHRyKQogCiB0ZW1wbGF0ZSA8PiBHc3RQYWQqIHJlZkdQ
dHI8R3N0UGFkPihHc3RQYWQqIHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9v
YmplY3RfcmVmKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1Rf
T0JKRUNUKHB0cikpOwotICAgIH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmpl
Y3RSZWZTaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwogfQogCkBAIC03
NiwxMCArNzQsOSBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZFRlbXBsYXRlPiBhZG9wdEdS
ZWYoR3N0UGFkVGVtcGxhdGUqIHB0cikKIAogdGVtcGxhdGUgPD4gR3N0UGFkVGVtcGxhdGUqIHJl
ZkdQdHI8R3N0UGFkVGVtcGxhdGU+KEdzdFBhZFRlbXBsYXRlKiBwdHIpCiB7Ci0gICAgaWYgKHB0
cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBn
c3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAg
ICAgICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOworCiAgICAgcmV0
dXJuIHB0cjsKIH0KIApAQCAtMTExLDEwICsxMDgsOCBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdz
dFRhc2s+IGFkb3B0R1JlZihHc3RUYXNrKiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdzdFRhc2sqIHJl
ZkdQdHI8R3N0VGFzaz4oR3N0VGFzayogcHRyKQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAg
Z3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5r
KEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdz
dE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OTBmYTlhNmFmZTYzZjdhYjU1NDFiYWNmZjQzMTMyY2VjNTUxNDkuLjhiNTY4NjFiODZlMDQ1YzM5
NjM2MDYwMWY1YzU2ZmQwZjg1NjJkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1l
ckdXb3JsZC5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAi
SW1hZ2VHU3RyZWFtZXIuaCIKQEAgLTQ2LDEyICs0NywxNyBAQAogI2luY2x1ZGUgIldlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgPEdPd25QdHIuaD4KICNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+Ci0jaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjaW5jbHVk
ZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGgu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJ
T05fMQorI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCisjaW5jbHVk
ZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKKwogLy8gR3N0UGxheUZs
YWdzIGZsYWdzIGZyb20gcGxheWJpbjIuIEl0IGlzIHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVyIHRv
CiAvLyBub3QgcHVibGljbHkgZXhwb3NlIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMuIFRoYXQncyB3
aHkgdGhpcwogLy8gR3N0UGxheUZsYWdzIGVudW0gaGFzIGJlZW4gY29waWVkIGhlcmUuCkBAIC02
Nyw2ICs3MywxMiBAQCB0eXBlZGVmIGVudW0gewogICAgIEdTVF9QTEFZX0ZMQUdfQlVGRkVSSU5H
ICAgICA9IDB4MDAwMDAwMTAwCiB9IEdzdFBsYXlGbGFnczsKIAorI2lmZGVmIEdTVF9BUElfVkVS
U0lPTl8xCitzdGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4iOworI2Vs
c2UKK3N0YXRpYyBjb25zdCBjaGFyKiBnUGxheWJpbk5hbWUgPSAicGxheWJpbjIiOworI2VuZGlm
CisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Niw3
ICsxOTgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUo
KQogICAgIGlmICghZG9Hc3RJbml0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdz
dEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5
YmluMiIpOworICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9maW5kKGdQbGF5YmluTmFtZSk7CiAgICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAgZ3N0
X29iamVjdF91bnJlZihHU1RfT0JKRUNUKGZhY3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC00MDAsNyArNDEyLDEyIEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZHVyYXRpb24oKSBjb25zdAogICAgIEdzdEZvcm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1BVF9U
SU1FOwogICAgIGdpbnQ2NCB0aW1lTGVuZ3RoID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1lbnRf
cXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRp
bWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVM
ZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05f
MQorICAgIGJvb2wgZmFpbHVyZSA9ICFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlC
aW4sIHRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1l
TGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1cmUg
PSAhZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRp
bWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0
PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYKKyAg
ICBpZiAoZmFpbHVyZSkgewogICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVyYXRp
b24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZmxvYXQ+
OjppbmZpbml0eSgpOwogICAgIH0KQEAgLTQ4OSwxMiArNTA2LDEwIEBAIEludFNpemUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFoYXNW
aWRlbygpKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgR1JlZlB0cjxHc3RQYWQ+
IHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVv
U2luaywgInNpbmsiKSk7Ci0gICAgaWYgKCFwYWQpCisgICAgR3N0Q2FwcyogY2FwcyA9IHdlYmtp
dEdzdEVsZW1lbnRHZXRQYWRDYXBzKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpOworICAgIGlm
ICghY2FwcykKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKIAotICAgIGd1aW50NjQgd2lkdGgg
PSAwLCBoZWlnaHQgPSAwOwotICAgIEdzdENhcHMqIGNhcHMgPSBHU1RfUEFEX0NBUFMocGFkLmdl
dCgpKTsKICAgICBpbnQgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRp
b0Rlbm9taW5hdG9yOwogICAgIGludCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQsIGRpc3Bs
YXlBc3BlY3RSYXRpb0dDRDsKICAgICBpbnQgb3JpZ2luYWxXaWR0aCA9IDAsIG9yaWdpbmFsSGVp
Z2h0ID0gMDsKQEAgLTUwNiwxMSArNTIxLDIzIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAKICAgICAvLyBHZXQgdGhlIHZpZGVvIFBB
UiBhbmQgb3JpZ2luYWwgc2l6ZSwgaWYgdGhpcyBmYWlscyB0aGUKICAgICAvLyB2aWRlby1zaW5r
IGhhcyBsaWtlbHkgbm90IHlldCBuZWdvdGlhdGVkIGl0cyBjYXBzLgorI2lmZGVmIEdTVF9BUElf
VkVSU0lPTl8xCisgICAgR3N0VmlkZW9JbmZvIGluZm87CisgICAgaWYgKCFnc3RfdmlkZW9faW5m
b19mcm9tX2NhcHMoJmluZm8sIGNhcHMpKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisg
ICAgb3JpZ2luYWxXaWR0aCA9IEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKTsKKyAgICBvcmln
aW5hbEhlaWdodCA9IEdTVF9WSURFT19JTkZPX0hFSUdIVCgmaW5mbyk7CisgICAgcGl4ZWxBc3Bl
Y3RSYXRpb051bWVyYXRvciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICBwaXhl
bEFzcGVjdFJhdGlvRGVub21pbmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJfRCgmaW5mbyk7Cisj
ZWxzZQorICAgIC8vIEdldCB0aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLgogICAgIGlm
ICghR1NUX0lTX0NBUFMoY2FwcykgfHwgIWdzdF9jYXBzX2lzX2ZpeGVkKGNhcHMpCiAgICAgICAg
IHx8ICFnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMoY2FwcywgMCwgJm9yaWdpbmFsV2lkdGgs
ICZvcmlnaW5hbEhlaWdodCkKICAgICAgICAgfHwgIWdzdF92aWRlb19wYXJzZV9jYXBzX3BpeGVs
X2FzcGVjdF9yYXRpbyhjYXBzLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxBc3BlY3RS
YXRpb0Rlbm9taW5hdG9yKSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKyNlbmRpZgogCiAg
ICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJPcmlnaW5hbCB2aWRlbyBzaXplOiAlZHglZCIsIG9yaWdp
bmFsV2lkdGgsIG9yaWdpbmFsSGVpZ2h0KTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBpeGVs
IGFzcGVjdCByYXRpbzogJWQvJWQiLCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFz
cGVjdFJhdGlvRGVub21pbmF0b3IpOwpAQCAtNTI1LDYgKzU1Miw3IEBAIEludFNpemUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgZGlzcGxheUhl
aWdodCAvPSBkaXNwbGF5QXNwZWN0UmF0aW9HQ0Q7CiAKICAgICAvLyBBcHBseSBEQVIgdG8gb3Jp
Z2luYWwgdmlkZW8gc2l6ZS4gVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBpbiB4dmltYWdl
c2luaydzIHNldGNhcHMgZnVuY3Rpb24uCisgICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9
IDA7CiAgICAgaWYgKCEob3JpZ2luYWxIZWlnaHQgJSBkaXNwbGF5SGVpZ2h0KSkgewogICAgICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIktlZXBpbmcgdmlkZW8gb3JpZ2luYWwgaGVpZ2h0Iik7CiAg
ICAgICAgIHdpZHRoID0gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludChvcmlnaW5hbEhlaWdodCwg
ZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0KTsKQEAgLTkyOSw3ICs5NTcsMTEgQEAgdW5zaWdu
ZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKIAogICAg
IEdzdEZvcm1hdCBmbXQgPSBHU1RfRk9STUFUX0JZVEVTOwogICAgIGdpbnQ2NCBsZW5ndGggPSAw
OworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1
cmF0aW9uKG1fc291cmNlLCBmbXQsICZsZW5ndGgpKSB7CisjZWxzZQogICAgIGlmIChnc3RfZWxl
bWVudF9xdWVyeV9kdXJhdGlvbihtX3NvdXJjZSwgJmZtdCwgJmxlbmd0aCkpIHsKKyNlbmRpZgog
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFU
LCBsZW5ndGgpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxlbmd0aCk7
CiAgICAgfQpAQCAtOTM5LDYgKzk3MSwxOSBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgIEdzdEl0ZXJhdG9yKiBpdGVyID0gZ3N0
X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcyhtX3NvdXJjZSk7CiAgICAgYm9vbCBkb25lID0gZmFs
c2U7CiAgICAgd2hpbGUgKCFkb25lKSB7CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICAg
ICAgR1ZhbHVlIGl0ZW0gPSB7MCwgfTsKKyAgICAgICAgc3dpdGNoIChnc3RfaXRlcmF0b3JfbmV4
dChpdGVyLCAmaXRlbSkpIHsKKyAgICAgICAgY2FzZSBHU1RfSVRFUkFUT1JfT0s6IHsKKyAgICAg
ICAgICAgIEdzdFBhZCogcGFkID0gcmVpbnRlcnByZXRfY2FzdDxHc3RQYWQqPihnX3ZhbHVlX2R1
cF9vYmplY3QoJml0ZW0pKTsKKyAgICAgICAgICAgIGdpbnQ2NCBwYWRMZW5ndGggPSAwOworICAg
ICAgICAgICAgaWYgKGdzdF9wYWRfcXVlcnlfZHVyYXRpb24ocGFkLCBmbXQsICZwYWRMZW5ndGgp
CisgICAgICAgICAgICAgICAgJiYgcGFkTGVuZ3RoID4gbGVuZ3RoKQorICAgICAgICAgICAgICAg
IGxlbmd0aCA9IHBhZExlbmd0aDsKKyAgICAgICAgICAgIGdfdmFsdWVfdW5zZXQocmVpbnRlcnBy
ZXRfY2FzdDxHVmFsdWUqPihwYWQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisj
ZWxzZQogICAgICAgICBncG9pbnRlciBkYXRhOwogCiAgICAgICAgIHN3aXRjaCAoZ3N0X2l0ZXJh
dG9yX25leHQoaXRlciwgJmRhdGEpKSB7CkBAIC05NTAsNiArOTk1LDcgQEAgdW5zaWduZWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICAgICAgICAg
ICAgICBsZW5ndGggPSBwYWRMZW5ndGg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQor
I2VuZGlmCiAgICAgICAgIGNhc2UgR1NUX0lURVJBVE9SX1JFU1lOQzoKICAgICAgICAgICAgIGdz
dF9pdGVyYXRvcl9yZXN5bmMoaXRlcik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk1OSw3ICsx
MDA1LDEyIEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRl
cygpIGNvbnN0CiAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBnX3ZhbHVlX3Vu
c2V0KCZpdGVtKTsKKyNlbmRpZgogICAgIH0KKwogICAgIGdzdF9pdGVyYXRvcl9mcmVlKGl0ZXIp
OwogCiAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0X0ZPUk1B
VCwgbGVuZ3RoKTsKQEAgLTE2NzEsNyArMTcyMiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiB7CiAgICAg
QVNTRVJUKCFtX3BsYXlCaW4pOwotICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgicGxheWJpbjIiLCAicGxheSIpOworICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZShnUGxheWJpbk5hbWUsICJwbGF5Iik7CiAKICAgICBtX2dzdEdXb3JsZCA9IEdT
dHJlYW1lckdXb3JsZDo6Y3JlYXRlR1dvcmxkKG1fcGxheUJpbik7CiAKQEAgLTE2OTIsNyArMTc0
MywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJp
bigpCiAKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2Via2l0VmlkZW9TaW5rLCAicmVwYWludC1y
ZXF1ZXN0ZWQiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVJlcGFpbnRDYWxsYmFjayks
IHRoaXMpOwogCisKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBtX3ZpZGVvU2lua0Jp
biA9IGdzdF9iaW5fbmV3KCJzaW5rIik7CisKICAgICBHc3RFbGVtZW50KiB2aWRlb1RlZSA9IGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgidGVlIiwgInZpZGVvVGVlIik7CiAgICAgR3N0RWxlbWVu
dCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgMCk7CiAKQEAgLTE3
MTAsNiArMTc2NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVH
U1RQbGF5QmluKCkKICAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9l
bGVtZW50X2dldF9yZXF1ZXN0X3BhZCh2aWRlb1RlZSwgInNyYyVkIikpOwogICAgIEdSZWZQdHI8
R3N0UGFkPiBzaW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1
ZXVlLCAic2luayIpKTsKICAgICBnc3RfcGFkX2xpbmsoc3JjUGFkLmdldCgpLCBzaW5rUGFkLmdl
dCgpKTsKKyNlbmRpZgogCiAgICAgR3N0RWxlbWVudCogYWN0dWFsVmlkZW9TaW5rID0gMDsKICAg
ICBtX2Zwc1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImZwc2Rpc3BsYXlzaW5rIiwg
InNpbmsiKTsKQEAgLTE3MjgsNyArMTc4Myw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAogICAgICAgICAgICAgaWYgKGdfb2JqZWN0X2Ns
YXNzX2ZpbmRfcHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKG1fZnBzU2luayksICJ2aWRlby1z
aW5rIikpIHsKICAgICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9mcHNTaW5rLCAidmlkZW8t
c2luayIsIG1fd2Via2l0VmlkZW9TaW5rLCBOVUxMKTsKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9O
XzEKICAgICAgICAgICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5rQmluKSwg
bV9mcHNTaW5rKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGFjdHVhbFZpZGVvU2luayA9IG1f
ZnBzU2luazsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1fZnBzU2luayA9
IDA7CkBAIC0xNzM3LDEyICsxNzk0LDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICB9CiAKICAgICBpZiAoIW1fZnBzU2luaykgewor
I2lmbmRlZiBHU1RfQVBJX1ZFUlNJT05fMQogICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1f
dmlkZW9TaW5rQmluKSwgbV93ZWJraXRWaWRlb1NpbmspOworI2VuZGlmCiAgICAgICAgIGFjdHVh
bFZpZGVvU2luayA9IG1fd2Via2l0VmlkZW9TaW5rOwogICAgIH0KIAogICAgIEFTU0VSVChhY3R1
YWxWaWRlb1NpbmspOwogCisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgLy8gRmFzdGVy
IGVsZW1lbnRzIGxpbmtpbmcuCiAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUs
ICJzcmMiLCBhY3R1YWxWaWRlb1NpbmssICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJ
TkcpOwogCkBAIC0xNzUyLDEwICsxODEyLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKIAogICAgIC8vIFNldCB0aGUgYmluIGFzIHZpZGVv
IHNpbmsgb2YgcGxheWJpbi4KICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAidmlkZW8tc2lu
ayIsIG1fdmlkZW9TaW5rQmluLCBOVUxMKTsKKyNlbHNlCisgICAgZ19vYmplY3Rfc2V0KG1fcGxh
eUJpbiwgInZpZGVvLXNpbmsiLCBhY3R1YWxWaWRlb1NpbmssIE5VTEwpOworI2VuZGlmCiAKLSAg
ICBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRWaWRl
b1NpbmssICJzaW5rIikpOwotICAgIGlmIChwYWQpCi0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
cGFkLmdldCgpLCAibm90aWZ5OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVW
aWRlb1NpbmtDYXBzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgR1JlZlB0cjxHc3RQYWQ+
IHZpZGVvU2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dl
YmtpdFZpZGVvU2luaywgInNpbmsiKSk7CisgICAgaWYgKHZpZGVvU2lua1BhZCkKKyAgICAgICAg
Z19zaWduYWxfY29ubmVjdCh2aWRlb1NpbmtQYWQuZ2V0KCksICJub3RpZnk6OmNhcHMiLCBHX0NB
TExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0
aGlzKTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129046</attachid>
            <date>2012-02-27 08:55:03 -0800</date>
            <delta_ts>2012-02-27 09:04:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77089-20120227175526.patch</filename>
            <type>text/plain</type>
            <size>15793</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZhOWRmNzgwMGU3OTRl
YzJiY2IzODMwYTJlYzJmYWQ2Mzc1MzBlMy4uOTA5YzkzMTFhNjBiMDMwYmFkYWY4OWViNjZmMDE3
OTYyMjJlOWE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0cmVh
bWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAgcGFp
bnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFyZSBo
YW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3NzA4
OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdURjo6
R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6OkdzdFBh
ZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAgICAg
ICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2VsZW1l
bnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KwogMjAxMi0wMi0yNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtTdHlsZXNdIEFsbG93IGFkZGluZyBDU1MgcHJvcGVy
dGllcyBhbnl3aGVyZSBpbiB0aGUgc3R5bGUgZGVjbGFyYXRpb24sIG5vdCBvbmx5IGF0IHRoZSBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEzZWQxNzY4MDczZTFiZDU2ZjIx
ZDM0NGRhNjc1NDhhNTU3NGRjNGUuLmE3YjE0ZjZiMGYwOTFjMDI4ZWYxMTYwYThjNTU2ODJlM2Q5
ZmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDUzMCw2ICs0NTMwLDgg
QEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lv
bmluZy5jIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyVmVyc2lvbmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDVkOThjODkwNDliOTJkZmEyZGI3
NmI1ZTE0NzJlOWMyNGIyM2EwNWQuLmU2MDNlOTk2MWI2OGMxYjhmMWFlMzA2MzlkNTkzZmYyYzlk
YzBiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xODgsNiArMTg4LDcgQEAgSUYg
KEVOQUJMRV9WSURFTykKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd0VmbC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IGQ4MjdjZDNkMzgxODBiYTdjOWVlNTExZDA0YTVjYmZkMjBhMWY5YWIuLjQ0NTFlNWYz
YzI2NWFjMTNhOTdjZmQ3ZDlhOWJjYjQ2MDhkZjUyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzIzMSw2
ICszMjMxLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAg
SEVBREVSUyArPSBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1Jl
ZlB0ckdTdHJlYW1lci5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJHV29ybGQuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmggXAogICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5oIFwKQEAgLTMyNDAsNiArMzI0MSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9W
SURFTz0xKSB7CiAgICAgICAgIFNPVVJDRVMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwIFwKICAgICAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwIFwKKyAgICAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmMgXAogICAg
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Zp
ZGVvU2lua0dTdHJlYW1lci5jcHAgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3Ry
ZWFtZXIuY3BwCmluZGV4IDI0MjdjMDZiMjk0MjkyMGY1NTYzYzY0YjBhNmQyYWM1M2U3MmMxYzcu
LmI4NTM4NzA3Y2YwMWMxYjc3MTg2OTk0YWMzZDU4NTZjYzlkZDdjMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1Jl
ZlB0ckdTdHJlYW1lci5jcHAKQEAgLTE5LDYgKzE5LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJWZXJz
aW9uaW5nLmgiCiAKICNpZiBVU0UoR1NUUkVBTUVSKQogI2luY2x1ZGUgPGdzdC9nc3RlbGVtZW50
Lmg+CkBAIC0zMywxMCArMzQsOCBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdEVsZW1lbnQ+IGFk
b3B0R1JlZihHc3RFbGVtZW50KiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdzdEVsZW1lbnQqIHJlZkdQ
dHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCogcHRyKQogewotICAgIGlmIChwdHIpIHsKLSAgICAg
ICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9z
aW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtp
dEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9
CkBAIC01NSwxMCArNTQsOSBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZD4gYWRvcHRHUmVm
KEdzdFBhZCogcHRyKQogCiB0ZW1wbGF0ZSA8PiBHc3RQYWQqIHJlZkdQdHI8R3N0UGFkPihHc3RQ
YWQqIHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9P
QkpFQ1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwot
ICAgIH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9P
QkpFQ1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwogfQogCkBAIC03NiwxMCArNzQsOSBAQCB0
ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZFRlbXBsYXRlPiBhZG9wdEdSZWYoR3N0UGFkVGVtcGxh
dGUqIHB0cikKIAogdGVtcGxhdGUgPD4gR3N0UGFkVGVtcGxhdGUqIHJlZkdQdHI8R3N0UGFkVGVt
cGxhdGU+KEdzdFBhZFRlbXBsYXRlKiBwdHIpCiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBn
c3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3Npbmso
R1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0R3N0
T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOworCiAgICAgcmV0dXJuIHB0cjsKIH0KIApA
QCAtMTExLDEwICsxMDgsOCBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFRhc2s+IGFkb3B0R1Jl
ZihHc3RUYXNrKiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdzdFRhc2sqIHJlZkdQdHI8R3N0VGFzaz4o
R3N0VGFzayogcHRyKQogewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYo
R1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRy
KSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmso
R1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZkOTBmYTlhNmFmZTYzZjdh
YjU1NDFiYWNmZjQzMTMyY2VjNTUxNDkuLmNlZWU4ZjRkYmY3MTE2ZDhmODkyZWFiYTM3ZGM3YThm
YzVlY2QxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckdXb3JsZC5oIgorI2lu
Y2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIu
aCIKQEAgLTQ2LDEyICs0NywxNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5oIgogI2luY2x1ZGUgPEdPd25QdHIuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+Ci0jaW5jbHVk
ZSA8Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3Zp
ZGVvLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorI2luY2x1ZGUg
PGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCisjaW5jbHVkZSA8Z3N0L2ludGVyZmFj
ZXMvc3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKKwogLy8gR3N0UGxheUZsYWdzIGZsYWdzIGZyb20g
cGxheWJpbjIuIEl0IGlzIHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVyIHRvCiAvLyBub3QgcHVibGlj
bHkgZXhwb3NlIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMuIFRoYXQncyB3aHkgdGhpcwogLy8gR3N0
UGxheUZsYWdzIGVudW0gaGFzIGJlZW4gY29waWVkIGhlcmUuCkBAIC02Nyw2ICs3MywxMiBAQCB0
eXBlZGVmIGVudW0gewogICAgIEdTVF9QTEFZX0ZMQUdfQlVGRkVSSU5HICAgICA9IDB4MDAwMDAw
MTAwCiB9IEdzdFBsYXlGbGFnczsKIAorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCitzdGF0aWMg
Y29uc3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4iOworI2Vsc2UKK3N0YXRpYyBjb25z
dCBjaGFyKiBnUGxheWJpbk5hbWUgPSAicGxheWJpbjIiOworI2VuZGlmCisKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Niw3ICsxOTgsNyBAQCBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogICAgIGlmICghZG9H
c3RJbml0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdzdEVsZW1lbnRGYWN0b3J5
KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluMiIpOworICAgIEdz
dEVsZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKGdQbGF5
YmluTmFtZSk7CiAgICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihH
U1RfT0JKRUNUKGZhY3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00MDAsNyArNDEy
LDEyIEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25z
dAogICAgIEdzdEZvcm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1BVF9USU1FOwogICAgIGdpbnQ2
NCB0aW1lTGVuZ3RoID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24o
bV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NU
X0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9D
TE9DS19USU1FX05PTkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGJvb2wgZmFp
bHVyZSA9ICFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sIHRpbWVGb3JtYXQs
ICZ0aW1lTGVuZ3RoKSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1Rf
Q0xPQ0tfVElNRV9OT05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRf
cXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRp
bWVGb3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVM
ZW5ndGgpID09IEdTVF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYKKyAgICBpZiAoZmFpbHVyZSkg
ewogICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVk
LiIpOwogICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwog
ICAgIH0KQEAgLTQ4OSwxMiArNTA2LDEwIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFoYXNWaWRlbygpKQogICAgICAg
ICByZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgR1JlZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1Jl
Zihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2luaywgInNpbmsiKSk7
Ci0gICAgaWYgKCFwYWQpCisgICAgR3N0Q2FwcyogY2FwcyA9IHdlYmtpdEdzdEVsZW1lbnRHZXRQ
YWRDYXBzKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpOworICAgIGlmICghY2FwcykKICAgICAg
ICAgcmV0dXJuIEludFNpemUoKTsKIAotICAgIGd1aW50NjQgd2lkdGggPSAwLCBoZWlnaHQgPSAw
OwotICAgIEdzdENhcHMqIGNhcHMgPSBHU1RfUEFEX0NBUFMocGFkLmdldCgpKTsKICAgICBpbnQg
cGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yOwog
ICAgIGludCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQsIGRpc3BsYXlBc3BlY3RSYXRpb0dD
RDsKICAgICBpbnQgb3JpZ2luYWxXaWR0aCA9IDAsIG9yaWdpbmFsSGVpZ2h0ID0gMDsKQEAgLTUw
NiwxMSArNTIxLDIzIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1
cmFsU2l6ZSgpIGNvbnN0CiAKICAgICAvLyBHZXQgdGhlIHZpZGVvIFBBUiBhbmQgb3JpZ2luYWwg
c2l6ZSwgaWYgdGhpcyBmYWlscyB0aGUKICAgICAvLyB2aWRlby1zaW5rIGhhcyBsaWtlbHkgbm90
IHlldCBuZWdvdGlhdGVkIGl0cyBjYXBzLgorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAg
R3N0VmlkZW9JbmZvIGluZm87CisgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmlu
Zm8sIGNhcHMpKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgb3JpZ2luYWxXaWR0
aCA9IEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKTsKKyAgICBvcmlnaW5hbEhlaWdodCA9IEdT
VF9WSURFT19JTkZPX0hFSUdIVCgmaW5mbyk7CisgICAgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRv
ciA9IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvRGVu
b21pbmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJfRCgmaW5mbyk7CisjZWxzZQorICAgIC8vIEdl
dCB0aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLgogICAgIGlmICghR1NUX0lTX0NBUFMo
Y2FwcykgfHwgIWdzdF9jYXBzX2lzX2ZpeGVkKGNhcHMpCiAgICAgICAgIHx8ICFnc3RfdmlkZW9f
Zm9ybWF0X3BhcnNlX2NhcHMoY2FwcywgMCwgJm9yaWdpbmFsV2lkdGgsICZvcmlnaW5hbEhlaWdo
dCkKICAgICAgICAgfHwgIWdzdF92aWRlb19wYXJzZV9jYXBzX3BpeGVsX2FzcGVjdF9yYXRpbyhj
YXBzLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9y
KSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKyNlbmRpZgogCiAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJPcmlnaW5hbCB2aWRlbyBzaXplOiAlZHglZCIsIG9yaWdpbmFsV2lkdGgsIG9yaWdp
bmFsSGVpZ2h0KTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBpeGVsIGFzcGVjdCByYXRpbzog
JWQvJWQiLCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21p
bmF0b3IpOwpAQCAtNTI1LDYgKzU1Miw3IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgZGlzcGxheUhlaWdodCAvPSBkaXNwbGF5
QXNwZWN0UmF0aW9HQ0Q7CiAKICAgICAvLyBBcHBseSBEQVIgdG8gb3JpZ2luYWwgdmlkZW8gc2l6
ZS4gVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBpbiB4dmltYWdlc2luaydzIHNldGNhcHMg
ZnVuY3Rpb24uCisgICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CiAgICAgaWYgKCEo
b3JpZ2luYWxIZWlnaHQgJSBkaXNwbGF5SGVpZ2h0KSkgewogICAgICAgICBMT0dfVkVSQk9TRShN
ZWRpYSwgIktlZXBpbmcgdmlkZW8gb3JpZ2luYWwgaGVpZ2h0Iik7CiAgICAgICAgIHdpZHRoID0g
Z3N0X3V0aWxfdWludDY0X3NjYWxlX2ludChvcmlnaW5hbEhlaWdodCwgZGlzcGxheVdpZHRoLCBk
aXNwbGF5SGVpZ2h0KTsKQEAgLTkyOSw3ICs5NTcsMTEgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKIAogICAgIEdzdEZvcm1hdCBmbXQg
PSBHU1RfRk9STUFUX0JZVEVTOwogICAgIGdpbnQ2NCBsZW5ndGggPSAwOworI2lmZGVmIEdTVF9B
UElfVkVSU0lPTl8xCisgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNl
LCBmbXQsICZsZW5ndGgpKSB7CisjZWxzZQogICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeV9kdXJh
dGlvbihtX3NvdXJjZSwgJmZtdCwgJmxlbmd0aCkpIHsKKyNlbmRpZgogICAgICAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFULCBsZW5ndGgpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxlbmd0aCk7CiAgICAgfQpAQCAtOTM5
LDE3ICs5NzEsMjggQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3Rh
bEJ5dGVzKCkgY29uc3QKICAgICBHc3RJdGVyYXRvciogaXRlciA9IGdzdF9lbGVtZW50X2l0ZXJh
dGVfc3JjX3BhZHMobV9zb3VyY2UpOwogICAgIGJvb2wgZG9uZSA9IGZhbHNlOwogICAgIHdoaWxl
ICghZG9uZSkgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIEdWYWx1ZSBpdGVt
ID0gezAsIH07CisgICAgICAgIHN3aXRjaCAoZ3N0X2l0ZXJhdG9yX25leHQoaXRlciwgJml0ZW0p
KSB7CisgICAgICAgIGNhc2UgR1NUX0lURVJBVE9SX09LOiB7CisgICAgICAgICAgICBHc3RQYWQq
IHBhZCA9IHN0YXRpY19jYXN0PEdzdFBhZCo+KGdfdmFsdWVfZ2V0X29iamVjdCgmaXRlbSkpOwor
ICAgICAgICAgICAgZ2ludDY0IHBhZExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAoZ3N0X3Bh
ZF9xdWVyeV9kdXJhdGlvbihwYWQsIGZtdCwgJnBhZExlbmd0aCkgJiYgcGFkTGVuZ3RoID4gbGVu
Z3RoKQorICAgICAgICAgICAgICAgIGxlbmd0aCA9IHBhZExlbmd0aDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisjZWxzZQogICAgICAgICBncG9pbnRlciBkYXRhOwogCiAgICAgICAg
IHN3aXRjaCAoZ3N0X2l0ZXJhdG9yX25leHQoaXRlciwgJmRhdGEpKSB7CiAgICAgICAgIGNhc2Ug
R1NUX0lURVJBVE9SX09LOiB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdFBhZD4gcGFkID0gYWRv
cHRHUmVmKEdTVF9QQURfQ0FTVChkYXRhKSk7CiAgICAgICAgICAgICBnaW50NjQgcGFkTGVuZ3Ro
ID0gMDsKLSAgICAgICAgICAgIGlmIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKHBhZC5nZXQoKSwg
JmZtdCwgJnBhZExlbmd0aCkKLSAgICAgICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBsZW5ndGgp
CisgICAgICAgICAgICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbihwYWQuZ2V0KCksICZmbXQs
ICZwYWRMZW5ndGgpICYmIHBhZExlbmd0aCA+IGxlbmd0aCkKICAgICAgICAgICAgICAgICBsZW5n
dGggPSBwYWRMZW5ndGg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGNhc2UgR1NUX0lURVJBVE9SX1JFU1lOQzoKICAgICAgICAgICAgIGdzdF9pdGVyYXRv
cl9yZXN5bmMoaXRlcik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk1OSw3ICsxMDAyLDEyIEBA
IHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0
CiAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBnX3ZhbHVlX3Vuc2V0KCZpdGVt
KTsKKyNlbmRpZgogICAgIH0KKwogICAgIGdzdF9pdGVyYXRvcl9mcmVlKGl0ZXIpOwogCiAgICAg
TE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3Ro
KTsKQEAgLTE2NzEsNyArMTcxOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiB7CiAgICAgQVNTRVJUKCFt
X3BsYXlCaW4pOwotICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicGxh
eWJpbjIiLCAicGxheSIpOworICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZShnUGxheWJpbk5hbWUsICJwbGF5Iik7CiAKICAgICBtX2dzdEdXb3JsZCA9IEdTdHJlYW1lckdX
b3JsZDo6Y3JlYXRlR1dvcmxkKG1fcGxheUJpbik7CiAKQEAgLTE2OTIsNyArMTc0MCwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAg
ICBnX3NpZ25hbF9jb25uZWN0KG1fd2Via2l0VmlkZW9TaW5rLCAicmVwYWludC1yZXF1ZXN0ZWQi
LCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVJlcGFpbnRDYWxsYmFjayksIHRoaXMpOwog
CisKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBtX3ZpZGVvU2lua0JpbiA9IGdzdF9i
aW5fbmV3KCJzaW5rIik7CisKICAgICBHc3RFbGVtZW50KiB2aWRlb1RlZSA9IGdzdF9lbGVtZW50
X2ZhY3RvcnlfbWFrZSgidGVlIiwgInZpZGVvVGVlIik7CiAgICAgR3N0RWxlbWVudCogcXVldWUg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgMCk7CiAKQEAgLTE3MTAsNiArMTc2
MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5Qmlu
KCkKICAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dl
dF9yZXF1ZXN0X3BhZCh2aWRlb1RlZSwgInNyYyVkIikpOwogICAgIEdSZWZQdHI8R3N0UGFkPiBz
aW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLCAic2lu
ayIpKTsKICAgICBnc3RfcGFkX2xpbmsoc3JjUGFkLmdldCgpLCBzaW5rUGFkLmdldCgpKTsKKyNl
bmRpZgogCiAgICAgR3N0RWxlbWVudCogYWN0dWFsVmlkZW9TaW5rID0gMDsKICAgICBtX2Zwc1Np
bmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImZwc2Rpc3BsYXlzaW5rIiwgInNpbmsiKTsK
QEAgLTE3MjgsNyArMTc4MCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVHU1RQbGF5QmluKCkKIAogICAgICAgICAgICAgaWYgKGdfb2JqZWN0X2NsYXNzX2ZpbmRf
cHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKG1fZnBzU2luayksICJ2aWRlby1zaW5rIikpIHsK
ICAgICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9mcHNTaW5rLCAidmlkZW8tc2luayIsIG1f
d2Via2l0VmlkZW9TaW5rLCBOVUxMKTsKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAg
ICAgICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5rQmluKSwgbV9mcHNTaW5r
KTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIGFjdHVhbFZpZGVvU2luayA9IG1fZnBzU2luazsK
ICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1fZnBzU2luayA9IDA7CkBAIC0x
NzM3LDEyICsxNzkxLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVh
dGVHU1RQbGF5QmluKCkKICAgICB9CiAKICAgICBpZiAoIW1fZnBzU2luaykgeworI2lmbmRlZiBH
U1RfQVBJX1ZFUlNJT05fMQogICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5r
QmluKSwgbV93ZWJraXRWaWRlb1NpbmspOworI2VuZGlmCiAgICAgICAgIGFjdHVhbFZpZGVvU2lu
ayA9IG1fd2Via2l0VmlkZW9TaW5rOwogICAgIH0KIAogICAgIEFTU0VSVChhY3R1YWxWaWRlb1Np
bmspOwogCisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgLy8gRmFzdGVyIGVsZW1lbnRz
IGxpbmtpbmcuCiAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJzcmMiLCBh
Y3R1YWxWaWRlb1NpbmssICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwogCkBA
IC0xNzUyLDEwICsxODA5LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVHU1RQbGF5QmluKCkKIAogICAgIC8vIFNldCB0aGUgYmluIGFzIHZpZGVvIHNpbmsgb2Yg
cGxheWJpbi4KICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAidmlkZW8tc2luayIsIG1fdmlk
ZW9TaW5rQmluLCBOVUxMKTsKKyNlbHNlCisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZp
ZGVvLXNpbmsiLCBhY3R1YWxWaWRlb1NpbmssIE5VTEwpOworI2VuZGlmCiAKLSAgICBwYWQgPSBh
ZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRWaWRlb1NpbmssICJz
aW5rIikpOwotICAgIGlmIChwYWQpCi0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocGFkLmdldCgp
LCAibm90aWZ5OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1NpbmtD
YXBzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgR1JlZlB0cjxHc3RQYWQ+IHZpZGVvU2lu
a1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVv
U2luaywgInNpbmsiKSk7CisgICAgaWYgKHZpZGVvU2lua1BhZCkKKyAgICAgICAgZ19zaWduYWxf
Y29ubmVjdCh2aWRlb1NpbmtQYWQuZ2V0KCksICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1l
ZGlhUGxheWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKIAog
fQogCg==
</data>
<flag name="review"
          id="131596"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="131597"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129047</attachid>
            <date>2012-02-27 09:04:43 -0800</date>
            <delta_ts>2012-02-27 09:18:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>Patch-for-landing.patch</filename>
            <type>text/plain</type>
            <size>19546</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4YTg4NjQ4ZmMzMGY2Yjg1ODcyMjJkMDc4NTliMTJmMzZiNWE1ODYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI3IEZlYiAyMDEyIDE4OjA0OjQ2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2ggZm9yIGxhbmRpbmcKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCAgICAgICAgfCAgIDI3ICsrKy0tLS0KIC4u
Li9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jICAgICAgIHwgICA1MCAr
KysrKysrKysrKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmgg
ICAgICAgfCAgIDI4ICsrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCAgICAgIHwgICA4NiArKysrKysrKysrKysrKysrKy0tLQogOCBmaWxlcyBjaGFu
Z2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZl
cnNpb25pbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmgKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZh
OWRmNy4uOTA5YzkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTI3ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSAwLjExIHN1cHBvcnQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2ljIHBvcnQgdG8gR1N0
cmVhbWVyIDAuMTEgQVBJcy4gVGhpcyBwYXRjaCBleGNsdWRlcyB0aGUgdmlkZW8KKyAgICAgICAg
cGFpbnRpbmcgY2hhbmdlcyBhbmQgdGhlIEdTdHJlYW1lckdXb3JsZCBjaGFuZ2VzIHdoaWNoIGFy
ZSBoYW5kbGVkCisgICAgICAgIGluIHR3byBvdGhlciBwYXRjaGVzIChidWdzIDc3MDg3IGFuZCA3
NzA4OCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdU
Rjo6R3N0RWxlbWVudCk6CisgICAgICAgIChXVEY6OkdzdFBhZCk6CisgICAgICAgIChXVEY6Okdz
dFBhZFRlbXBsYXRlKToKKyAgICAgICAgKFdURjo6R3N0VGFzayk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYzogQWRkZWQuCisgICAg
ICAgICh3ZWJraXRfZ3N0X29iamVjdF9yZWZfc2luayk6CisgICAgICAgICh3ZWJraXRfZ3N0X2Vs
ZW1lbnRfZ2V0X3BhZF9jYXBzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXpl
KToKKwogMjAxMi0wMi0yNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtTdHlsZXNdIEFsbG93IGFkZGluZyBDU1MgcHJv
cGVydGllcyBhbnl3aGVyZSBpbiB0aGUgc3R5bGUgZGVjbGFyYXRpb24sIG5vdCBvbmx5IGF0IHRo
ZSBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGEzZWQxNzYuLmE3YjE0ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDUzMCw2ICs0NTMwLDggQEAgd2Vi
Y29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdXb3JsZC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5j
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VmVyc2lvbmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDVkOThjODkuLmU2MDNlOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xODgsNiArMTg4LDcgQEAgSUYgKEVOQUJMRV9WSURFTykK
ICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lckdXb3JsZC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmVyc2lvbmluZy5jCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd0VmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQ4MjdjZDMu
LjQ0NTFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzIzMSw2ICszMjMxLDcgQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgSEVBREVSUyArPSBcCiAgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oIFwKICAgICAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuaCBcCisg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmlu
Zy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oIFwKQEAgLTMyNDAsNiArMzI0
MSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgICAgIFNPVVJD
RVMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuY3BwIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJHV29ybGQuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmMgXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgXAogICAgICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgXAog
ICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCmluZGV4IDI0MjdjMDYu
LmI4NTM4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKQEAgLTE5LDYgKzE5LDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIK
KyNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9uaW5nLmgiCiAKICNpZiBVU0UoR1NUUkVBTUVSKQog
I2luY2x1ZGUgPGdzdC9nc3RlbGVtZW50Lmg+CkBAIC0zMywxMCArMzQsOCBAQCB0ZW1wbGF0ZSA8
PiBHUmVmUHRyPEdzdEVsZW1lbnQ+IGFkb3B0R1JlZihHc3RFbGVtZW50KiBwdHIpCiAKIHRlbXBs
YXRlIDw+IEdzdEVsZW1lbnQqIHJlZkdQdHI8R3N0RWxlbWVudD4oR3N0RWxlbWVudCogcHRyKQog
ewotICAgIGlmIChwdHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIp
KTsKLSAgICAgICAgZ3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAg
IGlmIChwdHIpCisgICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIp
KTsKIAogICAgIHJldHVybiBwdHI7CiB9CkBAIC01NSwxMCArNTQsOSBAQCB0ZW1wbGF0ZSA8PiBH
UmVmUHRyPEdzdFBhZD4gYWRvcHRHUmVmKEdzdFBhZCogcHRyKQogCiB0ZW1wbGF0ZSA8PiBHc3RQ
YWQqIHJlZkdQdHI8R3N0UGFkPihHc3RQYWQqIHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAg
ICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rf
c2luayhHU1RfT0JKRUNUKHB0cikpOwotICAgIH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJr
aXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpFQ1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwog
fQogCkBAIC03NiwxMCArNzQsOSBAQCB0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdFBhZFRlbXBsYXRl
PiBhZG9wdEdSZWYoR3N0UGFkVGVtcGxhdGUqIHB0cikKIAogdGVtcGxhdGUgPD4gR3N0UGFkVGVt
cGxhdGUqIHJlZkdQdHI8R3N0UGFkVGVtcGxhdGU+KEdzdFBhZFRlbXBsYXRlKiBwdHIpCiB7Ci0g
ICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwot
ICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYg
KHB0cikKKyAgICAgICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOwor
CiAgICAgcmV0dXJuIHB0cjsKIH0KIApAQCAtMTExLDEwICsxMDgsOCBAQCB0ZW1wbGF0ZSA8PiBH
UmVmUHRyPEdzdFRhc2s+IGFkb3B0R1JlZihHc3RUYXNrKiBwdHIpCiAKIHRlbXBsYXRlIDw+IEdz
dFRhc2sqIHJlZkdQdHI8R3N0VGFzaz4oR3N0VGFzayogcHRyKQogewotICAgIGlmIChwdHIpIHsK
LSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAgZ3N0X29i
amVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisgICAgICAg
IHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKIAogICAgIHJldHVybiBw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yOTIzNzFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuYwpAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSwgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHU3RyZWFtZXJWZXJzaW9u
aW5nLmgiCisKK3ZvaWQgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHc3RPYmplY3QqIGdzdE9iamVj
dCkKK3sKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGdzdF9vYmplY3RfcmVmX3Npbmso
Z3N0T2JqZWN0KTsKKyNlbHNlCisgICAgZ3N0X29iamVjdF9yZWYoZ3N0T2JqZWN0KTsKKyAgICBn
c3Rfb2JqZWN0X3NpbmsoZ3N0T2JqZWN0KTsKKyNlbmRpZgorfQorCitHc3RDYXBzICogd2Via2l0
R3N0RWxlbWVudEdldFBhZENhcHMoR3N0RWxlbWVudCogZWxlbWVudCwgY29uc3QgY2hhciogZGly
ZWN0aW9uKQoreworICAgIEdzdFBhZCAqcGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQo
ZWxlbWVudCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoIXBhZCkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBHc3RDYXBzICpjYXBzOworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgY2FwcyA9
IGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcyhwYWQpOworICAgIGlmICghY2FwcykKKyAgICAgICAg
Y2FwcyA9IGdzdF9wYWRfcXVlcnlfY2FwcyhwYWQsIDApOworI2Vsc2UKKyAgICBjYXBzID0gR1NU
X1BBRF9DQVBTKHBhZCk7CisjZW5kaWYKKyAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1Qo
cGFkKSk7CisgICAgcmV0dXJuIGNhcHM7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWFkYzI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclZlcnNpb25pbmcuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdTdHJlYW1lclZlcnNpb25pbmdf
aAorI2RlZmluZSBHU3RyZWFtZXJWZXJzaW9uaW5nX2gKKworI2luY2x1ZGUgPGdzdC9nc3QuaD4K
Kwordm9pZCB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdzdE9iamVjdCopOworR3N0Q2Fwcyogd2Vi
a2l0R3N0RWxlbWVudEdldFBhZENhcHMoR3N0RWxlbWVudCosIGNvbnN0IGNoYXIqKTsKKworI2Vu
ZGlmIC8vIEdTdHJlYW1lclZlcnNpb25pbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZDkwZmE5Li5jZWVlOGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIu
aCIKICNpbmNsdWRlICJHU3RyZWFtZXJHV29ybGQuaCIKKyNpbmNsdWRlICJHU3RyZWFtZXJWZXJz
aW9uaW5nLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdlR1N0cmVhbWVyLmgiCkBAIC00NiwxMiArNDcsMTcg
QEAKICNpbmNsdWRlICJXZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlIDxHT3du
UHRyLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgotI2luY2x1ZGUgPGdzdC9pbnRlcmZhY2VzL3N0
cmVhbXZvbHVtZS5oPgogI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgogI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9s
dW1lLmg+CisjZWxzZQorI2luY2x1ZGUgPGdzdC9pbnRlcmZhY2VzL3N0cmVhbXZvbHVtZS5oPgor
I2VuZGlmCisKIC8vIEdzdFBsYXlGbGFncyBmbGFncyBmcm9tIHBsYXliaW4yLiBJdCBpcyB0aGUg
cG9saWN5IG9mIEdTdHJlYW1lciB0bwogLy8gbm90IHB1YmxpY2x5IGV4cG9zZSBlbGVtZW50LXNw
ZWNpZmljIGVudW1zLiBUaGF0J3Mgd2h5IHRoaXMKIC8vIEdzdFBsYXlGbGFncyBlbnVtIGhhcyBi
ZWVuIGNvcGllZCBoZXJlLgpAQCAtNjcsNiArNzMsMTIgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBH
U1RfUExBWV9GTEFHX0JVRkZFUklORyAgICAgPSAweDAwMDAwMDEwMAogfSBHc3RQbGF5RmxhZ3M7
CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorc3RhdGljIGNvbnN0IGNoYXIqIGdQbGF5Ymlu
TmFtZSA9ICJwbGF5YmluIjsKKyNlbHNlCitzdGF0aWMgY29uc3QgY2hhciogZ1BsYXliaW5OYW1l
ID0gInBsYXliaW4yIjsKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xODYsNyArMTk4LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKICAgICBpZiAoIWRvR3N0SW5pdCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBHc3RFbGVtZW50RmFjdG9yeSogZmFjdG9yeSA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfZmluZCgicGxheWJpbjIiKTsKKyAgICBHc3RFbGVtZW50RmFjdG9yeSogZmFj
dG9yeSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZChnUGxheWJpbk5hbWUpOwogICAgIGlmIChm
YWN0b3J5KSB7CiAgICAgICAgIGdzdF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChmYWN0b3J5KSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDAwLDcgKzQxMiwxMiBAQCBmbG9hdCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9uKCkgY29uc3QKICAgICBHc3RGb3JtYXQgdGlt
ZUZvcm1hdCA9IEdTVF9GT1JNQVRfVElNRTsKICAgICBnaW50NjQgdGltZUxlbmd0aCA9IDA7CiAK
LSAgICBpZiAoIWdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgJnRpbWVGb3Jt
YXQsICZ0aW1lTGVuZ3RoKSB8fCB0aW1lRm9ybWF0ICE9IEdTVF9GT1JNQVRfVElNRSB8fCBzdGF0
aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tfVElNRV9OT05FKSB7Cisj
aWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKKyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRf
cXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCB0aW1lRm9ybWF0LCAmdGltZUxlbmd0aCkgfHwgc3Rh
dGljX2Nhc3Q8Z3VpbnQ2ND4odGltZUxlbmd0aCkgPT0gR1NUX0NMT0NLX1RJTUVfTk9ORTsKKyNl
bHNlCisgICAgYm9vbCBmYWlsdXJlID0gIWdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxh
eUJpbiwgJnRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fCB0aW1lRm9ybWF0ICE9IEdTVF9GT1JN
QVRfVElNRSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xPQ0tf
VElNRV9OT05FOworI2VuZGlmCisgICAgaWYgKGZhaWx1cmUpIHsKICAgICAgICAgTE9HX1ZFUkJP
U0UoTWVkaWEsICJUaW1lIGR1cmF0aW9uIHF1ZXJ5IGZhaWxlZC4iKTsKICAgICAgICAgcmV0dXJu
IG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKTsKICAgICB9CkBAIC00ODksMTIgKzUw
NiwxMCBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUo
KSBjb25zdAogICAgIGlmICghaGFzVmlkZW8oKSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsK
IAotICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRpY19wYWQobV93ZWJraXRWaWRlb1NpbmssICJzaW5rIikpOwotICAgIGlmICghcGFkKQorICAg
IEdzdENhcHMqIGNhcHMgPSB3ZWJraXRHc3RFbGVtZW50R2V0UGFkQ2FwcyhtX3dlYmtpdFZpZGVv
U2luaywgInNpbmsiKTsKKyAgICBpZiAoIWNhcHMpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7
CiAKLSAgICBndWludDY0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKLSAgICBHc3RDYXBzKiBjYXBz
ID0gR1NUX1BBRF9DQVBTKHBhZC5nZXQoKSk7CiAgICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1l
cmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcjsKICAgICBpbnQgZGlzcGxheVdpZHRo
LCBkaXNwbGF5SGVpZ2h0LCBkaXNwbGF5QXNwZWN0UmF0aW9HQ0Q7CiAgICAgaW50IG9yaWdpbmFs
V2lkdGggPSAwLCBvcmlnaW5hbEhlaWdodCA9IDA7CkBAIC01MDYsMTEgKzUyMSwyMyBAQCBJbnRT
aXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogCiAg
ICAgLy8gR2V0IHRoZSB2aWRlbyBQQVIgYW5kIG9yaWdpbmFsIHNpemUsIGlmIHRoaXMgZmFpbHMg
dGhlCiAgICAgLy8gdmlkZW8tc2luayBoYXMgbGlrZWx5IG5vdCB5ZXQgbmVnb3RpYXRlZCBpdHMg
Y2Fwcy4KKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIEdzdFZpZGVvSW5mbyBpbmZvOwor
ICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBjYXBzKSkKKyAgICAgICAg
cmV0dXJuIEludFNpemUoKTsKKworICAgIG9yaWdpbmFsV2lkdGggPSBHU1RfVklERU9fSU5GT19X
SURUSCgmaW5mbyk7CisgICAgb3JpZ2luYWxIZWlnaHQgPSBHU1RfVklERU9fSU5GT19IRUlHSFQo
JmluZm8pOworICAgIHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IgPSBHU1RfVklERU9fSU5GT19Q
QVJfTigmaW5mbyk7CisgICAgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yID0gR1NUX1ZJREVP
X0lORk9fUEFSX0QoJmluZm8pOworI2Vsc2UKKyAgICAvLyBHZXQgdGhlIHZpZGVvIFBBUiBhbmQg
b3JpZ2luYWwgc2l6ZS4KICAgICBpZiAoIUdTVF9JU19DQVBTKGNhcHMpIHx8ICFnc3RfY2Fwc19p
c19maXhlZChjYXBzKQogICAgICAgICB8fCAhZ3N0X3ZpZGVvX2Zvcm1hdF9wYXJzZV9jYXBzKGNh
cHMsIDAsICZvcmlnaW5hbFdpZHRoLCAmb3JpZ2luYWxIZWlnaHQpCiAgICAgICAgIHx8ICFnc3Rf
dmlkZW9fcGFyc2VfY2Fwc19waXhlbF9hc3BlY3RfcmF0aW8oY2FwcywgJnBpeGVsQXNwZWN0UmF0
aW9OdW1lcmF0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnBpeGVsQXNwZWN0UmF0aW9EZW5vbWluYXRvcikpCiAgICAgICAgIHJldHVybiBJ
bnRTaXplKCk7CisjZW5kaWYKIAogICAgIExPR19WRVJCT1NFKE1lZGlhLCAiT3JpZ2luYWwgdmlk
ZW8gc2l6ZTogJWR4JWQiLCBvcmlnaW5hbFdpZHRoLCBvcmlnaW5hbEhlaWdodCk7CiAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJQaXhlbCBhc3BlY3QgcmF0aW86ICVkLyVkIiwgcGl4ZWxBc3BlY3RS
YXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yKTsKQEAgLTUyNSw2ICs1
NTIsNyBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUo
KSBjb25zdAogICAgIGRpc3BsYXlIZWlnaHQgLz0gZGlzcGxheUFzcGVjdFJhdGlvR0NEOwogCiAg
ICAgLy8gQXBwbHkgREFSIHRvIG9yaWdpbmFsIHZpZGVvIHNpemUuIFRoaXMgaXMgdGhlIHNhbWUg
YmVoYXZpb3IgYXMgaW4geHZpbWFnZXNpbmsncyBzZXRjYXBzIGZ1bmN0aW9uLgorICAgIGd1aW50
NjQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogICAgIGlmICghKG9yaWdpbmFsSGVpZ2h0ICUgZGlz
cGxheUhlaWdodCkpIHsKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJLZWVwaW5nIHZpZGVv
IG9yaWdpbmFsIGhlaWdodCIpOwogICAgICAgICB3aWR0aCA9IGdzdF91dGlsX3VpbnQ2NF9zY2Fs
ZV9pbnQob3JpZ2luYWxIZWlnaHQsIGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdodCk7CkBAIC05
MjksNyArOTU3LDExIEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90
YWxCeXRlcygpIGNvbnN0CiAKICAgICBHc3RGb3JtYXQgZm10ID0gR1NUX0ZPUk1BVF9CWVRFUzsK
ICAgICBnaW50NjQgbGVuZ3RoID0gMDsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGlm
IChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3NvdXJjZSwgZm10LCAmbGVuZ3RoKSkgewor
I2Vsc2UKICAgICBpZiAoZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9zb3VyY2UsICZmbXQs
ICZsZW5ndGgpKSB7CisjZW5kaWYKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5
dGVzICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihsZW5ndGgpOwogICAgIH0KQEAgLTkzOSwxNyArOTcxLDI4IEBAIHVuc2ln
bmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAg
R3N0SXRlcmF0b3IqIGl0ZXIgPSBnc3RfZWxlbWVudF9pdGVyYXRlX3NyY19wYWRzKG1fc291cmNl
KTsKICAgICBib29sIGRvbmUgPSBmYWxzZTsKICAgICB3aGlsZSAoIWRvbmUpIHsKKyNpZmRlZiBH
U1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBHVmFsdWUgaXRlbSA9IHswLCB9OworICAgICAgICBz
d2l0Y2ggKGdzdF9pdGVyYXRvcl9uZXh0KGl0ZXIsICZpdGVtKSkgeworICAgICAgICBjYXNlIEdT
VF9JVEVSQVRPUl9PSzogeworICAgICAgICAgICAgR3N0UGFkKiBwYWQgPSBzdGF0aWNfY2FzdDxH
c3RQYWQqPihnX3ZhbHVlX2dldF9vYmplY3QoJml0ZW0pKTsKKyAgICAgICAgICAgIGdpbnQ2NCBw
YWRMZW5ndGggPSAwOworICAgICAgICAgICAgaWYgKGdzdF9wYWRfcXVlcnlfZHVyYXRpb24ocGFk
LCBmbXQsICZwYWRMZW5ndGgpICYmIHBhZExlbmd0aCA+IGxlbmd0aCkKKyAgICAgICAgICAgICAg
ICBsZW5ndGggPSBwYWRMZW5ndGg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2Vs
c2UKICAgICAgICAgZ3BvaW50ZXIgZGF0YTsKIAogICAgICAgICBzd2l0Y2ggKGdzdF9pdGVyYXRv
cl9uZXh0KGl0ZXIsICZkYXRhKSkgewogICAgICAgICBjYXNlIEdTVF9JVEVSQVRPUl9PSzogewog
ICAgICAgICAgICAgR1JlZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1JlZihHU1RfUEFEX0NBU1Qo
ZGF0YSkpOwogICAgICAgICAgICAgZ2ludDY0IHBhZExlbmd0aCA9IDA7Ci0gICAgICAgICAgICBp
ZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbihwYWQuZ2V0KCksICZmbXQsICZwYWRMZW5ndGgpCi0g
ICAgICAgICAgICAgICAgJiYgcGFkTGVuZ3RoID4gbGVuZ3RoKQorICAgICAgICAgICAgaWYgKGdz
dF9wYWRfcXVlcnlfZHVyYXRpb24ocGFkLmdldCgpLCAmZm10LCAmcGFkTGVuZ3RoKSAmJiBwYWRM
ZW5ndGggPiBsZW5ndGgpCiAgICAgICAgICAgICAgICAgbGVuZ3RoID0gcGFkTGVuZ3RoOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBjYXNlIEdTVF9JVEVS
QVRPUl9SRVNZTkM6CiAgICAgICAgICAgICBnc3RfaXRlcmF0b3JfcmVzeW5jKGl0ZXIpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC05NTksNyArMTAwMiwxMiBAQCB1bnNpZ25lZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgICAgICAgICAgZG9uZSA9
IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisjaWZkZWYgR1NUX0FQSV9W
RVJTSU9OXzEKKyAgICAgICAgZ192YWx1ZV91bnNldCgmaXRlbSk7CisjZW5kaWYKICAgICB9CisK
ICAgICBnc3RfaXRlcmF0b3JfZnJlZShpdGVyKTsKIAogICAgIExPR19WRVJCT1NFKE1lZGlhLCAi
dG90YWxCeXRlcyAlIiBHX0dJTlQ2NF9GT1JNQVQsIGxlbmd0aCk7CkBAIC0xNjcxLDcgKzE3MTks
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UHJlbG9hZChNZWRpYVBs
YXllcjo6UHJlbG9hZCBwcmVsb2FkKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZUdTVFBsYXlCaW4oKQogewogICAgIEFTU0VSVCghbV9wbGF5QmluKTsKLSAgICBtX3Bs
YXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInBsYXliaW4yIiwgInBsYXkiKTsKKyAg
ICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoZ1BsYXliaW5OYW1lLCAicGxh
eSIpOwogCiAgICAgbV9nc3RHV29ybGQgPSBHU3RyZWFtZXJHV29ybGQ6OmNyZWF0ZUdXb3JsZCht
X3BsYXlCaW4pOwogCkBAIC0xNjkyLDcgKzE3NDAsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgZ19zaWduYWxfY29ubmVjdCht
X3dlYmtpdFZpZGVvU2luaywgInJlcGFpbnQtcmVxdWVzdGVkIiwgR19DQUxMQkFDSyhtZWRpYVBs
YXllclByaXZhdGVSZXBhaW50Q2FsbGJhY2spLCB0aGlzKTsKIAorCisjaWZuZGVmIEdTVF9BUElf
VkVSU0lPTl8xCiAgICAgbV92aWRlb1NpbmtCaW4gPSBnc3RfYmluX25ldygic2luayIpOworCiAg
ICAgR3N0RWxlbWVudCogdmlkZW9UZWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInRlZSIs
ICJ2aWRlb1RlZSIpOwogICAgIEdzdEVsZW1lbnQqIHF1ZXVlID0gZ3N0X2VsZW1lbnRfZmFjdG9y
eV9tYWtlKCJxdWV1ZSIsIDApOwogCkBAIC0xNzEwLDYgKzE3NjEsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgR1JlZlB0cjxHc3RQ
YWQ+IHNyY1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQodmlkZW9U
ZWUsICJzcmMlZCIpKTsKICAgICBHUmVmUHRyPEdzdFBhZD4gc2lua1BhZCA9IGFkb3B0R1JlZihn
c3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChxdWV1ZSwgInNpbmsiKSk7CiAgICAgZ3N0X3BhZF9s
aW5rKHNyY1BhZC5nZXQoKSwgc2lua1BhZC5nZXQoKSk7CisjZW5kaWYKIAogICAgIEdzdEVsZW1l
bnQqIGFjdHVhbFZpZGVvU2luayA9IDA7CiAgICAgbV9mcHNTaW5rID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJmcHNkaXNwbGF5c2luayIsICJzaW5rIik7CkBAIC0xNzI4LDcgKzE3ODAsOSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAK
ICAgICAgICAgICAgIGlmIChnX29iamVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dF
VF9DTEFTUyhtX2Zwc1NpbmspLCAidmlkZW8tc2luayIpKSB7CiAgICAgICAgICAgICAgICAgZ19v
YmplY3Rfc2V0KG1fZnBzU2luaywgInZpZGVvLXNpbmsiLCBtX3dlYmtpdFZpZGVvU2luaywgTlVM
TCk7CisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAgICAgICAgICAgZ3N0X2Jpbl9h
ZGQoR1NUX0JJTihtX3ZpZGVvU2lua0JpbiksIG1fZnBzU2luayk7CisjZW5kaWYKICAgICAgICAg
ICAgICAgICBhY3R1YWxWaWRlb1NpbmsgPSBtX2Zwc1Npbms7CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBtX2Zwc1NpbmsgPSAwOwpAQCAtMTczNywxMiArMTc5MSwxNSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAg
fQogCiAgICAgaWYgKCFtX2Zwc1NpbmspIHsKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAg
ICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihtX3ZpZGVvU2lua0JpbiksIG1fd2Via2l0VmlkZW9T
aW5rKTsKKyNlbmRpZgogICAgICAgICBhY3R1YWxWaWRlb1NpbmsgPSBtX3dlYmtpdFZpZGVvU2lu
azsKICAgICB9CiAKICAgICBBU1NFUlQoYWN0dWFsVmlkZW9TaW5rKTsKIAorI2lmbmRlZiBHU1Rf
QVBJX1ZFUlNJT05fMQogICAgIC8vIEZhc3RlciBlbGVtZW50cyBsaW5raW5nLgogICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVlLCAic3JjIiwgYWN0dWFsVmlkZW9TaW5rLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIApAQCAtMTc1MiwxMCArMTgwOSwxMyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAK
ICAgICAvLyBTZXQgdGhlIGJpbiBhcyB2aWRlbyBzaW5rIG9mIHBsYXliaW4uCiAgICAgZ19vYmpl
Y3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBtX3ZpZGVvU2lua0JpbiwgTlVMTCk7Cisj
ZWxzZQorICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgYWN0dWFsVmlk
ZW9TaW5rLCBOVUxMKTsKKyNlbmRpZgogCi0gICAgcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpKTsKLSAgICBpZiAocGFk
KQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHBhZC5nZXQoKSwgIm5vdGlmeTo6Y2FwcyIsIEdf
Q0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9TaW5rQ2Fwc0NoYW5nZWRDYWxsYmFjayks
IHRoaXMpOworICAgIEdSZWZQdHI8R3N0UGFkPiB2aWRlb1NpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0
X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRWaWRlb1NpbmssICJzaW5rIikpOworICAg
IGlmICh2aWRlb1NpbmtQYWQpCisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QodmlkZW9TaW5rUGFk
LmdldCgpLCAibm90aWZ5OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRl
b1NpbmtDYXBzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAKIH0KIAotLSAKMS43LjkuMQ==
</data>
<flag name="commit-queue"
          id="131599"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129051</attachid>
            <date>2012-02-27 09:18:34 -0800</date>
            <delta_ts>2012-02-27 09:23:08 -0800</delta_ts>
            <desc>Patch for landing, renaming GStreamerVersioning.c to GStreamerVersioning.cpp</desc>
            <filename>Patch-for-landing-renaming-GStreamerVersioningc-to.patch</filename>
            <type>text/plain</type>
            <size>19620</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAzOGQ1YmJlMzc1ZDY2M2U0NzE5MGNjM2M4OTYyZGIwMDU5ZmIzMzBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI3IEZlYiAyMDEyIDE4OjE4OjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2ggZm9yIGxhbmRpbmcsIHJlbmFtaW5nIEdTdHJlYW1lclZlcnNpb25pbmcuYyB0bwogR1N0
cmVhbWVyVmVyc2lvbmluZy5jcHAKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKwogU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL2dyYXBo
aWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCAgICAgICAgfCAgIDI3ICsrKy0tLS0K
IC4uLi9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jcHAgICAgIHwgICA1
MCArKysrKysrKysrKwogLi4uL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5n
LmggICAgICAgfCAgIDI4ICsrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCAgICAgIHwgICA4NiArKysrKysrKysrKysrKysrKy0tLQogOCBmaWxlcyBj
aGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clZlcnNpb25pbmcuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuaAoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAzNmE5ZGY3Li45MDljOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDIt
MjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
U3RyZWFtZXJdIDAuMTEgc3VwcG9ydCBpbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzaWMgcG9ydCB0
byBHU3RyZWFtZXIgMC4xMSBBUElzLiBUaGlzIHBhdGNoIGV4Y2x1ZGVzIHRoZSB2aWRlbworICAg
ICAgICBwYWludGluZyBjaGFuZ2VzIGFuZCB0aGUgR1N0cmVhbWVyR1dvcmxkIGNoYW5nZXMgd2hp
Y2ggYXJlIGhhbmRsZWQKKyAgICAgICAgaW4gdHdvIG90aGVyIHBhdGNoZXMgKGJ1Z3MgNzcwODcg
YW5kIDc3MDg4KS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV1RGOjpHc3RFbGVtZW50KToKKyAgICAgICAgKFdURjo6R3N0UGFkKToKKyAgICAgICAgKFdU
Rjo6R3N0UGFkVGVtcGxhdGUpOgorICAgICAgICAoV1RGOjpHc3RUYXNrKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5jOiBBZGRlZC4K
KyAgICAgICAgKHdlYmtpdF9nc3Rfb2JqZWN0X3JlZl9zaW5rKToKKyAgICAgICAgKHdlYmtpdF9n
c3RfZWxlbWVudF9nZXRfcGFkX2NhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppc0F2YWlsYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJh
bFNpemUpOgorCiAyMDEyLTAyLTI3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gQWxsb3cgYWRkaW5nIENT
UyBwcm9wZXJ0aWVzIGFueXdoZXJlIGluIHRoZSBzdHlsZSBkZWNsYXJhdGlvbiwgbm90IG9ubHkg
YXQgdGhlIGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYTNlZDE3Ni4uOWFk
YTQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NTMwLDYgKzQ1MzAsOCBA
QCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9u
aW5nLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclZlcnNpb25pbmcuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA1ZDk4Yzg5Li4yMTZjMmY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTg4LDYgKzE4OCw3IEBAIElGIChFTkFCTEVf
VklERU8pCiAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclZlcnNpb25pbmcuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd0VmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGQ4MjdjZDMuLmQ5MzcxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzIzMSw2ICszMjMxLDcgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgSEVBREVSUyArPSBcCiAg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5o
IFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJHV29y
bGQuaCBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
VmVyc2lvbmluZy5oIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmggXAogICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oIFwKQEAgLTMy
NDAsNiArMzI0MSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAg
ICAgIFNPVVJDRVMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dSZWZQdHJHU3RyZWFtZXIuY3BwIFwKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJHV29ybGQuY3BwIFwKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcCBcCiAgICAgICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBc
CiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcCBcCiAgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKaW5k
ZXggMjQyN2MwNi4uYjg1Mzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcApAQCAt
MTksNiArMTksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdT
dHJlYW1lci5oIgorI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKIAogI2lmIFVTRShH
U1RSRUFNRVIpCiAjaW5jbHVkZSA8Z3N0L2dzdGVsZW1lbnQuaD4KQEAgLTMzLDEwICszNCw4IEBA
IHRlbXBsYXRlIDw+IEdSZWZQdHI8R3N0RWxlbWVudD4gYWRvcHRHUmVmKEdzdEVsZW1lbnQqIHB0
cikKIAogdGVtcGxhdGUgPD4gR3N0RWxlbWVudCogcmVmR1B0cjxHc3RFbGVtZW50PihHc3RFbGVt
ZW50KiBwdHIpCiB7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1Rf
T0JKRUNUKHB0cikpOwotICAgICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsK
LSAgICB9CisgICAgaWYgKHB0cikKKyAgICAgICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1Rf
T0JKRUNUKHB0cikpOwogCiAgICAgcmV0dXJuIHB0cjsKIH0KQEAgLTU1LDEwICs1NCw5IEBAIHRl
bXBsYXRlIDw+IEdSZWZQdHI8R3N0UGFkPiBhZG9wdEdSZWYoR3N0UGFkKiBwdHIpCiAKIHRlbXBs
YXRlIDw+IEdzdFBhZCogcmVmR1B0cjxHc3RQYWQ+KEdzdFBhZCogcHRyKQogewotICAgIGlmIChw
dHIpIHsKLSAgICAgICAgZ3N0X29iamVjdF9yZWYoR1NUX09CSkVDVChwdHIpKTsKLSAgICAgICAg
Z3N0X29iamVjdF9zaW5rKEdTVF9PQkpFQ1QocHRyKSk7Ci0gICAgfQorICAgIGlmIChwdHIpCisg
ICAgICAgIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR1NUX09CSkVDVChwdHIpKTsKKwogICAgIHJl
dHVybiBwdHI7CiB9CiAKQEAgLTc2LDEwICs3NCw5IEBAIHRlbXBsYXRlIDw+IEdSZWZQdHI8R3N0
UGFkVGVtcGxhdGU+IGFkb3B0R1JlZihHc3RQYWRUZW1wbGF0ZSogcHRyKQogCiB0ZW1wbGF0ZSA8
PiBHc3RQYWRUZW1wbGF0ZSogcmVmR1B0cjxHc3RQYWRUZW1wbGF0ZT4oR3N0UGFkVGVtcGxhdGUq
IHB0cikKIHsKLSAgICBpZiAocHRyKSB7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKEdTVF9PQkpF
Q1QocHRyKSk7Ci0gICAgICAgIGdzdF9vYmplY3Rfc2luayhHU1RfT0JKRUNUKHB0cikpOwotICAg
IH0KKyAgICBpZiAocHRyKQorICAgICAgICB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdTVF9PQkpF
Q1QocHRyKSk7CisKICAgICByZXR1cm4gcHRyOwogfQogCkBAIC0xMTEsMTAgKzEwOCw4IEBAIHRl
bXBsYXRlIDw+IEdSZWZQdHI8R3N0VGFzaz4gYWRvcHRHUmVmKEdzdFRhc2sqIHB0cikKIAogdGVt
cGxhdGUgPD4gR3N0VGFzayogcmVmR1B0cjxHc3RUYXNrPihHc3RUYXNrKiBwdHIpCiB7Ci0gICAg
aWYgKHB0cikgewotICAgICAgICBnc3Rfb2JqZWN0X3JlZihHU1RfT0JKRUNUKHB0cikpOwotICAg
ICAgICBnc3Rfb2JqZWN0X3NpbmsoR1NUX09CSkVDVChwdHIpKTsKLSAgICB9CisgICAgaWYgKHB0
cikKKyAgICAgICAgd2Via2l0R3N0T2JqZWN0UmVmU2luayhHU1RfT0JKRUNUKHB0cikpOwogCiAg
ICAgcmV0dXJuIHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJzaW9uaW5nLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTIzNzFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclZl
cnNpb25pbmcuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IkdTdHJlYW1lclZlcnNpb25pbmcuaCIKKwordm9pZCB3ZWJraXRHc3RPYmplY3RSZWZTaW5rKEdz
dE9iamVjdCogZ3N0T2JqZWN0KQoreworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgZ3N0
X29iamVjdF9yZWZfc2luayhnc3RPYmplY3QpOworI2Vsc2UKKyAgICBnc3Rfb2JqZWN0X3JlZihn
c3RPYmplY3QpOworICAgIGdzdF9vYmplY3Rfc2luayhnc3RPYmplY3QpOworI2VuZGlmCit9CisK
K0dzdENhcHMgKiB3ZWJraXRHc3RFbGVtZW50R2V0UGFkQ2FwcyhHc3RFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBjaGFyKiBkaXJlY3Rpb24pCit7CisgICAgR3N0UGFkICpwYWQgPSBnc3RfZWxlbWVu
dF9nZXRfc3RhdGljX3BhZChlbGVtZW50LCBkaXJlY3Rpb24pOworICAgIGlmICghcGFkKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIEdzdENhcHMgKmNhcHM7CisjaWZkZWYgR1NUX0FQSV9WRVJT
SU9OXzEKKyAgICBjYXBzID0gZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKHBhZCk7CisgICAgaWYg
KCFjYXBzKQorICAgICAgICBjYXBzID0gZ3N0X3BhZF9xdWVyeV9jYXBzKHBhZCwgMCk7CisjZWxz
ZQorICAgIGNhcHMgPSBHU1RfUEFEX0NBUFMocGFkKTsKKyNlbmRpZgorICAgIGdzdF9vYmplY3Rf
dW5yZWYoR1NUX09CSkVDVChwYWQpKTsKKyAgICByZXR1cm4gY2FwczsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWZXJz
aW9uaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyVmVyc2lvbmluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZh
YWRjMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyVmVyc2lvbmluZy5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgR1N0
cmVhbWVyVmVyc2lvbmluZ19oCisjZGVmaW5lIEdTdHJlYW1lclZlcnNpb25pbmdfaAorCisjaW5j
bHVkZSA8Z3N0L2dzdC5oPgorCit2b2lkIHdlYmtpdEdzdE9iamVjdFJlZlNpbmsoR3N0T2JqZWN0
Kik7CitHc3RDYXBzKiB3ZWJraXRHc3RFbGVtZW50R2V0UGFkQ2FwcyhHc3RFbGVtZW50KiwgY29u
c3QgY2hhciopOworCisjZW5kaWYgLy8gR1N0cmVhbWVyVmVyc2lvbmluZ19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZkOTBmYTkuLmNl
ZWU4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
R1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckdXb3JsZC5oIgorI2luY2x1
ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VHU3RyZWFtZXIuaCIK
QEAgLTQ2LDEyICs0NywxNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5o
IgogI2luY2x1ZGUgPEdPd25QdHIuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+Ci0jaW5jbHVkZSA8
Z3N0L2ludGVyZmFjZXMvc3RyZWFtdm9sdW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVv
Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorI2luY2x1ZGUgPGdz
dC9hdWRpby9zdHJlYW12b2x1bWUuaD4KKyNlbHNlCisjaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMv
c3RyZWFtdm9sdW1lLmg+CisjZW5kaWYKKwogLy8gR3N0UGxheUZsYWdzIGZsYWdzIGZyb20gcGxh
eWJpbjIuIEl0IGlzIHRoZSBwb2xpY3kgb2YgR1N0cmVhbWVyIHRvCiAvLyBub3QgcHVibGljbHkg
ZXhwb3NlIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMuIFRoYXQncyB3aHkgdGhpcwogLy8gR3N0UGxh
eUZsYWdzIGVudW0gaGFzIGJlZW4gY29waWVkIGhlcmUuCkBAIC02Nyw2ICs3MywxMiBAQCB0eXBl
ZGVmIGVudW0gewogICAgIEdTVF9QTEFZX0ZMQUdfQlVGRkVSSU5HICAgICA9IDB4MDAwMDAwMTAw
CiB9IEdzdFBsYXlGbGFnczsKIAorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCitzdGF0aWMgY29u
c3QgY2hhciogZ1BsYXliaW5OYW1lID0gInBsYXliaW4iOworI2Vsc2UKK3N0YXRpYyBjb25zdCBj
aGFyKiBnUGxheWJpbk5hbWUgPSAicGxheWJpbjIiOworI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Niw3ICsxOTgsNyBAQCBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogICAgIGlmICghZG9Hc3RJ
bml0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdzdEVsZW1lbnRGYWN0b3J5KiBm
YWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5YmluMiIpOworICAgIEdzdEVs
ZW1lbnRGYWN0b3J5KiBmYWN0b3J5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKGdQbGF5Ymlu
TmFtZSk7CiAgICAgaWYgKGZhY3RvcnkpIHsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1Rf
T0JKRUNUKGZhY3RvcnkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00MDAsNyArNDEyLDEy
IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdAog
ICAgIEdzdEZvcm1hdCB0aW1lRm9ybWF0ID0gR1NUX0ZPUk1BVF9USU1FOwogICAgIGdpbnQ2NCB0
aW1lTGVuZ3RoID0gMDsKIAotICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9w
bGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVGb3JtYXQgIT0gR1NUX0ZP
Uk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5ndGgpID09IEdTVF9DTE9D
S19USU1FX05PTkUpIHsKKyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgIGJvb2wgZmFpbHVy
ZSA9ICFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sIHRpbWVGb3JtYXQsICZ0
aW1lTGVuZ3RoKSB8fCBzdGF0aWNfY2FzdDxndWludDY0Pih0aW1lTGVuZ3RoKSA9PSBHU1RfQ0xP
Q0tfVElNRV9OT05FOworI2Vsc2UKKyAgICBib29sIGZhaWx1cmUgPSAhZ3N0X2VsZW1lbnRfcXVl
cnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8IHRpbWVG
b3JtYXQgIT0gR1NUX0ZPUk1BVF9USU1FIHx8IHN0YXRpY19jYXN0PGd1aW50NjQ+KHRpbWVMZW5n
dGgpID09IEdTVF9DTE9DS19USU1FX05PTkU7CisjZW5kaWYKKyAgICBpZiAoZmFpbHVyZSkgewog
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVkLiIp
OwogICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwogICAg
IH0KQEAgLTQ4OSwxMiArNTA2LDEwIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFoYXNWaWRlbygpKQogICAgICAgICBy
ZXR1cm4gSW50U2l6ZSgpOwogCi0gICAgR1JlZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1JlZihn
c3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2luaywgInNpbmsiKSk7Ci0g
ICAgaWYgKCFwYWQpCisgICAgR3N0Q2FwcyogY2FwcyA9IHdlYmtpdEdzdEVsZW1lbnRHZXRQYWRD
YXBzKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpOworICAgIGlmICghY2FwcykKICAgICAgICAg
cmV0dXJuIEludFNpemUoKTsKIAotICAgIGd1aW50NjQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwot
ICAgIEdzdENhcHMqIGNhcHMgPSBHU1RfUEFEX0NBUFMocGFkLmdldCgpKTsKICAgICBpbnQgcGl4
ZWxBc3BlY3RSYXRpb051bWVyYXRvciwgcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yOwogICAg
IGludCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQsIGRpc3BsYXlBc3BlY3RSYXRpb0dDRDsK
ICAgICBpbnQgb3JpZ2luYWxXaWR0aCA9IDAsIG9yaWdpbmFsSGVpZ2h0ID0gMDsKQEAgLTUwNiwx
MSArNTIxLDIzIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFs
U2l6ZSgpIGNvbnN0CiAKICAgICAvLyBHZXQgdGhlIHZpZGVvIFBBUiBhbmQgb3JpZ2luYWwgc2l6
ZSwgaWYgdGhpcyBmYWlscyB0aGUKICAgICAvLyB2aWRlby1zaW5rIGhhcyBsaWtlbHkgbm90IHll
dCBuZWdvdGlhdGVkIGl0cyBjYXBzLgorI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgR3N0
VmlkZW9JbmZvIGluZm87CisgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8s
IGNhcHMpKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgb3JpZ2luYWxXaWR0aCA9
IEdTVF9WSURFT19JTkZPX1dJRFRIKCZpbmZvKTsKKyAgICBvcmlnaW5hbEhlaWdodCA9IEdTVF9W
SURFT19JTkZPX0hFSUdIVCgmaW5mbyk7CisgICAgcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciA9
IEdTVF9WSURFT19JTkZPX1BBUl9OKCZpbmZvKTsKKyAgICBwaXhlbEFzcGVjdFJhdGlvRGVub21p
bmF0b3IgPSBHU1RfVklERU9fSU5GT19QQVJfRCgmaW5mbyk7CisjZWxzZQorICAgIC8vIEdldCB0
aGUgdmlkZW8gUEFSIGFuZCBvcmlnaW5hbCBzaXplLgogICAgIGlmICghR1NUX0lTX0NBUFMoY2Fw
cykgfHwgIWdzdF9jYXBzX2lzX2ZpeGVkKGNhcHMpCiAgICAgICAgIHx8ICFnc3RfdmlkZW9fZm9y
bWF0X3BhcnNlX2NhcHMoY2FwcywgMCwgJm9yaWdpbmFsV2lkdGgsICZvcmlnaW5hbEhlaWdodCkK
ICAgICAgICAgfHwgIWdzdF92aWRlb19wYXJzZV9jYXBzX3BpeGVsX2FzcGVjdF9yYXRpbyhjYXBz
LCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yKSkK
ICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKyNlbmRpZgogCiAgICAgTE9HX1ZFUkJPU0UoTWVk
aWEsICJPcmlnaW5hbCB2aWRlbyBzaXplOiAlZHglZCIsIG9yaWdpbmFsV2lkdGgsIG9yaWdpbmFs
SGVpZ2h0KTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBpeGVsIGFzcGVjdCByYXRpbzogJWQv
JWQiLCBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0
b3IpOwpAQCAtNTI1LDYgKzU1Miw3IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgZGlzcGxheUhlaWdodCAvPSBkaXNwbGF5QXNw
ZWN0UmF0aW9HQ0Q7CiAKICAgICAvLyBBcHBseSBEQVIgdG8gb3JpZ2luYWwgdmlkZW8gc2l6ZS4g
VGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBhcyBpbiB4dmltYWdlc2luaydzIHNldGNhcHMgZnVu
Y3Rpb24uCisgICAgZ3VpbnQ2NCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CiAgICAgaWYgKCEob3Jp
Z2luYWxIZWlnaHQgJSBkaXNwbGF5SGVpZ2h0KSkgewogICAgICAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIktlZXBpbmcgdmlkZW8gb3JpZ2luYWwgaGVpZ2h0Iik7CiAgICAgICAgIHdpZHRoID0gZ3N0
X3V0aWxfdWludDY0X3NjYWxlX2ludChvcmlnaW5hbEhlaWdodCwgZGlzcGxheVdpZHRoLCBkaXNw
bGF5SGVpZ2h0KTsKQEAgLTkyOSw3ICs5NTcsMTEgQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjp0b3RhbEJ5dGVzKCkgY29uc3QKIAogICAgIEdzdEZvcm1hdCBmbXQgPSBH
U1RfRk9STUFUX0JZVEVTOwogICAgIGdpbnQ2NCBsZW5ndGggPSAwOworI2lmZGVmIEdTVF9BUElf
VkVSU0lPTl8xCisgICAgaWYgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCBm
bXQsICZsZW5ndGgpKSB7CisjZWxzZQogICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlv
bihtX3NvdXJjZSwgJmZtdCwgJmxlbmd0aCkpIHsKKyNlbmRpZgogICAgICAgICBMT0dfVkVSQk9T
RShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9STUFULCBsZW5ndGgpOwogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGxlbmd0aCk7CiAgICAgfQpAQCAtOTM5LDE3
ICs5NzEsMjggQEAgdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0b3RhbEJ5
dGVzKCkgY29uc3QKICAgICBHc3RJdGVyYXRvciogaXRlciA9IGdzdF9lbGVtZW50X2l0ZXJhdGVf
c3JjX3BhZHMobV9zb3VyY2UpOwogICAgIGJvb2wgZG9uZSA9IGZhbHNlOwogICAgIHdoaWxlICgh
ZG9uZSkgeworI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCisgICAgICAgIEdWYWx1ZSBpdGVtID0g
ezAsIH07CisgICAgICAgIHN3aXRjaCAoZ3N0X2l0ZXJhdG9yX25leHQoaXRlciwgJml0ZW0pKSB7
CisgICAgICAgIGNhc2UgR1NUX0lURVJBVE9SX09LOiB7CisgICAgICAgICAgICBHc3RQYWQqIHBh
ZCA9IHN0YXRpY19jYXN0PEdzdFBhZCo+KGdfdmFsdWVfZ2V0X29iamVjdCgmaXRlbSkpOworICAg
ICAgICAgICAgZ2ludDY0IHBhZExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAoZ3N0X3BhZF9x
dWVyeV9kdXJhdGlvbihwYWQsIGZtdCwgJnBhZExlbmd0aCkgJiYgcGFkTGVuZ3RoID4gbGVuZ3Ro
KQorICAgICAgICAgICAgICAgIGxlbmd0aCA9IHBhZExlbmd0aDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisjZWxzZQogICAgICAgICBncG9pbnRlciBkYXRhOwogCiAgICAgICAgIHN3
aXRjaCAoZ3N0X2l0ZXJhdG9yX25leHQoaXRlciwgJmRhdGEpKSB7CiAgICAgICAgIGNhc2UgR1NU
X0lURVJBVE9SX09LOiB7CiAgICAgICAgICAgICBHUmVmUHRyPEdzdFBhZD4gcGFkID0gYWRvcHRH
UmVmKEdTVF9QQURfQ0FTVChkYXRhKSk7CiAgICAgICAgICAgICBnaW50NjQgcGFkTGVuZ3RoID0g
MDsKLSAgICAgICAgICAgIGlmIChnc3RfcGFkX3F1ZXJ5X2R1cmF0aW9uKHBhZC5nZXQoKSwgJmZt
dCwgJnBhZExlbmd0aCkKLSAgICAgICAgICAgICAgICAmJiBwYWRMZW5ndGggPiBsZW5ndGgpCisg
ICAgICAgICAgICBpZiAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbihwYWQuZ2V0KCksICZmbXQsICZw
YWRMZW5ndGgpICYmIHBhZExlbmd0aCA+IGxlbmd0aCkKICAgICAgICAgICAgICAgICBsZW5ndGgg
PSBwYWRMZW5ndGg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorI2VuZGlmCiAgICAg
ICAgIGNhc2UgR1NUX0lURVJBVE9SX1JFU1lOQzoKICAgICAgICAgICAgIGdzdF9pdGVyYXRvcl9y
ZXN5bmMoaXRlcik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk1OSw3ICsxMDAyLDEyIEBAIHVu
c2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygpIGNvbnN0CiAg
ICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisK
KyNpZmRlZiBHU1RfQVBJX1ZFUlNJT05fMQorICAgICAgICBnX3ZhbHVlX3Vuc2V0KCZpdGVtKTsK
KyNlbmRpZgogICAgIH0KKwogICAgIGdzdF9pdGVyYXRvcl9mcmVlKGl0ZXIpOwogCiAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzICUiIEdfR0lOVDY0X0ZPUk1BVCwgbGVuZ3RoKTsK
QEAgLTE2NzEsNyArMTcxOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpz
ZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiB7CiAgICAgQVNTRVJUKCFtX3Bs
YXlCaW4pOwotICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicGxheWJp
bjIiLCAicGxheSIpOworICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZShn
UGxheWJpbk5hbWUsICJwbGF5Iik7CiAKICAgICBtX2dzdEdXb3JsZCA9IEdTdHJlYW1lckdXb3Js
ZDo6Y3JlYXRlR1dvcmxkKG1fcGxheUJpbik7CiAKQEAgLTE2OTIsNyArMTc0MCwxMCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICBn
X3NpZ25hbF9jb25uZWN0KG1fd2Via2l0VmlkZW9TaW5rLCAicmVwYWludC1yZXF1ZXN0ZWQiLCBH
X0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZVJlcGFpbnRDYWxsYmFjayksIHRoaXMpOwogCisK
KyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBtX3ZpZGVvU2lua0JpbiA9IGdzdF9iaW5f
bmV3KCJzaW5rIik7CisKICAgICBHc3RFbGVtZW50KiB2aWRlb1RlZSA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgidGVlIiwgInZpZGVvVGVlIik7CiAgICAgR3N0RWxlbWVudCogcXVldWUgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgMCk7CiAKQEAgLTE3MTAsNiArMTc2MSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkK
ICAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9y
ZXF1ZXN0X3BhZCh2aWRlb1RlZSwgInNyYyVkIikpOwogICAgIEdSZWZQdHI8R3N0UGFkPiBzaW5r
UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLCAic2luayIp
KTsKICAgICBnc3RfcGFkX2xpbmsoc3JjUGFkLmdldCgpLCBzaW5rUGFkLmdldCgpKTsKKyNlbmRp
ZgogCiAgICAgR3N0RWxlbWVudCogYWN0dWFsVmlkZW9TaW5rID0gMDsKICAgICBtX2Zwc1Npbmsg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImZwc2Rpc3BsYXlzaW5rIiwgInNpbmsiKTsKQEAg
LTE3MjgsNyArMTc4MCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVh
dGVHU1RQbGF5QmluKCkKIAogICAgICAgICAgICAgaWYgKGdfb2JqZWN0X2NsYXNzX2ZpbmRfcHJv
cGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKG1fZnBzU2luayksICJ2aWRlby1zaW5rIikpIHsKICAg
ICAgICAgICAgICAgICBnX29iamVjdF9zZXQobV9mcHNTaW5rLCAidmlkZW8tc2luayIsIG1fd2Vi
a2l0VmlkZW9TaW5rLCBOVUxMKTsKKyNpZm5kZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICAgICAg
ICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5rQmluKSwgbV9mcHNTaW5rKTsK
KyNlbmRpZgogICAgICAgICAgICAgICAgIGFjdHVhbFZpZGVvU2luayA9IG1fZnBzU2luazsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1fZnBzU2luayA9IDA7CkBAIC0xNzM3
LDEyICsxNzkxLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVH
U1RQbGF5QmluKCkKICAgICB9CiAKICAgICBpZiAoIW1fZnBzU2luaykgeworI2lmbmRlZiBHU1Rf
QVBJX1ZFUlNJT05fMQogICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKG1fdmlkZW9TaW5rQmlu
KSwgbV93ZWJraXRWaWRlb1NpbmspOworI2VuZGlmCiAgICAgICAgIGFjdHVhbFZpZGVvU2luayA9
IG1fd2Via2l0VmlkZW9TaW5rOwogICAgIH0KIAogICAgIEFTU0VSVChhY3R1YWxWaWRlb1Npbmsp
OwogCisjaWZuZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgLy8gRmFzdGVyIGVsZW1lbnRzIGxp
bmtpbmcuCiAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJzcmMiLCBhY3R1
YWxWaWRlb1NpbmssICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwogCkBAIC0x
NzUyLDEwICsxODA5LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVh
dGVHU1RQbGF5QmluKCkKIAogICAgIC8vIFNldCB0aGUgYmluIGFzIHZpZGVvIHNpbmsgb2YgcGxh
eWJpbi4KICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAidmlkZW8tc2luayIsIG1fdmlkZW9T
aW5rQmluLCBOVUxMKTsKKyNlbHNlCisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVv
LXNpbmsiLCBhY3R1YWxWaWRlb1NpbmssIE5VTEwpOworI2VuZGlmCiAKLSAgICBwYWQgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQobV93ZWJraXRWaWRlb1NpbmssICJzaW5r
IikpOwotICAgIGlmIChwYWQpCi0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocGFkLmdldCgpLCAi
bm90aWZ5OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1NpbmtDYXBz
Q2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgR1JlZlB0cjxHc3RQYWQ+IHZpZGVvU2lua1Bh
ZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2lu
aywgInNpbmsiKSk7CisgICAgaWYgKHZpZGVvU2lua1BhZCkKKyAgICAgICAgZ19zaWduYWxfY29u
bmVjdCh2aWRlb1NpbmtQYWQuZ2V0KCksICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKIAogfQog
Ci0tIAoxLjcuOS4x
</data>
<flag name="commit-queue"
          id="131603"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>