<?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>50624</bug_id>
          
          <creation_ts>2010-12-07 04:33:51 -0800</creation_ts>
          <short_desc>[GTK] Don&apos;t use a fixed size for search field icons</short_desc>
          <delta_ts>2011-02-04 19:37:42 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>318129</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-12-07 04:33:51 -0800</bug_when>
    <thetext>We should scale the icons depending on search field size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337262</commentid>
    <comment_count>1</comment_count>
      <attachid>79580</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-20 04:32:41 -0800</bug_when>
    <thetext>Created attachment 79580
Scale icons when needed to make them fit in the search field</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337363</commentid>
    <comment_count>2</comment_count>
      <attachid>79580</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-20 08:44:53 -0800</bug_when>
    <thetext>Comment on attachment 79580
Scale icons when needed to make them fit in the search field

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

&gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:-261
&gt; -    // We also add one pixel here to ensure that the y coordinate is rounded up for box heights
&gt; -    // that are even, which looks in relation to the box text.

I believe kov asked me to add this comment specifically so we probably shouldn&apos;t delete it. It explains the &quot;+ 1&quot; below. It should say &quot;looks good&quot; though I think.

&gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:276
&gt;      GRefPtr&lt;GdkPixbuf&gt; icon = getStockIcon(GTK_TYPE_ENTRY, GTK_STOCK_FIND,
&gt;                                             gtkTextDirection(renderObject-&gt;style()-&gt;direction()),
&gt;                                             gtkIconState(this, renderObject), GTK_ICON_SIZE_MENU);

Wouldn&apos;t it either make sense to either pass the actual size here or get the largest possible size and scale down?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337934</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-21 01:31:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 79580 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79580&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:-261
&gt; &gt; -    // We also add one pixel here to ensure that the y coordinate is rounded up for box heights
&gt; &gt; -    // that are even, which looks in relation to the box text.
&gt; 
&gt; I believe kov asked me to add this comment specifically so we probably shouldn&apos;t delete it. It explains the &quot;+ 1&quot; below. It should say &quot;looks good&quot; though I think.

This is a mistake I didn&apos;t want to remove that, sorry. 

&gt; &gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:276
&gt; &gt;      GRefPtr&lt;GdkPixbuf&gt; icon = getStockIcon(GTK_TYPE_ENTRY, GTK_STOCK_FIND,
&gt; &gt;                                             gtkTextDirection(renderObject-&gt;style()-&gt;direction()),
&gt; &gt;                                             gtkIconState(this, renderObject), GTK_ICON_SIZE_MENU);
&gt; 
&gt; Wouldn&apos;t it either make sense to either pass the actual size here 

Gtk expects a GtkIconSize which is actually an integer, even if we register new icon sizes, gtk_icon_set_render_icon_pixbuf() doesn&apos;t guarantee that the returned pixbuf will have the pixel size of the given icon size, if it finds a builtin pixbuf in the theme close to the given size, it will be returned. This is because GtkIconFactory uses gtk_icon_theme_choose_icon() with only the flag GTK_ICON_LOOKUP_USE_BUILTIN, it doesn&apos;t use GTK_ICON_LOOKUP_FORCE_SIZE. In this case we want to make sure the pixbuf has the pixel size we want, so we have to scale it. 

&gt; or get the largest possible size and scale down?

The largest possible size is GTK_ICON_SIZE_MENU so we are indeed doing so. We define GTK_ICON_SIZE_MENU as the max size in adjustSearchField methods, in most of the cases this is what we want and the returned pixbuf, which is cached by gtk, is valid, and only in a few cases we need to sacle it down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337941</commentid>
    <comment_count>4</comment_count>
      <attachid>79710</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-21 02:00:59 -0800</bug_when>
    <thetext>Created attachment 79710
Updated patch

I&apos;ve moved the code to scale the icon to paintGdkPixbuf() that now receives the icon rect instead od the icon location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338074</commentid>
    <comment_count>5</comment_count>
      <attachid>79710</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-21 08:41:42 -0800</bug_when>
    <thetext>Comment on attachment 79710
Updated patch

I think we have a slight issue here which is that we don&apos;t modify the adjustSearchField*ButtonStyle methods, so WebCore doesn&apos;t really know how large the icon is. We probably want to do something similar to the RenderThemeChromiumSkia which does this to determine the icon size:

    // Scale the button size based on the font size
    float fontScale = style-&gt;fontSize() / defaultControlFontPixelSize;
    int cancelButtonSize = lroundf(std::min(std::max(minCancelButtonSize, defaultCancelButtonSize * fontScale), maxCancelButtonSize));
    style-&gt;setWidth(Length(cancelButtonSize, Fixed));
    style-&gt;setHeight(Length(cancelButtonSize, Fixed));

and them simply centers the icon vertically as we do now. After thinking about this a big, I&apos;ve decided its probably better to use the font size of the field, rather than the height to figure out the icon size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338079</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-21 08:52:29 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 79710 [details])
&gt; I think we have a slight issue here which is that we don&apos;t modify the adjustSearchField*ButtonStyle methods, so WebCore doesn&apos;t really know how large the icon is. 

Yes, we modify the style in RenderThemeGtk::adjustSearchFieldCancelButtonStyle() and RenderThemeGtk::adjustSearchFieldResultsDecorationStyle()

&gt; We probably want to do something similar to the RenderThemeChromiumSkia which does this to determine the icon size:
&gt; 
&gt;     // Scale the button size based on the font size
&gt;     float fontScale = style-&gt;fontSize() / defaultControlFontPixelSize;
&gt;     int cancelButtonSize = lroundf(std::min(std::max(minCancelButtonSize, defaultCancelButtonSize * fontScale), maxCancelButtonSize));
&gt;     style-&gt;setWidth(Length(cancelButtonSize, Fixed));
&gt;     style-&gt;setHeight(Length(cancelButtonSize, Fixed));

fontsize is always the same for us, so it&apos;s not that different to what we currently do settings a fixed size. 

&gt; and them simply centers the icon vertically as we do now. After thinking about this a big, I&apos;ve decided its probably better to use the font size of the field, rather than the height to figure out the icon size.

I tried it, but it didn&apos;t help because the font size was always 13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338083</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-21 09:03:38 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 79710 [details] [details])
&gt; &gt; I think we have a slight issue here which is that we don&apos;t modify the adjustSearchField*ButtonStyle methods, so WebCore doesn&apos;t really know how large the icon is. 
&gt; 
&gt; Yes, we modify the style in RenderThemeGtk::adjustSearchFieldCancelButtonStyle() and RenderThemeGtk::adjustSearchFieldResultsDecorationStyle()

In adjustSearchFieldCancelButtonStyle we simply set the icon to the size of GTK_ICON_SIZE_MENU. 

&gt; fontsize is always the same for us, so it&apos;s not that different to what we currently do settings a fixed size. 

This isn&apos;t actually true. :) Try this:

&lt;input type=&quot;search&quot; id=&quot;target&quot; results=&quot;5&quot; value=&quot;Search me&quot; style=&quot;font-size:50px; &quot;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338085</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-21 09:05:08 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; The largest possible size is GTK_ICON_SIZE_MENU so we are indeed doing so. We define GTK_ICON_SIZE_MENU as the max size in adjustSearchField methods, in most of the cases this is what we want and the returned pixbuf, which is cached by gtk, is valid, and only in a few cases we need to sacle it down.

Even so, wouldn&apos;t it be better to avoid any initial scaling at all by using (GtkIconSize)-1 explicitly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338090</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-21 09:09:18 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; The largest possible size is GTK_ICON_SIZE_MENU so we are indeed doing so. We define GTK_ICON_SIZE_MENU as the max size in adjustSearchField methods, in most of the cases this is what we want and the returned pixbuf, which is cached by gtk, is valid, and only in a few cases we need to sacle it down.
&gt; 
&gt; Even so, wouldn&apos;t it be better to avoid any initial scaling at all by using (GtkIconSize)-1 explicitly?

I think we want to have a max icon size. Using GTK_ICON_SIZE_MENU we make sure the icon won&apos;t be bigger than 16 and we use the icon cache for most of the cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338939</commentid>
    <comment_count>10</comment_count>
      <attachid>79910</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-24 04:11:40 -0800</bug_when>
    <thetext>Created attachment 79910
New patch

It uses the current font size to select the icon size now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344734</commentid>
    <comment_count>11</comment_count>
      <attachid>79910</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-03 08:35:22 -0800</bug_when>
    <thetext>Comment on attachment 79910
New patch

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

Okay! This should land with new DRT dumps / pixel results (for GTK+ 2.x).

&gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:252
&gt; +static GtkIconSize getIconSizeForPixelSize(gint pixelSize)

I think it&apos;s more appropriate to use int instead of gint.

&gt; Source/WebCore/platform/gtk/RenderThemeGtk.cpp:284
&gt; +    gint fontSize = style-&gt;fontSize();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345505</commentid>
    <comment_count>12</comment_count>
      <attachid>81223</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-02-04 08:41:32 -0800</bug_when>
    <thetext>Created attachment 81223
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346016</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-04 19:37:42 -0800</bug_when>
    <thetext>Committed r77726: &lt;http://trac.webkit.org/changeset/77726&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79580</attachid>
            <date>2011-01-20 04:32:41 -0800</date>
            <delta_ts>2011-01-21 02:00:59 -0800</delta_ts>
            <desc>Scale icons when needed to make them fit in the search field</desc>
            <filename>search-field-icons.diff</filename>
            <type>text/plain</type>
            <size>4961</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZDFiOTI3Li5jZDY2ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMDEtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IERvbid0IHVzZSBhIGZpeGVkIHNpemUgZm9yIHNlYXJjaCBmaWVsZCBpY29ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MjQKKworICAgICAgICBV
c2UgdGhlIHBhcmVudCBpbnB1dCBjb250ZW50IGJveCB0byBtYWtlIHN1cmUgdGhlIGljb24gZml0
cyBpbiB0aGUKKyAgICAgICAgc2VhcmNoIGZpZWxkLCBzY2FsaW5nIGl0IGRvd24gd2hlbiBuZWVk
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y2VudGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNE
ZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uKToKKwogMjAxMS0wMS0xOSAgTGV2aSBXZWludHJhdWIgIDxsZXZp
d0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDk3Yzk2
NmQuLjg1NzYxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmNwcApAQCAtMjUwLDI2ICsyNTAsMzggQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRq
dXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHMK
ICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChoZWlnaHQsIEZpeGVkKSk7CiB9CiAKLXN0YXRp
YyBJbnRQb2ludCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KFJlbmRl
ck9iamVjdCogb2JqZWN0LCBjb25zdCBJbnRSZWN0JiByZWN0KQorc3RhdGljIEludFJlY3QgY2Vu
dGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRl
ck9iamVjdCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBOb2RlKiBpbnB1dCA9IG9iamVj
dC0+bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsgLy8gR2V0IHRoZSByZW5kZXJlciBvZiA8
aW5wdXQ+IGVsZW1lbnQuCisgICAgLy8gR2V0IHRoZSByZW5kZXJlciBvZiA8aW5wdXQ+IGVsZW1l
bnQuCisgICAgTm9kZSogaW5wdXQgPSByZW5kZXJPYmplY3QtPm5vZGUoKS0+c2hhZG93QW5jZXN0
b3JOb2RlKCk7CiAgICAgaWYgKCFpbnB1dC0+cmVuZGVyZXIoKS0+aXNCb3goKSkKLSAgICAgICAg
cmV0dXJuIHJlY3QudG9wTGVmdCgpOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCi0gICAg
Ly8gSWYgcG9zc2libGUgY2VudGVyIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJlY3QgdmVydGlj
YWxseSBpbiB0aGUgcGFyZW50IGlucHV0IGVsZW1lbnQuCi0gICAgLy8gV2UgYWxzbyBhZGQgb25l
IHBpeGVsIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIHkgY29vcmRpbmF0ZSBpcyByb3VuZGVkIHVw
IGZvciBib3ggaGVpZ2h0cwotICAgIC8vIHRoYXQgYXJlIGV2ZW4sIHdoaWNoIGxvb2tzIGluIHJl
bGF0aW9uIHRvIHRoZSBib3ggdGV4dC4KICAgICBJbnRSZWN0IGlucHV0Q29udGVudEJveCA9IHRv
UmVuZGVyQm94KGlucHV0LT5yZW5kZXJlcigpKS0+YWJzb2x1dGVDb250ZW50Qm94KCk7CiAKLSAg
ICByZXR1cm4gSW50UG9pbnQocmVjdC54KCksIGlucHV0Q29udGVudEJveC55KCkgKyAoaW5wdXRD
b250ZW50Qm94LmhlaWdodCgpIC0gcmVjdC5oZWlnaHQoKSArIDEpIC8gMik7CisgICAgLy8gTWFr
ZSBzdXJlIHRoZSBzY2FsZWQgZGVjb3JhdGlvbiBzdGF5cyBzcXVhcmUgYW5kIHdpbGwgZml0IGlu
IGl0cyBwYXJlbnQncyBib3guCisgICAgaW50IGljb25TaXplID0gc3RkOjptaW4oaW5wdXRDb250
ZW50Qm94LndpZHRoKCksIHN0ZDo6bWluKGlucHV0Q29udGVudEJveC5oZWlnaHQoKSwgcmVjdC5o
ZWlnaHQoKSkpOworICAgIEludFJlY3Qgc2NhbGVkUmVjdChyZWN0LngoKSwgaW5wdXRDb250ZW50
Qm94LnkoKSArIChpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCkgLSBpY29uU2l6ZSArIDEpIC8gMiwg
aWNvblNpemUsIGljb25TaXplKTsKKyAgICByZXR1cm4gc2NhbGVkUmVjdDsKIH0KIAogYm9vbCBS
ZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRlck9i
amVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKKyAgICBJbnRSZWN0IGljb25SZWN0ID0gY2VudGVyUmVjdFZlcnRpY2Fs
bHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpOworICAgIGlmIChpY29u
UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIEdSZWZQdHI8R2Rr
UGl4YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBHVEtfU1RPQ0tfRklO
RCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0RGly
ZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJP
YmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50R2RrUGl4YnVmKHBhaW50SW5m
by5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRF
bGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOworICAgIGlmIChpY29uUmVjdC5oZWlnaHQoKSA8
IHJlY3QuaGVpZ2h0KCkpIHsKKyAgICAgICAgLy8gV2UgY291bGQgdXNlIGNhaXJvX3NjYWxlKCkg
aW4gcGFpbnRHZGtQaWJ1ZigpIGJ1dCBjYWlyby9waXhtYW4gZG93bnNjYWxlIHF1YWxpdHkgaXMg
cXVpdGUgYmFkLgorICAgICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gc2NhbGVkSWNvbiA9IGdka19w
aXhidWZfc2NhbGVfc2ltcGxlKGljb24uZ2V0KCksIGljb25SZWN0LndpZHRoKCksIGljb25SZWN0
LmhlaWdodCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdES19JTlRFUlBfQklMSU5FQVIpOworICAgICAgICBpY29uID0g
c2NhbGVkSWNvbjsKKyAgICB9CisKKyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4
dCwgaWNvbi5nZXQoKSwgaWNvblJlY3QubG9jYXRpb24oKSk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCkBAIC0yODYsMTAgKzI5OCwyMSBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdAogCiBib29s
IFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKKyAgICBJbnRSZWN0IGljb25SZWN0ID0gY2VudGVyUmVjdFZlcnRpY2FsbHlJ
blBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpOworICAgIGlmIChpY29uUmVj
dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIEdSZWZQdHI8R2RrUGl4
YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBHVEtfU1RPQ0tfQ0xFQVIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVj
dGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtJY29uU3RhdGUodGhpcywgcmVuZGVyT2Jq
ZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKLSAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8u
Y29udGV4dCwgaWNvbi5nZXQoKSwgY2VudGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxl
bWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsKKyAgICBpZiAoaWNvblJlY3QuaGVpZ2h0KCkgPCBy
ZWN0LmhlaWdodCgpKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIHVzZSBjYWlyb19zY2FsZSgpIGlu
IHBhaW50R2RrUGlidWYoKSBidXQgY2Fpcm8vcGl4bWFuIGRvd25zY2FsZSBxdWFsaXR5IGlzIHF1
aXRlIGJhZC4KKyAgICAgICAgR1JlZlB0cjxHZGtQaXhidWY+IHNjYWxlZEljb24gPSBnZGtfcGl4
YnVmX3NjYWxlX3NpbXBsZShpY29uLmdldCgpLCBpY29uUmVjdC53aWR0aCgpLCBpY29uUmVjdC5o
ZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHREtfSU5URVJQX0JJTElORUFSKTsKKyAgICAgICAgaWNvbiA9IHNj
YWxlZEljb247CisgICAgfQorCisgICAgcGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQs
IGljb24uZ2V0KCksIGljb25SZWN0LmxvY2F0aW9uKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79710</attachid>
            <date>2011-01-21 02:00:59 -0800</date>
            <delta_ts>2011-01-24 04:11:40 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>search-field-icons2.diff</filename>
            <type>text/plain</type>
            <size>6238</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYjYzODk0Li5hNWIxYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTEtMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IERvbid0IHVzZSBhIGZpeGVkIHNpemUgZm9yIHNlYXJjaCBmaWVsZCBpY29ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MjQKKworICAgICAgICBV
c2UgdGhlIHBhcmVudCBpbnB1dCBjb250ZW50IGJveCB0byBtYWtlIHN1cmUgdGhlIGljb24gZml0
cyBpbiB0aGUKKyAgICAgICAgc2VhcmNoIGZpZWxkLCBzY2FsaW5nIGl0IGRvd24gd2hlbiBuZWVk
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRHZGtQaXhidWYpOgorICAgICAgICAoV2ViQ29yZTo6Y2VudGVyUmVj
dFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKToKKwog
MjAxMC0xMi0xNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggZGNlNzc2My4uOTIwYTEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC0yMjQsMTEg
KzIyNCwxOSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFRleHRBcmVhKFJlbmRlck9iamVj
dCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbgogICAgIHJldHVybiBwYWludFRleHRG
aWVsZChvLCBpLCByKTsKIH0KIAotc3RhdGljIHZvaWQgcGFpbnRHZGtQaXhidWYoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBHZGtQaXhidWYqIGljb24sIGNvbnN0IEludFBvaW50JiBp
Y29uUG9pbnQpCi17CitzdGF0aWMgdm9pZCBwYWludEdka1BpeGJ1ZihHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEdka1BpeGJ1ZiogaWNvbiwgY29uc3QgSW50UmVjdCYgaWNvblJlY3Qp
Cit7CisgICAgSW50U2l6ZSBpY29uU2l6ZShnZGtfcGl4YnVmX2dldF93aWR0aChpY29uKSwgZ2Rr
X3BpeGJ1Zl9nZXRfaGVpZ2h0KGljb24pKTsKKyAgICBpZiAoaWNvblJlY3Quc2l6ZSgpICE9IGlj
b25TaXplKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIHVzZSBjYWlyb19zY2FsZSgpIGhlcmUgYnV0
IGNhaXJvL3BpeG1hbiBkb3duc2NhbGUgcXVhbGl0eSBpcyBxdWl0ZSBiYWQuCisgICAgICAgIEdS
ZWZQdHI8R2RrUGl4YnVmPiBzY2FsZWRJY29uID0gZ2RrX3BpeGJ1Zl9zY2FsZV9zaW1wbGUoaWNv
biwgaWNvblJlY3Qud2lkdGgoKSwgaWNvblJlY3QuaGVpZ2h0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RLX0lOVEVS
UF9CSUxJTkVBUik7CisgICAgICAgIGljb24gPSBzY2FsZWRJY29uLmdldCgpOworICAgIH0KKwog
ICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgY2Fpcm9f
c2F2ZShjcik7Ci0gICAgZ2RrX2NhaXJvX3NldF9zb3VyY2VfcGl4YnVmKGNyLCBpY29uLCBpY29u
UG9pbnQueCgpLCBpY29uUG9pbnQueSgpKTsKKyAgICBnZGtfY2Fpcm9fc2V0X3NvdXJjZV9waXhi
dWYoY3IsIGljb24sIGljb25SZWN0LngoKSwgaWNvblJlY3QueSgpKTsKICAgICBjYWlyb19wYWlu
dChjcik7CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CkBAIC0yNTQsMjYgKzI2MiwzNCBAQCB2
b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uU3R5
bGUoQ1NTU3R5bGVTZWxlY3RvciogcwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKGhlaWdo
dCwgRml4ZWQpKTsKIH0KIAotc3RhdGljIEludFBvaW50IGNlbnRlclJlY3RWZXJ0aWNhbGx5SW5Q
YXJlbnRJbnB1dEVsZW1lbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCitzdGF0aWMgSW50UmVjdCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVt
ZW50KFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewot
ICAgIE5vZGUqIGlucHV0ID0gb2JqZWN0LT5ub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpOyAv
LyBHZXQgdGhlIHJlbmRlcmVyIG9mIDxpbnB1dD4gZWxlbWVudC4KKyAgICAvLyBHZXQgdGhlIHJl
bmRlcmVyIG9mIDxpbnB1dD4gZWxlbWVudC4KKyAgICBOb2RlKiBpbnB1dCA9IHJlbmRlck9iamVj
dC0+bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKICAgICBpZiAoIWlucHV0LT5yZW5kZXJl
cigpLT5pc0JveCgpKQotICAgICAgICByZXR1cm4gcmVjdC50b3BMZWZ0KCk7CisgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CiAKICAgICAvLyBJZiBwb3NzaWJsZSBjZW50ZXIgdGhlIHktY29vcmRp
bmF0ZSBvZiB0aGUgcmVjdCB2ZXJ0aWNhbGx5IGluIHRoZSBwYXJlbnQgaW5wdXQgZWxlbWVudC4K
ICAgICAvLyBXZSBhbHNvIGFkZCBvbmUgcGl4ZWwgaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgeSBj
b29yZGluYXRlIGlzIHJvdW5kZWQgdXAgZm9yIGJveCBoZWlnaHRzCiAgICAgLy8gdGhhdCBhcmUg
ZXZlbiwgd2hpY2ggbG9va3MgaW4gcmVsYXRpb24gdG8gdGhlIGJveCB0ZXh0LgogICAgIEludFJl
Y3QgaW5wdXRDb250ZW50Qm94ID0gdG9SZW5kZXJCb3goaW5wdXQtPnJlbmRlcmVyKCkpLT5hYnNv
bHV0ZUNvbnRlbnRCb3goKTsKIAotICAgIHJldHVybiBJbnRQb2ludChyZWN0LngoKSwgaW5wdXRD
b250ZW50Qm94LnkoKSArIChpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCkgLSByZWN0LmhlaWdodCgp
ICsgMSkgLyAyKTsKKyAgICAvLyBNYWtlIHN1cmUgdGhlIHNjYWxlZCBkZWNvcmF0aW9uIHN0YXlz
IHNxdWFyZSBhbmQgd2lsbCBmaXQgaW4gaXRzIHBhcmVudCdzIGJveC4KKyAgICBpbnQgaWNvblNp
emUgPSBzdGQ6Om1pbihpbnB1dENvbnRlbnRCb3gud2lkdGgoKSwgc3RkOjptaW4oaW5wdXRDb250
ZW50Qm94LmhlaWdodCgpLCByZWN0LmhlaWdodCgpKSk7CisgICAgSW50UmVjdCBzY2FsZWRSZWN0
KHJlY3QueCgpLCBpbnB1dENvbnRlbnRCb3gueSgpICsgKGlucHV0Q29udGVudEJveC5oZWlnaHQo
KSAtIGljb25TaXplICsgMSkgLyAyLCBpY29uU2l6ZSwgaWNvblNpemUpOworICAgIHJldHVybiBz
Y2FsZWRSZWN0OwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVz
dWx0c0RlY29yYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIEludFJlY3QgaWNvblJl
Y3QgPSBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVj
dCwgcmVjdCk7CisgICAgaWYgKGljb25SZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgR1JlZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZ
UEVfRU5UUlksIEdUS19TVE9DS19GSU5ELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJl
Y3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Rr
SWNvblN0YXRlKHRoaXMsIHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVOVSk7Ci0gICAg
cGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGNlbnRlclJlY3RW
ZXJ0aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCByZWN0KSk7CisgICAg
cGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGljb25SZWN0KTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTI5MCwxMCArMzA2LDE0IEBAIHZvaWQgUmVuZGVy
VGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxl
Y3Rvciogc2VsZWN0CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5j
ZWxCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIEludFJlY3QgaWNvblJlY3QgPSBj
ZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVj
dCk7CisgICAgaWYgKGljb25SZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CiAgICAgR1JlZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5U
UlksIEdUS19TVE9DS19DTEVBUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25T
dGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50
R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGlj
YWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOworICAgIHBhaW50
R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBpY29uUmVjdCk7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCkBAIC00MDMsMTAgKzQyMywxMSBAQCBib29sIFJlbmRlclRoZW1l
R3RrOjpwYWludE1lZGlhQnV0dG9uKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBHcmFwaGlj
c0NvbnRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a1Rl
eHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrSWNvblN0YXRlKHRoaXMsIHJl
bmRlck9iamVjdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2V0TWVkaWFCdXR0b25JY29uU2l6ZShtX21lZGlhSWNvblNpemUpKTsKLSAgICBJbnRQb2ludCBp
Y29uUG9pbnQocmVjdC54KCkgKyAocmVjdC53aWR0aCgpIC0gbV9tZWRpYUljb25TaXplKSAvIDIs
Ci0gICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgpICsgKHJlY3QuaGVpZ2h0KCkgLSBtX21l
ZGlhSWNvblNpemUpIC8gMik7CisgICAgSW50UmVjdCBpY29uUmVjdChyZWN0LngoKSArIChyZWN0
LndpZHRoKCkgLSBtX21lZGlhSWNvblNpemUpIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgIHJl
Y3QueSgpICsgKHJlY3QuaGVpZ2h0KCkgLSBtX21lZGlhSWNvblNpemUpIC8gMiwKKyAgICAgICAg
ICAgICAgICAgICAgIG1fbWVkaWFJY29uU2l6ZSwgbV9tZWRpYUljb25TaXplKTsKICAgICBjb250
ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QocmVjdCksIG1fcGFuZWxDb2xvciwgQ29sb3JTcGFjZURl
dmljZVJHQik7Ci0gICAgcGFpbnRHZGtQaXhidWYoY29udGV4dCwgaWNvbi5nZXQoKSwgaWNvblBv
aW50KTsKKyAgICBwYWludEdka1BpeGJ1Zihjb250ZXh0LCBpY29uLmdldCgpLCBpY29uUmVjdCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79910</attachid>
            <date>2011-01-24 04:11:40 -0800</date>
            <delta_ts>2011-02-04 08:41:32 -0800</delta_ts>
            <desc>New patch</desc>
            <filename>searchfiled-icons3.diff</filename>
            <type>text/plain</type>
            <size>10640</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMjQ0NTJiLi5mY2Y3Mzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDEtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IERvbid0IHVzZSBhIGZpeGVkIHNpemUgZm9yIHNlYXJjaCBmaWVsZCBpY29ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MjQKKworICAgICAgICBV
c2UgdGhlIHBhcmVudCBpbnB1dCBjb250ZW50IGJveCB0byBtYWtlIHN1cmUgdGhlIGljb24gZml0
cyBpbiB0aGUKKyAgICAgICAgc2VhcmNoIGZpZWxkLCBzY2FsaW5nIGl0IGRvd24gd2hlbiBuZWVk
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRHZGtQaXhidWYpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SWNvblNp
emVGb3JQaXhlbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0U2VhcmNoRmllbGRJY29u
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZp
ZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpjZW50ZXJSZWN0
VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRD
YW5jZWxCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50Q2Fw
c0xvY2tJbmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
TWVkaWFCdXR0b24pOgorCiAyMDExLTAxLTIzICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IGJmZTM5MDEu
Ljc1OWY3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmNwcApAQCAtMjI0LDE1ICsyMjQsNDcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRU
ZXh0QXJlYShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW4KICAg
ICByZXR1cm4gcGFpbnRUZXh0RmllbGQobywgaSwgcik7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50
R2RrUGl4YnVmKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2RrUGl4YnVmKiBpY29u
LCBjb25zdCBJbnRQb2ludCYgaWNvblBvaW50KQoteworc3RhdGljIHZvaWQgcGFpbnRHZGtQaXhi
dWYoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHZGtQaXhidWYqIGljb24sIGNvbnN0
IEludFJlY3QmIGljb25SZWN0KQoreworICAgIEludFNpemUgaWNvblNpemUoZ2RrX3BpeGJ1Zl9n
ZXRfd2lkdGgoaWNvbiksIGdka19waXhidWZfZ2V0X2hlaWdodChpY29uKSk7CisgICAgaWYgKGlj
b25SZWN0LnNpemUoKSAhPSBpY29uU2l6ZSkgeworICAgICAgICAvLyBXZSBjb3VsZCB1c2UgY2Fp
cm9fc2NhbGUoKSBoZXJlIGJ1dCBjYWlyby9waXhtYW4gZG93bnNjYWxlIHF1YWxpdHkgaXMgcXVp
dGUgYmFkLgorICAgICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gc2NhbGVkSWNvbiA9IGdka19waXhi
dWZfc2NhbGVfc2ltcGxlKGljb24sIGljb25SZWN0LndpZHRoKCksIGljb25SZWN0LmhlaWdodCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdES19JTlRFUlBfQklMSU5FQVIpOworICAgICAgICBpY29uID0gc2NhbGVkSWNv
bi5nZXQoKTsKKyAgICB9CisKICAgICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpOwogICAgIGNhaXJvX3NhdmUoY3IpOwotICAgIGdka19jYWlyb19zZXRfc291cmNlX3Bp
eGJ1ZihjciwgaWNvbiwgaWNvblBvaW50LngoKSwgaWNvblBvaW50LnkoKSk7CisgICAgZ2RrX2Nh
aXJvX3NldF9zb3VyY2VfcGl4YnVmKGNyLCBpY29uLCBpY29uUmVjdC54KCksIGljb25SZWN0Lnko
KSk7CiAgICAgY2Fpcm9fcGFpbnQoY3IpOwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCisv
LyBEZWZpbmVkIGluIEdUSysgKGd0ay9ndGtpY29uZmFjdG9yeS5jKQorc3RhdGljIGNvbnN0IGdp
bnQgZ3RrSWNvblNpemVNZW51ID0gMTY7CitzdGF0aWMgY29uc3QgZ2ludCBndGtJY29uU2l6ZVNt
YWxsVG9vbGJhciA9IDE4Oworc3RhdGljIGNvbnN0IGdpbnQgZ3RrSWNvblNpemVCdXR0b24gPSAy
MDsKK3N0YXRpYyBjb25zdCBnaW50IGd0a0ljb25TaXplTGFyZ2VUb29sYmFyID0gMjQ7CitzdGF0
aWMgY29uc3QgZ2ludCBndGtJY29uU2l6ZURuZCA9IDMyOworc3RhdGljIGNvbnN0IGdpbnQgZ3Rr
SWNvblNpemVEaWFsb2cgPSA0ODsKKworc3RhdGljIEd0a0ljb25TaXplIGdldEljb25TaXplRm9y
UGl4ZWxTaXplKGdpbnQgcGl4ZWxTaXplKQoreworICAgIGlmIChwaXhlbFNpemUgPCBndGtJY29u
U2l6ZVNtYWxsVG9vbGJhcikKKyAgICAgICAgcmV0dXJuIEdUS19JQ09OX1NJWkVfTUVOVTsKKyAg
ICBpZiAocGl4ZWxTaXplID49IGd0a0ljb25TaXplU21hbGxUb29sYmFyICYmIHBpeGVsU2l6ZSA8
IGd0a0ljb25TaXplQnV0dG9uKQorICAgICAgICByZXR1cm4gR1RLX0lDT05fU0laRV9TTUFMTF9U
T09MQkFSOworICAgIGlmIChwaXhlbFNpemUgPj0gZ3RrSWNvblNpemVCdXR0b24gJiYgcGl4ZWxT
aXplIDwgZ3RrSWNvblNpemVMYXJnZVRvb2xiYXIpCisgICAgICAgIHJldHVybiBHVEtfSUNPTl9T
SVpFX0JVVFRPTjsKKyAgICBpZiAocGl4ZWxTaXplID49IGd0a0ljb25TaXplTGFyZ2VUb29sYmFy
ICYmIHBpeGVsU2l6ZSA8IGd0a0ljb25TaXplRG5kKQorICAgICAgICByZXR1cm4gR1RLX0lDT05f
U0laRV9MQVJHRV9UT09MQkFSOworICAgIGlmIChwaXhlbFNpemUgPj0gZ3RrSWNvblNpemVEbmQg
JiYgcGl4ZWxTaXplIDwgZ3RrSWNvblNpemVEaWFsb2cpCisgICAgICAgIHJldHVybiBHVEtfSUNP
Tl9TSVpFX0RORDsKKworICAgIHJldHVybiBHVEtfSUNPTl9TSVpFX0RJQUxPRzsKK30KKwogdm9p
ZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoQ1NT
U3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkg
Y29uc3QKIHsKICAgICBhZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKHNlbGVjdG9y
LCBzdHlsZSwgZSk7CkBAIC0yNDMsNTcgKzI3NSw3NyBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpw
YWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50
SQogICAgIHJldHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24obywgaSwgcmVj
dCk7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0Rl
Y29yYXRpb25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBFbGVtZW50KiBlKSBjb25zdAorc3RhdGljIHZvaWQgYWRqdXN0U2VhcmNoRmllbGRJY29u
U3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIHN0eWxlLT5yZXNldEJvcmRlcigpOwog
ICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsKIAorICAgIC8vIEdldCB0aGUgaWNvbiBzaXplIGJh
c2VkIG9uIHRoZSBmb250IHNpemUuCisgICAgZ2ludCBmb250U2l6ZSA9IHN0eWxlLT5mb250U2l6
ZSgpOworICAgIGlmIChmb250U2l6ZSA8IGd0a0ljb25TaXplTWVudSkgeworICAgICAgICBzdHls
ZS0+c2V0V2lkdGgoTGVuZ3RoKGZvbnRTaXplLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0
SGVpZ2h0KExlbmd0aChmb250U2l6ZSwgRml4ZWQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICAgICBnaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKLSAgICBndGtfaWNvbl9zaXplX2xvb2t1
cChHVEtfSUNPTl9TSVpFX01FTlUsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgZ3RrX2ljb25fc2l6
ZV9sb29rdXAoZ2V0SWNvblNpemVGb3JQaXhlbFNpemUoZm9udFNpemUpLCAmd2lkdGgsICZoZWln
aHQpOwogICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgod2lkdGgsIEZpeGVkKSk7CiAgICAgc3R5
bGUtPnNldEhlaWdodChMZW5ndGgoaGVpZ2h0LCBGaXhlZCkpOwogfQogCi1zdGF0aWMgSW50UG9p
bnQgY2VudGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlKSBjb25zdAoreworICAgIGFkanVz
dFNlYXJjaEZpZWxkSWNvblN0eWxlKHN0eWxlKTsKK30KKworc3RhdGljIEludFJlY3QgY2VudGVy
UmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlck9i
amVjdCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBOb2RlKiBpbnB1dCA9IG9iamVjdC0+
bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsgLy8gR2V0IHRoZSByZW5kZXJlciBvZiA8aW5w
dXQ+IGVsZW1lbnQuCisgICAgLy8gR2V0IHRoZSByZW5kZXJlciBvZiA8aW5wdXQ+IGVsZW1lbnQu
CisgICAgTm9kZSogaW5wdXQgPSByZW5kZXJPYmplY3QtPm5vZGUoKS0+c2hhZG93QW5jZXN0b3JO
b2RlKCk7CiAgICAgaWYgKCFpbnB1dC0+cmVuZGVyZXIoKS0+aXNCb3goKSkKLSAgICAgICAgcmV0
dXJuIHJlY3QudG9wTGVmdCgpOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgLy8g
SWYgcG9zc2libGUgY2VudGVyIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJlY3QgdmVydGljYWxs
eSBpbiB0aGUgcGFyZW50IGlucHV0IGVsZW1lbnQuCiAgICAgLy8gV2UgYWxzbyBhZGQgb25lIHBp
eGVsIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIHkgY29vcmRpbmF0ZSBpcyByb3VuZGVkIHVwIGZv
ciBib3ggaGVpZ2h0cwogICAgIC8vIHRoYXQgYXJlIGV2ZW4sIHdoaWNoIGxvb2tzIGluIHJlbGF0
aW9uIHRvIHRoZSBib3ggdGV4dC4KICAgICBJbnRSZWN0IGlucHV0Q29udGVudEJveCA9IHRvUmVu
ZGVyQm94KGlucHV0LT5yZW5kZXJlcigpKS0+YWJzb2x1dGVDb250ZW50Qm94KCk7CiAKLSAgICBy
ZXR1cm4gSW50UG9pbnQocmVjdC54KCksIGlucHV0Q29udGVudEJveC55KCkgKyAoaW5wdXRDb250
ZW50Qm94LmhlaWdodCgpIC0gcmVjdC5oZWlnaHQoKSArIDEpIC8gMik7CisgICAgLy8gTWFrZSBz
dXJlIHRoZSBzY2FsZWQgZGVjb3JhdGlvbiBzdGF5cyBzcXVhcmUgYW5kIHdpbGwgZml0IGluIGl0
cyBwYXJlbnQncyBib3guCisgICAgaW50IGljb25TaXplID0gc3RkOjptaW4oaW5wdXRDb250ZW50
Qm94LndpZHRoKCksIHN0ZDo6bWluKGlucHV0Q29udGVudEJveC5oZWlnaHQoKSwgcmVjdC5oZWln
aHQoKSkpOworICAgIEludFJlY3Qgc2NhbGVkUmVjdChyZWN0LngoKSwgaW5wdXRDb250ZW50Qm94
LnkoKSArIChpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCkgLSBpY29uU2l6ZSArIDEpIC8gMiwgaWNv
blNpemUsIGljb25TaXplKTsKKyAgICByZXR1cm4gc2NhbGVkUmVjdDsKIH0KIAogYm9vbCBSZW5k
ZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKKyAgICBJbnRSZWN0IGljb25SZWN0ID0gY2VudGVyUmVjdFZlcnRpY2FsbHlJ
blBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpOworICAgIGlmIChpY29uUmVj
dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIEdSZWZQdHI8R2RrUGl4
YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBHVEtfU1RPQ0tfRklORCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0
aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmpl
Y3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50R2RrUGl4YnVmKHBhaW50SW5mby5j
b250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVt
ZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25TaXplRm9yUGl4ZWxTaXpl
KHJlY3QuaGVpZ2h0KCkpKTsKKyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwg
aWNvbi5nZXQoKSwgaWNvblJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBSZW5k
ZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShDU1NTdHlsZVNl
bGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlKSBjb25zdAog
ewotICAgIHN0eWxlLT5yZXNldEJvcmRlcigpOwotICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsK
LQotICAgIGdpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwotICAgIGd0a19pY29uX3NpemVfbG9v
a3VwKEdUS19JQ09OX1NJWkVfTUVOVSwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICBzdHlsZS0+c2V0
V2lkdGgoTGVuZ3RoKHdpZHRoLCBGaXhlZCkpOwotICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3Ro
KGhlaWdodCwgRml4ZWQpKTsKKyAgICBhZGp1c3RTZWFyY2hGaWVsZEljb25TdHlsZShzdHlsZSk7
CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24o
UmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIEludFJlY3QgaWNvblJlY3QgPSBjZW50ZXJSZWN0
VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCk7CisgICAg
aWYgKGljb25SZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgR1Jl
ZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5UUlksIEdUS19T
VE9DS19DTEVBUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
dGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlz
LCByZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50R2RrUGl4YnVm
KHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFy
ZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmplY3Qp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25TaXpl
Rm9yUGl4ZWxTaXplKHJlY3QuaGVpZ2h0KCkpKTsKKyAgICBwYWludEdka1BpeGJ1ZihwYWludElu
Zm8uY29udGV4dCwgaWNvbi5nZXQoKSwgaWNvblJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApAQCAtMzE2LDE0ICszNjgsMjEgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRDYXBzTG9j
a0luZGljYXRvcihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBpZiAo
cGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKKyAgICBnaW50IGljb25TaXplID0gc3RkOjptaW4ocmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKTsKICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtf
VFlQRV9FTlRSWSwgR1RLX1NUT0NLX0NBUFNfTE9DS19XQVJOSU5HLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0
LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3RrSWNvblN0YXRlKHRoaXMsIHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJ
WkVfTUVOVSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
Z2V0SWNvblNpemVGb3JQaXhlbFNpemUoaWNvblNpemUpKTsKKworICAgIC8vIE9ubHkgcmUtc2Nh
bGUgdGhlIGljb24gd2hlbiBpdCdzIHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBpY29uIHNpemUK
KyAgICBpZiAoaWNvblNpemUgPj0gZ3RrSWNvblNpemVNZW51KQorICAgICAgICBpY29uU2l6ZSA9
IGdka19waXhidWZfZ2V0X2hlaWdodChpY29uLmdldCgpKTsKIAogICAgIC8vIEdUSysgbG9jYXRl
cyB0aGUgaWNvbiByaWdodCBhbGlnbmVkIGluIHRoZSBlbnRyeS4gVGhlIGdpdmVuIHJlY3Rhbmds
ZSBpcyBhbHJlYWR5CiAgICAgLy8gY2VudGVyZWQgdmVydGljYWxseSBieSBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuCi0gICAgSW50UG9pbnQgaWNvblBvc2l0aW9uKHJlY3QueCgpICsgcmVj
dC53aWR0aCgpIC0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgoaWNvbi5nZXQoKSksIHJlY3QueSgpKTsK
LSAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgaWNvblBv
c2l0aW9uKTsKKyAgICBJbnRSZWN0IGljb25SZWN0KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0g
aWNvblNpemUsCisgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgp
IC0gaWNvblNpemUpIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgIGljb25TaXplLCBpY29uU2l6
ZSk7CisgICAgcGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGlj
b25SZWN0KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDIxLDEwICs0ODAsMTEgQEAgYm9v
bCBSZW5kZXJUaGVtZUd0azo6cGFpbnRNZWRpYUJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlck9i
amVjdCwgR3JhcGhpY3NDb250ZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25T
dGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldE1lZGlhQnV0dG9uSWNvblNpemUobV9tZWRpYUljb25TaXplKSk7Ci0g
ICAgSW50UG9pbnQgaWNvblBvaW50KHJlY3QueCgpICsgKHJlY3Qud2lkdGgoKSAtIG1fbWVkaWFJ
Y29uU2l6ZSkgLyAyLAotICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0Lmhl
aWdodCgpIC0gbV9tZWRpYUljb25TaXplKSAvIDIpOworICAgIEludFJlY3QgaWNvblJlY3QocmVj
dC54KCkgKyAocmVjdC53aWR0aCgpIC0gbV9tZWRpYUljb25TaXplKSAvIDIsCisgICAgICAgICAg
ICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgpIC0gbV9tZWRpYUljb25TaXplKSAv
IDIsCisgICAgICAgICAgICAgICAgICAgICBtX21lZGlhSWNvblNpemUsIG1fbWVkaWFJY29uU2l6
ZSk7CiAgICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KHJlY3QpLCBtX3BhbmVsQ29sb3Is
IENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIHBhaW50R2RrUGl4YnVmKGNvbnRleHQsIGljb24u
Z2V0KCksIGljb25Qb2ludCk7CisgICAgcGFpbnRHZGtQaXhidWYoY29udGV4dCwgaWNvbi5nZXQo
KSwgaWNvblJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>
<flag name="review"
          id="71369"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81223</attachid>
            <date>2011-02-04 08:41:32 -0800</date>
            <delta_ts>2011-02-04 18:27:30 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>searchfield-icons4.diff</filename>
            <type>text/plain</type>
            <size>10634</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNzVhNWRmLi5hOTE2YzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDItMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IERvbid0IHVzZSBhIGZpeGVkIHNpemUgZm9yIHNlYXJjaCBmaWVsZCBpY29ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MjQKKworICAgICAgICBV
c2UgdGhlIHBhcmVudCBpbnB1dCBjb250ZW50IGJveCB0byBtYWtlIHN1cmUgdGhlIGljb24gZml0
cyBpbiB0aGUKKyAgICAgICAgc2VhcmNoIGZpZWxkLCBzY2FsaW5nIGl0IGRvd24gd2hlbiBuZWVk
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRHZGtQaXhidWYpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SWNvblNp
emVGb3JQaXhlbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0U2VhcmNoRmllbGRJY29u
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZp
ZWxkUmVzdWx0c0RlY29yYXRpb25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpjZW50ZXJSZWN0
VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRD
YW5jZWxCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50Q2Fw
c0xvY2tJbmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
TWVkaWFCdXR0b24pOgorCiAyMDExLTAyLTAzICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDRkM2NjNmMuLjFlOWYx
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNw
cApAQCAtMjI0LDE1ICsyMjQsNDcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0QXJl
YShSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW4KICAgICByZXR1
cm4gcGFpbnRUZXh0RmllbGQobywgaSwgcik7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50R2RrUGl4
YnVmKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2RrUGl4YnVmKiBpY29uLCBjb25z
dCBJbnRQb2ludCYgaWNvblBvaW50KQoteworc3RhdGljIHZvaWQgcGFpbnRHZGtQaXhidWYoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHZGtQaXhidWYqIGljb24sIGNvbnN0IEludFJl
Y3QmIGljb25SZWN0KQoreworICAgIEludFNpemUgaWNvblNpemUoZ2RrX3BpeGJ1Zl9nZXRfd2lk
dGgoaWNvbiksIGdka19waXhidWZfZ2V0X2hlaWdodChpY29uKSk7CisgICAgaWYgKGljb25SZWN0
LnNpemUoKSAhPSBpY29uU2l6ZSkgeworICAgICAgICAvLyBXZSBjb3VsZCB1c2UgY2Fpcm9fc2Nh
bGUoKSBoZXJlIGJ1dCBjYWlyby9waXhtYW4gZG93bnNjYWxlIHF1YWxpdHkgaXMgcXVpdGUgYmFk
LgorICAgICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gc2NhbGVkSWNvbiA9IGdka19waXhidWZfc2Nh
bGVfc2ltcGxlKGljb24sIGljb25SZWN0LndpZHRoKCksIGljb25SZWN0LmhlaWdodCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdES19JTlRFUlBfQklMSU5FQVIpOworICAgICAgICBpY29uID0gc2NhbGVkSWNvbi5nZXQo
KTsKKyAgICB9CisKICAgICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
OwogICAgIGNhaXJvX3NhdmUoY3IpOwotICAgIGdka19jYWlyb19zZXRfc291cmNlX3BpeGJ1Zihj
ciwgaWNvbiwgaWNvblBvaW50LngoKSwgaWNvblBvaW50LnkoKSk7CisgICAgZ2RrX2NhaXJvX3Nl
dF9zb3VyY2VfcGl4YnVmKGNyLCBpY29uLCBpY29uUmVjdC54KCksIGljb25SZWN0LnkoKSk7CiAg
ICAgY2Fpcm9fcGFpbnQoY3IpOwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCisvLyBEZWZp
bmVkIGluIEdUSysgKGd0ay9ndGtpY29uZmFjdG9yeS5jKQorc3RhdGljIGNvbnN0IGdpbnQgZ3Rr
SWNvblNpemVNZW51ID0gMTY7CitzdGF0aWMgY29uc3QgZ2ludCBndGtJY29uU2l6ZVNtYWxsVG9v
bGJhciA9IDE4Oworc3RhdGljIGNvbnN0IGdpbnQgZ3RrSWNvblNpemVCdXR0b24gPSAyMDsKK3N0
YXRpYyBjb25zdCBnaW50IGd0a0ljb25TaXplTGFyZ2VUb29sYmFyID0gMjQ7CitzdGF0aWMgY29u
c3QgZ2ludCBndGtJY29uU2l6ZURuZCA9IDMyOworc3RhdGljIGNvbnN0IGdpbnQgZ3RrSWNvblNp
emVEaWFsb2cgPSA0ODsKKworc3RhdGljIEd0a0ljb25TaXplIGdldEljb25TaXplRm9yUGl4ZWxT
aXplKGdpbnQgcGl4ZWxTaXplKQoreworICAgIGlmIChwaXhlbFNpemUgPCBndGtJY29uU2l6ZVNt
YWxsVG9vbGJhcikKKyAgICAgICAgcmV0dXJuIEdUS19JQ09OX1NJWkVfTUVOVTsKKyAgICBpZiAo
cGl4ZWxTaXplID49IGd0a0ljb25TaXplU21hbGxUb29sYmFyICYmIHBpeGVsU2l6ZSA8IGd0a0lj
b25TaXplQnV0dG9uKQorICAgICAgICByZXR1cm4gR1RLX0lDT05fU0laRV9TTUFMTF9UT09MQkFS
OworICAgIGlmIChwaXhlbFNpemUgPj0gZ3RrSWNvblNpemVCdXR0b24gJiYgcGl4ZWxTaXplIDwg
Z3RrSWNvblNpemVMYXJnZVRvb2xiYXIpCisgICAgICAgIHJldHVybiBHVEtfSUNPTl9TSVpFX0JV
VFRPTjsKKyAgICBpZiAocGl4ZWxTaXplID49IGd0a0ljb25TaXplTGFyZ2VUb29sYmFyICYmIHBp
eGVsU2l6ZSA8IGd0a0ljb25TaXplRG5kKQorICAgICAgICByZXR1cm4gR1RLX0lDT05fU0laRV9M
QVJHRV9UT09MQkFSOworICAgIGlmIChwaXhlbFNpemUgPj0gZ3RrSWNvblNpemVEbmQgJiYgcGl4
ZWxTaXplIDwgZ3RrSWNvblNpemVEaWFsb2cpCisgICAgICAgIHJldHVybiBHVEtfSUNPTl9TSVpF
X0RORDsKKworICAgIHJldHVybiBHVEtfSUNPTl9TSVpFX0RJQUxPRzsKK30KKwogdm9pZCBSZW5k
ZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoQ1NTU3R5bGVT
ZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QK
IHsKICAgICBhZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKHNlbGVjdG9yLCBzdHls
ZSwgZSk7CkBAIC0yNDMsNTcgKzI3NSw3NyBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SQogICAg
IHJldHVybiBwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24obywgaSwgcmVjdCk7CiB9
CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRp
b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBF
bGVtZW50KiBlKSBjb25zdAorc3RhdGljIHZvaWQgYWRqdXN0U2VhcmNoRmllbGRJY29uU3R5bGUo
UmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIHN0eWxlLT5yZXNldEJvcmRlcigpOwogICAgIHN0
eWxlLT5yZXNldFBhZGRpbmcoKTsKIAorICAgIC8vIEdldCB0aGUgaWNvbiBzaXplIGJhc2VkIG9u
IHRoZSBmb250IHNpemUuCisgICAgaW50IGZvbnRTaXplID0gc3R5bGUtPmZvbnRTaXplKCk7Cisg
ICAgaWYgKGZvbnRTaXplIDwgZ3RrSWNvblNpemVNZW51KSB7CisgICAgICAgIHN0eWxlLT5zZXRX
aWR0aChMZW5ndGgoZm9udFNpemUsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQo
TGVuZ3RoKGZvbnRTaXplLCBGaXhlZCkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGdp
bnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwotICAgIGd0a19pY29uX3NpemVfbG9va3VwKEdUS19J
Q09OX1NJWkVfTUVOVSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBndGtfaWNvbl9zaXplX2xvb2t1
cChnZXRJY29uU2l6ZUZvclBpeGVsU2l6ZShmb250U2l6ZSksICZ3aWR0aCwgJmhlaWdodCk7CiAg
ICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4ZWQpKTsKICAgICBzdHlsZS0+c2V0
SGVpZ2h0KExlbmd0aChoZWlnaHQsIEZpeGVkKSk7CiB9CiAKLXN0YXRpYyBJbnRQb2ludCBjZW50
ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KFJlbmRlck9iamVjdCogb2JqZWN0
LCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2VhcmNo
RmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBS
ZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0Cit7CisgICAgYWRqdXN0U2VhcmNo
RmllbGRJY29uU3R5bGUoc3R5bGUpOworfQorCitzdGF0aWMgSW50UmVjdCBjZW50ZXJSZWN0VmVy
dGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIE5vZGUqIGlucHV0ID0gb2JqZWN0LT5ub2RlKCkt
PnNoYWRvd0FuY2VzdG9yTm9kZSgpOyAvLyBHZXQgdGhlIHJlbmRlcmVyIG9mIDxpbnB1dD4gZWxl
bWVudC4KKyAgICAvLyBHZXQgdGhlIHJlbmRlcmVyIG9mIDxpbnB1dD4gZWxlbWVudC4KKyAgICBO
b2RlKiBpbnB1dCA9IHJlbmRlck9iamVjdC0+bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsK
ICAgICBpZiAoIWlucHV0LT5yZW5kZXJlcigpLT5pc0JveCgpKQotICAgICAgICByZXR1cm4gcmVj
dC5sb2NhdGlvbigpOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgLy8gSWYgcG9z
c2libGUgY2VudGVyIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJlY3QgdmVydGljYWxseSBpbiB0
aGUgcGFyZW50IGlucHV0IGVsZW1lbnQuCiAgICAgLy8gV2UgYWxzbyBhZGQgb25lIHBpeGVsIGhl
cmUgdG8gZW5zdXJlIHRoYXQgdGhlIHkgY29vcmRpbmF0ZSBpcyByb3VuZGVkIHVwIGZvciBib3gg
aGVpZ2h0cwogICAgIC8vIHRoYXQgYXJlIGV2ZW4sIHdoaWNoIGxvb2tzIGluIHJlbGF0aW9uIHRv
IHRoZSBib3ggdGV4dC4KICAgICBJbnRSZWN0IGlucHV0Q29udGVudEJveCA9IHRvUmVuZGVyQm94
KGlucHV0LT5yZW5kZXJlcigpKS0+YWJzb2x1dGVDb250ZW50Qm94KCk7CiAKLSAgICByZXR1cm4g
SW50UG9pbnQocmVjdC54KCksIGlucHV0Q29udGVudEJveC55KCkgKyAoaW5wdXRDb250ZW50Qm94
LmhlaWdodCgpIC0gcmVjdC5oZWlnaHQoKSArIDEpIC8gMik7CisgICAgLy8gTWFrZSBzdXJlIHRo
ZSBzY2FsZWQgZGVjb3JhdGlvbiBzdGF5cyBzcXVhcmUgYW5kIHdpbGwgZml0IGluIGl0cyBwYXJl
bnQncyBib3guCisgICAgaW50IGljb25TaXplID0gc3RkOjptaW4oaW5wdXRDb250ZW50Qm94Lndp
ZHRoKCksIHN0ZDo6bWluKGlucHV0Q29udGVudEJveC5oZWlnaHQoKSwgcmVjdC5oZWlnaHQoKSkp
OworICAgIEludFJlY3Qgc2NhbGVkUmVjdChyZWN0LngoKSwgaW5wdXRDb250ZW50Qm94LnkoKSAr
IChpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCkgLSBpY29uU2l6ZSArIDEpIC8gMiwgaWNvblNpemUs
IGljb25TaXplKTsKKyAgICByZXR1cm4gc2NhbGVkUmVjdDsKIH0KIAogYm9vbCBSZW5kZXJUaGVt
ZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRlck9iamVjdCogcmVu
ZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKKyAgICBJbnRSZWN0IGljb25SZWN0ID0gY2VudGVyUmVjdFZlcnRpY2FsbHlJblBhcmVu
dElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpOworICAgIGlmIChpY29uUmVjdC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBp
Y29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBHVEtfU1RPQ0tfRklORCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJl
bmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLCBH
VEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0
LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJl
bmRlck9iamVjdCwgcmVjdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25TaXplRm9yUGl4ZWxTaXplKHJlY3Qu
aGVpZ2h0KCkpKTsKKyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5n
ZXQoKSwgaWNvblJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBSZW5kZXJUaGVt
ZUd0azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9y
KiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlKSBjb25zdAogewotICAg
IHN0eWxlLT5yZXNldEJvcmRlcigpOwotICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsKLQotICAg
IGdpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwotICAgIGd0a19pY29uX3NpemVfbG9va3VwKEdU
S19JQ09OX1NJWkVfTUVOVSwgJndpZHRoLCAmaGVpZ2h0KTsKLSAgICBzdHlsZS0+c2V0V2lkdGgo
TGVuZ3RoKHdpZHRoLCBGaXhlZCkpOwotICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKGhlaWdo
dCwgRml4ZWQpKTsKKyAgICBhZGp1c3RTZWFyY2hGaWVsZEljb25TdHlsZShzdHlsZSk7CiB9CiAK
IGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oUmVuZGVy
T2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogeworICAgIEludFJlY3QgaWNvblJlY3QgPSBjZW50ZXJSZWN0VmVydGlj
YWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCk7CisgICAgaWYgKGlj
b25SZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgR1JlZlB0cjxH
ZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5UUlksIEdUS19TVE9DS19D
TEVBUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0
RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5k
ZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwotICAgIHBhaW50R2RrUGl4YnVmKHBhaW50
SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5w
dXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0aGlzLCByZW5kZXJPYmplY3QpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEljb25TaXplRm9yUGl4
ZWxTaXplKHJlY3QuaGVpZ2h0KCkpKTsKKyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29u
dGV4dCwgaWNvbi5nZXQoKSwgaWNvblJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAt
MzE2LDE0ICszNjgsMjEgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRDYXBzTG9ja0luZGlj
YXRvcihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBpZiAocGFpbnRJ
bmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
KyAgICBpbnQgaWNvblNpemUgPSBzdGQ6Om1pbihyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkp
OwogICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VO
VFJZLCBHVEtfU1RPQ0tfQ0FQU19MT0NLX1dBUk5JTkcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxl
KCktPmRpcmVjdGlvbigpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndGtJY29uU3RhdGUodGhpcywgcmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5V
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBnZXRJY29u
U2l6ZUZvclBpeGVsU2l6ZShpY29uU2l6ZSkpOworCisgICAgLy8gT25seSByZS1zY2FsZSB0aGUg
aWNvbiB3aGVuIGl0J3Mgc21hbGxlciB0aGFuIHRoZSBtaW5pbXVtIGljb24gc2l6ZS4KKyAgICBp
ZiAoaWNvblNpemUgPj0gZ3RrSWNvblNpemVNZW51KQorICAgICAgICBpY29uU2l6ZSA9IGdka19w
aXhidWZfZ2V0X2hlaWdodChpY29uLmdldCgpKTsKIAogICAgIC8vIEdUSysgbG9jYXRlcyB0aGUg
aWNvbiByaWdodCBhbGlnbmVkIGluIHRoZSBlbnRyeS4gVGhlIGdpdmVuIHJlY3RhbmdsZSBpcyBh
bHJlYWR5CiAgICAgLy8gY2VudGVyZWQgdmVydGljYWxseSBieSBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuCi0gICAgSW50UG9pbnQgaWNvblBvc2l0aW9uKHJlY3QueCgpICsgcmVjdC53aWR0
aCgpIC0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgoaWNvbi5nZXQoKSksIHJlY3QueSgpKTsKLSAgICBw
YWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgaWNvblBvc2l0aW9u
KTsKKyAgICBJbnRSZWN0IGljb25SZWN0KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gaWNvblNp
emUsCisgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgpIC0gaWNv
blNpemUpIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgIGljb25TaXplLCBpY29uU2l6ZSk7Cisg
ICAgcGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGljb25SZWN0
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDIxLDEwICs0ODAsMTEgQEAgYm9vbCBSZW5k
ZXJUaGVtZUd0azo6cGFpbnRNZWRpYUJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwg
R3JhcGhpY3NDb250ZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZSh0
aGlzLCByZW5kZXJPYmplY3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdldE1lZGlhQnV0dG9uSWNvblNpemUobV9tZWRpYUljb25TaXplKSk7Ci0gICAgSW50
UG9pbnQgaWNvblBvaW50KHJlY3QueCgpICsgKHJlY3Qud2lkdGgoKSAtIG1fbWVkaWFJY29uU2l6
ZSkgLyAyLAotICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgp
IC0gbV9tZWRpYUljb25TaXplKSAvIDIpOworICAgIEludFJlY3QgaWNvblJlY3QocmVjdC54KCkg
KyAocmVjdC53aWR0aCgpIC0gbV9tZWRpYUljb25TaXplKSAvIDIsCisgICAgICAgICAgICAgICAg
ICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgpIC0gbV9tZWRpYUljb25TaXplKSAvIDIsCisg
ICAgICAgICAgICAgICAgICAgICBtX21lZGlhSWNvblNpemUsIG1fbWVkaWFJY29uU2l6ZSk7CiAg
ICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KHJlY3QpLCBtX3BhbmVsQ29sb3IsIENvbG9y
U3BhY2VEZXZpY2VSR0IpOwotICAgIHBhaW50R2RrUGl4YnVmKGNvbnRleHQsIGljb24uZ2V0KCks
IGljb25Qb2ludCk7CisgICAgcGFpbnRHZGtQaXhidWYoY29udGV4dCwgaWNvbi5nZXQoKSwgaWNv
blJlY3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>
<flag name="review"
          id="72780"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>