<?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>57760</bug_id>
          
          <creation_ts>2011-04-04 09:37:36 -0700</creation_ts>
          <short_desc>Factoring the creation of &apos;FunctionOnly&apos; callbacks in V8</short_desc>
          <delta_ts>2012-09-19 07:17:19 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56586</blocked>
    
    <blocked>57963</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Leandro Graciá Gil">leandrogracia</reporter>
          <assigned_to name="Leandro Graciá Gil">leandrogracia</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>378833</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-04 09:37:36 -0700</bug_when>
    <thetext>This patch makes a template of the existing functions to create callbacks from arguments in V8GeolocationCustom.cpp and places it in V8Utilites. This method is going to be used in common by Geolocation, the Media Stream API and possibly more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378835</commentid>
    <comment_count>1</comment_count>
      <attachid>88069</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-04 09:46:07 -0700</bug_when>
    <thetext>Created attachment 88069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378839</commentid>
    <comment_count>2</comment_count>
      <attachid>88069</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-04-04 09:54:58 -0700</bug_when>
    <thetext>Comment on attachment 88069
Patch

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

Do you have a bug to do the same for JSC?

&gt; Source/WebCore/bindings/v8/V8Utilities.h:58
&gt; +    void throwTypeMismatchException();

Now that the call-sites have been unified, there&apos;s probably no need for this to be a function - you can just call throwError() directly.

&gt; Source/WebCore/bindings/v8/V8Utilities.h:61
&gt; +    PassRefPtr&lt;V8CallbackType&gt; createFunctionOnlyCallback(v8::Local&lt;v8::Value&gt; value, bool&amp; succeeded, bool allowUndefined, bool allowNull)

It&apos;s usual to have the out param last. Also, an enum would be much easier to read than a pair of bools for allowUndefined and allowNull.

&gt; Source/WebCore/bindings/v8/custom/V8GeolocationCustom.cpp:-68
&gt; -    // Argument is optional (hence undefined is allowed), and null is allowed.

Would be good to preserve this comment at the call-site of createFunctionOnlyCallback().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378919</commentid>
    <comment_count>3</comment_count>
      <attachid>88086</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-04 11:39:42 -0700</bug_when>
    <thetext>Created attachment 88086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378920</commentid>
    <comment_count>4</comment_count>
      <attachid>88069</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-04 11:40:03 -0700</bug_when>
    <thetext>Comment on attachment 88069
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/V8Utilities.h:58
&gt;&gt; +    void throwTypeMismatchException();
&gt; 
&gt; Now that the call-sites have been unified, there&apos;s probably no need for this to be a function - you can just call throwError() directly.

Including V8Proxy.h in the header generates a dependency cycle. Keeping it in the cpp file avoids this.

&gt;&gt; Source/WebCore/bindings/v8/V8Utilities.h:61
&gt;&gt; +    PassRefPtr&lt;V8CallbackType&gt; createFunctionOnlyCallback(v8::Local&lt;v8::Value&gt; value, bool&amp; succeeded, bool allowUndefined, bool allowNull)
&gt; 
&gt; It&apos;s usual to have the out param last. Also, an enum would be much easier to read than a pair of bools for allowUndefined and allowNull.

Fixed. Using bitmasks and a typedef to unsigned as argument type, mimicking UpdateLayerPositionsFlag in RenderLayer.h.

&gt;&gt; Source/WebCore/bindings/v8/custom/V8GeolocationCustom.cpp:-68
&gt;&gt; -    // Argument is optional (hence undefined is allowed), and null is allowed.
&gt; 
&gt; Would be good to preserve this comment at the call-site of createFunctionOnlyCallback().

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378921</commentid>
    <comment_count>5</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-04 11:40:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 88069 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88069&amp;action=review
&gt; 
&gt; Do you have a bug to do the same for JSC?
&gt; 

Yes. Here it is: https://bugs.webkit.org/show_bug.cgi?id=57770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379412</commentid>
    <comment_count>6</comment_count>
      <attachid>88086</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-04-05 02:57:53 -0700</bug_when>
    <thetext>Comment on attachment 88086
Patch

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

&gt; Source/WebCore/bindings/v8/V8Utilities.h:61
&gt; +        CallbackRequireFunction = 1,

Would &apos;CallbackAllowFunction&apos; be a better name, to keep all three consistent, and to make clear what &apos;CallbackRequireFunction | CallbackAllowUndefined&apos; means?

&gt; Source/WebCore/bindings/v8/V8Utilities.h:77
&gt; +        // &apos;FunctionOnly&apos; is assumed for the created callback.

This comment seems a little odd. Maybe move it to above the method - &apos;Creates a callback of the templated type from a V8 Value which represents a function object. Values of null and undefined may be allowed, in which case the method succeeds but the callback is null.&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379477</commentid>
    <comment_count>7</comment_count>
      <attachid>88210</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-05 05:50:58 -0700</bug_when>
    <thetext>Created attachment 88210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379478</commentid>
    <comment_count>8</comment_count>
      <attachid>88086</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-04-05 05:51:26 -0700</bug_when>
    <thetext>Comment on attachment 88086
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/V8Utilities.h:61
&gt;&gt; +        CallbackRequireFunction = 1,
&gt; 
&gt; Would &apos;CallbackAllowFunction&apos; be a better name, to keep all three consistent, and to make clear what &apos;CallbackRequireFunction | CallbackAllowUndefined&apos; means?

Fixed.

&gt;&gt; Source/WebCore/bindings/v8/V8Utilities.h:77
&gt;&gt; +        // &apos;FunctionOnly&apos; is assumed for the created callback.
&gt; 
&gt; This comment seems a little odd. Maybe move it to above the method - &apos;Creates a callback of the templated type from a V8 Value which represents a function object. Values of null and undefined may be allowed, in which case the method succeeds but the callback is null.&apos;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379481</commentid>
    <comment_count>9</comment_count>
      <attachid>88210</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-04-05 05:54:32 -0700</bug_when>
    <thetext>Comment on attachment 88210
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379571</commentid>
    <comment_count>10</comment_count>
      <attachid>88210</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-05 08:10:35 -0700</bug_when>
    <thetext>Comment on attachment 88210
Patch

Clearing flags on attachment: 88210

Committed r82940: &lt;http://trac.webkit.org/changeset/82940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379573</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-05 08:10:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88069</attachid>
            <date>2011-04-04 09:46:07 -0700</date>
            <delta_ts>2011-04-04 11:40:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57760-20110404174605.patch</filename>
            <type>text/plain</type>
            <size>6329</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI4NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNzk1ZTZjOGIzMWM4NDg5
NjRiYzAwYTYyYmJiNjU5MDllNzI3Y2NlLi4yNzVhZmI5YWE1OTk0YmU3NzQxOTcxNDFmOTQ2MjAx
MjliOTQ4NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDQtMDQgIExlYW5k
cm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9ncmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhY3Rvcml6aW5nIHRoZSBjcmVh
dGlvbiBvZiAnRnVuY3Rpb25Pbmx5JyBjYWxsYmFja3MgaW4gVjguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzc2MAorCisgICAgICAgIFRoaXMgbWV0
aG9kIGNyZWF0ZXMgYSB0ZW1wbGF0ZSBmcm9tIGFuIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkgaW4g
VjhHZW9sb2NhdGlvbkN1c3RvbS5jcHAKKyAgICAgICAgdG8gVjhVdGlsaXRpZXMgdG8gYmUgdXNl
ZCBieSB0aGUgY3VzdG9tIGJpbmRpbmdzIG9mIGJvdGggR2VvbG9jYXRpb24gYW5kIHRoZSBNZWRp
YSBTdHJlYW0gQVBJLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vYXJndW1lbnQtdHlwZXMuaHRtbAorCisgICAgICAgICogYmluZGluZ3Mv
djgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3dUeXBlTWlzbWF0Y2hF
eGNlcHRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjayk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4R2VvbG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhHZW9sb2NhdGlvbjo6Z2V0Q3VycmVudFBvc2l0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhHZW9sb2NhdGlvbjo6d2F0Y2hQb3NpdGlvbkNhbGxiYWNrKToKKwogMjAxMS0wNC0w
NCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5jcHAKaW5kZXggZWViZTZiNWNlNTA2NjU4YWMzN2ZiNGJkOTdiNTExNWRiMmVh
NGMxOS4uYjYzMTM1OTM5MmUxOWUxOTczMmNhNjkwYjdkNmE4ZGFlNGNhOTlhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMTI3LDQgKzEyNyw5IEBA
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogICAg
IHJldHVybiAwOwogfQogCit2b2lkIHRocm93VHlwZU1pc21hdGNoRXhjZXB0aW9uKCkKK3sKKyAg
ICBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OkdlbmVyYWxFcnJvciwgIlRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3Iik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oCmluZGV4IDE4OTJiYjc0YjUy
Y2MzZmVmYzUyM2YyZWUwMjJjNGU5MTkyMTNjNmYuLjlmMmNmMTQxZmFjODIxYmFiYTJmNTEyYmM0
ZmFkN2IxMWJhYTQzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMu
aApAQCAtNTUsNiArNTUsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCisgICAgdm9pZCB0
aHJvd1R5cGVNaXNtYXRjaEV4Y2VwdGlvbigpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFY4
Q2FsbGJhY2tUeXBlPgorICAgIFBhc3NSZWZQdHI8VjhDYWxsYmFja1R5cGU+IGNyZWF0ZUZ1bmN0
aW9uT25seUNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBzdWNjZWVk
ZWQsIGJvb2wgYWxsb3dVbmRlZmluZWQsIGJvb2wgYWxsb3dOdWxsKQorICAgIHsKKyAgICAgICAg
c3VjY2VlZGVkID0gdHJ1ZTsKKworICAgICAgICBpZiAoKGFsbG93VW5kZWZpbmVkICYmIHZhbHVl
LT5Jc1VuZGVmaW5lZCgpKSB8fCAoYWxsb3dOdWxsICYmIHZhbHVlLT5Jc051bGwoKSkpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAvLyAnRnVuY3Rpb25Pbmx5JyBpcyBhc3N1bWVk
IGZvciB0aGUgY3JlYXRlZCBjYWxsYmFjay4KKyAgICAgICAgaWYgKCF2YWx1ZS0+SXNGdW5jdGlv
bigpKSB7CisgICAgICAgICAgICBzdWNjZWVkZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHRocm93
VHlwZU1pc21hdGNoRXhjZXB0aW9uKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiBWOENhbGxiYWNrVHlwZTo6Y3JlYXRlKHZhbHVlLCBnZXRTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIH0KKwogICAgIGNsYXNzIEFsbG93QWxsb2NhdGlv
biB7CiAgICAgcHVibGljOgogICAgICAgICBpbmxpbmUgQWxsb3dBbGxvY2F0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9uQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9u
Q3VzdG9tLmNwcAppbmRleCA1NGJkMTFjYjI0NTU1NjNlNzE0MGY0ZGZkYTM4YzIzZjlhNGI4Y2Zi
Li5iN2JjOWY5MmE3NTAyNGYxNTI2MDZlNWFkNDc5ZDA0YzE4YzRiYzU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhHZW9sb2NhdGlvbkN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4R2VvbG9jYXRpb25DdXN0
b20uY3BwCkBAIC0zMyw1MiArMzMsMTMgQEAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNs
dWRlICJWOEN1c3RvbVBvc2l0aW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJWOEN1c3RvbVBvc2l0
aW9uRXJyb3JDYWxsYmFjay5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFV0
aWxpdGllcy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgY2hhciB0eXBlTWlzbWF0Y2hF
cnJvcltdID0gIlRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3IjsKLQotc3RhdGlj
IHZvaWQgdGhyb3dUeXBlTWlzbWF0Y2hFeGNlcHRpb24oKQotewotICAgIFY4UHJveHk6OnRocm93
RXJyb3IoVjhQcm94eTo6R2VuZXJhbEVycm9yLCB0eXBlTWlzbWF0Y2hFcnJvcik7Ci19Ci0KLXN0
YXRpYyBQYXNzUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+IGNyZWF0ZVBvc2l0aW9uQ2FsbGJhY2so
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIHN1Y2NlZWRlZCkKLXsKLSAgICBzdWNj
ZWVkZWQgPSB0cnVlOwotCi0gICAgLy8gVGhlIHNwZWMgc3BlY2lmaWVzICdGdW5jdGlvbk9ubHkn
IGZvciB0aGlzIG9iamVjdC4KLSAgICBpZiAoIXZhbHVlLT5Jc0Z1bmN0aW9uKCkpIHsKLSAgICAg
ICAgc3VjY2VlZGVkID0gZmFsc2U7Ci0gICAgICAgIHRocm93VHlwZU1pc21hdGNoRXhjZXB0aW9u
KCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBWOEN1c3RvbVBvc2l0
aW9uQ2FsbGJhY2s6OmNyZWF0ZSh2YWx1ZSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
LX0KLQotc3RhdGljIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBjcmVhdGVQb3Np
dGlvbkVycm9yQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIHN1Y2Nl
ZWRlZCkKLXsKLSAgICBzdWNjZWVkZWQgPSB0cnVlOwotCi0gICAgLy8gQXJndW1lbnQgaXMgb3B0
aW9uYWwgKGhlbmNlIHVuZGVmaW5lZCBpcyBhbGxvd2VkKSwgYW5kIG51bGwgaXMgYWxsb3dlZC4K
LSAgICBpZiAoaXNVbmRlZmluZWRPck51bGwodmFsdWUpKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIC8vIFRoZSBzcGVjIHNwZWNpZmllcyAnRnVuY3Rpb25Pbmx5JyBmb3IgdGhpcyBvYmplY3Qu
Ci0gICAgaWYgKCF2YWx1ZS0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIHN1Y2NlZWRlZCA9IGZh
bHNlOwotICAgICAgICB0aHJvd1R5cGVNaXNtYXRjaEV4Y2VwdGlvbigpOwotICAgICAgICByZXR1
cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gVjhDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2s6
OmNyZWF0ZSh2YWx1ZSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLX0KLQogc3RhdGlj
IFBhc3NSZWZQdHI8UG9zaXRpb25PcHRpb25zPiBjcmVhdGVQb3NpdGlvbk9wdGlvbnModjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIHN1Y2NlZWRlZCkKIHsKICAgICBzdWNjZWVkZWQg
PSB0cnVlOwpAQCAtMTcyLDEyICsxMzMsMTIgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4R2Vv
bG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWUKIAog
ICAgIGJvb2wgc3VjY2VlZGVkID0gZmFsc2U7CiAKLSAgICBSZWZQdHI8UG9zaXRpb25DYWxsYmFj
az4gcG9zaXRpb25DYWxsYmFjayA9IGNyZWF0ZVBvc2l0aW9uQ2FsbGJhY2soYXJnc1swXSwgc3Vj
Y2VlZGVkKTsKKyAgICBSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4gcG9zaXRpb25DYWxsYmFjayA9
IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPFY4Q3VzdG9tUG9zaXRpb25DYWxsYmFjaz4oYXJn
c1swXSwgc3VjY2VlZGVkLCBmYWxzZSwgZmFsc2UpOwogICAgIGlmICghc3VjY2VlZGVkKQogICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIEFTU0VSVChwb3NpdGlvbkNhbGxiYWNr
KTsKIAotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IHBvc2l0aW9uRXJyb3JDYWxs
YmFjayA9IGNyZWF0ZVBvc2l0aW9uRXJyb3JDYWxsYmFjayhhcmdzWzFdLCBzdWNjZWVkZWQpOwor
ICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IHBvc2l0aW9uRXJyb3JDYWxsYmFjayA9
IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPFY4Q3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNr
PihhcmdzWzFdLCBzdWNjZWVkZWQsIHRydWUsIHRydWUpOwogICAgIGlmICghc3VjY2VlZGVkKQog
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCkBAIC0xOTcsMTIgKzE1OCwxMiBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhHZW9sb2NhdGlvbjo6d2F0Y2hQb3NpdGlvbkNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmCiAKICAgICBib29sIHN1Y2NlZWRlZCA9IGZhbHNlOwogCi0g
ICAgUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+IHBvc2l0aW9uQ2FsbGJhY2sgPSBjcmVhdGVQb3Np
dGlvbkNhbGxiYWNrKGFyZ3NbMF0sIHN1Y2NlZWRlZCk7CisgICAgUmVmUHRyPFBvc2l0aW9uQ2Fs
bGJhY2s+IHBvc2l0aW9uQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOEN1
c3RvbVBvc2l0aW9uQ2FsbGJhY2s+KGFyZ3NbMF0sIHN1Y2NlZWRlZCwgZmFsc2UsIGZhbHNlKTsK
ICAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAg
ICBBU1NFUlQocG9zaXRpb25DYWxsYmFjayk7CiAKLSAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNh
bGxiYWNrPiBwb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSBjcmVhdGVQb3NpdGlvbkVycm9yQ2FsbGJh
Y2soYXJnc1sxXSwgc3VjY2VlZGVkKTsKKyAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNr
PiBwb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOEN1
c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjaz4oYXJnc1sxXSwgc3VjY2VlZGVkLCB0cnVlLCB0cnVl
KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88086</attachid>
            <date>2011-04-04 11:39:42 -0700</date>
            <delta_ts>2011-04-05 05:51:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57760-20110404193940.patch</filename>
            <type>text/plain</type>
            <size>6855</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI4NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZmFjNTEyM2VmZjg3ZTNk
MjU4ZGU5YTRkOTg0MjUxNjQyZjA1NGVlLi5hYmQzZGY1N2MzNmIxNzkzM2MzNjc1ZWMyM2M1OGZh
MGI4M2I0OWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDQtMDQgIExlYW5k
cm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9ncmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhY3RvcmluZyB0aGUgY3JlYXRp
b24gb2YgJ0Z1bmN0aW9uT25seScgY2FsbGJhY2tzIGluIFY4LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc3NjAKKworICAgICAgICBUaGlzIG1ldGhv
ZCBjcmVhdGVzIGEgdGVtcGxhdGUgZnJvbSBhbiBleGlzdGluZyBmdW5jdGlvbmFsaXR5IGluIFY4
R2VvbG9jYXRpb25DdXN0b20uY3BwCisgICAgICAgIHRvIFY4VXRpbGl0aWVzIHRvIGJlIHVzZWQg
YnkgdGhlIGN1c3RvbSBiaW5kaW5ncyBvZiBib3RoIEdlb2xvY2F0aW9uIGFuZCB0aGUgTWVkaWEg
U3RyZWFtIEFQSS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2FyZ3VtZW50LXR5cGVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm93VHlwZU1pc21hdGNoRXhj
ZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
R2VvbG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R2VvbG9jYXRpb246OndhdGNoUG9zaXRpb25DYWxsYmFjayk6CisKIDIwMTEtMDQtMDQg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5jcHAKaW5kZXggZWViZTZiNWNlNTA2NjU4YWMzN2ZiNGJkOTdiNTExNWRiMmVhNGMxOS4u
YjYzMTM1OTM5MmUxOWUxOTczMmNhNjkwYjdkNmE4ZGFlNGNhOTlhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMTI3LDQgKzEyNyw5IEBAIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogICAgIHJldHVy
biAwOwogfQogCit2b2lkIHRocm93VHlwZU1pc21hdGNoRXhjZXB0aW9uKCkKK3sKKyAgICBWOFBy
b3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OkdlbmVyYWxFcnJvciwgIlRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3Iik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oCmluZGV4IDE4OTJiYjc0YjUyY2MzZmVm
YzUyM2YyZWUwMjJjNGU5MTkyMTNjNmYuLjcwM2YwYjIyMmE3OGZjMDBkNzhjYzQ5ZTgwNjM2NGI0
OGQ2OWRiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaApAQCAt
NTUsNiArNTUsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCisgICAgdm9pZCB0aHJvd1R5
cGVNaXNtYXRjaEV4Y2VwdGlvbigpOworCisgICAgZW51bSBDYWxsYmFja0FsbG93ZWRWYWx1ZUZs
YWcgeworICAgICAgICBDYWxsYmFja1JlcXVpcmVGdW5jdGlvbiA9IDEsCisgICAgICAgIENhbGxi
YWNrQWxsb3dVbmRlZmluZWQgPSAxIDw8IDEsCisgICAgICAgIENhbGxiYWNrQWxsb3dOdWxsID0g
MSA8PCAyCisgICAgfTsKKworICAgIHR5cGVkZWYgdW5zaWduZWQgQ2FsbGJhY2tBbGxvd2VkVmFs
dWVGbGFnczsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWOENhbGxiYWNrVHlwZT4KKyAgICBQ
YXNzUmVmUHRyPFY4Q2FsbGJhY2tUeXBlPiBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjayh2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgQ2FsbGJhY2tBbGxvd2VkVmFsdWVGbGFncyBhY2NlcHRl
ZFZhbHVlcywgYm9vbCYgc3VjY2VlZGVkKQorICAgIHsKKyAgICAgICAgc3VjY2VlZGVkID0gdHJ1
ZTsKKworICAgICAgICBpZiAoKHZhbHVlLT5Jc1VuZGVmaW5lZCgpICYmIChhY2NlcHRlZFZhbHVl
cyAmIENhbGxiYWNrQWxsb3dVbmRlZmluZWQpKQorICAgICAgICAgICAgfHwgKHZhbHVlLT5Jc051
bGwoKSAmJiAoYWNjZXB0ZWRWYWx1ZXMgJiBDYWxsYmFja0FsbG93TnVsbCkpKQorICAgICAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICAgICAgLy8gJ0Z1bmN0aW9uT25seScgaXMgYXNzdW1lZCBmb3Ig
dGhlIGNyZWF0ZWQgY2FsbGJhY2suCisgICAgICAgIGlmICghdmFsdWUtPklzRnVuY3Rpb24oKSkg
eworICAgICAgICAgICAgc3VjY2VlZGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aHJvd1R5cGVN
aXNtYXRjaEV4Y2VwdGlvbigpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4gVjhDYWxsYmFja1R5cGU6OmNyZWF0ZSh2YWx1ZSwgZ2V0U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICB9CisKICAgICBjbGFzcyBBbGxvd0FsbG9jYXRpb24gewog
ICAgIHB1YmxpYzoKICAgICAgICAgaW5saW5lIEFsbG93QWxsb2NhdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhHZW9sb2NhdGlvbkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhHZW9sb2NhdGlvbkN1c3Rv
bS5jcHAKaW5kZXggNTRiZDExY2IyNDU1NTYzZTcxNDBmNGRmZGEzOGMyM2Y5YTRiOGNmYi4uOTE2
ZTlkMjk0ODI0YTRiMWNiZTJjNDc1YjUwNTQzMjU3MTg1YzhlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4R2VvbG9jYXRpb25DdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9uQ3VzdG9tLmNw
cApAQCAtMzMsNTIgKzMzLDEzIEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAi
VjhDdXN0b21Qb3NpdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21Qb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhVdGlsaXRp
ZXMuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IGNoYXIgdHlwZU1pc21hdGNoRXJyb3Jb
XSA9ICJUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNyI7Ci0KLXN0YXRpYyB2b2lk
IHRocm93VHlwZU1pc21hdGNoRXhjZXB0aW9uKCkKLXsKLSAgICBWOFByb3h5Ojp0aHJvd0Vycm9y
KFY4UHJveHk6OkdlbmVyYWxFcnJvciwgdHlwZU1pc21hdGNoRXJyb3IpOwotfQotCi1zdGF0aWMg
UGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBjcmVhdGVQb3NpdGlvbkNhbGxiYWNrKHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBzdWNjZWVkZWQpCi17Ci0gICAgc3VjY2VlZGVk
ID0gdHJ1ZTsKLQotICAgIC8vIFRoZSBzcGVjIHNwZWNpZmllcyAnRnVuY3Rpb25Pbmx5JyBmb3Ig
dGhpcyBvYmplY3QuCi0gICAgaWYgKCF2YWx1ZS0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIHN1
Y2NlZWRlZCA9IGZhbHNlOwotICAgICAgICB0aHJvd1R5cGVNaXNtYXRjaEV4Y2VwdGlvbigpOwot
ICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gVjhDdXN0b21Qb3NpdGlvbkNh
bGxiYWNrOjpjcmVhdGUodmFsdWUsIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci19Ci0K
LXN0YXRpYyBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gY3JlYXRlUG9zaXRpb25F
cnJvckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBzdWNjZWVkZWQp
Ci17Ci0gICAgc3VjY2VlZGVkID0gdHJ1ZTsKLQotICAgIC8vIEFyZ3VtZW50IGlzIG9wdGlvbmFs
IChoZW5jZSB1bmRlZmluZWQgaXMgYWxsb3dlZCksIGFuZCBudWxsIGlzIGFsbG93ZWQuCi0gICAg
aWYgKGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAv
LyBUaGUgc3BlYyBzcGVjaWZpZXMgJ0Z1bmN0aW9uT25seScgZm9yIHRoaXMgb2JqZWN0LgotICAg
IGlmICghdmFsdWUtPklzRnVuY3Rpb24oKSkgewotICAgICAgICBzdWNjZWVkZWQgPSBmYWxzZTsK
LSAgICAgICAgdGhyb3dUeXBlTWlzbWF0Y2hFeGNlcHRpb24oKTsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotCi0gICAgcmV0dXJuIFY4Q3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrOjpjcmVh
dGUodmFsdWUsIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci19Ci0KIHN0YXRpYyBQYXNz
UmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4gY3JlYXRlUG9zaXRpb25PcHRpb25zKHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBib29sJiBzdWNjZWVkZWQpCiB7CiAgICAgc3VjY2VlZGVkID0gdHJ1
ZTsKQEAgLTE3MiwxMiArMTMzLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEdlb2xvY2F0
aW9uOjpnZXRDdXJyZW50UG9zaXRpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lCiAKICAgICBi
b29sIHN1Y2NlZWRlZCA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+IHBv
c2l0aW9uQ2FsbGJhY2sgPSBjcmVhdGVQb3NpdGlvbkNhbGxiYWNrKGFyZ3NbMF0sIHN1Y2NlZWRl
ZCk7CisgICAgUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+IHBvc2l0aW9uQ2FsbGJhY2sgPSBjcmVh
dGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOEN1c3RvbVBvc2l0aW9uQ2FsbGJhY2s+KGFyZ3NbMF0s
IENhbGxiYWNrUmVxdWlyZUZ1bmN0aW9uLCBzdWNjZWVkZWQpOwogICAgIGlmICghc3VjY2VlZGVk
KQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIEFTU0VSVChwb3NpdGlvbkNh
bGxiYWNrKTsKIAotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IHBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IGNyZWF0ZVBvc2l0aW9uRXJyb3JDYWxsYmFjayhhcmdzWzFdLCBzdWNjZWVk
ZWQpOworICAgIC8vIEFyZ3VtZW50IGlzIG9wdGlvbmFsIChoZW5jZSB1bmRlZmluZWQgaXMgYWxs
b3dlZCksIGFuZCBudWxsIGlzIGFsbG93ZWQuCisgICAgUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxs
YmFjaz4gcG9zaXRpb25FcnJvckNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8
VjhDdXN0b21Qb3NpdGlvbkVycm9yQ2FsbGJhY2s+KGFyZ3NbMV0sIENhbGxiYWNrQWxsb3dVbmRl
ZmluZWQgfCBDYWxsYmFja0FsbG93TnVsbCwgc3VjY2VlZGVkKTsKICAgICBpZiAoIXN1Y2NlZWRl
ZCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIApAQCAtMTk3LDEyICsxNTksMTMg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4R2VvbG9jYXRpb246OndhdGNoUG9zaXRpb25DYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogCiAgICAgYm9vbCBzdWNjZWVkZWQgPSBmYWxzZTsK
IAotICAgIFJlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBwb3NpdGlvbkNhbGxiYWNrID0gY3JlYXRl
UG9zaXRpb25DYWxsYmFjayhhcmdzWzBdLCBzdWNjZWVkZWQpOworICAgIFJlZlB0cjxQb3NpdGlv
bkNhbGxiYWNrPiBwb3NpdGlvbkNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8
VjhDdXN0b21Qb3NpdGlvbkNhbGxiYWNrPihhcmdzWzBdLCBDYWxsYmFja1JlcXVpcmVGdW5jdGlv
biwgc3VjY2VlZGVkKTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKICAgICBBU1NFUlQocG9zaXRpb25DYWxsYmFjayk7CiAKLSAgICBSZWZQdHI8
UG9zaXRpb25FcnJvckNhbGxiYWNrPiBwb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSBjcmVhdGVQb3Np
dGlvbkVycm9yQ2FsbGJhY2soYXJnc1sxXSwgc3VjY2VlZGVkKTsKKyAgICAvLyBBcmd1bWVudCBp
cyBvcHRpb25hbCAoaGVuY2UgdW5kZWZpbmVkIGlzIGFsbG93ZWQpLCBhbmQgbnVsbCBpcyBhbGxv
d2VkLgorICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IHBvc2l0aW9uRXJyb3JDYWxs
YmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPFY4Q3VzdG9tUG9zaXRpb25FcnJvckNh
bGxiYWNrPihhcmdzWzFdLCBDYWxsYmFja0FsbG93VW5kZWZpbmVkIHwgQ2FsbGJhY2tBbGxvd051
bGwsIHN1Y2NlZWRlZCk7CiAgICAgaWYgKCFzdWNjZWVkZWQpCiAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88210</attachid>
            <date>2011-04-05 05:50:58 -0700</date>
            <delta_ts>2011-04-05 08:10:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57760-20110405135056.patch</filename>
            <type>text/plain</type>
            <size>6834</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI5MjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkM2JlMDg5ZDQ3YTEzNDIw
YjVmZWNmNmQ1ZmM2YTBlZDUwNWVlZWM3Li4wZDIzYWViM2FkMTFlYjRlMDRjZmVmYzBiMzJkYmM2
NDgyYjE0ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDQtMDUgIExlYW5k
cm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9ncmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhY3RvcmluZyB0aGUgY3JlYXRp
b24gb2YgJ0Z1bmN0aW9uT25seScgY2FsbGJhY2tzIGluIFY4LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc3NjAKKworICAgICAgICBUaGlzIG1ldGhv
ZCBjcmVhdGVzIGEgdGVtcGxhdGUgZnJvbSBhbiBleGlzdGluZyBmdW5jdGlvbmFsaXR5IGluIFY4
R2VvbG9jYXRpb25DdXN0b20uY3BwCisgICAgICAgIHRvIFY4VXRpbGl0aWVzIHRvIGJlIHVzZWQg
YnkgdGhlIGN1c3RvbSBiaW5kaW5ncyBvZiBib3RoIEdlb2xvY2F0aW9uIGFuZCB0aGUgTWVkaWEg
U3RyZWFtIEFQSS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2FyZ3VtZW50LXR5cGVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm93VHlwZU1pc21hdGNoRXhj
ZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
R2VvbG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R2VvbG9jYXRpb246OndhdGNoUG9zaXRpb25DYWxsYmFjayk6CisKIDIwMTEtMDQtMDUg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5j
cHAKaW5kZXggZWViZTZiNWNlNTA2NjU4YWMzN2ZiNGJkOTdiNTExNWRiMmVhNGMxOS4uYjYzMTM1
OTM5MmUxOWUxOTczMmNhNjkwYjdkNmE4ZGFlNGNhOTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMTI3LDQgKzEyNyw5IEBAIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogICAgIHJldHVybiAwOwog
fQogCit2b2lkIHRocm93VHlwZU1pc21hdGNoRXhjZXB0aW9uKCkKK3sKKyAgICBWOFByb3h5Ojp0
aHJvd0Vycm9yKFY4UHJveHk6OkdlbmVyYWxFcnJvciwgIlRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3Iik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oCmluZGV4IDE4OTJiYjc0YjUyY2MzZmVmYzUyM2Yy
ZWUwMjJjNGU5MTkyMTNjNmYuLjY1MDdmNjE5NDcxYmU4MzU2OGFjZTM2ZDUzMDBjMzkwMmYwMWZm
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaApAQCAtNTUsNiAr
NTUsMzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCisgICAgdm9pZCB0aHJvd1R5cGVNaXNt
YXRjaEV4Y2VwdGlvbigpOworCisgICAgZW51bSBDYWxsYmFja0FsbG93ZWRWYWx1ZUZsYWcgewor
ICAgICAgICBDYWxsYmFja0FsbG93RnVuY3Rpb24gPSAwLAorICAgICAgICBDYWxsYmFja0FsbG93
VW5kZWZpbmVkID0gMSwKKyAgICAgICAgQ2FsbGJhY2tBbGxvd051bGwgPSAxIDw8IDEKKyAgICB9
OworCisgICAgdHlwZWRlZiB1bnNpZ25lZCBDYWxsYmFja0FsbG93ZWRWYWx1ZUZsYWdzOworCisg
ICAgLy8gJ0Z1bmN0aW9uT25seScgaXMgYXNzdW1lZCBmb3IgdGhlIGNyZWF0ZWQgY2FsbGJhY2su
CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFY4Q2FsbGJhY2tUeXBlPgorICAgIFBhc3NSZWZQdHI8
VjhDYWxsYmFja1R5cGU+IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBDYWxsYmFja0FsbG93ZWRWYWx1ZUZsYWdzIGFjY2VwdGVkVmFsdWVzLCBi
b29sJiBzdWNjZWVkZWQpCisgICAgeworICAgICAgICBzdWNjZWVkZWQgPSB0cnVlOworCisgICAg
ICAgIGlmICgodmFsdWUtPklzVW5kZWZpbmVkKCkgJiYgKGFjY2VwdGVkVmFsdWVzICYgQ2FsbGJh
Y2tBbGxvd1VuZGVmaW5lZCkpCisgICAgICAgICAgICB8fCAodmFsdWUtPklzTnVsbCgpICYmIChh
Y2NlcHRlZFZhbHVlcyAmIENhbGxiYWNrQWxsb3dOdWxsKSkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKworICAgICAgICBpZiAoIXZhbHVlLT5Jc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgICAgIHN1
Y2NlZWRlZCA9IGZhbHNlOworICAgICAgICAgICAgdGhyb3dUeXBlTWlzbWF0Y2hFeGNlcHRpb24o
KTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFY4
Q2FsbGJhY2tUeXBlOjpjcmVhdGUodmFsdWUsIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgfQorCiAgICAgY2xhc3MgQWxsb3dBbGxvY2F0aW9uIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIGlubGluZSBBbGxvd0FsbG9jYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4R2VvbG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4R2VvbG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDU0YmQx
MWNiMjQ1NTU2M2U3MTQwZjRkZmRhMzhjMjNmOWE0YjhjZmIuLjE5ZDFlNzIxNDBmNDA1ZGJiZWJi
MmZjYzY2OWFhZGY1Zjg4ZjRiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEdlb2xvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhHZW9sb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTMzLDUyICszMywx
MyBAQAogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tUG9zaXRpb25D
YWxsYmFjay5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCi0j
aW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBjaGFyIHR5cGVNaXNtYXRjaEVycm9yW10gPSAiVFlQRV9NSVNNQVRD
SF9FUlI6IERPTSBFeGNlcHRpb24gMTciOwotCi1zdGF0aWMgdm9pZCB0aHJvd1R5cGVNaXNtYXRj
aEV4Y2VwdGlvbigpCi17Ci0gICAgVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpHZW5lcmFs
RXJyb3IsIHR5cGVNaXNtYXRjaEVycm9yKTsKLX0KLQotc3RhdGljIFBhc3NSZWZQdHI8UG9zaXRp
b25DYWxsYmFjaz4gY3JlYXRlUG9zaXRpb25DYWxsYmFjayh2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWx1ZSwgYm9vbCYgc3VjY2VlZGVkKQotewotICAgIHN1Y2NlZWRlZCA9IHRydWU7Ci0KLSAgICAv
LyBUaGUgc3BlYyBzcGVjaWZpZXMgJ0Z1bmN0aW9uT25seScgZm9yIHRoaXMgb2JqZWN0LgotICAg
IGlmICghdmFsdWUtPklzRnVuY3Rpb24oKSkgewotICAgICAgICBzdWNjZWVkZWQgPSBmYWxzZTsK
LSAgICAgICAgdGhyb3dUeXBlTWlzbWF0Y2hFeGNlcHRpb24oKTsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotCi0gICAgcmV0dXJuIFY4Q3VzdG9tUG9zaXRpb25DYWxsYmFjazo6Y3JlYXRlKHZh
bHVlLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotfQotCi1zdGF0aWMgUGFzc1JlZlB0
cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IGNyZWF0ZVBvc2l0aW9uRXJyb3JDYWxsYmFjayh2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgc3VjY2VlZGVkKQotewotICAgIHN1Y2NlZWRl
ZCA9IHRydWU7Ci0KLSAgICAvLyBBcmd1bWVudCBpcyBvcHRpb25hbCAoaGVuY2UgdW5kZWZpbmVk
IGlzIGFsbG93ZWQpLCBhbmQgbnVsbCBpcyBhbGxvd2VkLgotICAgIGlmIChpc1VuZGVmaW5lZE9y
TnVsbCh2YWx1ZSkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgLy8gVGhlIHNwZWMgc3BlY2lm
aWVzICdGdW5jdGlvbk9ubHknIGZvciB0aGlzIG9iamVjdC4KLSAgICBpZiAoIXZhbHVlLT5Jc0Z1
bmN0aW9uKCkpIHsKLSAgICAgICAgc3VjY2VlZGVkID0gZmFsc2U7Ci0gICAgICAgIHRocm93VHlw
ZU1pc21hdGNoRXhjZXB0aW9uKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJl
dHVybiBWOEN1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFjazo6Y3JlYXRlKHZhbHVlLCBnZXRTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwotfQotCiBzdGF0aWMgUGFzc1JlZlB0cjxQb3NpdGlvbk9w
dGlvbnM+IGNyZWF0ZVBvc2l0aW9uT3B0aW9ucyh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Ym9vbCYgc3VjY2VlZGVkKQogewogICAgIHN1Y2NlZWRlZCA9IHRydWU7CkBAIC0xNzIsMTIgKzEz
MywxMyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhHZW9sb2NhdGlvbjo6Z2V0Q3VycmVudFBv
c2l0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZQogCiAgICAgYm9vbCBzdWNjZWVkZWQgPSBm
YWxzZTsKIAotICAgIFJlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBwb3NpdGlvbkNhbGxiYWNrID0g
Y3JlYXRlUG9zaXRpb25DYWxsYmFjayhhcmdzWzBdLCBzdWNjZWVkZWQpOworICAgIFJlZlB0cjxQ
b3NpdGlvbkNhbGxiYWNrPiBwb3NpdGlvbkNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2Fs
bGJhY2s8VjhDdXN0b21Qb3NpdGlvbkNhbGxiYWNrPihhcmdzWzBdLCBDYWxsYmFja0FsbG93RnVu
Y3Rpb24sIHN1Y2NlZWRlZCk7CiAgICAgaWYgKCFzdWNjZWVkZWQpCiAgICAgICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7CiAgICAgQVNTRVJUKHBvc2l0aW9uQ2FsbGJhY2spOwogCi0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gcG9zaXRpb25FcnJvckNhbGxiYWNrID0gY3JlYXRl
UG9zaXRpb25FcnJvckNhbGxiYWNrKGFyZ3NbMV0sIHN1Y2NlZWRlZCk7CisgICAgLy8gQXJndW1l
bnQgaXMgb3B0aW9uYWwgKGhlbmNlIHVuZGVmaW5lZCBpcyBhbGxvd2VkKSwgYW5kIG51bGwgaXMg
YWxsb3dlZC4KKyAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBwb3NpdGlvbkVycm9y
Q2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOEN1c3RvbVBvc2l0aW9uRXJy
b3JDYWxsYmFjaz4oYXJnc1sxXSwgQ2FsbGJhY2tBbGxvd1VuZGVmaW5lZCB8IENhbGxiYWNrQWxs
b3dOdWxsLCBzdWNjZWVkZWQpOwogICAgIGlmICghc3VjY2VlZGVkKQogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogCkBAIC0xOTcsMTIgKzE1OSwxMyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhHZW9sb2NhdGlvbjo6d2F0Y2hQb3NpdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmCiAKICAgICBib29sIHN1Y2NlZWRlZCA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFBvc2l0
aW9uQ2FsbGJhY2s+IHBvc2l0aW9uQ2FsbGJhY2sgPSBjcmVhdGVQb3NpdGlvbkNhbGxiYWNrKGFy
Z3NbMF0sIHN1Y2NlZWRlZCk7CisgICAgUmVmUHRyPFBvc2l0aW9uQ2FsbGJhY2s+IHBvc2l0aW9u
Q2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOEN1c3RvbVBvc2l0aW9uQ2Fs
bGJhY2s+KGFyZ3NbMF0sIENhbGxiYWNrQWxsb3dGdW5jdGlvbiwgc3VjY2VlZGVkKTsKICAgICBp
ZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICBBU1NF
UlQocG9zaXRpb25DYWxsYmFjayk7CiAKLSAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNr
PiBwb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSBjcmVhdGVQb3NpdGlvbkVycm9yQ2FsbGJhY2soYXJn
c1sxXSwgc3VjY2VlZGVkKTsKKyAgICAvLyBBcmd1bWVudCBpcyBvcHRpb25hbCAoaGVuY2UgdW5k
ZWZpbmVkIGlzIGFsbG93ZWQpLCBhbmQgbnVsbCBpcyBhbGxvd2VkLgorICAgIFJlZlB0cjxQb3Np
dGlvbkVycm9yQ2FsbGJhY2s+IHBvc2l0aW9uRXJyb3JDYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9u
T25seUNhbGxiYWNrPFY4Q3VzdG9tUG9zaXRpb25FcnJvckNhbGxiYWNrPihhcmdzWzFdLCBDYWxs
YmFja0FsbG93VW5kZWZpbmVkIHwgQ2FsbGJhY2tBbGxvd051bGwsIHN1Y2NlZWRlZCk7CiAgICAg
aWYgKCFzdWNjZWVkZWQpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>