<?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>88349</bug_id>
          
          <creation_ts>2012-06-05 11:15:38 -0700</creation_ts>
          <short_desc>Plumb CORS attribute information from HTMLMediaElement to media players so it can be used</short_desc>
          <delta_ts>2012-06-07 11:38:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88388</dependson>
    
    <dependson>88523</dependson>
    
    <dependson>88529</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ami Fischman">fischman</reporter>
          <assigned_to name="Ami Fischman">fischman</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fischman</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>641735</commentid>
    <comment_count>0</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 11:15:38 -0700</bug_when>
    <thetext>Today media elements ignore the crossorigin attribute because MediaPlayer implementations can&apos;t get at it.
This bug is the webkit side of http://crbug.com/123369, and will require https://chromiumcodereview.appspot.com/10543007 to land first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641737</commentid>
    <comment_count>1</comment_count>
      <attachid>145843</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 11:18:03 -0700</bug_when>
    <thetext>Created attachment 145843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641742</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 11:20:40 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641774</commentid>
    <comment_count>3</comment_count>
      <attachid>145843</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-05 11:43:46 -0700</bug_when>
    <thetext>Comment on attachment 145843
Patch

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

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:306
&gt; -        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url));
&gt; +        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url),
&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerHasCrossOriginAttribute(),
&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerGetCrossOriginAttribute());

Why do the CORS bits take a different path than m_url?  Would it make more sense to add them as a parameter to WebMediaPlayerClientImpl::load ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641793</commentid>
    <comment_count>4</comment_count>
      <attachid>145843</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 12:10:28 -0700</bug_when>
    <thetext>Comment on attachment 145843
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:306
&gt;&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerGetCrossOriginAttribute());
&gt; 
&gt; Why do the CORS bits take a different path than m_url?  Would it make more sense to add them as a parameter to WebMediaPlayerClientImpl::load ?

It wasn&apos;t a conscious decision, but making the change you propose would require touching every port&apos;s MediaPlayerPrivateInterface impl and would result in a much more invasive change, and it&apos;s not clear to me that it&apos;ll result in better code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641846</commentid>
    <comment_count>5</comment_count>
      <attachid>145843</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-05 13:29:47 -0700</bug_when>
    <thetext>Comment on attachment 145843
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:431
&gt; +    virtual bool mediaPlayerHasCrossOriginAttribute() const OVERRIDE;
&gt; +    virtual String mediaPlayerGetCrossOriginAttribute() const OVERRIDE;

There&apos;s no need to have two functions here.  In WebKit, we can distinguish between a null string and an empty string.  We use null strings to represent the lack of an attribute.  Therefore, you can just have one function that returns a String.  If the String isNull(), then you&apos;ll know that the attribute didn&apos;t exist.

&gt; Source/WebKit/chromium/public/WebMediaPlayer.h:106
&gt; +    virtual void load(const WebURL&amp;, bool hasCrossOriginAttr, const WebString&amp; crossOriginAttr) = 0;

Would it make sense to pass a http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/public/WebURLLoaderOptions.h object here (or a similar options object) rather than passing DOM-level concepts like the value of an attribute?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641848</commentid>
    <comment_count>6</comment_count>
      <attachid>145843</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-05 13:33:29 -0700</bug_when>
    <thetext>Comment on attachment 145843
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:306
&gt;&gt;&gt; -        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url));
&gt;&gt;&gt; +        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url),
&gt;&gt;&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerHasCrossOriginAttribute(),
&gt;&gt;&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerGetCrossOriginAttribute());
&gt;&gt; 
&gt;&gt; Why do the CORS bits take a different path than m_url?  Would it make more sense to add them as a parameter to WebMediaPlayerClientImpl::load ?
&gt; 
&gt; It wasn&apos;t a conscious decision, but making the change you propose would require touching every port&apos;s MediaPlayerPrivateInterface impl and would result in a much more invasive change, and it&apos;s not clear to me that it&apos;ll result in better code.

Hum...  I wonder if we should extend the load function to take an options object, similar to how ThreadableLoader works.  Then we could extend this list in the future without too much trouble.

It&apos;s also likely that we shouldn&apos;t be dealing with DOM-level concepts like attributes at this layer.  We don&apos;t want every port to need to parse and understand this attribute.  Instead, some object closer to the element itself should read its properties and set some loader flags appropriately according to the semantics of the attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641851</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-05 13:41:26 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; Hum...  I wonder if we should extend the load function to take an options object, similar to how ThreadableLoader works.  Then we could extend this list in the future without too much trouble.
&gt; 
&gt; It&apos;s also likely that we shouldn&apos;t be dealing with DOM-level concepts like attributes at this layer.  We don&apos;t want every port to need to parse and understand this attribute.  Instead, some object closer to the element itself should read its properties and set some loader flags appropriately according to the semantics of the attribute.

I think this is a great idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641911</commentid>
    <comment_count>8</comment_count>
      <attachid>145873</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 14:50:25 -0700</bug_when>
    <thetext>Created attachment 145873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641913</commentid>
    <comment_count>9</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 14:53:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 145843 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145843&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:306
&gt; &gt;&gt;&gt; -        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url));
&gt; &gt;&gt;&gt; +        m_webMediaPlayer-&gt;load(KURL(ParsedURLString, m_url),
&gt; &gt;&gt;&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerHasCrossOriginAttribute(),
&gt; &gt;&gt;&gt; +                               m_mediaPlayer-&gt;mediaPlayerClient()-&gt;mediaPlayerGetCrossOriginAttribute());
&gt; &gt;&gt; 
&gt; &gt;&gt; Why do the CORS bits take a different path than m_url?  Would it make more sense to add them as a parameter to WebMediaPlayerClientImpl::load ?
&gt; &gt; 
&gt; &gt; It wasn&apos;t a conscious decision, but making the change you propose would require touching every port&apos;s MediaPlayerPrivateInterface impl and would result in a much more invasive change, and it&apos;s not clear to me that it&apos;ll result in better code.
&gt; 
&gt; Hum...  I wonder if we should extend the load function to take an options object, similar to how ThreadableLoader works.  Then we could extend this list in the future without too much trouble.
&gt; 
&gt; It&apos;s also likely that we shouldn&apos;t be dealing with DOM-level concepts like attributes at this layer.  We don&apos;t want every port to need to parse and understand this attribute.  Instead, some object closer to the element itself should read its properties and set some loader flags appropriately according to the semantics of the attribute.

I replaced the explicit has/get string approach with a 3-value enum (Unspecified/Anonymous/UseCredentials) and updated the chromium-side patch to match.  This is half-way between my first approach and a LoaderOptions approach; it achieves the goal of containing attribute parsing to the HTMLMediaElement, but doesn&apos;t require me to touch every port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641921</commentid>
    <comment_count>10</comment_count>
      <attachid>145876</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-05 15:01:36 -0700</bug_when>
    <thetext>Created attachment 145876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641931</commentid>
    <comment_count>11</comment_count>
      <attachid>145876</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-05 15:13:32 -0700</bug_when>
    <thetext>Comment on attachment 145876
Patch

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

Looks fine, with one naming nit.  Once you land the Chromium-side change, can you write a test that shows the crossorigin attribute working correctly?

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests; do we have a version of http/tests supporting different origins?

Yes.  Take a look in LayoutTests/http for tests related to access control and/or CORS.  We also have tests for the crossorigin atribute for img.

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:104
&gt; +    enum CrossOriginAttribute { Unspecified, Anonymous, UseCredentials };

CrossOriginAttribute =&gt; CORSMode ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642376</commentid>
    <comment_count>12</comment_count>
      <attachid>145876</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-06 04:48:54 -0700</bug_when>
    <thetext>Comment on attachment 145876
Patch

Attachment 145876 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12893869</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642639</commentid>
    <comment_count>13</comment_count>
      <attachid>146074</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 11:30:14 -0700</bug_when>
    <thetext>Created attachment 146074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642641</commentid>
    <comment_count>14</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 11:32:04 -0700</bug_when>
    <thetext>Added test, renamed enum to match WebKitAPI style, moved COMPILE_ASSERT to the unified file, and updated CanvasRenderingContext to use CORSMode for HTMLVideoElements.

Adam: PTAL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642699</commentid>
    <comment_count>15</comment_count>
      <attachid>146074</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-06 12:36:37 -0700</bug_when>
    <thetext>Comment on attachment 146074
Patch

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

&gt; LayoutTests/http/tests/security/video-cross-origin-readback.html:7
&gt; +        if (window.layoutTestController)
&gt; +            layoutTestController.overridePreference(&quot;WebKitWebGLEnabled&quot;, &quot;1&quot;);

Does this test require WebGL? Aren&apos;t there ports the implement &lt;video&gt; that don&apos;t implement WebGL?

You could also test it  by trying to read pixels from a standard &lt;canvas &gt; into which &lt;video&gt; pixels have been rendered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642714</commentid>
    <comment_count>16</comment_count>
      <attachid>146089</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 12:56:36 -0700</bug_when>
    <thetext>Created attachment 146089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642715</commentid>
    <comment_count>17</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 12:57:09 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 146074 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146074&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/security/video-cross-origin-readback.html:7
&gt; &gt; +        if (window.layoutTestController)
&gt; &gt; +            layoutTestController.overridePreference(&quot;WebKitWebGLEnabled&quot;, &quot;1&quot;);
&gt; 
&gt; Does this test require WebGL? Aren&apos;t there ports the implement &lt;video&gt; that don&apos;t implement WebGL?
&gt; 
&gt; You could also test it  by trying to read pixels from a standard &lt;canvas &gt; into which &lt;video&gt; pixels have been rendered.

Great idea; done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642746</commentid>
    <comment_count>18</comment_count>
      <attachid>146089</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-06 13:25:36 -0700</bug_when>
    <thetext>Comment on attachment 146089
Patch

Looks good to me but I don&apos;t have one of the magic email addresses so I won&apos;t r+ it. 

Thanks Ami!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642776</commentid>
    <comment_count>19</comment_count>
      <attachid>146089</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-06 13:58:52 -0700</bug_when>
    <thetext>Comment on attachment 146089
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:356
&gt; +    m_corsModeAtLastLoad = MediaPlayerClient::Unspecified;
&gt; +    if (m_mediaPlayerClient)
&gt; +        m_corsModeAtLastLoad = m_mediaPlayerClient-&gt;mediaPlayerCORSMode();

What about the following case:

1) I kick off a non-CORS enabled load.  It succeeds.  My HTMLVideoElement now contains sensitive information.
2) I kick off a CORS enabled load, but then I cancel it immediately after.

It seems like there&apos;s a risk that we&apos;ll now think that the sensitive data in the HTMLVideoElement was loaded with CORS.  Can this occur?  If this can&apos;t occur, how do we know that the code won&apos;t change in the future in such a way to make it possible?

It seems like a better design is to tie this state to the response and then having a way to ask the video element whether the thing it is currently displaying came in an response that was a result of a CORS-enabled request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642830</commentid>
    <comment_count>20</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 14:46:11 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 146089 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146089&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:356
&gt; &gt; +    m_corsModeAtLastLoad = MediaPlayerClient::Unspecified;
&gt; &gt; +    if (m_mediaPlayerClient)
&gt; &gt; +        m_corsModeAtLastLoad = m_mediaPlayerClient-&gt;mediaPlayerCORSMode();
&gt; 
&gt; What about the following case:
&gt; 
&gt; 1) I kick off a non-CORS enabled load.  It succeeds.  My HTMLVideoElement now contains sensitive information.
&gt; 2) I kick off a CORS enabled load, but then I cancel it immediately after.
&gt; It seems like there&apos;s a risk that we&apos;ll now think that the sensitive data in the HTMLVideoElement was loaded with CORS.  Can this occur?  

No.  The first thing load() does is overwrite m_corsModeAtLastLoad back to Unspecified, which causes the stricter checks to be performed downstream.

&gt; If this can&apos;t occur, how do we know that the code won&apos;t change in the future in such a way to make it possible?

Of course this is never knowable, but I take your point that robustness is a good thing.

&gt; It seems like a better design is to tie this state to the response and then having a way to ask the video element whether the thing it is currently displaying came in an response that was a result of a CORS-enabled request.

I don&apos;t know how you&apos;re visualizing this, but the way I see it is: make MediaPlayerPrivateInterface::load() return an asyncly-populated response object, and pass that back up through the call-chain to HTMLMediaElement::loadResource so that future questions can be asked of HTMLMediaElement about the options that were attached to the &quot;currently displayed&quot; response.  But I don&apos;t see how that&apos;d be any more robust than the current patch, since you still have to hold on to something that was &quot;current as of the last load&quot; as a proxy for what&apos;s &quot;currently displaying&quot;, and it&apos;d have the same characteristics in terms of load/cancel/etc.

Maybe I&apos;m misunderstanding your suggestion, in which case can you make it more explicit/concrete?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642837</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-06 14:50:56 -0700</bug_when>
    <thetext>&gt; Maybe I&apos;m misunderstanding your suggestion, in which case can you make it more explicit/concrete?

I don&apos;t have a specific design in mind for media.  That&apos;s just the approach we use for everything else that uses CORS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642841</commentid>
    <comment_count>22</comment_count>
      <attachid>146089</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-06 14:52:47 -0700</bug_when>
    <thetext>Comment on attachment 146089
Patch

How does your patch work for ports that don&apos;t implement CORS in their media loading pipelines?  It seems like we&apos;ll assume that the load was valid w.r.t. CORS without any assurances from the network stack.  In that case, we&apos;ll see that we tried to use CORS to kick off the last load and assume that the result is safe to draw on to the canvas...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642895</commentid>
    <comment_count>23</comment_count>
      <attachid>146129</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 15:35:19 -0700</bug_when>
    <thetext>Created attachment 146129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642899</commentid>
    <comment_count>24</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 15:37:06 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 146089 [details])
&gt; How does your patch work for ports that don&apos;t implement CORS in their media loading pipelines?  It seems like we&apos;ll assume that the load was valid w.r.t. CORS without any assurances from the network stack.  In that case, we&apos;ll see that we tried to use CORS to kick off the last load and assume that the result is safe to draw on to the canvas...

Fair enough.  Since media loading is heavily port-specific (unfortunately) and since my goal here is to get a patch that can be safely merged, I opted to make the platform-specificity fueled by an #if PLATFORM(CHROMIUM) instead of the alternative (overhaul the load API across all ports backed by a dummy impl in all but chromium).  WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642918</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-06 15:57:00 -0700</bug_when>
    <thetext>Adding more PLATFORM(CHROMIUM) ifdefs isn&apos;t the right approach.  I&apos;m sorry that I&apos;m distracted today and not able to provide you with more concrete guidance.

I&apos;m not familiar with the media loading process, but is there no information that flow back from the loader into WebCore that indicates, for example, that the load is complete or provides a reference to the underlying video retrieved from the network?  If there is such a pathway or data structure, that would seems like a better place for the network stack to indiciate that a CORS-enabled load succeeded.  A non-CORS-aware network stack would presumably indicate that the CORS status of this response is unknown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642960</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-06 16:57:08 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Adding more PLATFORM(CHROMIUM) ifdefs isn&apos;t the right approach. 
&gt; 
I agree!

&gt; I&apos;m not familiar with the media loading process, but is there no information that flow back from the loader into WebCore that indicates, for example, that the load is complete or provides a reference to the underlying video retrieved from the network?  If there is such a pathway or data structure, that would seems like a better place for the network stack to indiciate that a CORS-enabled load succeeded.  A non-CORS-aware network stack would presumably indicate that the CORS status of this response is unknown.
&gt; 
What if you don&apos;t store any CORS state in MediaPlayer, but instead query the media engine for the CORS status of the current load? 


MediaPlayerClient::CORSMode MediaPlayer::corsModeAtLastLoad() const
{
    return m_private-&gt;corsMode();
}

Make the new MediaPlayerPrivateInterface method return Unspecified by default, so ports will automatically signal that they don&apos;t have a CORS-aware network stack until they override it.

    virtual MediaPlayerClient::CORSMode corsMode() const { return NoPlatformMedia; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642977</commentid>
    <comment_count>27</comment_count>
      <attachid>146153</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 17:07:10 -0700</bug_when>
    <thetext>Created attachment 146153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642979</commentid>
    <comment_count>28</comment_count>
      <attachid>146153</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-06 17:09:43 -0700</bug_when>
    <thetext>Comment on attachment 146153
Patch

This looks great.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642984</commentid>
    <comment_count>29</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 17:14:37 -0700</bug_when>
    <thetext>I expected to need to modify the ports that don&apos;t use MPPI (QTMovie, QTMovieGWorld, QTMovieVisualContext, GStreamerGWorld, AVPlayer, AVCFPlayer).  I clearly don&apos;t understand how MediaPlayer.h:PlatformMedia is meant to work.  We&apos;ll see what EWS says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643033</commentid>
    <comment_count>30</comment_count>
      <attachid>146153</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2012-06-06 18:09:56 -0700</bug_when>
    <thetext>Comment on attachment 146153
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext.cpp:83
&gt; +    if (!video-&gt;player()-&gt;didPassCORSAccessCheck() &amp;&amp; wouldTaintOrigin(video-&gt;currentSrc()))

AFAIK if video hasn&apos;t loaded a src yet then player() is NULL we&apos;d crash

Want to take a page out of HTMLMediaElement::hasSingleSecurityOrigin()&apos;s book, which checks for m_player ptr before delegating to the player?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643067</commentid>
    <comment_count>31</comment_count>
      <attachid>146174</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 18:40:07 -0700</bug_when>
    <thetext>Created attachment 146174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643068</commentid>
    <comment_count>32</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-06 18:40:31 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 146153 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146153&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext.cpp:83
&gt; &gt; +    if (!video-&gt;player()-&gt;didPassCORSAccessCheck() &amp;&amp; wouldTaintOrigin(video-&gt;currentSrc()))
&gt; 
&gt; AFAIK if video hasn&apos;t loaded a src yet then player() is NULL we&apos;d crash
&gt; 
&gt; Want to take a page out of HTMLMediaElement::hasSingleSecurityOrigin()&apos;s book, which checks for m_player ptr before delegating to the player?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643327</commentid>
    <comment_count>33</comment_count>
      <attachid>146174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 01:48:42 -0700</bug_when>
    <thetext>Comment on attachment 146174
Patch

Clearing flags on attachment: 146174

Committed r119694: &lt;http://trac.webkit.org/changeset/119694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643328</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 01:48:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643364</commentid>
    <comment_count>35</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2012-06-07 02:52:07 -0700</bug_when>
    <thetext>Newly added test fails on Qt,Lion, GTK, EFL after r119694:
http/tests/security/video-cross-origin-readback.html

--- /ramdisk/qt-linux-release/build/layout-test-results/http/tests/security/video-cross-origin-readback-expected.txt 
+++ /ramdisk/qt-linux-release/build/layout-test-results/http/tests/security/video-cross-origin-readback-actual.txt 
@@ -1,3 +1,4 @@
-EVENT(playing)
+EVENT(error)
+error: {&quot;code&quot;:4} FAIL
 END OF TEST</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643462</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 05:53:16 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88529</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643621</commentid>
    <comment_count>37</comment_count>
      <attachid>146308</attachid>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-07 09:33:57 -0700</bug_when>
    <thetext>Created attachment 146308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643629</commentid>
    <comment_count>38</comment_count>
    <who name="Ami Fischman">fischman</who>
    <bug_when>2012-06-07 09:40:38 -0700</bug_when>
    <thetext>Yesterday&apos;s patch got rolled out for breaking a chromium-side test, which was then DISABLED_.  This patch is a revert of the rollout with the addition of TestExpectations/Skipped edits for non-chromium ports to skip the new layouttest (since no port other than chromium supports CORS for media).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643735</commentid>
    <comment_count>39</comment_count>
      <attachid>146308</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 11:37:57 -0700</bug_when>
    <thetext>Comment on attachment 146308
Patch

Clearing flags on attachment: 146308

Committed r119742: &lt;http://trac.webkit.org/changeset/119742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643737</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 11:38:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145843</attachid>
            <date>2012-06-05 11:18:03 -0700</date>
            <delta_ts>2012-06-05 14:50:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120605111802.patch</filename>
            <type>text/plain</type>
            <size>5679</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhiZmM2Mzc3ODYxYjk3
MmJlMjBkMmM5M2FjMjVjYzU2MTYyMWY1MC4uZmZkZTI5ZTQxNDE2YWFjMGE3MjRkNjBhZGNjNzkw
ODE4YmRkZDc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBkbyB3ZSBoYXZlIGEgdmVyc2lvbiBvZiBodHRwL3Rl
c3RzIHN1cHBvcnRpbmcgZGlmZmVyZW50IG9yaWdpbnM/CisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJIYXNDcm9zc09yaWdpbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyR2V0Q3Jvc3NPcmln
aW5BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAoSFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXll
ckhhc0Nyb3NzT3JpZ2luQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjptZWRpYVBsYXllckdldENyb3NzT3JpZ2luQXR0cmlidXRlKToKKwogMjAxMi0wNi0w
MiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1
aWxkIGZpeCBhZnRlciByMTE5MzMwLiBVbm5lc3QgdGhlIGNsYXNzIGZvciBub3cuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDMzNTZiY2QyNGZhNjgxZjQwYzY3ODI5YmZhNzk2ZDU0OGRj
Y2ZjNGEuLjU3Mjc0ODU2M2Y2MjA3MmRlOGZiZGFkNDAzOTAyMjIwMTY1NGRkNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFtaSBGaXNj
aG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JTIGF0dHJp
YnV0ZSBpbmZvcm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxheWVycyBz
byBpdCBjYW4gYmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5
ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6CisKIDIw
MTItMDYtMDEgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gU29mdHdhcmUgY29tcG9zaXRvciBpbml0aWFsaXphdGlvbiBhbmQgYmFzZSBj
bGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwYWY2
MDlmZjg4NzM2MWUyZGEyOWRhYzk2NzdlODE4OWI5MGZkOGU2Li5jYTkzZGE0YjJmODk4NDM5MDg1
Mzc5NzgxZWY3ZTM2NTUyNmExNjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTQ0NTUsNiArNDQ1NSwxNiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdAogCiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJIYXNDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOworfQorCitT
dHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJHZXRDcm9zc09yaWdpbkF0dHJpYnV0
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9z
c29yaWdpbkF0dHIpOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTmVl
ZHNTaXRlU3BlY2lmaWNIYWNrcygpIGNvbnN0CiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0g
ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKaW5kZXggNTM2M2FlMjU1NTE1YWM2Y2E3ZWJmMGY5YTU2ODc2NTIyZjhmZGE3NC4uNzc3ZjQz
ZDA3MTlmYzNhMTA0ODY0NTRlMThhNWQxZDJjZGQ1YzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTQyNyw2ICs0MjcsOCBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIG1lZGlhUGxheWVySGFzQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllckdldENyb3NzT3JpZ2luQXR0
cmlidXRlKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJO
ZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJp
bmcgbWVkaWFQbGF5ZXJEb2N1bWVudEhvc3QoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDUxNmYyZmU5ODgx
ZTYyYmJkNmVmZjhiMDNhNmYxMGY4YThhNjY1NDkuLjA5YWE2MDUwMGFkNmM3ZjFmYjViYWY0ZGYw
ODg5OTI5NjYzNjZkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaApAQCAtMTc4LDYgKzE3OCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
U3RyaW5nIG1lZGlhUGxheWVyUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQog
ICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4g
U3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJIYXNDcm9zc09yaWdpbkF0
dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgbWVk
aWFQbGF5ZXJHZXRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygp
OyB9CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCA0NDRhMmNj
OTAxZjdlYzRmM2IwZjNiZGYyMTdhZTE5NDhkMmRlMzRhLi5hYjAxYjhkYTM3N2ZkNDg2MTJmZjZh
MGM1MWQ1NzUzZWUyZGNiYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhUGxheWVyLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViTWVkaWFQbGF5ZXIoKSB7fQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2Vi
VVJMJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFdlYlVSTCYsIGJvb2wgaGFz
Q3Jvc3NPcmlnaW5BdHRyLCBjb25zdCBXZWJTdHJpbmcmIGNyb3NzT3JpZ2luQXR0cikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCkgPSAwOwogCiAgICAgLy8gUGxheWJhY2sgY29u
dHJvbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA0NGU1MWNkODc5N2IzYmU5ZDA0MDU5MWZlMDIwOTlj
ZmEzZmQ2NGU2Li5mZmNjNjUyYTI3OWQ2ODY3YTcyMDc3N2FhMjZiNGY3ZmRiMzcyM2M3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTMwMSw3ICszMDEsOSBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6bG9hZEludGVybmFsKCkKICAgICAgICAgLy8gTWFrZSBzdXJlIGlmIHdlIGNyZWF0ZS9y
ZS1jcmVhdGUgdGhlIFdlYk1lZGlhUGxheWVyIHRoYXQgd2UgdXBkYXRlIG91ciB3cmFwcGVyLgog
ICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIud3JhcChtX3dlYk1lZGlhUGxheWVyLT5hdWRp
b1NvdXJjZVByb3ZpZGVyKCkpOwogI2VuZGlmCi0gICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmxv
YWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSk7CisgICAgICAgIG1fd2ViTWVkaWFQbGF5
ZXItPmxvYWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBs
YXllckhhc0Nyb3NzT3JpZ2luQXR0cmlidXRlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJHZXRD
cm9zc09yaWdpbkF0dHJpYnV0ZSgpKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145873</attachid>
            <date>2012-06-05 14:50:25 -0700</date>
            <delta_ts>2012-06-05 15:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120605145024.patch</filename>
            <type>text/plain</type>
            <size>7934</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMzYWY4YTE5ZjEzOWU3
NzVlN2EyMzYyYTBjZTJlNzlkODU3YWFkOS4uNWZlY2M3YmQ5MDVhOTIzY2ZmZjI1NTAyMzM5NTRl
MDBhZTZlNmE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBkbyB3ZSBoYXZlIGEgdmVyc2lvbiBvZiBodHRwL3Rl
c3RzIHN1cHBvcnRpbmcgZGlmZmVyZW50IG9yaWdpbnM/CisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJIYXNDcm9zc09yaWdpbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyR2V0Q3Jvc3NPcmln
aW5BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAoSFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXll
ckhhc0Nyb3NzT3JpZ2luQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjptZWRpYVBsYXllckdldENyb3NzT3JpZ2luQXR0cmlidXRlKToKKwogMjAxMi0wNi0w
NSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExOTQ2NywgcjExOTQ3MSwgYW5kIHIxMTk0NzYuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM0YjgzMmEzM2ZlYWViOGM5ZmQ1YzAzNWY0Mzlk
MzU1ZDczZGQxYTguLjRiMDI5OWZhNTc2OWFkOWE3YWFjNWVjZDk4MTAyZDMxNDRhOWI2ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFt
aSBGaXNjaG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JT
IGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxh
eWVycyBzbyBpdCBjYW4gYmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVk
aWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6
CisKIDIwMTItMDYtMDUgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBBZGQgJ2lzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCcgYW5kICd1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyJy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IDgwYTYzYjczZjBhMTQ3MDkzNDBjNDgyNGI4NzgzNTA3NTUxYzI5ODQuLmFkZWQyN2VmMTVjNjU1
YzY2ZTA3YmY3Y2M0NGUxZmYwNzI2ZjRkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtNDQ1Niw2ICs0NDU2LDE1IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0CiAKIH0KIAorTWVkaWFQbGF5ZXJDbGll
bnQ6OkNyb3NzT3JpZ2luQXR0cmlidXRlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3Jv
c3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdAoreworICAgIGlmICghZmFzdEhhc0F0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikpCisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZDsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNy
b3Nzb3JpZ2luQXR0ciksICJ1c2UtY3JlZGVudGlhbHMiKSkKKyAgICAgICAgcmV0dXJuIFVzZUNy
ZWRlbnRpYWxzOworICAgIHJldHVybiBBbm9ueW1vdXM7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkgY29uc3QKIHsKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1MzYzYWUyNTU1MTVhYzZjYTdlYmYwZjlhNTY4
NzY1MjJmOGZkYTc0Li41YjlmZmExMDFmYjg2ZTc4ODBkNzcwYjQ2ODVjMDVjNmY1YmM0ZWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDI3LDYgKzQyNyw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENyb3NzT3JpZ2luQXR0cmlidXRlIG1lZGlhUGxh
eWVyQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBtZWRpYVBsYXllck5lZWRzU2l0ZVNwZWNpZmljSGFja3MoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggNTE2ZjJmZTk4ODFlNjJiYmQ2ZWZmOGIwM2E2ZjEwZjhhOGE2NjU0OS4uOTI4NzY2OGRj
NzhjZTJmZTA2NWIwYTY4MTM2YzM2YWQwM2Q1NmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xMDEsNiArMTAxLDggQEAgY2xhc3Mg
VGltZVJhbmdlczsKIAogY2xhc3MgTWVkaWFQbGF5ZXJDbGllbnQgewogcHVibGljOgorICAgIGVu
dW0gQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUgeyBVbnNwZWNpZmllZCwgQW5vbnltb3VzLCBVc2VDcmVk
ZW50aWFscyB9OworCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KIAogICAg
IC8vIEdldCB0aGUgZG9jdW1lbnQgd2hpY2ggdGhlIG1lZGlhIHBsYXllciBpcyBvd25lZCBieQpA
QCAtMTc4LDYgKzE4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxh
eWVyUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgU3Ry
aW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAg
ICB2aXJ0dWFsIENyb3NzT3JpZ2luQXR0cmlidXRlIG1lZGlhUGxheWVyQ3Jvc3NPcmlnaW5BdHRy
aWJ1dGUoKSBjb25zdCB7IHJldHVybiBVbnNwZWNpZmllZDsgfQogfTsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYk1lZGlhUGxheWVyLmgKaW5kZXggNDQ0YTJjYzkwMWY3ZWM0ZjNiMGYzYmRmMjE3YWUx
OTQ4ZDJkZTM0YS4uMjczYzM2NzkzMmFlNTNjNzkxMzM2ZTRmY2JkMTQwZDZmNTI1NDg0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCkBAIC0x
MDAsOSArMTAwLDE2IEBAIHB1YmxpYzoKICAgICAgICAgTWVkaWFLZXlFeGNlcHRpb25LZXlTeXN0
ZW1Ob3RTdXBwb3J0ZWQsCiAgICAgfTsKIAorICAgIGVudW0gQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUg
eworICAgICAgICBVbnNwZWNpZmllZCwKKyAgICAgICAgQW5vbnltb3VzLAorICAgICAgICBVc2VD
cmVkZW50aWFscywKKyAgICB9OworCiAgICAgdmlydHVhbCB+V2ViTWVkaWFQbGF5ZXIoKSB7fQog
CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkKGNvbnN0IFdlYlVSTCYsIENyb3NzT3JpZ2luQXR0cmlidXRlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSA9IDA7CiAKICAgICAvLyBQbGF5YmFjayBjb250cm9s
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc29jaWF0ZWRVUkxM
b2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzb2NpYXRlZFVSTExvYWRl
ci5jcHAKaW5kZXggZjFjMmFhYjMwMWQyNTE0YWE3ODA3NzEzMWNmY2QxNDFiYjVlMjZkOC4uZTQ2
NmY0ZGY0ZjBmMGQ5ZjRkMmE3OTAzMzRmNzg4NjY4YmNhNjAwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzb2NpYXRlZFVSTExvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzb2NpYXRlZFVSTExvYWRlci5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBc3NvY2lhdGVkVVJMTG9hZGVyLmgiCiAKICNpbmNsdWRlICJDcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUVFBWYWxpZGF0aW9uLmgiCkBAIC0zNDYsOCAr
MzQ3LDEwIEBAIHZvaWQgQXNzb2NpYXRlZFVSTExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KGNv
bnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIFdlYlVSCiAgICAgICAgIG9wdGlvbnMuY3Jvc3NP
cmlnaW5SZXF1ZXN0UG9saWN5ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q3Jvc3NPcmlnaW5SZXF1
ZXN0UG9saWN5PihtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5KTsKICAgICAgICAg
b3B0aW9ucy5zaG91bGRCdWZmZXJEYXRhID0gRG9Ob3RCdWZmZXJEYXRhOwogCi0gICAgICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgd2ViY29yZVJlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvUmVzb3Vy
Y2VSZXF1ZXN0KCk7CisgICAgICAgIFJlc291cmNlUmVxdWVzdCYgd2ViY29yZVJlcXVlc3QgPSBu
ZXdSZXF1ZXN0LnRvTXV0YWJsZVJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICBEb2N1bWVudCog
d2ViY29yZURvY3VtZW50ID0gbV9mcmFtZUltcGwtPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAg
ICAgIGlmIChvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9PSBXZWJDb3JlOjpVc2VB
Y2Nlc3NDb250cm9sKQorICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wo
d2ViY29yZVJlcXVlc3QsIHdlYmNvcmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgb3B0aW9u
cy5hbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgbV9sb2FkZXIgPSBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZSh3ZWJjb3JlRG9jdW1lbnQsIG1fY2xpZW50QWRhcHRlci5nZXQoKSwg
d2ViY29yZVJlcXVlc3QsIG9wdGlvbnMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZJWE1F
OiByZXR1cm4gbWVhbmluZ2Z1bCBlcnJvciBjb2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDQwYmU0
ZDZkMzQ3ZjM3YTk3ZmJiNzZiNDlhN2Y0YzBmNTAzN2U2ODguLjJhODg4NWU3NjdiYzFmZmE2NmNl
YzhlNTUyN2I4N2YyYjNjNzIyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMzA0LDYgKzMwNCwxMyBA
QCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkK
ICAgICAgICAgbG9hZEludGVybmFsKCk7CiB9CiAKKyNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShuYW1lKSBcCisgICAgQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihX
ZWJLaXQ6OldlYk1lZGlhUGxheWVyOjpuYW1lKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFdlYkNvcmU6
Ok1lZGlhUGxheWVyQ2xpZW50OjpuYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCisKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oVW5zcGVjaWZpZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShBbm9ueW1vdXMpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShVc2VDcmVk
ZW50aWFscyk7CisKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwo
KQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2NvbXBvc2l0aW5nTXV0ZXgpOwpAQCAtMzE4
LDcgKzMyNSw5IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwo
KQogICAgICAgICAvLyBNYWtlIHN1cmUgaWYgd2UgY3JlYXRlL3JlLWNyZWF0ZSB0aGUgV2ViTWVk
aWFQbGF5ZXIgdGhhdCB3ZSB1cGRhdGUgb3VyIHdyYXBwZXIuCiAgICAgICAgIG1fYXVkaW9Tb3Vy
Y2VQcm92aWRlci53cmFwKG1fd2ViTWVkaWFQbGF5ZXItPmF1ZGlvU291cmNlUHJvdmlkZXIoKSk7
CiAjZW5kaWYKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+bG9hZChLVVJMKFBhcnNlZFVSTFN0
cmluZywgbV91cmwpKTsKKyAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+bG9hZCgKKyAgICAgICAg
ICAgIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCksCisgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxXZWJNZWRpYVBsYXllcjo6Q3Jvc3NPcmlnaW5BdHRyaWJ1dGU+KG1fbWVkaWFQbGF5ZXItPm1l
ZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSkpOwog
ICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145876</attachid>
            <date>2012-06-05 15:01:36 -0700</date>
            <delta_ts>2012-06-06 11:30:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120605150136.patch</filename>
            <type>text/plain</type>
            <size>6479</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMzYWY4YTE5ZjEzOWU3
NzVlN2EyMzYyYTBjZTJlNzlkODU3YWFkOS4uNWZlY2M3YmQ5MDVhOTIzY2ZmZjI1NTAyMzM5NTRl
MDBhZTZlNmE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBkbyB3ZSBoYXZlIGEgdmVyc2lvbiBvZiBodHRwL3Rl
c3RzIHN1cHBvcnRpbmcgZGlmZmVyZW50IG9yaWdpbnM/CisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJIYXNDcm9zc09yaWdpbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyR2V0Q3Jvc3NPcmln
aW5BdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAoSFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXll
ckhhc0Nyb3NzT3JpZ2luQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50OjptZWRpYVBsYXllckdldENyb3NzT3JpZ2luQXR0cmlidXRlKToKKwogMjAxMi0wNi0w
NSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExOTQ2NywgcjExOTQ3MSwgYW5kIHIxMTk0NzYuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM0YjgzMmEzM2ZlYWViOGM5ZmQ1YzAzNWY0Mzlk
MzU1ZDczZGQxYTguLjRiMDI5OWZhNTc2OWFkOWE3YWFjNWVjZDk4MTAyZDMxNDRhOWI2ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFt
aSBGaXNjaG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JT
IGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxh
eWVycyBzbyBpdCBjYW4gYmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVk
aWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6
CisKIDIwMTItMDYtMDUgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBBZGQgJ2lzUHJvdG9jb2xIYW5kbGVyUmVnaXN0ZXJlZCcgYW5kICd1bnJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyJy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IDgwYTYzYjczZjBhMTQ3MDkzNDBjNDgyNGI4NzgzNTA3NTUxYzI5ODQuLmFkZWQyN2VmMTVjNjU1
YzY2ZTA3YmY3Y2M0NGUxZmYwNzI2ZjRkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtNDQ1Niw2ICs0NDU2LDE1IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0CiAKIH0KIAorTWVkaWFQbGF5ZXJDbGll
bnQ6OkNyb3NzT3JpZ2luQXR0cmlidXRlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ3Jv
c3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdAoreworICAgIGlmICghZmFzdEhhc0F0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikpCisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZDsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNy
b3Nzb3JpZ2luQXR0ciksICJ1c2UtY3JlZGVudGlhbHMiKSkKKyAgICAgICAgcmV0dXJuIFVzZUNy
ZWRlbnRpYWxzOworICAgIHJldHVybiBBbm9ueW1vdXM7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkgY29uc3QKIHsKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1MzYzYWUyNTU1MTVhYzZjYTdlYmYwZjlhNTY4
NzY1MjJmOGZkYTc0Li41YjlmZmExMDFmYjg2ZTc4ODBkNzcwYjQ2ODVjMDVjNmY1YmM0ZWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDI3LDYgKzQyNyw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENyb3NzT3JpZ2luQXR0cmlidXRlIG1lZGlhUGxh
eWVyQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBtZWRpYVBsYXllck5lZWRzU2l0ZVNwZWNpZmljSGFja3MoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggNTE2ZjJmZTk4ODFlNjJiYmQ2ZWZmOGIwM2E2ZjEwZjhhOGE2NjU0OS4uOTI4NzY2OGRj
NzhjZTJmZTA2NWIwYTY4MTM2YzM2YWQwM2Q1NmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xMDEsNiArMTAxLDggQEAgY2xhc3Mg
VGltZVJhbmdlczsKIAogY2xhc3MgTWVkaWFQbGF5ZXJDbGllbnQgewogcHVibGljOgorICAgIGVu
dW0gQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUgeyBVbnNwZWNpZmllZCwgQW5vbnltb3VzLCBVc2VDcmVk
ZW50aWFscyB9OworCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KIAogICAg
IC8vIEdldCB0aGUgZG9jdW1lbnQgd2hpY2ggdGhlIG1lZGlhIHBsYXllciBpcyBvd25lZCBieQpA
QCAtMTc4LDYgKzE4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxh
eWVyUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgU3Ry
aW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAg
ICB2aXJ0dWFsIENyb3NzT3JpZ2luQXR0cmlidXRlIG1lZGlhUGxheWVyQ3Jvc3NPcmlnaW5BdHRy
aWJ1dGUoKSBjb25zdCB7IHJldHVybiBVbnNwZWNpZmllZDsgfQogfTsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYk1lZGlhUGxheWVyLmgKaW5kZXggNDQ0YTJjYzkwMWY3ZWM0ZjNiMGYzYmRmMjE3YWUx
OTQ4ZDJkZTM0YS4uMjczYzM2NzkzMmFlNTNjNzkxMzM2ZTRmY2JkMTQwZDZmNTI1NDg0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCkBAIC0x
MDAsOSArMTAwLDE2IEBAIHB1YmxpYzoKICAgICAgICAgTWVkaWFLZXlFeGNlcHRpb25LZXlTeXN0
ZW1Ob3RTdXBwb3J0ZWQsCiAgICAgfTsKIAorICAgIGVudW0gQ3Jvc3NPcmlnaW5BdHRyaWJ1dGUg
eworICAgICAgICBVbnNwZWNpZmllZCwKKyAgICAgICAgQW5vbnltb3VzLAorICAgICAgICBVc2VD
cmVkZW50aWFscywKKyAgICB9OworCiAgICAgdmlydHVhbCB+V2ViTWVkaWFQbGF5ZXIoKSB7fQog
CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkKGNvbnN0IFdlYlVSTCYsIENyb3NzT3JpZ2luQXR0cmlidXRlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSA9IDA7CiAKICAgICAvLyBQbGF5YmFjayBjb250cm9s
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCmluZGV4IDQwYmU0ZDZkMzQ3ZjM3YTk3ZmJiNzZiNDlhN2Y0YzBmNTAz
N2U2ODguLjJhODg4NWU3NjdiYzFmZmE2NmNlYzhlNTUyN2I4N2YyYjNjNzIyNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmNwcApAQCAtMzA0LDYgKzMwNCwxMyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKICAgICAgICAgbG9hZEludGVybmFsKCk7CiB9CiAK
KyNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShuYW1lKSBcCisgICAgQ09NUElM
RV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihXZWJLaXQ6OldlYk1lZGlhUGxheWVyOjpuYW1lKSA9
PSBzdGF0aWNfY2FzdDxpbnQ+KFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjpuYW1lKSwgbWlz
bWF0Y2hpbmdfZW51bXMpCisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oVW5zcGVjaWZp
ZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShBbm9ueW1vdXMpOworQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShVc2VDcmVkZW50aWFscyk7CisKIHZvaWQgV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwoKQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2NvbXBvc2l0aW5nTXV0ZXgpOwpAQCAtMzE4LDcgKzMyNSw5IEBAIHZvaWQgV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwoKQogICAgICAgICAvLyBNYWtlIHN1cmUgaWYgd2Ug
Y3JlYXRlL3JlLWNyZWF0ZSB0aGUgV2ViTWVkaWFQbGF5ZXIgdGhhdCB3ZSB1cGRhdGUgb3VyIHdy
YXBwZXIuCiAgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlci53cmFwKG1fd2ViTWVkaWFQbGF5
ZXItPmF1ZGlvU291cmNlUHJvdmlkZXIoKSk7CiAjZW5kaWYKLSAgICAgICAgbV93ZWJNZWRpYVBs
YXllci0+bG9hZChLVVJMKFBhcnNlZFVSTFN0cmluZywgbV91cmwpKTsKKyAgICAgICAgbV93ZWJN
ZWRpYVBsYXllci0+bG9hZCgKKyAgICAgICAgICAgIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3Vy
bCksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJNZWRpYVBsYXllcjo6Q3Jvc3NPcmlnaW5B
dHRyaWJ1dGU+KG1fbWVkaWFQbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVy
Q3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSkpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146074</attachid>
            <date>2012-06-06 11:30:14 -0700</date>
            <delta_ts>2012-06-06 12:56:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120606113013.patch</filename>
            <type>text/plain</type>
            <size>12180</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEwNjBhODg5MjViODIy
MWViODFiYjZmYjgwNjZlZjM5YzhiNmFkMS4uNzlhOGVmOTRjYmVmOGYzYTcwNDg1MjM4MDlhOTFm
ZjAzZGU5YWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
cmVhZGJhY2suaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ09SU01vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlh
UGxheWVyQ09SU01vZGUpOgorCiAyMDEyLTA2LTA2ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkaXJlY3Rpb24gb24g
dGFibGUgcm93IGdyb3VwIHdpdGggY29sbGFwc2luZyBib3JkZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGM2Zjk2MDMyNWVlNDU4ZDYwOGIxNGJjZGVhODdmODBiZjJlMDViMTYuLjJm
YjEzNDk4NzNmYTQ3N2M0YWMzOWYyMDRkM2EzOTI0YTZkY2EyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFtaSBGaXNjaG1hbiAgPGZp
c2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JTIGF0dHJpYnV0ZSBpbmZv
cm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxheWVycyBzbyBpdCBjYW4g
YmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6CisKIDIwMTItMDYtMDYg
IEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgQ2hy
b21pdW0gREVQUyBmcm9tIHIxNDA3MDAgdG8gcjE0MDcxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDgwYTYzYjczZjBhMTQ3MDkzNDBjNDgyNGI4NzgzNTA3
NTUxYzI5ODQuLjA3ZmRjODBkMWNhZDFhYTY3ZDExMThjOGIwY2EwNmRjODMxZWVlYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDQ1Niw2ICs0NDU2LDE1
IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0
CiAKIH0KIAorTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyQ09SU01vZGUoKSBjb25zdAoreworICAgIGlmICghZmFzdEhhc0F0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikpCisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZDsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNy
b3Nzb3JpZ2luQXR0ciksICJ1c2UtY3JlZGVudGlhbHMiKSkKKyAgICAgICAgcmV0dXJuIFVzZUNy
ZWRlbnRpYWxzOworICAgIHJldHVybiBBbm9ueW1vdXM7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkgY29uc3QKIHsKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1MzYzYWUyNTU1MTVhYzZjYTdlYmYwZjlhNTY4
NzY1MjJmOGZkYTc0Li4xNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDI3LDYgKzQyNyw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENPUlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUo
KSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllck5lZWRzU2l0
ZVNwZWNpZmljSGFja3MoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRp
YVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBjNzNm
Yzk5ZTQxYWY0OGExZjIzZGQ5MzgzYTc2MWIwMDBhMzEwYmM1Li4yZDRiOTQ2OGRmOTUxZjM1Y2Ex
MmMxMWUwYjFmZWI0N2FlMjhkZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNzcsMTAgKzc3LDEwIEBAIGJv
b2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6d291bGRUYWludE9yaWdpbihjb25zdCBIVE1MVmlk
ZW9FbGVtZW50KiB2aWRlbykKICAgICBpZiAoIXZpZGVvIHx8ICFjYW52YXMoKS0+b3JpZ2luQ2xl
YW4oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHdvdWxkVGFpbnRPcmlnaW4o
dmlkZW8tPmN1cnJlbnRTcmMoKSkpCisgICAgaWYgKCF2aWRlby0+aGFzU2luZ2xlU2VjdXJpdHlP
cmlnaW4oKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIXZpZGVvLT5oYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpKQorICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJy
ZW50U3JjKCkpICYmICh2aWRlby0+cGxheWVyKCktPmNvcnNNb2RlQXRMYXN0TG9hZCgpID09IE1l
ZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0odmlkZW8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDkzNTczMzBlNDlkNjI1OTBlYzA3NDY1
OTVjOTI0NTg5ZTU3MTg0OGMuLjk1ZDkzMTZjNTAxNzUyYjU3MzAwMTIwMzE4MTVkNDg2YmViMmY4
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTMyOCw2ICszMjgsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nKGZhbHNlKQogICAg
ICwgbV9zaG91bGRQcmVwYXJlVG9SZW5kZXIoZmFsc2UpCiAgICAgLCBtX2NvbnRlbnRNSU1FVHlw
ZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbihmYWxzZSkKKyAgICAsIG1fY29yc01vZGVBdExhc3RM
b2FkKE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkKICNpZiBFTkFCTEUoUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykKICAgICAsIG1fcGxheWVyUHJveHkoMCkKICNlbmRpZgpAQCAtMzUwLDYg
KzM1MSw5IEBAIE1lZGlhUGxheWVyOjp+TWVkaWFQbGF5ZXIoKQogCiBib29sIE1lZGlhUGxheWVy
Ojpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIHsKKyAgICBtX2NvcnNNb2RlQXRMYXN0TG9hZCA9IE1l
ZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZDsKKyAgICBpZiAobV9tZWRpYVBsYXllckNsaWVu
dCkKKyAgICAgICAgbV9jb3JzTW9kZUF0TGFzdExvYWQgPSBtX21lZGlhUGxheWVyQ2xpZW50LT5t
ZWRpYVBsYXllckNPUlNNb2RlKCk7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBjb250ZW50VHlw
ZS50eXBlKCkubG93ZXIoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKGNvZGVjcygpKTsKICAgICBtX3VybCA9IHVybC5zdHJpbmcoKTsKQEAgLTQ0Niw2
ICs0NTAsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6Y2FuY2VsTG9hZCgpCiAgICAgbV9wcml2YXRl
LT5jYW5jZWxMb2FkKCk7CiB9ICAgIAogCitNZWRpYVBsYXllckNsaWVudDo6Q09SU01vZGUgTWVk
aWFQbGF5ZXI6OmNvcnNNb2RlQXRMYXN0TG9hZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29y
c01vZGVBdExhc3RMb2FkOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjpwcmVwYXJlVG9QbGF5KCkK
IHsKICAgICBtX3ByaXZhdGUtPnByZXBhcmVUb1BsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDUxNmYyZmU5ODgxZTYyYmJkNmVm
ZjhiMDNhNmYxMGY4YThhNjY1NDkuLjNiYTE0ZjZjODQyOTIyZDg1OWU5MDNmZDI0YWViOGE4OGFm
NTZjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMTAxLDYgKzEwMSw4IEBAIGNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIE1lZGlh
UGxheWVyQ2xpZW50IHsKIHB1YmxpYzoKKyAgICBlbnVtIENPUlNNb2RlIHsgVW5zcGVjaWZpZWQs
IEFub255bW91cywgVXNlQ3JlZGVudGlhbHMgfTsKKwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
Q2xpZW50KCkgeyB9CiAKICAgICAvLyBHZXQgdGhlIGRvY3VtZW50IHdoaWNoIHRoZSBtZWRpYSBw
bGF5ZXIgaXMgb3duZWQgYnkKQEAgLTE3OCw2ICsxODAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7
IH0KICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBDT1JTTW9kZSBtZWRpYVBsYXllckNPUlNNb2Rl
KCkgY29uc3QgeyByZXR1cm4gVW5zcGVjaWZpZWQ7IH0KIH07CiAKIGNsYXNzIE1lZGlhUGxheWVy
U3VwcG9ydHNUeXBlQ2xpZW50IHsKQEAgLTIyOCw2ICsyMzEsNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGxvYWQoY29uc3QgS1VSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOworICAgIE1lZGlhUGxheWVyQ2xpZW50
OjpDT1JTTW9kZSBjb3JzTW9kZUF0TGFzdExvYWQoKSBjb25zdDsKIAogICAgIGJvb2wgdmlzaWJs
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTQxMCw2ICs0MTQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9wcml2YXRlQnJvd3Npbmc7CiAgICAgYm9vbCBtX3Nob3Vs
ZFByZXBhcmVUb1JlbmRlcjsKICAgICBib29sIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRG
cm9tRXh0ZW5zaW9uOworICAgIE1lZGlhUGxheWVyQ2xpZW50OjpDT1JTTW9kZSBtX2NvcnNNb2Rl
QXRMYXN0TG9hZDsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBXZWJN
ZWRpYVBsYXllclByb3h5KiBtX3BsYXllclByb3h5OyAgICAvLyBub3Qgb3duZWQgb3IgdXNlZCwg
cGFzc2VkIHRvIG1fcHJpdmF0ZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCA3NTE5NDJiNWM4ZTgyMzA4NzE4MzBlYzkwYmUw
Njc5NTUwZTVkNWQ2Li44ZjJlZTBkOGI4ZDk4Yzg5MmIzYWJkZTE0YjY5NDBjZDFiMDQzNDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAg
LTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXllcigp
IHt9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBXZWJVUkwmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJiwgQ09SU01vZGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKIAogICAgIC8vIFBsYXliYWNrIGNvbnRyb2xzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApp
bmRleCBjMzIzZDEwYWJkZTA4ZGVlOTUzM2IyOTAzMmNhNTU2YWE1MDUxMmI2Li40MDMwODhiYzkx
ZWUwN2I1Yjc0NmJhMDE5NmRhY2FiMjZkYWJkM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTgxLDMgKzU4MSw3IEBA
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OlVua25vd24sIFJl
c291cmNlUmVzcG9uc2U6OlVua25vd24pCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YlVSTFJlc3BvbnNlOjpIVFRQXzBfOSwgUmVzb3VyY2VSZXNwb25zZTo6SFRUUF8wXzkpOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJVUkxSZXNwb25zZTo6SFRUUF8xXzAsIFJlc291
cmNlUmVzcG9uc2U6OkhUVFBfMV8wKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
VVJMUmVzcG9uc2U6OkhUVFBfMV8xLCBSZXNvdXJjZVJlc3BvbnNlOjpIVFRQXzFfMSk7CisKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6OkNPUlNNb2RlVW5zcGVj
aWZpZWQsIE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCk7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZUFub255bW91cywgTWVkaWFQbGF5
ZXJDbGllbnQ6OkFub255bW91cyk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1l
ZGlhUGxheWVyOjpDT1JTTW9kZVVzZUNyZWRlbnRpYWxzLCBNZWRpYVBsYXllckNsaWVudDo6VXNl
Q3JlZGVudGlhbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggNDBiZTRkNmQzNDdmMzdhOTdmYmI3NmI0
OWE3ZjRjMGY1MDM3ZTY4OC4uYjlmNjg2ZmE0OWI4MmI3MWI1NmJmNmY1YmJkNzg4OWQ5MzViMTBm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuY3BwCkBAIC0zMTgsNyArMzE4LDkgQEAgdm9pZCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAgICAgICAgIC8vIE1ha2Ugc3VyZSBpZiB3ZSBj
cmVhdGUvcmUtY3JlYXRlIHRoZSBXZWJNZWRpYVBsYXllciB0aGF0IHdlIHVwZGF0ZSBvdXIgd3Jh
cHBlci4KICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLndyYXAobV93ZWJNZWRpYVBsYXll
ci0+YXVkaW9Tb3VyY2VQcm92aWRlcigpKTsKICNlbmRpZgotICAgICAgICBtX3dlYk1lZGlhUGxh
eWVyLT5sb2FkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCkpOworICAgICAgICBtX3dlYk1l
ZGlhUGxheWVyLT5sb2FkKAorICAgICAgICAgICAgS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJs
KSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZT4obV9t
ZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDT1JTTW9kZSgpKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMzk4ZjEwMjMxNmNlNmI2OGQ2ZjYxZWE4MmE1MzRkMTFiNTNjODViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMv
dmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApAQCAtMCwwICsxLDEzIEBACis8P3BocAorCito
ZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOworCitpZiAoJF9TRVJWRVJb
J1JFUVVFU1RfTUVUSE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVhZGVyKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzOiBHRVQiKTsKKyAgICBoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFs
bG93LUhlYWRlcnM6IG9yaWdpbiwgYWNjZXB0LWVuY29kaW5nLCByZWZlcmVyLCByYW5nZSIpOwor
ICAgIGV4aXQ7Cit9CisKK0BpbmNsdWRlKCIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvc2VydmUtdmlk
ZW8ucGhwIik7CisKKz8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJh
Y2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzI3ZGRhZjky
OTRmZDI2NTZiNWY4MjhiMDBjZmJkYWNlN2RlZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1v
cmlnaW4tcmVhZGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlk
ZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkwZjZhYzgwYmJkMmEy
ODc0ZmQ0OGJkNmEzZTU1YjM5ODNhY2MzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPGh0bWw+CisgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHNj
cmlwdCBzcmM9Li4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Li4vLi4vbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUuanM+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKworICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Vycm9y
JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgiZXJyb3I6ICIgKyBKU09OLnN0
cmluZ2lmeSh2aWRlby5lcnJvcikpOworICAgICAgICB9KTsKKworICAgICAgICB3YWl0Rm9yRXZl
bnQoJ3BsYXlpbmcnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBnbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0KCdleHBlcmltZW50
YWwtd2ViZ2wnKTsKKyAgICAgICAgICAgIGlmICghZ2wpCisgICAgICAgICAgICAgICAgZmFpbFRl
c3QoImdldENvbnRleHQgcmV0dXJuZWQgbnVsbCIpOworICAgICAgICAgICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgZ2wuY3JlYXRlVGV4dHVyZSgpKTsKKwkgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIHZpZGVvKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICBmYWlsVGVzdCgiQ2F1Z2h0IGVycm9yOiAiICsgZSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGZ1
bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAg
ICAgICAgdmFyIG1lZGlhRmlsZSA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uLy4uL21lZGlh
L3Jlc291cmNlcy90ZXN0Iik7CisgICAgICAgICAgICB2YXIgdHlwZSA9IG1pbWVUeXBlRm9yRXh0
ZW5zaW9uKG1lZGlhRmlsZS5zcGxpdCgnLicpLnBvcCgpKTsKKyAgICAgICAgICAgIHZpZGVvLnNy
YyA9ICJodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL3ZpZGVvLWNyb3Nz
LW9yaWdpbi1hbGxvdy5waHA/bmFtZT0iICsgbWVkaWFGaWxlICsgIiZ0eXBlPSIgKyB0eXBlOwor
ICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8dmlkZW8gY3Jvc3NvcmlnaW4gc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L3ZpZGVvPgorICAg
IDxjYW52YXM+PC9jYW52YXM+CisgIDwvYm9keT4KKzwvaGVhZD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146089</attachid>
            <date>2012-06-06 12:56:36 -0700</date>
            <delta_ts>2012-06-06 15:35:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120606125635.patch</filename>
            <type>text/plain</type>
            <size>11939</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEwNjBhODg5MjViODIy
MWViODFiYjZmYjgwNjZlZjM5YzhiNmFkMS4uNzlhOGVmOTRjYmVmOGYzYTcwNDg1MjM4MDlhOTFm
ZjAzZGU5YWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
cmVhZGJhY2suaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ09SU01vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlh
UGxheWVyQ09SU01vZGUpOgorCiAyMDEyLTA2LTA2ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkaXJlY3Rpb24gb24g
dGFibGUgcm93IGdyb3VwIHdpdGggY29sbGFwc2luZyBib3JkZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGM2Zjk2MDMyNWVlNDU4ZDYwOGIxNGJjZGVhODdmODBiZjJlMDViMTYuLjJm
YjEzNDk4NzNmYTQ3N2M0YWMzOWYyMDRkM2EzOTI0YTZkY2EyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFtaSBGaXNjaG1hbiAgPGZp
c2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JTIGF0dHJpYnV0ZSBpbmZv
cm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxheWVycyBzbyBpdCBjYW4g
YmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6CisKIDIwMTItMDYtMDYg
IEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgQ2hy
b21pdW0gREVQUyBmcm9tIHIxNDA3MDAgdG8gcjE0MDcxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDgwYTYzYjczZjBhMTQ3MDkzNDBjNDgyNGI4NzgzNTA3
NTUxYzI5ODQuLjA3ZmRjODBkMWNhZDFhYTY3ZDExMThjOGIwY2EwNmRjODMxZWVlYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDQ1Niw2ICs0NDU2LDE1
IEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0
CiAKIH0KIAorTWVkaWFQbGF5ZXJDbGllbnQ6OkNPUlNNb2RlIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyQ09SU01vZGUoKSBjb25zdAoreworICAgIGlmICghZmFzdEhhc0F0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikpCisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZDsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNy
b3Nzb3JpZ2luQXR0ciksICJ1c2UtY3JlZGVudGlhbHMiKSkKKyAgICAgICAgcmV0dXJuIFVzZUNy
ZWRlbnRpYWxzOworICAgIHJldHVybiBBbm9ueW1vdXM7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6bWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkgY29uc3QKIHsKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1MzYzYWUyNTU1MTVhYzZjYTdlYmYwZjlhNTY4
NzY1MjJmOGZkYTc0Li4xNjczZTE1MzUyNDkxOGQ1Mjk1NzFlOGI5NWVkMmVhNTRkZjkzNTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDI3LDYgKzQyNyw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENPUlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUo
KSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllck5lZWRzU2l0
ZVNwZWNpZmljSGFja3MoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRp
YVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBjNzNm
Yzk5ZTQxYWY0OGExZjIzZGQ5MzgzYTc2MWIwMDBhMzEwYmM1Li4yZDRiOTQ2OGRmOTUxZjM1Y2Ex
MmMxMWUwYjFmZWI0N2FlMjhkZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNzcsMTAgKzc3LDEwIEBAIGJv
b2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6d291bGRUYWludE9yaWdpbihjb25zdCBIVE1MVmlk
ZW9FbGVtZW50KiB2aWRlbykKICAgICBpZiAoIXZpZGVvIHx8ICFjYW52YXMoKS0+b3JpZ2luQ2xl
YW4oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHdvdWxkVGFpbnRPcmlnaW4o
dmlkZW8tPmN1cnJlbnRTcmMoKSkpCisgICAgaWYgKCF2aWRlby0+aGFzU2luZ2xlU2VjdXJpdHlP
cmlnaW4oKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIXZpZGVvLT5oYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpKQorICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJy
ZW50U3JjKCkpICYmICh2aWRlby0+cGxheWVyKCktPmNvcnNNb2RlQXRMYXN0TG9hZCgpID09IE1l
ZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0odmlkZW8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDkzNTczMzBlNDlkNjI1OTBlYzA3NDY1
OTVjOTI0NTg5ZTU3MTg0OGMuLjk1ZDkzMTZjNTAxNzUyYjU3MzAwMTIwMzE4MTVkNDg2YmViMmY4
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTMyOCw2ICszMjgsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nKGZhbHNlKQogICAg
ICwgbV9zaG91bGRQcmVwYXJlVG9SZW5kZXIoZmFsc2UpCiAgICAgLCBtX2NvbnRlbnRNSU1FVHlw
ZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbihmYWxzZSkKKyAgICAsIG1fY29yc01vZGVBdExhc3RM
b2FkKE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkKICNpZiBFTkFCTEUoUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykKICAgICAsIG1fcGxheWVyUHJveHkoMCkKICNlbmRpZgpAQCAtMzUwLDYg
KzM1MSw5IEBAIE1lZGlhUGxheWVyOjp+TWVkaWFQbGF5ZXIoKQogCiBib29sIE1lZGlhUGxheWVy
Ojpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIHsKKyAgICBtX2NvcnNNb2RlQXRMYXN0TG9hZCA9IE1l
ZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZDsKKyAgICBpZiAobV9tZWRpYVBsYXllckNsaWVu
dCkKKyAgICAgICAgbV9jb3JzTW9kZUF0TGFzdExvYWQgPSBtX21lZGlhUGxheWVyQ2xpZW50LT5t
ZWRpYVBsYXllckNPUlNNb2RlKCk7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSBjb250ZW50VHlw
ZS50eXBlKCkubG93ZXIoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKGNvZGVjcygpKTsKICAgICBtX3VybCA9IHVybC5zdHJpbmcoKTsKQEAgLTQ0Niw2
ICs0NTAsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6Y2FuY2VsTG9hZCgpCiAgICAgbV9wcml2YXRl
LT5jYW5jZWxMb2FkKCk7CiB9ICAgIAogCitNZWRpYVBsYXllckNsaWVudDo6Q09SU01vZGUgTWVk
aWFQbGF5ZXI6OmNvcnNNb2RlQXRMYXN0TG9hZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29y
c01vZGVBdExhc3RMb2FkOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjpwcmVwYXJlVG9QbGF5KCkK
IHsKICAgICBtX3ByaXZhdGUtPnByZXBhcmVUb1BsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDUxNmYyZmU5ODgxZTYyYmJkNmVm
ZjhiMDNhNmYxMGY4YThhNjY1NDkuLjNiYTE0ZjZjODQyOTIyZDg1OWU5MDNmZDI0YWViOGE4OGFm
NTZjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMTAxLDYgKzEwMSw4IEBAIGNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIE1lZGlh
UGxheWVyQ2xpZW50IHsKIHB1YmxpYzoKKyAgICBlbnVtIENPUlNNb2RlIHsgVW5zcGVjaWZpZWQs
IEFub255bW91cywgVXNlQ3JlZGVudGlhbHMgfTsKKwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
Q2xpZW50KCkgeyB9CiAKICAgICAvLyBHZXQgdGhlIGRvY3VtZW50IHdoaWNoIHRoZSBtZWRpYSBw
bGF5ZXIgaXMgb3duZWQgYnkKQEAgLTE3OCw2ICsxODAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7
IH0KICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBDT1JTTW9kZSBtZWRpYVBsYXllckNPUlNNb2Rl
KCkgY29uc3QgeyByZXR1cm4gVW5zcGVjaWZpZWQ7IH0KIH07CiAKIGNsYXNzIE1lZGlhUGxheWVy
U3VwcG9ydHNUeXBlQ2xpZW50IHsKQEAgLTIyOCw2ICsyMzEsNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGxvYWQoY29uc3QgS1VSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOworICAgIE1lZGlhUGxheWVyQ2xpZW50
OjpDT1JTTW9kZSBjb3JzTW9kZUF0TGFzdExvYWQoKSBjb25zdDsKIAogICAgIGJvb2wgdmlzaWJs
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAgLTQxMCw2ICs0MTQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9wcml2YXRlQnJvd3Npbmc7CiAgICAgYm9vbCBtX3Nob3Vs
ZFByZXBhcmVUb1JlbmRlcjsKICAgICBib29sIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRG
cm9tRXh0ZW5zaW9uOworICAgIE1lZGlhUGxheWVyQ2xpZW50OjpDT1JTTW9kZSBtX2NvcnNNb2Rl
QXRMYXN0TG9hZDsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBXZWJN
ZWRpYVBsYXllclByb3h5KiBtX3BsYXllclByb3h5OyAgICAvLyBub3Qgb3duZWQgb3IgdXNlZCwg
cGFzc2VkIHRvIG1fcHJpdmF0ZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCA3NTE5NDJiNWM4ZTgyMzA4NzE4MzBlYzkwYmUw
Njc5NTUwZTVkNWQ2Li44ZjJlZTBkOGI4ZDk4Yzg5MmIzYWJkZTE0YjY5NDBjZDFiMDQzNDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAg
LTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXllcigp
IHt9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBXZWJVUkwmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJiwgQ09SU01vZGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKIAogICAgIC8vIFBsYXliYWNrIGNvbnRyb2xzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApp
bmRleCBjMzIzZDEwYWJkZTA4ZGVlOTUzM2IyOTAzMmNhNTU2YWE1MDUxMmI2Li40MDMwODhiYzkx
ZWUwN2I1Yjc0NmJhMDE5NmRhY2FiMjZkYWJkM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTgxLDMgKzU4MSw3IEBA
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OlVua25vd24sIFJl
c291cmNlUmVzcG9uc2U6OlVua25vd24pCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YlVSTFJlc3BvbnNlOjpIVFRQXzBfOSwgUmVzb3VyY2VSZXNwb25zZTo6SFRUUF8wXzkpOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJVUkxSZXNwb25zZTo6SFRUUF8xXzAsIFJlc291
cmNlUmVzcG9uc2U6OkhUVFBfMV8wKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
VVJMUmVzcG9uc2U6OkhUVFBfMV8xLCBSZXNvdXJjZVJlc3BvbnNlOjpIVFRQXzFfMSk7CisKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6OkNPUlNNb2RlVW5zcGVj
aWZpZWQsIE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCk7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZUFub255bW91cywgTWVkaWFQbGF5
ZXJDbGllbnQ6OkFub255bW91cyk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1l
ZGlhUGxheWVyOjpDT1JTTW9kZVVzZUNyZWRlbnRpYWxzLCBNZWRpYVBsYXllckNsaWVudDo6VXNl
Q3JlZGVudGlhbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggNDBiZTRkNmQzNDdmMzdhOTdmYmI3NmI0
OWE3ZjRjMGY1MDM3ZTY4OC4uYjlmNjg2ZmE0OWI4MmI3MWI1NmJmNmY1YmJkNzg4OWQ5MzViMTBm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuY3BwCkBAIC0zMTgsNyArMzE4LDkgQEAgdm9pZCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAgICAgICAgIC8vIE1ha2Ugc3VyZSBpZiB3ZSBj
cmVhdGUvcmUtY3JlYXRlIHRoZSBXZWJNZWRpYVBsYXllciB0aGF0IHdlIHVwZGF0ZSBvdXIgd3Jh
cHBlci4KICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLndyYXAobV93ZWJNZWRpYVBsYXll
ci0+YXVkaW9Tb3VyY2VQcm92aWRlcigpKTsKICNlbmRpZgotICAgICAgICBtX3dlYk1lZGlhUGxh
eWVyLT5sb2FkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCkpOworICAgICAgICBtX3dlYk1l
ZGlhUGxheWVyLT5sb2FkKAorICAgICAgICAgICAgS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJs
KSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZT4obV9t
ZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDT1JTTW9kZSgpKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMzk4ZjEwMjMxNmNlNmI2OGQ2ZjYxZWE4MmE1MzRkMTFiNTNjODViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMv
dmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApAQCAtMCwwICsxLDEzIEBACis8P3BocAorCito
ZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOworCitpZiAoJF9TRVJWRVJb
J1JFUVVFU1RfTUVUSE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVhZGVyKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzOiBHRVQiKTsKKyAgICBoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFs
bG93LUhlYWRlcnM6IG9yaWdpbiwgYWNjZXB0LWVuY29kaW5nLCByZWZlcmVyLCByYW5nZSIpOwor
ICAgIGV4aXQ7Cit9CisKK0BpbmNsdWRlKCIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvc2VydmUtdmlk
ZW8ucGhwIik7CisKKz8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJh
Y2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1j
cm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMjVhYmU5NGZi
YzY0MmMwYWI5MGMxY2U4MjY0ZjViZWM5OGY4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKyAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLXJlYWRiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Zp
ZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNDgwMGY5ODU4ZWJh
NWE3Mzk2YjNkODU1MjI2MTQxN2I0ZjcyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCkBA
IC0wLDAgKzEsMzMgQEAKKzxodG1sPgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxz
Y3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVudCgnZXJyb3InLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCJlcnJvcjogIiArIEpTT04uc3RyaW5naWZ5KHZp
ZGVvLmVycm9yKSk7CisgICAgICAgIH0pOworCisgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWlu
ZycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBjdHgg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgi
MmQiKTsKKyAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgdmlkZW8udmlk
ZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHQpOworICAgICAgICAgICAgICBjdHguZ2V0SW1hZ2VE
YXRhKDAsIDAsIHZpZGVvLnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVpZ2h0KTsKKyAgICAgICAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIGZhaWxUZXN0KCJDYXVnaHQgZXJyb3I6ICIg
KyBlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9KTsKKwor
ICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQo
KTsKKyAgICAgICAgICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIu
Li8uLi9tZWRpYS9yZXNvdXJjZXMvdGVzdCIpOworICAgICAgICAgICAgdmFyIHR5cGUgPSBtaW1l
VHlwZUZvckV4dGVuc2lvbihtZWRpYUZpbGUuc3BsaXQoJy4nKS5wb3AoKSk7CisgICAgICAgICAg
ICB2aWRlby5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy92
aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwP25hbWU9IiArIG1lZGlhRmlsZSArICImdHlwZT0i
ICsgdHlwZTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorCisgICAgPHZpZGVvIGNyb3Nzb3JpZ2luPjwvdmlkZW8+CisgICAgPGNhbnZhcz48L2Nh
bnZhcz4KKyAgPC9ib2R5PgorPC9oZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146129</attachid>
            <date>2012-06-06 15:35:19 -0700</date>
            <delta_ts>2012-06-06 17:07:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120606153518.patch</filename>
            <type>text/plain</type>
            <size>12125</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkzMWZkYmIyZjE0M2Mz
NmIwNmEzOTQ3YThmZjZkOGNmMDEzMDk3Ni4uY2RlOWQ5NmRjNzhmZmUxZjYyZGJkMjE2ODEzNDA4
NjAwZWQzOTk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
cmVhZGJhY2suaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ09SU01vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlh
UGxheWVyQ09SU01vZGUpOgorCiAyMDEyLTA2LTA2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZW5hbWUgSURCRmFjdG9yeS5nZXREYXRh
YmFzZU5hbWVzKCkgdG8gd2Via2l0R2V0RGF0YWJhc2VOYW1lcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGY2YTBlNjQ3M2U3N2JiZjYzOWIwNTE0NjhkMDI2YjNkY2ExYjM5ZTkuLjNi
NmZkYWJjZjkxNzRjM2IxMmNlMzUwMzYyY2JmNWY1N2ZhYjA5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFtaSBGaXNjaG1hbiAgPGZp
c2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JTIGF0dHJpYnV0ZSBpbmZv
cm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxheWVycyBzbyBpdCBjYW4g
YmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6CisKIDIwMTItMDYtMDYg
IEFtaSBGaXNjaG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCA4MGE2M2I3M2YwYTE0NzA5MzQwYzQ4MjRiODc4MzUwNzU1MWMyOTg0Li4wN2ZkYzgw
ZDFjYWQxYWE2N2QxMTE4YzhiMGNhMDZkYzgzMWVlZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ0NTYsNiArNDQ1NiwxNSBAQCBTdHJpbmcgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdAogCiB9CiAKK01lZGlhUGxh
eWVyQ2xpZW50OjpDT1JTTW9kZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNPUlNNb2Rl
KCkgY29uc3QKK3sKKyAgICBpZiAoIWZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29y
aWdpbkF0dHIpKQorICAgICAgICByZXR1cm4gVW5zcGVjaWZpZWQ7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKGZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpLCAi
dXNlLWNyZWRlbnRpYWxzIikpCisgICAgICAgIHJldHVybiBVc2VDcmVkZW50aWFsczsKKyAgICBy
ZXR1cm4gQW5vbnltb3VzOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
TmVlZHNTaXRlU3BlY2lmaWNIYWNrcygpIGNvbnN0CiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdz
ID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggNTM2M2FlMjU1NTE1YWM2Y2E3ZWJmMGY5YTU2ODc2NTIyZjhmZGE3NC4uMTY3
M2UxNTM1MjQ5MThkNTI5NTcxZThiOTVlZDJlYTU0ZGY5MzU4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQyNyw2ICs0MjcsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBDT1JTTW9kZSBtZWRpYVBsYXllckNPUlNNb2RlKCkgY29uc3QgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJEb2N1bWVudEhv
c3QoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYzczZmM5OWU0MWFmNDhhMWYyM2Rk
OTM4M2E3NjFiMDAwYTMxMGJjNS4uN2Y3ZTI3NzNmMWVmNWVlMGE2NWMwNzIzMDUyYTViYmI0NjIx
NzBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTc3LDExICs3NywxNyBAQCBib29sIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8p
CiAgICAgaWYgKCF2aWRlbyB8fCAhY2FudmFzKCktPm9yaWdpbkNsZWFuKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJyZW50U3Jj
KCkpKQorICAgIGlmICghdmlkZW8tPmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgaWYgKCF2aWRlby0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4o
KSkKKyNpZiBQTEFURk9STShDSFJPTUlVTSkgLy8gQ2hyb21pdW0gaXMgdGhlIG9ubHkgcG9ydCB0
aGF0IGltcGxlbWVudHMgQ09SUyBmb3IgbWVkaWEgZWxlbWVudHMgYXQgdGhpcyBwb2ludC4KKyAg
ICBpZiAod291bGRUYWludE9yaWdpbih2aWRlby0+Y3VycmVudFNyYygpKSAmJiAodmlkZW8tPnBs
YXllcigpLT5jb3JzTW9kZUF0TGFzdExvYWQoKSA9PSBNZWRpYVBsYXllckNsaWVudDo6VW5zcGVj
aWZpZWQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgaWYgKHdvdWxkVGFpbnRP
cmlnaW4odmlkZW8tPmN1cnJlbnRTcmMoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlm
CisKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZpZGVvKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDkzNTczMzBl
NDlkNjI1OTBlYzA3NDY1OTVjOTI0NTg5ZTU3MTg0OGMuLjk1ZDkzMTZjNTAxNzUyYjU3MzAwMTIw
MzE4MTVkNDg2YmViMmY4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMyOCw2ICszMjgsNyBAQCBNZWRpYVBsYXllcjo6TWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fcHJpdmF0ZUJyb3dz
aW5nKGZhbHNlKQogICAgICwgbV9zaG91bGRQcmVwYXJlVG9SZW5kZXIoZmFsc2UpCiAgICAgLCBt
X2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbihmYWxzZSkKKyAgICAsIG1f
Y29yc01vZGVBdExhc3RMb2FkKE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCkKICNpZiBF
TkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICAsIG1fcGxheWVyUHJveHkoMCkKICNl
bmRpZgpAQCAtMzUwLDYgKzM1MSw5IEBAIE1lZGlhUGxheWVyOjp+TWVkaWFQbGF5ZXIoKQogCiBi
b29sIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUm
IGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIHsKKyAgICBtX2NvcnNNb2Rl
QXRMYXN0TG9hZCA9IE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZDsKKyAgICBpZiAobV9t
ZWRpYVBsYXllckNsaWVudCkKKyAgICAgICAgbV9jb3JzTW9kZUF0TGFzdExvYWQgPSBtX21lZGlh
UGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckNPUlNNb2RlKCk7CiAgICAgbV9jb250ZW50TUlNRVR5
cGUgPSBjb250ZW50VHlwZS50eXBlKCkubG93ZXIoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNz
ID0gY29udGVudFR5cGUucGFyYW1ldGVyKGNvZGVjcygpKTsKICAgICBtX3VybCA9IHVybC5zdHJp
bmcoKTsKQEAgLTQ0Niw2ICs0NTAsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6Y2FuY2VsTG9hZCgp
CiAgICAgbV9wcml2YXRlLT5jYW5jZWxMb2FkKCk7CiB9ICAgIAogCitNZWRpYVBsYXllckNsaWVu
dDo6Q09SU01vZGUgTWVkaWFQbGF5ZXI6OmNvcnNNb2RlQXRMYXN0TG9hZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY29yc01vZGVBdExhc3RMb2FkOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjpw
cmVwYXJlVG9QbGF5KCkKIHsKICAgICBtX3ByaXZhdGUtPnByZXBhcmVUb1BsYXkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDUxNmYy
ZmU5ODgxZTYyYmJkNmVmZjhiMDNhNmYxMGY4YThhNjY1NDkuLjNiYTE0ZjZjODQyOTIyZDg1OWU5
MDNmZDI0YWViOGE4OGFmNTZjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMTAxLDYgKzEwMSw4IEBAIGNsYXNzIFRpbWVSYW5nZXM7
CiAKIGNsYXNzIE1lZGlhUGxheWVyQ2xpZW50IHsKIHB1YmxpYzoKKyAgICBlbnVtIENPUlNNb2Rl
IHsgVW5zcGVjaWZpZWQsIEFub255bW91cywgVXNlQ3JlZGVudGlhbHMgfTsKKwogICAgIHZpcnR1
YWwgfk1lZGlhUGxheWVyQ2xpZW50KCkgeyB9CiAKICAgICAvLyBHZXQgdGhlIGRvY3VtZW50IHdo
aWNoIHRoZSBtZWRpYSBwbGF5ZXIgaXMgb3duZWQgYnkKQEAgLTE3OCw2ICsxODAsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclVzZXJBZ2Vu
dCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBDT1JTTW9kZSBtZWRp
YVBsYXllckNPUlNNb2RlKCkgY29uc3QgeyByZXR1cm4gVW5zcGVjaWZpZWQ7IH0KIH07CiAKIGNs
YXNzIE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50IHsKQEAgLTIyOCw2ICsyMzEsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGxvYWQoY29uc3QgS1VSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOworICAgIE1l
ZGlhUGxheWVyQ2xpZW50OjpDT1JTTW9kZSBjb3JzTW9kZUF0TGFzdExvYWQoKSBjb25zdDsKIAog
ICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKQEAg
LTQxMCw2ICs0MTQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcml2YXRlQnJvd3Npbmc7CiAg
ICAgYm9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlcjsKICAgICBib29sIG1fY29udGVudE1JTUVU
eXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uOworICAgIE1lZGlhUGxheWVyQ2xpZW50OjpDT1JT
TW9kZSBtX2NvcnNNb2RlQXRMYXN0TG9hZDsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKICAgICBXZWJNZWRpYVBsYXllclByb3h5KiBtX3BsYXllclByb3h5OyAgICAvLyBub3Qg
b3duZWQgb3IgdXNlZCwgcGFzc2VkIHRvIG1fcHJpdmF0ZQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCA3NTE5NDJiNWM4ZTgy
MzA4NzE4MzBlYzkwYmUwNjc5NTUwZTVkNWQ2Li44ZjJlZTBkOGI4ZDk4Yzg5MmIzYWJkZTE0YjY5
NDBjZDFiMDQzNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhUGxheWVyLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5X
ZWJNZWRpYVBsYXllcigpIHt9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBXZWJVUkwm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJiwgQ09SU01vZGUpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKIAogICAgIC8vIFBsYXliYWNr
IGNvbnRyb2xzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0
TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcAppbmRleCBjMzIzZDEwYWJkZTA4ZGVlOTUzM2IyOTAzMmNhNTU2YWE1MDUx
MmI2Li40MDMwODhiYzkxZWUwN2I1Yjc0NmJhMDE5NmRhY2FiMjZkYWJkM2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAt
NTgxLDMgKzU4MSw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9u
c2U6OlVua25vd24sIFJlc291cmNlUmVzcG9uc2U6OlVua25vd24pCiBDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYlVSTFJlc3BvbnNlOjpIVFRQXzBfOSwgUmVzb3VyY2VSZXNwb25zZTo6
SFRUUF8wXzkpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJVUkxSZXNwb25zZTo6
SFRUUF8xXzAsIFJlc291cmNlUmVzcG9uc2U6OkhUVFBfMV8wKTsKIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OkhUVFBfMV8xLCBSZXNvdXJjZVJlc3BvbnNlOjpI
VFRQXzFfMSk7CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6
OkNPUlNNb2RlVW5zcGVjaWZpZWQsIE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNpZmllZCk7CitD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZUFub255
bW91cywgTWVkaWFQbGF5ZXJDbGllbnQ6OkFub255bW91cyk7CitDT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZVVzZUNyZWRlbnRpYWxzLCBNZWRpYVBs
YXllckNsaWVudDo6VXNlQ3JlZGVudGlhbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggNDBiZTRkNmQz
NDdmMzdhOTdmYmI3NmI0OWE3ZjRjMGY1MDM3ZTY4OC4uYjlmNjg2ZmE0OWI4MmI3MWI1NmJmNmY1
YmJkNzg4OWQ5MzViMTBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC0zMTgsNyArMzE4LDkgQEAgdm9p
ZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAgICAgICAgIC8vIE1h
a2Ugc3VyZSBpZiB3ZSBjcmVhdGUvcmUtY3JlYXRlIHRoZSBXZWJNZWRpYVBsYXllciB0aGF0IHdl
IHVwZGF0ZSBvdXIgd3JhcHBlci4KICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLndyYXAo
bV93ZWJNZWRpYVBsYXllci0+YXVkaW9Tb3VyY2VQcm92aWRlcigpKTsKICNlbmRpZgotICAgICAg
ICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCkpOwor
ICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKAorICAgICAgICAgICAgS1VSTChQYXJzZWRV
UkxTdHJpbmcsIG1fdXJsKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVy
OjpDT1JTTW9kZT4obV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5
ZXJDT1JTTW9kZSgpKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLWFsbG93LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzk4ZjEwMjMxNmNlNmI2OGQ2ZjYxZWE4MmE1MzRk
MTFiNTNjODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApAQCAtMCwwICsxLDEz
IEBACis8P3BocAorCitoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOwor
CitpZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVh
ZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBHRVQiKTsKKyAgICBoZWFkZXIoIkFj
Y2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnM6IG9yaWdpbiwgYWNjZXB0LWVuY29kaW5nLCByZWZl
cmVyLCByYW5nZSIpOworICAgIGV4aXQ7Cit9CisKK0BpbmNsdWRlKCIuLi8uLi9tZWRpYS9yZXNv
dXJjZXMvc2VydmUtdmlkZW8ucGhwIik7CisKKz8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFkMjVhYmU5NGZiYzY0MmMwYWI5MGMxY2U4MjY0ZjViZWM5OGY4OTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdp
bi1yZWFkYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitFVkVOVChwbGF5aW5nKQor
RU5EIE9GIFRFU1QKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIxNDgwMGY5ODU4ZWJhNWE3Mzk2YjNkODU1MjI2MTQxN2I0ZjcyMTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1y
ZWFkYmFjay5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorICA8Ym9keSBvbmxvYWQ9InN0
YXJ0KCkiPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0
LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRp
YS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVudCgn
ZXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCJlcnJvcjogIiArIEpT
T04uc3RyaW5naWZ5KHZpZGVvLmVycm9yKSk7CisgICAgICAgIH0pOworCisgICAgICAgIHdhaXRG
b3JFdmVudCgncGxheWluZycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylb
MF0uZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywg
MCwgMCwgdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHQpOworICAgICAgICAgICAg
ICBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHZpZGVvLnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVp
Z2h0KTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIGZhaWxUZXN0KCJD
YXVnaHQgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgZW5kVGVzdCgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFG
aWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvdGVzdCIpOworICAgICAgICAgICAg
dmFyIHR5cGUgPSBtaW1lVHlwZUZvckV4dGVuc2lvbihtZWRpYUZpbGUuc3BsaXQoJy4nKS5wb3Ao
KSk7CisgICAgICAgICAgICB2aWRlby5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3Vy
aXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwP25hbWU9IiArIG1lZGlh
RmlsZSArICImdHlwZT0iICsgdHlwZTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHZpZGVvIGNyb3Nzb3JpZ2luPjwvdmlkZW8+Cisg
ICAgPGNhbnZhcz48L2NhbnZhcz4KKyAgPC9ib2R5PgorPC9oZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146153</attachid>
            <date>2012-06-06 17:07:10 -0700</date>
            <delta_ts>2012-06-06 18:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120606170709.patch</filename>
            <type>text/plain</type>
            <size>13001</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkzMWZkYmIyZjE0M2Mz
NmIwNmEzOTQ3YThmZjZkOGNmMDEzMDk3Ni4uY2RlOWQ5NmRjNzhmZmUxZjYyZGJkMjE2ODEzNDA4
NjAwZWQzOTk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4t
cmVhZGJhY2suaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ09SU01vZGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlh
UGxheWVyQ09SU01vZGUpOgorCiAyMDEyLTA2LTA2ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZW5hbWUgSURCRmFjdG9yeS5nZXREYXRh
YmFzZU5hbWVzKCkgdG8gd2Via2l0R2V0RGF0YWJhc2VOYW1lcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGY2YTBlNjQ3M2U3N2JiZjYzOWIwNTE0NjhkMDI2YjNkY2ExYjM5ZTkuLjNi
NmZkYWJjZjkxNzRjM2IxMmNlMzUwMzYyY2JmNWY1N2ZhYjA5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDUgIEFtaSBGaXNjaG1hbiAgPGZp
c2NobWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQbHVtYiBDT1JTIGF0dHJpYnV0ZSBpbmZv
cm1hdGlvbiBmcm9tIEhUTUxNZWRpYUVsZW1lbnQgdG8gbWVkaWEgcGxheWVycyBzbyBpdCBjYW4g
YmUgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCk6CisKIDIwMTItMDYtMDYg
IEFtaSBGaXNjaG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCA4MGE2M2I3M2YwYTE0NzA5MzQwYzQ4MjRiODc4MzUwNzU1MWMyOTg0Li4wN2ZkYzgw
ZDFjYWQxYWE2N2QxMTE4YzhiMGNhMDZkYzgzMWVlZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ0NTYsNiArNDQ1NiwxNSBAQCBTdHJpbmcgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdAogCiB9CiAKK01lZGlhUGxh
eWVyQ2xpZW50OjpDT1JTTW9kZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNPUlNNb2Rl
KCkgY29uc3QKK3sKKyAgICBpZiAoIWZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29y
aWdpbkF0dHIpKQorICAgICAgICByZXR1cm4gVW5zcGVjaWZpZWQ7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKGZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpLCAi
dXNlLWNyZWRlbnRpYWxzIikpCisgICAgICAgIHJldHVybiBVc2VDcmVkZW50aWFsczsKKyAgICBy
ZXR1cm4gQW5vbnltb3VzOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
TmVlZHNTaXRlU3BlY2lmaWNIYWNrcygpIGNvbnN0CiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdz
ID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggNTM2M2FlMjU1NTE1YWM2Y2E3ZWJmMGY5YTU2ODc2NTIyZjhmZGE3NC4uMTY3
M2UxNTM1MjQ5MThkNTI5NTcxZThiOTVlZDJlYTU0ZGY5MzU4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQyNyw2ICs0MjcsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBDT1JTTW9kZSBtZWRpYVBsYXllckNPUlNNb2RlKCkgY29uc3QgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJOZWVkc1NpdGVTcGVjaWZpY0hhY2tzKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJEb2N1bWVudEhv
c3QoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYzczZmM5OWU0MWFmNDhhMWYyM2Rk
OTM4M2E3NjFiMDAwYTMxMGJjNS4uNDE0NDc2MTA0NTZkYTdjYjgzYWM2NTg3MjQ0MjgyM2Y5ODgy
NTZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTc3LDExICs3NywxMiBAQCBib29sIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8p
CiAgICAgaWYgKCF2aWRlbyB8fCAhY2FudmFzKCktPm9yaWdpbkNsZWFuKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmICh3b3VsZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJyZW50U3Jj
KCkpKQorICAgIGlmICghdmlkZW8tPmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgaWYgKCF2aWRlby0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4o
KSkKKyAgICBpZiAoIXZpZGVvLT5wbGF5ZXIoKS0+ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpICYm
IHdvdWxkVGFpbnRPcmlnaW4odmlkZW8tPmN1cnJlbnRTcmMoKSkpCiAgICAgICAgIHJldHVybiB0
cnVlOworCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh2aWRlbyk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA5MzU3
MzMwZTQ5ZDYyNTkwZWMwNzQ2NTk1YzkyNDU4OWU1NzE4NDhjLi43ZDg0NWFjY2M4Y2IzZGQwNjFm
YzdlNTYxZDcxNTA4ODYyZTcxMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC04MzQsNiArODM0LDExIEBAIGJvb2wgTWVkaWFQ
bGF5ZXI6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2
YXRlLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpOwogfQogCitib29sIE1lZGlhUGxheWVyOjpk
aWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5k
aWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCk7Cit9CisKIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBl
IE1lZGlhUGxheWVyOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2
YXRlLT5tb3ZpZUxvYWRUeXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCA1MTZmMmZlOTg4MWU2MmJiZDZlZmY4YjAzYTZmMTBmOGE4
YTY2NTQ5Li42YzcyMmEwODA3YTQ1ZjAzYzU5Mzk2NTEyZjJkOThiMjUxZTA1MzNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTEwMSw2
ICsxMDEsOCBAQCBjbGFzcyBUaW1lUmFuZ2VzOwogCiBjbGFzcyBNZWRpYVBsYXllckNsaWVudCB7
CiBwdWJsaWM6CisgICAgZW51bSBDT1JTTW9kZSB7IFVuc3BlY2lmaWVkLCBBbm9ueW1vdXMsIFVz
ZUNyZWRlbnRpYWxzIH07CisKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllckNsaWVudCgpIHsgfQog
CiAgICAgLy8gR2V0IHRoZSBkb2N1bWVudCB3aGljaCB0aGUgbWVkaWEgcGxheWVyIGlzIG93bmVk
IGJ5CkBAIC0xNzgsNiArMTgwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbWVk
aWFQbGF5ZXJSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVh
bCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgQ09SU01vZGUgbWVkaWFQbGF5ZXJDT1JTTW9kZSgpIGNvbnN0IHsgcmV0
dXJuIFVuc3BlY2lmaWVkOyB9CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNs
aWVudCB7CkBAIC0zNTQsNiArMzU3LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTaW5nbGVT
ZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNr
KCkgY29uc3Q7CisKICAgICBmbG9hdCBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQpIGNvbnN0
OwogCiAgICAgZG91YmxlIG1heGltdW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggMDg1Mjc4ZTNlMDQxZjgwNTEzN2M1YTQyMDdlYWZkNTg3ZGVlYTljMi4u
NThiMjI3YTZkNzNmYmE0NWNiYmRlZDhmNzQyMGQxNWJhYTcyNzY3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTEzNSw2ICsxMzUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2Vj
dXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29s
IGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAg
dmlydHVhbCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qg
eyByZXR1cm4gTWVkaWFQbGF5ZXI6OlVua25vd247IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yUmVuZGVyaW5nKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFQbGF5ZXIuaAppbmRleCA3NTE5NDJiNWM4ZTgyMzA4NzE4MzBlYzkwYmUwNjc5NTUw
ZTVkNWQ2Li4zYjhlZjY0NTFkZTcxNmJlNDc3YTE2YThjMTZjMmEyNWI5NjBjYjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTEwOCw3
ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJNZWRpYVBsYXllcigpIHt9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBXZWJVUkwmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGxvYWQoY29uc3QgV2ViVVJMJiwgQ09SU01vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsTG9hZCgpID0gMDsKIAogICAgIC8vIFBsYXliYWNrIGNvbnRyb2xzLgpAQCAtMTU0LDYg
KzE1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5
dGVzKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNr
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBmbG9hdCBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxv
YXQgdGltZVZhbHVlKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IGMzMjNkMTBhYmRlMDhkZWU5NTMzYjI5
MDMyY2E1NTZhYTUwNTEyYjYuLjQwMzA4OGJjOTFlZTA3YjViNzQ2YmEwMTk2ZGFjYWIyNmRhYmQz
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCkBAIC01ODEsMyArNTgxLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJVUkxSZXNwb25zZTo6VW5rbm93biwgUmVzb3VyY2VSZXNwb25zZTo6VW5rbm93bikKIENP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OkhUVFBfMF85LCBSZXNv
dXJjZVJlc3BvbnNlOjpIVFRQXzBfOSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YlVSTFJlc3BvbnNlOjpIVFRQXzFfMCwgUmVzb3VyY2VSZXNwb25zZTo6SFRUUF8xXzApOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJVUkxSZXNwb25zZTo6SFRUUF8xXzEsIFJlc291
cmNlUmVzcG9uc2U6OkhUVFBfMV8xKTsKKworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJNZWRpYVBsYXllcjo6Q09SU01vZGVVbnNwZWNpZmllZCwgTWVkaWFQbGF5ZXJDbGllbnQ6OlVu
c3BlY2lmaWVkKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6
OkNPUlNNb2RlQW5vbnltb3VzLCBNZWRpYVBsYXllckNsaWVudDo6QW5vbnltb3VzKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6OkNPUlNNb2RlVXNlQ3JlZGVu
dGlhbHMsIE1lZGlhUGxheWVyQ2xpZW50OjpVc2VDcmVkZW50aWFscyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApp
bmRleCA0MGJlNGQ2ZDM0N2YzN2E5N2ZiYjc2YjQ5YTdmNGMwZjUwMzdlNjg4Li5hMjlhNGM3OTI4
YjY0NGZkNmRjNThlZjQ5ZmExZDU0MTA5MTkzYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTMxOCw3
ICszMTgsOSBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZEludGVybmFsKCkK
ICAgICAgICAgLy8gTWFrZSBzdXJlIGlmIHdlIGNyZWF0ZS9yZS1jcmVhdGUgdGhlIFdlYk1lZGlh
UGxheWVyIHRoYXQgd2UgdXBkYXRlIG91ciB3cmFwcGVyLgogICAgICAgICBtX2F1ZGlvU291cmNl
UHJvdmlkZXIud3JhcChtX3dlYk1lZGlhUGxheWVyLT5hdWRpb1NvdXJjZVByb3ZpZGVyKCkpOwog
I2VuZGlmCi0gICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmxvYWQoS1VSTChQYXJzZWRVUkxTdHJp
bmcsIG1fdXJsKSk7CisgICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmxvYWQoCisgICAgICAgICAg
ICBLVVJMKFBhcnNlZFVSTFN0cmluZywgbV91cmwpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
V2ViTWVkaWFQbGF5ZXI6OkNPUlNNb2RlPihtX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVu
dCgpLT5tZWRpYVBsYXllckNPUlNNb2RlKCkpKTsKICAgICB9CiB9CiAKQEAgLTY2Miw2ICs2NjQs
MTMgQEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyAgICBpZiAobV93
ZWJNZWRpYVBsYXllcikKKyAgICAgICAgcmV0dXJuIG1fd2ViTWVkaWFQbGF5ZXItPmRpZFBhc3ND
T1JTQWNjZXNzQ2hlY2soKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIE1lZGlhUGxheWVyOjpN
b3ZpZUxvYWRUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bW92aWVMb2FkVHlwZSgpIGNv
bnN0CiB7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4IDkwMmRkYzgz
NDdiMWFjNTBhNWE2ZDBjYzY2NTBiNzMyNzAxZDgzZjIuLjZmMTUwZGRhNzJmYmRmNDljNTcxZDE0
Y2I4OTg1ZWUwYzE0MThkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0xMzEsNiArMTMxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIHNldFByZWxvYWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQpOwogICAgIHZpcnR1
YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBmbG9hdCBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZhbHVlKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRGcmFtZUNvdW50KCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy92aWRlby1jcm9z
cy1vcmlnaW4tYWxsb3cucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzk4ZjEwMjMx
NmNlNmI2OGQ2ZjYxZWE4MmE1MzRkMTFiNTNjODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFs
bG93LnBocApAQCAtMCwwICsxLDEzIEBACis8P3BocAorCitoZWFkZXIoIkFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbjogKiIpOworCitpZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0g
Ik9QVElPTlMiKSB7CisgICAgaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBH
RVQiKTsKKyAgICBoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnM6IG9yaWdpbiwg
YWNjZXB0LWVuY29kaW5nLCByZWZlcmVyLCByYW5nZSIpOworICAgIGV4aXQ7Cit9CisKK0BpbmNs
dWRlKCIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvc2VydmUtdmlkZW8ucGhwIik7CisKKz8+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2st
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMjVhYmU5NGZiYzY0MmMwYWI5MGMxY2U4MjY0ZjVi
ZWM5OGY4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACitFVkVOVChwbGF5aW5nKQorRU5EIE9GIFRFU1QKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFk
YmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNDgwMGY5ODU4ZWJhNWE3Mzk2YjNkODU1MjI2MTQxN2I0
ZjcyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1s
PgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlh
LXJlc291cmNlcy92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS4uLy4u
L21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIHdhaXRGb3JFdmVudCgnZXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCJlcnJvcjogIiArIEpTT04uc3RyaW5naWZ5KHZpZGVvLmVycm9yKSk7CisgICAgICAg
IH0pOworCisgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAg
Y3R4LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9I
ZWlnaHQpOworICAgICAgICAgICAgICBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHZpZGVvLnZpZGVv
V2lkdGgsIHZpZGVvLnZpZGVvSGVpZ2h0KTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgIGZhaWxUZXN0KCJDYXVnaHQgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9KTsKKworICAgICAgICBmdW5jdGlvbiBzdGFy
dCgpIHsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZhciBt
ZWRpYUZpbGUgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRpYS9yZXNvdXJjZXMv
dGVzdCIpOworICAgICAgICAgICAgdmFyIHR5cGUgPSBtaW1lVHlwZUZvckV4dGVuc2lvbihtZWRp
YUZpbGUuc3BsaXQoJy4nKS5wb3AoKSk7CisgICAgICAgICAgICB2aWRlby5zcmMgPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxs
b3cucGhwP25hbWU9IiArIG1lZGlhRmlsZSArICImdHlwZT0iICsgdHlwZTsKKyAgICAgICAgICAg
IHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHZpZGVvIGNy
b3Nzb3JpZ2luPjwvdmlkZW8+CisgICAgPGNhbnZhcz48L2NhbnZhcz4KKyAgPC9ib2R5PgorPC9o
ZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146174</attachid>
            <date>2012-06-06 18:40:07 -0700</date>
            <delta_ts>2012-06-07 09:33:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120606184006.patch</filename>
            <type>text/plain</type>
            <size>13014</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkzMWZkYmIyZjE0M2Mz
NmIwNmEzOTQ3YThmZjZkOGNmMDEzMDk3Ni4uOGQ3NmI1NjhhNzkzMjczMjQ0NzQ2MjAwODk2MjFm
ZTI2MmY0ZmU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTA1ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFk
YmFjay5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDT1JTTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5
ZXJDT1JTTW9kZSk6CisKIDIwMTItMDYtMDYgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IFJlbmFtZSBJREJGYWN0b3J5LmdldERhdGFiYXNl
TmFtZXMoKSB0byB3ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZjZhMGU2NDczZTc3YmJmNjM5YjA1MTQ2OGQwMjZiM2RjYTFiMzllOS4uOGYwNDZm
YWM0YTVjMWMyY2FkYThmMTY5NzY2ODVmYTQ0MDcyNWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0wNSAgQW1pIEZpc2NobWFuICA8ZmlzY2ht
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBsdW1iIENPUlMgYXR0cmlidXRlIGluZm9ybWF0
aW9uIGZyb20gSFRNTE1lZGlhRWxlbWVudCB0byBtZWRpYSBwbGF5ZXJzIHNvIGl0IGNhbiBiZSB1
c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODM0
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKiBz
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50ZXJuYWwpOgorCiAyMDEyLTA2LTA2ICBBbWkgRmlz
Y2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJv
bGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
ODBhNjNiNzNmMGExNDcwOTM0MGM0ODI0Yjg3ODM1MDc1NTFjMjk4NC4uMDdmZGM4MGQxY2FkMWFh
NjdkMTExOGM4YjBjYTA2ZGM4MzFlZWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC00NDU2LDYgKzQ0NTYsMTUgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QKIAogfQogCitNZWRpYVBsYXllckNsaWVu
dDo6Q09SU01vZGUgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDT1JTTW9kZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFmYXN0SGFzQXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRy
KSkKKyAgICAgICAgcmV0dXJuIFVuc3BlY2lmaWVkOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShmYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSwgInVzZS1jcmVk
ZW50aWFscyIpKQorICAgICAgICByZXR1cm4gVXNlQ3JlZGVudGlhbHM7CisgICAgcmV0dXJuIEFu
b255bW91czsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck5lZWRzU2l0
ZVNwZWNpZmljSGFja3MoKSBjb25zdAogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3Vt
ZW50KCktPnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmlu
ZGV4IDUzNjNhZTI1NTUxNWFjNmNhN2ViZjBmOWE1Njg3NjUyMmY4ZmRhNzQuLjE2NzNlMTUzNTI0
OTE4ZDUyOTU3MWU4Yjk1ZWQyZWE1NGRmOTM1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCkBAIC00MjcsNiArNDI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
U3RyaW5nIG1lZGlhUGxheWVyUmVmZXJyZXIoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFN0cmluZyBtZWRpYVBsYXllclVzZXJBZ2VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgQ09SU01vZGUgbWVkaWFQbGF5ZXJDT1JTTW9kZSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
dmlydHVhbCBib29sIG1lZGlhUGxheWVyTmVlZHNTaXRlU3BlY2lmaWNIYWNrcygpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29u
c3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGM3M2ZjOTllNDFhZjQ4YTFmMjNkZDkzODNhNzYx
YjAwMGEzMTBiYzUuLjg4MTNkOTkwZDkwMGVlYzAxNGZlYmNjYzA0Y2Q0MmM1YjUzNWI2MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC03NywxMSArNzcsMTIgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
Ojp3b3VsZFRhaW50T3JpZ2luKGNvbnN0IEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvKQogICAgIGlm
ICghdmlkZW8gfHwgIWNhbnZhcygpLT5vcmlnaW5DbGVhbigpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAod291bGRUYWludE9yaWdpbih2aWRlby0+Y3VycmVudFNyYygpKSkKKyAg
ICBpZiAoIXZpZGVvLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGlmICghdmlkZW8tPmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkpCisgICAg
aWYgKCEodmlkZW8tPnBsYXllcigpICYmIHZpZGVvLT5wbGF5ZXIoKS0+ZGlkUGFzc0NPUlNBY2Nl
c3NDaGVjaygpKSAmJiB3b3VsZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJyZW50U3JjKCkpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKKwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odmlkZW8pOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKaW5kZXggOTM1NzMzMGU0OWQ2MjU5MGVjMDc0NjU5NWM5MjQ1ODllNTcxODQ4Yy4uN2Q4NDVh
Y2NjOGNiM2RkMDYxZmM3ZTU2MWQ3MTUwODg2MmU3MTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODM0LDYgKzgzNCwxMSBA
QCBib29sIE1lZGlhUGxheWVyOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKTsKIH0KIAorYm9vbCBN
ZWRpYVBsYXllcjo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpOworfQorCiBNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllcjo6bW92aWVMb2FkVHlwZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bW92aWVMb2FkVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNTE2ZjJmZTk4ODFlNjJiYmQ2ZWZm
OGIwM2E2ZjEwZjhhOGE2NjU0OS4uNmM3MjJhMDgwN2E0NWYwM2M1OTM5NjUxMmYyZDk4YjI1MWUw
NTMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0xMDEsNiArMTAxLDggQEAgY2xhc3MgVGltZVJhbmdlczsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJDbGllbnQgewogcHVibGljOgorICAgIGVudW0gQ09SU01vZGUgeyBVbnNwZWNpZmllZCwg
QW5vbnltb3VzLCBVc2VDcmVkZW50aWFscyB9OworCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJD
bGllbnQoKSB7IH0KIAogICAgIC8vIEdldCB0aGUgZG9jdW1lbnQgd2hpY2ggdGhlIG1lZGlhIHBs
YXllciBpcyBvd25lZCBieQpAQCAtMTc4LDYgKzE4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgU3RyaW5nIG1lZGlhUGxheWVyUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsg
fQogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgeyByZXR1
cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIENPUlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUo
KSBjb25zdCB7IHJldHVybiBVbnNwZWNpZmllZDsgfQogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJT
dXBwb3J0c1R5cGVDbGllbnQgewpAQCAtMzU0LDYgKzM1Nyw4IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAorICAgIGJvb2wgZGlkUGFzc0NP
UlNBY2Nlc3NDaGVjaygpIGNvbnN0OworCiAgICAgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVl
KGZsb2F0KSBjb25zdDsKIAogICAgIGRvdWJsZSBtYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFU
aW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDA4NTI3OGUzZTA0MWY4MDUxMzdjNWE0MjA3ZWFm
ZDU4N2RlZWE5YzIuLjU4YjIyN2E2ZDczZmJhNDVjYmJkZWQ4Zjc0MjBkMTViYWE3Mjc2N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCkBAIC0xMzUsNiArMTM1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKwogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2Fk
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUGxheWVyOjpVbmtub3duOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKaW5kZXggNzUxOTQyYjVjOGU4MjMwODcxODMw
ZWM5MGJlMDY3OTU1MGU1ZDVkNi4uM2I4ZWY2NDUxZGU3MTZiZTQ3N2ExNmE4YzE2YzJhMjViOTYw
Y2IzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXll
ci5oCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+V2ViTWVkaWFQ
bGF5ZXIoKSB7fQogCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFdlYlVSTCYsIENPUlNNb2RlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSA9IDA7CiAKICAgICAvLyBQbGF5YmFjayBjb250cm9s
cy4KQEAgLTE1NCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxCeXRlcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkUGFzc0NP
UlNBY2Nlc3NDaGVjaygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1vdmllTG9hZFR5cGUgbW92
aWVMb2FkVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9y
VGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBjMzIzZDEwYWJk
ZTA4ZGVlOTUzM2IyOTAzMmNhNTU2YWE1MDUxMmI2Li40MDMwODhiYzkxZWUwN2I1Yjc0NmJhMDE5
NmRhY2FiMjZkYWJkM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTgxLDMgKzU4MSw3IEBAIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OlVua25vd24sIFJlc291cmNlUmVzcG9uc2U6
OlVua25vd24pCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlVSTFJlc3BvbnNlOjpI
VFRQXzBfOSwgUmVzb3VyY2VSZXNwb25zZTo6SFRUUF8wXzkpOwogQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJVUkxSZXNwb25zZTo6SFRUUF8xXzAsIFJlc291cmNlUmVzcG9uc2U6OkhU
VFBfMV8wKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OkhU
VFBfMV8xLCBSZXNvdXJjZVJlc3BvbnNlOjpIVFRQXzFfMSk7CisKK0NPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXI6OkNPUlNNb2RlVW5zcGVjaWZpZWQsIE1lZGlhUGxh
eWVyQ2xpZW50OjpVbnNwZWNpZmllZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
Yk1lZGlhUGxheWVyOjpDT1JTTW9kZUFub255bW91cywgTWVkaWFQbGF5ZXJDbGllbnQ6OkFub255
bW91cyk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JT
TW9kZVVzZUNyZWRlbnRpYWxzLCBNZWRpYVBsYXllckNsaWVudDo6VXNlQ3JlZGVudGlhbHMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5jcHAKaW5kZXggNDBiZTRkNmQzNDdmMzdhOTdmYmI3NmI0OWE3ZjRjMGY1MDM3ZTY4
OC4uYTI5YTRjNzkyOGI2NDRmZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
Y3BwCkBAIC0zMTgsNyArMzE4LDkgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omxv
YWRJbnRlcm5hbCgpCiAgICAgICAgIC8vIE1ha2Ugc3VyZSBpZiB3ZSBjcmVhdGUvcmUtY3JlYXRl
IHRoZSBXZWJNZWRpYVBsYXllciB0aGF0IHdlIHVwZGF0ZSBvdXIgd3JhcHBlci4KICAgICAgICAg
bV9hdWRpb1NvdXJjZVByb3ZpZGVyLndyYXAobV93ZWJNZWRpYVBsYXllci0+YXVkaW9Tb3VyY2VQ
cm92aWRlcigpKTsKICNlbmRpZgotICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKEtVUkwo
UGFyc2VkVVJMU3RyaW5nLCBtX3VybCkpOworICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2Fk
KAorICAgICAgICAgICAgS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwKKyAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZT4obV9tZWRpYVBsYXllci0+bWVk
aWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDT1JTTW9kZSgpKSk7CiAgICAgfQogfQogCkBA
IC02NjIsNiArNjY0LDEzIEBAIGJvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpoYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0Cit7
CisgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCisgICAgICAgIHJldHVybiBtX3dlYk1lZGlhUGxh
eWVyLT5kaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBN
ZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om1vdmll
TG9hZFR5cGUoKSBjb25zdAogewogICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApp
bmRleCA5MDJkZGM4MzQ3YjFhYzUwYTVhNmQwY2M2NjUwYjczMjcwMWQ4M2YyLi42ZjE1MGRkYTcy
ZmJkZjQ5YzU3MWQxNGNiODk4NWVlMGMxNDE4ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTMxLDYgKzEz
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVsb2FkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2Fk
KTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVW
YWx1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkRnJhbWVDb3VudCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL3ZpZGVvLWNyb3NzLW9yaWdpbi1hbGxvdy5waHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDM5OGYxMDIzMTZjZTZiNjhkNmY2MWVhODJhNTM0ZDExYjUzYzg1YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3ZpZGVvLWNy
b3NzLW9yaWdpbi1hbGxvdy5waHAKQEAgLTAsMCArMSwxMyBAQAorPD9waHAKKworaGVhZGVyKCJB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoiKTsKKworaWYgKCRfU0VSVkVSWydSRVFVRVNU
X01FVEhPRCddID09ICJPUFRJT05TIikgeworICAgIGhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxs
b3ctTWV0aG9kczogR0VUIik7CisgICAgaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFk
ZXJzOiBvcmlnaW4sIGFjY2VwdC1lbmNvZGluZywgcmVmZXJlciwgcmFuZ2UiKTsKKyAgICBleGl0
OworfQorCitAaW5jbHVkZSgiLi4vLi4vbWVkaWEvcmVzb3VyY2VzL3NlcnZlLXZpZGVvLnBocCIp
OworCis/PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLXJlYWRiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDI1YWJlOTRmYmM2NDJjMGFi
OTBjMWNlODI2NGY1YmVjOThmODk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorRVZFTlQocGxheWluZykKK0VORCBPRiBURVNUCisgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1y
ZWFkYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTQ4MDBmOTg1OGViYTVhNzM5NmIz
ZDg1NTIyNjE0MTdiNGY3MjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbApAQCAtMCwwICsx
LDMzIEBACis8aHRtbD4KKyAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8c2NyaXB0IHNy
Yz0uLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0uLi8uLi9tZWRpYS1yZXNvdXJjZXMvbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Vycm9yJywgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBmYWlsVGVzdCgiZXJyb3I6ICIgKyBKU09OLnN0cmluZ2lmeSh2aWRlby5lcnJv
cikpOworICAgICAgICB9KTsKKworICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXlpbmcnLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICB2YXIgY3R4ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpWzBdLmdldENvbnRleHQoIjJkIik7Cisg
ICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIHZpZGVvLnZpZGVvV2lkdGgs
IHZpZGVvLnZpZGVvSGVpZ2h0KTsKKyAgICAgICAgICAgICAgY3R4LmdldEltYWdlRGF0YSgwLCAw
LCB2aWRlby52aWRlb1dpZHRoLCB2aWRlby52aWRlb0hlaWdodCk7CisgICAgICAgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICAgICAgICBmYWlsVGVzdCgiQ2F1Z2h0IGVycm9yOiAiICsgZSk7Cisg
ICAgICAgICAgfQorICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAg
ICAgICAgICB2YXIgbWVkaWFGaWxlID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vLi4vbWVk
aWEvcmVzb3VyY2VzL3Rlc3QiKTsKKyAgICAgICAgICAgIHZhciB0eXBlID0gbWltZVR5cGVGb3JF
eHRlbnNpb24obWVkaWFGaWxlLnNwbGl0KCcuJykucG9wKCkpOworICAgICAgICAgICAgdmlkZW8u
c3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jv
c3Mtb3JpZ2luLWFsbG93LnBocD9uYW1lPSIgKyBtZWRpYUZpbGUgKyAiJnR5cGU9IiArIHR5cGU7
CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKwor
ICAgIDx2aWRlbyBjcm9zc29yaWdpbj48L3ZpZGVvPgorICAgIDxjYW52YXM+PC9jYW52YXM+Cisg
IDwvYm9keT4KKzwvaGVhZD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146308</attachid>
            <date>2012-06-07 09:33:57 -0700</date>
            <delta_ts>2012-06-07 11:37:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88349-20120607093356.patch</filename>
            <type>text/plain</type>
            <size>18836</size>
            <attacher name="Ami Fischman">fischman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiODI5MDZjMWYxNjY2
NzcxYzc5YzA2NjM0ZDUyYjNhZGZjZTk5NS4uNTBkNTBjNzhhYTk0ODAwMTJlNzYxNTJkMWVjNDdm
YTA5MTUxOGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA2LTA3ICBBbWkg
RmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBh
dHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBIVE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXll
cnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFk
YmFjay5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDT1JTTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDo6d291bGRUYWludE9yaWdpbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmRpZFBhc3NDT1JTQWNj
ZXNzQ2hlY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50Ojpt
ZWRpYVBsYXllckNPUlNNb2RlKToKKyAgICAgICAgKE1lZGlhUGxheWVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjayk6Cisg
ICAgICAgIChNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UpOgorCiAyMDEyLTA2LTA3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTE5Njk0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAx
NDU2MWE4YmNkOTBkODBiMTZiNzgxOTFlNzE3MmNmOWJkOTkzNWRjLi42ZTA5OGRmN2RiOGViNzhm
MzRhYzJmZDgxODNiYzJjM2FiNmQxNTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDEyLTA2LTA3ICBBbWkgRmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUGx1bWIgQ09SUyBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBI
VE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXllcnMgc28gaXQgY2FuIGJlIHVzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBs
YXllci5oOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHNyYy9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkSW50
ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2spOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJNZWRpYVBsYXllckNsaWVudElt
cGwpOgorCiAyMDEyLTA2LTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE5Njk0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODBhNjNiNzNmMGExNDcwOTM0
MGM0ODI0Yjg3ODM1MDc1NTFjMjk4NC4uMDdmZGM4MGQxY2FkMWFhNjdkMTExOGM4YjBjYTA2ZGM4
MzFlZWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00
NDU2LDYgKzQ0NTYsMTUgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVXNl
ckFnZW50KCkgY29uc3QKIAogfQogCitNZWRpYVBsYXllckNsaWVudDo6Q09SU01vZGUgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDT1JTTW9kZSgpIGNvbnN0Cit7CisgICAgaWYgKCFmYXN0
SGFzQXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSkKKyAgICAgICAgcmV0dXJu
IFVuc3BlY2lmaWVkOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShmYXN0R2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSwgInVzZS1jcmVkZW50aWFscyIpKQorICAgICAg
ICByZXR1cm4gVXNlQ3JlZGVudGlhbHM7CisgICAgcmV0dXJuIEFub255bW91czsKK30KKwogYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck5lZWRzU2l0ZVNwZWNpZmljSGFja3MoKSBj
b25zdAogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDUzNjNhZTI1NTUxNWFj
NmNhN2ViZjBmOWE1Njg3NjUyMmY4ZmRhNzQuLjE2NzNlMTUzNTI0OTE4ZDUyOTU3MWU4Yjk1ZWQy
ZWE1NGRmOTM1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00
MjcsNiArNDI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVy
UmVmZXJyZXIoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXll
clVzZXJBZ2VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ09SU01vZGUgbWVkaWFQ
bGF5ZXJDT1JTTW9kZSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIG1lZGlh
UGxheWVyTmVlZHNTaXRlU3BlY2lmaWNIYWNrcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29uc3QgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
Y3BwCmluZGV4IGM3M2ZjOTllNDFhZjQ4YTFmMjNkZDkzODNhNzYxYjAwMGEzMTBiYzUuLjg4MTNk
OTkwZDkwMGVlYzAxNGZlYmNjYzA0Y2Q0MmM1YjUzNWI2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03Nywx
MSArNzcsMTIgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp3b3VsZFRhaW50T3JpZ2lu
KGNvbnN0IEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvKQogICAgIGlmICghdmlkZW8gfHwgIWNhbnZh
cygpLT5vcmlnaW5DbGVhbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAod291
bGRUYWludE9yaWdpbih2aWRlby0+Y3VycmVudFNyYygpKSkKKyAgICBpZiAoIXZpZGVvLT5oYXNT
aW5nbGVTZWN1cml0eU9yaWdpbigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICgh
dmlkZW8tPmhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkpCisgICAgaWYgKCEodmlkZW8tPnBsYXll
cigpICYmIHZpZGVvLT5wbGF5ZXIoKS0+ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpKSAmJiB3b3Vs
ZFRhaW50T3JpZ2luKHZpZGVvLT5jdXJyZW50U3JjKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
KwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odmlkZW8pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOTM1NzMzMGU0
OWQ2MjU5MGVjMDc0NjU5NWM5MjQ1ODllNTcxODQ4Yy4uN2Q4NDVhY2NjOGNiM2RkMDYxZmM3ZTU2
MWQ3MTUwODg2MmU3MTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtODM0LDYgKzgzNCwxMSBAQCBib29sIE1lZGlhUGxheWVy
OjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllcjo6ZGlkUGFz
c0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkUGFz
c0NPUlNBY2Nlc3NDaGVjaygpOworfQorCiBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRp
YVBsYXllcjo6bW92aWVMb2FkVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
bW92aWVMb2FkVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggNTE2ZjJmZTk4ODFlNjJiYmQ2ZWZmOGIwM2E2ZjEwZjhhOGE2NjU0
OS4uNmM3MjJhMDgwN2E0NWYwM2M1OTM5NjUxMmYyZDk4YjI1MWUwNTMzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgVGltZVJhbmdlczsKIAogY2xhc3MgTWVkaWFQbGF5ZXJDbGllbnQgewogcHVi
bGljOgorICAgIGVudW0gQ09SU01vZGUgeyBVbnNwZWNpZmllZCwgQW5vbnltb3VzLCBVc2VDcmVk
ZW50aWFscyB9OworCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KIAogICAg
IC8vIEdldCB0aGUgZG9jdW1lbnQgd2hpY2ggdGhlIG1lZGlhIHBsYXllciBpcyBvd25lZCBieQpA
QCAtMTc4LDYgKzE4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxh
eWVyUmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgU3Ry
aW5nIG1lZGlhUGxheWVyVXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAg
ICB2aXJ0dWFsIENPUlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUoKSBjb25zdCB7IHJldHVybiBV
bnNwZWNpZmllZDsgfQogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQg
ewpAQCAtMzU0LDYgKzM1Nyw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKIAorICAgIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNv
bnN0OworCiAgICAgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0KSBjb25zdDsKIAog
ICAgIGRvdWJsZSBtYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCmluZGV4IDA4NTI3OGUzZTA0MWY4MDUxMzdjNWE0MjA3ZWFmZDU4N2RlZWE5YzIuLjU4YjIy
N2E2ZDczZmJhNDVjYmJkZWQ4Zjc0MjBkMTViYWE3Mjc2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xMzUs
NiArMTM1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBkaWRQ
YXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHZpcnR1
YWwgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIE1lZGlhUGxheWVyOjpVbmtub3duOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZv
clJlbmRlcmluZygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhUGxheWVyLmgKaW5kZXggNzUxOTQyYjVjOGU4MjMwODcxODMwZWM5MGJlMDY3OTU1MGU1ZDVk
Ni4uM2I4ZWY2NDUxZGU3MTZiZTQ3N2ExNmE4YzE2YzJhMjViOTYwY2IzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCkBAIC0xMDgsNyArMTA4
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+V2ViTWVkaWFQbGF5ZXIoKSB7fQogCi0gICAg
dmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViVVJMJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkKGNvbnN0IFdlYlVSTCYsIENPUlNNb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bExvYWQoKSA9IDA7CiAKICAgICAvLyBQbGF5YmFjayBjb250cm9scy4KQEAgLTE1NCw2ICsxNTQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygp
IGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIE1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0
ID0gMDsKIAogICAgIHZpcnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRp
bWVWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBjMzIzZDEwYWJkZTA4ZGVlOTUzM2IyOTAzMmNh
NTU2YWE1MDUxMmI2Li40MDMwODhiYzkxZWUwN2I1Yjc0NmJhMDE5NmRhY2FiMjZkYWJkM2UyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcApAQCAtNTgxLDMgKzU4MSw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
VVJMUmVzcG9uc2U6OlVua25vd24sIFJlc291cmNlUmVzcG9uc2U6OlVua25vd24pCiBDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlVSTFJlc3BvbnNlOjpIVFRQXzBfOSwgUmVzb3VyY2VS
ZXNwb25zZTo6SFRUUF8wXzkpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJVUkxS
ZXNwb25zZTo6SFRUUF8xXzAsIFJlc291cmNlUmVzcG9uc2U6OkhUVFBfMV8wKTsKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViVVJMUmVzcG9uc2U6OkhUVFBfMV8xLCBSZXNvdXJjZVJl
c3BvbnNlOjpIVFRQXzFfMSk7CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVk
aWFQbGF5ZXI6OkNPUlNNb2RlVW5zcGVjaWZpZWQsIE1lZGlhUGxheWVyQ2xpZW50OjpVbnNwZWNp
ZmllZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JT
TW9kZUFub255bW91cywgTWVkaWFQbGF5ZXJDbGllbnQ6OkFub255bW91cyk7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpDT1JTTW9kZVVzZUNyZWRlbnRpYWxz
LCBNZWRpYVBsYXllckNsaWVudDo6VXNlQ3JlZGVudGlhbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXgg
NDBiZTRkNmQzNDdmMzdhOTdmYmI3NmI0OWE3ZjRjMGY1MDM3ZTY4OC4uYTI5YTRjNzkyOGI2NDRm
ZDZkYzU4ZWY0OWZhMWQ1NDEwOTE5M2EzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC0zMTgsNyArMzE4
LDkgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAgICAg
ICAgIC8vIE1ha2Ugc3VyZSBpZiB3ZSBjcmVhdGUvcmUtY3JlYXRlIHRoZSBXZWJNZWRpYVBsYXll
ciB0aGF0IHdlIHVwZGF0ZSBvdXIgd3JhcHBlci4KICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3Zp
ZGVyLndyYXAobV93ZWJNZWRpYVBsYXllci0+YXVkaW9Tb3VyY2VQcm92aWRlcigpKTsKICNlbmRp
ZgotICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBt
X3VybCkpOworICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5sb2FkKAorICAgICAgICAgICAgS1VS
TChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYk1l
ZGlhUGxheWVyOjpDT1JTTW9kZT4obV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+
bWVkaWFQbGF5ZXJDT1JTTW9kZSgpKSk7CiAgICAgfQogfQogCkBAIC02NjIsNiArNjY0LDEzIEBA
IGJvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6ZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0Cit7CisgICAgaWYgKG1fd2ViTWVk
aWFQbGF5ZXIpCisgICAgICAgIHJldHVybiBtX3dlYk1lZGlhUGxheWVyLT5kaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBNZWRpYVBsYXllcjo6TW92aWVM
b2FkVHlwZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om1vdmllTG9hZFR5cGUoKSBjb25zdAog
ewogICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA5MDJkZGM4MzQ3YjFh
YzUwYTVhNmQwY2M2NjUwYjczMjcwMWQ4M2YyLi42ZjE1MGRkYTcyZmJkZjQ5YzU3MWQxNGNiODk4
NWVlMGMxNDE4ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQcmVsb2FkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkKTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlk
UGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
ZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29uc3Q7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkRnJhbWVDb3VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI5OWIy
ODc0ZjJjMmJmZTVhMGFhYzNhMGViMzdiMWUxYjJmMGJjNWEuLmM5NTdjM2U4YWU0YWQ4YThmOTM3
NjA5MzdkNzExNGFmNzJiOGViODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNi0wNyAg
QW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBsdW1iIENP
UlMgYXR0cmlidXRlIGluZm9ybWF0aW9uIGZyb20gSFRNTE1lZGlhRWxlbWVudCB0byBtZWRpYSBw
bGF5ZXJzIHNvIGl0IGNhbiBiZSB1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04ODM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1v
cmlnaW4tYWxsb3cucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Zp
ZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgor
ICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6CisKIDIwMTItMDYtMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTk2OTQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLWFsbG93LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzk4ZjEwMjMxNmNlNmI2OGQ2ZjYxZWE4MmE1MzRk
MTFiNTNjODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocApAQCAtMCwwICsxLDEz
IEBACis8P3BocAorCitoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOwor
CitpZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVh
ZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBHRVQiKTsKKyAgICBoZWFkZXIoIkFj
Y2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnM6IG9yaWdpbiwgYWNjZXB0LWVuY29kaW5nLCByZWZl
cmVyLCByYW5nZSIpOworICAgIGV4aXQ7Cit9CisKK0BpbmNsdWRlKCIuLi8uLi9tZWRpYS9yZXNv
dXJjZXMvc2VydmUtdmlkZW8ucGhwIik7CisKKz8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFkMjVhYmU5NGZiYzY0MmMwYWI5MGMxY2U4MjY0ZjViZWM5OGY4OTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdp
bi1yZWFkYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitFVkVOVChwbGF5aW5nKQor
RU5EIE9GIFRFU1QKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIxNDgwMGY5ODU4ZWJhNWE3Mzk2YjNkODU1MjI2MTQxN2I0ZjcyMTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1y
ZWFkYmFjay5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorICA8Ym9keSBvbmxvYWQ9InN0
YXJ0KCkiPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0
LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRp
YS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdhaXRGb3JFdmVudCgn
ZXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCJlcnJvcjogIiArIEpT
T04uc3RyaW5naWZ5KHZpZGVvLmVycm9yKSk7CisgICAgICAgIH0pOworCisgICAgICAgIHdhaXRG
b3JFdmVudCgncGxheWluZycsIGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgIHZhciBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylb
MF0uZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywg
MCwgMCwgdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHQpOworICAgICAgICAgICAg
ICBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHZpZGVvLnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVp
Z2h0KTsKKyAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgIGZhaWxUZXN0KCJD
YXVnaHQgZXJyb3I6ICIgKyBlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgZW5kVGVzdCgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFG
aWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRpYS9yZXNvdXJjZXMvdGVzdCIpOworICAgICAgICAgICAg
dmFyIHR5cGUgPSBtaW1lVHlwZUZvckV4dGVuc2lvbihtZWRpYUZpbGUuc3BsaXQoJy4nKS5wb3Ao
KSk7CisgICAgICAgICAgICB2aWRlby5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3Vy
aXR5L3Jlc291cmNlcy92aWRlby1jcm9zcy1vcmlnaW4tYWxsb3cucGhwP25hbWU9IiArIG1lZGlh
RmlsZSArICImdHlwZT0iICsgdHlwZTsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHZpZGVvIGNyb3Nzb3JpZ2luPjwvdmlkZW8+Cisg
ICAgPGNhbnZhcz48L2NhbnZhcz4KKyAgPC9ib2R5PgorPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
U2tpcHBlZAppbmRleCA0NzA2MzBhYTAwYTE1MGEwNjI1ZjdhNzZhOGU3MmMyN2ZjMWJmNmFjLi4x
M2QwNGQyZTFjNjUxZTY4M2VkMjk1NmQ4YjY5OWMwYTA2ODA2MmFjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvU2tpcHBlZApAQCAtMzAyLDYgKzMwMiw5IEBAIGZhc3QvbXV0YXRpb24vZGF0YWJhc2UtY2Fs
bGJhY2stZGVsaXZlcnkuaHRtbAogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCiBm
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sCiAKKyMgTm8gQ09SUyBzdXBwb3J0
IGZvciBtZWRpYSBlbGVtZW50cyBpcyBpbXBsZW1lbnRlZCB5ZXQuCitodHRwL3Rlc3RzL3NlY3Vy
aXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1yZWFkYmFjay5odG1sCisKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICMgVGVzdHMgd2hpY2ggYXJlIGV4cGVjdGVkIHRvIGZhaWwKICMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2U3YTIxM2NlMmYwYTNlOWY5NmNlMmMxNmFiMzgzODc0
NTQxYzU1OC4uZDAyZjg2YjQ5ZTE3MjVlMzA3ODNkMDlhMDExMjM3ZDdmOWNlMTNiYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMxNSw2ICszMTUsOSBA
QCBCVUdXSzc5MjAzIFNLSVAgOiBmYXN0L21lZGlhc3RyZWFtID0gRkFJTAogLy8gQ1NTIFZhcmlh
YmxlcyBhcmUgbm90IHlldCBlbmFibGVkLgogQlVHV0s4NTU4MCBTS0lQIDogZmFzdC9jc3MvdmFy
aWFibGVzID0gUEFTUyBGQUlMCiAKKy8vIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxlbWVu
dHMgaXMgaW1wbGVtZW50ZWQgeWV0LgorQlVHV0tHVEsgU0tJUCA6IGh0dHAvdGVzdHMvc2VjdXJp
dHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwgPSBGQUlMCisKIC8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gRW5kIG9mIEV4cGVjdGVkIGZhaWx1cmVzCiAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5k
ZXggMzYwZWU2YTI0M2JmNWFlOGU3MWQ3YWY1NmI3ZjgzMGZiNTA5NzM4YS4uN2I4ZWQ5NDIxODhi
ZDQxMzNkYWM3OWE1NWRjNWUyNGVlNWNjYWU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
QEAgLTgxMCw2ICs4MTAsOSBAQCBmYXN0L3N1Yi1waXhlbC9zaXplLW9mLWJveC13aXRoLXpvb20u
aHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1nYXBzLWF0LWZyYWN0aW9u
YWwtb2Zmc2V0cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9sLWF0LWZy
YWN0aW9uYWwtb2Zmc2V0Lmh0bWwKIAorIyBObyBDT1JTIHN1cHBvcnQgZm9yIG1lZGlhIGVsZW1l
bnRzIGlzIGltcGxlbWVudGVkIHlldC4KK2h0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mt
b3JpZ2luLXJlYWRiYWNrLmh0bWwKKwogIyBtZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwgc29tZXRp
bWVzIGZhaWxzIG9uIExpb24gRGVidWcgKFRlc3RzKQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQzNTcKIG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKaW5kZXggYjk4ZTJjZGE5OTUzZGZhOTYyZGQ2NWFiMGI3YmMwM2I0Yjhm
ZDE3MS4uODgyNTc3ZGQzYzg5NDkwNTY4NzMzYTUwZGEwZDU3YjRjZjE3NjQ1MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCkBAIC00MzAsNiArNDMwLDkgQEAgZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS10cmFuc2l0aW9uLXRlc3QuaHRtbAogCisjIE5vIENPUlMgc3VwcG9ydCBmb3IgbWVkaWEgZWxl
bWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0LgoraHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9z
cy1vcmlnaW4tcmVhZGJhY2suaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAg
IERyYWcgYW5kIERyb3AgU3VwcG9ydCBpbiBEUlQuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCmluZGV4IDE0MDA3OGZhYTljZjk5NGNmMDcwNGYxNTIwZjcyMTAyZWU0MTQwNDAuLmU1
ZGZkNDgzMGIyZmRmZDI5YmM2MzMzZDc5M2FjZTUyMzgyNGY0NDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCkBAIC0xNzQ5LDYgKzE3NDksOSBAQCBmYXN0L3N1Yi1waXhlbC9zaXplLW9mLWJv
eC13aXRoLXpvb20uaHRtbAogZmFzdC9zdWItcGl4ZWwvc2VsZWN0aW9uL3NlbGVjdGlvbi1nYXBz
LWF0LWZyYWN0aW9uYWwtb2Zmc2V0cy5odG1sCiBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1j
b250cm9sLWF0LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0bWwKIAorIyBObyBDT1JTIHN1cHBvcnQgZm9y
IG1lZGlhIGVsZW1lbnRzIGlzIGltcGxlbWVudGVkIHlldC4KK2h0dHAvdGVzdHMvc2VjdXJpdHkv
dmlkZW8tY3Jvc3Mtb3JpZ2luLXJlYWRiYWNrLmh0bWwKKwogIyBodHRwOi8vd2Via2l0Lm9yZy9i
LzgyODg2CiBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCAyMmRjMzRiYzE5MGRkYmNmMzhlMjcwNGEyN2YyNDU5
MjhmMDRmNjhkLi43YWVkMWZjNWVmMWFmYTY1ZTg4NDZmY2NhNTAwMzViNDlmODMyNjljIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtMTA1NSw2ICsxMDU1LDkgQEAgZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbAogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNjIKIGVkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1z
cGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsuaHRtbAogCisjIE5vIENPUlMgc3VwcG9ydCBmb3Ig
bWVkaWEgZWxlbWVudHMgaXMgaW1wbGVtZW50ZWQgeWV0LgoraHR0cC90ZXN0cy9zZWN1cml0eS92
aWRlby1jcm9zcy1vcmlnaW4tcmVhZGJhY2suaHRtbAorCiAjIyMgRU5EIE9GICgyKSBDbGFzc2lm
aWVkIGZhaWx1cmVzIHdpdGhvdXQgYnVnIHJlcG9ydHMgKHlldCkKICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>