diff --git includes/common.inc includes/common.inc
index 397e522..f3bbe27 100644
--- includes/common.inc
+++ includes/common.inc
@@ -4271,6 +4271,7 @@ function drupal_add_tabledrag($table_id, $action, $relationship, $group, $subgro
     // Add the table drag JavaScript to the page before the module JavaScript
     // to ensure that table drag behaviors are registered before any module
     // uses it.
+    drupal_add_js('misc/jquery.cookie.js', array('weight' => JS_DEFAULT - 2));
     drupal_add_js('misc/tabledrag.js', array('weight' => JS_DEFAULT - 1));
     $js_added = TRUE;
   }
diff --git misc/farbtastic/Thumbs.db misc/farbtastic/Thumbs.db
new file mode 100755
index 0000000..b658297
Binary files /dev/null and misc/farbtastic/Thumbs.db differ
diff --git misc/tabledrag.js misc/tabledrag.js
index 7220b78..a3b5d9e 100644
--- misc/tabledrag.js
+++ misc/tabledrag.js
@@ -83,8 +83,29 @@ Drupal.tableDrag = function (table, tableSettings) {
   // Match immediate children of the parent element to allow nesting.
   $('> tr.draggable, > tbody > tr.draggable', table).each(function() { self.makeDraggable(this); });
 
-  // Hide columns containing affected form elements.
-  this.hideColumns();
+  // Hide or show weight and parent columns according to user preference.
+  // This aids screenreader accessibility so users can enter weight values.
+  // Initialize the weight columns for the show/hide toggle.
+  self.initColumns();
+
+  // Retrieve the tableDrag status from a stored cookie.
+  var show = $.cookie('Drupal.tableDrag.showWeight');
+  var displayShow = Drupal.t('Show weight');
+
+  if (show == 1) {
+    displayShow = Drupal.t('Hide weight');
+  } 
+
+  // Add a link before the table for users to show or hide weight columns.
+  $(table).before($('<a href="#" class="tabledrag-accessibility" id="toggle-weight"></a>')
+    .append(displayShow)
+    .click(function () {
+      self.toggleShowWeight(self);
+      return false;
+    })
+    .wrap('<div class="tabledrag-accessibility-wrapper"></div>')
+    .parent()
+  );
 
   // Add mouse bindings to the document. The self variable is passed along
   // as event handlers do not have direct access to the tableDrag object.
@@ -93,10 +114,12 @@ Drupal.tableDrag = function (table, tableSettings) {
 };
 
 /**
- * Hide the columns containing form elements according to the settings for
- * this tableDrag instance.
+ * Initialize weight/parent columns to be hidden by default.
+ *
+ * Identify and mark each cell with a CSS class so we can easily toggle show/hide it.
+ * Finally, hide columns if user does not have a 'showWeight' cookie.
  */
-Drupal.tableDrag.prototype.hideColumns = function () {
+Drupal.tableDrag.prototype.initColumns = function () {
   for (var group in this.tableSettings) {
     // Find the first field in this group.
     for (var d in this.tableSettings[group]) {
@@ -108,7 +131,7 @@ Drupal.tableDrag.prototype.hideColumns = function () {
       }
     }
 
-    // Hide the column containing this field.
+    // Mark the column containing this field so it can be hidden.
     if (hidden && cell[0] && cell.css('display') != 'none') {
       // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based.
       // Match immediate children of the parent element to allow nesting.
@@ -128,21 +151,90 @@ Drupal.tableDrag.prototype.hideColumns = function () {
         if (index > 0) {
           cell = row.children(':nth-child(' + index + ')');
           if (cell[0].colSpan > 1) {
-            // If this cell has a colspan, simply reduce it.
-            cell[0].colSpan = cell[0].colSpan - 1;
+            // If this cell has a colspan, mark it so we can reduce the colspan.
+            $(cell[0]).addClass('tabledrag-reduce-colspan');
           }
           else {
-            // Hide table body cells, but remove table header cells entirely
-            // (Safari doesn't hide properly).
-            parentTag == 'thead' ? cell.remove() : cell.css('display', 'none');
+            // Mark this cell so we can hide it.
+            $(cell[0]).addClass('tabledrag-hide');
           }
         }
       });
     }
   }
+
+  // Now hide cells and reduce colspans unless user cookie is set.
+  var show = $.cookie('Drupal.tableDrag.showWeight');
+  if (show != 1) {
+        $.cookie('Drupal.tableDrag.showWeight', 0, {
+        path: Drupal.settings.basePath,
+        // The cookie should "never" expire.
+        expires: 36500
+      }
+    );
+    Drupal.tableDrag.prototype.hideColumns();
+  }
+  else {
+	Drupal.tableDrag.prototype.showColumns();
+  }
 };
 
 /**
+ * Hide the columns containing weight/parent form elements.
+ * Undo showColumns().
+ */
+Drupal.tableDrag.prototype.hideColumns = function () {
+  // Turn off display of weight/parent cells and headers.
+  $('.tabledrag-hide').css('display', 'none');
+  // Reduce colspan of any effected multi-span columns.
+  $('.tabledrag-reduce-colspan').each(function() { this.colSpan = this.colSpan - 1; });
+  $('.tabledrag-handle').css('display', '');
+}
+
+/**
+ * Show the columns containing weight/parent form elements
+ * Undo hideColumns().
+ */
+Drupal.tableDrag.prototype.showColumns = function () {
+  // Increase colspan back to columns it was reduced.
+  $('.tabledrag-reduce-colspan').each(function() { this.colSpan = this.colSpan + 1; });
+  // Turn on display of weight/parent cells and headers.
+  $('.tabledrag-hide').css('display', '');
+  $('.tabledrag-handle').css('display', 'none');
+}
+
+/**
+ * Toggle visibility of weight/parent columns. Use a saved cookie to store the
+ * user preference.
+ */
+Drupal.tableDrag.prototype.toggleShowWeight = function (self) {
+  // Retrieve the tableDrag status from a stored cookie.
+  var show = $.cookie('Drupal.tableDrag.showWeight');
+
+  // Show or hide columns with weight fields and toggle the cookie value.
+  if (show == 1) {
+    $.cookie('Drupal.tableDrag.showWeight', 0, {
+        path: Drupal.settings.basePath,
+        // The cookie should "never" expire.
+        expires: 36500
+      }
+    );
+    this.hideColumns();
+    $('#toggle-weight').text(Drupal.t('Show weight'));
+  }
+  else {
+    $.cookie('Drupal.tableDrag.showWeight', 1, {
+        path: Drupal.settings.basePath,
+        // The cookie should "never" expire.
+        expires: 36500
+      }
+    );
+    this.showColumns();
+    $('#toggle-weight').text(Drupal.t('Hide weight'));
+  }
+}
+
+/**
  * Find the target used within a particular row and group.
  */
 Drupal.tableDrag.prototype.rowSettings = function (group, row) {
@@ -442,7 +534,7 @@ Drupal.tableDrag.prototype.dropRow = function (event, self) {
       // fields in the entire dragged group.
       for (var group in self.tableSettings) {
         var rowSettings = self.rowSettings(group, droppedRow);
-        if (rowSettings.relationship == 'group') {
+        if (rowSettings !== undefined && rowSettings.relationship == 'group') {
           for (var n in self.rowObject.children) {
             self.updateField(self.rowObject.children[n], group);
           }
@@ -594,11 +686,11 @@ Drupal.tableDrag.prototype.updateField = function (changedRow, group) {
   var rowSettings = this.rowSettings(group, changedRow);
 
   // Set the row as it's own target.
-  if (rowSettings.relationship == 'self' || rowSettings.relationship == 'group') {
+  if (rowSettings !== undefined && (rowSettings.relationship == 'self' || rowSettings.relationship == 'group')) {
     var sourceRow = changedRow;
   }
   // Siblings are easy, check previous and next rows.
-  else if (rowSettings.relationship == 'sibling') {
+  else if (rowSettings !== undefined && rowSettings.relationship == 'sibling') {
     var previousRow = $(changedRow).prev('tr').get(0);
     var nextRow = $(changedRow).next('tr').get(0);
     var sourceRow = changedRow;
@@ -625,7 +717,7 @@ Drupal.tableDrag.prototype.updateField = function (changedRow, group) {
   }
   // Parents, look up the tree until we find a field not in this group.
   // Go up as many parents as indentations in the changed row.
-  else if (rowSettings.relationship == 'parent') {
+  else if (rowSettings !== undefined && rowSettings.relationship == 'parent') {
     var previousRow = $(changedRow).prev('tr');
     while (previousRow.length && $('.indentation', previousRow).length >= this.rowObject.indents) {
       previousRow = previousRow.prev('tr');
@@ -660,8 +752,10 @@ Drupal.tableDrag.prototype.updateField = function (changedRow, group) {
     rowSettings.source = rowSettings.target;
   }
 
-  var targetClass = '.' + rowSettings.target;
-  var targetElement = $(targetClass, changedRow).get(0);
+  if(rowSettings !== undefined) {
+    var targetClass = '.' + rowSettings.target;
+    var targetElement = $(targetClass, changedRow).get(0);
+  }
 
   // Check if a target element exists in this row.
   if (targetElement) {
diff --git modules/block/block.admin.inc modules/block/block.admin.inc
index d07f06e..1a744d8 100644
--- modules/block/block.admin.inc
+++ modules/block/block.admin.inc
@@ -80,6 +80,8 @@ function block_admin_display_form($form, &$form_state, $blocks, $theme) {
       '#type' => 'weight',
       '#default_value' => $block['weight'],
       '#delta' => $weight_delta,
+      '#title_display' => 'invisible',
+      '#title' => t('Weight for') . ' ' . check_plain($block['info']),
     );
     $form[$key]['region'] = array(
       '#type' => 'select',
diff --git modules/field_ui/field_ui.admin.inc modules/field_ui/field_ui.admin.inc
index 629abcc..5daea83 100644
--- modules/field_ui/field_ui.admin.inc
+++ modules/field_ui/field_ui.admin.inc
@@ -137,7 +137,9 @@ function field_ui_field_overview_form($form, &$form_state, $entity_type, $bundle
         '#type' => 'textfield',
         '#default_value' => $weight,
         '#size' => 3,
-       ),
+        '#title_display' => 'invisible',
+        '#title' => t('Weight for') . ' ' . check_plain($instance['label']),
+      ),
       'hidden_name' => array(
         '#type' => 'hidden',
         '#default_value' => $instance['field_name'],
diff --git modules/menu/menu.admin.inc modules/menu/menu.admin.inc
index 5e391ae..54a3397 100644
--- modules/menu/menu.admin.inc
+++ modules/menu/menu.admin.inc
@@ -106,13 +106,15 @@ function _menu_overview_tree_form($tree) {
         '#type' => 'weight',
         '#delta' => 50,
         '#default_value' => isset($form_state[$mlid]['weight']) ? $form_state[$mlid]['weight'] : $item['weight'],
+        '#title_display' => 'invisible',
+        '#title' => t('Weight for') . ' ' . $item['title'],
       );
       $form[$mlid]['mlid'] = array(
         '#type' => 'hidden',
         '#value' => $item['mlid'],
       );
       $form[$mlid]['plid'] = array(
-        '#type' => 'textfield',
+        '#type' => 'hidden',
         '#default_value' => isset($form_state[$mlid]['plid']) ? $form_state[$mlid]['plid'] : $item['plid'],
         '#size' => 6,
       );
diff --git modules/system/system-behavior-rtl.css modules/system/system-behavior-rtl.css
index 06c03fb..7ddfd88 100644
--- modules/system/system-behavior-rtl.css
+++ modules/system/system-behavior-rtl.css
@@ -75,6 +75,9 @@ div.tree-child,
 div.tree-child-last {
   background-position: -65px center;
 }
+.tabledrag-accessibility-wrapper {
+  text-align: left; /* LTR */
+}
 
 /**
  * Multiselect form
diff --git modules/system/system-behavior.css modules/system/system-behavior.css
index 14ed433..2422705 100644
--- modules/system/system-behavior.css
+++ modules/system/system-behavior.css
@@ -130,6 +130,12 @@ div.tree-child-last {
 div.tree-child-horizontal {
   background: url(../../misc/tree.png) no-repeat -11px center;
 }
+.tabledrag-accessibility-wrapper {
+  text-align: right;
+}
+.tabledrag-accessibility {
+  font-size: 0.9em;
+}
 
 /**
  * Progress bar
diff --git sites/default/settings.php sites/default/settings.php
new file mode 100644
index 0000000..9e96f03
--- /dev/null
+++ sites/default/settings.php
@@ -0,0 +1,422 @@
+<?php
+// $Id: default.settings.php,v 1.44 2010/04/07 15:07:59 dries Exp $
+
+/**
+ * @file
+ * Drupal site-specific configuration file.
+ *
+ * IMPORTANT NOTE:
+ * This file may have been set to read-only by the Drupal installation
+ * program. If you make changes to this file, be sure to protect it again
+ * after making your modifications. Failure to remove write permissions
+ * to this file is a security risk.
+ *
+ * The configuration file to be loaded is based upon the rules below.
+ *
+ * The configuration directory will be discovered by stripping the
+ * website's hostname from left to right and pathname from right to
+ * left. The first configuration file found will be used and any
+ * others will be ignored. If no other configuration file is found
+ * then the default configuration file at 'sites/default' will be used.
+ *
+ * For example, for a fictitious site installed at
+ * http://www.drupal.org/mysite/test/, the 'settings.php'
+ * is searched in the following directories:
+ *
+ *  1. sites/www.drupal.org.mysite.test
+ *  2. sites/drupal.org.mysite.test
+ *  3. sites/org.mysite.test
+ *
+ *  4. sites/www.drupal.org.mysite
+ *  5. sites/drupal.org.mysite
+ *  6. sites/org.mysite
+ *
+ *  7. sites/www.drupal.org
+ *  8. sites/drupal.org
+ *  9. sites/org
+ *
+ * 10. sites/default
+ *
+ * If you are installing on a non-standard port number, prefix the
+ * hostname with that number. For example,
+ * http://www.drupal.org:8080/mysite/test/ could be loaded from
+ * sites/8080.www.drupal.org.mysite.test/.
+ */
+
+/**
+ * Database settings:
+ *
+ * The $databases array specifies the database connection or
+ * connections that Drupal may use.  Drupal is able to connect
+ * to multiple databases, including multiple types of databases,
+ * during the same request.
+ *
+ * Each database connection is specified as an array of settings,
+ * similar to the following:
+ *
+ * array(
+ *   'driver' => 'mysql',
+ *   'database' => 'databasename',
+ *   'username' => 'username',
+ *   'password' => 'password',
+ *   'host' => 'localhost',
+ *   'port' => 3306,
+ * );
+ *
+ * The "driver" property indicates what Drupal database driver the
+ * connection should use.  This is usually the same as the name of the
+ * database type, such as mysql or sqlite, but not always.  The other
+ * properties will vary depending on the driver.  For SQLite, you must
+ * specify a database file name in a directory that is writable by the
+ * webserver.  For most other drivers, you must specify a
+ * username, password, host, and database name.
+ *
+ * Some database engines support transactions.  In order to enable
+ * transaction support for a given database, set the 'transactions' key
+ * to TRUE.  To disable it, set it to FALSE.  Note that the default value
+ * varies by driver.  For MySQL, the default is FALSE since MyISAM tables
+ * do not support transactions.
+ *
+ * For each database, you may optionally specify multiple "target" databases.
+ * A target database allows Drupal to try to send certain queries to a
+ * different database if it can but fall back to the default connection if not.
+ * That is useful for master/slave replication, as Drupal may try to connect
+ * to a slave server when appropriate and if one is not available will simply
+ * fall back to the single master server.
+ *
+ * The general format for the $databases array is as follows:
+ *
+ * $databases['default']['default'] = $info_array;
+ * $databases['default']['slave'][] = $info_array;
+ * $databases['default']['slave'][] = $info_array;
+ * $databases['extra']['default'] = $info_array;
+ *
+ * In the above example, $info_array is an array of settings described above.
+ * The first line sets a "default" database that has one master database
+ * (the second level default).  The second and third lines create an array
+ * of potential slave databases.  Drupal will select one at random for a given
+ * request as needed.  The fourth line creates a new database with a name of
+ * "extra".
+ *
+ * For a single database configuration, the following is sufficient:
+ *
+ * $databases['default']['default'] = array(
+ *   'driver' => 'mysql',
+ *   'database' => 'databasename',
+ *   'username' => 'username',
+ *   'password' => 'password',
+ *   'host' => 'localhost',
+ * );
+ *
+ * You can optionally set prefixes for some or all database table names
+ * by using the $db_prefix setting. If a prefix is specified, the table
+ * name will be prepended with its value. Be sure to use valid database
+ * characters only, usually alphanumeric and underscore. If no prefixes
+ * are desired, leave it as an empty string ''.
+ *
+ * To have all database names prefixed, set $db_prefix as a string:
+ *
+ *   $db_prefix = 'main_';
+ *
+ * To provide prefixes for specific tables, set $db_prefix as an array.
+ * The array's keys are the table names and the values are the prefixes.
+ * The 'default' element holds the prefix for any tables not specified
+ * elsewhere in the array. Example:
+ *
+ *   $db_prefix = array(
+ *     'default'   => 'main_',
+ *     'users'      => 'shared_',
+ *     'sessions'  => 'shared_',
+ *     'role'      => 'shared_',
+ *     'authmap'   => 'shared_',
+ *   );
+ *
+ * You can also use db_prefix as a reference to a schema/database. This maybe
+ * useful if your Drupal installation exists in a schema that is not the default
+ * or you want to access several databases from the same code base at the same 
+ * time.
+ * Example:
+ *
+ *  $db_prefix = array(
+ *    'default' => 'main.',
+ *     'users'      => 'shared.',
+ *     'sessions'  => 'shared.',
+ *     'role'      => 'shared.',
+ *     'authmap'   => 'shared.',
+ *  );
+ *
+ * NOTE: MySQL and SQLite's definition of a schema is a database.
+ *
+ * Database configuration format:
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'mysql',
+ *     'database' => 'databasename',
+ *     'username' => 'username',
+ *     'password' => 'password',
+ *     'host' => 'localhost',
+ *   );
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'pgsql',
+ *     'database' => 'databasename',
+ *     'username' => 'username',
+ *     'password' => 'password',
+ *     'host' => 'localhost',
+ *   );
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'sqlite',
+ *     'database' => '/path/to/databasefilename',
+ *   );
+ */
+$databases = array (
+  'default' => 
+  array (
+    'default' => 
+    array (
+      'driver' => 'mysql',
+      'database' => 'fresh',
+      'username' => 'root',
+      'password' => '',
+      'host' => 'localhost',
+      'port' => '',
+    ),
+  ),
+);
+$db_prefix = '';
+
+/**
+ * Access control for update.php script.
+ *
+ * If you are updating your Drupal installation using the update.php script but
+ * are not logged in using either an account with the "Administer software
+ * updates" permission or the site maintenance account (the account that was
+ * created during installation), you will need to modify the access check
+ * statement below. Change the FALSE to a TRUE to disable the access check.
+ * After finishing the upgrade, be sure to open this file again and change the
+ * TRUE back to a FALSE!
+ */
+$update_free_access = FALSE;
+
+/**
+ * Salt for one-time login links and cancel links, form tokens, etc.
+ *
+ * This variable will be set to a random value by the installer. All one-time
+ * login links will be invalidated if the value is changed.  Note that this
+ * variable must have the same value on every web server.  If this variable is
+ * empty, a hash of the serialized database credentials will be used as a
+ * fallback salt.
+ *
+ * For enhanced security, you may set this variable to a value using the
+ * contents of a file outside your docroot that is never saved together
+ * with any backups of your Drupal files and database.
+ *
+ * Example:
+ *   $drupal_hash_salt = file_get_contents('/home/example/salt.txt');
+ *
+ */
+$drupal_hash_salt = 'HhJxcdLAfUKzdj_8EG5MAWv47Heg8zAeVuelDZjFiBE';
+
+/**
+ * Base URL (optional).
+ *
+ * If you are experiencing issues with different site domains,
+ * uncomment the Base URL statement below (remove the leading hash sign)
+ * and fill in the absolute URL to your Drupal installation.
+ *
+ * You might also want to force users to use a given domain.
+ * See the .htaccess file for more information.
+ *
+ * Examples:
+ *   $base_url = 'http://www.example.com';
+ *   $base_url = 'http://www.example.com:8888';
+ *   $base_url = 'http://www.example.com/drupal';
+ *   $base_url = 'https://www.example.com:8888/drupal';
+ *
+ * It is not allowed to have a trailing slash; Drupal will add it
+ * for you.
+ */
+# $base_url = 'http://www.example.com';  // NO trailing slash!
+
+/**
+ * PHP settings:
+ *
+ * To see what PHP settings are possible, including whether they can be set at
+ * runtime (by using ini_set()), read the PHP documentation:
+ * http://www.php.net/manual/en/ini.list.php
+ * See drupal_initialize_variables() in includes/bootstrap.inc for required
+ * runtime settings and the .htaccess file for non-runtime settings. Settings
+ * defined there should not be duplicated here so as to avoid conflict issues.
+ */
+
+/**
+ * Some distributions of Linux (most notably Debian) ship their PHP
+ * installations with garbage collection (gc) disabled. Since Drupal depends on
+ * PHP's garbage collection for clearing sessions, ensure that garbage
+ * collection occurs by using the most common settings.
+ */
+ini_set('session.gc_probability', 1);
+ini_set('session.gc_divisor', 100);
+
+/**
+ * Set session lifetime (in seconds), i.e. the time from the user's last visit
+ * to the active session may be deleted by the session garbage collector. When
+ * a session is deleted, authenticated users are logged out, and the contents
+ * of the user's $_SESSION variable is discarded.
+ */
+ini_set('session.gc_maxlifetime', 200000);
+
+/**
+ * Set session cookie lifetime (in seconds), i.e. the time from the session is
+ * created to the cookie expires, i.e. when the browser is expected to discard
+ * the cookie. The value 0 means "until the browser is closed".
+ */
+ini_set('session.cookie_lifetime', 2000000);
+
+/**
+ * Drupal automatically generates a unique session cookie name for each site
+ * based on on its full domain name. If you have multiple domains pointing at
+ * the same Drupal site, you can either redirect them all to a single domain
+ * (see comment in .htaccess), or uncomment the line below and specify their
+ * shared base domain. Doing so assures that users remain logged in as they
+ * cross between your various domains.
+ */
+# $cookie_domain = 'example.com';
+
+/**
+ * Variable overrides:
+ *
+ * To override specific entries in the 'variable' table for this site,
+ * set them here. You usually don't need to use this feature. This is
+ * useful in a configuration file for a vhost or directory, rather than
+ * the default settings.php. Any configuration setting from the 'variable'
+ * table can be given a new value. Note that any values you provide in
+ * these variable overrides will not be modifiable from the Drupal
+ * administration interface.
+ *
+ * The following overrides are examples:
+ * - site_name: Defines the site's name.
+ * - theme_default: Defines the default theme for this site.
+ * - anonymous: Defines the human-readable name of anonymous users.
+ * Remove the leading hash signs to enable.
+ */
+# $conf['site_name'] = 'My Drupal site';
+# $conf['theme_default'] = 'garland';
+# $conf['anonymous'] = 'Visitor';
+
+/**
+ * A custom theme can be set for the offline page. This applies when the site
+ * is explicitly set to maintenance mode through the administration page or when
+ * the database is inactive due to an error. It can be set through the
+ * 'maintenance_theme' key. The template file should also be copied into the
+ * theme. It is located inside 'modules/system/maintenance-page.tpl.php'.
+ * Note: This setting does not apply to installation and update pages.
+ */
+# $conf['maintenance_theme'] = 'garland';
+
+/**
+ * Enable this setting to determine the correct IP address of the remote
+ * client by examining information stored in the X-Forwarded-For headers.
+ * X-Forwarded-For headers are a standard mechanism for identifying client
+ * systems connecting through a reverse proxy server, such as Squid or
+ * Pound. Reverse proxy servers are often used to enhance the performance
+ * of heavily visited sites and may also provide other site caching,
+ * security or encryption benefits. If this Drupal installation operates
+ * behind a reverse proxy, this setting should be enabled so that correct
+ * IP address information is captured in Drupal's session management,
+ * logging, statistics and access management systems; if you are unsure
+ * about this setting, do not have a reverse proxy, or Drupal operates in
+ * a shared hosting environment, this setting should remain commented out.
+ */
+# $conf['reverse_proxy'] = TRUE;
+
+/**
+ * Set this value if your proxy server sends the client IP in a header other
+ * than X-Forwarded-For.
+ *
+ * The "X-Forwarded-For" header is a comma+space separated list of IP addresses,
+ * only the last one (the left-most) will be used.
+ */
+# $conf['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP';
+
+/**
+ * reverse_proxy accepts an array of IP addresses.
+ *
+ * Each element of this array is the IP address of any of your reverse
+ * proxies. Filling this array Drupal will trust the information stored
+ * in the X-Forwarded-For headers only if Remote IP address is one of
+ * these, that is the request reaches the web server from one of your
+ * reverse proxies. Otherwise, the client could directly connect to
+ * your web server spoofing the X-Forwarded-For headers.
+ */
+# $conf['reverse_proxy_addresses'] = array('a.b.c.d', ...);
+
+/**
+ * Page caching:
+ *
+ * By default, Drupal sends a "Vary: Cookie" HTTP header for anonymous page
+ * views. This tells a HTTP proxy that it may return a page from its local
+ * cache without contacting the web server, if the user sends the same Cookie
+ * header as the user who originally requested the cached page. Without "Vary:
+ * Cookie", authenticated users would also be served the anonymous page from
+ * the cache. If the site has mostly anonymous users except a few known
+ * editors/administrators, the Vary header can be omitted. This allows for
+ * better caching in HTTP proxies (including reverse proxies), i.e. even if
+ * clients send different cookies, they still get content served from the cache
+ * if aggressive caching is enabled and the minimum cache time is non-zero.
+ * However, authenticated users should access the site directly (i.e. not use an
+ * HTTP proxy, and bypass the reverse proxy if one is used) in order to avoid
+ * getting cached pages from the proxy.
+ */
+# $conf['omit_vary_cookie'] = TRUE;
+
+/**
+ * String overrides:
+ *
+ * To override specific strings on your site with or without enabling locale
+ * module, add an entry to this list. This functionality allows you to change
+ * a small number of your site's default English language interface strings.
+ *
+ * Remove the leading hash signs to enable.
+ */
+# $conf['locale_custom_strings_en'][''] = array(
+#   'forum'      => 'Discussion board',
+#   '@count min' => '@count minutes',
+# );
+
+/**
+ *
+ * IP blocking:
+ *
+ * To bypass database queries for denied IP addresses, use this setting.
+ * Drupal queries the {blocked_ips} table by default on every page request
+ * for both authenticated and anonymous users. This allows the system to
+ * block IP addresses from within the administrative interface and before any
+ * modules are loaded. However on high traffic websites you may want to avoid
+ * this query, allowing you to bypass database access altogether for anonymous
+ * users under certain caching configurations.
+ *
+ * If using this setting, you will need to add back any IP addresses which
+ * you may have blocked via the administrative interface. Each element of this
+ * array represents a blocked IP address. Uncommenting the array and leaving it
+ * empty will have the effect of disabling IP blocking on your site.
+ *
+ * Remove the leading hash signs to enable.
+ */
+# $conf['blocked_ips'] = array(
+#   'a.b.c.d',
+# );
+
+/**
+ * Authorized file system operations:
+ *
+ * The Update manager module included with Drupal provides a mechanism for
+ * site administrators to securely install missing updates for the site
+ * directly through the web user interface by providing either SSH or FTP
+ * credentials. This allows the site to update the new files as the user who
+ * owns all the Drupal files, instead of as the user the webserver is running
+ * as. However, some sites might wish to disable this functionality, and only
+ * update the code directly via SSH or FTP themselves. This setting completely
+ * disables all functionality related to these authorized file operations.
+ *
+ * Remove the leading hash signs to disable.
+ */
+# $conf['allow_authorize_operations'] = FALSE;
