<?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>38401</bug_id>
          
          <creation_ts>2010-04-30 13:26:16 -0700</creation_ts>
          <short_desc>Make repaint throttling parameters configurable runtime.</short_desc>
          <delta_ts>2010-06-17 01:28:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Viatcheslav Ostapenko">ostap73</assigned_to>
          <cc>darin</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>219597</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-04-30 13:26:16 -0700</bug_when>
    <thetext>Different applications on mobile platforms require different amount of repaint throttling in webkit. Now it is compile time flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219600</commentid>
    <comment_count>1</comment_count>
      <attachid>54823</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-04-30 13:32:08 -0700</bug_when>
    <thetext>Created attachment 54823
Make repaint throttling parameters configurable run time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220448</commentid>
    <comment_count>2</comment_count>
      <attachid>54823</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-05-03 21:02:23 -0700</bug_when>
    <thetext>Comment on attachment 54823
Make repaint throttling parameters configurable run time.

&gt; +void FrameView::setRepaintThrottlingParams(
&gt; +           double deferredRepaintDelayP,
&gt; +           double initialDeferredRepaintDelayDuringLoadingP,
&gt; +           double maxDeferredRepaintDelayDuringLoadingP,
&gt; +           double deferredRepaintDelayIncrementDuringLoadingP

Maybe you should spell out &quot;Param&quot; or &quot;Parameter&quot; instead of just &quot;P&quot;.

&gt; Index: WebKit/qt/Api/qwebsettings.cpp
&gt; ===================================================================
&gt; --- WebKit/qt/Api/qwebsettings.cpp	(revision 58319)
&gt; +++ WebKit/qt/Api/qwebsettings.cpp	(working copy)
&gt; @@ -28,6 +28,7 @@
&gt;  #include &quot;CrossOriginPreflightResultCache.h&quot;
&gt;  #include &quot;Database.h&quot;
&gt;  #include &quot;FontCache.h&quot;
&gt; +#include &quot;FrameView.h&quot;
&gt;  #include &quot;Page.h&quot;
&gt;  #include &quot;PageCache.h&quot;
&gt;  #include &quot;Settings.h&quot;
&gt; @@ -59,6 +60,17 @@ void QWEBKIT_EXPORT qt_networkAccessAllo
&gt;  #endif
&gt;  }
&gt;  
&gt; +void  qt_setRepaintThrottlingParams(
&gt; +            qreal deferredRepaintDelayP,                        // Normal delay
&gt; +            qreal initialDeferredRepaintDelayDuringLoadingP,    // Negative value would mean that first few
&gt; +            qreal maxDeferredRepaintDelayDuringLoadingP,        // The delay grows on each repaint to this
&gt; +            qreal deferredRepaintDelayIncrementDuringLoadingP   // On each repaint the delay increses by th
&gt; +        )
&gt; +{
&gt; +    WebCore::FrameView::setRepaintThrottlingParams(deferredRepaintDelayP, initialDeferredRepaintDelayDuringLoadingP,
&gt; +                            maxDeferredRepaintDelayDuringLoadingP, deferredRepaintDelayIncrementDuringLoadingP);
&gt; +}
&gt; +

We could should use dynamic properties to set these paramaters, without introducing a new symbol. See bug 37023 for an example on how to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222359</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 07:41:53 -0700</bug_when>
    <thetext>We might need to consider this as a candidate for a QWebSetting in QWK2.1, but for now I agree with Laszlo, so r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227491</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-18 14:10:42 -0700</bug_when>
    <thetext>Any progress on this one? It&apos;s blocking the release *nudge* :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227940</commentid>
    <comment_count>5</comment_count>
      <attachid>56510</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-05-19 12:12:31 -0700</bug_when>
    <thetext>Created attachment 56510
Updated patch: Make repaint throttling parameters configurable run time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229745</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-24 08:15:56 -0700</bug_when>
    <thetext>Maybe it makes sense to split up the patch into two. One Qt specific and one for the WebCore change.

Darin, are you OK with the WebCore part?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229749</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-24 08:17:44 -0700</bug_when>
    <thetext>Simon, as this is platform dependent, it might make sense to put this in the platform plugin, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230320</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-25 09:49:29 -0700</bug_when>
    <thetext>My concern is performance. The repaint throttling code is in super-hot parsing code, and changing this from a compile time constant to global variables could have an effect on performance.

Hyatt, what do you think about this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231244</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-05-27 05:39:58 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; My concern is performance. The repaint throttling code is in super-hot parsing code, and changing this from a compile time constant to global variables could have an effect on performance.
&gt; 
&gt; Hyatt, what do you think about this change?

Repaint throttling is not in parsing code. I don&apos;t think there are major performance concerns here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231262</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-05-27 06:13:20 -0700</bug_when>
    <thetext>Looks basically good to me. It would be somewhat better to make the static variables that are no longer constants class members (with s_ prefix). It would be good to add a comment that REPAINT_THROTTLING define now simply controls the default values and should eventually be removed.

Someone else has to comment on Qt API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231698</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-05-28 07:12:46 -0700</bug_when>
    <thetext>I think having both individual settings and _q_RepaintThrottlingPresets are unnecessary duplication in the API. Could you leave just one of these mechanisms and remove the other?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231702</commentid>
    <comment_count>12</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-05-28 07:19:41 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I think having both individual settings and _q_RepaintThrottlingPresets are unnecessary duplication in the API. Could you leave just one of these mechanisms and remove the other?

I know that it is duplicate API, but most of people wouldn&apos;t know, what set of values would work. And in most cases presets would be fine, but some people would like to have their own sets of parameters. Presets are just for convenience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231706</commentid>
    <comment_count>13</comment_count>
      <attachid>56510</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-05-28 07:39:06 -0700</bug_when>
    <thetext>Comment on attachment 56510
Updated patch: Make repaint throttling parameters configurable run time.

Seems generally fine so r=me. Please consider the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231707</commentid>
    <comment_count>14</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-05-28 07:41:35 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 56510 [details])
&gt; Seems generally fine so r=me. Please consider the comments.

I&apos;m making changes right now. Was busy with s60 issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231788</commentid>
    <comment_count>15</comment_count>
      <attachid>57344</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-05-28 10:47:18 -0700</bug_when>
    <thetext>Created attachment 57344
Updated patch by anttik comments: Make repaint throttling parameters configurable run time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231935</commentid>
    <comment_count>16</comment_count>
      <attachid>57344</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-28 14:24:39 -0700</bug_when>
    <thetext>Comment on attachment 57344
Updated patch by anttik comments: Make repaint throttling parameters configurable run time.


&gt; +typedef struct {
&gt; +    const char* name;
&gt; +    double deferredRepaintDelay;
&gt; +    double initialDeferredRepaintDelayDuringLoading;
&gt; +    double maxDeferredRepaintDelayDuringLoading;
&gt; +    double deferredRepaintDelayIncrementDuringLoading;
&gt; +} QRepaintThrottlingPreset;

Thsi doesn&apos;t really seem that private, plus the name is not very Qt&apos;ish.

Simon, should this be part of the platform plugin instead? That way each platform can handle this one place and handle it just like they want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232080</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-29 01:12:53 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 57344 [details])
&gt; 
&gt; &gt; +typedef struct {
&gt; &gt; +    const char* name;
&gt; &gt; +    double deferredRepaintDelay;
&gt; &gt; +    double initialDeferredRepaintDelayDuringLoading;
&gt; &gt; +    double maxDeferredRepaintDelayDuringLoading;
&gt; &gt; +    double deferredRepaintDelayIncrementDuringLoading;
&gt; &gt; +} QRepaintThrottlingPreset;
&gt; 
&gt; Thsi doesn&apos;t really seem that private, plus the name is not very Qt&apos;ish.
&gt; 
&gt; Simon, should this be part of the platform plugin instead? That way each platform can handle this one place and handle it just like they want.

The idea of platform plugins is to reduce link-time dependencies to libraries that conceptually define the operating platform from a UI perspective but are built after QtWebKit in the build systems.

I don&apos;t think browser specific tuned values belong into the platform plugin.

An alternate idea for making these values configurable is to read them using QSettings.

What are the correct values for the platforms and why can&apos;t we define them inside of WebCore? It seems to me that the current defaults are perhaps tuned for desktop setups. If we want mobile - or even maemo or symbian specific - values, then why can&apos;t we simply put them there, next to the other defaults?

From the little I understand about this, I would think that there could be mobile specific values. I cannot think of why the value would be different between say symbian and maemo.

What do other ports like Android uses for these values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232102</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-29 06:47:13 -0700</bug_when>
    <thetext>
&gt; The idea of platform plugins is to reduce link-time dependencies to libraries that conceptually define the operating platform from a UI perspective but are built after QtWebKit in the build systems.
&gt; 
&gt; I don&apos;t think browser specific tuned values belong into the platform plugin.
&gt; 
&gt; An alternate idea for making these values configurable is to read them using QSettings.
&gt; 
&gt; What are the correct values for the platforms and why can&apos;t we define them inside of WebCore? It seems to me that the current defaults are perhaps tuned for desktop setups. If we want mobile - or even maemo or symbian specific - values, then why can&apos;t we simply put them there, next to the other defaults?
&gt; 
&gt; From the little I understand about this, I would think that there could be mobile specific values. I cannot think of why the value would be different between say symbian and maemo.
&gt; 
&gt; What do other ports like Android uses for these values?

Well, if this is something that just differs from mobile, desktop etc, I agree with you. But on the other hand if this is really something that can be tuned per platform/device, then I do not want to do so per app using WebKit, thus my suggestion on adding that to the platform/device plugin :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232564</commentid>
    <comment_count>19</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-05-31 18:24:20 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I do not want to do so per app using WebKit, 
&gt; thus my suggestion on adding that to the platform/device plugin :-)

Why application shouldn&apos;t be able to tune those parameters? I think, that browser and wrt could have different requirements for repaint latency.
We discussed even per view tuning (chrome and webview), but decided, that difference will be really minimal.
Per device tuning is quite important. For example, N97 and N8 are very different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232578</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-31 18:37:26 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; I do not want to do so per app using WebKit, 
&gt; &gt; thus my suggestion on adding that to the platform/device plugin :-)
&gt; 
&gt; Why application shouldn&apos;t be able to tune those parameters? I think, that browser and wrt could have different requirements for repaint latency.
&gt; We discussed even per view tuning (chrome and webview), but decided, that difference will be really minimal.
&gt; Per device tuning is quite important. For example, N97 and N8 are very different.

Then you will easily end up in the situation that you want different tuning variables per web runtime widget, (per device!) and I would really like avoiding us getting there. Per device seems very fine with me.

Anyway, I just want good - out of the box - values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233162</commentid>
    <comment_count>21</comment_count>
      <attachid>56510</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-02 02:27:24 -0700</bug_when>
    <thetext>Comment on attachment 56510
Updated patch: Make repaint throttling parameters configurable run time.

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 56510 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239254</commentid>
    <comment_count>22</comment_count>
      <attachid>57344</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-16 23:29:38 -0700</bug_when>
    <thetext>Comment on attachment 57344
Updated patch by anttik comments: Make repaint throttling parameters configurable run time.

r=me

The loop is missing a break, so that we don&apos;t continue looking for more presets, but otherwise this looks okay. I&apos;ll fix it when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239270</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-17 00:53:20 -0700</bug_when>
    <thetext>Committed r61312: &lt;http://trac.webkit.org/changeset/61312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239284</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-17 01:28:14 -0700</bug_when>
    <thetext>Revision r61312 cherry-picked into qtwebkit-2.0 with commit a469b6af4f4b82a137afc149dcc1257fbe6f96a3</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54823</attachid>
            <date>2010-04-30 13:32:08 -0700</date>
            <delta_ts>2010-05-19 12:12:31 -0700</delta_ts>
            <desc>Make repaint throttling parameters configurable run time.</desc>
            <filename>repaint_throttling01.diff</filename>
            <type>text/plain</type>
            <size>5962</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODU5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMDQtMzAgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFw
ZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSByZXBhaW50IHRocm90dGxpbmcgcGFyYW1ldGVycyBy
dW50aW1lIGNvbmZpZ3VyYWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NDAxCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nUGFyYW1zKToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorCiAyMDEwLTA0LTMwICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEdUSysgYnVpbGQuCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAkocmV2aXNpb24gNTgzMTkpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODIsMjEgKzgyLDIxIEBAIGRvdWJsZSBGcmFtZVZpZXc6OnND
dXJyZW50UGFpbnRUaW1lU3RhbXAKIAogI2lmIEVOQUJMRShSRVBBSU5UX1RIUk9UVExJTkcpCiAv
LyBOb3JtYWwgZGVsYXkKLXN0YXRpYyBjb25zdCBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXkg
PSAwLjAyNTsKK3N0YXRpYyBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXkgPSAwLjAyNTsKIC8v
IE5lZ2F0aXZlIHZhbHVlIHdvdWxkIG1lYW4gdGhhdCBmaXJzdCBmZXcgcmVwYWludHMgaGFwcGVu
IHdpdGhvdXQgYSBkZWxheQotc3RhdGljIGNvbnN0IGRvdWJsZSBpbml0aWFsRGVmZXJyZWRSZXBh
aW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMDsKK3N0YXRpYyBkb3VibGUgaW5pdGlhbERlZmVycmVk
UmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CiAvLyBUaGUgZGVsYXkgZ3Jvd3Mgb24gZWFj
aCByZXBhaW50IHRvIHRoaXMgbWF4aW11bSB2YWx1ZQotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhE
ZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcgPSAyLjU7CitzdGF0aWMgZG91YmxlIG1h
eERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDIuNTsKIC8vIE9uIGVhY2ggcmVw
YWludCB0aGUgZGVsYXkgaW5jcmVzZXMgYnkgdGhpcyBhbW91bnQKLXN0YXRpYyBjb25zdCBkb3Vi
bGUgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gMC41Oworc3Rh
dGljIGRvdWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcgPSAw
LjU7CiAjZWxzZQogLy8gRklYTUU6IFJlcGFpbnQgdGhyb3R0bGluZyBjb3VsZCBiZSBnb29kIHRv
IGhhdmUgb24gYWxsIHBsYXRmb3JtLgogLy8gVGhlIGJhbGFuY2UgYmV0d2VlbiBDUFUgdXNlIGFu
ZCByZXBhaW50IGZyZXF1ZW5jeSB3aWxsIG5lZWQgc29tZSB0dW5pbmcgZm9yIGRlc2t0b3AuCiAv
LyBNb3JlIGhvb2tzIG1heSBiZSBuZWVkZWQgdG8gcmVzZXQgdGhlIGRlbGF5IG9uIHRoaW5ncyBs
aWtlIEdJRiBhbmQgQ1NTIGFuaW1hdGlvbnMuCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmVycmVk
UmVwYWludERlbGF5ID0gMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgaW5pdGlhbERlZmVycmVkUmVw
YWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIG1heERlZmVy
cmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIGRl
ZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9IDA7CitzdGF0aWMgZG91
YmxlIGRlZmVycmVkUmVwYWludERlbGF5ID0gMDsKK3N0YXRpYyBkb3VibGUgaW5pdGlhbERlZmVy
cmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CitzdGF0aWMgZG91YmxlIG1heERlZmVy
cmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CitzdGF0aWMgZG91YmxlIGRlZmVycmVk
UmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9IDA7CiAjZW5kaWYKIAogLy8gVGhl
IG1heGltdW0gbnVtYmVyIG9mIHVwZGF0ZVdpZGdldHMgaXRlcmF0aW9ucyB0aGF0IHNob3VsZCBi
ZSBkb25lIGJlZm9yZSByZXR1cm5pbmcuCkBAIC0yMDk1LDQgKzIwOTUsMTcgQEAgSW50UG9pbnQg
RnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbgogICAgIHJldHVybiBwYXJlbnRQb2ludDsK
IH0KIAordm9pZCBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nUGFyYW1zKAorICAgICAg
ICAgICBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXlQLAorICAgICAgICAgICBkb3VibGUgaW5p
dGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZ1AsCisgICAgICAgICAgIGRvdWJs
ZSBtYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmdQLAorICAgICAgICAgICBkb3Vi
bGUgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nUAorICAgICAgICAp
Cit7CisgICAgZGVmZXJyZWRSZXBhaW50RGVsYXkgPSBkZWZlcnJlZFJlcGFpbnREZWxheVA7Cisg
ICAgaW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IGluaXRpYWxEZWZl
cnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmdQOworICAgIG1heERlZmVycmVkUmVwYWludERl
bGF5RHVyaW5nTG9hZGluZyA9IG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZ1A7
CisgICAgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gZGVmZXJy
ZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nUDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gNTgzMTkpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNGcmFtZVZpZXdTY3JvbGxDb3JuZXIoUmVuZGVyU2Nyb2xsYmFyUGFydCog
c2Nyb2xsQ29ybmVyKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvcm5lciA9PSBzY3JvbGxDb3Ju
ZXI7IH0KICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXIoKTsKIAorICAgIHN0YXRpYyB2
b2lkIHNldFJlcGFpbnRUaHJvdHRsaW5nUGFyYW1zKAorICAgICAgICAvLyBOb3JtYWwgZGVsYXkg
CisgICAgICAgIGRvdWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheVAsCisgICAgICAgIC8vIE5lZ2F0
aXZlIHZhbHVlIHdvdWxkIG1lYW4gdGhhdCBmaXJzdCBmZXcgcmVwYWludHMgaGFwcGVuIHdpdGhv
dXQgYSBkZWxheQorICAgICAgICBkb3VibGUgaW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVy
aW5nTG9hZGluZ1AsIAorICAgICAgICAvLyBUaGUgZGVsYXkgZ3Jvd3Mgb24gZWFjaCByZXBhaW50
IHRvIHRoaXMgbWF4aW11bSB2YWx1ZQorICAgICAgICBkb3VibGUgbWF4RGVmZXJyZWRSZXBhaW50
RGVsYXlEdXJpbmdMb2FkaW5nUCwKKyAgICAgICAgLy8gT24gZWFjaCByZXBhaW50IHRoZSBkZWxh
eSBpbmNyZXNlcyBieSB0aGlzIGFtb3VudAorICAgICAgICBkb3VibGUgZGVmZXJyZWRSZXBhaW50
RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nUAorICAgICk7CisgICAgCiBwcml2YXRlOgogICAg
IEZyYW1lVmlldyhGcmFtZSopOwogCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4NTk2KQorKysgV2ViS2l0L3F0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTMwICBW
aWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbnRl
cm5hbCBRdCBBcGkgdG8gY29uZmlndXJlIHJlcGFpbnQgdGhyb3R0bGluZyBwYXJhbWV0ZXJzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0MDEKKwor
ICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAocXRfc2V0UmVwYWludFRo
cm90dGxpbmdQYXJhbXMpOgorCiAyMDEwLTA0LTI5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEu
Z29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9uIDU4MzE5KQor
KysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oIgog
I2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01OSw2ICs2MCwxNyBAQCB2b2lkIFFXRUJLSVRfRVhQ
T1JUIHF0X25ldHdvcmtBY2Nlc3NBbGxvCiAjZW5kaWYKIH0KIAordm9pZCAgcXRfc2V0UmVwYWlu
dFRocm90dGxpbmdQYXJhbXMoCisgICAgICAgICAgICBxcmVhbCBkZWZlcnJlZFJlcGFpbnREZWxh
eVAsICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsIGRlbGF5CisgICAgICAgICAgICBx
cmVhbCBpbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nUCwgICAgLy8gTmVn
YXRpdmUgdmFsdWUgd291bGQgbWVhbiB0aGF0IGZpcnN0IGZldworICAgICAgICAgICAgcXJlYWwg
bWF4RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nUCwgICAgICAgIC8vIFRoZSBkZWxh
eSBncm93cyBvbiBlYWNoIHJlcGFpbnQgdG8gdGhpcworICAgICAgICAgICAgcXJlYWwgZGVmZXJy
ZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nUCAgIC8vIE9uIGVhY2ggcmVwYWlu
dCB0aGUgZGVsYXkgaW5jcmVzZXMgYnkgdGgKKyAgICAgICAgKQoreworICAgIFdlYkNvcmU6OkZy
YW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmdQYXJhbXMoZGVmZXJyZWRSZXBhaW50RGVsYXlQ
LCBpbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nUCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmdQLCBk
ZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmdQKTsKK30KKwogY2xhc3Mg
UVdlYlNldHRpbmdzUHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgUVdlYlNldHRpbmdzUHJpdmF0ZShX
ZWJDb3JlOjpTZXR0aW5ncyogd2NTZXR0aW5ncyA9IDApCg==
</data>
<flag name="review"
          id="38878"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56510</attachid>
            <date>2010-05-19 12:12:31 -0700</date>
            <delta_ts>2010-06-02 02:27:24 -0700</delta_ts>
            <desc>Updated patch: Make repaint throttling parameters configurable run time.</desc>
            <filename>repaint_throttling02.diff</filename>
            <type>text/plain</type>
            <size>8645</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTc3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMTkgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFw
ZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSByZXBhaW50IHRocm90dGxpbmcgcGFyYW1ldGVycyBy
dW50aW1lIGNvbmZpZ3VyYWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NDAxCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRSZXBh
aW50RGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0
bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmdNYXhEZWZlcnJlZFJlcGFp
bnREZWxheUR1cmluZ0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRS
ZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGlu
Zyk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKwogMjAxMC0wNS0xOSAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gNTk3MTEpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsMjEgKzgyLDIxIEBAIGRvdWJs
ZSBGcmFtZVZpZXc6OnNDdXJyZW50UGFpbnRUaW1lU3RhbXAKIAogI2lmIEVOQUJMRShSRVBBSU5U
X1RIUk9UVExJTkcpCiAvLyBOb3JtYWwgZGVsYXkKLXN0YXRpYyBjb25zdCBkb3VibGUgZGVmZXJy
ZWRSZXBhaW50RGVsYXkgPSAwLjAyNTsKK3N0YXRpYyBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVs
YXkgPSAwLjAyNTsKIC8vIE5lZ2F0aXZlIHZhbHVlIHdvdWxkIG1lYW4gdGhhdCBmaXJzdCBmZXcg
cmVwYWludHMgaGFwcGVuIHdpdGhvdXQgYSBkZWxheQotc3RhdGljIGNvbnN0IGRvdWJsZSBpbml0
aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMDsKK3N0YXRpYyBkb3VibGUg
aW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CiAvLyBUaGUgZGVs
YXkgZ3Jvd3Mgb24gZWFjaCByZXBhaW50IHRvIHRoaXMgbWF4aW11bSB2YWx1ZQotc3RhdGljIGNv
bnN0IGRvdWJsZSBtYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcgPSAyLjU7Citz
dGF0aWMgZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDIuNTsK
IC8vIE9uIGVhY2ggcmVwYWludCB0aGUgZGVsYXkgaW5jcmVzZXMgYnkgdGhpcyBhbW91bnQKLXN0
YXRpYyBjb25zdCBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2Fk
aW5nID0gMC41Oworc3RhdGljIGRvdWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1
cmluZ0xvYWRpbmcgPSAwLjU7CiAjZWxzZQogLy8gRklYTUU6IFJlcGFpbnQgdGhyb3R0bGluZyBj
b3VsZCBiZSBnb29kIHRvIGhhdmUgb24gYWxsIHBsYXRmb3JtLgogLy8gVGhlIGJhbGFuY2UgYmV0
d2VlbiBDUFUgdXNlIGFuZCByZXBhaW50IGZyZXF1ZW5jeSB3aWxsIG5lZWQgc29tZSB0dW5pbmcg
Zm9yIGRlc2t0b3AuCiAvLyBNb3JlIGhvb2tzIG1heSBiZSBuZWVkZWQgdG8gcmVzZXQgdGhlIGRl
bGF5IG9uIHRoaW5ncyBsaWtlIEdJRiBhbmQgQ1NTIGFuaW1hdGlvbnMuCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmVycmVkUmVwYWludERlbGF5ID0gMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgaW5p
dGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7Ci1zdGF0aWMgY29uc3Qg
ZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7Ci1zdGF0aWMg
Y29uc3QgZG91YmxlIGRlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9
IDA7CitzdGF0aWMgZG91YmxlIGRlZmVycmVkUmVwYWludERlbGF5ID0gMDsKK3N0YXRpYyBkb3Vi
bGUgaW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CitzdGF0aWMg
ZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IDA7CitzdGF0aWMg
ZG91YmxlIGRlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9IDA7CiAj
ZW5kaWYKIAogLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIHVwZGF0ZVdpZGdldHMgaXRlcmF0aW9u
cyB0aGF0IHNob3VsZCBiZSBkb25lIGJlZm9yZSByZXR1cm5pbmcuCkBAIC0yMTMwLDQgKzIxMzAs
MjkgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbgogICAgIHJldHVy
biBwYXJlbnRQb2ludDsKIH0KIAorCisvLyBOb3JtYWwgZGVsYXkKK3ZvaWQgRnJhbWVWaWV3Ojpz
ZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KGRvdWJsZSBwKQoreworICAg
IGRlZmVycmVkUmVwYWludERlbGF5ID0gcDsKK30KKworLy8gTmVnYXRpdmUgdmFsdWUgd291bGQg
bWVhbiB0aGF0IGZpcnN0IGZldyByZXBhaW50cyBoYXBwZW4gd2l0aG91dCBhIGRlbGF5Cit2b2lk
IEZyYW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmduSW5pdGlhbERlZmVycmVkUmVwYWludERl
bGF5RHVyaW5nTG9hZGluZyhkb3VibGUgcCkKK3sKKyAgICBpbml0aWFsRGVmZXJyZWRSZXBhaW50
RGVsYXlEdXJpbmdMb2FkaW5nID0gcDsKK30KKworLy8gVGhlIGRlbGF5IGdyb3dzIG9uIGVhY2gg
cmVwYWludCB0byB0aGlzIG1heGltdW0gdmFsdWUKK3ZvaWQgRnJhbWVWaWV3OjpzZXRSZXBhaW50
VGhyb3R0bGluZ01heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyhkb3VibGUgcCkK
K3sKKyAgICBtYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcgPSBwOworfQorCisv
LyBPbiBlYWNoIHJlcGFpbnQgdGhlIGRlbGF5IGluY3JlYXNlcyBieSB0aGlzIGFtb3VudAordm9p
ZCBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRSZXBhaW50RGVsYXlJbmNy
ZW1lbnREdXJpbmdMb2FkaW5nKGRvdWJsZSBwKQoreworICAgIGRlZmVycmVkUmVwYWludERlbGF5
SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9IHA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDU5NzExKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNiArMjE0LDE1IEBAIHB1YmxpYzoKICAgICBib29s
IGlzRnJhbWVWaWV3U2Nyb2xsQ29ybmVyKFJlbmRlclNjcm9sbGJhclBhcnQqIHNjcm9sbENvcm5l
cikgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb3JuZXIgPT0gc2Nyb2xsQ29ybmVyOyB9CiAgICAg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyKCk7CiAKKyAgICAvLyBOb3JtYWwgZGVsYXkKKyAg
ICBzdGF0aWMgdm9pZCBzZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KGRv
dWJsZSBwKTsKKyAgICAvLyBOZWdhdGl2ZSB2YWx1ZSB3b3VsZCBtZWFuIHRoYXQgZmlyc3QgZmV3
IHJlcGFpbnRzIGhhcHBlbiB3aXRob3V0IGEgZGVsYXkKKyAgICBzdGF0aWMgdm9pZCBzZXRSZXBh
aW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKGRv
dWJsZSBwKTsKKyAgICAvLyBUaGUgZGVsYXkgZ3Jvd3Mgb24gZWFjaCByZXBhaW50IHRvIHRoaXMg
bWF4aW11bSB2YWx1ZQorICAgIHN0YXRpYyB2b2lkIHNldFJlcGFpbnRUaHJvdHRsaW5nTWF4RGVm
ZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKGRvdWJsZSBwKTsKKyAgICAvLyBPbiBlYWNo
IHJlcGFpbnQgdGhlIGRlbGF5IGluY3Jlc2VzIGJ5IHRoaXMgYW1vdW50CisgICAgc3RhdGljIHZv
aWQgc2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmlu
Z0xvYWRpbmcoZG91YmxlIHApOworICAgIAogcHJpdmF0ZToKICAgICBGcmFtZVZpZXcoRnJhbWUq
KTsKIApJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1OTc3NykKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNS0xOSAgVmlhdGNoZXNsYXYgT3N0YXBl
bmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEFkZCBpbnRlcm5hbCBRdCBBcGkg
dG8gY29uZmlndXJlIHJlcGFpbnQgdGhyb3R0bGluZyBwYXJhbWV0ZXJzLiAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDAxCisKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWljUHJvcGVy
dHlDaGFuZ2VFdmVudCk6CisKIDIwMTAtMDUtMTkgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9A
aWtpLmZpPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDU5NzExKQorKysgV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMDMsNiArMTIwMywxNCBAQCB2
b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudChRCiAgICAgZXYtPmFjY2VwdCgp
OwogfQogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBkb3Vi
bGUgZGVmZXJyZWRSZXBhaW50RGVsYXk7CisgICAgZG91YmxlIGluaXRpYWxEZWZlcnJlZFJlcGFp
bnREZWxheUR1cmluZ0xvYWRpbmc7CisgICAgZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5
RHVyaW5nTG9hZGluZzsKKyAgICBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnRE
dXJpbmdMb2FkaW5nOworfSBRUmVwYWludFRocm90dGxpbmdQcmVzZXQ7CisKIHZvaWQgUVdlYlBh
Z2VQcml2YXRlOjpkeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudChRRHluYW1pY1Byb3BlcnR5Q2hh
bmdlRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9x
X3ZpZXdNb2RlIikgewpAQCAtMTIyMSw2ICsxMjI5LDQyIEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRl
OjpkeW5hbWljUHJvcGVydHlDaGEKICAgICAgICAgZG91YmxlIHRpbWVEZWxheSA9IHEtPnByb3Bl
cnR5KCJfcV9IVE1MVG9rZW5pemVyVGltZURlbGF5IikudG9Eb3VibGUoKTsKICAgICAgICAgcS0+
aGFuZGxlKCktPnBhZ2UtPnNldEN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkodGltZURlbGF5
KTsKICAgICB9CisgICAgZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBh
aW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5IikgeworICAgICAgICBkb3VibGUgcCA9
IHEtPnByb3BlcnR5KCJfcV9SZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5Iiku
dG9Eb3VibGUoKTsKKyAgICAgICAgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVy
cmVkUmVwYWludERlbGF5KHApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgp
ID09ICJfcV9SZXBhaW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJp
bmdMb2FkaW5nIikgeworICAgICAgICBkb3VibGUgcCA9IHEtPnByb3BlcnR5KCJfcV9SZXBhaW50
VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nIikudG9E
b3VibGUoKTsKKyAgICAgICAgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ25Jbml0aWFs
RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKHApOworICAgIH0gZWxzZSBpZiAoZXZl
bnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50VGhyb3R0bGluZ01heERlZmVycmVkUmVw
YWludERlbGF5RHVyaW5nTG9hZGluZyIpIHsKKyAgICAgICAgZG91YmxlIHAgPSBxLT5wcm9wZXJ0
eSgiX3FfUmVwYWludFRocm90dGxpbmdNYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRp
bmciKS50b0RvdWJsZSgpOworICAgICAgICBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5n
TWF4RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKHApOworICAgIH0gZWxzZSBpZiAo
ZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVw
YWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyIpIHsKKyAgICAgICAgZG91YmxlIHAgPSBx
LT5wcm9wZXJ0eSgiX3FfUmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3Jl
bWVudER1cmluZ0xvYWRpbmciKS50b0RvdWJsZSgpOworICAgICAgICBGcmFtZVZpZXc6OnNldFJl
cGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5n
KHApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50
VGhyb3R0bGluZ1ByZXNldCIpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IFFSZXBhaW50VGhyb3R0
bGluZ1ByZXNldCBwcmVzZXRzW10gPSB7CisgICAgICAgICAgICB7ICAgIk5vVGhyb3R0bGluZyIs
ICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwIH0sCisgICAgICAgICAgICB7ICAgIkxlZ2Fj
eSIsICAgICAgIDAuMDI1LCAgICAgIDAsICAgIDIuNSwgICAgMC41IH0sCisgICAgICAgICAgICB7
ICAgIk1pbmltYWwiLCAgICAgICAwLjAxLCAgICAgIDAsICAgICAgMSwgICAgMC4yIH0sCisgICAg
ICAgICAgICB7ICAgIk1lZGl1bSIsICAgICAgIDAuMDI1LCAgICAgIDEsICAgICAgNSwgICAgMC41
IH0sCisgICAgICAgICAgICB7ICAgIkhlYXZ5IiwgICAgICAgICAgMC4xLCAgICAgIDIsICAgICAx
MCwgICAgICAxIH0KKyAgICAgICAgfTsKKworICAgICAgICBRU3RyaW5nIHAgPSBxLT5wcm9wZXJ0
eSgiX3FfUmVwYWludFRocm90dGxpbmdQcmVzZXQiKS50b1N0cmluZygpOworICAgICAgICBmb3Io
aW50IGkgPSAwOyBpIDwgc2l6ZW9mKHByZXNldHMpIC8gc2l6ZW9mKHByZXNldHNbMF0pOyBpKysp
IHsKKyAgICAgICAgICAgIGlmKHAgPT0gcHJlc2V0c1tpXS5uYW1lKSB7CisgICAgICAgICAgICAg
ICAgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KAor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2V0c1tpXS5kZWZlcnJlZFJlcGFpbnREZWxheSk7
CisgICAgICAgICAgICAgICAgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ25Jbml0aWFs
RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKAorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJlc2V0c1tpXS5pbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKTsK
KyAgICAgICAgICAgICAgICBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nTWF4RGVmZXJy
ZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgcHJl
c2V0c1tpXS5tYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcpOworICAgICAgICAg
ICAgICAgIEZyYW1lVmlldzo6c2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxh
eUluY3JlbWVudER1cmluZ0xvYWRpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXRz
W2ldLmRlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CisKIH0KIAogdm9pZCBRV2ViUGFnZVByaXZhdGU6OnNo
b3J0Y3V0T3ZlcnJpZGVFdmVudChRS2V5RXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57344</attachid>
            <date>2010-05-28 10:47:18 -0700</date>
            <delta_ts>2010-06-16 23:29:38 -0700</delta_ts>
            <desc>Updated patch by anttik comments: Make repaint throttling parameters configurable run time.</desc>
            <filename>repaint_throttling03.diff</filename>
            <type>text/plain</type>
            <size>10901</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDM2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUtMjggIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFw
ZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSByZXBhaW50IHRocm90dGxpbmcgcGFyYW1ldGVycyBy
dW50aW1lIGNvbmZpZ3VyYWJsZS4KKyAgICAgICAgUkVQQUlOVF9USFJPVFRMSU5HIG5vdyBjaG9v
c2VzIGRlZmF1bHQgdmFsdWVzIGZvciB0aHJvdHRsaW5nIHBhcmFtZXRlcnMuCisgICAgICAgIFNo
b3VsZCBiZSByZW1vdmVkIHdoZW4gYXBwbGljYXRpb25zIHN0YXJ0IHVzaW5nIHJ1bnRpbWUgY29u
ZmlndXJhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NDAxCisKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1
cGRhdGVEZWZlcnJlZFJlcGFpbnREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNldFJlcGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRSZXBhaW50RGVsYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBh
aW50RGVsYXlEdXJpbmdMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0
UmVwYWludFRocm90dGxpbmdNYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVycmVk
UmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyk6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuaDoKKwogMjAxMC0wNS0yOCAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJldmVydCA2MDM1MyAtLSBpbW1hdHVyZS4K
SW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA2MDA4NikKKysrIFdlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCwyMyArODAsMjUgQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogZG91YmxlIEZyYW1lVmlldzo6c0N1cnJlbnRQYWludFRpbWVTdGFt
cCA9IDAuMDsKIAorLy8gUkVQQUlOVF9USFJPVFRMSU5HIG5vdyBjaG9vc2VzIGRlZmF1bHQgdmFs
dWVzIGZvciB0aHJvdHRsaW5nIHBhcmFtZXRlcnMuCisvLyBTaG91bGQgYmUgcmVtb3ZlZCB3aGVu
IGFwcGxpY2F0aW9ucyBzdGFydCB1c2luZyBydW50aW1lIGNvbmZpZ3VyYXRpb24uCiAjaWYgRU5B
QkxFKFJFUEFJTlRfVEhST1RUTElORykKIC8vIE5vcm1hbCBkZWxheQotc3RhdGljIGNvbnN0IGRv
dWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheSA9IDAuMDI1OworZG91YmxlIEZyYW1lVmlldzo6c19k
ZWZlcnJlZFJlcGFpbnREZWxheSA9IDAuMDI1OwogLy8gTmVnYXRpdmUgdmFsdWUgd291bGQgbWVh
biB0aGF0IGZpcnN0IGZldyByZXBhaW50cyBoYXBwZW4gd2l0aG91dCBhIGRlbGF5Ci1zdGF0aWMg
Y29uc3QgZG91YmxlIGluaXRpYWxEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmcgPSAw
OworZG91YmxlIEZyYW1lVmlldzo6c19pbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdM
b2FkaW5nID0gMDsKIC8vIFRoZSBkZWxheSBncm93cyBvbiBlYWNoIHJlcGFpbnQgdG8gdGhpcyBt
YXhpbXVtIHZhbHVlCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5
RHVyaW5nTG9hZGluZyA9IDIuNTsKK2RvdWJsZSBGcmFtZVZpZXc6OnNfbWF4RGVmZXJyZWRSZXBh
aW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMi41OwogLy8gT24gZWFjaCByZXBhaW50IHRoZSBkZWxh
eSBpbmNyZXNlcyBieSB0aGlzIGFtb3VudAotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZlcnJlZFJl
cGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcgPSAwLjU7Citkb3VibGUgRnJhbWVWaWV3
OjpzX2RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyA9IDAuNTsKICNl
bHNlCiAvLyBGSVhNRTogUmVwYWludCB0aHJvdHRsaW5nIGNvdWxkIGJlIGdvb2QgdG8gaGF2ZSBv
biBhbGwgcGxhdGZvcm0uCiAvLyBUaGUgYmFsYW5jZSBiZXR3ZWVuIENQVSB1c2UgYW5kIHJlcGFp
bnQgZnJlcXVlbmN5IHdpbGwgbmVlZCBzb21lIHR1bmluZyBmb3IgZGVza3RvcC4KIC8vIE1vcmUg
aG9va3MgbWF5IGJlIG5lZWRlZCB0byByZXNldCB0aGUgZGVsYXkgb24gdGhpbmdzIGxpa2UgR0lG
IGFuZCBDU1MgYW5pbWF0aW9ucy4KLXN0YXRpYyBjb25zdCBkb3VibGUgZGVmZXJyZWRSZXBhaW50
RGVsYXkgPSAwOwotc3RhdGljIGNvbnN0IGRvdWJsZSBpbml0aWFsRGVmZXJyZWRSZXBhaW50RGVs
YXlEdXJpbmdMb2FkaW5nID0gMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgbWF4RGVmZXJyZWRSZXBh
aW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZGVmZXJyZWRS
ZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gMDsKK2RvdWJsZSBGcmFtZVZpZXc6
OnNfZGVmZXJyZWRSZXBhaW50RGVsYXkgPSAwOworZG91YmxlIEZyYW1lVmlldzo6c19pbml0aWFs
RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMDsKK2RvdWJsZSBGcmFtZVZpZXc6
OnNfbWF4RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nID0gMDsKK2RvdWJsZSBGcmFt
ZVZpZXc6OnNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gMDsK
ICNlbmRpZgogCiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgdXBkYXRlV2lkZ2V0cyBpdGVyYXRp
b25zIHRoYXQgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIHJldHVybmluZy4KQEAgLTIwMCw3ICsyMDIs
NyBAQCB2b2lkIEZyYW1lVmlldzo6cmVzZXQoKQogICAgIG1fZGVmZXJyaW5nUmVwYWludHMgPSAw
OwogICAgIG1fcmVwYWludENvdW50ID0gMDsKICAgICBtX3JlcGFpbnRSZWN0cy5jbGVhcigpOwot
ICAgIG1fZGVmZXJyZWRSZXBhaW50RGVsYXkgPSBpbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlE
dXJpbmdMb2FkaW5nOworICAgIG1fZGVmZXJyZWRSZXBhaW50RGVsYXkgPSBzX2luaXRpYWxEZWZl
cnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmc7CiAgICAgbV9kZWZlcnJlZFJlcGFpbnRUaW1l
ci5zdG9wKCk7CiAgICAgbV9sYXN0UGFpbnRUaW1lID0gMDsKICAgICBtX3BhaW50QmVoYXZpb3Ig
PSBQYWludEJlaGF2aW9yTm9ybWFsOwpAQCAtMTE5NCwxMyArMTE5NiwxMyBAQCB2b2lkIEZyYW1l
Vmlldzo6dXBkYXRlRGVmZXJyZWRSZXBhaW50RGVsCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICghZG9jdW1lbnQt
PnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQtPmRvY0xvYWRlcigpLT5yZXF1ZXN0Q291bnQoKSkpIHsK
LSAgICAgICAgbV9kZWZlcnJlZFJlcGFpbnREZWxheSA9IGRlZmVycmVkUmVwYWludERlbGF5Owor
ICAgICAgICBtX2RlZmVycmVkUmVwYWludERlbGF5ID0gc19kZWZlcnJlZFJlcGFpbnREZWxheTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9kZWZlcnJlZFJlcGFpbnREZWxheSA8
IG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZykgewotICAgICAgICBtX2RlZmVy
cmVkUmVwYWludERlbGF5ICs9IGRlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9h
ZGluZzsKLSAgICAgICAgaWYgKG1fZGVmZXJyZWRSZXBhaW50RGVsYXkgPiBtYXhEZWZlcnJlZFJl
cGFpbnREZWxheUR1cmluZ0xvYWRpbmcpCi0gICAgICAgICAgICBtX2RlZmVycmVkUmVwYWludERl
bGF5ID0gbWF4RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nOworICAgIGlmIChtX2Rl
ZmVycmVkUmVwYWludERlbGF5IDwgc19tYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRp
bmcpIHsKKyAgICAgICAgbV9kZWZlcnJlZFJlcGFpbnREZWxheSArPSBzX2RlZmVycmVkUmVwYWlu
dERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZzsKKyAgICAgICAgaWYgKG1fZGVmZXJyZWRSZXBh
aW50RGVsYXkgPiBzX21heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZykKKyAgICAg
ICAgICAgIG1fZGVmZXJyZWRSZXBhaW50RGVsYXkgPSBzX21heERlZmVycmVkUmVwYWludERlbGF5
RHVyaW5nTG9hZGluZzsKICAgICB9CiB9CiAKQEAgLTIxMzAsNCArMjEzMiwyOSBAQCBJbnRQb2lu
dCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluCiAgICAgcmV0dXJuIHBhcmVudFBvaW50
OwogfQogCisKKy8vIE5vcm1hbCBkZWxheQordm9pZCBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJv
dHRsaW5nRGVmZXJyZWRSZXBhaW50RGVsYXkoZG91YmxlIHApCit7CisgICAgc19kZWZlcnJlZFJl
cGFpbnREZWxheSA9IHA7Cit9CisKKy8vIE5lZ2F0aXZlIHZhbHVlIHdvdWxkIG1lYW4gdGhhdCBm
aXJzdCBmZXcgcmVwYWludHMgaGFwcGVuIHdpdGhvdXQgYSBkZWxheQordm9pZCBGcmFtZVZpZXc6
OnNldFJlcGFpbnRUaHJvdHRsaW5nbkluaXRpYWxEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xv
YWRpbmcoZG91YmxlIHApCit7CisgICAgc19pbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJp
bmdMb2FkaW5nID0gcDsKK30KKworLy8gVGhlIGRlbGF5IGdyb3dzIG9uIGVhY2ggcmVwYWludCB0
byB0aGlzIG1heGltdW0gdmFsdWUKK3ZvaWQgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGlu
Z01heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyhkb3VibGUgcCkKK3sKKyAgICBz
X21heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyA9IHA7Cit9CisKKy8vIE9uIGVh
Y2ggcmVwYWludCB0aGUgZGVsYXkgaW5jcmVhc2VzIGJ5IHRoaXMgYW1vdW50Cit2b2lkIEZyYW1l
Vmlldzo6c2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1
cmluZ0xvYWRpbmcoZG91YmxlIHApCit7CisgICAgc19kZWZlcnJlZFJlcGFpbnREZWxheUluY3Jl
bWVudER1cmluZ0xvYWRpbmcgPSBwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCShyZXZpc2lvbiA2MDA4NikKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjE0LDYgKzIxNCwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zy
YW1lVmlld1Njcm9sbENvcm5lcihSZW5kZXJTY3JvbGxiYXJQYXJ0KiBzY3JvbGxDb3JuZXIpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29ybmVyID09IHNjcm9sbENvcm5lcjsgfQogICAgIHZvaWQg
aW52YWxpZGF0ZVNjcm9sbENvcm5lcigpOwogCisgICAgLy8gTm9ybWFsIGRlbGF5CisgICAgc3Rh
dGljIHZvaWQgc2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheShkb3VibGUg
cCk7CisgICAgLy8gTmVnYXRpdmUgdmFsdWUgd291bGQgbWVhbiB0aGF0IGZpcnN0IGZldyByZXBh
aW50cyBoYXBwZW4gd2l0aG91dCBhIGRlbGF5CisgICAgc3RhdGljIHZvaWQgc2V0UmVwYWludFRo
cm90dGxpbmduSW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyhkb3VibGUg
cCk7CisgICAgLy8gVGhlIGRlbGF5IGdyb3dzIG9uIGVhY2ggcmVwYWludCB0byB0aGlzIG1heGlt
dW0gdmFsdWUKKyAgICBzdGF0aWMgdm9pZCBzZXRSZXBhaW50VGhyb3R0bGluZ01heERlZmVycmVk
UmVwYWludERlbGF5RHVyaW5nTG9hZGluZyhkb3VibGUgcCk7CisgICAgLy8gT24gZWFjaCByZXBh
aW50IHRoZSBkZWxheSBpbmNyZXNlcyBieSB0aGlzIGFtb3VudAorICAgIHN0YXRpYyB2b2lkIHNl
dFJlcGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2Fk
aW5nKGRvdWJsZSBwKTsKKyAgICAKIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3KEZyYW1lKik7CiAK
QEAgLTM0Myw2ICszNTIsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlbmRlcmVyIHRvIGhvbGQg
b3VyIGN1c3RvbSBzY3JvbGwgY29ybmVyLgogICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIG1fc2Ny
b2xsQ29ybmVyOworCisgICAgc3RhdGljIGRvdWJsZSBzX2RlZmVycmVkUmVwYWludERlbGF5Owor
ICAgIHN0YXRpYyBkb3VibGUgc19pbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2Fk
aW5nOworICAgIHN0YXRpYyBkb3VibGUgc19tYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xv
YWRpbmc7CisgICAgc3RhdGljIGRvdWJsZSBzX2RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50
RHVyaW5nTG9hZGluZzsKIH07CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogV2ViS2l0
L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lv
biA2MDM2NSkKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMC0wNS0yOCAgVmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8b3N0YXBlbmtvLnZp
YXRjaGVzbGF2QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbUXRdIEFkZCBpbnRlcm5hbCBRdCBBcGkgdG8gY29uZmlndXJlIHJlcGFp
bnQgdGhyb3R0bGluZyBwYXJhbWV0ZXJzLiAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM4NDAxCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgor
ICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudCk6CisK
IDIwMTAtMDUtMjggIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtpLmZpPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAJKHJldmlzaW9uIDYwMDg2KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMDMsNiArMTIwMywxNCBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5w
dXRNZXRob2RFdmVudChRCiAgICAgZXYtPmFjY2VwdCgpOwogfQogCit0eXBlZGVmIHN0cnVjdCB7
CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXk7
CisgICAgZG91YmxlIGluaXRpYWxEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmc7Cisg
ICAgZG91YmxlIG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZzsKKyAgICBkb3Vi
bGUgZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nOworfSBRUmVwYWlu
dFRocm90dGxpbmdQcmVzZXQ7CisKIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWljUHJvcGVy
dHlDaGFuZ2VFdmVudChRRHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQqIGV2ZW50KQogewogICAg
IGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX3ZpZXdNb2RlIikgewpAQCAtMTIyMSw2
ICsxMjI5LDQyIEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWljUHJvcGVydHlDaGEKICAg
ICAgICAgZG91YmxlIHRpbWVEZWxheSA9IHEtPnByb3BlcnR5KCJfcV9IVE1MVG9rZW5pemVyVGlt
ZURlbGF5IikudG9Eb3VibGUoKTsKICAgICAgICAgcS0+aGFuZGxlKCktPnBhZ2UtPnNldEN1c3Rv
bUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkodGltZURlbGF5KTsKICAgICB9CisgICAgZWxzZSBpZiAo
ZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVw
YWludERlbGF5IikgeworICAgICAgICBkb3VibGUgcCA9IHEtPnByb3BlcnR5KCJfcV9SZXBhaW50
VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5IikudG9Eb3VibGUoKTsKKyAgICAgICAgRnJh
bWVWaWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KHApOworICAg
IH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50VGhyb3R0bGlu
Z25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nIikgeworICAgICAgICBk
b3VibGUgcCA9IHEtPnByb3BlcnR5KCJfcV9SZXBhaW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJy
ZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nIikudG9Eb3VibGUoKTsKKyAgICAgICAgRnJhbWVW
aWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJp
bmdMb2FkaW5nKHApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJf
cV9SZXBhaW50VGhyb3R0bGluZ01heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZyIp
IHsKKyAgICAgICAgZG91YmxlIHAgPSBxLT5wcm9wZXJ0eSgiX3FfUmVwYWludFRocm90dGxpbmdN
YXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xvYWRpbmciKS50b0RvdWJsZSgpOworICAgICAg
ICBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nTWF4RGVmZXJyZWRSZXBhaW50RGVsYXlE
dXJpbmdMb2FkaW5nKHApOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09
ICJfcV9SZXBhaW50VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5n
TG9hZGluZyIpIHsKKyAgICAgICAgZG91YmxlIHAgPSBxLT5wcm9wZXJ0eSgiX3FfUmVwYWludFRo
cm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmciKS50b0Rv
dWJsZSgpOworICAgICAgICBGcmFtZVZpZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nRGVmZXJyZWRS
ZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nKHApOworICAgIH0gZWxzZSBpZiAoZXZl
bnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9SZXBhaW50VGhyb3R0bGluZ1ByZXNldCIpIHsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFFSZXBhaW50VGhyb3R0bGluZ1ByZXNldCBwcmVzZXRzW10gPSB7
CisgICAgICAgICAgICB7ICAgIk5vVGhyb3R0bGluZyIsICAgICAwLCAgICAgIDAsICAgICAgMCwg
ICAgICAwIH0sCisgICAgICAgICAgICB7ICAgIkxlZ2FjeSIsICAgICAgIDAuMDI1LCAgICAgIDAs
ICAgIDIuNSwgICAgMC41IH0sCisgICAgICAgICAgICB7ICAgIk1pbmltYWwiLCAgICAgICAwLjAx
LCAgICAgIDAsICAgICAgMSwgICAgMC4yIH0sCisgICAgICAgICAgICB7ICAgIk1lZGl1bSIsICAg
ICAgIDAuMDI1LCAgICAgIDEsICAgICAgNSwgICAgMC41IH0sCisgICAgICAgICAgICB7ICAgIkhl
YXZ5IiwgICAgICAgICAgMC4xLCAgICAgIDIsICAgICAxMCwgICAgICAxIH0KKyAgICAgICAgfTsK
KworICAgICAgICBRU3RyaW5nIHAgPSBxLT5wcm9wZXJ0eSgiX3FfUmVwYWludFRocm90dGxpbmdQ
cmVzZXQiKS50b1N0cmluZygpOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKHBy
ZXNldHMpIC8gc2l6ZW9mKHByZXNldHNbMF0pOyBpKyspIHsKKyAgICAgICAgICAgIGlmKHAgPT0g
cHJlc2V0c1tpXS5uYW1lKSB7CisgICAgICAgICAgICAgICAgRnJhbWVWaWV3OjpzZXRSZXBhaW50
VGhyb3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KAorICAgICAgICAgICAgICAgICAgICAgICAg
cHJlc2V0c1tpXS5kZWZlcnJlZFJlcGFpbnREZWxheSk7CisgICAgICAgICAgICAgICAgRnJhbWVW
aWV3OjpzZXRSZXBhaW50VGhyb3R0bGluZ25Jbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJp
bmdMb2FkaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2V0c1tpXS5pbml0aWFsRGVm
ZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nKTsKKyAgICAgICAgICAgICAgICBGcmFtZVZp
ZXc6OnNldFJlcGFpbnRUaHJvdHRsaW5nTWF4RGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2Fk
aW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2V0c1tpXS5tYXhEZWZlcnJlZFJlcGFp
bnREZWxheUR1cmluZ0xvYWRpbmcpOworICAgICAgICAgICAgICAgIEZyYW1lVmlldzo6c2V0UmVw
YWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmco
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXRzW2ldLmRlZmVycmVkUmVwYWludERlbGF5
SW5jcmVtZW50RHVyaW5nTG9hZGluZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKIH0KIAogdm9pZCBRV2ViUGFnZVByaXZhdGU6OnNob3J0Y3V0T3ZlcnJpZGVFdmVudChRS2V5
RXZlbnQqIGV2ZW50KQo=
</data>
<flag name="review"
          id="41908"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>