<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 0.25.0
-    Fixed #2280 - Detailed exit codes fix 
+    Fixed #2280 - Detailed exit codes fix
 
     Fixed #198 - Puppet man pages added
 
@@ -25,7 +25,7 @@
 
 0.24.8
     Fixed #2077 - ralsh user broken on OSX
-    
+
     Fixed #2004 - ssh_authorized_key fails if no target is defined
 
     Fixed #1629 - incorrect permissions on ssh_authorized_keys created files
@@ -44,9 +44,9 @@
 
     Fixed #1871 - Sensitive information leaked in log reports
 
-    Fixed #1956 - Cleaned up variable names to be more sane, clarified error messages 
+    Fixed #1956 - Cleaned up variable names to be more sane, clarified error messages
     and fixed incorrect use of 'value' variable rather than 'member'.
-    
+
     Fixed #1831 - Added sprintf function
 
     Fixed #1830 - Added regsubst function
@@ -55,7 +55,7 @@
 
     Fixing #1948 and #1953 - augeas ins bug: wrong number of arguments (1 for 3)
 
-    Fixing #944 - changing error message from warning to info - connection recycled 
+    Fixing #944 - changing error message from warning to info - connection recycled
 
     Fixed #961 - puppetd creating too many/not closing TCP connections
 
@@ -70,7 +70,7 @@
     Fixed #1884 - Exported resources are marked as unexported when collected on the exporting host
 
     Fixed #1922 - Functions squash all arguments into a single hash
-    
+
     Fixed #1538 - Yumrepo sets permissions wrongly on files in /etc/yum.repos.d
 
     Fixed #1936 - Added /* */ support to the vim file
@@ -78,7 +78,7 @@
     Fixed #1541 -  nagios objects write files to clientbucket on every change
 
     Fixed #1542 - cannot purge nagios objects
- 
+
     Fixing #1912 - gid still works with no 'should' value fixing ralsh issues
 
     Fixing the Rakefile to use 'git format-patch'
@@ -93,8 +93,8 @@
 
     Updated Red Hat spec file 0.24.7
 
-    Fixed #1920 - Shadow password corruption 
- 
+    Fixed #1920 - Shadow password corruption
+
 0.24.7
     Fixed #1804 - Added VDev and MultiVDev properties to the ZPool type
 
@@ -156,14 +156,14 @@
 
     Fixed #1711 - fileserver test fails due to incorrect mocking
 
-    Fixed #1751 - Mac OS X DirectoryService nameservice provider support for 
-    plist output and password hash fil 
-   
-    Fixed #1752 - Add an optional argument to Puppet::Util.execute to determine 
+    Fixed #1751 - Mac OS X DirectoryService nameservice provider support for
+    plist output and password hash fil
+
+    Fixed #1752 - Add an optional argument to Puppet::Util.execute to determine
     whether stderr and stdout are combined in the output
-    
+
     Added versionable feature to the RPM provider
-    
+
     Fixed #1668 - puppetca can't clean unsigned certs
 
     Moved RRD feature from util/metric.rb to feature/base.rb
@@ -200,7 +200,7 @@
 
     Updated Red Hat spec file for 0.24.6
 
-    Removed conf/debian directory - Debian packaging information 
+    Removed conf/debian directory - Debian packaging information
     now maintained downstream
 
     Added augeas type
@@ -211,7 +211,7 @@
     Added multiline comment support
 
 0.24.6
-    Adding support to the user type for: profiles, auths, project, 
+    Adding support to the user type for: profiles, auths, project,
     key/value pairs (extension to Solaris RBAC support added in
     0.24.6)
 
@@ -223,21 +223,21 @@
 
     Fixed #1655 - Provider::Confine::Variable tests are broken
 
-    Fixed #1646 - service puppet status does not work as non-root 
+    Fixed #1646 - service puppet status does not work as non-root
     on redhat system
 
     Fixed #1649 - Updated OSX package cleanup
-  
+
     Fixed #1647 - puppetdoc -r providers now working again
 
     Fixed #1639 - uninitialized constant Puppet::Type::User::ProviderUseradd
 
-    Fixed #1637 - With an inexistant (global) templatedir, modules 
+    Fixed #1637 - With an inexistant (global) templatedir, modules
     can't access their templates
 
     Fixed #1202 - Collection attribute matching doesn't parse arrays
 
-    Fixed #1473 - Puppetd stops with error after puppetmasterd 
+    Fixed #1473 - Puppetd stops with error after puppetmasterd
     is unavailable
 
     Fixed #1354 - yum provider problems with RHEL 3
@@ -249,21 +249,21 @@
     Fixing #947 - pluginsync no longer fails poorly when no plugins exist
 
     Fixed #981 - Removed 'Adding aliases' info message
-    
+
     Fixing #1089 - Log messages are now tagged with the log level,
     making it easier to match messages in the 'tagmail' report.
-    
+
     Fixing #1098 - Multiline strings now correctly increment the line count
 
     Fixing #1614 - Environments no longer have to be listed out
 
-    Fixed #1628 - Changed node search to use certname rather than Facter 
+    Fixed #1628 - Changed node search to use certname rather than Facter
     hostname
-    
-    Fixed #1613 - The client environment will be substituted when looking 
+
+    Fixed #1613 - The client environment will be substituted when looking
     up settings.
 
-    Updated puppet binary documentation 
+    Updated puppet binary documentation
 
     Feature #1624 - Added RBAC roles to solaris user provider
 
@@ -292,13 +292,13 @@
     Fixed #791 - You should now be able to create and find a user/group in one transaction.
 
     Fixed #1610 - Raise &quot;Filebucketed&quot; messages to Notice priority
-    
+
     FIxed #1530 - ssh_authorized_keys provider does not crash anymore on SSH type 1 keys
 
     Added a number of confines to package providers
 
-    Fixed #1609 - Added confines for the Gentoo, FreeBSD and 
-    SMF (Solaris) service providers 
+    Fixed #1609 - Added confines for the Gentoo, FreeBSD and
+    SMF (Solaris) service providers
 
     Fixed #1608 - Added ubuntu to defaultfor for apt provider
 
@@ -306,14 +306,14 @@
     provider
 
     Fixed #1045 - Multiple metaparams all get added to resources.
-    
-    Fixed #1472 -- defined, exported resources in the current compile 
+
+    Fixed #1472 -- defined, exported resources in the current compile
     now get expanded correctly.
 
     Fixed #1595 - Internally, Property#retrieve is no longer called
     when no 'should' value is available for a resource.
 
-    Fixed #1588 - Fixed puppetca --clean --all 
+    Fixed #1588 - Fixed puppetca --clean --all
 
     Fixed #1584 - Added support for appended variables
 
@@ -324,7 +324,7 @@
     Fixed #1579 and #1580 - errors in the Puppet RPM spec file
 
     Fixed #1572 -- file purging now fails if remote sources do not exist.
-    
+
     Fixed #1521 -- ldap user and password are now used with the default connection.
 
     Fixed issues with file descriptors leaking into subprocesses
@@ -338,7 +338,7 @@
     Adjusted hpuxuseradd user provider to confine to HP-UX and fixed HP-UX user provider path regression
 
     Fixed debug messages in package type - thanks to Todd Zullinger for this fix
-    
+
     Fixed #1566 - changed password property of the user type
 
     Fixed debug messages in package type
@@ -362,10 +362,10 @@
     Fixed #1526 - Fixed leak in template
 
     Fixed #1506 - Removed storeconfig duplicate indexes
-    
+
     Fixed #1457 - case insensitive match for error
-    
-    Fixed #1488 - Moved individual functions out of functions.rb into 
+
+    Fixed #1488 - Moved individual functions out of functions.rb into
     lib/puppet/parser/functions directory.  New functions should be create     in this directory.
 
     Fixed #1508 - Added HP-UX package provider
@@ -377,7 +377,7 @@
     Add the -P/--ping option to puppetrun, fixes #1501
 
     Fixed #1394 - Added stored configuration clearing script to /ext
-    
+
     Fixed #1442 - replaced use of Facter for report titling with certname
 
     Fixed $1456 - add proxy configuration capability to yum repo
@@ -390,7 +390,7 @@
 
     Expose all puppet variables as instance member variables of the template wrapper.
     This helps resolve redmine #1427, by providing a safe mechanism to access variables.
-    
+
      * Implement Puppet::Parser::Scope#to_hash, which returns a hash containing all the
        variable bindings in the current and, optionally, parent scope.
      * Use that to set instance member variables into Puppet::Parser::Templatewrapper
@@ -403,17 +403,17 @@
     interpolation, not both, to avoid issues where a #{} interpolated value
     contains a % character.
 
-    Feature #1476: Allow specification of --bindir --sbindir --sitelibdir --mandir --destdir 
+    Feature #1476: Allow specification of --bindir --sbindir --sitelibdir --mandir --destdir
     in installation
-    
+
     Added feature #1241 : Improve performance of group lookups
 
-    Fixed bug #1448: Puppet CA incorrectly writes out all certs to inventory .txt on each 
+    Fixed bug #1448: Puppet CA incorrectly writes out all certs to inventory .txt on each
     certificate signing
 
-    Fixing puppetlast to make it work with 0.24.5 / 0.25.  Made puppetlast work on 0.24.5 
+    Fixing puppetlast to make it work with 0.24.5 / 0.25.  Made puppetlast work on 0.24.5
     by using the YAML indirector
- 
+
 0.24.5
     You can now select the encoding format when transferring the catalog,
     with 'yaml' still being the default but 'marshal' being an option.
@@ -433,12 +433,12 @@
 
     Updated /spec/unit/rails.rb test
 
-    Fix #1426 - services on redhat are restarted again and status is 
+    Fix #1426 - services on redhat are restarted again and status is
     called from the Red Hat provider
 
     Fixed #1414 - Return code from waitpid now right shifted 8 bits
 
-    Fixed #174 - a native type type for managing ssh authorized_keys 
+    Fixed #174 - a native type type for managing ssh authorized_keys
     files is available.
 
     Further moves from the examples directory and ext directory
@@ -448,14 +448,14 @@
     Moved debian to conf and updated examples directory
 
     Fixed #1368 - updated Red Hat init scripts
- 
+
     Added message referencing ReductiveLabs build library
 
     Fixed #1396 - Added sha1 function from DavidS to core
-    
+
     Fixed #1399 - the ldap user provider now knows it can manage
     passwords.
-    
+
     Fixed #1272 - if you provide a group name as the gid to an ldap
     user, the name will be converted to a gid.  Note that this only
     looks up ldap groups, at this point; if you want to set an ldap
@@ -468,7 +468,7 @@
 
     Fixed 1240 - puppet will function more like puppetd if graphing
     or reporting are enabled.
-    
+
     Fixed #1231 - Exceptions during initialization should now be clearer.
 
     Fixed #1006 - puppetrun --class works again.  I added the class
@@ -484,9 +484,9 @@
     Fixed #1367 - Updated Rakefile for new daily builds
 
     Fixed #1370 - removed test/util/loadedfile.rb tests
-    
+
     Fixed #1221 - aliases to titles now work for resources.
-    
+
     Fixed #1012 - templates in the templatedir are preferred to module templates.
 
     Fixed #707 - special '@reboot'-style cron jobs work again.
@@ -495,14 +495,14 @@
 
     Fixed #1369 - the init service provider now supports HP-UX.
 
-    Removed support for the 'node_name' setting in LDAP and external node 
+    Removed support for the 'node_name' setting in LDAP and external node
     lookups.
 
     Also removed support for 'default' nodes in external nodes.
     LDAP nodes now use the certificate name, the short name, and 'default',
     but external nodes just use the certificate name and any custom terminus
     types will use just the certificate name.
-    
+
     Fixing #1168 (for 0.24.x) -- automatically downcasing the fqdn.
     Also requiring that passed in certnames be downcased; the setting
     system isn't currently flexible enough to automatically downcase
@@ -520,7 +520,7 @@
     The Master handler previously provided the support for the :node_name
     setting, and that functionality has now been moved into the Node
     class.  At the same time, the names to search through have been
-    changed somewhat:  Previously, the certificate name and the 
+    changed somewhat:  Previously, the certificate name and the
     hostname were both used for searching, but now, the cert name
     is always searched first (unless node_name == facter), but only
     the Facter hostname, domain, and fqdn are used otherwise.  We no
@@ -530,28 +530,28 @@
 
     Adding support for settings within the existing Facter provider confines.
 
-    Moving all confine code out of the Provider class, and fixing #1197. 
-    Created a Confiner module for the Provider class methods, enhanced 
-    the interface between it and the Confine class to make sure binary 
+    Moving all confine code out of the Provider class, and fixing #1197.
+    Created a Confiner module for the Provider class methods, enhanced
+    the interface between it and the Confine class to make sure binary
     paths are searched for fresh each time.
 
     Modified the 'factpath' setting to automatically configure
     Facter to load facts there if a new enough version of
     Facter is used.
 
-    Crontab provider: fix a parse error when a line begins with a space 
+    Crontab provider: fix a parse error when a line begins with a space
     character (fixes #1216)
 
-    Instead of deleting the init scripts (with --del) we should simply 
-    disable it with chkconfig service off, and respectfully do the same 
+    Instead of deleting the init scripts (with --del) we should simply
+    disable it with chkconfig service off, and respectfully do the same
     for enable =&gt; true;
- 
+
     Added ldap providers for users and groups.
 
     Added support for the --all option to puppetca --clean.  If
     puppetca --clean --all is issued then all client certificates
     are removed.
- 
+
     Resources now return the 'should' value for properties from
     the [] accessor method (they previously threw an exception when
     this method was used with properties).  This shouldn't have any
@@ -617,7 +617,7 @@
     that it can cause corruption, especially in file serving (but
     it's client-side corruption).
 
-    Applying patch by Ryan McBride to fix OpenBSD package 
+    Applying patch by Ryan McBride to fix OpenBSD package
     matching.  The actual problem was caused by the fix to #1001.
 
     Found all instances of methods where split() is used without
@@ -867,7 +867,7 @@
     the bootproto (#762).
 
     You now must specify an environment and you are required to specify
-    the valid environments for your site. (#911) 
+    the valid environments for your site. (#911)
 
     Certificates now always specify a subjectAltName, but it defaults
     to '*', meaning that it doesn't require DNS names to match.  You
@@ -998,7 +998,7 @@
     exactly the feature asked for, but I could not find a
     way to directly copy ActiveRecord's concept of an environment.
 
-    External node sources can now return undefined classes (#687). 
+    External node sources can now return undefined classes (#687).
 
     Puppet clients now have http proxy support (#701).
 
@@ -1051,7 +1051,7 @@
 
         Only ONE node source can be used -- you can use LDAP, code, or
         an external node program, but not more than one.
-    
+
         LDAP node support has two changes:  First, the &quot;ldapattrs&quot; attribute is
         now used for setting the attributes to retrieve from the server (in
         addition to required attriutes), and second, all retrieved attributes
@@ -1066,8 +1066,8 @@
         handle that on its own.
 
     Reworked the database schema used to store configurations with the
-    storeconfigs option.  
-    
+    storeconfigs option.
+
     Replaced the obsolete RRD ruby library with the maintained
     RubyRRDtool library (which requires rrdtool2) (#659).
 
@@ -1140,7 +1140,7 @@
     fail on cycles.
 
     Added a 'dynamicfacts' configuration option; any facts in that
-    comma-separated list will be ignored when comparing facts to 
+    comma-separated list will be ignored when comparing facts to
     see if they have changed and thus whether a recompile is necessary.
 
     Renamed some poorly named internal variables:
@@ -1312,7 +1312,7 @@
     Fixing a bug related to link recursion that caused link directories
     to always be considered out of sync.
 
-    The bind address for puppetmasterd can now be specified with 
+    The bind address for puppetmasterd can now be specified with
     --bindaddress.
 
     Added (probably experimental) mongrel support.  At this point you're
@@ -1492,7 +1492,7 @@
     Correctly handling spaces in file sources.
 
     Moved documentation into svn tree.
-    
+
 0.18.0
     Added support for a &quot;default&quot; node.
 
@@ -1690,7 +1690,7 @@
 
 0.9.4
     Small fix to wrap the StatusServer class in the checks for required classes.
-    
+
 0.9.3
     Fixed some significant bugs in cron job management.
 </diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,8 @@ Puppet - Automating Configuration Management. Copyright (C) 2005 Reductive Labs
 Reductive Labs can be contacted at: info@reductivelabs.com
 
 This program and entire repository is free software; you can
-redistribute it and/or modify it under the terms of the GNU 
-General Public License as published by the Free Software 
+redistribute it and/or modify it under the terms of the GNU
+General Public License as published by the Free Software
 Foundation; either version 2 of the License, or any later version.
 
 This program is distributed in the hope that it will be useful,</diff>
      <filename>LICENSE</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-Documentation (and detailed install instructions) can be found 
+Documentation (and detailed install instructions) can be found
 online at http://reductivelabs.com/trac/puppet/wiki/DocumentationStart .
 
 Generally, you need the following things installed:</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 Puppet
 ======
 
-Puppet, an automated administrative engine for your Linux and Unix systems, performs 
-administrative tasks (such as adding users, installing packages, and updating server 
+Puppet, an automated administrative engine for your Linux and Unix systems, performs
+administrative tasks (such as adding users, installing packages, and updating server
 configurations) based on a centralized specification.
 
-Documentation (and detailed install instructions) can be found 
+Documentation (and detailed install instructions) can be found
 online at the `Puppet Wiki`_.
 
 Installation
@@ -32,7 +32,7 @@ Generally, you need the following things installed:
   the library.
 
 * Facter =&gt; 1.1.1
-  You can get this from your package management system or the `Facter site`_ 
+  You can get this from your package management system or the `Facter site`_
 
 .. _Puppet Wiki: http://reductivelabs.com/trac/puppet/wiki/DocumentationStart
 .. _Facter site: http://reductivelabs.com/projects/facter</diff>
      <filename>README.rst</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@ end
 task :tracdocs do
     require 'puppet'
     require 'puppet/util/reference'
-    Puppet::Util::Reference.references.each do |ref| 
+    Puppet::Util::Reference.references.each do |ref|
         sh &quot;puppetdoc -m trac -r #{ref.to_s}&quot;
     end
 end
@@ -65,7 +65,7 @@ task :spec do
     require 'spec/rake/spectask'
     # require 'rcov'
     Spec::Rake::SpecTask.new do |t|
-        t.spec_opts = ['--format','s', '--loadby','mtime'] 
+        t.spec_opts = ['--format','s', '--loadby','mtime']
         t.spec_files = FileList['spec/**/*.rb']
     end
 end
@@ -83,9 +83,9 @@ task :ci_prep do
         require 'ci/reporter/rake/rspec'
         require 'ci/reporter/rake/test_unit'
         ENV['CI_REPORTS'] = 'results'
-    rescue LoadError 
+    rescue LoadError
        puts 'Missing ci_reporter gem. You must have the ci_reporter gem installed to run the CI spec tests'
-    end 
+    end
 end
 
 desc &quot;Run the CI RSpec tests&quot;
@@ -104,7 +104,7 @@ task :mail_patches do
         raise &quot;Could not get branch from 'git status'&quot;
     end
     branch = $1
-    
+
     unless branch =~ %r{^([^\/]+)/([^\/]+)/([^\/]+)$}
         raise &quot;Branch name does not follow &lt;type&gt;/&lt;parent&gt;/&lt;name&gt; model; cannot autodetect parent branch&quot;
     end
@@ -136,9 +136,9 @@ task :changelog do
     mkdir(CHANGELOG_DIR) unless File.directory?(CHANGELOG_DIR)
     change_body=`git log --pretty=format:'%aD%n%an &lt;%ae&gt;%n%s%n'`
     File.open(File.join(CHANGELOG_DIR, &quot;CHANGELOG.git&quot;), 'w') do |f|
-        f &lt;&lt; change_body 
+        f &lt;&lt; change_body
     end
- 
+
     # Changelog commit
     `git add #{CHANGELOG_DIR}/CHANGELOG.git`
     `git commit -m &quot;Update CHANGELOG.git&quot;`</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -45,7 +45,7 @@
 #   /etc/passwd: 429b225650b912a2ee067b0a4cf1e949
 #   $ filebucket restore /tmp/passwd 429b225650b912a2ee067b0a4cf1e949
 #   $
-# 
+#
 # = Options
 #
 # Note that any configuration parameter that's valid in the configuration file
@@ -98,4 +98,4 @@ require 'puppet/application'
 require 'puppet/application/filebucket'
 
 # launch the filebucket
-Puppet::Application[:filebucket].run
\ No newline at end of file
+Puppet::Application[:filebucket].run</diff>
      <filename>bin/filebucket</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 #
 # = Usage
 #
-#   puppetdoc [-a|--all] [-h|--help] [-o|--outputdir &lt;rdoc outputdir&gt;] [-m|--mode &lt;text|pdf|trac|rdoc&gt;] 
+#   puppetdoc [-a|--all] [-h|--help] [-o|--outputdir &lt;rdoc outputdir&gt;] [-m|--mode &lt;text|pdf|trac|rdoc&gt;]
 #             [-r|--reference &lt;[type]|configuration|..&gt;] [manifest-file]
 #
 # = Description
@@ -19,7 +19,7 @@
 # available on the Reductive Labs web site.
 #
 # In 'rdoc' mode, this command generates an html RDoc hierarchy describing the manifests that
-# are in 'manifestdir' and 'modulepath' configuration directives. 
+# are in 'manifestdir' and 'modulepath' configuration directives.
 # The generated documentation directory is doc by default but can be changed with the 'outputdir' option.
 #
 # If the command is started with 'manifest-file' command-line arguments, puppetdoc generate a single</diff>
      <filename>bin/puppetdoc</filename>
    </modified>
    <modified>
      <diff>@@ -64,7 +64,7 @@
 # = Example
 #
 # This example uses ``ralsh`` to return Puppet configuration for the user ``luke``::
-#   
+#
 #    $ ralsh user luke
 #    user { 'luke':
 #      home =&gt; '/home/luke',</diff>
      <filename>bin/ralsh</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 # This is an example auth.conf file, it mimics the puppetmasterd defaults
-# 
+#
 # The ACL are checked in order of appearance in this file.
-# 
+#
 # Supported syntax:
-# This file supports two different syntax depending on how 
+# This file supports two different syntax depending on how
 # you want to express the ACL.
-# 
+#
 # Path syntax (the one used below):
 # ---------------------------------
 # path /path/to/resource
@@ -14,35 +14,35 @@
 # [auth[enthicated] {yes|no|on|off|any}]
 # allow [host|ip|*]
 # deny [host|ip]
-# 
+#
 # The path is matched as a prefix. That is /file match at
 # the same time /file_metadat and /file_content.
-# 
+#
 # Regex syntax:
 # -------------
 # This one is differenciated from the path one by a '~'
-# 
+#
 # path ~ regex
 # [environment envlist]
 # [method methodlist]
 # [auth[enthicated] {yes|no|on|off|any}]
 # allow [host|ip|*]
 # deny [host|ip]
-# 
+#
 # The regex syntax is the same as ruby ones.
-# 
+#
 # Ex:
 # path ~ .pp$
 # will match every resource ending in .pp (manifests files for instance)
-# 
+#
 # path ~ ^/path/to/resource
 # is essentially equivalent to path /path/to/resource
-# 
+#
 # environment:: restrict an ACL to a specific set of environments
 # method:: restrict an ACL to a specific set of methods
 # auth:: restrict an ACL to an authenticated or unauthenticated request
 # the default when unspecified is to restrict the ACL to authenticated requests
-# (ie exactly as if auth yes was present). 
+# (ie exactly as if auth yes was present).
 #
 
 ### Authenticated ACL - those applies only when the client</diff>
      <filename>conf/auth.conf</filename>
    </modified>
    <modified>
      <diff>@@ -7,13 +7,13 @@
 # Last Updated: 2008-07-31
 #
 # Copyright 2008 Google Inc.
-# 
+#
 # Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #      http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,7 +30,7 @@ PREFLIGHT=&quot;preflight&quot;
 
 
 function find_installer() {
-  # we walk up three directories to make this executable from the root, 
+  # we walk up three directories to make this executable from the root,
   # root/conf or root/conf/osx
   if [ -f &quot;./${INSTALLRB}&quot; ]; then
     installer=&quot;$(pwd)/${INSTALLRB}&quot;
@@ -63,7 +63,7 @@ function prepare_package() {
   # to look at for package creation and substitue the version strings out.
   # Major/Minor versions can only be integers, so we have &quot;0&quot; and &quot;245&quot; for
   # puppet version 0.24.5
-  # Note too that for 10.5 compatibility this Info.plist *must* be set to 
+  # Note too that for 10.5 compatibility this Info.plist *must* be set to
   # follow symlinks.
   VER1=$(echo ${puppet_version} | awk -F &quot;.&quot; '{print $1}')
   VER2=$(echo ${puppet_version} | awk -F &quot;.&quot; '{print $2}')
@@ -74,12 +74,12 @@ function prepare_package() {
   sed -i '' &quot;s/{SHORTVERSION}/${puppet_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
   sed -i '' &quot;s/{MAJORVERSION}/${major_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
   sed -i '' &quot;s/{MINORVERSION}/${minor_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
-  
+
   # We need to create a preflight script to remove traces of previous
   # puppet installs due to limitations in Apple's pkg format.
   mkdir &quot;${pkgtemp}/scripts&quot;
   cp &quot;${puppet_root}/conf/osx/${PREFLIGHT}&quot; &quot;${pkgtemp}/scripts&quot;
-  
+
   # substitute in the sitelibdir specified above on the assumption that this
   # is where any previous puppet install exists that should be cleaned out.
   sed -i '' &quot;s|{SITELIBDIR}|${SITELIBDIR}|g&quot; &quot;${pkgtemp}/scripts/${PREFLIGHT}&quot;
@@ -123,44 +123,44 @@ function main() {
   fi
 
   find_installer
-  
+
   if [ ! &quot;${installer}&quot; ]; then
     echo &quot;Unable to find ${INSTALLRB}&quot;
     cleanup_and_exit 1
   fi
 
   find_puppet_root
-  
+
   if [ ! &quot;${puppet_root}&quot; ]; then
     echo &quot;Unable to find puppet repository root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   pkgroot=$(mktemp -d -t puppetpkg)
-  
+
   if [ ! &quot;${pkgroot}&quot; ]; then
     echo &quot;Unable to create temporary package root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   pkgtemp=$(mktemp -d -t puppettmp)
-  
+
   if [ ! &quot;${pkgtemp}&quot; ]; then
     echo &quot;Unable to create temporary package root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   install_puppet
   get_puppet_version
-  
+
   if [ ! &quot;${puppet_version}&quot; ]; then
     echo &quot;Unable to retrieve puppet version&quot;
     cleanup_and_exit 1
   fi
-  
+
   prepare_package
   create_package
-  
+
   cleanup_and_exit 0
 }
 </diff>
      <filename>conf/osx/createpackage.sh</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ PUPPETMASTER_OPTS=&quot;&quot;
 if [ -n &quot;$PUPPETMASTER_PORTS&quot; ] &amp;&amp; [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
     PUPPETMASTER_OPTS=&quot;$PUPPETMASTER_OPTS --servertype=mongrel&quot;
 elif [ -n &quot;$PUPPETMASTER_PORTS&quot; ] &amp;&amp; [ ${#PUPPETMASTER_PORTS[@]} -eq 1 ]; then
-    PUPPETMASTER_OPTS=&quot;${PUPPETMASTER_OPTS} --masterport=${PUPPETMASTER_PORTS[0]}&quot; 
+    PUPPETMASTER_OPTS=&quot;${PUPPETMASTER_OPTS} --masterport=${PUPPETMASTER_PORTS[0]}&quot;
 fi
 [ -n &quot;$PUPPETMASTER_LOG&quot; ] &amp;&amp; PUPPETMASTER_OPTS=&quot;${PUPPETMASTER_OPTS} --logdest=${PUPPETMASTER_LOG}&quot;
 PUPPETMASTER_OPTS=&quot;${PUPPETMASTER_OPTS} \
@@ -67,7 +67,7 @@ stop() {
     if [ -n &quot;$PUPPETMASTER_PORTS&quot; ] &amp;&amp; [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
         for ((i=0; i&lt;${#PUPPETMASTER_PORTS[@]}; i++)); do
             echo -en &quot;\nPort: ${PUPPETMASTER_PORTS[$i]}&quot;
-            killproc -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster 
+            killproc -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster
             ret=$?; [ $ret != 0 ] &amp;&amp; RETVAL=$ret
         done
     else
@@ -93,9 +93,9 @@ puppetmaster_status() {
     if [ -n &quot;$PUPPETMASTER_PORTS&quot; ] &amp;&amp; [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
         for ((i=0; i&lt;${#PUPPETMASTER_PORTS[@]}; i++)); do
             echo -en &quot;Port ${PUPPETMASTER_PORTS[$i]}: &quot;
-            status -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster 
+            status -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster
             ret=$?; [ $ret != 0 ] &amp;&amp; RETVAL=$ret
-        done 
+        done
     else
         status $PUPPETMASTER
         RETVAL=$?</diff>
      <filename>conf/redhat/server.init</filename>
    </modified>
    <modified>
      <diff>@@ -5,20 +5,20 @@
 # Specify syslog to send log messages to the system log.
 #PUPPETMASTER_LOG=syslog
 
-# You may specify an alternate port or an array of ports on which 
+# You may specify an alternate port or an array of ports on which
 # puppetmaster should listen. Default is: 8140
 # If you specify more than one port, the puppetmaster ist automatically
 # started with the servertype set to mongrel. This might be interesting
 # if you'd like to run your puppetmaster in a loadbalanced cluster.
-# Please note: this won't setup nor start any loadbalancer. 
+# Please note: this won't setup nor start any loadbalancer.
 # If you'd like to run puppetmaster with mongrel as servertype but only
 # on one (specified) port, you have to add --servertype=mongrel to
 # PUPPETMASTER_EXTRA_OPTS.
-# Default: Empty (Puppetmaster isn't started with mongrel, nor on a 
+# Default: Empty (Puppetmaster isn't started with mongrel, nor on a
 # specific port)
 #
 # Please note: Due to reduced options in the rc-functions lib in RHEL/Centos
-# versions prior to 5, this feature won't work. Fedora versions &gt;= 8 are 
+# versions prior to 5, this feature won't work. Fedora versions &gt;= 8 are
 # known to work.
 #PUPPETMASTER_PORTS=&quot;&quot;
 # Puppetmaster on a different port, run with standard webrick servertype</diff>
      <filename>conf/redhat/server.sysconfig</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@
                 type='path'&gt;
         &lt;service_fmri value='file:///etc/puppet/puppet.conf'/&gt;
     &lt;/dependency&gt;
-        
+
     &lt;dependency name='loopback'
                 grouping='require_all'
                 restart_on='error'</diff>
      <filename>conf/solaris/smf/puppetd.xml</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@
                 type='path'&gt;
         &lt;service_fmri value='file:///etc/puppet/puppet.conf'/&gt;
     &lt;/dependency&gt;
-        
+
     &lt;dependency name='loopback'
                 grouping='require_all'
                 restart_on='error'</diff>
      <filename>conf/solaris/smf/puppetmasterd.xml</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@
 ### BEGIN INIT INFO
 # Provides: puppet
 # Required-Start: $local_fs $network $syslog
-# Should-Start: 
+# Should-Start:
 # Required-Stop:
 # Default-Start: 3 4 5
 # Default-Stop: 0 1 2 6</diff>
      <filename>conf/suse/client.init</filename>
    </modified>
    <modified>
      <diff>@@ -22,9 +22,9 @@ BuildArchitectures: noarch
 BuildRequires: ruby &gt;= 1.8.6
 
 %description
-Puppet lets you centrally manage every important aspect of your system using a 
-cross-platform specification language that manages all the separate elements 
-normally aggregated in different files, like users, cron jobs, and hosts, 
+Puppet lets you centrally manage every important aspect of your system using a
+cross-platform specification language that manages all the separate elements
+normally aggregated in different files, like users, cron jobs, and hosts,
 along with obviously discrete elements like packages, services, and files.
 
 %package server
@@ -132,13 +132,13 @@ fi
 * Sat Feb 16 2008 James Turnbull &lt;james@lovedthanlost.net&gt; - 0.24.1-1
 - Fixed puppet configuation file references to match single puppet.conf file
 - Update versions for 0.24.1 release
- 
+
 * Tue Aug  3 2006 Martin Vuk &lt;martin.vuk@fri.uni-lj.si&gt; - 0.18.4-3
 - Replaced puppet-bin.patch with %build section from David's spec
 
 * Tue Aug  1 2006 Martin Vuk &lt;martin.vuk@fri.uni-lj.si&gt; - 0.18.4-2
 - Added supprot for enabling services in SuSE
- 
+
 * Tue Aug  1 2006 Martin Vuk &lt;martin.vuk@fri.uni-lj.si&gt; - 0.18.4-1
 - New version and support for SuSE
 
@@ -150,7 +150,7 @@ fi
 
 * Mon Jun 19 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.18.0-1
 - Patch config for LSB compliance (lsb-config.patch)
-- Changed config moves /var/puppet to /var/lib/puppet, /etc/puppet/ssl 
+- Changed config moves /var/puppet to /var/lib/puppet, /etc/puppet/ssl
   to /var/lib/puppet, /etc/puppet/clases.txt to /var/lib/puppet/classes.txt,
   /etc/puppet/localconfig.yaml to /var/lib/puppet/localconfig.yaml
 
@@ -173,7 +173,7 @@ fi
 - Rebuilt for new version
 
 * Wed Mar 22 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.15.1-1
-- Patch0: Run puppetmaster as root; running as puppet is not ready 
+- Patch0: Run puppetmaster as root; running as puppet is not ready
   for primetime
 
 * Mon Mar 13 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.15.0-1
@@ -188,7 +188,7 @@ fi
   allocate the puppet uid/gid dynamically
 
 * Sun Feb 19 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.13.0-4
-- Use fedora-usermgmt to create puppet user/group. Use uid/gid 24. Fixed 
+- Use fedora-usermgmt to create puppet user/group. Use uid/gid 24. Fixed
 problem with listing fileserver.conf and puppetmaster.conf twice
 
 * Wed Feb  8 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.13.0-3
@@ -213,7 +213,7 @@ problem with listing fileserver.conf and puppetmaster.conf twice
 - Added basic fileserver.conf
 
 * Wed Jan 11 2006 David Lutterkort &lt;dlutter@redhat.com&gt; - 0.10.1-1
-- Updated. Moved installation of library files to sitelibdir. Pulled 
+- Updated. Moved installation of library files to sitelibdir. Pulled
 initscripts into separate files. Folded tools rpm into server
 
 * Thu Nov 24 2005 Duane Griffin &lt;d.griffin@psenterprise.com&gt;</diff>
      <filename>conf/suse/puppet.spec</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@
 ### BEGIN INIT INFO
 # Provides: puppetmaster
 # Required-Start: $local_fs $network $syslog
-# Should-Start: 
+# Should-Start:
 # Required-Stop:
 # Default-Start: 3 4 5
 # Default-Stop: 0 1 2 6</diff>
      <filename>conf/suse/server.init</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ User  { provider =&gt; &quot;directoryservice&quot; }
 Group { provider =&gt; &quot;directoryservice&quot; }
 
 user {
-    &quot;testgone&quot;: 
+    &quot;testgone&quot;:
         ensure =&gt; absent,
         uid =&gt; 550;
     &quot;testhere&quot;:
@@ -25,4 +25,4 @@ group {
         ensure =&gt; present,
         gid =&gt; 551;
 
-}
\ No newline at end of file
+}</diff>
      <filename>examples/mac_dscl.pp</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ User  { provider =&gt; &quot;directoryservice&quot; }
 Group { provider =&gt; &quot;directoryservice&quot; }
 
 user {
-    &quot;testgone&quot;: 
+    &quot;testgone&quot;:
         ensure =&gt; absent,
         uid =&gt; 550;
     &quot;testhere&quot;:</diff>
      <filename>examples/mac_dscl_revert.pp</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 # Copyright (C) David Schmitt &lt;david@schmitt.edv-bus.at&gt;
 # All rights reserved.
-# 
+#
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
@@ -12,7 +12,7 @@
 # 3. Neither the name of the Author nor the names of its contributors
 #    may be used to endorse or promote products derived from this software
 #    without specific prior written permission.
-# 
+#
 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</diff>
      <filename>examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
 # Jeff McCune &lt;jeff.mccune@northstarlabs.net&gt;
-# 
+#
 # Demonstration of a custom parser function and erb template within
 # a module, working in concert.
 
 class sample-module {
   $fqdn_to_dn = hostname_to_dn($domain)
   $sample_template = template(&quot;sample-module/sample.erb&quot;)
-  
+
   notice(&quot;hostname_to_dn module function returned: [$fqdn_to_dn]&quot;)
   info(&quot;sample.erb looks like:\n$sample_template&quot;)
 }</diff>
      <filename>examples/modules/sample-module/manifests/init.pp</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ define sleeper {
 
 files { }
 
-sleeper { 
+sleeper {
     require =&gt; files[&quot;yay&quot;],
     schedule =&gt; true
 }</diff>
      <filename>examples/relationships</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'autotest/redgreen'
 require 'autotest/timestamp'
 
 Autotest.send(:alias_method, :real_find_files, :find_files)
-Autotest.send(:define_method, :find_files) do |*args| 
+Autotest.send(:define_method, :find_files) do |*args|
   real_find_files.reject do |k, v|
     if (ENV['AUTOTEST'] and !ENV['AUTOTEST'].empty?)
       !Regexp.new(ENV['AUTOTEST']).match(k)
@@ -15,19 +15,19 @@ end
 
 module Autotest::Growl
 
-  def self.growl title, msg, img, pri=0, sticky=&quot;&quot; 
-    system &quot;growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}&quot; 
+  def self.growl title, msg, img, pri=0, sticky=&quot;&quot;
+    system &quot;growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}&quot;
   end
 
   Autotest.add_hook :ran_command do |at|
-    image_root = &quot;~/.autotest_images&quot; 
+    image_root = &quot;~/.autotest_images&quot;
     results = [at.results].flatten.join(&quot;\n&quot;)
     output = results.slice(/(\d+)\stests,\s(\d+)\sassertions,\s(\d+)\sfailures,\s(\d+)\serrors/)
     if output
       if $~[3].to_i &gt; 0 || $~[4].to_i &gt; 0
         growl &quot;FAIL&quot;, &quot;#{output}&quot;, &quot;#{image_root}/fail.png&quot;, 2
       else
-        growl &quot;Pass&quot;, &quot;#{output}&quot;, &quot;#{image_root}/pass.png&quot; 
+        growl &quot;Pass&quot;, &quot;#{output}&quot;, &quot;#{image_root}/pass.png&quot;
       end
     end
 
@@ -36,7 +36,7 @@ module Autotest::Growl
       if $~[2].to_i &gt; 0 || $~[4].to_i &gt; 0
         growl &quot;FAIL&quot;, &quot;#{output}&quot;, &quot;#{image_root}/fail.png&quot;, 2
       else
-        growl &quot;Pass&quot;, &quot;#{output}&quot;, &quot;#{image_root}/pass.png&quot; 
+        growl &quot;Pass&quot;, &quot;#{output}&quot;, &quot;#{image_root}/pass.png&quot;
       end
     end
   end</diff>
      <filename>ext/autotest/config</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 -- MySQL DB consistency check/fix
--- 
+--
 -- Usage:
 -- cat dbfix.sql | mysql -u user -p puppet
 --
@@ -13,11 +13,11 @@ FROM resources AS bad_rows
     FROM resources
     GROUP BY title,restype,host_id
     HAVING count(*) &gt; 1
-  ) AS good_rows 
-  ON 
-    good_rows.title = bad_rows.title AND 
-    good_rows.restype = bad_rows.restype AND 
-    good_rows.host_id = bad_rows.host_id AND 
+  ) AS good_rows
+  ON
+    good_rows.title = bad_rows.title AND
+    good_rows.restype = bad_rows.restype AND
+    good_rows.host_id = bad_rows.host_id AND
     good_rows.max_id &lt;&gt; bad_rows.id;
 
 -- Remove duplicate param_values, and keep the latest one
@@ -28,17 +28,17 @@ FROM param_values AS bad_rows
     FROM param_values
     GROUP BY value,param_name_id,resource_id
     HAVING count(*) &gt; 1
-  ) AS good_rows 
-  ON 
-    good_rows.value = bad_rows.value AND 
-    good_rows.param_name_id = bad_rows.param_name_id AND 
-    good_rows.resource_id = bad_rows.resource_id AND 
+  ) AS good_rows
+  ON
+    good_rows.value = bad_rows.value AND
+    good_rows.param_name_id = bad_rows.param_name_id AND
+    good_rows.resource_id = bad_rows.resource_id AND
     good_rows.max_id &lt;&gt; bad_rows.id;
 
 -- rewrite param_values that points to duplicated param_names
 -- to point to the highest param_name id.
-UPDATE 
-  param_values v 
+UPDATE
+  param_values v
   INNER JOIN
   param_names n
   ON n.id = v.param_name_id
@@ -60,8 +60,8 @@ FROM param_names AS bad_rows
     FROM param_names
     GROUP BY name
     HAVING count(*) &gt; 1
-  ) AS good_rows 
-  ON 
+  ) AS good_rows
+  ON
     good_rows.name = bad_rows.name AND
     good_rows.max_id &lt;&gt; bad_rows.id;
 
@@ -73,16 +73,16 @@ FROM resource_tags AS bad_rows
     FROM resource_tags
     GROUP BY resource_id,puppet_tag_id
     HAVING count(*) &gt; 1
-  ) AS good_rows 
-  ON 
+  ) AS good_rows
+  ON
     good_rows.resource_id = bad_rows.resource_id AND
     good_rows.puppet_tag_id = bad_rows.puppet_tag_id AND
     good_rows.max_id &lt;&gt; bad_rows.id;
 
 -- rewrite resource_tags that points to duplicated puppet_tags
 -- to point to the highest puppet_tags id.
-UPDATE 
-  resource_tags v 
+UPDATE
+  resource_tags v
   INNER JOIN
   puppet_tags n
   ON n.id = v.puppet_tag_id
@@ -104,8 +104,8 @@ FROM puppet_tags AS bad_rows
     FROM puppet_tags
     GROUP BY name
     HAVING count(*) &gt; 1
-  ) AS good_rows 
-  ON 
+  ) AS good_rows
+  ON
     good_rows.name = bad_rows.name AND
     good_rows.max_id &lt;&gt; bad_rows.id;
 </diff>
      <filename>ext/dbfix.sql</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 ;;;
 ;;; puppet-mode.el
-;;; 
+;;;
 ;;; Author: lutter
 ;;; Author: Russ Allbery &lt;rra@stanford.edu&gt;
 ;;;
@@ -152,23 +152,23 @@ of the initial include plus puppet-include-indent.&quot;
         ;; Indent the line to the same indentation as the first
         ;; element in that array.  That is, this...
         ;;
-        ;;    exec {     
+        ;;    exec {
         ;;      &quot;add_puppetmaster_mongrel_startup_links&quot;:
         ;;      command =&gt; &quot;string1&quot;,
-        ;;      creates =&gt; [ &quot;string2&quot;, &quot;string3&quot;, 
-        ;;      &quot;string4&quot;, &quot;string5&quot;, 
+        ;;      creates =&gt; [ &quot;string2&quot;, &quot;string3&quot;,
+        ;;      &quot;string4&quot;, &quot;string5&quot;,
         ;;      &quot;string6&quot;, &quot;string7&quot;,
         ;;      &quot;string3&quot; ],
         ;;      refreshonly =&gt; true,
         ;;    }
-        ;; 
+        ;;
         ;; ...should instead look like this:
         ;;
-        ;;    exec {     
+        ;;    exec {
         ;;      &quot;add_puppetmaster_mongrel_startup_links&quot;:
         ;;      command =&gt; &quot;string1&quot;,
-        ;;      creates =&gt; [ &quot;string2&quot;, &quot;string3&quot;, 
-        ;;                   &quot;string4&quot;, &quot;string5&quot;, 
+        ;;      creates =&gt; [ &quot;string2&quot;, &quot;string3&quot;,
+        ;;                   &quot;string4&quot;, &quot;string5&quot;,
         ;;                   &quot;string6&quot;, &quot;string7&quot;,
         ;;                   &quot;string8&quot; ],
         ;;      refreshonly =&gt; true,
@@ -216,12 +216,12 @@ of the initial include plus puppet-include-indent.&quot;
              ;; if there is more than one block opened and closed on the same
              ;; line but it's still unbalanced; hopefully people don't do that.
              ((looking-at &quot;^.*{[^\n}]*$&quot;)
-              (setq cur-indent (+ (current-indentation) puppet-indent-level)) 
+              (setq cur-indent (+ (current-indentation) puppet-indent-level))
               (setq not-indented nil))
 
              ;; Indent by one level if the line ends with an open paren.
              ((looking-at &quot;^.*\(\\s-*$&quot;)
-              (setq cur-indent (+ (current-indentation) puppet-indent-level)) 
+              (setq cur-indent (+ (current-indentation) puppet-indent-level))
               (setq not-indented nil))
 
              ;; Semicolon ends a block for a resource when multiple resources</diff>
      <filename>ext/emacs/puppet-mode.el</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# == Synopsis 
+# == Synopsis
 #
 # Test individual client performance.  Can compile configurations, describe
 # files, or retrieve files.
@@ -309,7 +309,7 @@ Suite.new :rails, &quot;Rails Interactions&quot; do
         Puppet::Rails.init
         @facts = Facter.to_hash
 
-        if num = ENV[&quot;RESOURCECOUNT&quot;] 
+        if num = ENV[&quot;RESOURCECOUNT&quot;]
             @resources = Integer(num)
         else
             @resources = 10</diff>
      <filename>ext/puppet-test</filename>
    </modified>
    <modified>
      <diff>@@ -46,7 +46,7 @@ File.open(Puppet[:authconfig]).each do |line|
 end
 
 # be a daemon
-sock = TCPServer.new(port) 
+sock = TCPServer.new(port)
 ssls = OpenSSL::SSL::SSLServer.new(sock, ctx)
 
 loop do</diff>
      <filename>ext/puppetlisten/puppetlisten.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 PUPPETMASTER AS A RACK APPLICATION
 ==================================
 
-puppetmaster can now be hosted as a standard Rack application. A proper 
+puppetmaster can now be hosted as a standard Rack application. A proper
 config.ru is provided for this.
 
 For more details about rack, see http://rack.rubyforge.org/ .
@@ -17,14 +17,14 @@ to work.
 WEBrick
 -------
 
-WEBrick is currently not supported as a Rack host. You'll be better off 
+WEBrick is currently not supported as a Rack host. You'll be better off
 just running puppetmasterd directly.
 
 
 Mongrel
 -------
 
-If you like Mongrel, and want to replicate wiki:UsingMongrel, you could 
+If you like Mongrel, and want to replicate wiki:UsingMongrel, you could
 probably start your backend mongrels this way:
 
 cd ext/rack
@@ -48,7 +48,7 @@ Requirements:
   Apache 2.x
   SSL Module loaded
 
-Apache configuration snippet is in files/apache2.conf. You need to 
+Apache configuration snippet is in files/apache2.conf. You need to
 edit it to reflect your servername.
 
 Required puppet.conf settings:
@@ -60,8 +60,8 @@ To set up most of the boring stuff, you can use this command:
   puppet --verbose --modulepath ./ext ext/rack/manifest.pp
 Or use manifest.pp as a starting point for your own module.
 
-Note: Passenger will not let applications run as root or the Apache user, 
-instead an implicit setuid will be done, to the user whom owns 
+Note: Passenger will not let applications run as root or the Apache user,
+instead an implicit setuid will be done, to the user whom owns
 config.ru. Therefore, config.ru shall be owned by the puppet user.
 
 </diff>
      <filename>ext/rack/README</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ package { [&quot;rack&quot;, &quot;passenger&quot;]:
 service { &quot;apache2&quot;:
 }
 
-case $lsbdistid { 
+case $lsbdistid {
   &quot;Debian&quot;: {
     package { [&quot;apache2-mpm-worker&quot;, &quot;apache2-threaded-dev&quot;, &quot;apache2&quot;]:
       ensure =&gt; installed,</diff>
      <filename>ext/rack/manifest.pp</filename>
    </modified>
    <modified>
      <diff>@@ -2,9 +2,9 @@
 &quot; Filename:     puppet.vim
 &quot; Language:     puppet configuration file
 &quot; Maintainer:   Luke Kanies &lt;luke@madstop.com&gt;
-&quot; URL:          
-&quot; Last Change: 
-&quot; Version:      
+&quot; URL:
+&quot; Last Change:
+&quot; Version:
 &quot;
 
 &quot; Copied from the cfengine, ruby, and perl syntax files</diff>
      <filename>ext/vim/syntax/puppet.vim</filename>
    </modified>
    <modified>
      <diff>@@ -51,10 +51,10 @@ begin
     if $haverdoc
        rst2man = %x{which rst2man.py}
        $haveman = true
-    else 
+    else
        $haveman = false
     end
-rescue 
+rescue
     puts &quot;Missing rst2man; skipping man page creation&quot;
     $haveman = false
 end
@@ -233,19 +233,19 @@ def prepare_installation
     Config::CONFIG['bindir'] = &quot;/usr/bin&quot;
     Config::CONFIG['sbindir'] = &quot;/usr/sbin&quot;
   end
-  
+
   if not InstallOptions.bindir.nil?
     bindir = InstallOptions.bindir
   else
     bindir = Config::CONFIG['bindir']
   end
-  
+
   if not InstallOptions.sbindir.nil?
     sbindir = InstallOptions.sbindir
   else
     sbindir = Config::CONFIG['sbindir']
   end
-  
+
   if not InstallOptions.sitelibdir.nil?
     sitelibdir = InstallOptions.sitelibdir
   else
@@ -259,11 +259,11 @@ def prepare_installation
       end
     end
   end
-  
+
   if not InstallOptions.mandir.nil?
     mandir = InstallOptions.mandir
   else
-    mandir = Config::CONFIG['mandir'] 
+    mandir = Config::CONFIG['mandir']
   end
 
   # To be deprecated once people move over to using --destdir option
@@ -342,13 +342,13 @@ def build_man(bins)
         File.unlink(&quot;./puppet.conf.rst&quot;)
 
         # Create binary man pages
-        bins.each do |bin| 
+        bins.each do |bin|
           b = bin.gsub( &quot;bin/&quot;, &quot;&quot;)
           %x{#{bin} --help &gt; ./#{b}.rst}
           %x{#{rst2man} ./#{b}.rst ./man/man8/#{b}.8}
           File.unlink(&quot;./#{b}.rst&quot;)
         end
-    rescue SystemCallError 
+    rescue SystemCallError
         $stderr.puts &quot;Couldn't build man pages: &quot; + $!
         $stderr.puts &quot;Continuing with install...&quot;
     end
@@ -388,7 +388,7 @@ def install_binfile(from, op_file, target)
       break
     end
   end
-  
+
   fail &quot;Cannot find a temporary directory&quot; unless tmp_dir
   tmp_file = File.join(tmp_dir, '_tmp')
   ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])</diff>
      <filename>install.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,7 +59,7 @@ module Puppet
     # I keep wanting to use Puppet.error
     # XXX this isn't actually working right now
     alias :error :err
-    
+
     # The feature collection
     @features = Puppet::Util::Feature.new('puppet/feature')
 </diff>
      <filename>lib/puppet.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,14 +14,14 @@ require 'optparse'
 # The executable uses the application object like this:
 #      Puppet::Application[:example].run
 #
-# 
+#
 # Puppet::Application.new(:example) do
-# 
+#
 #     preinit do
 #         # perform some pre initialization
 #         @all = false
 #     end
-# 
+#
 #     # dispatch is called to know to what command to call
 #     dispatch do
 #         ARGV.shift
@@ -30,15 +30,15 @@ require 'optparse'
 #     option(&quot;--arg ARGUMENT&quot;) do |v|
 #         @args &lt;&lt; v
 #     end
-# 
+#
 #     option(&quot;--debug&quot;, &quot;-d&quot;) do |v|
 #         @debug = v
 #     end
-# 
+#
 #     option(&quot;--all&quot;, &quot;-a:) do |v|
 #         @all = v
 #     end
-#     
+#
 #     unknown do |opt,arg|
 #         # last chance to manage an option
 #         ...
@@ -49,11 +49,11 @@ require 'optparse'
 #     command(:read) do
 #         # read action
 #     end
-# 
+#
 #     command(:write) do
 #         # writeaction
 #     end
-# 
+#
 # end
 #
 # === Preinit
@@ -62,7 +62,7 @@ require 'optparse'
 #
 # === Options
 # Puppet::Application uses +OptionParser+ to manage the application options.
-# Options are defined with the +option+ method to which are passed various 
+# Options are defined with the +option+ method to which are passed various
 # arguments, including the long option, the short option, a description...
 # Refer to +OptionParser+ documentation for the exact format.
 # * If the option method is given a block, this one will be called whenever
@@ -142,7 +142,7 @@ class Puppet::Application
         end
     end
 
-    # used to declare accessor in a more natural way in the 
+    # used to declare accessor in a more natural way in the
     # various applications
     def attr_accessor(*args)
         args.each do |arg|
@@ -186,7 +186,7 @@ class Puppet::Application
 
     # initialize default application behaviour
     def init_default
-        setup do 
+        setup do
             default_setup
         end
 </diff>
      <filename>lib/puppet/application.rb</filename>
    </modified>
    <modified>
      <diff>@@ -161,7 +161,7 @@ class TypeDoc
             a.to_s &lt;=&gt; b.to_s
         }.each { |prov|
             puts &quot;\n- **%s**&quot; % prov
-            puts @format.wrap(type.provider(prov).doc, 
+            puts @format.wrap(type.provider(prov).doc,
                               :indent =&gt; 4, :scrub =&gt; true)
         }
     end</diff>
      <filename>lib/puppet/application/pi.rb</filename>
    </modified>
    <modified>
      <diff>@@ -164,7 +164,7 @@ Puppet::Application.new(:puppetd) do
         # to clients. In the meantime, we just disable CRL checking if
         # the CRL file doesn't exist
         unless File::exist?(Puppet[:cacrl])
-            Puppet[:cacrl] = 'false' 
+            Puppet[:cacrl] = 'false'
         end
 
         handlers = nil
@@ -199,7 +199,7 @@ Puppet::Application.new(:puppetd) do
         args[:Server] = Puppet[:server]
         if options[:fqdn]
             args[:FQDN] = options[:fqdn]
-            Puppet[:certname] = options[:fqdn] 
+            Puppet[:certname] = options[:fqdn]
         end
 
         if options[:centrallogs]</diff>
      <filename>lib/puppet/application/puppetd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,7 +58,7 @@ class Puppet::Configurer
             end
         end
     end
-    
+
     # Just so we can specify that we are &quot;the&quot; instance.
     def initialize
         Puppet.settings.use(:main, :ssl, :puppetd)
@@ -124,7 +124,7 @@ class Puppet::Configurer
         return catalog
     end
 
-    # The code that actually runs the catalog.  
+    # The code that actually runs the catalog.
     # This just passes any options on to the catalog,
     # which accepts :tags and :ignoreschedules.
     def run(options = {})</diff>
      <filename>lib/puppet/configurer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ class Puppet::Daemon
             Process.detach(pid)
             exit(0)
         end
-        
+
         create_pidfile()
 
         # Get rid of console logging</diff>
      <filename>lib/puppet/daemon.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,7 +39,7 @@ module Puppet
         logopts = [&quot;$vardir/log&quot;, &quot;The Puppet log directory.&quot;]
     end
     setdefaults(:main, :logdir =&gt; logopts)
-    
+
     # This name hackery is necessary so that the rundir is set reasonably during
     # unit tests.
     if Process.uid == 0 and %w{puppetd puppetmasterd}.include?(self.name)
@@ -60,7 +60,7 @@ module Puppet
                 this directory can be removed without causing harm (although it
                 might result in spurious service restarts).&quot;
         },
-        :rundir =&gt; { 
+        :rundir =&gt; {
             :default =&gt; rundir,
             :mode =&gt; 01777,
             :desc =&gt; &quot;Where Puppet PID files are kept.&quot;
@@ -192,7 +192,7 @@ module Puppet
     end
 
     Puppet.setdefaults(:main,
-        # We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for 
+        # We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for
         # manipulating naming.
         :certname =&gt; {:default =&gt; fqdn.downcase, :desc =&gt; &quot;The name to use when handling certificates.  Defaults
             to the fully qualified domain name.&quot;,
@@ -320,13 +320,13 @@ module Puppet
                 autosigns any key request, and is a very bad idea), false (which
                 never autosigns any key request), and the path to a file, which
                 uses that configuration file to determine which keys to sign.&quot;},
-        :ca_days =&gt; [&quot;&quot;, &quot;How long a certificate should be valid. 
+        :ca_days =&gt; [&quot;&quot;, &quot;How long a certificate should be valid.
                  This parameter is deprecated, use ca_ttl instead&quot;],
-        :ca_ttl =&gt; [&quot;5y&quot;, &quot;The default TTL for new certificates; valid values 
-                must be an integer, optionally followed by one of the units 
-                'y' (years of 365 days), 'd' (days), 'h' (hours), or 
+        :ca_ttl =&gt; [&quot;5y&quot;, &quot;The default TTL for new certificates; valid values
+                must be an integer, optionally followed by one of the units
+                'y' (years of 365 days), 'd' (days), 'h' (hours), or
                 's' (seconds). The unit defaults to seconds. If this parameter
-                is set, ca_days is ignored. Examples are '3600' (one hour) 
+                is set, ca_days is ignored. Examples are '3600' (one hour)
                 and '1825d', which is the same as '5y' (5 years) &quot;],
         :ca_md =&gt; [&quot;md5&quot;, &quot;The type of hash used in certificates.&quot;],
         :req_bits =&gt; [2048, &quot;The bit length of the certificates.&quot;],
@@ -382,11 +382,11 @@ module Puppet
         },
         :masterport =&gt; [8140, &quot;Which port puppetmasterd listens on.&quot;],
         :parseonly =&gt; [false, &quot;Just check the syntax of the manifests.&quot;],
-        :node_name =&gt; [&quot;cert&quot;, &quot;How the puppetmaster determines the client's identity 
-           and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest, 
-           in particular for determining which 'node' statement applies to the client. 
-           Possible values are 'cert' (use the subject's CN in the client's 
-           certificate) and 'facter' (use the hostname that the client 
+        :node_name =&gt; [&quot;cert&quot;, &quot;How the puppetmaster determines the client's identity
+           and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
+           in particular for determining which 'node' statement applies to the client.
+           Possible values are 'cert' (use the subject's CN in the client's
+           certificate) and 'facter' (use the hostname that the client
            reported in its facts)&quot;],
         :bucketdir =&gt; {
             :default =&gt; &quot;$vardir/bucket&quot;,
@@ -642,7 +642,7 @@ module Puppet
         :typecheck =&gt; [true, &quot;Whether to validate types during parsing.&quot;],
         :paramcheck =&gt; [true, &quot;Whether to validate parameters during parsing.&quot;]
     )
-    
+
     setdefaults(:main,
         :casesensitive =&gt; [false,
             &quot;Whether matching in case statements and selectors</diff>
      <filename>lib/puppet/defaults.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 # Just quick mess-around to see what a DSL would look like.
-# 
+#
 # This is what the executable could look like:
 ##!/usr/bin/env ruby
 #
@@ -28,22 +28,22 @@
 #
 # require 'puppet'
 # require 'puppet/dsl'
-# 
+#
 # include Puppet::DSL
 # init()
-# 
+#
 # aspect :webserver do
 #     file &quot;/tmp/testone&quot;, :content =&gt; &quot;yaytest&quot;
-# 
+#
 #     exec &quot;testing&quot;, :command =&gt; &quot;/bin/echo this is a test&quot;
 # end
-# 
+#
 # aspect :other, :inherits =&gt; :webserver do
 #     file &quot;/tmp/testone&quot;, :mode =&gt; &quot;755&quot;
 # end
-# 
+#
 # acquire :other
-# 
+#
 # apply
 
 require 'puppet'</diff>
      <filename>lib/puppet/dsl.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 # rdot.rb
-# 
+#
 #
 # This is a modified version of dot.rb from Dave Thomas's rdoc project.  I [Horst Duchene]
 # renamed it to rdot.rb to avoid collision with an installed rdoc/dot.
@@ -7,19 +7,19 @@
 # It also supports undirected edges.
 
 module DOT
-    
+
     # These glogal vars are used to make nice graph source.
 
     $tab  = '    '
     $tab2 = $tab * 2
-    
+
     # if we don't like 4 spaces, we can change it any time
 
     def change_tab (t)
         $tab  = t
         $tab2 = t * 2
     end
-    
+
     # options for node declaration
 
     NODE_OPTS = [
@@ -56,7 +56,7 @@ module DOT
         'bgcolor',
         'rank'
     ]
-    
+
     # options for edge declaration
 
     EDGE_OPTS = [
@@ -96,7 +96,7 @@ module DOT
         # maintained for backward compatibility or rdot internal
         'id'
     ]
-    
+
     # options for graph declaration
 
     GRAPH_OPTS = [
@@ -111,7 +111,7 @@ module DOT
         'rank', 'rankdir', 'ranksep', 'ratio',
         'size'
     ]
-    
+
     # a root class for any element in dot notation
 
     class DOTSimpleElement
@@ -126,7 +126,7 @@ module DOT
             @name
         end
     end
-    
+
     # an element that has options ( node, edge, or graph )
 
     class DOTElement &lt; DOTSimpleElement
@@ -159,8 +159,8 @@ module DOT
         #end
 
     end
-    
-    
+
+
     # This is used when we build nodes that have shape=record
     # ports don't have options :)
 
@@ -177,7 +177,7 @@ module DOT
             ( @name &amp;&amp; @name != &quot;&quot; ? &quot;&lt;#{@name}&gt;&quot; : &quot;&quot; ) + &quot;#{@label}&quot;
         end
     end
-    
+
     # node element
 
     class DOTNode &lt; DOTElement
@@ -300,7 +300,7 @@ module DOT
             @from = params['from'] ? params['from'] : nil
             @to   = params['to'] ? params['to'] : nil
         end
-       
+
         def edge_link
             '--'
         end
@@ -315,7 +315,7 @@ module DOT
         end
 
     end # class DOTEdge
-          
+
     class DOTDirectedEdge &lt; DOTEdge
 
         def edge_link</diff>
      <filename>lib/puppet/external/dot.rb</filename>
    </modified>
    <modified>
      <diff>@@ -172,7 +172,7 @@ class Module
     def define_methods (*names, &amp;body)
         names.each { |name| define_method(name, &amp;body) }
     end
-  
+
     def define_private_methods (*names, &amp;body)
         define_methods(*names, &amp;body)
         names.each { |name| private name }
@@ -280,7 +280,7 @@ if __FILE__ == $0
             assert_equal @y.baz, 321
             assert_equal @y.quux, 654
         end
-    
+
         def test_define_soft_aliases
             @X.define_method(:foo) { 123 }
             @X.define_method(:baz) { 321 }</diff>
      <filename>lib/puppet/external/event-loop/better-definers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ class File
         flush
         flock(LOCK_UN)
     end
-  
+
     # Get a shared (i.e., read) lock on the file, and yield to the block.
     # If the lock is not available, wait for it without blocking other ruby
     # threads.</diff>
      <filename>lib/puppet/external/lock.rb</filename>
    </modified>
    <modified>
      <diff>@@ -231,9 +231,9 @@ class Nagios::Base
 
     # This is probably a bad idea.
     def name=(value)
-        unless self.class.namevar.to_s == &quot;name&quot; 
-            send(self.class.namevar.to_s + &quot;=&quot;, value) 
-        end    
+        unless self.class.namevar.to_s == &quot;name&quot;
+            send(self.class.namevar.to_s + &quot;=&quot;, value)
+        end
     end
 
     def namevar</diff>
      <filename>lib/puppet/external/nagios/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -402,7 +402,7 @@ module Racc
         toks.each {|t| out.print ' ', racc_token2str(t) }
       end
       out.puts &quot; --&gt; #{racc_token2str(sim)}&quot;
-          
+
       racc_print_stacks tstack, vstack
       @racc_debug_out.puts
     end</diff>
      <filename>lib/puppet/external/nagios/parser.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,7 +48,7 @@ class Puppet::FileServing::Base
     def links=(value)
         value = value.to_sym
         value = :manage if value == :ignore
-        raise(ArgumentError, &quot;:links can only be set to :manage or :follow&quot;) unless [:manage, :follow].include?(value) 
+        raise(ArgumentError, &quot;:links can only be set to :manage or :follow&quot;) unless [:manage, :follow].include?(value)
         @links = value
     end
 </diff>
      <filename>lib/puppet/file_serving/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,7 +55,7 @@ class Puppet::FileServing::Configuration::Parser &lt; Puppet::Util::LoadedFile
 
     # Allow a given pattern access to a mount.
     def allow(mount, value)
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = value.split(/\s*,\s*/).each { |val|
             begin
                 mount.info &quot;allowing %s access&quot; % val
@@ -69,7 +69,7 @@ class Puppet::FileServing::Configuration::Parser &lt; Puppet::Util::LoadedFile
 
     # Deny a given pattern access to a mount.
     def deny(mount, value)
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = value.split(/\s*,\s*/).each { |val|
             begin
                 mount.info &quot;denying %s access&quot; % val</diff>
      <filename>lib/puppet/file_serving/configuration/parser.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ class Puppet::FileServing::Content &lt; Puppet::FileServing::Base
     def content
         unless defined?(@content) and @content
             # This stat can raise an exception, too.
-            raise(ArgumentError, &quot;Cannot read the contents of links unless following links&quot;) if stat().ftype == &quot;symlink&quot; 
+            raise(ArgumentError, &quot;Cannot read the contents of links unless following links&quot;) if stat().ftype == &quot;symlink&quot;
 
             @content = ::File.read(full_path())
         end</diff>
      <filename>lib/puppet/file_serving/content.rb</filename>
    </modified>
    <modified>
      <diff>@@ -111,14 +111,14 @@ class Puppet::FileServing::Fileset
             elsif request.options.include?(param.to_s)
                 value = request.options[param.to_s]
             end
-            next if value.nil? 
+            next if value.nil?
             value = true if value == &quot;true&quot;
             value = false if value == &quot;false&quot;
             value = Integer(value) if value.is_a?(String) and value =~ /^\d+$/
             send(param.to_s + &quot;=&quot;, value)
         end
     end
-    
+
     private
 
     # Pull the recursion logic into one place.  It's moderately hairy, and this</diff>
      <filename>lib/puppet/file_serving/fileset.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ class Puppet::FileServing::Mount &lt; Puppet::Network::AuthStore
     include Puppet::Util::Logging
 
     attr_reader :name
-    
+
     # Determine the environment to use, if any.
     def environment(node_name)
         if node_name and node = Puppet::Node.find(node_name)</diff>
      <filename>lib/puppet/file_serving/mount.rb</filename>
    </modified>
    <modified>
      <diff>@@ -79,7 +79,7 @@ class Puppet::FileServing::Mount::File &lt; Puppet::FileServing::Mount
     # Create a map for a specific node.
     def clientmap(node)
         {
-            &quot;h&quot; =&gt; node.sub(/\..*$/, &quot;&quot;), 
+            &quot;h&quot; =&gt; node.sub(/\..*$/, &quot;&quot;),
             &quot;H&quot; =&gt; node,
             &quot;d&quot; =&gt; node.sub(/[^.]+\./, &quot;&quot;) # domain name
         }
@@ -101,7 +101,7 @@ class Puppet::FileServing::Mount::File &lt; Puppet::FileServing::Mount
 
         path.gsub(/%(.)/) do |v|
             key = $1
-            if key == &quot;%&quot; 
+            if key == &quot;%&quot;
                 &quot;%&quot;
             else
                 map[key] || v</diff>
      <filename>lib/puppet/file_serving/mount/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ class Puppet::Resource::Catalog::ActiveRecord &lt; Puppet::Indirector::ActiveRecord
         return nil unless host = ar_model.find_by_name(request.key)
 
         catalog = Puppet::Resource::Catalog.new(host.name)
-        
+
         host.resources.each do |resource|
             catalog.add_resource resource.to_transportable
         end</diff>
      <filename>lib/puppet/indirector/catalog/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -42,7 +42,7 @@ class Puppet::Indirector::Exec &lt; Puppet::Indirector::Terminus
             Puppet.err &quot;Failed to find %s via exec: %s&quot; % [name, detail]
             return nil
         end
-        
+
         if output =~ /\A\s*\Z/ # all whitespace
             Puppet.debug &quot;Empty response for %s from exec %s terminus&quot; % [name, self.name]
             return nil</diff>
      <filename>lib/puppet/indirector/exec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ class Puppet::Node::Facts::ActiveRecord &lt; Puppet::Indirector::ActiveRecord
         facts = request.instance
 
         host = ar_model.find_by_name(facts.name) || ar_model.create(:name =&gt; facts.name)
-        
+
         host.merge_facts(facts.values)
 
         host.save</diff>
      <filename>lib/puppet/indirector/facts/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,14 +23,14 @@ class Puppet::Indirector::Indirection
     def self.instances
         @@indirections.collect { |i| i.name }
     end
-    
+
     # Find an indirected model by name.  This is provided so that Terminus classes
     # can specifically hook up with the indirections they are associated with.
     def self.model(name)
         return nil unless match = @@indirections.find { |i| i.name == name }
         match.model
     end
-    
+
     attr_accessor :name, :model
 
     # Create and return our cache terminus.
@@ -126,7 +126,7 @@ class Puppet::Indirector::Indirection
         unless terminus_name ||= terminus_class
             raise Puppet::DevError, &quot;No terminus specified for %s; cannot redirect&quot; % self.name
         end
-        
+
         return termini[terminus_name] ||= make_terminus(terminus_name)
     end
 </diff>
      <filename>lib/puppet/indirector/indirection.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ class Puppet::Node::Ldap &lt; Puppet::Indirector::Ldap
 
     # The attributes that Puppet class information is stored in.
     def class_attributes
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = Puppet[:ldapclassattrs].split(/\s*,\s*/)
     end
 </diff>
      <filename>lib/puppet/indirector/node/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ require 'yaml'
 # and specifies a default queue type of &lt;tt&gt;:stomp&lt;/tt&gt;, appropriate for use with a variety of message brokers.
 #
 # It's up to the queue client type to instantiate itself correctly based on Puppet configuration information.
-# 
+#
 # A single queue client is maintained for the abstract terminus, meaning that you can only use one type
 # of queue client, one message broker solution, etc., with the indirection mechanism.
 #</diff>
      <filename>lib/puppet/indirector/queue.rb</filename>
    </modified>
    <modified>
      <diff>@@ -45,7 +45,7 @@ class Puppet::Transaction::Report::Processor &lt; Puppet::Indirector::Code
 
     # Handle the parsing of the reports attribute.
     def reports
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = Puppet[:reports].gsub(/(^\s+)|(\s+$)/, '').split(/\s*,\s*/)
     end
 end</diff>
      <filename>lib/puppet/indirector/report/processor.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'puppet/network/http/api/v1'
 
 # Access objects via REST
 class Puppet::Indirector::REST &lt; Puppet::Indirector::Terminus
-    include Puppet::Network::HTTP::API::V1 
+    include Puppet::Network::HTTP::API::V1
 
     class &lt;&lt; self
         attr_reader :server_setting, :port_setting
@@ -58,7 +58,7 @@ class Puppet::Indirector::REST &lt; Puppet::Indirector::Terminus
     def headers
         {&quot;Accept&quot; =&gt; model.supported_formats.join(&quot;, &quot;)}
     end
-  
+
     def network(request)
         Puppet::Network::HttpPool.http_instance(request.server || self.class.server, request.port || self.class.port)
     end
@@ -66,19 +66,19 @@ class Puppet::Indirector::REST &lt; Puppet::Indirector::Terminus
     def find(request)
         deserialize network(request).get(indirection2uri(request), headers)
     end
-    
+
     def search(request)
         unless result = deserialize(network(request).get(indirection2uri(request), headers), true)
             return []
         end
         return result
     end
-    
+
     def destroy(request)
         raise ArgumentError, &quot;DELETE does not accept options&quot; unless request.options.empty?
         deserialize network(request).delete(indirection2uri(request), headers)
     end
-    
+
     def save(request)
         raise ArgumentError, &quot;PUT does not accept options&quot; unless request.options.empty?
         deserialize network(request).put(indirection2uri(request), request.instance.render, headers)</diff>
      <filename>lib/puppet/indirector/rest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@ class Puppet::Indirector::SslFile &lt; Puppet::Indirector::Terminus
 
     # Use a setting to determine our path.
     def path(name)
-        if ca?(name) and ca_location 
+        if ca?(name) and ca_location
             ca_location
         elsif collection_directory
             File.join(collection_directory, name.to_s + &quot;.pem&quot;)</diff>
      <filename>lib/puppet/indirector/ssl_file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -111,7 +111,7 @@ class Puppet::Indirector::Terminus
         # Return all terminus classes for a given indirection.
         def terminus_classes(indirection_name)
             setup_instance_loading indirection_name
-            
+
             # Load them all.
             instance_loader(indirection_name).loadall
 
@@ -137,15 +137,15 @@ class Puppet::Indirector::Terminus
             raise Puppet::DevError, &quot;Cannot create instances of abstract terminus types&quot;
         end
     end
-    
+
     def model
         self.class.model
     end
-    
+
     def name
         self.class.name
     end
-    
+
     def terminus_type
         self.class.terminus_type
     end</diff>
      <filename>lib/puppet/indirector/terminus.rb</filename>
    </modified>
    <modified>
      <diff>@@ -52,7 +52,7 @@ class Puppet::Indirector::Yaml &lt; Puppet::Indirector::Terminus
     def path(name)
         File.join(base, self.class.indirection_name.to_s, name.to_s + &quot;.yaml&quot;)
     end
-    
+
     # Do a glob on the yaml directory, loading each file found
     def search(request)
       Dir.glob(File.join(base, self.class.indirection_name.to_s, request.key)).collect { |f| YAML.load_file(f) }</diff>
      <filename>lib/puppet/indirector/yaml.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ module Manager
         @types.each do |name, type|
             # Only consider types that have names
             #if ! type.parameters.empty? or ! type.validproperties.empty?
-                yield type 
+                yield type
             #end
         end
     end
@@ -94,14 +94,14 @@ module Manager
 
         klass
     end
-    
+
     # Remove an existing defined type.  Largely used for testing.
     def rmtype(name)
         # Then create the class.
         klass = rmclass(name,
             :hash =&gt; @types
         )
-        
+
         if respond_to?(&quot;new&quot; + name.to_s)
             metaclass.send(:remove_method, &quot;new&quot; + name.to_s)
         end</diff>
      <filename>lib/puppet/metatype/manager.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,7 +29,7 @@ class Puppet::Module
             end
         end
     end
-    
+
     # Return an array of paths by splitting the +modulepath+ config
     # parameter. Only consider paths that are absolute and existing
     # directories</diff>
      <filename>lib/puppet/module.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ module Puppet
         [:allow, :deny].each do |method|
             define_method(method) do |*args|
                 @rights.send(method, *args)
-            end         
+            end
         end
 
         # Here we add a little bit of semantics.  They can set auth on a whole
@@ -77,7 +77,7 @@ module Puppet
                     else
                         return
                     end
-                else    
+                else
                     Puppet.notice &quot;%s and %s&quot; % [@configtimeout, @configstatted]
                 end
             end</diff>
      <filename>lib/puppet/network/authconfig.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 class Puppet::Network::Client::Dipper &lt; Puppet::Network::Client
     @handler = Puppet::Network::Handler.handler(:filebucket)
     @drivername = :Bucket
-    
+
     attr_accessor :name
 
     # Create our bucket client</diff>
      <filename>lib/puppet/network/client/dipper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,7 +96,7 @@ module Puppet::Network::FormatHandler
         end
 
         def supported_formats
-            result = format_handler.formats.collect { |f| format_handler.format(f) }.find_all { |f| f.supported?(self) }.collect { |f| f.name }.sort do |a, b| 
+            result = format_handler.formats.collect { |f| format_handler.format(f) }.find_all { |f| f.supported?(self) }.collect { |f| f.name }.sort do |a, b|
                 # It's an inverse sort -- higher weight formats go first.
                 format_handler.format(b).weight &lt;=&gt; format_handler.format(a).weight
             end</diff>
      <filename>lib/puppet/network/format_handler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -129,7 +129,7 @@ class Puppet::Network::Handler # :nodoc:
             File.open(bfile) { |of|
                 contents = of.read
             }
-            
+
             if client
                 return Base64.encode64(contents)
             else</diff>
      <filename>lib/puppet/network/handler/filebucket.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,7 +53,7 @@ class Puppet::Network::Handler
             mount = Mount.new(MODULES)
             mount.allow(&quot;*&quot;)
             @mounts[MODULES] = mount
-            
+
             Puppet.debug &quot;No file server configuration file; autocreating #{PLUGINS} mount with default permissions&quot;
             mount = PluginMount.new(PLUGINS)
             mount.allow(&quot;*&quot;)
@@ -145,7 +145,7 @@ class Puppet::Network::Handler
 
             desc.collect { |sub| sub.join(&quot;\t&quot;) }.join(&quot;\n&quot;)
         end
-        
+
         def local?
             self.local
         end
@@ -349,14 +349,14 @@ class Puppet::Network::Handler
                 mount.allow(&quot;*&quot;)
                 newmounts[MODULES] = mount
             end
-            
+
             unless newmounts[PLUGINS]
                 Puppet.debug &quot;No #{PLUGINS} mount given; autocreating with default permissions&quot;
                 mount = PluginMount.new(PLUGINS)
                 mount.allow(&quot;*&quot;)
                 newmounts[PLUGINS] = mount
             end
-            
+
             unless newmounts[PLUGINS].valid?
                 Puppet.debug &quot;No path given for #{PLUGINS} mount; creating a special PluginMount&quot;
                 # We end up here if the user has specified access rules for
@@ -372,7 +372,7 @@ class Puppet::Network::Handler
                                  )
                 newmounts[PLUGINS] = mount
             end
-                
+
             # Verify each of the mounts are valid.
             # We let the check raise an error, so that it can raise an error
             # pointing to the specific problem.
@@ -433,7 +433,7 @@ class Puppet::Network::Handler
             # Create a map for a specific client.
             def clientmap(client)
                 {
-                    &quot;h&quot; =&gt; client.sub(/\..*$/, &quot;&quot;), 
+                    &quot;h&quot; =&gt; client.sub(/\..*$/, &quot;&quot;),
                     &quot;H&quot; =&gt; client,
                     &quot;d&quot; =&gt; client.sub(/[^.]+\./, &quot;&quot;) # domain name
                 }
@@ -454,7 +454,7 @@ class Puppet::Network::Handler
                 end
                 path.gsub(/%(.)/) do |v|
                     key = $1
-                    if key == &quot;%&quot; 
+                    if key == &quot;%&quot;
                         &quot;%&quot;
                     else
                         map[key] || v
@@ -698,7 +698,7 @@ class Puppet::Network::Handler
         # A special mount class specifically for the plugins mount -- just
         # has some magic to effectively do a union mount of the 'plugins'
         # directory of all modules.
-        # 
+        #
         class PluginMount &lt; Mount
             def path(client)
                 ''
@@ -719,7 +719,7 @@ class Puppet::Network::Handler
             def mod_file_path(mod, relpath, client = nil)
                 File.join(mod, PLUGINS, relpath)
             end
-            
+
             def file_path(relpath, client = nil)
                 return nil unless mod = valid_modules(client).find { |m| m.plugin(relpath) }
                 mod.plugin(relpath)
@@ -746,7 +746,7 @@ class Puppet::Network::Handler
             def valid_modules(client)
                 Puppet::Node::Environment.new.modules.find_all { |mod| mod.exist? }
             end
-            
+
             def add_to_filetree(f, filetree)
                first, rest = f.split(File::SEPARATOR, 2)
             end</diff>
      <filename>lib/puppet/network/handler/fileserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -74,7 +74,7 @@ class Puppet::Network::Handler
             end
         end
 
-        # 
+        #
         def decode_facts(facts)
             if @local
                 # we don't need to do anything, since we should already</diff>
      <filename>lib/puppet/network/handler/master.rb</filename>
    </modified>
    <modified>
      <diff>@@ -79,7 +79,7 @@ class Puppet::Network::Handler
 
         # Handle the parsing of the reports attribute.
         def reports
-            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
             x = Puppet[:reports].gsub(/(^\s+)|(\s+$)/, '').split(/\s*,\s*/)
         end
     end</diff>
      <filename>lib/puppet/network/handler/report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ class Puppet::Network::Handler
         desc &quot;An interface for interacting with client-based resources that can
         be used for querying or managing remote machines without using Puppet's
         central server tools.
-        
+
         The ``describe`` and ``list`` methods return TransBuckets containing
         TransObject instances (``describe`` returns a single TransBucket),
         and the ``apply`` method accepts a TransBucket of TransObjects and
@@ -44,7 +44,7 @@ class Puppet::Network::Handler
             # And then apply the catalog.  This way we're reusing all
             # the code in there.  It should probably just be separated out, though.
             transaction = catalog.apply
-            
+
             # And then clean up
             catalog.clear(true)
 
@@ -173,14 +173,14 @@ class Puppet::Network::Handler
         end
 
         # Deal with ignore parameters.
-        def handleignore(children, path, ignore)            
-            ignore.each { |ignore|                
+        def handleignore(children, path, ignore)
+            ignore.each { |ignore|
                 Dir.glob(File.join(path,ignore), File::FNM_DOTMATCH) { |match|
                     children.delete(File.basename(match))
-                }                
+                }
             }
             return children
-        end  
+        end
 
         def to_s
             &quot;resource&quot;</diff>
      <filename>lib/puppet/network/handler/resource.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ module Puppet::Network::HTTP
         when :mongrel
             raise ArgumentError, &quot;Mongrel is not installed on this platform&quot; unless Puppet.features.mongrel?
             require 'puppet/network/http/mongrel'
-            return Puppet::Network::HTTP::Mongrel 
+            return Puppet::Network::HTTP::Mongrel
         else
             raise ArgumentError, &quot;Unknown HTTP server name [#{kind}]&quot;
         end</diff>
      <filename>lib/puppet/network/http.rb</filename>
    </modified>
    <modified>
      <diff>@@ -165,7 +165,7 @@ module Puppet::Network::HTTP::Handler
 
     def path(request)
         raise NotImplementedError
-    end    
+    end
 
     def request_key(request)
         raise NotImplementedError</diff>
      <filename>lib/puppet/network/http/handler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ class Puppet::Network::HTTP::Mongrel
     def initialize(args = {})
         @listening = false
     end
-    
+
     def listen(args = {})
         raise ArgumentError, &quot;:protocols must be specified.&quot; if !args[:protocols] or args[:protocols].empty?
         raise ArgumentError, &quot;:address must be specified.&quot; unless args[:address]
@@ -15,26 +15,26 @@ class Puppet::Network::HTTP::Mongrel
 
         @protocols = args[:protocols]
         @xmlrpc_handlers = args[:xmlrpc_handlers]
-        @server = Mongrel::HttpServer.new(args[:address], args[:port]) 
+        @server = Mongrel::HttpServer.new(args[:address], args[:port])
         setup_handlers
 
         @listening = true
         @server.run
     end
-    
+
     def unlisten
         raise &quot;Mongrel server is not listening&quot; unless listening?
         @server.stop
         @server = nil
         @listening = false
     end
-    
+
     def listening?
         @listening
     end
-    
+
   private
-  
+
     def setup_handlers
         # Register our REST support at /
         klass = class_for_protocol(:rest)
@@ -49,7 +49,7 @@ class Puppet::Network::HTTP::Mongrel
     def setup_xmlrpc_handlers
         @server.register('/RPC2', Puppet::Network::HTTPServer::Mongrel.new(@xmlrpc_handlers))
     end
-  
+
     def class_for_protocol(protocol)
         return Puppet::Network::HTTP::MongrelREST if protocol.to_sym == :rest
         raise ArgumentError, &quot;Unknown protocol [#{protocol}].&quot;</diff>
      <filename>lib/puppet/network/http/mongrel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ class Puppet::Network::HTTP::MongrelREST &lt; Mongrel::HttpHandler
 
     # what path was requested?
     def path(request)
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         #x = '/' + request.params[Mongrel::Const::REQUEST_PATH]
         request.params[Mongrel::Const::REQUEST_PATH]
     end</diff>
      <filename>lib/puppet/network/http/mongrel/rest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,19 +12,19 @@ class Puppet::Network::HTTP::WEBrick
         @listening = false
         @mutex = Mutex.new
     end
-    
+
     def self.class_for_protocol(protocol)
         return Puppet::Network::HTTP::WEBrickREST if protocol.to_sym == :rest
         raise &quot;Unknown protocol [#{protocol}].&quot;
     end
-    
+
     def listen(args = {})
         raise ArgumentError, &quot;:protocols must be specified.&quot; if !args[:protocols] or args[:protocols].empty?
         raise ArgumentError, &quot;:address must be specified.&quot; unless args[:address]
         raise ArgumentError, &quot;:port must be specified.&quot; unless args[:port]
-        
+
         @protocols = args[:protocols]
-        @xmlrpc_handlers = args[:xmlrpc_handlers]        
+        @xmlrpc_handlers = args[:xmlrpc_handlers]
 
         arguments = {:BindAddress =&gt; args[:address], :Port =&gt; args[:port]}
         arguments.merge!(setup_logger)
@@ -35,12 +35,12 @@ class Puppet::Network::HTTP::WEBrick
         setup_handlers
 
         @mutex.synchronize do
-            raise &quot;WEBrick server is already listening&quot; if @listening        
+            raise &quot;WEBrick server is already listening&quot; if @listening
             @listening = true
             @thread = Thread.new { @server.start }
         end
     end
-    
+
     def unlisten
         @mutex.synchronize do
             raise &quot;WEBrick server is not listening&quot; unless @listening
@@ -50,7 +50,7 @@ class Puppet::Network::HTTP::WEBrick
             @listening = false
         end
     end
-    
+
     def listening?
         @mutex.synchronize do
             @listening
@@ -110,7 +110,7 @@ class Puppet::Network::HTTP::WEBrick
     end
 
   private
-    
+
     def setup_handlers
         # Set up the new-style protocols.
         klass = self.class.class_for_protocol(:rest)</diff>
      <filename>lib/puppet/network/http/webrick.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ module Puppet::Network::HttpPool
         include Puppet::Util::Cacher
 
         private
-        
+
         cached_attr(:http_cache) { Hash.new }
     end
 </diff>
      <filename>lib/puppet/network/http_pool.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
 # Author:     Manuel Holtgrewe &lt;purestorm at ggnore.net&gt;
 #
 # Copyright (c) 2006 Manuel Holtgrewe, 2007 Luke Kanies
-# 
+#
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
 # &quot;Software&quot;), to deal in the Software without restriction, including
@@ -11,10 +11,10 @@
 # distribute, sublicense, and/or sell copies of the Software, and to
 # permit persons to whom the Software is furnished to do so, subject to
 # the following conditions:
-# 
+#
 # The above copyright notice and this permission notice shall be
 # included in all copies or substantial portions of the Software.
-# 
+#
 # THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -113,7 +113,7 @@ module Puppet::Network
                 end
             end
         end
-      
+
         private
 
         def client_info(request)
@@ -144,7 +144,7 @@ module Puppet::Network
         def parse_content_type(str)
             a, *b = str.split(&quot;;&quot;)
             return a.strip, *b
-        end  
+        end
     end
 end
 </diff>
      <filename>lib/puppet/network/http_server/mongrel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,7 +18,7 @@ module Puppet
             include Puppet::SSLCertificates::Support
 
             # Read the CA cert and CRL and populate an OpenSSL::X509::Store
-            # with them, with flags appropriate for checking client 
+            # with them, with flags appropriate for checking client
             # certificates for revocation
             def x509store
                 if Puppet[:cacrl] == 'false'</diff>
      <filename>lib/puppet/network/http_server/webrick.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ module Puppet::Network
             @authconfig
         end
 
-        # Verify that our client has access.  
+        # Verify that our client has access.
         def check_authorization(request)
             authconfig.allowed?(request)
         end</diff>
      <filename>lib/puppet/network/rest_authorization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -42,7 +42,7 @@ class Rights
         res = :nomatch
         right = @rights.find do |acl|
             found = false
-            # an acl can return :dunno, which means &quot;I'm not qualified to answer your question, 
+            # an acl can return :dunno, which means &quot;I'm not qualified to answer your question,
             # please ask someone else&quot;. This is used when for instance an acl matches, but not for the
             # current rest method, where we might think some other acl might be more specific.
             if match = acl.match?(name)</diff>
      <filename>lib/puppet/network/rights.rb</filename>
    </modified>
    <modified>
      <diff>@@ -83,7 +83,7 @@ class Puppet::Network::Server
             @routes[name.to_sym] = true
         end
     end
-  
+
     # Unregister Indirector handlers.
     def unregister(*indirections)
         raise &quot;Cannot unregister indirections while server is listening.&quot; if listening?
@@ -92,7 +92,7 @@ class Puppet::Network::Server
         indirections.flatten.each do |i|
             raise(ArgumentError, &quot;Indirection [%s] is unknown.&quot; % i) unless @routes[i.to_sym]
         end
-        
+
         indirections.flatten.each do |i|
             @routes.delete(i.to_sym)
         end
@@ -106,7 +106,7 @@ class Puppet::Network::Server
             @xmlrpc_routes[name.to_sym] = true
         end
     end
-  
+
     # Unregister xmlrpc handlers.
     def unregister_xmlrpc(*namespaces)
         raise &quot;Cannot unregister xmlrpc handlers while server is listening.&quot; if listening?
@@ -115,7 +115,7 @@ class Puppet::Network::Server
         namespaces.flatten.each do |i|
             raise(ArgumentError, &quot;XMLRPC handler '%s' is unknown.&quot; % i) unless @xmlrpc_routes[i.to_sym]
         end
-        
+
         namespaces.flatten.each do |i|
             @xmlrpc_routes.delete(i.to_sym)
         end
@@ -124,19 +124,19 @@ class Puppet::Network::Server
     def listening?
         @listening
     end
-  
+
     def listen
         raise &quot;Cannot listen -- already listening.&quot; if listening?
         @listening = true
         http_server.listen(:address =&gt; address, :port =&gt; port, :handlers =&gt; @routes.keys, :xmlrpc_handlers =&gt; @xmlrpc_routes.keys, :protocols =&gt; protocols)
     end
-  
+
     def unlisten
         raise &quot;Cannot unlisten -- not currently listening.&quot; unless listening?
-        http_server.unlisten   
+        http_server.unlisten
         @listening = false
     end
-    
+
     def http_server_class
         http_server_class_by_type(@server_type)
     end
@@ -152,11 +152,11 @@ class Puppet::Network::Server
     end
 
   private
-  
+
     def http_server
         @http_server ||= http_server_class.new
     end
-    
+
     def http_server_class_by_type(kind)
         Puppet::Network::HTTP.server_class_by_type(kind)
     end</diff>
      <filename>lib/puppet/network/server.rb</filename>
    </modified>
    <modified>
      <diff>@@ -82,7 +82,7 @@ module Puppet::Network
                 if detail.message.include?(str)
                     Puppet.warning &quot;Certificate validation failed; consider using the certname configuration option&quot;
                 end
-            end 
+            end
             raise XMLRPCClientError, &quot;Certificates were not trusted: %s&quot; % detail
         end
 
@@ -90,7 +90,7 @@ module Puppet::Network
             if detail.message.to_s =~ /^Wrong size\. Was \d+, should be \d+$/
                 Puppet.warning &quot;XMLRPC returned wrong size.  Retrying.&quot;
                 return :retry
-            end    
+            end
             Puppet.err &quot;Could not call %s.%s: %s&quot; % [namespace, method, detail.inspect]
             error = XMLRPCClientError.new(detail.to_s)
             error.set_backtrace detail.backtrace
@@ -107,7 +107,7 @@ module Puppet::Network
                 if detail.message.include?(str)
                     Puppet.warning &quot;Certificate validation failed; consider using the certname configuration option&quot;
                 end
-            end 
+            end
             raise XMLRPCClientError, &quot;Certificates were not trusted: %s&quot; % detail
         end
 
@@ -185,7 +185,7 @@ module Puppet::Network
             )
             @http = Puppet::Network::HttpPool.http_instance(@host, @port)
         end
- 
+
         # Get rid of our existing connection, replacing it with a new one.
         # This should only happen if we lose our connection somehow (e.g., an EPIPE)
         # or we've just downloaded certs and we need to create new http instances
@@ -197,7 +197,7 @@ module Puppet::Network
             @http = nil
             self.http # force a new one
         end
-        
+
         def start
             begin
                 @http.start unless @http.started?</diff>
      <filename>lib/puppet/network/xmlrpc/client.rb</filename>
    </modified>
    <modified>
      <diff>@@ -42,7 +42,7 @@ module Puppet::Network::XMLRPC
         # we need to pass a ClientRequest object to process() so we can do
         # authorization.  It's the only way to stay thread-safe.
         def service(request, response)
-            if @valid_ip 
+            if @valid_ip
                 raise WEBrick::HTTPStatus::Forbidden unless @valid_ip.any? { |ip| request.peeraddr[3] =~ ip }
             end
 
@@ -51,9 +51,9 @@ module Puppet::Network::XMLRPC
                     &quot;unsupported method `#{request.request_method}'.&quot;
             end
 
-            if parse_content_type(request['Content-type']).first != &quot;text/xml&quot; 
+            if parse_content_type(request['Content-type']).first != &quot;text/xml&quot;
                 raise WEBrick::HTTPStatus::BadRequest
-            end 
+            end
 
             length = (request['Content-length'] || 0).to_i
 
@@ -66,14 +66,14 @@ module Puppet::Network::XMLRPC
             end
 
             resp = process(data, client_request(request))
-            if resp.nil? or resp.size &lt;= 0  
+            if resp.nil? or resp.size &lt;= 0
                 raise WEBrick::HTTPStatus::InternalServerError
             end
 
             response.status = 200
             response['Content-Length'] = resp.size
             response['Content-Type']   = &quot;text/xml; charset=utf-8&quot;
-            response.body = resp 
+            response.body = resp
         end
 
         private
@@ -97,7 +97,7 @@ module Puppet::Network::XMLRPC
             if cert = request.client_cert
                 nameary = cert.subject.to_a.find { |ary|
                     ary[0] == &quot;CN&quot;
-                }   
+                }
 
                 if nameary.nil?
                     Puppet.warning &quot;Could not retrieve server name from cert&quot;</diff>
      <filename>lib/puppet/network/xmlrpc/webrick_servlet.rb</filename>
    </modified>
    <modified>
      <diff>@@ -64,7 +64,7 @@ class Puppet::Parameter
             end
 
             private
-            
+
             # A standard way of converting all of our values, so we're always
             # comparing apples to apples.
             def convert(value)
@@ -130,7 +130,7 @@ class Puppet::Parameter
             if value = @strings.find { |v| v.match?(test_value) }
                 return value
             end
-            
+
             # Then look for a regex match
             @regexes.find { |v| v.match?(test_value) }
         end
@@ -158,7 +158,7 @@ class Puppet::Parameter
         # * &lt;tt&gt;:event&lt;/tt&gt;: The event that should be returned when this value is set.
         # * &lt;tt&gt;:call&lt;/tt&gt;: When to call any associated block.  The default value
         #   is ``instead``, which means to call the value instead of calling the
-        #   provider.  You can also specify ``before`` or ``after``, which will 
+        #   provider.  You can also specify ``before`` or ``after``, which will
         #   call both the block and the provider, according to the order you specify
         #   (the ``first`` refers to when the block is called, not the provider).
         def newvalue(name, options = {}, &amp;block)</diff>
      <filename>lib/puppet/parameter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ class Puppet::Parser::AST
             # Make a new array, so we don't have to deal with the details of
             # flattening and such
             items = []
-            
+
             # First clean out any AST::ASTArrays
             @children.each { |child|
                 if child.instance_of?(AST::ASTArray)</diff>
      <filename>lib/puppet/parser/ast/astarray.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ class Puppet::Parser::AST
         def evaluate(scope)
             # evaluate the first operand, should return a boolean value
             lval = @lval.safeevaluate(scope)
-            
+
             # return result
             # lazy evaluate right operand
             case @operator
@@ -27,8 +27,8 @@ class Puppet::Parser::AST
                 else # false and false == false
                     false
                 end
-            when &quot;or&quot;; 
-                if Puppet::Parser::Scope.true?(lval) 
+            when &quot;or&quot;;
+                if Puppet::Parser::Scope.true?(lval)
                     true
                 else
                     rval = @rval.safeevaluate(scope)</diff>
      <filename>lib/puppet/parser/ast/boolean_operator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ class Puppet::Parser::AST
 
             retvalue = nil
             found = false
-            
+
             # Iterate across the options looking for a match.
             default = nil
             @options.each { |option|</diff>
      <filename>lib/puppet/parser/ast/casestatement.rb</filename>
    </modified>
    <modified>
      <diff>@@ -67,7 +67,7 @@ class CollExpr &lt; AST::Branch
         else
             str = &quot;(%s) %s (%s)&quot; % [str1, oper, str2]
         end
-        
+
         return str, code
     end
 </diff>
      <filename>lib/puppet/parser/ast/collexpr.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ class Puppet::Parser::AST
             # convert to number if operands are number
             lval = Puppet::Parser::Scope.number?(lval) || lval
             rval = Puppet::Parser::Scope.number?(rval) || rval
-            
+
             # return result
             unless @operator == '!='
                 lval.send(@operator,rval)</diff>
      <filename>lib/puppet/parser/ast/comparison_operator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'puppet/parser/ast/branch'
 
 class Puppet::Parser::AST
     # A statement syntactically similar to an ResourceDef, but uses a
-    # capitalized object type and cannot have a name.  
+    # capitalized object type and cannot have a name.
     class ResourceDefaults &lt; AST::Branch
         attr_accessor :type, :params
 </diff>
      <filename>lib/puppet/parser/ast/resource_defaults.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@ class Puppet::Parser::AST
             # Now we just create a normal resource, but we call a very different
             # method on the scope.
             resource = [resource] unless resource.is_a?(Array)
-            
+
             resource = resource.collect do |r|
                 res = Puppet::Parser::Resource.new(
                     :type =&gt; r.type,</diff>
      <filename>lib/puppet/parser/ast/resource_override.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,7 +25,7 @@ class Puppet::Parser::AST
         def evaluate(scope)
             title = @title.safeevaluate(scope)
             title = [title] unless title.is_a?(Array)
-            
+
             if @type.to_s.downcase == &quot;class&quot;
                 resource_type = &quot;class&quot;
                 title = title.collect { |t| qualified_class(scope, t) }</diff>
      <filename>lib/puppet/parser/ast/resource_reference.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,9 +17,9 @@ class Puppet::Parser::AST
 
             # Get our parameter.
             paramvalue = @param.safeevaluate(scope)
-            
+
             sensitive = Puppet[:casesensitive]
-            
+
             if ! sensitive and paramvalue.respond_to?(:downcase)
                 paramvalue = paramvalue.downcase
             end</diff>
      <filename>lib/puppet/parser/ast/selector.rb</filename>
    </modified>
    <modified>
      <diff>@@ -120,7 +120,7 @@ module Functions
             return false
         end
     end
-  
+
     # Runs a newfunction to create a function for each of the log levels
 
     Puppet::Util::Log.levels.each do |level|</diff>
      <filename>lib/puppet/parser/functions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-Puppet::Parser::Functions::newfunction(:fqdn_rand, :type =&gt; :rvalue, :doc =&gt; 
-    &quot;Generates random numbers based on the node's fqdn. The first argument 
-    sets the range.  The second argument specifies a number to add to the 
+Puppet::Parser::Functions::newfunction(:fqdn_rand, :type =&gt; :rvalue, :doc =&gt;
+    &quot;Generates random numbers based on the node's fqdn. The first argument
+    sets the range.  The second argument specifies a number to add to the
     seed and is optional.&quot;) do |args|
         require 'md5'
         max = args[0]</diff>
      <filename>lib/puppet/parser/functions/fqdn_rand.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
-Puppet::Parser::Functions::newfunction(:inline_template, :type =&gt; :rvalue, :doc =&gt; 
-    &quot;Evaluate a template string and return its value.  See `the templating docs 
-    &lt;/trac/puppet/wiki/PuppetTemplating&gt;`_ for more information.  Note that 
-    if multiple template strings are specified, their output is all concatenated 
+Puppet::Parser::Functions::newfunction(:inline_template, :type =&gt; :rvalue, :doc =&gt;
+    &quot;Evaluate a template string and return its value.  See `the templating docs
+    &lt;/trac/puppet/wiki/PuppetTemplating&gt;`_ for more information.  Note that
+    if multiple template strings are specified, their output is all concatenated
     and returned as the output of the function.&quot;) do |vals|
         require 'erb'
 </diff>
      <filename>lib/puppet/parser/functions/inline_template.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 module Puppet::Parser::Functions
     newfunction(:regsubst, :type =&gt; :rvalue,
                 :doc =&gt; &quot;
-                Perform regexp replacement on a string. 
+                Perform regexp replacement on a string.
 
 - **Parameters** (in order):
 
@@ -19,7 +19,7 @@ module Puppet::Parser::Functions
     - **G**         Global replacement; all occurrences of the regexp in the string will be replaced.  Without this, only the first occurrence will be replaced.
 
 :lang:  Optional.  How to handle multibyte characters.  A single-character string with the following values:
-     
+
      - **N**         None
      - **E**         EUC
      - **S**         SJIS</diff>
      <filename>lib/puppet/parser/functions/regsubst.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
-Puppet::Parser::Functions::newfunction(:template, :type =&gt; :rvalue, :doc =&gt; 
-    &quot;Evaluate a template and return its value.  See `the templating docs 
-    &lt;/trac/puppet/wiki/PuppetTemplating&gt;`_ for more information.  Note that 
-    if multiple templates are specified, their output is all concatenated 
+Puppet::Parser::Functions::newfunction(:template, :type =&gt; :rvalue, :doc =&gt;
+    &quot;Evaluate a template and return its value.  See `the templating docs
+    &lt;/trac/puppet/wiki/PuppetTemplating&gt;`_ for more information.  Note that
+    if multiple templates are specified, their output is all concatenated
     and returned as the output of the function.&quot;) do |vals|
         require 'erb'
 </diff>
      <filename>lib/puppet/parser/functions/template.rb</filename>
    </modified>
    <modified>
      <diff>@@ -471,10 +471,10 @@ else:             # nothing
 # Unlike yacc/bison, it seems racc
 # gives tons of shift/reduce warnings
 # with the following syntax:
-# 
+#
 # expression: ...
 #            | expression arithop expressio { ... }
-#            
+#
 # arithop: PLUS | MINUS | DIVIDE | TIMES ...
 #
 # So I had to develop the expression by adding one rule
@@ -525,10 +525,10 @@ expression:   rvalue
 }
             | expression AND expression {
     result = ast AST::BooleanOperator, :operator =&gt; val[1], :lval =&gt; val[0], :rval =&gt; val[2]
-}            
+}
             | expression OR expression {
     result = ast AST::BooleanOperator, :operator =&gt; val[1], :lval =&gt; val[0], :rval =&gt; val[2]
-}            
+}
             | LPAREN expression RPAREN {
     result = val[1]
 }
@@ -578,9 +578,9 @@ selector:     selectlhand QMARK svalues {
 }
 
 svalues:      selectval
-            | LBRACE sintvalues endcomma RBRACE { 
+            | LBRACE sintvalues endcomma RBRACE {
     @lexer.commentpop
-    result = val[1] 
+    result = val[1]
 }
 
 sintvalues:   selectval
@@ -670,7 +670,7 @@ classname:       NAME
 
 # Multiple hostnames, as used for node names.  These are all literal
 # strings, not AST objects.
-hostnames:    hostname 
+hostnames:    hostname
   | hostnames COMMA hostname {
     result = val[0]
     result = [result] unless result.is_a?(Array)</diff>
      <filename>lib/puppet/parser/grammar.ra</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ class Puppet::Parser::Interpreter
     # create our interpreter
     def initialize
         # The class won't always be defined during testing.
-        if Puppet[:storeconfigs] 
+        if Puppet[:storeconfigs]
             if Puppet.features.rails?
                 Puppet::Rails.init
             else</diff>
      <filename>lib/puppet/parser/interpreter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -281,11 +281,11 @@ class Puppet::Parser::Lexer
         # I tried optimizing based on the first char, but it had
         # a slightly negative affect and was a good bit more complicated.
         TOKENS.regex_tokens.each do |token|
-            next unless match_length = @scanner.match?(token.regex) 
-            
+            next unless match_length = @scanner.match?(token.regex)
+
             # We've found a longer match
             if match_length &gt; length
-                value = @scanner.scan(token.regex) 
+                value = @scanner.scan(token.regex)
                 length = value.length
                 matched_token = token
             end</diff>
      <filename>lib/puppet/parser/lexer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -476,7 +476,7 @@ class Puppet::Parser::Parser
     private
 
     def check_and_add_to_watched_files(filename)
-        unless @files.include?(filename)    
+        unless @files.include?(filename)
             @files[filename] = Puppet::Util::LoadedFile.new(filename)
             return true
         else</diff>
      <filename>lib/puppet/parser/parser_support.rb</filename>
    </modified>
    <modified>
      <diff>@@ -285,7 +285,7 @@ class Puppet::Parser::Resource
     def to_ral
         to_resource.to_ral
     end
-    
+
     private
 
     # Add default values from our definition.
@@ -360,7 +360,7 @@ class Puppet::Parser::Resource
     def paramcheck(param)
         param = param.to_s
         # Now make sure it's a valid argument to our class.  These checks
-        # are organized in order of commonhood -- most types, it's a valid 
+        # are organized in order of commonhood -- most types, it's a valid
         # argument and paramcheck is enabled.
         if @ref.typeclass.validattr?(param)
             true</diff>
      <filename>lib/puppet/parser/resource.rb</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@ class Puppet::Parser::Resource::Param
     def line_to_i
         return line ? Integer(line) : nil
     end
-    
+
     def to_s
         &quot;%s =&gt; %s&quot; % [self.name, self.value]
     end</diff>
      <filename>lib/puppet/parser/resource/param.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,7 +49,7 @@ class Puppet::Parser::Scope
         unless value.is_a?(Fixnum) or value.is_a?(Bignum) or value.is_a?(Float) or value.is_a?(String)
             return nil
         end
-        
+
         if value.is_a?(String)
             if value =~ /^-?\d+(:?\.\d+|(:?\.\d+)?e\d+)$/
                 return value.to_f
@@ -198,7 +198,7 @@ class Puppet::Parser::Scope
             else
                 return @symtable[name]
             end
-        elsif self.parent 
+        elsif self.parent
             return parent.lookupvar(name, usestring)
         elsif usestring
             return &quot;&quot;
@@ -215,12 +215,12 @@ class Puppet::Parser::Scope
             target = parent.to_hash(recursive)
         end
         target ||= Hash.new
-        @symtable.keys.each { |name| 
+        @symtable.keys.each { |name|
             value = @symtable[name]
             if value == :undef then
                 target.delete(name)
             else
-                target[name] = value 
+                target[name] = value
             end
         }
         return target
@@ -301,7 +301,7 @@ class Puppet::Parser::Scope
             end
             raise error
         end
-        
+
         unless append
             @symtable[name] = value
         else # append case
@@ -322,7 +322,7 @@ class Puppet::Parser::Scope
         ss = StringScanner.new(string)
         out = &quot;&quot;
         while not ss.eos?
-            if ss.scan(/^\$\{((\w*::)*\w+)\}|^\$((\w*::)*\w+)/) 
+            if ss.scan(/^\$\{((\w*::)*\w+)\}|^\$((\w*::)*\w+)/)
                 # If it matches the backslash, then just retun the dollar sign.
                 if ss.matched == '\\$'
                     out &lt;&lt; '$'
@@ -357,7 +357,7 @@ class Puppet::Parser::Scope
                 out &lt;&lt; '$'
             elsif ss.scan(/^\\\n/) # an escaped carriage return
                 next
-            else 
+            else
                 tmp = ss.scan(/[^\\$]+/)
                 # Puppet.debug(&quot;Got other: pos:%d; m:%s&quot; % [ss.pos, tmp])
                 unless tmp</diff>
      <filename>lib/puppet/parser/scope.rb</filename>
    </modified>
    <modified>
      <diff>@@ -91,7 +91,7 @@ class Puppet::Parser::TemplateWrapper
         # current object, making it possible to access them without conflict
         # to the regular methods.
         benchmark(:debug, &quot;Bound template variables for #{template_source}&quot;) do
-            scope.to_hash.each { |name, value| 
+            scope.to_hash.each { |name, value|
                 if name.kind_of?(String)
                     realname = name.gsub(/[^\w]/, &quot;_&quot;)
                 else</diff>
      <filename>lib/puppet/parser/templatewrapper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -76,7 +76,7 @@ class Puppet::Property &lt; Puppet::Parameter
     # * &lt;tt&gt;:event&lt;/tt&gt;: The event that should be returned when this value is set.
     # * &lt;tt&gt;:call&lt;/tt&gt;: When to call any associated block.  The default value
     #   is ``instead``, which means to call the value instead of calling the
-    #   provider.  You can also specify ``before`` or ``after``, which will 
+    #   provider.  You can also specify ``before`` or ``after``, which will
     #   call both the block and the provider, according to the order you specify
     #   (the ``first`` refers to when the block is called, not the provider).
     def self.newvalue(name, options = {}, &amp;block)
@@ -152,7 +152,7 @@ class Puppet::Property &lt; Puppet::Parameter
     # Figure out which event to return.
     def event(name, event = nil)
         if value_event = self.class.value_option(name, :event)
-            return value_event 
+            return value_event
         end
 
         if event and event.is_a?(Symbol)
@@ -176,7 +176,7 @@ class Puppet::Property &lt; Puppet::Parameter
 
         return event
     end
-    
+
     attr_reader :shadow
 
     # initialize our property
@@ -294,7 +294,7 @@ class Puppet::Property &lt; Puppet::Parameter
         call = self.class.value_option(name, :call) || :none
 
         if call == :instead
-            event, tmp = call_valuemethod(name, value) 
+            event, tmp = call_valuemethod(name, value)
         elsif call == :none
             if @resource.provider
                 call_provider(value)</diff>
      <filename>lib/puppet/property.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,7 @@ class Puppet::Provider
     # LAK 2007-05-09: Keep the model stuff around for backward compatibility
     attr_reader :model
     attr_accessor :resource
-    
+
     def self.command(name)
         name = symbolize(name)
 
@@ -123,7 +123,7 @@ class Puppet::Provider
                 # will catch it, if so.
                 return execute(cmd)
             end
-            
+
             # And then define an instance method that just calls the class method.
             # We need both, so both instances and classes can easily run the commands.
             unless method_defined? name</diff>
      <filename>lib/puppet/provider.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,10 +5,10 @@ Puppet::Type.type(:computer).provide :directoryservice, :parent =&gt; Puppet::Provi
     Note that these are distinctly different kinds of objects to 'hosts',
     as they require a MAC address and can have all sorts of policy attached to
     them.
-    
+
     This provider only manages Computer objects in the local directory service
     domain, not in remote directories.
-    
+
     If you wish to manage /etc/hosts on Mac OS X, then simply use the host
     type as per other platforms.
 
@@ -16,7 +16,7 @@ Puppet::Type.type(:computer).provide :directoryservice, :parent =&gt; Puppet::Provi
 
     confine :operatingsystem =&gt; :darwin
     defaultfor :operatingsystem =&gt; :darwin
-    
+
     # hurray for abstraction. The nameservice directoryservice provider can
     # handle everything we need. super.
 end</diff>
      <filename>lib/puppet/provider/computer/computer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -57,6 +57,6 @@ class Puppet::Provider::Confine::Variable &lt; Puppet::Provider::Confine
     end
 
     def test_value
-        setting? ? Puppet.settings[name] : facter_value 
+        setting? ? Puppet.settings[name] : facter_value
     end
 end</diff>
      <filename>lib/puppet/provider/confine/variable.rb</filename>
    </modified>
    <modified>
      <diff>@@ -126,7 +126,7 @@ Puppet::Type.type(:cron).provide(:crontab,
                 next if (record[field] == resource.value(field))
                 #Puppet.info &quot;Did not match %s: %s vs %s&quot; %
                 #    [field, resource.value(field).inspect, record[field].inspect]
-                matched = false 
+                matched = false
                 break
             end
             return resource if matched
@@ -145,7 +145,7 @@ Puppet::Type.type(:cron).provide(:crontab,
                 if record[:name]
                     name = record[:name]
                     record[:skip] = true
-                    
+
                     # Start collecting env values
                     envs = []
                 end
@@ -185,7 +185,7 @@ Puppet::Type.type(:cron).provide(:crontab,
         # on my machine).  This is my attempt to fix it so the TZ lines don't
         # multiply.
         if text =~ /(^TZ=.+\n)/
-            tz = $1 
+            tz = $1
             text.sub!(tz, '')
             text = tz + text
         end</diff>
      <filename>lib/puppet/provider/cron/crontab.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,7 +18,7 @@ Puppet::Type.type(:group).provide :directoryservice, :parent =&gt; Puppet::Provider
     desc &quot;Group management using DirectoryService on OS X.
 
     &quot;
-        
+
     commands :dscl =&gt; &quot;/usr/bin/dscl&quot;
     confine :operatingsystem =&gt; :darwin
     defaultfor :operatingsystem =&gt; :darwin</diff>
      <filename>lib/puppet/provider/group/directoryservice.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ Puppet::Type.type(:group).provide :ldap, :parent =&gt; Puppet::Provider::Ldap do
     ldap-related settings, including ``ldapbase``.  You will also almost
     definitely need settings for ``ldapuser`` and ``ldappassword``, so that
     your clients can write to ldap.
-        
+
     Note that this provider will automatically generate a GID for you if you do
     not specify one, but it is a potentially expensive operation, as it
     iterates across all existing groups to pick the appropriate next one.
@@ -24,7 +24,7 @@ Puppet::Type.type(:group).provide :ldap, :parent =&gt; Puppet::Provider::Ldap do
 
     # Find the next gid after the current largest gid.
     provider = self
-    manager.generates(:gidNumber).with do 
+    manager.generates(:gidNumber).with do
         largest = 500
         if existing = provider.manager.search
                 existing.each do |hash|</diff>
      <filename>lib/puppet/provider/group/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,8 +14,8 @@ Puppet::Type.type(:host).provide(:parsed,
 ) do
     confine :exists =&gt; hosts
 
-    text_line :comment, :match =&gt; /^#/ 
-    text_line :blank, :match =&gt; /^\s*$/ 
+    text_line :comment, :match =&gt; /^#/
+    text_line :blank, :match =&gt; /^\s*$/
 
     record_line :parsed, :fields =&gt; %w{ip name alias},
         :optional =&gt; %w{alias},</diff>
      <filename>lib/puppet/provider/host/parsed.rb</filename>
    </modified>
    <modified>
      <diff>@@ -97,7 +97,7 @@ class Puppet::Provider::Ldap &lt; Puppet::Provider
             result
         end
 
-        # Make a duplicate, so that we have a copy for comparison 
+        # Make a duplicate, so that we have a copy for comparison
         # at the end.
         @ldap_properties = @property_hash.dup
     end</diff>
      <filename>lib/puppet/provider/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,47 +11,47 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
 
     commands :security =&gt; &quot;/usr/bin/security&quot;
     commands :sw_vers =&gt; &quot;/usr/bin/sw_vers&quot;
-    
+
     confine :operatingsystem =&gt; :darwin
-    
+
     # This should be confined based on macosx_productversion once
-    # http://projects.reductivelabs.com/issues/show/1796 
+    # http://projects.reductivelabs.com/issues/show/1796
     # is resolved.
     if FileTest.exists?(&quot;/usr/bin/sw_vers&quot;)
         product_version = sw_vers &quot;-productVersion&quot;
-    
+
         confine :true =&gt; if /^10.5/.match(product_version) or /^10.6/.match(product_version)
             true
         end
     end
-       
+
     defaultfor :operatingsystem =&gt; :darwin
-    
+
     AuthDB = &quot;/etc/authorization&quot;
-    
+
     @rights = {}
     @rules = {}
     @parsed_auth_db = {}
     @comment = &quot;&quot;  # Not implemented yet. Is there any real need to?
-    
+
     # This map exists due to the use of hyphens and reserved words in
     # the authorization schema.
     PuppetToNativeAttributeMap = {  :allow_root =&gt; &quot;allow-root&quot;,
-                                    :authenticate_user =&gt; &quot;authenticate-user&quot;,                                    
+                                    :authenticate_user =&gt; &quot;authenticate-user&quot;,
                                     :auth_class =&gt; &quot;class&quot;,
                                     :k_of_n =&gt; &quot;k-of-n&quot;,
                                     :session_owner =&gt; &quot;session-owner&quot;, }
-    
+
     class &lt;&lt; self
         attr_accessor :parsed_auth_db
         attr_accessor :rights
         attr_accessor :rules
         attr_accessor :comments  # Not implemented yet.
-    
+
         def prefetch(resources)
             self.populate_rules_rights
         end
-    
+
         def instances
             if self.parsed_auth_db == {}
                 self.prefetch(nil)
@@ -60,7 +60,7 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
                 new(:name =&gt; k)
             end
         end
-    
+
         def populate_rules_rights
             auth_plist = Plist::parse_xml(AuthDB)
             if not auth_plist
@@ -71,21 +71,21 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             self.parsed_auth_db = self.rights.dup
             self.parsed_auth_db.merge!(self.rules.dup)
         end
-    
+
     end
-    
+
     # standard required provider instance methods
-    
+
     def initialize(resource)
         if self.class.parsed_auth_db == {}
             self.class.prefetch(resource)
         end
         super
     end
-    
-    
+
+
     def create
-        # we just fill the @property_hash in here and let the flush method 
+        # we just fill the @property_hash in here and let the flush method
         # deal with it rather than repeating code.
         new_values = {}
         validprops = Puppet::Type.type(resource.class.name).validproperties
@@ -109,7 +109,7 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             raise Puppet::Error.new(&quot;Must specify auth_type when destroying.&quot;)
         end
     end
-    
+
     def exists?
         if self.class.parsed_auth_db.has_key?(resource[:name])
             return true
@@ -117,8 +117,8 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             return false
         end
     end
-    
-    
+
+
     def flush
         # deletion happens in the destroy methods
         if resource[:ensure] != :absent
@@ -133,14 +133,14 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             @property_hash.clear
         end
     end
-    
-    
+
+
     # utility methods below
-    
+
     def destroy_right
         security &quot;authorizationdb&quot;, :remove, resource[:name]
     end
-    
+
     def destroy_rule
         authdb = Plist::parse_xml(AuthDB)
         authdb_rules = authdb[&quot;rules&quot;].dup
@@ -153,13 +153,13 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             end
         end
     end
-    
+
     def flush_right
-        # first we re-read the right just to make sure we're in sync for 
-        # values that weren't specified in the manifest. As we're supplying 
-        # the whole plist when specifying the right it seems safest to be 
+        # first we re-read the right just to make sure we're in sync for
+        # values that weren't specified in the manifest. As we're supplying
+        # the whole plist when specifying the right it seems safest to be
         # paranoid given the low cost of quering the db once more.
-        cmds = [] 
+        cmds = []
         cmds &lt;&lt; :security &lt;&lt; &quot;authorizationdb&quot; &lt;&lt; &quot;read&quot; &lt;&lt; resource[:name]
         output = execute(cmds, :combine =&gt; false)
         current_values = Plist::parse_xml(output)
@@ -168,12 +168,12 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
         end
         specified_values = convert_plist_to_native_attributes(@property_hash)
 
-        # take the current values, merge the specified values to obtain a 
+        # take the current values, merge the specified values to obtain a
         # complete description of the new values.
         new_values = current_values.merge(specified_values)
         set_right(resource[:name], new_values)
     end
-    
+
     def flush_rule
         authdb = Plist::parse_xml(AuthDB)
         authdb_rules = authdb[&quot;rules&quot;].dup
@@ -185,7 +185,7 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
         new_values = current_values.merge(specified_values)
         set_rule(resource[:name], new_values)
     end
-    
+
     def set_right(name, values)
         # Both creates and modifies rights as it simply overwrites them.
         # The security binary only allows for writes using stdin, so we
@@ -194,7 +194,7 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
         tmp = Tempfile.new('puppet_macauthorization')
         begin
             Plist::Emit.save_plist(values, tmp.path)
-            cmds = [] 
+            cmds = []
             cmds &lt;&lt; :security &lt;&lt; &quot;authorizationdb&quot; &lt;&lt; &quot;write&quot; &lt;&lt; name
             output = execute(cmds, :combine =&gt; false,
                              :stdinfile =&gt; tmp.path.to_s)
@@ -205,11 +205,11 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             tmp.unlink
         end
     end
-    
+
     def set_rule(name, values)
-        # Both creates and modifies rules as it overwrites the entry in the 
-        # rules dictionary.  Unfortunately the security binary doesn't 
-        # support modifying rules at all so we have to twiddle the whole 
+        # Both creates and modifies rules as it overwrites the entry in the
+        # rules dictionary.  Unfortunately the security binary doesn't
+        # support modifying rules at all so we have to twiddle the whole
         # plist... :( See Apple Bug #6386000
         values = convert_plist_to_native_attributes(values)
         authdb = Plist::parse_xml(AuthDB)
@@ -221,11 +221,11 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             raise Puppet::Error.new(&quot;Error writing to: #{AuthDB}&quot;)
         end
     end
-    
+
     def convert_plist_to_native_attributes(propertylist)
         # This mainly converts the keys from the puppet attributes to the
-        # 'native' ones, but also enforces that the keys are all Strings 
-        # rather than Symbols so that any merges of the resultant Hash are 
+        # 'native' ones, but also enforces that the keys are all Strings
+        # rather than Symbols so that any merges of the resultant Hash are
         # sane.
         newplist = {}
         propertylist.each_pair do |key, value|
@@ -241,13 +241,13 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
         end
         newplist
     end
-    
+
     def retrieve_value(resource_name, attribute)
-        
+
         if not self.class.parsed_auth_db.has_key?(resource_name)
             raise Puppet::Error.new(&quot;Cannot find #{resource_name} in auth db&quot;)
         end
-       
+
         if PuppetToNativeAttributeMap.has_key?(attribute)
             native_attribute = PuppetToNativeAttributeMap[attribute]
         else
@@ -270,13 +270,13 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             return &quot;&quot;  # so ralsh doesn't display it.
         end
     end
-    
-    
+
+
     # property methods below
     #
     # We define them all dynamically apart from auth_type which is a special
     # case due to not being in the actual authorization db schema.
-    
+
     properties = [  :allow_root, :authenticate_user, :auth_class, :comment,
                     :group, :k_of_n, :mechanisms, :rule, :session_owner,
                     :shared, :timeout, :tries ]
@@ -290,7 +290,7 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             @property_hash[field] = value
         end
     end
-    
+
     def auth_type
         if resource.should(:auth_type) != nil
             return resource.should(:auth_type)
@@ -307,9 +307,9 @@ Puppet::Type.type(:macauthorization).provide :macauthorization, :parent =&gt; Puppe
             raise Puppet::Error.new(&quot;auth_type required for new resources.&quot;)
         end
     end
-    
+
     def auth_type=(value)
         @property_hash[:auth_type] = value
     end
-    
+
 end</diff>
      <filename>lib/puppet/provider/macauthorization/macauthorization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ Puppet::Type.type(:mailalias).provide(:aliases,
 
     record_line :aliases, :fields =&gt; %w{name recipient}, :separator =&gt; /\s*:\s*/, :block_eval =&gt; :instance do
         def post_parse(record)
-            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
             # It's not sufficient to assign to an existing hash.
             recipient = record[:recipient].split(/\s*,\s*/).collect { |d| d.gsub(/^['&quot;]|['&quot;]$/, '') }
             record[:recipient] = recipient</diff>
      <filename>lib/puppet/provider/mailalias/aliases.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@
 # Copyright (C) 2008 Jeffrey J McCune.
 
 # This program and entire repository is free software; you can
-# redistribute it and/or modify it under the terms of the GNU 
-# General Public License as published by the Free Software 
+# redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software
 # Foundation; either version 2 of the License, or any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -66,7 +66,7 @@ Puppet::Type.type(:mcx).provide :mcxcontent, :parent =&gt; Puppet::Provider do
                 content = mcxexport(ds_type, ds_name)
                 if content.empty?
                     Puppet.debug &quot;/#{TypeMap[ds_type]}/#{ds_name} has no MCX data.&quot;
-                else 
+                else
                     # This node has MCX data.
                     rsrc = self.new(:name =&gt; &quot;/#{TypeMap[ds_type]}/#{ds_name}&quot;,
                                  :ds_type =&gt; ds_type,</diff>
      <filename>lib/puppet/provider/mcx/mcxcontent.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,21 +9,21 @@ require 'puppet/provider/mount'
 #         not to work currently.&quot;
 #     commands :nireport =&gt; &quot;nireport&quot;, :niutil =&gt; &quot;niutil&quot;
 #     commands :mountcmd =&gt; &quot;mount&quot;, :umount =&gt; &quot;umount&quot;, :df =&gt; &quot;df&quot;
-# 
+#
 #     options :device, :key =&gt; &quot;name&quot;
 #     options :name, :key =&gt; &quot;dir&quot;
 #     options :dump, :key =&gt; &quot;dump_freq&quot;
 #     options :pass, :key =&gt; &quot;passno&quot;
 #     options :fstype, :key =&gt; &quot;vfstype&quot;
 #     options :options, :key =&gt; &quot;opts&quot;
-# 
+#
 #     defaultfor :operatingsystem =&gt; :darwin
-#     
+#
 #     def initialize(resource)
 #         warning &quot;The NetInfo mount provider is highly experimental.  Use at your own risk.&quot;
 #         super
 #     end
-#     
+#
 #     def mount
 #         cmd = []
 #         if opts = @resource.should(:options)</diff>
      <filename>lib/puppet/provider/mount/netinfo.rb</filename>
    </modified>
    <modified>
      <diff>@@ -128,7 +128,7 @@ class Puppet::Provider::NameService &lt; Puppet::Provider
             @ops[property.name] || (&quot;-&quot; + property.name)
         end
     end
-    
+
     # Autogenerate a value.  Mostly used for uid/gid, but also used heavily
     # with netinfo, because netinfo is stupid.
     def autogen(field)
@@ -159,7 +159,7 @@ class Puppet::Provider::NameService &lt; Puppet::Provider
         else
             raise Puppet::DevError, &quot;Invalid resource name %s&quot; % resource
         end
-        
+
         # Make sure we don't use the same value multiple times
         if defined? @@prevauto
             @@prevauto += 1
@@ -244,7 +244,7 @@ class Puppet::Provider::NameService &lt; Puppet::Provider
                 @objectinfo = nil
             end
         end
-        
+
         # Now convert our Etc struct into a hash.
         if @objectinfo
             return info2hash(@objectinfo)</diff>
      <filename>lib/puppet/provider/nameservice.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         attr_writer :macosx_version_major
     end
 
-    
+
     # JJM 2007-07-24: Not yet sure what initvars() does.  I saw it in netinfo.rb
     # I do know, however, that it makes methods &quot;work&quot;  =)
     # e.g. addcmd isn't available if this method call isn't present.
@@ -39,7 +39,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
     #   of methods.  If I put initvars after commands, confine and defaultfor,
     #   then getinfo is called from the parent class, not this class.
     initvars()
-    
+
     commands :dscl =&gt; &quot;/usr/bin/dscl&quot;
     commands :dseditgroup =&gt; &quot;/usr/sbin/dseditgroup&quot;
     commands :sw_vers =&gt; &quot;/usr/bin/sw_vers&quot;
@@ -80,27 +80,27 @@ class DirectoryService &lt; Puppet::Provider::NameService
         :ip_address =&gt; 'IPAddress',
         :members =&gt; 'GroupMembership',
     }
-    
+
     @@password_hash_dir = &quot;/var/db/shadow/hash&quot;
-    
+
     def self.instances
         # JJM Class method that provides an array of instance objects of this
         #     type.
         # JJM: Properties are dependent on the Puppet::Type we're managine.
         type_property_array = [:name] + @resource_type.validproperties
-        
+
         # Create a new instance of this Puppet::Type for each object present
         #    on the system.
         list_all_present.collect do |name_string|
             self.new(single_report(name_string, *type_property_array))
         end
     end
-    
+
     def self.get_ds_path
         # JJM: 2007-07-24 This method dynamically returns the DS path we're concerned with.
         #      For example, if we're working with an user type, this will be /Users
         #      with a group type, this will be /Groups.
-        #   @ds_path is an attribute of the class itself.  
+        #   @ds_path is an attribute of the class itself.
         if defined? @ds_path
             return @ds_path
         end
@@ -110,7 +110,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         #       Puppet::Type this class object is providing for.
         return @resource_type.name.to_s.capitalize + &quot;s&quot;
     end
-    
+
     def self.get_macosx_version_major
         if defined? @macosx_version_major
             return @macosx_version_major
@@ -140,7 +140,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         end
         return dscl_output.split(&quot;\n&quot;)
     end
-    
+
     def self.parse_dscl_url_data(dscl_output)
         # we need to construct a Hash from the dscl -url output to match
         # that returned by the dscl -plist output for 10.5+ clients.
@@ -150,7 +150,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         #   b) if a line ends in a colon and the next line does start with
         #      a space, then the second line is a value of the first.
         #   c) (implied by (b)) keys don't start with spaces.
-        
+
         dscl_plist = {}
         dscl_output.split(&quot;\n&quot;).inject([]) do |array, line|
           if line =~ /^\s+/   # it's a value
@@ -180,11 +180,11 @@ class DirectoryService &lt; Puppet::Provider::NameService
         end
         return dscl_plist
     end
-    
+
     def self.parse_dscl_plist_data(dscl_output)
         return Plist.parse_xml(dscl_output)
     end
-    
+
     def self.generate_attribute_hash(input_hash, *type_properties)
         attribute_hash = {}
         input_hash.keys().each do |key|
@@ -208,37 +208,37 @@ class DirectoryService &lt; Puppet::Provider::NameService
             end
             attribute_hash[@@ds_to_ns_attribute_map[ds_attribute]] = ds_value
         end
-        
+
         # NBK: need to read the existing password here as it's not actually
         # stored in the user record. It is stored at a path that involves the
-        # UUID of the user record for non-Mobile local acccounts.    
+        # UUID of the user record for non-Mobile local acccounts.
         # Mobile Accounts are out of scope for this provider for now
         if @resource_type.validproperties.include?(:password)
             attribute_hash[:password] = self.get_password(attribute_hash[:guid])
         end
         return attribute_hash
     end
-    
+
     def self.single_report(resource_name, *type_properties)
         # JJM 2007-07-24:
         #     Given a the name of an object and a list of properties of that
         #     object, return all property values in a hash.
-        #     
+        #
         #     This class method returns nil if the object doesn't exist
         #     Otherwise, it returns a hash of the object properties.
-        
+
         all_present_str_array = list_all_present()
-        
+
         # NBK: shortcut the process if the resource is missing
         return nil unless all_present_str_array.include? resource_name
-        
+
         dscl_vector = get_exec_preamble(&quot;-read&quot;, resource_name)
         begin
             dscl_output = execute(dscl_vector)
         rescue Puppet::ExecutionFailure =&gt; detail
             raise Puppet::Error, &quot;Could not get report.  command execution failed.&quot;
         end
-        
+
         # Two code paths is ugly, but until we can drop 10.4 support we don't
         # have a lot of choice. Ultimately this should all be done using Ruby
         # to access the DirectoryService APIs directly, but that's simply not
@@ -249,10 +249,10 @@ class DirectoryService &lt; Puppet::Provider::NameService
         when &quot;10.5&quot;, &quot;10.6&quot;
             dscl_plist = self.parse_dscl_plist_data(dscl_output)
         end
-        
+
         return self.generate_attribute_hash(dscl_plist, *type_properties)
     end
-    
+
     def self.get_exec_preamble(ds_action, resource_name = nil)
         # JJM 2007-07-24
         #     DSCL commands are often repetitive and contain the same positional
@@ -285,7 +285,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         #       e.g. 'dscl / -create /Users/mccune'
         return command_vector
     end
-    
+
     def self.set_password(resource_name, guid, password_hash)
         password_hash_file = &quot;#{@@password_hash_dir}/#{guid}&quot;
         begin
@@ -293,7 +293,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         rescue Errno::EACCES =&gt; detail
             raise Puppet::Error, &quot;Could not write to password hash file: #{detail}&quot;
         end
-        
+
         # NBK: For shadow hashes, the user AuthenticationAuthority must contain a value of
         # &quot;;ShadowHash;&quot;. The LKDC in 10.5 makes this more interesting though as it
         # will dynamically generate ;Kerberosv5;;username@LKDC:SHA1 attributes if
@@ -302,12 +302,12 @@ class DirectoryService &lt; Puppet::Provider::NameService
         # use other custom AuthenticationAuthority attributes without stomping on them.
         #
         # There is a potential problem here in that we're only doing this when setting
-        # the password, and the attribute could get modified at other times while the 
+        # the password, and the attribute could get modified at other times while the
         # hash doesn't change and so this doesn't get called at all... but
         # without switching all the other attributes to merge instead of create I can't
         # see a simple enough solution for this that doesn't modify the user record
         # every single time. This should be a rather rare edge case. (famous last words)
-        
+
         dscl_vector = self.get_exec_preamble(&quot;-merge&quot;, resource_name)
         dscl_vector &lt;&lt; &quot;AuthenticationAuthority&quot; &lt;&lt; &quot;;ShadowHash;&quot;
         begin
@@ -316,7 +316,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
             raise Puppet::Error, &quot;Could not set AuthenticationAuthority.&quot;
         end
     end
-    
+
     def self.get_password(guid)
         password_hash = nil
         password_hash_file = &quot;#{@@password_hash_dir}/#{guid}&quot;
@@ -352,9 +352,9 @@ class DirectoryService &lt; Puppet::Provider::NameService
                     next
                 end
             end
-        end 
+        end
     end
-    
+
     def password=(passphrase)
       exec_arg_vector = self.class.get_exec_preamble(&quot;-read&quot;, @resource.name)
       exec_arg_vector &lt;&lt; @@ns_to_ds_attribute_map[:guid]
@@ -370,11 +370,11 @@ class DirectoryService &lt; Puppet::Provider::NameService
           raise Puppet::Error, &quot;Could not set %s on %s[%s]: %s&quot; % [param, @resource.class.name, @resource.name, detail]
       end
     end
-    
+
     # NBK: we override @parent.set as we need to execute a series of commands
     # to deal with array values, rather than the single command nameservice.rb
     # expects to be returned by modifycmd. Thus we don't bother defining modifycmd.
-    
+
     def set(param, value)
         self.class.validate(param, value)
         current_members = @property_value_cache_hash[:members]
@@ -385,7 +385,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
             if @resource[:auth_membership] and not current_members.nil?
                 remove_unwanted_members(current_members, value)
              end
-             
+
              # if they're not a member, make them one.
              add_members(current_members, value)
         else
@@ -402,7 +402,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
             end
         end
     end
-    
+
     # NBK: we override @parent.create as we need to execute a series of commands
     # to create objects with dscl, rather than the single command nameservice.rb
     # expects to be returned by addcmd. Thus we don't bother defining addcmd.
@@ -411,7 +411,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
             info &quot;already exists&quot;
             return nil
         end
-        
+
         # NBK: First we create the object with a known guid so we can set the contents
         # of the password hash if required
         # Shelling out sucks, but for a single use case it doesn't seem worth
@@ -419,7 +419,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
         # This should be revisited if Puppet starts managing UUIDs for other platform
         # user records.
         guid = %x{/usr/bin/uuidgen}.chomp
-        
+
         exec_arg_vector = self.class.get_exec_preamble(&quot;-create&quot;, @resource[:name])
         exec_arg_vector &lt;&lt; @@ns_to_ds_attribute_map[:guid] &lt;&lt; guid
         begin
@@ -428,11 +428,11 @@ class DirectoryService &lt; Puppet::Provider::NameService
             raise Puppet::Error, &quot;Could not set GeneratedUID for %s %s: %s&quot; %
                 [@resource.class.name, @resource.name, detail]
         end
-        
+
         if value = @resource.should(:password) and value != &quot;&quot;
           self.class.set_password(@resource[:name], guid, value)
         end
-        
+
         # Now we create all the standard properties
         Puppet::Type.type(@resource.class.name).validproperties.each do |property|
             next if property == :ensure
@@ -454,7 +454,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
             end
         end
     end
-    
+
     def remove_unwanted_members(current_members, new_members)
         current_members.each do |member|
             if not new_members.include?(member)
@@ -467,7 +467,7 @@ class DirectoryService &lt; Puppet::Provider::NameService
              end
          end
     end
-    
+
     def add_members(current_members, new_members)
         new_members.each do |new_member|
            if current_members.nil? or not current_members.include?(new_member)
@@ -480,20 +480,20 @@ class DirectoryService &lt; Puppet::Provider::NameService
            end
         end
     end
-    
+
     def deletecmd
         # JJM: Like addcmd, only called when deleting the object itself
         #    Note, this isn't used to delete properties of the object,
         #    at least that's how I understand it...
         self.class.get_exec_preamble(&quot;-delete&quot;, @resource[:name])
     end
-    
+
     def getinfo(refresh = false)
-        # JJM 2007-07-24: 
+        # JJM 2007-07-24:
         #      Override the getinfo method, which is also defined in nameservice.rb
         #      This method returns and sets @infohash, which looks like:
         #      (NetInfo provider, user type...)
-        #       @infohash = {:comment=&gt;&quot;Jeff McCune&quot;, :home=&gt;&quot;/Users/mccune&quot;, 
+        #       @infohash = {:comment=&gt;&quot;Jeff McCune&quot;, :home=&gt;&quot;/Users/mccune&quot;,
         #       :shell=&gt;&quot;/bin/zsh&quot;, :password=&gt;&quot;********&quot;, :uid=&gt;502, :gid=&gt;502,
         #       :name=&gt;&quot;mccune&quot;}
         #
@@ -502,24 +502,24 @@ class DirectoryService &lt; Puppet::Provider::NameService
         if refresh or (! defined?(@property_value_cache_hash) or ! @property_value_cache_hash)
             # JJM 2007-07-24: OK, there's a bit of magic that's about to
             # happen... Let's see how strong my grip has become... =)
-            # 
+            #
             # self is a provider instance of some Puppet::Type, like
             # Puppet::Type::User::ProviderDirectoryservice for the case of the
             # user type and this provider.
-            # 
+            #
             # self.class looks like &quot;user provider directoryservice&quot;, if that
             # helps you ...
-            # 
+            #
             # self.class.resource_type is a reference to the Puppet::Type class,
             # probably Puppet::Type::User or Puppet::Type::Group, etc...
-            # 
+            #
             # self.class.resource_type.validproperties is a class method,
             # returning an Array of the valid properties of that specific
             # Puppet::Type.
-            # 
+            #
             # So... something like [:comment, :home, :password, :shell, :uid,
             # :groups, :ensure, :gid]
-            # 
+            #
             # Ultimately, we add :name to the list, delete :ensure from the
             # list, then report on the remaining list. Pretty whacky, ehh?
             type_properties = [:name] + self.class.resource_type.validproperties</diff>
      <filename>lib/puppet/provider/nameservice/directoryservice.rb</filename>
    </modified>
    <modified>
      <diff>@@ -46,14 +46,14 @@ class NetInfo &lt; Puppet::Provider::NameService
             noautogen
         end
     end
-    
+
     def self.instances
         warnonce &quot;The NetInfo provider is deprecated; use directoryservice instead&quot;
         report(@resource_type.validproperties).collect do |hash|
             self.new(hash)
         end
     end
-    
+
     # Convert a NetInfo line into a hash of data.
     def self.line2hash(line, params)
         values = line.split(/\t/)
@@ -69,20 +69,20 @@ class NetInfo &lt; Puppet::Provider::NameService
         end
         hash
     end
-    
+
     # What field the value is stored under.
     def self.netinfokey(name)
         name = symbolize(name)
         self.option(name, :key) || name
     end
-    
+
     # Retrieve the data, yo.
     # FIXME This should retrieve as much information as possible,
     # rather than retrieving it one at a time.
     def self.report(*params)
         dir = self.netinfodir()
         cmd = [command(:nireport), &quot;/&quot;, &quot;/%s&quot; % dir]
-        
+
         params.flatten!
 
         # We require the name in order to know if we match.  There's no
@@ -111,7 +111,7 @@ class NetInfo &lt; Puppet::Provider::NameService
             line2hash(line, params)
         }
     end
-    
+
     # How to add an object.
     def addcmd
         creatorcmd(&quot;-create&quot;)
@@ -128,7 +128,7 @@ class NetInfo &lt; Puppet::Provider::NameService
     def deletecmd
         creatorcmd(&quot;-destroy&quot;)
     end
-    
+
     def destroy
         delete()
     end
@@ -203,7 +203,7 @@ class NetInfo &lt; Puppet::Provider::NameService
     def netinfokey(name)
         self.class.netinfokey(name)
     end
-    
+
     # Get a report for a single resource, not the whole table
     def single_report(*properties)
         warnonce &quot;The NetInfo provider is deprecated; use directoryservice instead&quot;</diff>
      <filename>lib/puppet/provider/nameservice/netinfo.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
 # and are easier to manage.
 #
 # Note: the 'apple' Provider checks for the package name
-# in /L/Receipts.  Since we possibly install multiple apps's from 
+# in /L/Receipts.  Since we possibly install multiple apps's from
 # a single source, we treat the source .app.dmg file as the package name.
 # As a result, we store installed .app.dmg file names
 # in /var/db/.puppet_appdmg_installed_&lt;name&gt;
@@ -37,7 +37,7 @@ Puppet::Type.type(:package).provide(:appdmg, :parent =&gt; Puppet::Provider::Packag
             new(:name =&gt; name, :provider =&gt; :appdmg, :ensure =&gt; :installed)
         end
     end
-    
+
     def self.installapp(source, name, orig_source)
       appname = File.basename(source);
       ditto &quot;--rsrc&quot;, source, &quot;/Applications/#{appname}&quot;
@@ -64,7 +64,7 @@ Puppet::Type.type(:package).provide(:appdmg, :parent =&gt; Puppet::Provider::Packag
                 cached_source = source
             end
         end
-        
+
         begin
             open(cached_source) do |dmg|
                 xml_str = hdiutil &quot;mount&quot;, &quot;-plist&quot;, &quot;-nobrowse&quot;, &quot;-readonly&quot;, &quot;-mountrandom&quot;, &quot;/tmp&quot;, dmg.path</diff>
      <filename>lib/puppet/provider/package/appdmg.rb</filename>
    </modified>
    <modified>
      <diff>@@ -69,7 +69,7 @@ Puppet::Type.type(:package).provide :apt, :parent =&gt; :dpkg, :source =&gt; :dpkg do
         end
 
         cmd &lt;&lt; :install &lt;&lt; str
-        
+
         aptget(*cmd)
     end
 
@@ -93,7 +93,7 @@ Puppet::Type.type(:package).provide :apt, :parent =&gt; :dpkg, :source =&gt; :dpkg do
             self.info(&quot;Preseeding %s to debconf-set-selections&quot; % response)
 
             preseed response
-        else 
+        else
             self.info &quot;No responsefile specified or non existant, not preseeding anything&quot;
         end
     end</diff>
      <filename>lib/puppet/provider/package/apt.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ Puppet::Type.type(:package).provide :aptrpm, :parent =&gt; :rpm, :source =&gt; :rpm do
         cmd = %w{-q -y}
 
         cmd &lt;&lt; 'install' &lt;&lt; str
-        
+
         aptget(*cmd)
     end
 </diff>
      <filename>lib/puppet/provider/package/aptrpm.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent =&gt; Puppet::Provider::Package
     commands :dpkg =&gt; &quot;/usr/bin/dpkg&quot;
     commands :dpkg_deb =&gt; &quot;/usr/bin/dpkg-deb&quot;
     commands :dpkgquery =&gt; &quot;/usr/bin/dpkg-query&quot;
-    
+
     def self.instances
         packages = []
 
@@ -62,7 +62,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent =&gt; Puppet::Provider::Package
         unless file = @resource[:source]
             raise ArgumentError, &quot;You cannot install dpkg packages without a source&quot;
         end
-        
+
         args = []
 
         if @resource[:configfiles] == :keep</diff>
      <filename>lib/puppet/provider/package/dpkg.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ Puppet::Type.type(:package).provide :fink, :parent =&gt; :dpkg, :source =&gt; :dpkg do
     include Puppet::Util::Package
 
     desc &quot;Package management via ``fink``.&quot;
-    
+
     commands :fink =&gt; &quot;/sw/bin/fink&quot;
     commands :aptget =&gt; &quot;/sw/bin/apt-get&quot;
     commands :aptcache =&gt; &quot;/sw/bin/apt-cache&quot;
@@ -40,7 +40,7 @@ Puppet::Type.type(:package).provide :fink, :parent =&gt; :dpkg, :source =&gt; :dpkg do
         keep = &quot;&quot;
 
         cmd &lt;&lt; :install &lt;&lt; str
-        
+
         finkcmd(cmd)
     end
 
@@ -64,7 +64,7 @@ Puppet::Type.type(:package).provide :fink, :parent =&gt; :dpkg, :source =&gt; :dpkg do
             self.info(&quot;Preseeding %s to debconf-set-selections&quot; % response)
 
             preseed response
-        else 
+        else
             self.info &quot;No responsefile specified or non existant, not preseeding anything&quot;
         end
     end</diff>
      <filename>lib/puppet/provider/package/fink.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ Puppet::Type.type(:package).provide :freebsd, :parent =&gt; :openbsd do
     commands :pkginfo =&gt; &quot;/usr/sbin/pkg_info&quot;,
              :pkgadd =&gt; &quot;/usr/sbin/pkg_add&quot;,
              :pkgdelete =&gt; &quot;/usr/sbin/pkg_delete&quot;
-    
+
     confine :operatingsystem =&gt; :freebsd
 
     def self.listcmd</diff>
      <filename>lib/puppet/provider/package/freebsd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -90,7 +90,7 @@ Puppet::Type.type(:package).provide :gem, :parent =&gt; Puppet::Provider::Package d
                 command &lt;&lt; uri.path
             when 'puppet'
                 # we don't support puppet:// URLs (yet)
-                raise Puppet::Error.new(&quot;puppet:// URLs are not supported as gem sources&quot;)              
+                raise Puppet::Error.new(&quot;puppet:// URLs are not supported as gem sources&quot;)
             else
                 # interpret it as a gem repository
                 command &lt;&lt; &quot;--source&quot; &lt;&lt; &quot;#{source}&quot; &lt;&lt; resource[:name]</diff>
      <filename>lib/puppet/provider/package/gem.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,19 +13,19 @@ Puppet::Type.type(:package).provide :hpux, :parent =&gt; Puppet::Provider::Package
     confine :operatingsystem =&gt; &quot;hp-ux&quot;
 
     defaultfor :operatingsystem =&gt; &quot;hp-ux&quot;
-    
+
     def self.instances
         # TODO:  This is very hard on HP-UX!
         []
     end
-    
+
     # source and name are required
     def install
         raise ArgumentError, &quot;source must be provided to install HP-UX packages&quot; unless resource[:source]
         args = standard_args + [&quot;-s&quot;, resource[:source], resource[:name]]
         swinstall(*args)
     end
-    
+
     def query
         begin
             swlist resource[:name]
@@ -34,12 +34,12 @@ Puppet::Type.type(:package).provide :hpux, :parent =&gt; Puppet::Provider::Package
             {:ensure =&gt; :absent}
         end
     end
-    
+
     def uninstall
         args = standard_args + [resource[:name]]
         swremove(*args)
     end
-    
+
     def standard_args
         return [&quot;-x&quot;, &quot;mount_all_filesystems=false&quot;]
     end</diff>
      <filename>lib/puppet/provider/package/hpux.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ require 'facter/util/plist'
 
 Puppet::Type.type(:package).provide :pkgdmg, :parent =&gt; Puppet::Provider::Package do
     desc &quot;Package management based on Apple's Installer.app and DiskUtility.app.  This package works by checking the contents of a DMG image for Apple pkg or mpkg files. Any number of pkg or mpkg files may exist in the root directory of the DMG file system. Sub directories are not checked for packages.  See `the wiki docs &lt;/trac/puppet/wiki/DmgPackages&gt;` for more detail.&quot;
-  
+
     confine :exists =&gt; &quot;/Library/Receipts&quot;
     commands :installer =&gt; &quot;/usr/sbin/installer&quot;
     commands :hdiutil =&gt; &quot;/usr/bin/hdiutil&quot;
@@ -65,7 +65,7 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent =&gt; Puppet::Provider::Packag
           t.print &quot;source: '#{orig_source}'\n&quot;
       end
     end
-    
+
     def self.installpkgdmg(source, name)
         unless source =~ /\.dmg$/i
             raise Puppet::Error.new(&quot;Mac OS X PKG DMG's must specificy a source string ending in .dmg&quot;)
@@ -82,7 +82,7 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent =&gt; Puppet::Provider::Packag
                 cached_source = source
             end
         end
-        
+
         begin
             File.open(cached_source) do |dmg|
                 xml_str = hdiutil &quot;mount&quot;, &quot;-plist&quot;, &quot;-nobrowse&quot;, &quot;-readonly&quot;, &quot;-noidme&quot;, &quot;-mountrandom&quot;, &quot;/tmp&quot;, dmg.path</diff>
      <filename>lib/puppet/provider/package/pkgdmg.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,7 +53,7 @@ Puppet::Type.type(:package).provide :ports, :parent =&gt; :freebsd, :source =&gt; :fre
 
         name, version = $1, $2
 
-        if match == &quot;=&quot; or match == &quot;&gt;&quot; 
+        if match == &quot;=&quot; or match == &quot;&gt;&quot;
             # we're up to date or more recent
             return version
         end</diff>
      <filename>lib/puppet/provider/package/ports.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,12 +49,12 @@ Puppet::Type.type(:package).provide :rpm, :source =&gt; :rpm, :parent =&gt; Puppet::Pr
     end
 
     # Find the fully versioned package name and the version alone. Returns
-    # a hash with entries :instance =&gt; fully versioned package name, and 
+    # a hash with entries :instance =&gt; fully versioned package name, and
     # :ensure =&gt; version-release
     def query
         #NOTE: Prior to a fix for issue 1243, this method potentially returned a cached value
         #IF YOU CALL THIS METHOD, IT WILL CALL RPM
-        #Use get(:property) to check if cached values are available 
+        #Use get(:property) to check if cached values are available
         cmd = [&quot;-q&quot;, @resource[:name], &quot;--nosignature&quot;, &quot;--nodigest&quot;, &quot;--qf&quot;, &quot;#{NEVRAFORMAT}\n&quot;]
 
         begin
@@ -62,7 +62,7 @@ Puppet::Type.type(:package).provide :rpm, :source =&gt; :rpm, :parent =&gt; Puppet::Pr
         rescue Puppet::ExecutionFailure
             return nil
         end
-        
+
         # FIXME: We could actually be getting back multiple packages
         # for multilib
         @property_hash.update(self.class.nevra_to_hash(output))
@@ -75,7 +75,7 @@ Puppet::Type.type(:package).provide :rpm, :source =&gt; :rpm, :parent =&gt; Puppet::Pr
         unless source = @resource[:source]
             @resource.fail &quot;RPMs must specify a package source&quot;
         end
-        
+
         cmd = [command(:rpm), &quot;-q&quot;, &quot;--qf&quot;, &quot;#{NEVRAFORMAT}\n&quot;, &quot;-p&quot;, &quot;#{@resource[:source]}&quot;]
         h = self.class.nevra_to_hash(execfail(cmd, Puppet::Error))
         return h[:ensure]
@@ -86,7 +86,7 @@ Puppet::Type.type(:package).provide :rpm, :source =&gt; :rpm, :parent =&gt; Puppet::Pr
         unless source = @resource[:source]
             @resource.fail &quot;RPMs must specify a package source&quot;
         end
-        # RPM gets pissy if you try to install an already 
+        # RPM gets pissy if you try to install an already
         # installed package
         if @resource.should(:ensure) == @property_hash[:ensure] or
             @resource.should(:ensure) == :latest &amp;&amp; @property_hash[:ensure] == latest</diff>
      <filename>lib/puppet/provider/package/rpm.rb</filename>
    </modified>
    <modified>
      <diff>@@ -121,7 +121,7 @@ Puppet::Type.type(:package).provide :sun, :parent =&gt; Puppet::Provider::Package d
             raise Puppet::Error, &quot;Sun packages must specify a package source&quot;
         end
         cmd = []
-        
+
         if @resource[:adminfile]
             cmd &lt;&lt; &quot;-a&quot; &lt;&lt; @resource[:adminfile]
         end</diff>
      <filename>lib/puppet/provider/package/sun.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ Puppet::Type.type(:package).provide :yum, :parent =&gt; :rpm, :source =&gt; :rpm do
     has_feature :versionable
 
     commands :yum =&gt; &quot;yum&quot;, :rpm =&gt; &quot;rpm&quot;, :python =&gt; &quot;python&quot;
-    
+
     YUMHELPER = File::join(File::dirname(__FILE__), &quot;yumhelper.py&quot;)
 
     attr_accessor :latest_info
@@ -100,7 +100,7 @@ Puppet::Type.type(:package).provide :yum, :parent =&gt; :rpm, :source =&gt; :rpm do
         # Install in yum can be used for update, too
         self.install
     end
-     
+
     def purge
         yum &quot;-y&quot;, :erase, @resource[:name]
     end</diff>
      <filename>lib/puppet/provider/package/yum.rb</filename>
    </modified>
    <modified>
      <diff>@@ -64,7 +64,7 @@ def shell_out():
                 return WEXITSTATUS(rc)
         else:
             # Exit code is None (0), no updates waiting so don't both parsing output
-            return 0 
+            return 0
 
         # Yum prints a line of hyphens (old versions) or a blank line between
         # headers and package data, so skip everything before them</diff>
      <filename>lib/puppet/provider/package/yumhelper.py</filename>
    </modified>
    <modified>
      <diff>@@ -45,7 +45,7 @@ Puppet::Type.type(:selmodule).provide(:semodule) do
         end
         return :false
     end
-    
+
     def syncversion= (dosync)
         begin
             execoutput(&quot;#{command(:semodule)} --upgrade #{selmod_name_to_filename}&quot;)
@@ -115,13 +115,13 @@ Puppet::Type.type(:selmodule).provide(:semodule) do
 
         # At last!  the version
 
-        v = selmod_readnext(mod) 
+        v = selmod_readnext(mod)
 
         self.debug &quot;file version #{v}&quot;
         return v
     end
 
-    def selmodversion_loaded 
+    def selmodversion_loaded
         lines = ()
         begin
             execpipe(&quot;#{command(:semodule)} --list&quot;) do |output|</diff>
      <filename>lib/puppet/provider/selmodule/semodule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent =&gt; :base do
     * /etc/service
     * /var/lib/svscan
 
-    The daemon directory should be placed in a directory that can be 
+    The daemon directory should be placed in a directory that can be
     by default in:
 
     * /var/lib/service
@@ -43,7 +43,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent =&gt; :base do
 
     class &lt;&lt; self
         attr_writer :defpath
-        
+
         # Determine the daemon path.
         def defpath
             unless defined?(@defpath) and @defpath
@@ -111,10 +111,10 @@ Puppet::Type.type(:service).provide :daemontools, :parent =&gt; :base do
     def daemon
         File.join(resource[:path], resource[:name])
     end
-    
+
     def status
         begin
-            output = svstat self.service 
+            output = svstat self.service
             if output =~ /:\s+up \(/
                 return :running
             end</diff>
      <filename>lib/puppet/provider/service/daemontools.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent =&gt; :init do
     Uses ``rc.conf.d`` for service enabling and disabling.
 
 &quot;
- 
+
     confine :operatingsystem =&gt; [:freebsd, :netbsd, :openbsd]
 
     defaultfor :operatingsystem =&gt; :freebsd
@@ -15,7 +15,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent =&gt; :init do
     def self.defpath
         superclass.defpath
     end
-    
+
     # remove service file from rc.conf.d to disable it
     def disable
         rcfile = File.join(@@rcconf_dir, @model[:name])
@@ -23,7 +23,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent =&gt; :init do
             File.delete(rcfile)
         end
     end
-    
+
     # if the service file exists in rc.conf.d then it's already enabled
     def enabled?
         rcfile = File.join(@@rcconf_dir, @model[:name])
@@ -33,7 +33,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent =&gt; :init do
 
         return :false
     end
-    
+
     # enable service by creating a service file under rc.conf.d with the
     # proper contents
     def enable
@@ -43,7 +43,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent =&gt; :init do
         rcfile = File.join(@@rcconf_dir, @model[:name])
         open(rcfile, 'w') { |f| f &lt;&lt; &quot;%s_enable=\&quot;YES\&quot;\n&quot; % @model[:name] }
     end
-    
+
     # Override stop/start commands to use one&lt;cmd&gt;'s and the avoid race condition
     # where provider trys to stop/start the service before it is enabled
     def startcmd</diff>
      <filename>lib/puppet/provider/service/freebsd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -38,7 +38,7 @@ Puppet::Type.type(:service).provide :gentoo, :parent =&gt; :init do
         return :false unless line
 
         # If it's enabled then it will print output showing service | runlevel
-        if output =~ /^\s*#{@resource[:name]}\s*\|\s*(boot|default)/    
+        if output =~ /^\s*#{@resource[:name]}\s*\|\s*(boot|default)/
             return :true
         else
             return :false</diff>
      <filename>lib/puppet/provider/service/gentoo.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,21 +29,21 @@ Puppet::Type.type(:service).provide :init, :parent =&gt; :base do
     # List all services of this type.
     def self.instances
         self.defpath = [self.defpath] unless self.defpath.is_a? Array
-        
+
         instances = []
-        
+
         self.defpath.each do |path|
             unless FileTest.directory?(path)
                 Puppet.debug &quot;Service path %s does not exist&quot; % path
                 next
             end
-        
+
             check = [:ensure]
-        
+
             if public_method_defined? :enabled?
                 check &lt;&lt; :enable
             end
-            
+
             Dir.entries(path).each do |name|
                 fullpath = File.join(path, name)
                 next if name =~ /^\./</diff>
      <filename>lib/puppet/provider/service/init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,29 +2,29 @@ require 'facter/util/plist'
 
 Puppet::Type.type(:service).provide :launchd, :parent =&gt; :base do
     desc &quot;launchd service management framework.
-    
+
     This provider manages launchd jobs, the default service framework for
     Mac OS X, that has also been open sourced by Apple for possible use on
     other platforms.
-    
+
     See:
      * http://developer.apple.com/macosx/launchd.html
      * http://launchd.macosforge.org/
-     
+
     This provider reads plists out of the following directories:
      * /System/Library/LaunchDaemons
      * /System/Library/LaunchAgents
      * /Library/LaunchDaemons
      * /Library/LaunchAgents
-     
+
     and builds up a list of services based upon each plists \&quot;Label\&quot; entry.
-     
+
     This provider supports:
      * ensure =&gt; running/stopped,
      * enable =&gt; true/false
      * status
      * restart
-    
+
     Here is how the Puppet states correspond to launchd states:
      * stopped =&gt; job unloaded
      * started =&gt; job loaded
@@ -37,12 +37,12 @@ Puppet::Type.type(:service).provide :launchd, :parent =&gt; :base do
     &quot;
 
     commands :launchctl =&gt; &quot;/bin/launchctl&quot;
-    
+
     defaultfor :operatingsystem =&gt; :darwin
     confine :operatingsystem =&gt; :darwin
-    
+
     has_feature :enableable
-    
+
     Launchd_Paths = [&quot;/Library/LaunchAgents&quot;,
                      &quot;/Library/LaunchDaemons&quot;,
                      &quot;/System/Library/LaunchAgents&quot;,
@@ -129,7 +129,7 @@ Puppet::Type.type(:service).provide :launchd, :parent =&gt; :base do
         job_path, job_plist = plist_from_label(resource[:name])
         did_enable_job = false
         cmds = []
-        cmds &lt;&lt; :launchctl &lt;&lt; :load 
+        cmds &lt;&lt; :launchctl &lt;&lt; :load
         if self.enabled? == :false  # launchctl won't load disabled jobs
             cmds &lt;&lt; &quot;-w&quot;
             did_enable_job = true
@@ -143,7 +143,7 @@ Puppet::Type.type(:service).provide :launchd, :parent =&gt; :base do
         # As load -w clears the Disabled flag, we need to add it in after
         if did_enable_job and resource[:enable] == :false
             self.disable
-        end 
+        end
     end
 
 
@@ -151,7 +151,7 @@ Puppet::Type.type(:service).provide :launchd, :parent =&gt; :base do
         job_path, job_plist = plist_from_label(resource[:name])
         did_disable_job = false
         cmds = []
-        cmds &lt;&lt; :launchctl &lt;&lt; :unload 
+        cmds &lt;&lt; :launchctl &lt;&lt; :unload
         if self.enabled? == :true # keepalive jobs can't be stopped without disabling
             cmds &lt;&lt; &quot;-w&quot;
             did_disable_job = true</diff>
      <filename>lib/puppet/provider/service/launchd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ Puppet::Type.type(:service).provide :redhat, :parent =&gt; :init do
     &quot;
 
     commands :chkconfig =&gt; &quot;/sbin/chkconfig&quot;, :service =&gt; &quot;/sbin/service&quot;
- 
+
     defaultfor :operatingsystem =&gt; [:redhat, :fedora, :suse, :centos, :sles, :oel, :ovm]
 
     def self.defpath
@@ -51,7 +51,7 @@ Puppet::Type.type(:service).provide :redhat, :parent =&gt; :init do
                 [self.name, detail]
         end
     end
- 
+
     def restart
         if @resource[:hasrestart] == :true
             service(@resource[:name], &quot;restart&quot;)</diff>
      <filename>lib/puppet/provider/service/redhat.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ Puppet::Type.type(:service).provide :runit, :parent =&gt; :daemontools do
    * /var/service
    * /etc/service
 
-  The daemon directory should be placed in a directory that can be 
+  The daemon directory should be placed in a directory that can be
   by default in:
 
    * /etc/sv</diff>
      <filename>lib/puppet/provider/service/runit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ Puppet::Type.type(:sshkey).provide(:parsed,
         :pre_gen =&gt; proc { |hash|
             if hash[:alias]
                 names = [hash[:name], hash[:alias]].flatten
-                
+
                 hash[:name] = [hash[:name], hash[:alias]].flatten.join(&quot;,&quot;)
                 hash.delete(:alias)
             end</diff>
      <filename>lib/puppet/provider/sshkey/parsed.rb</filename>
    </modified>
    <modified>
      <diff>@@ -20,15 +20,15 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
     commands :dscl =&gt; &quot;/usr/bin/dscl&quot;
     confine :operatingsystem =&gt; :darwin
     defaultfor :operatingsystem =&gt; :darwin
-    
+
     # JJM: DirectoryService can manage passwords.
     #      This needs to be a special option to dscl though (-passwd)
     has_feature :manages_passwords
-    
+
     # JJM: comment matches up with the /etc/passwd concept of an user
     options :comment, :key =&gt; &quot;realname&quot;
     options :password, :key =&gt; &quot;passwd&quot;
-    
+
     autogen_defaults :home =&gt; &quot;/var/empty&quot;, :shell =&gt; &quot;/usr/bin/false&quot;
 
     verify :gid, &quot;GID must be an integer&quot; do |value|
@@ -38,11 +38,11 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
     verify :uid, &quot;UID must be an integer&quot; do |value|
         value.is_a? Integer
     end
-    
+
     def autogen_comment
         return @resource[:name].capitalize
     end
-    
+
     # The list of all groups the user is a member of.  Different
     # user mgmt systems will need to override this method.
     # JJM: FIXME: Override this method...
@@ -57,7 +57,7 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
         #         next unless members
         #         next if members =~ /NoValue/
         #         members = members.split(&quot;,&quot;)
-        # 
+        #
         #         if members.include? user
         #             groups &lt;&lt; name
         #         end
@@ -80,12 +80,12 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
         # end
         # # Get just the groups we need to modify
         # diff = groups - (@is || [])
-        # 
+        #
         # data = {}
         # open(&quot;| #{command(:nireport)} / /groups name users&quot;) do |file|
         #     file.each do |line|
         #         name, members = line.split(/\s+/)
-        # 
+        #
         #         if members.nil? or members =~ /NoValue/
         #             data[name] = []
         #         else
@@ -94,7 +94,7 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
         #         end
         #     end
         # end
-        # 
+        #
         # user = @resource[:name]
         # data.each do |name, members|
         #     if members.include? user and groups.include? name
@@ -112,6 +112,6 @@ Puppet::Type.type(:user).provide :directoryservice, :parent =&gt; Puppet::Provider:
         #     end
         # end
     end
-    
-    
+
+
 end</diff>
      <filename>lib/puppet/provider/user/directoryservice.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent =&gt; :useradd do
 
     defaultfor :operatingsystem =&gt; &quot;hp-ux&quot;
     confine :operatingsystem =&gt; &quot;hp-ux&quot;
-    
+
     commands :modify =&gt; &quot;/usr/sam/lbin/usermod.sam&quot;, :delete =&gt; &quot;/usr/sam/lbin/userdel.sam&quot;, :add =&gt; &quot;/usr/sbin/useradd&quot;
     options :comment, :method =&gt; :gecos
     options :groups, :flag =&gt; &quot;-G&quot;</diff>
      <filename>lib/puppet/provider/user/hpux.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ Puppet::Type.type(:user).provide :ldap, :parent =&gt; Puppet::Provider::Ldap do
         including ``ldapbase``.  You will also almost definitely need settings
         for ``ldapuser`` and ``ldappassword``, so that your clients can write
         to ldap.
-        
+
         Note that this provider will automatically generate a UID for you if
         you do not specify one, but it is a potentially expensive operation,
         as it iterates across all existing users to pick the appropriate next
@@ -33,7 +33,7 @@ Puppet::Type.type(:user).provide :ldap, :parent =&gt; Puppet::Provider::Ldap do
 
     # Find the next uid after the current largest uid.
     provider = self
-    manager.generates(:uidNumber).with do 
+    manager.generates(:uidNumber).with do
         largest = 500
         if existing = provider.manager.search
             existing.each do |hash|</diff>
      <filename>lib/puppet/provider/user/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,7 +39,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent =&gt; Puppet::Provider::NameServ
     # user mgmt systems will need to override this method.
     def groups
         warnonce &quot;The NetInfo provider is deprecated; use directoryservice instead&quot;
-        
+
         groups = []
 
         user = @resource[:name]
@@ -64,7 +64,7 @@ Puppet::Type.type(:user).provide :netinfo, :parent =&gt; Puppet::Provider::NameServ
     # of the groups and add us to them.
     def groups=(groups)
         warnonce &quot;The NetInfo provider is deprecated; use directoryservice instead&quot;
-        
+
         case groups
         when Fixnum
             groups = [groups.to_s]</diff>
      <filename>lib/puppet/provider/user/netinfo.rb</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ Puppet::Type.type(:zone).provide(:solaris) do
     end
 
     def self.instances
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = adm(:list, &quot;-cp&quot;).split(&quot;\n&quot;).collect do |line|
             new(line2hash(line))
         end</diff>
      <filename>lib/puppet/provider/zone/solaris.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,13 +31,13 @@ module Puppet::Rails
                 puts detail.backtrace
             end
             raise Puppet::Error, &quot;Could not connect to database: %s&quot; % detail
-        end 
+        end
     end
 
     # The arguments for initializing the database connection.
     def self.database_arguments
         adapter = Puppet[:dbadapter]
-        
+
         args = {:adapter =&gt; adapter, :log_level =&gt; Puppet[:rails_loglevel]}
 
         case adapter
@@ -48,7 +48,7 @@ module Puppet::Rails
             args[:username] = Puppet[:dbuser] unless Puppet[:dbuser].empty?
             args[:password] = Puppet[:dbpassword] unless Puppet[:dbpassword].empty?
             args[:database] = Puppet[:dbname]
-            
+
             socket          = Puppet[:dbsocket]
             args[:socket]   = socket unless socket.empty?
         else
@@ -93,7 +93,7 @@ module Puppet::Rails
 
         unless ActiveRecord::Base.connection.tables.include?(&quot;resources&quot;)
             raise Puppet::Error, &quot;Database has problems, can't migrate.&quot;
-        end    
+        end
 
         Puppet.notice &quot;Migrating&quot;
 
@@ -122,9 +122,9 @@ module Puppet::Rails
                puts detail.backtrace
             end
             raise Puppet::Error, &quot;Could not connect to database: %s&quot; % detail
-        end 
+        end
 
-        ActiveRecord::Base.connection.tables.each do |t| 
+        ActiveRecord::Base.connection.tables.each do |t|
             ActiveRecord::Base.connection.drop_table t
         end
     end</diff>
      <filename>lib/puppet/rails.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,16 +2,16 @@ class AddCreatedAtToAllTables &lt; ActiveRecord::Migration
     def self.up
         ActiveRecord::Base.connection.tables.each do |t|
             unless ActiveRecord::Base.connection.columns(t).collect {|c| c.name}.include?(&quot;created_at&quot;)
-                add_column t.to_s, :created_at, :datetime 
-            end    
-        end 
+                add_column t.to_s, :created_at, :datetime
+            end
+        end
     end
 
     def self.down
         ActiveRecord::Base.connection.tables.each do |t|
             unless ActiveRecord::Base.connection.columns(t).collect {|c| c.name}.include?(&quot;created_at&quot;)
                 remove_column t.to_s, :created_at
-            end    
-        end    
+            end
+        end
     end
 end</diff>
      <filename>lib/puppet/rails/database/001_add_created_at_to_all_tables.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ class RemoveDuplicatedIndexOnAllTables &lt; ActiveRecord::Migration
             if ActiveRecord::Base.connection.indexes(t).collect {|c| c.columns}.include?(&quot;id&quot;)
                 remove_index t.to_s, :id
             end
-        end 
+        end
     end
 
     def self.down
@@ -12,6 +12,6 @@ class RemoveDuplicatedIndexOnAllTables &lt; ActiveRecord::Migration
             unless ActiveRecord::Base.connection.indexes(t).collect {|c| c.columns}.include?(&quot;id&quot;)
                 add_index t.to_s, :id, :integer =&gt; true
             end
-        end    
+        end
     end
 end</diff>
      <filename>lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ class AddEnvironmentToHost &lt; ActiveRecord::Migration
             add_column :hosts, :environment, :string
         end
     end
-    
+
     def self.down
         if ActiveRecord::Base.connection.columns(:hosts).collect {|c| c.name}.include?(&quot;environment&quot;)
             remove_column :hosts, :environment</diff>
      <filename>lib/puppet/rails/database/003_add_environment_to_host.rb</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ class Puppet::Rails::Schema
                     add_index :resources, [:title, :restype]
                 end
 
-                create_table :source_files do |t| 
+                create_table :source_files do |t|
                     t.column :filename, :string
                     t.column :path, :string
                     t.column :updated_at, :datetime
@@ -44,7 +44,7 @@ class Puppet::Rails::Schema
                 add_index :resource_tags, :resource_id, :integer =&gt; true
                 add_index :resource_tags, :puppet_tag_id, :integer =&gt; true
 
-                create_table :puppet_tags do |t| 
+                create_table :puppet_tags do |t|
                     t.column :name, :string
                     t.column :updated_at, :datetime
                     t.column :created_at, :datetime
@@ -66,20 +66,20 @@ class Puppet::Rails::Schema
                 add_index :hosts, :source_file_id, :integer =&gt; true
                 add_index :hosts, :name
 
-                create_table :fact_names do |t| 
+                create_table :fact_names do |t|
                     t.column :name, :string, :null =&gt; false
                     t.column :updated_at, :datetime
                     t.column :created_at, :datetime
                 end
                 add_index :fact_names, :name
 
-                create_table :fact_values do |t| 
+                create_table :fact_values do |t|
                     t.column :value, :text, :null =&gt; false
                     t.column :fact_name_id, :integer, :null =&gt; false
                     t.column :host_id, :integer, :null =&gt; false
                     t.column :updated_at, :datetime
                     t.column :created_at, :datetime
-                end 
+                end
                 add_index :fact_values, :fact_name_id, :integer =&gt; true
                 add_index :fact_values, :host_id, :integer =&gt; true
 
@@ -93,14 +93,14 @@ class Puppet::Rails::Schema
                 end
                 add_index :param_values, :param_name_id, :integer =&gt; true
                 add_index :param_values, :resource_id, :integer =&gt; true
-         
-                create_table :param_names do |t| 
+
+                create_table :param_names do |t|
                     t.column :name, :string, :null =&gt; false
                     t.column :updated_at, :datetime
                     t.column :created_at, :datetime
                 end
                 add_index :param_names, :name
-            end 
+            end
         end
     ensure
         $stdout.close</diff>
      <filename>lib/puppet/rails/database/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ class Puppet::Rails::FactValue &lt; ActiveRecord::Base
 
     def to_label
       &quot;#{self.fact_name.name}&quot;
-    end  
+    end
 end
 
 # $Id: fact_value.rb 1952 2006-12-19 05:47:57Z luke $</diff>
      <filename>lib/puppet/rails/fact_value.rb</filename>
    </modified>
    <modified>
      <diff>@@ -84,13 +84,13 @@ class Puppet::Rails::Host &lt; ActiveRecord::Base
     # Return the value of a fact.
     def fact(name)
         if fv = self.fact_values.find(:all, :include =&gt; :fact_name,
-                                      :conditions =&gt; &quot;fact_names.name = '#{name}'&quot;) 
+                                      :conditions =&gt; &quot;fact_names.name = '#{name}'&quot;)
             return fv
         else
             return nil
         end
     end
-    
+
     # returns a hash of fact_names.name =&gt; [ fact_values ] for this host.
     # Note that 'fact_values' is actually a list of the value instances, not
     # just actual values.
@@ -102,7 +102,7 @@ class Puppet::Rails::Host &lt; ActiveRecord::Base
             hash
         end
     end
-    
+
 
     # This is *very* similar to the merge_parameters method
     # of Puppet::Rails::Resource.
@@ -208,7 +208,7 @@ class Puppet::Rails::Host &lt; ActiveRecord::Base
         end
     end
 
-    # Turn a parser resource into a Rails resource.  
+    # Turn a parser resource into a Rails resource.
     def build_rails_resource_from_parser_resource(resource)
         db_resource = nil
         accumulate_benchmark(&quot;Added resources&quot;, :initialization) {</diff>
      <filename>lib/puppet/rails/host.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ require 'puppet/util/rails/cache_accumulator'
 
 class Puppet::Rails::ParamName &lt; ActiveRecord::Base
     include Puppet::Util::CollectionMerger
-    has_many :param_values, :dependent =&gt; :destroy 
+    has_many :param_values, :dependent =&gt; :destroy
 
     include Puppet::Util::CacheAccumulator
     accumulates :name</diff>
      <filename>lib/puppet/rails/param_name.rb</filename>
    </modified>
    <modified>
      <diff>@@ -67,7 +67,7 @@ class Puppet::Rails::ParamValue &lt; ActiveRecord::Base
         end
         params
     end
-    
+
     def to_s
         &quot;%s =&gt; %s&quot; % [self.name, self.value]
     end</diff>
      <filename>lib/puppet/rails/param_value.rb</filename>
    </modified>
    <modified>
      <diff>@@ -150,7 +150,7 @@ class Puppet::Rails::Resource &lt; ActiveRecord::Base
             end
         end
     end
-        
+
     # Make sure the tag list is correct.
     def merge_tags(resource)
         in_db = []</diff>
      <filename>lib/puppet/rails/resource.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ class Puppet::Rails::ResourceTag &lt; ActiveRecord::Base
 
     def to_label
       &quot;#{self.puppet_tag.name}&quot;
-    end  
+    end
 
     # returns an array of hash containing tags of resource
     def self.find_all_tags_from_resource(db_resource)</diff>
      <filename>lib/puppet/rails/resource_tag.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,5 +4,5 @@ class Puppet::Rails::SourceFile &lt; ActiveRecord::Base
 
     def to_label
       &quot;#{self.filename}&quot;
-    end  
+    end
 end</diff>
      <filename>lib/puppet/rails/source_file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,20 +53,20 @@ the parameters below, but not all of the arguments make sense for every executab
 I have tried to be as thorough as possible in the descriptions of the
 arguments, so it should be obvious whether an argument is appropriate or not.
 
-These parameters can be supplied to the executables either as command-line 
+These parameters can be supplied to the executables either as command-line
 options or in the configuration file.  For instance, the command-line
 invocation below would set the configuration directory to ``/private/puppet``::
-  
+
     $ puppetd --confdir=/private/puppet
-  
+
 Note that boolean options are turned on and off with a slightly different
 syntax on the command line::
 
     $ puppetd --storeconfigs
-      
+
     $ puppetd --no-storeconfigs
 
-The invocations above will enable and disable, respectively, the storage of 
+The invocations above will enable and disable, respectively, the storage of
 the client configuration.
 
 Configuration Files
@@ -95,7 +95,7 @@ The file follows INI-style formatting.  Here is an example of a very simple
     [main]
         confdir = /private/puppet
         storeconfigs = true
-    
+
 Note that boolean parameters must be explicitly specified as `true` or
 `false` as seen above.
 
@@ -112,13 +112,13 @@ will print a template configuration to standard output, which can be
 redirected to a file like so::
 
     $ puppetd --genconfig &gt; /etc/puppet/puppet.conf
-  
+
 Note that this invocation will replace the contents of any pre-existing
 `puppet.conf` file, so make a backup of your present config if it contains
 valuable information.
 
 Like the `--genconfig` argument, the executables also accept a `--genmanifest`
-argument, which will generate a manifest that can be used to manage all of 
+argument, which will generate a manifest that can be used to manage all of
 Puppet's directories and files and prints it to standard output.  This can
 likewise be redirected to a file::
 
@@ -128,16 +128,16 @@ Puppet can also create user and group accounts for itself (one `puppet` group
 and one `puppet` user) if it is invoked as `root` with the `--mkusers` argument::
 
     $ puppetd --mkusers
-  
+
 Signals
 -------
-The ``puppetd`` and ``puppetmasterd`` executables catch some signals for special 
-handling.  Both daemons catch (``SIGHUP``), which forces the server to restart 
-tself.  Predictably, interrupt and terminate (``SIGINT`` and ``SIGTERM``) will shut 
+The ``puppetd`` and ``puppetmasterd`` executables catch some signals for special
+handling.  Both daemons catch (``SIGHUP``), which forces the server to restart
+tself.  Predictably, interrupt and terminate (``SIGINT`` and ``SIGTERM``) will shut
 down the server, whether it be an instance of ``puppetd`` or ``puppetmasterd``.
 
-Sending the ``SIGUSR1`` signal to an instance of ``puppetd`` will cause it to 
-immediately begin a new configuration transaction with the server.  This 
+Sending the ``SIGUSR1`` signal to an instance of ``puppetd`` will cause it to
+immediately begin a new configuration transaction with the server.  This
 signal has no effect on ``puppetmasterd``.
 
 Configuration Parameter Reference</diff>
      <filename>lib/puppet/reference/configuration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ There are two types of functions in Puppet: Statements and rvalues.
 Statements stand on their own and do not return arguments; they are used for
 performing stand-alone work like importing.  Rvalues return values and can
 only be used in a statement requiring a value, such as an assignment or a case
-statement. 
+statement.
 
 Here are the functions available in Puppet:
 </diff>
      <filename>lib/puppet/reference/function.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ metaparameter = Puppet::Util::Reference.newreference :metaparameter, :doc =&gt; &quot;Al
         next if type.name == :puppet
         next if type.name == :component
         types[type.name] = type
-    }   
+    }
 
    str = %{
 Metaparameters
@@ -23,7 +23,7 @@ Available Metaparameters
         params = []
         Puppet::Type.eachmetaparam { |param|
             params &lt;&lt; param
-        }   
+        }
 
         params.sort { |a,b|
             a.to_s &lt;=&gt; b.to_s
@@ -37,12 +37,12 @@ Available Metaparameters
             #puts &quot;&lt;/dd&gt;&quot;
 
             #puts &quot;&quot;
-        }   
+        }
     rescue =&gt; detail
         puts detail.backtrace
         puts &quot;incorrect metaparams: %s&quot; % detail
         exit(1)
     end
-    
-    str 
+
+    str
 end</diff>
      <filename>lib/puppet/reference/metaparameter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -80,7 +80,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title =&gt; &quot;Provider
                     end
                 end
                 notes &lt;&lt; details
-                
+
                 count += 1
             end
 </diff>
      <filename>lib/puppet/reference/providers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ Resource Types
   This is the parameter that gets assigned when a string is provided before
   the colon in a type declaration.  In general, only developers will need to
   worry about which parameter is the ``namevar``.
-  
+
   In the following code::
 
       file { &quot;/etc/passwd&quot;:</diff>
      <filename>lib/puppet/reference/type.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ class Puppet::Relationship
     attr_accessor :source, :target, :callback
 
     attr_reader :event
-    
+
     def event=(event)
         if event != :NONE and ! callback
             raise ArgumentError, &quot;You must pass a callback for non-NONE events&quot;
@@ -31,9 +31,9 @@ class Puppet::Relationship
             end
         end
     end
-    
+
     # Does the passed event match our event?  This is where the meaning
-    # of :NONE comes from. 
+    # of :NONE comes from.
     def match?(event)
         if self.event.nil? or event == :NONE or self.event == :NONE
             return false
@@ -50,7 +50,7 @@ class Puppet::Relationship
         result[:event] = event if event
         result
     end
-    
+
     def ref
         &quot;%s =&gt; %s&quot; % [source, target]
     end</diff>
      <filename>lib/puppet/relationship.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,21 +3,21 @@ Puppet::Reports.register_report(:rrdgraph) do
         must have the Ruby RRDtool library installed to use this report, which
         you can get from `the RubyRRDTool RubyForge page`_.  This package may also
         be available as ``ruby-rrd`` or ``rrdtool-ruby`` in your distribution's package
-        management system.  The library and/or package will both require the binary 
+        management system.  The library and/or package will both require the binary
         ``rrdtool`` package from your distribution to be installed.
 
         .. _the RubyRRDTool RubyForge page: http://rubyforge.org/projects/rubyrrdtool/
-        
+
         This report will create, manage, and graph RRD database files for each
         of the metrics generated during transactions, and it will create a
         few simple html files to display the reporting host's graphs.  At this
         point, it will not create a common index file to display links to
         all hosts.
-        
+
         All RRD files and graphs get created in the ``rrddir`` directory.  If
         you want to serve these publicly, you should be able to just alias that
         directory in a web server.
-    
+
         If you really know what you're doing, you can tune the ``rrdinterval``,
         which defaults to the ``runinterval``.&quot;
 </diff>
      <filename>lib/puppet/reports/rrdgraph.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ Puppet::Reports.register_report(:store) do
 
     desc &quot;Store the yaml report on disk.  Each host sends its report as a YAML dump
         and this just stores the file on disk, in the ``reportdir`` directory.
-        
+
         These files collect quickly -- one every half hour -- so it is a good idea
         to perform some maintenance on them if you use this report (it's the only
         default report).&quot;</diff>
      <filename>lib/puppet/reports/store.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,12 +8,12 @@ Puppet::Reports.register_report(:tagmail) do
         based on the tags in the log messages.  See the
         `UsingTags tag documentation`:trac: for more information
         on tags.
-        
+
         To use this report, you must create a ``tagmail.conf`` (in the location
         specified by ``tagmap``).  This is a simple file that maps tags to
         email addresses:  Any log messages in the report that match the specified
         tags will be sent to the specified email addresses.
-        
+
         Tags must be comma-separated, and they can be negated so that messages
         only match when they do not have that tag.  The tags are separated from
         the email addresses by a colon, and the email addresses should also
@@ -29,9 +29,9 @@ Puppet::Reports.register_report(:tagmail) do
         This will send all messages to ``me@domain.com``, and all messages from
         webservers that are not also from mailservers to ``httpadmins@domain.com``.
 
-        If you are using anti-spam controls, such as grey-listing, on your mail 
-        server you should whitelist the sending email (controlled by ``reportform`` 
-        configuration option) to ensure your email is not discarded as spam.  
+        If you are using anti-spam controls, such as grey-listing, on your mail
+        server you should whitelist the sending email (controlled by ``reportform``
+        configuration option) to ensure your email is not discarded as spam.
         &quot;
 
 
@@ -65,10 +65,10 @@ Puppet::Reports.register_report(:tagmail) do
                 reports &lt;&lt; [emails, messages.collect { |m| m.to_report }.join(&quot;\n&quot;)]
             end
         end
-        
+
         return reports
     end
-    
+
     # Load the config file
     def parse(text)
         taglists = []
@@ -114,13 +114,13 @@ Puppet::Reports.register_report(:tagmail) do
         end
 
         taglists = parse(File.read(Puppet[:tagmap]))
-        
+
         # Now find any appropriately tagged messages.
         reports = match(taglists)
 
         send(reports)
     end
-    
+
     # Send the email reports.
     def send(reports)
         pid = fork do
@@ -136,7 +136,7 @@ Puppet::Reports.register_report(:tagmail) do
                               p.puts &quot;Date: &quot; + Time.now.rfc2822
                               p.puts
                               p.puts messages
-                            end 
+                            end
                         end
                     end
                 rescue =&gt; detail</diff>
      <filename>lib/puppet/reports/tagmail.rb</filename>
    </modified>
    <modified>
      <diff>@@ -92,7 +92,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
 
     # Create an alias for a resource.
     def alias(resource, name)
-        #set $1 
+        #set $1
         resource.ref =~ /^(.+)\[/
 
         newref = &quot;%s[%s]&quot; % [$1 || resource.class.name, name]
@@ -148,7 +148,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
         end
 
         yield transaction if block_given?
-        
+
         transaction.send_report if host_config and (Puppet[:report] or Puppet[:summarize])
 
         return transaction
@@ -162,7 +162,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
     def applying?
         @applying
     end
-    
+
     def clear(remove_resources = true)
         super()
         # We have to do this so that the resources clean themselves up.
@@ -271,7 +271,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
         make_default_resources
 
         @resource_table.values.each { |resource| resource.finish }
-        
+
         write_graph(:resources)
     end
 
@@ -304,13 +304,13 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
 
         # First create the default scheduling objects
         Puppet::Type.type(:schedule).mkdefaultschedules.each { |res| add_resource(res) unless resource(res.ref) }
-        
+
         # And filebuckets
         if bucket = Puppet::Type.type(:filebucket).mkdefaultbucket
             add_resource(bucket) unless resource(bucket.ref)
         end
     end
-    
+
     # Create a graph of all of the relationships in our catalog.
     def relationship_graph
         unless defined? @relationship_graph and @relationship_graph
@@ -320,7 +320,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
             # spitting out the messages.  If this is not set,
             # then we get into an infinite loop.
             @relationship_graph = Puppet::SimpleGraph.new
-            
+
             # First create the dependency graph
             self.vertices.each do |vertex|
                 @relationship_graph.add_vertex vertex
@@ -328,7 +328,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
                     @relationship_graph.add_edge(edge)
                 end
             end
-            
+
             # Lastly, add in any autorequires
             @relationship_graph.vertices.each do |vertex|
                 vertex.autorequire(self).each do |edge|
@@ -343,7 +343,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
                 end
             end
             @relationship_graph.write_graph(:relationships) if host_config?
-            
+
             # Then splice in the container information
             @relationship_graph.splice!(self, Puppet::Type::Component)
 
@@ -432,7 +432,7 @@ class Puppet::Resource::Catalog &lt; Puppet::SimpleGraph
 
     # Verify that the given resource isn't defined elsewhere.
     def fail_unless_unique(resource)
-        # Short-curcuit the common case, 
+        # Short-curcuit the common case,
         return unless existing_resource = @resource_table[resource.ref]
 
         # If we've gotten this far, it's a real conflict</diff>
      <filename>lib/puppet/resource/catalog.rb</filename>
    </modified>
    <modified>
      <diff>@@ -37,7 +37,7 @@ class Puppet::Resource::Reference
             # Don't override whatever was done by setting the title.
             self.type ||= argtype
         end
-        
+
         @builtin_type = nil
     end
 
@@ -63,7 +63,7 @@ class Puppet::Resource::Reference
         if value.nil? or value.to_s.downcase == &quot;component&quot;
             @type = &quot;Class&quot;
         else
-            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+            # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
             x = @type = value.to_s.split(&quot;::&quot;).collect { |s| s.capitalize }.join(&quot;::&quot;)
         end
     end</diff>
      <filename>lib/puppet/resource/reference.rb</filename>
    </modified>
    <modified>
      <diff>@@ -117,7 +117,7 @@ class Puppet::SimpleGraph
     def dependents(resource)
         tree_from_vertex(resource).keys
     end
-    
+
     # Which resources depend upon the given resource.
     def dependencies(resource)
         # Cache the reversal graph, because it's somewhat expensive
@@ -142,7 +142,7 @@ class Puppet::SimpleGraph
         l = tree.keys.find_all { |c| adjacent(c, :direction =&gt; direction).empty? }
         return l
     end
-    
+
     # Collect all of the edges that the passed events match.  Returns
     # an array of edges.
     def matching_edges(events, base = nil)
@@ -284,7 +284,7 @@ class Puppet::SimpleGraph
     def remove_edge!(edge)
         @vertices[edge.source].remove_edge(:out, edge)
         @vertices[edge.target].remove_edge(:in, edge)
-        
+
         @edges.delete(edge)
         nil
     end
@@ -302,9 +302,9 @@ class Puppet::SimpleGraph
     def setup_vertex(vertex)
         @vertices[vertex] = VertexWrapper.new(vertex)
     end
- 
+
     public
-    
+
 #    # For some reason, unconnected vertices do not show up in
 #    # this graph.
 #    def to_jpg(path, name)
@@ -313,11 +313,11 @@ class Puppet::SimpleGraph
 #            induced_subgraph(gv).write_to_graphic_file('jpg', name)
 #        end
 #    end
-    
+
     # Take container information from another graph and use it
     # to replace any container vertices with their respective leaves.
     # This creates direct relationships where there were previously
-    # indirect relationships through the containers. 
+    # indirect relationships through the containers.
     def splice!(other, type)
         # We have to get the container list via a topological sort on the
         # configuration graph, because otherwise containers that contain
@@ -335,7 +335,7 @@ class Puppet::SimpleGraph
                 remove_vertex!(container)
                 next
             end
-            
+
             # First create new edges for each of the :in edges
             [:in, :out].each do |dir|
                 edges = adjacent(container, :direction =&gt; dir, :type =&gt; :edges)
@@ -386,7 +386,7 @@ class Puppet::SimpleGraph
         walk(start, direction) do |parent, child|
             predecessor[child] = parent
         end
-        predecessor       
+        predecessor
     end
 
     # LAK:FIXME This is just a paste of the GRATR code with slight modifications.
@@ -419,7 +419,7 @@ class Puppet::SimpleGraph
       end
       graph
     end
-    
+
     # Output the dot format as a string
     def to_dot (params={}) to_dot_graph(params).to_s; end
 
@@ -435,9 +435,9 @@ class Puppet::SimpleGraph
     def write_to_graphic_file (fmt='png', dotfile='graph')
       src = dotfile + '.dot'
       dot = dotfile + '.' + fmt
-      
+
       File.open(src, 'w') {|f| f &lt;&lt; self.to_dot &lt;&lt; &quot;\n&quot;}
-      
+
       system( &quot;dot -T#{fmt} #{src} -o #{dot}&quot; )
       dot
     end</diff>
      <filename>lib/puppet/simple_graph.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 # This class is basically a hidden class that knows how to act
 # on the CA.  It's only used by the 'puppetca' executable, and its
-# job is to provide a CLI-like interface to the CA class. 
+# job is to provide a CLI-like interface to the CA class.
 class Puppet::SSL::CertificateAuthority::Interface
     INTERFACE_METHODS = [:destroy, :list, :revoke, :generate, :sign, :print, :verify]
 </diff>
      <filename>lib/puppet/ssl/certificate_authority/interface.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ class Puppet::SSL::CertificateFactory
     }
 
     attr_reader :name, :cert_type, :csr, :issuer, :serial
-    
+
     def initialize(cert_type, csr, issuer, serial)
         @cert_type, @csr, @issuer, @serial = cert_type, csr, issuer, serial
 
@@ -77,7 +77,7 @@ class Puppet::SSL::CertificateFactory
         @extensions &lt;&lt; @ef.create_extension(&quot;authorityKeyIdentifier&quot;, &quot;keyid:always,issuer:always&quot;) if @cert_type == :ca
     end
 
-    # TTL for new certificates in seconds. If config param :ca_ttl is set, 
+    # TTL for new certificates in seconds. If config param :ca_ttl is set,
     # use that, otherwise use :ca_days for backwards compatibility
     def ttl
         ttl = Puppet.settings[:ca_ttl]</diff>
      <filename>lib/puppet/ssl/certificate_factory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -253,7 +253,7 @@ class Puppet::SSL::Host
 
         if time &lt; 1
             puts &quot;Exiting; no certificate found and waitforcert is disabled&quot;
-            exit(1) 
+            exit(1)
         end
 
         while true do</diff>
      <filename>lib/puppet/ssl/host.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,7 @@ class Puppet::SSLCertificates::CA
                         [file, detail]
                 end
             end
-            
+
         end
     end
 
@@ -39,7 +39,7 @@ class Puppet::SSLCertificates::CA
         File.join(Puppet[:csrdir], [hostname.downcase, &quot;pem&quot;].join(&quot;.&quot;))
     end
 
-    # this stores signed certs in a directory unrelated to 
+    # this stores signed certs in a directory unrelated to
     # normal client certs
     def host2certfile(hostname)
         File.join(Puppet[:signeddir], [hostname.downcase, &quot;pem&quot;].join(&quot;.&quot;))
@@ -142,15 +142,15 @@ class Puppet::SSLCertificates::CA
         }
     end
 
-    # List signed certificates.  This returns a list of hostnames, not actual 
-    # files -- the names can be converted to full paths with host2csrfile. 
-    def list_signed 
-        return Dir.entries(Puppet[:signeddir]).find_all { |file| 
-            file =~ /\.pem$/ 
-        }.collect { |file| 
-            file.sub(/\.pem$/, '') 
-        } 
-    end 
+    # List signed certificates.  This returns a list of hostnames, not actual
+    # files -- the names can be converted to full paths with host2csrfile.
+    def list_signed
+        return Dir.entries(Puppet[:signeddir]).find_all { |file|
+            file =~ /\.pem$/
+        }.collect { |file|
+            file.sub(/\.pem$/, '')
+        }
+    end
 
     # Create the root certificate.
     def mkrootcert
@@ -207,7 +207,7 @@ class Puppet::SSLCertificates::CA
         @crl.add_revoked(revoked)
         store_crl
     end
-    
+
     # Take the Puppet config and store it locally.
     def setconfig(hash)
         @config = {}
@@ -306,7 +306,7 @@ class Puppet::SSLCertificates::CA
         end
     end
 
-    # TTL for new certificates in seconds. If config param :ca_ttl is set, 
+    # TTL for new certificates in seconds. If config param :ca_ttl is set,
     # use that, otherwise use :ca_days for backwards compatibility
     def ttl
         days = @config[:ca_days]
@@ -337,7 +337,7 @@ class Puppet::SSLCertificates::CA
             end
         end
     end
-    
+
     private
     def init_crl
         if FileTest.exists?(@config[:cacrl])
@@ -355,7 +355,7 @@ class Puppet::SSLCertificates::CA
             @crl
         end
     end
-        
+
     def store_crl
         # Increment the crlNumber
         e = @crl.extensions.find { |e| e.oid == 'crlNumber' }</diff>
      <filename>lib/puppet/sslcertificates/ca.rb</filename>
    </modified>
    <modified>
      <diff>@@ -98,9 +98,9 @@ class Puppet::SSLCertificates::Certificate
         @encrypt = hash[:encrypt] || false
         @replace = hash[:replace] || false
         @issuer = hash[:issuer] || nil
-        
+
         if hash.include?(:type)
-            case hash[:type] 
+            case hash[:type]
             when :ca, :client, :server; @type = hash[:type]
             else
                 raise &quot;Invalid Cert type %s&quot; % hash[:type]
@@ -168,7 +168,7 @@ class Puppet::SSLCertificates::Certificate
 #                case p
 #                when 0; Puppet.info &quot;key info: .&quot;  # BN_generate_prime
 #                when 1; Puppet.info &quot;key info: +&quot;  # BN_generate_prime
-#                when 2; Puppet.info &quot;key info: *&quot;  # searching good prime,  
+#                when 2; Puppet.info &quot;key info: *&quot;  # searching good prime,
 #                                          # n = #of try,
 #                                          # but also data from BN_generate_prime
 #                when 3; Puppet.info &quot;key info: \n&quot; # found good prime, n==0 - p, n==1 - q,</diff>
      <filename>lib/puppet/sslcertificates/certificate.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ module Puppet::SSLCertificates
     module Inventory
 
         # Add CERT to the inventory of issued certs in '$cadir/inventory.txt'
-        # If no inventory exists yet, build an inventory and list all the 
+        # If no inventory exists yet, build an inventory and list all the
         # certificates that have been signed so far
         def self.add(cert)
             inited = false
@@ -30,8 +30,8 @@ module Puppet::SSLCertificates
 
         def self.format(cert)
             iso = '%Y-%m-%dT%H:%M:%S%Z'
-            return &quot;0x%04x %s %s %s&quot; % [cert.serial,  
-                                        cert.not_before.strftime(iso), 
+            return &quot;0x%04x %s %s %s&quot; % [cert.serial,
+                                        cert.not_before.strftime(iso),
                                         cert.not_after.strftime(iso),
                                         cert.subject]
         end</diff>
      <filename>lib/puppet/sslcertificates/inventory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ class Transaction
 
     # The list of events generated in this transaction.
     attr_reader :events
-    
+
     include Puppet::Util
 
     # Add some additional times for reporting
@@ -35,7 +35,7 @@ class Transaction
         if resource.purging? and resource.deleting?
             if deps = relationship_graph.dependents(resource) and ! deps.empty? and deps.detect { |d| ! d.deleting? }
                 resource.warning &quot;%s still depend%s on me -- not purging&quot; %
-                    [deps.collect { |r| r.ref }.join(&quot;,&quot;), deps.length &gt; 1 ? &quot;&quot;:&quot;s&quot;] 
+                    [deps.collect { |r| r.ref }.join(&quot;,&quot;), deps.length &gt; 1 ? &quot;&quot;:&quot;s&quot;]
                 return false
             end
         end
@@ -91,7 +91,7 @@ class Transaction
             if resource.respond_to?(:flush)
                 resource.flush
             end
-            
+
             # And set a trigger for refreshing this resource if it's a
             # self-refresher
             if resource.self_refresh? and ! resource.deleting?
@@ -149,7 +149,7 @@ class Transaction
             change.property.resource
         }.uniq
     end
-    
+
     # Do any necessary cleanup.  If we don't get rid of the graphs, the
     # contained resources might never get cleaned up.
     def cleanup
@@ -162,7 +162,7 @@ class Transaction
     # child resource.
     def make_parent_child_relationship(resource, children)
         depthfirst = resource.depthfirst?
-        
+
         children.each do |gen_child|
             if depthfirst
                 edge = [gen_child, resource]
@@ -190,15 +190,15 @@ class Transaction
     def eval_generate(resource)
         generate_additional_resources(resource, :eval_generate)
     end
-    
+
     # Evaluate a single resource.
     def eval_resource(resource)
         events = []
-        
+
         if resource.is_a?(Puppet::Type::Component)
             raise Puppet::DevError, &quot;Got a component to evaluate&quot;
         end
-        
+
         if skip?(resource)
             @resourcemetrics[:skipped] += 1
         else
@@ -230,13 +230,13 @@ class Transaction
         events = []
 
         @resourcemetrics[:scheduled] += 1
-        
+
         changecount = @changes.length
-        
+
         # We need to generate first regardless, because the recursive
         # actions sometimes change how the top resource is applied.
         children = eval_generate(resource)
-        
+
         if ! children.empty? and resource.depthfirst?
             children.each do |child|
                 # The child will never be skipped when the parent isn't
@@ -278,7 +278,7 @@ class Transaction
 
         # Start logging.
         Puppet::Util::Log.newdestination(@report)
-        
+
         prepare()
 
         begin
@@ -333,10 +333,10 @@ class Transaction
                 skip = true
             end
         end
-        
+
         return skip
     end
-    
+
     # A general method for recursively generating new resources from a
     # resource.
     def generate_additional_resources(resource, method)
@@ -481,7 +481,7 @@ class Transaction
             end
         end
     end
-    
+
     # Prepare to evaluate the resources in a transaction.
     def prepare
         # Now add any dynamically generated resources
@@ -490,7 +490,7 @@ class Transaction
         # Then prefetch.  It's important that we generate and then prefetch,
         # so that any generated resources also get prefetched.
         prefetch()
-        
+
         # This will throw an error if there are cycles in the graph.
         @sorted_resources = relationship_graph.topsort
     end
@@ -498,7 +498,7 @@ class Transaction
     def relationship_graph
         catalog.relationship_graph
     end
-    
+
     # Send off the transaction report.
     def send_report
         begin
@@ -515,7 +515,7 @@ class Transaction
         if Puppet[:summarize]
             puts report.summary
         end
-        
+
         if Puppet[:report]
             begin
                 report.save()
@@ -550,7 +550,7 @@ class Transaction
                 # this still could get hairy; what if file contents changed,
                 # but a chmod failed?  how would i handle that error? dern
             end
-            
+
             # FIXME This won't work right now.
             relationship_graph.matching_edges(events).each do |edge|
                 @targets[edge.target] &lt;&lt; edge
@@ -565,7 +565,7 @@ class Transaction
             events
         }.flatten.reject { |e| e.nil? }
     end
-    
+
     # Is the resource currently scheduled?
     def scheduled?(resource)
         self.ignoreschedules or resource.scheduled?
@@ -582,7 +582,7 @@ class Transaction
         end
         @targets[edge.target] &lt;&lt; edge
     end
-    
+
     # Should this resource be skipped?
     def skip?(resource)
         skip = false
@@ -597,7 +597,7 @@ class Transaction
         end
         return true
     end
-    
+
     # The tags we should be checking.
     def tags
         unless defined? @tags
@@ -608,7 +608,7 @@ class Transaction
                 @tags = tags.split(/\s*,\s*/)
             end
         end
-        
+
         @tags
     end
 
@@ -616,13 +616,13 @@ class Transaction
         tags = [tags] unless tags.is_a?(Array)
         @tags = tags
     end
-    
+
     # Is this resource tagged appropriately?
     def missing_tags?(resource)
         return false if self.ignore_tags? or tags.empty?
         return true unless resource.tagged?(tags)
     end
-    
+
     # Are there any edges that target this resource?
     def targeted?(resource)
         # The default value is a new array so we have to test the length of it.
@@ -665,7 +665,7 @@ class Transaction
                     [callback, subs.length]
             end
             resource.notice message
-            
+
             # At this point, just log failures, don't try to react
             # to them in any way.
             begin</diff>
      <filename>lib/puppet/transaction.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'puppet/transaction/event'
 # including calling 'sync' on the properties and producing events.
 class Puppet::Transaction::Change
     attr_accessor :is, :should, :path, :property, :changed, :proxy
-    
+
     # Switch the goals of the property, thus running the change in reverse.
     def backward
         @is, @should = @should, @is
@@ -14,7 +14,7 @@ class Puppet::Transaction::Change
         @property.info &quot;Reversing %s&quot; % self
         return self.go
     end
-    
+
     def changed?
         self.changed
     end
@@ -28,7 +28,7 @@ class Puppet::Transaction::Change
 
             name = @property.event(should)
         end
-        
+
         Puppet::Transaction::Event.new(name, self.resource)
     end
 
@@ -61,7 +61,7 @@ class Puppet::Transaction::Change
         else
             events = [events]
         end
-        
+
         return events.collect { |name|
             @report = @property.log(@property.change_to_s(@is, @should))
             event(name)
@@ -71,12 +71,12 @@ class Puppet::Transaction::Change
     def forward
         return self.go
     end
-    
+
     # Is our property noop?  This is used for generating special events.
     def noop?
         return @property.noop
     end
-    
+
     # The resource that generated this change.  This is used for handling events,
     # and the proxy resource is used for generated resources, since we can't
     # send an event to a resource we don't have a direct relationship.  If we</diff>
      <filename>lib/puppet/transaction/change.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ require 'puppet/util/errors'
 class Puppet::Transaction::Event
     include Puppet::Util::MethodHelper
     include Puppet::Util::Errors
-    
+
     attr_reader :name, :source
 
     def initialize(name, source)</diff>
      <filename>lib/puppet/transaction/event.rb</filename>
    </modified>
    <modified>
      <diff>@@ -66,7 +66,7 @@ module Puppet
         end
 
         def to_manifest
-            &quot;%s { '%s':\n%s\n}&quot; % 
+            &quot;%s { '%s':\n%s\n}&quot; %
                 [self.type.to_s, self.name,
                  @params.collect { |p, v|
                      if v.is_a? Array
@@ -209,7 +209,7 @@ module Puppet
                     end
                 end
             end
-                
+
             begin
                 delver.call(self)
                 catalog.finalize
@@ -218,7 +218,7 @@ module Puppet
                 catalog.clear if (clear_on_failure)
                 raise
             end
-            
+
             return catalog
         end
 </diff>
      <filename>lib/puppet/transportable.rb</filename>
    </modified>
    <modified>
      <diff>@@ -149,7 +149,7 @@ class Type
 
         return ens
     end
-    
+
     # Deal with any options passed into parameters.
     def self.handle_param_options(name, options)
         # If it's a boolean parameter, create a method to test the value easily
@@ -201,7 +201,7 @@ class Type
         if options[:required_features]
             param.required_features = options[:required_features]
         end
-        
+
         handle_param_options(name, options)
 
         param.metaparam = true
@@ -239,7 +239,7 @@ class Type
             :array =&gt; @parameters,
             :hash =&gt; @paramhash
         )
-        
+
         handle_param_options(name, options)
 
         # Grr.
@@ -278,7 +278,7 @@ class Type
                 &quot;Options must be a hash, not %s&quot; % options.inspect
         end
 
-        if @validproperties.include?(name) 
+        if @validproperties.include?(name)
             raise Puppet::DevError, &quot;Class %s already has a property named %s&quot; %
                 [self.name, name]
         end
@@ -390,7 +390,7 @@ class Type
             return name
         end
     end
-    
+
     # Are we deleting this resource?
     def deleting?
         obj = @parameters[:ensure] and obj.should == :absent
@@ -405,7 +405,7 @@ class Type
         end
         return false
     end
-    
+
     # abstract accessing parameters and properties, and normalize
     # access to always be symbols, not strings
     # This returns a value, not an object.  It returns the 'is'
@@ -575,7 +575,7 @@ class Type
     # Convert our object to a hash.  This just includes properties.
     def to_hash
         rethash = {}
-    
+
         @parameters.each do |name, obj|
             rethash[name] = obj.value
         end
@@ -669,7 +669,7 @@ class Type
             return false
         end
     end
-    
+
     def depthfirst?
         self.class.depthfirst?
     end
@@ -746,14 +746,14 @@ class Type
     # it's really only used for testing
     def insync?(is)
         insync = true
-        
+
         if property = @parameters[:ensure]
             unless is.include? property
                raise Puppet::DevError,
                         &quot;The is value is not in the is array for '%s'&quot; %
                         [property.name]
             end
-            ensureis = is[property]           
+            ensureis = is[property]
             if property.insync?(ensureis) and property.should == :absent
                 return true
             end
@@ -779,12 +779,12 @@ class Type
         #self.debug(&quot;%s sync status is %s&quot; % [self,insync])
         return insync
     end
-        
+
     # retrieve the current value of all contained properties
     def retrieve
         return currentpropvalues
     end
-    
+
     # Get a hash of the current properties.  Returns a hash with
     # the actual property instance as the key and the current value
     # as the, um, value.
@@ -821,7 +821,7 @@ class Type
     def noop
         noop?
     end
-     
+
     # Retrieve the changes associated with all of the properties.
     def propertychanges(currentvalues)
         # If we are changing the existence of the object, then none of
@@ -1073,7 +1073,7 @@ class Type
     newmetaparam(:noop) do
         desc &quot;Boolean flag indicating whether work should actually
             be done.&quot;
-            
+
         newvalues(:true, :false)
         munge do |value|
             case value
@@ -1165,8 +1165,8 @@ class Type
         munge do |loglevel|
             val = super(loglevel)
             if val == :verbose
-                val = :info 
-            end        
+                val = :info
+            end
             val
         end
     end
@@ -1174,7 +1174,7 @@ class Type
     newmetaparam(:alias) do
         desc &quot;Creates an alias for the object.  Puppet uses this internally when you
             provide a symbolic name::
-            
+
                 file { sshdconfig:
                     path =&gt; $operatingsystem ? {
                         solaris =&gt; \&quot;/usr/local/etc/ssh/sshd_config\&quot;,
@@ -1207,7 +1207,7 @@ class Type
             should be affecting the same file.
 
             See the `LanguageTutorial language tutorial`:trac: for more information.
-            
+
             &quot;
 
         munge do |aliases|
@@ -1239,7 +1239,7 @@ class Type
 
             Tags are currently useful for things like applying a subset of a
             host's configuration::
-                
+
                 puppetd --test --tags mytag
 
             This way, when you're testing a configuration you can run just the
@@ -1253,18 +1253,18 @@ class Type
             end
         end
     end
-    
+
     class RelationshipMetaparam &lt; Puppet::Parameter
         class &lt;&lt; self
             attr_accessor :direction, :events, :callback, :subclasses
         end
-        
+
         @subclasses = []
-        
+
         def self.inherited(sub)
             @subclasses &lt;&lt; sub
         end
-        
+
         def munge(references)
             references = [references] unless references.is_a?(Array)
             references.collect do |ref|
@@ -1284,7 +1284,7 @@ class Type
                 end
             end
         end
-        
+
         # Create edges from each of our relationships.    :in
         # relationships are specified by the event-receivers, and :out
         # relationships are specified by the event generator.  This
@@ -1296,7 +1296,7 @@ class Type
         def to_edges
             @value.collect do |reference|
                 reference.catalog = resource.catalog
-                
+
                 # Either of the two retrieval attempts could have returned
                 # nil.
                 unless related_resource = reference.resolve
@@ -1325,12 +1325,12 @@ class Type
                     subargs = nil
                     self.debug(&quot;requires %s&quot; % [related_resource.ref])
                 end
-                
+
                 rel = Puppet::Relationship.new(source, target, subargs)
             end
         end
     end
-    
+
     def self.relationship_params
         RelationshipMetaparam.subclasses
     end
@@ -1345,7 +1345,7 @@ class Type
         desc &quot;One or more objects that this object depends on.
             This is used purely for guaranteeing that changes to required objects
             happen before the dependent object.  For instance::
-            
+
                 # Create the destination directory before you copy things down
                 file { \&quot;/usr/local/scripts\&quot;:
                     ensure =&gt; directory
@@ -1371,7 +1371,7 @@ class Type
             any parent directories that are being managed; it will
             automatically realize that the parent directory should be created
             before the script is pulled down.
-            
+
             Currently, exec resources will autorequire their CWD (if it is
             specified) plus any fully qualified paths that appear in the
             command.   For instance, if you had an ``exec`` command that ran
@@ -1386,7 +1386,7 @@ class Type
         desc &quot;One or more objects that this object depends on.  Changes in the
             subscribed to objects result in the dependent objects being
             refreshed (e.g., a service will get restarted).  For instance::
-            
+
                 class nagios {
                     file { \&quot;/etc/nagios/nagios.conf\&quot;:
                         source =&gt; \&quot;puppet://server/module/nagios.conf\&quot;,
@@ -1418,11 +1418,11 @@ class Type
                     command =&gt; &quot;/usr/bin/make&quot;,
                     cwd =&gt; &quot;/var/nagios/configuration&quot;
                 }
-            
+
             This will make sure all of the files are up to date before the
             make command is run.}
     end
-    
+
     newmetaparam(:notify, :parent =&gt; RelationshipMetaparam, :attributes =&gt; {:direction =&gt; :out, :events =&gt; :ALL_EVENTS, :callback =&gt; :refresh}) do
         desc %{This parameter is the opposite of **subscribe** -- it sends events
             to the specified object::
@@ -1435,7 +1435,7 @@ class Type
                 service { sshd:
                     ensure =&gt; running
                 }
-            
+
             This will restart the sshd service if the sshd config file changes.}
     end
 
@@ -1768,7 +1768,7 @@ class Type
     attr_writer :noop
 
     include Enumerable
-    
+
     # class methods dealing with Type management
 
     public
@@ -1838,7 +1838,7 @@ class Type
 
     # The catalog that this resource is stored in.
     attr_accessor :catalog
-    
+
     # create a log at specified level
     def log(msg)
         Puppet::Util::Log.create(
@@ -1985,7 +1985,7 @@ class Type
     def ref
         &quot;%s[%s]&quot; % [self.class.name.to_s.capitalize, self.title]
     end
-    
+
     def self_refresh?
         self.class.self_refresh
     end</diff>
      <filename>lib/puppet/type.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@ Puppet::Type.newtype(:component) do
             catalog.alias(self, ref)
         end
     end
-    
+
     # Component paths are special because they function as containers.
     def pathbuilder
         if reference.type == &quot;Class&quot;</diff>
      <filename>lib/puppet/type/component.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 Puppet::Type.newtype(:computer) do
-    
+
     @doc = &quot;Computer object management using DirectoryService
       on OS X.
 
@@ -15,12 +15,12 @@ Puppet::Type.newtype(:computer) do
 
       This type primarily exists to create localhost Computer objects that MCX
       policy can then be attached to.&quot;
-    
+
     # ensurable
-    
+
     # We autorequire the computer object in case it is being managed at the
     # file level by Puppet.
-    
+
     autorequire(:file) do
         if self[:name]
             &quot;/var/db/dslocal/nodes/Default/computers/#{self[:name]}.plist&quot;
@@ -28,7 +28,7 @@ Puppet::Type.newtype(:computer) do
             nil
         end
     end
-    
+
     newproperty(:ensure, :parent =&gt; Puppet::Property::Ensure) do
         desc &quot;Control the existences of this computer record. Set this attribute to
             ``present`` to ensure the computer record exists.  Set it to ``absent``
@@ -41,22 +41,22 @@ Puppet::Type.newtype(:computer) do
             provider.delete
         end
     end
-    
+
     newparam(:name) do
         desc &quot;The authoritative 'short' name of the computer record.&quot;
         isnamevar
     end
-    
+
     newparam(:realname) do
         desc &quot;The 'long' name of the computer record.&quot;
     end
-        
+
     newproperty(:en_address) do
         desc &quot;The MAC address of the primary network interface. Must match en0.&quot;
     end
-    
+
     newproperty(:ip_address) do
         desc &quot;The IP Address of the Computer object.&quot;
     end
-    
+
 end</diff>
      <filename>lib/puppet/type/computer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,20 +3,20 @@ require 'facter'
 require 'puppet/util/filetype'
 
 Puppet::Type.newtype(:cron) do
-    @doc = &quot;Installs and manages cron jobs.  All fields except the command 
+    @doc = &quot;Installs and manages cron jobs.  All fields except the command
         and the user are optional, although specifying no periodic
         fields would result in the command being executed every
         minute.  While the name of the cron job is not part of the actual
         job, it is used by Puppet to store and retrieve it.
-        
+
         If you specify a cron job that matches an existing job in every way
         except name, then the jobs will be considered equivalent and the
         new name will be permanently associated with that job.  Once this
         association is made and synced to disk, you can then manage the job
         normally (e.g., change the schedule of the job).
-        
+
         Example::
-            
+
             cron { logrotate:
                 command =&gt; \&quot;/usr/sbin/logrotate\&quot;,
                 user =&gt; root,
@@ -89,7 +89,7 @@ Puppet::Type.newtype(:cron) do
         # or the first three letters of the word.
         def alphacheck(value, ary)
             tmp = value.downcase
-            
+
             # If they specified a shortened version of the name, then see
             # if we can lengthen it (e.g., mon =&gt; monday).
             if tmp.length == 3
@@ -211,16 +211,16 @@ Puppet::Type.newtype(:cron) do
             best to always provide a fully qualified command.  The user's
             profile is not sourced when the command is run, so if the
             user's environment is desired it should be sourced manually.
-            
+
             All cron parameters support ``absent`` as a value; this will
             remove any existing values for that field.&quot;
 
-        def retrieve 
+        def retrieve
           return_value = super
           if return_value &amp;&amp; return_value.is_a?(Array)
             return_value = return_value[0]
           end
-            
+
           return return_value
         end
 
@@ -302,7 +302,7 @@ Puppet::Type.newtype(:cron) do
             job.  If you already have cron jobs with environment settings,
             then Puppet will keep those settings in the same place in the file,
             but will not associate them with a specific job.
-            
+
             Settings should be specified exactly as they should appear in
             the crontab, e.g., ``PATH=/bin:/usr/bin:/usr/sbin``.&quot;
 
@@ -322,7 +322,7 @@ Puppet::Type.newtype(:cron) do
         end
 
         def is_to_s(newvalue)
-            if newvalue 
+            if newvalue
                 if newvalue.is_a?(Array)
                     newvalue.join(&quot;,&quot;)
                 else
@@ -363,7 +363,7 @@ Puppet::Type.newtype(:cron) do
         desc &quot;The user to run the command as.  This user must
             be allowed to run cron jobs, which is not currently checked by
             Puppet.
-            
+
             The user defaults to whomever Puppet is running as.&quot;
 
         defaultto { Etc.getpwuid(Process.uid).name || &quot;root&quot; }</diff>
      <filename>lib/puppet/type/cron.rb</filename>
    </modified>
    <modified>
      <diff>@@ -46,7 +46,7 @@ module Puppet
             Note that if an ``exec`` receives an event from another resource,
             it will get executed again (or execute the command specified in
             ``refresh``, if there is one).
-            
+
             There is a strong tendency to use ``exec`` to do whatever work Puppet
             can't already do; while this is obviously acceptable (and unavoidable)
             in the short term, it is highly recommended to migrate work from ``exec``
@@ -114,8 +114,8 @@ module Puppet
                 end
 
                 if log = @resource[:logoutput]
-                    case log 
-                    when :true 
+                    case log
+                    when :true
                         log = @resource[:loglevel]
                     when :on_failure
                         if status.exitstatus.to_s != self.should.to_s
@@ -200,7 +200,7 @@ module Puppet
                 if dir.is_a?(Array)
                     dir = dir[0]
                 end
-                
+
                 dir
             end
         end
@@ -249,13 +249,13 @@ module Puppet
                 end
             end
         end
-        
+
         newparam(:timeout) do
             desc &quot;The maximum time the command should take.  If the command takes
                 longer than the timeout, the command is considered to have failed
                 and will be stopped.  Use any negative number to disable the timeout.
                 The time is specified in seconds.&quot;
-            
+
             munge do |value|
                 value = value.shift if value.is_a?(Array)
                 if value.is_a?(String)
@@ -267,7 +267,7 @@ module Puppet
                     value
                 end
             end
-            
+
             defaultto 300
         end
 
@@ -276,7 +276,7 @@ module Puppet
                 refresh mechanism for when a dependent object is changed.  It only
                 makes sense to use this option when this command depends on some
                 other object; it is useful for triggering an action::
-                    
+
                     # Pull down the main aliases file
                     file { \&quot;/etc/aliases\&quot;:
                         source =&gt; \&quot;puppet://server/module/aliases\&quot;
@@ -288,7 +288,7 @@ module Puppet
                         subscribe =&gt; File[\&quot;/etc/aliases\&quot;],
                         refreshonly =&gt; true
                     }
-                
+
                 Note that only ``subscribe`` and ``notify`` can trigger actions, not ``require``,
                 so it only makes sense to use ``refreshonly`` with ``subscribe`` or ``notify``.&quot;
 
@@ -306,7 +306,7 @@ module Puppet
             end
         end
 
-        newcheck(:creates) do 
+        newcheck(:creates) do
             desc &quot;A file that this command creates.  If this
                 parameter is provided, then the command will only be run
                 if the specified file does not exist::
@@ -316,10 +316,10 @@ module Puppet
                         creates =&gt; \&quot;/var/tmp/myfile\&quot;,
                         path =&gt; [\&quot;/usr/bin\&quot;, \&quot;/usr/sbin\&quot;]
                     }
-                
+
                 &quot;
 
-            # FIXME if they try to set this and fail, then we should probably 
+            # FIXME if they try to set this and fail, then we should probably
             # fail the entire exec, right?
             validate do |files|
                 files = [files] unless files.is_a? Array
@@ -343,7 +343,7 @@ module Puppet
         newcheck(:unless) do
             desc &quot;If this parameter is set, then this ``exec`` will run unless
                 the command returns 0.  For example::
-                    
+
                     exec { \&quot;/bin/echo root &gt;&gt; /usr/lib/cron/cron.allow\&quot;:
                         path =&gt; \&quot;/usr/bin:/usr/sbin:/bin\&quot;,
                         unless =&gt; \&quot;grep root /usr/lib/cron/cron.allow 2&gt;/dev/null\&quot;
@@ -380,7 +380,7 @@ module Puppet
         newcheck(:onlyif) do
             desc &quot;If this parameter is set, then this ``exec`` will only run if
                 the command returns 0.  For example::
-                    
+
                     exec { \&quot;logrotate\&quot;:
                         path =&gt; \&quot;/usr/bin:/usr/sbin:/bin\&quot;,
                         onlyif =&gt; \&quot;test `du /var/log/messages | cut -f1` -gt 100000\&quot;</diff>
      <filename>lib/puppet/type/exec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ module Puppet
             retrieving entire files from remote servers.  As Puppet matures, it
             expected that the ``file`` resource will be used less and less to
             manage content, and instead native resources will be used to do so.
-            
+
             If you find that you are often copying files in from a central
             location, rather than using native resources, please contact
             Reductive Labs and we can hopefully work with you to develop a
@@ -33,7 +33,7 @@ module Puppet
                 end
             end
 
-            # convert the current path in an index into the collection and the last 
+            # convert the current path in an index into the collection and the last
             # path name. The aim is to use less storage for all common paths in a hierarchy
             munge do |value|
                 path, name = File.split(value)
@@ -58,11 +58,11 @@ module Puppet
                 the same directory with that value as the extension of the
                 backup. Setting ``backup =&gt; false`` disables all backups of the
                 file in question.
-                
+
                 Puppet automatically creates a local filebucket named ``puppet`` and
                 defaults to backing up there.  To use a server-based filebucket,
                 you must specify one in your configuration::
-                    
+
                     filebucket { main:
                         server =&gt; puppet
                     }
@@ -88,7 +88,7 @@ module Puppet
                 &quot;
 
             defaultto { &quot;puppet&quot; }
-            
+
             munge do |value|
                 # I don't really know how this is happening.
                 value = value.shift if value.is_a?(Array)
@@ -228,7 +228,7 @@ module Puppet
                 this will destroy data.  Only use this option for generated
                 files unless you really know what you are doing.  This option only
                 makes sense when recursively managing directories.
-                
+
                 Note that when using ``purge`` with ``source``, Puppet will purge any files
                 that are not on the remote system.&quot;
 
@@ -249,7 +249,7 @@ module Puppet
 
             newvalues(:first, :all)
         end
-        
+
         attr_accessor :bucket
 
         # Autorequire any parent directories.
@@ -277,7 +277,7 @@ module Puppet
                 end
             end
         end
-        
+
         CREATORS = [:content, :source, :target]
 
         validate do
@@ -300,7 +300,7 @@ module Puppet
                 self.warning &quot;Possible error: recurselimit is set but not recurse, no recursion will happen&quot;
             end
         end
-        
+
         def self.[](path)
             return nil unless path
             super(path.gsub(/\/+/, '/').sub(/\/$/, ''))
@@ -381,7 +381,7 @@ module Puppet
             end
             super
         end
-        
+
         # Create any children via recursion or whatever.
         def eval_generate
             return [] unless self.recurse?
@@ -499,7 +499,7 @@ module Puppet
                 return false
             end
         end
-        
+
         def initialize(hash)
             # Used for caching clients
             @clients = {}
@@ -508,7 +508,7 @@ module Puppet
 
             # Get rid of any duplicate slashes, and remove any trailing slashes.
             @title = @title.gsub(/\/+/, &quot;/&quot;)
-            
+
             @title.sub!(/\/$/, &quot;&quot;) unless @title == &quot;/&quot;
 
             @stat = nil
@@ -521,7 +521,7 @@ module Puppet
                 child[:ensure] = :absent
             end
         end
-        
+
         # Create a new file or directory object as a child to the current
         # object.
         def newchild(path)
@@ -567,7 +567,7 @@ module Puppet
                 return [self.ref]
             end
         end
-        
+
         # Should we be purging?
         def purge?
             @parameters.include?(:purge) and (self[:purge] == :true or self[:purge] == &quot;true&quot;)
@@ -715,7 +715,7 @@ module Puppet
             self.fail &quot;Could not back up; will not replace&quot; unless handlebackup
 
             unless should.to_s == &quot;link&quot;
-                return if s.ftype.to_s == should.to_s 
+                return if s.ftype.to_s == should.to_s
             end
 
             case s.ftype</diff>
      <filename>lib/puppet/type/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,11 +12,11 @@ Puppet::Type.type(:file).newproperty(:checksum) do
         specify that a file's checksum should be monitored and then subscribe to
         the file from another object and receive events to signify
         checksum changes, for instance.
-        
+
         There are a number of checksum types available including MD5 hashing (and
-        an md5lite variation that only hashes the first 500 characters of the 
+        an md5lite variation that only hashes the first 500 characters of the
         file.
-   
+
         The default checksum parameter, if checksums are enabled, is md5.&quot;
 
     @event = :file_changed
@@ -74,7 +74,7 @@ Puppet::Type.type(:file).newproperty(:checksum) do
         type = :mtime if type == :timestamp
         type = :ctime if type == :time
 
-        unless state = @resource.cached(:checksums) 
+        unless state = @resource.cached(:checksums)
             self.debug &quot;Initializing checksum hash&quot;
             state = {}
             @resource.cache(:checksums, state)
@@ -174,7 +174,7 @@ Puppet::Type.type(:file).newproperty(:checksum) do
             # not existing yet
             return nil unless @resource.property(:source)
         end
-        
+
         # If the sums are different, then return an event.
         if self.updatesum(currentvalue)
             return :file_changed
@@ -193,7 +193,7 @@ Puppet::Type.type(:file).newproperty(:checksum) do
             return true
         end
     end
-    
+
     # Even though they can specify multiple checksums, the insync?
     # mechanism can really only test against one, so we'll just retrieve
     # the first specified sum type.
@@ -220,7 +220,7 @@ Puppet::Type.type(:file).newproperty(:checksum) do
         # out of sync.  We don't want to generate an event the first
         # time we get a sum.
         self.updatesum(currentvalue) unless cache(checktype())
-        
+
         # @resource.debug &quot;checksum state is %s&quot; % self.is
         return currentvalue
     end</diff>
      <filename>lib/puppet/type/file/checksum.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ module Puppet
                         content =&gt; $str
                     }
                 }
-            
+
             This attribute is especially useful when used with
             `PuppetTemplating templating`:trac:.&quot;
 
@@ -64,7 +64,7 @@ module Puppet
             end
             return nil
         end
-        
+
         def content
             self.should || (s = resource.parameter(:source) and s.content)
         end
@@ -120,7 +120,7 @@ module Puppet
         # Just write our content out to disk.
         def sync
             return_event = @resource.stat ? :file_changed : :file_created
-            
+
             # We're safe not testing for the 'source' if there's no 'should'
             # because we wouldn't have gotten this far if there weren't at least
             # one valid value somewhere.</diff>
      <filename>lib/puppet/type/file/content.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,14 +9,14 @@ module Puppet
 
             Anything other than those values will be considered to be a symlink.
             For instance, the following text creates a link::
-                
+
                 # Useful on solaris
                 file { \&quot;/etc/inetd.conf\&quot;:
                     ensure =&gt; \&quot;/etc/inet/inetd.conf\&quot;
                 }
-            
+
             You can make relative links::
-                
+
                 # Useful on solaris
                 file { \&quot;/etc/inetd.conf\&quot;:
                     ensure =&gt; \&quot;inet/inetd.conf\&quot;</diff>
      <filename>lib/puppet/type/file/ensure.rb</filename>
    </modified>
    <modified>
      <diff>@@ -89,13 +89,13 @@ module Puppet
                     end
                 end
             end
-            
+
             unless stat = @resource.stat(false)
                 return :absent
             end
 
             currentvalue = stat.uid
-            
+
             # On OS X, files that are owned by -2 get returned as really
             # large UIDs instead of negative ones.  This isn't a Ruby bug,
             # it's an OS X bug, since it shows up in perl, too.</diff>
      <filename>lib/puppet/type/file/owner.rb</filename>
    </modified>
    <modified>
      <diff>@@ -33,15 +33,15 @@ module Puppet
             will use the local filesystem.  This makes it easy to use the same
             configuration in both local and centralized forms.
 
-            Currently, only the ``puppet`` scheme is supported for source 
-            URL's. Puppet will connect to the file server running on 
-            ``server`` to retrieve the contents of the file. If the 
-            ``server`` part is empty, the behavior of the command-line 
+            Currently, only the ``puppet`` scheme is supported for source
+            URL's. Puppet will connect to the file server running on
+            ``server`` to retrieve the contents of the file. If the
+            ``server`` part is empty, the behavior of the command-line
             interpreter (``puppet``) and the client demon (``puppetd``) differs
             slightly: ``puppet`` will look such a file up on the module path
-            on the local host, whereas ``puppetd`` will connect to the 
+            on the local host, whereas ``puppetd`` will connect to the
             puppet server that it received the manifest from.
-     
+
             See the `FileServingConfiguration fileserver configuration documentation`:trac: for information on how to configure
             and use file services within Puppet.
 
@@ -56,9 +56,9 @@ module Puppet
                         \&quot;/nfs/files/file\&quot;
                     ]
                 }
-            
+
             This will use the first found file as the source.
-            
+
             You cannot currently copy links using this mechanism; set ``links``
             to ``follow`` if any remote sources are links.
             &quot;
@@ -77,12 +77,12 @@ module Puppet
                 end
             end
         end
-            
+
         munge do |sources|
             sources = [sources] unless sources.is_a?(Array)
             sources.collect { |source| source.sub(/\/$/, '') }
         end
-        
+
         def change_to_s(currentvalue, newvalue)
             # newvalue = &quot;{md5}&quot; + @metadata.checksum
             if @resource.property(:ensure).retrieve == :absent
@@ -91,7 +91,7 @@ module Puppet
                 return &quot;replacing from source %s with contents %s&quot; % [metadata.source, metadata.checksum]
             end
         end
-        
+
         def checksum
             if metadata
                 metadata.checksum
@@ -167,7 +167,7 @@ module Puppet
 
             checks = (pinparams + [:ensure])
             checks.delete(:checksum)
-            
+
             resource[:check] = checks
             resource[:checksum] = :md5 unless resource.property(:checksum)
         end</diff>
      <filename>lib/puppet/type/file/source.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,7 +55,7 @@ module Puppet
             if [:nochange, :notlink].include?(self.should) or @resource.recurse?
                 return true
             elsif ! @resource.replace? and File.exists?(@resource[:path])
-                return true 
+                return true
             else
                 return super(currentvalue)
             end</diff>
      <filename>lib/puppet/type/file/target.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ module Puppet
         #munge do |value|
         #    raise Puppet::Error, &quot;:type is read-only&quot;
         #end
-        
+
         def retrieve
             currentvalue = :absent
             if stat = @resource.stat(false)</diff>
      <filename>lib/puppet/type/file/type.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,16 +9,16 @@ module Puppet
             can later be used to retrieve the file if restoration becomes
             necessary.  A filebucket does not do any work itself; instead,
             it can be specified as the value of *backup* in a **file** object.
-            
+
             Currently, filebuckets are only useful for manual retrieval of
             accidentally removed files (e.g., you look in the log for the md5
             sum and retrieve the file with that sum from the filebucket), but
             when transactions are fully supported filebuckets will be used to
             undo transactions.
-            
+
             You will normally want to define a single filebucket for your
             whole network and then use that as the default backup location::
-            
+
                 # Define the bucket
                 filebucket { main: server =&gt; puppet }
 
@@ -74,7 +74,7 @@ module Puppet
         def mkbucket
             if self[:server]
                 begin
-                    @bucket = Puppet::Network::Client.client(:Dipper).new( 
+                    @bucket = Puppet::Network::Client.client(:Dipper).new(
                         :Server =&gt; self[:server],
                         :Port =&gt; self[:port]
                     )</diff>
      <filename>lib/puppet/type/filebucket.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,13 +5,13 @@ require 'facter'
 module Puppet
     newtype(:group) do
         @doc = &quot;Manage groups. On most platforms this can only create groups.
-            Group membership must be managed on individual users.  
-            
+            Group membership must be managed on individual users.
+
             On some platforms such as OS X, group membership is managed as an
-            attribute of the group, not the user record. Providers must have 
+            attribute of the group, not the user record. Providers must have
             the feature 'manages_members' to manage the 'members' property of
             a group record.&quot;
-        
+
         feature :manages_members,
             &quot;For directories where membership is an attribute of groups not users.&quot;
 
@@ -67,18 +67,18 @@ module Puppet
                 return gid
             end
         end
-        
+
         newproperty(:members, :array_matching =&gt; :all, :required_features =&gt; :manages_members) do
             desc &quot;The members of the group. For directory services where group
             membership is stored in the group objects, not the users.&quot;
-            
+
             def change_to_s(currentvalue, newvalue)
                 currentvalue = currentvalue.join(&quot;,&quot;) if currentvalue != :absent
                 newvalue = newvalue.join(&quot;,&quot;)
                 super(currentvalue, newvalue)
             end
         end
-        
+
         newparam(:auth_membership) do
             desc &quot;whether the provider is authoritative for group membership.&quot;
             defaultto true
@@ -95,7 +95,7 @@ module Puppet
         newparam(:allowdupe, :boolean =&gt; true) do
             desc &quot;Whether to allow duplicate GIDs.  This option does not work on
                 FreeBSD (contract to the ``pw`` man page).&quot;
-                
+
             newvalues(:true, :false)
 
             defaultto false</diff>
      <filename>lib/puppet/type/group.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ module Puppet
 
         validate do |value|
            unless value =~ /((([0-9a-fA-F]+:){7}[0-9a-fA-F]+)|(([0-9a-fA-F]+:)*[0-9a-fA-F]+)?::(([0-9a-fA-F]+:)*[0-9a-fA-F]+)?)|((25[0-5]|2[0-4][\d]|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})/
-             raise Puppet::Error, &quot;Invalid IP address&quot;            
+             raise Puppet::Error, &quot;Invalid IP address&quot;
            end
         end
 
@@ -23,7 +23,7 @@ module Puppet
            def insync?(is)
                 is == @should
             end
-            
+
             def is_to_s(currentvalue = @is)
                 currentvalue = [currentvalue] unless currentvalue.is_a? Array
                 currentvalue.join(&quot; &quot;)
@@ -87,13 +87,13 @@ module Puppet
             isnamevar
 
             validate do |value|
-               # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
-               x = value.split('.').each do |hostpart| 
+               # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
+               x = value.split('.').each do |hostpart|
                   unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/
                      raise Puppet::Error, &quot;Invalid host name&quot;
                   end
                end
-            end 
+            end
         end
 
         @doc = &quot;Installs and manages host entries.  For most systems, these</diff>
      <filename>lib/puppet/type/host.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
 # Plug-in type for handling k5login files
 
 Puppet::Type.newtype(:k5login) do
-    @doc = &quot;Manage the .k5login file for a user.  Specify the full path to 
+    @doc = &quot;Manage the .k5login file for a user.  Specify the full path to
         the .k5login file as the name and an array of principals as the
         property principals.&quot;
 
@@ -33,7 +33,7 @@ Puppet::Type.newtype(:k5login) do
     end
 
     provide(:k5login) do
-        desc &quot;The k5login provider is the only provider for the k5login 
+        desc &quot;The k5login provider is the only provider for the k5login
             type.&quot;
 
         # Does this file exist?</diff>
      <filename>lib/puppet/type/k5login.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,15 @@
 Puppet::Type.newtype(:macauthorization) do
-    
+
     @doc = &quot;Manage the Mac OS X authorization database.
             See:
             http://developer.apple.com/documentation/Security/Conceptual/Security_Overview/Security_Services/chapter_4_section_5.html for more information.&quot;
-    
+
     ensurable
-    
+
     autorequire(:file) do
         [&quot;/etc/authorization&quot;]
     end
-    
+
     def munge_boolean(value)
         case value
         when true, &quot;true&quot;, :true
@@ -20,122 +20,122 @@ Puppet::Type.newtype(:macauthorization) do
             raise Puppet::Error(&quot;munge_boolean only takes booleans&quot;)
         end
     end
-    
+
     newparam(:name) do
         desc &quot;The name of the right or rule to be managed.
-        Corresponds to 'key' in Authorization Services. The key is the name 
-        of a rule. A key uses the same naming conventions as a right. The 
-        Security Server uses a rule&#8217;s key to match the rule with a right. 
-        Wildcard keys end with a &#8216;.&#8217;. The generic rule has an empty key value. 
+        Corresponds to 'key' in Authorization Services. The key is the name
+        of a rule. A key uses the same naming conventions as a right. The
+        Security Server uses a rule&#8217;s key to match the rule with a right.
+        Wildcard keys end with a &#8216;.&#8217;. The generic rule has an empty key value.
         Any rights that do not match a specific rule use the generic rule.&quot;
 
         isnamevar
     end
-    
+
     newproperty(:auth_type) do
-        desc &quot;type - can be a 'right' or a 'rule'. 'comment' has not yet been 
+        desc &quot;type - can be a 'right' or a 'rule'. 'comment' has not yet been
         implemented.&quot;
-        
+
         newvalue(:right)
         newvalue(:rule)
         # newvalue(:comment)  # not yet implemented.
     end
-    
+
     newproperty(:allow_root, :boolean =&gt; true) do
-        desc &quot;Corresponds to 'allow-root' in the authorization store, renamed 
-        due to hyphens being problematic. Specifies whether a right should be 
-        allowed automatically if the requesting process is running with 
-        uid == 0.  AuthorizationServices defaults this attribute to false if 
+        desc &quot;Corresponds to 'allow-root' in the authorization store, renamed
+        due to hyphens being problematic. Specifies whether a right should be
+        allowed automatically if the requesting process is running with
+        uid == 0.  AuthorizationServices defaults this attribute to false if
         not specified&quot;
-        
+
         newvalue(:true)
         newvalue(:false)
-        
+
         munge do |value|
             @resource.munge_boolean(value)
         end
     end
-    
+
     newproperty(:authenticate_user, :boolean =&gt; true) do
-        desc &quot;Corresponds to 'authenticate-user' in the authorization store, 
+        desc &quot;Corresponds to 'authenticate-user' in the authorization store,
         renamed due to hyphens being problematic.&quot;
-        
+
         newvalue(:true)
         newvalue(:false)
-        
+
         munge do |value|
             @resource.munge_boolean(value)
         end
     end
 
     newproperty(:auth_class) do
-        desc &quot;Corresponds to 'class' in the authorization store, renamed due 
+        desc &quot;Corresponds to 'class' in the authorization store, renamed due
         to 'class' being a reserved word.&quot;
-        
+
         newvalue(:user)
         newvalue(:'evaluate-mechanisms')
     end
-    
+
     newproperty(:comment) do
         desc &quot;The 'comment' attribute for authorization resources.&quot;
     end
-    
+
     newproperty(:group) do
-        desc &quot;The user must authenticate as a member of this group. This 
+        desc &quot;The user must authenticate as a member of this group. This
         attribute can be set to any one group.&quot;
     end
-    
+
     newproperty(:k_of_n) do
-        desc &quot;k-of-n. Built-in rights only show a value of '1' or absent, 
+        desc &quot;k-of-n. Built-in rights only show a value of '1' or absent,
         other values may be acceptable. Undocumented.&quot;
     end
-    
+
     newproperty(:mechanisms, :array_matching =&gt; :all) do
         desc &quot;an array of suitable mechanisms.&quot;
     end
-    
+
     newproperty(:rule, :array_match =&gt; :all) do
         desc &quot;The rule(s) that this right refers to.&quot;
     end
 
     newproperty(:session_owner, :boolean =&gt; true) do
-        desc &quot;Corresponds to 'session-owner' in the authorization store, 
-        renamed due to hyphens being problematic.  Whether the session owner 
+        desc &quot;Corresponds to 'session-owner' in the authorization store,
+        renamed due to hyphens being problematic.  Whether the session owner
         automatically matches this rule or right.&quot;
-        
+
         newvalue(:true)
         newvalue(:false)
-        
+
         munge do |value|
             @resource.munge_boolean(value)
         end
     end
-    
+
     newproperty(:shared, :boolean =&gt; true) do
         desc &quot;If this is set to true, then the Security Server marks the
-        credentials used to gain this right as shared. The Security Server 
-        may use any shared credentials to authorize this right. For maximum 
-        security, set sharing to false so credentials stored by the Security 
+        credentials used to gain this right as shared. The Security Server
+        may use any shared credentials to authorize this right. For maximum
+        security, set sharing to false so credentials stored by the Security
         Server for one application may not be used by another application.&quot;
-        
+
         newvalue(:true)
         newvalue(:false)
-        
+
         munge do |value|
             @resource.munge_boolean(value)
         end
     end
-    
+
     newproperty(:timeout) do
-        desc &quot;The credential used by this rule expires in the specified 
-        number of seconds. For maximum security where the user must 
-        authenticate every time, set the timeout to 0. For minimum security, 
-        remove the timeout attribute so the user authenticates only once per 
+        desc &quot;The credential used by this rule expires in the specified
+        number of seconds. For maximum security where the user must
+        authenticate every time, set the timeout to 0. For minimum security,
+        remove the timeout attribute so the user authenticates only once per
         session.&quot;
     end
-    
+
     newproperty(:tries) do
         desc &quot;The number of tries allowed.&quot;
     end
-    
+
 end</diff>
      <filename>lib/puppet/type/macauthorization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 module Puppet
     newtype(:mailalias) do
         @doc = &quot;Creates an email alias in the local alias database.&quot;
-        
+
         ensurable
 
         newparam(:name, :namevar =&gt; true) do</diff>
      <filename>lib/puppet/type/mailalias.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ module Puppet
     newtype(:maillist) do
         @doc = &quot;Manage email lists.  This resource type currently can only create
             and remove lists, it cannot reconfigure them.&quot;
-        
+
         ensurable do
             defaultvalues
 </diff>
      <filename>lib/puppet/type/maillist.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@
 # Copyright (C) 2008 Jeffrey J McCune.
 
 # This program and entire repository is free software; you can
-# redistribute it and/or modify it under the terms of the GNU 
-# General Public License as published by the Free Software 
+# redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software
 # Foundation; either version 2 of the License, or any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -61,7 +61,7 @@ to other machines.
         default naming convention is followed.&quot;
         isnamevar
     end
-    
+
     newparam(:ds_type) do
 
         desc &quot;The DirectoryService type this MCX setting attaches to.&quot;</diff>
      <filename>lib/puppet/type/mcx.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ module Puppet
     # We want the mount to refresh when it changes.
     newtype(:mount, :self_refresh =&gt; true) do
         @doc = &quot;Manages mounted filesystems, including putting mount
-            information into the mount table. The actual behavior depends 
+            information into the mount table. The actual behavior depends
             on the value of the 'ensure' parameter.
 
             Note that if a ``mount`` receives an event from another resource,
@@ -10,7 +10,7 @@ module Puppet
 
         feature :refreshable, &quot;The provider can remount the filesystem.&quot;,
             :methods =&gt; [:remount]
-        
+
         # Use the normal parent class, because we actually want to
         # call code when sync() is called.
         newproperty(:ensure) do
@@ -44,7 +44,7 @@ module Puppet
             newvalue(:mounted, :event =&gt; :mount_mounted) do
                 # Create the mount point if it does not already exist.
                 current_value = self.retrieve
-                provider.create if current_value.nil? or current_value == :absent 
+                provider.create if current_value.nil? or current_value == :absent
 
                 syncothers()
 
@@ -54,7 +54,7 @@ module Puppet
 
             def retrieve
                 # We need to special case :mounted; if we're absent, we still
-                # want 
+                # want
                 curval = super()
                 if curval == :absent
                     return curval
@@ -179,12 +179,12 @@ module Puppet
                 super
             end
         end
-        
+
         newparam(:remounts) do
             desc &quot;Whether the mount can be remounted  ``mount -o remount``.  If
                 this is false, then the filesystem will be unmounted and remounted
                 manually, which is prone to failure.&quot;
-            
+
             newvalues(:true, :false)
             defaultto do
                 case Facter.value(:operatingsystem)</diff>
      <filename>lib/puppet/type/mount.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ module Puppet
                 case @resource[&quot;withpath&quot;]
                 when :true
                     send(@resource[:loglevel], self.should)
-                else  
+                else
                     Puppet.send(@resource[:loglevel], self.should)
                 end
                 return
@@ -29,11 +29,11 @@ module Puppet
             defaultto { @resource[:name] }
         end
 
-        newparam(:withpath) do 
+        newparam(:withpath) do
             desc &quot;Whether to not to show the full object path.&quot;
             defaultto :false
 
-            newvalues(:true, :false) 
+            newvalues(:true, :false)
         end
 
         newparam(:name) do</diff>
      <filename>lib/puppet/type/notify.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,7 +55,7 @@ module Puppet
             newvalue(:absent, :event =&gt; :package_removed) do
                 provider.uninstall
             end
-            
+
             newvalue(:purged, :event =&gt; :package_purged, :required_features =&gt; :purgeable) do
                 provider.purge
             end
@@ -115,7 +115,7 @@ module Puppet
                     when :latest
                         # Short-circuit packages that are not present
                         return false if is == :absent or is == :purged
- 
+
                         # Don't run 'latest' more than about every 5 minutes
                         if @latest and ((Time.now.to_i - @lateststamp) / 60) &lt; 5
                             #self.debug &quot;Skipping latest check&quot;
@@ -202,7 +202,7 @@ module Puppet
                     alias =&gt; openssh,
                     require =&gt; Package[openssl]
                 }
-            
+
             &quot;
             isnamevar
         end</diff>
      <filename>lib/puppet/type/package.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,27 +8,27 @@ Puppet::Type.newtype(:resources) do
         metaparams specified here will be passed on to any generated resources,
         so you can purge umanaged resources but set ``noop`` to true so the
         purging is only logged and does not actually happen.&quot;
-    
-    
+
+
     newparam(:name) do
         desc &quot;The name of the type to be managed.&quot;
-        
+
         validate do |name|
             unless Puppet::Type.type(name)
                 raise ArgumentError, &quot;Could not find resource type '%s'&quot; % name
             end
         end
-        
+
         munge { |v| v.to_s }
     end
-    
+
     newparam(:purge, :boolean =&gt; true) do
         desc &quot;Purge unmanaged resources.  This will delete any resource
             that is not specified in your configuration
             and is not required by any specified resources.&quot;
-            
+
         newvalues(:true, :false)
-        
+
         validate do |value|
             if [:true, true, &quot;true&quot;].include?(value)
                 unless @resource.resource_type.respond_to?(:instances)
@@ -40,14 +40,14 @@ Puppet::Type.newtype(:resources) do
             end
         end
     end
-    
+
     newparam(:unless_system_user) do
         desc &quot;This keeps system users from being purged.  By default, it
             does not purge users whose UIDs are less than or equal to 500, but you can specify
             a different UID as the inclusive limit.&quot;
-        
+
         newvalues(:true, :false, /^\d+$/)
-        
+
         munge do |value|
             case value
             when /^\d+/
@@ -61,7 +61,7 @@ Puppet::Type.newtype(:resources) do
                 raise ArgumentError, &quot;Invalid value %s&quot; % value.inspect
             end
         end
-        
+
         defaultto {
             if @resource[:name] == &quot;user&quot;
                 500
@@ -70,7 +70,7 @@ Puppet::Type.newtype(:resources) do
             end
         }
     end
-    
+
     def check(resource)
         unless defined? @checkmethod
             @checkmethod = &quot;%s_check&quot; % self[:name]
@@ -84,13 +84,13 @@ Puppet::Type.newtype(:resources) do
             return true
         end
     end
-    
+
     # Generate any new resources we need to manage.  This is pretty hackish
     # right now, because it only supports purging.
     def generate
         return [] unless self.purge?
         hascheck = false
-        method = 
+        method =
         resource_type.instances.find_all do |resource|
             ! resource.managed?
         end.find_all do |resource|
@@ -113,7 +113,7 @@ Puppet::Type.newtype(:resources) do
             resource.purging
         end
     end
-    
+
     def resource_type
         unless defined? @resource_type
             unless type = Puppet::Type.type(self[:name])
@@ -123,16 +123,16 @@ Puppet::Type.newtype(:resources) do
         end
         @resource_type
     end
-    
+
     # Make sure we don't purge users below a certain uid, if the check
     # is enabled.
     def user_check(resource)
         return true unless self[:name] == &quot;user&quot;
         return true unless self[:unless_system_user]
-        
+
         resource[:check] = :uid
         current_values = resource.retrieve
-        
+
         if system_users().include?(resource[:name])
             return false
         end</diff>
      <filename>lib/puppet/type/resources.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ module Puppet
             about how schedules are currently implemented in Puppet is that they
             can only be used to stop a resource from being applied, they never
             guarantee that it is applied.
-            
+
             Every time Puppet applies its configuration, it will collect the
             list of resources whose schedule does not eliminate them from
             running right then, but there is currently no system in place to
@@ -12,12 +12,12 @@ module Puppet
             specify a very  restrictive schedule and Puppet happens to run at a
             time within that schedule, then the resources will get applied;
             otherwise, that work may never get done.
-            
+
             Thus, it behooves you to use wider scheduling (e.g., over a couple of
             hours) combined with periods and repetitions.  For instance, if you
             wanted to restrict certain resources to only running once, between
             the hours of two and 4 AM, then you would use this schedule::
-                
+
                 schedule { maint:
                     range =&gt; \&quot;2 - 4\&quot;,
                     period =&gt; daily,
@@ -29,7 +29,7 @@ module Puppet
             get applied again between 2 and 4 because they will have already
             run once that day, and they won't get applied outside that schedule
             because they will be outside the scheduled range.
-            
+
             Puppet automatically creates a schedule for each valid period with the
             same name as that period (e.g., hourly and daily).  Additionally,
             a schedule named *puppet* is created and used as the default,
@@ -46,7 +46,7 @@ module Puppet
         newparam(:name) do
             desc &quot;The name of the schedule.  This name is used to retrieve the
                 schedule when assigning it to an object::
-                    
+
                     schedule { daily:
                         period =&gt; daily,
                         range =&gt; [2, 4]
@@ -55,7 +55,7 @@ module Puppet
                     exec { \&quot;/usr/bin/apt-get update\&quot;:
                         schedule =&gt; daily
                     }
-                
+
                 &quot;
             isnamevar
         end
@@ -70,7 +70,7 @@ module Puppet
                     schedule { maintenance:
                         range =&gt; \&quot;1:30 - 4:30\&quot;
                     }
-                
+
                 This is mostly useful for restricting certain resources to being
                 applied in maintenance windows or during off-peak hours.&quot;
 
@@ -169,7 +169,7 @@ module Puppet
                         ary = limits[1].to_a
                         ary[3] += 1
                         limits[1] = Time.local(*ary)
-                            
+
                         #self.devfail(&quot;Lower limit is above higher limit: %s&quot; %
                         #    limits.inspect
                         #)
@@ -224,7 +224,7 @@ module Puppet
                 internal factors might prevent it from actually running that
                 often (e.g., long-running Puppet runs will squash conflictingly
                 scheduled runs).
-                
+
                 See the ``periodmatch`` attribute for tuning whether to match
                 times by their distance apart or by their specific value.&quot;
 </diff>
      <filename>lib/puppet/type/schedule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,7 +48,7 @@ Puppet::Type.newtype(:selmodule) do
             [self[:selmodulepath]]
         else
             [&quot;#{self[:selmoduledir]}/#{self[:name]}.pp&quot;]
-        end       
+        end
     end
 end
 </diff>
      <filename>lib/puppet/type/selmodule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,10 +21,10 @@ module Puppet
             the service will get restarted. The actual command to restart the
             service depends on the platform. You can provide a special command
             for restarting with the ``restart`` attribute.&quot;
-        
+
         feature :refreshable, &quot;The provider can restart the service.&quot;,
             :methods =&gt; [:restart]
-        
+
         feature :enableable, &quot;The provider can enable and disable the service&quot;,
             :methods =&gt; [:disable, :enable, :enabled?]
 
@@ -95,7 +95,7 @@ module Puppet
                 manually whether the service you are running has such a
                 command (or you can specify a specific command using the
                 ``status`` parameter).
-                
+
                 If you do not specify anything, then the service name will be
                 looked for in the process table.&quot;
 
@@ -113,7 +113,7 @@ module Puppet
 
             munge do |value|
                 value = [value] unless value.is_a?(Array)
-                # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+                # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
                 # It affects stand-alone blocks, too.
                 paths = value.flatten.collect { |p| x = p.split(&quot;:&quot;) }.flatten.find_all do |path|
                     if FileTest.directory?(path)
@@ -139,10 +139,10 @@ module Puppet
                 support init scripts, and is also used for determining service
                 status on those service whose init scripts do not include a status
                 command.
-                
+
                 If this is left unspecified and is needed to check the status
                 of a service, then the service name will be used instead.
-                
+
                 The pattern can be a simple string or any legal Ruby pattern.&quot;
 
             defaultto { @resource[:binary] || @resource[:name] }</diff>
      <filename>lib/puppet/type/service.rb</filename>
    </modified>
    <modified>
      <diff>@@ -60,7 +60,7 @@ module Puppet
         end
 
         newproperty(:options, :array_matching =&gt; :all) do
-            desc &quot;Key options, see sshd(8) for possible values. Multiple values 
+            desc &quot;Key options, see sshd(8) for possible values. Multiple values
                   should be specified as an array.&quot;
 
             defaultto do :absent end</diff>
      <filename>lib/puppet/type/ssh_authorized_key.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,12 +3,12 @@ module Puppet
         @doc = &quot;Installs and manages ssh host keys.  At this point, this type
             only knows how to install keys into /etc/ssh/ssh_known_hosts, and
             it cannot manage user authorized keys yet.&quot;
-        
+
         ensurable
 
         newproperty(:type) do
             desc &quot;The encryption type used.  Probably ssh-dss or ssh-rsa.&quot;
-            
+
             newvalue(&quot;ssh-dss&quot;)
             newvalue(&quot;ssh-rsa&quot;)
             aliasvalue(:dsa, &quot;ssh-dss&quot;)</diff>
      <filename>lib/puppet/type/sshkey.rb</filename>
    </modified>
    <modified>
      <diff>@@ -68,7 +68,7 @@ Puppet::Type.newtype(:tidy) do
             the specified time.  You can choose seconds, minutes,
             hours, days, or weeks by specifying the first letter of any
             of those words (e.g., '1w').
-        
+
             Specifying 0 will remove all files.&quot;
 
         @@ageconvertors = {
@@ -91,7 +91,7 @@ Puppet::Type.newtype(:tidy) do
         def tidy?(path, stat)
             # If the file's older than we allow, we should get rid of it.
             if (Time.now.to_i - stat.send(resource[:type]).to_i) &gt; value
-                return true 
+                return true
             else
                 return false
             end
@@ -137,7 +137,7 @@ Puppet::Type.newtype(:tidy) do
                 self.fail &quot;Invalid size unit '%s'&quot; % unit
             end
         end
-        
+
         def tidy?(path, stat)
             if stat.size &gt; value
                 return true
@@ -145,7 +145,7 @@ Puppet::Type.newtype(:tidy) do
                 return false
             end
         end
-        
+
         munge do |size|
             case size
             when /^([0-9]+)(\w)\w*$/
@@ -164,7 +164,7 @@ Puppet::Type.newtype(:tidy) do
 
     newparam(:type) do
         desc &quot;Set the mechanism for determining age.&quot;
-        
+
         newvalues(:atime, :mtime, :ctime)
 
         defaultto :atime
@@ -200,7 +200,7 @@ Puppet::Type.newtype(:tidy) do
 
         newvalues :true, :false
     end
-    
+
     # Erase PFile's validate method
     validate do
     end
@@ -219,7 +219,7 @@ Puppet::Type.newtype(:tidy) do
             self[:backup] = false
         end
     end
-    
+
     # Make a file resource to remove a given file.
     def mkfile(path)
         # Force deletion, so directories actually get deleted.
@@ -228,13 +228,13 @@ Puppet::Type.newtype(:tidy) do
 
     def retrieve
         # Our ensure property knows how to retrieve everything for us.
-        if obj = @parameters[:ensure] 
+        if obj = @parameters[:ensure]
             return obj.retrieve
         else
             return {}
         end
     end
-    
+
     # Hack things a bit so we only ever check the ensure property.
     def properties
         []
@@ -267,7 +267,7 @@ Puppet::Type.newtype(:tidy) do
         files_by_name.keys.sort { |a,b| b &lt;=&gt; b }.each do |path|
             dir = File.dirname(path)
             next unless resource = files_by_name[dir]
-            if resource[:require] 
+            if resource[:require]
                 resource[:require] &lt;&lt; Puppet::Resource::Reference.new(:file, path)
             else
                 resource[:require] = [Puppet::Resource::Reference.new(:file, path)]</diff>
      <filename>lib/puppet/type/tidy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ module Puppet
         @doc = &quot;Manage users.  This type is mostly built to manage system
             users, so it is lacking some features useful for managing normal
             users.
-            
+
             This resource type uses the prescribed native tools for creating
             groups and generally uses POSIX APIs for retrieving information
             about them.  It does not directly modify /etc/passwd or anything.&quot;</diff>
      <filename>lib/puppet/type/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ module Puppet
         def retrieve
             return resource.section[inikey]
         end
-        
+
         def inikey
             name.to_s
         end
@@ -56,7 +56,7 @@ module Puppet
                 the files indicated by reposdir in that file (see yum.conf(5)
                 for details)
 
-                Most parameters are identical to the ones documented 
+                Most parameters are identical to the ones documented
                 in yum.conf(5)
 
                 Continuation lines that yum supports for example for the
@@ -74,7 +74,7 @@ module Puppet
         self.filetype = Puppet::Util::FileType.filetype(:flat)
 
         @inifile = nil
-        
+
         @yumconf = &quot;/etc/yum.conf&quot;
 
         # Where to put files for brand new sections
@@ -107,9 +107,9 @@ module Puppet
                 @inifile = read()
                 main = @inifile['main']
                 if main.nil?
-                    raise Puppet::Error, &quot;File #{yumconf} does not contain a main section&quot; 
+                    raise Puppet::Error, &quot;File #{yumconf} does not contain a main section&quot;
                 end
-                reposdir = main['reposdir'] 
+                reposdir = main['reposdir']
                 reposdir ||= &quot;/etc/yum.repos.d, /etc/yum/repos.d&quot;
                 reposdir.gsub!(/[\n,]/, &quot; &quot;)
                 reposdir.split.each do |dir|
@@ -137,7 +137,7 @@ module Puppet
             result.read(yumconf)
             main = result['main']
             if main.nil?
-                raise Puppet::Error, &quot;File #{yumconf} does not contain a main section&quot; 
+                raise Puppet::Error, &quot;File #{yumconf} does not contain a main section&quot;
             end
             reposdir = main['reposdir']
             reposdir ||= &quot;/etc/yum.repos.d, /etc/yum/repos.d&quot;
@@ -231,13 +231,13 @@ module Puppet
         end
 
         newproperty(:descr, :parent =&gt; Puppet::IniProperty) do
-            desc &quot;A human readable description of the repository. 
+            desc &quot;A human readable description of the repository.
                   #{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }
             newvalue(/.*/) { }
             inikey &quot;name&quot;
         end
-        
+
         newproperty(:mirrorlist, :parent =&gt; Puppet::IniProperty) do
             desc &quot;The URL that holds the list of mirrors for this repository.
                   #{ABSENT_DOC}&quot;
@@ -252,9 +252,9 @@ module Puppet
             # Should really check that it's a valid URL
             newvalue(/.*/) { }
         end
-        
+
         newproperty(:enabled, :parent =&gt; Puppet::IniProperty) do
-            desc &quot;Whether this repository is enabled or disabled. Possible 
+            desc &quot;Whether this repository is enabled or disabled. Possible
                   values are '0', and '1'.\n#{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }
             newvalue(%r{(0|1)}) { }
@@ -301,7 +301,7 @@ module Puppet
 
         newproperty(:enablegroups, :parent =&gt; Puppet::IniProperty) do
             desc &quot;Determines whether yum will allow the use of
-              package groups for this  repository. Possible 
+              package groups for this  repository. Possible
               values are '0', and '1'.\n#{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }
             newvalue(%r{(0|1)}) { }
@@ -314,14 +314,14 @@ module Puppet
         end
 
         newproperty(:keepalive, :parent =&gt; Puppet::IniProperty) do
-            desc &quot;Either '1' or '0'. This tells yum whether or not HTTP/1.1 
+            desc &quot;Either '1' or '0'. This tells yum whether or not HTTP/1.1
               keepalive  should  be  used with this repository.\n#{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }
             newvalue(%r{(0|1)}) { }
         end
 
         newproperty(:timeout, :parent =&gt; Puppet::IniProperty) do
-            desc &quot;Number of seconds to wait for a connection before timing 
+            desc &quot;Number of seconds to wait for a connection before timing
                   out.\n#{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }
             newvalue(%r{[0-9]+}) { }
@@ -335,7 +335,7 @@ module Puppet
         end
 
         newproperty(:protect, :parent =&gt; Puppet::IniProperty) do
-            desc &quot;Enable or disable protection for this repository. Requires 
+            desc &quot;Enable or disable protection for this repository. Requires
                   that the protectbase plugin is installed and enabled.
                   #{ABSENT_DOC}&quot;
             newvalue(:absent) { self.should = :absent }</diff>
      <filename>lib/puppet/type/yumrepo.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ Puppet::Type.newtype(:zone) do
     class ZoneMultiConfigProperty &lt; ZoneConfigProperty
         def configtext
             list = @should
-            
+
             current_value = self.retrieve
 
             unless current_value.is_a? Symbol
@@ -212,7 +212,7 @@ Puppet::Type.newtype(:zone) do
             end
 
             interface, address = value.split(':')
-            
+
             begin
                 IPAddr.new(address)
             rescue ArgumentError
@@ -230,7 +230,7 @@ end
 &quot;
         end
 
-        # Convert a string into the component interface and address 
+        # Convert a string into the component interface and address
         def ipsplit(str)
             interface, address = str.split(':')
             return interface, address
@@ -260,7 +260,7 @@ end
     end
 
     newproperty(:pool, :parent =&gt; ZoneConfigProperty) do
-        desc &quot;The resource pool for this zone.&quot; 
+        desc &quot;The resource pool for this zone.&quot;
 
         def configtext
             &quot;set pool=#{self.should}&quot;
@@ -307,7 +307,7 @@ end
     newparam(:sysidcfg) do
         desc %{The text to go into the sysidcfg file when the zone is first
             booted.  The best way is to use a template::
-                
+
                 # $templatedir/sysidcfg
                 system_locale=en_US
                 timezone=GMT
@@ -361,7 +361,7 @@ end
     newparam(:create_args) do
         desc &quot;Arguments to the zonecfg create command.  This can be used to create branded zones.&quot;
     end
-    
+
     newparam(:install_args) do
         desc &quot;Arguments to the zoneadm install command.  This can be used to create branded zones.&quot;
     end</diff>
      <filename>lib/puppet/type/zone.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ module Puppet
     end
 module Util
     require 'benchmark'
-    
+
     # These are all for backward compatibility -- these are methods that used
     # to be in Puppet::Util but have been moved into external modules.
     require 'puppet/util/posix'
@@ -37,8 +37,8 @@ module Util
             end
             unless Puppet::Util::SUIDManager.gid == group
                 begin
-                    Puppet::Util::SUIDManager.egid = group 
-                    Puppet::Util::SUIDManager.gid = group 
+                    Puppet::Util::SUIDManager.egid = group
+                    Puppet::Util::SUIDManager.gid = group
                 rescue =&gt; detail
                     Puppet.warning &quot;could not change to group %s: %s&quot; %
                         [group.inspect, detail]
@@ -58,8 +58,8 @@ module Util
             end
             unless Puppet::Util::SUIDManager.uid == user
                 begin
-                    Puppet::Util::SUIDManager.uid = user 
-                    Puppet::Util::SUIDManager.euid = user 
+                    Puppet::Util::SUIDManager.uid = user
+                    Puppet::Util::SUIDManager.euid = user
                 rescue
                     $stderr.puts &quot;could not change to user %s&quot; % user
                     exit(74)
@@ -255,14 +255,14 @@ module Util
         else
             Puppet.debug &quot;Executing '%s'&quot; % str
         end
-        
+
         if arguments[:uid]
             arguments[:uid] = Puppet::Util::SUIDManager.convert_xid(:uid, arguments[:uid])
         end
         if arguments[:gid]
             arguments[:gid] = Puppet::Util::SUIDManager.convert_xid(:gid, arguments[:gid])
         end
-        
+
         @@os ||= Facter.value(:operatingsystem)
         output = nil
         child_pid, child_status = nil
@@ -300,7 +300,7 @@ module Util
                 $stdout.reopen(output_file)
                 $stderr.reopen(error_file)
 
-                3.upto(256){|fd| IO::new(fd).close rescue nil} 
+                3.upto(256){|fd| IO::new(fd).close rescue nil}
                 if arguments[:gid]
                     Process.egid = arguments[:gid]
                     Process.gid = arguments[:gid] unless @@os == &quot;Darwin&quot;</diff>
      <filename>lib/puppet/util.rb</filename>
    </modified>
    <modified>
      <diff>@@ -95,7 +95,7 @@ module Puppet::Util::ClassGen
                 end
                 @name = name
             end
-        else 
+        else
             options[:parent] ||= self
             evalmethod = :class_eval
             # Create the class, with the correct name.</diff>
      <filename>lib/puppet/util/classgen.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,8 +54,8 @@ module Puppet::Util
 
         def collect_exported(client, conditions)
             raise Puppet::DevError, &quot;%s has not overridden collect_exported&quot; % self.class.name
-        end   
-          
+        end
+
     end
 end
 </diff>
      <filename>lib/puppet/util/config_store.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
 # file names.
 module Puppet::Util::ConstantInflector
     def file2constant(file)
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = file.split(&quot;/&quot;).collect { |name| name.capitalize }.join(&quot;::&quot;).gsub(/_+(.)/) { |term| $1.capitalize }
     end
 </diff>
      <filename>lib/puppet/util/constant_inflector.rb</filename>
    </modified>
    <modified>
      <diff>@@ -35,8 +35,8 @@ module Puppet::Util::Diff
 
         diffs.each do |piece|
             begin
-                hunk = ::Diff::LCS::Hunk.new(data_old, data_new, piece, 
-                                           context_lines, 
+                hunk = ::Diff::LCS::Hunk.new(data_old, data_new, piece,
+                                           context_lines,
                                            file_length_difference)
                 file_length_difference = hunk.file_length_difference
             next unless oldhunk</diff>
      <filename>lib/puppet/util/diff.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 module Puppet::Util::Execution
-    module_function 
+    module_function
 
     # Run some code with a specific environment.  Resets the environment back to
     # what it was at the end of the code.</diff>
      <filename>lib/puppet/util/execution.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ class Puppet::Util::Feature
             end
             @results[name] = result
         end
-        
+
         meta_def(method) do
             unless @results.include?(name)
                 @results[name] = test(name, options)
@@ -34,14 +34,14 @@ class Puppet::Util::Feature
             @results[name]
         end
     end
-    
+
     # Create a new feature collection.
     def initialize(path)
         @path = path
         @results = {}
         @loader = Puppet::Util::Autoload.new(self, @path)
     end
-    
+
     def load
         @loader.loadall
     end
@@ -66,12 +66,12 @@ class Puppet::Util::Feature
         result = true
         if ary = options[:libs]
             ary = [ary] unless ary.is_a?(Array)
-            
+
             ary.each do |lib|
                 unless lib.is_a?(String)
                     raise ArgumentError, &quot;Libraries must be passed as strings not %s&quot; % lib.class
                 end
-            
+
                 begin
                     require lib
                 rescue Exception</diff>
      <filename>lib/puppet/util/feature.rb</filename>
    </modified>
    <modified>
      <diff>@@ -169,7 +169,7 @@ module Puppet::Util::FileParsing
                 fields = []
                 ret = {}
                 record.fields.zip(match.captures).each do |field, value|
-                    if value == record.absent 
+                    if value == record.absent
                         ret[field] = :absent
                     else
                         ret[field] = value
@@ -223,7 +223,7 @@ module Puppet::Util::FileParsing
     # Split text into separate lines using the record separator.
     def lines(text)
         # Remove any trailing separators, and then split based on them
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         x = text.sub(/#{self.line_separator}\Q/,'').split(self.line_separator)
     end
 </diff>
      <filename>lib/puppet/util/fileparsing.rb</filename>
    </modified>
    <modified>
      <diff>@@ -111,9 +111,9 @@ class Puppet::Util::FileType
         # Overwrite the file.
         def write(text)
             require &quot;tempfile&quot;
-            tf = Tempfile.new(&quot;puppet&quot;) 
-            tf.print text; tf.flush 
-            FileUtils.cp(tf.path, @path) 
+            tf = Tempfile.new(&quot;puppet&quot;)
+            tf.print text; tf.flush
+            FileUtils.cp(tf.path, @path)
             tf.close
             # If SELinux is present, we need to ensure the file has its expected context
             set_selinux_default_context(@path)
@@ -217,7 +217,7 @@ class Puppet::Util::FileType
                 raise Puppet::Error, &quot;User %s not authorized to use cron&quot; % @path if output.include?(&quot;you are not authorized to use cron&quot;)
                 return output
             rescue =&gt; detail
-                raise Puppet::Error, &quot;Could not read crontab for %s: %s&quot; % [@path, detail] 
+                raise Puppet::Error, &quot;Could not read crontab for %s: %s&quot; % [@path, detail]
             end
         end
 </diff>
      <filename>lib/puppet/util/filetype.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,11 +13,11 @@ module Puppet::Util::Graph
         # Allow our calling function to send in a graph, so that we
         # can call this recursively with one graph.
         graph ||= Puppet::SimpleGraph.new
-        
+
         self.each do |child|
             unless block_given? and ! yield(child)
                 graph.add_edge(self, child)
-                
+
                 if child.respond_to?(:to_graph)
                     child.to_graph(graph, &amp;block)
                 end
@@ -25,7 +25,7 @@ module Puppet::Util::Graph
         end
 
         # Do a topsort, which will throw an exception if the graph is cyclic.
-        
+
         graph
     end
 end</diff>
      <filename>lib/puppet/util/graph.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
 # something has changed are written back to disk
 # Great care is taken to preserve comments and blank lines from the original
 # files
-# 
+#
 # The parsing tries to stay close to python's ConfigParser
 
 require 'puppet/util/filetype'
@@ -79,7 +79,7 @@ module Puppet::Util::IniConfig
             return text
         end
 
-        private 
+        private
         def find_entry(key)
             @entries.each do |entry|
                 if entry.is_a?(Array) &amp;&amp; entry[0] == key
@@ -88,7 +88,7 @@ module Puppet::Util::IniConfig
             end
             return nil
         end
-        
+
     end
 
     # A logical .ini-file that can be spread across several physical
@@ -113,7 +113,7 @@ module Puppet::Util::IniConfig
             text.each_line do |l|
                 line += 1
                 if l.strip.empty? || &quot;#;&quot;.include?(l[0,1]) ||
-                        (l.split(nil, 2)[0].downcase == &quot;rem&quot; &amp;&amp; 
+                        (l.split(nil, 2)[0].downcase == &quot;rem&quot; &amp;&amp;
                          l[0,1].downcase == &quot;r&quot;)
                     # Whitespace or comment
                     if section.nil?
@@ -146,7 +146,7 @@ module Puppet::Util::IniConfig
         end
 
         # Store all modifications made to sections in this file back
-        # to the physical files. If no modifications were made to 
+        # to the physical files. If no modifications were made to
         # a physical file, nothing is written
         def store
             @files.each do |file, lines|</diff>
      <filename>lib/puppet/util/inifile.rb</filename>
    </modified>
    <modified>
      <diff>@@ -129,7 +129,7 @@ class Puppet::Util::Log
         unless @levels.index(hash[:level])
             raise Puppet::DevError, &quot;Invalid log level %s&quot; % hash[:level]
         end
-        if @levels.index(hash[:level]) &gt;= @loglevel 
+        if @levels.index(hash[:level]) &gt;= @loglevel
             return Puppet::Util::Log.new(hash)
         else
             return nil
@@ -251,8 +251,8 @@ class Puppet::Util::Log
     end
 
     newdesttype :console do
-                
-        
+
+
         RED     = {:console =&gt; &quot;*[0;31m&quot;, :html =&gt; &quot;FFA0A0&quot;}
         GREEN   = {:console =&gt; &quot;*[0;32m&quot;, :html =&gt; &quot;00CD00&quot;}
         YELLOW  = {:console =&gt; &quot;*[0;33m&quot;, :html =&gt; &quot;FFFF60&quot;}
@@ -279,7 +279,7 @@ class Puppet::Util::Log
             :emerg =&gt; HRED,
             :crit =&gt; HRED
         }
-        
+
         def colorize(level, str)
             case Puppet[:color]
             when false; str
@@ -287,11 +287,11 @@ class Puppet::Util::Log
             when :html, &quot;html&quot;; html_color(level, str)
             end
         end
-        
+
         def console_color(level, str)
             @@colormap[level][:console] + str + RESET[:console]
         end
-        
+
         def html_color(level, str)
             %{&lt;span style=&quot;color: %s&quot;&gt;%s&lt;/span&gt;} % [@@colormap[level][:html], str]
         end
@@ -432,7 +432,7 @@ class Puppet::Util::Log
     # for a loop here, if the machine somehow gets the destination set as
     # itself.
     def Log.newmessage(msg)
-        if @levels.index(msg.level) &lt; @loglevel 
+        if @levels.index(msg.level) &lt; @loglevel
             return
         end
 
@@ -444,7 +444,7 @@ class Puppet::Util::Log
     end
 
     def Log.sendlevel?(level)
-        @levels.index(level) &gt;= @loglevel 
+        @levels.index(level) &gt;= @loglevel
     end
 
     # Reopen all of our logs.</diff>
      <filename>lib/puppet/util/log.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'puppet'
 
 # A class for handling metrics.  This is currently ridiculously hackish.
 class Puppet::Util::Metric
-    
+
     attr_accessor :type, :name, :value, :label
     attr_writer :values
 
@@ -32,7 +32,7 @@ class Puppet::Util::Metric
         start ||= Time.now.to_i - 5
 
         @rrd = RRDtool.new(self.path)
-        args = [] 
+        args = []
 
         values.each { |value|
             # the 7200 is the heartbeat -- this means that any data that isn't
@@ -81,7 +81,7 @@ class Puppet::Util::Metric
             args &lt;&lt; defs
             args &lt;&lt; lines
             args.flatten!
-            if range 
+            if range
                 args.push(&quot;--start&quot;,range[0],&quot;--end&quot;,range[1])
             else
                 args.push(&quot;--start&quot;, Time.now.to_i - time, &quot;--end&quot;, Time.now.to_i)
@@ -147,7 +147,7 @@ class Puppet::Util::Metric
     end
 
     private
-    
+
     # Convert a name into a label.
     def labelize(name)
         name.to_s.capitalize.gsub(&quot;_&quot;, &quot; &quot;)</diff>
      <filename>lib/puppet/util/metric.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,10 +11,10 @@ module Puppet::Util::Package
             b = bx.shift
 
             if( a == b )                 then next
-            elsif (a == '-' &amp;&amp; b == '-') then next 
+            elsif (a == '-' &amp;&amp; b == '-') then next
             elsif (a == '-')             then return -1
             elsif (b == '-')             then return 1
-            elsif (a == '.' &amp;&amp; b == '.') then next 
+            elsif (a == '.' &amp;&amp; b == '.') then next
             elsif (a == '.' )            then return -1
             elsif (b == '.' )            then return 1
             elsif (a =~ /^\d+$/ &amp;&amp; b =~ /^\d+$/) then
@@ -22,12 +22,12 @@ module Puppet::Util::Package
                     return a.to_s.upcase &lt;=&gt; b.to_s.upcase
                 end
                 return a.to_i &lt;=&gt; b.to_i
-            else 
+            else
                 return a.upcase &lt;=&gt; b.upcase
             end
         end
         return version_a &lt;=&gt; version_b;
     end
-    
+
     module_function :versioncmp
 end</diff>
      <filename>lib/puppet/util/package.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ module Puppet::Util::POSIX
     end
 
     # A degenerate method of retrieving name/id mappings.  The job of this method is
-    # to retrieve all objects of a certain type, search for a specific entry 
+    # to retrieve all objects of a certain type, search for a specific entry
     # and then return a given field from that entry.
     def search_posix_field(type, field, id)
         idmethod = idfield(type)
@@ -57,7 +57,7 @@ module Puppet::Util::POSIX
         end
         return nil
     end
-    
+
     # Determine what the field name is for users and groups.
     def idfield(space)
         case Puppet::Util.symbolize(space)
@@ -67,7 +67,7 @@ module Puppet::Util::POSIX
             raise ArgumentError.new(&quot;Can only handle users and groups&quot;)
         end
     end
-    
+
     # Determine what the method is to get users and groups by id
     def methodbyid(space)
         case Puppet::Util.symbolize(space)
@@ -77,7 +77,7 @@ module Puppet::Util::POSIX
             raise ArgumentError.new(&quot;Can only handle users and groups&quot;)
         end
     end
-    
+
     # Determine what the method is to get users and groups by name
     def methodbyname(space)
         case Puppet::Util.symbolize(space)
@@ -87,7 +87,7 @@ module Puppet::Util::POSIX
             raise ArgumentError.new(&quot;Can only handle users and groups&quot;)
         end
     end
-    
+
     # Get the GID of a given group, provided either a GID or a name
     def gid(group)
         begin</diff>
      <filename>lib/puppet/util/posix.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ module Puppet::Util::ProviderFeatures
 
         # Are all of the requirements met?
         def available?(obj)
-            if self.methods 
+            if self.methods
                 if methods_available?(obj)
                     return true
                 else
@@ -126,8 +126,8 @@ module Puppet::Util::ProviderFeatures
             # Create a method that will list all functional features.
             @feature_module.send(:define_method, :features) do
                 return false unless defined?(features)
-                features.keys.find_all { |n| feature?(n) }.sort { |a,b| 
-                    a.to_s &lt;=&gt; b.to_s 
+                features.keys.find_all { |n| feature?(n) }.sort { |a,b|
+                    a.to_s &lt;=&gt; b.to_s
                 }
             end
 </diff>
      <filename>lib/puppet/util/provider_features.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'puppet/util/instance_loader'
 # Implements a message queue client type plugin registry for use by the indirector facility.
 # Client modules for speaking a particular protocol (e.g. Stomp::Client for Stomp message
 # brokers, Memcached for Starling and Sparrow, etc.) register themselves with this module.
-# 
+#
 # Client classes are expected to live under the Puppet::Util::Queue namespace and corresponding
 # directory; the attempted use of a client via its typename (see below) will cause Puppet::Util::Queue
 # to attempt to load the corresponding plugin if it is not yet loaded.  The client class registers itself
@@ -43,7 +43,7 @@ module Puppet::Util::Queue
     #
     #   # register with default name +:you+
     #   register_queue_type(Foo::You)
-    #   
+    #
     #   # register with explicit queue type name +:myself+
     #   register_queue_type(Foo::Me, :myself)
     #</diff>
      <filename>lib/puppet/util/queue.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ module RDoc
 
     # This modules contains various class that are used to hold information
     # about the various Puppet language structures we found while parsing.
-    # 
+    #
     # Those will be mapped to their html counterparts which are defined in
     # PuppetGenerator.
 </diff>
      <filename>lib/puppet/util/rdoc/code_objects.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,14 +4,14 @@ module Generators
 
     # This module holds all the classes needed to generate the HTML documentation
     # of a bunch of puppet manifests.
-    # 
-    # It works by traversing all the code objects defined by the Puppet RDoc::Parser 
+    #
+    # It works by traversing all the code objects defined by the Puppet RDoc::Parser
     # and produces HTML counterparts objects that in turns are used by RDoc template engine
     # to produce the final HTML.
-    # 
+    #
     # It is also responsible of creating the whole directory hierarchy, and various index
     # files.
-    # 
+    #
     # It is to be noted that the whole system is built on top of ruby RDoc. As such there
     # is an implicit mapping of puppet entities to ruby entitites:
     #
@@ -20,7 +20,7 @@ module Generators
     #         Module          Module
     #         Class           Class
     #         Definition      Method
-    #         Resource        
+    #         Resource
     #         Node
     #         Plugin
     #         Fact</diff>
      <filename>lib/puppet/util/rdoc/generators/puppet_generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -239,11 +239,11 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
 
 
 #####################################################################
-### H E A D E R   T E M P L A T E  
+### H E A D E R   T E M P L A T E
 #####################################################################
 
 XHTML_PREAMBLE = %{&lt;?xml version=&quot;1.0&quot; encoding=&quot;%charset%&quot;?&gt;
-&lt;!DOCTYPE html 
+&lt;!DOCTYPE html
      PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
      &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
 }
@@ -271,7 +271,7 @@ HEADER = XHTML_PREAMBLE + %{
       return false;
 
     elemStyle = elem.style;
-    
+
     if ( elemStyle.display != &quot;block&quot; ) {
       elemStyle.display = &quot;block&quot;
     } else {
@@ -280,10 +280,10 @@ HEADER = XHTML_PREAMBLE + %{
 
     return true;
   }
-  
+
   // Make codeblocks hidden by default
   document.writeln( &quot;&lt;style type=\\&quot;text/css\\&quot;&gt;div.method-source-code { display: none }&lt;/style&gt;&quot; )
-  
+
   // ]]&gt;
   &lt;/script&gt;
 
@@ -516,7 +516,7 @@ IF:sectitle
 IF:seccomment
       &lt;div class=&quot;section-comment&quot;&gt;
         %seccomment%
-      &lt;/div&gt;      
+      &lt;/div&gt;
 ENDIF:seccomment
 ENDIF:sectitle
 END:sections
@@ -608,7 +608,7 @@ IF:sectitle
 IF:seccomment
       &lt;div class=&quot;section-comment&quot;&gt;
         %seccomment%
-      &lt;/div&gt;      
+      &lt;/div&gt;
 ENDIF:seccomment
 ENDIF:sectitle
 
@@ -720,7 +720,7 @@ END:attributes
       &lt;/div&gt;
     &lt;/div&gt;
 ENDIF:attributes
-      
+
 
 
     &lt;!-- if method_list --&gt;
@@ -755,7 +755,7 @@ IF:sourcecode
           &lt;/a&gt;
 ENDIF:sourcecode
         &lt;/div&gt;
-      
+
         &lt;div class=&quot;method-description&quot;&gt;
 IF:m_desc
           %m_desc%
@@ -797,7 +797,7 @@ START:params
 END:params
 ENDIF:params
         &lt;/div&gt;
-      
+
         &lt;div class=&quot;method-description&quot;&gt;
 IF:m_desc
           %m_desc%
@@ -935,7 +935,7 @@ METHOD_INDEX = FILE_INDEX
 COMBO_INDEX = XHTML_PREAMBLE + %{
 &lt;!--
 
-    %classes_title% &amp;amp; %defines_title% 
+    %classes_title% &amp;amp; %defines_title%
 
   --&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
@@ -950,7 +950,7 @@ COMBO_INDEX = XHTML_PREAMBLE + %{
       parent.docwin.location.href = url;
   }
   //--&gt;&lt;/SCRIPT&gt;
-  
+
 &lt;/head&gt;
 &lt;body&gt;
 &lt;div id=&quot;index&quot;&gt;
@@ -1019,7 +1019,7 @@ ENDIF:plugins
 }
 
 INDEX = %{&lt;?xml version=&quot;1.0&quot; encoding=&quot;%charset%&quot;?&gt;
-&lt;!DOCTYPE html 
+&lt;!DOCTYPE html
      PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot;
      &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&quot;&gt;
 </diff>
      <filename>lib/puppet/util/rdoc/generators/template/puppet/puppet.rb</filename>
    </modified>
    <modified>
      <diff>@@ -122,7 +122,7 @@ module Puppet::Util::SELinux
         else
             context = value
         end
-       
+
         retval = Selinux.lsetfilecon(file, context)
         if retval == 0
             return true
@@ -179,12 +179,12 @@ module Puppet::Util::SELinux
         unless mnts = read_mounts()
             return nil
         end
-       
+
         # For a given file:
-        # Check if the filename is in the data structure; 
+        # Check if the filename is in the data structure;
         #   return the fstype if it is.
         # Just in case: return something if you're down to &quot;/&quot; or &quot;&quot;
-        # Remove the last slash and everything after it, 
+        # Remove the last slash and everything after it,
         #   and repeat with that as the file for the next loop through.
         ary = file.split('/')
         while not ary.empty? do</diff>
      <filename>lib/puppet/util/selinux.rb</filename>
    </modified>
    <modified>
      <diff>@@ -168,7 +168,7 @@ class Puppet::Util::Settings
     def initialize
         @config = {}
         @shortnames = {}
-        
+
         @created = []
         @searchpath = nil
 
@@ -332,7 +332,7 @@ class Puppet::Util::Settings
         parse_file(file).each do |area, values|
             @values[area] = values
         end
-        
+
         # Determine our environment, if we have one.
         if @config[:environment]
             env = self.value(:environment).to_sym
@@ -616,7 +616,7 @@ Generated on #{Time.now}.
                     if transaction.any_failed?
                         report = transaction.report
                         failures = report.logs.find_all { |log| log.level == :err }
-                        raise &quot;Got %s failure(s) while initializing: %s&quot; % [failures.length, failures.collect { |l| l.to_s }.join(&quot;; &quot;)] 
+                        raise &quot;Got %s failure(s) while initializing: %s&quot; % [failures.length, failures.collect { |l| l.to_s }.join(&quot;; &quot;)]
                     end
                 end
             end
@@ -663,7 +663,7 @@ Generated on #{Time.now}.
             end
             throw :foundval, nil
         end
-        
+
         # If we didn't get a value, use the default
         val = @config[param].default if val.nil?
 
@@ -759,7 +759,7 @@ Generated on #{Time.now}.
 
         return obj
     end
-    
+
     # Create the transportable objects for users and groups.
     def add_user_resources(catalog, sections)
         return unless Puppet.features.root?</diff>
      <filename>lib/puppet/util/settings.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,7 @@ module Puppet::Util::SubclassLoader
         # that we're defining a class method here, not an instance.
         meta_def(name) do |subname|
             subname = subname.to_s.downcase
-        
+
             unless c = @subclasses.find { |c| c.name.to_s.downcase == subname }
                 loader.load(subname)
                 c = @subclasses.find { |c| c.name.to_s.downcase == subname }</diff>
      <filename>lib/puppet/util/subclass_loader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,14 +29,14 @@ module Puppet::Util::SUIDManager
         begin
             self.egid = convert_xid :gid, new_gid if new_gid
             self.euid = convert_xid :uid, new_uid if new_uid
-  
+
             yield
         ensure
             self.euid, self.egid = old_euid, old_egid
         end
     end
     module_function :asuser
-    
+
     # Make sure the passed argument is a number.
     def convert_xid(type, id)
         map = {:gid =&gt; :group, :uid =&gt; :user}</diff>
      <filename>lib/puppet/util/suidmanager.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ module Puppet::Util::Tagging
             @tags &lt;&lt; tag unless @tags.include?(tag)
         end
 
-        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com] 
+        # LAK:NOTE See http://snurl.com/21zf8  [groups_google_com]
         qualified.collect { |name| x = name.split(&quot;::&quot;) }.flatten.each { |tag| @tags &lt;&lt; tag unless @tags.include?(tag) }
     end
 </diff>
      <filename>lib/puppet/util/tagging.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -113,4 +113,4 @@ License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/filebucket.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -31,4 +31,4 @@ Include metaparams
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/pi.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -74,4 +74,4 @@ License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppet.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,37 +1,37 @@
 .TH Configuration Reference  &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
-Configuration Reference \- 
+Configuration Reference \-
 
 .\&quot; Man page generated from reStructeredText.
-This page is autogenerated; any changes will get overwritten 
+This page is autogenerated; any changes will get overwritten
 .I (last generated on Mon May 05 09:33:01 +1000 2008)
 
 
 
 .\&quot; topic: Contents
-.\&quot; 
+.\&quot;
 .\&quot; Specifying Configuration Parameters
-.\&quot; 
+.\&quot;
 .\&quot; Signals
-.\&quot; 
+.\&quot;
 .\&quot; Configuration Parameter Reference
 
 .SH Specifying Configuration Parameters
 
 .SS On The Command\-Line
-Every Puppet executable (with the exception of 
+Every Puppet executable (with the exception of
 .\&quot; visit_literal
 puppetdoc
 .\&quot; depart_literal
 ) accepts all of
 the parameters below, but not all of the arguments make sense for every executable.
 Each parameter has a section listed with it in parentheses; often, that section
-will map to an executable (e.g., 
+will map to an executable (e.g.,
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
 ), in which case it probably only
-makes sense for that one executable.  If 
+makes sense for that one executable.  If
 .\&quot; visit_literal
 main
 .\&quot; depart_literal
@@ -43,7 +43,7 @@ arguments, so it should be obvious whether an argument is appropriate or not.
 
 These parameters can be supplied to the executables either as command\-line
 options or in the configuration file.  For instance, the command\-line
-invocation below would set the configuration directory to 
+invocation below would set the configuration directory to
 .\&quot; visit_literal
 /private/puppet
 .\&quot; depart_literal
@@ -69,17 +69,17 @@ the client configuration.
 .SS Configuration Files
 As mentioned above, the configuration parameters can also be stored in a
 configuration file, located in the configuration directory.  As root, the
-default configuration directory is 
+default configuration directory is
 .\&quot; visit_literal
 /etc/puppet
 .\&quot; depart_literal
 , and as a regular user, the
-default configuration directory is 
+default configuration directory is
 .\&quot; visit_literal
 ~user/.puppet
 .\&quot; depart_literal
 .  As of 0.23.0, all
-executables look for 
+executables look for
 .\&quot; visit_literal
 puppet.conf
 .\&quot; depart_literal
@@ -89,7 +89,7 @@ puppet.conf
 .\&quot; visit_literal
 puppet.conf
 .\&quot; depart_literal
- is located at 
+ is located at
 .\&quot; visit_literal
 /etc/puppet/puppet.conf
 .\&quot; depart_literal
@@ -100,27 +100,27 @@ puppet.conf
 .\&quot; depart_literal
  as a regular user by default.
 
-All executables will set any parameters set within the 
+All executables will set any parameters set within the
 .\&quot; visit_literal
 main
 .\&quot; depart_literal
  section,
 while each executable will also look for a section named for the executable
-and load those parameters.  For example, 
+and load those parameters.  For example,
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
  will look for a
-section named 
+section named
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
-, and 
+, and
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
  looks for a section
-named 
+named
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
@@ -142,7 +142,7 @@ puppet.conf
     confdir = /private/puppet
     storeconfigs = true
 .fi
-Note that boolean parameters must be explicitly specified as 
+Note that boolean parameters must be explicitly specified as
 .I true
  or
 
@@ -159,7 +159,7 @@ so within curly braces on the same line:
 .fi
 If you\'re starting out with a fresh configuration, you may wish to let
 the executable generate a template configuration file for you by invoking
-the executable in question with the 
+the executable in question with the
 .I \-\-genconfig
  command.  The executable
 will print a template configuration to standard output, which can be
@@ -178,9 +178,9 @@ valuable information.
 All parameters will be under a single section heading matching the name of
 the process used to generate the configuraiton (\'puppetd\', in this case).
 
-Like the 
+Like the
 .I \-\-genconfig
- argument, the executables also accept a 
+ argument, the executables also accept a
 .I \-\-genmanifest
 
 argument, which will generate a manifest that can be used to manage all of
@@ -191,14 +191,14 @@ likewise be redirected to a file:
 .nf
 $ puppetd \-\-genmanifest &gt; /etc/puppet/manifests/site.pp
 .fi
-Puppet can also create user and group accounts for itself (one 
+Puppet can also create user and group accounts for itself (one
 .I puppet
  group
-and one 
+and one
 .I puppet
- user) if it is invoked as 
+ user) if it is invoked as
 .I root
- with the 
+ with the
 .I \-\-mkusers
  argument:
 
@@ -208,11 +208,11 @@ $ puppetd \-\-mkusers
 .fi
 
 .SH Signals
-The 
+The
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
- and 
+ and
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
@@ -226,32 +226,32 @@ tself.  Predictably, interrupt and terminate (
 .\&quot; visit_literal
 SIGINT
 .\&quot; depart_literal
- and 
+ and
 .\&quot; visit_literal
 SIGHUP
 .\&quot; depart_literal
 ) will shut
-down the server, whether it be an instance of 
+down the server, whether it be an instance of
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
- or 
+ or
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
 .
 
-Sending the 
+Sending the
 .\&quot; visit_literal
 SIGUSR1
 .\&quot; depart_literal
- signal to an instance of 
+ signal to an instance of
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
  will cause it to
 immediately begin a new configuration transaction with the server.  This
-signal has no effect on 
+signal has no effect on
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
@@ -264,11 +264,11 @@ Puppet executables, but the executables will ignore any inappropriate values.
 
 
 .SS authconfig
-The configuration file that defines the rights to the different namespaces and methods.  This can be used as a coarse\-grained authorization system for both 
+The configuration file that defines the rights to the different namespaces and methods.  This can be used as a coarse\-grained authorization system for both
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
- and 
+ and
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
@@ -464,11 +464,11 @@ Default: absinthe.lovedthanlost.net
 
 
 .SS classfile
-The file in which puppetd stores a list of the classes associated with the retrieved configuration.  Can be loaded in the separate 
+The file in which puppetd stores a list of the classes associated with the retrieved configuration.  Can be loaded in the separate
 .\&quot; visit_literal
 puppet
 .\&quot; depart_literal
- executable using the 
+ executable using the
 .\&quot; visit_literal
 \-\-loadclasses
 .\&quot; depart_literal
@@ -490,7 +490,7 @@ Default: $vardir/clientbucket
 
 
 .SS code
-Code to parse directly.  This is essentially only used by 
+Code to parse directly.  This is essentially only used by
 .\&quot; visit_literal
 puppet
 .\&quot; depart_literal
@@ -498,19 +498,19 @@ puppet
 
 
 .SS color
-Whether to use colors when logging to the console. Valid values are 
+Whether to use colors when logging to the console. Valid values are
 .\&quot; visit_literal
 ansi
 .\&quot; depart_literal
- (equivalent to 
+ (equivalent to
 .\&quot; visit_literal
 true
 .\&quot; depart_literal
-), 
+),
 .\&quot; visit_literal
 html
 .\&quot; depart_literal
- (mostly used during testing with TextMate), and 
+ (mostly used during testing with TextMate), and
 .\&quot; visit_literal
 false
 .\&quot; depart_literal
@@ -523,11 +523,11 @@ Default: ansi
 
 
 .SS confdir
-The main Puppet configuration directory.  The default for this parameter is calculated based on the user.  If the process is runnig as root or the user that 
+The main Puppet configuration directory.  The default for this parameter is calculated based on the user.  If the process is runnig as root or the user that
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
- is supposed to run as, it defaults to a system directory, but if it\'s running as any other user, it defaults to being in 
+ is supposed to run as, it defaults to a system directory, but if it\'s running as any other user, it defaults to being in
 .\&quot; visit_literal
 ~
 .\&quot; depart_literal
@@ -678,11 +678,11 @@ Default: memorysize,memoryfree,swapsize,swapfree
 
 
 .SS environment
-The environment Puppet is running in.  For clients (e.g., 
+The environment Puppet is running in.  For clients (e.g.,
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
-) this determines the environment itself, which is used to find modules and much more.  For servers (i.e., 
+) this determines the environment itself, which is used to find modules and much more.  For servers (i.e.,
 .\&quot; visit_literal
 puppetmasterd
 .\&quot; depart_literal
@@ -713,19 +713,19 @@ Default: false
 
 
 .SS external_nodes
-An external command that can produce node information.  The output must be a YAML dump of a hash, and that hash must have one or both of 
+An external command that can produce node information.  The output must be a YAML dump of a hash, and that hash must have one or both of
 .\&quot; visit_literal
 classes
 .\&quot; depart_literal
- and 
+ and
 .\&quot; visit_literal
 parameters
 .\&quot; depart_literal
-, where 
+, where
 .\&quot; visit_literal
 classes
 .\&quot; depart_literal
- is an array and 
+ is an array and
 .\&quot; visit_literal
 parameters
 .\&quot; depart_literal
@@ -765,7 +765,7 @@ Default: .svn CVS
 
 
 .SS factsource
-From where to retrieve facts.  The standard Puppet 
+From where to retrieve facts.  The standard Puppet
 .\&quot; visit_literal
 file
 .\&quot; depart_literal
@@ -1002,7 +1002,7 @@ The password to use to connect to LDAP.
 
 
 .SS ldapport
-The LDAP port.  Only used if 
+The LDAP port.  Only used if
 .\&quot; visit_literal
 ldapnodes
 .\&quot; depart_literal
@@ -1015,7 +1015,7 @@ Default: 389
 
 
 .SS ldapserver
-The LDAP server.  Only used if 
+The LDAP server.  Only used if
 .\&quot; visit_literal
 ldapnodes
 .\&quot; depart_literal
@@ -1077,11 +1077,11 @@ Default: $vardir/lib
 
 
 .SS listen
-Whether puppetd should listen for connections.  If this is true, then by default only the 
+Whether puppetd should listen for connections.  If this is true, then by default only the
 .\&quot; visit_literal
 runner
 .\&quot; depart_literal
- server is started, which allows remote authorized and authenticated nodes to connect and trigger 
+ server is started, which allows remote authorized and authenticated nodes to connect and trigger
 .\&quot; visit_literal
 puppetd
 .\&quot; depart_literal
@@ -1193,7 +1193,7 @@ Default: $confdir/modules:/usr/share/puppet/modules
 
 
 .SS name
-The name of the service, if we are running as one.  The default is essentially $0 without the path or 
+The name of the service, if we are running as one.  The default is essentially $0 without the path or
 .\&quot; visit_literal
 .rb
 .\&quot; depart_literal
@@ -1300,7 +1300,7 @@ Default: .svn CVS
 
 
 .SS pluginsource
-From where to retrieve plugins.  The standard Puppet 
+From where to retrieve plugins.  The standard Puppet
 .\&quot; visit_literal
 file
 .\&quot; depart_literal
@@ -1376,11 +1376,11 @@ Default: 8139
 
 
 .SS rails_loglevel
-The log level for Rails connections.  The value must be a valid log level within Rails.  Production environments normally use 
+The log level for Rails connections.  The value must be a valid log level within Rails.  Production environments normally use
 .\&quot; visit_literal
 info
 .\&quot; depart_literal
- and other environments normally use 
+ and other environments normally use
 .\&quot; visit_literal
 debug
 .\&quot; depart_literal
@@ -1532,7 +1532,7 @@ Default: webrick
 
 
 .SS show_diff
-Whether to print a contextual diff when files are being replaced.  The diff is printed on stdout, so this option is meaningless unless you are running Puppet interactively. This feature currently requires the 
+Whether to print a contextual diff when files are being replaced.  The diff is printed on stdout, so this option is meaningless unless you are running Puppet interactively. This feature currently requires the
 .\&quot; visit_literal
 diff/lcs
 .\&quot; depart_literal
@@ -1581,7 +1581,7 @@ Default: $runinterval
 
 
 .SS ssl_client_header
-The header containing an authenticated client\'s SSL DN.  Only used with Mongrel.  This header must be set by the proxy to the authenticated client\'s SSL DN (e.g., 
+The header containing an authenticated client\'s SSL DN.  Only used with Mongrel.  This header must be set by the proxy to the authenticated client\'s SSL DN (e.g.,
 .\&quot; visit_literal
 /CN=puppet.reductivelabs.com
 .\&quot; depart_literal
@@ -1744,4 +1744,4 @@ Default: $vardir/yaml
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppet.conf.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -115,4 +115,4 @@ License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppetca.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH Synopsis  &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
-Synopsis \- 
+Synopsis \-
 
 .\&quot; Man page generated from reStructeredText.
 Retrieve the client configuration from the central puppet server and
@@ -181,4 +181,4 @@ Public License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppetd.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -59,4 +59,4 @@ Public License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppetdoc.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -84,4 +84,4 @@ License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppetmasterd.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 
@@ -148,4 +148,4 @@ License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/puppetrun.8</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 .TH   &quot;&quot; &quot;&quot; &quot;&quot;
 .SH NAME
- \- 
+ \-
 
 .\&quot; Man page generated from reStructeredText.
 vim: softtabstop=4 shiftwidth=4 expandtab
@@ -97,7 +97,7 @@ verbose: Print extra information.
 
 
 .SH EXAMPLE
-This example uses 
+This example uses
 .\&quot; visit_literal
 ralsh
 .\&quot; depart_literal
@@ -132,4 +132,4 @@ Public License
 
 
 .\&quot; Generated by docutils manpage writer on 2008-05-05 09:33.
-.\&quot; 
+.\&quot;</diff>
      <filename>man/man8/ralsh.8</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@
 #   '--clean', or '--list'.
 #
 # clean::
-#    Remove all files related to a host from puppetca's storage. This is 
+#    Remove all files related to a host from puppetca's storage. This is
 #    useful when rebuilding hosts, since new certificate signing requests
 #    will only be honored if puppetca does not have a copy of a signed
 #    certificate for that host. The certificate of the host remains valid.
@@ -54,7 +54,7 @@
 #   Print this help message
 #
 # list::
-#   List outstanding certificate requests.  If '--all' is specified, 
+#   List outstanding certificate requests.  If '--all' is specified,
 #   signed certificates are also listed, prefixed by '+'.
 #
 # print::
@@ -97,4 +97,4 @@
 # Licensed under the GNU Public License
 
 require 'puppet/application/puppetca'
-Puppet::Application[:puppetca].run
\ No newline at end of file
+Puppet::Application[:puppetca].run</diff>
      <filename>sbin/puppetca</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# == Synopsis 
+# == Synopsis
 #
 # Retrieve the client configuration from the central puppet server and apply
 # it to the local host.</diff>
      <filename>sbin/puppetd</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# == Synopsis 
+# == Synopsis
 #
 # Retrieve serialized records from a queue and process them in order.
 #</diff>
      <filename>sbin/puppetqd</filename>
    </modified>
    <modified>
      <diff>@@ -44,10 +44,10 @@
 #
 #     [fileserver]
 #         allow *.madstop.com
-# 
+#
 #     [puppetmaster]
 #         allow *.madstop.com
-# 
+#
 #     [puppetrunner]
 #         allow culain.madstop.com
 #
@@ -109,7 +109,7 @@
 #   option requires LDAP support at this point.
 #
 # ping::
-#   
+#
 #   Do a ICMP echo against the target host. Skip hosts that don't respond to ping.
 #
 # = Example</diff>
      <filename>sbin/puppetrun</filename>
    </modified>
    <modified>
      <diff>@@ -7,19 +7,19 @@ require 'puppet/indirector/rest'
 
 # a fake class that will be indirected via REST
 class Puppet::TestIndirectedFoo
-    extend Puppet::Indirector    
+    extend Puppet::Indirector
     indirects :test_indirected_foo, :terminus_setting =&gt; :test_indirected_foo_terminus
-    
+
     attr_reader :value
-    
+
     def initialize(value = 0)
         @value = value
     end
-    
+
     def self.from_yaml(yaml)
         YAML.load(yaml)
     end
-    
+
     def name
         &quot;bob&quot;
     end
@@ -77,18 +77,18 @@ describe Puppet::Indirector::REST do
             # do not trigger the authorization layer
             Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:check_authorization).returns(true)
         end
-    
+
         describe &quot;when finding a model instance over REST&quot; do
             describe &quot;when a matching model instance can be found&quot; do
                 before :each do
                     @model_instance = Puppet::TestIndirectedFoo.new(23)
                     @mock_model.stubs(:find).returns @model_instance
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return an instance of the model class' do
                     Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
                 end
@@ -97,11 +97,11 @@ describe Puppet::Indirector::REST do
                     @mock_model.expects(:find).with { |key, args| args[:one] == &quot;two&quot; and args[:three] == &quot;four&quot; }.returns @model_instance
                     Puppet::TestIndirectedFoo.find('bar', :one =&gt; &quot;two&quot;, :three =&gt; &quot;four&quot;)
                 end
-    
+
                 it 'should return the instance of the model class associated with the provided lookup key' do
                     Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
                 end
-    
+
                 it 'should set an expiration on model instance' do
                     Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
                 end
@@ -113,25 +113,25 @@ describe Puppet::Indirector::REST do
                     Puppet::TestIndirectedFoo.find('bar')
                 end
             end
-        
+
             describe &quot;when no matching model instance can be found&quot; do
                 before :each do
                     @mock_model = stub('faked model', :name =&gt; &quot;foo&quot;, :find =&gt; nil)
                     Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
                 end
-            
+
                 it &quot;should return nil&quot; do
                     Puppet::TestIndirectedFoo.find('bar').should be_nil
                 end
             end
-        
+
             describe &quot;when an exception is encountered in looking up a model instance&quot; do
                 before :each do
                     @mock_model = stub('faked model', :name =&gt; &quot;foo&quot;)
                     @mock_model.stubs(:find).raises(RuntimeError)
-                    Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)                
+                    Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
                     lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
                 end
@@ -149,11 +149,11 @@ describe Puppet::Indirector::REST do
 
                     @mock_model.stubs(:render_multiple).returns @model_instances.to_yaml
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return all matching results' do
                     Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
                 end
@@ -162,13 +162,13 @@ describe Puppet::Indirector::REST do
                     @mock_model.expects(:search).with { |key, args| args[:one] == &quot;two&quot; and args[:three] == &quot;four&quot; }.returns @model_instances
                     Puppet::TestIndirectedFoo.search(&quot;foo&quot;, :one =&gt; &quot;two&quot;, :three =&gt; &quot;four&quot;)
                 end
-    
+
                 it 'should return model instances' do
-                    Puppet::TestIndirectedFoo.search('bar').each do |result| 
+                    Puppet::TestIndirectedFoo.search('bar').each do |result|
                         result.class.should == Puppet::TestIndirectedFoo
                     end
                 end
-    
+
                 it 'should return the instance of the model class associated with the provided lookup key' do
                     Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
                 end
@@ -179,7 +179,7 @@ describe Puppet::Indirector::REST do
                     @mock_model = stub('faked model', :name =&gt; &quot;foo&quot;, :find =&gt; nil)
                     Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
                 end
-            
+
                 it &quot;should return nil&quot; do
                     Puppet::TestIndirectedFoo.find('bar').should be_nil
                 end
@@ -189,11 +189,11 @@ describe Puppet::Indirector::REST do
                 before :each do
                     @mock_model = stub('faked model')
                     @mock_model.stubs(:find).raises(RuntimeError)
-                    Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)                
+                    Puppet::Indirector::Request.any_instance.stubs(:model).returns(@mock_model)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError) 
+                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -203,33 +203,33 @@ describe Puppet::Indirector::REST do
                 before :each do
                     @mock_model.stubs(:destroy).returns true
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return success' do
                     Puppet::TestIndirectedFoo.destroy('bar').should == true
                 end
             end
-        
+
             describe &quot;when no matching model instance can be found&quot; do
                 before :each do
                     @mock_model.stubs(:destroy).returns false
                 end
-            
+
                 it &quot;should return failure&quot; do
                     Puppet::TestIndirectedFoo.destroy('bar').should == false
                 end
             end
-        
+
             describe &quot;when an exception is encountered in destroying a model instance&quot; do
                 before :each do
                     @mock_model.stubs(:destroy).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError) 
+                    lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -239,43 +239,43 @@ describe Puppet::Indirector::REST do
                 @instance = Puppet::TestIndirectedFoo.new(42)
                 @mock_model.stubs(:save_object).returns @instance
                 @mock_model.stubs(:convert_from).returns @instance
-                Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(@instance)                
+                Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(@instance)
             end
-            
+
             describe &quot;when a successful save can be performed&quot; do
                 before :each do
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { @instance.save }.should_not raise_error
                 end
-    
+
                 it 'should return an instance of the model class' do
                     @instance.save.class.should == Puppet::TestIndirectedFoo
                 end
-                 
+
                 it 'should return a matching instance of the model class' do
                     @instance.save.value.should == @instance.value
                 end
             end
-                    
+
             describe &quot;when a save cannot be completed&quot; do
                 before :each do
                     Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(false)
                 end
-                            
+
                 it &quot;should return failure&quot; do
                     @instance.save.should == false
                 end
             end
-                    
+
             describe &quot;when an exception is encountered in performing a save&quot; do
                 before :each do
-                    Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).raises(RuntimeError)             
+                    Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { @instance.save }.should raise_error(Net::HTTPError) 
+                    lambda { @instance.save }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -287,7 +287,7 @@ describe Puppet::Indirector::REST do
 
     describe &quot;when using mongrel&quot; do
         confine &quot;Mongrel is not available&quot; =&gt; Puppet.features.mongrel?
-        
+
         before :each do
             Puppet[:servertype] = 'mongrel'
             @params = { :port =&gt; 34343, :handlers =&gt; [ :test_indirected_foo ] }
@@ -314,18 +314,18 @@ describe Puppet::Indirector::REST do
         after do
             @server.unlisten
         end
-    
+
         describe &quot;when finding a model instance over REST&quot; do
             describe &quot;when a matching model instance can be found&quot; do
                 before :each do
                     @model_instance = Puppet::TestIndirectedFoo.new(23)
                     @mock_model.stubs(:find).returns @model_instance
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return an instance of the model class' do
                     Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
                 end
@@ -334,11 +334,11 @@ describe Puppet::Indirector::REST do
                     @mock_model.expects(:find).with { |key, args| args[:one] == &quot;two&quot; and args[:three] == &quot;four&quot; }.returns @model_instance
                     Puppet::TestIndirectedFoo.find('bar', :one =&gt; &quot;two&quot;, :three =&gt; &quot;four&quot;)
                 end
-    
+
                 it 'should return the instance of the model class associated with the provided lookup key' do
                     Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
                 end
-    
+
                 it 'should set an expiration on model instance' do
                     Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
                 end
@@ -350,24 +350,24 @@ describe Puppet::Indirector::REST do
                     Puppet::TestIndirectedFoo.find('bar')
                 end
             end
-        
+
             describe &quot;when no matching model instance can be found&quot; do
                 before :each do
                     @mock_model.stubs(:find).returns nil
                 end
-            
+
                 it &quot;should return nil&quot; do
                     Puppet::TestIndirectedFoo.find('bar').should be_nil
                 end
             end
-        
+
             describe &quot;when an exception is encountered in looking up a model instance&quot; do
                 before :each do
                     @mock_model.stubs(:find).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError) 
+                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -383,11 +383,11 @@ describe Puppet::Indirector::REST do
                     @mock_model.stubs(:search).returns @model_instances
                     @mock_model.stubs(:render_multiple).returns @model_instances.to_yaml
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return all matching results' do
                     Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
                 end
@@ -396,42 +396,42 @@ describe Puppet::Indirector::REST do
                     @mock_model.expects(:search).with { |key, args| args[:one] == &quot;two&quot; and args[:three] == &quot;four&quot; }.returns @model_instances
                     Puppet::TestIndirectedFoo.search('bar', :one =&gt; &quot;two&quot;, :three =&gt; &quot;four&quot;)
                 end
-    
+
                 it 'should return model instances' do
-                    Puppet::TestIndirectedFoo.search('bar').each do |result| 
+                    Puppet::TestIndirectedFoo.search('bar').each do |result|
                         result.class.should == Puppet::TestIndirectedFoo
                     end
                 end
-    
+
                 it 'should return the instance of the model class associated with the provided lookup key' do
                     Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
                 end
-    
+
                 it 'should set an expiration on model instances' do
                     Puppet::TestIndirectedFoo.search('bar').each do |result|
                         result.expiration.should_not be_nil
                     end
                 end
             end
-        
+
             describe &quot;when no matching model instance can be found&quot; do
                 before :each do
                     @mock_model.stubs(:search).returns nil
                     @mock_model.stubs(:render_multiple).returns nil.to_yaml
                 end
-            
+
                 it &quot;should return nil&quot; do
                     Puppet::TestIndirectedFoo.search('bar').should == []
                 end
             end
-        
+
             describe &quot;when an exception is encountered in looking up a model instance&quot; do
                 before :each do
                     @mock_model.stubs(:find).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError) 
+                    lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -441,33 +441,33 @@ describe Puppet::Indirector::REST do
                 before :each do
                     @mock_model.stubs(:destroy).returns true
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
                 end
-    
+
                 it 'should return success' do
                     Puppet::TestIndirectedFoo.destroy('bar').should == true
                 end
             end
-        
+
             describe &quot;when no matching model instance can be found&quot; do
                 before :each do
                     @mock_model.stubs(:destroy).returns false
                 end
-            
+
                 it &quot;should return failure&quot; do
                     Puppet::TestIndirectedFoo.destroy('bar').should == false
                 end
             end
-        
+
             describe &quot;when an exception is encountered in destroying a model instance&quot; do
                 before :each do
                     @mock_model.stubs(:destroy).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError) 
+                    lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(Net::HTTPError)
                 end
             end
         end
@@ -479,13 +479,13 @@ describe Puppet::Indirector::REST do
 
                 # LAK:NOTE This stub is necessary to prevent the REST call from calling
                 # REST.save again, thus producing painful infinite recursion.
-                Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(@instance)                
+                Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(@instance)
             end
-            
+
             describe &quot;when a successful save can be performed&quot; do
                 before :each do
                 end
-            
+
                 it &quot;should not fail&quot; do
                     lambda { @instance.save }.should_not raise_error
                 end
@@ -493,29 +493,29 @@ describe Puppet::Indirector::REST do
                 it 'should return an instance of the model class' do
                     @instance.save.class.should == Puppet::TestIndirectedFoo
                 end
-                 
+
                 it 'should return a matching instance of the model class' do
                     @instance.save.value.should == @instance.value
                 end
             end
-                    
+
             describe &quot;when a save cannot be completed&quot; do
                 before :each do
                     Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(false)
                 end
-                            
+
                 it &quot;should return failure&quot; do
                     @instance.save.should == false
                 end
             end
-                    
+
             describe &quot;when an exception is encountered in performing a save&quot; do
                 before :each do
-                    Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).raises(RuntimeError)             
+                    Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).raises(RuntimeError)
                 end
-            
+
                 it &quot;should raise an exception&quot; do
-                    lambda { @instance.save }.should raise_error(Net::HTTPError) 
+                    lambda { @instance.save }.should raise_error(Net::HTTPError)
                 end
             end
         end</diff>
      <filename>spec/integration/indirector/rest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,12 +7,12 @@ require 'socket'
 describe Puppet::Network::Server do
     describe &quot;when using mongrel&quot; do
         confine &quot;Mongrel is not available&quot; =&gt; Puppet.features.mongrel?
-        
+
         before :each do
             Puppet[:servertype] = 'mongrel'
             Puppet[:server] = '127.0.0.1'
             @params = { :port =&gt; 34346, :handlers =&gt; [ :node ] }
-            @server = Puppet::Network::Server.new(@params)            
+            @server = Puppet::Network::Server.new(@params)
         end
 
         after { Puppet.settings.clear }
@@ -26,11 +26,11 @@ describe Puppet::Network::Server do
         describe &quot;when listening&quot; do
             it &quot;should be reachable on the specified address and port&quot; do
                 @server.listen
-                lambda { TCPSocket.new('127.0.0.1', 34346) }.should_not raise_error            
+                lambda { TCPSocket.new('127.0.0.1', 34346) }.should_not raise_error
             end
 
             it &quot;should default to '127.0.0.1' as its bind address&quot; do
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
                 @server.send(:http_server).expects(:listen).with { |args| args[:address] == &quot;127.0.0.1&quot; }
                 @server.listen
@@ -38,7 +38,7 @@ describe Puppet::Network::Server do
 
             it &quot;should use any specified bind address&quot; do
                 Puppet[:bindaddress] = &quot;0.0.0.0&quot;
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
                 @server.send(:http_server).expects(:listen).with { |args| args[:address] == &quot;0.0.0.0&quot; }
                 @server.listen
@@ -50,17 +50,17 @@ describe Puppet::Network::Server do
                 lambda { @server2.listen }.should raise_error
             end
         end
-        
+
         describe &quot;after unlistening&quot; do
             it &quot;should not be reachable on the port and address assigned&quot; do
                 @server.listen
                 @server.unlisten
-                lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)                
+                lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)
             end
         end
-            
+
         after :each do
             @server.unlisten if @server.listening?
-        end    
+        end
     end
 end</diff>
      <filename>spec/integration/network/server/mongrel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -42,13 +42,13 @@ describe Puppet::Network::Server do
 
         describe &quot;when listening&quot; do
             it &quot;should be reachable on the specified address and port&quot; do
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.listen
-                lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error            
+                lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error
             end
 
             it &quot;should default to '0.0.0.0' as its bind address&quot; do
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
                 @server.send(:http_server).expects(:listen).with { |args| args[:address] == &quot;0.0.0.0&quot; }
                 @server.listen
@@ -56,14 +56,14 @@ describe Puppet::Network::Server do
 
             it &quot;should use any specified bind address&quot; do
                 Puppet[:bindaddress] = &quot;127.0.0.1&quot;
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.stubs(:unlisten) # we're breaking listening internally, so we have to keep it from unlistening
                 @server.send(:http_server).expects(:listen).with { |args| args[:address] == &quot;127.0.0.1&quot; }
                 @server.listen
             end
 
             it &quot;should not allow multiple servers to listen on the same address and port&quot; do
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))            
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.listen
                 @server2 = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 lambda { @server2.listen }.should raise_error
@@ -76,10 +76,10 @@ describe Puppet::Network::Server do
 
         describe &quot;after unlistening&quot; do
             it &quot;should not be reachable on the port and address assigned&quot; do
-                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))      
+                @server = Puppet::Network::Server.new(@params.merge(:port =&gt; 34343))
                 @server.listen
                 @server.unlisten
-                lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)        
+                lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)
             end
         end
     end</diff>
      <filename>spec/integration/network/server/webrick.rb</filename>
    </modified>
    <modified>
      <diff>@@ -143,7 +143,7 @@ describe Puppet::Type.type(:file) do
                 @catalog.resource(:file, File.join(@dest, &quot;two&quot;)).should be_instance_of(@file.class)
             end
         end
-        
+
         it &quot;should have an edge to each resource in the relationship graph&quot; do
             @catalog.apply do |trans|
                 one = @catalog.resource(:file, File.join(@dest, &quot;one&quot;))</diff>
      <filename>spec/integration/type/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ describe Puppet::Type.type(:tidy) do
         target = tmpfile(&quot;no_such_file_tidy_link_testing&quot;)
         Dir.mkdir(dir)
         File.symlink(target, link)
-        
+
         tidy = Puppet::Type.type(:tidy).new :path =&gt; dir, :recurse =&gt; true
 
         catalog = Puppet::Resource::Catalog.new</diff>
      <filename>spec/integration/type/tidy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ $LOAD_PATH.unshift(&quot;#{dir}/../lib&quot;)
 $LOAD_PATH.unshift(&quot;#{dir}/../test/lib&quot;)  # Add the old test dir, so that we can still find our local mocha and spec
 
 # include any gems in vendor/gems
-Dir[&quot;#{dir}/../vendor/gems/**&quot;].each do |path| 
+Dir[&quot;#{dir}/../vendor/gems/**&quot;].each do |path|
     libpath = File.join(path, &quot;lib&quot;)
     if File.directory?(libpath)
         $LOAD_PATH.unshift(libpath)</diff>
      <filename>spec/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -169,7 +169,7 @@ describe Puppet::Agent do
             @agent.should be_splayed
         end
     end
-    
+
     describe &quot;when stopping&quot; do
         it &quot;should do nothing if already stopping&quot; do
             @agent.expects(:stopping?).returns true</diff>
      <filename>spec/unit/agent.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,7 +55,7 @@ describe Puppet::Configurer, &quot;when executing a catalog run&quot; do
         catalog.expects(:apply).with(:one =&gt; true)
         @agent.run :one =&gt; true
     end
-    
+
     it &quot;should benchmark how long it takes to apply the catalog&quot; do
         @agent.expects(:benchmark).with(:notice, &quot;Finished catalog run&quot;)
 </diff>
      <filename>spec/unit/configurer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -133,7 +133,7 @@ describe Puppet::Daemon do
 
             sync = mock 'sync'
             Puppet::Util.expects(:sync).with(&quot;me&quot;).returns sync
-            
+
             sync.expects(:synchronize).with(Sync::EX)
             @daemon.create_pidfile
         end
@@ -170,7 +170,7 @@ describe Puppet::Daemon do
 
             sync = mock 'sync'
             Puppet::Util.expects(:sync).with(&quot;me&quot;).returns sync
-            
+
             sync.expects(:synchronize).with(Sync::EX)
             @daemon.remove_pidfile
         end</diff>
      <filename>spec/unit/daemon.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ describe Puppet::Indirector, &quot;when registering an indirection&quot; do
         @indirection = @thingie.indirects(:test)
         @indirection.should be_instance_of(Puppet::Indirector::Indirection)
     end
-    
+
     it &quot;should not allow a model to register under multiple names&quot; do
         # Keep track of the indirection instance so we can delete it on cleanup
         @indirection = @thingie.indirects :first</diff>
      <filename>spec/unit/indirector.rb</filename>
    </modified>
    <modified>
      <diff>@@ -47,7 +47,7 @@ describe Puppet::Indirector::ActiveRecord do
 
             @terminus.find(@request)
         end
-        
+
         it &quot;should return nil if no instance is found&quot; do
             @ar_model.expects(:find_by_name).with(@name).returns nil
             @terminus.find(@request).should be_nil</diff>
      <filename>spec/unit/indirector/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@ describe Puppet::Resource::Catalog::ActiveRecord do
             result.should be_instance_of(Puppet::Resource::Catalog)
             result.name.should == &quot;foo&quot;
         end
-        
+
         it &quot;should set each of the host's resources as a transportable resource within the catalog&quot; do
             host = stub 'host', :name =&gt; &quot;foo&quot;
             Puppet::Rails::Host.expects(:find_by_name).returns host</diff>
      <filename>spec/unit/indirector/catalog/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -189,7 +189,7 @@ describe Puppet::Resource::Catalog::Compiler do
         end
 
         it &quot;should look node information up via the Node class with the provided key&quot; do
-            @node.stubs :merge 
+            @node.stubs :merge
             Puppet::Node.expects(:find).with(@name).returns(@node)
             @compiler.find(@request)
         end</diff>
      <filename>spec/unit/indirector/catalog/compiler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@ describe Puppet::Indirector::File do
 
         @request = stub 'request', :key =&gt; @path
     end
-  
+
     describe Puppet::Indirector::File, &quot; when finding files&quot; do
 
         it &quot;should provide a method to return file contents at a specified path&quot; do</diff>
      <filename>spec/unit/indirector/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -209,7 +209,7 @@ describe Puppet::Indirector::Indirection do
                 @indirection.request(:funtest, &quot;yayness&quot;).should equal(request)
             end
         end
-      
+
         describe &quot;and looking for a model instance&quot; do
             before { @method = :find }
 
@@ -425,7 +425,7 @@ describe Puppet::Indirector::Indirection do
                 end
             end
         end
-        
+
         describe &quot;and removing a model instance&quot; do
             before { @method = :destroy }
 
@@ -580,7 +580,7 @@ describe Puppet::Indirector::Indirection do
             @indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
             Puppet::Indirector::Indirection.instance(:test).should equal(@indirection)
         end
-        
+
         it &quot;should return nil when the named indirection has not been created&quot; do
             Puppet::Indirector::Indirection.instance(:test).should be_nil
         end
@@ -590,7 +590,7 @@ describe Puppet::Indirector::Indirection do
             @indirection = Puppet::Indirector::Indirection.new(mock_model, :test)
             Puppet::Indirector::Indirection.model(:test).should equal(mock_model)
         end
-        
+
         it &quot;should return nil when no model matches the requested name&quot; do
             Puppet::Indirector::Indirection.model(:test).should be_nil
         end
@@ -776,10 +776,10 @@ describe Puppet::Indirector::Indirection do
 
         describe &quot;and saving&quot; do
         end
-        
+
         describe &quot;and finding&quot; do
         end
-        
+
         after :each do
             @indirection.delete
         end</diff>
      <filename>spec/unit/indirector/indirection.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ describe Puppet::Node::Ldap do
     describe &quot;when searching for a single node&quot; do
         before :each do
             @searcher = Puppet::Node::Ldap.new
-            
+
             @name = &quot;mynode.domain.com&quot;
             @node = stub 'node', :name =&gt; @name, :name= =&gt; nil
             @node.stub_everything</diff>
      <filename>spec/unit/indirector/node/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,6 @@ describe Puppet::Node::Rest do
     before do
         @searcher = Puppet::Node::Rest.new
     end
-    
-    
+
+
 end</diff>
      <filename>spec/unit/indirector/node/rest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,7 +22,7 @@ describe &quot;a REST http call&quot;, :shared =&gt; true do
         @searcher.expects(:deserialize).with(@response).returns &quot;myobject&quot;
 
         @searcher.send(@method, *@arguments).should == 'myobject'
-    end        
+    end
 end
 
 describe Puppet::Indirector::REST do
@@ -171,7 +171,7 @@ describe Puppet::Indirector::REST do
             @searcher.expects(:deserialize).with(@response).returns &quot;myobject&quot;
 
             @searcher.find(@request).should == 'myobject'
-        end        
+        end
 
         it &quot;should use the URI generated by the Handler module&quot; do
             @searcher.expects(:indirection2uri).with(@request).returns &quot;/my/uri&quot;
@@ -218,7 +218,7 @@ describe Puppet::Indirector::REST do
             @searcher.expects(:deserialize).with(@response, true).returns &quot;myobject&quot;
 
             @searcher.search(@request).should == 'myobject'
-        end        
+        end
 
         it &quot;should use the URI generated by the Handler module&quot; do
             @searcher.expects(:indirection2uri).with(@request).returns &quot;/mys/uri&quot;
@@ -243,7 +243,7 @@ describe Puppet::Indirector::REST do
             @searcher.expects(:deserialize).raises(ArgumentError)
             lambda { @searcher.search(@request) }.should raise_error(ArgumentError)
         end
-    end        
+    end
 
     describe &quot;when doing a destroy&quot; do
         before :each do
@@ -270,7 +270,7 @@ describe Puppet::Indirector::REST do
             @searcher.expects(:deserialize).with(@response).returns &quot;myobject&quot;
 
             @searcher.destroy(@request).should == 'myobject'
-        end        
+        end
 
         it &quot;should use the URI generated by the Handler module&quot; do
             @searcher.expects(:indirection2uri).with(@request).returns &quot;/my/uri&quot;
@@ -341,7 +341,7 @@ describe Puppet::Indirector::REST do
             @searcher.expects(:deserialize).with(@response).returns &quot;myobject&quot;
 
             @searcher.save(@request).should == 'myobject'
-        end        
+        end
 
         it &quot;should provide an Accept header containing the list of supported formats joined with commas&quot; do
             @connection.expects(:put).with { |path, data, args| args[&quot;Accept&quot;] == &quot;supported, formats&quot; }.returns(@response)</diff>
      <filename>spec/unit/indirector/rest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -62,7 +62,7 @@ describe Puppet::Indirector::SslFile do
             Puppet::SSL::Host.expects(:ca_name).returns &quot;amaca&quot;
             @searcher.should be_ca(&quot;amaca&quot;)
         end
-        
+
         describe &quot;when choosing the location for certificates&quot; do
             it &quot;should set them at the ca setting's path if a ca setting is available and the name resolves to the CA name&quot; do
                 @file_class.store_in nil</diff>
      <filename>spec/unit/indirector/ssl_file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -157,7 +157,7 @@ describe Puppet::Network::Handler::FileServer do
         it &quot;should list a file within a directory when given the file path with recursion&quot; do
             @mount.list(&quot;facter/fact.rb&quot;, true, &quot;false&quot;).should == [[&quot;/&quot;, &quot;file&quot;], [&quot;/&quot;, &quot;file&quot;]]
          end
-        
+
         it &quot;should return a merged view of all plugins for all modules&quot; do
             list = @mount.list(&quot;facter&quot;,true,false)
             list.should == [[&quot;/&quot;, &quot;directory&quot;], [&quot;/fact.rb&quot;, &quot;file&quot;], [&quot;/&quot;, &quot;directory&quot;], [&quot;/fact.rb&quot;, &quot;file&quot;]]</diff>
      <filename>spec/unit/network/handler/fileserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ describe Puppet::Network::HTTP do
     it &quot;should return the webrick HTTP server class when asked for a webrick server&quot; do
         Puppet::Network::HTTP.server_class_by_type(:webrick).should be(Puppet::Network::HTTP::WEBrick)
     end
-    
+
     describe &quot;when asked for a mongrel server&quot; do
         if Puppet.features.mongrel?
             it &quot;should return the mongrel server class&quot; do
@@ -23,12 +23,12 @@ describe Puppet::Network::HTTP do
             end
         end
     end
-    
+
     it &quot;should fail to return the mongrel HTTP server class if mongrel is not available &quot; do
         Puppet.features.expects(:mongrel?).returns(false)
         Proc.new { Puppet::Network::HTTP.server_class_by_type(:mongrel) }.should raise_error(ArgumentError)
     end
-    
+
     it &quot;should return an error when asked for an unknown server&quot; do
         Proc.new { Puppet::Network::HTTP.server_class_by_type :foo }.should raise_error(ArgumentError)
     end</diff>
      <filename>spec/unit/network/http.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ describe Puppet::Network::HTTP::Handler do
     before do
         @handler = HttpHandled.new
     end
-    
+
     it &quot;should include the v1 REST API&quot; do
         Puppet::Network::HTTP::Handler.ancestors.should be_include(Puppet::Network::HTTP::API::V1)
     end</diff>
      <filename>spec/unit/network/http/handler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ require 'puppet/network/http'
 
 describe &quot;Puppet::Network::HTTP::Mongrel&quot;, &quot;after initializing&quot; do
     confine &quot;Mongrel is not available&quot; =&gt; Puppet.features.mongrel?
-    
+
     it &quot;should not be listening&quot; do
         require 'puppet/network/http/mongrel'
 
@@ -33,34 +33,34 @@ describe &quot;Puppet::Network::HTTP::Mongrel&quot;, &quot;when turning on listening&quot; do
 
         @listen_params = { :address =&gt; &quot;127.0.0.1&quot;, :port =&gt; 31337, :protocols =&gt; [ :rest, :xmlrpc ], :xmlrpc_handlers =&gt; [ :status, :fileserver ] }
     end
-    
+
     it &quot;should fail if already listening&quot; do
         @server.listen(@listen_params)
         Proc.new { @server.listen(@listen_params) }.should raise_error(RuntimeError)
     end
-    
+
     it &quot;should require at least one protocol&quot; do
         Proc.new { @server.listen(@listen_params.delete_if {|k,v| :protocols == k}) }.should raise_error(ArgumentError)
     end
-    
+
     it &quot;should require a listening address to be specified&quot; do
         Proc.new { @server.listen(@listen_params.delete_if {|k,v| :address == k})}.should raise_error(ArgumentError)
     end
-    
+
     it &quot;should require a listening port to be specified&quot; do
         Proc.new { @server.listen(@listen_params.delete_if {|k,v| :port == k})}.should raise_error(ArgumentError)
     end
-    
+
     it &quot;should order a mongrel server to start&quot; do
         @mock_mongrel.expects(:run)
         @server.listen(@listen_params)
     end
-    
+
     it &quot;should tell mongrel to listen on the specified address and port&quot; do
         Mongrel::HttpServer.expects(:new).with(&quot;127.0.0.1&quot;, 31337).returns(@mock_mongrel)
         @server.listen(@listen_params)
     end
-    
+
     it &quot;should be listening&quot; do
         Mongrel::HttpServer.expects(:new).returns(@mock_mongrel)
         @server.listen(@listen_params)
@@ -72,9 +72,9 @@ describe &quot;Puppet::Network::HTTP::Mongrel&quot;, &quot;when turning on listening&quot; do
             Puppet::Network::HTTP::MongrelREST.expects(:new).returns &quot;myhandler&quot;
             @mock_mongrel.expects(:register).with(&quot;/&quot;, &quot;myhandler&quot;)
 
-            @server.listen(@listen_params)        
+            @server.listen(@listen_params)
         end
-        
+
         it &quot;should use a Mongrel + REST class to configure Mongrel when REST services are requested&quot; do
             @server.expects(:class_for_protocol).with(:rest).at_least_once.returns(Puppet::Network::HTTP::MongrelREST)
             @server.listen(@listen_params)
@@ -102,26 +102,26 @@ end
 
 describe &quot;Puppet::Network::HTTP::Mongrel&quot;, &quot;when turning off listening&quot; do
     confine &quot;Mongrel is not available&quot; =&gt; Puppet.features.mongrel?
-    
+
     before do
         @mock_mongrel = mock('mongrel httpserver')
         @mock_mongrel.stubs(:run)
         @mock_mongrel.stubs(:register)
         Mongrel::HttpServer.stubs(:new).returns(@mock_mongrel)
-        @server = Puppet::Network::HTTP::Mongrel.new        
+        @server = Puppet::Network::HTTP::Mongrel.new
         @listen_params = { :address =&gt; &quot;127.0.0.1&quot;, :port =&gt; 31337, :handlers =&gt; [ :node, :catalog ], :protocols =&gt; [ :rest ] }
     end
-    
+
     it &quot;should fail unless listening&quot; do
         Proc.new { @server.unlisten }.should raise_error(RuntimeError)
     end
-    
+
     it &quot;should order mongrel server to stop&quot; do
         @server.listen(@listen_params)
         @mock_mongrel.expects(:stop)
         @server.unlisten
     end
-    
+
     it &quot;should not be listening&quot; do
         @server.listen(@listen_params)
         @mock_mongrel.stubs(:stop)</diff>
      <filename>spec/unit/network/http/mongrel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ end
 describe Puppet::Network::HTTP::WEBrick, &quot;when turning on listening&quot; do
     before do
         @mock_webrick = stub('webrick', :[] =&gt; {})
-        [:mount, :start, :shutdown].each {|meth| @mock_webrick.stubs(meth)}        
+        [:mount, :start, :shutdown].each {|meth| @mock_webrick.stubs(meth)}
         WEBrick::HTTPServer.stubs(:new).returns(@mock_webrick)
         @server = Puppet::Network::HTTP::WEBrick.new
         [:setup_logger, :setup_ssl].each {|meth| @server.stubs(meth).returns({})} # the empty hash is required because of how we're merging
@@ -37,7 +37,7 @@ describe Puppet::Network::HTTP::WEBrick, &quot;when turning on listening&quot; do
     end
 
     it &quot;should require a listening port to be specified&quot; do
-        Proc.new { @server.listen(@listen_params.delete_if {|k,v| :port == k})}.should raise_error(ArgumentError)        
+        Proc.new { @server.listen(@listen_params.delete_if {|k,v| :port == k})}.should raise_error(ArgumentError)
     end
 
     it &quot;should order a webrick server to start&quot; do
@@ -146,7 +146,7 @@ describe Puppet::Network::HTTP::WEBrick, &quot;when looking up the class to handle a
     end
 
     it &quot;should accept a protocol&quot; do
-        lambda { Puppet::Network::HTTP::WEBrick.class_for_protocol(&quot;bob&quot;) }.should_not raise_error(ArgumentError)        
+        lambda { Puppet::Network::HTTP::WEBrick.class_for_protocol(&quot;bob&quot;) }.should_not raise_error(ArgumentError)
     end
 
     it &quot;should use a WEBrick + REST class when a REST protocol is specified&quot; do
@@ -163,7 +163,7 @@ describe Puppet::Network::HTTP::WEBrick, &quot;when turning off listening&quot; do
         @mock_webrick = stub('webrick', :[] =&gt; {})
         [:mount, :start, :shutdown].each {|meth| @mock_webrick.stubs(meth)}
         WEBrick::HTTPServer.stubs(:new).returns(@mock_webrick)
-        @server = Puppet::Network::HTTP::WEBrick.new        
+        @server = Puppet::Network::HTTP::WEBrick.new
         [:setup_logger, :setup_ssl].each {|meth| @server.stubs(meth).returns({})} # the empty hash is required because of how we're merging
         @listen_params = { :address =&gt; &quot;127.0.0.1&quot;, :port =&gt; 31337, :handlers =&gt; [ :node, :catalog ], :protocols =&gt; [ :rest ] }
     end
@@ -188,7 +188,7 @@ end
 describe Puppet::Network::HTTP::WEBrick do
     before do
         @mock_webrick = stub('webrick', :[] =&gt; {})
-        [:mount, :start, :shutdown].each {|meth| @mock_webrick.stubs(meth)}        
+        [:mount, :start, :shutdown].each {|meth| @mock_webrick.stubs(meth)}
         WEBrick::HTTPServer.stubs(:new).returns(@mock_webrick)
         @server = Puppet::Network::HTTP::WEBrick.new
     end</diff>
      <filename>spec/unit/network/http/webrick.rb</filename>
    </modified>
    <modified>
      <diff>@@ -508,9 +508,9 @@ describe Puppet::Network::Rights do
             # mocha doesn't allow testing super...
             # it &quot;should delegate to the AuthStore for the result&quot; do
             #     @acl.method(:save)
-            # 
+            #
             #     @acl.expects(:allowed?).with(&quot;me&quot;,&quot;127.0.0.1&quot;)
-            # 
+            #
             #     @acl.allowed?(&quot;me&quot;,&quot;127.0.0.1&quot;, :save)
             # end
         end</diff>
      <filename>spec/unit/network/rights.rb</filename>
    </modified>
    <modified>
      <diff>@@ -68,7 +68,7 @@ describe Puppet::Network::Server do
         it &quot;should fail to initialize if no listening port can be found&quot; do
             Puppet.settings.stubs(:value).with(:bindaddress).returns(&quot;127.0.0.1&quot;)
             Puppet.settings.stubs(:value).with(:masterport).returns(nil)
-            lambda { Puppet::Network::Server.new }.should raise_error(ArgumentError)        
+            lambda { Puppet::Network::Server.new }.should raise_error(ArgumentError)
         end
 
         it &quot;should use the Puppet configurator to determine which HTTP server will be used to provide access to clients&quot; do
@@ -164,7 +164,7 @@ describe Puppet::Network::Server do
 
             sync = mock 'sync'
             Puppet::Util.expects(:sync).with(&quot;me&quot;).returns sync
-            
+
             sync.expects(:synchronize).with(Sync::EX)
             @server.create_pidfile
         end
@@ -201,7 +201,7 @@ describe Puppet::Network::Server do
 
             sync = mock 'sync'
             Puppet::Util.expects(:sync).with(&quot;me&quot;).returns sync
-            
+
             sync.expects(:synchronize).with(Sync::EX)
             @server.remove_pidfile
         end
@@ -265,7 +265,7 @@ describe Puppet::Network::Server do
 
         it &quot;should allow the use of indirection names to specify which indirections are to be no longer accessible to clients&quot; do
             @server.register(:foo)
-            lambda { @server.unregister(:foo) }.should_not raise_error    
+            lambda { @server.unregister(:foo) }.should_not raise_error
         end
 
         it &quot;should leave other indirections accessible to clients when turning off indirections&quot; do
@@ -292,7 +292,7 @@ describe Puppet::Network::Server do
 
         it &quot;should disable client access immediately when turning off indirections&quot; do
             @server.register(:foo, :bar)
-            @server.unregister(:foo)    
+            @server.unregister(:foo)
             lambda { @server.unregister(:foo) }.should raise_error(ArgumentError)
         end
 
@@ -339,7 +339,7 @@ describe Puppet::Network::Server do
         @server2.unregister(:foo, :xyzzy)
         lambda { @server.unregister(:xyzzy) }.should raise_error(ArgumentError)
         lambda { @server2.unregister(:bar) }.should raise_error(ArgumentError)
-    end  
+    end
 
     describe &quot;when managing xmlrpc registrations&quot; do
         before do
@@ -392,7 +392,7 @@ describe Puppet::Network::Server do
 
         it &quot;should disable client access immediately when turning off namespaces&quot; do
             @server.register_xmlrpc(:foo, :bar)
-            @server.unregister_xmlrpc(:foo)    
+            @server.unregister_xmlrpc(:foo)
             lambda { @server.unregister_xmlrpc(:foo) }.should raise_error(ArgumentError)
         end
 
@@ -414,7 +414,7 @@ describe Puppet::Network::Server do
 
         it &quot;should indicate that it is not listening&quot; do
             @server.should_not be_listening
-        end  
+        end
 
         it &quot;should not allow listening to be turned off&quot; do
             lambda { @server.unlisten }.should raise_error(RuntimeError)
@@ -461,7 +461,7 @@ describe Puppet::Network::Server do
         it &quot;should fetch an instance of an HTTP server&quot; do
             @server.stubs(:http_server_class).returns(@mock_http_server_class)
             @mock_http_server_class.expects(:new).returns(@mock_http_server)
-            @server.listen        
+            @server.listen
         end
 
         it &quot;should cause the HTTP server to listen&quot; do
@@ -507,7 +507,7 @@ describe Puppet::Network::Server do
             @mock_http_server.expects(:listen).with do |args|
                args[:protocols] == [ :rest, :xmlrpc ]
             end
-            @server.listen      
+            @server.listen
         end
     end
 
@@ -528,7 +528,7 @@ describe Puppet::Network::Server do
             Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
 
             @server.register(:foo)
-            lambda { @server.unregister(:foo) }.should raise_error(RuntimeError) 
+            lambda { @server.unregister(:foo) }.should raise_error(RuntimeError)
         end
     end
 end</diff>
      <filename>spec/unit/network/server.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,11 +13,11 @@ describe Puppet::Node::Environment do
     it &quot;should include the Cacher module&quot; do
         Puppet::Node::Environment.ancestors.should be_include(Puppet::Util::Cacher)
     end
-    
+
     it &quot;should use the filetimeout for the ttl for the modulepath&quot; do
         Puppet::Node::Environment.attr_ttl(:modulepath).should == Integer(Puppet[:filetimeout])
     end
-    
+
     it &quot;should use the filetimeout for the ttl for the module list&quot; do
         Puppet::Node::Environment.attr_ttl(:modules).should == Integer(Puppet[:filetimeout])
     end</diff>
      <filename>spec/unit/node/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,7 +36,7 @@ describe Puppet::Node::Facts, &quot;when indirecting&quot; do
         Puppet.settings.expects(:value).with(:downcasefacts).returns true
 
         @facts.values[&quot;one&quot;] = &quot;Two&quot;
-        
+
         @facts.downcase_if_necessary
         @facts.values[&quot;one&quot;].should == &quot;two&quot;
     end</diff>
      <filename>spec/unit/node/facts.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 require 'puppet/parser/ast'
 
 describe Puppet::Parser::AST do
-    
+
     it &quot;should use the file lookup module&quot; do
         Puppet::Parser::AST.ancestors.should be_include(Puppet::FileCollection::Lookup)
     end</diff>
      <filename>spec/unit/parser/ast.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ describe Puppet::Parser::AST::ArithmeticOperator do
         lval.expects(:safeevaluate).with(@scope).returns(1)
         rval = stub &quot;rval&quot;
         rval.expects(:safeevaluate).with(@scope).returns(2)
-        
+
         operator = ast::ArithmeticOperator.new :rval =&gt; rval, :operator =&gt; &quot;+&quot;, :lval =&gt; lval
         operator.evaluate(@scope)
     end
@@ -65,7 +65,7 @@ describe Puppet::Parser::AST::ArithmeticOperator do
         @scope.expects(:lookupvar).with(&quot;two&quot;).returns(2)
         one = ast::Variable.new( :value =&gt; &quot;one&quot; )
         two = ast::Variable.new( :value =&gt; &quot;two&quot; )
-        
+
         operator = ast::ArithmeticOperator.new :lval =&gt; one, :operator =&gt; &quot;+&quot;, :rval =&gt; two
         operator.evaluate(@scope).should == 3
     end</diff>
      <filename>spec/unit/parser/ast/arithmetic_operator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,14 +11,14 @@ describe Puppet::Parser::AST::ASTArray do
         array = Puppet::Parser::AST::ASTArray.new :children =&gt; []
         array.should respond_to(:[])
     end
-    
+
     it &quot;should evaluate all its children&quot; do
         item1 = stub &quot;item1&quot;, :is_a? =&gt; true
         item2 = stub &quot;item2&quot;, :is_a? =&gt; true
 
         item1.expects(:safeevaluate).with(@scope).returns(123)
         item2.expects(:safeevaluate).with(@scope).returns(246)
-        
+
         operator = Puppet::Parser::AST::ASTArray.new :children =&gt; [item1,item2]
         operator.evaluate(@scope)
     end
@@ -29,9 +29,9 @@ describe Puppet::Parser::AST::ASTArray do
         item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
         item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
         item2.stubs(:each).yields(item1)
-        
+
         item1.expects(:safeevaluate).with(@scope).returns(123)
-        
+
         operator = Puppet::Parser::AST::ASTArray.new :children =&gt; [item2]
         operator.evaluate(@scope).should == [123]
     end
@@ -42,9 +42,9 @@ describe Puppet::Parser::AST::ASTArray do
         item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
         item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
         item2.stubs(:each).yields([item1])
-        
+
         item1.expects(:safeevaluate).with(@scope).returns(123)
-        
+
         operator = Puppet::Parser::AST::ASTArray.new :children =&gt; [item2]
         operator.evaluate(@scope).should == [123]
     end
@@ -55,12 +55,12 @@ describe Puppet::Parser::AST::ASTArray do
         item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
         item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
         item2.stubs(:each).yields([item1])
-        
+
         item1.expects(:safeevaluate).with(@scope).returns([123])
-        
+
         operator = Puppet::Parser::AST::ASTArray.new :children =&gt; [item2]
         operator.evaluate(@scope).should == [[123]]
     end
-    
-    
+
+
 end</diff>
      <filename>spec/unit/parser/ast/astarray.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ describe Puppet::Parser::AST::BooleanOperator do
         lval.expects(:safeevaluate).with(@scope).returns(&quot;true&quot;)
         rval = stub &quot;rval&quot;, :safeevaluate =&gt; false
         rval.expects(:safeevaluate).never
-        
+
         operator = ast::BooleanOperator.new :rval =&gt; rval, :operator =&gt; &quot;or&quot;, :lval =&gt; lval
         operator.evaluate(@scope)
     end</diff>
      <filename>spec/unit/parser/ast/boolean_operator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,9 +7,9 @@ describe Puppet::Parser::AST::CollExpr do
     ast = Puppet::Parser::AST
 
     before :each do
-        @scope = Puppet::Parser::Scope.new()        
+        @scope = Puppet::Parser::Scope.new()
     end
-    
+
     describe &quot;when evaluating with two operands&quot; do
         before :each do
             @test1 = mock 'test1'
@@ -31,14 +31,14 @@ describe Puppet::Parser::AST::CollExpr do
         end
 
         it &quot;should propagate expression type and form to child if expression themselves&quot; do
-            [@test1, @test2].each do |t| 
+            [@test1, @test2].each do |t|
                 t.expects(:is_a?).returns(true)
                 t.expects(:form).returns(false)
                 t.expects(:type).returns(false)
                 t.expects(:type=)
                 t.expects(:form=)
             end
-        
+
             collexpr = ast::CollExpr.new(:test1 =&gt; @test1, :test2 =&gt; @test2, :oper=&gt;&quot;==&quot;, :form =&gt; true, :type =&gt; true)
             result = collexpr.evaluate(@scope)
         end
@@ -48,7 +48,7 @@ describe Puppet::Parser::AST::CollExpr do
                 @resource = mock 'resource'
                 @resource.expects(:[]).with(&quot;test1&quot;).at_least(1).returns(&quot;test2&quot;)
             end
-        
+
             it &quot;should evaluate like the original expression for ==&quot; do
                 collexpr = ast::CollExpr.new(:test1 =&gt; @test1, :test2 =&gt; @test2, :oper =&gt; &quot;==&quot;)
                 collexpr.evaluate(@scope)[1].call(@resource).should === (@resource[&quot;test1&quot;] == &quot;test2&quot;)
@@ -73,7 +73,7 @@ describe Puppet::Parser::AST::CollExpr do
             end
         end
     end
-    
+
     it &quot;should check for array member equality if resource parameter is an array for ==&quot; do
         array = mock 'array', :safeevaluate =&gt; &quot;array&quot;
         test1 = mock 'test1'</diff>
      <filename>spec/unit/parser/ast/collexpr.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ describe Puppet::Parser::AST::ComparisonOperator do
         lval.expects(:safeevaluate).with(@scope)
         rval = stub &quot;rval&quot;
         rval.expects(:safeevaluate).with(@scope)
-        
+
         operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; lval, :operator =&gt; &quot;==&quot;, :rval =&gt; rval
         operator.evaluate(@scope)
     end
@@ -22,18 +22,18 @@ describe Puppet::Parser::AST::ComparisonOperator do
     it &quot;should convert arguments strings to numbers if they are&quot; do
         Puppet::Parser::Scope.expects(:number?).with(&quot;1&quot;).returns(1)
         Puppet::Parser::Scope.expects(:number?).with(&quot;2&quot;).returns(2)
-        
+
         operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; @one, :operator =&gt; &quot;==&quot;, :rval =&gt; @two
         operator.evaluate(@scope)
     end
-    
+
     %w{&lt; &gt; &lt;= &gt;= ==}.each do |oper|
         it &quot;should use string comparison #{oper} if operands are strings&quot; do
             lval = stub 'one', :safeevaluate =&gt; &quot;one&quot;
             rval = stub 'two', :safeevaluate =&gt; &quot;two&quot;
             Puppet::Parser::Scope.stubs(:number?).with(&quot;one&quot;).returns(nil)
             Puppet::Parser::Scope.stubs(:number?).with(&quot;two&quot;).returns(nil)
-    
+
             operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; lval, :operator =&gt; oper, :rval =&gt; rval
             operator.evaluate(@scope).should == &quot;one&quot;.send(oper,&quot;two&quot;)
         end
@@ -44,11 +44,11 @@ describe Puppet::Parser::AST::ComparisonOperator do
         rval = stub 'two', :safeevaluate =&gt; &quot;2&quot;
         Puppet::Parser::Scope.stubs(:number?).with(&quot;one&quot;).returns(nil)
         Puppet::Parser::Scope.stubs(:number?).with(&quot;2&quot;).returns(2)
-        
+
         operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; lval, :operator =&gt; &quot;&gt;&quot;, :rval =&gt; rval
         lambda { operator.evaluate(@scope) }.should raise_error(ArgumentError)
     end
-    
+
     it &quot;should fail for an unknown operator&quot; do
         lambda { operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; @one, :operator =&gt; &quot;or&quot;, :rval =&gt; @two }.should raise_error
     end
@@ -56,7 +56,7 @@ describe Puppet::Parser::AST::ComparisonOperator do
     %w{&lt; &gt; &lt;= &gt;= ==}.each do |oper|
        it &quot;should return the result of using '#{oper}' to compare the left and right sides&quot; do
            operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; @one, :operator =&gt; oper, :rval =&gt; @two
-           
+
            operator.evaluate(@scope).should == 1.send(oper,2)
        end
     end
@@ -73,7 +73,7 @@ describe Puppet::Parser::AST::ComparisonOperator do
 
         @scope.expects(:lookupvar).with(&quot;one&quot;).returns(1)
         @scope.expects(:lookupvar).with(&quot;two&quot;).returns(2)
-        
+
         operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; one, :operator =&gt; &quot;&lt;&quot;, :rval =&gt; two
         operator.evaluate(@scope).should == true
     end
@@ -84,7 +84,7 @@ describe Puppet::Parser::AST::ComparisonOperator do
            ten = stub 'one', :safeevaluate =&gt; &quot;10&quot;
            nine = stub 'two', :safeevaluate =&gt; &quot;9&quot;
            operator = Puppet::Parser::AST::ComparisonOperator.new :lval =&gt; ten, :operator =&gt; oper, :rval =&gt; nine
-           
+
            operator.evaluate(@scope).should == 10.send(oper,9)
        end
     end</diff>
      <filename>spec/unit/parser/ast/comparison_operator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ describe Puppet::Parser::AST::Minus do
     it &quot;should evaluate its argument&quot; do
         value = stub &quot;value&quot;
         value.expects(:safeevaluate).with(@scope).returns(123)
-        
+
         operator = Puppet::Parser::AST::Minus.new :value =&gt; value
         operator.evaluate(@scope)
     end</diff>
      <filename>spec/unit/parser/ast/minus.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ describe Puppet::Parser::AST::Not do
     it &quot;should evaluate its child expression&quot; do
         val = stub &quot;val&quot;
         val.expects(:safeevaluate).with(@scope)
-        
+
         operator = Puppet::Parser::AST::Not.new :value =&gt; val
         operator.evaluate(@scope)
     end</diff>
      <filename>spec/unit/parser/ast/not.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,19 +31,19 @@ describe Puppet::Parser::AST::ResourceOverride do
     it &quot;should return the overriden resource directly when called with one item&quot; do
         klass = stub 'klass', :title =&gt; &quot;title&quot;, :type =&gt; &quot;one&quot;
         object = mock 'object', :safeevaluate =&gt; klass
-        override = ast::ResourceOverride.new(:object =&gt; object , :params =&gt; @params).evaluate(@scope)        
+        override = ast::ResourceOverride.new(:object =&gt; object , :params =&gt; @params).evaluate(@scope)
         override.should be_an_instance_of(Puppet::Parser::Resource)
         override.title.should == &quot;title&quot;
-        override.type.should == &quot;One&quot; 
+        override.type.should == &quot;One&quot;
     end
 
     it &quot;should return an array of overriden resources when called with an array of titles&quot; do
         klass1 = stub 'klass1', :title =&gt; &quot;title1&quot;, :type =&gt; &quot;one&quot;
         klass2 = stub 'klass2', :title =&gt; &quot;title2&quot;, :type =&gt; &quot;one&quot;
-        
+
         object = mock 'object', :safeevaluate =&gt; [klass1,klass2]
-        
-        override = ast::ResourceOverride.new(:object =&gt; object , :params =&gt; @params).evaluate(@scope)        
+
+        override = ast::ResourceOverride.new(:object =&gt; object , :params =&gt; @params).evaluate(@scope)
         override.should have(2).elements
         override.each {|o| o.should be_an_instance_of(Puppet::Parser::Resource) }
     end</diff>
      <filename>spec/unit/parser/ast/resource_override.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ describe Puppet::Parser::AST::ResourceReference do
         it &quot;should evaluate correctly reference to define&quot; do
             klass = stub 'klass', :title =&gt; &quot;three&quot;, :classname =&gt; type
             @scope.stubs(:finddefine).returns(klass)
-        
+
             newref(&quot;three&quot;, type).evaluate(@scope).to_ref.should == Puppet::Parser::Resource::Reference.new( :type =&gt; type, :title =&gt; &quot;three&quot; ).to_ref
         end
     end
@@ -31,13 +31,13 @@ describe Puppet::Parser::AST::ResourceReference do
     it &quot;should be able to call qualified_class&quot; do
         klass = stub 'klass', :title =&gt; &quot;three&quot;, :classname =&gt; &quot;one&quot;
         @scope.expects(:findclass).with(&quot;one&quot;).returns(klass)
-        newref(&quot;three&quot;,&quot;class&quot;).qualified_class(@scope,&quot;one&quot;).should == &quot;one&quot; 
+        newref(&quot;three&quot;,&quot;class&quot;).qualified_class(@scope,&quot;one&quot;).should == &quot;one&quot;
     end
 
     it &quot;should be able to find qualified classes when evaluating&quot; do
         klass = stub 'klass', :title =&gt; &quot;one&quot;, :classname =&gt; &quot;one&quot;
         @scope.stubs(:findclass).returns(klass)
-        
+
         evaled = newref(&quot;one&quot;, &quot;class&quot;).evaluate(@scope)
         evaled.type.should == &quot;Class&quot;
         evaled.title.should == &quot;one&quot;
@@ -47,7 +47,7 @@ describe Puppet::Parser::AST::ResourceReference do
         titles = mock 'titles', :safeevaluate =&gt; [&quot;title1&quot;,&quot;title2&quot;]
         ref = ast::ResourceReference.new( :title =&gt; titles, :type =&gt; &quot;Resource&quot; )
         ref.stubs(:qualified_type).with(@scope).returns(&quot;Resource&quot;)
-        
+
         ref.evaluate(@scope).should have(2).elements
     end
 
@@ -56,7 +56,7 @@ describe Puppet::Parser::AST::ResourceReference do
         ref = ast::ResourceReference.new( :title =&gt; titles, :type =&gt; &quot;Class&quot; )
         ref.expects(:qualified_class).with(@scope,&quot;title1&quot;).returns(&quot;class&quot;)
         ref.expects(:qualified_class).with(@scope,&quot;title2&quot;).returns(&quot;class&quot;)
-        
+
         ref.evaluate(@scope)
     end
 </diff>
      <filename>spec/unit/parser/ast/resource_reference.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,11 +12,11 @@ describe Puppet::Parser::AST::VarDef do
         it &quot;should evaluate arguments&quot; do
             name = mock 'name'
             value = mock 'value'
-            
+
             name.expects(:safeevaluate).with(@scope)
             value.expects(:safeevaluate).with(@scope)
 
-            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,  
+            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,
                                                      :line =&gt; nil
             vardef.evaluate(@scope)
         end
@@ -24,21 +24,21 @@ describe Puppet::Parser::AST::VarDef do
         it &quot;should be in append=false mode if called without append&quot; do
             name = stub 'name', :safeevaluate =&gt; &quot;var&quot;
             value = stub 'value', :safeevaluate =&gt; &quot;1&quot;
-            
+
             @scope.expects(:setvar).with { |name,value,file,line,append| append == nil }
-            
-            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,  
+
+            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,
                                                      :line =&gt; nil
             vardef.evaluate(@scope)
         end
-        
+
         it &quot;should call scope in append mode if append is true&quot; do
             name = stub 'name', :safeevaluate =&gt; &quot;var&quot;
             value = stub 'value', :safeevaluate =&gt; &quot;1&quot;
-            
+
             @scope.expects(:setvar).with { |name,value,file,line,append| append == true }
-            
-            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,  
+
+            vardef = Puppet::Parser::AST::VarDef.new :name =&gt; name, :value =&gt; value, :file =&gt; nil,
                                                      :line =&gt; nil, :append =&gt; true
             vardef.evaluate(@scope)
         end</diff>
      <filename>spec/unit/parser/ast/vardef.rb</filename>
    </modified>
    <modified>
      <diff>@@ -496,7 +496,7 @@ describe Puppet::Parser::Collector, &quot;when building its ActiveRecord query for co
 
         Puppet::Rails::Resource.stubs(:find).with { |*arguments|
             options = arguments[3]
-            options[:conditions][0] =~ /^host_id != \?/ and options[:conditions][1] == 5 
+            options[:conditions][0] =~ /^host_id != \?/ and options[:conditions][1] == 5
         }.returns([])
 
         @collector.evaluate</diff>
      <filename>spec/unit/parser/collector.rb</filename>
    </modified>
    <modified>
      <diff>@@ -187,7 +187,7 @@ describe Puppet::Parser::Compiler do
 
             @compiler.add_resource(@scope, resource)
             resource.expects(:evaluate).never
-        
+
             @compiler.compile
         end
 
@@ -198,7 +198,7 @@ describe Puppet::Parser::Compiler do
 
             # We have to now mark the resource as evaluated
             resource.expects(:evaluate).with { |*whatever| resource.evaluated = true }
-        
+
             @compiler.compile
         end
 
@@ -206,7 +206,7 @@ describe Puppet::Parser::Compiler do
             resource = stub 'already_evaluated', :ref =&gt; &quot;File[testing]&quot;, :builtin? =&gt; false, :evaluated? =&gt; true, :virtual? =&gt; false
             @compiler.add_resource(@scope, resource)
             resource.expects(:evaluate).never
-        
+
             @compiler.compile
         end
 
@@ -220,7 +220,7 @@ describe Puppet::Parser::Compiler do
             resource.expects(:evaluate).with { |*whatever| resource.evaluated = true; @compiler.add_resource(@scope, resource2) }
             resource2.expects(:evaluate).with { |*whatever| resource2.evaluated = true }
 
-        
+
             @compiler.compile
         end
 
@@ -296,7 +296,7 @@ describe Puppet::Parser::Compiler do
             @compiler.add_resource(@scope, resource)
 
             resource.expects(:evaluate).never
-        
+
             @compiler.compile
         end
     end
@@ -307,7 +307,7 @@ describe Puppet::Parser::Compiler do
             2.times { |i|
                 coll = mock 'coll%s' % i
                 @compiler.add_collection(coll)
-            
+
                 # This is the hard part -- we have to emulate the fact that
                 # collections delete themselves if they are done evaluating.
                 coll.expects(:evaluate).with do</diff>
      <filename>spec/unit/parser/compiler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ describe Puppet::Parser::Files do
             mod.expects(:template).returns(&quot;/one/mymod/templates/mytemplate&quot;)
             Puppet::Parser::Files.find_template(&quot;mymod/mytemplate&quot;).should == &quot;/one/mymod/templates/mytemplate&quot;
         end
-        
+
         it &quot;should return the file in the templatedir if it exists&quot; do
             Puppet.settings.expects(:value).with(:templatedir, nil).returns(&quot;/my/templates&quot;)
             Puppet[:modulepath] = &quot;/one:/two&quot;</diff>
      <filename>spec/unit/parser/files.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,11 +15,11 @@ describe &quot;the versioncmp function&quot; do
     it &quot;should raise a ParseError if there is less than 2 arguments&quot; do
         lambda { @scope.function_versioncmp([&quot;1.2&quot;]) }.should raise_error(Puppet::ParseError)
     end
-    
+
     it &quot;should raise a ParseError if there is more than 2 arguments&quot; do
         lambda { @scope.function_versioncmp([&quot;1.2&quot;, &quot;2.4.5&quot;, &quot;3.5.6&quot;]) }.should raise_error(Puppet::ParseError)
     end
-    
+
     it &quot;should call Puppet::Util::Package.versioncmp (included in scope)&quot; do
         Puppet::Util::Package.expects(:versioncmp).with(&quot;1.2&quot;, &quot;1.3&quot;).returns(-1)
 </diff>
      <filename>spec/unit/parser/functions/versioncmp.rb</filename>
    </modified>
    <modified>
      <diff>@@ -98,7 +98,7 @@ describe Puppet::Parser::Interpreter do
 
                 @interp.expects(:create_parser).with(:myenv).raises(Puppet::Error, &quot;Could not parse&quot;)
 
-                lambda { @interp.parser(:myenv) }.should raise_error(Puppet::Error) 
+                lambda { @interp.parser(:myenv) }.should raise_error(Puppet::Error)
             end
         end
     end</diff>
      <filename>spec/unit/parser/interpreter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -135,10 +135,10 @@ describe Puppet::Parser::Lexer::TOKENS do
         :LBRACE =&gt; '{',
         :RBRACE =&gt; '}',
         :LPAREN =&gt; '(',
-        :RPAREN =&gt; ')', 
+        :RPAREN =&gt; ')',
         :EQUALS =&gt; '=',
         :ISEQUAL =&gt; '==',
-        :GREATEREQUAL =&gt; '&gt;=', 
+        :GREATEREQUAL =&gt; '&gt;=',
         :GREATERTHAN =&gt; '&gt;',
         :LESSTHAN =&gt; '&lt;',
         :LESSEQUAL =&gt; '&lt;=',
@@ -551,7 +551,7 @@ describe &quot;Puppet::Parser::Lexer in the old tests&quot; do
 
     it &quot;should correctly parse names with numerals&quot; do
        string = %w{1name name1 11names names11}
-    
+
        string.each { |t|
             @lexer.string = t
             @lexer.fullscan.should == [[:NAME,t],[false,false]]</diff>
      <filename>spec/unit/parser/lexer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -40,7 +40,7 @@ describe Puppet::Parser do
         end
 
         it &quot;boolean operation, it should create the correct ast objects&quot; do
-            ast::BooleanOperator.expects(:new).with { 
+            ast::BooleanOperator.expects(:new).with {
                 |h| h[:rval].is_a?(ast::Boolean) and h[:lval].is_a?(ast::Boolean) and h[:operator]==&quot;or&quot;
             }
             @parser.parse(&quot;if true or true { $var = 1 }&quot;)
@@ -48,7 +48,7 @@ describe Puppet::Parser do
         end
 
         it &quot;comparison operation, it should create the correct ast objects&quot; do
-             ast::ComparisonOperator.expects(:new).with { 
+             ast::ComparisonOperator.expects(:new).with {
                  |h| h[:lval].is_a?(ast::Name) and h[:rval].is_a?(ast::Name) and h[:operator]==&quot;&lt;&quot;
              }
              @parser.parse(&quot;if 1 &lt; 2 { $var = 1 }&quot;)
@@ -60,10 +60,10 @@ describe Puppet::Parser do
     describe Puppet::Parser, &quot;when parsing if complex expressions&quot; do
          it &quot;should create a correct ast tree&quot; do
              aststub = stub_everything 'ast'
-             ast::ComparisonOperator.expects(:new).with { 
+             ast::ComparisonOperator.expects(:new).with {
                  |h| h[:rval].is_a?(ast::Name) and h[:lval].is_a?(ast::Name) and h[:operator]==&quot;&gt;&quot;
              }.returns(aststub)
-             ast::ComparisonOperator.expects(:new).with { 
+             ast::ComparisonOperator.expects(:new).with {
                  |h| h[:rval].is_a?(ast::Name) and h[:lval].is_a?(ast::Name) and h[:operator]==&quot;==&quot;
              }.returns(aststub)
              ast::BooleanOperator.expects(:new).with {
@@ -79,7 +79,7 @@ describe Puppet::Parser do
     end
 
     describe Puppet::Parser, &quot;when parsing resource references&quot; do
-        
+
         it &quot;should not raise syntax errors&quot; do
             lambda { @parser.parse('exec { test: param =&gt; File[&quot;a&quot;] }') }.should_not raise_error
         end
@@ -87,18 +87,18 @@ describe Puppet::Parser do
         it &quot;should not raise syntax errors with multiple references&quot; do
             lambda { @parser.parse('exec { test: param =&gt; File[&quot;a&quot;,&quot;b&quot;] }') }.should_not raise_error
         end
-        
+
         it &quot;should create an ast::ResourceReference&quot; do
             ast::Resource.stubs(:new)
-            ast::ResourceReference.expects(:new).with { |arg| 
+            ast::ResourceReference.expects(:new).with { |arg|
                 arg[:line]==1 and arg[:type]==&quot;File&quot; and arg[:title].is_a?(ast::ASTArray)
             }
             @parser.parse('exec { test: command =&gt; File[&quot;a&quot;,&quot;b&quot;] }')
         end
     end
-     
+
     describe Puppet::Parser, &quot;when parsing resource overrides&quot; do
-        
+
         it &quot;should not raise syntax errors&quot; do
             lambda { @parser.parse('Resource[&quot;title&quot;] { param =&gt; value }') }.should_not raise_error
         end
@@ -108,14 +108,14 @@ describe Puppet::Parser do
         end
 
         it &quot;should create an ast::ResourceOverride&quot; do
-            ast::ResourceOverride.expects(:new).with { |arg| 
+            ast::ResourceOverride.expects(:new).with { |arg|
                 arg[:line]==1 and arg[:object].is_a?(ast::ResourceReference) and arg[:params].is_a?(ast::ResourceParam)
             }
             @parser.parse('Resource[&quot;title1&quot;,&quot;title2&quot;] { param =&gt; value }')
         end
-        
+
     end
-     
+
     describe Puppet::Parser, &quot;when parsing if statements&quot; do
 
         it &quot;should not raise errors with empty if&quot; do
@@ -172,7 +172,7 @@ describe Puppet::Parser do
             lambda { @parser.parse(&quot;$a = [1,2,]&quot;) }.should_not raise_error
         end
     end
-            
+
     describe Puppet::Parser, &quot;when instantiating class of same name&quot; do
 
         before :each do</diff>
      <filename>spec/unit/parser/parser.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# 
+#
 # Unit testing for the macauthorization provider
 #
 
@@ -11,20 +11,20 @@ require 'facter/util/plist'
 provider_class = Puppet::Type.type(:macauthorization).provider(:macauthorization)
 
 describe provider_class do
-    
+
     before :each do
         # Create a mock resource
         @resource = stub 'resource'
-        
+
         @authname = &quot;foo.spam.eggs.puppettest&quot;
         @authplist = {}
-        
+
         @rules = {@authname =&gt; @authplist}
-        
+
         authdb = {}
         authdb[&quot;rules&quot;] = { &quot;foorule&quot; =&gt; &quot;foo&quot; }
         authdb[&quot;rights&quot;] = { &quot;fooright&quot; =&gt; &quot;foo&quot; }
-        
+
         # Stub out Plist::parse_xml
         Plist.stubs(:parse_xml).returns(authdb)
 
@@ -38,42 +38,42 @@ describe provider_class do
 
         @provider = provider_class.new(@resource)
     end
-    
+
     it &quot;should have a create method&quot; do
         @provider.should respond_to(:create)
     end
-    
+
     it &quot;should have a destroy method&quot; do
         @provider.should respond_to(:destroy)
     end
-    
+
     it &quot;should have an exists? method&quot; do
         @provider.should respond_to(:exists?)
     end
-    
+
     it &quot;should have a flush method&quot; do
         @provider.should respond_to(:flush)
     end
-    
+
     properties = [  :allow_root, :authenticate_user, :auth_class, :comment,
                         :group, :k_of_n, :mechanisms, :rule, :session_owner,
                         :shared, :timeout, :tries, :auth_type ]
-                        
+
     properties.each do |prop|
         it &quot;should have a #{prop.to_s} method&quot; do
             @provider.should respond_to(prop.to_s)
         end
-        
+
         it &quot;should have a #{prop.to_s}= method&quot; do
             @provider.should respond_to(prop.to_s + &quot;=&quot;)
         end
     end
-    
+
     describe &quot;when destroying a right&quot; do
         before :each do
             @resource.stubs(:[]).with(:auth_type).returns(:right)
         end
-        
+
         it &quot;should call the internal method destroy_right&quot; do
             @provider.expects(:destroy_right)
             @provider.destroy
@@ -83,41 +83,41 @@ describe provider_class do
             @provider.destroy
         end
     end
-    
+
     describe &quot;when destroying a rule&quot; do
         before :each do
             @resource.stubs(:[]).with(:auth_type).returns(:rule)
         end
-        
+
         it &quot;should call the internal method destroy_rule&quot; do
             @provider.expects(:destroy_rule)
             @provider.destroy
         end
     end
-    
+
     describe &quot;when flushing a right&quot; do
         before :each do
             @resource.stubs(:[]).with(:auth_type).returns(:right)
         end
-        
+
         it &quot;should call the internal method flush_right&quot; do
             @provider.expects(:flush_right)
             @provider.flush
         end
-        
+
         it &quot;should call the internal method set_right&quot; do
             @provider.expects(:set_right)
             @provider.flush
         end
-        
+
         it &quot;should read and write to the auth database with the right arguments&quot; do
-            @provider.expects(:execute).with() { |cmds, args| 
+            @provider.expects(:execute).with() { |cmds, args|
                 cmds.include?(&quot;read&quot;) and
                 cmds.include?(@authname) and
                 args[:combine] == false
             }.once
-            
-            @provider.expects(:execute).with() { |cmds, args| 
+
+            @provider.expects(:execute).with() { |cmds, args|
                 cmds.include?(&quot;write&quot;) and
                 cmds.include?(@authname) and
                 args[:combine] == false and
@@ -125,23 +125,23 @@ describe provider_class do
             }.once
             @provider.flush
         end
-        
+
     end
-    
+
     describe &quot;when flushing a rule&quot; do
         before :each do
             @resource.stubs(:[]).with(:auth_type).returns(:rule)
         end
-        
+
         it &quot;should call the internal method flush_rule&quot; do
             @provider.expects(:flush_rule)
             @provider.flush
         end
-        
+
         it &quot;should call the internal method set_rule&quot; do
             @provider.expects(:set_rule)
             @provider.flush
         end
     end
 
-end
\ No newline at end of file
+end</diff>
      <filename>spec/unit/provider/macauthorization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,8 @@
 # Copyright (C) 2008 Jeffrey J McCune.
 
 # This program and entire repository is free software; you can
-# redistribute it and/or modify it under the terms of the GNU 
-# General Public License as published by the Free Software 
+# redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software
 # Foundation; either version 2 of the License, or any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -74,11 +74,11 @@ describe provider_class do
         it &quot;should execute external command dscl from :create&quot; do
             @provider.class.expects(:dscl).returns('').once
             @provider.create
-        end 
+        end
         it &quot;should execute external command dscl from :destroy&quot; do
             @provider.class.expects(:dscl).with('localhost', '-mcxdelete', @ds_path).returns('').once
             @provider.destroy
-        end 
+        end
         it &quot;should execute external command dscl from :exists?&quot; do
             @provider.class.expects(:dscl).with('localhost', '-mcxexport', @ds_path).returns('').once
             @provider.exists?</diff>
      <filename>spec/unit/provider/mcx/mcxcontent.rb</filename>
    </modified>
    <modified>
      <diff>@@ -98,40 +98,40 @@ Version table:
         it &quot;should use 'apt-get install' with the package name if no version is asked for&quot; do
             @resource.expects(:[]).with(:ensure).returns :installed
             @provider.expects(:aptget).with { |*command| command[-1] == &quot;asdf&quot; and command[-2] == :install }
-            
+
             @provider.install
         end
 
         it &quot;should specify the package version if one is asked for&quot; do
             @resource.expects(:[]).with(:ensure).returns &quot;1.0&quot;
             @provider.expects(:aptget).with { |*command| command[-1] == &quot;asdf=1.0&quot; }
-            
+
             @provider.install
         end
 
         it &quot;should do a quiet install&quot; do
             @provider.expects(:aptget).with { |*command| command.include?(&quot;-q&quot;) }
-            
+
             @provider.install
         end
 
         it &quot;should default to 'yes' for all questions&quot; do
             @provider.expects(:aptget).with { |*command| command.include?(&quot;-y&quot;) }
-            
+
             @provider.install
         end
 
         it &quot;should keep config files if asked&quot; do
             @resource.expects(:[]).with(:configfiles).returns :keep
             @provider.expects(:aptget).with { |*command| command.include?(&quot;DPkg::Options::=--force-confold&quot;) }
-            
+
             @provider.install
         end
 
         it &quot;should replace config files if asked&quot; do
             @resource.expects(:[]).with(:configfiles).returns :replace
             @provider.expects(:aptget).with { |*command| command.include?(&quot;DPkg::Options::=--force-confnew&quot;) }
-            
+
             @provider.install
         end
     end</diff>
      <filename>spec/unit/provider/package/apt.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,11 +8,11 @@ describe provider do
     before do
         @resource = stub 'resource', :[] =&gt; &quot;dummypkgdmg&quot;
         @provider = provider.new(@resource)
-        
+
         @fakemountpoint = &quot;/tmp/dmg.foo&quot;
         @fakehdiutilinfo = {&quot;system-entities&quot; =&gt; [{&quot;mount-point&quot; =&gt; @fakemountpoint}] }
         @fakehdiutilplist = Plist::Emit.dump(@fakehdiutilinfo)
-        
+
         @hdiutilmountargs = [&quot;mount&quot;, &quot;-plist&quot;, &quot;-nobrowse&quot;, &quot;-readonly&quot;,
                              &quot;-noidme&quot;, &quot;-mountrandom&quot;, &quot;/tmp&quot;]
     end
@@ -20,17 +20,17 @@ describe provider do
     it &quot;should not be versionable&quot; do
         provider.versionable?.should be_false
     end
-    
+
     it &quot;should not be uninstallable&quot; do
         provider.uninstallable?.should be_false
     end
-    
+
     describe &quot;when installing it should fail when&quot; do
         it &quot;no source is specified&quot; do
             @resource.stubs(:[]).with(:source).returns nil
             lambda { @provider.install }.should raise_error(Puppet::Error)
         end
-    
+
         it &quot;no name is specified&quot; do
             @resource.stubs(:[]).with(:name).returns nil
             lambda { @provider.install }.should raise_error(Puppet::Error)
@@ -40,13 +40,13 @@ describe provider do
             @resource.stubs(:[]).with(:source).returns &quot;notendingindotdmg&quot;
             lambda { @provider.install }.should raise_error(Puppet::Error)
         end
-        
+
         it &quot;a disk image with no system entities is mounted&quot; do
             @provider.stubs(:[]).with(:hdiutil).returns &quot;&quot;
             lambda { @provider.install }.should raise_error(Puppet::Error)
         end
     end
-    
+
     # These tests shouldn't be this messy. The pkgdmg provider needs work...
     describe &quot;when installing&quot; do
         before do
@@ -55,14 +55,14 @@ describe provider do
             @resource.stubs(:[]).with(:source).returns &quot;foo.dmg&quot;
             File.stubs(:open).yields fh
         end
-        
+
         it &quot;should call hdiutil to mount and eject the disk image&quot; do
             Dir.stubs(:entries).returns []
             @provider.class.expects(:hdiutil).with(&quot;eject&quot;, @fakemountpoint).returns 0
             @provider.class.expects(:hdiutil).with(&quot;mount&quot;, &quot;-plist&quot;, &quot;-nobrowse&quot;, &quot;-readonly&quot;, &quot;-noidme&quot;, &quot;-mountrandom&quot;, &quot;/tmp&quot;, nil).returns @fakehdiutilplist
             @provider.install
         end
-        
+
         it &quot;should call installpkg if a pkg/mpkg is found on the dmg&quot; do
             Dir.stubs(:entries).returns [&quot;foo.pkg&quot;]
             @provider.class.stubs(:hdiutil).returns @fakehdiutilplist</diff>
      <filename>spec/unit/provider/package/pkgdmg.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ describe provider_class do
         @provider.expects(:execpipe).with(&quot;/usr/sbin/setsebool  foo off&quot;)
         @provider.value = :off
     end
-     
+
     it &quot;should call execpipe with -P when updating persistent boolean setting&quot; do
         @resource.stubs(:[]).with(:persistent).returns :true
         @provider.expects(:command).with(:setsebool).returns &quot;/usr/sbin/setsebool&quot;</diff>
      <filename>spec/unit/provider/selboolean.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ describe provider_class do
         @provider = provider_class.new(@resource)
     end
 
-    describe &quot;exists? method&quot; do 
+    describe &quot;exists? method&quot; do
         it &quot;should find a module if it is already loaded&quot; do
             @provider.expects(:command).with(:semodule).returns &quot;/usr/sbin/semodule&quot;
             @provider.expects(:execpipe).with(&quot;/usr/sbin/semodule --list&quot;).yields [&quot;bar\t1.2.3\n&quot;, &quot;foo\t4.4.4\n&quot;, &quot;bang\t1.0.0\n&quot;]
@@ -45,7 +45,7 @@ describe provider_class do
 
     describe &quot;syncversion&quot; do
         it &quot;should return :true if loaded and file modules are in sync&quot; do
-            @provider.expects(:selmodversion_loaded).returns &quot;1.5.0&quot; 
+            @provider.expects(:selmodversion_loaded).returns &quot;1.5.0&quot;
             @provider.expects(:selmodversion_file).returns &quot;1.5.0&quot;
             @provider.syncversion.should == :true
         end</diff>
      <filename>spec/unit/provider/selmodule.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# 
+#
 # Unit testing for the Daemontools service Provider
 #
 # author Brice Figureau
@@ -32,7 +32,7 @@ describe provider_class do
 
         @provider.stubs(:resource).returns @resource
     end
-    
+
     it &quot;should have a restartcmd method&quot; do
         @provider.should respond_to(:restartcmd)
     end</diff>
      <filename>spec/unit/provider/service/daemontools.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# 
+#
 # Unit testing for the launchd service provider
 #
 
@@ -14,7 +14,7 @@ describe provider_class do
     before :each do
         # Create a mock resource
         @resource = stub 'resource'
-        
+
         @provider = provider_class.new
         @joblabel = &quot;com.foo.food&quot;
         @jobplist = {}
@@ -30,7 +30,7 @@ describe provider_class do
 
         # stub out the provider methods that actually touch the filesystem
         # or execute commands
-        @provider.stubs(:plist_from_label).returns([@joblabel, @jobplist])    
+        @provider.stubs(:plist_from_label).returns([@joblabel, @jobplist])
         @provider.stubs(:execute).returns(&quot;&quot;)
         @provider.stubs(:resource).returns @resource
     end
@@ -38,28 +38,28 @@ describe provider_class do
     it &quot;should have a start method for #{@provider.object_id}&quot; do
         @provider.should respond_to(:start)
     end
-    
+
     it &quot;should have a stop method&quot; do
         @provider.should respond_to(:stop)
     end
-    
+
     it &quot;should have an enabled? method&quot; do
         @provider.should respond_to(:enabled?)
     end
-    
+
     it &quot;should have an enable method&quot; do
         @provider.should respond_to(:enable)
     end
-    
+
     it &quot;should have a disable method&quot; do
         @provider.should respond_to(:disable)
     end
-    
+
     it &quot;should have a status method&quot; do
         @provider.should respond_to(:status)
     end
-    
-    
+
+
     describe &quot;when checking status&quot; do
         it &quot;should call the external command 'launchctl list' once&quot; do
             @provider.expects(:launchctl).with(:list).returns(&quot;rotating-strawberry-madonnas&quot;)
@@ -74,7 +74,7 @@ describe provider_class do
             @provider.status.should == :running
         end
     end
-    
+
     describe &quot;when starting the service&quot; do
         it &quot;should look for the relevant plist once&quot; do
             @provider.expects(:plist_from_label).once
@@ -97,7 +97,7 @@ describe provider_class do
             @provider.start
         end
     end
-    
+
     describe &quot;when stopping the service&quot; do
         it &quot;should look for the relevant plist once&quot; do
             @provider.expects(:plist_from_label).once
@@ -120,7 +120,7 @@ describe provider_class do
             @provider.stop
         end
     end
-    
+
     describe &quot;when enabling the service&quot; do
         it &quot;should look for the relevant plist once&quot; do
             @provider.expects(:plist_from_label).once
@@ -131,12 +131,12 @@ describe provider_class do
             @provider.stop
         end
     end
-    
+
     describe &quot;when disabling the service&quot; do
         it &quot;should look for the relevant plist once&quot; do
             @provider.expects(:plist_from_label).once
             @provider.stop
         end
     end
-    
+
  end</diff>
      <filename>spec/unit/provider/service/launchd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
-# 
+#
 # Unit testing for the Runit service Provider
 #
 # author Brice Figureau</diff>
      <filename>spec/unit/provider/service/runit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ describe provider_class do
     it &quot;should be able to manage passwords&quot; do
         provider_class.should be_manages_passwords
     end
-    
+
     it &quot;should use the ldap group provider to convert group names to numbers&quot; do
         provider = provider_class.new(:name =&gt; &quot;foo&quot;)
         Puppet::Type.type(:group).provider(:ldap).expects(:name2id).with(&quot;bar&quot;).returns 10</diff>
      <filename>spec/unit/provider/user/ldap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -239,7 +239,7 @@ describe provider_class do
             File.stubs(:rename)
             @provider.password=(&quot;hashedpassword&quot;)
         end
-        
+
         it &quot;should rename the /etc/shadow_tmp to /etc/shadow&quot; do
             File.stubs(:open).with(&quot;/etc/shadow&quot;, &quot;r&quot;)
             File.expects(:rename).with(&quot;/etc/shadow_tmp&quot;, &quot;/etc/shadow&quot;)</diff>
      <filename>spec/unit/provider/user/user_role_add.rb</filename>
    </modified>
    <modified>
      <diff>@@ -43,15 +43,15 @@ describe provider_class do
             @provider.delete
         end
     end
-   
+
     describe &quot;when calling exist?&quot; do
         it &quot;should call zfs with :list&quot; do
             #return stuff because we have to slice and dice it
             @provider.expects(:zfs).with(:list).returns(&quot;NAME USED AVAIL REFER MOUNTPOINT\nmyzfs 100K 27.4M /myzfs&quot;)
             @provider.exists?
         end
-        
-        it &quot;should return true if returned values match the name&quot; do 
+
+        it &quot;should return true if returned values match the name&quot; do
             @provider.stubs(:zfs).with(:list).returns(&quot;NAME USED AVAIL REFER MOUNTPOINT\n#{@resource[:name]} 100K 27.4M /myzfs&quot;)
             @provider.exists?.should == true
         end
@@ -60,7 +60,7 @@ describe provider_class do
             @provider.stubs(:zfs).with(:list).returns(&quot;no soup for you&quot;)
             @provider.exists?.should == false
         end
-            
+
     end
 
     [:mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir].each do |prop|</diff>
      <filename>spec/unit/provider/zfs/solaris.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,7 +25,7 @@ describe provider_class do
             @provider.expects(:zoneadm)
             @provider.install
         end
-        
+
         it &quot;should just install if there are no install args&quot; do
             @resource.stubs(:[]).with(:install_args).returns(nil)
             @provider.expects(:zoneadm).with(:install)</diff>
      <filename>spec/unit/provider/zone/solaris.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,18 +18,18 @@ describe Puppet::Rails, &quot;when initializing any connection&quot; do
 
     it &quot;should use settings&quot; do
         Puppet.settings.expects(:use).with(:main, :rails, :puppetmasterd)
-        
+
         Puppet::Rails.connect
     end
-    
+
     it &quot;should set up a logger with the appropriate Rails log file&quot; do
         logger = mock 'logger'
         Logger.expects(:new).with(Puppet[:railslog]).returns(logger)
         ActiveRecord::Base.expects(:logger=).with(logger)
-        
+
         Puppet::Rails.connect
     end
-    
+
     it &quot;should set the log level to whatever the value is in the settings&quot; do
         Puppet.settings.stubs(:use)
         Puppet.settings.stubs(:value).with(:rails_loglevel).returns(&quot;debug&quot;)
@@ -42,20 +42,20 @@ describe Puppet::Rails, &quot;when initializing any connection&quot; do
         ActiveRecord::Base.stubs(:verify_active_connections!)
         ActiveRecord::Base.stubs(:establish_connection)
         Puppet::Rails.stubs(:database_arguments)
-        
+
         Puppet::Rails.connect
     end
-    
+
     it &quot;should call ActiveRecord::Base.verify_active_connections!&quot; do
         ActiveRecord::Base.expects(:verify_active_connections!)
-        
+
         Puppet::Rails.connect
     end
-    
+
     it &quot;should call ActiveRecord::Base.establish_connection with database_arguments&quot; do
         Puppet::Rails.expects(:database_arguments)
         ActiveRecord::Base.expects(:establish_connection)
-        
+
         Puppet::Rails.connect
     end
 end
@@ -67,7 +67,7 @@ describe Puppet::Rails, &quot;when initializing a sqlite3 connection&quot; do
         Puppet.settings.expects(:value).with(:dbadapter).returns(&quot;sqlite3&quot;)
         Puppet.settings.expects(:value).with(:rails_loglevel).returns(&quot;testlevel&quot;)
         Puppet.settings.expects(:value).with(:dblocation).returns(&quot;testlocation&quot;)
-        
+
         Puppet::Rails.database_arguments.should == {
             :adapter =&gt; &quot;sqlite3&quot;,
             :log_level =&gt; &quot;testlevel&quot;,
@@ -87,7 +87,7 @@ describe Puppet::Rails, &quot;when initializing a mysql or postgresql connection&quot; do
         Puppet.settings.stubs(:value).with(:dbpassword).returns(&quot;testpassword&quot;)
         Puppet.settings.stubs(:value).with(:dbname).returns(&quot;testname&quot;)
         Puppet.settings.stubs(:value).with(:dbsocket).returns(&quot;&quot;)
-        
+
         Puppet::Rails.database_arguments.should == {
             :adapter =&gt; &quot;mysql&quot;,
             :log_level =&gt; &quot;testlevel&quot;,
@@ -97,7 +97,7 @@ describe Puppet::Rails, &quot;when initializing a mysql or postgresql connection&quot; do
             :database =&gt; &quot;testname&quot;
         }
     end
-    
+
     it &quot;should provide the adapter, log_level, and host, username, password, database, and socket arguments&quot; do
         Puppet.settings.stubs(:value).with(:dbadapter).returns(&quot;mysql&quot;)
         Puppet.settings.stubs(:value).with(:rails_loglevel).returns(&quot;testlevel&quot;)
@@ -106,7 +106,7 @@ describe Puppet::Rails, &quot;when initializing a mysql or postgresql connection&quot; do
         Puppet.settings.stubs(:value).with(:dbpassword).returns(&quot;testpassword&quot;)
         Puppet.settings.stubs(:value).with(:dbname).returns(&quot;testname&quot;)
         Puppet.settings.stubs(:value).with(:dbsocket).returns(&quot;testsocket&quot;)
-        
+
         Puppet::Rails.database_arguments.should == {
             :adapter =&gt; &quot;mysql&quot;,
             :log_level =&gt; &quot;testlevel&quot;,</diff>
      <filename>spec/unit/rails.rb</filename>
    </modified>
    <modified>
      <diff>@@ -114,7 +114,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
             bucket.expects(:type=).with(&quot;Class&quot;)
             bucket.expects(:name=).with(:main)
             main.stubs(:builtin?).returns(false)
-            
+
             Puppet::TransBucket.expects(:new).returns bucket
 
             config.extract_to_transportable.should equal(bucket)
@@ -380,7 +380,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
             @catalog.make_default_resources
             @catalog.resource(:schedule, &quot;daily&quot;).should_not be_nil
         end
-        
+
         it &quot;should optionally support an initialization block and should finalize after such blocks&quot; do
             @one.expects :finish
             @two.expects :finish
@@ -539,7 +539,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
             @transaction.expects :cleanup
             @catalog.apply
         end
-    
+
         it &quot;should return the transaction&quot; do
             @catalog.apply.should equal(@transaction)
         end
@@ -549,7 +549,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
                 trans.should equal(@transaction)
             end
         end
-    
+
         it &quot;should default to not being a host catalog&quot; do
             @catalog.host_config.should be_nil
         end
@@ -589,7 +589,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
             @transaction.stubs(:addtimes)
             file = Puppet::Type.type(:file).new(:name =&gt; &quot;/yay&quot;, :ensure =&gt; :file)
             @catalog.apply do |trans|
-                @catalog.add_resource file 
+                @catalog.add_resource file
                 @catalog.resource(&quot;File[/yay]&quot;).should_not be_nil
             end
             @catalog.resource(&quot;File[/yay]&quot;).should be_nil
@@ -644,7 +644,7 @@ describe Puppet::Resource::Catalog, &quot;when compiling&quot; do
             before do
                 @catalog.host_config = false
             end
-        
+
             it &quot;should never send reports&quot; do
                 Puppet[:report] = true
                 Puppet[:summarize] = true</diff>
      <filename>spec/unit/resource/catalog.rb</filename>
    </modified>
    <modified>
      <diff>@@ -251,7 +251,7 @@ describe Puppet::SimpleGraph do
             @graph.vertex?(:one).should be_true
             @graph.vertex?(:two).should be_true
         end
-        
+
         it &quot;should retain labels on edges&quot; do
             @graph.add_edge(:one, :two, :callback =&gt; :awesome)
             edge = @graph.reversal.edge(:two, :one)
@@ -377,7 +377,7 @@ describe Puppet::SimpleGraph do
     describe &quot;when determining dependencies&quot; do
         before do
             @graph = Puppet::SimpleGraph.new
-            
+
             @graph.add_edge(&quot;a&quot;, &quot;b&quot;)
             @graph.add_edge(&quot;a&quot;, &quot;c&quot;)
             @graph.add_edge(&quot;b&quot;, &quot;d&quot;)
@@ -402,7 +402,7 @@ describe Puppet::SimpleGraph do
         it &quot;should find single dependencies&quot; do
             @graph.dependencies(&quot;c&quot;).sort.should == %w{a}
         end
-        
+
         it &quot;should return an empty array when there are no dependencies&quot; do
             @graph.dependencies(&quot;a&quot;).sort.should == []
         end
@@ -417,16 +417,16 @@ describe Puppet::SimpleGraph do
         def each
             @children.each do |c| yield c end
         end
-        
+
         def initialize(name, ary)
             @name = name
             @children = ary
         end
-        
+
         def push(*ary)
             ary.each { |c| @children.push(c)}
         end
-        
+
         def to_s
             @name
         end</diff>
      <filename>spec/unit/simple_graph.rb</filename>
    </modified>
    <modified>
      <diff>@@ -274,7 +274,7 @@ describe Puppet::SSL::CertificateAuthority do
 
                 @ca.next_serial.should == 2
             end
-            
+
             it &quot;should write the next serial number to the serial file as hex&quot; do
                 @filehandle.expects(:&lt;&lt;).with(&quot;0002&quot;)
 
@@ -552,7 +552,7 @@ describe Puppet::SSL::CertificateAuthority do
 
             @ca.waiting?.should == %w{one two}
         end
-        
+
         it &quot;should delegate removing hosts to the Host class&quot; do
             Puppet::SSL::Host.expects(:destroy).with(&quot;myhost&quot;)
 </diff>
      <filename>spec/unit/ssl/certificate_authority.rb</filename>
    </modified>
    <modified>
      <diff>@@ -107,7 +107,7 @@ describe Puppet::SSL::CertificateAuthority::Interface do
 
             it &quot;should call :generate on the CA for each host specified&quot; do
                 @applier = @class.new(:generate, %w{host1 host2})
-                
+
                 @ca.expects(:generate).with(&quot;host1&quot;)
                 @ca.expects(:generate).with(&quot;host2&quot;)
 </diff>
      <filename>spec/unit/ssl/certificate_authority/interface.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,7 +96,7 @@ describe Puppet::SSL::CertificateFactory do
             @factory.result
         end
     end
-    
+
     describe &quot;when building extensions&quot; do
         it &quot;should have tests&quot;
     end</diff>
      <filename>spec/unit/ssl/certificate_factory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -673,7 +673,7 @@ describe Puppet::SSL::Host do
             @host.expects(:exit).with(1).raises(SystemExit)
             lambda { @host.wait_for_cert(0) }.should raise_error(SystemExit)
         end
-        
+
         it &quot;should exit if the wait time is 0 and it can neither find nor retrieve a certificate&quot; do
             @host.stubs(:certificate).returns nil
             @host.expects(:generate)</diff>
      <filename>spec/unit/ssl/host.rb</filename>
    </modified>
    <modified>
      <diff>@@ -93,7 +93,7 @@ describe Puppet::Transaction::Change do
                     @change.stubs :event
                     @change.forward
                 end
-                
+
                 it &quot;should produce a :noop event and return&quot; do
                     @property.stub_everything
 </diff>
      <filename>spec/unit/transaction/change.rb</filename>
    </modified>
    <modified>
      <diff>@@ -128,7 +128,7 @@ describe Puppet::Type do
             it &quot;should use the name from the hash as the title if no explicit title is provided&quot; do
                 Puppet::Type.type(:mount).new(:name =&gt; &quot;/yay&quot;).title.should == &quot;/yay&quot;
             end
-            
+
             it &quot;should use the Resource Type's namevar to determine how to find the name in the hash&quot; do
                 Puppet::Type.type(:file).new(:path =&gt; &quot;/yay&quot;).title.should == &quot;/yay&quot;
             end
@@ -233,7 +233,7 @@ describe Puppet::Type do
         it &quot;should use the name from the hash as the title if no explicit title is provided&quot; do
             @type.hash2resource(:name =&gt; &quot;foo&quot;).title.should == &quot;foo&quot;
         end
-        
+
         it &quot;should use the Resource Type's namevar to determine how to find the name in the hash&quot; do
             @type.stubs(:namevar).returns :myname
 </diff>
      <filename>spec/unit/type.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,10 +11,10 @@ describe augeas do
         it &quot;should have a default provider inheriting from Puppet::Provider&quot; do
             augeas.defaultprovider.ancestors.should be_include(Puppet::Provider)
         end
-        
+
         it &quot;should have a valid provider&quot; do
             augeas.new(:name =&gt; &quot;foo&quot;).provider.class.ancestors.should be_include(Puppet::Provider)
-        end        
+        end
     end
 
     describe &quot;basic structure&quot; do
@@ -27,14 +27,14 @@ describe augeas do
         it &quot;should have an parse_commands feature&quot; do
             augeas.provider_feature(:parse_commands).should_not be_nil
         end
-        
+
         it &quot;should have an need_to_run? feature&quot; do
             augeas.provider_feature(:need_to_run?).should_not be_nil
-        end    
-        
+        end
+
         it &quot;should have an execute_changes feature&quot; do
             augeas.provider_feature(:execute_changes).should_not be_nil
-        end           
+        end
 
         properties = [:returns]
         params = [:name, :context, :onlyif, :changes, :root, :load_path, :type_check]
@@ -47,8 +47,8 @@ describe augeas do
             it &quot;should have documentation for its %s property&quot; % property do
                 augeas.attrclass(property).doc.should be_instance_of(String)
             end
-        end        
-        
+        end
+
         params.each do |param|
             it &quot;should have a %s parameter&quot; % param do
                 augeas.attrclass(param).ancestors.should be_include(Puppet::Parameter)
@@ -57,9 +57,9 @@ describe augeas do
             it &quot;should have documentation for its %s parameter&quot; % param do
                 augeas.attrclass(param).doc.should be_instance_of(String)
             end
-        end                
+        end
     end
-    
+
     describe &quot;default values&quot; do
         before do
             provider_class = augeas.provider(augeas.providers[0])
@@ -69,24 +69,24 @@ describe augeas do
         it &quot;should be blank for context&quot; do
             augeas.new(:name =&gt; :context)[:context].should == &quot;&quot;
         end
-        
+
         it &quot;should be blank for onlyif&quot; do
             augeas.new(:name =&gt; :onlyif)[:onlyif].should == &quot;&quot;
-        end        
-        
+        end
+
         it &quot;should be blank for load_path&quot; do
             augeas.new(:name =&gt; :load_path)[:load_path].should == &quot;&quot;
-        end        
-        
+        end
+
         it &quot;should be / for root&quot; do
             augeas.new(:name =&gt; :root)[:root].should == &quot;/&quot;
-        end        
-        
+        end
+
         it &quot;should be false for type_check&quot; do
             augeas.new(:name =&gt; :type_check)[:type_check].should == :false
-        end                
+        end
     end
-    
+
     describe &quot;provider interaction&quot; do
         it &quot;should munge the changes&quot; do
             provider = stub(&quot;provider&quot;, :parse_commands =&gt; &quot;Jar Jar Binks&quot;)
@@ -95,19 +95,19 @@ describe augeas do
             changes.value= &quot;Testing 123&quot;
             changes.value.should == &quot;Jar Jar Binks&quot;
         end
-        
+
         it &quot;should return 0 if it does not need to run&quot; do
             provider = stub(&quot;provider&quot;, :need_to_run? =&gt; false)
             resource = stub('resource', :resource =&gt; nil, :provider =&gt; provider, :line =&gt; nil, :file =&gt; nil)
             changes = augeas.attrclass(:returns).new(:resource =&gt; resource)
             changes.retrieve.should == 0
-        end        
-        
+        end
+
         it &quot;should return :need_to_run if it needs to run&quot; do
             provider = stub(&quot;provider&quot;, :need_to_run? =&gt; true)
             resource = stub('resource', :resource =&gt; nil, :provider =&gt; provider, :line =&gt; nil, :file =&gt; nil)
             changes = augeas.attrclass(:returns).new(:resource =&gt; resource)
             changes.retrieve.should == :need_to_run
-        end                
+        end
     end
 end</diff>
      <filename>spec/unit/type/augeas.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
- 
+
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 component = Puppet::Type.type(:component)</diff>
      <filename>spec/unit/type/component.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #!/usr/bin/env ruby
- 
+
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 computer = Puppet::Type.type(:computer)
@@ -15,16 +15,16 @@ describe Puppet::Type.type(:computer), &quot; when checking computer objects&quot; do
         @properties = {}
         @ensure = Puppet::Type::Computer.attrclass(:ensure).new(:resource =&gt; @resource)
     end
-    
+
     it &quot;should be able to create a instance&quot; do
         provider_class = Puppet::Type::Computer.provider(Puppet::Type::Computer.providers[0])
         Puppet::Type::Computer.expects(:defaultprovider).returns provider_class
         computer.new(:name =&gt; &quot;bar&quot;).should_not be_nil
     end
-  
+
     properties = [:en_address, :ip_address]
     params = [:name]
-  
+
     properties.each do |property|
         it &quot;should have a %s property&quot; % property do
             computer.attrclass(property).ancestors.should be_include(Puppet::Property)
@@ -33,14 +33,14 @@ describe Puppet::Type.type(:computer), &quot; when checking computer objects&quot; do
         it &quot;should have documentation for its %s property&quot; % property do
             computer.attrclass(property).doc.should be_instance_of(String)
         end
-        
+
         it &quot;should accept :absent as a value&quot; do
             prop = computer.attrclass(property).new(:resource =&gt; @resource)
             prop.should = :absent
             prop.should.must == :absent
         end
     end
-    
+
     params.each do |param|
         it &quot;should have a %s parameter&quot; % param do
             computer.attrclass(param).ancestors.should be_include(Puppet::Parameter)
@@ -50,7 +50,7 @@ describe Puppet::Type.type(:computer), &quot; when checking computer objects&quot; do
             computer.attrclass(param).doc.should be_instance_of(String)
         end
     end
-    
+
     describe &quot;default values&quot; do
         before do
             provider_class = computer.provider(computer.providers[0])
@@ -60,17 +60,17 @@ describe Puppet::Type.type(:computer), &quot; when checking computer objects&quot; do
         it &quot;should be nil for en_address&quot; do
             computer.new(:name =&gt; :en_address)[:en_address].should == nil
         end
-        
+
         it &quot;should be nil for ip_address&quot; do
             computer.new(:name =&gt; :ip_address)[:ip_address].should == nil
         end
     end
-        
-    describe &quot;when managing the ensure property&quot; do    
+
+    describe &quot;when managing the ensure property&quot; do
         it &quot;should support a :present value&quot; do
             lambda { @ensure.should = :present }.should_not raise_error
         end
-    
+
         it &quot;should support an :absent value&quot; do
             lambda { @ensure.should = :absent }.should_not raise_error
         end</diff>
      <filename>spec/unit/type/computer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -443,7 +443,7 @@ describe Puppet::Type.type(:file) do
         it &quot;should store the metadata in the source property for each resource so the source does not have to requery the metadata&quot; do
             @file.stubs(:perform_recursion).returns [@first]
             @resource.expects(:parameter).with(:source).returns @parameter
-            
+
             @parameter.expects(:metadata=).with(@first)
 
             @file.recurse_remote(&quot;first&quot; =&gt; @resource)
@@ -463,7 +463,7 @@ describe Puppet::Type.type(:file) do
             @file.stubs(:perform_recursion).returns [@first]
 
             @file.parameter(:source).expects(:metadata=).with @first
-            
+
             @file.recurse_remote(&quot;first&quot; =&gt; @resource)
         end
 </diff>
      <filename>spec/unit/type/file.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@ describe content do
             @content = content.new(:resource =&gt; @resource)
             @content.checksum_type.should == :litemd5
         end
-        
+
         it &quot;should only return the checksum type from the checksum parameter if the parameter returns a whole checksum&quot; do
             checksum = mock 'checksum'
             checksum.expects(:checktype).returns &quot;{md5}something&quot;</diff>
      <filename>spec/unit/type/file/content.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 macauth_type = Puppet::Type.type(:macauthorization)
 
 describe Puppet::Type.type(:macauthorization), &quot;when checking macauthorization objects&quot; do
-    
+
     before do
         authplist = {}
         authplist[&quot;rules&quot;] = { &quot;foorule&quot; =&gt; &quot;foo&quot; }
@@ -14,60 +14,60 @@ describe Puppet::Type.type(:macauthorization), &quot;when checking macauthorization o
         Plist.stubs(:parse_xml).with(&quot;/etc/authorization&quot;).returns(authplist)
         macauth_type.stubs(:defaultprovider).returns provider_class
     end
-    
+
     describe &quot;when validating attributes&quot; do
-    
+
         parameters = [:name,]
-        properties = [:auth_type, :allow_root, :authenticate_user, :auth_class, 
-                      :comment, :group, :k_of_n, :mechanisms, :rule, 
+        properties = [:auth_type, :allow_root, :authenticate_user, :auth_class,
+                      :comment, :group, :k_of_n, :mechanisms, :rule,
                       :session_owner, :shared, :timeout, :tries]
-    
+
         parameters.each do |parameter|
             it &quot;should have a %s parameter&quot; % parameter do
                 macauth_type.attrclass(parameter).ancestors.should be_include(Puppet::Parameter)
             end
-    
+
             it &quot;should have documentation for its %s parameter&quot; % parameter do
                 macauth_type.attrclass(parameter).doc.should be_instance_of(String)
             end
         end
-    
+
         properties.each do |property|
             it &quot;should have a %s property&quot; % property do
                 macauth_type.attrclass(property).ancestors.should be_include(Puppet::Property)
             end
-    
+
             it &quot;should have documentation for its %s property&quot; % property do
                 macauth_type.attrclass(property).doc.should be_instance_of(String)
             end
         end
-    
+
     end
-    
+
     describe &quot;when validating properties&quot; do
-        
+
         it &quot;should have a default provider inheriting from Puppet::Provider&quot; do
             macauth_type.defaultprovider.ancestors.should be_include(Puppet::Provider)
         end
-    
+
         it &quot;should be able to create an instance&quot; do
             lambda {
                 macauth_type.new(:name =&gt; 'foo')
             }.should_not raise_error
         end
-            
+
         it &quot;should support :present as a value to :ensure&quot; do
             lambda {
                 macauth_type.new(:name =&gt; &quot;foo&quot;, :ensure =&gt; :present)
             }.should_not raise_error
         end
-            
+
         it &quot;should support :absent as a value to :ensure&quot; do
             lambda {
                 macauth_type.new(:name =&gt; &quot;foo&quot;, :ensure =&gt; :absent)
             }.should_not raise_error
         end
-    
+
     end
 
 end</diff>
      <filename>spec/unit/type/macauthorization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,8 @@
 # Copyright (C) 2008 Jeffrey J McCune.
 
 # This program and entire repository is free software; you can
-# redistribute it and/or modify it under the terms of the GNU 
-# General Public License as published by the Free Software 
+# redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software
 # Foundation; either version 2 of the License, or any later version.
 
 # This program is distributed in the hope that it will be useful,</diff>
      <filename>spec/unit/type/mcx.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ describe tidy do
         File.expects(:lstat).with(&quot;/foo/bar&quot;).returns stat
         resource.stat(&quot;/foo/bar&quot;).should == stat
     end
-    
+
     [:age, :size, :path, :matches, :type, :recurse, :rmdirs].each do |param|
         it &quot;should have a %s parameter&quot; % param do
             Puppet::Type.type(:tidy).attrclass(param).ancestors.should be_include(Puppet::Parameter)</diff>
      <filename>spec/unit/type/tidy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@ describe Puppet::Util::CacheAccumulator do
         name = 'foo'
         @test_class.expects(:find_or_create_by_name).with(name).returns(@test_class.new(name)).once
         @alt_class.expects(:find_or_create_by_name).with(name).returns(@alt_class.new(name)).once
-        
+
         [@test_class, @alt_class].each do |klass|
             klass.accumulate_by_name(name).name.should == name
             klass.accumulate_by_name(name).class.should == klass</diff>
      <filename>spec/unit/util/cache_accumulator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -123,7 +123,7 @@ describe Puppet::Util::Cacher do
 
         it &quot;should allow specification of a ttl for cached attributes&quot; do
             klass = Class.new do
-                include Puppet::Util::Cacher 
+                include Puppet::Util::Cacher
             end
 
             klass.cached_attr(:myattr, :ttl =&gt; 5)  { Time.now }
@@ -133,7 +133,7 @@ describe Puppet::Util::Cacher do
 
         it &quot;should allow specification of a ttl as a string&quot; do
             klass = Class.new do
-                include Puppet::Util::Cacher 
+                include Puppet::Util::Cacher
             end
 
             klass.cached_attr(:myattr, :ttl =&gt; &quot;5&quot;)  { Time.now }
@@ -143,7 +143,7 @@ describe Puppet::Util::Cacher do
 
         it &quot;should fail helpfully if the ttl cannot be converted to an integer&quot; do
             klass = Class.new do
-                include Puppet::Util::Cacher 
+                include Puppet::Util::Cacher
             end
 
             lambda { klass.cached_attr(:myattr, :ttl =&gt; &quot;yep&quot;)  { Time.now } }.should raise_error(ArgumentError)
@@ -151,7 +151,7 @@ describe Puppet::Util::Cacher do
 
         it &quot;should not check for a ttl expiration if the class does not support that method&quot; do
             klass = Class.new do
-                extend Puppet::Util::Cacher 
+                extend Puppet::Util::Cacher
             end
 
             klass.metaclass.cached_attr(:myattr) { &quot;eh&quot; }
@@ -163,7 +163,7 @@ describe Puppet::Util::Cacher do
                 def self.to_s
                     &quot;CacheTestClass&quot;
                 end
-                include Puppet::Util::Cacher 
+                include Puppet::Util::Cacher
                 attr_accessor :value
             end
 </diff>
      <filename>spec/unit/util/cacher.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,8 +14,8 @@ describe Puppet::Util::Package, &quot; versioncmp&quot; do
         ary = %w{ 1.1.6 2.3 1.1a 3.0 1.5 1 2.4 1.1-4 2.3.1 1.2 2.3.0 1.1-3 2.4b 2.4 2.40.2 2.3a.1 3.1 0002 1.1-5 1.1.a 1.06}
 
         newary = ary.sort { |a, b| Puppet::Util::Package.versioncmp(a,b) }
-        
+
         newary.should == [&quot;0002&quot;, &quot;1&quot;, &quot;1.06&quot;, &quot;1.1-3&quot;, &quot;1.1-4&quot;, &quot;1.1-5&quot;, &quot;1.1.6&quot;, &quot;1.1.a&quot;, &quot;1.1a&quot;, &quot;1.2&quot;, &quot;1.5&quot;, &quot;2.3&quot;, &quot;2.3.0&quot;, &quot;2.3.1&quot;, &quot;2.3a.1&quot;, &quot;2.4&quot;, &quot;2.4&quot;, &quot;2.4b&quot;, &quot;2.40.2&quot;, &quot;3.0&quot;, &quot;3.1&quot;]
     end
-    
+
 end</diff>
      <filename>spec/unit/util/package.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,7 +49,7 @@ describe Puppet::Util::SELinux do
         it &quot;should match a path on / to ext3&quot; do
             find_fs('/etc/puppet/testfile').should == &quot;ext3&quot;
         end
-        
+
         it &quot;should match a path on /mnt/nfs to nfs&quot; do
             find_fs('/mnt/nfs/testfile/foobar').should == &quot;nfs&quot;
         end
@@ -112,7 +112,7 @@ describe Puppet::Util::SELinux do
             self.expects(:find_fs).with(&quot;/foo&quot;).returns &quot;nfs&quot;
             get_selinux_default_context(&quot;/foo&quot;).should be_nil
         end
-            
+
     end
 
     describe &quot;parse_selinux_context&quot; do</diff>
      <filename>spec/unit/util/selinux.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 require File.dirname(__FILE__) + '/../../spec_helper'
 
-describe Puppet::Util::Settings do 
+describe Puppet::Util::Settings do
     describe &quot;when specifying defaults&quot; do
         before do
             @settings = Puppet::Util::Settings.new
@@ -521,7 +521,7 @@ describe Puppet::Util::Settings do
 
             # Now replace the value
             text = &quot;[main]\none = disk-replace\n&quot;
-            
+
             # This is kinda ridiculous - the reason it parses twice is that
             # it goes to parse again when we ask for the value, because the
             # mock always says it should get reparsed.</diff>
      <filename>spec/unit/util/settings.rb</filename>
    </modified>
    <modified>
      <diff>@@ -95,7 +95,7 @@ describe Puppet::Util::Storage do
                 @path = transient.path()
                 transient.close!()
             end
-            
+
             it &quot;should not fail to load()&quot; do
                 FileTest.exists?(@path).should be_false()
                 Puppet[:statedir] = @path
@@ -109,10 +109,10 @@ describe Puppet::Util::Storage do
 
                 Puppet::Util::Storage.cache(:yayness)
                 Puppet::Util::Storage.state().should == {:yayness=&gt;{}}
-                
+
                 Puppet[:statefile] = @path
                 proc { Puppet::Util::Storage.load() }.should_not raise_error()
-                
+
                 Puppet::Util::Storage.state().should == {:yayness=&gt;{}}
             end
         end
@@ -140,7 +140,7 @@ describe Puppet::Util::Storage do
                 proc { Puppet::Util::Storage.load() }.should_not raise_error()
                 Puppet::Util::Storage.state().should == test_yaml
             end
-            
+
             it &quot;should initialize with a clear internal state if the state file does not contain valid YAML&quot; do
                 @state_file.write(:booness)
                 @state_file.flush()
@@ -184,7 +184,7 @@ describe Puppet::Util::Storage do
                 proc { Puppet::Util::Storage.load() }.should_not raise_error()
                 Puppet::Util::Storage.state().should == test_yaml
             end
-            
+
             after(:each) do
                 @state_file.close!()
                 Puppet[:statefile] = @saved_statefile</diff>
      <filename>spec/unit/util/storage.rb</filename>
    </modified>
    <modified>
      <diff>@@ -75,8 +75,8 @@ filemap.each do |dir, files|
                 t.libs += $test_library_paths + ['..']
                 t.libs &lt;&lt; '..'
                 t.test_files = [ file ]
-                t.verbose = true 
-            end 
+                t.verbose = true
+            end
         end
     end
 </diff>
      <filename>test/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -22,11 +22,11 @@ class TestCA &lt; Test::Unit::TestCase
     def mkca
         Puppet::SSLCertificates::CA.new
     end
-    
+
     def test_clean
         dirs = [:csrdir, :signeddir, :publickeydir, :privatekeydir, :certdir]
         ca = mkca
-        
+
         hosts.each do |host|
             files = []
             dirs.each do |dir|
@@ -46,7 +46,7 @@ class TestCA &lt; Test::Unit::TestCase
             end
         end
     end
-    
+
     def test_host2Xfile
         ca = mkca
         hosts.each do |host|
@@ -60,7 +60,7 @@ class TestCA &lt; Test::Unit::TestCase
             end
         end
     end
-    
+
     def test_list
         ca = mkca
         # Make a fake csr
@@ -71,7 +71,7 @@ class TestCA &lt; Test::Unit::TestCase
             File.open(file, &quot;w&quot;) { |f| f.puts &quot;yay&quot; }
             list &lt;&lt; host.downcase
         end
-        
+
         assert_equal(list.sort, ca.list.sort, &quot;list was not correct&quot;)
     end
 </diff>
      <filename>test/certmgr/ca.rb</filename>
    </modified>
    <modified>
      <diff>@@ -164,7 +164,7 @@ class TestCertMgr &lt; Test::Unit::TestCase
         assert_equal($?,0)
         assert_equal(File.join(Puppet[:certdir], &quot;signedcertest.pem: OK\n&quot;), output)
     end
- 
+
 
     def test_interactiveca
         ca = nil
@@ -224,14 +224,14 @@ class TestCertMgr &lt; Test::Unit::TestCase
         ca = mkCA()
         h1 = mksignedcert(ca, &quot;host1.example.com&quot;)
         h2 = mksignedcert(ca, &quot;host2.example.com&quot;)
-        
+
         assert(ca.cert.verify(ca.cert.public_key))
         assert(h1.verify(ca.cert.public_key))
         assert(h2.verify(ca.cert.public_key))
 
         crl = ca.crl
         assert_not_nil(crl)
-        
+
         store = mkStore(ca)
         assert( store.verify(ca.cert))
         assert( store.verify(h1, [ca.cert]))
@@ -252,7 +252,7 @@ class TestCertMgr &lt; Test::Unit::TestCase
         assert( store.verify(ca.cert), &quot;Could not verify CA certs after reloading certs.&quot;)
         assert(!store.verify(h1, [ca.cert]), &quot;Incorrectly verified revoked cert.&quot;)
         assert( store.verify(h2, [ca.cert]), &quot;Could not verify certs with reloaded CA.&quot;)
-        
+
         ca.revoke(h2.serial)
         assert_equal(1, ca.crl.extensions.size)
 </diff>
      <filename>test/certmgr/certmgr.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
---- 
+---
 - |
   # comment 1
   # Puppet Name: name2
@@ -9,7 +9,7 @@
 - - :record_type: :comment
     :line: &quot;# comment 1&quot;
   - :command: command4
-    :environment: 
+    :environment:
     - env3=val
     :name: name2
     :record_type: :crontab</diff>
      <filename>test/data/providers/cron/crontab.allthree</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
---- 
+---
 - |
   # comment 9
   env10=val</diff>
      <filename>test/data/providers/cron/crontab.envNcomment</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
---- 
+---
 - |
   env6=val
   # Puppet Name: name7</diff>
      <filename>test/data/providers/cron/crontab.envNname</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
---- 
+---
 - |
   # comment 9
   env10=val</diff>
      <filename>test/data/providers/cron/crontab.multirecords</filename>
    </modified>
    <modified>
      <diff>@@ -1,43 +1,43 @@
---- 
-:with_name: 
+---
+:with_name:
 - :name
 - :spaces_in_command_with_times
-:with_env: 
+:with_env:
 - :environment
 - :spaces_in_command_with_times
-:simple: 
+:simple:
 - :spaces_in_command_with_times
-:with_multiple_envs: 
+:with_multiple_envs:
 - :environment
 - :lowercase_environment
 - :spaces_in_command_with_times
-:with_name_and_env: 
+:with_name_and_env:
 - :name_with_spaces
 - :another_env
 - :spaces_in_command_with_times
-:with_name_and_multiple_envs: 
+:with_name_and_multiple_envs:
 - :long_name
 - :another_env
 - :fourth_env
 - :spaces_in_command_with_times
---- 
-:with_name: 
+---
+:with_name:
 - :name
 - :spaces_in_command_with_times
-:with_env: 
+:with_env:
 - :environment
 - :spaces_in_command_with_times
-:simple: 
+:simple:
 - :spaces_in_command_with_times
-:with_multiple_envs: 
+:with_multiple_envs:
 - :environment
 - :lowercase_environment
 - :spaces_in_command_with_times
-:with_name_and_env: 
+:with_name_and_env:
 - :name_with_spaces
 - :another_env
 - :spaces_in_command_with_times
-:with_name_and_multiple_envs: 
+:with_name_and_multiple_envs:
 - :long_name
 - :another_env
 - :fourth_env</diff>
      <filename>test/data/providers/cron/crontab_collections.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
---- 
+---
 - |
   # comment 1
   # Puppet Name: name2
@@ -13,19 +13,19 @@
 - - :record_type: :comment
     :line: &quot;# comment 1&quot;
   - :command: command4
-    :environment: 
+    :environment:
     - env3=val
     :name: name2
     :record_type: :crontab
   - :command: command5
-    :environment: 
+    :environment:
     - env3=val
     - env4=other
     :name: name with spaces
     :record_type: :crontab
   - :record_type: :comment
     :line: &quot;# comment 5&quot;
---- 
+---
 - |
   # comment 1
   # Puppet Name: name2
@@ -40,12 +40,12 @@
 - - :record_type: :comment
     :line: &quot;# comment 1&quot;
   - :command: command4
-    :environment: 
+    :environment:
     - env3=val
     :name: name2
     :record_type: :crontab
   - :command: command5
-    :environment: 
+    :environment:
     - env3=val
     - env4=other
     :name: name with spaces</diff>
      <filename>test/data/providers/cron/crontab_multiple_with_env.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -1,272 +1,272 @@
---- 
-:longcommment: 
+---
+:longcommment:
   :text: &quot;# This is a comment&quot;
-  :record: 
+  :record:
     :line: &quot;# This is a comment&quot;
     :record_type: :comment
-:special: 
+:special:
   :text: &quot;@hourly /bin/date&quot;
-  :record: 
+  :record:
     :special: hourly
     :command: /bin/date
     :record_type: :freebsd_special
-:long_name: 
+:long_name:
   :text: &quot;# Puppet Name: long_name&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: long_name&quot;
     :name: long_name
     :record_type: :comment
-:multiple_minutes: 
+:multiple_minutes:
   :text: 5,15 * * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;15&quot;
     :command: /bin/date
     :record_type: :crontab
-:environment: 
+:environment:
   :text: ONE=TWO
-  :record: 
+  :record:
     :line: ONE=TWO
     :record_type: :environment
-:empty: 
+:empty:
   :text: &quot;&quot;
-  :record: 
+  :record:
     :line: &quot;&quot;
     :record_type: :blank
-:simple: 
+:simple:
   :text: &quot;* * * * * /bin/date&quot;
-  :record: 
+  :record:
     :command: /bin/date
     :record_type: :crontab
-:whitespace: 
+:whitespace:
   :text: &quot;   &quot;
-  :record: 
+  :record:
     :line: &quot;   &quot;
     :record_type: :blank
-:minute_and_hour: 
+:minute_and_hour:
   :text: 5 15 * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     :command: /bin/date
     :record_type: :crontab
-:lowercase_environment: 
+:lowercase_environment:
   :text: a=b
-  :record: 
+  :record:
     :line: a=b
     :record_type: :environment
-:special_with_spaces: 
+:special_with_spaces:
   :text: &quot;@daily /bin/echo testing&quot;
-  :record: 
+  :record:
     :special: daily
     :command: /bin/echo testing
     :record_type: :freebsd_special
-:tabs: 
+:tabs:
   :text: !binary |
     CQ==
 
-  :record: 
+  :record:
     :line: !binary |
       CQ==
 
     :record_type: :blank
-:multiple_minute_and_hour: 
+:multiple_minute_and_hour:
   :text: 5,10 15,20 * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;10&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     - &quot;20&quot;
     :command: /bin/date
     :record_type: :crontab
-:name: 
+:name:
   :text: &quot;# Puppet Name: testing&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: testing&quot;
     :name: testing
     :record_type: :comment
-:another_env: 
+:another_env:
   :text: Testing=True
-  :record: 
+  :record:
     :line: Testing=True
     :record_type: :environment
-:shortcomment: 
+:shortcomment:
   :text: &quot;#&quot;
-  :record: 
+  :record:
     :line: &quot;#&quot;
     :record_type: :comment
-:spaces_in_command: 
+:spaces_in_command:
   :text: &quot;* * * * * /bin/echo testing&quot;
-  :record: 
+  :record:
     :command: /bin/echo testing
     :record_type: :crontab
-:fourth_env: 
+:fourth_env:
   :text: True=False
-  :record: 
+  :record:
     :line: True=False
     :record_type: :environment
-:simple_with_minute: 
+:simple_with_minute:
   :text: 5 * * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     :command: /bin/date
     :record_type: :crontab
-:spaces_in_command_with_times: 
+:spaces_in_command_with_times:
   :text: 5,10 15,20 * * * /bin/echo testing
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;10&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     - &quot;20&quot;
     :command: /bin/echo testing
     :record_type: :crontab
-:name_with_spaces: 
+:name_with_spaces:
   :text: &quot;# Puppet Name: another name&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: another name&quot;
     :name: another name
     :record_type: :comment
---- 
-:longcommment: 
+---
+:longcommment:
   :text: &quot;# This is a comment&quot;
-  :record: 
+  :record:
     :line: &quot;# This is a comment&quot;
     :record_type: :comment
-:special: 
+:special:
   :text: &quot;@hourly /bin/date&quot;
-  :record: 
+  :record:
     :special: hourly
     :command: /bin/date
     :record_type: :freebsd_special
-:long_name: 
+:long_name:
   :text: &quot;# Puppet Name: long_name&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: long_name&quot;
     :name: long_name
     :record_type: :comment
-:multiple_minutes: 
+:multiple_minutes:
   :text: 5,15 * * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;15&quot;
     :command: /bin/date
     :record_type: :crontab
-:environment: 
+:environment:
   :text: ONE=TWO
-  :record: 
+  :record:
     :line: ONE=TWO
     :record_type: :environment
-:empty: 
+:empty:
   :text: &quot;&quot;
-  :record: 
+  :record:
     :line: &quot;&quot;
     :record_type: :blank
-:simple: 
+:simple:
   :text: &quot;* * * * * /bin/date&quot;
-  :record: 
+  :record:
     :command: /bin/date
     :record_type: :crontab
-:whitespace: 
+:whitespace:
   :text: &quot;   &quot;
-  :record: 
+  :record:
     :line: &quot;   &quot;
     :record_type: :blank
-:minute_and_hour: 
+:minute_and_hour:
   :text: 5 15 * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     :command: /bin/date
     :record_type: :crontab
-:lowercase_environment: 
+:lowercase_environment:
   :text: a=b
-  :record: 
+  :record:
     :line: a=b
     :record_type: :environment
-:special_with_spaces: 
+:special_with_spaces:
   :text: &quot;@daily /bin/echo testing&quot;
-  :record: 
+  :record:
     :special: daily
     :command: /bin/echo testing
     :record_type: :freebsd_special
-:tabs: 
+:tabs:
   :text: !binary |
     CQ==
 
-  :record: 
+  :record:
     :line: !binary |
       CQ==
 
     :record_type: :blank
-:multiple_minute_and_hour: 
+:multiple_minute_and_hour:
   :text: 5,10 15,20 * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;10&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     - &quot;20&quot;
     :command: /bin/date
     :record_type: :crontab
-:name: 
+:name:
   :text: &quot;# Puppet Name: testing&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: testing&quot;
     :name: testing
     :record_type: :comment
-:another_env: 
+:another_env:
   :text: Testing=True
-  :record: 
+  :record:
     :line: Testing=True
     :record_type: :environment
-:shortcomment: 
+:shortcomment:
   :text: &quot;#&quot;
-  :record: 
+  :record:
     :line: &quot;#&quot;
     :record_type: :comment
-:spaces_in_command: 
+:spaces_in_command:
   :text: &quot;* * * * * /bin/echo testing&quot;
-  :record: 
+  :record:
     :command: /bin/echo testing
     :record_type: :crontab
-:fourth_env: 
+:fourth_env:
   :text: True=False
-  :record: 
+  :record:
     :line: True=False
     :record_type: :environment
-:simple_with_minute: 
+:simple_with_minute:
   :text: 5 * * * * /bin/date
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     :command: /bin/date
     :record_type: :crontab
-:spaces_in_command_with_times: 
+:spaces_in_command_with_times:
   :text: 5,10 15,20 * * * /bin/echo testing
-  :record: 
-    :minute: 
+  :record:
+    :minute:
     - &quot;5&quot;
     - &quot;10&quot;
-    :hour: 
+    :hour:
     - &quot;15&quot;
     - &quot;20&quot;
     :command: /bin/echo testing
     :record_type: :crontab
-:name_with_spaces: 
+:name_with_spaces:
   :text: &quot;# Puppet Name: another name&quot;
-  :record: 
+  :record:
     :line: &quot;# Puppet Name: another name&quot;
     :name: another name
     :record_type: :comment</diff>
      <filename>test/data/providers/cron/crontab_sample_records.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
---- 
+---
 - :operatingsystem: Solaris
-  :files: 
+  :files:
   - /usr/local/pkg/rdesktop-1.3.1-sol10-intel-local
   - /usr/local/pkg/rdesktop-1.4.1-sol10-x86-local
   :hardwareisa: i386
@@ -11,21 +11,21 @@
   :name: cabextract
   :provider: :blastwave
 - :operatingsystem: Solaris
-  :files: 
+  :files:
   - /usr/local/pkg/arc-5.21e-sol8-sparc-local
   :hardwareisa: sparc
   :name: SMCarc
   :operatingsystemrelease: &quot;5.8&quot;
   :provider: :sun
 - :operatingsystem: Solaris
-  :files: 
+  :files:
   - /usr/local/pkg/arc-5.21e-sol8-intel-local
   :hardwareisa: i386
   :name: SMCarc
   :operatingsystemrelease: &quot;5.8&quot;
   :provider: :sun
 - :operatingsystem: OpenBSD
-  :files: 
+  :files:
   - ftp://ftp.usa.openbsd.org/pub/OpenBSD/3.8/packages/i386/aalib-1.2-no_x11.tgz
   :name: aalib
   :provider: :openbsd
@@ -42,7 +42,7 @@
   - Fedora
   - CentOS
   - RedHat
-  :files: 
+  :files:
   - /home/luke/rpm/RPMS/noarch/enhost-1.0.1-1.noarch.rpm
   - /home/luke/rpm/RPMS/noarch/enhost-1.0.2-1.noarch.rpm
   :name: enhost</diff>
      <filename>test/data/providers/package/testpackages.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
---- !ruby/object:Puppet::Transaction::Report 
+--- !ruby/object:Puppet::Transaction::Report
 host: culain.madstop.com
-logs: 
-- !ruby/object:Puppet::Log 
+logs:
+- !ruby/object:Puppet::Log
   level: :notice
   message: executed successfully
   objectsource: true
   source: //culain.madstop.com/puppetserver/exec=/bin/echo testing/returns
-  tags: 
+  tags:
   - :puppetserver
   - :puppetserver
   - :basenode
@@ -15,12 +15,12 @@ logs:
   - :exec
   - :returns
   time: 2006-09-21 13:06:59.867782 -05:00
-- !ruby/object:Puppet::Log 
+- !ruby/object:Puppet::Log
   level: :notice
   message: ensure changed 'stopped' to 'running'
   objectsource: true
   source: //culain.madstop.com/mailserver/service=spamassassin/ensure
-  tags: 
+  tags:
   - :mailserver
   - :mailserver
   - :basenode
@@ -29,12 +29,12 @@ logs:
   - :service
   - :ensure
   time: 2006-09-21 13:07:01.336511 -05:00
-- !ruby/object:Puppet::Log 
+- !ruby/object:Puppet::Log
   level: :notice
   message: ensure changed 'stopped' to 'running'
   objectsource: true
   source: //culain.madstop.com/mailserver/service=courier-imap-ssl/ensure
-  tags: 
+  tags:
   - :mailserver
   - :mailserver
   - :basenode
@@ -43,12 +43,12 @@ logs:
   - :service
   - :ensure
   time: 2006-09-21 13:07:01.573506 -05:00
-- !ruby/object:Puppet::Log 
+- !ruby/object:Puppet::Log
   level: :notice
   message: ensure changed 'stopped' to 'running'
   objectsource: true
   source: //culain.madstop.com/mailserver/service=courier-authdaemon/ensure
-  tags: 
+  tags:
   - :mailserver
   - :mailserver
   - :basenode
@@ -57,28 +57,28 @@ logs:
   - :service
   - :ensure
   time: 2006-09-21 13:07:01.680440 -05:00
-metrics: 
-  time: !ruby/object:Puppet::Metric 
+metrics:
+  time: !ruby/object:Puppet::Metric
     label: Time
     name: time
-    values: 
+    values:
     - - :config_retrieval
       - Config retrieval
       - 2.26467204093933
     - - :total
       - Total
       - 21.7894113063812
-  changes: !ruby/object:Puppet::Metric 
+  changes: !ruby/object:Puppet::Metric
     label: Changes
     name: changes
-    values: 
+    values:
     - - :total
       - Total
       - 4
-  objects: !ruby/object:Puppet::Metric 
+  objects: !ruby/object:Puppet::Metric
     label: Objects
     name: objects
-    values: 
+    values:
     - - :scheduled
       - Scheduled
       - 78</diff>
      <filename>test/data/reports/1.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
 one: abuse@domain.com
 
 # with weird spacing
- one : abuse@domain.com 
+ one : abuse@domain.com
 
 # with multiple tags
 one, two: abuse@domain.com
@@ -25,6 +25,6 @@ one, two-three, !four-five, !six: abuse@domain.com
 one, two: abuse@domain.com, testing@domain.com
 
 # and with weird spacing
-one, two: abuse@domain.com , testing@domain.com    
+one, two: abuse@domain.com , testing@domain.com
 
 # and a trailing comment</diff>
      <filename>test/data/reports/tagmail_passers.conf</filename>
    </modified>
    <modified>
      <diff>@@ -19,10 +19,10 @@ case $ovar {
     }
     &quot;booness&quot;, &quot;yayness&quot;: {
         case $var {
-            &quot;nep&quot;: { 
+            &quot;nep&quot;: {
                  file { &quot;/tmp/noexistsfile&quot;: mode =&gt; 644, ensure =&gt; file }
             }
-            &quot;value&quot;: { 
+            &quot;value&quot;: {
                  file { &quot;/tmp/existsfile2&quot;: mode =&gt; 755, ensure =&gt; file }
             }
         }</diff>
      <filename>test/data/snippets/casestatement.pp</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,6 @@ class sub2 inherits base {
     file { &quot;/tmp/classincludes3&quot;: ensure =&gt; file, mode =&gt; 755 }
 }
 
-$sub = &quot;sub2&quot; 
+$sub = &quot;sub2&quot;
 
 include sub1, $sub</diff>
      <filename>test/data/snippets/classincludes.pp</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
 class base {
     class one {
         file { &quot;/tmp/fqparent1&quot;: ensure =&gt; file }
-    }   
-}   
+    }
+}
 
 class two::three inherits base::one {
     file { &quot;/tmp/fqparent2&quot;: ensure =&gt; file }</diff>
      <filename>test/data/snippets/fqparents.pp</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 # Do not remove the following line, or various programs
 # that require network functionality will fail.
-127.0.0.1               hostname.domain.net hostname localhost.localdomain localhost 
+127.0.0.1               hostname.domain.net hostname localhost.localdomain localhost</diff>
      <filename>test/data/types/hosts/1</filename>
    </modified>
    <modified>
      <diff>@@ -285,7 +285,7 @@ dixie            96/tcp     # DIXIE Protocol Specification
 swift-rvf        97/udp     # Swift Remote Virtural File Protocol
 swift-rvf        97/tcp     # Swift Remote Virtural File Protocol
 #                          Maurice R. Turcotte
-#                &lt;mailrus!uflorida!rm1!dnmrt%rmatl@uunet.UU.NET&gt; 
+#                &lt;mailrus!uflorida!rm1!dnmrt%rmatl@uunet.UU.NET&gt;
 tacnews          98/udp     # TAC News
 tacnews          98/tcp     # TAC News
 #                          Jon Postel &lt;postel@isi.edu&gt;
@@ -306,7 +306,7 @@ acr-nema        104/tcp     # ACR-NEMA Digital Imag. &amp; Comm. 300
 #                          Patrick McNamee &lt;--none---&gt;
 cso             105/udp     # CCSO name server protocol
 cso             105/tcp     # CCSO name server protocol
-#                          Martin Hamilton &lt;martin@mrrl.lut.as.uk&gt;           
+#                          Martin Hamilton &lt;martin@mrrl.lut.as.uk&gt;
 csnet-ns        105/udp     # Mailbox Name Nameserver
 csnet-ns        105/tcp     # Mailbox Name Nameserver
 #                          Marvin Solomon &lt;solomon@CS.WISC.EDU&gt;
@@ -333,7 +333,7 @@ mcidas          112/udp     # McIDAS Data Transmission Protocol
 mcidas          112/tcp     # McIDAS Data Transmission Protocol
 #                          Glenn Davis &lt;support@unidata.ucar.edu&gt;
 auth            113/udp     # Authentication Service
-ident           113/tcp     auth # 
+ident           113/tcp     auth #
 #                          Mike St. Johns &lt;stjohns@arpa.mil&gt;
 audionews       114/udp     # Audio News Multicast
 audionews       114/tcp     # Audio News Multicast
@@ -402,11 +402,11 @@ ingres-net      134/tcp     # INGRES-NET Service
 epmap           135/udp     # DCE endpoint resolution
 epmap           135/tcp     # DCE endpoint resolution
 #                          Joe Pato &lt;pato@apollo.hp.com&gt;
-profile         136/udp     # PROFILE Naming System           
-profile         136/tcp     # PROFILE Naming System           
+profile         136/udp     # PROFILE Naming System
+profile         136/tcp     # PROFILE Naming System
 #                          Larry Peterson &lt;llp@ARIZONA.EDU&gt;
-netbios-ns      137/udp     # NETBIOS Name Service    
-netbios-ns      137/tcp     # NETBIOS Name Service    
+netbios-ns      137/udp     # NETBIOS Name Service
+netbios-ns      137/tcp     # NETBIOS Name Service
 netbios-dgm     138/udp     # NETBIOS Datagram Service
 netbios-dgm     138/tcp     # NETBIOS Datagram Service
 netbios-ssn     139/udp     # NETBIOS Session Service
@@ -417,8 +417,8 @@ emfis-data      140/tcp     # EMFIS Data Service
 emfis-cntl      141/udp     # EMFIS Control Service
 emfis-cntl      141/tcp     # EMFIS Control Service
 #                          Gerd Beling &lt;GBELING@ISI.EDU&gt;
-bl-idm          142/udp     # Britton-Lee IDM           
-bl-idm          142/tcp     # Britton-Lee IDM           
+bl-idm          142/udp     # Britton-Lee IDM
+bl-idm          142/tcp     # Britton-Lee IDM
 #                          Susie Snitzer &lt;---none---&gt;
 imap            143/udp     # Internet Message Access Protocol
 imap            143/tcp     # Internet Message Access Protocol
@@ -426,8 +426,8 @@ imap            143/tcp     # Internet Message Access Protocol
 uma             144/udp     # Universal Management Architecture
 uma             144/tcp     # Universal Management Architecture
 #                          Jay Whitney &lt;jw@powercenter.com&gt;
-uaac            145/udp     # UAAC Protocol             
-uaac            145/tcp     # UAAC Protocol             
+uaac            145/udp     # UAAC Protocol
+uaac            145/tcp     # UAAC Protocol
 #                          David A. Gomberg &lt;gomberg@GATEWAY.MITRE.ORG&gt;
 iso-tp0         146/udp     # ISO-IP0
 iso-tp0         146/tcp     # ISO-IP0
@@ -437,144 +437,144 @@ iso-ip          147/tcp     # ISO-IP
 jargon          148/udp     # Jargon
 jargon          148/tcp     # Jargon
 #                          Bill Weinman &lt;wew@bearnet.com&gt;
-aed-512         149/udp     # AED 512 Emulation Service           
-aed-512         149/tcp     # AED 512 Emulation Service           
+aed-512         149/udp     # AED 512 Emulation Service
+aed-512         149/tcp     # AED 512 Emulation Service
 #                          Albert G. Broscius &lt;broscius@DSL.CIS.UPENN.EDU&gt;
-sql-net         150/udp     # SQL-NET                    
-sql-net         150/tcp     # SQL-NET                    
+sql-net         150/udp     # SQL-NET
+sql-net         150/tcp     # SQL-NET
 #                          Martin Picard &lt;&lt;---none---&gt;
-hems            151/udp     # HEMS                              
-hems            151/tcp     # HEMS                              
-bftp            152/udp     # Background File Transfer Program 
-bftp            152/tcp     # Background File Transfer Program 
+hems            151/udp     # HEMS
+hems            151/tcp     # HEMS
+bftp            152/udp     # Background File Transfer Program
+bftp            152/tcp     # Background File Transfer Program
 #                          Annette DeSchon &lt;DESCHON@ISI.EDU&gt;
-sgmp            153/udp     # SGMP                    
-sgmp            153/tcp     # SGMP                    
+sgmp            153/udp     # SGMP
+sgmp            153/tcp     # SGMP
 #                          Marty Schoffstahl &lt;schoff@NISC.NYSER.NET&gt;
-netsc-prod      154/udp     # NETSC                             
-netsc-prod      154/tcp     # NETSC                             
-netsc-dev       155/udp     # NETSC                             
-netsc-dev       155/tcp     # NETSC                             
+netsc-prod      154/udp     # NETSC
+netsc-prod      154/tcp     # NETSC
+netsc-dev       155/udp     # NETSC
+netsc-dev       155/tcp     # NETSC
 #                          Sergio Heker &lt;heker@JVNCC.CSC.ORG&gt;
-sqlsrv          156/udp     # SQL Service                  
-sqlsrv          156/tcp     # SQL Service                  
+sqlsrv          156/udp     # SQL Service
+sqlsrv          156/tcp     # SQL Service
 #                          Craig Rogers &lt;Rogers@ISI.EDU&gt;
 knet-cmp        157/udp     # KNET/VM Command/Message Protocol
 knet-cmp        157/tcp     # KNET/VM Command/Message Protocol
 #                          Gary S. Malkin &lt;GMALKIN@XYLOGICS.COM&gt;
-pcmail-srv      158/udp     # PCMail Server                 
-pcmail-srv      158/tcp     # PCMail Server                 
+pcmail-srv      158/udp     # PCMail Server
+pcmail-srv      158/tcp     # PCMail Server
 #                          Mark L. Lambert &lt;markl@PTT.LCS.MIT.EDU&gt;
-nss-routing     159/udp     # NSS-Routing                  
-nss-routing     159/tcp     # NSS-Routing                  
+nss-routing     159/udp     # NSS-Routing
+nss-routing     159/tcp     # NSS-Routing
 #                          Yakov Rekhter &lt;Yakov@IBM.COM&gt;
-sgmp-traps      160/udp     # SGMP-TRAPS                
-sgmp-traps      160/tcp     # SGMP-TRAPS                
+sgmp-traps      160/udp     # SGMP-TRAPS
+sgmp-traps      160/tcp     # SGMP-TRAPS
 #                          Marty Schoffstahl &lt;schoff@NISC.NYSER.NET&gt;
 snmp            161/udp     # SNMP
 snmp            161/tcp     # SNMP
 snmptrap        162/udp     # SNMPTRAP
 snmptrap        162/tcp     # SNMPTRAP
 #                          Marshall Rose &lt;mrose@dbc.mtview.ca.us&gt;
-cmip-man        163/udp     # CMIP/TCP Manager   
-cmip-man        163/tcp     # CMIP/TCP Manager   
-cmip-agent      164/udp     # CMIP/TCP Agent     
-cmip-agent      164/tcp     # CMIP/TCP Agent     
+cmip-man        163/udp     # CMIP/TCP Manager
+cmip-man        163/tcp     # CMIP/TCP Manager
+cmip-agent      164/udp     # CMIP/TCP Agent
+cmip-agent      164/tcp     # CMIP/TCP Agent
 #                          Amatzia Ben-Artzi &lt;---none---&gt;
-xns-courier     165/udp     # Xerox                          
-xns-courier     165/tcp     # Xerox                          
+xns-courier     165/udp     # Xerox
+xns-courier     165/tcp     # Xerox
 #                          Susie Armstrong &lt;Armstrong.wbst128@XEROX.COM&gt;
-s-net           166/udp     # Sirius Systems          
-s-net           166/tcp     # Sirius Systems          
+s-net           166/udp     # Sirius Systems
+s-net           166/tcp     # Sirius Systems
 #                          Brian Lloyd &lt;brian@lloyd.com&gt;
-namp            167/udp     # NAMP                    
-namp            167/tcp     # NAMP                    
+namp            167/udp     # NAMP
+namp            167/tcp     # NAMP
 #                          Marty Schoffstahl &lt;schoff@NISC.NYSER.NET&gt;
-rsvd            168/udp     # RSVD                              
-rsvd            168/tcp     # RSVD                              
+rsvd            168/udp     # RSVD
+rsvd            168/tcp     # RSVD
 #                          Neil Todd &lt;mcvax!ist.co.uk!neil@UUNET.UU.NET&gt;
-send            169/udp     # SEND                              
-send            169/tcp     # SEND                              
+send            169/udp     # SEND
+send            169/tcp     # SEND
 #                          William D. Wisner &lt;wisner@HAYES.FAI.ALASKA.EDU&gt;
-print-srv       170/udp     # Network PostScript              
-print-srv       170/tcp     # Network PostScript              
+print-srv       170/udp     # Network PostScript
+print-srv       170/tcp     # Network PostScript
 #                          Brian Reid &lt;reid@DECWRL.DEC.COM&gt;
 multiplex       171/udp     # Network Innovations Multiplex
 multiplex       171/tcp     # Network Innovations Multiplex
-cl/1            172/udp     # Network Innovations CL/1     
-cl/1            172/tcp     # Network Innovations CL/1     
+cl/1            172/udp     # Network Innovations CL/1
+cl/1            172/tcp     # Network Innovations CL/1
 #                          Kevin DeVault &lt;&lt;---none---&gt;
-xyplex-mux      173/udp     # Xyplex                          
-xyplex-mux      173/tcp     # Xyplex                          
+xyplex-mux      173/udp     # Xyplex
+xyplex-mux      173/tcp     # Xyplex
 #                          Bob Stewart &lt;STEWART@XYPLEX.COM&gt;
-mailq           174/udp     # MAILQ                               
-mailq           174/tcp     # MAILQ                               
+mailq           174/udp     # MAILQ
+mailq           174/tcp     # MAILQ
 #                          Rayan Zachariassen &lt;rayan@AI.TORONTO.EDU&gt;
-vmnet           175/udp     # VMNET  
-vmnet           175/tcp     # VMNET                                
+vmnet           175/udp     # VMNET
+vmnet           175/tcp     # VMNET
 #                          Christopher Tengi &lt;tengi@Princeton.EDU&gt;
-genrad-mux      176/udp     # GENRAD-MUX                      
-genrad-mux      176/tcp     # GENRAD-MUX                      
+genrad-mux      176/udp     # GENRAD-MUX
+genrad-mux      176/tcp     # GENRAD-MUX
 #                          Ron Thornton &lt;thornton@qm7501.genrad.com&gt;
-xdmcp           177/udp     # X Display Manager Control Protocol  
-xdmcp           177/tcp     # X Display Manager Control Protocol  
+xdmcp           177/udp     # X Display Manager Control Protocol
+xdmcp           177/tcp     # X Display Manager Control Protocol
 #                          Robert W. Scheifler &lt;RWS@XX.LCS.MIT.EDU&gt;
-nextstep        178/udp     # NextStep Window Server     
-nextstep        178/tcp     # NextStep Window Server     
+nextstep        178/udp     # NextStep Window Server
+nextstep        178/tcp     # NextStep Window Server
 #                          Leo Hourvitz &lt;leo@NEXT.COM&gt;
-bgp             179/udp     # Border Gateway Protocol             
-bgp             179/tcp     # Border Gateway Protocol             
+bgp             179/udp     # Border Gateway Protocol
+bgp             179/tcp     # Border Gateway Protocol
 #                          Kirk Lougheed &lt;LOUGHEED@MATHOM.CISCO.COM&gt;
-ris             180/udp     # Intergraph                         
-ris             180/tcp     # Intergraph                         
+ris             180/udp     # Intergraph
+ris             180/tcp     # Intergraph
 #                          Dave Buehmann &lt;ingr!daveb@UUNET.UU.NET&gt;
-unify           181/udp     # Unify                  
-unify           181/tcp     # Unify                  
+unify           181/udp     # Unify
+unify           181/tcp     # Unify
 #                          Mark Ainsley &lt;ianaportmaster@unify.com&gt;
-audit           182/udp     # Unisys Audit SITP                  
-audit           182/tcp     # Unisys Audit SITP                  
+audit           182/udp     # Unisys Audit SITP
+audit           182/tcp     # Unisys Audit SITP
 #                          Gil Greenbaum &lt;gcole@nisd.cam.unisys.com&gt;
-ocbinder        183/udp     # OCBinder                     
-ocbinder        183/tcp     # OCBinder                     
-ocserver        184/udp     # OCServer                     
-ocserver        184/tcp     # OCServer                     
+ocbinder        183/udp     # OCBinder
+ocbinder        183/tcp     # OCBinder
+ocserver        184/udp     # OCServer
+ocserver        184/tcp     # OCServer
 #                          Jerrilynn Okamura &lt;--none---&gt;
-remote-kis      185/udp     # Remote-KIS                        
-remote-kis      185/tcp     # Remote-KIS                        
-kis             186/udp     # KIS Protocol                      
-kis             186/tcp     # KIS Protocol                      
+remote-kis      185/udp     # Remote-KIS
+remote-kis      185/tcp     # Remote-KIS
+kis             186/udp     # KIS Protocol
+kis             186/tcp     # KIS Protocol
 #                          Ralph Droms &lt;rdroms@NRI.RESTON.VA.US&gt;
 aci             187/udp     # Application Communication Interface
 aci             187/tcp     # Application Communication Interface
 #                          Rick Carlos &lt;rick.ticipa.csc.ti.com&gt;
-mumps           188/udp     # Plus Five's MUMPS            
-mumps           188/tcp     # Plus Five's MUMPS            
+mumps           188/udp     # Plus Five's MUMPS
+mumps           188/tcp     # Plus Five's MUMPS
 #                          Hokey Stenn &lt;hokey@PLUS5.COM&gt;
-qft             189/udp     # Queued File Transport        
-qft             189/tcp     # Queued File Transport        
+qft             189/udp     # Queued File Transport
+qft             189/tcp     # Queued File Transport
 #                          Wayne Schroeder &lt;schroeder@SDS.SDSC.EDU&gt;
 gacp            190/udp     # Gateway Access Control Protocol
 gacp            190/tcp     # Gateway Access Control Protocol
 #                          C. Philip Wood &lt;cpw@LANL.GOV&gt;
-prospero        191/udp     # Prospero Directory Service      
-prospero        191/tcp     # Prospero Directory Service      
+prospero        191/udp     # Prospero Directory Service
+prospero        191/tcp     # Prospero Directory Service
 #                          B. Clifford Neuman &lt;bcn@isi.edu&gt;
-osu-nms         192/udp     # OSU Network Monitoring System       
-osu-nms         192/tcp     # OSU Network Monitoring System       
+osu-nms         192/udp     # OSU Network Monitoring System
+osu-nms         192/tcp     # OSU Network Monitoring System
 #                          Doug Karl &lt;KARL-D@OSU-20.IRCC.OHIO-STATE.EDU&gt;
-srmp            193/udp     # Spider Remote Monitoring Protocol 
-srmp            193/tcp     # Spider Remote Monitoring Protocol 
+srmp            193/udp     # Spider Remote Monitoring Protocol
+srmp            193/tcp     # Spider Remote Monitoring Protocol
 #                          Ted J. Socolofsky &lt;Teds@SPIDER.CO.UK&gt;
-irc             194/udp     # Internet Relay Chat Protocol        
-irc             194/tcp     # Internet Relay Chat Protocol        
+irc             194/udp     # Internet Relay Chat Protocol
+irc             194/tcp     # Internet Relay Chat Protocol
 #                          Jarkko Oikarinen &lt;jto@TOLSUN.OULU.FI&gt;
-dn6-nlm-aud     195/udp     # DNSIX Network Level Module Audit    
-dn6-nlm-aud     195/tcp     # DNSIX Network Level Module Audit    
+dn6-nlm-aud     195/udp     # DNSIX Network Level Module Audit
+dn6-nlm-aud     195/tcp     # DNSIX Network Level Module Audit
 dn6-smm-red     196/udp     # DNSIX Session Mgt Module Audit Redir
 dn6-smm-red     196/tcp     # DNSIX Session Mgt Module Audit Redir
 #                          Lawrence Lebahn &lt;DIA3@PAXRV-NES.NAVY.MIL&gt;
-dls             197/udp     # Directory Location Service        
-dls             197/tcp     # Directory Location Service        
+dls             197/udp     # Directory Location Service
+dls             197/tcp     # Directory Location Service
 dls-mon         198/udp     # Directory Location Service Monitor
 dls-mon         198/tcp     # Directory Location Service Monitor
 #                          Scott Bellew &lt;smb@cs.purdue.edu&gt;
@@ -584,40 +584,40 @@ smux            199/tcp     # SMUX
 src             200/udp     # IBM System Resource Controller
 src             200/tcp     # IBM System Resource Controller
 #                          Gerald McBrearty &lt;---none---&gt;
-at-rtmp         201/udp     # AppleTalk Routing Maintenance       
-at-rtmp         201/tcp     # AppleTalk Routing Maintenance       
-at-nbp          202/udp     # AppleTalk Name Binding              
-at-nbp          202/tcp     # AppleTalk Name Binding              
-at-3            203/udp     # AppleTalk Unused                    
-at-3            203/tcp     # AppleTalk Unused                    
-at-echo         204/udp     # AppleTalk Echo                      
-at-echo         204/tcp     # AppleTalk Echo                      
-at-5            205/udp     # AppleTalk Unused                    
-at-5            205/tcp     # AppleTalk Unused                    
-at-zis          206/udp     # AppleTalk Zone Information          
-at-zis          206/tcp     # AppleTalk Zone Information          
-at-7            207/udp     # AppleTalk Unused                    
-at-7            207/tcp     # AppleTalk Unused                    
-at-8            208/udp     # AppleTalk Unused                    
-at-8            208/tcp     # AppleTalk Unused                    
+at-rtmp         201/udp     # AppleTalk Routing Maintenance
+at-rtmp         201/tcp     # AppleTalk Routing Maintenance
+at-nbp          202/udp     # AppleTalk Name Binding
+at-nbp          202/tcp     # AppleTalk Name Binding
+at-3            203/udp     # AppleTalk Unused
+at-3            203/tcp     # AppleTalk Unused
+at-echo         204/udp     # AppleTalk Echo
+at-echo         204/tcp     # AppleTalk Echo
+at-5            205/udp     # AppleTalk Unused
+at-5            205/tcp     # AppleTalk Unused
+at-zis          206/udp     # AppleTalk Zone Information
+at-zis          206/tcp     # AppleTalk Zone Information
+at-7            207/udp     # AppleTalk Unused
+at-7            207/tcp     # AppleTalk Unused
+at-8            208/udp     # AppleTalk Unused
+at-8            208/tcp     # AppleTalk Unused
 #                          Rob Chandhok &lt;chandhok@gnome.cs.cmu.edu&gt;
 qmtp            209/udp     # The Quick Mail Transfer Protocol
 qmtp            209/tcp     # The Quick Mail Transfer Protocol
 #                          Dan Bernstein &lt;djb@silverton.berkeley.edu&gt;
 z39.50          210/udp     # ANSI Z39.50
 z39.50          210/tcp     # ANSI Z39.50
-#                          Mark H. Needleman &lt;markn@sirsi.com&gt; 
+#                          Mark H. Needleman &lt;markn@sirsi.com&gt;
 914c/g          211/udp     # Texas Instruments 914C/G Terminal
 914c/g          211/tcp     # Texas Instruments 914C/G Terminal
 #                          Bill Harrell &lt;---none---&gt;
-anet            212/udp     # ATEXSSTR   
-anet            212/tcp     # ATEXSSTR   
+anet            212/udp     # ATEXSSTR
+anet            212/tcp     # ATEXSSTR
 #                          Jim Taylor &lt;taylor@heart.epps.kodak.com&gt;
-ipx             213/udp     # IPX                                
+ipx             213/udp     # IPX
 ipx             213/tcp     # IPX
 #                          Don Provan &lt;donp@xlnvax.novell.com&gt;
-vmpwscs         214/udp     # VM PWSCS                         
-vmpwscs         214/tcp     # VM PWSCS                         
+vmpwscs         214/udp     # VM PWSCS
+vmpwscs         214/tcp     # VM PWSCS
 #                          Dan Shia &lt;dset!shia@uunet.UU.NET&gt;
 softpc          215/udp     # Insignia Solutions
 softpc          215/tcp     # Insignia Solutions
@@ -628,22 +628,22 @@ CAIlic          216/tcp     # Computer Associates Int'l License Server
 dbase           217/udp     # dBASE Unix
 dbase           217/tcp     # dBASE Unix
 #                          Don Gibson
-#            &lt;sequent!aero!twinsun!ashtate.A-T.COM!dong@uunet.UU.NET&gt; 
+#            &lt;sequent!aero!twinsun!ashtate.A-T.COM!dong@uunet.UU.NET&gt;
 mpp             218/udp     # Netix Message Posting Protocol
 mpp             218/tcp     # Netix Message Posting Protocol
 #                          Shannon Yeh &lt;yeh@netix.com&gt;
-uarps           219/udp     # Unisys ARPs               
-uarps           219/tcp     # Unisys ARPs               
+uarps           219/udp     # Unisys ARPs
+uarps           219/tcp     # Unisys ARPs
 #                          Ashok Marwaha &lt;---none---&gt;
 imap3           220/udp     # Interactive Mail Access Protocol v3
 imap3           220/tcp     # Interactive Mail Access Protocol v3
 #                          James Rice &lt;RICE@SUMEX-AIM.STANFORD.EDU&gt;
-fln-spx         221/udp     # Berkeley rlogind with SPX auth   
-fln-spx         221/tcp     # Berkeley rlogind with SPX auth   
-rsh-spx         222/udp     # Berkeley rshd with SPX auth      
-rsh-spx         222/tcp     # Berkeley rshd with SPX auth      
-cdc             223/udp     # Certificate Distribution Center  
-cdc             223/tcp     # Certificate Distribution Center  
+fln-spx         221/udp     # Berkeley rlogind with SPX auth
+fln-spx         221/tcp     # Berkeley rlogind with SPX auth
+rsh-spx         222/udp     # Berkeley rshd with SPX auth
+rsh-spx         222/tcp     # Berkeley rshd with SPX auth
+cdc             223/udp     # Certificate Distribution Center
+cdc             223/tcp     # Certificate Distribution Center
 #               Kannan Alagappan &lt;kannan@sejour.enet.dec.com&gt;
 ########### Possible Conflict of Port 222 with &quot;Masqdialer&quot;##############
 ### Contact for Masqdialer is Charles Wright &lt;cpwright@villagenet.com&gt;###
@@ -655,16 +655,16 @@ masqdialer      224/tcp     # masqdialer
 direct          242/udp     # Direct
 direct          242/tcp     # Direct
 #                          Herb Sutter &lt;HerbS@cntc.com&gt;
-sur-meas        243/udp     # Survey Measurement          
-sur-meas        243/tcp     # Survey Measurement          
+sur-meas        243/udp     # Survey Measurement
+sur-meas        243/tcp     # Survey Measurement
 #                          Dave Clark &lt;ddc@LCS.MIT.EDU&gt;
 inbusiness      244/udp     # inbusiness
 inbusiness      244/tcp     # inbusiness
 #                          Derrick Hisatake &lt;derrick.i.hisatake@intel.com&gt;
 link            245/udp     # LINK
 link            245/tcp     # LINK
-dsp3270         246/udp     # Display Systems Protocol        
-dsp3270         246/tcp     # Display Systems Protocol        
+dsp3270         246/udp     # Display Systems Protocol
+dsp3270         246/tcp     # Display Systems Protocol
 #                          Weldon J. Showalter &lt;Gamma@MINTAKA.DCA.MIL&gt;
 subntbcst_tftp  247/udp     # SUBNTBCST_TFTP
 subntbcst_tftp  247/tcp     # SUBNTBCST_TFTP
@@ -729,19 +729,19 @@ rescap          283/tcp     # rescap
 corerjd         284/udp     # corerjd
 corerjd         284/tcp     # corerjd
 #                          Chris Thornhill &lt;cjt@corenetworks.com&gt;
-#               285        Unassigned  
+#               285        Unassigned
 fxp-1           286/udp     # FXP-1
 fxp-1           286/tcp     # FXP-1
-#                          James Darnall &lt;jim@cennoid.com&gt;   
+#                          James Darnall &lt;jim@cennoid.com&gt;
 k-block         287/udp     # K-BLOCK
 k-block         287/tcp     # K-BLOCK
-#                          Simon P Jackson &lt;jacko@kring.co.uk&gt;    
+#                          Simon P Jackson &lt;jacko@kring.co.uk&gt;
 #               288-307    Unassigned
 novastorbakcup  308/udp     # Novastor Backup
 novastorbakcup  308/tcp     # Novastor Backup
 #                          Brian Dickman &lt;brian@novastor.com&gt;
-entrusttime     309/udp     # EntrustTime    
-entrusttime     309/tcp     # EntrustTime    
+entrusttime     309/udp     # EntrustTime
+entrusttime     309/tcp     # EntrustTime
 #                          Peter Whittaker &lt;pww@entrust.com&gt;
 bhmds           310/udp     # bhmds
 bhmds           310/tcp     # bhmds
@@ -884,7 +884,7 @@ hassle          375/udp     # Hassle
 hassle          375/tcp     # Hassle
 #                          Reinhard Doelz &lt;doelz@comp.bioz.unibas.ch&gt;
 nip             376/udp     # Amiga Envoy Network Inquiry Proto
-nip             376/tcp     # Amiga Envoy Network Inquiry Proto   
+nip             376/tcp     # Amiga Envoy Network Inquiry Proto
 #                          Heinz Wrobel &lt;hwrobel@gmx.de&gt;
 tnETOS          377/udp     # NEC Corporation
 tnETOS          377/tcp     # NEC Corporation
@@ -915,15 +915,15 @@ asa             386/tcp     # ASA Message Router Object Def.
 aurp            387/udp     # Appletalk Update-Based Routing Pro.
 aurp            387/tcp     # Appletalk Update-Based Routing Pro.
 #                          Chris Ranch &lt;cranch@novell.com&gt;
-unidata-ldm     388/udp     # Unidata LDM 
-unidata-ldm     388/tcp     # Unidata LDM  
+unidata-ldm     388/udp     # Unidata LDM
+unidata-ldm     388/tcp     # Unidata LDM
 #                          Glenn Davis &lt;support@unidata.ucar.edu&gt;
 ldap            389/udp     # Lightweight Directory Access Protocol
 ldap            389/tcp     # Lightweight Directory Access Protocol
 #                          Tim Howes &lt;Tim.Howes@terminator.cc.umich.edu&gt;
 uis             390/udp     # UIS
 uis             390/tcp     # UIS
-#                          Ed Barron &lt;---none---&gt; 
+#                          Ed Barron &lt;---none---&gt;
 synotics-relay  391/udp     # SynOptics SNMP Relay Port
 synotics-relay  391/tcp     # SynOptics SNMP Relay Port
 synotics-broker 392/udp     # SynOptics Port Broker Port
@@ -1011,7 +1011,7 @@ smpte           420/tcp     # SMPTE
 #                          Si Becker &lt;71362.22@CompuServe.COM&gt;
 ariel2          421/udp     # Ariel 2
 ariel2          421/tcp     # Ariel 2
-ariel3          422/udp     # Ariel 3 
+ariel3          422/udp     # Ariel 3
 ariel3          422/tcp     # Ariel 3
 #                          Joel Karafin &lt;jkarafin@infotrieve.com&gt;
 opc-job-start   423/udp     # IBM Operations Planning and Control Start
@@ -1037,8 +1037,8 @@ utmpsd          430/udp     # UTMPSD
 utmpsd          430/tcp     # UTMPSD
 utmpcd          431/udp     # UTMPCD
 utmpcd          431/tcp     # UTMPCD
-iasd            432/udp     # IASD  
-iasd            432/tcp     # IASD  
+iasd            432/udp     # IASD
+iasd            432/tcp     # IASD
 #                          Nir Baroz &lt;nbaroz@encore.com&gt;
 nnsp            433/udp     # NNSP
 nnsp            433/tcp     # NNSP
@@ -1048,8 +1048,8 @@ mobileip-agent  434/tcp     # MobileIP-Agent
 mobilip-mn      435/udp     # MobilIP-MN
 mobilip-mn      435/tcp     # MobilIP-MN
 #                          Kannan Alagappan &lt;kannan@sejour.lkg.dec.com&gt;
-dna-cml         436/udp     # DNA-CML   
-dna-cml         436/tcp     # DNA-CML   
+dna-cml         436/udp     # DNA-CML
+dna-cml         436/tcp     # DNA-CML
 #                          Dan Flowers &lt;flowers@smaug.lkg.dec.com&gt;
 comscm          437/udp     # comscm
 comscm          437/tcp     # comscm
@@ -1060,8 +1060,8 @@ dsfgw           438/tcp     # dsfgw
 dasp            439/udp     # dasp      tommy@inlab.m.eunet.de
 dasp            439/tcp     # dasp      Thomas Obermair
 #                          Thomas Obermair &lt;tommy@inlab.m.eunet.de&gt;
-sgcp            440/udp     # sgcp      
-sgcp            440/tcp     # sgcp      
+sgcp            440/udp     # sgcp
+sgcp            440/tcp     # sgcp
 #                          Marshall Rose &lt;mrose@dbc.mtview.ca.us&gt;
 decvms-sysmgt   441/udp     # decvms-sysmgt
 decvms-sysmgt   441/tcp     # decvms-sysmgt
@@ -1113,10 +1113,10 @@ scohelp         457/tcp     # scohelp
 #                          Faith Zack &lt;faithz@sco.com&gt;
 appleqtc        458/udp     # apple quick time
 appleqtc        458/tcp     # apple quick time
-#                          Murali Ranganathan 
+#                          Murali Ranganathan
 #                          &lt;murali_ranganathan@quickmail.apple.com&gt;
-ampr-rcmd       459/udp     # ampr-rcmd              
-ampr-rcmd       459/tcp     # ampr-rcmd              
+ampr-rcmd       459/udp     # ampr-rcmd
+ampr-rcmd       459/tcp     # ampr-rcmd
 #                          Rob Janssen &lt;rob@sys3.pe1chl.ampr.org&gt;
 skronk          460/udp     # skronk
 skronk          460/tcp     # skronk
@@ -1132,7 +1132,7 @@ alpes           463/tcp     # alpes
 kpasswd         464/udp     # kpasswd
 kpasswd         464/tcp     # kpasswd
 #                          Theodore Ts'o &lt;tytso@MIT.EDU&gt;
-igmpv3lite      465/udp     # IGMP over UDP for SSM 
+igmpv3lite      465/udp     # IGMP over UDP for SSM
 urd             465/tcp     # URL Rendesvous Directory for SSM
 #                          Toerless Eckert &lt;eckert@cisco.com&gt;
 digital-vrc     466/udp     # digital-vrc
@@ -1185,7 +1185,7 @@ ph              481/tcp     # Ph service
 #                          Roland Hedberg &lt;Roland.Hedberg@umdac.umu.se&gt;
 bgs-nsi         482/udp     # bgs-nsi
 bgs-nsi         482/tcp     # bgs-nsi
-#                          Jon Saperia &lt;saperia@bgs.com&gt;         
+#                          Jon Saperia &lt;saperia@bgs.com&gt;
 ulpnet          483/udp     # ulpnet
 ulpnet          483/tcp     # ulpnet
 #                          Kevin Mooney &lt;kevinm@bfs.unibol.com&gt;
@@ -1197,7 +1197,7 @@ powerburst      485/tcp     # Air Soft Power Burst
 #                          &lt;gary@airsoft.com&gt;
 avian           486/udp     # avian
 avian           486/tcp     # avian
-#                          Robert Ullmann 
+#                          Robert Ullmann
 #                          &lt;Robert_Ullmann/CAM/Lotus.LOTUS@crd.lotus.com&gt;
 saft            487/udp     # saft Simple Asynchronous File Transfer
 saft            487/tcp     # saft Simple Asynchronous File Transfer
@@ -1221,7 +1221,7 @@ ticf-2          493/tcp     # Transport Independent Convergence for FNA
 #                          Mamoru Ito &lt;Ito@pcnet.ks.pfu.co.jp&gt;
 pov-ray         494/udp     # POV-Ray
 pov-ray         494/tcp     # POV-Ray
-#                          POV-Team Co-ordinator 
+#                          POV-Team Co-ordinator
 #                          &lt;iana-port.remove-spamguard@povray.org&gt;
 intecourier     495/udp     # intecourier
 intecourier     495/tcp     # intecourier
@@ -1277,9 +1277,9 @@ passgo          511/tcp     # PassGo
 exec            512/tcp     # remote process execution;
 #                          authentication performed using
 #                          passwords and UNIX login names
-comsat          512/udp biff # 
+comsat          512/udp biff #
 #                