<?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>30979</bug_id>
          
          <creation_ts>2009-10-31 11:27:16 -0700</creation_ts>
          <short_desc>[Qt] REGRESSION: Allow applications to use their own QWidget bypassing QWebView.</short_desc>
          <delta_ts>2009-11-04 00:50:37 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29799</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>maheshk</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159572</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-10-31 11:27:16 -0700</bug_when>
    <thetext>Users of QtWebKit might want their own QWidget to replace QWebView. Windowed plugins need access to this QWidget, but with the current design, QWebPageClient is not exposed. Applications that replace QWebView would simply crash when plugins are loaded into them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159631</commentid>
    <comment_count>1</comment_count>
      <attachid>42276</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-11-01 06:36:15 -0800</bug_when>
    <thetext>Created attachment 42276
Patch

This patch includes only the functionality of exposing QWebPageClient and non of the required documentation.
QWebPageClient is now a QObject, so that we can extend it without breaking binary compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159643</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-01 10:40:49 -0800</bug_when>
    <thetext>We introduced QWebPageClient to decouple WebCore from the widgets or graphics items in the WebKit layer on top. It is designed as private interface, it is not designed to be part of the public API. Making it public means we cannot change it anymore, we wouldn&apos;t be able to add new virtual functions or rename existing ones.

We should extend the existing public API (QWebPage, QWebView, QGraphicsWebView) instead of introducing yet another public interface for developers to learn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159668</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-11-01 13:45:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; We introduced QWebPageClient to decouple WebCore from the widgets or graphics
&gt; items in the WebKit layer on top. It is designed as private interface, it is
&gt; not designed to be part of the public API. 
I am more than happy to discuss an alternative solution, that will not involve exposing QWebPageClient.

&gt; Making it public means we cannot
&gt; change it anymore, we wouldn&apos;t be able to add new virtual functions or rename
&gt; existing ones.
The modified QWebPageClient is inheriting QObject. We will not be able to add new virtual methods, but we will be able to add new signals and slots instead.

&gt; We should extend the existing public API (QWebPage, QWebView, QGraphicsWebView)
&gt; instead of introducing yet another public interface for developers to learn.
Qt 4.5 allows replacing QWebView with another QWidget, and there are no side effects. In Qt 4.6, applications that replace QWebView with their own QWidget will crash when loading plugins. IMO, this is regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159715</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-01 19:34:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; We should extend the existing public API (QWebPage, QWebView, QGraphicsWebView)
&gt; &gt; instead of introducing yet another public interface for developers to learn.
&gt; Qt 4.5 allows replacing QWebView with another QWidget, and there are no side
&gt; effects. In Qt 4.6, applications that replace QWebView with their own QWidget
&gt; will crash when loading plugins. IMO, this is regression.

That is true, it is a regression. Even though it&apos;s a use-case that we shouldn&apos;t encourage we shouldn&apos;t break it either, especially as it looks like it&apos;s easy to fix:

QWebViewPrivate is the implementation of the QWebPageClient interface that operates on the QWebView. However at closer inspection it appears that there&apos;s nothing in that implementation that makes it really depend on QWebView. AFAICS all the calls and queries to the view would work on any QWidget.

It appears the fix would be to rip out the QWebPageClient implementation from QWebViewPrivate, turn into into a private standalone class (say QWebPageWidgetClient) and use it independently from QWebView. I guess QWebPage should own/allocate the instance when QWebPage::setView() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159868</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-11-02 11:44:17 -0800</bug_when>
    <thetext>The solution here would not be exposing QWebPageClient, hence the title change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159883</commentid>
    <comment_count>6</comment_count>
      <attachid>42333</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-11-02 12:06:10 -0800</bug_when>
    <thetext>Created attachment 42333
Patch

(In reply to comment #4)
&gt; It appears the fix would be to rip out the QWebPageClient implementation from
&gt; QWebViewPrivate, turn into into a private standalone class (say
&gt; QWebPageWidgetClient) and use it independently from QWebView. I guess QWebPage
&gt; should own/allocate the instance when QWebPage::setView() is called.
This patch does what you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159953</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-11-02 17:25:43 -0800</bug_when>
    <thetext>Instead of 
+#if defined(Q_WS_X11)
+#include &lt;QX11Info&gt;
+#endif

+int QWebPageWidgetClient::screenNumber() const
+{
+#if defined(Q_WS_X11)
+    if (view)
+        return view-&gt;x11Info().screen();
+#endif
+
+    return 0;
+}

Could use QDesktopWidget::screenNumber() which is cross-platform?

Simon also suggest to recycle the client instead of throwing it all the time:
+        delete d-&gt;client;
+        d-&gt;client = view ? new QWebPageWidgetClient(view) : 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159971</commentid>
    <comment_count>8</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-11-02 19:49:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Instead of 
&gt; +#if defined(Q_WS_X11)
&gt; +#include &lt;QX11Info&gt;
&gt; +#endif
&gt; 
&gt; +int QWebPageWidgetClient::screenNumber() const
&gt; +{
&gt; +#if defined(Q_WS_X11)
&gt; +    if (view)
&gt; +        return view-&gt;x11Info().screen();
&gt; +#endif
&gt; +
&gt; +    return 0;
&gt; +}
&gt; 
&gt; Could use QDesktopWidget::screenNumber() which is cross-platform?
&gt; The patch as it is, is only moving code from one place to another, to address the regression. If we want to change the existing functionality, I think that should be a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160046</commentid>
    <comment_count>9</comment_count>
      <attachid>42374</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-11-03 06:36:24 -0800</bug_when>
    <thetext>Created attachment 42374
Patch

This patch is recycling the client in the rare case that the application switchs view at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160068</commentid>
    <comment_count>10</comment_count>
      <attachid>42384</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-11-03 08:04:38 -0800</bug_when>
    <thetext>Created attachment 42384
Patch

Replace NULL with 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160358</commentid>
    <comment_count>11</comment_count>
      <attachid>42384</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-04 00:50:29 -0800</bug_when>
    <thetext>Comment on attachment 42384
Patch

Clearing flags on attachment: 42384

Committed r50503: &lt;http://trac.webkit.org/changeset/50503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160359</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-04 00:50:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42276</attachid>
            <date>2009-11-01 06:36:15 -0800</date>
            <delta_ts>2009-11-02 12:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>30979.patch</filename>
            <type>text/plain</type>
            <size>16505</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2
aXNpb24gNTAzODMpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMCArMzksMTAgQEAKICNpbmNsdWRlICJXaW5kb3dG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKIAogI2luY2x1ZGUgInF3
ZWJwYWdlLmgiCiAjaW5jbHVkZSAicXdlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInF3ZWJwYWdlY2xp
ZW50LmgiCiAjaW5jbHVkZSAicXdlYmZyYW1lX3AuaCIKICNpbmNsdWRlICJxd2Vic2VjdXJpdHlv
cmlnaW4uaCIKICNpbmNsdWRlICJxd2Vic2VjdXJpdHlvcmlnaW5fcC5oIgpJbmRleDogV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkocmV2aXNp
b24gNTAzODMpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEwICs1NSwxMCBAQAogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTY3JpcHRTdHJp
bmcuaCIKLSNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogCiAjaW5jbHVkZSAicXdlYnBhZ2Uu
aCIKICNpbmNsdWRlICJxd2VicGFnZV9wLmgiCisjaW5jbHVkZSAicXdlYnBhZ2VjbGllbnQuaCIK
ICNpbmNsdWRlICJxd2ViZnJhbWUuaCIKICNpbmNsdWRlICJxd2ViZnJhbWVfcC5oIgogI2luY2x1
ZGUgInF3ZWJoaXN0b3J5aW50ZXJmYWNlLmgiCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiAr
MzMsNyBAQAogCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKICNpbmNsdWRlICJxd2VicGFnZV9wLmgi
CisjaW5jbHVkZSAicXdlYnBhZ2VjbGllbnQuaCIKIAogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFy
YXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDksNyArNTAsNiBAQAogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJSYW5nZS5o
IgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNTAzODMpCisrKyBXZWJLaXQv
cXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMTEtMDEg
IFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRXhwb3NlIFFXZWJQYWdlQ2xpZW50
IHRocm91Z2ggdGhlIFF0V2ViS2l0IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMwOTc5CisKKyAgICAgICAgTW92ZWQgUVdlYlBhZ2VDbGllbnQu
aCBvdXQgb2YgV2ViQ29yZSwgcmVuYW1lZCB0aGUgZmlsZSB0byBsb3dlcmNhc2UKKyAgICAgICAg
YW5kIGV4cG9zZWQgaXQgaW4gaGVhZGVycy5wcmkuCisgICAgICAgIFFXZWJQYWdlQ2xpZW50IG5v
dyBpbmhlcml0cyBmcm9tIFFPYmplY3Qgc28gdGhhdCBpbiB0aGUgZnV0dXJlIHdlCisgICAgICAg
IGNhbiBleHRlbmQgaXQgYXMgbmVlZGVkIHZpYSBzaWduYWxzIGFuZCBzbG90cy4KKyAgICAgICAg
QWxzbyBhZGRlZCBwdWJsaWMgQVBJIHRvIHNldCBhbmQgZ2V0IFFXZWJQYWdlQ2xpZW50LgorCisg
ICAgICAgICogQXBpL2hlYWRlcnMucHJpOgorICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnBh
Z2VDbGllbnQpOgorICAgICAgICAoUVdlYlBhZ2U6OnNldFBhZ2VDbGllbnQpOgorICAgICAgICAq
IEFwaS9xd2VicGFnZS5oOgorICAgICAgICAqIEFwaS9xd2VicGFnZWNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFFXZWJQYWdlQ2xpZW50OjpyZXNldEN1cnNvcik6CisgICAgICAgIChRV2ViUGFn
ZUNsaWVudDo6c2V0Q3Vyc29yKToKKyAgICAgICAgKiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHA6CisKIDIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDog
V2ViS2l0L3F0L0FwaS9xd2VicGFnZWNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9B
cGkvcXdlYnBhZ2VjbGllbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBh
Z2VjbGllbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFFXRUJQQUdFQ0xJRU5UX0gKKyNkZWZpbmUgUVdFQlBBR0VDTElFTlRf
SAorCisjaW5jbHVkZSA8UUN1cnNvcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFQ
YWxldHRlPgorI2luY2x1ZGUgPFFSZWN0PgorCitjbGFzcyBRV2ViUGFnZUNsaWVudCA6IHB1Ymxp
YyBRT2JqZWN0IHsKK1FfT0JKRUNUCitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChp
bnQgZHgsIGludCBkeSwgY29uc3QgUVJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZShjb25zdCBRUmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RFbmFi
bGVkKGJvb2wgZW5hYmxlKSA9IDA7CisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAorICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBi
b29sIGVuYWJsZSkgPSAwOworI2VuZGlmCisgICAgaW5saW5lIHZvaWQgcmVzZXRDdXJzb3IoKQor
ICAgIHsKKyNpZm5kZWYgUVRfTk9fQ1VSU09SCisgICAgICAgIGlmICghY3Vyc29yKCkuYml0bWFw
KCkgJiYgY3Vyc29yKCkuc2hhcGUoKSA9PSBtX2xhc3RDdXJzb3Iuc2hhcGUoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgdXBkYXRlQ3Vyc29yKG1fbGFzdEN1cnNvcik7CisjZW5kaWYK
KyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBzZXRDdXJzb3IoY29uc3QgUUN1cnNvciYgY3Vyc29y
KQorICAgIHsKKyNpZm5kZWYgUVRfTk9fQ1VSU09SCisgICAgICAgIG1fbGFzdEN1cnNvciA9IGN1
cnNvcjsKKyAgICAgICAgaWYgKCFjdXJzb3IuYml0bWFwKCkgJiYgY3Vyc29yLnNoYXBlKCkgPT0g
dGhpcy0+Y3Vyc29yKCkuc2hhcGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdXBk
YXRlQ3Vyc29yKGN1cnNvcik7CisjZW5kaWYKKyAgICB9CisKKyAgICB2aXJ0dWFsIFFQYWxldHRl
IHBhbGV0dGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdCA9IDA7CisK
KyAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVudCgpIGNvbnN0ID0gMDsKKworcHJvdGVj
dGVkOgorI2lmbmRlZiBRVF9OT19DVVJTT1IKKyAgICB2aXJ0dWFsIFFDdXJzb3IgY3Vyc29yKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXJzb3IoY29uc3QgUUN1cnNvciYg
Y3Vyc29yKSA9IDA7CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZm5kZWYgUVRfTk9fQ1VSU09SCisg
ICAgUUN1cnNvciBtX2xhc3RDdXJzb3I7CisjZW5kaWYKK307CisKKyNlbmRpZgpJbmRleDogV2Vi
S2l0L3F0L0FwaS9xd2VicGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuaAkocmV2aXNpb24gNTAzODMpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKIGNsYXNzIFFXZWJGcmFtZTsKIGNsYXNzIFFXZWJO
ZXR3b3JrUmVxdWVzdDsKIGNsYXNzIFFXZWJIaXN0b3J5OworY2xhc3MgUVdlYlBhZ2VDbGllbnQ7
CiAKIGNsYXNzIFFXZWJQYWdlUHJpdmF0ZTsKIGNsYXNzIFFXZWJGcmFtZURhdGE7CkBAIC0yNDAs
NiArMjQxLDkgQEAKICAgICBRU2l6ZSBwcmVmZXJyZWRDb250ZW50c1NpemUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFByZWZlcnJlZENvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSAmc2l6ZSkgY29uc3Q7
CiAKKyAgICBRV2ViUGFnZUNsaWVudCogcGFnZUNsaWVudCgpIGNvbnN0OworICAgIHZvaWQgc2V0
UGFnZUNsaWVudChRV2ViUGFnZUNsaWVudCogY2xpZW50KTsKKwogICAgIHZpcnR1YWwgYm9vbCBl
dmVudChRRXZlbnQqKTsKICAgICBib29sIGZvY3VzTmV4dFByZXZDaGlsZChib29sIG5leHQpOwog
CkluZGV4OiBXZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysg
V2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NyArMjQsNyBAQAogI2luY2x1ZGUgInF3ZWJmcmFtZS5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgi
CiAjaW5jbHVkZSAicXdlYnBhZ2VfcC5oIgotI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisj
aW5jbHVkZSAicXdlYnBhZ2VjbGllbnQuaCIKICNpbmNsdWRlIDxRdEd1aS9RR3JhcGhpY3NTY2Vu
ZT4KICNpbmNsdWRlIDxRdEd1aS9RR3JhcGhpY3NWaWV3PgogI2luY2x1ZGUgPFF0R3VpL3FhcHBs
aWNhdGlvbi5oPgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMDUsNiArMjAwNSwxNiBA
QAogICAgIH0KIH0KIAorUVdlYlBhZ2VDbGllbnQqIFFXZWJQYWdlOjpwYWdlQ2xpZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+Y2xpZW50OworfQorCit2b2lkIFFXZWJQYWdlOjpzZXRQYWdl
Q2xpZW50KFFXZWJQYWdlQ2xpZW50KiBjbGllbnQpCit7CisgICAgZC0+Y2xpZW50ID0gY2xpZW50
OworfQorCiAvKiEKICAgICBcZm4gYm9vbCBRV2ViUGFnZTo6YWNjZXB0TmF2aWdhdGlvblJlcXVl
c3QoUVdlYkZyYW1lICpmcmFtZSwgY29uc3QgUU5ldHdvcmtSZXF1ZXN0ICZyZXF1ZXN0LCBRV2Vi
UGFnZTo6TmF2aWdhdGlvblR5cGUgdHlwZSkKIApJbmRleDogV2ViS2l0L3F0L0FwaS9oZWFkZXJz
LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpCShyZXZpc2lvbiA1
MDM4MykKKysrIFdlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTIs
NiArMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xZ3JhcGhpY3N3ZWJ2aWV3Lmgg
XAogICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmtpdGdsb2JhbC5oIFwKICAgICAgICAg
ICAgICAgICAgICAgICQkUFdEL3F3ZWJwYWdlLmggXAorICAgICAgICAgICAgICAgICAgICAgJCRQ
V0QvcXdlYnBhZ2VjbGllbnQuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Vidmll
dy5oIFwKICAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJzZXR0aW5ncy5oIFwKICAgICAg
ICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJoaXN0b3J5aW50ZXJmYWNlLmggXApJbmRleDogV2Vi
S2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vi
dmlldy5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJxd2Vidmlldy5oIgogCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNs
dWRlICJxd2ViZnJhbWUuaCIKICNpbmNsdWRlICJxd2VicGFnZV9wLmgiCisjaW5jbHVkZSAicXdl
YnBhZ2VjbGllbnQuaCIKIAogI2luY2x1ZGUgInFiaXRtYXAuaCIKICNpbmNsdWRlICJxZXZlbnQu
aCIKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCShyZXZpc2lvbiA1MDM4MykK
KysrIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNsdWRlICJy
dW50aW1lLmgiCiAjaW5jbHVkZSAicnVudGltZV9yb290LmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VD
bGllbnQuaCIKKyNpbmNsdWRlICJxd2VicGFnZWNsaWVudC5oIgogI2luY2x1ZGUgPFFBcHBsaWNh
dGlvbj4KICNpbmNsdWRlIDxRRGVza3RvcFdpZGdldD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+Cklu
ZGV4OiBXZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAJKHJldmlzaW9uIDUwMzgzKQor
KysgV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzUsNyArNzUsNyBAQAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFXaWRnZXQ+CiAj
aW5jbHVkZSA8UUtleUV2ZW50PgotI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVk
ZSAicXdlYnBhZ2VjbGllbnQuaCIKIFFUX0JFR0lOX05BTUVTUEFDRQogI2lmIFFUX1ZFUlNJT04g
PCAweDA0MDUwMAogZXh0ZXJuIFFfR1VJX0VYUE9SVCBXaW5kb3dQdHIgcXRfbWFjX3dpbmRvd19m
b3IoY29uc3QgUVdpZGdldCogdyk7CkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZp
ZXdXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dp
bi5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsNyBAQAogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShRVCkKLSNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgorI2luY2x1ZGUgInF3ZWJw
YWdlY2xpZW50LmgiCiAjaW5jbHVkZSA8UVdpZGdldD4KICNlbmRpZgogCkluZGV4OiBXZWJDb3Jl
L3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwCShyZXZpc2lvbiA1MDM4
MykKKysrIFdlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgi
CiAjaW5jbHVkZSAicnVudGltZS5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgotI2luY2x1
ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAicXdlYnBhZ2VjbGllbnQuaCIKICNpbmNs
dWRlIDxRS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UVBpeG1hcC5oPgogI2luY2x1ZGUgPFFSZWdpb24+
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHJldmlzaW9uIDUwMzgzKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBj
b3B5KQpAQCAtMTkyOSw3ICsxOTI5LDYgQEAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oIFwKICAgICBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oIFwKLSAgICBwbGF0Zm9ybS9xdC9R
V2ViUGFnZUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9xdC9RV2ViUG9wdXAuaCBcCiAgICAgcGxh
dGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oIFwKICAgICBwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVt
ZVF0LmggXApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0xMS0wMSAgWWFlbCBBaGFyb24gIDx5YWVsLmFo
YXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBFeHBvc2UgUVdlYlBhZ2VDbGllbnQgdGhyb3VnaCB0aGUgUXRXZWJLaXQg
QVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5
NzkKKworICAgICAgICBNb3ZlZCBRV2ViUGFnZUNsaWVudC5oIG91dCBvZiBXZWJDb3JlLCBhbmQg
cmVuYW1lZCB0aGUgZmlsZSB0byBsb3dlcmNhc2UuCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMg
dGhlcmUgaXMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvUVdlYlBh
Z2VDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHA6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHA6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5W
aWV3UXQuY3BwOgorICAgICAgICAqIHBsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5j
cHA6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKIDIwMDktMTAt
MzEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXgK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgJKHJldmlzaW9uIDUwMzgzKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBRV2ViUGFnZUNs
aWVudF9oCi0jZGVmaW5lIFFXZWJQYWdlQ2xpZW50X2gKLQotI2luY2x1ZGUgPFFSZWN0PgotCi1j
bGFzcyBRV2ViUGFnZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbChp
bnQgZHgsIGludCBkeSwgY29uc3QgUVJlY3QmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZShjb25zdCBRUmVjdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RFbmFi
bGVkKGJvb2wgZW5hYmxlKSA9IDA7Ci0jaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAotICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBi
b29sIGVuYWJsZSkgPSAwOwotI2VuZGlmCi0gICAgaW5saW5lIHZvaWQgcmVzZXRDdXJzb3IoKQot
ICAgIHsKLSNpZm5kZWYgUVRfTk9fQ1VSU09SCi0gICAgICAgIGlmICghY3Vyc29yKCkuYml0bWFw
KCkgJiYgY3Vyc29yKCkuc2hhcGUoKSA9PSBtX2xhc3RDdXJzb3Iuc2hhcGUoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgdXBkYXRlQ3Vyc29yKG1fbGFzdEN1cnNvcik7Ci0jZW5kaWYK
LSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCBzZXRDdXJzb3IoY29uc3QgUUN1cnNvciYgY3Vyc29y
KQotICAgIHsKLSNpZm5kZWYgUVRfTk9fQ1VSU09SCi0gICAgICAgIG1fbGFzdEN1cnNvciA9IGN1
cnNvcjsKLSAgICAgICAgaWYgKCFjdXJzb3IuYml0bWFwKCkgJiYgY3Vyc29yLnNoYXBlKCkgPT0g
dGhpcy0+Y3Vyc29yKCkuc2hhcGUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdXBk
YXRlQ3Vyc29yKGN1cnNvcik7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIFFQYWxldHRl
IHBhbGV0dGUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdCA9IDA7Ci0K
LSAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVudCgpIGNvbnN0ID0gMDsKLQotcHJvdGVj
dGVkOgotI2lmbmRlZiBRVF9OT19DVVJTT1IKLSAgICB2aXJ0dWFsIFFDdXJzb3IgY3Vyc29yKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXJzb3IoY29uc3QgUUN1cnNvciYg
Y3Vyc29yKSA9IDA7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSNpZm5kZWYgUVRfTk9fQ1VSU09SCi0g
ICAgUUN1cnNvciBtX2xhc3RDdXJzb3I7Ci0jZW5kaWYKLX07Ci0KLSNlbmRpZgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCShyZXZpc2lvbiA1MDM4MykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDkgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIb3N0
V2luZG93LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQu
aCIKKworI2luY2x1ZGUgInF3ZWJwYWdlY2xpZW50LmgiCisKICNpbmNsdWRlIDxRQXBwbGljYXRp
b24+CiAjaW5jbHVkZSA8UURlc2t0b3BXaWRnZXQ+CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
cXQvUG9wdXBNZW51UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9w
dXBNZW51UXQuY3BwCShyZXZpc2lvbiA1MDM4MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9w
dXBNZW51UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCwxMCBAQAogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJQb3B1cE1l
bnVDbGllbnQuaCIKLSNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlFXZWJQ
b3B1cC5oIgogCisjaW5jbHVkZSAicXdlYnBhZ2VjbGllbnQuaCIKKwogI2luY2x1ZGUgPFFBY3Rp
b24+CiAjaW5jbHVkZSA8UURlYnVnPgogI2luY2x1ZGUgPFFMaXN0V2lkZ2V0PgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA1MDM4MykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDgg
KzQ1LDggQEAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VD
bGllbnQuaCIKICNpbmNsdWRlICJxd2VicGFnZS5oIgorI2luY2x1ZGUgInF3ZWJwYWdlY2xpZW50
LmgiCiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUNvbG9yPgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAJKHJldmlzaW9uIDUwMzgzKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9xdC9XaWRnZXRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDExICszOSwxMSBAQAog
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogCiAjaW5jbHVk
ZSAicXdlYmZyYW1lLmgiCiAjaW5jbHVkZSAicXdlYmZyYW1lX3AuaCIKICNpbmNsdWRlICJxd2Vi
cGFnZS5oIgorI2luY2x1ZGUgInF3ZWJwYWdlY2xpZW50LmgiCiAKICNpbmNsdWRlIDxRQ29yZUFw
cGxpY2F0aW9uPgogI2luY2x1ZGUgPFFQYWludGVyPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42333</attachid>
            <date>2009-11-02 12:06:10 -0800</date>
            <delta_ts>2009-11-03 06:36:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>30979.patch</filename>
            <type>text/plain</type>
            <size>7628</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNTA0MjQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMTEtMDIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gUkVHUkVTU0lPTjogQWxsb3cgYXBwbGljYXRpb25zIHRvIHVzZSB0aGVpciBv
d24gUVdpZGdldCBieXBhc3NpbmcgUVdlYlZpZXcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDk3OQorCisgICAgICAgIERlY291cGxlIFFXZWJWaWV3
UHJpdmF0ZSBmcm9tIFFXZWJQYWdlQ2xpZW50LCBhbmQgYXV0b21hdGljYWxseSBjcmVhdGUKKyAg
ICAgICAgUVdlYlBhZ2VXaWRnZXRDbGllbnQgd2hlbmV2ZXIgdGhlIHZpZXcgaXMgUVdpZGdldCBi
YXNlZC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVdp
ZGdldENsaWVudDo6UVdlYlBhZ2VXaWRnZXRDbGllbnQpOgorICAgICAgICAoUVdlYlBhZ2VXaWRn
ZXRDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6dXBkYXRl
KToKKyAgICAgICAgKFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpzZXRJbnB1dE1ldGhvZEVuYWJsZWQp
OgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludCk6Cisg
ICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6Y3Vyc29yKToKKyAgICAgICAgKFFXZWJQYWdl
V2lkZ2V0Q2xpZW50Ojp1cGRhdGVDdXJzb3IpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGll
bnQ6OnBhbGV0dGUpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJl
cik6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6b3duZXJXaWRnZXQpOgorICAgICAg
ICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnBsdWdpblBhcmVudCk6CisgICAgICAgIChRV2ViUGFn
ZTo6c2V0Vmlldyk6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFXZWJW
aWV3Ojp+UVdlYlZpZXcpOgorICAgICAgICAoUVdlYlZpZXc6OnNldFBhZ2UpOgorICAgICAgICAo
UVdlYlZpZXc6OmV2ZW50KToKKwogMjAwOS0xMS0wMiAgSmVkcnplaiBOb3dhY2tpICA8amVkcnpl
ai5ub3dhY2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJ
bmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDUwNDE2KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJDYWNo
ZS5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAKICNpbmNsdWRlIDxR
QXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUJhc2ljVGltZXI+CkBAIC0xMDcsNiArMTA4LDkgQEAK
ICNlbHNlCiAjaW5jbHVkZSAicXdlYm5ldHdvcmtpbnRlcmZhY2UuaCIKICNlbmRpZgorI2lmIGRl
ZmluZWQoUV9XU19YMTEpCisjaW5jbHVkZSA8UVgxMUluZm8+CisjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEzOCw2ICsxNDIsOTUgQEAKICAgICByZXR1cm4gcGFnZS0+
aGFuZGxlKCktPnBhZ2UtPmdyb3VwTmFtZSgpOwogfQogCitjbGFzcyBRV2ViUGFnZVdpZGdldENs
aWVudCA6IHB1YmxpYyBRV2ViUGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUVdlYlBhZ2VXaWRn
ZXRDbGllbnQoUVdpZGdldCogdmlldykKKyAgICAgICAgOiB2aWV3KHZpZXcpCisgICAgeworICAg
ICAgICBRX0FTU0VSVCh2aWV3KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGlu
dCBkeCwgaW50IGR5LCBjb25zdCBRUmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29u
c3QgUVJlY3QmIGRpcnR5UmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kRW5h
YmxlZChib29sIGVuYWJsZSk7CisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAorICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBib29s
IGVuYWJsZSk7CisjZW5kaWYKKworI2lmbmRlZiBRVF9OT19DVVJTT1IKKyAgICB2aXJ0dWFsIFFD
dXJzb3IgY3Vyc29yKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1cnNvcihjb25z
dCBRQ3Vyc29yJiBjdXJzb3IpOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIFFQYWxldHRlIHBhbGV0
dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIHBsdWdpblBhcmVudCgpIGNvbnN0OworCisgICAgUVdpZGdldCogdmlldzsKK307CisKK3Zv
aWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcm9sbChpbnQgZHgsIGludCBkeSwgY29uc3QgUVJl
Y3QmIHJlY3RUb1Njcm9sbCkKK3sKKyAgICB2aWV3LT5zY3JvbGwocXJlYWwoZHgpLCBxcmVhbChk
eSksIHJlY3RUb1Njcm9sbCk7Cit9CisKK3ZvaWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnVwZGF0
ZShjb25zdCBRUmVjdCAmIGRpcnR5UmVjdCkKK3sKKyAgICB2aWV3LT51cGRhdGUoZGlydHlSZWN0
KTsKK30KKwordm9pZCBRV2ViUGFnZVdpZGdldENsaWVudDo6c2V0SW5wdXRNZXRob2RFbmFibGVk
KGJvb2wgZW5hYmxlKQoreworICAgIHZpZXctPnNldEF0dHJpYnV0ZShRdDo6V0FfSW5wdXRNZXRo
b2RFbmFibGVkLCBlbmFibGUpOworfQorI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKK3ZvaWQg
UVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRNZXRob2RI
aW50IGhpbnQsIGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpCisgICAgICAgIHZpZXct
PnNldElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpIHwgaGludCk7Cisg
ICAgZWxzZQorICAgICAgICB2aWV3LT5zZXRJbnB1dE1ldGhvZEhpbnRzKHZpZXctPmlucHV0TWV0
aG9kSGludHMoKSAmIH5oaW50KTsKK30KKyNlbmRpZgorI2lmbmRlZiBRVF9OT19DVVJTT1IKK1FD
dXJzb3IgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OmN1cnNvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHZpZXctPmN1cnNvcigpOworfQorCit2b2lkIFFXZWJQYWdlV2lkZ2V0Q2xpZW50Ojp1cGRhdGVD
dXJzb3IoY29uc3QgUUN1cnNvciYgY3Vyc29yKQoreworICAgIHZpZXctPnNldEN1cnNvcihjdXJz
b3IpOworfQorI2VuZGlmCisKK1FQYWxldHRlIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwYWxldHRl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlldy0+cGFsZXR0ZSgpOworfQorCitpbnQgUVdlYlBh
Z2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJlcigpIGNvbnN0Cit7CisjaWYgZGVmaW5lZChRX1dT
X1gxMSkKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPngxMUluZm8oKS5zY3Jl
ZW4oKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKK1FXaWRnZXQqIFFXZWJQYWdlV2lk
Z2V0Q2xpZW50Ojpvd25lcldpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpZXc7Cit9CisK
K1FPYmplY3QqIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwbHVnaW5QYXJlbnQoKSBjb25zdAorewor
ICAgIHJldHVybiB2aWV3OworfQorCiAvLyBMb29rdXAgdGFibGUgbWFwcGluZyBRV2ViUGFnZTo6
V2ViQWN0aW9ucyB0byB0aGUgYXNzb2NpYXRlZCBFZGl0b3IgY29tbWFuZHMKIHN0YXRpYyBjb25z
dCBjaGFyKiBlZGl0b3JDb21tYW5kV2ViQWN0aW9uc1tdID0KIHsKQEAgLTE2NzIsNiArMTc2NSw4
IEBACiB7CiAgICAgaWYgKHRoaXMtPnZpZXcoKSAhPSB2aWV3KSB7CiAgICAgICAgIGQtPnZpZXcg
PSB2aWV3OworICAgICAgICBkZWxldGUgZC0+Y2xpZW50OworICAgICAgICBkLT5jbGllbnQgPSB2
aWV3ID8gbmV3IFFXZWJQYWdlV2lkZ2V0Q2xpZW50KHZpZXcpIDogMDsKICAgICAgICAgc2V0Vmll
d3BvcnRTaXplKHZpZXcgPyB2aWV3LT5zaXplKCkgOiBRU2l6ZSgwLCAwKSk7CiAgICAgfQogfQpJ
bmRleDogV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDUwNDE2KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vi
dmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDExICszMiw4IEBACiAjaW5jbHVkZSAicXBy
aW50ZXIuaCIKICNpbmNsdWRlICJxZGlyLmgiCiAjaW5jbHVkZSAicWZpbGUuaCIKLSNpZiBkZWZp
bmVkKFFfV1NfWDExKQotI2luY2x1ZGUgPFFYMTFJbmZvPgotI2VuZGlmCiAKLWNsYXNzIFFXZWJW
aWV3UHJpdmF0ZSA6IHB1YmxpYyBRV2ViUGFnZUNsaWVudCB7CitjbGFzcyBRV2ViVmlld1ByaXZh
dGUgewogcHVibGljOgogICAgIFFXZWJWaWV3UHJpdmF0ZShRV2ViVmlldyAqdmlldykKICAgICAg
ICAgOiB2aWV3KHZpZXcpCkBAIC00NiwyNCArNDMsNiBAQAogICAgICAgICBRX0FTU0VSVCh2aWV3
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGludCBkeCwgaW50IGR5LCBjb25z
dCBRUmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29uc3QgUVJlY3QmIGRpcnR5UmVj
dCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kRW5hYmxlZChib29sIGVuYWJsZSk7
Ci0jaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAotICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1l
dGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBib29sIGVuYWJsZSk7Ci0jZW5kaWYK
LQotI2lmbmRlZiBRVF9OT19DVVJTT1IKLSAgICB2aXJ0dWFsIFFDdXJzb3IgY3Vyc29yKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1cnNvcihjb25zdCBRQ3Vyc29yJiBjdXJzb3Ip
OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIFFQYWxldHRlIHBhbGV0dGUoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFFXaWRnZXQqIG93
bmVyV2lkZ2V0KCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVudCgp
IGNvbnN0OwotCiAgICAgdm9pZCBfcV9wYWdlRGVzdHJveWVkKCk7CiAKICAgICBRV2ViVmlldyAq
dmlldzsKQEAgLTcyLDY2ICs1MSw2IEBACiAgICAgUVBhaW50ZXI6OlJlbmRlckhpbnRzIHJlbmRl
ckhpbnRzOwogfTsKIAotdm9pZCBRV2ViVmlld1ByaXZhdGU6OnNjcm9sbChpbnQgZHgsIGludCBk
eSwgY29uc3QgUVJlY3QmIHJlY3RUb1Njcm9sbCkKLXsKLSAgICB2aWV3LT5zY3JvbGwocXJlYWwo
ZHgpLCBxcmVhbChkeSksIHJlY3RUb1Njcm9sbCk7Ci19Ci0KLXZvaWQgUVdlYlZpZXdQcml2YXRl
Ojp1cGRhdGUoY29uc3QgUVJlY3QgJiBkaXJ0eVJlY3QpCi17Ci0gICAgdmlldy0+dXBkYXRlKGRp
cnR5UmVjdCk7Ci19Ci0KLXZvaWQgUVdlYlZpZXdQcml2YXRlOjpzZXRJbnB1dE1ldGhvZEVuYWJs
ZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgdmlldy0+c2V0QXR0cmlidXRlKFF0OjpXQV9JbnB1dE1l
dGhvZEVuYWJsZWQsIGVuYWJsZSk7Ci19Ci0jaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAotdm9p
ZCBRV2ViVmlld1ByaXZhdGU6OnNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRNZXRob2RIaW50
IGhpbnQsIGJvb2wgZW5hYmxlKQotewotICAgIGlmIChlbmFibGUpCi0gICAgICAgIHZpZXctPnNl
dElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpIHwgaGludCk7Ci0gICAg
ZWxzZQotICAgICAgICB2aWV3LT5zZXRJbnB1dE1ldGhvZEhpbnRzKHZpZXctPmlucHV0TWV0aG9k
SGludHMoKSAmIH5oaW50KTsKLX0KLSNlbmRpZgotI2lmbmRlZiBRVF9OT19DVVJTT1IKLVFDdXJz
b3IgUVdlYlZpZXdQcml2YXRlOjpjdXJzb3IoKSBjb25zdAotewotICAgIHJldHVybiB2aWV3LT5j
dXJzb3IoKTsKLX0KLQotdm9pZCBRV2ViVmlld1ByaXZhdGU6OnVwZGF0ZUN1cnNvcihjb25zdCBR
Q3Vyc29yJiBjdXJzb3IpCi17Ci0gICAgdmlldy0+c2V0Q3Vyc29yKGN1cnNvcik7Ci19Ci0jZW5k
aWYKLQotUVBhbGV0dGUgUVdlYlZpZXdQcml2YXRlOjpwYWxldHRlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gdmlldy0+cGFsZXR0ZSgpOwotfQotCi1pbnQgUVdlYlZpZXdQcml2YXRlOjpzY3JlZW5O
dW1iZXIoKSBjb25zdAotewotI2lmIGRlZmluZWQoUV9XU19YMTEpCi0gICAgaWYgKHZpZXcpCi0g
ICAgICAgIHJldHVybiB2aWV3LT54MTFJbmZvKCkuc2NyZWVuKCk7Ci0jZW5kaWYKLQotICAgIHJl
dHVybiAwOwotfQotCi1RV2lkZ2V0KiBRV2ViVmlld1ByaXZhdGU6Om93bmVyV2lkZ2V0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdmlldzsKLX0KLQotUU9iamVjdCogUVdlYlZpZXdQcml2YXRlOjpw
bHVnaW5QYXJlbnQoKSBjb25zdAotewotICAgIHJldHVybiB2aWV3OwotfQotCiB2b2lkIFFXZWJW
aWV3UHJpdmF0ZTo6X3FfcGFnZURlc3Ryb3llZCgpCiB7CiAgICAgcGFnZSA9IDA7CkBAIC0yNTEs
NiArMTcwLDcgQEAKICNlbHNlCiAgICAgICAgIGQtPnBhZ2UtPmQtPnZpZXcgPSAwOwogI2VuZGlm
CisgICAgICAgIGRlbGV0ZSBkLT5wYWdlLT5kLT5jbGllbnQ7CiAgICAgICAgIGQtPnBhZ2UtPmQt
PmNsaWVudCA9IDA7CiAgICAgfQogCkBAIC0yOTYsNyArMjE2LDYgQEAKICAgICBkLT5wYWdlID0g
cGFnZTsKICAgICBpZiAoZC0+cGFnZSkgewogICAgICAgICBkLT5wYWdlLT5zZXRWaWV3KHRoaXMp
OwotICAgICAgICBkLT5wYWdlLT5kLT5jbGllbnQgPSBkOyAvLyBzZXQgdGhlIHBhZ2UgY2xpZW50
CiAgICAgICAgIGQtPnBhZ2UtPnNldFBhbGV0dGUocGFsZXR0ZSgpKTsKICAgICAgICAgLy8gIyMj
IyBjb25uZWN0IHNpZ25hbHMKICAgICAgICAgUVdlYkZyYW1lICptYWluRnJhbWUgPSBkLT5wYWdl
LT5tYWluRnJhbWUoKTsKQEAgLTcyOCw3ICs2NDcsNyBAQAogICAgICAgICAgICAgLy8gV2ViQ29y
ZS4KICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgYSBRRXZlbnQ6OkN1cnNvclVuc2V0IG9yIHNp
bWlsYXIgdG8gUXQuCiAgICAgICAgICAgICBpZiAoY3Vyc29yKCkuc2hhcGUoKSA9PSBRdDo6QXJy
b3dDdXJzb3IpCi0gICAgICAgICAgICAgICAgZC0+cmVzZXRDdXJzb3IoKTsKKyAgICAgICAgICAg
ICAgICBkLT5wYWdlLT5kLT5jbGllbnQtPnJlc2V0Q3Vyc29yKCk7CiAjZW5kaWYKICNlbmRpZgog
ICAgICAgICB9IGVsc2UgaWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6OkxlYXZlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42374</attachid>
            <date>2009-11-03 06:36:24 -0800</date>
            <delta_ts>2009-11-03 08:04:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>30979.patch</filename>
            <type>text/plain</type>
            <size>7837</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNTA0MjQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMTEtMDIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gUkVHUkVTU0lPTjogQWxsb3cgYXBwbGljYXRpb25zIHRvIHVzZSB0aGVpciBv
d24gUVdpZGdldCBieXBhc3NpbmcgUVdlYlZpZXcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDk3OQorCisgICAgICAgIERlY291cGxlIFFXZWJWaWV3
UHJpdmF0ZSBmcm9tIFFXZWJQYWdlQ2xpZW50LCBhbmQgYXV0b21hdGljYWxseSBjcmVhdGUKKyAg
ICAgICAgUVdlYlBhZ2VXaWRnZXRDbGllbnQgd2hlbmV2ZXIgdGhlIHZpZXcgaXMgUVdpZGdldCBi
YXNlZC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVdp
ZGdldENsaWVudDo6UVdlYlBhZ2VXaWRnZXRDbGllbnQpOgorICAgICAgICAoUVdlYlBhZ2VXaWRn
ZXRDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6dXBkYXRl
KToKKyAgICAgICAgKFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpzZXRJbnB1dE1ldGhvZEVuYWJsZWQp
OgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludCk6Cisg
ICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6Y3Vyc29yKToKKyAgICAgICAgKFFXZWJQYWdl
V2lkZ2V0Q2xpZW50Ojp1cGRhdGVDdXJzb3IpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGll
bnQ6OnBhbGV0dGUpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJl
cik6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6b3duZXJXaWRnZXQpOgorICAgICAg
ICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnBsdWdpblBhcmVudCk6CisgICAgICAgIChRV2ViUGFn
ZTo6c2V0Vmlldyk6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFXZWJW
aWV3Ojp+UVdlYlZpZXcpOgorICAgICAgICAoUVdlYlZpZXc6OnNldFBhZ2UpOgorICAgICAgICAo
UVdlYlZpZXc6OmV2ZW50KToKKwogMjAwOS0xMS0wMiAgSmVkcnplaiBOb3dhY2tpICA8amVkcnpl
ai5ub3dhY2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJ
bmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDUwNDE2KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJDYWNo
ZS5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAKICNpbmNsdWRlIDxR
QXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUJhc2ljVGltZXI+CkBAIC0xMDcsNiArMTA4LDkgQEAK
ICNlbHNlCiAjaW5jbHVkZSAicXdlYm5ldHdvcmtpbnRlcmZhY2UuaCIKICNlbmRpZgorI2lmIGRl
ZmluZWQoUV9XU19YMTEpCisjaW5jbHVkZSA8UVgxMUluZm8+CisjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEzOCw2ICsxNDIsOTUgQEAKICAgICByZXR1cm4gcGFnZS0+
aGFuZGxlKCktPnBhZ2UtPmdyb3VwTmFtZSgpOwogfQogCitjbGFzcyBRV2ViUGFnZVdpZGdldENs
aWVudCA6IHB1YmxpYyBRV2ViUGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUVdlYlBhZ2VXaWRn
ZXRDbGllbnQoUVdpZGdldCogdmlldykKKyAgICAgICAgOiB2aWV3KHZpZXcpCisgICAgeworICAg
ICAgICBRX0FTU0VSVCh2aWV3KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGlu
dCBkeCwgaW50IGR5LCBjb25zdCBRUmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29u
c3QgUVJlY3QmIGRpcnR5UmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kRW5h
YmxlZChib29sIGVuYWJsZSk7CisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAorICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBib29s
IGVuYWJsZSk7CisjZW5kaWYKKworI2lmbmRlZiBRVF9OT19DVVJTT1IKKyAgICB2aXJ0dWFsIFFD
dXJzb3IgY3Vyc29yKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1cnNvcihjb25z
dCBRQ3Vyc29yJiBjdXJzb3IpOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIFFQYWxldHRlIHBhbGV0
dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIHBsdWdpblBhcmVudCgpIGNvbnN0OworCisgICAgUVdpZGdldCogdmlldzsKK307CisKK3Zv
aWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcm9sbChpbnQgZHgsIGludCBkeSwgY29uc3QgUVJl
Y3QmIHJlY3RUb1Njcm9sbCkKK3sKKyAgICB2aWV3LT5zY3JvbGwocXJlYWwoZHgpLCBxcmVhbChk
eSksIHJlY3RUb1Njcm9sbCk7Cit9CisKK3ZvaWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnVwZGF0
ZShjb25zdCBRUmVjdCAmIGRpcnR5UmVjdCkKK3sKKyAgICB2aWV3LT51cGRhdGUoZGlydHlSZWN0
KTsKK30KKwordm9pZCBRV2ViUGFnZVdpZGdldENsaWVudDo6c2V0SW5wdXRNZXRob2RFbmFibGVk
KGJvb2wgZW5hYmxlKQoreworICAgIHZpZXctPnNldEF0dHJpYnV0ZShRdDo6V0FfSW5wdXRNZXRo
b2RFbmFibGVkLCBlbmFibGUpOworfQorI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKK3ZvaWQg
UVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRNZXRob2RI
aW50IGhpbnQsIGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpCisgICAgICAgIHZpZXct
PnNldElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpIHwgaGludCk7Cisg
ICAgZWxzZQorICAgICAgICB2aWV3LT5zZXRJbnB1dE1ldGhvZEhpbnRzKHZpZXctPmlucHV0TWV0
aG9kSGludHMoKSAmIH5oaW50KTsKK30KKyNlbmRpZgorI2lmbmRlZiBRVF9OT19DVVJTT1IKK1FD
dXJzb3IgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OmN1cnNvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHZpZXctPmN1cnNvcigpOworfQorCit2b2lkIFFXZWJQYWdlV2lkZ2V0Q2xpZW50Ojp1cGRhdGVD
dXJzb3IoY29uc3QgUUN1cnNvciYgY3Vyc29yKQoreworICAgIHZpZXctPnNldEN1cnNvcihjdXJz
b3IpOworfQorI2VuZGlmCisKK1FQYWxldHRlIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwYWxldHRl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlldy0+cGFsZXR0ZSgpOworfQorCitpbnQgUVdlYlBh
Z2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJlcigpIGNvbnN0Cit7CisjaWYgZGVmaW5lZChRX1dT
X1gxMSkKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPngxMUluZm8oKS5zY3Jl
ZW4oKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKK1FXaWRnZXQqIFFXZWJQYWdlV2lk
Z2V0Q2xpZW50Ojpvd25lcldpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpZXc7Cit9CisK
K1FPYmplY3QqIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwbHVnaW5QYXJlbnQoKSBjb25zdAorewor
ICAgIHJldHVybiB2aWV3OworfQorCiAvLyBMb29rdXAgdGFibGUgbWFwcGluZyBRV2ViUGFnZTo6
V2ViQWN0aW9ucyB0byB0aGUgYXNzb2NpYXRlZCBFZGl0b3IgY29tbWFuZHMKIHN0YXRpYyBjb25z
dCBjaGFyKiBlZGl0b3JDb21tYW5kV2ViQWN0aW9uc1tdID0KIHsKQEAgLTE2NzIsNiArMTc2NSwx
NSBAQAogewogICAgIGlmICh0aGlzLT52aWV3KCkgIT0gdmlldykgewogICAgICAgICBkLT52aWV3
ID0gdmlldzsKKyAgICAgICAgaWYgKCF2aWV3KSB7CisgICAgICAgICAgICBkZWxldGUgZC0+Y2xp
ZW50OworICAgICAgICAgICAgZC0+Y2xpZW50ID0gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGlmICghZC0+Y2xpZW50KSAKKyAgICAgICAgICAgICAgICBkLT5jbGllbnQgPSBu
ZXcgUVdlYlBhZ2VXaWRnZXRDbGllbnQodmlldyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8UVdlYlBhZ2VXaWRnZXRDbGllbnQqPihkLT5jbGllbnQpLT52
aWV3ID0gdmlldzsKKyAgICAgICAgfQogICAgICAgICBzZXRWaWV3cG9ydFNpemUodmlldyA/IHZp
ZXctPnNpemUoKSA6IFFTaXplKDAsIDApKTsKICAgICB9CiB9CkluZGV4OiBXZWJLaXQvcXQvQXBp
L3F3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAko
cmV2aXNpb24gNTA0MTYpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsMTEgKzMyLDggQEAKICNpbmNsdWRlICJxcHJpbnRlci5oIgogI2luY2x1ZGUg
InFkaXIuaCIKICNpbmNsdWRlICJxZmlsZS5oIgotI2lmIGRlZmluZWQoUV9XU19YMTEpCi0jaW5j
bHVkZSA8UVgxMUluZm8+Ci0jZW5kaWYKIAotY2xhc3MgUVdlYlZpZXdQcml2YXRlIDogcHVibGlj
IFFXZWJQYWdlQ2xpZW50IHsKK2NsYXNzIFFXZWJWaWV3UHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAg
UVdlYlZpZXdQcml2YXRlKFFXZWJWaWV3ICp2aWV3KQogICAgICAgICA6IHZpZXcodmlldykKQEAg
LTQ2LDI0ICs0Myw2IEBACiAgICAgICAgIFFfQVNTRVJUKHZpZXcpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGwoaW50IGR4LCBpbnQgZHksIGNvbnN0IFFSZWN0Jik7Ci0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZShjb25zdCBRUmVjdCYgZGlydHlSZWN0KTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RFbmFibGVkKGJvb2wgZW5hYmxlKTsKLSNpZiBRVF9WRVJTSU9OID49
IDB4MDQwNjAwCi0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRN
ZXRob2RIaW50IGhpbnQsIGJvb2wgZW5hYmxlKTsKLSNlbmRpZgotCi0jaWZuZGVmIFFUX05PX0NV
UlNPUgotICAgIHZpcnR1YWwgUUN1cnNvciBjdXJzb3IoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIGN1cnNvcik7Ci0jZW5kaWYKLQotICAgIHZp
cnR1YWwgUVBhbGV0dGUgcGFsZXR0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgaW50IHNjcmVlbk51
bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdDsK
LQotICAgIHZpcnR1YWwgUU9iamVjdCogcGx1Z2luUGFyZW50KCkgY29uc3Q7Ci0KICAgICB2b2lk
IF9xX3BhZ2VEZXN0cm95ZWQoKTsKIAogICAgIFFXZWJWaWV3ICp2aWV3OwpAQCAtNzIsNjYgKzUx
LDYgQEAKICAgICBRUGFpbnRlcjo6UmVuZGVySGludHMgcmVuZGVySGludHM7CiB9OwogCi12b2lk
IFFXZWJWaWV3UHJpdmF0ZTo6c2Nyb2xsKGludCBkeCwgaW50IGR5LCBjb25zdCBRUmVjdCYgcmVj
dFRvU2Nyb2xsKQotewotICAgIHZpZXctPnNjcm9sbChxcmVhbChkeCksIHFyZWFsKGR5KSwgcmVj
dFRvU2Nyb2xsKTsKLX0KLQotdm9pZCBRV2ViVmlld1ByaXZhdGU6OnVwZGF0ZShjb25zdCBRUmVj
dCAmIGRpcnR5UmVjdCkKLXsKLSAgICB2aWV3LT51cGRhdGUoZGlydHlSZWN0KTsKLX0KLQotdm9p
ZCBRV2ViVmlld1ByaXZhdGU6OnNldElucHV0TWV0aG9kRW5hYmxlZChib29sIGVuYWJsZSkKLXsK
LSAgICB2aWV3LT5zZXRBdHRyaWJ1dGUoUXQ6OldBX0lucHV0TWV0aG9kRW5hYmxlZCwgZW5hYmxl
KTsKLX0KLSNpZiBRVF9WRVJTSU9OID49IDB4MDQwNjAwCi12b2lkIFFXZWJWaWV3UHJpdmF0ZTo6
c2V0SW5wdXRNZXRob2RIaW50KFF0OjpJbnB1dE1ldGhvZEhpbnQgaGludCwgYm9vbCBlbmFibGUp
Ci17Ci0gICAgaWYgKGVuYWJsZSkKLSAgICAgICAgdmlldy0+c2V0SW5wdXRNZXRob2RIaW50cyh2
aWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgfCBoaW50KTsKLSAgICBlbHNlCi0gICAgICAgIHZpZXct
PnNldElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgfmhpbnQpOwot
fQotI2VuZGlmCi0jaWZuZGVmIFFUX05PX0NVUlNPUgotUUN1cnNvciBRV2ViVmlld1ByaXZhdGU6
OmN1cnNvcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHZpZXctPmN1cnNvcigpOwotfQotCi12b2lk
IFFXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIGN1cnNvcikKLXsK
LSAgICB2aWV3LT5zZXRDdXJzb3IoY3Vyc29yKTsKLX0KLSNlbmRpZgotCi1RUGFsZXR0ZSBRV2Vi
Vmlld1ByaXZhdGU6OnBhbGV0dGUoKSBjb25zdAotewotICAgIHJldHVybiB2aWV3LT5wYWxldHRl
KCk7Ci19Ci0KLWludCBRV2ViVmlld1ByaXZhdGU6OnNjcmVlbk51bWJlcigpIGNvbnN0Ci17Ci0j
aWYgZGVmaW5lZChRX1dTX1gxMSkKLSAgICBpZiAodmlldykKLSAgICAgICAgcmV0dXJuIHZpZXct
PngxMUluZm8oKS5zY3JlZW4oKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLVFXaWRn
ZXQqIFFXZWJWaWV3UHJpdmF0ZTo6b3duZXJXaWRnZXQoKSBjb25zdAotewotICAgIHJldHVybiB2
aWV3OwotfQotCi1RT2JqZWN0KiBRV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KIHZvaWQgUVdlYlZpZXdQcml2YXRlOjpfcV9wYWdl
RGVzdHJveWVkKCkKIHsKICAgICBwYWdlID0gMDsKQEAgLTI1MSw2ICsxNzAsNyBAQAogI2Vsc2UK
ICAgICAgICAgZC0+cGFnZS0+ZC0+dmlldyA9IDA7CiAjZW5kaWYKKyAgICAgICAgZGVsZXRlIGQt
PnBhZ2UtPmQtPmNsaWVudDsKICAgICAgICAgZC0+cGFnZS0+ZC0+Y2xpZW50ID0gMDsKICAgICB9
CiAKQEAgLTI5Niw3ICsyMTYsNiBAQAogICAgIGQtPnBhZ2UgPSBwYWdlOwogICAgIGlmIChkLT5w
YWdlKSB7CiAgICAgICAgIGQtPnBhZ2UtPnNldFZpZXcodGhpcyk7Ci0gICAgICAgIGQtPnBhZ2Ut
PmQtPmNsaWVudCA9IGQ7IC8vIHNldCB0aGUgcGFnZSBjbGllbnQKICAgICAgICAgZC0+cGFnZS0+
c2V0UGFsZXR0ZShwYWxldHRlKCkpOwogICAgICAgICAvLyAjIyMjIGNvbm5lY3Qgc2lnbmFscwog
ICAgICAgICBRV2ViRnJhbWUgKm1haW5GcmFtZSA9IGQtPnBhZ2UtPm1haW5GcmFtZSgpOwpAQCAt
NzI4LDcgKzY0Nyw3IEBACiAgICAgICAgICAgICAvLyBXZWJDb3JlLgogICAgICAgICAgICAgLy8g
RklYTUU6IEFkZCBhIFFFdmVudDo6Q3Vyc29yVW5zZXQgb3Igc2ltaWxhciB0byBRdC4KICAgICAg
ICAgICAgIGlmIChjdXJzb3IoKS5zaGFwZSgpID09IFF0OjpBcnJvd0N1cnNvcikKLSAgICAgICAg
ICAgICAgICBkLT5yZXNldEN1cnNvcigpOworICAgICAgICAgICAgICAgIGQtPnBhZ2UtPmQtPmNs
aWVudC0+cmVzZXRDdXJzb3IoKTsKICNlbmRpZgogI2VuZGlmCiAgICAgICAgIH0gZWxzZSBpZiAo
ZS0+dHlwZSgpID09IFFFdmVudDo6TGVhdmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42384</attachid>
            <date>2009-11-03 08:04:38 -0800</date>
            <delta_ts>2009-11-04 00:50:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>30979.patch</filename>
            <type>text/plain</type>
            <size>7834</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNTA0MjQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMTEtMDIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gUkVHUkVTU0lPTjogQWxsb3cgYXBwbGljYXRpb25zIHRvIHVzZSB0aGVpciBv
d24gUVdpZGdldCBieXBhc3NpbmcgUVdlYlZpZXcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDk3OQorCisgICAgICAgIERlY291cGxlIFFXZWJWaWV3
UHJpdmF0ZSBmcm9tIFFXZWJQYWdlQ2xpZW50LCBhbmQgYXV0b21hdGljYWxseSBjcmVhdGUKKyAg
ICAgICAgUVdlYlBhZ2VXaWRnZXRDbGllbnQgd2hlbmV2ZXIgdGhlIHZpZXcgaXMgUVdpZGdldCBi
YXNlZC4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVdp
ZGdldENsaWVudDo6UVdlYlBhZ2VXaWRnZXRDbGllbnQpOgorICAgICAgICAoUVdlYlBhZ2VXaWRn
ZXRDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6dXBkYXRl
KToKKyAgICAgICAgKFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpzZXRJbnB1dE1ldGhvZEVuYWJsZWQp
OgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludCk6Cisg
ICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6Y3Vyc29yKToKKyAgICAgICAgKFFXZWJQYWdl
V2lkZ2V0Q2xpZW50Ojp1cGRhdGVDdXJzb3IpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGll
bnQ6OnBhbGV0dGUpOgorICAgICAgICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJl
cik6CisgICAgICAgIChRV2ViUGFnZVdpZGdldENsaWVudDo6b3duZXJXaWRnZXQpOgorICAgICAg
ICAoUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnBsdWdpblBhcmVudCk6CisgICAgICAgIChRV2ViUGFn
ZTo6c2V0Vmlldyk6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFXZWJW
aWV3Ojp+UVdlYlZpZXcpOgorICAgICAgICAoUVdlYlZpZXc6OnNldFBhZ2UpOgorICAgICAgICAo
UVdlYlZpZXc6OmV2ZW50KToKKwogMjAwOS0xMS0wMiAgSmVkcnplaiBOb3dhY2tpICA8amVkcnpl
ai5ub3dhY2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJ
bmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDUwNDE2KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJDYWNo
ZS5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50LmgiCiAKICNpbmNsdWRlIDxR
QXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUJhc2ljVGltZXI+CkBAIC0xMDcsNiArMTA4LDkgQEAK
ICNlbHNlCiAjaW5jbHVkZSAicXdlYm5ldHdvcmtpbnRlcmZhY2UuaCIKICNlbmRpZgorI2lmIGRl
ZmluZWQoUV9XU19YMTEpCisjaW5jbHVkZSA8UVgxMUluZm8+CisjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEzOCw2ICsxNDIsOTUgQEAKICAgICByZXR1cm4gcGFnZS0+
aGFuZGxlKCktPnBhZ2UtPmdyb3VwTmFtZSgpOwogfQogCitjbGFzcyBRV2ViUGFnZVdpZGdldENs
aWVudCA6IHB1YmxpYyBRV2ViUGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUVdlYlBhZ2VXaWRn
ZXRDbGllbnQoUVdpZGdldCogdmlldykKKyAgICAgICAgOiB2aWV3KHZpZXcpCisgICAgeworICAg
ICAgICBRX0FTU0VSVCh2aWV3KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGlu
dCBkeCwgaW50IGR5LCBjb25zdCBRUmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoY29u
c3QgUVJlY3QmIGRpcnR5UmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kRW5h
YmxlZChib29sIGVuYWJsZSk7CisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAorICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZEhpbnQoUXQ6OklucHV0TWV0aG9kSGludCBoaW50LCBib29s
IGVuYWJsZSk7CisjZW5kaWYKKworI2lmbmRlZiBRVF9OT19DVVJTT1IKKyAgICB2aXJ0dWFsIFFD
dXJzb3IgY3Vyc29yKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1cnNvcihjb25z
dCBRQ3Vyc29yJiBjdXJzb3IpOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIFFQYWxldHRlIHBhbGV0
dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIFFPYmpl
Y3QqIHBsdWdpblBhcmVudCgpIGNvbnN0OworCisgICAgUVdpZGdldCogdmlldzsKK307CisKK3Zv
aWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNjcm9sbChpbnQgZHgsIGludCBkeSwgY29uc3QgUVJl
Y3QmIHJlY3RUb1Njcm9sbCkKK3sKKyAgICB2aWV3LT5zY3JvbGwocXJlYWwoZHgpLCBxcmVhbChk
eSksIHJlY3RUb1Njcm9sbCk7Cit9CisKK3ZvaWQgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnVwZGF0
ZShjb25zdCBRUmVjdCAmIGRpcnR5UmVjdCkKK3sKKyAgICB2aWV3LT51cGRhdGUoZGlydHlSZWN0
KTsKK30KKwordm9pZCBRV2ViUGFnZVdpZGdldENsaWVudDo6c2V0SW5wdXRNZXRob2RFbmFibGVk
KGJvb2wgZW5hYmxlKQoreworICAgIHZpZXctPnNldEF0dHJpYnV0ZShRdDo6V0FfSW5wdXRNZXRo
b2RFbmFibGVkLCBlbmFibGUpOworfQorI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKK3ZvaWQg
UVdlYlBhZ2VXaWRnZXRDbGllbnQ6OnNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRNZXRob2RI
aW50IGhpbnQsIGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpCisgICAgICAgIHZpZXct
PnNldElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpIHwgaGludCk7Cisg
ICAgZWxzZQorICAgICAgICB2aWV3LT5zZXRJbnB1dE1ldGhvZEhpbnRzKHZpZXctPmlucHV0TWV0
aG9kSGludHMoKSAmIH5oaW50KTsKK30KKyNlbmRpZgorI2lmbmRlZiBRVF9OT19DVVJTT1IKK1FD
dXJzb3IgUVdlYlBhZ2VXaWRnZXRDbGllbnQ6OmN1cnNvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHZpZXctPmN1cnNvcigpOworfQorCit2b2lkIFFXZWJQYWdlV2lkZ2V0Q2xpZW50Ojp1cGRhdGVD
dXJzb3IoY29uc3QgUUN1cnNvciYgY3Vyc29yKQoreworICAgIHZpZXctPnNldEN1cnNvcihjdXJz
b3IpOworfQorI2VuZGlmCisKK1FQYWxldHRlIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwYWxldHRl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlldy0+cGFsZXR0ZSgpOworfQorCitpbnQgUVdlYlBh
Z2VXaWRnZXRDbGllbnQ6OnNjcmVlbk51bWJlcigpIGNvbnN0Cit7CisjaWYgZGVmaW5lZChRX1dT
X1gxMSkKKyAgICBpZiAodmlldykKKyAgICAgICAgcmV0dXJuIHZpZXctPngxMUluZm8oKS5zY3Jl
ZW4oKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKK1FXaWRnZXQqIFFXZWJQYWdlV2lk
Z2V0Q2xpZW50Ojpvd25lcldpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpZXc7Cit9CisK
K1FPYmplY3QqIFFXZWJQYWdlV2lkZ2V0Q2xpZW50OjpwbHVnaW5QYXJlbnQoKSBjb25zdAorewor
ICAgIHJldHVybiB2aWV3OworfQorCiAvLyBMb29rdXAgdGFibGUgbWFwcGluZyBRV2ViUGFnZTo6
V2ViQWN0aW9ucyB0byB0aGUgYXNzb2NpYXRlZCBFZGl0b3IgY29tbWFuZHMKIHN0YXRpYyBjb25z
dCBjaGFyKiBlZGl0b3JDb21tYW5kV2ViQWN0aW9uc1tdID0KIHsKQEAgLTE2NzIsNiArMTc2NSwx
NSBAQAogewogICAgIGlmICh0aGlzLT52aWV3KCkgIT0gdmlldykgewogICAgICAgICBkLT52aWV3
ID0gdmlldzsKKyAgICAgICAgaWYgKCF2aWV3KSB7CisgICAgICAgICAgICBkZWxldGUgZC0+Y2xp
ZW50OworICAgICAgICAgICAgZC0+Y2xpZW50ID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGlmICghZC0+Y2xpZW50KSAKKyAgICAgICAgICAgICAgICBkLT5jbGllbnQgPSBuZXcg
UVdlYlBhZ2VXaWRnZXRDbGllbnQodmlldyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8UVdlYlBhZ2VXaWRnZXRDbGllbnQqPihkLT5jbGllbnQpLT52aWV3
ID0gdmlldzsKKyAgICAgICAgfQogICAgICAgICBzZXRWaWV3cG9ydFNpemUodmlldyA/IHZpZXct
PnNpemUoKSA6IFFTaXplKDAsIDApKTsKICAgICB9CiB9CkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAkocmV2
aXNpb24gNTA0MTYpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsMTEgKzMyLDggQEAKICNpbmNsdWRlICJxcHJpbnRlci5oIgogI2luY2x1ZGUgInFk
aXIuaCIKICNpbmNsdWRlICJxZmlsZS5oIgotI2lmIGRlZmluZWQoUV9XU19YMTEpCi0jaW5jbHVk
ZSA8UVgxMUluZm8+Ci0jZW5kaWYKIAotY2xhc3MgUVdlYlZpZXdQcml2YXRlIDogcHVibGljIFFX
ZWJQYWdlQ2xpZW50IHsKK2NsYXNzIFFXZWJWaWV3UHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgUVdl
YlZpZXdQcml2YXRlKFFXZWJWaWV3ICp2aWV3KQogICAgICAgICA6IHZpZXcodmlldykKQEAgLTQ2
LDI0ICs0Myw2IEBACiAgICAgICAgIFFfQVNTRVJUKHZpZXcpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoaW50IGR4LCBpbnQgZHksIGNvbnN0IFFSZWN0Jik7Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZShjb25zdCBRUmVjdCYgZGlydHlSZWN0KTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RFbmFibGVkKGJvb2wgZW5hYmxlKTsKLSNpZiBRVF9WRVJTSU9OID49IDB4
MDQwNjAwCi0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kSGludChRdDo6SW5wdXRNZXRo
b2RIaW50IGhpbnQsIGJvb2wgZW5hYmxlKTsKLSNlbmRpZgotCi0jaWZuZGVmIFFUX05PX0NVUlNP
UgotICAgIHZpcnR1YWwgUUN1cnNvciBjdXJzb3IoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIGN1cnNvcik7Ci0jZW5kaWYKLQotICAgIHZpcnR1
YWwgUVBhbGV0dGUgcGFsZXR0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgaW50IHNjcmVlbk51bWJl
cigpIGNvbnN0OwotICAgIHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdDsKLQot
ICAgIHZpcnR1YWwgUU9iamVjdCogcGx1Z2luUGFyZW50KCkgY29uc3Q7Ci0KICAgICB2b2lkIF9x
X3BhZ2VEZXN0cm95ZWQoKTsKIAogICAgIFFXZWJWaWV3ICp2aWV3OwpAQCAtNzIsNjYgKzUxLDYg
QEAKICAgICBRUGFpbnRlcjo6UmVuZGVySGludHMgcmVuZGVySGludHM7CiB9OwogCi12b2lkIFFX
ZWJWaWV3UHJpdmF0ZTo6c2Nyb2xsKGludCBkeCwgaW50IGR5LCBjb25zdCBRUmVjdCYgcmVjdFRv
U2Nyb2xsKQotewotICAgIHZpZXctPnNjcm9sbChxcmVhbChkeCksIHFyZWFsKGR5KSwgcmVjdFRv
U2Nyb2xsKTsKLX0KLQotdm9pZCBRV2ViVmlld1ByaXZhdGU6OnVwZGF0ZShjb25zdCBRUmVjdCAm
IGRpcnR5UmVjdCkKLXsKLSAgICB2aWV3LT51cGRhdGUoZGlydHlSZWN0KTsKLX0KLQotdm9pZCBR
V2ViVmlld1ByaXZhdGU6OnNldElucHV0TWV0aG9kRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAg
ICB2aWV3LT5zZXRBdHRyaWJ1dGUoUXQ6OldBX0lucHV0TWV0aG9kRW5hYmxlZCwgZW5hYmxlKTsK
LX0KLSNpZiBRVF9WRVJTSU9OID49IDB4MDQwNjAwCi12b2lkIFFXZWJWaWV3UHJpdmF0ZTo6c2V0
SW5wdXRNZXRob2RIaW50KFF0OjpJbnB1dE1ldGhvZEhpbnQgaGludCwgYm9vbCBlbmFibGUpCi17
Ci0gICAgaWYgKGVuYWJsZSkKLSAgICAgICAgdmlldy0+c2V0SW5wdXRNZXRob2RIaW50cyh2aWV3
LT5pbnB1dE1ldGhvZEhpbnRzKCkgfCBoaW50KTsKLSAgICBlbHNlCi0gICAgICAgIHZpZXctPnNl
dElucHV0TWV0aG9kSGludHModmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgfmhpbnQpOwotfQot
I2VuZGlmCi0jaWZuZGVmIFFUX05PX0NVUlNPUgotUUN1cnNvciBRV2ViVmlld1ByaXZhdGU6OmN1
cnNvcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHZpZXctPmN1cnNvcigpOwotfQotCi12b2lkIFFX
ZWJWaWV3UHJpdmF0ZTo6dXBkYXRlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIGN1cnNvcikKLXsKLSAg
ICB2aWV3LT5zZXRDdXJzb3IoY3Vyc29yKTsKLX0KLSNlbmRpZgotCi1RUGFsZXR0ZSBRV2ViVmll
d1ByaXZhdGU6OnBhbGV0dGUoKSBjb25zdAotewotICAgIHJldHVybiB2aWV3LT5wYWxldHRlKCk7
Ci19Ci0KLWludCBRV2ViVmlld1ByaXZhdGU6OnNjcmVlbk51bWJlcigpIGNvbnN0Ci17Ci0jaWYg
ZGVmaW5lZChRX1dTX1gxMSkKLSAgICBpZiAodmlldykKLSAgICAgICAgcmV0dXJuIHZpZXctPngx
MUluZm8oKS5zY3JlZW4oKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLVFXaWRnZXQq
IFFXZWJWaWV3UHJpdmF0ZTo6b3duZXJXaWRnZXQoKSBjb25zdAotewotICAgIHJldHVybiB2aWV3
OwotfQotCi1RT2JqZWN0KiBRV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KIHZvaWQgUVdlYlZpZXdQcml2YXRlOjpfcV9wYWdlRGVz
dHJveWVkKCkKIHsKICAgICBwYWdlID0gMDsKQEAgLTI1MSw2ICsxNzAsNyBAQAogI2Vsc2UKICAg
ICAgICAgZC0+cGFnZS0+ZC0+dmlldyA9IDA7CiAjZW5kaWYKKyAgICAgICAgZGVsZXRlIGQtPnBh
Z2UtPmQtPmNsaWVudDsKICAgICAgICAgZC0+cGFnZS0+ZC0+Y2xpZW50ID0gMDsKICAgICB9CiAK
QEAgLTI5Niw3ICsyMTYsNiBAQAogICAgIGQtPnBhZ2UgPSBwYWdlOwogICAgIGlmIChkLT5wYWdl
KSB7CiAgICAgICAgIGQtPnBhZ2UtPnNldFZpZXcodGhpcyk7Ci0gICAgICAgIGQtPnBhZ2UtPmQt
PmNsaWVudCA9IGQ7IC8vIHNldCB0aGUgcGFnZSBjbGllbnQKICAgICAgICAgZC0+cGFnZS0+c2V0
UGFsZXR0ZShwYWxldHRlKCkpOwogICAgICAgICAvLyAjIyMjIGNvbm5lY3Qgc2lnbmFscwogICAg
ICAgICBRV2ViRnJhbWUgKm1haW5GcmFtZSA9IGQtPnBhZ2UtPm1haW5GcmFtZSgpOwpAQCAtNzI4
LDcgKzY0Nyw3IEBACiAgICAgICAgICAgICAvLyBXZWJDb3JlLgogICAgICAgICAgICAgLy8gRklY
TUU6IEFkZCBhIFFFdmVudDo6Q3Vyc29yVW5zZXQgb3Igc2ltaWxhciB0byBRdC4KICAgICAgICAg
ICAgIGlmIChjdXJzb3IoKS5zaGFwZSgpID09IFF0OjpBcnJvd0N1cnNvcikKLSAgICAgICAgICAg
ICAgICBkLT5yZXNldEN1cnNvcigpOworICAgICAgICAgICAgICAgIGQtPnBhZ2UtPmQtPmNsaWVu
dC0+cmVzZXRDdXJzb3IoKTsKICNlbmRpZgogI2VuZGlmCiAgICAgICAgIH0gZWxzZSBpZiAoZS0+
dHlwZSgpID09IFFFdmVudDo6TGVhdmUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>