<?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>99037</bug_id>
          
          <creation_ts>2012-10-11 06:06:51 -0700</creation_ts>
          <short_desc>[GStreamer] No CORS support for media elements</short_desc>
          <delta_ts>2014-04-13 02:34:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>Gtk, LayoutTestFailure</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>131516</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>agomez</cc>
    
    <cc>bunhere</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jinwoo7.song</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739875</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-10-11 06:06:51 -0700</bug_when>
    <thetext>There is currently no support for media elements in non-Chromium ports. This bug covers adding this for the GTK port.
Covered by http/tests/security/video-cross-origin-readback.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991594</commentid>
    <comment_count>1</comment_count>
      <attachid>227027</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 04:06:59 -0700</bug_when>
    <thetext>Created attachment 227027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991597</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 04:08:19 -0700</bug_when>
    <thetext>Attachment 227027 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:40:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1026:  Use 0 instead of NULL.  [readability/null] [5]
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>991603</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-03-18 04:23:12 -0700</bug_when>
    <thetext>Nice patch! Is the test also failing on EFL? I suppose it can also be unskipped for that port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991610</commentid>
    <comment_count>4</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-18 04:45:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Nice patch! Is the test also failing on EFL? I suppose it can also be unskipped for that port.

Yes, EFL port may unskip the test case with this patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991613</commentid>
    <comment_count>5</comment_count>
      <attachid>227027</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-03-18 04:53:58 -0700</bug_when>
    <thetext>Comment on attachment 227027
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:456
&gt; +    priv-&gt;passedCORSChecks = FALSE;

Should be false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991628</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 06:00:04 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Nice patch! Is the test also failing on EFL? I suppose it can also be unskipped for that port.
&gt; 
&gt; Yes, EFL port may unskip the test case with this patch!

I will unskip it and test EFL accordingly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991633</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 06:09:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Nice patch! Is the test also failing on EFL? I suppose it can also be unskipped for that port.
&gt; &gt; 
&gt; &gt; Yes, EFL port may unskip the test case with this patch!
&gt; 
&gt; I will unskip it and test EFL accordingly

(In reply to comment #5)
&gt; (From update of attachment 227027 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227027&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:456
&gt; &gt; +    priv-&gt;passedCORSChecks = FALSE;
&gt; 
&gt; Should be false?

I do not precisely know the expected coding rule.
passedCORSChecks is currently defined as a gboolean, hence FALSE.
But bool/false is fine by me if that is the preferred way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991637</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-03-18 06:33:11 -0700</bug_when>
    <thetext>We indeed usually prefer non-GLib types wherever possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991641</commentid>
    <comment_count>9</comment_count>
      <attachid>227027</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-03-18 06:44:40 -0700</bug_when>
    <thetext>Comment on attachment 227027
Patch

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

Nice fix. Some style nits:

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:62
&gt; +        void handleResponseReceived(const ResourceResponse&amp;, bool);

You should use an enum for this parameter.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:140
&gt; +    gboolean passedCORSChecks;

bool is the right type here.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1020
&gt; +    RequestOriginPolicy corsPolicy = (corsMode != MediaPlayerClient::Unspecified) ? PotentiallyCrossOriginEnabled : UseDefaultOriginRestrictionsForType;
&gt; +    StoredCredentials allowCredentials = (corsMode == MediaPlayerClient::UseCredentials) ? AllowStoredCredentials : DoNotAllowStoredCredentials;

Nit: the parenthesis are unnecessary here.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1026
&gt; +        m_origin = resourceLoader-&gt;document() ? resourceLoader-&gt;document()-&gt;securityOrigin() : NULL;

You should use nullptr instead of NULL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991651</commentid>
    <comment_count>10</comment_count>
      <attachid>227027</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-18 07:22:54 -0700</bug_when>
    <thetext>Comment on attachment 227027
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1230
&gt; +Document* MediaPlayer::document()
&gt; +{
&gt; +    if (!m_mediaPlayerClient)
&gt; +        return 0;
&gt; +
&gt; +    return m_mediaPlayerClient-&gt;mediaPlayerOwningDocument();
&gt; +}

This is a layering violation, but it doesn&apos;t look like it is used. Why is this necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991653</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 07:28:14 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 227027 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227027&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1230
&gt; &gt; +Document* MediaPlayer::document()
&gt; &gt; +{
&gt; &gt; +    if (!m_mediaPlayerClient)
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; &gt; +    return m_mediaPlayerClient-&gt;mediaPlayerOwningDocument();
&gt; &gt; +}
&gt; 
&gt; This is a layering violation, but it doesn&apos;t look like it is used. Why is this necessary?

The goal is to get the SecurityOrigin and check CORS against it.
Would it be better to add a SecurityOrigin getter instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991655</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 07:30:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 227027 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227027&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1230
&gt; &gt; &gt; +Document* MediaPlayer::document()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    if (!m_mediaPlayerClient)
&gt; &gt; &gt; +        return 0;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    return m_mediaPlayerClient-&gt;mediaPlayerOwningDocument();
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; This is a layering violation, but it doesn&apos;t look like it is used. Why is this necessary?
&gt; 
&gt; The goal is to get the SecurityOrigin and check CORS against it.
&gt; Would it be better to add a SecurityOrigin getter instead?

Woups, I was too quick...
Right, this function is no longer used.
The security origin is retrieved from CachedResourceLoader-&gt;document().
I will remove this function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991669</commentid>
    <comment_count>13</comment_count>
      <attachid>227051</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 08:14:23 -0700</bug_when>
    <thetext>Created attachment 227051
Patch

Fixed style issues, removed MediaPlayer::document(), Updated EFL TestExpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992448</commentid>
    <comment_count>14</comment_count>
      <attachid>227274</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-20 02:05:22 -0700</bug_when>
    <thetext>Created attachment 227274
Disable access to CORS failing streams when crossOrigin attribute is set</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992450</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-20 02:17:46 -0700</bug_when>
    <thetext>Last uploaded patch ensures that a stream that fails COR check is not played at all when crossOrigin attribute is set.
This is consistent with other loaders.

It seems to me though that these checks should best be handled at ResourceLoader level in the future.
That would allow to put in common all these CORS checks that already appear at various places in WebKit. 
That would simplify future support of CORS in other places, like in the Mac counterpart of GStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992457</commentid>
    <comment_count>16</comment_count>
      <attachid>227274</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-03-20 02:55:28 -0700</bug_when>
    <thetext>Comment on attachment 227274
Disable access to CORS failing streams when crossOrigin attribute is set

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:843
&gt; +            GST_ELEMENT_ERROR(src, RESOURCE, READ, (&quot;%s&quot;, &quot;Cross-origin stream load denied by Cross-Origin Resource Sharing policy.&quot;), (0));
&gt; +        else
&gt; +            GST_ELEMENT_ERROR(src, RESOURCE, READ, (&quot;Received %d HTTP error code&quot;, response.httpStatusCode()), (0));

(0) -&gt; (nullptr)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992477</commentid>
    <comment_count>17</comment_count>
      <attachid>227281</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-20 04:12:19 -0700</bug_when>
    <thetext>Created attachment 227281
fixed nullptr style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999156</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-09 06:49:27 -0700</bug_when>
    <thetext>Is there any other improvement I should bring to the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999175</commentid>
    <comment_count>19</comment_count>
      <attachid>227281</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-04-09 07:43:59 -0700</bug_when>
    <thetext>Comment on attachment 227281
fixed nullptr style issue

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

Again my informal review: I have only some nits in the changelogs that you can fix when just before landing. Anyway as I am not reviewer, somebody should do a proper one and r+.

&gt; Source/WebCore/ChangeLog:27
&gt; +        Related test is http/tests/security/video-cross-origin-readback.html
&gt; +        Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
&gt; +        Related test is http/tests/security/video-cross-origin-accessfailure.html
&gt; +
&gt; +        Tests: http/tests/security/video-cross-origin-accessfailure.html
&gt; +               http/tests/security/video-cross-origin-accesssameorigin.html
&gt; +
&gt; +        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
&gt; +        (WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer
&gt; +        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration
&gt; +        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
&gt; +        (webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading
&gt; +        (webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
&gt; +        (StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result
&gt; +        (CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode
&gt; +        (CachedResourceStreamingClient::responseReceived): Check CORS
&gt; +        (ResourceHandleStreamingClient::didReceiveResponse): No CORS check
&gt; +        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration

Nit: at the end of some sentences there is a missing &quot;.&quot;. I say it because of coherence.

&gt; LayoutTests/ChangeLog:17
&gt; +        * platform/efl/TestExpectations: Enabled http/tests/security/video-cross-origin-readback.html

Nit: Missing .

&gt; LayoutTests/ChangeLog:18
&gt; +        * platform/gtk/TestExpectations: ditto

Nit: &quot;Ditto.&quot;

&gt; LayoutTests/ChangeLog:19
&gt; +        * platform/mac/TestExpectations: Disabled http/tests/security/video-cross-origin-accessfailure.html

Nit: Missing .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999178</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-09 07:50:54 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 227281 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227281&amp;action=review
&gt; 
&gt; Again my informal review: I have only some nits in the changelogs that you can fix when just before landing. Anyway as I am not reviewer, somebody should do a proper one and r+.


Thanks for the review.
I will update the patch accordingly, then set r? and cq?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999195</commentid>
    <comment_count>21</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-04-09 08:56:47 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Thanks for the review.
&gt; I will update the patch accordingly, then set r? and cq?.

Eric, Martin or Phil, who had commented on this, could do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999440</commentid>
    <comment_count>22</comment_count>
      <attachid>227281</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-09 23:28:05 -0700</bug_when>
    <thetext>Comment on attachment 227281
fixed nullptr style issue

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

Looks quite good, thanks! We just need a final iteration I think :)

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:841
&gt; +            GST_ELEMENT_ERROR(src, RESOURCE, READ, (&quot;%s&quot;, &quot;Cross-origin stream load denied by Cross-Origin Resource Sharing policy.&quot;), (nullptr));

What is the %s for there?

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1040
&gt; +    // FIXME: In case of PotentiallyCrossOriginEnabled policy, preflight mode should sometimes be used (not simple request headers).
&gt; +    // But CachedResourceLoader does not support it. Use DocumentThreadableLoader instead?

Can you please file a new bug for this and mention it in the comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999474</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-10 01:26:48 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 227281 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227281&amp;action=review
&gt; 
&gt; Looks quite good, thanks! We just need a final iteration I think :)
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:841
&gt; &gt; +            GST_ELEMENT_ERROR(src, RESOURCE, READ, (&quot;%s&quot;, &quot;Cross-origin stream load denied by Cross-Origin Resource Sharing policy.&quot;), (nullptr));
&gt; 
&gt; What is the %s for there?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1040
&gt; &gt; +    // FIXME: In case of PotentiallyCrossOriginEnabled policy, preflight mode should sometimes be used (not simple request headers).
&gt; &gt; +    // But CachedResourceLoader does not support it. Use DocumentThreadableLoader instead?
&gt; 
&gt; Can you please file a new bug for this and mention it in the comment?

I filed bug 131484.
Checking what others are doing, Blink decided to not use preflight (https://code.google.com/p/chromium/issues/detail?id=173727), which seems to make sense.
I have not found information for Mozilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999522</commentid>
    <comment_count>24</comment_count>
      <attachid>229048</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-10 07:23:12 -0700</bug_when>
    <thetext>Created attachment 229048
Updating after second reviews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999538</commentid>
    <comment_count>25</comment_count>
      <attachid>229048</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-10 08:46:36 -0700</bug_when>
    <thetext>Comment on attachment 229048
Updating after second reviews

Clearing flags on attachment: 229048

Committed r167073: &lt;http://trac.webkit.org/changeset/167073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999539</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-10 08:46:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999707</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-10 17:26:06 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 131516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999730</commentid>
    <comment_count>28</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-10 18:02:46 -0700</bug_when>
    <thetext>Tests that crashed (5): flag all

+media/video-canvas-drawing.html
+media/video-canvas-drawing-output.html
+media/W3C/audio/paused/paused_false_during_play.html
+media/video-canvas-source.html
+media/video-canvas-alpha.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999813</commentid>
    <comment_count>29</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-11 00:06:13 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Tests that crashed (5): flag all
&gt; 
&gt; +media/video-canvas-drawing.html
&gt; +media/video-canvas-drawing-output.html
&gt; +media/W3C/audio/paused/paused_false_during_play.html
&gt; +media/video-canvas-source.html
&gt; +media/video-canvas-alpha.html

Thanks for unrolling the patch.

For those 5 tests, WebKitWebSrc-&gt;priv is null when calling webKitSrcPassedCORSAccessCheck, leading to the crashes.
When running equivalent tests served through http, everything is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999862</commentid>
    <comment_count>30</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-11 05:44:50 -0700</bug_when>
    <thetext>Will you provide an updated patch Youenn?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999866</commentid>
    <comment_count>31</comment_count>
      <attachid>229130</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-11 06:04:38 -0700</bug_when>
    <thetext>Created attachment 229130
Fixing crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999867</commentid>
    <comment_count>32</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-11 06:07:48 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Will you provide an updated patch Youenn?

Patch is uploaded, which fixes MediaPlayerPrivateGStreamer::didPassCORSAccessCheck().
It is working fine with EFL-WK1 but I have a problem with my set-up and cannot test it right now for GTK-WK2.
Once double checked, I will put it on review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999869</commentid>
    <comment_count>33</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-11 06:15:17 -0700</bug_when>
    <thetext>Awesome thank for the follow-up :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000261</commentid>
    <comment_count>34</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-13 00:15:17 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Created an attachment (id=229130) [details]
&gt; Fixing crashes

The identified crashes are gone with the latest patch on GTK-WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000264</commentid>
    <comment_count>35</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2014-04-13 00:29:48 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #31)
&gt; &gt; Created an attachment (id=229130) [details] [details]
&gt; &gt; Fixing crashes
&gt; 
&gt; The identified crashes are gone with the latest patch on GTK-WK2.

Probably bug 131488.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000278</commentid>
    <comment_count>36</comment_count>
      <attachid>229130</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-13 02:33:57 -0700</bug_when>
    <thetext>Comment on attachment 229130
Fixing crashes

Clearing flags on attachment: 229130

Committed r167193: &lt;http://trac.webkit.org/changeset/167193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000279</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-13 02:34:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227027</attachid>
            <date>2014-03-18 04:06:59 -0700</date>
            <delta_ts>2014-03-18 08:14:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99037-20140318120635.patch</filename>
            <type>text/plain</type>
            <size>14045</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNjg1MDU3YjE3ZmMw
NmY1MzNjNTY2MDhlMzdhYTA1MzhhZDEzNS4uNDkyMzA1MDIxNDkwYzAzNmQxYjQwMzljOTIwZDcw
MDA3MzU5NzBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dUS10g
Tm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9sIGNoZWNr
IHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0LgorICAg
ICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmln
aW4tcmVhZGJhY2suaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmRvY3VtZW50KTogQWRkZWQg
ZG9jdW1lbnQoKSBtZXRob2QgdG8gcmV0cmlldmUgdGhlIFNlY3VyaXR5T3JpZ2luIGZyb20gR1N0
cmVhbWVyIGxheWVyCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDog
ZGl0dG8KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjayk6IFJldHVybiB3aGV0aGVyIG1lZGlh
IGlzIGNyb3NzLW9yaWdpbiAodGFpbnRlZCkgb3Igbm90IGJ5IHF1ZXJ5aW5nIHRoZSBnc3RyZWFt
ZXIgc291cmNlIGxheWVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDogZGl0dG8KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KHdlYktpdFdlYlNyY1N0YXJ0KTogQWRkZWQgY29yc01vZGUgcGFyYW1ldGVyIHRvIHRoZSBzdHJl
YW1pbmcgY2xpZW50LgorICAgICAgICAod2ViS2l0U3JjUGFzc2VkQ09SU0NoZWNrcyk6IFJldHVy
biB3aGV0aGVyIENPUlMgYWNjZXNzIGNoZWNrcyB3ZXJlIGRvbmUgYW5kIHBhc3NlZC4gCisgICAg
ICAgIChTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQpOiBBZGRlZCBhIGJv
b2xlYW4gdGhhdCB0ZWxscyB3aGV0aGVyIENPUlMgYWNjZXNzIGNvbnRyb2wgaXMgc3VjY2VzZnVs
bAorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50KTogVXBkYXRlZCB0aGUgUmVzb3VyY2VMb2FkZXJPcHRpb25zIGFjY29y
ZGluZyBjb3JzTW9kZQorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJl
c3BvbnNlUmVjZWl2ZWQpOiBDaGVjayBDT1JTCisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogTm8gQ09SUyBjaGVjaworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaDoK
KwogMjAxNC0wMy0xNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbiBIVE1MVHJlZUJ1aWxkZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA1
MTE2ZWQ4NWNmMWQ4OTE3ZWQ2MWM1MGZjM2ViNTg3ZDRlY2Y5NGU4Li40NDIzZTk4NzQ1OGE2MmY5
ZmE3ZWUyNmI2NjJkMTI2ODU2MDhiZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMjIxLDYgKzEyMjEsMTQgQEAgR3JhcGhp
Y3NEZXZpY2VBZGFwdGVyKiBNZWRpYVBsYXllcjo6Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29u
c3QKIH0KICNlbmRpZgogCitEb2N1bWVudCogTWVkaWFQbGF5ZXI6OmRvY3VtZW50KCkKK3sKKyAg
ICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0
dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyT3duaW5nRG9jdW1lbnQoKTsKK30K
KwogQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIE1lZGlhUGxheWVyOjpjYWNoZWRSZXNvdXJjZUxvYWRl
cigpCiB7CiAgICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOWYzYjc4YjQ3ZDUwOGUzNzk4
NmY1N2UyMDQzMjA2MGE3MDZiMTljOS4uMTIwNDYwYjJmNDRhYWI2YWM5ZTI2ODAwMWQxZWMyMWJm
YWNhNmE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC01MjksNiArNTI5LDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVhZHlGb3JQbGF5
YmFjaygpIGNvbnN0OwogI2VuZGlmCiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKICAgICBD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggNDRiZWEzMmViZmJmNjRkOGNmY2I0OThiMTk3NGQ0MmRlYTdjMzQ2Ni4u
M2ViNjFmN2Q0NTA3ODk1MDZiYTg3YmNkMWJlNDExZTczMWEzNjA0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE4OTksNiArMTg5OSwx
MyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2ltdWxhdGVBdWRpb0ludGVy
cnVwdGlvbigpCiAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKG1fcGxheUJpbi5nZXQoKSwg
bWVzc2FnZSk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRQYXNz
Q09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICBpZiAobV9zb3VyY2UpCisgICAgICAgIHJl
dHVybiB3ZWJLaXRTcmNQYXNzZWRDT1JTQ2hlY2tzKFdFQktJVF9XRUJfU1JDKG1fc291cmNlLmdl
dCgpKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoR1NUUkVB
TUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IGEzNzBkYTM0ZWRiZGE3M2ZlYWZhOTJjNTg1YzdkNGFkNmRiZTNmMGMuLjA5YTA2YjQ4Y2IwMDFm
MTcwODMzZjZkYTVjOTdiOTk4NjVmOGJmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiAiR1N0cmVh
bWVyIjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBt
X2lzU3RyZWFtaW5nOyB9CisgICAgdmlydHVhbCBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2so
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fcGxheUJpbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggOGNiOGE0
ZDdlMzQ4MDdhOGFhZDc0YzcxMGNmZTExZGQ4NDVlMTY4MC4uZjFlYzFiOGE1NWI0MDk5YTEwN2Vk
YmJjYWUwY2RhODdiZjZhNDEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCkBAIC0zNiw2ICszNyw3IEBACiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAj
aW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+CkBAIC01Nyw3ICs1OSw3IEBA
IGNsYXNzIFN0cmVhbWluZ0NsaWVudCB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNoYXIq
IGNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6
ZSk7Ci0gICAgICAgIHZvaWQgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisgICAgICAgIHZvaWQgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgYm9vbCk7CiAgICAgICAgIHZvaWQgaGFuZGxlRGF0YVJlY2VpdmVkKGNv
bnN0IGNoYXIqLCBpbnQpOwogICAgICAgICB2b2lkIGhhbmRsZU5vdGlmeUZpbmlzaGVkKCk7CiAK
QEAgLTY3LDcgKzY5LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIGNsYXNzIENhY2hlZFJl
c291cmNlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LCBw
dWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYWNoZWRS
ZXNvdXJjZVN0cmVhbWluZ0NsaWVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1
YmxpYzoKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3Jj
KiwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiwgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBNZWRpYVBsYXllckNsaWVudDo6
Q09SU01vZGUpOwogICAgICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dCgpOwogCiAgICAgICAgIC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1ldGhvZHMuCkBAIC04
Miw2ICs4NCw3IEBAIGNsYXNzIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50IDogcHVibGlj
IENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LCBwdWJsaWMgU3RyCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworICAgICAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwogfTsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW1p
bmdDbGllbnQgewpAQCAtMTM0LDYgKzEzNyw4IEBAIHN0cnVjdCBfV2ViS2l0V2ViU3JjUHJpdmF0
ZSB7CiAKICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gYnVmZmVyOwogCisgICAgZ2Jvb2xlYW4gcGFz
c2VkQ09SU0NoZWNrczsKKwogICAgIC8vIGljZWNhc3Qgc3R1ZmYKICAgICBnY2hhciogaXJhZGlv
TmFtZTsKICAgICBnY2hhciogaXJhZGlvR2VucmU7CkBAIC00NDgsNiArNDUzLDcgQEAgc3RhdGlj
IGdib29sZWFuIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogCiAgICAgR011
dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogCisgICAgcHJpdi0+
cGFzc2VkQ09SU0NoZWNrcyA9IEZBTFNFOwogICAgIHByaXYtPnN0YXJ0SUQgPSAwOwogCiAgICAg
aWYgKCFwcml2LT51cmkpIHsKQEAgLTQ5Niw3ICs1MDIsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
S2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAKICAgICBpZiAocHJpdi0+cGxheWVy
KSB7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxh
eWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKQotICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0g
bmV3IENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0KTsK
KyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0Ns
aWVudChzcmMsIGxvYWRlciwgcmVxdWVzdCwgcHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVu
dCgpLT5tZWRpYVBsYXllckNPUlNNb2RlKCkpOwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xp
ZW50KQpAQCAtNzgzLDYgKzc4OSwxMSBAQCB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVy
KFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyKQogICAgIHNy
Yy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwogfQogCitib29sIHdlYktpdFNyY1Bhc3NlZENPUlND
aGVja3MoV2ViS2l0V2ViU3JjKiBzcmMpCit7CisgICAgcmV0dXJuIHNyYy0+cHJpdi0+cGFzc2Vk
Q09SU0NoZWNrczsKK30KKwogU3RyZWFtaW5nQ2xpZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0
V2ViU3JjKiBzcmMpCiAgICAgOiBtX3NyYyhhZG9wdEdSZWYoc3RhdGljX2Nhc3Q8R3N0RWxlbWVu
dCo+KGdzdF9vYmplY3RfcmVmKHNyYykpKSkKIHsKQEAgLTgxMSw3ICs4MjIsNyBAQCBjaGFyKiBT
dHJlYW1pbmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNp
emVfdCYgYWN0dWFsU2l6ZQogICAgIHJldHVybiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihidWZm
ZXIpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50Ojpo
YW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBi
b29sIHBhc3NlZENPUlNDaGVjaykKIHsKICAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9X
RUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3Jj
LT5wcml2OwpAQCAtODI4LDYgKzgzOSw4IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVS
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogCiAgICAg
R011dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogCisgICAgcHJp
di0+cGFzc2VkQ09SU0NoZWNrcyA9IHBhc3NlZENPUlNDaGVjazsKKwogICAgIGlmIChwcml2LT5z
ZWVrSUQpIHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTZWVrIGluIHByb2dyZXNz
LCBpZ25vcmluZyByZXNwb25zZSIpOwogICAgICAgICByZXR1cm47CkBAIC05OTksMTEgKzEwMTIs
MjMgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKICAgICB9
CiB9CiAKLUNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpDYWNoZWRSZXNvdXJjZVN0cmVh
bWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIHJlc291
cmNlTG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJj
ZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2Vi
U3JjKiBzcmMsIENhY2hlZFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBNZWRpYVBsYXllckNsaWVudDo6Q09SU01vZGUgY29yc01v
ZGUpCiAgICAgOiBTdHJlYW1pbmdDbGllbnQoc3JjKQogewogICAgIERhdGFCdWZmZXJpbmdQb2xp
Y3kgYnVmZmVyaW5nUG9saWN5ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJibG9iIikgPyBC
dWZmZXJEYXRhIDogRG9Ob3RCdWZmZXJEYXRhOwotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBj
YWNoZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3Ms
IERvTm90U25pZmZDb250ZW50LCBidWZmZXJpbmdQb2xpY3ksIERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3Vy
aXR5Q2hlY2ssIFVzZURlZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlKSk7CisgICAgUmVx
dWVzdE9yaWdpblBvbGljeSBjb3JzUG9saWN5ID0gKGNvcnNNb2RlICE9IE1lZGlhUGxheWVyQ2xp
ZW50OjpVbnNwZWNpZmllZCkgPyBQb3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCA6IFVzZURl
ZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlOworICAgIFN0b3JlZENyZWRlbnRpYWxzIGFs
bG93Q3JlZGVudGlhbHMgPSAoY29yc01vZGUgPT0gTWVkaWFQbGF5ZXJDbGllbnQ6OlVzZUNyZWRl
bnRpYWxzKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMoU2VuZENhbGxiYWNrcywg
RG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgYWxsb3dDcmVkZW50aWFscywgRG9O
b3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2ssIGNv
cnNQb2xpY3kpOworCisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlUmVxdWVzdChyZXF1
ZXN0LCBvcHRpb25zKTsKKworICAgIGlmIChjb3JzTW9kZSAhPSBNZWRpYVBsYXllckNsaWVudDo6
VW5zcGVjaWZpZWQpIHsKKyAgICAgICAgbV9vcmlnaW4gPSByZXNvdXJjZUxvYWRlci0+ZG9jdW1l
bnQoKSA/IHJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpIDogTlVM
TDsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woY2FjaGVSZXF1ZXN0Lm11
dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmlnaW4uZ2V0KCksIGFsbG93Q3JlZGVudGlhbHMp
OworICAgIH0KKworICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9mIFBvdGVudGlhbGx5Q3Jvc3NPcmln
aW5FbmFibGVkIHBvbGljeSwgcHJlZmxpZ2h0IG1vZGUgc2hvdWxkIHNvbWV0aW1lcyBiZSB1c2Vk
IChub3Qgc2ltcGxlIHJlcXVlc3QgaGVhZGVycykuCisgICAgLy8gQnV0IENhY2hlZFJlc291cmNl
TG9hZGVyIGRvZXMgbm90IHN1cHBvcnQgaXQuIFVzZSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIg
aW5zdGVhZD8KICAgICBtX3Jlc291cmNlID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3RSYXdSZXNv
dXJjZShjYWNoZVJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICBtX3Jlc291
cmNlLT5hZGRDbGllbnQodGhpcyk7CkBAIC0xMDMzLDkgKzEwNTgsMTAgQEAgY2hhciogQ2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNv
dXJjZSosIHNpemUKICAgICByZXR1cm4gY3JlYXRlUmVhZEJ1ZmZlcihyZXF1ZXN0ZWRTaXplLCBh
Y3R1YWxTaXplKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQordm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewotICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOworICAgIGJv
b2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjayA9IG1fb3JpZ2luID8gcmVzb3VyY2UtPnBhc3Nlc0Fj
Y2Vzc0NvbnRyb2xDaGVjayhtX29yaWdpbi5nZXQoKSkgOiBGQUxTRTsKKyAgICBoYW5kbGVSZXNw
b25zZVJlY2VpdmVkKHJlc3BvbnNlLCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKTsKIH0KIAogdm9p
ZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKQEAgLTEwOTcsNyArMTEyMyw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OndpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUhhbmRsZSosIFJlc291cmNlUmVxCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdD
bGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9u
c2UpOworICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UsIEZBTFNFKTsKIH0KIAog
dm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiAvKiBkYXRhICovLCB1bnNpZ25lZCAvKiBsZW5ndGggKi8s
IGludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaAppbmRleCA5ZWQ5
NWNmYWQzM2IxNGUzZWE2YTIxYWNkYzAyMTQ1ZjY1M2NmM2NhLi42Zjc4NDQ1OGViM2U0NzJiNTNl
MDU2ZDM0YmJlYzA1ZDg1MDU3ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViU3JjQ2xhc3Mgewog
CiBHVHlwZSB3ZWJraXRfd2ViX3NyY19nZXRfdHlwZSh2b2lkKTsKIHZvaWQgd2ViS2l0V2ViU3Jj
U2V0TWVkaWFQbGF5ZXIoV2ViS2l0V2ViU3JjKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqKTsKK2Jv
b2wgd2ViS2l0U3JjUGFzc2VkQ09SU0NoZWNrcyhXZWJLaXRXZWJTcmMqKTsKIAogR19FTkRfREVD
TFMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDg4ODEzMDA3NmZhZDkzZTQyOTMwZWU4NWJlZTRlNTQ0ODYwMTk4YTIuLmI0
NmM5MzM2ZTU5Y2E2YzA3NDk0NTAzY2U1NzU1Njc4YzVjY2Q3MmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNC0wMy0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9u
LmZyPgorCisgICAgICAgIFtHVEtdIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlZCBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVv
LWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCisKIDIwMTQtMDMtMTYgIE1paG5lYSBPdmlkZW5p
ZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdRG8gbm90IGNvbXB1
dGUgcmVnaW9uIHJhbmdlIGZvciBhIGJveCB1bmxlc3MgdGhlIHBhcmVudCBoYXMgb25lCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyZTA0OWJiNzFlZGY0
Y2FhNGUyOTg0OGZhNTlkNDQ5NTQ0NTZiZGEuLmViYmQzMmI2MmQwYzYzNmE5ZjI5ZWZiYmVjNzE5
OTFiZjExMTBhNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CkBAIC0zMDQsOSArMzA0LDYgQEAgd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvZXZlbnRzL2NvbnN0
cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAogd2Via2l0Lm9yZy9i
Lzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9kZXN0aW5hdGlvbm5vZGUuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vu
b2RlLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRz
IGlzIGltcGxlbWVudGVkIHlldC4KLXdlYmtpdC5vcmcvYi85OTAzNyBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sIFsgRmFpbHVyZSBdCi0KICMgTmV3
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQgLS0gbmVlZCBpc29sYXRlZCB3b3JsZHMKIHdl
YmtpdC5vcmcvYi8zMTUwOCBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8zMTUwOCBwbHVnaW5zL25wcnVudGltZS9vdmVycmlkZXMtYWxsLXBy
b3BlcnRpZXMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227051</attachid>
            <date>2014-03-18 08:14:23 -0700</date>
            <delta_ts>2014-03-20 02:05:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99037-20140318161359.patch</filename>
            <type>text/plain</type>
            <size>13984</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNjg1MDU3YjE3ZmMw
NmY1MzNjNTY2MDhlMzdhYTA1MzhhZDEzNS4uYTZiMGIzZDYwNGE4NTExNjhjZDIxNmNkMTdkYzNh
MDU3ZDgxMjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAzLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dTdHJl
YW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9s
IGNoZWNrIHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc09yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0
LgorICAgICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2spOiBS
ZXR1cm4gd2hldGhlciBtZWRpYSBpcyBjcm9zcy1vcmlnaW4gKHRhaW50ZWQpIG9yIG5vdCBieSBx
dWVyeWluZyB0aGUgZ3N0cmVhbWVyIHNvdXJjZSBsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDogQWRkZWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrIGRlY2xhcmF0
aW9uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6IFBhc3NlZCBDT1JT
IG1vZGUgcGFyYW1ldGVyIHRvIHRoZSBzdHJlYW1pbmcgY2xpZW50CisgICAgICAgICh3ZWJLaXRT
cmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2spOiBSZXR1cm4gd2hldGhlciBDT1JTIGFjY2VzcyBjb250
cm9sIGNoZWNrIHdhcyBkb25lIGFuZCBzdWNjZXNzZnVsLgorICAgICAgICAoU3RyZWFtaW5nQ2xp
ZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKTogVGFrZSBhIHBhcmFtZXRlciB0byBhc3NpZ24g
dGhlIENPUlMgYWNjZXNzIGNvbnRyb2wgY2hlY2sgcmVzdWx0CisgICAgICAgIChDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOiBVcGRh
dGVkIHNldHRpbmcgb2YgdGhlIFJlc291cmNlTG9hZGVyT3B0aW9ucyBhY2NvcmRpbmcgQ09SUyBt
b2RlCisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNl
aXZlZCk6IENoZWNrIENPUlMKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBObyBDT1JTIGNoZWNrCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oOiBBZGRlZCB3ZWJL
aXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2sgZGVjbGFyYXRpb24KKwogMjAxNC0wMy0xNyAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBkZXByZWNh
dGVkQ2hhcmFjdGVycyBpbiBIVE1MVHJlZUJ1aWxkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNDRiZWEzMmViZmJmNjRkOGNmY2I0OThi
MTk3NGQ0MmRlYTdjMzQ2Ni4uYzNhMmJmNmNhMGIyYjEwNDdiNmE5MjNmNTk2MzkyYTgwMmI1NzUw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTE4OTksNiArMTg5OSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCiAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdl
KG1fcGxheUJpbi5nZXQoKSwgbWVzc2FnZSk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICBpZiAobV9z
b3VyY2UpCisgICAgICAgIHJldHVybiB3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2soV0VC
S0lUX1dFQl9TUkMobV9zb3VyY2UuZ2V0KCkpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0K
IAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYTM3MGRhMzRlZGJkYTczZmVhZmE5MmM1ODVjN2Q0YWQ2
ZGJlM2YwYy4uMDlhMDZiNDhjYjAwMWYxNzA4MzNmNmRhNWM5N2I5OTg2NWY4YmZmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTUyLDYgKzE1
Miw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigp
IGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGl2ZVN0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEdSZWZQdHI8
R3N0RWxlbWVudD4gbV9wbGF5QmluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCA4Y2I4YTRkN2UzNDgwN2E4YWFkNzRjNzEwY2ZlMTFkZDg0NWUxNjgw
Li5jZWVkZGQ4YTRlODNjYzhiZjNhMjRkMWM4YzExNjYwMDBhNzFhYTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgi
CiAjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpA
QCAtNDcsNiArNDksMTIgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2VudW0gQ09S
U0FjY2Vzc0NoZWNrUmVzdWx0IHsKKyAgICBDT1JTTm9DaGVjaywKKyAgICBDT1JTU3VjY2VzcywK
KyAgICBDT1JTRmFpbHVyZQorfTsKKwogY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqKTsKQEAgLTU3LDcgKzY1
LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
Y2hhciogY3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1
YWxTaXplKTsKLSAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQpOwogICAgICAgICB2b2lk
IGhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKICAgICAgICAgdm9pZCBoYW5k
bGVOb3RpZnlGaW5pc2hlZCgpOwogCkBAIC02Nyw3ICs3NSw3IEBAIGNsYXNzIFN0cmVhbWluZ0Ns
aWVudCB7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0cmVhbWluZ0NsaWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoKTsKIAogICAgICAgICAvLyBTdHJlYW1pbmdDbGllbnQg
dmlydHVhbCBtZXRob2RzLgpAQCAtODIsNiArOTAsNyBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0
cgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsK
IAogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNv
dXJjZTsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKIH07CiAKIGNs
YXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxl
Q2xpZW50LCBwdWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKQEAgLTExOSw2ICsxMjgsOCBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgU3RyZWFtaW5nQ2xpZW50KiBjbGllbnQ7
CiAKKyAgICBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrOworCiAgICAgZ3Vp
bnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29sZWFuIHNlZWthYmxlOwpA
QCAtNDQ4LDYgKzQ1OSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTdGFydChXZWJL
aXRXZWJTcmMqIHNyYykKIAogICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRf
TE9DSyhzcmMpKTsKIAorICAgIHByaXYtPmNvcnNBY2Nlc3NDaGVjayA9IENPUlNOb0NoZWNrOwog
ICAgIHByaXYtPnN0YXJ0SUQgPSAwOwogCiAgICAgaWYgKCFwcml2LT51cmkpIHsKQEAgLTQ5Niw3
ICs1MDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3Jj
KiBzcmMpCiAKICAgICBpZiAocHJpdi0+cGxheWVyKSB7CiAgICAgICAgIGlmIChDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxheWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
KQotICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3RyZWFtaW5n
Q2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0KTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9
IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVxdWVzdCwg
cHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNPUlNNb2RlKCkp
OwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xpZW50KQpAQCAtNzgzLDYgKzc5NSwxMSBAQCB2
b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3Jl
OjpNZWRpYVBsYXllciogcGxheWVyKQogICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwog
fQogCitib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqIHNy
YykKK3sKKyAgICByZXR1cm4gc3JjLT5wcml2LT5jb3JzQWNjZXNzQ2hlY2sgPT0gQ09SU1N1Y2Nl
c3M7Cit9CisKIFN0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyog
c3JjKQogICAgIDogbV9zcmMoYWRvcHRHUmVmKHN0YXRpY19jYXN0PEdzdEVsZW1lbnQqPihnc3Rf
b2JqZWN0X3JlZihzcmMpKSkpCiB7CkBAIC04MTEsNyArODI4LDcgQEAgY2hhciogU3RyZWFtaW5n
Q2xpZW50OjpjcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFj
dHVhbFNpemUKICAgICByZXR1cm4gZ2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0K
IAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVz
cG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ09SU0FjY2Vz
c0NoZWNrUmVzdWx0IGNvcnNBY2Nlc3NDaGVjaykKIHsKICAgICBXZWJLaXRXZWJTcmMqIHNyYyA9
IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBw
cml2ID0gc3JjLT5wcml2OwpAQCAtODI4LDYgKzg0NSw4IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50
OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogCiAgICAgR011dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwog
CisgICAgcHJpdi0+Y29yc0FjY2Vzc0NoZWNrID0gY29yc0FjY2Vzc0NoZWNrOworCiAgICAgaWYg
KHByaXYtPnNlZWtJRCkgewogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlNlZWsgaW4g
cHJvZ3Jlc3MsIGlnbm9yaW5nIHJlc3BvbnNlIik7CiAgICAgICAgIHJldHVybjsKQEAgLTk5OSwx
MSArMTAxOCwyMyBAQCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlTm90aWZ5RmluaXNoZWQo
KQogICAgIH0KIH0KIAotQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291
cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyogc3JjLCBDYWNoZWRSZXNvdXJjZUxvYWRl
ciogcmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hl
ZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChX
ZWJLaXRXZWJTcmMqIHNyYywgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE1lZGlhUGxheWVyQ2xpZW50OjpDT1JTTW9k
ZSBjb3JzTW9kZSkKICAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgRGF0YUJ1ZmZl
cmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3kgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImJs
b2IiKSA/IEJ1ZmZlckRhdGEgOiBEb05vdEJ1ZmZlckRhdGE7Ci0gICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IGNhY2hlUmVxdWVzdChyZXF1ZXN0LCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENh
bGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgRG9Ob3RBbGxvd1N0
b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMs
IERvU2VjdXJpdHlDaGVjaywgVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGUpKTsK
KyAgICBSZXF1ZXN0T3JpZ2luUG9saWN5IGNvcnNQb2xpY3kgPSAoY29yc01vZGUgIT0gTWVkaWFQ
bGF5ZXJDbGllbnQ6OlVuc3BlY2lmaWVkKSA/IFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVk
IDogVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGU7CisgICAgU3RvcmVkQ3JlZGVu
dGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGNvcnNNb2RlID09IE1lZGlhUGxheWVyQ2xpZW50OjpV
c2VDcmVkZW50aWFscyA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVk
Q3JlZGVudGlhbHM7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMoU2VuZENhbGxi
YWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgYWxsb3dDcmVkZW50aWFs
cywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hl
Y2ssIGNvcnNQb2xpY3kpOworCisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlUmVxdWVz
dChyZXF1ZXN0LCBvcHRpb25zKTsKKworICAgIGlmIChjb3JzTW9kZSAhPSBNZWRpYVBsYXllckNs
aWVudDo6VW5zcGVjaWZpZWQpIHsKKyAgICAgICAgbV9vcmlnaW4gPSByZXNvdXJjZUxvYWRlci0+
ZG9jdW1lbnQoKSA/IHJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
IDogbnVsbHB0cjsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woY2FjaGVS
ZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmlnaW4uZ2V0KCksIGFsbG93Q3Jl
ZGVudGlhbHMpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9mIFBvdGVudGlhbGx5
Q3Jvc3NPcmlnaW5FbmFibGVkIHBvbGljeSwgcHJlZmxpZ2h0IG1vZGUgc2hvdWxkIHNvbWV0aW1l
cyBiZSB1c2VkIChub3Qgc2ltcGxlIHJlcXVlc3QgaGVhZGVycykuCisgICAgLy8gQnV0IENhY2hl
ZFJlc291cmNlTG9hZGVyIGRvZXMgbm90IHN1cHBvcnQgaXQuIFVzZSBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIgaW5zdGVhZD8KICAgICBtX3Jlc291cmNlID0gcmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RSYXdSZXNvdXJjZShjYWNoZVJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAg
ICBtX3Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CkBAIC0xMDMzLDkgKzEwNjQsMTIgQEAgY2hh
ciogQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihD
YWNoZWRSZXNvdXJjZSosIHNpemUKICAgICByZXR1cm4gY3JlYXRlUmVhZEJ1ZmZlcihyZXF1ZXN0
ZWRTaXplLCBhY3R1YWxTaXplKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0Ns
aWVudDo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQordm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogewotICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2Up
OworICAgIENPUlNBY2Nlc3NDaGVja1Jlc3VsdCBjb3JzQWNjZXNzQ2hlY2sgPSBDT1JTTm9DaGVj
azsKKyAgICBpZiAobV9vcmlnaW4pCisgICAgICAgIGNvcnNBY2Nlc3NDaGVjayA9IHJlc291cmNl
LT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2sobV9vcmlnaW4uZ2V0KCkpID8gQ09SU1N1Y2Nlc3Mg
OiBDT1JTRmFpbHVyZTsKKyAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBjb3Jz
QWNjZXNzQ2hlY2spOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpk
YXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
KQpAQCAtMTA5Nyw3ICsxMTMxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dDo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXEKIAogdm9pZCBS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgaGFuZGxl
UmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CisgICAgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChy
ZXNwb25zZSwgQ09SU05vQ2hlY2spOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIC8qIGRh
dGEgKi8sIHVuc2lnbmVkIC8qIGxlbmd0aCAqLywgaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5oCmluZGV4IDllZDk1Y2ZhZDMzYjE0ZTNlYTZhMjFhY2RjMDIxNDVm
NjUzY2YzY2EuLjdlYmE5Y2JhYmM3OGFmNGZkOWQxMzIzMmYxMmFmZGM1MmNjZGQ2NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAg
c3RydWN0IF9XZWJLaXRXZWJTcmNDbGFzcyB7CiAKIEdUeXBlIHdlYmtpdF93ZWJfc3JjX2dldF90
eXBlKHZvaWQpOwogdm9pZCB3ZWJLaXRXZWJTcmNTZXRNZWRpYVBsYXllcihXZWJLaXRXZWJTcmMq
LCBXZWJDb3JlOjpNZWRpYVBsYXllciopOworYm9vbCB3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNz
Q2hlY2soV2ViS2l0V2ViU3JjKik7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ODgxMzAwNzZm
YWQ5M2U0MjkzMGVlODViZWU0ZTU0NDg2MDE5OGEyLi5jODg0N2RjN2Y3MjA4ZjJmNzcwNTc5ODli
ZjE3NGI4OTI5YTI3NzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDMtMTggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbR1N0cmVh
bWVyXSBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTAzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnM6IEVuYWJsZWQgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVh
ZGJhY2suaHRtbAorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBkaXR0
bworCiAyMDE0LTAzLTE2ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAg
ICAgICAgIFtDU1NSZWdpb25zXURvIG5vdCBjb21wdXRlIHJlZ2lvbiByYW5nZSBmb3IgYSBib3gg
dW5sZXNzIHRoZSBwYXJlbnQgaGFzIG9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAyY2Y1ZjAxNTg5ZGJiMTA4NjA3YmRjNGExZjNlMmUyYmIwN2MwYWM5
Li5jMTUzNjAwMDE2MjJlMzM5NGM5MzM5ZGQxZjAzYTdiNmQzYzkxYTBhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzAwLDkgKzMwMCw2IEBAIHdlYmtp
dC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBQcmUtSE1UTDUgcGFy
c2VyIHF1aXJrcyBvbmx5IGFwcGx5IHRvIHRoZSBtYWMgcG9ydCBmb3Igbm93LgogZmFzdC9wYXJz
ZXIvcHJlLWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbCBbIFdvbnRGaXggXQogCi0jIE5vIENPUlMg
c3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0LgotQnVnKEVGTCkg
aHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbCBbIEZh
aWx1cmUgXQotCiAjIFBlcmYgdGVzdHMgYXJlIHdheSB0b28gc2xvdyBhbmQgc29tZSBtYXkgZmFp
bCBkdWUgdG8gdGltZW91dC4KIHBlcmYvYWRkaW5nLXJhZGlvLWJ1dHRvbnMuaHRtbCBbIFdvbnRG
aXggXQogcGVyZi9hcnJheS1iaW5hcnktc2VhcmNoLmh0bWwgWyBXb250Rml4IF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjJlMDQ5YmI3MWVkZjRjYWE0
ZTI5ODQ4ZmE1OWQ0NDk1NDQ1NmJkYS4uZWJiZDMyYjYyZDBjNjM2YTlmMjllZmJiZWM3MTk5MWJm
MTExMGE0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTMwNCw5ICszMDQsNiBAQCB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9ldmVudHMvY29uc3RydWN0
b3JzL21lZGlhLXN0cmVhbS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCiB3ZWJraXQub3JnL2IvNzky
MDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb2Rlc3RpbmF0aW9ubm9kZS5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUu
aHRtbCBbIFNraXAgXQogCi0jIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMgaXMg
aW1wbGVtZW50ZWQgeWV0Lgotd2Via2l0Lm9yZy9iLzk5MDM3IGh0dHAvdGVzdHMvc2VjdXJpdHkv
dmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBOZXcgdGVz
dCBpbmZyYXN0cnVjdHVyZSByZXF1aXJlZCAtLSBuZWVkIGlzb2xhdGVkIHdvcmxkcwogd2Via2l0
Lm9yZy9iLzMxNTA4IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzMxNTA4IHBsdWdpbnMvbnBydW50aW1lL292ZXJyaWRlcy1hbGwtcHJvcGVy
dGllcy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227274</attachid>
            <date>2014-03-20 02:05:22 -0700</date>
            <delta_ts>2014-03-20 04:12:06 -0700</delta_ts>
            <desc>Disable access to CORS failing streams when crossOrigin attribute is set</desc>
            <filename>bug-99037-20140320100459.patch</filename>
            <type>text/plain</type>
            <size>20183</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNjg1MDU3YjE3ZmMw
NmY1MzNjNTY2MDhlMzdhYTA1MzhhZDEzNS4uZWMzZDYxZTBkOTk5MWU4YzRmMDgyNWYwODM2YmEw
NjVhMWVmMGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAzLTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dTdHJl
YW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9s
IGNoZWNrIHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0
LgorICAgICAgICBBZGRlZCBnZXR0ZXIgdG8gQ09SUyBhY2Nlc3MgY29udHJvbCBjaGVjayBzdGF0
dXMgKHVzZWQgdG8gY29tcHV0ZSB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgdGFpbnRlZCBvciBub3Qp
LgorICAgICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbAorICAgICAgICBEaXNhYmxlZCBhY2Nlc3MgdG8gY3Jvc3Mt
b3JpZ2luIHN0cmVhbXMgdGhhdCBmYWlsIENPUlMgY2hlY2sgd2hlbiBjcm9zc29yaWdpbiBhdHRy
aWJ1dGUgaXMgc2V0LgorICAgICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0
eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sCisKKyAgICAgICAgVGVzdHM6
IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
YWNjZXNzc2FtZW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjayk6IFJl
dHVybiB3aGV0aGVyIG1lZGlhIGlzIGNyb3NzLW9yaWdpbiAodGFpbnRlZCkgb3Igbm90IGJ5IHF1
ZXJ5aW5nIHRoZSBnc3RyZWFtZXIgc291cmNlIGxheWVyCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOiBBZGRlZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2sgZGVjbGFyYXRp
b24KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdFdlYlNyY1N0YXJ0KTogUGFzc2VkIENPUlMg
bW9kZSBwYXJhbWV0ZXIgdG8gdGhlIHN0cmVhbWluZyBjbGllbnQuIEluIGNhc2Ugb2YgQ09SUyBj
aGVjayBmYWlsdXJlLCBzdG9wIHRoZSByZXNvdXJjZSBsb2FkaW5nCisgICAgICAgICh3ZWJLaXRT
cmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2spOiBSZXR1cm4gd2hldGhlciBDT1JTIGFjY2VzcyBjb250
cm9sIGNoZWNrIHdhcyBkb25lIGFuZCBzdWNjZXNzZnVsLgorICAgICAgICAoU3RyZWFtaW5nQ2xp
ZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKTogVGFrZSBhIHBhcmFtZXRlciB0byBhc3NpZ24g
dGhlIENPUlMgYWNjZXNzIGNvbnRyb2wgY2hlY2sgcmVzdWx0CisgICAgICAgIChDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOiBVcGRh
dGVkIHNldHRpbmcgb2YgdGhlIFJlc291cmNlTG9hZGVyT3B0aW9ucyBhY2NvcmRpbmcgQ09SUyBt
b2RlCisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNl
aXZlZCk6IENoZWNrIENPUlMKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBObyBDT1JTIGNoZWNrCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oOiBBZGRlZCB3ZWJL
aXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2sgZGVjbGFyYXRpb24KKwogMjAxNC0wMy0xNyAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBkZXByZWNh
dGVkQ2hhcmFjdGVycyBpbiBIVE1MVHJlZUJ1aWxkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNDRiZWEzMmViZmJmNjRkOGNmY2I0OThi
MTk3NGQ0MmRlYTdjMzQ2Ni4uYzNhMmJmNmNhMGIyYjEwNDdiNmE5MjNmNTk2MzkyYTgwMmI1NzUw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTE4OTksNiArMTg5OSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCiAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdl
KG1fcGxheUJpbi5nZXQoKSwgbWVzc2FnZSk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICBpZiAobV9z
b3VyY2UpCisgICAgICAgIHJldHVybiB3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2soV0VC
S0lUX1dFQl9TUkMobV9zb3VyY2UuZ2V0KCkpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0K
IAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYTM3MGRhMzRlZGJkYTczZmVhZmE5MmM1ODVjN2Q0YWQ2
ZGJlM2YwYy4uMDlhMDZiNDhjYjAwMWYxNzA4MzNmNmRhNWM5N2I5OTg2NWY4YmZmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTUyLDYgKzE1
Miw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigp
IGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGl2ZVN0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEdSZWZQdHI8
R3N0RWxlbWVudD4gbV9wbGF5QmluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCA4Y2I4YTRkN2UzNDgwN2E4YWFkNzRjNzEwY2ZlMTFkZDg0NWUxNjgw
Li4zZmI1MmMxOWI0ZDVlMzQxMzQ2YWYzNjRmZjE5M2RkOTczM2RjYTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgi
CiAjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpA
QCAtNDcsNiArNDksMTIgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2VudW0gQ09S
U0FjY2Vzc0NoZWNrUmVzdWx0IHsKKyAgICBDT1JTTm9DaGVjaywKKyAgICBDT1JTU3VjY2VzcywK
KyAgICBDT1JTRmFpbHVyZQorfTsKKwogY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqKTsKQEAgLTU3LDcgKzY1
LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
Y2hhciogY3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1
YWxTaXplKTsKLSAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQpOwogICAgICAgICB2b2lk
IGhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKICAgICAgICAgdm9pZCBoYW5k
bGVOb3RpZnlGaW5pc2hlZCgpOwogCkBAIC02Nyw3ICs3NSw3IEBAIGNsYXNzIFN0cmVhbWluZ0Ns
aWVudCB7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0cmVhbWluZ0NsaWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoKTsKIAogICAgICAgICAvLyBTdHJlYW1pbmdDbGllbnQg
dmlydHVhbCBtZXRob2RzLgpAQCAtODIsNiArOTAsNyBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0
cgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsK
IAogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNv
dXJjZTsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKIH07CiAKIGNs
YXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxl
Q2xpZW50LCBwdWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKQEAgLTExOSw2ICsxMjgsOCBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgU3RyZWFtaW5nQ2xpZW50KiBjbGllbnQ7
CiAKKyAgICBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrOworCiAgICAgZ3Vp
bnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29sZWFuIHNlZWthYmxlOwpA
QCAtNDQ4LDYgKzQ1OSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTdGFydChXZWJL
aXRXZWJTcmMqIHNyYykKIAogICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRf
TE9DSyhzcmMpKTsKIAorICAgIHByaXYtPmNvcnNBY2Nlc3NDaGVjayA9IENPUlNOb0NoZWNrOwog
ICAgIHByaXYtPnN0YXJ0SUQgPSAwOwogCiAgICAgaWYgKCFwcml2LT51cmkpIHsKQEAgLTQ5Niw3
ICs1MDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3Jj
KiBzcmMpCiAKICAgICBpZiAocHJpdi0+cGxheWVyKSB7CiAgICAgICAgIGlmIChDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxheWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
KQotICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3RyZWFtaW5n
Q2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0KTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9
IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVxdWVzdCwg
cHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNPUlNNb2RlKCkp
OwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xpZW50KQpAQCAtNzgzLDYgKzc5NSwxMSBAQCB2
b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3Jl
OjpNZWRpYVBsYXllciogcGxheWVyKQogICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwog
fQogCitib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqIHNy
YykKK3sKKyAgICByZXR1cm4gc3JjLT5wcml2LT5jb3JzQWNjZXNzQ2hlY2sgPT0gQ09SU1N1Y2Nl
c3M7Cit9CisKIFN0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyog
c3JjKQogICAgIDogbV9zcmMoYWRvcHRHUmVmKHN0YXRpY19jYXN0PEdzdEVsZW1lbnQqPihnc3Rf
b2JqZWN0X3JlZihzcmMpKSkpCiB7CkBAIC04MTEsMTYgKzgyOCwxOSBAQCBjaGFyKiBTdHJlYW1p
bmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYg
YWN0dWFsU2l6ZQogICAgIHJldHVybiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihidWZmZXIpOwog
fQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVS
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDT1JTQWNj
ZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrKQogewogICAgIFdlYktpdFdlYlNyYyogc3Jj
ID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUq
IHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlJlY2VpdmVk
IHJlc3BvbnNlOiAlZCIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCi0gICAgaWYgKHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAgICAgIC8vIFJlY2VpdmVkIGVy
cm9yIGNvZGUKLSAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwg
KCJSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KSwgKDApKTsKKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDAgfHwgY29y
c0FjY2Vzc0NoZWNrID09IENPUlNGYWlsdXJlKSB7CisgICAgICAgIC8vIFJlY2VpdmVkIGVycm9y
IGNvZGUgb3IgQ09SUyBjaGVjayBmYWlsZWQKKyAgICAgICAgaWYgKGNvcnNBY2Nlc3NDaGVjayA9
PSBDT1JTRmFpbHVyZSkKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VS
Q0UsIFJFQUQsICgiJXMiLCAiQ3Jvc3Mtb3JpZ2luIHN0cmVhbSBsb2FkIGRlbmllZCBieSBDcm9z
cy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIiksICgwKSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUmVj
ZWl2ZWQgJWQgSFRUUCBlcnJvciBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksICgw
KSk7CiAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBwc3JjKTsKICAg
ICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwogICAgICAgICByZXR1cm47CkBAIC04MjgsNiAr
ODQ4LDggQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKICAgICBHTXV0ZXhMb2NrZXIgbG9ja2Vy
KEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKKyAgICBwcml2LT5jb3JzQWNjZXNzQ2hlY2sg
PSBjb3JzQWNjZXNzQ2hlY2s7CisKICAgICBpZiAocHJpdi0+c2Vla0lEKSB7CiAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1Qoc3JjLCAiU2VlayBpbiBwcm9ncmVzcywgaWdub3JpbmcgcmVzcG9uc2Ui
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTk5LDExICsxMDIxLDIzIEBAIHZvaWQgU3RyZWFtaW5n
Q2xpZW50OjpoYW5kbGVOb3RpZnlGaW5pc2hlZCgpCiAgICAgfQogfQogCi1DYWNoZWRSZXNvdXJj
ZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2Vi
U3JjKiBzcmMsIENhY2hlZFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNh
Y2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyogc3JjLCBDYWNoZWRSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlIGNvcnNNb2RlKQogICAgIDogU3RyZWFtaW5n
Q2xpZW50KHNyYykKIHsKICAgICBEYXRhQnVmZmVyaW5nUG9saWN5IGJ1ZmZlcmluZ1BvbGljeSA9
IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiYmxvYiIpID8gQnVmZmVyRGF0YSA6IERvTm90QnVm
ZmVyRGF0YTsKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVSZXF1ZXN0KHJlcXVlc3Qs
IFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwg
YnVmZmVyaW5nUG9saWN5LCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xp
ZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrLCBVc2VEZWZhdWx0
T3JpZ2luUmVzdHJpY3Rpb25zRm9yVHlwZSkpOworICAgIFJlcXVlc3RPcmlnaW5Qb2xpY3kgY29y
c1BvbGljeSA9IChjb3JzTW9kZSAhPSBNZWRpYVBsYXllckNsaWVudDo6VW5zcGVjaWZpZWQpID8g
UG90ZW50aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQgOiBVc2VEZWZhdWx0T3JpZ2luUmVzdHJpY3Rp
b25zRm9yVHlwZTsKKyAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gY29y
c01vZGUgPT0gTWVkaWFQbGF5ZXJDbGllbnQ6OlVzZUNyZWRlbnRpYWxzID8gQWxsb3dTdG9yZWRD
cmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICBSZXNvdXJjZUxv
YWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwgYnVm
ZmVyaW5nUG9saWN5LCBhbGxvd0NyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaywgY29yc1BvbGljeSk7CisKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVSZXF1ZXN0KHJlcXVlc3QsIG9wdGlvbnMpOworCisgICAg
aWYgKGNvcnNNb2RlICE9IE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkgeworICAgICAg
ICBtX29yaWdpbiA9IHJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpID8gcmVzb3VyY2VMb2FkZXIt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkgOiBudWxscHRyOworICAgICAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjYWNoZVJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpLCBtX29yaWdpbi5nZXQoKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgfQorCisgICAgLy8g
RklYTUU6IEluIGNhc2Ugb2YgUG90ZW50aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQgcG9saWN5LCBw
cmVmbGlnaHQgbW9kZSBzaG91bGQgc29tZXRpbWVzIGJlIHVzZWQgKG5vdCBzaW1wbGUgcmVxdWVz
dCBoZWFkZXJzKS4KKyAgICAvLyBCdXQgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgZG9lcyBub3Qgc3Vw
cG9ydCBpdC4gVXNlIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBpbnN0ZWFkPwogICAgIG1fcmVz
b3VyY2UgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdFJhd1Jlc291cmNlKGNhY2hlUmVxdWVzdCk7
CiAgICAgaWYgKG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlz
KTsKQEAgLTEwMzMsOSArMTA2NywxMiBAQCBjaGFyKiBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0Ns
aWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKENhY2hlZFJlc291cmNlKiwgc2l6ZQogICAgIHJl
dHVybiBjcmVhdGVSZWFkQnVmZmVyKHJlcXVlc3RlZFNpemUsIGFjdHVhbFNpemUpOwogfQogCi12
b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKENhY2hl
ZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIENhY2hl
ZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgaGFu
ZGxlUmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CisgICAgQ09SU0FjY2Vzc0NoZWNrUmVzdWx0
IGNvcnNBY2Nlc3NDaGVjayA9IENPUlNOb0NoZWNrOworICAgIGlmIChtX29yaWdpbikKKyAgICAg
ICAgY29yc0FjY2Vzc0NoZWNrID0gKG1fb3JpZ2luLT5jYW5SZXF1ZXN0KHJlc3BvbnNlLnVybCgp
KSB8fCByZXNvdXJjZS0+cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKG1fb3JpZ2luLmdldCgpKSkg
PyBDT1JTU3VjY2VzcyA6IENPUlNGYWlsdXJlOworICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQo
cmVzcG9uc2UsIGNvcnNBY2Nlc3NDaGVjayk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJl
YW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgpCkBAIC0xMDk3LDcgKzExMzQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJj
ZVJlcQogCiB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKLSAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKKyAgICBoYW5kbGVSZXNw
b25zZVJlY2VpdmVkKHJlc3BvbnNlLCBDT1JTTm9DaGVjayk7CiB9CiAKIHZvaWQgUmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogLyogZGF0YSAqLywgdW5zaWduZWQgLyogbGVuZ3RoICovLCBpbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKaW5kZXggOWVkOTVjZmFkMzNiMTRlM2Vh
NmEyMWFjZGMwMjE0NWY2NTNjZjNjYS4uN2ViYTljYmFiYzc4YWY0ZmQ5ZDEzMjMyZjEyYWZkYzUy
Y2NkZDY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaApAQCAt
NDcsNiArNDcsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNyY0NsYXNzIHsKIAogR1R5cGUgd2Via2l0
X3dlYl9zcmNfZ2V0X3R5cGUodm9pZCk7CiB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVy
KFdlYktpdFdlYlNyYyosIFdlYkNvcmU6Ok1lZGlhUGxheWVyKik7Citib29sIHdlYktpdFNyY1Bh
c3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqKTsKIAogR19FTkRfREVDTFMKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDg4ODEzMDA3NmZhZDkzZTQyOTMwZWU4NWJlZTRlNTQ0ODYwMTk4YTIuLjgzZGU5YTEyMWEy
OTllMmExOGE0Mjc4MmM0NWRjZWRlZjMxYmFiNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
NC0wMy0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisg
ICAgICAgIFtHU3RyZWFtZXJdIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sIHZlcmlmaWVzIHRo
YXQgY3Jvc3Mtb3JpZ2luIHN0cmVhbXMgdGhhdCBmYWlsIENPUlMgY2hlY2sKKyAgICAgICAgYXJl
IG5vdCBwbGF5ZWQgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0LgorICAgICAgICAg
aHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5o
dG1sIHZlcmlmaWVzIHRoYXQgYWNjZXNzIHRvIHNhbWUtb3JpZ2luIHN0cmVhbXMKKyAgICAgICAg
YXJlIHBsYXllZCB3aGVuIGNyb3Nzb3JpZ2luIGF0dHJpYnV0ZSBpcyBzZXQuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlZCBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNy
b3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6IGRpdHRvCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6
IERpc2FibGVkIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2Zh
aWx1cmUuaHRtbAorCiAyMDE0LTAzLTE2ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUu
Y29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXURvIG5vdCBjb21wdXRlIHJlZ2lvbiByYW5nZSBm
b3IgYSBib3ggdW5sZXNzIHRoZSBwYXJlbnQgaGFzIG9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTVjZTFlYTYy
ODkwN2U4N2YzNmQzZDE4MWFlYWIwMmU2N2NlYjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVy
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitFVkVOVChlcnJvcikKK0VORCBPRiBURVNU
CisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNy
b3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTViYzI2MTU3NTcxODI0Y2Q2YTQ0YjcxNTU4NTE1MGQ5MTI0YmY1NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFj
Y2Vzc2ZhaWx1cmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKyAgPCEtLSBUcnlpbmcg
dG8gYWNjZXNzIGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlLCBidXQgcmVzcG9uc2UgZG9lcyBub3Qg
Y29udGFpbiBDT1JTIGhlYWRlcnMuCisgICAgICAgVmlkZW8gcGxheSBiYWNrIGlzIGV4cGVjdGVk
IHRvIGZhaWwuIC0tPgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxzY3JpcHQgc3Jj
PS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVudCgnZXJyb3InLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIHdhaXRGb3JFdmVudCgn
cGxheWluZycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGZhaWxUZXN0KCJWaWRlbyBzdHJlYW0g
YWNjZXNzIHNob3VsZCBub3QgYmUgZ3JhbnRlZCIpOworICAgICAgICB9KTsKKworICAgICAgICBm
dW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAg
ICAgICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRp
YS9yZXNvdXJjZXMvdGVzdCIpOworICAgICAgICAgICAgdmlkZW8uc3JjID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODA4MC8iICsgbWVkaWFGaWxlOworICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8dmlkZW8gY3Jvc3NvcmlnaW4+PC92aWRlbz4K
KyAgICA8Y2FudmFzPjwvY2FudmFzPgorICA8L2JvZHk+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3Nz
YW1lb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
dmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFkMjVhYmU5NGZiYzY0MmMwYWI5MGMxY2U4MjY0ZjViZWM5OGY4OTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdp
bi1hY2Nlc3NzYW1lb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0VWRU5UKHBs
YXlpbmcpCitFTkQgT0YgVEVTVAorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2Ft
ZW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZWNiMjNhYTM3ZDBlYjcwZWQ2OTM3Y2QxNTcxNTdi
Mjk0MWU1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorPGh0bWw+CisgIDwhLS0gVHJ5aW5nIHRvIGFjY2VzcyBhIHNhbWUgb3JpZ2luIHJlc291
cmNlLCB2aWRlbyBlbGVtZW50IHNldHRpbmcgY3Jvc3NvcmlnaW4gYXR0cmlidXRlLgorICAgICAg
IFZpZGVvIHBsYXkgYmFjayBpcyBleHBlY3RlZCB0byBzdWNjZWVkLiAtLT4KKyAgPGJvZHkgb25s
b2FkPSJzdGFydCgpIj4KKyAgICA8c2NyaXB0IHNyYz0uLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlk
ZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0uLi8uLi9tZWRpYS1yZXNvdXJj
ZXMvbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB3YWl0Rm9y
RXZlbnQoJ2Vycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgZmFpbFRlc3QoIlZpZGVvIHN0
cmVhbSBhY2Nlc3Mgc2hvdWxkIHN1Y2NlZWQiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgd2Fp
dEZvckV2ZW50KCdwbGF5aW5nJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgZW5kVGVzdCgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFG
aWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvdGVzdCIpOworICAgICAgICAgICAg
dmlkZW8uc3JjID0gbWVkaWFGaWxlOworICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8dmlkZW8gY3Jvc3NvcmlnaW4+PC92aWRlbz4KKyAg
ICA8Y2FudmFzPjwvY2FudmFzPgorICA8L2JvZHk+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJjZjVmMDE1ODlkYmIxMDg2MDdiZGM0YTFm
M2UyZTJiYjA3YzBhYzkuLmMxNTM2MDAwMTYyMmUzMzk0YzkzMzlkZDFmMDNhN2I2ZDNjOTFhMGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMDAsOSAr
MzAwLDYgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAj
IFByZS1ITVRMNSBwYXJzZXIgcXVpcmtzIG9ubHkgYXBwbHkgdG8gdGhlIG1hYyBwb3J0IGZvciBu
b3cuCiBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sIFsgV29udEZpeCBd
CiAKLSMgTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5
ZXQuCi1CdWcoRUZMKSBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFk
YmFjay5odG1sIFsgRmFpbHVyZSBdCi0KICMgUGVyZiB0ZXN0cyBhcmUgd2F5IHRvbyBzbG93IGFu
ZCBzb21lIG1heSBmYWlsIGR1ZSB0byB0aW1lb3V0LgogcGVyZi9hZGRpbmctcmFkaW8tYnV0dG9u
cy5odG1sIFsgV29udEZpeCBdCiBwZXJmL2FycmF5LWJpbmFyeS1zZWFyY2guaHRtbCBbIFdvbnRG
aXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMmUw
NDliYjcxZWRmNGNhYTRlMjk4NDhmYTU5ZDQ0OTU0NDU2YmRhLi5lYmJkMzJiNjJkMGM2MzZhOWYy
OWVmYmJlYzcxOTkxYmYxMTEwYTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzA0LDkgKzMwNCw2IEBAIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L2V2
ZW50cy9jb25zdHJ1Y3RvcnMvbWVkaWEtc3RyZWFtLWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIHdl
YmtpdC5vcmcvYi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1ZGlvZGVzdGluYXRpb25ub2Rl
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyB3ZWJhdWRpby9tZWRpYXN0cmVhbWF1
ZGlvc291cmNlbm9kZS5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRp
YSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCi13ZWJraXQub3JnL2IvOTkwMzcgaHR0cC90
ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbCBbIEZhaWx1cmUg
XQotCiAjIE5ldyB0ZXN0IGluZnJhc3RydWN0dXJlIHJlcXVpcmVkIC0tIG5lZWQgaXNvbGF0ZWQg
d29ybGRzCiB3ZWJraXQub3JnL2IvMzE1MDggaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMzE1MDggcGx1Z2lucy9ucHJ1bnRpbWUvb3ZlcnJp
ZGVzLWFsbC1wcm9wZXJ0aWVzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA3
OTI1NmU4Nzc1M2U0NmMwMDgyZGVlYTdkY2M2Njc0N2ViNDRkYzI3Li5mNzEzZDZiODVjZTI0MTA0
MzAxMWNjYWE1NDZmNTYwNWY4YTI4MjkyCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC00OTksNiArNDk5LDcgQEAgd2Via2l0Lm9yZy9iLzg1NTMyIGZhc3Qvc3ViLXBp
eGVsL3pvb21lZC1pbWFnZS10aWxlcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgTm8g
Q09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCitodHRwL3Rl
c3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwKIAogIyBt
ZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwgc29tZXRpbWVzIGZhaWxzIG9uIExpb24gRGVidWcgKFRl
c3RzKQogd2Via2l0Lm9yZy9iLzg0MzU3IG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbCBbIEZhaWx1
cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227281</attachid>
            <date>2014-03-20 04:12:19 -0700</date>
            <delta_ts>2014-04-10 07:23:00 -0700</delta_ts>
            <desc>fixed nullptr style issue</desc>
            <filename>bug-99037-20140320121156.patch</filename>
            <type>text/plain</type>
            <size>20806</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNjg1MDU3YjE3ZmMw
NmY1MzNjNTY2MDhlMzdhYTA1MzhhZDEzNS4uZWMzZDYxZTBkOTk5MWU4YzRmMDgyNWYwODM2YmEw
NjVhMWVmMGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAzLTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dTdHJl
YW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9s
IGNoZWNrIHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0
LgorICAgICAgICBBZGRlZCBnZXR0ZXIgdG8gQ09SUyBhY2Nlc3MgY29udHJvbCBjaGVjayBzdGF0
dXMgKHVzZWQgdG8gY29tcHV0ZSB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgdGFpbnRlZCBvciBub3Qp
LgorICAgICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbAorICAgICAgICBEaXNhYmxlZCBhY2Nlc3MgdG8gY3Jvc3Mt
b3JpZ2luIHN0cmVhbXMgdGhhdCBmYWlsIENPUlMgY2hlY2sgd2hlbiBjcm9zc29yaWdpbiBhdHRy
aWJ1dGUgaXMgc2V0LgorICAgICAgICBSZWxhdGVkIHRlc3QgaXMgaHR0cC90ZXN0cy9zZWN1cml0
eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sCisKKyAgICAgICAgVGVzdHM6
IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
YWNjZXNzc2FtZW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjayk6IFJl
dHVybiB3aGV0aGVyIG1lZGlhIGlzIGNyb3NzLW9yaWdpbiAodGFpbnRlZCkgb3Igbm90IGJ5IHF1
ZXJ5aW5nIHRoZSBnc3RyZWFtZXIgc291cmNlIGxheWVyCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOiBBZGRlZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2sgZGVjbGFyYXRp
b24KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdFdlYlNyY1N0YXJ0KTogUGFzc2VkIENPUlMg
bW9kZSBwYXJhbWV0ZXIgdG8gdGhlIHN0cmVhbWluZyBjbGllbnQuIEluIGNhc2Ugb2YgQ09SUyBj
aGVjayBmYWlsdXJlLCBzdG9wIHRoZSByZXNvdXJjZSBsb2FkaW5nCisgICAgICAgICh3ZWJLaXRT
cmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2spOiBSZXR1cm4gd2hldGhlciBDT1JTIGFjY2VzcyBjb250
cm9sIGNoZWNrIHdhcyBkb25lIGFuZCBzdWNjZXNzZnVsLgorICAgICAgICAoU3RyZWFtaW5nQ2xp
ZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKTogVGFrZSBhIHBhcmFtZXRlciB0byBhc3NpZ24g
dGhlIENPUlMgYWNjZXNzIGNvbnRyb2wgY2hlY2sgcmVzdWx0CisgICAgICAgIChDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOiBVcGRh
dGVkIHNldHRpbmcgb2YgdGhlIFJlc291cmNlTG9hZGVyT3B0aW9ucyBhY2NvcmRpbmcgQ09SUyBt
b2RlCisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNl
aXZlZCk6IENoZWNrIENPUlMKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBObyBDT1JTIGNoZWNrCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oOiBBZGRlZCB3ZWJL
aXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2sgZGVjbGFyYXRpb24KKwogMjAxNC0wMy0xNyAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBkZXByZWNh
dGVkQ2hhcmFjdGVycyBpbiBIVE1MVHJlZUJ1aWxkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNDRiZWEzMmViZmJmNjRkOGNmY2I0OThi
MTk3NGQ0MmRlYTdjMzQ2Ni4uYzNhMmJmNmNhMGIyYjEwNDdiNmE5MjNmNTk2MzkyYTgwMmI1NzUw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTE4OTksNiArMTg5OSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCiAgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdl
KG1fcGxheUJpbi5nZXQoKSwgbWVzc2FnZSk7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICBpZiAobV9z
b3VyY2UpCisgICAgICAgIHJldHVybiB3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2soV0VC
S0lUX1dFQl9TUkMobV9zb3VyY2UuZ2V0KCkpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0K
IAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYTM3MGRhMzRlZGJkYTczZmVhZmE5MmM1ODVjN2Q0YWQ2
ZGJlM2YwYy4uMDlhMDZiNDhjYjAwMWYxNzA4MzNmNmRhNWM5N2I5OTg2NWY4YmZmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTUyLDYgKzE1
Miw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigp
IGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGl2ZVN0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEdSZWZQdHI8
R3N0RWxlbWVudD4gbV9wbGF5QmluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmNwcAppbmRleCA4Y2I4YTRkN2UzNDgwN2E4YWFkNzRjNzEwY2ZlMTFkZDg0NWUxNjgw
Li44MzkwZTE0MTQ0NmJkMmEyMzEwMjNiZDAzNDA1YmJhZTJmOTA1NzI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgi
CiAjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgpA
QCAtNDcsNiArNDksMTIgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK2VudW0gQ09S
U0FjY2Vzc0NoZWNrUmVzdWx0IHsKKyAgICBDT1JTTm9DaGVjaywKKyAgICBDT1JTU3VjY2VzcywK
KyAgICBDT1JTRmFpbHVyZQorfTsKKwogY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqKTsKQEAgLTU3LDcgKzY1
LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
Y2hhciogY3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1
YWxTaXplKTsKLSAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQpOwogICAgICAgICB2b2lk
IGhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKICAgICAgICAgdm9pZCBoYW5k
bGVOb3RpZnlGaW5pc2hlZCgpOwogCkBAIC02Nyw3ICs3NSw3IEBAIGNsYXNzIFN0cmVhbWluZ0Ns
aWVudCB7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0cmVhbWluZ0NsaWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoKTsKIAogICAgICAgICAvLyBTdHJlYW1pbmdDbGllbnQg
dmlydHVhbCBtZXRob2RzLgpAQCAtODIsNiArOTAsNyBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0
cgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsK
IAogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNv
dXJjZTsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKIH07CiAKIGNs
YXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxl
Q2xpZW50LCBwdWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKQEAgLTExOSw2ICsxMjgsOCBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgU3RyZWFtaW5nQ2xpZW50KiBjbGllbnQ7
CiAKKyAgICBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrOworCiAgICAgZ3Vp
bnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29sZWFuIHNlZWthYmxlOwpA
QCAtNDQ4LDYgKzQ1OSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTdGFydChXZWJL
aXRXZWJTcmMqIHNyYykKIAogICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRf
TE9DSyhzcmMpKTsKIAorICAgIHByaXYtPmNvcnNBY2Nlc3NDaGVjayA9IENPUlNOb0NoZWNrOwog
ICAgIHByaXYtPnN0YXJ0SUQgPSAwOwogCiAgICAgaWYgKCFwcml2LT51cmkpIHsKQEAgLTQ5Niw3
ICs1MDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3Jj
KiBzcmMpCiAKICAgICBpZiAocHJpdi0+cGxheWVyKSB7CiAgICAgICAgIGlmIChDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxheWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
KQotICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3RyZWFtaW5n
Q2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0KTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9
IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVxdWVzdCwg
cHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNPUlNNb2RlKCkp
OwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xpZW50KQpAQCAtNzgzLDYgKzc5NSwxMSBAQCB2
b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3Jl
OjpNZWRpYVBsYXllciogcGxheWVyKQogICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwog
fQogCitib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMqIHNy
YykKK3sKKyAgICByZXR1cm4gc3JjLT5wcml2LT5jb3JzQWNjZXNzQ2hlY2sgPT0gQ09SU1N1Y2Nl
c3M7Cit9CisKIFN0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyog
c3JjKQogICAgIDogbV9zcmMoYWRvcHRHUmVmKHN0YXRpY19jYXN0PEdzdEVsZW1lbnQqPihnc3Rf
b2JqZWN0X3JlZihzcmMpKSkpCiB7CkBAIC04MTEsMTYgKzgyOCwxOSBAQCBjaGFyKiBTdHJlYW1p
bmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYg
YWN0dWFsU2l6ZQogICAgIHJldHVybiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihidWZmZXIpOwog
fQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVS
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDT1JTQWNj
ZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrKQogewogICAgIFdlYktpdFdlYlNyYyogc3Jj
ID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUq
IHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlJlY2VpdmVk
IHJlc3BvbnNlOiAlZCIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCi0gICAgaWYgKHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAgICAgIC8vIFJlY2VpdmVkIGVy
cm9yIGNvZGUKLSAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwg
KCJSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KSwgKDApKTsKKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDAgfHwgY29y
c0FjY2Vzc0NoZWNrID09IENPUlNGYWlsdXJlKSB7CisgICAgICAgIC8vIFJlY2VpdmVkIGVycm9y
IGNvZGUgb3IgQ09SUyBjaGVjayBmYWlsZWQKKyAgICAgICAgaWYgKGNvcnNBY2Nlc3NDaGVjayA9
PSBDT1JTRmFpbHVyZSkKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VS
Q0UsIFJFQUQsICgiJXMiLCAiQ3Jvc3Mtb3JpZ2luIHN0cmVhbSBsb2FkIGRlbmllZCBieSBDcm9z
cy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIiksIChudWxscHRyKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQs
ICgiUmVjZWl2ZWQgJWQgSFRUUCBlcnJvciBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUo
KSksIChudWxscHRyKSk7CiAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+
YXBwc3JjKTsKICAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwogICAgICAgICByZXR1cm47
CkBAIC04MjgsNiArODQ4LDggQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNl
UmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKICAgICBHTXV0ZXhM
b2NrZXIgbG9ja2VyKEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKKyAgICBwcml2LT5jb3Jz
QWNjZXNzQ2hlY2sgPSBjb3JzQWNjZXNzQ2hlY2s7CisKICAgICBpZiAocHJpdi0+c2Vla0lEKSB7
CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU2VlayBpbiBwcm9ncmVzcywgaWdub3Jp
bmcgcmVzcG9uc2UiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQxLDcgKzg2Myw3IEBAIHZvaWQg
U3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCkgIT0gMjA2KSB7CiAgICAgICAgICAgICAvLyBSYW5nZSByZXF1ZXN0IGNvbXBsZXRlbHkg
ZmFpbGVkLgogICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwotICAgICAgICAgICAgR1NUX0VM
RU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCB1bmV4cGVjdGVkICVk
IEhUVFAgc3RhdHVzIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSwgKDApKTsKKyAg
ICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUmVjZWl2
ZWQgdW5leHBlY3RlZCAlZCBIVFRQIHN0YXR1cyBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSksIChudWxscHRyKSk7CiAgICAgICAgICAgICBnc3RfYXBwX3NyY19lbmRfb2Zfc3RyZWFt
KHByaXYtPmFwcHNyYyk7CiAgICAgICAgICAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC05OTksMTEgKzEwMjEsMjMgQEAgdm9pZCBTdHJlYW1pbmdDbGll
bnQ6OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKICAgICB9CiB9CiAKLUNhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50OjpDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMq
IHNyYywgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIENhY2hlZFJlc291cmNl
TG9hZGVyKiByZXNvdXJjZUxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBN
ZWRpYVBsYXllckNsaWVudDo6Q09SU01vZGUgY29yc01vZGUpCiAgICAgOiBTdHJlYW1pbmdDbGll
bnQoc3JjKQogewogICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5ID0gcmVx
dWVzdC51cmwoKS5wcm90b2NvbElzKCJibG9iIikgPyBCdWZmZXJEYXRhIDogRG9Ob3RCdWZmZXJE
YXRhOwotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgUmVz
b3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50LCBidWZm
ZXJpbmdQb2xpY3ksIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRG
b3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2ssIFVzZURlZmF1bHRPcmln
aW5SZXN0cmljdGlvbnNGb3JUeXBlKSk7CisgICAgUmVxdWVzdE9yaWdpblBvbGljeSBjb3JzUG9s
aWN5ID0gKGNvcnNNb2RlICE9IE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkgPyBQb3Rl
bnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCA6IFVzZURlZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNG
b3JUeXBlOworICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBjb3JzTW9k
ZSA9PSBNZWRpYVBsYXllckNsaWVudDo6VXNlQ3JlZGVudGlhbHMgPyBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIFJlc291cmNlTG9hZGVy
T3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50LCBidWZmZXJp
bmdQb2xpY3ksIGFsbG93Q3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5D
cmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrLCBjb3JzUG9saWN5KTsKKworICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CisKKyAgICBpZiAo
Y29yc01vZGUgIT0gTWVkaWFQbGF5ZXJDbGllbnQ6OlVuc3BlY2lmaWVkKSB7CisgICAgICAgIG1f
b3JpZ2luID0gcmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCkgPyByZXNvdXJjZUxvYWRlci0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSA6IG51bGxwdHI7CisgICAgICAgIHVwZGF0ZVJlcXVl
c3RGb3JBY2Nlc3NDb250cm9sKGNhY2hlUmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCks
IG1fb3JpZ2luLmdldCgpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICB9CisKKyAgICAvLyBGSVhN
RTogSW4gY2FzZSBvZiBQb3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCBwb2xpY3ksIHByZWZs
aWdodCBtb2RlIHNob3VsZCBzb21ldGltZXMgYmUgdXNlZCAobm90IHNpbXBsZSByZXF1ZXN0IGhl
YWRlcnMpLgorICAgIC8vIEJ1dCBDYWNoZWRSZXNvdXJjZUxvYWRlciBkb2VzIG5vdCBzdXBwb3J0
IGl0LiBVc2UgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIGluc3RlYWQ/CiAgICAgbV9yZXNvdXJj
ZSA9IHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0UmF3UmVzb3VyY2UoY2FjaGVSZXF1ZXN0KTsKICAg
ICBpZiAobV9yZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwpA
QCAtMTAzMyw5ICsxMDY3LDEyIEBAIGNoYXIqIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50
OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoQ2FjaGVkUmVzb3VyY2UqLCBzaXplCiAgICAgcmV0dXJu
IGNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVkU2l6ZSwgYWN0dWFsU2l6ZSk7CiB9CiAKLXZvaWQg
Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVz
b3VyY2UqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgQ2FjaGVkUmVz
b3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBoYW5kbGVS
ZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKKyAgICBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQgY29y
c0FjY2Vzc0NoZWNrID0gQ09SU05vQ2hlY2s7CisgICAgaWYgKG1fb3JpZ2luKQorICAgICAgICBj
b3JzQWNjZXNzQ2hlY2sgPSAobV9vcmlnaW4tPmNhblJlcXVlc3QocmVzcG9uc2UudXJsKCkpIHx8
IHJlc291cmNlLT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2sobV9vcmlnaW4uZ2V0KCkpKSA/IENP
UlNTdWNjZXNzIDogQ09SU0ZhaWx1cmU7CisgICAgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChyZXNw
b25zZSwgY29yc0FjY2Vzc0NoZWNrKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWlu
Z0NsaWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciogZGF0YSwg
aW50IGxlbmd0aCkKQEAgLTEwOTcsNyArMTEzNCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQ6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVx
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewot
ICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOworICAgIGhhbmRsZVJlc3BvbnNl
UmVjZWl2ZWQocmVzcG9uc2UsIENPUlNOb0NoZWNrKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBj
aGFyKiAvKiBkYXRhICovLCB1bnNpZ25lZCAvKiBsZW5ndGggKi8sIGludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaAppbmRleCA5ZWQ5NWNmYWQzM2IxNGUzZWE2YTIx
YWNkYzAyMTQ1ZjY1M2NmM2NhLi43ZWJhOWNiYWJjNzhhZjRmZDlkMTMyMzJmMTJhZmRjNTJjY2Rk
NjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oCkBAIC00Nyw2
ICs0Nyw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViU3JjQ2xhc3MgewogCiBHVHlwZSB3ZWJraXRfd2Vi
X3NyY19nZXRfdHlwZSh2b2lkKTsKIHZvaWQgd2ViS2l0V2ViU3JjU2V0TWVkaWFQbGF5ZXIoV2Vi
S2l0V2ViU3JjKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqKTsKK2Jvb2wgd2ViS2l0U3JjUGFzc2Vk
Q09SU0FjY2Vzc0NoZWNrKFdlYktpdFdlYlNyYyopOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODg4MTMwMDc2ZmFkOTNlNDI5MzBlZTg1YmVlNGU1NDQ4NjAxOThhMi4uODNkZTlhMTIxYTI5OWUy
YTE4YTQyNzgyYzQ1ZGNlZGVmMzFiYWI3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTAz
LTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwgdmVyaWZpZXMgdGhhdCBj
cm9zcy1vcmlnaW4gc3RyZWFtcyB0aGF0IGZhaWwgQ09SUyBjaGVjaworICAgICAgICBhcmUgbm90
IHBsYXllZCB3aGVuIGNyb3Nzb3JpZ2luIGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAgICBodHRw
L3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWwg
dmVyaWZpZXMgdGhhdCBhY2Nlc3MgdG8gc2FtZS1vcmlnaW4gc3RyZWFtcworICAgICAgICBhcmUg
cGxheWVkIHdoZW4gY3Jvc3NvcmlnaW4gYXR0cmlidXRlIGlzIHNldC4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdp
bi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zOiBFbmFibGVkIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLXJlYWRiYWNrLmh0bWwKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczogZGl0dG8KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogRGlz
YWJsZWQgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVy
ZS5odG1sCisKIDIwMTQtMDMtMTYgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+
CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdRG8gbm90IGNvbXB1dGUgcmVnaW9uIHJhbmdlIGZvciBh
IGJveCB1bmxlc3MgdGhlIHBhcmVudCBoYXMgb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLWFjY2Vzc2ZhaWx1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNWNlMWVhNjI4OTA3
ZTg3ZjM2ZDNkMTgxYWVhYjAyZTY3Y2ViNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0VWRU5UKGVycm9yKQorRU5EIE9GIFRFU1QKKyAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWJj
MjYxNTc1NzE4MjRjZDZhNDRiNzE1NTg1MTUwZDkxMjRiZjU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNz
ZmFpbHVyZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorICA8IS0tIFRyeWluZyB0byBh
Y2Nlc3MgYSBjcm9zcyBvcmlnaW4gcmVzb3VyY2UsIGJ1dCByZXNwb25zZSBkb2VzIG5vdCBjb250
YWluIENPUlMgaGVhZGVycy4KKyAgICAgICBWaWRlbyBwbGF5IGJhY2sgaXMgZXhwZWN0ZWQgdG8g
ZmFpbC4gLS0+CisgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHNjcmlwdCBzcmM9Li4v
Li4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Li4vLi4vbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgd2FpdEZvckV2ZW50KCdlcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5
aW5nJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgZmFpbFRlc3QoIlZpZGVvIHN0cmVhbSBhY2Nl
c3Mgc2hvdWxkIG5vdCBiZSBncmFudGVkIik7CisgICAgICAgIH0pOworCisgICAgICAgIGZ1bmN0
aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAg
ICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uLy4uL21lZGlhL3Jl
c291cmNlcy90ZXN0Iik7CisgICAgICAgICAgICB2aWRlby5zcmMgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDgwLyIgKyBtZWRpYUZpbGU7CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKworICAgIDx2aWRlbyBjcm9zc29yaWdpbj48L3ZpZGVvPgorICAg
IDxjYW52YXM+PC9jYW52YXM+CisgIDwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVv
cmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRl
by1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWQyNWFiZTk0ZmJjNjQyYzBhYjkwYzFjZTgyNjRmNWJlYzk4Zjg5NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFj
Y2Vzc3NhbWVvcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorRVZFTlQocGxheWlu
ZykKK0VORCBPRiBURVNUCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3Jp
Z2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVlY2IyM2FhMzdkMGViNzBlZDY5MzdjZDE1NzE1N2IyOTQx
ZTViZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
dmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4uaHRtbApAQCAtMCwwICsxLDI3IEBA
Cis8aHRtbD4KKyAgPCEtLSBUcnlpbmcgdG8gYWNjZXNzIGEgc2FtZSBvcmlnaW4gcmVzb3VyY2Us
IHZpZGVvIGVsZW1lbnQgc2V0dGluZyBjcm9zc29yaWdpbiBhdHRyaWJ1dGUuCisgICAgICAgVmlk
ZW8gcGxheSBiYWNrIGlzIGV4cGVjdGVkIHRvIHN1Y2NlZWQuIC0tPgorICA8Ym9keSBvbmxvYWQ9
InN0YXJ0KCkiPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10
ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9t
ZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVu
dCgnZXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBmYWlsVGVzdCgiVmlkZW8gc3RyZWFt
IGFjY2VzcyBzaG91bGQgc3VjY2VlZCIpOworICAgICAgICB9KTsKKworICAgICAgICB3YWl0Rm9y
RXZlbnQoJ3BsYXlpbmcnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBlbmRUZXN0KCk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgZmluZE1l
ZGlhRWxlbWVudCgpOworICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUo
InZpZGVvIiwgIi4uLy4uL21lZGlhL3Jlc291cmNlcy90ZXN0Iik7CisgICAgICAgICAgICB2aWRl
by5zcmMgPSBtZWRpYUZpbGU7CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDx2aWRlbyBjcm9zc29yaWdpbj48L3ZpZGVvPgorICAgIDxj
YW52YXM+PC9jYW52YXM+CisgIDwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmNmNWYwMTU4OWRiYjEwODYwN2JkYzRhMWYzZTJl
MmJiMDdjMGFjOS4uYzE1MzYwMDAxNjIyZTMzOTRjOTMzOWRkMWYwM2E3YjZkM2M5MWEwYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMCw5ICszMDAs
NiBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgUHJl
LUhNVEw1IHBhcnNlciBxdWlya3Mgb25seSBhcHBseSB0byB0aGUgbWFjIHBvcnQgZm9yIG5vdy4K
IGZhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLmh0bWwgWyBXb250Rml4IF0KIAot
IyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4K
LUJ1ZyhFRkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNr
Lmh0bWwgWyBGYWlsdXJlIF0KLQogIyBQZXJmIHRlc3RzIGFyZSB3YXkgdG9vIHNsb3cgYW5kIHNv
bWUgbWF5IGZhaWwgZHVlIHRvIHRpbWVvdXQuCiBwZXJmL2FkZGluZy1yYWRpby1idXR0b25zLmh0
bWwgWyBXb250Rml4IF0KIHBlcmYvYXJyYXktYmluYXJ5LXNlYXJjaC5odG1sIFsgV29udEZpeCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyZTA0OWJi
NzFlZGY0Y2FhNGUyOTg0OGZhNTlkNDQ5NTQ0NTZiZGEuLmViYmQzMmI2MmQwYzYzNmE5ZjI5ZWZi
YmVjNzE5OTFiZjExMTBhNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zMDQsOSArMzA0LDYgQEAgd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvZXZlbnRz
L2NvbnN0cnVjdG9ycy9tZWRpYS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAogd2Via2l0
Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9kZXN0aW5hdGlvbm5vZGUuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9z
b3VyY2Vub2RlLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVs
ZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KLXdlYmtpdC5vcmcvYi85OTAzNyBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sIFsgRmFpbHVyZSBdCi0K
ICMgTmV3IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQgLS0gbmVlZCBpc29sYXRlZCB3b3Js
ZHMKIHdlYmtpdC5vcmcvYi8zMTUwOCBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8zMTUwOCBwbHVnaW5zL25wcnVudGltZS9vdmVycmlkZXMt
YWxsLXByb3BlcnRpZXMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDc5MjU2
ZTg3NzUzZTQ2YzAwODJkZWVhN2RjYzY2NzQ3ZWI0NGRjMjcuLmY3MTNkNmI4NWNlMjQxMDQzMDEx
Y2NhYTU0NmY1NjA1ZjhhMjgyOTIKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQ5OSw2ICs0OTksNyBAQCB3ZWJraXQub3JnL2IvODU1MzIgZmFzdC9zdWItcGl4ZWwv
em9vbWVkLWltYWdlLXRpbGVzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBObyBDT1JT
IHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KIGh0dHAvdGVz
dHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKK2h0dHAvdGVzdHMv
c2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbAogCiAjIG1lZGlh
L2F1ZGlvLXJlcGFpbnQuaHRtbCBzb21ldGltZXMgZmFpbHMgb24gTGlvbiBEZWJ1ZyAoVGVzdHMp
CiB3ZWJraXQub3JnL2IvODQzNTcgbWVkaWEvYXVkaW8tcmVwYWludC5odG1sIFsgRmFpbHVyZSBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229048</attachid>
            <date>2014-04-10 07:23:12 -0700</date>
            <delta_ts>2014-04-11 06:04:19 -0700</delta_ts>
            <desc>Updating after second reviews</desc>
            <filename>bug-99037-20140410162249.patch</filename>
            <type>text/plain</type>
            <size>20820</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMzMTQyM2VkZWZmMGIw
NzE2ZDU5MTUxOGQ5NmRiODNkOGI0ODgyNC4uNTk5MDNjMTkyMTZjNjQwMGZlMDQwY2NkY2Y4Yzgw
OTdjMWJmZTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dTdHJl
YW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9s
IGNoZWNrIHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0
LgorCisgICAgICAgIEFkZGVkIGdldHRlciB0byBDT1JTIGFjY2VzcyBjb250cm9sIGNoZWNrIHN0
YXR1cyAodXNlZCB0byBjb21wdXRlIHdoZXRoZXIgdGhlIHN0cmVhbSBpcyB0YWludGVkIG9yIG5v
dCkuCisgICAgICAgIFJlbGF0ZWQgdGVzdCBpcyBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNy
b3NzLW9yaWdpbi1yZWFkYmFjay5odG1sLgorCisgICAgICAgIERpc2FibGVkIGFjY2VzcyB0byBj
cm9zcy1vcmlnaW4gc3RyZWFtcyB0aGF0IGZhaWwgQ09SUyBjaGVjayB3aGVuIGNyb3Nzb3JpZ2lu
IGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAgIFJlbGF0ZWQgdGVzdCBpcyBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1
cmUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVj
ayk6IFJldHVybiB3aGV0aGVyIG1lZGlhIGlzIGNyb3NzLW9yaWdpbiAodGFpbnRlZCkgb3Igbm90
IGJ5IHF1ZXJ5aW5nIHRoZSBnc3RyZWFtZXIgc291cmNlIGxheWVyLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDogQWRk
ZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrIGRl
Y2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOiBQYXNz
ZWQgQ09SUyBtb2RlIHBhcmFtZXRlciB0byB0aGUgc3RyZWFtaW5nIGNsaWVudC4gSW4gY2FzZSBv
ZiBDT1JTIGNoZWNrIGZhaWx1cmUsIHN0b3AgdGhlIHJlc291cmNlIGxvYWRpbmcuCisgICAgICAg
ICh3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2spOiBSZXR1cm4gd2hldGhlciBDT1JTIGFj
Y2VzcyBjb250cm9sIGNoZWNrIHdhcyBkb25lIGFuZCBzdWNjZXNzZnVsLgorICAgICAgICAoU3Ry
ZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKTogVGFrZSBhIHBhcmFtZXRlciB0
byBhc3NpZ24gdGhlIENPUlMgYWNjZXNzIGNvbnRyb2wgY2hlY2sgcmVzdWx0LgorICAgICAgICAo
Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50KTogVXBkYXRlZCBzZXR0aW5nIG9mIHRoZSBSZXNvdXJjZUxvYWRlck9wdGlvbnMgYWNjb3Jk
aW5nIENPUlMgbW9kZS4KKyAgICAgICAgKENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpy
ZXNwb25zZVJlY2VpdmVkKTogQ2hlY2sgQ09SUyBhbmQgcGFzcyByZXN1bHQgdG8gaGFuZGxlUmVz
cG9uc2VSZWNlaXZlZC4KKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOiBObyBDT1JTIGNoZWNrLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQgd2ViS2l0
U3JjUGFzc2VkQ09SU0FjY2Vzc0NoZWNrIGRlY2xhcmF0aW9uLgorCiAyMDE0LTA0LTA5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTY3MDQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyNGFkMGFlYjY4YzM4ZWI0OTcxM2UxOTU4NGU4YmE4NmYz
OGU1NWUwLi41ZTQzYzQ2NGNiMDMxYWM0ZTQ5ZTc0YjhjZjU3MjY2M2RhNThjOTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTg5MSw2
ICsxODkxLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1
ZGlvSW50ZXJydXB0aW9uKCkKICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UobV9wbGF5Qmlu
LmdldCgpLCBtZXNzYWdlKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdAoreworICAgIGlmIChtX3NvdXJjZSkKKyAg
ICAgICAgcmV0dXJuIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXRUJLSVRfV0VCX1NS
QyhtX3NvdXJjZS5nZXQoKSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogfQogCiAjZW5kaWYg
Ly8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAppbmRleCBmZDkwZTEyNDYxODcwYWI1MzcyYzY5OTlhMmU1ZWJmYmE4MDk1ZGVhLi45
OTM5Y2RiZWM1MTFiM2JlMjZkZDA1NWJkNGVkYmU4YjlhOTUyNmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gIkdTdHJlYW1lciI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29u
c3QgeyByZXR1cm4gbV9pc1N0cmVhbWluZzsgfQorICAgIHZpcnR1YWwgYm9vbCBkaWRQYXNzQ09S
U0FjY2Vzc0NoZWNrKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50
PiBtX3BsYXlCaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGJmMDI5NDhlNGM4NTNiMDFmOTFhM2JiNWVlMWIzMDQ0Mjk5ZWRiNzQuLjJiYWFiZDM3
ZDY2YWRlOGZlZDFhZTQyNmYzNTViZGY1NWQzYTcyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKICNpbmNsdWRl
ICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgpAQCAtMzUs
NiArMzYsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVk
ZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CkBAIC00OCw2ICs1
MCwxMiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorZW51bSBDT1JTQWNjZXNzQ2hl
Y2tSZXN1bHQgeworICAgIENPUlNOb0NoZWNrLAorICAgIENPUlNTdWNjZXNzLAorICAgIENPUlNG
YWlsdXJlCit9OworCiBjbGFzcyBTdHJlYW1pbmdDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAg
ICAgU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyopOwpAQCAtNTgsNyArNjYsNyBAQCBjbGFz
cyBTdHJlYW1pbmdDbGllbnQgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBjaGFyKiBjcmVh
dGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpOwot
ICAgICAgICB2b2lkIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOworICAgICAgICB2b2lkIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIENPUlNBY2Nlc3NDaGVja1Jlc3VsdCk7CiAgICAgICAgIHZvaWQgaGFuZGxlRGF0
YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBpbnQpOwogICAgICAgICB2b2lkIGhhbmRsZU5vdGlmeUZp
bmlzaGVkKCk7CiAKQEAgLTY4LDcgKzc2LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIGNs
YXNzIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIENhY2hlZFJhd1Jlc291
cmNlQ2xpZW50LCBwdWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQo
V2ViS2l0V2ViU3JjKiwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3Jj
KiwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBNZWRpYVBs
YXllckNsaWVudDo6Q09SU01vZGUpOwogICAgICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudCgpOwogCiAgICAgICAgIC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1l
dGhvZHMuCkBAIC04Myw2ICs5MSw3IEBAIGNsYXNzIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50IDogcHVibGljIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LCBwdWJsaWMgU3RyCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogCiAgICAgICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworICAg
ICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwogfTsKIAogY2xhc3MgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1
YmxpYyBTdHJlYW1pbmdDbGllbnQgewpAQCAtMTIwLDYgKzEyOSw4IEBAIHN0cnVjdCBfV2ViS2l0
V2ViU3JjUHJpdmF0ZSB7CiAKICAgICBTdHJlYW1pbmdDbGllbnQqIGNsaWVudDsKIAorICAgIENP
UlNBY2Nlc3NDaGVja1Jlc3VsdCBjb3JzQWNjZXNzQ2hlY2s7CisKICAgICBndWludDY0IG9mZnNl
dDsKICAgICBndWludDY0IHNpemU7CiAgICAgZ2Jvb2xlYW4gc2Vla2FibGU7CkBAIC00MzcsNiAr
NDQ4LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMp
CiAKICAgICBHTXV0ZXhMb2NrZXIgbG9ja2VyKEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAK
KyAgICBwcml2LT5jb3JzQWNjZXNzQ2hlY2sgPSBDT1JTTm9DaGVjazsKKwogICAgIGlmICghcHJp
di0+dXJpKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiTm8gVVJJIHByb3ZpZGVk
Iik7CiAgICAgICAgIGxvY2tlci51bmxvY2soKTsKQEAgLTQ4Myw3ICs0OTYsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKIAogICAgIGlmIChwcml2
LT5wbGF5ZXIpIHsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIgPSBw
cml2LT5wbGF5ZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpCi0gICAgICAgICAgICBwcml2LT5j
bGllbnQgPSBuZXcgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoc3JjLCBsb2FkZXIsIHJl
cXVlc3QpOworICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0LCBwcml2LT5wbGF5ZXItPm1lZGlhUGxh
eWVyQ2xpZW50KCktPm1lZGlhUGxheWVyQ09SU01vZGUoKSk7CiAgICAgfQogCiAgICAgaWYgKCFw
cml2LT5jbGllbnQpCkBAIC03NTMsNiArNzY2LDExIEBAIHZvaWQgd2ViS2l0V2ViU3JjU2V0TWVk
aWFQbGF5ZXIoV2ViS2l0V2ViU3JjKiBzcmMsIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5ZXIp
CiAgICAgc3JjLT5wcml2LT5wbGF5ZXIgPSBwbGF5ZXI7CiB9CiAKK2Jvb2wgd2ViS2l0U3JjUGFz
c2VkQ09SU0FjY2Vzc0NoZWNrKFdlYktpdFdlYlNyYyogc3JjKQoreworICAgIHJldHVybiBzcmMt
PnByaXYtPmNvcnNBY2Nlc3NDaGVjayA9PSBDT1JTU3VjY2VzczsKK30KKwogU3RyZWFtaW5nQ2xp
ZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgOiBtX3NyYyhhZG9w
dEdSZWYoc3RhdGljX2Nhc3Q8R3N0RWxlbWVudCo+KGdzdF9vYmplY3RfcmVmKHNyYykpKSkKIHsK
QEAgLTc4MSwxNiArNzk5LDE5IEBAIGNoYXIqIFN0cmVhbWluZ0NsaWVudDo6Y3JlYXRlUmVhZEJ1
ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplCiAgICAgcmV0dXJu
IGdldEdzdEJ1ZmZlckRhdGFQb2ludGVyKGJ1ZmZlcik7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xp
ZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENPUlNBY2Nlc3NDaGVja1Jlc3VsdCBjb3JzQWNj
ZXNzQ2hlY2spCiB7CiAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3Ny
Yy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAog
ICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmVjZWl2ZWQgcmVzcG9uc2U6ICVkIiwgcmVzcG9u
c2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKLSAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUo
KSA+PSA0MDApIHsKLSAgICAgICAgLy8gUmVjZWl2ZWQgZXJyb3IgY29kZQotICAgICAgICBHU1Rf
RUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVkICVkIEhUVFAgZXJy
b3IgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAoMCkpOworICAgIGlmIChyZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCB8fCBjb3JzQWNjZXNzQ2hlY2sgPT0gQ09SU0Zh
aWx1cmUpIHsKKyAgICAgICAgLy8gUmVjZWl2ZWQgZXJyb3IgY29kZSBvciBDT1JTIGNoZWNrIGZh
aWxlZAorICAgICAgICBpZiAoY29yc0FjY2Vzc0NoZWNrID09IENPUlNGYWlsdXJlKQorICAgICAg
ICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJDcm9zcy1vcmln
aW4gc3RyZWFtIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBv
bGljeS4iKSwgKG51bGxwdHIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgR1NUX0VMRU1F
TlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNv
ZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSwgKG51bGxwdHIpKTsKICAgICAgICAgZ3N0
X2FwcF9zcmNfZW5kX29mX3N0cmVhbShwcml2LT5hcHBzcmMpOwogICAgICAgICB3ZWJLaXRXZWJT
cmNTdG9wKHNyYyk7CiAgICAgICAgIHJldHVybjsKQEAgLTc5OCw2ICs4MTksOCBAQCB2b2lkIFN0
cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKIAogICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRf
TE9DSyhzcmMpKTsKIAorICAgIHByaXYtPmNvcnNBY2Nlc3NDaGVjayA9IGNvcnNBY2Nlc3NDaGVj
azsKKwogICAgIGlmIChwcml2LT5zZWVrU291cmNlLmlzQWN0aXZlKCkpIHsKICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChzcmMsICJTZWVrIGluIHByb2dyZXNzLCBpZ25vcmluZyByZXNwb25zZSIp
OwogICAgICAgICByZXR1cm47CkBAIC04MTEsNyArODM0LDcgQEAgdm9pZCBTdHJlYW1pbmdDbGll
bnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSAhPSAyMDYp
IHsKICAgICAgICAgICAgIC8vIFJhbmdlIHJlcXVlc3QgY29tcGxldGVseSBmYWlsZWQuCiAgICAg
ICAgICAgICBsb2NrZXIudW5sb2NrKCk7Ci0gICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihz
cmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgJWQgSFRUUCBzdGF0dXMg
Y29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAoMCkpOworICAgICAgICAgICAgR1NU
X0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCB1bmV4cGVjdGVk
ICVkIEhUVFAgc3RhdHVzIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSwgKG51bGxw
dHIpKTsKICAgICAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBwc3Jj
KTsKICAgICAgICAgICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTk2OSwxMSArOTkyLDIyIEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVOb3Rp
ZnlGaW5pc2hlZCgpCiAgICAgfQogfQogCi1DYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6
Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIENhY2hlZFJl
c291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQorQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KFdlYktpdFdlYlNyYyogc3JjLCBDYWNoZWRSZXNvdXJjZUxvYWRlciogcmVzb3Vy
Y2VMb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgTWVkaWFQbGF5ZXJDbGll
bnQ6OkNPUlNNb2RlIGNvcnNNb2RlKQogICAgIDogU3RyZWFtaW5nQ2xpZW50KHNyYykKIHsKICAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGJ1ZmZlcmluZ1BvbGljeSA9IHJlcXVlc3QudXJsKCkucHJv
dG9jb2xJcygiYmxvYiIpID8gQnVmZmVyRGF0YSA6IERvTm90QnVmZmVyRGF0YTsKLSAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVSZXF1ZXN0KHJlcXVlc3QsIFJlc291cmNlTG9hZGVyT3B0
aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwgYnVmZmVyaW5nUG9saWN5LCBE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5D
cmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrLCBVc2VEZWZhdWx0T3JpZ2luUmVzdHJpY3Rpb25z
Rm9yVHlwZSkpOworICAgIFJlcXVlc3RPcmlnaW5Qb2xpY3kgY29yc1BvbGljeSA9IGNvcnNNb2Rl
ICE9IE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCA/IFBvdGVudGlhbGx5Q3Jvc3NPcmln
aW5FbmFibGVkIDogVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGU7CisgICAgU3Rv
cmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGNvcnNNb2RlID09IE1lZGlhUGxheWVy
Q2xpZW50OjpVc2VDcmVkZW50aWFscyA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFs
bG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMo
U2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgYWxsb3dD
cmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1Nl
Y3VyaXR5Q2hlY2ssIGNvcnNQb2xpY3kpOworCisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNh
Y2hlUmVxdWVzdChyZXF1ZXN0LCBvcHRpb25zKTsKKworICAgIGlmIChjb3JzTW9kZSAhPSBNZWRp
YVBsYXllckNsaWVudDo6VW5zcGVjaWZpZWQpIHsKKyAgICAgICAgbV9vcmlnaW4gPSByZXNvdXJj
ZUxvYWRlci0+ZG9jdW1lbnQoKSA/IHJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpIDogbnVsbHB0cjsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRy
b2woY2FjaGVSZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmlnaW4uZ2V0KCks
IGFsbG93Q3JlZGVudGlhbHMpOworICAgIH0KKworICAgIC8vIFRPRE86IERlY2lkZSB3aGV0aGVy
IHRvIHVzZSBwcmVmbGlnaHQgbW9kZSBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzIChzZWUgaHR0
cDovL3drYnVnLmNvbS8xMzE0ODQpLgogICAgIG1fcmVzb3VyY2UgPSByZXNvdXJjZUxvYWRlci0+
cmVxdWVzdFJhd1Jlc291cmNlKGNhY2hlUmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCiAg
ICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKQEAgLTEwMDMsOSArMTAzNywxMiBA
QCBjaGFyKiBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVm
ZmVyKENhY2hlZFJlc291cmNlKiwgc2l6ZQogICAgIHJldHVybiBjcmVhdGVSZWFkQnVmZmVyKHJl
cXVlc3RlZFNpemUsIGFjdHVhbFNpemUpOwogfQogCi12b2lkIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50
OjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChyZXNw
b25zZSk7CisgICAgQ09SU0FjY2Vzc0NoZWNrUmVzdWx0IGNvcnNBY2Nlc3NDaGVjayA9IENPUlNO
b0NoZWNrOworICAgIGlmIChtX29yaWdpbikKKyAgICAgICAgY29yc0FjY2Vzc0NoZWNrID0gKG1f
b3JpZ2luLT5jYW5SZXF1ZXN0KHJlc3BvbnNlLnVybCgpKSB8fCByZXNvdXJjZS0+cGFzc2VzQWNj
ZXNzQ29udHJvbENoZWNrKG1fb3JpZ2luLmdldCgpKSkgPyBDT1JTU3VjY2VzcyA6IENPUlNGYWls
dXJlOworICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UsIGNvcnNBY2Nlc3NDaGVj
ayk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZl
ZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCkBAIC0xMDY3
LDcgKzExMDQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50Ojp3aWxsU2Vu
ZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcQogCiB2b2lkIFJlc291cmNlSGFu
ZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBoYW5kbGVSZXNwb25zZVJl
Y2VpdmVkKHJlc3BvbnNlKTsKKyAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlLCBD
T1JTTm9DaGVjayk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogLyogZGF0YSAqLywgdW5z
aWduZWQgLyogbGVuZ3RoICovLCBpbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0
cmVhbWVyLmgKaW5kZXggOWVkOTVjZmFkMzNiMTRlM2VhNmEyMWFjZGMwMjE0NWY2NTNjZjNjYS4u
N2ViYTljYmFiYzc4YWY0ZmQ5ZDEzMjMyZjEyYWZkYzUyY2NkZDY1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaApAQCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgX1dl
YktpdFdlYlNyY0NsYXNzIHsKIAogR1R5cGUgd2Via2l0X3dlYl9zcmNfZ2V0X3R5cGUodm9pZCk7
CiB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyosIFdlYkNvcmU6
Ok1lZGlhUGxheWVyKik7Citib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJL
aXRXZWJTcmMqKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0MTJkNjNiZmRmMTViZmFmMGU0
OTgzMTA4NGEyOGI0NDRmZWNiODkuLmVmOWM5M2E5ODRkMmM1MDViNDZjY2VmYTM0NTQ4Mzg1NGQ3
NWZkNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNC0wNC0xMCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtHU3RyZWFtZXJdIE5vIENP
UlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmln
aW4tYWNjZXNzZmFpbHVyZS5odG1sIHZlcmlmaWVzIHRoYXQgY3Jvc3Mtb3JpZ2luIHN0cmVhbXMg
dGhhdCBmYWlsIENPUlMgY2hlY2sKKyAgICAgICAgYXJlIG5vdCBwbGF5ZWQgd2hlbiBjcm9zc29y
aWdpbiBhdHRyaWJ1dGUgaXMgc2V0LgorICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRl
by1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sIHZlcmlmaWVzIHRoYXQgYWNjZXNz
IHRvIHNhbWUtb3JpZ2luIHN0cmVhbXMKKyAgICAgICAgYXJlIHBsYXllZCB3aGVuIGNyb3Nzb3Jp
Z2luIGF0dHJpYnV0ZSBpcyBzZXQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Zp
ZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVy
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczogRW5h
YmxlZCBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1s
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogRGlzYWJsZWQgaHR0cC90ZXN0cy9z
ZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sLgorCiAyMDE0LTA0
LTA5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIxNjY4NjApOiBBU1NFUlRJT04gRkFJTEVEOiAhaXNDYWxjdWxhdGVkKCkgb24gZmFz
dC9jc3MvaW1hZ2Utc2V0LXZhbHVlLW5vdC1yZW1vdmVkLWNyYXNoLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vz
c2ZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92
aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDE1Y2UxZWE2Mjg5MDdlODdmMzZkM2QxODFhZWFiMDJlNjdjZWI2MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFj
Y2Vzc2ZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorRVZFTlQoZXJyb3IpCitF
TkQgT0YgVEVTVAorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU1YmMyNjE1NzU3MTgyNGNkNmE0NGI3MTU1ODUxNTBkOTEyNGJmNTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+CisgIDwh
LS0gVHJ5aW5nIHRvIGFjY2VzcyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSwgYnV0IHJlc3BvbnNl
IGRvZXMgbm90IGNvbnRhaW4gQ09SUyBoZWFkZXJzLgorICAgICAgIFZpZGVvIHBsYXkgYmFjayBp
cyBleHBlY3RlZCB0byBmYWlsLiAtLT4KKyAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8
c2NyaXB0IHNyYz0uLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0uLi8uLi9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcz48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Vycm9yJywgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9KTsKKworICAgICAgICB3YWl0
Rm9yRXZlbnQoJ3BsYXlpbmcnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBmYWlsVGVzdCgiVmlk
ZW8gc3RyZWFtIGFjY2VzcyBzaG91bGQgbm90IGJlIGdyYW50ZWQiKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50
KCk7CisgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Li4vLi4vbWVkaWEvcmVzb3VyY2VzL3Rlc3QiKTsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwODAvIiArIG1lZGlhRmlsZTsKKyAgICAgICAgICAgIHZpZGVvLnBs
YXkoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHZpZGVvIGNyb3Nzb3JpZ2lu
PjwvdmlkZW8+CisgICAgPGNhbnZhcz48L2NhbnZhcz4KKyAgPC9ib2R5PgorPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmln
aW4tYWNjZXNzc2FtZW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZDI1YWJlOTRmYmM2NDJjMGFiOTBjMWNlODI2NGY1YmVjOThmODk0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2lu
LWFjY2Vzc3NhbWVvcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWVjYjIzYWEzN2QwZWI3MGVkNjkz
N2NkMTU3MTU3YjI5NDFlNWJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzxodG1sPgorICA8IS0tIFRyeWluZyB0byBhY2Nlc3MgYSBzYW1lIG9y
aWdpbiByZXNvdXJjZSwgdmlkZW8gZWxlbWVudCBzZXR0aW5nIGNyb3Nzb3JpZ2luIGF0dHJpYnV0
ZS4KKyAgICAgICBWaWRlbyBwbGF5IGJhY2sgaXMgZXhwZWN0ZWQgdG8gc3VjY2VlZC4gLS0+Cisg
IDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vbWVkaWEtcmVz
b3VyY2VzL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vbWVk
aWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgd2FpdEZvckV2ZW50KCdlcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGZhaWxUZXN0
KCJWaWRlbyBzdHJlYW0gYWNjZXNzIHNob3VsZCBzdWNjZWVkIik7CisgICAgICAgIH0pOworCisg
ICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGVu
ZFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAg
ICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgICAgICB2YXIgbWVkaWFGaWxlID0g
ZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vLi4vbWVkaWEvcmVzb3VyY2VzL3Rlc3QiKTsKKyAg
ICAgICAgICAgIHZpZGVvLnNyYyA9IG1lZGlhRmlsZTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXko
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHZpZGVvIGNyb3Nzb3JpZ2luPjwv
dmlkZW8+CisgICAgPGNhbnZhcz48L2NhbnZhcz4KKyAgPC9ib2R5PgorPC9oZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNzcwYWI3MGRhN2U1OWIz
YmYzYjQ4ODI4OGZhYTBjMDE0MzgzY2NiLi5lZmZkYmE5MDU2OWJjMDczODhlYzU4YmM5YjQzMzEx
ODczMTE1OTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMzAyLDkgKzMwMiw2IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmll
bnRhdGlvbgogIyBQcmUtSE1UTDUgcGFyc2VyIHF1aXJrcyBvbmx5IGFwcGx5IHRvIHRoZSBtYWMg
cG9ydCBmb3Igbm93LgogZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbCBb
IFdvbnRGaXggXQogCi0jIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMgaXMgaW1w
bGVtZW50ZWQgeWV0LgotQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tcmVhZGJhY2suaHRtbCBbIEZhaWx1cmUgXQotCiAjIFBlcmYgdGVzdHMgYXJlIHdheSB0
b28gc2xvdyBhbmQgc29tZSBtYXkgZmFpbCBkdWUgdG8gdGltZW91dC4KIHBlcmYvYWRkaW5nLXJh
ZGlvLWJ1dHRvbnMuaHRtbCBbIFdvbnRGaXggXQogcGVyZi9hcnJheS1iaW5hcnktc2VhcmNoLmh0
bWwgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggYjA4Y2QzMjY3NWQyMzc5NjVmN2Q2NDdiY2ZlMTFkMTg0YWNhOTRjOC4uMzFlZmJkZTdl
OTBjNGExMmE5MTgxYjM3ZTI3YjdiNDk4OTFhMzZkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwNCw5ICszMDQsNiBAQCB3ZWJraXQub3JnL2IvNzky
MDMgZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL21lZGlhLXN0cmVhbS1ldmVudC1jb25zdHJ1Y3Rv
ci5odG1sCiB3ZWJraXQub3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVkaWFzdHJlYW1hdWRpb2Rlc3Rp
bmF0aW9ubm9kZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgd2ViYXVkaW8vbWVk
aWFzdHJlYW1hdWRpb3NvdXJjZW5vZGUuaHRtbCBbIFNraXAgXQogCi0jIE5vIENPUlMgc3VwcG9y
dCBmb3IgbWVkaWEgZWxlbWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0Lgotd2Via2l0Lm9yZy9iLzk5
MDM3IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwg
WyBGYWlsdXJlIF0KLQogIyBOZXcgdGVzdCBpbmZyYXN0cnVjdHVyZSByZXF1aXJlZCAtLSBuZWVk
IGlzb2xhdGVkIHdvcmxkcwogd2Via2l0Lm9yZy9iLzMxNTA4IGh0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzMxNTA4IHBsdWdpbnMvbnBydW50
aW1lL292ZXJyaWRlcy1hbGwtcHJvcGVydGllcy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggNzZmMTIxNzRiMWQ0OWM4MGZjYWRhYjY4Y2I5ZmMyZjBmNWJlYWJjYy4uMTVmNGQ1
MWY2MGJhMzZmNTE1ODVkMDEzNjk3Nzk1ZGExZjM1YTBjYgotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNTAzLDYgKzUwMyw3IEBAIHdlYmtpdC5vcmcvYi84NTUzMiBm
YXN0L3N1Yi1waXhlbC96b29tZWQtaW1hZ2UtdGlsZXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogCiAjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVudHMgaXMgaW1wbGVtZW50ZWQg
eWV0LgogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2suaHRt
bAoraHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5o
dG1sCiAKICMgbWVkaWEvYXVkaW8tcmVwYWludC5odG1sIHNvbWV0aW1lcyBmYWlscyBvbiBMaW9u
IERlYnVnIChUZXN0cykKIHdlYmtpdC5vcmcvYi84NDM1NyBtZWRpYS9hdWRpby1yZXBhaW50Lmh0
bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229130</attachid>
            <date>2014-04-11 06:04:38 -0700</date>
            <delta_ts>2014-04-13 02:33:57 -0700</delta_ts>
            <desc>Fixing crashes</desc>
            <filename>bug-99037-20140411150415.patch</filename>
            <type>text/plain</type>
            <size>20845</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMzMTQyM2VkZWZmMGIw
NzE2ZDU5MTUxOGQ5NmRiODNkOGI0ODgyNC4uMDQ2NzMyMTRiMDMwNDA5ZjM5MTA5MjU0M2MyZjkx
ZTJiZjJjZTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0dTdHJl
YW1lcl0gTm8gQ09SUyBzdXBwb3J0IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwMzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDT1JTIGFjY2VzcyBjb250cm9s
IGNoZWNrIHRvIG1lZGlhIHNvdXJjZXMgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0
LgorCisgICAgICAgIEFkZGVkIGdldHRlciB0byBDT1JTIGFjY2VzcyBjb250cm9sIGNoZWNrIHN0
YXR1cyAodXNlZCB0byBjb21wdXRlIHdoZXRoZXIgdGhlIHN0cmVhbSBpcyB0YWludGVkIG9yIG5v
dCkuCisgICAgICAgIFJlbGF0ZWQgdGVzdCBpcyBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNy
b3NzLW9yaWdpbi1yZWFkYmFjay5odG1sLgorCisgICAgICAgIERpc2FibGVkIGFjY2VzcyB0byBj
cm9zcy1vcmlnaW4gc3RyZWFtcyB0aGF0IGZhaWwgQ09SUyBjaGVjayB3aGVuIGNyb3Nzb3JpZ2lu
IGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAgIFJlbGF0ZWQgdGVzdCBpcyBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLmh0bWwuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1
cmUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tYWNjZXNzc2FtZW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVj
ayk6IFJldHVybiB3aGV0aGVyIG1lZGlhIGlzIGNyb3NzLW9yaWdpbiAodGFpbnRlZCkgb3Igbm90
IGJ5IHF1ZXJ5aW5nIHRoZSBnc3RyZWFtZXIgc291cmNlIGxheWVyLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDogQWRk
ZWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrIGRl
Y2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOiBQYXNz
ZWQgQ09SUyBtb2RlIHBhcmFtZXRlciB0byB0aGUgc3RyZWFtaW5nIGNsaWVudC4gSW4gY2FzZSBv
ZiBDT1JTIGNoZWNrIGZhaWx1cmUsIHN0b3AgdGhlIHJlc291cmNlIGxvYWRpbmcuCisgICAgICAg
ICh3ZWJLaXRTcmNQYXNzZWRDT1JTQWNjZXNzQ2hlY2spOiBSZXR1cm4gd2hldGhlciBDT1JTIGFj
Y2VzcyBjb250cm9sIGNoZWNrIHdhcyBkb25lIGFuZCBzdWNjZXNzZnVsLgorICAgICAgICAoU3Ry
ZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKTogVGFrZSBhIHBhcmFtZXRlciB0
byBhc3NpZ24gdGhlIENPUlMgYWNjZXNzIGNvbnRyb2wgY2hlY2sgcmVzdWx0LgorICAgICAgICAo
Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50KTogVXBkYXRlZCBzZXR0aW5nIG9mIHRoZSBSZXNvdXJjZUxvYWRlck9wdGlvbnMgYWNjb3Jk
aW5nIENPUlMgbW9kZS4KKyAgICAgICAgKENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpy
ZXNwb25zZVJlY2VpdmVkKTogQ2hlY2sgQ09SUyBhbmQgcGFzcyByZXN1bHQgdG8gaGFuZGxlUmVz
cG9uc2VSZWNlaXZlZC4KKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOiBObyBDT1JTIGNoZWNrLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaDogQWRkZWQgd2ViS2l0
U3JjUGFzc2VkQ09SU0FjY2Vzc0NoZWNrIGRlY2xhcmF0aW9uLgorCiAyMDE0LTA0LTA5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTY3MDQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyNGFkMGFlYjY4YzM4ZWI0OTcxM2UxOTU4NGU4YmE4NmYz
OGU1NWUwLi43ZWUxOTkxNTY4OWQyNzkzZDJmNzhmNDQ1MGVmYjViZGFmNWEzNmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTg5MSw2
ICsxODkxLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1
ZGlvSW50ZXJydXB0aW9uKCkKICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UobV9wbGF5Qmlu
LmdldCgpLCBtZXNzYWdlKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdAoreworICAgIGlmIChXRUJLSVRfSVNfV0VC
X1NSQyhtX3NvdXJjZS5nZXQoKSkpCisgICAgICAgIHJldHVybiB3ZWJLaXRTcmNQYXNzZWRDT1JT
QWNjZXNzQ2hlY2soV0VCS0lUX1dFQl9TUkMobV9zb3VyY2UuZ2V0KCkpKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZmQ5MGUxMjQ2MTg3MGFiNTM3
MmM2OTk5YTJlNWViZmJhODA5NWRlYS4uOTkzOWNkYmVjNTExYjNiZTI2ZGQwNTViZDRlZGJlOGI5
YTk1MjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtMTU5LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdp
bmVEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuICJHU3RyZWFtZXIiOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTGl2ZVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdHJlYW1pbmc7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9wbGF5QmluOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBiZjAyOTQ4ZTRjODUzYjAxZjkxYTNiYjVl
ZTFiMzA0NDI5OWVkYjc0Li4yYmFhYmQzN2Q2NmFkZThmZWQxYWU0MjZmMzU1YmRmNTVkM2E3MmNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
V2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJHUmVm
UHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyVXRpbGl0aWVzLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CiAjaW5jbHVk
ZSA8Z3N0L2dzdC5oPgpAQCAtNDgsNiArNTAsMTIgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKK2VudW0gQ09SU0FjY2Vzc0NoZWNrUmVzdWx0IHsKKyAgICBDT1JTTm9DaGVjaywKKyAg
ICBDT1JTU3VjY2VzcywKKyAgICBDT1JTRmFpbHVyZQorfTsKKwogY2xhc3MgU3RyZWFtaW5nQ2xp
ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMq
KTsKQEAgLTU4LDcgKzY2LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsKIAogICAgIHByb3Rl
Y3RlZDoKICAgICAgICAgY2hhciogY3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6
ZSwgc2l6ZV90JiBhY3R1YWxTaXplKTsKLSAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2Vp
dmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgdm9pZCBoYW5kbGVSZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQp
OwogICAgICAgICB2b2lkIGhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKICAg
ICAgICAgdm9pZCBoYW5kbGVOb3RpZnlGaW5pc2hlZCgpOwogCkBAIC02OCw3ICs3Niw3IEBAIGNs
YXNzIFN0cmVhbWluZ0NsaWVudCB7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIFN0cmVhbWluZ0NsaWVu
dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hl
ZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9h
ZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlKTsKICAgICAgICAg
dmlydHVhbCB+Q2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoKTsKIAogICAgICAgICAvLyBT
dHJlYW1pbmdDbGllbnQgdmlydHVhbCBtZXRob2RzLgpAQCAtODMsNiArOTEsNyBAQCBjbGFzcyBD
YWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNs
aWVudCwgcHVibGljIFN0cgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UqKTsKIAogICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdS
ZXNvdXJjZT4gbV9yZXNvdXJjZTsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29y
aWdpbjsKIH07CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGlj
IFJlc291cmNlSGFuZGxlQ2xpZW50LCBwdWJsaWMgU3RyZWFtaW5nQ2xpZW50IHsKQEAgLTEyMCw2
ICsxMjksOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgU3RyZWFtaW5n
Q2xpZW50KiBjbGllbnQ7CiAKKyAgICBDT1JTQWNjZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0No
ZWNrOworCiAgICAgZ3VpbnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29s
ZWFuIHNlZWthYmxlOwpAQCAtNDM3LDYgKzQ0OCw4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNy
Y1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogCiAgICAgR011dGV4TG9ja2VyIGxvY2tlcihHU1Rf
T0JKRUNUX0dFVF9MT0NLKHNyYykpOwogCisgICAgcHJpdi0+Y29yc0FjY2Vzc0NoZWNrID0gQ09S
U05vQ2hlY2s7CisKICAgICBpZiAoIXByaXYtPnVyaSkgewogICAgICAgICBHU1RfRVJST1JfT0JK
RUNUKHNyYywgIk5vIFVSSSBwcm92aWRlZCIpOwogICAgICAgICBsb2NrZXIudW5sb2NrKCk7CkBA
IC00ODMsNyArNDk2LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2Vi
U3JjKiBzcmMpCiAKICAgICBpZiAocHJpdi0+cGxheWVyKSB7CiAgICAgICAgIGlmIChDYWNoZWRS
ZXNvdXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxheWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpKQotICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0KTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVu
dCA9IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVxdWVz
dCwgcHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNPUlNNb2Rl
KCkpOwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xpZW50KQpAQCAtNzUzLDYgKzc2NiwxMSBA
QCB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJD
b3JlOjpNZWRpYVBsYXllciogcGxheWVyKQogICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVy
OwogfQogCitib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVjayhXZWJLaXRXZWJTcmMq
IHNyYykKK3sKKyAgICByZXR1cm4gc3JjLT5wcml2LT5jb3JzQWNjZXNzQ2hlY2sgPT0gQ09SU1N1
Y2Nlc3M7Cit9CisKIFN0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNy
Yyogc3JjKQogICAgIDogbV9zcmMoYWRvcHRHUmVmKHN0YXRpY19jYXN0PEdzdEVsZW1lbnQqPihn
c3Rfb2JqZWN0X3JlZihzcmMpKSkpCiB7CkBAIC03ODEsMTYgKzc5OSwxOSBAQCBjaGFyKiBTdHJl
YW1pbmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVf
dCYgYWN0dWFsU2l6ZQogICAgIHJldHVybiBnZXRHc3RCdWZmZXJEYXRhUG9pbnRlcihidWZmZXIp
OwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5k
bGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDT1JT
QWNjZXNzQ2hlY2tSZXN1bHQgY29yc0FjY2Vzc0NoZWNrKQogewogICAgIFdlYktpdFdlYlNyYyog
c3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlJlY2Vp
dmVkIHJlc3BvbnNlOiAlZCIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCi0gICAgaWYg
KHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAgICAgIC8vIFJlY2VpdmVk
IGVycm9yIGNvZGUKLSAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVB
RCwgKCJSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpKSwgKDApKTsKKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDAgfHwg
Y29yc0FjY2Vzc0NoZWNrID09IENPUlNGYWlsdXJlKSB7CisgICAgICAgIC8vIFJlY2VpdmVkIGVy
cm9yIGNvZGUgb3IgQ09SUyBjaGVjayBmYWlsZWQKKyAgICAgICAgaWYgKGNvcnNBY2Nlc3NDaGVj
ayA9PSBDT1JTRmFpbHVyZSkKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVT
T1VSQ0UsIFJFQUQsICgiQ3Jvc3Mtb3JpZ2luIHN0cmVhbSBsb2FkIGRlbmllZCBieSBDcm9zcy1P
cmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIiksIChudWxscHRyKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgi
UmVjZWl2ZWQgJWQgSFRUUCBlcnJvciBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSks
IChudWxscHRyKSk7CiAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBw
c3JjKTsKICAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwogICAgICAgICByZXR1cm47CkBA
IC03OTgsNiArODE5LDggQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVj
ZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKICAgICBHTXV0ZXhMb2Nr
ZXIgbG9ja2VyKEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKKyAgICBwcml2LT5jb3JzQWNj
ZXNzQ2hlY2sgPSBjb3JzQWNjZXNzQ2hlY2s7CisKICAgICBpZiAocHJpdi0+c2Vla1NvdXJjZS5p
c0FjdGl2ZSgpKSB7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU2VlayBpbiBwcm9n
cmVzcywgaWdub3JpbmcgcmVzcG9uc2UiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODExLDcgKzgz
NCw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNl
Lmh0dHBTdGF0dXNDb2RlKCkgIT0gMjA2KSB7CiAgICAgICAgICAgICAvLyBSYW5nZSByZXF1ZXN0
IGNvbXBsZXRlbHkgZmFpbGVkLgogICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwotICAgICAg
ICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCB1
bmV4cGVjdGVkICVkIEhUVFAgc3RhdHVzIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KSwgKDApKTsKKyAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJF
QUQsICgiUmVjZWl2ZWQgdW5leHBlY3RlZCAlZCBIVFRQIHN0YXR1cyBjb2RlIiwgcmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSksIChudWxscHRyKSk7CiAgICAgICAgICAgICBnc3RfYXBwX3NyY19l
bmRfb2Zfc3RyZWFtKHByaXYtPmFwcHNyYyk7CiAgICAgICAgICAgICB3ZWJLaXRXZWJTcmNTdG9w
KHNyYyk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC05NjksMTEgKzk5MiwyMiBAQCB2b2lkIFN0
cmVhbWluZ0NsaWVudDo6aGFuZGxlTm90aWZ5RmluaXNoZWQoKQogICAgIH0KIH0KIAotQ2FjaGVk
UmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyogc3JjLCBDYWNoZWRSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50OjpDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIE1lZGlhUGxheWVyQ2xpZW50OjpDT1JTTW9kZSBjb3JzTW9kZSkKICAgICA6IFN0
cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQ
b2xpY3kgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImJsb2IiKSA/IEJ1ZmZlckRhdGEgOiBE
b05vdEJ1ZmZlckRhdGE7Ci0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlUmVxdWVzdChy
ZXF1ZXN0LCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNv
bnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05v
dEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaywgVXNl
RGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGUpKTsKKyAgICBSZXF1ZXN0T3JpZ2luUG9s
aWN5IGNvcnNQb2xpY3kgPSBjb3JzTW9kZSAhPSBNZWRpYVBsYXllckNsaWVudDo6VW5zcGVjaWZp
ZWQgPyBQb3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCA6IFVzZURlZmF1bHRPcmlnaW5SZXN0
cmljdGlvbnNGb3JUeXBlOworICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMg
PSBjb3JzTW9kZSA9PSBNZWRpYVBsYXllckNsaWVudDo6VXNlQ3JlZGVudGlhbHMgPyBBbGxvd1N0
b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIFJlc291
cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50
LCBidWZmZXJpbmdQb2xpY3ksIGFsbG93Q3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jv
c3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrLCBjb3JzUG9saWN5KTsKKworICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CisK
KyAgICBpZiAoY29yc01vZGUgIT0gTWVkaWFQbGF5ZXJDbGllbnQ6OlVuc3BlY2lmaWVkKSB7Cisg
ICAgICAgIG1fb3JpZ2luID0gcmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCkgPyByZXNvdXJjZUxv
YWRlci0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSA6IG51bGxwdHI7CisgICAgICAgIHVw
ZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGNhY2hlUmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIG1fb3JpZ2luLmdldCgpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICB9CisKKyAg
ICAvLyBUT0RPOiBEZWNpZGUgd2hldGhlciB0byB1c2UgcHJlZmxpZ2h0IG1vZGUgZm9yIGNyb3Nz
LW9yaWdpbiByZXF1ZXN0cyAoc2VlIGh0dHA6Ly93a2J1Zy5jb20vMTMxNDg0KS4KICAgICBtX3Jl
c291cmNlID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3RSYXdSZXNvdXJjZShjYWNoZVJlcXVlc3Qp
OwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQodGhp
cyk7CkBAIC0xMDAzLDkgKzEwMzcsMTIgQEAgY2hhciogQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdD
bGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemUKICAgICBy
ZXR1cm4gY3JlYXRlUmVhZEJ1ZmZlcihyZXF1ZXN0ZWRTaXplLCBhY3R1YWxTaXplKTsKIH0KIAot
dm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChDYWNo
ZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBDYWNo
ZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIGhh
bmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOworICAgIENPUlNBY2Nlc3NDaGVja1Jlc3Vs
dCBjb3JzQWNjZXNzQ2hlY2sgPSBDT1JTTm9DaGVjazsKKyAgICBpZiAobV9vcmlnaW4pCisgICAg
ICAgIGNvcnNBY2Nlc3NDaGVjayA9IChtX29yaWdpbi0+Y2FuUmVxdWVzdChyZXNwb25zZS51cmwo
KSkgfHwgcmVzb3VyY2UtPnBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhtX29yaWdpbi5nZXQoKSkp
ID8gQ09SU1N1Y2Nlc3MgOiBDT1JTRmFpbHVyZTsKKyAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVk
KHJlc3BvbnNlLCBjb3JzQWNjZXNzQ2hlY2spOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50OjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKQpAQCAtMTA2Nyw3ICsxMTA0LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZVN0cmVhbWluZ0NsaWVudDo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3Vy
Y2VSZXEKIAogdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7Ci0gICAgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CisgICAgaGFuZGxlUmVz
cG9uc2VSZWNlaXZlZChyZXNwb25zZSwgQ09SU05vQ2hlY2spOwogfQogCiB2b2lkIFJlc291cmNl
SGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqIC8qIGRhdGEgKi8sIHVuc2lnbmVkIC8qIGxlbmd0aCAqLywgaW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5oCmluZGV4IDllZDk1Y2ZhZDMzYjE0ZTNl
YTZhMjFhY2RjMDIxNDVmNjUzY2YzY2EuLjdlYmE5Y2JhYmM3OGFmNGZkOWQxMzIzMmYxMmFmZGM1
MmNjZGQ2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNDbGFzcyB7CiAKIEdUeXBlIHdlYmtp
dF93ZWJfc3JjX2dldF90eXBlKHZvaWQpOwogdm9pZCB3ZWJLaXRXZWJTcmNTZXRNZWRpYVBsYXll
cihXZWJLaXRXZWJTcmMqLCBXZWJDb3JlOjpNZWRpYVBsYXllciopOworYm9vbCB3ZWJLaXRTcmNQ
YXNzZWRDT1JTQWNjZXNzQ2hlY2soV2ViS2l0V2ViU3JjKik7CiAKIEdfRU5EX0RFQ0xTCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBjNDEyZDYzYmZkZjE1YmZhZjBlNDk4MzEwODRhMjhiNDQ0ZmVjYjg5Li4yZjQ3MmE3YTA4
NzQ2ZGI1MzMzOGQyOGI3ZTRkZWIyOTE1YmRmZmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTQtMDQtMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKwor
ICAgICAgICBbR1N0cmVhbWVyXSBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTAzNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHAvdGVzdHMv
c2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbCB2ZXJpZmllcyB0
aGF0IGNyb3NzLW9yaWdpbiBzdHJlYW1zIHRoYXQgZmFpbCBDT1JTIGNoZWNrCisgICAgICAgIGFy
ZSBub3QgcGxheWVkIHdoZW4gY3Jvc3NvcmlnaW4gYXR0cmlidXRlIGlzIHNldC4KKyAgICAgICAg
IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4u
aHRtbCB2ZXJpZmllcyB0aGF0IGFjY2VzcyB0byBzYW1lLW9yaWdpbiBzdHJlYW1zCisgICAgICAg
IGFyZSBwbGF5ZWQgd2hlbiBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgaXMgc2V0LgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8t
Y3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzc2FtZW9yaWdpbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZWQgaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9uczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnM6IERpc2FibGVkIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vz
c2ZhaWx1cmUuaHRtbC4KKwogMjAxNC0wNC0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTY2ODYwKTogQVNTRVJUSU9OIEZBSUxF
RDogIWlzQ2FsY3VsYXRlZCgpIG9uIGZhc3QvY3NzL2ltYWdlLXNldC12YWx1ZS1ub3QtcmVtb3Zl
ZC1jcmFzaC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNWNlMWVhNjI4OTA3ZTg3ZjM2ZDNkMTgxYWVhYjAy
ZTY3Y2ViNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NmYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK0VWRU5UKGVycm9yKQorRU5EIE9GIFRFU1QKKyAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1
cmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLWFjY2Vzc2ZhaWx1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWJjMjYxNTc1NzE4MjRjZDZhNDRi
NzE1NTg1MTUwZDkxMjRiZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNjZXNzZmFpbHVyZS5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzxodG1sPgorICA8IS0tIFRyeWluZyB0byBhY2Nlc3MgYSBjcm9zcyBvcmln
aW4gcmVzb3VyY2UsIGJ1dCByZXNwb25zZSBkb2VzIG5vdCBjb250YWluIENPUlMgaGVhZGVycy4K
KyAgICAgICBWaWRlbyBwbGF5IGJhY2sgaXMgZXhwZWN0ZWQgdG8gZmFpbC4gLS0+CisgIDxib2R5
IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vbWVkaWEtcmVzb3VyY2Vz
L3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vbWVkaWEtcmVz
b3VyY2VzL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgd2Fp
dEZvckV2ZW50KCdlcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGVuZFRlc3QoKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5aW5nJywgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgZmFpbFRlc3QoIlZpZGVvIHN0cmVhbSBhY2Nlc3Mgc2hvdWxkIG5vdCBiZSBn
cmFudGVkIik7CisgICAgICAgIH0pOworCisgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAg
ICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgdmFyIG1lZGlhRmlsZSA9
IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uLy4uL21lZGlhL3Jlc291cmNlcy90ZXN0Iik7Cisg
ICAgICAgICAgICB2aWRlby5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwLyIgKyBtZWRpYUZp
bGU7CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KworICAgIDx2aWRlbyBjcm9zc29yaWdpbj48L3ZpZGVvPgorICAgIDxjYW52YXM+PC9jYW52YXM+
CisgIDwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tYWNj
ZXNzc2FtZW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQyNWFiZTk0ZmJjNjQyYzBh
YjkwYzFjZTgyNjRmNWJlYzk4Zjg5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFjY2Vzc3NhbWVvcmlnaW4tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorRVZFTlQocGxheWluZykKK0VORCBPRiBURVNUCisg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1hY2Nlc3NzYW1lb3JpZ2luLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjVlY2IyM2FhMzdkMGViNzBlZDY5MzdjZDE1NzE1N2IyOTQxZTViZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2lu
LWFjY2Vzc3NhbWVvcmlnaW4uaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKyAgPCEtLSBU
cnlpbmcgdG8gYWNjZXNzIGEgc2FtZSBvcmlnaW4gcmVzb3VyY2UsIHZpZGVvIGVsZW1lbnQgc2V0
dGluZyBjcm9zc29yaWdpbiBhdHRyaWJ1dGUuCisgICAgICAgVmlkZW8gcGxheSBiYWNrIGlzIGV4
cGVjdGVkIHRvIHN1Y2NlZWQuIC0tPgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxz
Y3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVudCgnZXJyb3InLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICBmYWlsVGVzdCgiVmlkZW8gc3RyZWFtIGFjY2VzcyBzaG91bGQgc3Vj
Y2VlZCIpOworICAgICAgICB9KTsKKworICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXlpbmcnLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAg
IGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAg
ICAgICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uLy4uL21l
ZGlhL3Jlc291cmNlcy90ZXN0Iik7CisgICAgICAgICAgICB2aWRlby5zcmMgPSBtZWRpYUZpbGU7
CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKwor
ICAgIDx2aWRlbyBjcm9zc29yaWdpbj48L3ZpZGVvPgorICAgIDxjYW52YXM+PC9jYW52YXM+Cisg
IDwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMDc3MGFiNzBkYTdlNTliM2JmM2I0ODgyODhmYWEwYzAxNDM4M2NjYi4uZWZmZGJh
OTA1NjliYzA3Mzg4ZWM1OGJjOWI0MzMxMTg3MzExNTkzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMiw5ICszMDIsNiBAQCB3ZWJraXQub3JnL2Iv
ODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgUHJlLUhNVEw1IHBhcnNlciBxdWly
a3Mgb25seSBhcHBseSB0byB0aGUgbWFjIHBvcnQgZm9yIG5vdy4KIGZhc3QvcGFyc2VyL3ByZS1o
dG1sNS1wYXJzZXItcXVpcmtzLmh0bWwgWyBXb250Rml4IF0KIAotIyBObyBDT1JTIHN1cHBvcnQg
Zm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KLUJ1ZyhFRkwpIGh0dHAvdGVz
dHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwgWyBGYWlsdXJlIF0K
LQogIyBQZXJmIHRlc3RzIGFyZSB3YXkgdG9vIHNsb3cgYW5kIHNvbWUgbWF5IGZhaWwgZHVlIHRv
IHRpbWVvdXQuCiBwZXJmL2FkZGluZy1yYWRpby1idXR0b25zLmh0bWwgWyBXb250Rml4IF0KIHBl
cmYvYXJyYXktYmluYXJ5LXNlYXJjaC5odG1sIFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIwOGNkMzI2NzVkMjM3OTY1ZjdkNjQ3YmNm
ZTExZDE4NGFjYTk0YzguLjMxZWZiZGU3ZTkwYzRhMTJhOTE4MWIzN2UyN2I3YjQ5ODkxYTM2ZDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMDQsOSAr
MzA0LDYgQEAgd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZWRp
YS1zdHJlYW0tZXZlbnQtY29uc3RydWN0b3IuaHRtbAogd2Via2l0Lm9yZy9iLzc5MjAzIHdlYmF1
ZGlvL21lZGlhc3RyZWFtYXVkaW9kZXN0aW5hdGlvbm5vZGUuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzc5MjAzIHdlYmF1ZGlvL21lZGlhc3RyZWFtYXVkaW9zb3VyY2Vub2RlLmh0bWwgWyBT
a2lwIF0KIAotIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVu
dGVkIHlldC4KLXdlYmtpdC5vcmcvYi85OTAzNyBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNy
b3NzLW9yaWdpbi1yZWFkYmFjay5odG1sIFsgRmFpbHVyZSBdCi0KICMgTmV3IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgcmVxdWlyZWQgLS0gbmVlZCBpc29sYXRlZCB3b3JsZHMKIHdlYmtpdC5vcmcvYi8z
MTUwOCBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQgWyBTa2lwIF0KIHdlYmtpdC5v
cmcvYi8zMTUwOCBwbHVnaW5zL25wcnVudGltZS9vdmVycmlkZXMtYWxsLXByb3BlcnRpZXMuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDc2ZjEyMTc0YjFkNDljODBmY2FkYWI2
OGNiOWZjMmYwZjViZWFiY2MuLjE1ZjRkNTFmNjBiYTM2ZjUxNTg1ZDAxMzY5Nzc5NWRhMWYzNWEw
Y2IKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwMyw2ICs1MDMs
NyBAQCB3ZWJraXQub3JnL2IvODU1MzIgZmFzdC9zdWItcGl4ZWwvem9vbWVkLWltYWdlLXRpbGVz
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlh
IGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KIGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8t
Y3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jv
c3Mtb3JpZ2luLWFjY2Vzc2ZhaWx1cmUuaHRtbAogCiAjIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRt
bCBzb21ldGltZXMgZmFpbHMgb24gTGlvbiBEZWJ1ZyAoVGVzdHMpCiB3ZWJraXQub3JnL2IvODQz
NTcgbWVkaWEvYXVkaW8tcmVwYWludC5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>