<?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>76593</bug_id>
          
          <creation_ts>2012-01-18 17:48:48 -0800</creation_ts>
          <short_desc>Merge WebGraphicsContext3D creation and initialization</short_desc>
          <delta_ts>2012-01-31 13:37:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Labour">piman</reporter>
          <assigned_to name="Antoine Labour">piman</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>rniwa</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>538359</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-18 17:48:48 -0800</bug_when>
    <thetext>Merge WebGraphicsContext3D creation and initialization</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538361</commentid>
    <comment_count>1</comment_count>
      <attachid>123045</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-18 17:51:00 -0800</bug_when>
    <thetext>Created attachment 123045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538366</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-18 17:53:22 -0800</bug_when>
    <thetext>webkit side of https://chromiumcodereview.appspot.com/9249048/
(chrome side needs to land first).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538367</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 17:54:10 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538381</commentid>
    <comment_count>4</comment_count>
      <attachid>123045</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-18 18:08:26 -0800</bug_when>
    <thetext>Comment on attachment 123045
Patch

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

This looks fine overall. Please request review again when you&apos;re ready to land it. You might roll Source/WebKit/chromium/DEPS in the same patch.

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:326
&gt;      virtual WebGraphicsContext3D* createGraphicsContext3D() { return 0; }

Add a comment indicating that this variant is obsolete and is being removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538450</commentid>
    <comment_count>5</comment_count>
      <attachid>123045</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-18 21:20:06 -0800</bug_when>
    <thetext>Comment on attachment 123045
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:322
&gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(

WebKitPlatformSupport is not supposed to know about WebView.  please don&apos;t add this parameter here.  for that matter, WebGraphicsContext3D should not know about WebView either.  we have a layering violation here :(

one way to get around this problem is to introduce a creation function on WebViewClient.  that way, you are creating a WebGraphicsContext3D at a higher level, and yet the WebGraphicsContext3D interface would not need to know about WebView directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538894</commentid>
    <comment_count>6</comment_count>
      <attachid>123167</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-19 12:03:18 -0800</bug_when>
    <thetext>Created attachment 123167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538900</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-19 12:05:11 -0800</bug_when>
    <thetext>PTAL, chrome side is there: https://chromiumcodereview.appspot.com/9254035/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538939</commentid>
    <comment_count>8</comment_count>
      <attachid>123167</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-19 12:38:54 -0800</bug_when>
    <thetext>Comment on attachment 123167
Patch

Looks fine to me, but as before, will need the Chromium side to land and Chromium DEPS rolled forward. Suggest rolling DEPS in the same patch.

Leaving r? for Darin&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539019</commentid>
    <comment_count>9</comment_count>
      <attachid>123167</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-19 14:09:18 -0800</bug_when>
    <thetext>Comment on attachment 123167
Patch

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:114
&gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes, WebView*, bool renderDirectlyToWebView) { return 0; }

nit: no need for the WebView parameter since the WebViewClient knows what WebView it is associated with.  (I presume you don&apos;t need to ask a RenderWidget to create a WGC3D for some other RenderWidget.)

What does renderDirectlyToWebView mean?  Maybe you could document that a bit?

&gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:159
&gt; +    OwnPtr&lt;WebKit::WebGraphicsContext3D&gt; webContext = adoptPtr(webViewImpl-&gt;client()-&gt;createGraphicsContext3D(webAttributes, webViewImpl, renderDirectlyToHostWindow));

In the future, we&apos;ll probably want to bridge up through an interface like HostWindow, but that doesn&apos;t have to happen now.  You see, GraphicsContext3DChromium.cpp is technically part of WebCore/platform/, and as such it should not have direct access to the WebViewImpl either.  But, please don&apos;t try to fix this in this patch :-)

Otherwise, LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539711</commentid>
    <comment_count>10</comment_count>
      <attachid>123361</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-20 12:37:08 -0800</bug_when>
    <thetext>Created attachment 123361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539714</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-20 12:39:36 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 123167 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123167&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:114
&gt; &gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes, WebView*, bool renderDirectlyToWebView) { return 0; }
&gt; 
&gt; nit: no need for the WebView parameter since the WebViewClient knows what WebView it is associated with.  (I presume you don&apos;t need to ask a RenderWidget to create a WGC3D for some other RenderWidget.)

Done.

&gt; 
&gt; What does renderDirectlyToWebView mean?  Maybe you could document that a bit?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539724</commentid>
    <comment_count>12</comment_count>
      <attachid>123361</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-20 12:53:14 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

LGTM for what it&apos;s worth. Still suggest waiting for the Chromium side to land and rolling forward Chromium DEPS in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539803</commentid>
    <comment_count>13</comment_count>
      <attachid>123361</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 14:43:26 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

Attachment 123361 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11173709</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541944</commentid>
    <comment_count>14</comment_count>
      <attachid>123361</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 18:20:59 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

Rejecting attachment 123361 from commit-queue.

piman@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542125</commentid>
    <comment_count>15</comment_count>
      <attachid>123361</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 02:55:18 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

Rejecting attachment 123361 from commit-queue.

New failing tests:
compositing/layer-creation/spanOverlapsCanvas.html
Full output: http://queues.webkit.org/results/11177422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542445</commentid>
    <comment_count>16</comment_count>
      <attachid>123361</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-25 10:53:25 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

I doubt that CQ failure is related to this patch. Let&apos;s try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542521</commentid>
    <comment_count>17</comment_count>
      <attachid>123361</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 12:12:09 -0800</bug_when>
    <thetext>Comment on attachment 123361
Patch

Rejecting attachment 123361 from commit-queue.

New failing tests:
compositing/layer-creation/spanOverlapsCanvas.html
Full output: http://queues.webkit.org/results/11314293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542715</commentid>
    <comment_count>18</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-25 15:51:33 -0800</bug_when>
    <thetext>I definitely repro the failure without the patch (accelerated compositing doesn&apos;t turn on, when the expectation is that it does).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542719</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-25 15:53:58 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I definitely repro the failure without the patch (accelerated compositing doesn&apos;t turn on, when the expectation is that it does).

Oh, never mind, operator error. It does seem to be coming from this patch, I&apos;ll track it down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542752</commentid>
    <comment_count>20</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-25 16:32:18 -0800</bug_when>
    <thetext>Well, it turns out we&apos;re trying to create a graphics context without a HostWindow/WebView

#0  WebCore::(anonymous namespace)::createGraphicsContext (attrs=..., hostWindow=0x0, 
    renderStyle=WebCore::GraphicsContext3D::RenderOffscreen, 
    threadUsage=WebCore::GraphicsContext3DPrivate::ForUseOnThisThread)
    at ../../../third_party/WebKit/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:158
#1  0x00000000004f9efe in WebCore::GraphicsContext3D::create (attrs=..., hostWindow=0x0, 
    renderStyle=WebCore::GraphicsContext3D::RenderOffscreen)
    at ../../../third_party/WebKit/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:1044
#2  0x00000000007a68b1 in WebCore::SharedGraphicsContext3D::get ()
    at ../../../third_party/WebKit/Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:41
#3  0x0000000000723a6d in WebCore::createAcceleratedCanvas (size=..., data=0x7fffea361a80)
    at ../../../third_party/WebKit/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:70
#4  0x0000000000724073 in WebCore::ImageBuffer::ImageBuffer (this=0x7fffea361a80, size=..., 
    renderingMode=WebCore::Accelerated, success=@0x7fffffffaf5f)
    at ../../../third_party/WebKit/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:110
#5  0x00000000004cea58 in WebCore::ImageBuffer::create (size=..., 
    colorSpace=WebCore::ColorSpaceDeviceRGB, renderingMode=WebCore::Accelerated)
    at ../../../third_party/WebKit/Source/WebCore/platform/graphics/ImageBuffer.h:78
#6  0x0000000001811e4d in WebCore::HTMLCanvasElement::createImageBuffer (this=0x7fffea1ddb40)
    at ../../../third_party/WebKit/Source/WebCore/html/HTMLCanvasElement.cpp:474
#7  0x00000000018120b0 in WebCore::HTMLCanvasElement::buffer (this=0x7fffea1ddb40)
    at ../../../third_party/WebKit/Source/WebCore/html/HTMLCanvasElement.cpp:510
#8  0x000000000181202a in WebCore::HTMLCanvasElement::drawingContext (this=0x7fffea1ddb40)
    at ../../../third_party/WebKit/Source/WebCore/html/HTMLCanvasElement.cpp:496
#9  0x00000000018a33f8 in WebCore::CanvasRenderingContext2D::drawingContext (this=0x7fffea227a80)
    at ../../../third_party/WebKit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1828
#10 0x000000000189d26f in WebCore::CanvasRenderingContext2D::setFillStyle (this=0x7fffea227a80, 
    prpStyle=...)
    at ../../../third_party/WebKit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:378
#11 0x000000000189ea42 in WebCore::CanvasRenderingContext2D::setFillColor (this=0x7fffea227a80, 
    color=...)
    at ../../../third_party/WebKit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:727
#12 0x00000000011704e6 in WebCore::V8CanvasRenderingContext2D::fillStyleAccessorSetter (name=..., 
    value=..., info=...)
    at ../../../third_party/WebKit/Source/WebCore/bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:99
#13 0x0000000000eaa338 in v8::internal::JSObject::SetPropertyWithCallback (this=0x1c75fcf9daa1, 
    structure=0x1194d6b5221, name=0x2d2041e1f031, value=0x2d2041e1f059, holder=0x1c75fcf9daa1, 
    strict_mode=v8::internal::kNonStrictMode) at ../../../v8/src/objects.cc:2038
#14 0x0000000000eadcae in v8::internal::JSObject::SetPropertyForResult (this=0x1c75fcf9daa1, 
    result=0x7fffffffb4d0, name=0x2d2041e1f031, value=0x2d2041e1f059, attributes=NONE, 
    strict_mode=v8::internal::kNonStrictMode) at ../../../v8/src/objects.cc:3011
#15 0x0000000000eac279 in v8::internal::JSReceiver::SetProperty (this=0x1c75fcf9daa1, 
    result=0x7fffffffb4d0, key=0x2d2041e1f031, value=0x2d2041e1f059, attributes=NONE, 
    strict_mode=v8::internal::kNonStrictMode) at ../../../v8/src/objects.cc:2655
#16 0x0000000000eaa044 in v8::internal::JSReceiver::SetProperty (this=0x1c75fcf9daa1, 
    name=0x2d2041e1f031, value=0x2d2041e1f059, attributes=NONE, 
    strict_mode=v8::internal::kNonStrictMode) at ../../../v8/src/objects.cc:1993
#17 0x00000000010d271c in v8::internal::StoreIC::Store (this=0x7fffffffb640, 
    state=v8::internal::UNINITIALIZED, strict_mode=v8::internal::kNonStrictMode, object=..., 
    name=..., value=...) at ../../../v8/src/ic.cc:1329
#18 0x00000000010d4f9e in v8::internal::StoreIC_Miss (args=..., isolate=0x7ffff7e42000)
    at ../../../v8/src/ic.cc:1881


Any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543426</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-26 13:24:50 -0800</bug_when>
    <thetext>jamesr or senorblanco should know that code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543447</commentid>
    <comment_count>22</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-26 13:51:12 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; jamesr or senorblanco should know that code path.

Yeah, I made that work back in http://trac.webkit.org/changeset/93157.  This was necessary in order to unify our accelerated ImageBuffer creation with the CoreGraphics path, where it only needs to pass down an enum, rather than the platform-specific crud we were doing before.  In order to do that, I had to avoid passing down the Page-related stuff (WebViewImpl I think) so I allowed it to be NULL.  This works fine for offscreen contexts like &lt;canvas&gt;, just not for onscreen ones (where the WebViewImpl must not be NULL).

I haven&apos;t looked at this patch in detail, but It would be really unfortunate to lose this ability and to have to go back to platform-specific hacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543693</commentid>
    <comment_count>23</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-26 17:41:34 -0800</bug_when>
    <thetext>Darin: what do you think? 2D Canvas needs a shared offscreen context that isn&apos;t tied to a given WebView, so we don&apos;t have a WebViewClient to use as a factory. We can add back a createGraphicsContext3D on the WebKitPlatformSupport, that would only be used to create/initialize an offscreen context, that we would go to when we don&apos;t have a WebView (hence, no need for it as a parameter). Would that solution be acceptable to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544412</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-27 15:07:26 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Darin: what do you think? 2D Canvas needs a shared offscreen context that isn&apos;t tied to a given WebView, so we don&apos;t have a WebViewClient to use as a factory. We can add back a createGraphicsContext3D on the WebKitPlatformSupport, that would only be used to create/initialize an offscreen context, that we would go to when we don&apos;t have a WebView (hence, no need for it as a parameter). Would that solution be acceptable to you?

Yes.  I was going to only suggest that you name it createOffscreenGraphicsContext3D to emphasize the point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544574</commentid>
    <comment_count>25</comment_count>
      <attachid>124416</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-27 18:20:48 -0800</bug_when>
    <thetext>Created attachment 124416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544575</commentid>
    <comment_count>26</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-27 18:21:26 -0800</bug_when>
    <thetext>I implemented that. Chrome side at https://chromiumcodereview.appspot.com/9297046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544586</commentid>
    <comment_count>27</comment_count>
      <attachid>124416</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 18:56:02 -0800</bug_when>
    <thetext>Comment on attachment 124416
Patch

Attachment 124416 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11358387

New failing tests:
compositing/layer-creation/spanOverlapsCanvas.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544806</commentid>
    <comment_count>28</comment_count>
      <attachid>124416</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-29 17:44:31 -0800</bug_when>
    <thetext>Comment on attachment 124416
Patch

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:117
&gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes, bool renderDirectlyToWebView) { return 0; }

when would you pass false as the second parameter here instead of just calling createOffscreen...() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545323</commentid>
    <comment_count>29</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-30 12:51:09 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 124416 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124416&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:117
&gt; &gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes, bool renderDirectlyToWebView) { return 0; }
&gt; 
&gt; when would you pass false as the second parameter here instead of just calling createOffscreen...() ?

Today, it&apos;s called for WebGL contexts, which do have a WebView. createOffscreenGraphicsContext3D is only called for the hackish &quot;shared context&quot;, and relies on implicit (rather than explicit) context sharing, that actually shares cross-pages. I wish at some point we can have the shared context be page-specific and go through WebViewClient::createGraphicsContext3D instead, but that seems unlikely in the short term.
We could make WebGL contexts go through createOffscreenGraphicsContext3D and it&apos;d probably work, but unless you feel strongly about this, I&apos;d rather not go through yet another round of 2-sided changes to remove the bool: this API looks like what you&apos;d want long term anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545362</commentid>
    <comment_count>30</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-30 13:29:53 -0800</bug_when>
    <thetext>But why do WebGL contexts have to be associated with a WebView anyway? A given WebGL context might render to any number of different WebViews over its lifetime (if its owning &lt;canvas&gt; is moved into a popup window by JS, for example). I don&apos;t think that conceptually any offscreen context should be associated with a given Page or WebView since that association can change at any time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545425</commentid>
    <comment_count>31</comment_count>
      <attachid>124601</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-30 14:39:56 -0800</bug_when>
    <thetext>Created attachment 124601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545426</commentid>
    <comment_count>32</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-30 14:41:59 -0800</bug_when>
    <thetext>New patch up that removes the &quot;renderDirectlyToWebView parameter&quot;. offscreen contexts for webgl go through the WebKitPlatformSupport path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545451</commentid>
    <comment_count>33</comment_count>
      <attachid>124601</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-30 15:09:19 -0800</bug_when>
    <thetext>Comment on attachment 124601
Patch

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:117
&gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes) { return 0; }

nit: &quot;const ref&quot; like the one on WebKitPlatformSupport?

&gt; Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h:132
&gt; +    virtual bool initialize(Attributes, WebView*, bool renderDirectlyToWebView) { return false; }

nit: this takes Attributes too?  is it needed?  if needed, should it also be pass by &quot;const ref&quot;?

&gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:158
&gt; +      Chrome* chrome = static_cast&lt;Chrome*&gt;(hostWindow);

indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545464</commentid>
    <comment_count>34</comment_count>
      <attachid>124601</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 15:14:57 -0800</bug_when>
    <thetext>Comment on attachment 124601
Patch

Attachment 124601 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11373026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545512</commentid>
    <comment_count>35</comment_count>
      <attachid>124617</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-30 15:50:06 -0800</bug_when>
    <thetext>Created attachment 124617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545520</commentid>
    <comment_count>36</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-30 15:55:50 -0800</bug_when>
    <thetext>Note: As discussed by chat, today some implementations rely on having the WebView even for offscreen contexts (e.g. WebGraphicsContext3DCommandBufferImpl to grab the URL to tell the GPU process, WebGraphicsContext3DInProcessImpl to properly share contexts), and this CL isn&apos;t intended to change semantics there, so I reverted to the previous version with the explicit &quot;renderDirectlyToWebView&quot; (aka !offscreen) parameter.
A follow-up CL can clean this up.

(In reply to comment #33)
&gt; (From update of attachment 124601 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124601&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:117
&gt; &gt; +    virtual WebGraphicsContext3D* createGraphicsContext3D(WebGraphicsContext3D::Attributes) { return 0; }
&gt; 
&gt; nit: &quot;const ref&quot; like the one on WebKitPlatformSupport?

Done.

&gt; 
&gt; &gt; Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h:132
&gt; &gt; +    virtual bool initialize(Attributes, WebView*, bool renderDirectlyToWebView) { return false; }
&gt; 
&gt; nit: this takes Attributes too?  is it needed?  if needed, should it also be pass by &quot;const ref&quot;?

This function will go away once the chrome side refactoring is done. I noted in the doc as such. There&apos;s no point in fixing this now (it&apos;d require extra 2-sided changes).

&gt; 
&gt; &gt; Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp:158
&gt; &gt; +      Chrome* chrome = static_cast&lt;Chrome*&gt;(hostWindow);
&gt; 
&gt; indentation

Because of the revert to previous version, the problem is gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545606</commentid>
    <comment_count>37</comment_count>
      <attachid>124617</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 16:54:10 -0800</bug_when>
    <thetext>Comment on attachment 124617
Patch

Attachment 124617 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11367741

New failing tests:
compositing/layer-creation/spanOverlapsCanvas.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545633</commentid>
    <comment_count>38</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-30 17:21:24 -0800</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545658</commentid>
    <comment_count>39</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-30 17:47:55 -0800</bug_when>
    <thetext>LGTM too. Per offline discussion, sounds like another patch is coming which will roll Chromium DEPS too to fix the build failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546265</commentid>
    <comment_count>40</comment_count>
      <attachid>124617</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 11:12:09 -0800</bug_when>
    <thetext>Comment on attachment 124617
Patch

Clearing flags on attachment: 124617

Committed r106371: &lt;http://trac.webkit.org/changeset/106371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546266</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 11:12:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546414</commentid>
    <comment_count>42</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-31 13:11:38 -0800</bug_when>
    <thetext>This patch broke Chromium builds: http://build.webkit.org/builders/Chromium%20Mac%20Release%20%28Perf%29/builds/132/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546422</commentid>
    <comment_count>43</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-31 13:16:40 -0800</bug_when>
    <thetext>This needs a roll of Source/WebKit/chromium/DEPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546431</commentid>
    <comment_count>44</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-01-31 13:25:04 -0800</bug_when>
    <thetext>Not a DEPS roll issue, just I removed a method that is OVERRIDE chrome-side. I temporarily put it back in https://bugs.webkit.org/show_bug.cgi?id=77467 and it should have fixed the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546447</commentid>
    <comment_count>45</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-31 13:37:53 -0800</bug_when>
    <thetext>(In reply to comment #44)
&gt; Not a DEPS roll issue, just I removed a method that is OVERRIDE chrome-side. I temporarily put it back in https://bugs.webkit.org/show_bug.cgi?id=77467 and it should have fixed the build.

Gah, this is why we should never OVERRIDE implementations of WebKit APIs.  I&apos;ll look in to  having the style checker enforce that OVERRIDE is banned for these.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123045</attachid>
            <date>2012-01-18 17:51:00 -0800</date>
            <delta_ts>2012-01-19 12:03:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120118175059.patch</filename>
            <type>text/plain</type>
            <size>4673</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNiZWQ5NGU2NDkyZjRhN2RlY2VlM2E0NTY3ZjcxMmNiNzA2YzEzMWUuLmMyZmFiZGM3NTJmZDQ4
Yjc1NGNkODJlODQ1ZmEzNmJmNWMxYzBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDEtMTggIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzY1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
cHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6CisKIDIwMTItMDEtMTggIFRv
bW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVt
XSBNZWRpYVN0cmVhbSBBUEk6IE1ha2UgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yIGNvcHlhYmxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJH
cmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCAzODExNDM2YzI3OGQ1ZjFjZGQ3ZmZjYzI4
NjMwOTBhMGM5YTk5YWI2Li4xNjliZWIzNDA0NWYzODU4NzU4OTRmOTY5NmFiYjZhYWI3ZjgxMzRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJH
cmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBJbml0aWFsaXplcyB0aGUgZ3JhcGhpY3MgY29udGV4dDsgc2hvdWxkIGJlIHRo
ZSBmaXJzdCBvcGVyYXRpb24gcGVyZm9ybWVkCiAgICAgLy8gb24gbmV3bHktY29uc3RydWN0ZWQg
aW5zdGFuY2VzLiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgaW5p
dGlhbGl6ZShBdHRyaWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmll
dykgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcq
LCBib29sIHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ly8gTWFrZXMgdGhlIE9wZW5HTCBjb250ZXh0IGN1cnJlbnQgb24gdGhlIGN1cnJlbnQgdGhyZWFk
LiBSZXR1cm5zIHRydWUgb24KICAgICAvLyBzdWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaAppbmRleCA2YzBlNzRmMTI5NzJjN2YzNzQ2MzQwYWZmNjliMzEyZGMyNWNhMWU5Li43ZWIx
NTdkMjM3NDc1MGYwMDcxNDlkMmY3NGJiZDljZmQ3MDNmNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9y
bVN1cHBvcnQuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2lu
Y2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRlICJXZWJHYW1lcGFkcy5oIgorI2luY2x1ZGUgIldl
YkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCiAj
aW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5n
LmgiCkBAIC03Miw2ICs3Myw3IEBAIGNsYXNzIFdlYlN0b3JhZ2VOYW1lc3BhY2U7IC8vIEZJWE1F
OiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViVGhlbWVFbmdpbmU7CiBj
bGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJVUkxMb2FkZXI7CitjbGFzcyBXZWJWaWV3OwogY2xh
c3MgV2ViV29ya2VyUnVuTG9vcDsKIAogY2xhc3MgV2ViS2l0UGxhdGZvcm1TdXBwb3J0IHsKQEAg
LTMxNiw3ICszMTgsMTEgQEAgcHVibGljOgogICAgIC8vIFdlYkdMIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBN
YXkgcmV0dXJuIG51bGwgaWYgV2ViR0wgaXMgbm90IHN1cHBvcnRlZC4KLSAgICAvLyBSZXR1cm5z
IG5ld2x5IGFsbG9jYXRlZCBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4KKyAgICAvLyBS
ZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgV2ViR3JhcGhpY3NDb250ZXh0
M0QgaW5zdGFuY2UuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlR3Jh
cGhpY3NDb250ZXh0M0QoCisgICAgICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMsCisgICAgICAgIFdlYlZpZXcqIHdlYlZpZXcsCisgICAgICAgIGJvb2wgcmVu
ZGVyVG9XZWJWaWV3KSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRl
eHQzRCogY3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBB
dWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCBiZWViOTRiNjU4YzA1ZGJjOGQxMmRhYzUy
ZWQ2OWZlZjM0OWVmZTZkLi4xMDdkNTgzNGU0MjA3ZTQxYTJjMjAzNWM5OWRmZDQ1ZDVmMWQ5ZTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQz
RENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcApAQCAtMTUxLDE0ICsxNTEsMTEgQEAgUGFzc1JlZlB0cjxHcmFw
aGljc0NvbnRleHQzRD4gY3JlYXRlR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpB
dHRyaWJ1dGUKICAgICB3ZWJBdHRyaWJ1dGVzLm5vRXh0ZW5zaW9ucyA9IGF0dHJzLm5vRXh0ZW5z
aW9uczsKICAgICB3ZWJBdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2VzID0gYXR0cnMuc2hhcmVSZXNv
dXJjZXM7CiAgICAgd2ViQXR0cmlidXRlcy5mb3JVc2VPbkFub3RoZXJUaHJlYWQgPSB0aHJlYWRV
c2FnZSA9PSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkZvclVzZU9uQW5vdGhlclRocmVhZDsK
LSAgICBPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gd2ViQ29udGV4dCA9IGFk
b3B0UHRyKFdlYktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dDNEKCkpOwotICAgIGlmICghd2ViQ29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBDaHJvbWUqIGNocm9tZSA9IHN0YXRpY19jYXN0PENocm9tZSo+KGhvc3RXaW5kb3cpOwogICAg
IFdlYktpdDo6V2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsID0gY2hyb21lID8gc3RhdGljX2Nhc3Q8
V2ViS2l0OjpXZWJWaWV3SW1wbCo+KGNocm9tZS0+Y2xpZW50KCktPndlYlZpZXcoKSkgOiAwOwot
Ci0gICAgaWYgKCF3ZWJDb250ZXh0LT5pbml0aWFsaXplKHdlYkF0dHJpYnV0ZXMsIHdlYlZpZXdJ
bXBsLCByZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykpCisgICAgT3duUHRyPFdlYktpdDo6V2Vi
R3JhcGhpY3NDb250ZXh0M0Q+IHdlYkNvbnRleHQgPSBhZG9wdFB0cihXZWJLaXQ6OndlYktpdFBs
YXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQzRCh3ZWJBdHRyaWJ1dGVzLCB3
ZWJWaWV3SW1wbCwgcmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpKTsKKyAgICBpZiAoIXdlYkNv
bnRleHQpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2ViQ29udGV4dC5y
ZWxlYXNlKCksIGF0dHJzLCBob3N0V2luZG93LCByZW5kZXJTdHlsZSwgdGhyZWFkVXNhZ2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123167</attachid>
            <date>2012-01-19 12:03:18 -0800</date>
            <delta_ts>2012-01-20 12:37:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120119120317.patch</filename>
            <type>text/plain</type>
            <size>11602</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxMzJkMTdlY2QyMmJlNzA0YmViMjgwZjNmYzI2ZGJlMmNmMGQ1NzIuLjQxYWE0YTFiNWVkYmQy
NzlmMGQ3YmRiNDFlNGRhY2I2ODhkZTFlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0
aWFsaXplKToKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
Lmg6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorCiAyMDEy
LTAxLTE4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
bGVhbnVwOiBNb3ZlIGNocm9tZS1zcGVjaWZpYyBmaWxlc3lzdGVtIHR5cGUgaGFuZGxpbmcgY29k
ZSAoZm9yIEZpbGVTeXN0ZW0gQVBJKSB1bmRlciBjaHJvbWl1bSBkaXJlY3RvcnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1YTRkNGU4ZTQ5
YzNkNzJhNjhhMGVhOGVlY2Q0MjAyNGVkNjc4ZTJiLi5kYWQyYWI3YzJhYWZiZmUzZWRmZDY4OWM0
M2QxMWViY2RiN2VmMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlv
bi5oIgogI2luY2x1ZGUgIldlYldpZGdldENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YkNvbG9yLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0x
MDksNiArMTEwLDkgQEAgcHVibGljOgogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBu
YW1lc3BhY2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCiAgICAgdmlydHVh
bCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNp
Z25lZCBxdW90YSkgeyByZXR1cm4gMDsgfQogCisgICAgLy8gQ3JlYXRlcyBhIGdyYXBoaWNzIGNv
bnRleHQgZm9yIHRoZSBnaXZlbiBXZWJWaWV3LgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250
ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykgeyByZXR1cm4g
MDsgfQorCiAgICAgLy8gTWlzYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBBIG5ldyBtZXNzYWdlIHdhcyBh
ZGRlZCB0byB0aGUgY29uc29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDM4MTE0
MzZjMjc4ZDVmMWNkZDdmZmNjMjg2MzA5MGEwYzlhOTlhYjYuLjE2OWJlYjM0MDQ1ZjM4NTg3NTg5
NGY5Njk2YWJiNmFhYjdmODEzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMTI5
LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEluaXRpYWxpemVzIHRoZSBncmFwaGljcyBj
b250ZXh0OyBzaG91bGQgYmUgdGhlIGZpcnN0IG9wZXJhdGlvbiBwZXJmb3JtZWQKICAgICAvLyBv
biBuZXdseS1jb25zdHJ1Y3RlZCBpbnN0YW5jZXMuIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgot
ICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBib29sIHJl
bmRlckRpcmVjdGx5VG9XZWJWaWV3KSA9IDA7CisgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUo
QXR0cmlidXRlcywgV2ViVmlldyosIGJvb2wgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICAvLyBNYWtlcyB0aGUgT3BlbkdMIGNvbnRleHQgY3VycmVudCBv
biB0aGUgY3VycmVudCB0aHJlYWQuIFJldHVybnMgdHJ1ZSBvbgogICAgIC8vIHN1Y2Nlc3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDZjMGU3NGYxMjk3MmM3ZjM3NDYzNDBhZmY2
OWIzMTJkYzI1Y2ExZTkuLmYyMDg1MGJhYjViZmFkYjEzNzZlNWQ5ZGNhMTljYjkzOGMxMWVlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktp
dFBsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCkBAIC0zMTMsMTIgKzMxMyw2IEBAIHB1Ymxp
YzoKICAgICAvLyBDYWxsYWJsZSBmcm9tIGEgYmFja2dyb3VuZCBXZWJLaXQgdGhyZWFkLgogICAg
IHZpcnR1YWwgdm9pZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jKSh2b2lkKiksIHZvaWQq
IGNvbnRleHQpIHsgfQogCi0gICAgLy8gV2ViR0wgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIC8vIE1heSByZXR1cm4g
bnVsbCBpZiBXZWJHTCBpcyBub3Qgc3VwcG9ydGVkLgotICAgIC8vIFJldHVybnMgbmV3bHkgYWxs
b2NhdGVkIFdlYkdyYXBoaWNzQ29udGV4dDNEIGluc3RhbmNlLgotICAgIHZpcnR1YWwgV2ViR3Jh
cGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQot
CiAgICAgLy8gQXVkaW8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIHZpcnR1YWwgZG91YmxlIGF1ZGlvSGFyZHdhcmVT
YW1wbGVSYXRlKCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCBiZWViOTRiNjU4
YzA1ZGJjOGQxMmRhYzUyZWQ2OWZlZjM0OWVmZTZkLi5kNTFhNThmOWYwODdkOGQyMjFmYWMwNGQ1
NDhkYzU0ZTc4M2UzNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcApAQCAtNDYsNyArNDYsNyBAQAogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViS2l0LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisj
aW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKIApAQCAtMTUxLDE0ICsxNTEs
MTMgQEAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlR3JhcGhpY3NDb250ZXh0
KEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGUKICAgICB3ZWJBdHRyaWJ1dGVzLm5vRXh0ZW5z
aW9ucyA9IGF0dHJzLm5vRXh0ZW5zaW9uczsKICAgICB3ZWJBdHRyaWJ1dGVzLnNoYXJlUmVzb3Vy
Y2VzID0gYXR0cnMuc2hhcmVSZXNvdXJjZXM7CiAgICAgd2ViQXR0cmlidXRlcy5mb3JVc2VPbkFu
b3RoZXJUaHJlYWQgPSB0aHJlYWRVc2FnZSA9PSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkZv
clVzZU9uQW5vdGhlclRocmVhZDsKLSAgICBPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRD4gd2ViQ29udGV4dCA9IGFkb3B0UHRyKFdlYktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgIGlmICghd2ViQ29udGV4dCkKLSAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBDaHJvbWUqIGNocm9tZSA9IHN0YXRpY19jYXN0PENocm9t
ZSo+KGhvc3RXaW5kb3cpOwogICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsID0g
Y2hyb21lID8gc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJWaWV3SW1wbCo+KGNocm9tZS0+Y2xpZW50
KCktPndlYlZpZXcoKSkgOiAwOwotCi0gICAgaWYgKCF3ZWJDb250ZXh0LT5pbml0aWFsaXplKHdl
YkF0dHJpYnV0ZXMsIHdlYlZpZXdJbXBsLCByZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykpCisg
ICAgaWYgKCF3ZWJWaWV3SW1wbCB8fCAhd2ViVmlld0ltcGwtPmNsaWVudCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gd2ViQ29u
dGV4dCA9IGFkb3B0UHRyKHdlYlZpZXdJbXBsLT5jbGllbnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250
ZXh0M0Qod2ViQXR0cmlidXRlcywgd2ViVmlld0ltcGwsIHJlbmRlckRpcmVjdGx5VG9Ib3N0V2lu
ZG93KSk7CisgICAgaWYgKCF3ZWJDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJl
dHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21X
ZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBhdHRycywgaG9zdFdpbmRvdywgcmVuZGVy
U3R5bGUsIHRocmVhZFVzYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwN2I2YjM3ODFkNzY1YzFjYzVhYTBlNGQ1ZDNlZmU0MTUyMTIzODhl
Li41NTI0NzdhYjdkMzQ4Y2JlYTdmZmIwNzZiMjI0MWI0ZGNmMDc5N2RiIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFuZCBpbml0aWFsaXphdGlvbiwg
YW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4p
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVh
dGVHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Y3JlYXRlUGx1Z2lu
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorCiAy
MDEyLTAxLTE4ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAg
ZWRpdGluZ0F0dHJpYnV0ZWRTdHJpbmdGcm9tUmFuZ2UgaW4gV2ViSFRNTENvbnZlcnRlciBkb2Vz
IG5vdCBoYW5kbGUgTlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWUuCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCmluZGV4IGFjMjMzNjY2NGUz
MTM2NTNkODY1ODk2ZjBiMTM0YjI1ZjBiNTQyMGQuLjliNzQ3YTc5NjY0MTBhZjRkOTUyM2M1NGJi
YzExNWJjM2IxM2FlMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RXZWJQbHVnaW4uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luQ29udGFpbmVyLmgiCiAj
aW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1zLmgiCisjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCkBAIC02MSw5ICs2MiwxMSBAQCBzdGF0aWMgdm9pZCBwcmVtdWx0aXBseUFscGhhKGNvbnN0
IHVuc2lnbmVkIGNvbG9ySW5bM10sIGZsb2F0IGFscGhhLCBmbG9hdCBjb2xvcgogICAgIGNvbG9y
T3V0WzNdID0gYWxwaGE7CiB9CiAKLVRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0
OjpXZWJGcmFtZSogZnJhbWUsCitUZXN0V2ViUGx1Z2luOjpUZXN0V2ViUGx1Z2luKFdlYktpdDo6
V2ViVmlld0NsaWVudCogd2ViVmlld0NsaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJiBwYXJhbXMpCi0gICAgOiBtX2ZyYW1lKGZy
YW1lKQorICAgIDogbV93ZWJWaWV3Q2xpZW50KHdlYlZpZXdDbGllbnQpCisgICAgLCBtX2ZyYW1l
KGZyYW1lKQogICAgICwgbV9jb250YWluZXIoMCkKICAgICAsIG1fY29udGV4dCgwKQogewpAQCAt
MTAxLDEyICsxMDQsOSBAQCBjb25zdCBXZWJTdHJpbmcmIFRlc3RXZWJQbHVnaW46Om1pbWVUeXBl
KCkKIAogYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0aWFsaXplKFdlYlBsdWdpbkNvbnRhaW5lciog
Y29udGFpbmVyKQogewotICAgIG1fY29udGV4dCA9IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5j
cmVhdGVHcmFwaGljc0NvbnRleHQzRCgpOwotICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KICAgICBXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRy
czsKLSAgICBpZiAoIW1fY29udGV4dC0+aW5pdGlhbGl6ZShhdHRycywgbV9mcmFtZS0+dmlldygp
LCBmYWxzZSkpCisgICAgbV9jb250ZXh0ID0gbV93ZWJWaWV3Q2xpZW50LT5jcmVhdGVHcmFwaGlj
c0NvbnRleHQzRChhdHRycywgbV9mcmFtZS0+dmlldygpLCBmYWxzZSk7CisgICAgaWYgKCFtX2Nv
bnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9jb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaAppbmRleCBjZWY0NzI4ODQ2MDQ1MmQxMDMzNTFmZDgyNWMxNmVjNGFiMzZmZjk5
Li45MjZiM2U4MzNkZTM3ZDM5MzA2ZTJhYzQ1NjE1MzhjNTlhNTYyNTVkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBAIC0zMSw2ICszMSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CitjbGFz
cyBXZWJWaWV3Q2xpZW50OwogfQogCiAvLyBBIGZha2UgaW1wbGVtZW50aW9uIG9mIFdlYktpdDo6
V2ViUGx1Z2luIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgpAQCAtNDQsNyArNDUsNyBAQCBjbGFzcyBX
ZWJHcmFwaGljc0NvbnRleHQzRDsKIC8vIG9wYWNpdHk6IFswLjAgLSAxLjBdLiBEZWZhdWx0IGlz
IDEuMC4KIGNsYXNzIFRlc3RXZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4gewog
cHVibGljOgotICAgIFRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktp
dDo6V2ViUGx1Z2luUGFyYW1zJik7CisgICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYlZpZXdD
bGllbnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMm
KTsKICAgICB2aXJ0dWFsIH5UZXN0V2ViUGx1Z2luKCk7CiAKICAgICBzdGF0aWMgY29uc3QgV2Vi
S2l0OjpXZWJTdHJpbmcmIG1pbWVUeXBlKCk7CkBAIC0xMTUsNiArMTE2LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBXVEY6OkNTdHJpbmcmIHZlcnRleFNvdXJj
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkNTdHJpbmcmIGZyYWdtZW50
U291cmNlKTsKIAorICAgIFdlYktpdDo6V2ViVmlld0NsaWVudCogbV93ZWJWaWV3Q2xpZW50Owog
ICAgIFdlYktpdDo6V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgV2ViS2l0OjpXZWJQbHVnaW5Db250
YWluZXIqIG1fY29udGFpbmVyOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKaW5kZXggNzBiZWI5ZjdlNzk3MzZlMDhkZTE2MDIwYzQwMjI1NjBkODdh
MjQ5MC4uNDZiNGQ5MTQwN2RjZWI4OTYwOWFkN2Y2YjUxYWQyNzdlM2FlZjMxZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMjcyLDYgKzI3
MiwxMSBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJWaWV3SG9zdDo6Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVvdGEpCiAgICAgcmV0dXJuIFdlYktpdDo6V2ViU3Rv
cmFnZU5hbWVzcGFjZTo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQog
CitXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SG9zdDo6Y3JlYXRlR3JhcGhp
Y3NDb250ZXh0M0QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRy
aWJ1dGVzLCBXZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcsIGJvb2wgZGlyZWN0KQoreworICAgIHJl
dHVybiB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywg
d2ViVmlldywgZGlyZWN0KTsKK30KKwogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkQWRkTWVzc2FnZVRv
Q29uc29sZShjb25zdCBXZWJDb25zb2xlTWVzc2FnZSYgbWVzc2FnZSwgY29uc3QgV2ViU3RyaW5n
JiBzb3VyY2VOYW1lLCB1bnNpZ25lZCBzb3VyY2VMaW5lKQogewogICAgIC8vIFRoaXMgbWF0Y2hl
cyB3aW4gRHVtcFJlbmRlclRyZWUncyBVSURlbGVnYXRlLmNwcC4KQEAgLTg1NSw3ICs4NjAsNyBA
QCB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbigpCiBXZWJQbHVnaW4qIFdlYlZpZXdI
b3N0OjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJQbHVnaW5QYXJhbXMm
IHBhcmFtcykKIHsKICAgICBpZiAocGFyYW1zLm1pbWVUeXBlID09IFRlc3RXZWJQbHVnaW46Om1p
bWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBuZXcgVGVzdFdlYlBsdWdpbihmcmFtZSwgcGFyYW1z
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBUZXN0V2ViUGx1Z2luKHRoaXMsIGZyYW1lLCBwYXJhbXMp
OwogCiAgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpDcmVhdGVXZWJQbHVnaW4oZnJhbWUsIHBh
cmFtcyk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApp
bmRleCAyMGRhMTdjOTI3NjMyMjBmNTBjYmI0MDFmYWY2ZjMzMWVkNTM4YmMxLi4zNzYxNDRlMzk3
MWM2ZmRlYTQwM2NjM2UyOGIyMjI5NDQ1YzVhNzEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBjbGFzcyBXZWJWaWV3
SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWxsQ2hlY2tDbGllbnQsIHB1YmxpYyBXZWJLaXQ6
OldlYlZpZXdDbAogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJXaWRnZXQqIGNyZWF0ZVBvcHVwTWVu
dShXZWJLaXQ6OldlYlBvcHVwVHlwZSk7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYldpZGdldCog
Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFdlYktpdDo6V2ViUG9wdXBNZW51SW5mbyYpOwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRleHQzRChXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNEOjpBdHRyaWJ1dGVzLCBXZWJLaXQ6OldlYlZpZXcqLCBib29sIGRpcmVjdCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViS2l0OjpXZWJDb25z
b2xlTWVzc2FnZSYsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzb3VyY2VOYW1lLCB1bnNpZ25l
ZCBzb3VyY2VMaW5lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123361</attachid>
            <date>2012-01-20 12:37:08 -0800</date>
            <delta_ts>2012-01-27 18:20:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120120123707.patch</filename>
            <type>text/plain</type>
            <size>11776</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxMzJkMTdlY2QyMmJlNzA0YmViMjgwZjNmYzI2ZGJlMmNmMGQ1NzIuLjQxYWE0YTFiNWVkYmQy
NzlmMGQ3YmRiNDFlNGRhY2I2ODhkZTFlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0
aWFsaXplKToKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
Lmg6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorCiAyMDEy
LTAxLTE4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
bGVhbnVwOiBNb3ZlIGNocm9tZS1zcGVjaWZpYyBmaWxlc3lzdGVtIHR5cGUgaGFuZGxpbmcgY29k
ZSAoZm9yIEZpbGVTeXN0ZW0gQVBJKSB1bmRlciBjaHJvbWl1bSBkaXJlY3RvcnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1YTRkNGU4ZTQ5
YzNkNzJhNjhhMGVhOGVlY2Q0MjAyNGVkNjc4ZTJiLi43OGU5YmI4MDEwM2I3MGMyNDZhNzU5ZjQ5
Yzg0MzhjNDMyYWUyNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlv
bi5oIgogI2luY2x1ZGUgIldlYldpZGdldENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YkNvbG9yLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0x
MDksNiArMTEwLDEyIEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYSBzZXNzaW9uIHN0b3JhZ2Ug
bmFtZXNwYWNlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJWaWV3LgogICAgIHZpcnR1
YWwgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5z
aWduZWQgcXVvdGEpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENyZWF0ZXMgYSBncmFwaGljcyBj
b250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgV2ViVmlldy4KKyAgICAvLyByZW5k
ZXJEaXJlY3RseVRvV2ViVmlldyBtZWFucyB3aGV0aGVyIHRoZSBjb250ZXh0IHNob3VsZCBiZSBz
ZXR1cCB0bworICAgIC8vIHJlbmRlciBkaXJlY3RseSB0byB0aGUgV2ViVmlldyAoZS5nLiBjb21w
b3NpdG9yIGNvbnRleHQpLCBvciB0byBhbgorICAgIC8vIG9mZnNjcmVlbiBzdXJmYWNlIChlLmcu
IFdlYkdMIGNvbnRleHQpLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0
ZUdyYXBoaWNzQ29udGV4dDNEKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzLCBib29s
IHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3KSB7IHJldHVybiAwOyB9CisKICAgICAvLyBNaXNjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAogICAgIC8vIEEgbmV3IG1lc3NhZ2Ugd2FzIGFkZGVkIHRvIHRoZSBjb25zb2xlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMzgxMTQzNmMyNzhkNWYxY2RkN2ZmY2MyODYz
MDkwYTBjOWE5OWFiNi4uMTY5YmViMzQwNDVmMzg1ODc1ODk0Zjk2OTZhYmI2YWFiN2Y4MTM0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0
Zm9ybS9XZWJHcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgog
CiAgICAgLy8gSW5pdGlhbGl6ZXMgdGhlIGdyYXBoaWNzIGNvbnRleHQ7IHNob3VsZCBiZSB0aGUg
Zmlyc3Qgb3BlcmF0aW9uIHBlcmZvcm1lZAogICAgIC8vIG9uIG5ld2x5LWNvbnN0cnVjdGVkIGlu
c3RhbmNlcy4gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGluaXRp
YWxpemUoQXR0cmlidXRlcywgV2ViVmlldyosIGJvb2wgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShBdHRyaWJ1dGVzLCBXZWJWaWV3Kiwg
Ym9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8v
IE1ha2VzIHRoZSBPcGVuR0wgY29udGV4dCBjdXJyZW50IG9uIHRoZSBjdXJyZW50IHRocmVhZC4g
UmV0dXJucyB0cnVlIG9uCiAgICAgLy8gc3VjY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgKaW5kZXggNmMwZTc0ZjEyOTcyYzdmMzc0NjM0MGFmZjY5YjMxMmRjMjVjYTFlOS4uZjIwODUw
YmFiNWJmYWRiMTM3NmU1ZDlkY2ExOWNiOTM4YzExZWU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1T
dXBwb3J0LmgKQEAgLTMxMywxMiArMzEzLDYgQEAgcHVibGljOgogICAgIC8vIENhbGxhYmxlIGZy
b20gYSBiYWNrZ3JvdW5kIFdlYktpdCB0aHJlYWQuCiAgICAgdmlydHVhbCB2b2lkIGNhbGxPbk1h
aW5UaHJlYWQodm9pZCAoKmZ1bmMpKHZvaWQqKSwgdm9pZCogY29udGV4dCkgeyB9CiAKLSAgICAv
LyBXZWJHTCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotCi0gICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYkdMIGlzIG5vdCBz
dXBwb3J0ZWQuCi0gICAgLy8gUmV0dXJucyBuZXdseSBhbGxvY2F0ZWQgV2ViR3JhcGhpY3NDb250
ZXh0M0QgaW5zdGFuY2UuCi0gICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRl
R3JhcGhpY3NDb250ZXh0M0QoKSB7IHJldHVybiAwOyB9Ci0KICAgICAvLyBBdWRpbyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiAgICAgdmlydHVhbCBkb3VibGUgYXVkaW9IYXJkd2FyZVNhbXBsZVJhdGUoKSB7IHJldHVybiAw
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRl
eHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29u
dGV4dDNEQ2hyb21pdW0uY3BwCmluZGV4IGJlZWI5NGI2NThjMDVkYmM4ZDEyZGFjNTJlZDY5ZmVm
MzQ5ZWZlNmQuLjFjNTA4MjI2MTVmODA0ZmNiOWVlYzMyZjAxOTMyYzZjYjdjMjc2YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwCkBAIC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIK
ICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJXZWJWaWV3Q2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJHcmFw
aGljc0NvbnRleHQzRC5oIgogCkBAIC0xNTEsMTQgKzE1MSwxMyBAQCBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjcmVhdGVHcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6OkF0
dHJpYnV0ZQogICAgIHdlYkF0dHJpYnV0ZXMubm9FeHRlbnNpb25zID0gYXR0cnMubm9FeHRlbnNp
b25zOwogICAgIHdlYkF0dHJpYnV0ZXMuc2hhcmVSZXNvdXJjZXMgPSBhdHRycy5zaGFyZVJlc291
cmNlczsKICAgICB3ZWJBdHRyaWJ1dGVzLmZvclVzZU9uQW5vdGhlclRocmVhZCA9IHRocmVhZFVz
YWdlID09IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Rm9yVXNlT25Bbm90aGVyVGhyZWFkOwot
ICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRv
cHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250
ZXh0M0QoKSk7Ci0gICAgaWYgKCF3ZWJDb250ZXh0KQotICAgICAgICByZXR1cm4gMDsKIAogICAg
IENocm9tZSogY2hyb21lID0gc3RhdGljX2Nhc3Q8Q2hyb21lKj4oaG9zdFdpbmRvdyk7CiAgICAg
V2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlld0ltcGwgPSBjaHJvbWUgPyBzdGF0aWNfY2FzdDxX
ZWJLaXQ6OldlYlZpZXdJbXBsKj4oY2hyb21lLT5jbGllbnQoKS0+d2ViVmlldygpKSA6IDA7Ci0K
LSAgICBpZiAoIXdlYkNvbnRleHQtPmluaXRpYWxpemUod2ViQXR0cmlidXRlcywgd2ViVmlld0lt
cGwsIHJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KSkKKyAgICBpZiAoIXdlYlZpZXdJbXBsIHx8
ICF3ZWJWaWV3SW1wbC0+Y2xpZW50KCkpCisgICAgICAgIHJldHVybiAwOworICAgIE93blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIod2ViVmll
d0ltcGwtPmNsaWVudCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQzRCh3ZWJBdHRyaWJ1dGVzLCBy
ZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykpOworICAgIGlmICghd2ViQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVh
dGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LnJlbGVhc2UoKSwgYXR0
cnMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlLCB0aHJlYWRVc2FnZSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDdiNmIzNzgxZDc2NWMxY2M1
YWEwZTRkNWQzZWZlNDE1MjEyMzg4ZS4uNTUyNDc3YWI3ZDM0OGNiZWE3ZmZiMDc2YjIyNDFiNGRj
ZjA3OTdkYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTE5ICBBbnRvaW5lIExhYm91ciAgPHBpbWFuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBNZXJnZSBXZWJHcmFwaGljc0NvbnRleHQzRCBjcmVhdGlv
biBhbmQgaW5pdGlhbGl6YXRpb24sIGFuZCBtb3ZlIGl0IHRvCisgICAgICAgIFdlYlZpZXdDbGll
bnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2Vi
UGx1Z2luOjpUZXN0V2ViUGx1Z2luKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmluaXRpYWxp
emUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAg
ICAgIChXZWJWaWV3SG9zdDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAoV2Vi
Vmlld0hvc3Q6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKwogMjAxMi0wMS0xOCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIGVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlIGlu
IFdlYkhUTUxDb252ZXJ0ZXIgZG9lcyBub3QgaGFuZGxlIE5TVW5kZXJsaW5lU3R5bGVBdHRyaWJ1
dGVOYW1lLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdl
YlBsdWdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2lu
LmNwcAppbmRleCBhYzIzMzY2NjRlMzEzNjUzZDg2NTg5NmYwYjEzNGIyNWYwYjU0MjBkLi5kYTEy
ZmE3MDY4MjQwYjVhMWMxOTQ4OWEyZDYzMDgzYTRlYzU5ZjY0IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgInBsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIldl
YlBsdWdpbkNvbnRhaW5lci5oIgogI2luY2x1ZGUgIldlYlBsdWdpblBhcmFtcy5oIgorI2luY2x1
ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjEsOSArNjIsMTEgQEAgc3RhdGljIHZvaWQg
cHJlbXVsdGlwbHlBbHBoYShjb25zdCB1bnNpZ25lZCBjb2xvckluWzNdLCBmbG9hdCBhbHBoYSwg
ZmxvYXQgY29sb3IKICAgICBjb2xvck91dFszXSA9IGFscGhhOwogfQogCi1UZXN0V2ViUGx1Z2lu
OjpUZXN0V2ViUGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLAorVGVzdFdlYlBsdWdpbjo6
VGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYlZpZXdDbGllbnQqIHdlYlZpZXdDbGllbnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYgcGFy
YW1zKQotICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICA6IG1fd2ViVmlld0NsaWVudCh3ZWJWaWV3
Q2xpZW50KQorICAgICwgbV9mcmFtZShmcmFtZSkKICAgICAsIG1fY29udGFpbmVyKDApCiAgICAg
LCBtX2NvbnRleHQoMCkKIHsKQEAgLTEwMSwxMiArMTA0LDkgQEAgY29uc3QgV2ViU3RyaW5nJiBU
ZXN0V2ViUGx1Z2luOjptaW1lVHlwZSgpCiAKIGJvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6
ZShXZWJQbHVnaW5Db250YWluZXIqIGNvbnRhaW5lcikKIHsKLSAgICBtX2NvbnRleHQgPSB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKTsKLSAgICBpZiAo
IW1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgV2ViR3JhcGhpY3NDb250
ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnM7Ci0gICAgaWYgKCFtX2NvbnRleHQtPmluaXRpYWxpemUo
YXR0cnMsIG1fZnJhbWUtPnZpZXcoKSwgZmFsc2UpKQorICAgIG1fY29udGV4dCA9IG1fd2ViVmll
d0NsaWVudC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoYXR0cnMsIGZhbHNlKTsKKyAgICBpZiAo
IW1fY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX2NvbnRleHQt
Pm1ha2VDb250ZXh0Q3VycmVudCgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFdlYlBsdWdpbi5oCmluZGV4IGNlZjQ3Mjg4NDYwNDUyZDEwMzM1MWZkODI1YzE2ZWM0YWIz
NmZmOTkuLjkyNmIzZTgzM2RlMzdkMzkzMDZlMmFjNDU2MTUzOGM1OWE1NjI1NWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKQEAgLTMxLDYgKzMx
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsK
K2NsYXNzIFdlYlZpZXdDbGllbnQ7CiB9CiAKIC8vIEEgZmFrZSBpbXBsZW1lbnRpb24gb2YgV2Vi
S2l0OjpXZWJQbHVnaW4gZm9yIHRlc3RpbmcgcHVycG9zZXMuCkBAIC00NCw3ICs0NSw3IEBAIGNs
YXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwogLy8gb3BhY2l0eTogWzAuMCAtIDEuMF0uIERlZmF1
bHQgaXMgMS4wLgogY2xhc3MgVGVzdFdlYlBsdWdpbiA6IHB1YmxpYyBXZWJLaXQ6OldlYlBsdWdp
biB7CiBwdWJsaWM6Ci0gICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3Qg
V2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKKyAgICBUZXN0V2ViUGx1Z2luKFdlYktpdDo6V2Vi
Vmlld0NsaWVudCosIFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBh
cmFtcyYpOwogICAgIHZpcnR1YWwgflRlc3RXZWJQbHVnaW4oKTsKIAogICAgIHN0YXRpYyBjb25z
dCBXZWJLaXQ6OldlYlN0cmluZyYgbWltZVR5cGUoKTsKQEAgLTExNSw2ICsxMTYsNyBAQCBwcml2
YXRlOgogICAgIHVuc2lnbmVkIGxvYWRQcm9ncmFtKGNvbnN0IFdURjo6Q1N0cmluZyYgdmVydGV4
U291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6Q1N0cmluZyYgZnJh
Z21lbnRTb3VyY2UpOwogCisgICAgV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiBtX3dlYlZpZXdDbGll
bnQ7CiAgICAgV2ViS2l0OjpXZWJGcmFtZSogbV9mcmFtZTsKICAgICBXZWJLaXQ6OldlYlBsdWdp
bkNvbnRhaW5lciogbV9jb250YWluZXI7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCA3MGJlYjlmN2U3OTczNmUwOGRlMTYwMjBjNDAyMjU2
MGQ4N2EyNDkwLi44NTQ5N2FkMmM0NzhlZjI4N2VkM2FhMmYxNDE5MzBkZTFiNTRjOTczIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0yNzIs
NiArMjcyLDEzIEBAIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIFdlYlZpZXdIb3N0OjpjcmVhdGVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSkKICAgICByZXR1cm4gV2ViS2l0OjpX
ZWJTdG9yYWdlTmFtZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShxdW90YSk7
CiB9CiAKK1dlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdIb3N0OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMsIGJvb2wgZGlyZWN0KQoreworICAgIGlmICghd2ViVmlldygpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZUdyYXBoaWNzQ29u
dGV4dDNEKGF0dHJpYnV0ZXMsIHdlYlZpZXcoKSwgZGlyZWN0KTsKK30KKwogdm9pZCBXZWJWaWV3
SG9zdDo6ZGlkQWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBXZWJDb25zb2xlTWVzc2FnZSYgbWVz
c2FnZSwgY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VOYW1lLCB1bnNpZ25lZCBzb3VyY2VMaW5lKQog
ewogICAgIC8vIFRoaXMgbWF0Y2hlcyB3aW4gRHVtcFJlbmRlclRyZWUncyBVSURlbGVnYXRlLmNw
cC4KQEAgLTg1NSw3ICs4NjIsNyBAQCB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbigp
CiBXZWJQbHVnaW4qIFdlYlZpZXdIb3N0OjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKIHsKICAgICBpZiAocGFyYW1zLm1pbWVUeXBl
ID09IFRlc3RXZWJQbHVnaW46Om1pbWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBuZXcgVGVzdFdl
YlBsdWdpbihmcmFtZSwgcGFyYW1zKTsKKyAgICAgICAgcmV0dXJuIG5ldyBUZXN0V2ViUGx1Z2lu
KHRoaXMsIGZyYW1lLCBwYXJhbXMpOwogCiAgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpDcmVh
dGVXZWJQbHVnaW4oZnJhbWUsIHBhcmFtcyk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuaAppbmRleCAyMGRhMTdjOTI3NjMyMjBmNTBjYmI0MDFmYWY2ZjMz
MWVkNTM4YmMxLi44MzYxNjlkZjRjMTIxZGZmN2U5NTE3NzI2NDBjYWQ1NDliN2QwOWNhIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEyMyw2ICsx
MjMsNyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWxsQ2hlY2tD
bGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbAogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJX
aWRnZXQqIGNyZWF0ZVBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwVHlwZSk7CiAgICAgdmlydHVh
bCBXZWJLaXQ6OldlYldpZGdldCogY3JlYXRlUG9wdXBNZW51KGNvbnN0IFdlYktpdDo6V2ViUG9w
dXBNZW51SW5mbyYpOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdG9yYWdlTmFtZXNwYWNlKiBj
cmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CisgICAgdmlydHVh
bCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRleHQzRChX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzLCBib29sIGRpcmVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViS2l0OjpXZWJD
b25zb2xlTWVzc2FnZSYsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzb3VyY2VOYW1lLCB1bnNp
Z25lZCBzb3VyY2VMaW5lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124416</attachid>
            <date>2012-01-27 18:20:48 -0800</date>
            <delta_ts>2012-01-30 14:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120127182047.patch</filename>
            <type>text/plain</type>
            <size>12455</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGNiZWNjMGNlMGFiODUxY2E4Yjc3YTVhZjYyOTFhNjA5ZjZlMDEzNjguLmNlYzQzY2Q2ZjZhMjM1
NTI2MDhkZmViZThhODFjMjc2MzUxNGQwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0
aWFsaXplKToKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
Lmg6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorCiAyMDEy
LTAxLTI0ICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UG9pbnRlciBMb2NrOiBJbXBsZW1lbnQgcG9pbnRlciBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1YTRkNGU4ZTQ5YzNkNzJh
NjhhMGVhOGVlY2Q0MjAyNGVkNjc4ZTJiLi43OGU5YmI4MDEwM2I3MGMyNDZhNzU5ZjQ5Yzg0Mzhj
NDMyYWUyNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgog
I2luY2x1ZGUgIldlYldpZGdldENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbG9y
LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDksNiAr
MTEwLDEyIEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYSBzZXNzaW9uIHN0b3JhZ2UgbmFtZXNw
YWNlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJWaWV3LgogICAgIHZpcnR1YWwgV2Vi
U3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQg
cXVvdGEpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENyZWF0ZXMgYSBncmFwaGljcyBjb250ZXh0
IGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgV2ViVmlldy4KKyAgICAvLyByZW5kZXJEaXJl
Y3RseVRvV2ViVmlldyBtZWFucyB3aGV0aGVyIHRoZSBjb250ZXh0IHNob3VsZCBiZSBzZXR1cCB0
bworICAgIC8vIHJlbmRlciBkaXJlY3RseSB0byB0aGUgV2ViVmlldyAoZS5nLiBjb21wb3NpdG9y
IGNvbnRleHQpLCBvciB0byBhbgorICAgIC8vIG9mZnNjcmVlbiBzdXJmYWNlIChlLmcuIFdlYkdM
IGNvbnRleHQpLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBo
aWNzQ29udGV4dDNEKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzLCBib29sIHJlbmRl
ckRpcmVjdGx5VG9XZWJWaWV3KSB7IHJldHVybiAwOyB9CisKICAgICAvLyBNaXNjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogICAgIC8vIEEgbmV3IG1lc3NhZ2Ugd2FzIGFkZGVkIHRvIHRoZSBjb25zb2xlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdy
YXBoaWNzQ29udGV4dDNELmgKaW5kZXggMzgxMTQzNmMyNzhkNWYxY2RkN2ZmY2MyODYzMDkwYTBj
OWE5OWFiNi4uMTY5YmViMzQwNDVmMzg1ODc1ODk0Zjk2OTZhYmI2YWFiN2Y4MTM0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3ND
b250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJHcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gSW5pdGlhbGl6ZXMgdGhlIGdyYXBoaWNzIGNvbnRleHQ7IHNob3VsZCBiZSB0aGUgZmlyc3Qg
b3BlcmF0aW9uIHBlcmZvcm1lZAogICAgIC8vIG9uIG5ld2x5LWNvbnN0cnVjdGVkIGluc3RhbmNl
cy4gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxpemUo
QXR0cmlidXRlcywgV2ViVmlldyosIGJvb2wgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShBdHRyaWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCBy
ZW5kZXJEaXJlY3RseVRvV2ViVmlldykgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE1ha2Vz
IHRoZSBPcGVuR0wgY29udGV4dCBjdXJyZW50IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gUmV0dXJu
cyB0cnVlIG9uCiAgICAgLy8gc3VjY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKaW5k
ZXggNmMwZTc0ZjEyOTcyYzdmMzc0NjM0MGFmZjY5YjMxMmRjMjVjYTFlOS4uNjc2NTgwOGUwZjA3
YTg3NjhkYWUwZGQ0ZDc3NTUwNTFiNDNiZGE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJX
ZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViR2FtZXBhZHMuaCIKKyNpbmNsdWRlICJXZWJHcmFwaGlj
c0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIldlYkxvY2FsaXplZFN0cmluZy5oIgogI2luY2x1ZGUg
IldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgpAQCAt
MzEzLDExICszMTQsMTEgQEAgcHVibGljOgogICAgIC8vIENhbGxhYmxlIGZyb20gYSBiYWNrZ3Jv
dW5kIFdlYktpdCB0aHJlYWQuCiAgICAgdmlydHVhbCB2b2lkIGNhbGxPbk1haW5UaHJlYWQodm9p
ZCAoKmZ1bmMpKHZvaWQqKSwgdm9pZCogY29udGV4dCkgeyB9CiAKLSAgICAvLyBXZWJHTCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0gICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYkdMIGlzIG5vdCBzdXBwb3J0ZWQuCi0g
ICAgLy8gUmV0dXJucyBuZXdseSBhbGxvY2F0ZWQgV2ViR3JhcGhpY3NDb250ZXh0M0QgaW5zdGFu
Y2UuCi0gICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlR3JhcGhpY3NDb250
ZXh0M0QoKSB7IHJldHVybiAwOyB9CisgICAgLy8gR1BVIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8v
IE1heSByZXR1cm4gbnVsbCBpZiBHUFUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBSZXR1cm5z
IG5ld2x5IGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgb2Zmc2NyZWVuIFdlYkdyYXBoaWNzQ29u
dGV4dDNEIGluc3RhbmNlLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0
ZU9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpB
dHRyaWJ1dGVzJikgeyByZXR1cm4gMDsgfQogCiAgICAgLy8gQXVkaW8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9t
aXVtLmNwcAppbmRleCBiZWViOTRiNjU4YzA1ZGJjOGQxMmRhYzUyZWQ2OWZlZjM0OWVmZTZkLi5m
NDcyNDMxZGYzNmI2MTRkMDZmNDBlZGRhZDM1Y2UwMDljNWE3NDdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNw
cApAQCAtNDYsOSArNDYsMTAgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIldlYktpdC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkdyYXBoaWNzQ29udGV4
dDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAKICNp
bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CkBAIC0xNTEsMTQg
KzE1MiwxNyBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVHcmFwaGljc0Nv
bnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZQogICAgIHdlYkF0dHJpYnV0ZXMubm9F
eHRlbnNpb25zID0gYXR0cnMubm9FeHRlbnNpb25zOwogICAgIHdlYkF0dHJpYnV0ZXMuc2hhcmVS
ZXNvdXJjZXMgPSBhdHRycy5zaGFyZVJlc291cmNlczsKICAgICB3ZWJBdHRyaWJ1dGVzLmZvclVz
ZU9uQW5vdGhlclRocmVhZCA9IHRocmVhZFVzYWdlID09IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6Rm9yVXNlT25Bbm90aGVyVGhyZWFkOwotICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNz
Q29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1
cHBvcnQoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoKSk7Ci0gICAgaWYgKCF3ZWJDb250ZXh0
KQotICAgICAgICByZXR1cm4gMDsKIAogICAgIENocm9tZSogY2hyb21lID0gc3RhdGljX2Nhc3Q8
Q2hyb21lKj4oaG9zdFdpbmRvdyk7CiAgICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlld0lt
cGwgPSBjaHJvbWUgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlZpZXdJbXBsKj4oY2hyb21lLT5j
bGllbnQoKS0+d2ViVmlldygpKSA6IDA7Ci0KLSAgICBpZiAoIXdlYkNvbnRleHQtPmluaXRpYWxp
emUod2ViQXR0cmlidXRlcywgd2ViVmlld0ltcGwsIHJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
KSkKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gd2ViQ29udGV4dDsK
KyAgICBpZiAoIXdlYlZpZXdJbXBsIHx8ICF3ZWJWaWV3SW1wbC0+Y2xpZW50KCkpIHsKKyAgICAg
ICAgaWYgKHJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KQorICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHdlYkNvbnRleHQgPSBhZG9wdFB0cihXZWJLaXQ6OndlYktpdFBsYXRmb3JtU3Vw
cG9ydCgpLT5jcmVhdGVPZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCh3ZWJBdHRyaWJ1dGVzKSk7
CisgICAgfSBlbHNlCisgICAgICAgIHdlYkNvbnRleHQgPSBhZG9wdFB0cih3ZWJWaWV3SW1wbC0+
Y2xpZW50KCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKHdlYkF0dHJpYnV0ZXMsIHJlbmRlckRp
cmVjdGx5VG9Ib3N0V2luZG93KSk7CisgICAgaWYgKCF3ZWJDb250ZXh0KQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBhdHRycywgaG9z
dFdpbmRvdywgcmVuZGVyU3R5bGUsIHRocmVhZFVzYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MGZjNzNhM2FiNTg5MzcwMDk4NTMyOWU5
NjExODMzN2Q0YzFmZGMxLi5hYTUzYzI2MWZkNmIzN2Y4OGNiYjU0ZWI1NzUwN2NhZWE2ZThkMmNh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFuZCBp
bml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46
OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdl
YlZpZXdIb3N0OjpjcmVhdGVHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJWaWV3SG9z
dDo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oOgorCiAyMDEyLTAxLTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV0syXSBJbXBsZW1lbnQgdGhlIHBvbGljeSBjbGll
bnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAK
aW5kZXggYWMyMzM2NjY0ZTMxMzY1M2Q4NjU4OTZmMGIxMzRiMjVmMGI1NDIwZC4uZGExMmZhNzA2
ODI0MGI1YTFjMTk0ODlhMmQ2MzA4M2E0ZWM1OWY2NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJQbHVn
aW5Db250YWluZXIuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKKyNpbmNsdWRlICJX
ZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTYxLDkgKzYyLDExIEBAIHN0YXRpYyB2b2lkIHByZW11
bHRpcGx5QWxwaGEoY29uc3QgdW5zaWduZWQgY29sb3JJblszXSwgZmxvYXQgYWxwaGEsIGZsb2F0
IGNvbG9yCiAgICAgY29sb3JPdXRbM10gPSBhbHBoYTsKIH0KIAotVGVzdFdlYlBsdWdpbjo6VGVz
dFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKK1Rlc3RXZWJQbHVnaW46OlRlc3RX
ZWJQbHVnaW4oV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykK
LSAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgOiBtX3dlYlZpZXdDbGllbnQod2ViVmlld0NsaWVu
dCkKKyAgICAsIG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NvbnRhaW5lcigwKQogICAgICwgbV9j
b250ZXh0KDApCiB7CkBAIC0xMDEsMTIgKzEwNCw5IEBAIGNvbnN0IFdlYlN0cmluZyYgVGVzdFdl
YlBsdWdpbjo6bWltZVR5cGUoKQogCiBib29sIFRlc3RXZWJQbHVnaW46OmluaXRpYWxpemUoV2Vi
UGx1Z2luQ29udGFpbmVyKiBjb250YWluZXIpCiB7Ci0gICAgbV9jb250ZXh0ID0gd2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCk7Ci0gICAgaWYgKCFtX2Nv
bnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIFdlYkdyYXBoaWNzQ29udGV4dDNE
OjpBdHRyaWJ1dGVzIGF0dHJzOwotICAgIGlmICghbV9jb250ZXh0LT5pbml0aWFsaXplKGF0dHJz
LCBtX2ZyYW1lLT52aWV3KCksIGZhbHNlKSkKKyAgICBtX2NvbnRleHQgPSBtX3dlYlZpZXdDbGll
bnQtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGF0dHJzLCBmYWxzZSk7CisgICAgaWYgKCFtX2Nv
bnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9jb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uaAppbmRleCBjZWY0NzI4ODQ2MDQ1MmQxMDMzNTFmZDgyNWMxNmVjNGFiMzZmZjk5
Li45MjZiM2U4MzNkZTM3ZDM5MzA2ZTJhYzQ1NjE1MzhjNTlhNTYyNTVkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBAIC0zMSw2ICszMSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CitjbGFz
cyBXZWJWaWV3Q2xpZW50OwogfQogCiAvLyBBIGZha2UgaW1wbGVtZW50aW9uIG9mIFdlYktpdDo6
V2ViUGx1Z2luIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgpAQCAtNDQsNyArNDUsNyBAQCBjbGFzcyBX
ZWJHcmFwaGljc0NvbnRleHQzRDsKIC8vIG9wYWNpdHk6IFswLjAgLSAxLjBdLiBEZWZhdWx0IGlz
IDEuMC4KIGNsYXNzIFRlc3RXZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4gewog
cHVibGljOgotICAgIFRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktp
dDo6V2ViUGx1Z2luUGFyYW1zJik7CisgICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYlZpZXdD
bGllbnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMm
KTsKICAgICB2aXJ0dWFsIH5UZXN0V2ViUGx1Z2luKCk7CiAKICAgICBzdGF0aWMgY29uc3QgV2Vi
S2l0OjpXZWJTdHJpbmcmIG1pbWVUeXBlKCk7CkBAIC0xMTUsNiArMTE2LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBXVEY6OkNTdHJpbmcmIHZlcnRleFNvdXJj
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkNTdHJpbmcmIGZyYWdtZW50
U291cmNlKTsKIAorICAgIFdlYktpdDo6V2ViVmlld0NsaWVudCogbV93ZWJWaWV3Q2xpZW50Owog
ICAgIFdlYktpdDo6V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgV2ViS2l0OjpXZWJQbHVnaW5Db250
YWluZXIqIG1fY29udGFpbmVyOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKaW5kZXggZjhlZTQ3MjE5Yzk3OTg3NjQ2OTYyNWFlYTlkYzY1MjE0OWI4
NTFlMS4uNjVlYmUzODMyNjEzM2Y1YTc1MTJjNjViOTNlNDI4ZTljYjU4ZGRkNyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMjcyLDYgKzI3
MiwxMyBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJWaWV3SG9zdDo6Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVvdGEpCiAgICAgcmV0dXJuIFdlYktpdDo6V2ViU3Rv
cmFnZU5hbWVzcGFjZTo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQog
CitXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SG9zdDo6Y3JlYXRlR3JhcGhp
Y3NDb250ZXh0M0QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRy
aWJ1dGVzLCBib29sIGRpcmVjdCkKK3sKKyAgICBpZiAoIXdlYlZpZXcoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpDcmVhdGVHcmFwaGljc0NvbnRleHQz
RChhdHRyaWJ1dGVzLCB3ZWJWaWV3KCksIGRpcmVjdCk7Cit9CisKIHZvaWQgV2ViVmlld0hvc3Q6
OmRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29uc29sZU1lc3NhZ2UmIG1lc3NhZ2Us
IGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWduZWQgc291cmNlTGluZSkKIHsKICAg
ICAvLyBUaGlzIG1hdGNoZXMgd2luIER1bXBSZW5kZXJUcmVlJ3MgVUlEZWxlZ2F0ZS5jcHAuCkBA
IC05MDYsNyArOTEzLDcgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZXhpdEZ1bGxTY3JlZW4oKQogV2Vi
UGx1Z2luKiBXZWJWaWV3SG9zdDo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
V2ViUGx1Z2luUGFyYW1zJiBwYXJhbXMpCiB7CiAgICAgaWYgKHBhcmFtcy5taW1lVHlwZSA9PSBU
ZXN0V2ViUGx1Z2luOjptaW1lVHlwZSgpKQotICAgICAgICByZXR1cm4gbmV3IFRlc3RXZWJQbHVn
aW4oZnJhbWUsIHBhcmFtcyk7CisgICAgICAgIHJldHVybiBuZXcgVGVzdFdlYlBsdWdpbih0aGlz
LCBmcmFtZSwgcGFyYW1zKTsKIAogICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlV2Vi
UGx1Z2luKGZyYW1lLCBwYXJhbXMpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmgKaW5kZXggMWQwOTU0YWUxODU1ZGY2MmY0YTgxN2I5M2I2MWExYjQxODY1
OWFmMC4uZGU5NzAzODUxZmUwYmQ1YTVkYTQ5NWNkNmYxYzUxYmU4MGZlOWYzNyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMjksNiArMTI5LDcg
QEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50
LCBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2wKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViV2lkZ2V0
KiBjcmVhdGVQb3B1cE1lbnUoV2ViS2l0OjpXZWJQb3B1cFR5cGUpOwogICAgIHZpcnR1YWwgV2Vi
S2l0OjpXZWJXaWRnZXQqIGNyZWF0ZVBvcHVwTWVudShjb25zdCBXZWJLaXQ6OldlYlBvcHVwTWVu
dUluZm8mKTsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRl
U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVvdGEpOworICAgIHZpcnR1YWwgV2Vi
S2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoV2ViS2l0
OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcywgYm9vbCBkaXJlY3QpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRBZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFdlYktpdDo6V2ViQ29uc29s
ZU1lc3NhZ2UmLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWduZWQg
c291cmNlTGluZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0TG9hZGluZygpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wTG9hZGluZygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124601</attachid>
            <date>2012-01-30 14:39:56 -0800</date>
            <delta_ts>2012-01-30 15:50:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120130143955.patch</filename>
            <type>text/plain</type>
            <size>10278</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQ4ZmU4ZTIxMzNiM2JmNGE0Mzk4Yjk0YmY0YmYyYzlmM2JlOWIwMTcuLjExMWFmMWM0MWEwNjFm
OTRkNzE0MTFmMTY3ODQ0YjYyN2FkNTU3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0
aWFsaXplKToKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
Lmg6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorCiAyMDEy
LTAxLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNjMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1YTRkNGU4ZTQ5YzNkNzJhNjhh
MGVhOGVlY2Q0MjAyNGVkNjc4ZTJiLi5iMmU5YmY2ZTQ1OGQwOTQ5YjVlMDkwOTliZDI5YjAyMzQ2
NGQ1Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYldpZGdldENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbG9yLmgi
CisjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDksNiArMTEw
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYSBzZXNzaW9uIHN0b3JhZ2UgbmFtZXNwYWNl
IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJWaWV3LgogICAgIHZpcnR1YWwgV2ViU3Rv
cmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVv
dGEpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENyZWF0ZXMgYSBncmFwaGljcyBjb250ZXh0IGFz
c29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgV2ViVmlldy4gVGhhdAorICAgIC8vIGNvbnRleHQg
d2lsbCBiZSBiZSBzZXR1cCB0byByZW5kZXIgZGlyZWN0bHkgdG8gdGhlIFdlYlZpZXcgKGUuZy4K
KyAgICAvLyBjb21wb3NpdG9yIGNvbnRleHQpLCBhcyBvcHBvc2VkIHRvIGFuIG9mZnNjcmVlbiBz
dXJmYWNlIChlLmcuIFdlYkdMCisgICAgLy8gY29udGV4dCkuCisgICAgdmlydHVhbCBXZWJHcmFw
aGljc0NvbnRleHQzRCogY3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoV2ViR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIE1pc2MgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAg
ICAgLy8gQSBuZXcgbWVzc2FnZSB3YXMgYWRkZWQgdG8gdGhlIGNvbnNvbGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCAzODExNDM2YzI3OGQ1ZjFjZGQ3ZmZjYzI4NjMwOTBhMGM5YTk5
YWI2Li4xNjliZWIzNDA0NWYzODU4NzU4OTRmOTY5NmFiYjZhYWI3ZjgxMzRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdy
YXBoaWNzQ29udGV4dDNELmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJ
bml0aWFsaXplcyB0aGUgZ3JhcGhpY3MgY29udGV4dDsgc2hvdWxkIGJlIHRoZSBmaXJzdCBvcGVy
YXRpb24gcGVyZm9ybWVkCiAgICAgLy8gb24gbmV3bHktY29uc3RydWN0ZWQgaW5zdGFuY2VzLiBS
ZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShBdHRy
aWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBib29sIHJlbmRl
ckRpcmVjdGx5VG9XZWJWaWV3KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTWFrZXMgdGhl
IE9wZW5HTCBjb250ZXh0IGN1cnJlbnQgb24gdGhlIGN1cnJlbnQgdGhyZWFkLiBSZXR1cm5zIHRy
dWUgb24KICAgICAvLyBzdWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAppbmRleCA2
YzBlNzRmMTI5NzJjN2YzNzQ2MzQwYWZmNjliMzEyZGMyNWNhMWU5Li42NzY1ODA4ZTBmMDdhODc2
OGRhZTBkZDRkNzc1NTA1MWI0M2JkYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkRh
dGEuaCIKICNpbmNsdWRlICJXZWJHYW1lcGFkcy5oIgorI2luY2x1ZGUgIldlYkdyYXBoaWNzQ29u
dGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC0zMTMs
MTEgKzMxNCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGFibGUgZnJvbSBhIGJhY2tncm91bmQg
V2ViS2l0IHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgY2FsbE9uTWFpblRocmVhZCh2b2lkICgq
ZnVuYykodm9pZCopLCB2b2lkKiBjb250ZXh0KSB7IH0KIAotICAgIC8vIFdlYkdMIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LSAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYgV2ViR0wgaXMgbm90IHN1cHBvcnRlZC4KLSAgICAv
LyBSZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4K
LSAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRleHQz
RCgpIHsgcmV0dXJuIDA7IH0KKyAgICAvLyBHUFUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gTWF5
IHJldHVybiBudWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgbmV3
bHkgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4gV2ViR3JhcGhpY3NDb250ZXh0
M0QgaW5zdGFuY2UuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlT2Zm
c2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJp
YnV0ZXMmKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBBdWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0u
Y3BwCmluZGV4IDU2YTg5ZTdiYTk1ZDBmY2MwOTBkNDMwZDg5YjY4ZWQ5OGIyM2E3NDMuLmQ3YTU2
ZGEyODk3MWRmNDlkZWJmZWNiNTkzMzdmNzUwNzJiNGM1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCkBA
IC00Niw5ICs0NiwxMCBAQAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1h
Z2VEYXRhLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0
UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUg
IldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKIAogI2luY2x1
ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAgLTE1MSwxNCArMTUy
LDE3IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4
dChHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlCiAgICAgd2ViQXR0cmlidXRlcy5ub0V4dGVu
c2lvbnMgPSBhdHRycy5ub0V4dGVuc2lvbnM7CiAgICAgd2ViQXR0cmlidXRlcy5zaGFyZVJlc291
cmNlcyA9IGF0dHJzLnNoYXJlUmVzb3VyY2VzOwogICAgIHdlYkF0dHJpYnV0ZXMuZm9yVXNlT25B
bm90aGVyVGhyZWFkID0gdGhyZWFkVXNhZ2UgPT0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpG
b3JVc2VPbkFub3RoZXJUaHJlYWQ7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250
ZXh0M0Q+IHdlYkNvbnRleHQgPSBhZG9wdFB0cihXZWJLaXQ6OndlYktpdFBsYXRmb3JtU3VwcG9y
dCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQzRCgpKTsKLSAgICBpZiAoIXdlYkNvbnRleHQpCi0g
ICAgICAgIHJldHVybiAwOwogCi0gICAgQ2hyb21lKiBjaHJvbWUgPSBzdGF0aWNfY2FzdDxDaHJv
bWUqPihob3N0V2luZG93KTsKLSAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9
IGNocm9tZSA/IHN0YXRpY19jYXN0PFdlYktpdDo6V2ViVmlld0ltcGwqPihjaHJvbWUtPmNsaWVu
dCgpLT53ZWJWaWV3KCkpIDogMDsKLQotICAgIGlmICghd2ViQ29udGV4dC0+aW5pdGlhbGl6ZSh3
ZWJBdHRyaWJ1dGVzLCB3ZWJWaWV3SW1wbCwgcmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpKQor
ICAgIE93blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0OworICAg
IGlmIChyZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykgeworICAgICAgQ2hyb21lKiBjaHJvbWUg
PSBzdGF0aWNfY2FzdDxDaHJvbWUqPihob3N0V2luZG93KTsKKyAgICAgIFdlYktpdDo6V2ViVmll
d0ltcGwqIHdlYlZpZXdJbXBsID0gY2hyb21lID8gc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJWaWV3
SW1wbCo+KGNocm9tZS0+Y2xpZW50KCktPndlYlZpZXcoKSkgOiAwOworICAgICAgaWYgKCF3ZWJW
aWV3SW1wbCB8fCAhd2ViVmlld0ltcGwtPmNsaWVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICAgIHdlYkNvbnRleHQgPSBhZG9wdFB0cih3ZWJWaWV3SW1wbC0+Y2xpZW50KCktPmNyZWF0ZUdy
YXBoaWNzQ29udGV4dDNEKHdlYkF0dHJpYnV0ZXMpKTsKKyAgICB9IGVsc2UKKyAgICAgIHdlYkNv
bnRleHQgPSBhZG9wdFB0cihXZWJLaXQ6OndlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVP
ZmZzY3JlZW5HcmFwaGljc0NvbnRleHQzRCh3ZWJBdHRyaWJ1dGVzKSk7CisgICAgaWYgKCF3ZWJD
b250ZXh0KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQu
cmVsZWFzZSgpLCBhdHRycywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUsIHRocmVhZFVzYWdlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4OWZj
MGQ0YmRmNTI4NDlmMjFmMmE2ZDZmYzE4NmRmMDliM2I0YTU2Li4xNmVlYWYwYmYwOTRiYWI3ZjIz
MzliMjg3MTI1YWEwOGNmOWZiNjlhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFi
b3VyICA8cGltYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29u
dGV4dDNEIGNyZWF0aW9uIGFuZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAg
ICAgV2ViVmlld0NsaWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2NTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdlYlBs
dWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFdlYlBsdWdpbi5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVHcmFwaGljc0NvbnRleHQzRCk6
CisgICAgICAgIChXZWJWaWV3SG9zdDo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorCiAyMDEyLTAxLTMwICBHYXZpbiBCYXJy
YWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeCBmb2xsb3dpbmcgYnVnIzc2ODU1CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCmluZGV4IGFjMjMzNjY2NGUzMTM2NTNkODY1ODk2ZjBi
MTM0YjI1ZjBiNTQyMGQuLmVjMTQ0OTI4NmI2MTA5NDFjMWVmN2QwMjkwYWVhYTZlMGY1MmQwZWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4u
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3Bw
CkBAIC0xMDEsMTIgKzEwMSw5IEBAIGNvbnN0IFdlYlN0cmluZyYgVGVzdFdlYlBsdWdpbjo6bWlt
ZVR5cGUoKQogCiBib29sIFRlc3RXZWJQbHVnaW46OmluaXRpYWxpemUoV2ViUGx1Z2luQ29udGFp
bmVyKiBjb250YWluZXIpCiB7Ci0gICAgbV9jb250ZXh0ID0gd2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCk7Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQogICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
IGF0dHJzOwotICAgIGlmICghbV9jb250ZXh0LT5pbml0aWFsaXplKGF0dHJzLCBtX2ZyYW1lLT52
aWV3KCksIGZhbHNlKSkKKyAgICBtX2NvbnRleHQgPSB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+
Y3JlYXRlT2Zmc2NyZWVuR3JhcGhpY3NDb250ZXh0M0QoYXR0cnMpOworICAgIGlmICghbV9jb250
ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5jcHAKaW5kZXggZjhlZTQ3MjE5Yzk3OTg3NjQ2OTYyNWFlYTlkYzY1MjE0OWI4NTFlMS4u
NzdjMzQ0OTZmZjA2OGE4NzAzMzVmMTQxOGJhODM5MTY4ZGFlNzY5NyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMjcyLDYgKzI3MiwxMyBA
QCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJWaWV3SG9zdDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UodW5zaWduZWQgcXVvdGEpCiAgICAgcmV0dXJuIFdlYktpdDo6V2ViU3RvcmFnZU5h
bWVzcGFjZTo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQogCitXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SG9zdDo6Y3JlYXRlR3JhcGhpY3NDb250
ZXh0M0QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQoreworICAgIGlmICghd2ViVmlldygpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
d2Via2l0X3N1cHBvcnQ6OkNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGF0dHJpYnV0ZXMsIHdlYlZp
ZXcoKSk7Cit9CisKIHZvaWQgV2ViVmlld0hvc3Q6OmRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29u
c3QgV2ViQ29uc29sZU1lc3NhZ2UmIG1lc3NhZ2UsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFt
ZSwgdW5zaWduZWQgc291cmNlTGluZSkKIHsKICAgICAvLyBUaGlzIG1hdGNoZXMgd2luIER1bXBS
ZW5kZXJUcmVlJ3MgVUlEZWxlZ2F0ZS5jcHAuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaAppbmRleCAxZDA5NTRhZTE4NTVkZjYyZjRhODE3YjkzYjYxYTFiNDE4
NjU5YWYwLi44MGZjOTg2MTBmMzU3ZWI0ZGI5ZDNjZTRjMTlkNzIxYzkzNjk2Njk4IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEyOSw2ICsxMjks
NyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWxsQ2hlY2tDbGll
bnQsIHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbAogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJXaWRn
ZXQqIGNyZWF0ZVBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwVHlwZSk7CiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYldpZGdldCogY3JlYXRlUG9wdXBNZW51KGNvbnN0IFdlYktpdDo6V2ViUG9wdXBN
ZW51SW5mbyYpOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVh
dGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CisgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRleHQzRChXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBXZWJLaXQ6OldlYkNvbnNvbGVNZXNzYWdlJiwg
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHNvdXJjZU5hbWUsIHVuc2lnbmVkIHNvdXJjZUxpbmUp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydExvYWRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RvcExvYWRpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124617</attachid>
            <date>2012-01-30 15:50:06 -0800</date>
            <delta_ts>2012-01-31 11:12:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76593-20120130155005.patch</filename>
            <type>text/plain</type>
            <size>12691</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQ4ZmU4ZTIxMzNiM2JmNGE0Mzk4Yjk0YmY0YmYyYzlmM2JlOWIwMTcuLjExMWFmMWM0MWEwNjFm
OTRkNzE0MTFmMTY3ODQ0YjYyN2FkNTU3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMTkgIEFudG9pbmUgTGFib3VyICA8cGltYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1lcmdlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGNyZWF0aW9uIGFu
ZCBpbml0aWFsaXphdGlvbiwgYW5kIG1vdmUgaXQgdG8KKyAgICAgICAgV2ViVmlld0NsaWVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVH
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEOjppbml0
aWFsaXplKToKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
Lmg6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorCiAyMDEy
LTAxLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNjMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1YTRkNGU4ZTQ5YzNkNzJhNjhh
MGVhOGVlY2Q0MjAyNGVkNjc4ZTJiLi4xYjQyYTQ4YThmYTlhYTA5MWY3YzkwNzY4ZTQwMTU0OTdi
NDk0M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYldpZGdldENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbG9yLmgi
CisjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDksNiArMTEw
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgYSBzZXNzaW9uIHN0b3JhZ2UgbmFtZXNwYWNl
IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJWaWV3LgogICAgIHZpcnR1YWwgV2ViU3Rv
cmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVv
dGEpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENyZWF0ZXMgYSBncmFwaGljcyBjb250ZXh0IGFz
c29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgV2ViVmlldy4KKyAgICAvLyByZW5kZXJEaXJlY3Rs
eVRvV2ViVmlldyBtZWFucyB3aGV0aGVyIHRoZSBjb250ZXh0IHNob3VsZCBiZSBzZXR1cCB0bwor
ICAgIC8vIHJlbmRlciBkaXJlY3RseSB0byB0aGUgV2ViVmlldyAoZS5nLiBjb21wb3NpdG9yIGNv
bnRleHQpLCBvciB0byBhbgorICAgIC8vIG9mZnNjcmVlbiBzdXJmYWNlIChlLmcuIFdlYkdMIGNv
bnRleHQpLgorICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNz
Q29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzJiwgYm9vbCBy
ZW5kZXJEaXJlY3RseVRvV2ViVmlldykgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gTWlzYyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKICAgICAvLyBBIG5ldyBtZXNzYWdlIHdhcyBhZGRlZCB0byB0aGUgY29uc29sZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdyYXBo
aWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDM4MTE0MzZjMjc4ZDVmMWNkZDdmZmNjMjg2MzA5
MGEwYzlhOTlhYjYuLmMyYmI4ZTUwN2FkZmU1NmMwNjIzMTY4YTFjMWE2YjllZWFjYWUyOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMTI3LDkgKzEyNyw4IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGlzIGRlc3RydWN0b3IgbmVlZHMgdG8gYmUgcHVibGljIHNvIHRoYXQgdXNpbmcgY2xh
c3NlcyBjYW4gZGVzdHJveSBpbnN0YW5jZXMgaWYgaW5pdGlhbGl6YXRpb24gZmFpbHMuCiAgICAg
dmlydHVhbCB+V2ViR3JhcGhpY3NDb250ZXh0M0QoKSB7fQogCi0gICAgLy8gSW5pdGlhbGl6ZXMg
dGhlIGdyYXBoaWNzIGNvbnRleHQ7IHNob3VsZCBiZSB0aGUgZmlyc3Qgb3BlcmF0aW9uIHBlcmZv
cm1lZAotICAgIC8vIG9uIG5ld2x5LWNvbnN0cnVjdGVkIGluc3RhbmNlcy4gUmV0dXJucyB0cnVl
IG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoQXR0cmlidXRlcywgV2Vi
VmlldyosIGJvb2wgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpID0gMDsKKyAgICAvLyBUaGlzIGZ1
bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBzb29uLgorICAgIHZpcnR1
YWwgYm9vbCBpbml0aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBib29sIHJlbmRlckRpcmVj
dGx5VG9XZWJWaWV3KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTWFrZXMgdGhlIE9wZW5H
TCBjb250ZXh0IGN1cnJlbnQgb24gdGhlIGN1cnJlbnQgdGhyZWFkLiBSZXR1cm5zIHRydWUgb24K
ICAgICAvLyBzdWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAppbmRleCA2YzBlNzRm
MTI5NzJjN2YzNzQ2MzQwYWZmNjliMzEyZGMyNWNhMWU5Li42NzY1ODA4ZTBmMDdhODc2OGRhZTBk
ZDRkNzc1NTA1MWI0M2JkYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkRhdGEuaCIK
ICNpbmNsdWRlICJXZWJHYW1lcGFkcy5oIgorI2luY2x1ZGUgIldlYkdyYXBoaWNzQ29udGV4dDNE
LmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC0zMTMsMTEgKzMx
NCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGFibGUgZnJvbSBhIGJhY2tncm91bmQgV2ViS2l0
IHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgY2FsbE9uTWFpblRocmVhZCh2b2lkICgqZnVuYyko
dm9pZCopLCB2b2lkKiBjb250ZXh0KSB7IH0KIAotICAgIC8vIFdlYkdMIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAv
LyBNYXkgcmV0dXJuIG51bGwgaWYgV2ViR0wgaXMgbm90IHN1cHBvcnRlZC4KLSAgICAvLyBSZXR1
cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5jZS4KLSAgICB2
aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRleHQzRCgpIHsg
cmV0dXJuIDA7IH0KKyAgICAvLyBHUFUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gTWF5IHJldHVy
biBudWxsIGlmIEdQVSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFJldHVybnMgbmV3bHkgYWxs
b2NhdGVkIGFuZCBpbml0aWFsaXplZCBvZmZzY3JlZW4gV2ViR3JhcGhpY3NDb250ZXh0M0QgaW5z
dGFuY2UuCisgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlT2Zmc2NyZWVu
R3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMm
KSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBBdWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCmlu
ZGV4IDU2YTg5ZTdiYTk1ZDBmY2MwOTBkNDMwZDg5YjY4ZWQ5OGIyM2E3NDMuLjUzYzIyNDkxM2M2
MmUzZjVhNjlkYzRhMTNmZGIwZjBhN2RjYmE0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCkBAIC00Niw5
ICs0NiwxMCBAQAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRh
LmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxhdGZv
cm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZp
ZXdJbXBsLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKIAogI2luY2x1ZGUgPHN0
ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAgLTE1MSwxNCArMTUyLDE3IEBA
IFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dChHcmFw
aGljc0NvbnRleHQzRDo6QXR0cmlidXRlCiAgICAgd2ViQXR0cmlidXRlcy5ub0V4dGVuc2lvbnMg
PSBhdHRycy5ub0V4dGVuc2lvbnM7CiAgICAgd2ViQXR0cmlidXRlcy5zaGFyZVJlc291cmNlcyA9
IGF0dHJzLnNoYXJlUmVzb3VyY2VzOwogICAgIHdlYkF0dHJpYnV0ZXMuZm9yVXNlT25Bbm90aGVy
VGhyZWFkID0gdGhyZWFkVXNhZ2UgPT0gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpGb3JVc2VP
bkFub3RoZXJUaHJlYWQ7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+
IHdlYkNvbnRleHQgPSBhZG9wdFB0cihXZWJLaXQ6OndlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5j
cmVhdGVHcmFwaGljc0NvbnRleHQzRCgpKTsKLSAgICBpZiAoIXdlYkNvbnRleHQpCi0gICAgICAg
IHJldHVybiAwOwogCiAgICAgQ2hyb21lKiBjaHJvbWUgPSBzdGF0aWNfY2FzdDxDaHJvbWUqPiho
b3N0V2luZG93KTsKICAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IGNocm9t
ZSA/IHN0YXRpY19jYXN0PFdlYktpdDo6V2ViVmlld0ltcGwqPihjaHJvbWUtPmNsaWVudCgpLT53
ZWJWaWV3KCkpIDogMDsKLQotICAgIGlmICghd2ViQ29udGV4dC0+aW5pdGlhbGl6ZSh3ZWJBdHRy
aWJ1dGVzLCB3ZWJWaWV3SW1wbCwgcmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpKQorICAgIE93
blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0OworICAgIGlmICgh
d2ViVmlld0ltcGwgfHwgIXdlYlZpZXdJbXBsLT5jbGllbnQoKSkgeworICAgICAgICBpZiAocmVu
ZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
d2ViQ29udGV4dCA9IGFkb3B0UHRyKFdlYktpdDo6d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNy
ZWF0ZU9mZnNjcmVlbkdyYXBoaWNzQ29udGV4dDNEKHdlYkF0dHJpYnV0ZXMpKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgd2ViQ29udGV4dCA9IGFkb3B0UHRyKHdlYlZpZXdJbXBsLT5jbGllbnQoKS0+
Y3JlYXRlR3JhcGhpY3NDb250ZXh0M0Qod2ViQXR0cmlidXRlcywgcmVuZGVyRGlyZWN0bHlUb0hv
c3RXaW5kb3cpKTsKKyAgICBpZiAoIXdlYkNvbnRleHQpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0
RnJvbVdlYkNvbnRleHQod2ViQ29udGV4dC5yZWxlYXNlKCksIGF0dHJzLCBob3N0V2luZG93LCBy
ZW5kZXJTdHlsZSwgdGhyZWFkVXNhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg5ZmMwZDRiZGY1Mjg0OWYyMWYyYTZkNmZjMTg2ZGYwOWIz
YjRhNTYuLjE2ZWVhZjBiZjA5NGJhYjdmMjMzOWIyODcxMjVhYTA4Y2Y5ZmI2OWEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMi0wMS0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgTWVyZ2UgV2ViR3JhcGhpY3NDb250ZXh0M0QgY3JlYXRpb24gYW5kIGluaXRpYWxpemF0
aW9uLCBhbmQgbW92ZSBpdCB0bworICAgICAgICBXZWJWaWV3Q2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RXZWJQbHVnaW4uY3BwOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBs
dWdpbik6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjppbml0aWFsaXplKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6
OmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVQ
bHVnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6
CisKIDIwMTItMDEtMzAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvbGxvd2luZyBidWcjNzY4NTUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKaW5kZXgg
YWMyMzM2NjY0ZTMxMzY1M2Q4NjU4OTZmMGIxMzRiMjVmMGI1NDIwZC4uZGExMmZhNzA2ODI0MGI1
YTFjMTk0ODlhMmQ2MzA4M2E0ZWM1OWY2NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5Db250
YWluZXIuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKKyNpbmNsdWRlICJXZWJWaWV3
Q2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKQEAgLTYxLDkgKzYyLDExIEBAIHN0YXRpYyB2b2lkIHByZW11bHRpcGx5
QWxwaGEoY29uc3QgdW5zaWduZWQgY29sb3JJblszXSwgZmxvYXQgYWxwaGEsIGZsb2F0IGNvbG9y
CiAgICAgY29sb3JPdXRbM10gPSBhbHBoYTsKIH0KIAotVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBs
dWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKK1Rlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVn
aW4oV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKLSAgICA6
IG1fZnJhbWUoZnJhbWUpCisgICAgOiBtX3dlYlZpZXdDbGllbnQod2ViVmlld0NsaWVudCkKKyAg
ICAsIG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NvbnRhaW5lcigwKQogICAgICwgbV9jb250ZXh0
KDApCiB7CkBAIC0xMDEsMTIgKzEwNCw5IEBAIGNvbnN0IFdlYlN0cmluZyYgVGVzdFdlYlBsdWdp
bjo6bWltZVR5cGUoKQogCiBib29sIFRlc3RXZWJQbHVnaW46OmluaXRpYWxpemUoV2ViUGx1Z2lu
Q29udGFpbmVyKiBjb250YWluZXIpCiB7Ci0gICAgbV9jb250ZXh0ID0gd2ViS2l0UGxhdGZvcm1T
dXBwb3J0KCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKCk7Ci0gICAgaWYgKCFtX2NvbnRleHQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIGF0dHJzOwotICAgIGlmICghbV9jb250ZXh0LT5pbml0aWFsaXplKGF0dHJzLCBtX2Zy
YW1lLT52aWV3KCksIGZhbHNlKSkKKyAgICBtX2NvbnRleHQgPSBtX3dlYlZpZXdDbGllbnQtPmNy
ZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGF0dHJzLCBmYWxzZSk7CisgICAgaWYgKCFtX2NvbnRleHQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4
dEN1cnJlbnQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uaAppbmRleCBjZWY0NzI4ODQ2MDQ1MmQxMDMzNTFmZDgyNWMxNmVjNGFiMzZmZjk5Li45MjZi
M2U4MzNkZTM3ZDM5MzA2ZTJhYzQ1NjE1MzhjNTlhNTYyNTVkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBAIC0zMSw2ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CitjbGFzcyBXZWJW
aWV3Q2xpZW50OwogfQogCiAvLyBBIGZha2UgaW1wbGVtZW50aW9uIG9mIFdlYktpdDo6V2ViUGx1
Z2luIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgpAQCAtNDQsNyArNDUsNyBAQCBjbGFzcyBXZWJHcmFw
aGljc0NvbnRleHQzRDsKIC8vIG9wYWNpdHk6IFswLjAgLSAxLjBdLiBEZWZhdWx0IGlzIDEuMC4K
IGNsYXNzIFRlc3RXZWJQbHVnaW4gOiBwdWJsaWMgV2ViS2l0OjpXZWJQbHVnaW4gewogcHVibGlj
OgotICAgIFRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2Vi
UGx1Z2luUGFyYW1zJik7CisgICAgVGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYlZpZXdDbGllbnQq
LCBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAg
ICB2aXJ0dWFsIH5UZXN0V2ViUGx1Z2luKCk7CiAKICAgICBzdGF0aWMgY29uc3QgV2ViS2l0OjpX
ZWJTdHJpbmcmIG1pbWVUeXBlKCk7CkBAIC0xMTUsNiArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBsb2FkUHJvZ3JhbShjb25zdCBXVEY6OkNTdHJpbmcmIHZlcnRleFNvdXJjZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OkNTdHJpbmcmIGZyYWdtZW50U291cmNl
KTsKIAorICAgIFdlYktpdDo6V2ViVmlld0NsaWVudCogbV93ZWJWaWV3Q2xpZW50OwogICAgIFdl
YktpdDo6V2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXIq
IG1fY29udGFpbmVyOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5jcHAKaW5kZXggZjhlZTQ3MjE5Yzk3OTg3NjQ2OTYyNWFlYTlkYzY1MjE0OWI4NTFlMS4u
Mjk0NWMyZDUzZWMyNzYzOTY5YjU5YWVlM2RjYjg5ZTI1MzRhNjdmOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMjcyLDYgKzI3MiwxMyBA
QCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJWaWV3SG9zdDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UodW5zaWduZWQgcXVvdGEpCiAgICAgcmV0dXJuIFdlYktpdDo6V2ViU3RvcmFnZU5h
bWVzcGFjZTo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQogCitXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SG9zdDo6Y3JlYXRlR3JhcGhpY3NDb250
ZXh0M0QoY29uc3QgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyYgYXR0
cmlidXRlcywgYm9vbCBkaXJlY3QpCit7CisgICAgaWYgKCF3ZWJWaWV3KCkpCisgICAgICAgIHJl
dHVybiAwOworICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlR3JhcGhpY3NDb250ZXh0
M0QoYXR0cmlidXRlcywgd2ViVmlldygpLCBkaXJlY3QpOworfQorCiB2b2lkIFdlYlZpZXdIb3N0
OjpkaWRBZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFdlYkNvbnNvbGVNZXNzYWdlJiBtZXNzYWdl
LCBjb25zdCBXZWJTdHJpbmcmIHNvdXJjZU5hbWUsIHVuc2lnbmVkIHNvdXJjZUxpbmUpCiB7CiAg
ICAgLy8gVGhpcyBtYXRjaGVzIHdpbiBEdW1wUmVuZGVyVHJlZSdzIFVJRGVsZWdhdGUuY3BwLgpA
QCAtOTA2LDcgKzkxMyw3IEBAIHZvaWQgV2ViVmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuKCkKIFdl
YlBsdWdpbiogV2ViVmlld0hvc3Q6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IFdlYlBsdWdpblBhcmFtcyYgcGFyYW1zKQogewogICAgIGlmIChwYXJhbXMubWltZVR5cGUgPT0g
VGVzdFdlYlBsdWdpbjo6bWltZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBUZXN0V2ViUGx1
Z2luKGZyYW1lLCBwYXJhbXMpOworICAgICAgICByZXR1cm4gbmV3IFRlc3RXZWJQbHVnaW4odGhp
cywgZnJhbWUsIHBhcmFtcyk7CiAKICAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkNyZWF0ZVdl
YlBsdWdpbihmcmFtZSwgcGFyYW1zKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5oCmluZGV4IDFkMDk1NGFlMTg1NWRmNjJmNGE4MTdiOTNiNjFhMWI0MTg2
NTlhZjAuLmI5M2Q2MTY3OTE5Y2Y0YTAwZTgwOGQ5NWQ4NjRmZThhOTBhNGY0Y2QgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTI5LDYgKzEyOSw3
IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVu
dCwgcHVibGljIFdlYktpdDo6V2ViVmlld0NsCiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYldpZGdl
dCogY3JlYXRlUG9wdXBNZW51KFdlYktpdDo6V2ViUG9wdXBUeXBlKTsKICAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViV2lkZ2V0KiBjcmVhdGVQb3B1cE1lbnUoY29uc3QgV2ViS2l0OjpXZWJQb3B1cE1l
bnVJbmZvJik7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0
ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVkIHF1b3RhKTsKKyAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGNvbnN0
IFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMmLCBib29sIGRpcmVjdCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViS2l0OjpX
ZWJDb25zb2xlTWVzc2FnZSYsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzb3VyY2VOYW1lLCB1
bnNpZ25lZCBzb3VyY2VMaW5lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>