<?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>27333</bug_id>
          
          <creation_ts>2009-07-15 23:54:01 -0700</creation_ts>
          <short_desc>cpplint should check for equality comparisons to 0/true/false</short_desc>
          <delta_ts>2009-07-16 12:23:51 -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>Tools / Tests</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132164</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-15 23:54:01 -0700</bug_when>
    <thetext>According to http://webkit.org/coding/coding-style.html,
&quot;Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132169</commentid>
    <comment_count>1</comment_count>
      <attachid>32839</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 00:06:09 -0700</bug_when>
    <thetext>Created attachment 32839
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132195</commentid>
    <comment_count>2</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-07-16 01:24:45 -0700</bug_when>
    <thetext>Though I&apos;m not a reviewer, it would make sense I comment on this patch as I introduced the linter. This looks great, thanks for this. A few comments:

- Maybe this rule will warn for &quot;font == truetype&quot; or something like this? Actually, it seems that HTMLMarqueeElement.cpp has &quot;attr-&gt;name() == truespeedAttr&quot;.
- Could you update WebKitStyleTest.test_null_false_zero using the example of the style guide? We can see the list of supported rules by this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132213</commentid>
    <comment_count>3</comment_count>
      <attachid>32849</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 02:48:55 -0700</bug_when>
    <thetext>Created attachment 32849
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132214</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 02:52:44 -0700</bug_when>
    <thetext>Nice catch on that bug Shinichiro.  I&apos;ve fixed it and moved the test case as suggested.

I did one one other small fix to the unit tests in this bug: I changed a regex in another test because it was failing due to a number in one of my directory names (WebKit-2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132262</commentid>
    <comment_count>5</comment_count>
      <attachid>32872</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 08:04:30 -0700</bug_when>
    <thetext>Created attachment 32872
Proposed fix (that addresses previous comments and has an updated ChangeLog).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132268</commentid>
    <comment_count>6</comment_count>
      <attachid>32874</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 08:41:46 -0700</bug_when>
    <thetext>Created attachment 32874
Updated patched.

Fixed the (ironic) incorrectly styled variable names in the test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132305</commentid>
    <comment_count>7</comment_count>
      <attachid>32874</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-16 11:40:10 -0700</bug_when>
    <thetext>Comment on attachment 32874
Updated patched.

&gt; +def check_for_comparisons_to_zero(filename, clean_lines, line_number, error):
&gt; +    # Get the line without comments and strings.
&gt; +    line = clean_lines.elided[line_number]
&gt; +
&gt; +    # Include NULL here so that users don&apos;t have to convert NULL to 0 first and then get this error.
&gt; +    if search(r&apos;[=!]=\s*(NULL|0|true|false)\W&apos;, line) or search(r&apos;\W(NULL|0|true|false)\s*[=!]=&apos;, line):
&gt; +        error(filename, line_number, &apos;readability/comparison_to_zero&apos;, 5,
&gt; +	      &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;)

I think the error message should be more specific:

      &apos;Tests for true/false, zero/non-zero, NULL/not-NULL should be done without equality comparisons.&apos;)

&gt; @@ -2907,8 +2904,29 @@ class WebKitStyleTest(CpplintTestBase):
&gt;  
&gt;          # 3. Tests for true/false, null/non-null, and zero/non-zero should
&gt;          #    all be done without equality comparisons.
&gt; -        # FIXME: Implement this.
&gt; -        pass
&gt; +        self.assert_lint(
&gt; +            &apos;if (count == 0)&apos;,
&gt; +            &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;
&gt; +            &apos;  [readability/comparison_to_zero] [5]&apos;)
&gt; +        self.assert_lint(
&gt; +            &apos;if (string == NULL)&apos;,
&gt; +            &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;
&gt; +            &apos;  [readability/comparison_to_zero] [5]&apos;)
&gt; +        self.assert_lint(
&gt; +            &apos;if (0 != aLongerVariableName)&apos;,
&gt; +            &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;
&gt; +            &apos;  [readability/comparison_to_zero] [5]&apos;)
&gt; +        self.assert_lint(
&gt; +            &apos;if (condition == true)&apos;,
&gt; +            &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;
&gt; +            &apos;  [readability/comparison_to_zero] [5]&apos;)
&gt; +        self.assert_lint(
&gt; +            &apos;if (myVariable == /* Why would anyone put a comment here? */ false)&apos;,
&gt; +            &apos;Tests for true/false, zero/non-zero, etc. should be done without equality comparisons.&apos;
&gt; +            &apos;  [readability/comparison_to_zero] [5]&apos;)
&gt; +        self.assert_lint(
&gt; +            &apos;if (fontType == trueType)&apos;,
&gt; +            &apos;&apos;)

The error messages here need to be updated to match the changed error message.

Ideally, all permutations of lhs, rhs and ==/!= should be tested here, but I think this is sufficient.

r=me with the error message change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132316</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-16 12:23:51 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/45981</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32839</attachid>
            <date>2009-07-16 00:06:09 -0700</date>
            <delta_ts>2009-07-16 02:48:55 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug27333.txt</filename>
            <type>text/plain</type>
            <size>4489</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0OTM1MzVjLi45ZmI4NGYxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDct
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNwcGxpbnQgc2hvdWxkIGNoZWNrIGZvciBl
cXVhbGl0eSBjb21wYXJpc29ucyB0byAwL3RydWUvZmFsc2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzMzCisKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvY3BwbGludC5weToKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0
dGVzdC5weToKKwogMjAwOS0wNy0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgKiBTY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lOiBDaGVjayBpbiB0aGUgdmVyc2lv
biB1c2VkIHRvCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGlu
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5CmluZGV4IDE4NTQ5
MjEuLmY0MTU0YzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBs
aW50LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5CkBAIC0x
MTksNiArMTE5LDcgQEAgX0VSUk9SX0NBVEVHT1JJRVMgPSAnJydcCiAgICAgcmVhZGFiaWxpdHkv
YnJhY2VzCiAgICAgcmVhZGFiaWxpdHkvY2FzdGluZwogICAgIHJlYWRhYmlsaXR5L2NoZWNrCisg
ICAgcmVhZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvCiAgICAgcmVhZGFiaWxpdHkvY29uc3Ry
dWN0b3JzCiAgICAgcmVhZGFiaWxpdHkvZm5fc2l6ZQogICAgIHJlYWRhYmlsaXR5L2Z1bmN0aW9u
CkBAIC0xNzg3LDYgKzE3ODgsMTYgQEAgZGVmIGNoZWNrX2NoZWNrKGZpbGVuYW1lLCBjbGVhbl9s
aW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAgICAgICAgICAgIGJyZWFrCiAKIAorZGVmIGNo
ZWNrX2Zvcl9jb21wYXJpc29uc190b196ZXJvKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9u
dW1iZXIsIGVycm9yKToKKyAgICAjIEdldCB0aGUgbGluZSB3aXRob3V0IGNvbW1lbnRzIGFuZCBz
dHJpbmdzLgorICAgIGxpbmUgPSBjbGVhbl9saW5lcy5lbGlkZWRbbGluZV9udW1iZXJdCisKKyAg
ICAjIEluY2x1ZGUgTlVMTCBoZXJlIHNvIHRoYXQgdXNlcnMgZG9uJ3QgaGF2ZSB0byBjb252ZXJ0
IE5VTEwgdG8gMCBmaXJzdCBhbmQgdGhlbiBnZXQgdGhpcyBlcnJvci4KKyAgICBpZiBzZWFyY2go
cidbPSFdPVxzKihOVUxMfDB8dHJ1ZXxmYWxzZSknLCBsaW5lKSBvciBzZWFyY2gocicoTlVMTHww
fHRydWV8ZmFsc2UpXHMqWz0hXT0nLCBsaW5lKToKKyAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxp
bmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvJywgNSwKKwkgICAgICAn
VGVzdHMgZm9yIHRydWUvZmFsc2UsIHplcm8vbm9uLXplcm8sIGV0Yy4gc2hvdWxkIGJlIGRvbmUg
d2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4nKQorCisKIGRlZiBnZXRfbGluZV93aWR0aChs
aW5lKToKICAgICAiIiJEZXRlcm1pbmVzIHRoZSB3aWR0aCBvZiB0aGUgbGluZSBpbiBjb2x1bW4g
cG9zaXRpb25zLgogCkBAIC0xODc4LDYgKzE4ODksNyBAQCBkZWYgY2hlY2tfc3R5bGUoZmlsZW5h
bWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24sIGVycm9yKToKICAg
ICBjaGVja19icmFjZXMoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3Ip
CiAgICAgY2hlY2tfc3BhY2luZyhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBl
cnJvcikKICAgICBjaGVja19jaGVjayhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVy
LCBlcnJvcikKKyAgICBjaGVja19mb3JfY29tcGFyaXNvbnNfdG9femVybyhmaWxlbmFtZSwgY2xl
YW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcikKIAogCiBfUkVfUEFUVEVSTl9JTkNMVURFX05F
V19TVFlMRSA9IHJlLmNvbXBpbGUocicjaW5jbHVkZSArIlteL10rXC5oIicpCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5CmluZGV4IDEwNjMyYTcu
LmJjMDdlODAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50
X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3Vu
aXR0ZXN0LnB5CkBAIC0xMDg2LDkgKzEwODYsNiBAQCBjbGFzcyBDcHBsaW50VGVzdChDcHBsaW50
VGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdDSEVDSyhzb21lX2l0ZXJhdG9y
ID09IG9iai5lbmQoKSknLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnRVhQRUNUX1RS
VUUoc29tZV9pdGVyYXRvciA9PSBvYmouZW5kKCkpJywgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
X2xpbnQoJ0VYUEVDVF9GQUxTRShzb21lX2l0ZXJhdG9yID09IG9iai5lbmQoKSknLCAnJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRfbGludCgnQ0hFQ0soc29tZV9wb2ludGVyICE9IE5VTEwpJywgJycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0VYUEVDVF9UUlVFKHNvbWVfcG9pbnRlciAhPSBO
VUxMKScsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdFWFBFQ1RfRkFMU0Uoc29tZV9w
b2ludGVyICE9IE5VTEwpJywgJycpCiAKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnQ0hFQ0so
Q3JlYXRlVGVzdEZpbGUoZGlyLCAoMSA8PCAyMCkpKTsnLCAnJykKICAgICAgICAgc2VsZi5hc3Nl
cnRfbGludCgnQ0hFQ0soQ3JlYXRlVGVzdEZpbGUoZGlyLCAoMSA+PiAyMCkpKTsnLCAnJykKQEAg
LTExMTksNiArMTExNiwyOCBAQCBjbGFzcyBDcHBsaW50VGVzdChDcHBsaW50VGVzdEJhc2UpOgog
CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0NIRUNLX0VRKCJmb28iLCAiZm9vIiknLCAnJykK
IAorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fdG9femVybyhzZWxmKToKKyAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgKKyAgICAgICAgICAgICdpZiAoYSA9PSAwKScsCisgICAgICAgICAgICAnVGVz
dHMgZm9yIHRydWUvZmFsc2UsIHplcm8vbm9uLXplcm8sIGV0Yy4gc2hvdWxkIGJlIGRvbmUgd2l0
aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4nCisgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkv
Y29tcGFyaXNvbl90b196ZXJvXSBbNV0nKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KAorICAg
ICAgICAgICAgJ2lmIChiICE9IE5VTEwpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9m
YWxzZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5
IGNvbXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3Rv
X3plcm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYg
KDAgIT0gYV9sb25nZXJfdmFyaWFibGVfbmFtZSknLAorICAgICAgICAgICAgJ1Rlc3RzIGZvciB0
cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgZXF1
YWxpdHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBhcmlz
b25fdG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAgICAg
ICdpZiAobXlfdmFyID09IHRydWUpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNv
bXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3pl
cm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYgKG15
X3ZhciA9PSBmYWxzZSknLAorICAgICAgICAgICAgJ1Rlc3RzIGZvciB0cnVlL2ZhbHNlLCB6ZXJv
L25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgZXF1YWxpdHkgY29tcGFyaXNv
bnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBhcmlzb25fdG9femVyb10gWzVd
JykKKwogICAgIGRlZiB0ZXN0X2JyYWNlX2F0X2JlZ2luX29mX2xpbmUoc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0X2xpbnQoJ3snLAogICAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIHsg
c2hvdWxkIGJlIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGxpbmUnCg==
</data>
<flag name="review"
          id="17196"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32849</attachid>
            <date>2009-07-16 02:48:55 -0700</date>
            <delta_ts>2009-07-16 08:04:30 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug27333.txt</filename>
            <type>text/plain</type>
            <size>5118</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0OTM1MzVjLi45ZmI4NGYxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDct
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNwcGxpbnQgc2hvdWxkIGNoZWNrIGZvciBl
cXVhbGl0eSBjb21wYXJpc29ucyB0byAwL3RydWUvZmFsc2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzMzCisKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvY3BwbGludC5weToKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0
dGVzdC5weToKKwogMjAwOS0wNy0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgKiBTY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lOiBDaGVjayBpbiB0aGUgdmVyc2lv
biB1c2VkIHRvCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGlu
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5CmluZGV4IDE4NTQ5
MjEuLmZjNDBhODYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBs
aW50LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5CkBAIC0x
MTksNiArMTE5LDcgQEAgX0VSUk9SX0NBVEVHT1JJRVMgPSAnJydcCiAgICAgcmVhZGFiaWxpdHkv
YnJhY2VzCiAgICAgcmVhZGFiaWxpdHkvY2FzdGluZwogICAgIHJlYWRhYmlsaXR5L2NoZWNrCisg
ICAgcmVhZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvCiAgICAgcmVhZGFiaWxpdHkvY29uc3Ry
dWN0b3JzCiAgICAgcmVhZGFiaWxpdHkvZm5fc2l6ZQogICAgIHJlYWRhYmlsaXR5L2Z1bmN0aW9u
CkBAIC0xNzg3LDYgKzE3ODgsMTYgQEAgZGVmIGNoZWNrX2NoZWNrKGZpbGVuYW1lLCBjbGVhbl9s
aW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAgICAgICAgICAgIGJyZWFrCiAKIAorZGVmIGNo
ZWNrX2Zvcl9jb21wYXJpc29uc190b196ZXJvKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9u
dW1iZXIsIGVycm9yKToKKyAgICAjIEdldCB0aGUgbGluZSB3aXRob3V0IGNvbW1lbnRzIGFuZCBz
dHJpbmdzLgorICAgIGxpbmUgPSBjbGVhbl9saW5lcy5lbGlkZWRbbGluZV9udW1iZXJdCisKKyAg
ICAjIEluY2x1ZGUgTlVMTCBoZXJlIHNvIHRoYXQgdXNlcnMgZG9uJ3QgaGF2ZSB0byBjb252ZXJ0
IE5VTEwgdG8gMCBmaXJzdCBhbmQgdGhlbiBnZXQgdGhpcyBlcnJvci4KKyAgICBpZiBzZWFyY2go
cidbPSFdPVxzKihOVUxMfDB8dHJ1ZXxmYWxzZSlcVycsIGxpbmUpIG9yIHNlYXJjaChyJ1xXKE5V
TEx8MHx0cnVlfGZhbHNlKVxzKls9IV09JywgbGluZSk6CisgICAgICAgIGVycm9yKGZpbGVuYW1l
LCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L2NvbXBhcmlzb25fdG9femVybycsIDUsCisJICAg
ICAgJ1Rlc3RzIGZvciB0cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBk
b25lIHdpdGhvdXQgZXF1YWxpdHkgY29tcGFyaXNvbnMuJykKKworCiBkZWYgZ2V0X2xpbmVfd2lk
dGgobGluZSk6CiAgICAgIiIiRGV0ZXJtaW5lcyB0aGUgd2lkdGggb2YgdGhlIGxpbmUgaW4gY29s
dW1uIHBvc2l0aW9ucy4KIApAQCAtMTg3OCw2ICsxODg5LDcgQEAgZGVmIGNoZWNrX3N0eWxlKGZp
bGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBlcnJvcik6
CiAgICAgY2hlY2tfYnJhY2VzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVy
cm9yKQogICAgIGNoZWNrX3NwYWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJl
ciwgZXJyb3IpCiAgICAgY2hlY2tfY2hlY2soZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251
bWJlciwgZXJyb3IpCisgICAgY2hlY2tfZm9yX2NvbXBhcmlzb25zX3RvX3plcm8oZmlsZW5hbWUs
IGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpCiAKIAogX1JFX1BBVFRFUk5fSU5DTFVE
RV9ORVdfU1RZTEUgPSByZS5jb21waWxlKHInI2luY2x1ZGUgKyJbXi9dK1wuaCInKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0dGVzdC5weQppbmRleCAxMDYz
MmE3Li4wNTUxNTc4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3Bw
bGludF91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGlu
dF91bml0dGVzdC5weQpAQCAtMTA4Niw5ICsxMDg2LDYgQEAgY2xhc3MgQ3BwbGludFRlc3QoQ3Bw
bGludFRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnQ0hFQ0soc29tZV9pdGVy
YXRvciA9PSBvYmouZW5kKCkpJywgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0VYUEVD
VF9UUlVFKHNvbWVfaXRlcmF0b3IgPT0gb2JqLmVuZCgpKScsICcnKQogICAgICAgICBzZWxmLmFz
c2VydF9saW50KCdFWFBFQ1RfRkFMU0Uoc29tZV9pdGVyYXRvciA9PSBvYmouZW5kKCkpJywgJycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0NIRUNLKHNvbWVfcG9pbnRlciAhPSBOVUxMKScs
ICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdFWFBFQ1RfVFJVRShzb21lX3BvaW50ZXIg
IT0gTlVMTCknLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnRVhQRUNUX0ZBTFNFKHNv
bWVfcG9pbnRlciAhPSBOVUxMKScsICcnKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0NI
RUNLKENyZWF0ZVRlc3RGaWxlKGRpciwgKDEgPDwgMjApKSk7JywgJycpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X2xpbnQoJ0NIRUNLKENyZWF0ZVRlc3RGaWxlKGRpciwgKDEgPj4gMjApKSk7JywgJycp
CkBAIC0xNjQ5LDcgKzE2NDYsNyBAQCBjbGFzcyBDcHBsaW50VGVzdChDcHBsaW50VGVzdEJhc2Up
OgogICAgICAgICBjcHBsaW50LnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLCBbXSwg
ZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBleHBlY3RlZF9ndWFyZCA9ICcnCiAgICAgICAgIG1h
dGNoZXIgPSByZS5jb21waWxlKAotICAgICAgICAgICAgJ05vIFwjaWZuZGVmIGhlYWRlciBndWFy
ZCBmb3VuZFwsIHN1Z2dlc3RlZCBDUFAgdmFyaWFibGUgaXNcOiAoW0EtWl9dKykgJykKKyAgICAg
ICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQgZm91bmRcLCBzdWdnZXN0ZWQgQ1BQIHZh
cmlhYmxlIGlzXDogKFtBLVpfMC05XSspICcpCiAgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKToKICAgICAgICAgICAgIG1hdGNoZXMgPSBtYXRjaGVyLm1h
dGNoKGVycm9yKQogICAgICAgICAgICAgaWYgbWF0Y2hlczoKQEAgLTI5MDcsOCArMjkwNCwyOSBA
QCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwbGludFRlc3RCYXNlKToKIAogICAgICAgICAjIDMu
IFRlc3RzIGZvciB0cnVlL2ZhbHNlLCBudWxsL25vbi1udWxsLCBhbmQgemVyby9ub24temVybyBz
aG91bGQKICAgICAgICAgIyAgICBhbGwgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNvbXBhcmlz
b25zLgotICAgICAgICAjIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KLSAgICAgICAgcGFzcworICAg
ICAgICBzZWxmLmFzc2VydF9saW50KAorICAgICAgICAgICAgJ2lmIChjb3VudCA9PSAwKScsCisg
ICAgICAgICAgICAnVGVzdHMgZm9yIHRydWUvZmFsc2UsIHplcm8vbm9uLXplcm8sIGV0Yy4gc2hv
dWxkIGJlIGRvbmUgd2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4nCisgICAgICAgICAgICAn
ICBbcmVhZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvXSBbNV0nKQorICAgICAgICBzZWxmLmFz
c2VydF9saW50KAorICAgICAgICAgICAgJ2lmIChwdHIgPT0gTlVMTCknLAorICAgICAgICAgICAg
J1Rlc3RzIGZvciB0cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25l
IHdpdGhvdXQgZXF1YWxpdHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmls
aXR5L2NvbXBhcmlzb25fdG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgK
KyAgICAgICAgICAgICdpZiAoMCAhPSBhX2xvbmdlcl92YXJpYWJsZV9uYW1lKScsCisgICAgICAg
ICAgICAnVGVzdHMgZm9yIHRydWUvZmFsc2UsIHplcm8vbm9uLXplcm8sIGV0Yy4gc2hvdWxkIGJl
IGRvbmUgd2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4nCisgICAgICAgICAgICAnICBbcmVh
ZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvXSBbNV0nKQorICAgICAgICBzZWxmLmFzc2VydF9s
aW50KAorICAgICAgICAgICAgJ2lmIChjb25kaXRpb24gPT0gdHJ1ZSknLAorICAgICAgICAgICAg
J1Rlc3RzIGZvciB0cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25l
IHdpdGhvdXQgZXF1YWxpdHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmls
aXR5L2NvbXBhcmlzb25fdG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgK
KyAgICAgICAgICAgICdpZiAobXlfdmFyID09IC8qIFdoeSB3b3VsZCBhbnlvbmUgcHV0IGEgY29t
bWVudCBoZXJlPyAqLyBmYWxzZSknLAorICAgICAgICAgICAgJ1Rlc3RzIGZvciB0cnVlL2ZhbHNl
LCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgZXF1YWxpdHkgY29t
cGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBhcmlzb25fdG9femVy
b10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAgICAgICdpZiAoZm9u
dF90eXBlID09IHRydWV0eXBlKScsCisgICAgICAgICAgICAnJykKIAogICAgIGRlZiB0ZXN0X25h
bWVzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32872</attachid>
            <date>2009-07-16 08:04:30 -0700</date>
            <delta_ts>2009-07-16 08:41:46 -0700</delta_ts>
            <desc>Proposed fix (that addresses previous comments and has an updated ChangeLog).</desc>
            <filename>bug27333.txt</filename>
            <type>text/plain</type>
            <size>5326</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0OTM1MzVjLi44MzRhZmRjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNwcGxpbnQgc2hvdWxkIGNoZWNrIGZvciBl
cXVhbGl0eSBjb21wYXJpc29ucyB0byAwL3RydWUvZmFsc2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzMzCisKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvY3BwbGludC5weTogQWRkZWQgdGhlIG5ldyBsaW50IGNoZWNrLgorICAgICAgICAqIFNj
cmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5OiBBZGQgdGVzdHMgZm9yIHRoZSBuZXcg
bGludCBjaGVjaworICAgICAgICAgIGFuZCBmaXggYSByZWdleCB0aGF0IGluIGFub3RoZXIgdW5p
dCB0ZXN0IHRoYXQgY2F1c2VkIGl0IHRvIGZhaWwgd2hlbgorICAgICAgICAgIHlvdSBoYXZlIGEg
ZGlyZWN0b3J5IHdpdGggYSBudW1iZXIgaW4gaXQgKGxpa2UgV2ViS2l0LTIpCisKIDIwMDktMDct
MTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgICogU2NyaXB0cy9k
by13ZWJjb3JlLXJlbmFtZTogQ2hlY2sgaW4gdGhlIHZlcnNpb24gdXNlZCB0bwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvY3BwbGludC5weQppbmRleCAxODU0OTIxLi5mYzQwYTg2IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQpAQCAtMTE5LDYgKzExOSw3IEBAIF9FUlJP
Ul9DQVRFR09SSUVTID0gJycnXAogICAgIHJlYWRhYmlsaXR5L2JyYWNlcwogICAgIHJlYWRhYmls
aXR5L2Nhc3RpbmcKICAgICByZWFkYWJpbGl0eS9jaGVjaworICAgIHJlYWRhYmlsaXR5L2NvbXBh
cmlzb25fdG9femVybwogICAgIHJlYWRhYmlsaXR5L2NvbnN0cnVjdG9ycwogICAgIHJlYWRhYmls
aXR5L2ZuX3NpemUKICAgICByZWFkYWJpbGl0eS9mdW5jdGlvbgpAQCAtMTc4Nyw2ICsxNzg4LDE2
IEBAIGRlZiBjaGVja19jaGVjayhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBl
cnJvcik6CiAgICAgICAgICAgICBicmVhawogCiAKK2RlZiBjaGVja19mb3JfY29tcGFyaXNvbnNf
dG9femVybyhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcik6CisgICAg
IyBHZXQgdGhlIGxpbmUgd2l0aG91dCBjb21tZW50cyBhbmQgc3RyaW5ncy4KKyAgICBsaW5lID0g
Y2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXQorCisgICAgIyBJbmNsdWRlIE5VTEwgaGVy
ZSBzbyB0aGF0IHVzZXJzIGRvbid0IGhhdmUgdG8gY29udmVydCBOVUxMIHRvIDAgZmlyc3QgYW5k
IHRoZW4gZ2V0IHRoaXMgZXJyb3IuCisgICAgaWYgc2VhcmNoKHInWz0hXT1ccyooTlVMTHwwfHRy
dWV8ZmFsc2UpXFcnLCBsaW5lKSBvciBzZWFyY2gocidcVyhOVUxMfDB8dHJ1ZXxmYWxzZSlccypb
PSFdPScsIGxpbmUpOgorICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdyZWFk
YWJpbGl0eS9jb21wYXJpc29uX3RvX3plcm8nLCA1LAorCSAgICAgICdUZXN0cyBmb3IgdHJ1ZS9m
YWxzZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5
IGNvbXBhcmlzb25zLicpCisKKwogZGVmIGdldF9saW5lX3dpZHRoKGxpbmUpOgogICAgICIiIkRl
dGVybWluZXMgdGhlIHdpZHRoIG9mIHRoZSBsaW5lIGluIGNvbHVtbiBwb3NpdGlvbnMuCiAKQEAg
LTE4NzgsNiArMTg4OSw3IEBAIGRlZiBjaGVja19zdHlsZShmaWxlbmFtZSwgY2xlYW5fbGluZXMs
IGxpbmVfbnVtYmVyLCBmaWxlX2V4dGVuc2lvbiwgZXJyb3IpOgogICAgIGNoZWNrX2JyYWNlcyhm
aWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcikKICAgICBjaGVja19zcGFj
aW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKQogICAgIGNoZWNr
X2NoZWNrKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKQorICAgIGNo
ZWNrX2Zvcl9jb21wYXJpc29uc190b196ZXJvKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9u
dW1iZXIsIGVycm9yKQogCiAKIF9SRV9QQVRURVJOX0lOQ0xVREVfTkVXX1NUWUxFID0gcmUuY29t
cGlsZShyJyNpbmNsdWRlICsiW14vXStcLmgiJykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKaW5kZXggMTA2MzJhNy4uMDU1MTU3OCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKQEAgLTEw
ODYsOSArMTA4Niw2IEBAIGNsYXNzIENwcGxpbnRUZXN0KENwcGxpbnRUZXN0QmFzZSk6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0NIRUNLKHNvbWVfaXRlcmF0b3IgPT0gb2JqLmVuZCgpKScs
ICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdFWFBFQ1RfVFJVRShzb21lX2l0ZXJhdG9y
ID09IG9iai5lbmQoKSknLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnRVhQRUNUX0ZB
TFNFKHNvbWVfaXRlcmF0b3IgPT0gb2JqLmVuZCgpKScsICcnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCdDSEVDSyhzb21lX3BvaW50ZXIgIT0gTlVMTCknLCAnJykKLSAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnRVhQRUNUX1RSVUUoc29tZV9wb2ludGVyICE9IE5VTEwpJywgJycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0VYUEVDVF9GQUxTRShzb21lX3BvaW50ZXIgIT0gTlVMTCkn
LCAnJykKIAogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdDSEVDSyhDcmVhdGVUZXN0RmlsZShk
aXIsICgxIDw8IDIwKSkpOycsICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdDSEVDSyhD
cmVhdGVUZXN0RmlsZShkaXIsICgxID4+IDIwKSkpOycsICcnKQpAQCAtMTY0OSw3ICsxNjQ2LDcg
QEAgY2xhc3MgQ3BwbGludFRlc3QoQ3BwbGludFRlc3RCYXNlKToKICAgICAgICAgY3BwbGludC5w
cm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywgW10sIGVycm9yX2NvbGxlY3RvcikKICAg
ICAgICAgZXhwZWN0ZWRfZ3VhcmQgPSAnJwogICAgICAgICBtYXRjaGVyID0gcmUuY29tcGlsZSgK
LSAgICAgICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQgZm91bmRcLCBzdWdnZXN0ZWQg
Q1BQIHZhcmlhYmxlIGlzXDogKFtBLVpfXSspICcpCisgICAgICAgICAgICAnTm8gXCNpZm5kZWYg
aGVhZGVyIGd1YXJkIGZvdW5kXCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpc1w6IChbQS1aXzAt
OV0rKSAnKQogICAgICAgICBmb3IgZXJyb3IgaW4gZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0
KCk6CiAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hlci5tYXRjaChlcnJvcikKICAgICAgICAg
ICAgIGlmIG1hdGNoZXM6CkBAIC0yOTA3LDggKzI5MDQsMjkgQEAgY2xhc3MgV2ViS2l0U3R5bGVU
ZXN0KENwcGxpbnRUZXN0QmFzZSk6CiAKICAgICAgICAgIyAzLiBUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgbnVsbC9ub24tbnVsbCwgYW5kIHplcm8vbm9uLXplcm8gc2hvdWxkCiAgICAgICAgICMgICAg
YWxsIGJlIGRvbmUgd2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4KLSAgICAgICAgIyBGSVhN
RTogSW1wbGVtZW50IHRoaXMuCi0gICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRfbGlu
dCgKKyAgICAgICAgICAgICdpZiAoY291bnQgPT0gMCknLAorICAgICAgICAgICAgJ1Rlc3RzIGZv
ciB0cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQg
ZXF1YWxpdHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBh
cmlzb25fdG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAg
ICAgICdpZiAocHRyID09IE5VTEwpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNv
bXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3pl
cm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYgKDAg
IT0gYV9sb25nZXJfdmFyaWFibGVfbmFtZSknLAorICAgICAgICAgICAgJ1Rlc3RzIGZvciB0cnVl
L2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgZXF1YWxp
dHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBhcmlzb25f
dG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAgICAgICdp
ZiAoY29uZGl0aW9uID09IHRydWUpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNv
bXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3pl
cm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYgKG15
X3ZhciA9PSAvKiBXaHkgd291bGQgYW55b25lIHB1dCBhIGNvbW1lbnQgaGVyZT8gKi8gZmFsc2Up
JywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxzZSwgemVyby9ub24temVybywgZXRj
LiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNvbXBhcmlzb25zLicKKyAgICAgICAg
ICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3plcm9dIFs1XScpCisgICAgICAgIHNl
bGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYgKGZvbnRfdHlwZSA9PSB0cnVldHlwZSkn
LAorICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9uYW1lcyhzZWxmKToKICAgICAgICAg
IyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32874</attachid>
            <date>2009-07-16 08:41:46 -0700</date>
            <delta_ts>2009-07-16 11:40:10 -0700</delta_ts>
            <desc>Updated patched.</desc>
            <filename>bug27333.txt</filename>
            <type>text/plain</type>
            <size>5329</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0OTM1MzVjLi44MzRhZmRjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MTUgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNwcGxpbnQgc2hvdWxkIGNoZWNrIGZvciBl
cXVhbGl0eSBjb21wYXJpc29ucyB0byAwL3RydWUvZmFsc2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzMzCisKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvY3BwbGludC5weTogQWRkZWQgdGhlIG5ldyBsaW50IGNoZWNrLgorICAgICAgICAqIFNj
cmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5OiBBZGQgdGVzdHMgZm9yIHRoZSBuZXcg
bGludCBjaGVjaworICAgICAgICAgIGFuZCBmaXggYSByZWdleCB0aGF0IGluIGFub3RoZXIgdW5p
dCB0ZXN0IHRoYXQgY2F1c2VkIGl0IHRvIGZhaWwgd2hlbgorICAgICAgICAgIHlvdSBoYXZlIGEg
ZGlyZWN0b3J5IHdpdGggYSBudW1iZXIgaW4gaXQgKGxpa2UgV2ViS2l0LTIpCisKIDIwMDktMDct
MTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgICogU2NyaXB0cy9k
by13ZWJjb3JlLXJlbmFtZTogQ2hlY2sgaW4gdGhlIHZlcnNpb24gdXNlZCB0bwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvY3BwbGludC5weQppbmRleCAxODU0OTIxLi5mYzQwYTg2IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQpAQCAtMTE5LDYgKzExOSw3IEBAIF9FUlJP
Ul9DQVRFR09SSUVTID0gJycnXAogICAgIHJlYWRhYmlsaXR5L2JyYWNlcwogICAgIHJlYWRhYmls
aXR5L2Nhc3RpbmcKICAgICByZWFkYWJpbGl0eS9jaGVjaworICAgIHJlYWRhYmlsaXR5L2NvbXBh
cmlzb25fdG9femVybwogICAgIHJlYWRhYmlsaXR5L2NvbnN0cnVjdG9ycwogICAgIHJlYWRhYmls
aXR5L2ZuX3NpemUKICAgICByZWFkYWJpbGl0eS9mdW5jdGlvbgpAQCAtMTc4Nyw2ICsxNzg4LDE2
IEBAIGRlZiBjaGVja19jaGVjayhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBl
cnJvcik6CiAgICAgICAgICAgICBicmVhawogCiAKK2RlZiBjaGVja19mb3JfY29tcGFyaXNvbnNf
dG9femVybyhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcik6CisgICAg
IyBHZXQgdGhlIGxpbmUgd2l0aG91dCBjb21tZW50cyBhbmQgc3RyaW5ncy4KKyAgICBsaW5lID0g
Y2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXQorCisgICAgIyBJbmNsdWRlIE5VTEwgaGVy
ZSBzbyB0aGF0IHVzZXJzIGRvbid0IGhhdmUgdG8gY29udmVydCBOVUxMIHRvIDAgZmlyc3QgYW5k
IHRoZW4gZ2V0IHRoaXMgZXJyb3IuCisgICAgaWYgc2VhcmNoKHInWz0hXT1ccyooTlVMTHwwfHRy
dWV8ZmFsc2UpXFcnLCBsaW5lKSBvciBzZWFyY2gocidcVyhOVUxMfDB8dHJ1ZXxmYWxzZSlccypb
PSFdPScsIGxpbmUpOgorICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdyZWFk
YWJpbGl0eS9jb21wYXJpc29uX3RvX3plcm8nLCA1LAorCSAgICAgICdUZXN0cyBmb3IgdHJ1ZS9m
YWxzZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5
IGNvbXBhcmlzb25zLicpCisKKwogZGVmIGdldF9saW5lX3dpZHRoKGxpbmUpOgogICAgICIiIkRl
dGVybWluZXMgdGhlIHdpZHRoIG9mIHRoZSBsaW5lIGluIGNvbHVtbiBwb3NpdGlvbnMuCiAKQEAg
LTE4NzgsNiArMTg4OSw3IEBAIGRlZiBjaGVja19zdHlsZShmaWxlbmFtZSwgY2xlYW5fbGluZXMs
IGxpbmVfbnVtYmVyLCBmaWxlX2V4dGVuc2lvbiwgZXJyb3IpOgogICAgIGNoZWNrX2JyYWNlcyhm
aWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcikKICAgICBjaGVja19zcGFj
aW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKQogICAgIGNoZWNr
X2NoZWNrKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKQorICAgIGNo
ZWNrX2Zvcl9jb21wYXJpc29uc190b196ZXJvKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9u
dW1iZXIsIGVycm9yKQogCiAKIF9SRV9QQVRURVJOX0lOQ0xVREVfTkVXX1NUWUxFID0gcmUuY29t
cGlsZShyJyNpbmNsdWRlICsiW14vXStcLmgiJykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKaW5kZXggMTA2MzJhNy4uOTdhOTIwNyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKQEAgLTEw
ODYsOSArMTA4Niw2IEBAIGNsYXNzIENwcGxpbnRUZXN0KENwcGxpbnRUZXN0QmFzZSk6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0NIRUNLKHNvbWVfaXRlcmF0b3IgPT0gb2JqLmVuZCgpKScs
ICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdFWFBFQ1RfVFJVRShzb21lX2l0ZXJhdG9y
ID09IG9iai5lbmQoKSknLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnRVhQRUNUX0ZB
TFNFKHNvbWVfaXRlcmF0b3IgPT0gb2JqLmVuZCgpKScsICcnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCdDSEVDSyhzb21lX3BvaW50ZXIgIT0gTlVMTCknLCAnJykKLSAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnRVhQRUNUX1RSVUUoc29tZV9wb2ludGVyICE9IE5VTEwpJywgJycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ0VYUEVDVF9GQUxTRShzb21lX3BvaW50ZXIgIT0gTlVMTCkn
LCAnJykKIAogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdDSEVDSyhDcmVhdGVUZXN0RmlsZShk
aXIsICgxIDw8IDIwKSkpOycsICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdDSEVDSyhD
cmVhdGVUZXN0RmlsZShkaXIsICgxID4+IDIwKSkpOycsICcnKQpAQCAtMTY0OSw3ICsxNjQ2LDcg
QEAgY2xhc3MgQ3BwbGludFRlc3QoQ3BwbGludFRlc3RCYXNlKToKICAgICAgICAgY3BwbGludC5w
cm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywgW10sIGVycm9yX2NvbGxlY3RvcikKICAg
ICAgICAgZXhwZWN0ZWRfZ3VhcmQgPSAnJwogICAgICAgICBtYXRjaGVyID0gcmUuY29tcGlsZSgK
LSAgICAgICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQgZm91bmRcLCBzdWdnZXN0ZWQg
Q1BQIHZhcmlhYmxlIGlzXDogKFtBLVpfXSspICcpCisgICAgICAgICAgICAnTm8gXCNpZm5kZWYg
aGVhZGVyIGd1YXJkIGZvdW5kXCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpc1w6IChbQS1aXzAt
OV0rKSAnKQogICAgICAgICBmb3IgZXJyb3IgaW4gZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0
KCk6CiAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hlci5tYXRjaChlcnJvcikKICAgICAgICAg
ICAgIGlmIG1hdGNoZXM6CkBAIC0yOTA3LDggKzI5MDQsMjkgQEAgY2xhc3MgV2ViS2l0U3R5bGVU
ZXN0KENwcGxpbnRUZXN0QmFzZSk6CiAKICAgICAgICAgIyAzLiBUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgbnVsbC9ub24tbnVsbCwgYW5kIHplcm8vbm9uLXplcm8gc2hvdWxkCiAgICAgICAgICMgICAg
YWxsIGJlIGRvbmUgd2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4KLSAgICAgICAgIyBGSVhN
RTogSW1wbGVtZW50IHRoaXMuCi0gICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRfbGlu
dCgKKyAgICAgICAgICAgICdpZiAoY291bnQgPT0gMCknLAorICAgICAgICAgICAgJ1Rlc3RzIGZv
ciB0cnVlL2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQg
ZXF1YWxpdHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBh
cmlzb25fdG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAg
ICAgICdpZiAoc3RyaW5nID09IE5VTEwpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9m
YWxzZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5
IGNvbXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3Rv
X3plcm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYg
KDAgIT0gYUxvbmdlclZhcmlhYmxlTmFtZSknLAorICAgICAgICAgICAgJ1Rlc3RzIGZvciB0cnVl
L2ZhbHNlLCB6ZXJvL25vbi16ZXJvLCBldGMuIHNob3VsZCBiZSBkb25lIHdpdGhvdXQgZXF1YWxp
dHkgY29tcGFyaXNvbnMuJworICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NvbXBhcmlzb25f
dG9femVyb10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKKyAgICAgICAgICAgICdp
ZiAoY29uZGl0aW9uID09IHRydWUpJywKKyAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxz
ZSwgemVyby9ub24temVybywgZXRjLiBzaG91bGQgYmUgZG9uZSB3aXRob3V0IGVxdWFsaXR5IGNv
bXBhcmlzb25zLicKKyAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3pl
cm9dIFs1XScpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCisgICAgICAgICAgICAnaWYgKG15
VmFyaWFibGUgPT0gLyogV2h5IHdvdWxkIGFueW9uZSBwdXQgYSBjb21tZW50IGhlcmU/ICovIGZh
bHNlKScsCisgICAgICAgICAgICAnVGVzdHMgZm9yIHRydWUvZmFsc2UsIHplcm8vbm9uLXplcm8s
IGV0Yy4gc2hvdWxkIGJlIGRvbmUgd2l0aG91dCBlcXVhbGl0eSBjb21wYXJpc29ucy4nCisgICAg
ICAgICAgICAnICBbcmVhZGFiaWxpdHkvY29tcGFyaXNvbl90b196ZXJvXSBbNV0nKQorICAgICAg
ICBzZWxmLmFzc2VydF9saW50KAorICAgICAgICAgICAgJ2lmIChmb250VHlwZSA9PSB0cnVlVHlw
ZSknLAorICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9uYW1lcyhzZWxmKToKICAgICAg
ICAgIyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCg==
</data>
<flag name="review"
          id="17226"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>