From 40e4aeb34afd69c1eaf0b4dcc954a3973cac0288 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Sat, 11 Jun 2011 02:25:05 +0000
Subject: [PATCH] New: Replace internal javascript with jquery plugins.

---
 htdocs/admin/agenda_extsites.php              |   17 +-
 htdocs/comm/action/index.php                  |    2 +-
 htdocs/comm/action/listactions.php            |    2 +-
 htdocs/comm/mailing/fiche.php                 |   29 +-
 htdocs/core/class/html.formadmin.class.php    |   37 -
 htdocs/core/class/html.formother.class.php    |   75 +-
 .../jquery/plugins/jpicker/ChangeLog.txt      |  121 +
 .../jquery/plugins/jpicker/Example.html       |  774 ++++++
 .../jquery/plugins/jpicker/ReadMe.txt         |   47 +
 .../plugins/jpicker/css/jPicker-1.1.6.css     |  232 ++
 .../plugins/jpicker/css/jPicker-1.1.6.min.css |    1 +
 .../plugins/jpicker/images/AlphaBar.png       |  Bin 0 -> 2195 bytes
 .../jquery/plugins/jpicker/images/Bars.png    |  Bin 0 -> 382 bytes
 .../jquery/plugins/jpicker/images/Maps.png    |  Bin 0 -> 78245 bytes
 .../jquery/plugins/jpicker/images/NoColor.png |  Bin 0 -> 552 bytes
 .../jquery/plugins/jpicker/images/Thumbs.db   |  Bin 0 -> 39936 bytes
 .../plugins/jpicker/images/bar-opacity.png    |  Bin 0 -> 134 bytes
 .../plugins/jpicker/images/map-opacity.png    |  Bin 0 -> 139 bytes
 .../plugins/jpicker/images/mappoint.gif       |  Bin 0 -> 93 bytes
 .../jquery/plugins/jpicker/images/picker.gif  |  Bin 0 -> 146 bytes
 .../jpicker/images/preview-opacity.png        |  Bin 0 -> 135 bytes
 .../plugins/jpicker/images/rangearrows.gif    |  Bin 0 -> 76 bytes
 .../jquery/plugins/jpicker/jPicker.css        |   17 +
 .../jquery/plugins/jpicker/jpicker-1.1.6.js   | 2086 +++++++++++++++++
 .../plugins/jpicker/jpicker-1.1.6.min.js      |    1 +
 .../plugins/jpicker/jquery-1.4.4.min.js       |  167 ++
 htdocs/lib/agenda.lib.php                     |    2 +-
 htdocs/lib/lib_colorpicker.js                 |  264 ---
 28 files changed, 3537 insertions(+), 337 deletions(-)
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/Example.html
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/ReadMe.txt
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/Bars.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/Maps.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/NoColor.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/Thumbs.db
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/picker.gif
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/jPicker.css
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js
 create mode 100755 htdocs/includes/jquery/plugins/jpicker/jquery-1.4.4.min.js
 delete mode 100644 htdocs/lib/lib_colorpicker.js

diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php
index 9e2c39dd1ec..9fcb41b6746 100644
--- a/htdocs/admin/agenda_extsites.php
+++ b/htdocs/admin/agenda_extsites.php
@@ -103,7 +103,12 @@ $form=new Form($db);
 $formadmin=new FormAdmin($db);
 $formother=new FormOther($db);
 
-llxHeader();
+//$arrayofjs=array('/includes/jquery/plugins/colorpicker/jquery.colorpicker.js');
+//$arrayofcss=array('/includes/jquery/plugins/colorpicker/jquery.colorpicker.css');
+$arrayofjs=array();
+$arrayofcss=array();
+
+llxHeader('',$langs->trans("AgendaSetup"),'','',0,0,$arrayofjs,$arrayofcss);
 
 $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
 print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup');
@@ -147,7 +152,7 @@ print "<tr class=\"liste_titre\">";
 print "<td>".$langs->trans("Parameter")."</td>";
 print "<td>".$langs->trans("Name")."</td>";
 print "<td>".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ics)</td>';
-print "<td>".$langs->trans("Color")."</td>";
+print '<td align="center">'.$langs->trans("Color").'</td>';
 print "</tr>";
 
 $i=1;
@@ -163,11 +168,10 @@ while ($i <= $MAXAGENDA)
 	$color='AGENDA_EXT_COLOR'.$key;
 	print "<td><input type=\"text\" class=\"flat\" name=\"agenda_ext_name".$key."\" value=\"". $conf->global->$name . "\" size=\"28\"></td>";
 	print "<td><input type=\"text\" class=\"flat\" name=\"agenda_ext_src".$key."\" value=\"". $conf->global->$src . "\" size=\"60\"></td>";
-	print '<td nowrap="nowrap">';
-
+	print '<td nowrap="nowrap" align="center">';
 	// Possible colors are limited by Google
 	//print $formadmin->select_colors($conf->global->$color, "google_agenda_color".$key, $colorlist);
-	print $formother->select_color($conf->global->$color, "agenda_ext_color".$key, 'sitextconfig', 1, $colorlist);
+	print $formother->select_color($conf->global->$color, "agenda_ext_color".$key, 'extsitesconfig', 1, '');
 	print '</td>';
 	print "</tr>";
 	$i++;
@@ -185,8 +189,7 @@ print "</form>\n";
 
 dol_fiche_end();
 
-if ($mesg) print "<br>$mesg<br>";
-print "<br>";
+dol_htmloutput_mesg($mesg);
 
 $db->close();
 
diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
index 041e6f66102..f9c54d61003 100644
--- a/htdocs/comm/action/index.php
+++ b/htdocs/comm/action/index.php
@@ -256,7 +256,7 @@ if (empty($showbirthday)) $link.=$langs->trans("AgendaShowBirthdayEvents");
 else $link.=$langs->trans("AgendaHideBirthdayEvents");
 $link.='</a>';
 
-print_fiche_titre($title,$link.' &nbsp; &nbsp; '.$nav);
+print_fiche_titre($title,$link.' &nbsp; &nbsp; '.$nav, '');
 //print '<br>';
 
 //print_fiche_titre($link,'','');
diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php
index 30aa156b7fb..f744315e7f6 100644
--- a/htdocs/comm/action/listactions.php
+++ b/htdocs/comm/action/listactions.php
@@ -209,7 +209,7 @@ if ($resql)
     $link.='</a>';
     */
 
-    print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,$link,$num,0);
+    print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,$link,$num,0,'');
     //print '<br>';
 
 	$i = 0;
diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php
index ce1a5b02c5e..fc3605adce5 100644
--- a/htdocs/comm/mailing/fiche.php
+++ b/htdocs/comm/mailing/fiche.php
@@ -1,6 +1,6 @@
 <?PHP
 /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2005-2010 Laurent Destailleur  <eldy@uers.sourceforge.net>
+ * Copyright (C) 2005-2011 Laurent Destailleur  <eldy@uers.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -316,10 +316,6 @@ if ($_POST["action"] == 'send' && empty($_POST["cancel"]))
 
 	if (! $error)
 	{
-		// Ajout CSS
-		if (!empty($mil->bgcolor)) $arr_css['bgcolor'] = $mil->bgcolor;
-		if (!empty($mil->bgimage)) $arr_css['bgimage'] = $mil->bgimage;
-
 		// Le message est-il en html
 		$msgishtml=-1;	// Inconnu par defaut
 		if (preg_match('/[\s\t]*<html>/i',$message)) $msgishtml=1;
@@ -333,7 +329,11 @@ if ($_POST["action"] == 'send' && empty($_POST["cancel"]))
 		$arr_name = array();
 		$arr_css  = array();
 
-		// Attached files
+        // Ajout CSS
+        if (!empty($mil->bgcolor)) $arr_css['bgcolor'] = (preg_match('/^#/',$mil->bgcolor)?'':'#').$mil->bgcolor;
+        if (!empty($mil->bgimage)) $arr_css['bgimage'] = $mil->bgimage;
+
+        // Attached files
 		$listofpaths=dol_dir_list($upload_dir,'all',0,'','','name',SORT_ASC,0);
 		if (sizeof($listofpaths))
 		{
@@ -901,7 +901,7 @@ else
 			// Subject
 			print '<tr><td width="25%">'.$langs->trans("MailTopic").'</td><td colspan="3">'.$mil->sujet.'</td></tr>';
 
-			// Mails
+			// Joined files
 			$i='';
 			//$i=0;
 			//while ($i < 4)
@@ -926,9 +926,14 @@ else
 				print '</td></tr>';
 			//}
 
-			// Message
+            // Background color
+            /*print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
+            $htmlother->select_color($mil->bgcolor,'bgcolor','edit_mailing',0);
+            print '</td></tr>';*/
+
+		    // Message
 			print '<tr><td valign="top">'.$langs->trans("MailMessage").'</td>';
-			print '<td colspan="3" bgcolor="'.($mil->bgcolor?$mil->bgcolor:'white').'">';
+			print '<td colspan="3" bgcolor="'.($mil->bgcolor?(preg_match('/^#/',$mil->bgcolor)?'':'#').$mil->bgcolor:'white').'">';
 			print dol_htmlentitiesbr($mil->body);
 			print '</td>';
 			print '</tr>';
@@ -984,9 +989,10 @@ else
 			print_fiche_titre($langs->trans("EMail"),'','');
 			print '<table class="border" width="100%">';
 
+			// Subject
 			print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTopic").'</td><td colspan="3"><input class="flat" type="text" size=60 name="sujet" value="'.$mil->sujet.'"></td></tr>';
 
-			// Add joined files
+			// Joined files
 			$i='';
 			//$i=0;
 			//while ($i < 4)
@@ -1021,9 +1027,12 @@ else
 				print '</td></tr>';
 			//}
 
+		    // Background color
 			print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
 			$htmlother->select_color($mil->bgcolor,'bgcolor','edit_mailing',0);
 			print '</td></tr>';
+
+			// Message
 			print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>';
 			print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
 			print '__ID__ = '.$langs->trans("IdRecord").'<br>';
diff --git a/htdocs/core/class/html.formadmin.class.php b/htdocs/core/class/html.formadmin.class.php
index e615e7d086e..a3181284491 100644
--- a/htdocs/core/class/html.formadmin.class.php
+++ b/htdocs/core/class/html.formadmin.class.php
@@ -320,42 +320,5 @@ class FormAdmin
 		print '</select>';
 	}
 
-    /**
-     *    \brief      Return colors list selector
-     *    \param      selected        Color pre-selected
-     *    \param      htmlname        Name of html select zone
-     */
-/*
-    function select_colors($selected='', $htmlname, $arrayofcolors='', $showcolorbox=1)
-    {
-		global $langs,$conf;
-
-		if (! is_array($arrayofcolors)) $arrayofcolors=array('29527A','5229A3','A32929','7A367A','B1365F','0D7813');
-
-		//$selected='';
-		if ($showcolorbox) print '<table class="nobordernopadding"><tr valign="middle" class="nobordernopadding"><td class="nobordernopadding">';
-
-		print '<select class="flat" name="'.$htmlname.'">';
-		print '<option value="-1">&nbsp;</option>';
-		foreach ($arrayofcolors as $val)
-		{
-			print '<option value="'.$val.'"';
-			if ($selected == $val) print ' selected="selected"';
-			print '>'.$val.'</option>';
-		}
-		print '</select>';
-
-		if ($showcolorbox)
-		{
-			print '</td><td style="padding-left: 4px" nowrap="nowrap">';
-			print '<!-- Box color '.$selected.' -->';
-			print '<table style="border-collapse: collapse; margin:0px; padding: 0px; border: 1px solid #888888; background: #'.$selected.';" width="12" height="10">';
-			print '<tr class="nocellnopadd"><td></td></tr>';
-			print '</table>';
-			print '</td></tr></table>';
-		}
-	}
-*/
 }
-
 ?>
diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php
index df1652b3070..894573499af 100644
--- a/htdocs/core/class/html.formother.class.php
+++ b/htdocs/core/class/html.formother.class.php
@@ -371,8 +371,51 @@ class FormOther
 	 */
 	function select_color($set_color='', $prefix='f_color', $form_name='objForm', $showcolorbox=1, $arrayofcolors='')
 	{
+	    global $langs;
 		if (! is_array($arrayofcolors) || sizeof($arrayofcolors) < 1)
 		{
+		    print '<link rel="stylesheet" media="screen" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css" />';
+            print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jpicker/jpicker-1.1.6.js"></script>';
+            print '<script type="text/javascript">
+             jQuery(document).ready(function(){
+                $(\'#colorpicker'.$prefix.'\').jPicker( {
+                window: {
+                  title: \''.dol_escape_js($langs->trans("SelectAColor")).'\', /* any title for the jPicker window itself - displays "Drag Markers To Pick A Color" if left null */
+                  effects:
+                    {
+                    type: \'show\', /* effect used to show/hide an expandable picker. Acceptable values "slide", "show", "fade" */
+                    speed:
+                    {
+                      show: \'fast\', /* duration of "show" effect. Acceptable values are "fast", "slow", or time in ms */
+                      hide: \'fast\' /* duration of "hide" effect. Acceptable values are "fast", "slow", or time in ms */
+                    }
+                    },
+                  position:
+                    {
+                    x: \'screenCenter\', /* acceptable values "left", "center", "right", "screenCenter", or relative px value */
+                    y: \'center\' /* acceptable values "top", "bottom", "center", or relative px value */
+                    },
+                },
+                images: {
+                    clientPath: \''.DOL_URL_ROOT.'/includes/jquery/plugins/jpicker/images/\',
+                    picker: { file: \'../../../../../theme/common/colorpicker.png\', width: 14, height: 14 }
+          		},
+                localization: // alter these to change the text presented by the picker (e.g. different language)
+                  {
+                    text:
+                    {
+                      title: \''.dol_escape_js($langs->trans("SelectAColor")).'\',
+                      newColor: \''.dol_escape_js($langs->trans("New")).'\',
+                      currentColor: \''.dol_escape_js($langs->trans("Current")).'\',
+                      ok: \''.dol_escape_js($langs->trans("Change")).'\',
+                      cancel: \''.dol_escape_js($langs->trans("Cancel")).'\'
+                    }
+                  }
+		        } ); });
+             </script>';
+            print '<input id="colorpicker'.$prefix.'" name="'.$prefix.'" size="6" maxlength="7" class="flat" type="text" value="'.$set_color.'" />';
+
+            /*
 			// No list of colors forced, we can suggest any color
 			print "\n".'<table class="nobordernopadding"><tr><td valign="middle">';
 			print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/lib/lib_colorpicker.js"></script>'."\n";
@@ -406,14 +449,24 @@ class FormOther
 			}
 
 			print '</tr></table>';
+			*/
 		}
-		else
+		else  // In most cases, this is not used. We used instead function with no specific list of colors
 		{
-			// List of colors is forced
-			if ($showcolorbox) print '<table class="nobordernopadding"><tr valign="middle" class="nobordernopadding"><td class="nobordernopadding">';
-
-			print '<select class="flat" name="'.$prefix.'">';
-			print '<option value="-1">&nbsp;</option>';
+            print '<link rel="stylesheet" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/colorpicker/jquery.colorpicker.css" type="text/css" media="screen" />';
+            print '<script src="'.DOL_URL_ROOT.'/includes/jquery/plugins/colorpicker/jquery.colorpicker.js" type="text/javascript"></script>';
+		    print '<script type="text/javascript">
+             jQuery(document).ready(function(){
+                 jQuery(\'#colorpicker'.$prefix.'\').colorpicker({
+                     size: 14,
+                     label: \'\',
+                     hide: true
+                 });
+             });
+             </script>';
+
+			print '<select id="colorpicker'.$prefix.'" class="flat" name="'.$prefix.'">';
+			//print '<option value="-1">&nbsp;</option>';
 			foreach ($arrayofcolors as $val)
 			{
 				print '<option value="'.$val.'"';
@@ -421,16 +474,6 @@ class FormOther
 				print '>'.$val.'</option>';
 			}
 			print '</select>';
-
-			if ($showcolorbox)
-			{
-				print '</td><td style="padding-left: 4px" nowrap="nowrap">';
-				print '<!-- Box color '.$set_color.' -->';
-				print '<table style="border-collapse: collapse; margin:0px; padding: 0px; border: 1px solid #888888; background: #'.(preg_replace('/#/','',$set_color)).';" width="12" height="10">';
-				print '<tr class="nocellnopadd"><td></td></tr>';
-				print '</table>';
-				print '</td></tr></table>';
-			}
 		}
 	}
 
diff --git a/htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt b/htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt
new file mode 100755
index 00000000000..b173dba9d5e
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt
@@ -0,0 +1,121 @@
+Change Log
+______________
+1.1.6
+  Corrected bug preventing selections inside input values in some browsers - the onselectstart function no longer captures on input boxes.
+  Added support for up/down arrow adjustments of the currently focused input box making the picker more keyboard friendly.
+  Added ticks around the backgroundImage assignments to correct for paths with whitespace.
+
+1.1.5
+  Corrected Color object constructor to allow setting of the "alpha" value as per the documentation which previously didn't work.
+  Added support for translucency for quickList colors with checkered background - Only available if "alphaSupport" is enabled.
+  Restricted default color to "alpha" of 255 if "alphaSupport" is disabled - It will now assign an explicit alpha of 255 when disabled.
+  Added new setting variable "alphaPrecision" which indicates the number of decimal points to allow in the alpha percentage display - Now defaults to 0.
+
+1.1.4
+  Changed "alpha" range from 0-100 to 0-255 to correct truncating and rounding errors caused by attempting to get an integer percentage that matches a hex value.
+  "alpha" percentage display will now show up to 1 decimal point for more accurate representation of "alpha" value.
+  Color object now accepts "alpha" values in a range of 0-255 and also returns the same when getting the "alpha" value. You will need to run ((alpha * 100) / 255) to retrieve a percentage value.
+  Reworked the table layout and labels to remove the need for the label to reference the radio input box. This reduces injected code and removes the need to generate unique ids on the radio buttons.
+  Transparent/invisible caret on NULL color is now corrected - uses the same caret color as a white color.
+  Setting a binded input value of "" or no value attribute will now create a NULL color on initialization instead of the settings default color.
+  Added a dynamic, invisible "iframe" behind a dialog picker in all browsers that fail jQuery.support.boxModel (currently IE <= 7 Quirks Mode). This prevents "select" box from showing through the picker.
+
+1.1.3
+  Now adding popup color pickers to document.body instead of inline with the popup control. This corrects issues with the picker not showing beyond a relative container scope.
+  No longer need to hide popup icon in Internet Explorer for picker elements lower in the DOM than the currently active one since the picker itself is attached to document.body (it is always higher in the DOM now).
+  Popup pickers are now bring-to-front selectable. Clicking on the picker will bring it above all other pickers on the page instead of having to drag one out from underneath another.
+  Corrected jPicker.List/setTimeout bug which allowed an instance to bind to the List in an order other than the order the initialization function was called.
+  Added a updateInputColor option (default true) to allow for a binded input field that does not automatically update its background/text color.
+
+1.1.2
+  Reworked the find methods and contexts for element searches. Now using ":first" instead of ".eq(0)" to take advantage of early out searches. Much faster initialization of the picker, on the order of 6 times.
+  Now using setTimeout for calling visual updates. Dramatically improved marker dragging in all browsers. Reduces blocking as re-rendering is internal to the browser and independent of the other javascript still in progress.
+  Marker updates can now cancel a previous valueChanged event when a new mouseMove event comes in. IE8 marker dragging is still slower, much over 5 times faster than it was.
+  Reworked entire quickPick list creation. It now adds up source code and does a single "html" method instead of multiple "append" methods. This is a large part of the speed increase on initialization.
+  The vast majority of all running scripts on both initialization and dragging is now occupied altering the style rules and finding elements (init only) instead of jPicker code.
+  All methods previously called with global context now use the "call" method for using the context of the class running the method. "this" in a callback is now the DOM node (jQuery style) and jPicker instead of "window".
+  Added "effects" section of window settings to allow different show/hide effects and durations.
+  Removed change log and read me from the full source code to separate files (ChangeLog.txt and ReadMe.txt) and an HTML demonstration/documentation page (Example.txt).
+
+1.1.1
+  Correct IE exception caused by attempting to set "#transparent" to CSS background-color.
+
+1.1.0
+  Reworked nearly the entire plugin including the internal and external event model, bindings, DOM searches, classes, and overall presentation.
+  The Color object now supports a changed event that you can bind to (or just bind to the picker events still included).
+  Event order has been reversed, instead of a change event on the map/bar/text fields updating the display, they now update the Color object which then fires the events that update the display.
+  alphaSupport re-implemented by request - default behavior is off.
+  Hex code now only 6 characters again.
+  Color object can now have its value changed from code, using the "val" method, and it will fire all events necessary to update the display.
+  Removed all "get_*" methods from the color object, instead opting for a single "val" method for getting and setting, more in line with familiar jQuery methods.
+  Better rendering for all IE versions in Quirks mode.
+
+1.0.13
+  Updated transparency algorithm for red/green/blue color modes. The algorithm from John Dyers' color picker was close but incorrect. Bar colors are now pixel perfect with the new algorithm.
+  Changed from using "background-position" on the color maps to an element of full height using the "top" attribute for image-map location using "overflow: hidden" to hide overdraw.
+  IE7/8 ignores opacity on elements taller than 4096px. Image maps therefore no longer include a blank first map so the Bar is just under 4096. Blank is now accomplished by setting the "top" setting to below the map display.
+  New colorBar picker image that does not draw outside of the element since the elements now hide overdraw.
+  Added IE5.5/6 support for the picker. This is why it now uses maps of full height and the "top" attribute for map locations.
+  Moved the images in the maps to 4 pixels apart from each other. IE7/8 change the first pixel of the bottom-border of 2px to partially transparent showing a portion of a different color map without this.
+
+1.0.12
+  Added minified CSS file.
+  Added IE7/8 Quirks Mode support.
+  Added configurable string constants for all text and tooltips. You can now change the default values for different languages.
+  Privatized the RGBA values in the Color object for better NULL handling. YOU MUST USE THE NEW GET FUNCTIONS TO ACCESS THE COLOR PROPERTIES.
+  Better NULL color handling and an additional "No Color Selected" quick pick color.
+  More consistent behavior across multiple versions of browsers.
+  Added alpha response to the binded color picker icon.
+  Removed "alphaSupport" variable. It is now always supported.
+
+1.0.11b
+  Corrected NULL behavior in IE. jQuery was getting an exception when attempting to assign a backgroundColor style of '#'. Now assigns 'transparent' if color is NULL.
+  Can now create new Color object WITH OR WITHOUT the '#' prefix.
+
+1.0.11
+  Added ability for NULL colors (delete the hex value). Color will be returned as color.hex == ''. Can set the default color to an empty hex string as well.
+  cancelCallback now returns the original color for use in programming responses.
+
+1.0.10
+  Corrected table layout and tweaked display for more consisent presentation. Nice catch from Jonathan Pasquier.
+
+1.0.9
+  Added optional title variable for each jPicker window.
+
+1.0.8
+  Moved all images into a few sprites - now using backgroundPosition to change color maps and bars instead of changing the image - this should be faster to download and run.
+   
+1.0.7
+  RENAMED CSS FILE TO INCLUDE VERSION NUMBER!!! YOU MUST USE THIS VERSIONED CSS FILE!!! There will be no need to do your own CSS version number increments from now on.
+  Added opacity feedback to color preview boxes.
+  Removed reliance on "id" value of containing object. Subobjects are now found by class and container instead of id's. This drastically reduces injected code.
+  Removed (jQuery).jPicker.getListElementById(id) function since "id" is no longer incorporated or required.
+
+1.0.6
+  Corrected picker bugs introduced with 1.0.5.
+  Removed alpha slider bar until activated - default behavior for alpha is now OFF.
+  Corrected Color constructor bug not allowing values of 0 for initial value (it was evaluating false and missing the init code - Thanks Pavol).
+  Removed title tags (tooltips) from color maps and bars - They get in the way in some browsers (e.g. IE - dragging marker does NOT prevent or hide the tooltip).
+  THERE WERE CSS FILE CHANGES WITH THIS UPDATE!!! IF YOU USE NEVER-EXPIRE HEADERS, YOU WILL NEED TO INCREMENT YOUR CSS FILE VERSION NUMBER!!!
+
+1.0.5
+  Added opacity support to picker and color/callback methods. New property "a" (alpha - range from 0-100) in all color objects now - defaults to 100% opaque. (Thank you Pavol)
+  Added title attributes to input elements - gives short tooltip directions on what button or field does.
+  Commit callback used to fire on control initialization (twice actually) - This has been corrected, it does not fire on initialization.
+  THERE WERE CSS FILE CHANGES WITH THIS UPDATE!!! IF YOU USE NEVER-EXPIRE HEADERS, YOU WILL NEED TO INCREMENT YOUR CSS FILE VERSION NUMBER!!!
+
+1.0.4
+  Added ability for smaller picker icon with expandable window on any DOM element (not just input).
+  "draggable" property renamed to "expandable" and its scope increased to create small picker icon or large static picker.
+
+1.0.3
+  Added cancelCallback function for registering an external function when user clicks cancel button. (Thank you Jeff and Pavol)
+
+1.0.2
+  Random bug fixes - speed concerns.
+
+1.0.1
+  Corrected closure based memeory leak - there may be others?
+
+1.0.0
+  First Release.
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/Example.html b/htdocs/includes/jquery/plugins/jpicker/Example.html
new file mode 100755
index 00000000000..0c70908fc59
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/Example.html
@@ -0,0 +1,774 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <title>Digital Magic Productions - jPicker - A jQuery Color Picker Plugin</title>
+  <link rel="Stylesheet" type="text/css" href="css/jpicker-1.1.6.min.css" />
+  <link rel="Stylesheet" type="text/css" href="jPicker.css" />
+  <script src="jquery-1.4.4.min.js" type="text/javascript"></script>
+  <script src="jpicker-1.1.6.min.js" type="text/javascript"></script>
+  <script type="text/javascript">
+    $(function()
+      {
+        $.fn.jPicker.defaults.images.clientPath='images/';
+        var LiveCallbackElement = $('#Live'),
+            LiveCallbackButton = $('#LiveButton');
+        $('#Inline').jPicker({window:{title:'Inline Example'}});
+        $('#Expandable').jPicker({window:{expandable:true,title:'Expandable Example'}});
+        $('#Alpha').jPicker({window:{expandable:true,title:'Alpha (Transparency) Example)',alphaSupport:true},color:{active:new $.jPicker.Color({ahex:'99330099'})}});
+        $('#Binded').jPicker({window:{title:'Binded Example'},color:{active:new $.jPicker.Color({ahex:'993300ff'})}});
+        $('.Multiple').jPicker({window:{title:'Multiple Binded Example'}});
+        $('#Callbacks').jPicker(
+          {window:{title:'Callback Example'}},
+          function(color, context)
+          {
+            var all = color.val('all');
+            alert('Color chosen - hex: ' + (all && '#' + all.hex || 'none') + ' - alpha: ' + (all && all.a + '%' || 'none'));
+            $('#Commit').css({ backgroundColor: all && '#' + all.hex || 'transparent' });
+          },
+          function(color, context)
+          {
+            if (context == LiveCallbackButton.get(0)) alert('Color set from button');
+            var hex = color.val('hex');
+            LiveCallbackElement.css({ backgroundColor: hex && '#' + hex || 'transparent' });
+          },
+          function(color, context)
+          {
+            alert('"Cancel" Button Clicked');
+          });
+        $('#LiveButton').click(
+          function()
+          {
+            $.jPicker.List[7].color.active.val('hex', 'e2ddcf', this);
+          });
+        $('#AlterColors').jPicker({window:{title:'Color Interaction Example'}});
+        $('#GetActiveColor').click(
+          function()
+          {
+            alert($.jPicker.List[8].color.active.val('ahex'));
+          });
+        $('#GetRG').click(
+          function()
+          {
+            var rg=$.jPicker.List[8].color.active.val('rg');
+            alert('red: ' + rg.r + ', green: ' + rg.g);
+          });
+        $('#SetHue').click(
+          function()
+          {
+            $.jPicker.List[8].color.active.val('h', 133);
+          });
+        $('#SetValue').click(
+          function()
+          {
+            $.jPicker.List[8].color.active.val('v', 38);
+          });
+        $('#SetRG').click(
+          function()
+          {
+            $.jPicker.List[8].color.active.val('rg', { r: 213, g: 118 });
+          });
+      });
+  </script>
+</head>
+<body>
+  <div id="jPicker">
+    <h2>jPicker - A jQuery Color Picker Plugin.</h2>
+    <p>
+      jPicker is a fast, lightweight jQuery plugin for including an advanced color picker in your web projects. It has been painstakenly ported from John Dyers' awesome work on his picker using the Prototype framework.<br /><br />
+      jPicker supports all current browsers and has been extensively tested in Chrome, Firefox, IE5.5+, Safari, and Opera.<br /><br />
+      If you are updating a current version, you MUST always use the CSS and image files from the download as there may have been changes.<br /><br />
+      If you are moving from a V1.0.* version, you MUST read the docs below to implement some changes to the Color object returned by the callback functions.<br /><br />
+      <a href="http://johndyer.name/post/2007/09/PhotoShop-like-JavaScript-Color-Picker.aspx" class="newWindow">View John Dyer's prototype plugin here.</a><br /><br />
+      View jPicker details a docs below.<br /><br />
+      <a href="http://code.google.com/p/jpicker/" class="newWindow">Check out the source from Google Code.</a>
+    </p><hr /><br />
+    <h2>jPicker Inline Example</h2>
+    <p>
+      jPicker can be used inline by binding to any block level element.<br /><br />
+      <code>jPicker() -- no arguments</code>
+      <pre>
+&lt;script type="text/javascript"&gt;        
+  $(document).ready(
+    function()
+    {
+      $('#Inline').jPicker();
+    });
+&lt;/script&gt;
+&lt;div id="Inline"&gt;&lt;/div&gt;</pre>
+      <div id="Inline"></div>
+    </p><hr /><br />
+    <h2>jPicker Expandable Example</h2>
+    <p>
+      jPicker can also display only a small picker icon that opens a popup for editing.<br /><br />
+      <code>jPicker({ window: { expandable: true }})</code>
+      <pre>
+&lt;script type="text/javascript"&gt;
+  $(document).ready(
+    function()
+    {
+      $('#Expandable').jPicker(
+        {
+          window:
+          {
+            expandable: true
+          }
+        });
+    });
+&lt;/script&gt;
+&lt;span id="Expandable"&gt;&lt;/span&gt;</pre>
+      <span id="Expandable"></span>
+    </p><hr /><br />
+    <h2>jPicker Alpha Channel Example</h2>
+    <p>
+      jPicker can also pick colors with alpha (transparency) values.<br /><br />
+      <code>jPicker({ window: { expandable: true }})</code>
+      <pre>
+&lt;script type="text/javascript"&gt;        
+  $(document).ready(
+    function()
+    {
+      $('#Alpha').jPicker(
+        {
+          window:
+          {
+            expandable: true
+          },
+          color:
+          {
+            alphaSupport: true,
+            active: new $.jPicker.Color({ ahex: '99330099' })
+          }
+        });
+    });
+&lt;/script&gt;
+&lt;span id="Alpha"&gt;&lt;/span&gt;</pre>
+      <span id="Alpha"></span>
+    </p><hr /><br />
+    <h2>jPicker Binded Example</h2>
+    <p>
+      jPicker can also be binded to an input element.<br /><br />
+      <code>jPicker() -- no arguments</code>
+      <pre>
+&lt;script type="text/javascript"&gt;        
+  $(document).ready(
+    function()
+    {
+      $('#Binded').jPicker();
+    });
+&lt;/script&gt;
+&lt;input id="Binded" type="text" value="e2ddcf" /&gt;</pre>
+      <input id="Binded" type="text" value="e2ddcf" />
+    </p><hr /><br />
+    <h2>Multiple jPicker Binded Example</h2>
+    <p>
+      jPicker can also be binded to multiple elements at a time.<br /><br />
+      <code>jPicker() -- no arguments</code>
+      <pre>
+&lt;script type="text/javascript"&gt;        
+  $(document).ready(
+    function()
+    {
+      $('.Multiple').jPicker();
+    });
+&lt;/script&gt;
+&lt;input class="Multiple" type="text" value="e2ddcf" /&gt;&lt;br /&gt;
+&lt;input class="Multiple" type="text" value="" /&gt;&lt;br /&gt;
+&lt;input class="Multiple" type="text" value="fda0f7" /&gt;</pre>
+      <input class="Multiple" type="text" value="e2ddcf" /><br />
+      <input class="Multiple" type="text" value="" /><br />
+      <input class="Multiple" type="text" value="fda0f7" /><br />
+    </p><hr /><br />
+    <h2>jPicker Callback Functions</h2>
+    <p>
+      Register for callback function to have it interact with your page.<br /><br />
+      <code>jPicker([settings, [commitCallback, [liveCallback, [cancelCallback]]]])</code>
+      <pre>
+&lt;script type="text/javascript"&gt;
+  $(document).ready(
+    function()
+    {
+      var LiveCallbackElement = $('#Live'),
+          LiveCallbackButton = $('#LiveButton');  // you don't want it searching this
+                                                  // on every live callback!!!
+      $('#Callbacks').jPicker(
+        {},
+        function(color, context)
+        {
+          var all = color.val('all');
+          alert('Color chosen - hex: ' + (all && '#' + all.hex || 'none') +
+            ' - alpha: ' + (all && all.a + '%' || 'none'));
+          $('#Commit').css(
+            {
+              backgroundColor: all && '#' + all.hex || 'transparent'
+            }); // prevent IE from throwing exception if hex is empty
+        },
+        function(color, context)
+        {
+          if (context == LiveCallbackButton.get(0)) alert('Color set from button');
+          var hex = color.val('hex');
+          LiveCallbackElement.css(
+            {
+              backgroundColor: hex && '#' + hex || 'transparent'
+            }); // prevent IE from throwing exception if hex is empty
+        },
+        function(color, context)
+        {
+          alert('"Cancel" Button Clicked');
+        });      
+      $('#LiveButton').click(
+        function()
+        {
+          $.jPicker.List[0].color.active.val('hex', 'e2ddcf', this);
+        });
+    });
+&lt;/script&gt;
+&lt;input id="Callbacks" type="text" value="e2ddcf" /&gt;
+&lt;span id="Commit" style="background-color: #e2ddcf; display: block; --
+          float: left; height: 50px; margin: 10px; width: 50px;"&gt; --
+          Commit&lt;/span&gt;
+&lt;span id="Live" style="display: block; float: left; height: 50px; --
+          margin: 10px; width: 50px;"&gt;Live&lt;/span&gt;
+&lt;input id="LiveButton" type="button" value="Set To #e2ddcf" /&gt;</pre>
+      <input id="Callbacks" type="text" value="e2ddcf" /><br />
+      <span id="Commit" style="background-color: #e2ddcf; display: block; float: left; height: 50px; margin: 10px; width: 50px;">Commit</span>
+      <span id="Live" style="display: block; float: left; height: 50px; margin: 10px; width: 50px;">Live</span>
+      <input id="LiveButton" type="button" value="Set To #e2ddcf" />
+    </p><hr /><br />
+    <h2>jPicker Settings And Colors</h2>
+    <p>
+      Use the "val" method on the active color for interaction with the picker.<br /><br />
+      <code>(jQuery).jPicker.List[index]</code>
+      <pre>
+&lt;script type="text/javascript"&gt;        
+  $(document).ready(
+    function()
+    {
+      $('#AlterColors').jPicker();
+      $('#GetActiveColor').click(
+        function()
+        {
+          alert($.jPicker.List[0].color.active.val('ahex'));
+        });
+      $('#GetRG').click(
+        function()
+        {
+          var rg=$.jPicker.List[0].color.active.val('rg');
+          alert('red: ' + rg.r + ', green: ' + rg.g);
+        });
+      $('#SetHue').click(
+        function()
+        {
+          $.jPicker.List[0].color.active.val('h', 133);
+        });
+      $('#SetValue').click(
+        function()
+        {
+          $.jPicker.List[0].color.active.val('v', 38);
+        });
+      $('#SetRG').click(
+        function()
+        {
+          $.jPicker.List[0].color.active.val('rg', { r: 213, g: 118 });
+        });
+    });
+&lt;/script&gt;
+&lt;input id="AlterColors" type="text" value="e2ddcf" /&gt;&lt;br /&gt;
+&lt;input id="GetActiveColor" type="button" value="Get Active Color" /&gt;&lt;br /&gt;
+&lt;input id="GetRG" type="button" value="Get Red/Green Value" /&gt;&lt;br /&gt;
+&lt;input id="SetHue" type="button" value="Set Hue To 133" /&gt;&lt;br /&gt;
+&lt;input id="SetValue" type="button" value="Set Value To 38" /&gt;&lt;br /&gt;
+&lt;input id="SetRG" type="button" value="Set Red/Green To 213, 118" /&gt;</pre>
+      <input id="AlterColors" type="text" value="e2ddcf" /><br />
+      <input id="GetActiveColor" type="button" value="Get Active Color" /><br />
+      <input id="GetRG" type="button" value="Get Red/Green Value" /><br />
+      <input id="SetHue" type="button" value="Set Hue To 133" /><br />
+      <input id="SetValue" type="button" value="Set Value To 38" /><br />
+      <input id="SetRG" type="button" value="Set Red/Green To 213, 118" />
+    </p><hr /><br />
+    <h2>jPicker Core</h2>
+    <p>
+      jPicker Core function - returns the jQuery object.<br /><br />
+      <code>jPicker([settings, [commitCallback, [liveCallback, [cancelCallback]]]])</code>
+    </p><hr /><br />
+    <h2>Settings</h2>
+    <p>
+      settings [object]: (with defaults)<br />
+      <pre>
+{
+  window: // used to define the position of the popup window
+          // only useful in binded mode
+  {
+    title: null, // any title for the jPicker window itself - displays
+                 // "Drag Markers To Pick A Color" if left null
+    position:
+    {
+      x: 'screenCenter', // acceptable values "left", "center", "right",
+                         // "screenCenter", or relative px value
+      y: 'top', // acceptable values "top", "bottom", "center", or relative px
+                // value
+    },
+    expandable: false, // default to large static picker - set to true to make an
+                       // expandable picker (small icon with popup) - set
+                       // automatically when binded to input element
+    liveUpdate: true, // set false if you want the user to click "OK" before the
+                      // binded input box updates values (always "true" for
+                      // expandable picker)
+    alphaSupport: false, // set to true to enable alpha picking
+    alphaPrecision: 0, // set decimal precision for alpha percentage display -
+                       // hex codes do not map directly to percentage integers -
+                       // range 0-2
+    updateInputColor: true // set to false to prevent binded input colors from
+                           // changing
+  },
+  color:
+  {
+    mode: 'h', // acceptable values "h" (hue), "s" (saturation), "v" (brightness),
+               // "r" (red), "g" (green), "b" (blue), "a" (alpha)
+    active: new $.jPicker.Color({ hex: 'ffc000' }), // accepts any declared
+               // jPicker.Color object or hex string WITH OR WITHOUT '#'
+    quickList: // this list of quick pick colors - override for a different list
+      [
+        new $.jPicker.Color({ h: 360, s: 33, v: 100}), // accepts any declared
+               // jPicker.Color object or hex string WITH OR WITHOUT '#'
+        new $.jPicker.Color({ h: 360, s: 66, v: 100}),
+        (...) // removed for brevity
+        new $.jPicker.Color({ h: 330, s: 100, v: 50}),
+        new $.jPicker.Color()
+      ]
+  },
+  images
+  {
+    clientPath: '/jPicker/images/', // Path to image files
+    colorMap: // colorMap size and arrow icon
+    {
+      width: 256, // Map width - don't override unless using a smaller image set
+      height: 256, // Map height - don't override unles using a smaller image set
+      arrow:
+      {
+        file: 'mappoint.gif', // Arrow icon image file
+        width: 15, // Arrow icon width
+        height: 15 // Arrow icon height
+      }
+    },
+    colorBar: // colorBar size and arrow icon
+    {
+      width: 20, // Bar width - don't override unless using a smaller image set
+      height: 256, // Bar height - don't override unless using a smaller image set
+      arrow:
+      {
+        file: 'rangearrows.gif', // Arrow icon image file
+        width: 40, // Arrow icon width
+        height: 9 // Arrow icon height
+      }
+    },
+    picker: // picker icon and size
+    {
+      file: 'picker.gif', // Picker icon image file
+      width: 25, // Picker width - don't override unless using a smaller image set
+      height: 24 // Picker height - don't override unless using a smaller image set
+    }
+  },
+  localization:
+  {
+    text:
+    {
+      title: 'Drag Markers To Pick A Color',
+      newColor: 'new',
+      currentColor: 'current',
+      ok: 'OK',
+      cancel: 'Cancel'
+    },
+    tooltips:
+    {
+      colors:
+      {
+        newColor: 'New Color - Press &ldquo;OK&rdquo; To Commit',
+        currentColor: 'Click To Revert To Original Color'
+      },
+      buttons:
+      {
+        ok: 'Commit To This Color Selection',
+        cancel: 'Cancel And Revert To Original Color'
+      },
+      hue:
+      {
+        radio: 'Set To &ldquo;Hue&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)'
+      },
+      saturation:
+      {
+        radio: 'Set To &ldquo;Saturation&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Saturation&rdquo; Value (0-100%)'
+      },
+      brightness:
+      {
+        radio: 'Set To &ldquo;Brightness&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Brightness&rdquo; Value (0-100%)'
+      },
+      red:
+      {
+        radio: 'Set To &ldquo;Red&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Red&rdquo; Value (0-255)'
+      },
+      green:
+      {
+        radio: 'Set To &ldquo;Green&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Green&rdquo; Value (0-255)'
+      },
+      blue:
+      {
+        radio: 'Set To &ldquo;Blue&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Blue&rdquo; Value (0-255)'
+      },
+      alpha:
+      {
+        radio: 'Set To &ldquo;Alpha&rdquo; Color Mode',
+        textbox: 'Enter A &ldquo;Alpha&rdquo; Value (0-100)'
+      },
+      hex:
+      {
+        textbox: 'Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)',
+        alpha: 'Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)'
+      }
+    }
+  }
+}</pre>
+    </p><hr /><br />
+    <h2>Callback Pattern</h2>
+    <p>
+      <code>function(jPicker.Color color, object context){...}</code>
+    </p><hr /><br />
+    <h2>jPicker List</h2>
+    <p>
+      The list of active jPicker objects.<br /><br />
+      <code>(jQuery).jPicker.List[]</code>
+    </p><hr /><br />
+    <h2>jPicker Color Class</h2>
+    <p>
+      Definition of the jPicker.Color class.<br />
+      <pre>
+(jQuery).jPicker.Color()
+(jQuery).jPicker.Color({ ahex: 'ffffffff' })
+(jQuery).jPicker.Color({ hex: 'ffffff', [a: (0-255)] })
+(jQuery).jPicker.Color({ r: (0-255), g: (0-255), b: (0-255), [a: (0-255)] })
+(jQuery).jPicker.Color({ h: (0-360), s: (0-100), v: (0-100), [a: (0-255)] })
+{
+  val: function(name, value, context),
+  bind: function(callback) where callback is function(color, [context]),
+  unbind: function(callback)
+}
+
+method "val" usage
+
+val(name) : get value
+
+  'r':     red         (0-255)
+  'g':     green       (0-255)
+  'b':     blue        (0-255)
+  'a':     alpha       (0-255)
+  'h':     hue         (0-360)
+  's':     saturation  (0-100)
+  'v':     value       (0-100)
+  'hex':   hex         (000000-ffffff)
+  'ahex':  ahex        (00000000-ffffffff)
+  'all':   all         all
+  
+  ex. Usage
+
+    val('r'):     (0-255)
+    val('h'):     (0-360)
+    val('hex'):   (000000-ffffff)
+    val('rg'):    { r: (0-255), g: (0-255) }
+    val('rgba'):  { r: (0-255), g: (0-255), b: (0-255), a: (0-255) }
+    val('hvga'):  { h: (0-255), v: (0-100), g: (0-255), a: (0-255) }
+    val('all'):   { r: (0-255), g: (0-255), b: (0-255), a: (0-255), h: (0-360) --
+                    s: (0-100), v: (0-100), hex: (000000-ffffff), --
+                    ahex: (00000000-ffffffff) }
+
+val(name, value, [context]) : set value
+
+  'r':     red         (0-255)
+  'g':     green       (0-255)
+  'b':     blue        (0-255)
+  'a':     alpha       (0-255)
+  'h':     hue         (0-360)
+  's':     saturation  (0-100)
+  'v':     value       (0-100)
+  'hex':   hex         (000000-ffffff)
+  'ahex':  ahex        (00000000-ffffffff)
+  
+  ex. Usage
+
+    val('r', (0-255)) || val('r', { r: (0-255) })
+    val('h', (0-360)) || val('h', { h: (0-360) })
+    val('hex', (000000-ffffff)) || val('hex', { hex: (000000-ffffff) })
+    val('rg', { r: (0-255), g: (0-255) })
+    val('rgba', { r: (-255), g: (0-255), b: (0-255), a: (0-255) })
+    val(null, { r: (0-255), g: (0-255) })
+    val('hvga'):  incorrect usage - cannot set hsv AND rgb as they will conflict</pre>
+    </p><hr /><br />
+    <h2>jPicker ColorMethod Utility Class</h2>
+    <p>
+      Static methods for altering and retrieving different color spaces.<br />
+      <pre>
+(jQuery).jPicker.ColorMethods.hexToRgba:
+    function(hex)
+    returns { r: (0-255), g: (0-255), b: (0-255), a: (0-255) }
+    
+(jQuery).jPicker.ColorMethods.validateHex:
+    function(hex)
+    returns new hex string
+    
+(jQuery).jPicker.ColorMethods.rgbaToHex:
+    function({ r: (0-255), g: (0-255), b: (0-255), a: (0-255) })
+    returns hex string
+    
+(jQuery).jPicker.ColorMethods.intToHex:
+    function(number)
+    returns hex string
+    
+(jQuery).jPicker.ColorMethods.hexToInt:
+    function(hex)
+    return integer
+
+(jQuery).jPicker.ColorMethods.rgbToHsv:
+    function({ r: (0-255), g: (0-255), b: (0-255) })
+    returns { h: (0-360), s: (0-100), v: (0-100) }
+
+(jQuery).jPicker.ColorMethods.hsvToRgb:
+    function({ h: (0-360), s: (0-100), v: (0-100) })
+    returns { r: (0-255), g: (0-255), b: (0-255) }
+</pre>
+    </p><hr /><br />
+    <h2>Known Issues</h2>
+    <ul>
+      <li>
+        <h3>Attaching multiple jPicker objects on a single page will slow performance.</h3>
+        <ul>
+          <li>jPicker creates a new instance of the picker for every element. Performance will suffer when binding dozens of instances.</li>
+        </ul>
+      </li>
+    </ul><hr />
+    <h2>Coming Soon</h2>
+    <ul>
+      <li>
+        <ul>
+          <li>Will consider supporting jQuery ThemeRoller CSS API for theming the UI if demand exists.</li>
+        </ul>
+      </li>
+    </ul><hr />
+    <h2>Planned For Future Release</h2>
+    <ul>
+      <li>
+        Move the jPicker object to a single instance that all selection instances point to.
+        <ul>
+          <li>This will result in much faster operation and initialization for pages with multiple pickers.</li>
+        </ul>
+      </li>
+      <li>Add activateCallback option for calling a callback function when the jPicker is activated or its binding is switched to a different picker element.</li>
+    </ul><hr />
+    <h2>Change Log</h2>
+    <ul>
+      <li>
+        <h3>V1.1.5:</h3>
+        <ul>
+          <li>Corrected Color object constructor to allow setting of the "alpha" value as per the documentation which previously didn't work.</li>
+          <li>Added support for translucency for quickList colors with checkered background - Only available if "alphaSupport" is enabled.</li>
+          <li>Restricted default color to "alpha" of 255 if "alphaSupport" is disabled - It will now assign an explicit alpha of 255 when disabled.</li>
+          <li>Added new setting variable "alphaPrecision" which indicates the number of decimal points to allow in the alpha percentage display - Now defaults to 0.</li>
+        </ul>
+      </li>
+      <li>
+        <h3>V1.1.4:</h3>
+        <ul>
+          <li>Changed "alpha" range from 0-100 to 0-255 to correct truncating and rounding errors caused by attempting to get an integer percentage that matches a hex value.</li>
+          <li>"alpha" percentage display will now show up to 1 decimal point for more accurate representation of "alpha" value.</li>
+          <li>Color object now accepts "alpha" values in a range of 0-255 and also returns the same when getting the "alpha" value. You will need to run ((alpha * 100) / 255) to retrieve a percentage value.</li>
+          <li>Reworked the table layout and labels to remove the need for the label to reference the radio input box. This reduces injected code and removes the need to generate unique ids on the radio buttons.</li>
+          <li>Transparent/invisible caret on NULL color is now corrected - uses the same caret color as a white color.</li>
+          <li>Setting a binded input value of "" or no value attribute will now create a NULL color on initialization instead of the settings default color.</li>
+          <li>Added a dynamic, invisible "iframe" behind a dialog picker in all browsers that fail jQuery.support.boxModel (currently IE <= 7 Quirks Mode). This prevents "select" box from showing through the picker.</li>
+        </ul>
+      </li>
+      <li>
+        <h3>V1.1.3:</h3>
+        <ul>
+          <li>Now adding popup color pickers to document.body instead of inline with the popup control. This corrects issues with the picker not showing beyond a relative container scope.</li>
+          <li>No longer need to hide popup icon in Internet Explorer for picker elements lower in the DOM than the currently active one since the picker itself is attached to document.body (it is always higher in the DOM now).</li>
+          <li>Popup pickers are now bring-to-front selectable. Clicking on the picker will bring it above all other pickers on the page instead of having to drag one out from underneath another.</li>
+          <li>Corrected jPicker.List/setTimeout bug which allowed an instance to bind to the List in an order other than the order the initialization function was called.</li>
+          <li>Added a updateInputColor option (default true) to allow for a binded input field that does not automatically update its background/text color.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.1.2:</h3>
+        <ul>
+          <li>Reworked the find methods and contexts for element searches. Now using ":first" instead of ".eq(0)" to take advantage of early out searches. Much faster initialization of the picker, on the order of 6 times.</li>
+          <li>Now using setTimeout for calling visual updates. Dramatically improved marker dragging in all browsers. Reduces blocking as re-rendering is internal to the browser and independent of the other javascript still in progress.</li>
+          <li>Marker updates can now cancel a previous valueChanged event when a new mouseMove event comes in. IE8 marker dragging is still slower, much over 5 times faster than it was.</li>
+          <li>Reworked entire quickPick list creation. It now adds up source code and does a single "html" method instead of multiple "append" methods. This is a large part of the speed increase on initialization.</li>
+          <li>The vast majority of all running scripts on both initialization and dragging is now occupied altering the style rules and finding elements (init only) instead of jPicker code.</li>
+          <li>All methods previously called with global context now use the "call" method for using the context of the class running the method. "this" in a callback is now the DOM node (jQuery style) and jPicker instead of "window".</li>
+          <li>Added "effects" section of window settings to allow different show/hide effects and durations.</li>
+          <li>Removed change log and read me from the full source code to separate files (ChangeLog.txt and ReadMe.txt) and an HTML demonstration/documentation page (Example.txt).</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.1.1:</h3>
+        <ul>
+          <li>Correct IE exception caused by attempting to set "#transparent" to CSS background-color.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.1.0:</h3>
+        <ul>
+          <li>Reworked nearly the entire plugin including the internal and external event model, bindings, DOM searches, classes, and overall presentation.</li>
+          <li>The Color object now supports a changed event that you can bind to (or just bind to the picker events still included).</li>
+          <li>Event order has been reversed, instead of an change event on the map/bar/text fields updating the display, they now update the Color object which then fires the events that update the display.</li>
+          <li>alphaSupport re-implemented by request - default behavior is off.</li>
+          <li>Hex code now only 6 characters again.</li>
+          <li>Color object can now have its value changed from code, using the "val" method, and it will fire all events necessary to update the display.</li>
+          <li>Removed all "get_*" methods from the color object, instead opting for a single "val" method for getting and setting, more in line with familiar jQuery methods.</li>
+          <li>Better rendering for all IE versions in Quirks mode.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.13:</h3>
+        <ul>
+          <li>Updated transparency algorithm for red/green/blue color modes. The algorithm from John Dyers' color picker was close but incorrect. Bar colors are now pixel perfect with the new algorithm.</li>
+          <li>Changed from using "background-position" on the color maps to an element of full height using the "top" attribute for image-map location using "overflow: hidden" to hide overdraw.</li>
+          <li>IE7/8 ignores opacity on elements taller than 4096px. Image maps therefore no longer include a blank first map so the Bar is just under 4096. Blank is now accomplished by setting the "top" setting to below the map display.</li>
+          <li>New colorBar picker image that does not draw outside of the element since the elements now hide overdraw.</li>
+          <li>Added IE5.5/6 support for the picker. This is why it now uses maps of full height and the "top" attribute for map locations.</li>
+          <li>Moved the images in the maps to 4 pixels apart from each other. IE7/8 change the first pixel of the bottom-border of 2px to partially transparent showing a portion of a different color map without this.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.12:</h3>
+        <ul>
+          <li>Added minified CSS file.</li>
+          <li>Added IE7/8 Quirks Mode support.</li>
+          <li>Added configurable string constants for all text and tooltips. You can now change the default values for different languages.</li>
+          <li>Privatized the RGBA values in the Color object for better NULL handling. YOU MUST USE THE NEW GET FUNCTIONS TO ACCESS THE COLOR PROPERTIES.</li>
+          <li>Better NULL color handling and an additional "No Color Selected" quick pick color.</li>
+          <li>More consistent behavior across multiple versions of browsers.</li>
+          <li>Added alpha response to the binded color picker icon.</li>
+          <li>Removed "alphaSupport" variable. It is now always supported.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.11b:</h3>
+        <ul>
+          <li>Corrected NULL behavior in IE. jQuery was getting an exception when attempting to assign a backgroundColor style of '#'. Now assigns 'transparent' if color is NULL.</li>
+          <li>Can now create new Color object WITH OR WITHOUT the '#' prefix.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.11:</h3>
+        <ul>
+          <li>Added ability for NULL colors (delete the hex value). Color will be returned as color.hex == ''. Can set the default color to an empty hex string as well.</li>
+          <li>cancelCallback now returns the original color for use in programming responses.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.10:</h3>
+        <ul>
+          <li>Corrected table layout and tweaked display for more consisent presentation. Nice catch from Jonathan Pasquier.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.9:</h3>
+        <ul>
+          <li>Added optional title variable for each jPicker window.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.8:</h3>
+        <ul>
+          <li>Moved all images into a few sprites - now using backgroundPosition to change color maps and bars instead of changing the image - this should be faster to download and run.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.7:</h3>
+        <ul>
+          <li>RENAMED CSS FILE TO INCLUDE VERSION NUMBER!!! YOU MUST USE THIS VERSIONED CSS FILE!!! There will be no need to do your own CSS version number increments from now on.</li>
+          <li>Added opacity feedback to color preview boxes.</li>
+          <li>Removed reliance on "id" value of containing object. Subobjects are now found by class and container instead of id's. This drastically reduces injected code.</li>
+          <li>Removed (jQuery).jPicker.getListElementById(id) function since "id" is no longer incorporated or required.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.6:</h3>
+        <ul>
+          <li>Corrected picker bugs introduced with 1.0.5.</li>
+          <li>Removed alpha slider bar until activated - default behavior for alpha is now OFF.</li>
+          <li>Corrected Color constructor bug not allowing values of 0 for initial value (it was evaluating false and missing the init code - Thanks Pavol).</li>
+          <li>Removed title tags (tooltips) from color maps and bars - They get in the way in some browsers (e.g. IE - dragging marker does NOT prevent or hide the tooltip).</li>
+          <li>THERE WERE CSS FILE CHANGES WITH THIS UPDATE!!! IF YOU USE NEVER-EXPIRE HEADERS, YOU WILL NEED TO INCREMENT YOUR CSS FILE VERSION NUMBER!!!</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.5:</h3>
+        <ul>
+          <li>Added opacity support to picker and color/callback methods. New property "a" (alpha - range from 0-100) in all color objects now - defaults to 100% opaque. (Thank you Pavol)</li>
+          <li>Added title attributes to input elements - gives short tooltip directions on what button or field does.</li>
+          <li>Commit callback used to fire on control initialization (twice actually) - This has been corrected, it does not fire on initialization.</li>
+          <li>THERE WERE CSS FILE CHANGES WITH THIS UPDATE!!! IF YOU USE NEVER-EXPIRE HEADERS, YOU WILL NEED TO INCREMENT YOUR CSS FILE VERSION NUMBER!!!</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.4:</h3>
+        <ul>
+          <li>Added ability for smaller picker icon with expandable window on any DOM element (not just input).</li>
+          <li>"draggable" property renamed to "expandable" and its scope increased to create small picker icon or large static picker.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.3</h3>
+        <ul>
+          <li>Added cancelCallback function for registering an external function when user clicks cancel button. (Thank you Jeff and Pavol)</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.2</h3>
+        <ul>
+          <li>Random bug fixes - speed concerns.</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.1</h3>
+        <ul>
+          <li>Corrected closure based memeory leak - there may be others?</li>
+        </ul>
+        <hr />
+      </li>
+      <li>
+        <h3>V1.0.0</h3>
+        <ul>
+          <li>First Release.</li>
+        </ul>
+        <hr />
+      </li>
+    </ul>
+  </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/ReadMe.txt b/htdocs/includes/jquery/plugins/jpicker/ReadMe.txt
new file mode 100755
index 00000000000..a2006d2f17a
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/ReadMe.txt
@@ -0,0 +1,47 @@
+jPicker 1.1.6
+
+jQuery Plugin for Photoshop style color picker
+
+Copyright (c) 2010 Christopher T. Tillman
+Digital Magic Productions, Inc. (http://www.digitalmagicpro.com/)
+MIT style license, FREE to use, alter, copy, sell, and especially ENHANCE
+
+Painstakingly ported from John Dyers' excellent work on his own color picker based on the Prototype framework.
+
+John Dyers' website: (http://johndyer.name)
+Color Picker page:   (http://johndyer.name/post/2007/09/PhotoShop-like-JavaScript-Color-Picker.aspx)
+
+
+    jPicker is a fast, lightweight jQuery plugin for including an advanced color picker in your web projects.
+It has been painstakenly ported from John Dyers' awesome work on his picker using the Prototype framework.
+
+    jPicker supports all current browsers and has been extensively tested in Chrome, Firefox, IE5.5+, Safari,
+and Opera.
+
+    If you are updating a current version, you MUST always use the CSS and image files from the download as
+there may have been changes.
+
+    If you are moving from a V1.0.* version, you MUST read the docs below to implement some changes to the
+Color object returned by the callback functions.
+
+
+Known Issues
+______________
+Attaching multiple jPicker objects on a single page will slow performance.
+  jPicker creates a new instance of the picker for every element. Performance will suffer when binding dozens of instances.
+
+
+Coming Soon
+______________
+
+    Will consider supporting jQuery ThemeRoller CSS API for theming the UI if demand exists.
+
+Planned For Future Release
+______________
+
+  Move the jPicker object to a single instance that all selection instances point to.
+     - This will result in much faster operation and initialization for pages with multiple pickers.
+
+  Add activateCallback option for calling a callback function when the jPicker is activated or its binding is switched to a different picker element.
+  
+  Add multiple window modes for picker operation, include modal, popup, windowed, and exclusive.
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css
new file mode 100755
index 00000000000..a4352ef4272
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css
@@ -0,0 +1,232 @@
+.jPicker .Icon {
+  display: inline-block;
+  height: 16px; /* change this value if using a different sized color picker icon */
+  position: relative; /* make this element an absolute positioning container */
+  text-align: left; /* make the zero width children position to the left of container */
+  width: 21px; /* change this value if using a different sized color picker icon */
+}
+.jPicker .Icon span.Color, .jPicker .Icon span.Alpha {
+  background-position: 2px 2px;
+  display: block;
+  height: 100%;
+  left: 0px;
+  position: absolute;
+  top: 0px;
+  width: 100%;
+}
+.jPicker .Icon span.Image {
+  background-repeat: no-repeat;
+  cursor: pointer;
+  display: block;
+  height: 100%;
+  left: 0px;
+  position: absolute;
+  top: 0px;
+  width: 100%;
+}
+.jPicker.Container {
+  color: #000;
+  z-index: 10;
+}
+table.jPicker {
+  background-color: #efefef;
+  border: 1px outset #666;
+  font-family: Arial, Helvetica, Sans-Serif;
+  font-size: 12px !important;
+  margin: 0px;
+  padding: 5px;
+  width: 545px;
+  z-index: 20;
+}
+.jPicker .Move {
+  background-color: #dddddd;
+  border-color: #fff #666 #666 #fff;
+  border-style: solid;
+  border-width: 1px;
+  cursor: move;
+  height: 12px;
+  padding: 0px;
+}
+.jPicker .Title {
+  font-size: 11px !important;
+  font-weight: bold;
+  margin: -2px 0px 0px 0px;
+  padding: 10px 0px 0px 0px;
+  text-align: center;
+  width: 100%;
+}
+.jPicker div.Map {
+  border-bottom: 2px solid #fff;
+  border-left: 2px solid #9a9a9a;
+  border-right: 2px solid #fff;
+  border-top: 2px solid #9a9a9a;
+  cursor: crosshair;
+  height: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
+  margin: 0px 10px 10px 10px;
+  overflow: hidden; /* hide the overdraw of the Color Map icon when at edge of viewing box */
+  padding: 0px;
+  position: relative; /* make this element an absolute positioning container */
+  width: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
+}
+.jPicker div[class="Map"] {
+  height: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
+  width: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
+}
+.jPicker div.Bar {
+  border-bottom: 2px solid #fff;
+  border-left: 2px solid #9a9a9a;
+  border-right: 2px solid #fff;
+  border-top: 2px solid #9a9a9a;
+  cursor: n-resize;
+  height: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
+  margin: 12px 10px 0px 5px;
+  overflow: hidden;
+  padding: 0px;
+  position: relative;
+  width: 24px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 20px later */
+}
+.jPicker div[class="Bar"] {
+  height: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
+  width: 20px; /* correct to 20px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
+}
+.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Map .Map3, .jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4, .jPicker .Bar .Map5, .jPicker .Bar .Map6 {
+  background-color: transparent;
+  background-image: none;
+  display: block;
+  left: 0px;
+  position: absolute;
+  top: 0px;
+}
+.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Map .Map3 {
+  height: 2596px;
+  width: 256px; /* must specify pixel width. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
+                   would not be drawn if its overflow is set to hidden. */
+}
+.jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4 {
+  height: 3896px;
+  width: 20px; /* must specify pixel width. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
+                  would not be drawn if its overflow is set to hidden. */
+}
+.jPicker .Bar .Map5, .jPicker .Bar .Map6 {
+  height: 256px;
+  width: 20px; /* must specify pixel width. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
+                  would not be drawn if its overflow is set to hidden. */
+}
+.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Bar .Map6 {
+  background-repeat: no-repeat;
+}
+.jPicker .Map .Map3, .jPicker .Bar .Map5 {
+  background-repeat: repeat;
+}
+.jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4 {
+  background-repeat: repeat-x;
+}
+.jPicker .Map .Arrow {
+  display: block;
+  position: absolute;
+}
+.jPicker .Bar .Arrow {
+  display: block;
+  left: 0px; /* (arrow width / 2) - (element width / 2) - position arrows' center in elements' center */
+  position: absolute;
+}
+.jPicker .Preview {
+  font-size: 9px;
+  padding: 5px 0px 0px 0px;
+  text-align: center;
+}
+.jPicker .Preview div {
+  border: 2px inset #eee;
+  height: 62px;
+  margin: 0px auto;
+  padding: 0px;
+  width: 62px;
+}
+.jPicker .Preview div span {
+  border: 1px solid #000;
+  display: block;
+  height: 30px;
+  margin: 0px auto;
+  padding: 0px;
+  width: 60px;
+}
+.jPicker .Preview .Active {
+  border-bottom-width: 0px;
+}
+.jPicker .Preview .Current {
+  border-top-width: 0px;
+  cursor: pointer;
+}
+.jPicker input {
+  font-size: 13px;
+}
+.jPicker .Button {
+  text-align: center;
+  padding: 0px 4px;
+  width: 115px;
+}
+.jPicker .Button input {
+  padding: 2px 0px;
+  width: 100px;
+}
+.jPicker .Button .Ok {
+  margin: 12px 0px 5px 0px;
+}
+.jPicker td {
+  margin: 0px;
+  padding: 0px;
+}
+.jPicker td.Radio {
+  margin: 0px;
+  padding: 0px;
+  width: 31px;
+}
+.jPicker td.Radio input {
+  margin: 0px 5px 0px 0px;
+  padding: 0px;
+}
+.jPicker td.Text {
+  font-size: 12px !important;
+  height: 22px;
+  margin: 0px;
+  padding: 0px;
+  text-align: left;
+  width: 70px;
+}
+.jPicker tr.Hex td.Text {
+  width: 100px;
+}
+.jPicker td.Text input {
+  background-color: #fff;
+  border: 1px inset #aaa;
+  height: 19px;
+  margin: 0px 0px 0px 5px;
+  text-align: left;
+  width: 30px;
+}
+.jPicker td[class="Text"] input {
+  height: 15px;
+}
+.jPicker tr.Hex td.Text input.Hex {
+  width: 50px;
+}
+.jPicker tr.Hex td.Text input.AHex {
+  width: 20px;
+}
+.jPicker .Grid {
+  text-align: center;
+  width: 114px;
+}
+.jPicker .Grid span.QuickColor {
+  border: 1px inset #aaa;
+  cursor: pointer;
+  display: inline-block;
+  height: 15px;
+  line-height: 15px;
+  margin: 0px;
+  padding: 0px;
+  width: 19px;
+}
+.jPicker .Grid span[class="QuickColor"] {
+  width: 17px;
+}
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css
new file mode 100755
index 00000000000..c131616fb9d
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css
@@ -0,0 +1 @@
+.jPicker .Icon{display:inline-block;height:24px;position:relative;text-align:left;width:25px}.jPicker .Icon span.Color,.jPicker .Icon span.Alpha{background-position:2px 2px;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker .Icon span.Image{background-repeat:no-repeat;cursor:pointer;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker.Container{color:#000;z-index:10}table.jPicker{background-color:#efefef;border:1px outset #666;font-family:Arial,Helvetica,Sans-Serif;font-size:12px!important;margin:0;padding:5px;width:545px;z-index:20}.jPicker .Move{background-color:#ddd;border-color:#fff #666 #666 #fff;border-style:solid;border-width:1px;cursor:move;height:12px;padding:0}.jPicker .Title{font-size:11px!important;font-weight:bold;margin:-2px 0 0 0;padding:10px 0 0 0;text-align:center;width:100%}.jPicker div.Map{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:crosshair;height:260px;margin:0 10px 10px 10px;overflow:hidden;padding:0;position:relative;width:260px}.jPicker div[class="Map"]{height:256px;width:256px}.jPicker div.Bar{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:n-resize;height:260px;margin:12px 10px 0 5px;overflow:hidden;padding:0;position:relative;width:24px}.jPicker div[class="Bar"]{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3,.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4,.jPicker .Bar .Map5,.jPicker .Bar .Map6{background-color:transparent;background-image:none;display:block;left:0;position:absolute;top:0}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3{height:2596px;width:256px}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{height:3896px;width:20px}.jPicker .Bar .Map5,.jPicker .Bar .Map6{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Bar .Map6{background-repeat:no-repeat}.jPicker .Map .Map3,.jPicker .Bar .Map5{background-repeat:repeat}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{background-repeat:repeat-x}.jPicker .Map .Arrow{display:block;position:absolute}.jPicker .Bar .Arrow{display:block;left:0;position:absolute}.jPicker .Preview{font-size:9px;padding:5px 0 0 0;text-align:center}.jPicker .Preview div{border:2px inset #eee;height:62px;margin:0 auto;padding:0;width:62px}.jPicker .Preview div span{border:1px solid #000;display:block;height:30px;margin:0 auto;padding:0;width:60px}.jPicker .Preview .Active{border-bottom-width:0}.jPicker .Preview .Current{border-top-width:0;cursor:pointer}.jPicker input{font-size:13px}.jPicker .Button{text-align:center;padding:0 4px;width:115px}.jPicker .Button input{padding:2px 0;width:100px}.jPicker .Button .Ok{margin:12px 0 5px 0}.jPicker td{margin:0;padding:0}.jPicker td.Radio{margin:0;padding:0;width:31px}.jPicker td.Radio input{margin:0 5px 0 0;padding:0}.jPicker td.Text{font-size:12px!important;height:22px;margin:0;padding:0;text-align:left;width:70px}.jPicker tr.Hex td.Text{width:100px}.jPicker td.Text input{background-color:#fff;border:1px inset #aaa;height:19px;margin:0 0 0 5px;text-align:left;width:30px}.jPicker td[class="Text"] input{height:15px}.jPicker tr.Hex td.Text input.Hex{width:50px}.jPicker tr.Hex td.Text input.AHex{width:20px}.jPicker .Grid{text-align:center;width:114px}.jPicker .Grid span.QuickColor{border:1px inset #aaa;cursor:pointer;display:inline-block;height:15px;line-height:15px;margin:0;padding:0;width:19px}.jPicker .Grid span[class="QuickColor"]{width:17px}
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png b/htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png
new file mode 100755
index 0000000000000000000000000000000000000000..2950daeb877f9e917f841953f29c64266b691fcc
GIT binary patch
literal 2195
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

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/Bars.png b/htdocs/includes/jquery/plugins/jpicker/images/Bars.png
new file mode 100755
index 0000000000000000000000000000000000000000..80eb2bbe76b26159a17b1cc19aca8e39da447e3e
GIT binary patch
literal 382
zcmeAS@N?(olHy`uVBq!ia0y~yU|?im;J4slV_;x7rSXWBfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdzCf~SjPNX4x;w@&jl83?pKbQa(D|Fh7E8;mTb
zNg5AS=gvPWzIC(aTJ>B<wa7_&t5|1NdDs4%6tz<7Q)=acqW@Wrug;{$KmWWwRQCtV
zmM4E#x7zsKTYj#2(bt2knQt0|-1Fvra?_%AR)&{dZf=H`SDBf})ISX+aUaiJThw;=
z=>LDWEsxHZUVHdx{NoexMcK}Q({eH*^y>;IcBUxJ^iVr?(xun?=+95Sr(=>bBOI6*
zT9P`B8gkak`>HWH<V;Idp2@+mM!3}b(C_8CDM}13J%`JmcRpSw#h@UR{r=H}P6mO=
zPYq3Gaxgr+-g&xm(G6>6hc^~A7XCGH>V1iv3<4crzYFiQWDuA%6+#!xwXiRb^AkJi
j!oaaJ_goyS1jFR}$0jqsmb7AEU|{fc^>bP0l+XkKyF#5{

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/Maps.png b/htdocs/includes/jquery/plugins/jpicker/images/Maps.png
new file mode 100755
index 0000000000000000000000000000000000000000..853d38c68e24553c3086438d7ee2ce3f1e97b803
GIT binary patch
literal 78245
zcmeAS@N?(olHy`uVBq!ia0y~yU}Rum;8NjWV_;x7<gt4X0|SF(iEBhjaDG}zd16s2
zgJVj5QmTSyZen_BP-<dIW#P$G8wN&0cTX3`kcwMx_GZt1<K?HeDnso1Z`o(ZnEwRT
zsTj2L%UJMy;jz7N!Q@M?-`v>Mm$ogLAQI$qBQxA`{@$|CRI9n)W-q+0-5T;?Hao+f
zzs<+aUn`cV(ES|qWUK9eTeiNFHu9D0p3eyXf4BOKPE2**&ByU&x!dP;pP2n!=J(I1
zvH#v5pV&V+G46=J#NXL>;$Pd&e7@%VhracFok{Oym+w`Z|G97B`pEMa>rWT=A8-Eq
z@ACYAUtZtO-~a!4{lDke?@ym^|LbD^gLeBr53k?<|MvdBx3AB?uX%1AU;ppt{Qp0%
z&#(WMUe9)a*U^u4clyu&{&7Xl;rL#6ov3d=Fa5N1z2m+9=&`wm(su5zE1rH`Bomw#
z`MHC2dtKCdPwxGH_S(4D*KhulKdtT~L*1vz^AGgb|9O1%(|+5!56$uizVHA4cm4kQ
z@4N5+{q<S?-$VI*|NeCE|Iz(5Dxd#B-JSm1%s)0v+ru*_tXf~L;H-PKg(9EA>qHy-
z-7il{OtTbuogH)dv!%?|7q@=eo?aLEW6jq1zUVc7XSXg7tKaw||Jwhz_h&z?uig{+
z|L7<E!vFjK|K7iT<A3|Vm+fo+{(PHXKf91|J9~lsyW?*e=iFz0kx;Wd`i*!*an*cP
zf#=_%3g#5XHzs$dzg_!2qB?Hl166_J(-&;Lu4AsIQ+rXOCiCyot;^#MCjDG_HU81R
zqs$eX|8=uFNdDh`qy8hqzpwHCzrKF||IhjVXLd9kHQr&{@Vn4HkN<&<T*G90yF07=
zH@p#icF&sc`wqL~lQp`I=2c1DD_7Go-nMSH;A-*1!b$TVM|>69@a3gMd?lZF_qrz^
zx}P$7Oq>62apC{l$s7Mo`5AB1@c&2u{~y0T>oR}X`@Xh6@{g+ah6+yoPzK&a`_&WL
zFE?0l<V-ry&9OvODB=9`>_azy<?)8!4efdolcCAsx}v+t$BS`GOI$Eh$c~qVM~=E{
zzRADt<!Qf?Va08K(F3zT1ha17__~PUo>Rm2`qS@2K1~09SMk8#9rEQI1w9)}@0>Ii
zEM1y-w=iwSgu>&zuW$K2&<wMh^DWp(yhr4U#Cu)2mCJX2WPIHhmAUrMAGy==Kh-^L
zqpm31Hkhw(Sn``o^^eJ;{wfCVSN&BCSA-{=*FCQPd=E6365^S21Y&nb|2_9;fu^Qm
zvv7w%^NgQs+_E;9>}yV%_0B9X-0Jb~q`T=G7}TFIN)*;D%(OlJOZ@b!?DMB*%#W(?
zesP&&|MNDvC2|LDZ*{S0FlP!_#`v<>`^^47OXLpZaVfl7^-kx*U6#ijmMb_8uSm+g
z#%N=|`FU~3)09?*lU}<o{kUE9o%`<`v770d42oM+Up!mv^kZtrX?@X#HIJA7f8l4>
z{jpxFMM?C46T>BehJSkVqgm=J|9`S9=Kv)qS*AC^N8LDQGOw)*Uor8(fm2ia>-=st
zbG!-ffA)4`;?c#|Vm7~9wp_uvGvVAmj@Nx{SFf+B?OgJi=exXV|A9?^bom`te>Asg
zFkjt!q-y%p@8+-lE;n4dwg2xDMds4Ko?Jz{m<k@Bl5N>HJGx`ax>xy!XL7B2xy${K
zbay(Z*d3A6PuD-au78Dd!%yFB_c*z=6t~SY_bTsx{4KgEf9D?!v#%n)KTKI2PS;Go
zE_UpG0E5Z9_`F>gtQda&F4`kf^J`|cMnlnr2h*Eb>|9S+UY}vNe418p-0>BYGLHOs
zX4?5%bKU{>wR_XA+Md4G@zpy)JTCR9vD16O+HR+aDU561$FulrF|L1+{`0SI!}RAX
zT<f)(7I9kt)!faZJKxiAuO&Dm@I9Dw?S8@c^wJH5huay;?5g#;AC_l7-|Hlo^zck^
z#`|)eJ=3=ZJ98Y})qc13_@(IGpS%{Va5wt7Vy<$~z12s5ANlJ3it~bi!|kW;&J1Un
z7l_UM_s{oC{}kZ~@9cDCr>*<HMc}~#kw-e^^<4+5^D5k4R;Xkin0tOw#VYRmMR$)@
zcTL=PxaIVEp;pFC>$@H=O<KU@-&$$;Zno?FqMsY5{`!2W)@!T$rK)-<whTpv+>fr0
z>sRwNJp1(2uJNhmFUgP(?*%}`({DpnmKo=MaUaUMayP$9K=->%(no2<ZqF&K>!Z(#
zWV|n&m7egRHj5)M^tGj&qw5n>j{QlIB~L9b8*kXe@M&*ny+-7}hTr+2zt<)<o?*%;
z{hz;IKkS~;*L(kL4>zoTKK0$cFGf222`-FNCUgDMS;&8PzTi3$4ugMTl^ee8Y<#<Y
zZH0aGwAaf%^juh2@zJ)(=>Rvk*OjyNdT+wI_&K%XH|5yheax@&^tw>p(!>10EYp}4
zWIE_Bo4!8K&LNn==-d3I3~Adt^d__HUo8`+)!P>$>t^qM%I~#pRARuiE5%8*-A69B
zT(z#xjQlIcE}+1enbRM&XC24?Q;a7f<bQe9On<FAPiVnWJ1)i(EM<aqSx2`%U&6Ft
z&cRO$xDE*YQDilk{9|^?*J{@N>B4>&Tg)GwidJm-C^x-vyT`5t3r>HJQd#uM&_gXw
zOY`WYWM!TLX9mR;)0XBx`_ai1&}qMt$K;{-H2Ktf_74~@)O&C`^|DMk>L^v{(Yo(A
z^A67gpyE{ML&YQi)1mSSKR4^`_FT4AXUFm1rdAJ<8j@FZIO?};kE!ZqDM|YCD56Mm
z{^~f!uN+$<;<{hH+<IY|<f5lx8*Q4NRvcztASSmq>c7vu`?o))zxm_*iZ!4-KB`ty
zDd6<K!}9+GURo`b>v;ByznDRIM|0dmdBH#Pm}Gr47EjC5vD$xK<*k>(yYlSsqDkvb
z`iw1EG-KTEtmCXYayQ(P;n26mVp0~Re=|gwOg-(p|K>mW+kKQVKvkhdQq$1mZoTH0
zFXg)T;^m6;4;io*2p!VjU8tu0LsjXhS1?bG=KO@eb)6v}J(DgZKUuqFo;y=k;l78A
zDUYhJ{ODkK950(K``q;70_h4dMP7k=jeh<O|2;0(1~FzF`YrOMOJYk)%s#bQJ?qX#
z{uQjUZIE17|K8H*+KsP5QY{K<r^;qK-B)-zLnw2}r#rDFoY(ei?BBg)-sD4<gX**@
zmus*rxm&cQIQ7QA^b-xeTKkmtG6ih=Dz#+(N)8>>4<hFlX)-KlHc)0;dokf!-r?=+
zysSE>>nAsSe_VH`-;VFWibD&1x(u9n+&B(8@YZR(y}sgy_Q@aiuO2OS{t&6R+m&h2
zGr<fwH>2bEf^{njS;K7f&pWT(Eh^<96rlVsiq~$@O8Y~ME5z;=J)izu!!RTCTV|$P
zGf!B&brj<izwP$Xo#HG1bRT&enAj)O5Snwp;9>M38P%U#=2f|JuQq9Yu;I_r_AirJ
z<~@2>{n6fbnkG;8!{yJr(-@b`&Y$vIsiVswl0oH8&5|bzN}l(AN?=KKUns_OLF~yC
z?hP#VzD#~<4C&nUS6;cZ-v3*3a!)mrY|q>7VxP>Vf0h(+PN>P)a-M7Nx(bdp9`16F
zIjo~@SE`05T>Y%i?s4qit4GX!8~f9qO264Z`(N;-hBK?Yv-Lckv+kO*Cdm4W9`F$=
zSn|&P_q{bA+}GAE%i>?GvLN_m`%M7{?o=7={HPBnneKlQI3rct`sMPkPomxzY`@2I
zGAgMo*mcl-^SAT-#;0pnDot2vfA;KhuLDA9`o;?PmDlbQDcWU!Aeg0n38V4Mwv&hC
zJ(<m-lOrQLG9(l(wfTOJJGkI##A20*zdZ-URqNbW^EqTb4|UOr(iBcr<~QT2Q*yPN
zx+$V>A(LFk-<ebMm;T#g;E=}nVx!T#?J+fy&#NOD^34tja8@`RO}G-Q(U>N4@lU<V
z{dcY6x=#f=Uwa?^+h4$RW5pro)6N+Y73;J7bx%#)<IsG^S)HYTHTDDR(c71HYe?yS
z*MD5O^x6EKzvl@>1l32WF34aDiY)U!Fn!$tDftVpnk6PawC1g_e|LN?+Z}xtkCMkn
zALQ-vXpQR<D7o`5@brDJ`;pW3TdbeCrdqrAdd2)>nj*_DEH_zG>nfAwYVRiKfB91I
zX?N~Y8UF<qtoCXjuOIvuUbwI1GpBsO#EwhM3+^wT&iWy!Zv6uWCtkx%T}e$J(!I(J
zh3Zs(y%9CY`nCAo9?|{Mr<S-YZrBvv`*wR!Rn&=vnu7W|6S|y)OBN<v+52ynQiZTZ
zt9V8lgOZm+=I^!3K5SWgD9*=!esvquRkP=pix@i9W(&F+djD`vNm%cizu}uC-+}J`
ztFJ6jToTxtaP-g7%zKf0tm;>va9_>6fvY;@nZs)41s`jtu=Gr-e_;M6VroO$-Is>C
ztO==XCffO$J!0$zlh}NOD<#YA3SyqrXf9g!RMbUh*Rm3!zdvS$MF*;^niLpO(|z!|
zPVMQZ-?jdpk+J{r^RL%~XvKyX@6%1ca!hQvRU&`<ZN6ar*;Njw&rUzIPV{d^*t~b5
zAKK>V*}qg-sK~!S{onk`dyP$VJFb4e^D}Jay40)2T!&AK%!sXK%G^7JU7+;m)E{z7
zn>Iw${gO*>=C9hgujKvoFG-6fRy<<ZQnNqsNAoO(%NGs>GtIhst>~9g-S<_0O&0cV
z`WGv6fbU)XiC^Y?5`zE4!~?7>8Xg__5LfelDZ^ryc*Aesr+2U?$mZ|(6Si{QF8})h
zEG2>28`p+j39h<R{mXKqU47JLer=TxQy3(9m+jNL)DU_?!InXi?TiQWxex};NBR$b
zB`4qCcRhEx>Yo`;7^9xd6JNdDxgjAVK~pU4V(*N&(ucCs?ic+uUC6Fm7q7F`>CsfT
zT>Gf=?iLJ68;%zJZr-?mCgTJzhuM64_T+uhTCs=qr%mm7CyuJA4b#F4JU9e0c3f1w
z(|BE3wE6}Y`=o^q8ayvJ7^7NkCKf2ZVPw(S_3~48*gUR1Lbn&6FbjFND`ofGi2F|&
zIvm6`Uxd9`&$;Uf>msiPt`)97bdP(Ta|jj*T=ZU4&f&ev-7l|a?x{Ui%D?MNTu$D^
zwxgcMBcn?$Dl_WlJ8|q-9k5Bx!FxyQiv=lMTRz2Iv0+u7+wR65Ut;w)WH;m9yY&Z!
z60Sep{-|90-Sk8Es{C6%_Mdt@kxM~H$z<(*(b?vEn$$Fx$A&L)TOi7o5q497rR(B^
z%@(@5jP&+Z=87f1pV$(#gEviT>7@zt*QYX`_{U)K?Th<-{;xmTtDncKzK~j;pvmrg
zBDJ?+kKHLrml<`Z@AjX1qr)no_;r@pp37h7>;73LTF$X=g8GFMcV~Moa%5^_y;F2k
z^t5b{z^&h@Z|!dA?!EBxb9m3czo9!mi0I^g%Kvz&N_Ts_P(x9_!(-FX6I-Pif6g?L
zPS9jnYp~)eV@WvEIgjhEqAvYK9&IdZ3lyZdDtPK50wwOTYzwLr6pN4e5Xiq^s_2Cu
z%}JFkvo^TJ)Lz*BD@(d6MBh<3O8dS1hHq0_zjHM%S-QRG-<9BkV{>O~9t^KwFwnS@
zr^xrC`u$o7S!FN915eD)zc>8qR>K$AShj~jm+iU}(`1n?HVnQ8)_ymWs0%6kypV_S
z$zGF~T5aA8(?1dO^rLS1-~O3Cp<&&pi!Cupi>~m8$aT8^h&(jcq$ij4!>U8`RX$GV
z<(ze<=CqLXy1mZ=D@1D_3LFTKk>b43^)r@LP_V#v#?k7npDRs&o$(e}*eJ;)5$E*L
zjMa9&e%#6RVnPy3xySxSaVW0c60UNk>wEtfhDE9e9&VYZeq`;I7!y<To5~#(%tvSL
zNM6RacFz9C*Ti32`Y*5*vwy*uQCYY4)B2SzHm(aIN+z>h*7~W#=dk+5>p-R`iv_u6
zmz=nJuPpxlRIqM~g-3PlG`48|^(sHS-FM~gD)o>0AF{9Ri1LS5pVeC!tD|dHMyxq&
zm&ot1`N4tZpLfJDNj_X^mp*s(*0<Y_GU~W2y!?lGZOMYbKa11YP0ly23)a53o#oEv
zPisHj*KBpL)^3P<ZSSgCvGbS5!hX^H+ov>smFx|?E%#7-;}2&!2G6q#uf9L8%xHT3
zUc#Sfxu&R3s|y*t*4Ag{Fm3W`oqc4n*x}RrQzr(rd^oMqu;z7r3sZ;5-3A3=`BkbC
zBL4zTofCMKu}lBayV=j@Cwx3C$6(@By;Wwv8`C)s#;A36p*(Jf{d0{4+@>}>{g$0+
zvzpI=TX@Znxpj7>pN&6>PkpV)m2l+O`zODa_vLD~xJj=6d9O|V!AHiZx%JbJe!o=Z
zHp~Aj2hSyc?U!r&0$(u%X#eVLVVIS4;Tsc+Wy1uaf}loUJBQ6Tq#n9I{@XFNf5#8O
z^`Is=-|KtYPbBjd*J?Cvti8O5|H!X-MH@uiTDGh<687r5$1A?#_q&O8r`GLT_2s(N
zvWb!gqRnb2{Pxy=WU*V!vgi4pUdzbx``S+yuD|^4p*|;LmFR&5NfNy5O7|MVU$)=7
z-xzWK)bH6W^OGO$)~P$DY+&|ng&d=x##9ZF&;mj4^~)GvR_Z>ylEu9zX-SyaffF7x
z<k)$IZ9bh3Vz_zh-<yrqnhe{|T-$uX)@$)$<qnM&p%p*#i<lg><8{jKZ@72Wa_(6h
ziNCi$FkIO(|CwS$>b`*Ke-~|Z-Vh|h%iVLZj$sp@gZJO1dzkzGWOHtrc5m`g$4T-N
z!t8?nRY!;|_%6e!Sg!pg&Hg&W`7=M&Z5VTnCr&%R-i%rE_uq>v#C-nG{m8K8dURsr
z*3ajaIOj4gTEw|3_%Hjp!n_*^6I=b71zztJ)zrLRHSOwr!&UFOxDKqnaN6ejW8Mhs
zPd2OXo!}E$zr_6Ez36-HoXZ$CUc9ura*z6tM|EAUT$c<S+w}VuX|y$D8(LSdb7eBK
zVt3smxH)y^RUVZ`rWHE%TNq!&sU(D*s6N!R;x)guR!i6~y-8A6TJH05n&>;q$=B3(
zKh2M-=zj8fjpY^9y~_f$3o8uwFt1mhFztSRo9Nmf`&IAEVsL*{o2&1z+Ui0OpZ;ft
zsGa}im<lF+l@H?3b@Y4kJ34Hi<{rWFxJ_Rkz0d1+sEl3qCFXTr1-tLUZB7jBFSs>l
zb<CbGSn*cEyJGF<O2fT2e%DyGT&k%qWSDvF{@x}z-4cl~jz04XMIYBj*1ib&;i&L^
z{oeahdopXo0waDKy!K~R&-i%NC^7Ty*1G?VEA1{tf7tauqD3xPD6q&s>a(2d#Z`|c
z|NNh!7ymC;vwg8`Lz-0nv~Yo!j1QhXaz3t7(X{OJx`=mbh8dwBGM{rr{FJ*U&z!mc
zTHk)9wYGcflvy@tv8~-#ch-*COGfVGOa5v$vCKPNFHMhLxcxPKyVrr{llu*{?>j$B
zJz;ya$o+Bc)^!V(Y6z*!PyZUq@3{Gq*O`7lsSCxwyH#&Q{duF=+9ojF!Par(31|Pp
zFC2TGo~rIry!CIj`Q7v?hLZSC3z#?}EB!AlyqKyUwLw_0E+hZn%80V3?-%X-u;9v7
z>3947OuEjx_D^rvo9nN{)j$6@#2mpAH*Mjx9&PP^dM=qFv(`^P<xzeAaqO&@_fH$%
z7vg&M`myv;hx6XwnH4JkZ=dJIbh0u~gj@Hxz9RRf?>hC}?+&~!{vxyJy#1x~i@9dl
zxr<mVy72DH&ZTM%Yt%!&Ee?6UKwsa!{{w@QnC->s2VQ@kF8D8uxBirO!JdgpqW2~C
zG(6MIkYVu1USGgHZ+8BqnzqyLg{qupTvX<Ye!rO4P9|@`(GTwTrHlSodpNG=TX6N#
zZK+vClh#(NvR??{x-jpHu-G?;Kl1`5j;?&4zmy@`>!?VG|Bc@7txipBnh{Kzwx<*;
zxSWLFT?!C*_Cjy9or4Lh>C}cGb^*`VrP{3iCrl46JOA}W{Cc4qu8d!@R-Mq>%lA<3
zBcIm>*X>eD7Iz#xWu8ZV);iYDv178D%jv}*R{dJiw4vp;#?!U$E_Q$2EBJs{G4#9Q
zmOX7@J05GcKE0^LvdQC6*zNUv{Z;drBy>K`eds!4-q9udox2Wk3HC%Wlsa?-J_xqr
z*eCWnf8X+_fg11AnU-$(=ycR5`ly9NQffgKS6AQxVNJulD$dPLjT-vKQ8$biOT6$d
zkuiH>{wX7Q=hYeaD%S0cOn<(AF{{(Pu-L0puj_0U2|IpiHk01{$045<PWvV-+puMB
zt&a8rO^(yq8=M*(WE(VJ%qs0KVDO6nx8Z`f&Q`6H)5IPAvAwrkn{>fTxa#@VELI=>
zge`~j{a;+T{i@>9eO>N(pM;oP5)E0*rL=Y=Hi;X#h_YN;yeGBZKGc!p(WWgrTg8|v
zsu^uwzvIk1?R`O~aGPm(NlEx>z6U3cCvqvQ7E!upAM|Fj#v8+%^{;Drx5>+v-4}VX
z=6BxQ?GvB7ufJk`;8*tk(-ONk{g{^hey;Y5W6n!NZV2CMSbhJks*BmTj86hnHwte0
zca=+Fmv#P$S>;;YKCjlR1XaJN6pAVgFvv|m`aP3RL1W6)YJE>v{oeFS&OpcW5#>ea
z)>Yi+5@q@-kdu4rv*aDm;0x(rKbmkiR*5?J&(bfDJ0VaWm>AyGzK3&Pm}9__1MG7v
z=8OI`>8d!BoFY0u?8f39>(@FdOjzGt{d?L8n+#UlI72~Ow`)J_T@3p}4O+H1cxW>S
z9ba|+^nPVm$1kQu_g0<o(1=;m>KL}L-$wtbz>|%q?ynI2qp|*GtAntJ!~5!}Yx`9n
zEG&ut67k+*agVqx_c^ELc@g)yWjjhckNipF5ZL%((w@s4`yG}Y_{w1N`bO{*Vb7nM
zUFW~DZ27Zy`uXjB`B!;*?8;<$ugzE~UiN=-^{>6fQO$NvQyUns?^9p@o@?8&d(w%G
z-)bg5Dc-~u$8o`C{&dz4Q{1lH6>m1x4VUlbVU_SYzSgP7;OE7Yu9se46zLF?O6hdG
z>GbBQ$^vsaomc<V&&}QV;^CAyhY4q;82mL^JRSTaJsO!+vlUtGRL(RhYxphfFXh|J
zW1;oN@%+LRkHakc6RY@j6|Y`u3OggW_0uf%iIw@!wjOqBkiGLiu95#c6VD#?oU4nk
z#U*~YsLA5RZ4;_+>zvKmMeZU^k8UL?^GbZ<^0<?eE32o=xJ_rv(|gq{v8TB^+8F0e
z?Qglfdn%Ls0*1Cb|2>)H&%Sr(sy-9jW4yN3`@ve1`4h!h4&G`O7m{dox^#DYSJfQ@
z#YdtVO>6A(TR9iWnBTeMviZxr3(=*FaS{ri`)*#X3*OAon5Z}*<+rkp(+azI!LSc3
zI|KJF&;5UO*{2NIs+XU$G&eZ1EL1vk?WfcGU=gRy3tTt-k*eOmXWgFr$?xQEz2<tn
zKKJ+4K3Bt@!%5Gtzddlvu;}#qO{o%VzE?&v^llYD9wy1ueN{cW=jE@j68~35Hhd6S
zz?VJ0@aybr_q1PR?tQl5&%93z$E`b3*bc06ERgtfDv6tkXNuXQ2bH2;%jLfQ?K_?j
z6|AjtVaklum!?6!fk|N}76}yvmhE3?veEUBs}u9v{PnRB6BKf`vHvzwp60*j_*?Z1
zQ_0dhe>Y6n#&S<l^ltK;^Jb5~F)Zc}JLOk=k+*UBntdw`bQ-^1s`L7to14DqX6JPc
zF{kE)CG!KTrZgNq6|LCpeyXy|S@1{K(tHsvM}LhAw+c$cSSR#;H8!;Q67j=LYr{;=
zf~1O^$g;<ly36A=rP`S@HvZCxtx{(1^D3Y3CBb}V*D9AeT((!Xy~{e^{mv>+>O%MZ
z)`V3tEzeoEOleNvXuR>iT+M+FrW4y3xUaHp`O)l9{$S07XqzT)HLFAG<!1AUhltrb
z{0dc>8~oz&&OcI?&nMN*a{5rlZ05w?A=IG4{h&;0lMToD*&S7k(~3UCe4fZ#7^qsr
z%CDfcK(bq2kw4adQQ%W?p}6Ot&pwxmWX$=<vUbtD437m7SHol-u1pHw?=I5*e4X^Y
z?v*xC$E#i4=7~S}$R5Y*81f^%l;xf=_kzCD*B*UpJId3}cX7r&?Nf%E*fxE;_xeO~
znm~_E!?w3!Yj1sC)0K2omz#eHo1#tMtZN^uBOAgF2Yj4!?A`41kvADnUb8pn6A60H
zZ}jBHF)up~=l7d_#htBxQhw^r>G`*cjckI?abJ7Q<t}!TZOLYa;JwWrtN59u>zbJE
z?`b=eW7_?q_|fYL+V?x2E6!y7;MBsw`C{jfnK}$xbasEA<NAbk5C7ZWJf)V~t~G{D
zdebTtcX>j_=JU#O=|K#!dHz%6JO0S^yw`nZ`{vc@h~2I{ReF0TUNdHukeb@CcE<jR
ztQv6=ina>Mb>`0P_XHf2xsCT%U#$wfb~ngG*K&sDeEmR%xgYDJZd3=?2|i@oUlT6+
zV8tPhNv*y|FLr#4^*hl0Gg_u`naP?*D*EMe3T(k~Ez4A_Sog0wnZNda&dfZs(sE6H
zg&ph+dv??)9P`(n?8EWk?DNxY406ruIgB%W9eTYEdU;Hlu)tGF%Go~Z@qq=w6?ZS)
zxmKyP^W%#f>pXfLohLSYmTNc=b3jhXAcozbnT02WZ=2fhl>BYi*Ya=t@~HcIL{5$f
zQ=_At*zy_6Umbt0n{=Ajj3sV1&y%tZqACj_k7ZZLiV3a|s#|1tK#6U&Q9{71T8*!4
z9&8OwU#iv!J>cQ|QI>tLME+^Mh~}47B{!7Vc!S<QRY|B=;qEj$_1lMPy>K&Wfpy{^
zb~J@~t)KX;*+rHiE40Ds=8icH)7?Z$8CMAOKl?q^ilO5JOI+!_42}h&f40=+@BAP4
zSy1xcmk$iLve%w<UA~gpLyMvK{sD(`_NQLVc6Ev4m@tE>W$i0l=LKi27#2sJJEP*l
z5~Cq>-g~7}6Nk0@N_mF*WMP-S{7T=r@C7};<tsbBWM#ZRaOU`%WeXPm`m^FfQ|xB>
zb&MyjaI;i46)cU{zSi!dx<GA4oB5(+FQhzIaKul&W*qVVRSoZ=bwMIr2bXJ3Rx20S
z@MYNqSBoYN&J4j)xkQOdm#Lnwzj7=$@Mi2;^3CaXtFG(Cho8)yncNR7KDGGhh27Wg
z1c=RBe!!-o?NdND=NbXU6TfEfarI8neY8<^%|xw(VOJHNhAPcu@b`4t#4wT9`Pfg!
z9zTcb3eH5K0taW;<nrz<#k#wk9wer;$0><s%w=ye(hd{s`#wwIkIwh)CS0{DC)>jw
zb{{QaKNhv|)P6C~6|$Q{-gG9P@p4$HlW8h{Wp1OX>S+$U?kAh?T~=a=KB5r2PbyJ^
z)5=py>Nw+Cvn%(kC$p4ne=o&!%f?Rd{p#n^8-A>PD1UeFf8~44;dO70e9x10xbifA
z=bNa76U2oqWSTNR_9ioYdFi(HR^8V0xG%MWd<QoF(48(n_2YwSpL#zq<@e_ZUpVpc
zp+G{xrt=ea-`Bq4xUjuL{DLvJz#G9hwTIWWc(OjQ$h}OTROY7U@V4a2t<~~(US3yX
zV|){oFuCV+8oy1^xvsBs56xdD;Lcj>_V;WFUqTZThj87*kjEVX?DsEQ*{NJud;Nm^
z^S4nkE6o3AtlTzJu3=@sp7~wVgE@QDUraj`aj*TGMyY`XSNMm$cN^~U9qcih;m9+u
zk=Y>j-y2Jv#O^0wCpW#@>%RHHg$LpX61J_)-5_8grlhxKYVtL)vegDBI$oy!S@-RK
z@E-2<AKY(0eg4n4yLwH;{mzq5(-$8Xjo7#+^ha_b>zCbEx>~lx)}4B1CwV+uhEZcq
z^D*HbQKr%f4bu{$#brwWFP3vTt=zHXi9!Iwlcm3%-qjvp4zT6zPtK^|(NoSp`rg5e
z*)^%`boT`thW9aHZ*p7Z=P_;3seQ6T^2{DlHj{bng8hef@3R$k@QASPs%c}fDU5N6
zbaCofwwwRkgbR~Ox0_D4E3WzWhmlWVsS3~frK_a2v;+&QtWJ$k6ZvrGbH<Df>5k`L
zS~PSdlrQ1?F7`|8q<E-U*iXGJo0w;P$U5{Ug{$l{!=BII|7_{X?3p3AwPZ#5(&&ei
zpLM#l+7!pEcd}R%en5oPV8W;DJg!q(lOj(kUSd(1pxEG0#$eUr-n(<{hlDnEfs)^f
zt6X&S4nNe{a=zS_O*xfYEb_)DxwH)*;}%a8Y`thJnc=25VdG<c;q|kdZYppnyUdH$
zV0kOs$WfMQ&|v#7x_Z6qot0wtUUJ)RReQdcRAAgMRB`FEWBQr$*ZGkgDYEMAH5tb>
zce5W<c%=2|LgwS8LQPVfH?(-NCY0Q`aZ{ah|EdM<le)wXnonhEd2&Vmw379a1pbxN
zOMeE>YYcp{c<1}IU*c9TtvD^)zsLXd?dUFbA*Ke!l+cGk7m_&&*+13BRRw6MnYX>~
z{J!{MYpBB&PXRu`x|_v5H+g5wRhgpr$H>)zbNc?37Ey`~?qX`9U03g&7S{W6?|CYZ
zkRpSIrcdw=>1swF*C$t*G775}%Qx*bE^zs<c=yk!yy|S{Ad_l?$>KM>8GAl3ofS-M
zmTUBU70I$-nMl;}s#aIF!~AZQ1}-*Ctr|H(S&Zu!N8Ij-o)#^fx42Vt%ejR|PQUsb
zx9Wmb`y^}qNWBHiy9`!Ie9IHx7Vf^_*`Iwr5dvF&DIP3~3zq!NcK*TJXR9Ao?@T<t
zsVpc!r~A3>{iu+8=S-fOhH)$r`MF{*@AR#z$tC^n3!aO8v^(MJ^yF)P<?ITVtqNv`
z1TqR4ul-(Qaldl!BlZ;>k+T~W?sH~vu_uUq{^DoZx#NFhh0R+@hnoC)HI^6O7!KSs
zeo)A;sg9vZ?CvV<3wQ24`zf;Y=|{dS#R<We-*5V3?9|ZlHNTZx&U`{;t--tZQo401
z90FcHRS!4o$P0vNyzu{i_0zAl7ZVp$@*EM$=yK@2A8oi_OsGQB=53Ac^!-zrT8^!=
zJHEEOHA+}xWAT=m@3QyGDSmzOb?d9|YqzBFPyaB<szFl5p*>vStW?X|x+}&REke47
z^e!2$IQqu<nsSB+(@w9Y*O@Z}nlE&`ogG~&t9@tFzjfjQivN`g>kmk07=6;0<uS@M
zi8!{ax<%4w)31lK8d%sb@G#EVQ@gq1=pzB0={Gbdd|dXRYVqNiqDv=UruSb=`f>cT
zobP+**Ia9A@?WGXMr~zkyMFBnchjAQQ_L6Mhdt(*W3&ILp~C{R1S$3ePEC_L-%TPd
z5^gF6sIc^k-9IaEz+2Wzwl<n;NvOPn{q46_IY%~5Yj8+-k+Ja}f0^ons-B7Oies~z
z9~8&_xwdTHim%_ZM5FrS<PKyR6m<zCG<<peh-;5*`GjnZq<!j=Ofw8?94sp`?KT|Z
zSub)!f%UG${;7SJW9roReeW>vzq#_|K@a!1^(Qk8%KA%Q^K#a7vo{Fae#_yO^L+0b
zQ^yhY)2GVdliUY8<B6;c$;W4h9bC?}=ds|7=Y3D!+A@CkuwS8W-gsO%gViohy7=@W
z>vubLuS<z%;P88#`H@vHRdA&+hryo>(;v++le4*WYWGqRp~FsH;`7tjR2-20@a@0z
z7Cr?7g(asBTFW$q-CkeGyP))_X&<Bh`THw`3m#W19mvvmb*?<IOfF8g;g{{niFc<>
ze~@FnPO2p0xRp(l<p0wZ_oevLKQf%W&;O7iNGvYn@w#<Ry<g&5EWV^2H|2Cz?%Q&R
zw>NV8rNXt93>Uf%GS6hWe0oCIj)`m~kE^xow%hP)AHMM8Ui5CM;B3uH-3d<b<o4WZ
zUfs?Rw?}T<hl3^wpFb;o{pu&BFTzxzGS8JME3{lUu{7zEj^+!_0xRAdhYo77UOTa|
zXX)_+NA68aaR1S*5&4|6(rsmI7~`2Wq8+<F-1J<f>w3|PnQb$}y(bSp+&QqKpi-{K
zjVn#G$^BAdj>yhx`M|@9td<Aj*T^`yHB|3yk#wq?V#HC%Abj_q=6Tmm3>PEzA7pIl
z>*SdjqGQX}ac~X$gQG9*ZFR9=G=H9d^oFFWqT1^%73}L3m#g(;@-1jr=6LdP_IlR7
z*{2!LWPC4eVVaTi)cBfJZO#$qh64*O@O`&Rz8IToR`IW3#stmDb0rt;+r;!fC-cB6
z)vXsKj#l{YD!BIX#>Y8UzqGTSR<Eg3>El0kQt^?VGmq8EO)t3;kNtGie8JhqInR6j
zGU>Hkj=DZG-m<dnVcB5B=GMl(=kb)!jelb0^7nlE`d;5Qwz|LUr~BH<^M!%=3cu!v
zZer15)3r;|Sa#n#u}6bb`_Bvqz4vx0pLst1F<>t+W1Zl0cTN+tM+;-HZNq_i|0E6V
zD;A%M`uV3}lELG8*PUke(yuz*FHU>*@LOuwpZgup7jN7rb-w!f$s)$(pBSP-t9TF2
z%lumH%-~T{dh;;z2bPi>N5l8+UMb_C_Afs~rYxP&NNjhgND1rtM>&cPoB0whob9h-
zmuwA;61yW{RnS$p;NTDU;2dYYe`l;1QrqUIG3+_(kSFU960j(2zq#oO4UZFA?aIz=
z;aUu#C)h7FtXq&i)kBFT<0C_!@BXxt(m(&?%n%6Giu*42!OmWLj<FV_?m@mUIz7++
zU!L7M>Dq6ZsSWIf40jLRlYGAXo8XpjzpbYUC|ne~efqh1QfaZilfip=t9x1@T<_RF
z+$cYP+cCS|K6U%vb;rWQ9B$s2+Vywtow{lA99J1lPBpv#`Y(H)(IKJFVM8Xzmm@!;
ztPCGnX2d7-Prq<O_NCU5GkFf(n>VniNqu(L-S=40M7Q!Z^9Gyt6`{*&8lP|~y{<U&
zD?4*{pnqcjhD3kX3r9aSUzFH#`0e|X5)n&MN`y8{m33%8Y8G3*zP<74lg)|`1UMO$
z*6kACUd_F4<JlWLqKl5Z#r~HQzyJD-NX+}^@7N6-PjpY(bfS$jaOp&$AAC<2RLS-F
zG_JImQ*5@j_?yIPy#vBG60Scm(41lEwtL&O1UH*DId7X)0-NqRwudtsPdy>R$8hWI
zo@mXz3%{%AR(CTqaG2c8NoDL%;wito@r3d6=L&o4v$_0_s#cUTO%s1Kv8VTsP4)hb
z@dv*8O;g`9uc57c;WEbN7R9QScDiEaB2AI(6Ds<D?F%ko5G>oe+0A+u+m}7<X=(}&
z*R^*XO2`m+DzK-j`JRaa%da2lx^^WgLbK!?y5IKC+5PpO+-W&Z=0zWWKXq<c&@lZ-
z!bPDuA|isXraa2%`ETTT&h7lc4I8Sv4!w>LQT&+kW5QDorP~$CO|lY9Qnu-?A5tH^
z^NF!rrL!sT|LJE;DxwY-lm5D`+t$tQ!I2Z3vAIimLg<NYBA;2#p1v6^Ca*Nd!C|F|
z=iW0Z3cd}z<~D0QqRv`JU9MGXww2z?IZL!#_hGK)l6mg$O&-mZX;6Qmw^Mv2?~B6w
z)^V#_Hl&9qwXk0(`W%(z!|A$4BJT9(_HXJg&zPe=+Wb9d!n#V-B~tUe+dg?EUwehP
z)){?&qt~DOaj)y*)HudxZ|s-yMwZ<FpKaNYuqR&XX48k)j(!W=15NH<e#F?cZuiM*
zma4y7Ss0XL9IqX6=bHcI^C9MdsiDW1Kdi|r*|%W2)R`)NTg4+6_5KISIH=t_U&Oj{
zhrNW*3}!DOFQ+*F>@yMD3$}MPH7$ux`Oxul)pn0VajJ<&f5vGUNcBsv+vNU?SKi+H
z!uKGdL{<jB)Oh9fa#rpStah>NJnU>R)yv6qhvvq>hiv<U_?4E#8>I7Zwr%Q|^r5Y1
zOB$P7%him<VqJfg3(NBlp6{`#|0a{jr%>S2y|e$>&$EY=&P!FZ$ZzRR*-{)~xJNT(
z+Sis{W&2H?FKj(#^nLx2+rE7YA1-@!t}?Wbbk|&eIB?6-jq(nmeqr@>YejZkoTnrF
zd-YewE`ucHcKK6JqfMC|?H2SipJ?NpSYa=v#bd(T*~YSLyTA&yHMeG|+AwEaeZ#KC
zl&G{v;wLAs>h;`@(q0!&@1JeTVY_l~SjUFr%2N0C%wd)YVYvIQ?po=2j-B7{9ZdG=
zKNuv&t0*aS@8b9OUoW4CSYRs8_+{m(hZTF>UsxY%xXW6Vw!dMsRs+XM3!NvP+HWIo
z_*iZdb#qYu*Jj&V)&4ouNl3Kp^z06f7?+CZQ%c$o0$U4@9na%h;3yT<GB48DVAE=Y
zRSI(gpURa7>}iwJ?RS)JS@pEDcZc~?&o?<cXCIOkEb}hRV0y0EA$Rn`;XmnX%ha3=
zyCv>SW+^ddcI3{VyI7LV<b>_(7)7SQDbp7@+Zom!5Mt|%=;7#dRj6WhbyJ*R<#6PY
zwbVQglS@5n_DX4Y+&vt=Mrgh{n0NB*w$wHzM_0|(dy6@?dkb(aeLSh^SX}dC&jUxo
z9)9TA-*=1Y`lIp+7GKvzHJlGw-^i|xtjRcIz)`^~IcZ(cxi-`5H>%bv``=*hm{7a+
zv)hS-(`Mgy=IPt@fB7A514l-eng2W_Cg_R13KR?DxFGap#UYL~wy0*0=t#zbZ^AAy
zH5^q6XSsH-*pOY#W^**5g?HiHw#_Y8LTWJ^6+3P|I9&XE?c?T^2R&pRf)i8X-izdQ
z>{{Pj++;4RX;G;0L@>psfs;$6#Ap2mckNF`UP@By-E~VB%?<Z3O!?Vx;<>*jOP3k9
zr-`Vh?k54J#mAZo>rZt_Z!~pbWn^k~o_I8um-TB!<GlG&ftu{)6)qVMW^@!W7f9tt
z*~%*0G%gj1I_`EZ^&>;ClbqyZ_t|wB=OdZQW!ME&{v5jJlz+0ITRg+?bK|r)hF(9H
zTZ`m2{+Rcv&`3CuUn%+IcZ+4B$JM2}N@T^qa_qVGTvoE_uEc*$nFh5ZH`5dalMEt?
z?tIdVl5^g|sll>Vn&ooy%&=6!hq=7=jba-mHm;InooMUk{X2Em#E2%TkE`}<Sori=
zf7$=Ju0Osm<E|EQaEmzHQ?C~DqT^|_jkC*%t*?8u7I&n6Kh%He1lJapnBaTsu3zM^
zoW-RS^;NubzWSP*$L8#1x*cT4xzn?nE&VgYA<bQUtPjGTskT@>VXfd=yfnh*;hPna
zCj^=W6yLHP>Pj=d!jLcM$DF3dp8oi&+@b<E`~My@KfOr4W_ej9Az($ff`Uzw?wiPz
zM?V@K>|&X}J%FjzO)*^LPvd;G#^sThc|0Xl{yM41-*9!h*I~>dRC^()NGemUyLZlq
zb0R<1G;Qc=U^*hRO=Rxj<P?sBmMRJTq5K@i5lpY1oLj6C8*x%)nRs<eT*eRghU|_4
z_K6ne-X~nwALNyc@;aG(nR#Pfw)H!`{*DjY#~X_8tZRvPnRk8xgHfVm*ox}C4L%%#
ze(u{m4&=x;3pRdT#bw+wPqjtRZU56tZpXXab;{j3j8zic^7`idsy1OS2xB!6;o5Rf
z{Em)^$_Y=t1>TM>mve7^x%1|E)W^#FcXcj5*8j8UWh!9FGuie&OrbHy^~NQ4R?8WW
zE<3H5;&3XWD5NpPx#4D$UAIX0l#gWvOqbhQ{lXbGdpKx6P2pJa>QmY_DSw6Es~!uV
zDGFZT?s<U4ar(*9?~@wNo(;NJy`?O1?#hcR4s}$OR!?luRJx%2$7J5o4?c0;Olk9G
zPxO?~l;S$_SF!c-%&9Ll1JBK2PitXVFhxiEO;x#9{uA420x88`BOlraOMQ5%=y0Ve
zeL1h|YtE*^x*xW@r|-%9W&NgiOisw)jJyl$K6MrjF0CGpqA4s}JdXH03^-J^T*S@j
zh()OHfexk@H!t5`>cZqCeYbQ*t$+E{c@Out+_~hk*KzwKjv|iW*4?J3&Un90-O)SI
zB$1!f!bxV|tPGndMw9L0=~jHKx>f!W0)_95BO7`qn62ITXjQcIx<yR$gE$;pFMhF7
zT6wtR(n+r5{@wQ<8>X0lpHpcZaFL_+g~5cB(;IriFFa;VdHmZ$%HYwp?R{q_B&?N)
z3*IH!C?6&<F(l?lZ*LoSp!nX6vkl&crR!8&3zaW?yZHLmxvU#n!lPSmb~+0Ow@lPJ
z#BrI2QTv5p)<vnW&opv4&h6p%ITX16^qDD7j;JiX@_Uh&KMzl1*tKQqzTzvMahn<h
zUaMF#fBrPxhJ!o@=IAt(*Qh+_FBLx0BQCJ@MdGFcm1KiWE2Q;`Pwe&I@HVmg-sHY+
zjS~}-=5(~aJE`!cg)uVwuCc?HE4vxlMIBDf^*{DivsK`v#GBCO2_YO>^Dk(w@fEjU
z9kQwLx5vENv{QP@S1t-9zF)R*dN6~ooPt7$qW(g6#S)IfhzfOW7Vn10Ym34ad$?-W
zZ=J9D!8W#DiP>36tcJhQPRrV034@X0f4)SA@`wo^xXvwOIV9tnygEze>kLlARmtB3
z-mLiW{mF0RQwrK2Y~TG4jBE~M6)5{z&c%Ev&f%JNgIl1#0e3-%lLyC#3G5G!{&wg1
z){$+O^fq0yZ}ZOoha(%7oSv`yYokri3T}DJYck6oe%0nMII0=6YU6>RZo5OtKEG_&
z@+^+&dRltXmUS&pZ<6fQOsh$e?<FHH1<2?wyPx!1dF6S5%lo6n6tX`q?ph=$W#Y_u
zdKUX$j?MGu72hj(rWo0ha`gM|N`c9B<&{lxehR<p-oHP$&iZoJFJn{Q<;sld0xg@J
zn&<6T+_CY*=AsMXi56NNhh?0D621osysE6`*cCT@&&GZ2Qw~lwV~7o8Tq512@>|%2
zb=yy=BiroxwYyg|?2B?#QTtZLS?{lwFv+yN|HF?-k}vO8@G5_-eza4p-QX&BL*tdi
z{0xJ@8*y(LeX9M}ufD(OgnQKQj@9c!zgpUgF%~_&z|bqQb}573TTYeTT)kSYXLim?
zSuA+``v=zL0RnpuNfz9nJ^!lbv8lE#{})#>qz5tB#yL!%^dgjr_x;M{4>H;u-oIl!
z6Cly7$lzeWYoYY#V1QBXU;DjG4V9UP<W|cEn(bBIzxhp_N?d;%pC+qG#@X4=xp#be
z`F-o99OXmnZL4Dbo>-i2^D|YH;Yd_oWz)?k>}oAcl5O=Z_8zSadlx#N&QjAYJ2C6~
zu1|42R>pn#oVR(x?2YExX4;g8bFC4`2w+@c%j~wdVa4rx8;)GFREXAKsd5ZB#&xzR
ze)s;(FA}D_$e!hNY1!vD0&b4a?+Y5OOJT7-C92}g@+N?1<)a14HVtQ%E$lgNa9H?-
zDj(ycyM4iO4#%|0cl|l65`ADdN2QW3|ANI@`l=@c!}lEjwExng`GzbWt&EXJFFXuA
z6Tl?5Qv9RYuF4ih)rs3?EIuR~pcMPOD@Cj-=2v9Py&j)~fu|mMyL+8`d)d5^N9JzY
zoyU@A6ojMaIbObXK1678%yT_PnLr0grb4yK>)9{AYw*9T{Blm}kCC=|KF7hF?D?wi
zH@%nEHT%@DM{ZqGM1=a$GwxbbKm4xNsm=HPwBkcr(*MORe>_+x@G&dgbT3Hab=)qL
zp>yqpWx=9HH@kISf8yx-ar?$m_G-@mZ>Gi0Q!iEtFId7f!&F5@=Y+LZqo&iW6IwO1
z_J7~>YICdo<kSBHS{>N682a-yl+U}0IH&La<h-YKHP<J(u)XH%?3{kYUwr;whwH#9
z&H{50R`!OJoy~Eo348UmFBl){@^HNJ!ZMxv+pl?h?|ju*XmMHk#^i_JMUKT)3-Enq
zu;M%@@^gA1kD#i+7l%!*ZhMcXw3hI@ZfO5Bqtxdz(|g4i;j918U&PS#<~NVy{KSv^
z4>{8~|2lF#=UC_)`6zP!-sw~4E52AR$2V*1JLWitunXxEn)H<gs#}YvZM8q}h+p=z
zmg9ZzAL-}SEmpH{@IEN;#O!Ix-sVKr3zDDPMGyNebnd@&^R#dKUKZQSHp%*8^=a0H
zz4kjNF=a%RY%te5!@*j0sIjBKea25g#`mFOn{ApRui5BcIazFae!Xoz=ars?OWn2F
z`WG;yeP*e)%@=AkxWJaXAoNz;^ZS=)y)XOM*7`n3$X&Db@}vgN@3uvAUSIlN!Kfd=
z6uFMkO7!%Z=Rt?IeE*pq@p;A9IS=oh7x{PZdXsSLtcQ)|ccx2P|DPmVkzT>5AIv0~
z*eTR$t=+Vlqh!13^}b%St9x|o=d%|qVKOimV72MVJe0Tdr?nRQjFZYK_STOW_c%z(
zC_S+){lPr#{%@Izt&c2R7!Np{bx_y5q5MYj;Jk%0K?~j75?NU8d}a6+ARznhm!8wT
z;MVQ#QTn%YzFgr_P<n9CvcWdSi9g)nv~&ko`1I!n&IcTG%x-x*3S{3c{mXpFrlimI
z(f4T|=B-RTp~Gr$n%kmV$Rpp+%Vxe{-x=H8&t*kF9Qf*{{^?wh5QDJU{W*a@;`hl`
zsIwZR&I$6DEIj?zpX;lRtAXzh_DBEo9N*X+=lO1{`osACXF-qsSquNZoc~YL%p}ll
zvY(|{!Mb<fzwa^oY`giK>FeU}HUGRS`u2%c#<qAapRoOtdi^K$U=fFBKTZ^`4`ND>
z$oc;H`2Oct57|f89pZY>|Nlone>g*W08@2j)0=GfO6_!!M~e+^M(^ks`FFF(vX{9+
zF#UqJ6yM}_Ir|AV>4p1NytHxg|FbXoPww7p&U;FazG*DE`>yAow`GI<uf_I<lugg|
z9iMwn+9J5;msj_`>*;eX=hZKiS<<Kf|8f1F{^^<xn?JIp$Ml2?9MRtS#`xOB)sKG0
ziX5o_|NejNE~W}q2ID=g;d%%96<Wd%>lL3_{pjc3lnsBj|NnMBZWTk^6V5ksW-)<*
zF@YQUi=L;i-)p<~)tTyjtlvSqG5mjP{QtWD-}P9VhP}yiHn%VvuY0;?-m#gs3nK5I
z)|viq>gyT}mLK~6pYEUI#<<6*Zr9YK#|2+4PW~A#T<Og9fdBso{*OH3MQTD%JGMLy
z?EZUoy?kk(_Jrbe;eYG79`OHr!0)%5;Ty~A9#by&sD0YC=VlhaO;`NbCVJrg|9|h_
zuVXm3j3sX6!~P(Nbem^qK7PBY^E2>MSl#>Yb?*gO4T}2qGTQGJwG8q&|En^5%Om%-
z-zOH|$pr1}vHQ6A&%5{k-X$J6;{K5(?rqe(tH0*SPQLv~o9jV&-Scw3a0d70E#Ir-
z_Ij*;;1uusqQCEMylVK<?e)L6$1h@VJ70QD|I5`shp#?*Y8>@=v(dNR8V&b<t-Zf%
z%CTLO)C<MVKh}A8!TsQ0p4a8qD)WRs)ZOX#|D&=0=j{DIgZLlt%=)rs$rH)gC;bKI
z(+h5&SF(R<UiaACZy`h4+|OQ$N8KM8t$S28-?8AliuKd$^?$E_^fCV=_@gy^&-cYz
z>-tmHp4ZTSdcE%L^$*JTZn%HaTPO6WMy1jA_O08m_n32nHae)+O^N?|HQshDdx6`f
zC(4zg@(=%}_nuy_B>XhI?rHc3E%Tao>Fd3*`P=`@nP1$_@cnUJ%`<@q)9Zgu_g^0x
z|FJUNw|L&gUGWF4;&a!^e64&sz3%1o53d?zzU~Y!l3p)xIqoX&e~;I@|2)$F_o$ua
zwekm{@a=K(t^)R-r1ps(Sj&*d`eCN%0sTLR^dGphec-wN>7v*xcd<R^w}qWP|NqbV
z`m71(OJe7z9;|npbG|BeJJSx3CcDi{KX%Ulz4Q0!9WS=dds>wjv#xsWcBUQTzj{xn
zhcVdy-fZ7(t}*|++`HF*?tBl}SM#&UyyJWAz3-nb-+vBc0JCO_9ytH!%=rg@Q)})W
z@4fi^*o!cR?~nEw{yM|;Ao~8VYkL{qwHDO-&;L@W-B6u)_x|PdFoyd!c^mQ)cgk;P
z+5yJ%{TTPGZIo{NU1)E&l4%DoXiq9g4wUA(!29wFwL!ZK-yK&EWXM-}aK85QZPtH(
zzoawN@m&AGZocC3|5%p5ACeU{pa09pGF|yw#`N${eaE-c&#ND_{)>HFDC@Gm`Q>h=
z9fxLR&G|02+%Ld(ZB_HFoj&WCUzFM~+(=)0=qk%MkL|C5IbO%f9T3%dwSwuz-h0j0
zU&(F%Fe}wkI^@TP1#){_*hLR~T<}cffZX-nlbLQL3(9PE$qz_Zy0u!NN|b4d=z(m<
zUd@JUmF@yQ3Nn$a7stQh;0gBZmA<lCNh*ZlIm6bq3>!WdZ|c%(C{W>^aCM{YHRk0y
zSEa8+E_k$4AXlTIxbc-XgOAdzz2djqz1CiRGhMWG<JN*_T>p8q_*d9A?KfW3$7CVD
zVjELOo!_&nVvV+IS<kp%?R;|0Nh*Gw`HIPRSBEQSX*Ae6v?d0WvNp^;@A_V`=s$DK
z)e}p5oF<6>lfDuc;NO+e#3I8g+V0ppxnbU-gGUT+^skFqEzlyuu3x#S@mI})Lxv0H
zu>`s@&Jn*7#rU9Q|Jv8*7tJ;ao7sQj(CnYq+f3{QS6Ikj5muJ^z>wBp!G5Jiw&80z
z%SD}Ao`<BY?XK<qQ>*iz_tm`x`y?(ph#g=S<!3dW$9mvFwr#g+hiL5Ti`&1}yu2Cx
zE`FZ*3S)<(EgRAUUb}>7G!!@A3g_yP-Jg8?y{x3R$D!FjYwsWDeZ?{NmsiQ}OAXH%
zrfN6bJAZ_8|NDTgR=<AB{KyX|XZRZ6^8GINhp2$!sSRSQlvk)<$X~i<A@jY7(YMdv
zy1!r^=fyoq4i@Yy_R27@3HB+>-1*+~m=;$)%d^VtFKnT;?+$ew+Q7cSe8u9W2O_WR
zef{ZOCi@|)Umq76JbLH-v$=U!vgw0v0aY#rKmIHoZh@aVJbT1;=CiL)UF*izUla3X
z)8YwFraj|*r4!)amXTzh;P&G?<JR?j3&cYkcC>TlCbKdde2@EA_vSzED|W{#D_Q2S
zzOxB<zK!K@r@ggNm~q{__l3<?)=zFpUUX4?@Y?aN2!q^*&n$0W_wBe^JMC7A!Fujj
zHwEWj5&j?%aGa}g(+a*i=8MlvH|sr*IIqC1b!Wjm;fs!Z4<Z7JcQYDx7Kt4_W*B!$
zDnWi1YgzPeaaPfD+^;+Za<4GX;l5JizCcIw=H&F5Q#QTxTy^I3hIfow`{Y7w<X5OW
zmjuZkFkEmhn`4rrz@!M4?`yZrdmYGQyWz?7Op%Zsj<)uT8qYdBXWY78#3DMJ^Fp|w
z<%NBGRtwMG`?TZiuOkcmmVEbb$=Ia+Alvb+Kl8h-+{r@mrq$d>H*UGA&M0cHvdB~D
z!`21oZt`->{XW&jA_^3HF*ou9(wnP_T!eWY;}}!Q%oEry3T{ysU)y`2a?ZhD4hs%h
zI@mHUIykRk@#<o}6+3ktmT{i+_&rtj*7dD=*-y%jTfF9H(%Q#&WwN5xLiGoQ3;Il1
zWnU)WxL7G@`2X6)(`TF}#V;~nVY^_S#Kq-I7RoF3syy)MzFH@;I@vAiMl$=HVqH)g
zeRAJZKz0uI2K5ye*BzMol52v4Nt4!rFFm2>D_SS+6bt;2ACQ<~@xoJ3)`MA&|5Zfv
zhilK%1MaOXcYRi5^P(@CyRLbc`{fJFg1*~W-?J9*t=M_9VeR?1vir6P$D3O1TesBv
z`5Cr93&2@Q;3A*UhIEe?G6BDrF}vI4U)z(~Q1W@!HTSL8a*uS*vX}kQ+}L%z@z!tK
zcP$x<Rd4Kc=$*>sel5r4=`;4V{G}WEYHGfiskN*zU-7%CO3X#L*)fhkYn^~b(YbrS
zXILCbd(thp^J|@JLG!Oh0benuy<%7XwJ9iHzm}P~Wzp7q!RL3at)2Fcok=u~{Z+RB
z?-^DL{uQ6AnI5(Lesdz?ZK>w^`UgvPR|>B9@lqgn3FCRzSK@mvY`-YHuI}FP<IJM^
zn?u$wmc1{^5cl|g&%deef21$JF<&vSCx-dz>ou1i+cXH9Zunag_V3k#N2wR)+!3v)
z4>&G*;Kg4V8KxL#&pQkDF<q=Y#rRNb!MC$)GOF6fq7o+;ZJpO&Yny3Xt$A<3K7oq~
zst+t3&R%Eii97G$>(aeJF15fte}DbVKE0>XArb<!Pj;|vVtCG2x<;tr$t`QIrO}Ju
zxO3?(=Fa%<bwK*cO_PHMJIbyx?qR#KZ!d!}*P3V!=jydi>~jJol*N+X1?_d5yHi&}
zh{?Vw!v|Eb?YrAx`?{Fv&_%Xw7yC~-*re~hx8NLG=`pn<f-VbZv)Hh&*x9BqGxwCS
zStPU1%tXey0`B7H?<}oq-gP`-!s9B&9v(JJxhwmoB?$bu^D{SWS5<h=x2T!Vf9>ZA
z`D3zRA6KA9CBt*3t?M;2{O>!-#IL_O<!et~c5&3Ly+R>BCV*09pH;(Nhq)73Pb|7u
zym#{L>tFR6&a6FWoUqy9sPvU$g;_5+cbKopJ#gHL$#vbv<)Xh5KF_+x_gZ(w_p?kr
zO<eQEu1vIKuvVD$g5yh7z;hqAtc4a`?gpuMi+^!k`TY35^c7jhTGK_1Rt<8eckr($
zPG_##-|rhO!xg^u{`Wmk?G*QGtSGQqq3&LiV0_`@f^WqPkzdplY>kc=Jqh}58nSr7
zqin~cpBsNAxv;l4%W-F|5wU105P8|i_+}y~-g@tF`NVEFc08+dwx9b|rvPsl(>&%Y
ze^L~D?97|q@!ebXbxyf=@wK-X7aVG5|GK1uZwX^Rd#Mfg1t-(46o#i^$F!=VJe;hr
zC&+SY)p3CePX*ozIZz=!BVeyE%f9Oosdn4GZ+qsts=A5mcO%zx=C3LpWjyS)vMZ8h
z8w(yhZ@jzOP4DZE<E{=zUpG`4EE0}tl4XCjjN!u{`<EKOjsMTt{3S2IG~j&A%oxTP
z<}0_Ee+bAi+*>e@A+TX)DT8}8gE@OaA|FFu!1?BkB&!dv9rtc#ILUH)>n4Wz%vaV}
zyy?kEGQRNIaqnvetGt!@XF-WWRDF?+;6)er1=pLa!kO6eQ~SQ|cf8AeMOg8cp{&JX
zmS;^>?^!uycI(%h?y`N#_BEx0?;Yy_XUDze%<n!_=UJX(lduPexRd6G!UgyKGAQgj
z{i`DSDzjEiR)Bv)#wK|Owktp1UAZf$Q6c^L+6UfOIiP?^cUO?8S<8QAw|c_ywQtim
z=LOg^EShV}_)&Giz1YUd_1_)qnysX-2rJLZ;r<sD@O~!)=Z|MnYo)K;TriL2VqegM
z>y1_ZY+U!Q{kXN)(RP*MiEhE#k0}deR(#JnaO`vBjNdO-@pEat;eW*`c(>B*K}^8=
zmj{@)TTb8nuVKL>!v$%9w<RymUCw--)ijLj52yRh_vV~0*h={Wl$YCcTy&5<ps~V$
z_ezYS09*gbMY1k;Pe-`=&uz72{{APm+A!eZ*9G$!F1kq-u&uD*y;9>W;8Vw@_O9F@
z=I!4blG`oQZ^p@l*zm7dJl%}#@SV+XIbVt2VSX9cYHFFf_xMw}&pRAzMOO(6yuHEw
z!75<?gPYgB^!?TL-@uk1U~jibcvh1f`>Wkd2eSXn-Wc}%pLw<B-34)c7d^Qi%n1F(
zs=uTty<)ZdopVdy+~9r1H}9Y*!%<n013Lc8CvUj-IB4C=DfbqfEBjddT<WB&EO*v?
zrWuZ5Wltiv%o3f!aX0(=2f+o8mNS*QeM|R~Jy7X*_B!L4UEBCtqElZh%UeIbc6{0k
z!3AbpUa>QLW$9r1#x#fh%0@4T83ppz?W^||yqE6V2g&Cg7tfg_@UM7$<Ya{Vf{T~F
zrfe+TQt5l-uk>B^4e{;^q^~Fo9Q`ZcTf!m*YLUIY&1+G;`sxzLZ8P=txj)JrE(Jwx
zoJ*p;i}2*eIQ~}=-UcsX=FgLwcV{<~mEyhQU-vuOGF=f@p7n;~OH{z;$&E@KY46k<
z^S0F9T_dMmJp1OI1?SklF6mHnZ{8~gDz5hO-e8knm-;-SuPm}zVN3CwE1;H1NDsTc
z`HEU!$ITsC_2pkYmn?ph{yp;UcK+AkMA(zDLH>YFKqAML7%>KQ1-k`Fn`=Z%4%{x@
z{TZZxwZPHJj<N|2$_pL|tSDAverv0_Vsmxq`!!P^v)#J0;9VexNfD>8z}pPYZ&m@%
z&#@ip-0wdx*)n_5)sLGQ^8@tTUL1M2pt|AKYsQ`$?#CU=q;9-3Ec-a)IPWWV2a}7U
zKSUR#ZD&qDHtGC~%{&IS$)bCg%!{74T_-=lo?{Vn<^jQg-y+WSvJTu|HFmL|*>K><
z(_V)Oi&y0ZxI5ZvE@EzWT*UA#<MKQ!hW9qQA=Lu&=WKe{xP|rYADsiduioe!@NxP5
znjx*JYj@);ZI&*DxjW}`$Q=~>HuJKZo<8%z8=Lkz&W+_T5e{sSs}NYnlvVF6Fry*n
zQbOvFRg%+-b<#_le>n>HPHHf|5^TR>Hq!y-x_L_)-^SS=pZ0(^i{%Qpg4IsV7yGnJ
z>iiGL?r#-K+{^Ehyzzx4sE~gwz?;Gt$C_2!x9{x%Tb2MZ*NpX{GuGJ0Ki(?Gs8ypC
z5Z{xr3Dk5twuwP9ELCszp}20d^)EZ$_B~#EjzOzV15`XLQoiuo@$GEh8?%cg&usnj
zW!(+?iAI;xWLdRpDgxp=GSZzVTyMA)&T(bex{If}PDWpM&sy{Aly+V~Kf~809c5P-
z_wZfW7xdu7^S&!#OiO~VDYs7ByWQ-#-Q5M}7{0o6u>E43!+ynbH{<u)VWw9OR(&a-
zu_+DObhEzI^q%*X58s0C(lZ*$Qto?w`M%Sst|k0KqeE-5L#^PVgJ&Jwo3i$+?-OSb
ze&HrHyQCz#gKy)@y*>A$=WW)p7hEy<aKmK9Su=P_SXLO@Hb}~@wh2*BV|3G7S-Sf7
zr>o{G#NAD1vfhxsk|QOc{>OIl;YUxtl?Ga*J4}e41Z~?LoY!!?>DGNQo7?Mby0x}k
z*D7(Ez4u9N&oywuZOYgn^g#yHvc0tH-<d0|vQanE=Sepz9M8DBK<=)<69$*&+=J&C
zv+~Rm(qe9&=uvH0H|6UIhGi!{KUVq5n<aeZwX)R&HXFGs`(7SU-mJsEOh4_`^~48{
z_j>0Yw5+%Kz?-GNLEYKprtpWY3!Z5)ZWb~s{#VqnA#d)k(n#xd7o|gFcD&72lsW+_
z9xON|e$IKJ@!4k4%4en%`%lOGN?HGvtyDe0zbOM8iD$1fCVcoKv1hyN>afkzjf!?Z
zKK*TS1K027Ur8?377f=Mt*!}XOiOutXKz-2bi-khL#&Rrk{j5Stu6??sR-ErKs%s5
z@%OG`j-Tx8qV}eX&fnh8wqkk^!}UoKdoJvkzPR)MI&cs8#H?GVBWknOKVmCoS1px2
zTEA9+;hn$(wy$?O4&`wr`13!|su8`T@__f%PtOC|ja6$+6z*gmkiK$RnJb*>YgDTP
zr^S1x1;UM7#~Z4qIV}LG2zuaWvDu(*UC;w&hogTTZG$yGOm*0MEp5S*=uPoOWe?B9
zt}<U?e7t$TK;RCc71wX^*;I7R^Ul*<@^NWZvlY`TZName4aH4WYugl7hMc)8@MLlG
zuPm3u87wunE3Rj8Ui-LBY>w@A)Ba7n9OrVrii~QC<-C$@%KG-g^77yd{hY66&Tfk1
zypp|@^?i#;wI@S$)IaGfdmU>_qd$OLcThn#|8=8z_36K-KeK&R=40C_wBouH?={B9
zfr}45yR}yO3OB@ShaIhdUcGn!`GI;+sk@n<eJ@BM|Gkgf1Yg)4ulUf<_-f{{=6KF4
z`>YszKwZhXLDyz_cRS6F-)_DlF<^bKMhxc_8}<ha-^ETZ_qP_fcCr6^-oqUezOt2?
zJ<xX%S;qqELplmGuXlZS`=IvW)oylrRW}1Yio8Fwm5QxUcLu45mvzuz#ZXw!b?cZ`
z@vO+{`{#e%@Ay}t<Iq%xxwnOQ)c?IX5pniM<-X&*uZ{||YB%oEWUzVgob%Ro*}~Po
zb+$@h=~mzhXDVGIpwazI;gfNKbm6XZ$<y-!{ChyIyOZbOvuMuuxx0d|+4hCAo%)&m
zovqYtg}P&j(aY`nD}MGlL<VhAKX0U&dUtZjO?%S{P)JNx<SKr}(8pLB=RAR@X~Geu
z9r;VY#+;XW*QmPRCqJOt!B%rofoi~Sug1-#QyFSSCo;c%y+HWZ8{PifYoxD8E||vw
ziuS*m2lkdF`aD{lmcP(q+O}PedksLkp1)yhIrrO3Y0vk0T60)j{|oJLyjyJkz!Bu(
z-f9Lx7xxSEVz!tuJuE!-8thaDk!OuuyPId7W=fegAtibZi_P+he%WhJOYOXCc<vWl
zX_?rAqaBBA0t(9mj?Zd(bl|?Mtq}V?tD2hzTk^mKmz&E@rX6f6{^lNB_}HpC^i_-4
zw;PPlV@}sM?=oMp-c2M(<$<Nc+x5&ZGB?RNiY8PY)2i~E&|<N@46HlI<)PPtzOAhJ
zvB7Ll=T?QM=pElRx0d68^p(Z8n&csYoO9sX^KX3dw>#HM&E4|sZr=T0dmZQUzTy;Y
z{p-;Ba=|xW_P&~XYbsAOynJT5wm-}9&aS;XBO9cz+>C4xSLXWN*mc<v)b$hSTXE;j
zg0Bbpu1)Okzvm{>_hZstPzLA(#XG37nzQ-4of_Xp$)Ahd^Y+%?ytklE0pz-G<}8vs
zxA`r#aJN3c7u4zFebp-1`q!~FbHTayoE^gNHY+D@y}oqMzryA!Lzl$*fai?AS@pl<
z#>CIa53pxkH2u<q_goC?KfYI*Zn@%Set>Sk`r?(>cfxvkbIM+_eFa<8r`_=4@08+-
z)z>2~o39Xe6X|3AD$1qM74gN+>(31yna!5hlBYih+y2-=Hk|9HRl}q`^Cs=MZ{!xy
zpBAaSegAo*y^en!z;PYUG>y;ncJsX=pW_<8CpMj4(Ksubv!dAw)WGIC-ek3m<5o4}
zDTZ6BA9PhNoHdKeTDyN@spU5D2W+KkpuE$^D%$SwwVZj{gU^B{-t31aJYOAE@XZO@
zv-{ctvSh1t)076Qw~m*ccYKU_zk~Hfi$&6of{c~-7WA31SSo_j<73@}UXOR`%wk>i
z?@GY?u8VQnpJV=miW6H-ko4DO3zjk;6mqd>PDxt(?rLtX-}kNHrnW?&h5m}Yat>@?
zFMZ_w@h@aot!&95bG0X%-(2H;byTqRbJMK1Tz9m3KLwmtc(E{2;qIPg+YeW9zpCBL
zV7_AWW(IvHQ0`wRu!5!TdqB5RhRpQV!fOGu|MFbpeI?iGpzj8fww2!S=1a9$X2;sA
zaT1Bg@Bg0mgf~m%%4AUawRJx8iAB?0t#*cOHt2JxTXS}o<6a4nlarSoP;Dp>**oug
z?^dn}<y#g_ct3mVE>MDmB_u7+5M9x3y{c!$i~FX2mr<F2di`y%r$hoPWLH$C8q8zO
zSa{1xoN2wIPBQDk>j@0Ek~cAcV?2&MD{l5PEk;ul#fB{VNwLSYn2Sa1WW@d;f(+Dy
zy`balQC7YB#(zWW$#v!{<Yho5!fYl9$CnG{FBXvfT72%(ZpW(*dl^6uj(^Tr67&8o
z<DCU@3>Ukr7~EOHzf@UI*k{=weT7@$SEEJ4%r9C!%C+f?c>($jFP1vkF5_d6I?ww4
z{W|6yj(ZsvO=l|o@8yuO;?jxNFJ7NHAI@3PT$SXa&-&`mUWNxNuDsZIY;Wzoy&w-b
zeF<71w_Eyxvr&Qn_q+oj^Q$xio_}X<@Ka$vUVE<&rs&*j4i?TW)`I_QWE=AW^gCWG
zb-24-U4iBQwuveG@7sc!u^^Ycea*!q%i$J~bLaf=cU(2ivlzb~>4@XHva^`c#znCq
z>t+0Effh5a^;_Bc=W`c;vY$R{);a+WsSG#4R)tkZ<5o{-Fk{wNnRj~aUFj=})tL86
zT=Z_V$~RLeS@6boz0LQZY0UQ)#0gyVZoFkLD<QSMQe(S-X~^5-^Z9C;e=!Q|6<M({
z=mAI9g@B!bF1aE0r!;;`Uy*gN6<jo($uyiJMN!64sHwy1_!kH9RsrVi`~4L!@V;Vq
z{t~p{nRL^ZE1B2UYJW^NWRz7)e0Oo<=jm@jP4F*43+fKu^l%q=)AM`N&8riO_k1gC
zu1W-jr?|~+a|6z6#a!QbU#UBM30kmEn_<tn>BX(}#?vqHYHi5nHeXTf__s+sXy^Rv
zm+mi!J8is!Z$+`F!}*h5e{3W<?EBQKp@A@;>3~Y}B-gtqHh)nGtrF5$A9>h(g*?ke
z@5Wi{nP0eWC{dWJ6aD_|s<a39@;mP>s1pF$AECOSEx=RhuH-tVFV{oAUJGNC2?RxU
zAz0FVfk(lWRSP^sqWeR_&aYX=b|YE;0Pm|f*+xFMFF^~wy=BW;dErf%_TB!XeAD3E
zyG=%m@}IA{4o>-?5VpD|bjGRbS=wubH4|ElHy^G#^XUEpIo?;@f_p_){5<I(=#suY
zI`e>3qa~9e%e>d^zrppBE6C`rEU$A9EK>|Gim%wxeXB<=TcD+^Z|*KoMIOg>W#6&|
zwz{ED?@Ml(8u-n2!l48AlLPL9I%-Eih1A(p#x<VYl1DbiA9YLU?u$5a$ozc9U66DN
zC@EP^Ze)1YlaR?0scdjgVrRjdlm*gPx|Kl5_8eQ!q8rU$7)q*nW3AH69)Ow%dqr0K
zo!yw`7sF$ub1|^1x+m7=Ss@~+oS0C`f0AcWZ%?SmDY+lE8PC@}1pA-kqIYA|zXHou
z9SSRX?93m_JhId&e(-hP>{7lRj(1r>`S9%do96rFS3KpnVZG3O=S6mNcB#m|i`V}=
z1-I!~1$;Fct~W>3*)L+K3b^?&B6sb#1AD%2-1xMr`4;mlRsmCy1D1}u`>!u%sH*3i
zr@SdFef`dR^9!1Hajy_}Fj>KHjxp<JELXne_w$n3Uo9Sjhgyn$%}-~a-0|oAnGgo!
zK%X^NZ@zvL!}WmeYf^_5*Mph`)9#<sXt?=8t$$*6shN*)f1~u3yAHONi@KOB^jAFH
z4sz%zzx9ck_istYeV+cB_m##9b@wS64WFB%>Wo)2#Qm7FJ?#89nL7*KvAsGe2%3<w
z4X<+!W>~ws_TuY{TdUfxKV&O45Ag5HaAMr^@9U@6x~vAwb3LD5xR#|aQ$3$KFQA<H
z>yr*Ct_O1#OpD(fbY1<A?dGufpTGC0RyS8Ux=iMJuyw(-__u)!wkv!p`nQHvU%wpp
z{$=z!^A(##4|EHZiX8aqpu7K(W<%VPvMOHhH)8RBXYG&44@hsQN^)ssvM^uqbh<HD
z!k704iz~BDe}6ww{ag#waNv4yw8Ko~z)lC<{YwtobRF<}p0W07WOmNF5BC?mV}0c*
z$g9!txgn~~a1le*#o2%CbaFYW7S8^;??%yHM_JadOFFc;9_(2#ExsdV{igG8zx;a<
zHFx7V(7e;DxCQeBF19dL*sgf`+;+$5o%4<hwLh48{`vGbystP`JS{mtpV!9yNWI?a
z_`M%Yzr;0v-g9k#N<L_e3OrTyG~IbFGkg5}622Z8;~&4)6d&My^$;{L)y8BYzT&Aj
z+b^S!w_jMOr}fRPxnpy1zvEr$E8@zK$+ACZPJ{>a)yjX{$KO|bzwq>Twy!N6YM@Cr
z-TPL}iMK1)&htN!A7F2=h?(mF>%a7!7p`wT9`*N2zx0)EjfTG>3isk~{@o!zKO|D|
z-lux|cgNQ<ygU9EGU14rSp4WIa$qgvyW@X<T;Y1~cK>$!dy|-+{<NN!oA%56{NDe*
z>dWeFU;K@YzaKwOll9N9Pru*idmj59zHi>+x6gl{y#9IZ`ox=Qp$ks<KPr>W&s@De
zJnYox1K(fYe767buX)dJ-tT9<!x!JDe>&#J^X#XUwfXO3+K=g9=X|fZdHr<;>A3UV
z&a?cq&lhi4_~q;C{P&uy^Jj=u+`IQ#d0xKWiS?B`JJ%oAdtbR|e@ys6-oszrKK}hT
z&3Ny_c(Dcd)-#`Yu0OwbN8QZ#GY)){J@_edL+tM&LGEd(N7=WXkDq?A%GBZC_N4s>
zw>NBxJ@LtQ;`#@Ft-@@!_aAuP6r=b4Z`BE_y9?^--*!Iz{Y&BgmoCP<?~d!f?)2FH
zHP++v+2`NC{<EEMKE=rK+~+;-n_ka8nf~BgoR;z%rI+7#o{%`OYnGU0y^S0P%Zy;V
zRoT|RlC16CPw>9;+qvb?{|<h(hjJBK&t?A32n{@W*`Ry#-*+`}m4Ci$yfyo3kj^a;
zvt0HwhlGRA+D*`z?t0o$v0b5ZV%Fa0>U!78KJs1bzq#f@mY_KIwpmJ<3Fd3J$H^M2
zq;8E{y|wLa@x(oyQiW-ai5u_ikW!B@S=V^{TQ%dO=$!4x*L;7(D3VlrZ|(JGih<f2
z?@G7I-uUjZXCl*WQyn=brQP$c3h7Rp^KesT-5FygF}^VW#wt%~0oLuJUFY9#`?v39
z=~Uj=N9!xrNxwR&6L;v9hEO@r_4gBY@uz<Nlkl@{UflCXPlK+fd{x*!JJyEnoutUW
zzv7>K6^;sQU+>zWvG?HB)yelnrkA+9+N-~!xc|rN_4a>X`tOto4nH5H<Z&lLNkQ_f
z+jaMsp(~ywnXmBrQ8O>O(RA6*-NyC@EKWZY|McAJWiiX52W9*BbM4`=;XVDtQub5I
zva8wgYyNkBI`Su9>P}wRf{(G=#LBZPU8dPN@4NB-z#*r#N@A5iU)KLy9&#=8OuI_k
zLPK?>kHTTEy|zeq-VUg7h<xlVm8`f?XG7GIt43?X9%pXlx_Io2kpg2^O`^-b7rx>`
z-wUTRu96Vu`0r4&=&XCyJem3P7(MbcE+2lf`AC*xlypPZ``+Y>Eoq+@bd)>1lfC&o
z*gJqDZRsz*m6NwtW*^uwLG@qyz3E3JIm(?L6(q=Ud@oT^-%vYOx-EN8@0;jV>%@OL
z-Hp>dAKIg_V{UHm`ahRnRpweue_j=_?{lu`^*dL0<w@#qIr`<p7qyk{T7Pv}MAkk1
zd?NL1V5Q@$SmAX~JClE&&lfq6Wq)$f`YHNG=kF%8u6X9~?mNq2{dFD8YB@U-mzA_~
zsU6y)rT_L!oApvn7W2H4cy)EBqyU|q8*2sl+iT@rCLD6xw~2k5cu-~7i77(6eH<T%
zCH7wVoqFu*H?8al&1uIT#o9|XuC`op_{OQvkDjO&ybJnj#hK2&Hh;-3|Ce>ihSU1C
zJu6T(i1rq~HsQtW`Sw3g`U`MWdzqfel4RVuEh|q^;A8I1EtVH{%&cH;2)fOfUUzeO
zk#|l!>(&5`u&3YR9u*7BK9`YF=yvFbkuXow<p(0HVn>h08ZnrdtrhVLG?~zByYbf5
zhdK`IW&3YS1uRf{o$z<riLaBlIH>mAE{~lXvS0jBrqfYN4aKGjwbOnwoazqHFL*5a
z#7b+yhF=QPXC1g1-I%0UFpqhvwRY0on?`QN>82Xd^BA-n=E)uKulpl>NHb@i!^E_<
zr9U!eHD>9|nyal6yLHLWj;9eZYL0$^;c2ITi7Yb?7wXx$qV++K(o>hSlTQ3(*fd4>
z@%)H0$1l5{ex%dYb?j>GvpgLq-wO{vA6Y6g@6f_`s|r}PUC+b>KC+q+qU|ex@Rif!
zZ*m*c#G9s0Oll1}6tMD4=t_l+H&t{Pv&6!J3Vv7n=5n3hQ^EE|Db-_NLjM7SC5oI9
zUTZo`_g6-qIDF!0(WKWg?_)Mz^N7vA5p-AD@}%hdX}1<1QTI=rbmZl?x!kMd8kb$&
z>7&dmelPCl$Nu`BWvyJd=6v*Rwa)b_@xT4!%oWwS)xl5KtmdBUZs}2fztUj$nQ1p<
z^|t)^;coA=Cgyf;$f9NZ+U4^Eq#W)<E?L?8+}~@T$Rfe{EQ+e469p}8WHhF>2Cdm~
zA)~c`rJ?jy?=l6}i;im|BQKY%e!jVi#ha@=+$gt2!2kTkkW0skIzRLY%<cKY<QSqQ
zD;wtB8z4AUN<NrFutVjG_L7RO<@Y+=w~75RkoQ&0+<rQ>)wqRWnaYxme?N9<JhG0u
z-uIzbLUrq!txlUJ?5I+7@JL?~bnLd}1W|d>pew9*p6UhYpJ*~+KD9^Um1L38o()?$
z0>q!_wpjT_uX>~XnPtA>rT)4f$}y||xA1S?aib?}wS}$7kuIMAfmJNtz6l&f-C?Va
z8fU67<~}o8JO7VF)c*tLRz6#~Kxw&HP+oLK^pC))t^uc(o%Fh<B9(l`aiuuJ$H*O_
zDMj-<pV&K!=_R?&3k(ktYLZ*H>h7}Avbi-^K3+N>ec!&?+ACA1w`B1iJ^Qaa7G2t5
zp|WuP9=B<)+u43<tn>cg_v4qo{hx>YtiKZtLeqK-9!x(Ge7Q@uwIF9wR#2{WxYnX0
zx~7W?^rI5JOYa3O7vyHpfAWCS*)#Ja|K$olw|Q(2Of4>*y;SJBA|UYG6^W2bOT_Hc
zWv)cowXSEM6*PI#vh}yvW-fcWkF_^eeDA`84q@Iam#t&Xd{xVQ>-X2$Q|vZ-m|K7U
zKb85%L;kuQRSXS#lCsx+ZaW*QH7)gM7njmImG#AX8hgU0xZd0l>3=9r>1-r-e3A0g
z4AF)QT_-jl@wRaOd`bGF_vbUG(>p}?OD{+IZRgn3R_~d;Z+g{JjiSdbB1~Q#P7m+N
ztkqilP;#Y5jOdkDtOC_*Dp|MmEz)9p$hBT1>o}{Vn)BkTuP*(m^8KKAX^*L+|C?Nf
zNvTW<zr{Sbc1?JnTlkZkbK{KmfF0Gb0ur6Ogw6zHIn7yTJ(FvyqVdX$(_fZoY3m$O
z_$^o=>wM96o9YsU6cyzs(_jBT$Y0m6ZL#pmYr&uHoY40=|Mm9O#JG>MLl=q{8+R8k
z;c$ME$FD9oQ8RP%h5nlIrGd{Iw3*|t*zD$=60dmf-4wOA-n;#n5B`r^@UZRn^Yho5
zk7?P}n%n&fJZLrT!p*nk9y1*#Nbh;&8qjL`DTsM{)W65}bq#B{cmkfp^xA0Le%f|u
zZ_BN(T6egLyEQtk?-pK*Ii#C)z)EJqJ4vp4yrt|x#j6^wi{)LL80!2e&C-OaCo=S*
z(8Xwt(w(fOnK#8aCYGhM=oLAgIx=Zv?4xSkIUKBxj-f1@PTX!5%knh8{o~!*0tept
ztGawA+UPb#xrIo`3L0(LvQsc6;L!zzg_?%@5>IiuE|6;s)pM#%+WCF4WVGh$UvG{7
zKfeE8wsA-FYc=MT3nv_Z*j*ZR^SUXEUeC@2Z|rqHE>-PhXq}q4DWEB@igDuoWzl|1
zS1rEnwDk6lIQ|K~Rwuk_Th({A%4%nNuA3^DKjqJDv%d_TyRUCpq9I*fu~Td(dy0--
zDN{sQ>yv5PMSbgX!^8u21Ss>@X54Z1JbcSlUq^;vXW+7R33s=tt$!$XpQELu`RXP~
z?pHmRiuw+DZQQxLXSJY`V(QbWo`+_M_pWUW*KAU7-FVO^O_1eeN7E0TE6z{uWx1+}
z@8s-giP>_dPWPtXoPwAsFK%D{|8E&XiM!4FGc)c59g3W!9(X$StyGlDlU8RFzKb?h
zkGitY8L#Fo-z08$JoN7UB!fFyftxFJbmJnsGkX@C`<v#v<?!{HqR)SnFKdffxZ&Kc
ze0__j;rovLaeEOsl`Varv&hW**E&5uMo*1oj=OQ?*Rof8y;~k{cY3?3;??Z=_y7O<
zZs;N#EOsl!pWAcNi*66~7e9~jOfUM*5xdsr`to<ZSLQvfk9xQ6-?XcX6joU@6|P<-
zy|RuWM0NA8)X0~-3DWI5-bY98?~2Tynsj;%Z>bx1q;k^lE%PN;aB(iU_lsFnFe=)6
z<I0s9)te*C7+z@=lpdb3&n9E@%&M!+lk;!R_@i`1?3z2<WS!KnA5QK6d;5E#wgQ6_
zAESPrMw0)5S7|v*TW|AeZhYMn7qjr`j71eLx*aQ$7#ICoq8+m}{bA;MCnJ#*=Oeo~
zx>vMCeEz9nvPC0b_4f^K-D`=heo5{MZ#e^A$Q5jQ%x~%KJ9EL=q7Do3r*a%#XOgyt
ztct4KwIE~pawmxzuV}#>hi}CU$<O&G2F%*qxGE%U<Ey0`KE107SI?7_nOFWWd*ZuJ
z^|>1|45L#gW-eoEnEEd0+x%;L*Bnir@@~oPmm52-vCNhcxuni`?fmo7*E#PMPfoh9
z$Xu`bK+hL*t_Sxg9E)DFX?4M?>D&0Uy2O{gzsB{Z-AE$s-MQDh1yUahaH~#<&0Q<o
zrL|nwuYXb5!i=r%p%2;Y`6mfaS6aXSUJzGT^onl|27g|!U3+ue+TD-LSJo~(Yq4Z?
z)EoXwU6U8=vsKMy%JRCjZgNps_9mzKK}#=sUHn^l<y&Sz*)lJ-tJWrqvg1!TeqdAk
zS~PW!<K0;fZ&U?CszRrHDckqH_I-8ms_w^p)$tDlmhst!9GJ9E=IqNNCf=<Fo4!Ua
zJy&&QKa1Y2YB`}D-ruT@eSdM^{ac^Xd^UrvIl6xiM%OpJXwPQcEcw`MM_qxDhS#<i
z)&GC3kLKnLT-_7#wPclKgb4596MS~p&NR=Pzr%A&Tx`_YRf6uKJ3g^+-aoW+<{B-&
zkRRPn@3#vqOi{hMM4{zK>ItuJ6}tkaMJ(R+oQcKL`9^Wj{PW)$7rNe_z{8-$?SAvu
zuB}%VX+{T5S)!%2X+5*U+SSu%_oX^*T~%)WPS8Q@?v>7)x^uMFOcj61Cvaq4fY_$1
zFYP7IFllcMH3&6|$@%U6&|2Bi?0>>82j^8`dahgUYnLq7oAf?;<1dr1KlK0q()ajo
z!+haJefM7hm+$kQ9@?<sLu2kX&7#%%9lbiG!t+Wmv%Zbsj`<kC)EUfl$8^%|a_*PY
zx9P^n$ucp$*4rFf{ZT|^!rC*gTVfZ*oV@jV0mpO^Zs9tYE8mS2?%(Q}RGg^yZQIMP
zveheB%RXgWXjOaKT4C}zr_cpkLeH#yu4&{a#I@<wWp(Yl9#7>apLg>59=N2!^Vjq;
z38P!x8YffzGN!$)cAYrS^;4y5&c21VKN_SCZVgumluudTd*|NSlaCKout+Hx8&&Lm
z$LkXJn<1(D-)yEI)9W3#?dZP##?3Qy<G)*VkIi-|ub*ig=%2bIx255Fq*C0*?H^-R
z!q-1rzU7<QFWXNugdLWAZk7z(SG$<QXXA_ADqYt!*+lsct+~C~?0(0Z?A6ERuf4tX
za#vHAdSpwRzU+oc#Z|LalHYP@pEcW-D<77dlf3&+(rfRx{YN+)6m*{*?em}9|1f?>
zjJMWF4J+-RrPKVEez^O-PJFiE?3*Xmqyx?-a7F$8u~yc=ZGs%vq9B*%s(Fi48V+rr
zvh#>r);fI-zh)ElIeB-y_&%>=R^KF4J?Bz=@{=u3cmMwro1(ka@r@hv$%fNH{*G-I
zw|ASJ3j4WXefg`hvs1h;L<uk0*pPBA+`DTdOVD1;*t8$p0vK!`bv`RP`aE3vwwbtG
zM!D+7t6d-UQ@yh<y?(&6=}F)gi|9}6m-ed1%U>~%UiD$t2aQnOCc&@;tF>;&L`}7P
z5;HZf_RwbOj<CE~#fK3RyIT*7sh+&%^ib2K^!~ooQqi|7rni3nR%0^t*Vmi%zn0gp
z+x0Q`s#nm1SKkssJK4{QYRh_E|H7FmvguvYVs5|G(9>oYTM8Jzcpp=mwM6vY-f+=>
zOZ(CtkCiT%;;1~o?8v7LYswg}+ZfL-3qF!2Bi7e3D|VwZzk|;Q#(AHnr0!i~BEpru
z%xSsYMO)FF?-D0kJ<Dcn{J<qSJ=nEs#h2%cZCWptFh5ymxodypCo|EPT|F$5AGby1
zv+OjNuMid#SbOb8nE0X>FV0=b<rJLOn8VB#w5sRpp~UPB8|HjA>+BTTtzp40w^!&N
z<Ii^|^F<EWZ<Mpl*%Yv{+x&HbtM8|-xP~sDOAKO_(V0>9_gC>RWwkZZa1XlfU;OO$
z_rU8HR;L~p5}#np^x|8}JkJ%~+ap~kMzifc_C({;D;;;A?&K*JLJVK#ebA6r(>CR-
zc@n)+==_56Ra04Qj$B%wvN7zTg2j|Wuby#7_iw83&hveC^y>ky0$Z=f`%0^p9=XRk
z;SIY1_fF4z$GP0jm%=Y;v$=26ci$0|^PjWhFYD>d)BpeOzkl%Bg|@V#)d@`^>vyi;
zE_8CXicvfJ-zVRVnPL9)>9-j#mPcF<yHvLR<&E!4_jzj1$%-#8-r<_0=224l)9doC
zNAChnc++mZjGG$6Q~Q2<l=984=A_7dpXa_`Am(sIx8M8j`Xet_JQ6*1<iy-vb$c~-
zhG+j?dQW`!dclm%+gF4pCr?!~KPkDkq-u)pWqbSIdrveLUi8;eTFbh~iFdYa&aEe_
z&&sX%JKsrV_N}fvFQcA{&wly!mz4IzmA;=XCmyTot*;4Yh<MEwHhX>UlK9X2kNwNd
zecZz#kg4Nq$--i}#qG-CaO<-t>uPdOYd-$;LWU`7wS(Fkk35F0ci+1Dyj1MwIqDRm
z{x`!_EkHX|YJK>}oV{CToZqpaTI|b72UZKl7=hQ1q+EA!aW+-nwbhSGD&}_7p2K7(
z*imZ#XpZ6fiGgBfxh$tEt{zg;6W<jYt68$RI+;ONYXir+6ANBHDakN;8~JYML>1lj
zzD~!4Psh!d30k_pRpH$Ay&9k^t~xxdzc9%cx{5Qetz%ZQXq|F;p_xR}vy-A?GeuWM
z-1U{vWKSx*<SVtsc=e41A%ed*eHH20!TIAx)~*E%p4F??)<(rX=bO6dj+wfsp)1=@
z2H(_p`?+tNeliNYJ>HO8@GyFjx1-&;m>j=FUecnA@@})R+3Zta!nF3o>aLy_vz%^5
z&iMYzJxOHS-4!jN>fCZuvw{y~{nYS0>pLM(=fK)z!~FGb`|IuW`t@p!UWA%-O_ZIm
zlk-`N&W4F^1Nz<8uPX68z41`BdBDCGumAp;|NrxT!J{v3DMiPMdisl$26x>#$)hCf
zaNGCtBe5_S$1tW%CPE!;GDqdSJ<oTSocnvM&Ff#6pihL$W8r_P%&#@wXZtr)*xx*}
zWZTAPy(ZWC4lyj5YN`9_0(b6<M@e%ZNd)_>*>zyXqFD2N53EHko!!6Rp3G&l?84N2
z6W2`QTacHkW9>Ql(JZI(-;A@hLcPwu5WjfA#i(b^mNimlt3!Lc_S$Xw9eQ<3^9kpN
z(zhZKWkhO^M;weYY`C$Ldru@+*OymTDJ}w+^V7Be|GxcS+LTfJRBU46m6!QCTh-rA
zVu`Stb#z9p)>ab>YnHn=8=^#KXPiE|ttBk7cb6x#(QE%*k0g90Z}fQy_<G9Ta?4%T
zSY+t_QrENM*t1jDb4|9M^hi0ND$yHzM(o9{>b=jDuKn}a=p2&SvM?-D%Ua4Ya%ObV
zVaazK30mSym3tkhajPbOb=>|;I?Qud)$@#>-?s1XZG3v^>}<Kpa~$gXUO(qMYjt0g
zDShIr+W+T2W|SW3+$zJn-)_Rv46{RBJ(d1npJb&ZHhurZDk!~W@5O`nR*Fo^5AVF2
zRMOm8ur<&q{>wDu^HHxHr+)huV%N2+iFfWkoh(k%vik`~n=3_kuh_q@*4*^u5~E+Q
z#1d!!?A!RRMqTT@Rm)e-h$NQToG#Xpq4oD!g>Cj&tdR;-Tx1Y%tGW5jN5yk3V%we=
zY!Pzm%?pjUZLa_Ed;jsOCcWH?tVz>$^`!--&AjfZtiN{A{e+e8dUCAGBqD4zk63?L
z@pyJeapc#AOKPm*xy*APsGs=5JS){<@zRjcLXKYsCzZBMiTb`*Pi@!X4M~?$D+}(P
z34Q-L>^?`ddQXR{@bW-!<;xG{70NE&e0zDpiI+RRbqH;+Iu@FHpl98ojxMK*-^H%T
zZu(m%a#Wy-Z|Sz&i0K8pKJu>4eQ>_|PkjCV{S)|DG)p`>E-W?)ayJrQKViqtB8?Z<
zVxuy*Sv+_Bq!HcKSt^yVbg{y&qh4%cN5zs)B``}rj$I|>yJF4nYtvSq;@!lk6tsE6
zz4EICs&;2*R4JNBA3WXBtsy>L$FkwxtcI&sn`Fw@yfInfed*;r_OzK>zi3=JCAh#$
z!)yPMQtzE}c+Rr;-}G_(c5wYEzRb4d;D|fTEB9_zs!+V3b|ieK-5QfivkWKbep7jV
z>`v*tuBpHCzF5{5`A+mZqwq}7Xwr|__y4_n|Br9sE5~hyKlX%%C+4o;Udes`)8Qn;
zlOM}c@{MO7*{q{B?e+1f#e&oKc3kv5!*u<xrAIAu;^Bq!9x*S9m%CfcUt-mhP<3;9
zluLWnq6V%HUwj_E<am&ov@vky2eZ^Q2boiwQ+Zjgyj-RAKCWVaOV<U}<TE?X11&bk
zZWnpb6fq@tE6?XcK{X|tKW%%rvpn+1mlaA?hDPyI#dco&7^O2?nSE!%+&q@5x?HZw
z0Z)?bO|nJZt7R|nhAhw!5@NnM?UO>(k<B006)^Al#!?f^5bA4Pv|3~NvOLpM2X1`O
zeW&Tuc!F(usr2Ku^DST7>wn|AVCdcv<(eS4dvnHP9)=6Y)WU8BK53t7RrG4wrYx2x
z@3b?XDr>a1`mb@l_HsMN<CYp`E??nH>l-g#XswybJiGV6baTngOAXFC%#IOR;k`M-
zkee%8r|dwZ%-66Pk2IFbb%$!@cl1RIhfX>1-G9N2)bI>*6*HUdaRO^3xo7g6JuG~a
zXZeSXDPbI5`&h#GgDP&#P3yh!bfT10f+=%^bik>df8PH8zWoHlRkQE~*QR-KX}r7_
ze8kLq;;|KLS?(9MZaNymc<=7iUB^P-?cesUq)%@4XLYefZ*DO!O4OWx(XqQ@#|MUv
zXVXeuBKz$XOxaCxx9C>w6Q6ln{r!!DS*8(ILCJelKX)xsPmJVb+WsvkT<yY6mQR06
zeVJEpWw=y%J!2(XPq0v<=Iz_9i)KwOTQX_(F^Bg%n72$@k{86Slp446!p#elZ!Hd*
zedUyI=B96pW^IT)Uw$QBYx1)FD!TFizUBWH`}?KIRIfS9yw`@wkk#XLhV!bMT@%|)
zmsd}2J?8M(RkCVd_#NJ^IYp*NT|@3ot;*THXaA~ej#+|%Ih)R{ULL(F@}r2nZCpU-
z%SLgfmnQ?3Zt&1GV=Di|t^bKJHKtca<MxT=mt~inGh10DB$9nAV!5#^FUR~Nr%&g6
z-Bd0VCgPcK`dXSv$fd6C0&S+?UCbwymh3v*A8;&S`|j1*`3`SNp1j`i=j{DIyj3^d
z<BHqeR==v)6e4!0;<<q+<Ihbi(>|}(yk&XY_jS@*n}8_Whj%$%u4k7C)Q)^Vb9>n>
zG1H6O3uU(L>^^sSwb#+v*SgMVRW5vc<Sc7I)BWbJyHp(iRxQ6ZVdKBXBWbfIFIF(+
z=-ghD-{F$HmdTiJQrCCx?SE`HoZtQL_5bhdH@a{uDFx?$*JCcsw*Ml>bn^B_{s4w=
z=J(vf{AKI?SuaH<*go}~w4Ues9E<2<E4lUiH(qN9x%TPSn_>+qjlH$IZ+;09_qyhh
zx@5uGDCc>n%)OZY{aXKD>ig6i-%6LT{{7U?Y5qN_X4Aa;k{iy5`aIX$^V)2=Zu39k
zTE{ad_wVEumb&WRYd0&4advR#i)m@9vvl0PJu}Zf9OUe<f>U<)CLiUKPy9Y#DDR&c
zy6gDVPj=rl8$TZF|NQCXkML&O_|&4X?z%3a2>)N1`xcmXT%O^x*wp5TRrR|1f(`ks
zU5B`iH0%jp+o*fxi0w{~z4vcB*DZ@KTFJlFVRc@J?!!_ydp5SoO_%BqtT|a`s>}FO
z(82hEkJS=grEJ!(jSEVB_1+6B?)Uzu5~gpuPfB#6Q`?glOV{@;5}rCOo-=;yjDp_{
z9e>tu_uO|$|GlPZiPx2lw>VF&mYaCz@$FvwE5B3M=r=7inwCG8-*ZKaJEK@&<byZ2
zm7FbG8^W$0a1d_^TkpiR=!uu^t?3(Gez@trZa%ej&CUq1kIBJ3PL5%`9w!#~lqs&@
z)Lf}sk<pZ_S-;RF^Qq{q&|js${AL&ZKD(5~Ymc~Ma&3@Y(}jBbn`S<nbDA>)eLS3=
zNa`poJ)se{-Fhc)hCG{Pi|9;mo!w^nqH9mT@2`41ziHW=6TDtCE#BVWn0Dj;tM&i5
z9=|J@__gw?!iPmWRKixPg|#Hki7s=}j4)LTKJKr%b#6|IWJ8`$YP8ngO>y_1Dy?>Y
z?JMWDwVZR#@`i1d2e)l1dbIx1xx2q}-k#Z{5?xgu8rZ#A+Qa(yEthMr+?F!BeBEaj
zWoI<saZbDc>#1=f8o!;grZ2n~{=C&}kJI_Dued^Hcl<H@^y~HM`1pw48rjI4S#L6V
zUzmnS^;(_rl3X|A^rujPz%1Xe2c0pqC;!a460~X0^Ie&bH_kHU60xfg)?2gZRQ|lm
z4{AayD)~5quCMFRo&Uk%tlkNyNm->Ev&_Vbm5sbVeSLStD_Z-<zI*?gE5zSFpL!}d
z@7Tdow&oX{JExrQy2-j)H*JT_wwyDI!<<go96oCu)nod-C?xaN9N|?LuCMc3a`tAk
zfJDQoHk*eJ1JtLuODS>pUiz5)J63MR?-LnY_+$3Vez8gR^A~tNL3019>aWeaX1138
z()$0o{-1q>b=m@xEiF;aAz6Dq+`E5k$L&p1kF3kozm(Rs>*9l#J{vbK|5V_4(rD4O
zgpgv}PUTRO(@br**Gj29E=`@Fd3gTyAD=CIBY0JB-m+0l_<GRmy!EYa|Iczh`7SwO
zxo_Q+=kLzlw=q{S-s&nxP+9)ffD4DBa~I$JR>I57xb;2Lm4_>HBC-XSJ}9~@^`Vw~
z>i0FD!jcjhzc0IXbIu~IX{Vx8_19SM)!Bb<-HJa?<Nv9K<;{DwNP6+=t7okjWvYEz
zJFnG*>Fy7PIRCgQ6&Is&Za?Eo4qU4@Z$rZ-!L)^YnwS0VlFB%7tS_f4usb9vY{3=N
zCkt|V7FqLd6ysY`{eAT*k0+OBJ8H8D?foinBVy88K~4EGr`KmxuT3*el|3i2<x1Pi
z){3|#O<jBw7Iry5ozqit%}k{={PV?CVLCOdOkY(kGdr#ndc6I8R5$a9DcRa0A-gKH
z=XP98xf=iHX}m&zXy?{OC#l@7Uacoj6x^DN4{q7EpzGAKL%*kGF31VaU6QZhrukC%
z2ygv44~L5r9|UdP*eD~Ht@}LlYGd|Y1?g9R?-{9Teg8js!h%iflM*;@-|Gp`owrKU
z@a;40vIChGv+s9aI8`!xy_$My=}x6P0sZ~SvyCSzZ+cg!lE&&KxG*&FX?^R|EuTNE
zd6yU1Z@vD2;C)q%T9Yq5{P`!Cyk?hb$_I$d<N5hZtN!2f`gi_L%1sL0f~zC*Z@u}p
zsMnUs@0!8P3F{^~^;rB=&5c$wwQoI=v?cmOndFs68r8>N?kL%q*y@|GIJ)3zS?0~u
zFkgMKR?BB<!8O+#q-L^S3O1f)mw8lEr)t48*@(OKieE~yndHUtE*|JL3ALY4a+WpW
zcH7bmE7$JjofWKnYRLrAjh?x&%1PWizHGaClkaHG^7Cb>mqHX++!~GgqrWL0D3$*D
z>14dgr7l4?jvyVg-mM&mHtWq^mN$)8drSA(Rkac3(lImF9KBh~;T@Z4bu)#@oV!({
z(|J{_e2)7=wYEKsoT*V2v-55$Br#X0Zj9&>TCKRKpM6s8>y(GWJYwItT3I9e4>%R9
z3SR56=ISni4{s}WaTGj0{^Z&-_WoYZ`M>_H+y2>}<Ei)E2vf5|y)T^h)z97gS~0e6
z<L%<BmzF3C-M#mR;hNW*)ti!DGfGx}V3^tD?6`~RW8aAjAs5!Y=AF#W@L}fE_wi4i
zv)?*e$t?B~wGTTuy=6m&EdPn?e5!9&8Xfw+wQtG%W7Cf_ORD$j)LirsU9<UC$JXh8
z7X+8dzwhqoxY6t>q-9xNlhh@e+8Zj$^uA`(SE-r_TmDV6t`pF2F|U2#Q|rpUIgzib
zZjV%5^DW1c+gh<wCr;ifjozZ+Ce&l_xA<){g9~Tl36(WErG{c=TGi`23O3BH2|3mj
z+mmp4BFn#yh}`m2mjqXh$J1^^>|<WCTZPkOMaia=Qyp#BIWo3{Bx@#{bx(Ny*}V0~
zzo&LjrUw_YzCZN8q5V~pB8TF-U-o(3+q9lJ-|Jd8!7M5M`jzC>^M5q05M(*8|BZ3#
zGDpXI0cUqb)=oSp{LXGw>At0(3<O?_NPho5RdK?RYt2CpAzK$EPZREOo6@~yU-l>V
z#EbGO_ohs(yL5C(_wU$ig~f>)m%UqfQxEH{;@P10`4MYw#8f3);l<}aKZyFg<mv9r
zTkG@We#a>L3sf`<Y}_lsqN%m7W$J~R6Tg@KIoaInzQoo0_4kINPXdxN*QF_~$>Cj<
zYdKM{NW-8?O2_Pf;^!L;fBTXYbdA(PKE-Q@z5o62g!}sS;T@$}MIT?RH2)Ie)z~<>
z_Jq(olW9)Z!g=LYcodrYuXKqlUGyPP)gdx{`l@=_PZ9k`-8SV2&i4#l!&TA9_D>_+
z_L}zojH@XOXP7oz^YIF|z4Cg_(MN0(1sR_%da+9X%;#0-Pir$d_UO7R$F1iGzw+wL
zie)t%`YjcPTtC}yPmiyCZ^LqU)`<m8i?2S|%(jZZsDD!!%c}QolfGYxp7MD6%GRsj
z_AS_PtT)3oaL>+48J+L?+3XQ>8HJo(-@pACs}aeu%!hk@V&sel{T)Y26;|iEob)O+
z+>-HhqiBJ_R-LS0@(YX}=-5TOJK9%VH2WALcgyRjucu9qQG$TxM%NWj8A>u4B`1c9
zRwRq=TCp?b+JZ?&+xX31Mf=w$-Q6cWmsNK;2jh&VC&PNJU-_+!e(2zxRhb<A;Oj1v
zw^?s>7P~rg{7ai&nwwdz8ldZ@7HA*O=k+{&%1zas8(jr<eA&hQSp5}~cF3gp86oyY
z{X1TCNt`HAoAULI!``dMFEcOT>HlH0R<=&5>yo*9!qR81b88cOg)^KgJKuIa5Y|}!
zAos?i&Hpa^`V{zquXWewAc+@`YBwCp>6LwWWO2_y@$OFwPfyM+atYhLwq)s6u0>D2
z|GDa2J>k3eb@9+uhpK-3?n}{<c*|?7mFUEIPuJD6l1H~Vx<-;cziDg84Q=^_)2?XU
zXYTTfT%~a$bHgfykX43jZ%T(GthT5(Y%N-36!tHDE&ulG`xeB!eKv33r5LueQx6~N
zVt>7K`Sc@Ms&~(+urcapSyvypailR|<GZV|N=#AH1GdlKx<91($n6<rmYQO@sqIyz
zu}8zSWBV66Zv1dYNIf9yXyZ0BPJLMwUaQvzA!5}FH}gh^^GV6K1mt(R@BI|Y&=$2v
zB`IfTVEfd<>j!s*Dd%huRZ*#xxOO1q-tC|JA22&h#mft?mA`xMTj!elaYybcTzQ)E
zZP~qR8B?MzCm*<%c*JFqn+4nVhl>mKZ!n38eso)G>R7w{)HJ>omKIZv8SqWm-hQLp
z*wJvW&XpAn#}AaJrg)^tt(xR~atGI4_P$FK7YbPY5OFxq$GKQ#VQ0zq1#%7>W->Vm
zL}c)1YfZ42`I$3$ZO?|<T4BHbL*kOZdK#`QEacsL|2oHoJaeNtjPLiPg*}^oovB6Z
zq-QsWutegg?n&+@A`Tz?W-)UHZg?#9-D=wrDc>CSr#zyoE=1gkinq}Bk)5`tVZl-<
z`Lun%!}4tk=kx!*bu8srp2x{_?ehUV$Eu7MbL`{r4ZPT{@cKOCkzY1!`>MkkKe#pX
zE_5>Nik{l@^g4U~_tkav=cb?fwb}mKyq~A!I={yW<UHGR@5!Ew_|sMuiv?shWae_8
zDvs8UlTFK$^LDpNG@UW~dwrR$?nUw7yd%%@@>YwkTa%={=jzUy?Tc70EO?%?TIrtS
zCcarK7I~z6tJ1se!*X8H*~}wNH%O_%=0#s_aP%bAL(fue?tffx|KVb*cB^oQ$n`Fa
z9|A*f`|J<es_%BCg?-9V1@VVwb*Y|}7hmyhGn)_|QP}!X=a^=a=*6Qg(TZ=FxASd^
zDA~KU)>-4(uKoMJahSbwU8-*%wypV$eZ(e>C%=;y?`+8Hsk|U`NOw;Jd#lZi1e+G8
z$aUVUOPv;$U*FYzDDwAO^Sa79xet!2=Zh|HXO<6|GV$!DRnHO?UcYSE_J2#9xYgXE
z6%h*hN=2dXzSXN3%id5?dcxKf`dXLGudt><tVa67qU$v}_Y)sZZko2~U24zF2Y+7%
zq&}I=8JYd@EOW($RaSbd*QBuKa&NvSC}NqqzT;v039ZF5!bErI&2wU0%kV_grGL}1
zWNvBJe<2!Q?yN~zI*(^_NH^omIv4Q+Vf|;*cbvSNoZZOwsd2u??Ek`|`>g!>byY)M
z!kD;4?|r|PP;%?t^`tvXugSNzt}4^c<L<u4#<2Fd2G{Z}p;3BaZx6avao*=>JR=Yj
z#*r_6?6ktY{#fr_k#G0UNDd0UUij#1t)^X=DvQrU-N|(VuYTI?*};9&NbzS`R*&2Q
zQQJw=3TJPcZvAx!t593N&a1VbN)C5iZ_PRDw;^MbE7zikv!0dS%y!!vr)IxeJMYb@
ztmi8OI(enD*V<@1)qJludn32HElqjDgx!G$?p$s+3VFP-FSklz6YI7+FBf0wv)7#v
zv3!X_>B$!6O=-F(FPvq+_}=69dc})-W=9{IS$6PN@Sl~cOG2kznR4NLg@Aea&K2xy
zn)Oz@equ25FL<pPaP3o<`NNgZ6(>b@9x1V(SE^Fu#B1toa^XSpnhHhb`_moU_Xg#^
zRII)I{2rUaDM@knmp{2z-#fClpDFP5?Fb`*=Fo8dwHv-<tvs`D@;g;4dGX{A3W=vT
z-+vsX;-+<Rn_1@j`zN<Oe4)5!p>F8ktIm2`9tm9cI{DN(`r5bYrNS(B6$v}^DsC<7
zc(c!G(|)O++deOKz1XZfxBX(I*ikq6SKB#`|6F<X`lp|v+{sJV-gIKBT_dGk7sp*x
zaN6>+=bqQ)zY?|x=~_kU%8G@(+8OzaUE9oY(xjR-W}h~u9zV6IaIwwZeYww7W?OBp
zvO99fwzXn&Rn0X;*~m8UhkP@IcZeF;ZnLX(O1V~9Q!@Q&&}M%DJ(H5keg76bzBX;?
z_Y!si^P@f8i}YKk&iZWFb%iVMwQ#upq`WxiPe1qEz9>{N<+#wHoO?`%!?wJ0x;4M4
zFE?79Z}NL4^Z%b5Pe1DXz5Cs|CA(RVp1V~Z=&;ebfcva~d1UPMWWm;gR8GcuVkKJ>
zB3uMMCKMiNW?99p_&s8~&7ueE3#6ZUnx{-@7br_IoWA!u|IP{b&b!`ySz7UI@tXLD
zw|=%Q%R2oyQZ441-p1^ua)pPvXF6_Y*l&9H#;nK(#@FtO#7F9WX?EHFKI~=SS66qp
zXSS>>Y#MSe9@L$qaX#p1?k1l9lWy+3{$4OLzHO?rz~@&D(~6ZhFs_McD7A^%D;v0v
z$0w5^Kh?LTKTo^*|1SBI3ia~>wlA*bKl!YZxg-4AtX!p(Zic;gB|DiX?4I!Y*Ue+S
z_7NJb=eO=ZajaQvgH5Z)I>}W9`}fU1A$s@sfnO{-_f8qVs$cVZy5Ea?Wt;P^)$X2_
z>U?d}<6=V-{)+-^o%?=%a<~*Ob8>pGzj<?Rv-_h{c~95mD065&o$}5=`uU$5cV@ix
zUcwdFqP!tDQP-n_o#~4eU$w4ltqu2*d14|Ofvi`{E|<zbbS^7DynO1dHOI4b1+~A=
z<I=dh!qMGyy;?`4uHfy9A6{+DEKrH|-##~qf0KYYtIKwQ{JYcVxd>%8eTuMtW^+P}
z@7DZ;&m5U^wR^JzOXT9%*4h<hXYbqgM{MoG7i_cFZd6}){ZRV^`!LskU;j*sci8v8
zc5YU04^I`BnxRa}{Nv4EY!Z&hepvgw`+FGI;<9=39+<r;4Ls0l`gO{0KDi}6HHFtZ
zZ$+0f-Cg$ef#r<lAM0%H8R~oA{F}tU`t(EVv6UL$Iv3s@Jzp)nKqo1_Q~y?!oMhm)
zgs=au#ucw=TXi+`+?A5e+dm7PV}Bjrx@TchXwI?n+EC4aHs0JxombCUJj+qO7Mgpd
z)Fq{J%c;puYqIVLKHbOG@@sq5WX`UlY`J{_b=hYZ8{~D}mHwS4UwTm~SfwUhF}Pyt
zrNB$89ay?j%<f&6dYc%rDsO+*XFZo?CnVDr395IQl|-|y+pubq{h~G=m#0g&E%g2-
zsZe@U<5chJYY9x*6K;Qfs&;(6$^)VDlW%8jS}!6MSrByo{C=M`Cw?pC6`lSRxx3Ts
z?dkNejO0oQ?PK;6FT5&g@UU(2$+@iYbprRkRM8`1-g`Hu?R7t}`tdEPnOC}2t<h7r
z>(SjCu>ASgcgKya9h^+8G+Xp?78`c&;l4NBIj!)O*tv|nLxC5BWUIOYBx>?m@_QIh
zvFRWARUIE&ka(e@&FA>_H8Vs{FWk1Kcap=>X~}C1C*)tewylaQilfC%w``G&;M#8A
z@WZBDGP<pe2PgUEh~%&Rn3rcZznl5lDa(tyoLH(WT0Tc!Eqk7JS98^pGR~TeWj3P5
zrR({gS=BvbVzOK{r`mMq&q)uHj=q>ab;2Yj*-dWuez3YWbL~&L^v`4Wn`vS`3LDC<
zyGkBAcgf}yOU33Zq1)cws#^E)^UI@i%2w_Qa_q2??OEh^^2OFz@vE+GA=%bn&Im18
zlw#?y%Jl#4QmzjdEMuw@wV#Nnr-n{Awx;@Rz8I6}Zl|!Ybt^A@ym5&k?&R7P1wGt<
zf&@9ddh|Yi_FDDV^39EvJqgN;@@sg+R!4YFd%9?6L_o;njf<uqU&M0a*!Qg}5h1|}
z>sQuJh|v$edCJZ5n&W@Q^T(80uP(G(wJH3L7F%n;`bf5*D~B#uc-O^lV^H7T>Lsb8
zWxw=NlqO%y?(?@?Uu>BjoY*~KYyLvXc}l0sJtIx+`BN`;cU;(ZY{Qi%v5PZG)^3Uj
z+UarVm{ZWnMY960P0926!5C_7ks08knyQ-2FCxis{+X?r$n-|zMY?vu+c~nW`d%Ac
zQsr=*uC4Ze2d|Q$*IUh<F)L0zO<l5QTe2oA+pJvyXDq!H*R0vMDZaATblNMMnE&^F
z-4VTXJZEEsci)t-zqz)L!j}CBWNyv*p`2^5$mF5J%}vqk8LMqPPQO*1{^v#qhgCr#
z_l^x(Et6c8`<cGZVV&aa^&q<}Wi_Y3(ZKA)2`jkOo6e_m<=j8r{Khf9yX=}&=^Zb>
z)7IB=><-Sde;!)2hL34`-sUY*&$WN^m}Cdc+sYfg^V2QCpOza^1kGl>jqI+SF}+b*
z@|#L?p|(q6sdlts;9K7fY0^tp8yzk`nWD3*>}*nQTh8j>%5}?*PpZ=^)iioLt0m>{
zq&4E}d!sL%Y}HK3<K1qea6ztDg?Y;|j_uPDTs9lJ`e`qjrnhLeS^BRTZ)7WMOkdy1
zla$ZCR~C6IM~1I6+x+y$GllEV3VY0I%Q@kYmOAli$HX+nl=<7(%l)@+dy(oJXg94y
zRaYcR<Z<&B-ssW;&Ai_h_-aH3pHiLbA(L?H&>Yhq0pXH+;@toDRa6>J@->XUI{(eu
zjUqd8ycTZIv0JaaT#jEev`%69Ll^09qC43){&SJsm+n6CjrEPF4E>fZa~|yo^AUR@
zJK^dww%HCr-u|Co^;p(_IOULb`^1cGz2Y?+T&~>OKL1N!%tqy#%g_EiwEno#${UO0
zE;jGJ5dBYn`<0*D%ok56O!b)Z=~6}6Pra1j8|m%}E?Jh`uOoIDeCXC@DpF9+x$4Gm
z^q^p^o=V#DjT?CSkIzz$)1ER-=3|r#<B?#6t5L5fcs+UdE6UXEnSc#zrR4Ul8Bc?D
zobGE_A|!C_SNqd>X13c+PwJmoy&<gI%d9`A%VAoi_UC)ko%)V9FP(c$?qBxG7h&x&
z5q%Y$(>+#e%zAV9yWQv2ThpY|<aBIXw_FnFTpIUX=Fk5(d%Gv8coxZIwB<6f^c|V~
zK)7AFL8amM|M|OxEwA66d8!~d)VTl5s&(^TMwWEHd6(lKn%2_ZzI*m8yQV8M7PwAR
z|H<|3-}>IyNqK4);~pO@GC6lbu08b5<kd^Muby@|H+P4HnzmG7XXdsfrfQ>Ay_>=x
zuVH<sFh$)yKIC2Y`cE^~e5<z$iHTun>E3Zja@iJPkK5CY1g;%+51w>ueQ;TUIFohx
zgXb{~YK*Oh%g;=?{QE(bmC522+2J>YD^`Zuy=S{r?`GniHcKVzq_6IRltV`@{gPM^
zc2TLn%8u)j!|_+^Om}Z<UEr6WeE+PMe%6ae?%di7H<k4-d7XTa!`@=YV!iF3^unLq
zy}xbSD$Nroq_=JrwA^-D_vpc$t&xdJ*PZ5fyT&SHv<FYz;A(Vi(z2t|W=~)J{qwf;
zdqV3JTju|}p_5X+Zln0R4iU)<99vpiPQ6J#^Dg)G#u=9R3eV;+Ww-`cYMmCGcjt+&
zzwa~g*<W>UI4T$(6aM$*{r(j<7u-zbzgHIgzA)!J?^^MQeRt33TWp=85Ez<W()8(z
zqU?-cd0P(jUHfXemBIEI&mW<$J};|&^6zU4jNt4sTD>jQOC@sg)?W@rr{=A{ptR9n
zW1~-j%(}gO^G?rK=Q-hhoAv0Lp9jP@d~(sd?8T{`@bR|x7lFbZ&pw}@)MmR(eCqLo
z%Xha=KJr4ue0zmDx5Mp%!prk`XJ6KJKC)^__M80=HcXyh6?}Xf>xH_f>o%8e+ioRU
zY*TMOzdRuH((NnP)A=X;-e>+y?AmF)2%lWLZ#m1&o_#*gcJFq1-?4pXCPr*<u{z7!
zq5R73sfEqU7tar#WeH-sTadXTWR4}n3*&=Eg74<ey~Fb9UM%PKxnF<QPA*sD|8F$^
zY)Ce9w<3p0#HHKvU-cKC<Ud}mHs${9>%S)`#d}=3-g{wY>6s)(ZspDY1e}`HkGpnG
zDi1nz!p2@Pjlc6{s(xGSCSjjrKYb;lTwX4bj+`*P=(F%8U5PcERXf=0^Gb}lC$4#Z
z=l}i&?U(n8j-Tw`vMnHuW7SQa&A%*<PRnKsIc(5<SSc-+n|sAupZ!zv)Ndsn$nx0t
z@u7Ozu?HrSM`tO#)tJy;*^#*S;LMvr*LQJ=SNwT9-TSC`=&H#=TGBTZUs?uzcMld+
z+n$`U)#0)0Vupzwx?zE<o=thh_4d0{d|HRQ!`4Qz{TAJ~%e<Y9*55BopL(==!PX^<
zmQ0f_y|;DQ&Eo;n!Ve1C>NoQ4wh$>f?R9deN6^$nU%x|o-&8jI`^3e)`RmDVKTf;8
zIupbb5W6?SGKC>Prq@KqnA0HUj^oLz_ogUqSeGTcPUp1=x36zW*6(ku8(eud7|UE)
zDSnBo)k?;5t?xwZ67Clt&wl!y$T+VxF?FS5V64GK)*~!h3oO-QC2mglPT%*tHT?W9
z#x)9B4HKeG^MxKT+1;4*;?_zt{n@s6*O$%JxXqEO9@KlIKOs}Ad-;Y594ejHH@IZS
zZn~SYpQ-5m#5pWsMtNIy`KX(D&0FHcd^9y)MNaKR%Z9VM+hg|>-|LZ1c<Hc4;m$dq
z?gO5@W_R_h%aVTW6hB{h_sQ1vk%l|t&uz69%}?I5&T#*m6EVVNx-HXxy6#{xH&O0a
z-mJltEp4smC(N`mXk+84UI)7$tQ$UUyEbVJ-{GU-o>4b`ly`1qPwzHu^1mCLYZ3Te
zkf&&owSLj>$A?0tR;*YR&8fcd=f7`jlC~?}-xafScTy0O&PK6EbJO1{Uvye{g@L>D
z6=Tk{DGO_O<eHN9DJt*rQFO0;v-a!DpRLgs`;Ka!6%vb@yxz||@tIIT+i6upw~tKQ
zesX9`i<wiaAo%c>sprR@+iN!@EDH2$`j|IQ&o|^=xAbSl6P@YvXNZ{xPH($eWyiet
z%gJeB;`&W{WW{nL*GQ$GpLF;B{oFmPR|mv&)p~h*Om7aJ7V&@ngXek0J-0W_cyuSW
zbk?P?yoBW^{#;u4L9A<ct*M^VWjXE%&s`tqM*YzE{yL~g^YxRkXPVbLtMY>)WesD}
zG#-@~>S{$QC`euFdbZ)VsdMldqezX&0$VnhdM?)WcMtEm8OGDO@k;V^F?n^?_3JD|
zOlO|7N<EOdy|QNck(6SWtpVjPU(CJJ6+Ly8&m5+J*P&`{>pxx5eUb1=(I>@YcDCZO
z*mvTuST`(Tn4EfN>GoO4c8kBSecBe8`zldk(+-V0d?lQpIJf&MCh=xnW-eH1l-uF&
zX8lk96-Pz5?q=7^Z_Sk6$O>nBPKueW?ryQCu;csfEsKud`CSwkA1(2uD^Sohs&(^;
z<7;<vEOoV;_}J&zq`4*@$0j)XEjKplQrF0APP5sqXRRIUBKt`FdeHtf;WIrq(_|En
zZ`MiYoGPiUxXZgP&Z9#zVDaBQhi*;ymFaz8t;d#gi5zo}7V@ta{-lvD)%e>=e|_7e
zgAptLS&Ex0@D^KtlRx2Wb?IBqG0q8x_TK2vt=tvxN~U-r(~UzmqW|@_EI)p|b8_*i
zhl#Ih1g3vE#m2+5F(~uxo4UzddJc0^1DO?y&#)!#-y+VqIBU`q$5*x|WAjfn?~G`F
zsed5V&a*USiLTSL$<y!Yr@GijHR(Uent5mT^KVbt4iq_DYtGtMb2x3s>ZTn1InyF7
zKS(<5`Df(M9T#Q4(?QiUsz&6}Y4zfi&o`bX>uY+SS!jM{)h;n*Pfs)DyLT8AoaHi4
z^*QI($ymBwJF2(k#>%%mOP{*i9XN4o>)*MZdR;kn_tK8brKV-c`E3hdSRiG5!`Co!
zZT0^{b~O!w){E~Xoi^@a3s9Q>x;5QF`QU>ETq4`dA3Ta-cy{LcyH};#uJ}jyFWeTG
zTCj6PpT+|om4=nyLcJJ{tm9wLs^RqGw!q^_MjzHx`|r#<=DcpP!sJqigp0>~j9dbQ
zkEHI%I>Xx(s6XNFuO=3)nz9x0>UzJ+GUFEAj#!}6prL;M)vJp$-yc#GD-1rku39nO
zGa!OT=I^uma}yTuZ_KaG(TQeuY}(j+?f0@x*<V9*LJw8m_`lJ`v!+G=_`U9HyIoVO
ze=51hM>SqPKH-I^f=-uXuG*(J7q`vv^@w9OtDEv@!56dox;$pLs{A_>Ql308IJCm>
zs{2Z}sW~Yp+!ozFmZ^ETD)pyun8C?QRj+S}Ub+>)E#2VrTtAI5$f<rS(}s@>W(m)A
z9PUoMx={7|>419;5=x8Y|L@h(X)RCSeZ9kBo`}}A>+he|d$KJ)we#J{w<<prC(NyS
z7xy^%|C$SXFYkDFJEQFF<at@#8GGc;E2?gP@ad1T>bX_oT(73CJI_9c^GMF&t?^m+
z>{Qn@AH1k)w(M!S3X^t7c17!~qiwHEEe<F@Z8`XZO)t*=?X@~CEp3y{HceUn>#jYl
zdf}ke-n5HB@r6y)qZNDpd|~R$zLc8$wx{dq>Yd5;*Va9Z`{0xwyR_;Fr@ri!e~Z_C
z74ptWKGJyZ<hrtI*YB+lH%_u%=rMCmpF(n4f8&Werz-*<o?O2wJwRm6M2VvAT<vJS
zlA8z3*GYfneLPhwy=>OYr1$kA0ndbI=qasluK&ETdC!&``|cSYmr-TgTGcp{dzE_v
zbLPd0H8~1dE3KS8v;26~vNs*=e)M3!=KJtn{}(?D&3vD2EbhZJJMqBkrp~KuJ=Mxu
z?xziAZAm!ivE!jZxw-rvx9>-bFFjuA|NGN%zqstT#`)_w*SBRKJD@q=j_G^J6KT<-
zo%Mgu@V>d{%<(+Bb)V0A%f%1XM6WN}c+NbxWkY73#GG#H5{d6??p6zZ^SM#CoOwp`
z-UFM(8U63e*R8w6rt_|3UVKQ&<mGOPYP<D6YrK@-Jwtz%VPx!*#z^;h?>pz;`Skx&
z+mHJ7&KG8EwkbDNS+u(E{Tq$PbH1f-3u&LTrmpi_;jNt~-K6vKa!gvZ^S;QOzosrH
zeQDk9rL*o|dh*G{%%F&2=Ru>mulL&-_s@J$oVH0oNMVn>nT@B0@e|4ID<#_|-(%Og
zoV~qo{%!NidrS{13ls>d9DCr`^>ghP_K9KbDc^PaxcnGoSufuyia0eZrK9k!LG_-z
zW%on#13ixSh3@KFA8Ptf)K{%^ui>k2A}4d^{3)FDL2-7IM1s$TPy5xKJXU;?_FJ)|
z>S*Cp^^jQo$tAk4j!l>>RLm;pa82ou;EE+T_I-4+to{A(>E5qb#4p`#o4VXz?`+!A
zV=MQ4jf&&3QF4w|S>tm0-EAK`Yl$@lTeB{yZLU&ydDU~l9k!c1snXi<Oa~u@7fkls
z$;fjjZQ5@k$zGi$OdFp_uxchRKH+w8YOCf7y`HA^*Gs1!=a*{;5{m8CU7_A_Y!=Il
zMuv6nYin8SJYK!N<RWGEAtLPen@biex6f7Fbos*fu1Jf!-u7Bbnf46HIyu{tmmNvX
z?8*>YtX1~x4r|d=eMZ4afh&q)rd$g6%=YepDC5eg#!DG7G5Wi<KQvmhYu(Bs4)Lwi
z5+3A*$%tEj{2+ReGdUx3tM%3jT`!4MWwM*fQ!QpQDrqt6ZfWLkl1OH;+^W0u7S~L*
z*{!ve%p5hLYd>WR*8a&mxi|2bvH8C@I?~S$MENb*cd2Dt;F-t&#5S|Yg;mLX-qumO
zGx{ytiBr%1Oyj=5EO&`XZkmjOSnB$<Zk3`cQ{QxCEkC+oUDTN!cXAIs`=atO=}e2)
z!^g`Fm+U!p=bdIpBWq@!TiO#nMLCz|r%#k}uPc68pZoQm%-2WPwll46^(%Pfe`?*l
zY1c$tT-laY?Y@3xy0XxP$M<H}Owg#1;CUs<es)EI-<=A%6N*NXOVb~8S8kn^qk3S=
z*XBt=6Ac0w#950RlAfQ{k`Z8gcr-IG<C>q+&M(F8O<J=|8)GIL1lR5f;lB{E?nTF$
z>3tS{55(CT7|kCF%hvXAcy6_I>U&n*zkB}NH;sR-A1`=V_wbhb>5O)(cL&UE7|U-x
zf1qlyzBEJa@ic1(q3_DYZVL(-PQ;yS+z`XO=fi1>#tjxp*&Peb4%ob7KVx{zql%f~
z!G<%k9dZ(J2Yy#SGfR5SypJQwu32mU55J3V7PAMb-mjRKIRD_|`F&}X3B9}v6kBp7
z4$l3e@+9lq40!={_us}Vk13T$`B|rlO=Ix5nP2*U>$UCb>=jFc?04R)$nq7Kyt1LA
zZ%G=zVq4FY8^?^#JbO9u(bxJumw?bDiN$$sYtC7H|J3?`$Dv+zc@C53ilplg_Cz}v
zMhFW8Pw-55%f9pV*|O!95-WJVTj&a{?06w~M*c(V>-YN$)S@J_+kWhE%;}Q1-`(|D
z=3@0rO}Bh2&4ZqMq8U9Ra~~d))hr1Ue38=ec4I|ufKGAV+f7m)7BiPH>4Xa?23Fp;
ze9I^GRP`RmPL)=(J2z*3=3mE}nk?wW5OlXZV4nQmhzC_diyYI_QYU<O)?wW^sX6*v
z;2aP0%sN)L$?TSV=~*W-CNTNCc=80bExUQGX_jyDrdokO#@UXRP2IY+l@~oeCEO|9
z{^{3h$FB$WinZTo%Vg0LOBK=V*djaW9E0sU<3^pcrvo-=T>4>gq|l?kuv^jVuE&wt
z94wz4o|m;%{aoH)r;uM9k)3z_{eq0gPkD5{6}AhO%?XQ{c2}nAgxx>sz^}WC9B0&U
zE=!Nm+qv`LqD52fR;-<VCD=o1rQ*Do?onlP9oC0P9NDC-uJLSV-QIb853E?{sW|d&
zpR><Lg0;OeVDHH-S#4Lodv9{mIX(4?^Evn5me<cjOMhswU^CnyxiV*u@2!o$tRyma
zKa<<ZvA^-}YRSTB^I5&GT|H!L&hY(&p1^NIE`yye*41`t{@0UCAGlq;6|`X2tfgUp
zK33#EICs&pLP#}z`9_81pE_QI^$R8FKD9d7Aa=26`IZPS&g(kGiLYCax3?>v(E4S0
z{rQBDV8-jywux0<_b~L?u(dGz%U7Ah59V!oD{v?wzH7^cM}cD7cN9*vURueO`SOv>
zntR_~wk&UUY`xsoyz~Fx%H03VW<M2r4`tn7*kdA5ZE|&%!i&YcFH#<Ni}?Tkd#TXJ
zP-2SOfit}>oLlaGE=ky0<fk@EGBc~ET4Tkk?@y=PX*~Ptvx1_VRzQlK$?Jr+{Z}&D
z%%c6@FRK2vY1xc7M-CqPaHP-rs_(yW=aP%Mi#7Xw)V8j8#UgvZ(A72F_N|-tp(nMs
zgZK7vOxmAY>HjxtXR$@%r0<n&<qHxYwaOO>ge8a^2{?AYMxsZ*h%GF==CEC|l9Q|4
zjCP9$KIJ@zcNivYJv!}fSKfPW|B9x|TPy`nFAAR5&$Iv2<1^MDzOChU`1oLV{pkhC
zU6L7HDyG|+&iTq*PU%qe`n)=R?V6Ron-<)%F;-=DtNnA9b#kwUkw`;y=ET_P+m<ZP
zTlLT_Z_>nL94X1SSyLaKe6=O$kb(0{wcP9e=}Q7nDtc+ET}~<UviSVRb<xX{ZHi7w
z6L=#um4laFd-idkdVIgpD$cV(IVA=Y<4ZrJyHr|l>eT)%r{HOJ=3Pk18OF0uWBZm&
z<JxKSd;(_@%VN)@fWpYK@L5Y9E|}$BU|sh#_}x5%wO1+~gr@hLtJwQPEOgVA-Kra&
zB<Jj3Bbp+vD%7d;JcfDS40ndW$&E+NMfNPHtS#9nKKbdxhub=Mcl2b2tJ}TZeVwyl
z<z}5~=}pt5UM*g)v+ma-Tdv<Pyk5GmS(7Z#@t5hy)Q$sY-}Y^Ouv$g=gi&3BvVYeM
zsj!j@OZZ+*f1dU=@X5~kcfPB*Ogym3u6g5D)uNA67)~2q+~C^fA1YRVjC&DFUdz;W
zNukQ4jpCV%vaC*zlp4zJe{X%Z;)$T;!Ec4(yZnTl&tGj$h&J(Wt6klA?U<u}Te9Hc
z2`l$-MYWoXJx^5m^!euLxlblbEO&g!#TNN!Et^?$MDsb>ZP}KVNs~ED_jxXwW)Q2P
zebXspo738a%PcERE$6X5nz3p*b6$7hlOT_xGtn|3?(b)<TR+vR--`F$jYH?Qw;n(B
zkXPnYrR#FZ{zne`-#!$7mA+wq6u-Wbjr!Xk`=nO3&)<D};Xxkr8}qo1wcLK3^I(-q
zFz5FtQ4=_iFiAZQ%+8-(eT6Y%-6EB+?Bxs&PFAfij(*Dhws22Sr4mQQyBbkT^WrUY
z&Kx{l+|cG8G2t*X>rzfv_T`E@85-l(`T1;Gx$fx7FW0S#Sfe%iIoeu{ctwTxUQJI5
z*mt0z!Dzji`Mtw|{99%UD?a{Eot4m~ez)vb`iuR?Wj`jb>gIp?_JPM=y}NPJOm`mG
zegANrJ7Lm!-8m_hg$;e|3m=_a{^4lSU(L8?_2kq0#0s5dtT!&?OKuZRYF7^Ucr?F8
zkWXM@@5PO!|1WVFXB+R|7-}k#e*Ajg+kXbfG~XY5Ct7qdLS)88{S4W8PY#N8daSO`
zKWP@$zfm|p>h+6f&Mp7Xa&oP{`b=>r*X2Ln`PCmhwRaah+thUb`ou~Gb^cYJ>&%yi
zy6Jl5Me}-`4m?_^UDh12;Q7O)PgRnA{;YV@vW<`JGLOjDc?X-FHBKrlF!hqKZC9}V
zDXgKTwEoW1sN<H2yV&J|wp^IImMtXNDLvBA*}x@W^Nl^sD|1D*nJ6iwBnGYz4-K1c
z;mT{ET^jLtUG|6jIuoXHd@fr*-6=nJcSWeoqr^WG)iO3NV9i)`%I`sJ&6SWMp_a>M
zQzmB|kZ516qPb6@JJ+N&@sdS>*xn@0smFGU9}4AhxSxAN{r@G`19A7aJT@2No!DN;
zw@z*9o|-RW&zcJs+^YX|cgdYj-aO0ylkeyGRj>NVE>L+!<<Wym^#&zfjt2tQZX7c5
zwFr7NmAzHxQ^0ej>9d7e<72md$j+bFbo9-oh6OQ9%=+^Wlya`>;P{q$T)kUfGkGGv
z>UFP|Gt@1@?VkPWt$p8i&*ZpCe(yD|#q$qk$sJX+&}4sC%wJZ!aF>5jBxlBBPU#G`
zNlU-&;&D5jUcWyfdZnr%d&~3<b0iK4SGn8>y2ZWJG<W00tta(APP#wwdGgWYbp@{l
zR!AK?KEo-&lH2KZacY9v$peaQvjn7#P1f0*pL|E!DW_2UKm@03j-`E)=1rd)@_T-W
zZTgvz{i-83b%Fk^u#V|T!b%y!a~Qo6_Z!T9RrgS1<AaZ3r~e)|ZEh$%XQ1#Y?x#x8
zzT^J$8s2H2n^(<ZV{!7iX<+;7`^nEl4_F#DOT1Wc?|`p=wC@Q6gO`sV{Ao_^?Ao|4
z-9&8jw3Gy{M+fF!xbJ_fQJu+CLcwc=W!tZx5$)yNh9;+8)}GYsmMt-qy71tHC+myN
z&i@W=VrVIpl!`5%QypBRZ*@IUA;)*gI<X~xElSr#C@WnIs`|+D*J6R&2L|Ej8PRPF
z$I^c+ExM}fB_OsSW1FG3pN)h>?#(#`d$@Ei1<rGvx+Nv_O5QZf){Irb=X`Xnp0Z{0
z%D0&w>~@`@ectfU)%~SkUzKh+tG|(9R)_QFUplIr5>xe;*d%{#y0P=|;p--6j=yca
zVXV0F{JB#X(o<HR+_a)s`}*}Kb1r=7R-LcBC5CxVT2Ep?nA2q!@vjf1KkA-$^M8EJ
zKjKv3)w2@Yc4*Gn^Z)0j3qp^5&F9@tG}|Gj{?MUOVL`I}*JtuhG940&v%a|2{(184
z>Ne@+;?Gv~m;W{>myx;DqifWD{kBNnY~_NPlVTM5Ee|N4IbalGJpa^@TQeM+Je=m8
zDLU#UDCB#yz@scRY85wwd$;OQ|CLFF7c=#?WqQ7Oe^1YH`oz;$Pfvf-uFAg4+w#U&
z2GJc+b9zPmrz$khNNQV^srH!P^jv;b)wlocjoSqde`v2|o5s0+$CRBsY3rUJnJ4O^
zkzMpERb|6*YbL(L>VhZ@-k(L<msmUg>6xTkMb>}5z*1mvqRv&U{b|54#lrke9423U
zJ}hHhF(>l#%vy^LZ(Nyt4xL=}_ryze)pOnKAA%BeRedbx|DAQ^LXA0NbdN7<=EI5c
z_IJ$9LrR3EJUetqg{#d+Dse;b`Dr}yW~W;ZRM#B7SIS^0zH67R_SSE_<)1jW-HZ~G
z4SjI`=*k-rt*vYFjJS6{dDoiqR&MtcUe3<t$@;%lv@MT3UBqLwDPYm5wu%#-D|R`Z
z(iiyXd+FS*3RX=&N9~)N<c=+VzxPvLvqZhz6!{Z92abNV<2YBh!ejG2@j&$j3+C+&
zQGI%HV%3yR_v?QmAD)}ZUz7b_Hv9JKW-m+6U-w-0rdS&IoA}0sa%JC1c^j)eO(;KV
zUIKUY8op~;{Q9#ToL5=?cpi0iYOvt?(om`6jAt(#(Y@61q4;8JxzeVsKK<v8u&7vl
zcim$8XTk2^2{FdMIP<vLn>TZZxp?QRq^qqf+v_FPaH=YAiOIa`j=)Sa<)_Sh|JNr;
z8JyVGw#K=_LG|1+g<1DE^b~eZIL4VY;d{nAhTA<?XL&sMc4>CoLq5%J`BKfYq@420
z$0p8RaAc)^^kEwzt^~)%bOZl4yEc7KQLV~Ua#PsyyvI4Xbj9ubZucV*|3BHUImlc7
zNN7$?>AE$uWy-{!-!xyz=Em!}-~Zwfe%2qF>G=jSVs8@I;xsZ>GB2*IVk-&R7O}@7
z{GETy4CQ0H_B<5yJma(EiGJ75<GjKPcWXbkSteZZSjXpe$)_F7e{|27yMN}Ns2gEE
zd&f%akooPw^G{6gI{RpG&_zAxN4;l*qHOXz-tDSldh1eOD8?+)BlPCjW^ToQdXJvp
z;wXF}Y=60L{-4k*v-6f8dbqn{k>p2?O^+QP?|;d$vy_4JVhYa<xvT9@h0Zw5mH4pf
zuKsx?Lr%w354L;XJ!`*w`66$8^Fe5UO=%|MV?K9F(dj4B3?_4#<}SQt`{f3!mUH;$
zyNaU6lKFHF%2?bEWHt~v?s+z6N%{-Jf>**by}s^?dXQ4Gm~Bn#-x3?{Y5PLn2Gnj<
zsF=n5YoE@!zq{)U^*?hYm#j?{Jn8dG;X+fiXUVd)EK>IB?7rq25^fonrB|lEt&(W)
z-BRW7bV7ih&OtvH>B|vP*HguwM^!9&^K;L>RE>t^BCl3Wt7qF}vA<yB<F`luy8YFe
z|0i5Zjp^k7>f+8=CZ%N!-4|-A`r^HN|L}=hv<lX2J8<%Q5qnIhhl#|zbsC?pUivq&
z=}hWspHJ)|Od=CiX0ga5uJ~7)v|H!n^fK)Vxtz<rcg_k;c&xYkhuVg#GiPwDYS|o<
zr0|XZ#FZVToJsN7$w9wsl}kzkJA(zkC<eZo9&CR8r!M=qUFVn`?p|3urDE~X#%<Ae
zceV;L1m?VGS{U~!rL915PD#sM#lAc)p;xDNs~+$cS77Wh_`a<0@ZK=>rE&GAy${(R
zU$IBVG~`g_+BnH|X9Iejeod+n`X^yf)$9KHboVVD+pj(L{X3Xv^oY*7$GDrNSb2i3
zpOV5ZwM|D--~Ik}D|&~B+M1>(kq+WTm)Q&+i#};Oo4D=hp0;^1hMS~$RzKWU`Sy)O
z1@|kBJ15JJ8uj>{>dxDtowUHiINsvf_G-=#E-xnTofIQJ-9BWw!XAcx-!z|t-V=4C
z)*hek`BSKD$(ub2*@{}X-$_obHJS22?E@Fru7C+Pws~!@&mQr$o&I)@(hQdwQe{H<
z8>;uIYc9O-Y|;ZaW-rrRk9Z$>jV<rDUvK{OvNHV7&E-bZn@%j^EVMG-n`5UhrlTsi
z%yy^5lAbxi-u+^ar%t_k;dwmo!7TqC;nsvn_a2$-*pj+PLiPWbq*&H7S9YA5lf-oC
zqN$}0QyRyn+ZI#uHuu`79S?iUs?MfzQ@6Wq#qyXp#s_azI=yP$99#Qru9C=^%9W-y
z|M%oXg~Z7?$mgyVSu}6ulv}T^>VGXiKcOY@TJVy}@9EiBSC!ofp8m~lmhB<mQ(dw*
zS%pqs@ZO+w=#*^wbk^x|dpd*;a80pr-|{)dKr3fgcG(&&Z^z|-v&`+)?B?rz{}XeB
zJ23fX$}Z!e0v;8gl+f$(Uu}Q;Ou2k->Cp^t<9Orkd$$SXEb>^+A9i-44&UixnR5K)
zOD`?BI;+9^(S3b}+j|0d?5>oyEMCrakZ1MJv)^M<PRV@Cad%1M`FxJ~*2zsl6=p9J
zi+TRI1Rd!)&Eec5{i0^tn%(z~pL_jzbGOyWh?M;%j-{gSJ5*wJo$!9iCO_NCZPu6L
zh8L8D?=L#P(`}7wV)b{^o3fMJy%sz<7qlRK=Qr<dH|)}+XDI~r{ZcI3WSZp7u-<ji
z(iaPjn+xtQzPNrW%jp+K6)y2>KIeMBBW!`{=g7&eCu-W}-4&R*@a3WK^K*|zUnt(8
zqQCo~gzf_$yIcF%)#PrUJIK$|;Og|~y5`H+g>wX$cpv+6H!KvNC8pl9j8|isA-9Z4
zpLAcJKchtP%p1y!c8DCBa<^d_(|WtTcjs13KJ`&Einqi0Z|a;6p6450Y&_4d%P5>P
z;q#6i3zHiyWjAKb?XKc~@q3N`yuI7+RtncGUVW3{#?SOAQa!q<GXGlba~_v{IC;tY
z-RWhot0bqLwSD+W+EAmf<zv^Mdv_YTBQ<BtivG0dWr&LENuTmd-VPccZ+a$rIm|xk
zr;|_>&{)Xv>4TVk)LNadp{r)7E<W8OEm);tt-j%`dB?h)`uqP*Sh90x`|QW%QZo;g
zupWOD&*T5--pa`g$4%D#d1MwbPwM>5sjSnlOqZ<u5OrnE>he=>U%7lTiFq!-yyg#^
z|AD1^EX5BBC!ZI(Rdw~`@zR_=w&gnxr#`Z4{eG_gLEozT_Ro(kI2IJ9eVtLNsJO|8
z`~NiI@>!QppPG~AdBpMVho_gs;&1cKu9z40U~bv&Q`+ZMC2v(l&Mu!fFJ-q=(&pN0
z4o6fhS1fdLQ2w@W&I<K8stRXTz10nWdmtq$Z&rbtsp3w*m71EHo4De?w67KOj?8zw
z*Qpoq&{Zmt;r!z}`}AfTACD1G`nqq$?UUB_-#@XoX!RI4f90I+`DCdg$0dy?hu(SW
zH~l)uxN_Om{3FVb4yk`FT$rWVDJMU-tK;UW>nCn_1?5=JpOCOxTtjA><yX%?+<KDh
zZ4Nwe5dZYq{mUKqvmVzkdHwmj$%I*^Z*z1@(o*+iPyNHwx5hehPO0)K>Wi8bm05gF
zf6hXS*P3jzcUd{^xS!4KT{r7MYQ+qZri2>@s<yN!v9Dad^~<zhuQuOUt}^?{WBmuB
zl8X(xn3qmj;#q%ljnTr~MSmX&v<Y47_V@bD`dwFg>lBp@zr{k<?R{~-_)OcJWju=F
z?;iPauTom?x}|aDku?W4hiTidJfoY#=_A*@<+5P*l*uz@{@Hx<;}o&2_hq{x`eV6x
zd}9kH37*cHzQxJ>+?K-6uGd($DonllP^<ZNFQc-GmvZ&<Jxp;c*XMuCt5#I}zBv2c
zo9BOT2&nKooT;i?#N=+f;>gN#Z;yXuV>$g`IcHRjy4pfN?t2nVu9D>f#uM)Sb`?I<
zJ~81`<#bNNPrrZP_YFL6QE=jFhtN8;Cw00~%~89#LiE$TmmR$l^-arpmu{V^LDfbJ
z&e@quY$6}7U0pfz3}fLEQ~TahE(O-x#&*x1Wc3{iTK9Cx+ZSw`3{F?9{cnAqk?pAl
z+Y+|9nJW8_oxjl#x1ncc>n#KErDruu-g+#K<d>Ug(o^_p#h<3sPQA?9&qoaBEmrA?
z`=6B6XU>p#R7R>&>&l(=>%YmozuOiq9B|xgW2d$BY0n>ro_kA7uJN7oZx8d-B#*Q-
z$r&5BBp>rOIy0Y<S@><qesfLru4M<ZLbe1pd|#!WcuLky=^Bf{rSds4cKJyzA2nQq
zID;-s@<}=SQHR0pcK-q4z=J`$XEhDBOg2?obD}?EU8s7G_u&eE3%9lkrcHv6z6oeW
zF8c7?Ig|amVv~C3??c`)!B5$B678g$n|#%_`%L=0udAQIJdxpQ$?88`*B*)KT)(5y
zpqc6JclPz+q<_2FCg(j4zSS75w}EBO4td$DQxy32ZV$iNZ=e1B*%^nsek=R(7?obR
zzL2Zi@keZO|7}GJme0mYmsjk_JM(cuv@!d?NAq;JEF=Fkt>bddeEy8_i|Ud0S#Q^h
z8LWCg{l;1Mo?X-b2IcPF?z(X8vOP(6|EF4-m3cZjeA2$M%_F>Kou9CVD0`!jzueMu
zLd~H&zCTK?tKZq69BUX>&Rq9pg4{ip$ANFovgbxx8z@~$-K|h`?9t^#8x~ILUwWXx
z=W)ZO1tt+&e+S8LF?xO`^x-_we*yfD)Ajx(?cF2Fd^_Jy@aKei+dr`%F=EQ>vCR2@
zG+Swn&qb+(m4T@<^8TE)nS3DT%VH+=`${!yCWT~p?|J@I?$aavB^!0GJ3OeVR@-@E
zU5+T*K3fUB_l;Yp+&}*=XyK<)K0d`QMb)7x%r`A$jJ0bkU*GNO7M$WZbB4y7i$>zx
zrn7Qa&Jmrv;0=RqZs_(jQ{g+eetTI9Mf>r7jyTGe$1Jxw`26o~c0n)R^GA~A+_}wm
z&e|rUM0VGas$$lxjf+=(JJ$Z_c-7KV6J9q?tl1LboN(Cc!wX%V(hIu|`Dn;$yi5}l
z7H@D2{=KKx;`6a;F~_z&5-#QUDn4bLpY>Nl#MnUiYQz)~zxAwa1-^M3#G($0afmvX
z@zv(7`W`apc8u^nu3J+az4NabdH>O$^pWpqeZeKG_W6BQhI!179NTnfY@D@0Acp4;
zv+Ac=+a111^=#a$e?8@rS8}LSPT!G#D?iAK2J|R?F*qmpq%z<4K<?og>oXM&o%q<h
zXx4+{pPG9XHpeb!`{cXfXohdWd;8}r*sHI47tiCqcy!OVIfA_J=ljK#Dl1JY30lzS
zYb00j?R9*DV8He7->3HFac(YKAbvnCsjK7n4k5*p(RvE6T$VUo(rs^@yV9or(pOn^
zB`5Jz%dE8X;)UtH0_yhd+sz(4ou0R9*_xwKE4F1a+>e%@QU2#qetcb?qTTNrwt$cP
zL5&mkc2B(a>s9fg=%UCcR|GmW&rG~{*hyonhBDtY)vY#*O5W_c^(4b*R`R4=34^U}
zmjVUnghkusPMs`e`$J;3meNX(bvlwp9G4&bGn!eLR{WE<kn!0k-j`Q|Pr24isk{BH
z+vDu5#n1oMc3l5!_Q#>ibb5|%L13hpR>|V_V%_;S_bmM0bmldqHH+!(jc>$~9gA~T
z9$VPCb=Cy++`?DY@n)N5H+@aA`CZKU;f3`pK@(U1Idc-6S~__RHZpVdtUTw!e~KYt
zFJr_F2VG%btuTQiT|Ln$g*%p9<UO{_D_-tuvHsE7=3hJQCJQj0RI07}C^}7YW*b}a
zyL;ttwS_YGP4k*Q*Y3>mq_j7>b!Vpu^e2Rc>^A@MfG?-c;!~mZ(W?>FHCj`)Mhhp*
zo|6^l{E*G*-$rq1Ihoy#8x;PrupAWc=lo>Qz?pvN@}wp0@<~tExz{e6+$^*zFqzAj
zd(|!*jTdE{mVV2p-3rXT^(*LY+mhhh-ut`MLvFQA71Ahrs8r=u$#QECYxA0UFAuKN
z{JTVBrGAdUqie1QN)|kw?|U{nexCFESK%C~rlC>icYV}+Ql>pC@3yB(w1=bjs`do7
ziB@`_LSz%gC5;O9dav^2`g-G-Kmu!2)?f2ahBDPNKfRlDBqGEtphB~KSHTyN1#F7%
zzBZ(ux2*oK^ccUtXX)L|0Y9C)<Y)f4xI^q#@suwb%y*V)DYX6c+3i2^r^VLt(j2el
zqHJ?c)xA5^Zc!HZ=TEMnIiIumDks0<Sru10ZQ>bZ)*MUB<<6NVEH0QWt^e_2)1P;j
ztTx9?Uhw+k)maO+9LUJai@WW<C(qa5_jW^{Cu_BzWi1w5_(0vP>(3^yn(6u>>(&VD
zwGaPi+pWhUXn)tLeWO>psCUP)hneS(1U%O;O1{P>9<e0&ZF;1J+QU6xZq8b;rr7pB
zUz@JwqXU~B2ivZ*-jl|sbYVkV?JL#O+q|~9D+e$27s|4aTQ0l*-LDz0lQMg~_A8y7
zT*G8L`*Bv~`hemYljR<)<vrnk?~6~_<~x4M44i+b{`}p&;?>v6MH~xGzL>%DKJL0_
z!esp$eVuzAmamcczUOSs=9#8Zwd?w<;*PEoJo@dza@LfMACp7&HKzP(l(x_QEyQ;9
zc+mUcl}#Oeb{CJ_`NuV}NH@_`>+`wQTw43v=THB(<>VRDbp=uqIZ<wF93y7xUeWv}
zr*og>xSPc5Gi(apeDU8{=3L5Fxq3&lyVm1%<hrc-0LhrOk2(stug;h&s1nC?c7E>T
zbqnTY@UIA6vs{bAPx)KELQVU(>weQ$UHTKq6qBd6VpqkY$4XD#w&@-4UeEqt>de;q
zKktmnB%erdRU5{7utu)f@qE>^I8C<2lP<aGr_AF2yRN@y&z9f!qswN=*nW)IYdPtV
zg<N+bQ{LGFHQ$_lBDQnvE)L?<4`kwL`5*ag{>#!5G4(}dZ?iYXZS9!(RebT!8^uYS
zpLu5~dG4(2xs)EE^Gt7QMEZpO*xd6i+5#o|E3W+WJ|EigSLof@Y|*;{y{+drZmHt;
z@s0}*du(*-9jo8PW5tozr<yWm3TZF|SxT0C+7OcPbZ$`DVWk-oMQQhcwmDUwpUcOi
zct*qG@mlUJjGV&L6AtoNFPvQaXqj};tyjK$yphsVRlJVB>1%%W-TcE7(ISZ=&Xs?e
z=PkR)p|IC2_)NkC>n$&Kckj}=S$6ihoX{i2y#mR{UVGcjtJA5TV9C6^Z2K=uwTVp^
zsxP*_d;450YvH0~{bRC%?GrfP&Xw*nEqeMetDjln!THON-t97F<gng+>%PbI)AjjZ
zKDskoCCfyM-r_7P7CdEfwR4~4Ob(UOjw|7X*BE(f-h5o!b@1IB#_nr!k2|zCr`_{1
zkiFxT-Yd4x<9J_NoAb5Hj_Gl4COFz(s1@G3)jUn+&Xwfi86AD$M<hSYcx`L%o+{3p
zx@A`7tA*Qb73T16U&6Y2J6ooz`MeXaX7**S4cu!#OZsLhTdc-o-kY<}>^XUd@zyt8
z_T|!<M?ciCsP8zN(-Uc5@SDAz*E%iV?*`L`m#Z&rf4?ic<L=aI#v_gLc_s=H1~b0J
zlrNjzU4BNh!aY4**8A;K=GCcsZ!O#_H`bV2MkujdNUBm#-?+1MmPcy4tN)v$KRM3t
zEk4I#@XKk|)~J^+Zmyo-r?xUyB+W`kj=SE@S9S8jO}rg3U$Z_J?bWMXoTnx-_2r3k
z!Fl`Bg4P$Q`(5=;*lyOjVTvQex?KX|;Y+h6f?k&IzO7vM`}7v3H@l~EEML_5XxeER
zvpb4%tqgltTK3GGcmJT<3ftXD$FIIm-{$M6$h^OQ$C}Ii-8%x834fI<`u6jdOVl=V
zul{pl*-LU}<$O5ZqhJ=a^~xlT&E48&Y^TMRtPP9FF6evtt?K?)8{dKnvgY}G+@6lh
zGHgC(S*I14?~w89{=Q*ST+Xy_OiE7zx+_;)XR_M6N+7vo(wZ+%L&Uv${USM5pD~#n
zQ?>Qj(j=Z+HK~VBeR{DvtaHcHM#F|%u3q8uZSC%Lm}#%zQ!mJ~w0s^VBAyy3abTCT
z!^NfdlC0}>FLhTixLv$$SKl8WbN1J~hQJwLYMwKxTwb{?d1Ljz;>f+{>$I<4`zyq}
z@}$x(?wu^nPMh_6@^<ezefs4x>4UD1T|OH}7Kz099$mLB`4;cg175cn#e5FGb5qsb
zF*z_X$C&N?qwFVB-sxOFweP~(**pEx*H$^pN7&0JE?XAISF|m;qe5$@&e1tV^Nv_^
zZzz~N<-WUdye`vutAO^Gs;%OO=2*>H(!i6e`02BPnNT{P(~VtGllSQ!FxZ~{%#G)5
zo}b>XBdMoP`EmM3{tgqHDbK}MD%iZBM%r>p^{pahwsHlF3un`rn$IUL`YFFpvWY?W
z|GT$-VXIHJ)P7m>&M>a7D?($|62qPy1p$#grdM6`BpvPi*YT9AmrZrzS2^lymBf>`
z+hW6Z!=B{q>j^qO(f5*mZ}|9A#wViLT3uox|D2KtbD!Tmeo2Ans?1l+=ykuian8x|
z{jpu!a;#^RhZXI3|K!UF*8T&T4})bMr93c<*k$J^lxE+U#?bs`n#eb9`{zs_Hd^1v
zt|@%K_r;aVmyfZ0h@C%k<spvBf3vJt2um)?<Xhi(sPgi*6&vpF-P*N8nn^A3a?=#y
zn{3mH1(qgm=bZN9`#zNgr$Vm3IXypi{iKZ^+t+W5@?WT^CgLf5|CML`GM4DWR??b3
znEDO3=LSbi^;~I|xuZEl+@;<{u5bGG!(1PGzhnm8@OUp|ct0^$YS(7L)h!>-uf1!s
zd#jU{g{9!mV^f2IIaRYa>~wajl?hjV5t#Gm=o6p3i`RGl?XGH#{BnJ9AKP~U^9Z+w
z<4-?KKDDj#^MhueO;(>;uTIoCq1bo5Nw{<S-qHeNq10@(IYHa*a6SFpd~06*-YbnC
zkD2C+@iXNxdB)ZIh}I_e>)Ns|RePDEzbhr`%hShx`tQ2tPAuSD^rSa7D@AaR#zoF-
zYa!vyIoTc4qC%(MW02;);hy};I=qR`k|T~uX+^I1eyi?6)_3m=+Uuw0KXLuDt3vwC
z{*AgUKc;NGvrb2of02bqzMK97ztpFqd0E@L`ozAM9krhP$8=h1u1BV**!*xA;S-!D
zEG<0S><T;WS{Au6Zg_Ur;r*fM^WE}(-qh3XG0<pfo~m`~HGAr+(!KQ$3-3BV$erlX
zC$g;Sx6;9s)T62`>~@(ix_LIPdGq9h@3F;uws)&JUwdsdeX)v6qgcOfq^I<PKKmtg
z#t*tyrgL!_CT#k3Q6|98O=HFMGx81J_Wad2n|$KfVjEs@kqJM3R_d+Yzxun(B~=fu
zFhP;p$+bsRoW6+6{<tGRVZ)B!8~PHsvQ^hRe4KOg6jMseN=u!Y4?8ksuVjRsVhGVV
zc`WU~-4#xc6ZVP8#2?!+abwY}xFr$IQCWX<*rJ-n7IbH^Id(~!JUUQhxcl7UaM?2g
zso^u~*8TTOKF7PDd-o!j>B@J)l6WUsvN@DJJU+wz)gr+=Un)c$Wj%D~aou)Z>%Q>F
z#~!ZP4=k>&K48MNL)}p|WsaKht(Ws}@8DyRRIFU9ckZRBU0?9M`H3_BJvR7gx@>o%
z;q&iHKj##j*0=b}>(hB8`&+b`!ltYB=U=cJ2zz;VFZuP9b%TLu^J@X#HLR0Ll%8`G
zpV}#+)v(o4H$Rru)%M3?!Bn-pR*65$cm7!QH_R*8+^pB6P~v=^`K>t(m;H23ZvCk(
zGwI{aS&d7tJ`?_^=B{#~Rr}qZ>_ZFQX)TuN%t&aNP;*Sc_m0IxISWUd`)n=C&&qOc
zv#nuIcII1av`?7#^ogIJ)#UF^Th4URPGzIn{s%@nciv9boUi`%aM@q4t(zvwtlwv6
z<nlo9<ne=6>(o^jaM<f#&N<$>oqy4Uw0Hlqt$rJS{Wb0DowEVEE7)`{wnR9EbhmFj
zEgQ9qV}qji>eYXzh$?AHe!JA9>~PH^-%nC?CR^=$p|<ouW4VgsZ0BFhYk3m1uVwdB
zu2Lzj$Cu8@uoSZB9XcD$()#hrWUnq?{($oh+~03BF3wRbN;JRDH+!Y*ms}>NgzZ1B
zIW;HvEax~>W8pHj{E`=+-$u#w#;Gh_Ct?(@#)SoBmalG#*rd7c@Jz3kf0zI4cWO}m
z@Fa^_t)10|VWQSgZ+ZS*jPJT%7ba)Q)=m^ItJ1SR>a^wOb+4^#4a_2@XIENH@Z`wa
zyYy(S;na4)8l$fjdvsqdU&p`OLA|BOvWVL@>Zg-?5$CxFG7K3vG~0dhK4`tHTX}ku
zPyfb)7mxL=5x!KmMV0$qcH)#GZRJ_^4OhO;omE?@r6aw2k@|ujU-=HB)jS(-Y~`@_
zof%xNGBHy>PRqD>`y$i8iLAzHxksA+xY@Akyr_9z$^G>1=f<M9x8%4uq9nNG;~iTx
zKmOb7>fPkJ@Sf!Fzpf9HWz=T>+`#I7=gRd02GwW#eoT~RV4S1&*rWcUbCh=Rf!56o
zRkfYWowmoMc+_K^S5LiIwOXox>HS_)W^c#b<-*;!Zj=R1a9J;FFtxFq@!r})p2iE0
z&2Ha#I6$-f4pZ_Dwq?KO9`O2@6C>Ng+jI9F^R$$(1;TR_tp1t(P`M}BlP}$#WVA2!
z_+rlg2YglS6C~Vt_ZjeZl&$;BYmjKwf4}-Ps{|Kkz2cN^o2=3^zxT~<++y`cZ{x&I
z471nYQ+O-UsQuY!!GoV07la%7{4aTSb@xnX*#&RP8$Zr!@-x{X&G+f}e6NGg8twb|
zG<6L{yYsKSKeE!jwxW`c`@iQt<9=(a-OnWyiY7n0spB?JCFxFL&*GUH?W_D2oP5ds
zPXEz^U?ZWeKjcqaJAO3dvFJM+_Va(dUjBv@R*{caOwTl`iNDI27AbxxAx2IjC^@N*
z?NNxY?s?(e`+EhKa_}DN;EK?=YtlOZkb~TUVDHvXr%Ey-jIzCc^R1M7tC`sMPB7o@
zZ+PY*{kjax6OOYVZJwScw)Jf2!bp|hzvZ7Sn*a0LPG9d6*1D%ERJY1(HVD5sYcogB
zhCUmPgAosc%Tn_UqPJ#WI-Aj^z*;nk-FeroGfmz{CL~_{uDV;s_2-w9P4ZRyC&gym
zYJK9<aD0Xy|8z%>9oYiy&$_Jr&ED48?Dk<jef`k}@ukn*k2V+oUHNtXCBB7y%AU{d
zwu!NO3Aj9BS35Z6!{fJ)$~S3G4q765qDgs%eO_02mF4!hcUo`W|1UV%SoG|n&2QKH
zPM$k5y-t=&&bM(mmLgENQktjREUZQHn9z}(HzZg;IdwXVJU=GL5O#3(G!cI{$=S&*
zcia^36sPw&+r8t}kZIWYRyse?^1bpAQSa9EkG%c=@NpcU_w@Sfk4-MDv6rTJ$IWs5
z;j~0YO1w1fQ_vHpwAat?HAQ9>i^!fl8eH&9Yi2>-|K=@gTpO5@ukl^k$&@oAJgA2M
zZIWk)W>>`4X69zY?Hxt`;(kkMNaZ~1INWEhu)iV7<&pu5MgptQDIIP%m19$`Khk`a
zx&F_zTN5v`if8hyb=<d9`=#3g9)nGr1$c6Je$K5>VOyHRlEb<+>0!XNjh=^+XGdSi
zJAQlj{QQQ+b6vQals)y-S<Ej77ggQv7TD$I9Mod!a!A6RMI)+%XX{ake-kVM-z7Di
zFkXDImGO~Vt>XT9x6UqfGq}BVrvDWYO@7bWNzOBiZ2Y!q-u(D&*{#I~`gIj1g`Ew0
zJZ0?z@51X@no*6{t|tE8xA$V6+j6hIZk1(jM$gzMs6Rc-C|o4PbuLC}yZdq5yU+Zz
z3J=IWZtc%K>B>9hpmD*n`bhN+JdgUV^Uj~OO>}#jw=-J(_wADBX);-NA3wM^!AgMr
z692rSzJgngkAB*oWtb<s@x!4xd}|{OSDcJ-l(a~9mnpj}_~&x<jQfX;&AE*I&oEx`
z43uy@>9B@*KSSG`17?4pTQ52(AZOx{y^ER4!&?8C%%N02W!A`5hdS0xSn2F?+Wrln
znaHY(cH5<w`ed3<V!v=A&{l9~^5iE?Qz}`W&syoV!%=_5Qt{c`5AIKC=axL_Sl*!X
z+`wg<;ylmLa>L!{S7cf}2rh85YZh5}X77f*=Cl0_u5ukeW_w1!J!aX-7pm$8p9QA9
zowB1>_N0xe*;<z?T(2KL<nqyNJDPv&)!X)2XIkndCBhV9+=?ggxwCI=<4&HPFFyIf
zymdd<z5P_$seFp>s>zes8bygKMS8;7sTLDCToS58W@(>_{$F(E?)B|jf|Ao*w==GG
zo5iR4sv-M@NL+2+AuiT6G4;on9#|FU$QmGaGp(F?-Rp=cLL&J~Jtm#ZPHg45^YY_Q
zrOwzLM;-+oy3|^DODXENfBX^!^(UvNEdC=KbYoiLj#FJC2l!`BnIQW}N_E!sfX7#P
z<5FiH5laa;$9%g%CFa6Xb?%S3Cj=IJT)QcP$uH~aDK(X?9Pf)vv)9#Vu721tZBfz2
zttWf}Wl9fCDnGL~Ewt&0n|bo24R%2ls!Y|_*FJqR>-N?eiXF$51h2O4U|V%U_Qj>3
zj3s7^d96iQW7e)bkr^J$o%P6J-M)z`3`Vxjfp1Q?mfwy}U3z5N+sRVf#WJcHJp-pb
zn)7J#^xOLHS-mGsx6Is8?PvF)vti-^jjZmO6|*ghH*)Cy6`vKh`(}0bn;T5VpQoM;
zv-vn})4uwy-O1IT-!9)D!+7%F%?%C{x@%APS*=X?e13n_q=)mj`v+fZ+#oouL|iI}
z&!JA?smR+Tk!yd=`j1}uG^f|;@=mk<jX#4J*smWKn9wrQ^Hu%!FWrWMRT~;b`d(`l
zsGoJ89WRs<uz6DRu4w%ZyW?%UJ}e3k3#)p1+0*Qa)0x^6EUBtZg%^VE`F1+@<y$Ik
zU%FU8{<oH)+!=SjA2-+jRh^b_HS)lN39<VBcL_}}y3)A3k}Fzvj>}QMu3JVi94V6K
zt=qUFGd5}!WLjTerLQ0zprz$$=RRR|p!y#de}%qH?32ybGVYn~dLyf}EaHLs$&Q`O
zDZ+*?OD?^57m{UO6njkP&hBrYLRYzN*)gA+xj`l^k3lJY{@f5BbB>Eg;$}OXnD*z7
z)dQv@k{y<YVuin^2Q2v9@R7kkK>Lox%LImRMsDtNZZC;H?eymU@q6Fru9G?cF7emJ
z!|xN+=H2!0e&b^=Gf(hc;wHOy72nnvI;5=RaoWSe&2N_bI?sfC+S}qiUr!zh7Wk#c
z&wKEsgUy!82RBW#AByZszjsviexrp`)ec7C_y4xtJa}Yg?$c?PczYh-&{%9>o^tYl
zV_>|mzPnkvVqUT8)gQ9|Uv0beTaxGLQNf2w7k%t@-b+`AkuURYOmkltEhqCv(nP@5
zK235(*`9NX^Za@p=PNWhmr4FUd}qN4q293NN$PLTtQIqpUU?(9#mM(S*F3LY#dH3C
z433)GMIVEH3trkgY02Ex3Vc3tS*}mlmX>C2x#9QBbE!pFdHg#QvAvU34@5>)u&-zJ
zR^aQ<H7(A&`IYtN!I>qijHU~%elty6Le{ObRqE=@{HKi9R8)`l86|eS&Q@hT>Q@;Q
zy>j8}q;*c&(<ODXU7e52p16F%(i4g^V;7spFB7{enkkeOuqJ%k>&t%J&u*;gx|o#u
zB2C(BORNUl;jTRn??2ew%rtj7oVdwTavDpJ`p)Fsw6|rGqh=?*tPXN<eYDmjIPR6%
z+S;n~QP~@E7GAQj_qF}^l4XO2j*wRI*`sqAg=`~a*SeS6%Cbb-UG?6##C_{)AEt{T
zVXK8bjjlx3Z}Tur47<W`I^tyO(Mc1`T$)u%A0{i_I<fcK%In@6b^3Z#S62wM9}qh<
zJ1i=ewPEMITY(;n=2>xY7fg{<{CjEPg~xe;J5RpKS#OtR5GfKJ@$F%9`t2WAgxY0m
z=V`WbWdHVjEXh45FWAR>Lh#o#mRaBJPx$q%jXhn%{&lm{lthJDyBK#{Z;(4bL2%M(
z#*>%laB%n*B{j`s(fhEudigW9K<*vqs`ee69jTkgeI|;xt2zGFqrWf0YHn@|=%02z
z%KP>F6!}7puhRrB#@%1NUOL)ps@*M#5>LL<f8H;>>KGPMa%H_o{x_{X_bz{B5Dt9*
zR_VwrHF5Q0dQ6rF=l#-_`oVHe;mMK38X@y$MmdIE?@ZE9N>$J8xYNC6<F?4Or~3_~
zrYv0W*0uLsnBAc-I&-?*W5s13%=KNd=9HwchVK5RDSI~W-@BpoRHV1>XA9;7reO`A
zonOtoz}W4VC%4BdalwT?KR4YwJCDq~pZNRlr+Dsnn{NE}*?nzqM*7nTn|X%6Qx1hp
zOi^6P)?Dyy{;ie84?D6MZ|Is=%$2yy|98!A*^p_Q_ic;JEWE`3d%;KNexZF1O{Onb
z-S{;xxUbM%?eGb+J*OufZ>(Cux3RdIZQW#7`Tp4^hM6xn?7R0;)ONqX?<<CzIE;5)
zPvWubJU7i-=7V`@SA<Z<tS6ct%a3HOY-v0Ba_X6%4Wcrqy!mayR=#|GxGdOoS77l(
zvFnb#?5C4+-q^h|J<w=xS}<`PD_`0hVWC%wi_H^$l=jDKC8jmh#|V_P*F19xJ1hC~
zZ1J;MYoxgk73@knUG$}`UBJ7^pljmQXDU4j3D0}%4mm9Be0$>&hv6NoH2bxZY2C+~
zmZ<ETaqY6q0qyf*84tw1e`DAF))n`B^8J+Nqd(l{vj=S|d}RDLXW7@KEG5PQQ|DII
z#OYLgSg86o?2w=3?-qvs-yu^p&AwQinR<1eMDyBd?K6MHxLI#LR&Q#wN^lxm-0}_C
zKd0}{Nn&jFba{58vO@ZUL`LVMiq~1zi{@^s**tmelz$oeCJh^XPfWSH`q-USRv)X<
zwO8NdQ7N{PQrCQ3wBJ2*CL>pz*3)e{E9Bfia^K;aF+1Pu>N&mxrMv;t9&G7r@Y^=c
zm_aCO=?ud~)jurd6-&O~?>nDTJ$0JA$L+iwufpOkY5ZyMOg8%XFeK9B&ebnzO$?^7
zpA{HaDxSQSRnC{h#Z`YIzNBR8Z#DIsc|5mP{@7i&?(9of-`fW3UCWos>2jyECRAP8
zntgKTPc`;^2YSoSFv|8yG(41LN`1d|+qs$9W**FvC&E_8t$weRptgC%iOegHPw(p7
zddW2YTH1kFpLJYY4@`>*b8mJuSj>Ali>tVHr_F;K8zx3ZRTVKk)t-=3<t%Z1QRth4
z-EpV3OrQTh&DG}}f9kZ(2V2)~;^7uw`R9x(`}G=)XAY7zsod=^=J`y2GG*(VZYO=)
zM$Kr+!=<mLg{@b88vO3fL7|vxy`@Zf6EwDD%@f(Nx}xD3N73xU$L?~5$6p-}Ne(`D
zeb0(FCqt@lr94(-@hh3L`hbs~^@`sg5-ho1W=CIKe&lfGnnz#%{W-#N$8X{5MkS{$
zx2BsV><>`!_ucS0T0-{Aqm9SeoFf#Njc-1v`t<2qv#^v<T$w$O&B|B{SC!z?S-e5s
z7rdq%eA@Qo>x)3k=0CSI^k(h(9AS9P=BM$?l*QI_uAGX@e>0C|^%>*tMZ2;l#-wO$
zy5UkhRr1s!AD@LsD^)LMF0|-*VDr+l<$8qvQ*}>+r*UOwvSo{(SkCz}N$Ejw?uknW
zF6VMNsZV{n&X#4`Q<qJfu05P8RbBW>J#y26ui@<tFOFF6NVPwIe37_Ib-z(#t+!*;
zBjp?7<q`>zv)8AD+nJr4!eJ3$@nRXD+RJa;ya%W9Y~E#K#2UHYXQlU#01u7N`z5y&
zY&h2_Z=F=A>V9%dOt?Yygx@O!rF102xT^h{F7;iUQTnG~r%z!Ohs>PDg@@V{PV@2f
z^}lnJoA8dsH>*1H>y#x=rrzalZ1c(L@P6A=v?r!d_WH2}2h^o^yL^1Uc)IgJ{qBH7
z%L&f6&v!G$US}{)JTY4$vV11jBd2<G=^a)IdrLBT{=8k<=v(3xyh`GG1NV(E4T;m|
zE=oA0ZB<+GzS^c+-)5$b&BHT{wT*t(h3na)4dz@D?|-o=&@}V;sjG7%t*?Grv-CXQ
zt+Kh5S$DfO8^o<#qrRF|rf&85rO|u$Se-ehD4`@3Bzw6&U8cu4`I*CWpQ)uX`!7~*
zu5S3{YpZ@a>5jp#5*_x%0zot4_RrYwaqII#&c)4JKWvyAoz3)KEV6(8ROXzWY1}88
z_S;$P*|uhOfwRD!3#IcjHy*ct{ja>>*R-pRbA&HiOP<{OGF+iA<l;>hqcs2H!l_ps
zm!A>4@Zrhp{^@rP+p7t)JvF#fS@>!_|36L%jmvjJ9u{1i-OA~o#`vM-wcPVJi59QQ
z-h6nqGN-P5s%B+Gcl>YW5|Mvb`7PLNK2Q3!z+=<)1Fv-1gSQC>M|eM)@7>@hu6uj2
z$9Y}ZJ7wlSvi_uAE#M1ZvRi9OHP6f0YooiYe{~=FayszBhGXXSJ~DBB;;zPKt&c7|
zsXeiJo!#Lx!Aq_r9Gt}be}S%w!0Ht%AD_C*T>j?r+gX7*udi_xPwwZqc{y({_l-#l
zGM*f3E&SGU&rw?2<X}}rpSZ6@a>j4Algpw%zq#{S&ZnjQck~+$;kyQHJ>@>$hnJgd
z{j8yU;nDW+-NO9xO(|v?z5mq~+8%hMZ~Zex`Ih2aHct6H6P~oNT24uu8yjRcOV{dM
zkJy@1!kxKW7YaSSJ6m*To^QyzgcbIjA^H<eCrw)^_H2(wqTR9=%q=XFCaf@u)Kfjw
zBPP7;q+3w@-a|GCYdt%cxkb&|WT)J*aM`;bKAmwc&UK4*c8eCSa^*I8x98;3X>36W
zQfUUAC$f0dUMzigSC`>URT%d)gC%{FJSCbkWKU%sdbX=7{+(XnrPJya?mzW%+TT8?
z+;>Iw#U}=j31x>KrUfvWKB-IKx$(DW8q?F+F};V2cI{@kopj|<mzl&Qk!II9pF;m$
zd7I>==3?!7b>Z%$S2hA?%%5N0^Jsqfj7C|`Ry~u?UIjaUd=8%yDzepxF?+IY#n<kz
zKT};-S1P<c$AAC6^qtk~t+bau^}Nxt<nOb6*Ryy-|IX5u(s{Pd=h8YOg8<=lXOp*6
zZ&YiZI3f8>(W0|`wve9F|4n)BA+J9~RhUNc9GbiT*4CXtXFc_<{0=-mP5$t$*{9ih
zG_&r0l{)i&|D1W@BD?g~M*2-n%X*ir=TIc0$=<xxU_;Tvjf->x#2*=!8=l-LuFkPC
z_3tt@eWsk9TOwD^@QsU=DYaypn&a6bAbx4;JO=yDMu$G#jjR^8D^2Ez&$JHfV&rE3
zGNb!Xuy*tPm;0)(Y|QI=&FA>3`1$Lfr+D2inU~LI6<%`aR#Q)x?dorQ@=wDbKULmZ
zyHj^w=YoCWq8TQi?}=Jg>xWkH<WE01Wpe+w2X+%p4h#3Lk9(LL`m;zOdPCF#&uzP|
zNY!;GIlW!^c;cxusrR@3?$o~UE@I8wRc|(Cp1S6I`p)iMD%vLu+*Vv#^F-tLlDD5G
zAB}xDZKm>9Lluq2tE>CPD<^IexWmL=F03)lTj%B_zx7g)@vnjw%cp<zw)$(Q8n*7y
z;}xI3M1<_?D7QFsD&qp%lCMwiR|uU-Ez35{+O5Uyzvr&A=86EfUE3yosW}r_EpvDc
zixA(Fg49S3L67LEiw;+IObFY-rhHjk>FrUkFrGd4;<c8gv@41+zMZD~^zh}B><)Y1
zeY(7EzRL`Zvke{ytUjQ+;;Gr9=Vsr|@pYeCP!jt1LjDuYt-YahnB2Am&zNlOGo}B@
zqf^c~c6lq~=I`=MoqG3zik5S87OQcn?-G$z!?3#P*QT9&F{@#(p8Y45rcE45DhXi*
zJv<wA(+kCUzOK(Zbi3w<B+H%BX<vC{pZ<7hvHeU$(z~07w@7PpJDMLfiOK8TvG!}o
z7X9_pBC--o&svzRdBSi}Et`+WR>$_?m6aR&>T2{q+)J8wroX^%a?`g9MMXOlOA|j`
z{n+HoEf{rPTV>B?eI;f+-{ssNeD=MYeYrcs(7pNZ#eex-%M#0)yz&_j9m%pd@cIJV
zrxT0cFJaiZ-+S#VCmqpu3!;1FXXPe~pPRCkGk8PW&!V`umyX==JfJB1!Hd1_*&@*n
z=kvc?<&NiGdiJ8G^#95Or^5|?9({c67H2X4yKn0X%d0oX|NcAS%>DmO+1Jmcbx(i)
zackbx)!K#jVHJh*=Iq*f`8-Gdo1=2ld3IvuHrzeu8T4(BT;CzB&uhM{GB^Cwzl9$X
z1e7vueA{epJM&(g^8I6nNBPxBQR@A6;rBA?=VuwdTi4lV_dea>LG1q3wsm{2u6%3x
z^XPYX>z*IH^$WeD-^tf!&+xUi*ce-#8}!UO|H$7PeKzfx!KZ4j$5iI!AGiJ1kv!w=
z!?gV42X=`Yc7Dpc@2;Mos>{&3Wr9kM=l6iiySzN~1NVK(%9M3BSNQTYcGgXfC`Pfb
zJAT@*cKz_;w6(DDzp+U0l4~-X%h#Bb;eTyzF5kJ8r*tdBWt)!&gMtoj{#dl8`_LQS
zpzK*9o}c;MI`uwVg&dfCj&o6m#mg?~%on+bqF&{HWBq?6{=M|Uf<u;Xf}0*bS#)j9
zDh2hcB~q3iWl`TJO-YEDE)u-Z$>NC0*7V;FD&4zvo}^}%JJ||H>L1+Kq#pWjDsM!?
z1tskbS7Ls7Pi@PJ{cCfuyqo>3Z(II{RovabG8_9&YtB6v<00r`p<efUsj?jRgo(4h
zxi9<Yry+jj=FQBqQ=LXL60$d0+VS67AN%EygK%_KlepD>A3YsAjw?ZT-+3(R+`eb&
z6F=9z3q`Hty0+P7eyiHgCCrp+6XRQQEaZu+_NGbw!EM{-1YY=}cC2H0?1Z^8%$E+@
z^&Dn2)d_jZbuFR0YTMMu2d3Wj^m@51Bfz`knUaM`TJ&D=<IF{}ULq^6<!%ir=jqf)
zW;MH8dqJg8N?)Q|EXOyZ?swx`_5&wZl`22E?jUr=D0g9*z!ZzUsa@3q3QQakpA3#@
zH0-^&xoncc!NXS>Pb~STUb*A+t2KXLmVDp6Ho5)HmffA36bwCdGS}5rbjiy*pWL0h
zYel!?-cMOKoj4qMmt^T0sx6f0zF;Kt&0c+Ws1{?lk)cPT_`QUx><tTVpE#X3!FBBg
zjn7txCU;FZp1kx_;$kQB8U6vkuP8C}?Gg6TZz_=2Rac6AyXlio(su=uZ7GpwLN{Ge
ze!hK9Way!Gk=HxDw3eBqOEmICb~AtdpugVUw@=IR=eK=5M%}4bFPz`@fH8unbYn-E
z`_-HU-vYBPo}OCTw*QW&;Hk1()+fxKMeu%k_WA5L#V=Rm511M~OzHixHP}9iOW^nC
zocpI|{jNQAQ^@Pn`o-HqbXVo;TG>6!xDe=R_Vh(tRK|6IPX&Q9^-mUleY8G)MaHU6
zz8dXGDTPWueiXDewY-(OlX1_@>Sb<I(EdWZ_jOCBFY`QoGH<?*)`XP*(T1M2TQ1Bo
z^}Lk4Jy`qjjnFg$YpuDreH7nVq@Rs{Tru~+HLl;^MNQ)z>|Gp6PTp+Zt-^gNceR<`
zc9y*wQKuMUbr_%dJeg$8E#KznwzHO9#Nf}S8NFLG&Yo7f9HYO@L(=m%-z(X7A6~sa
zx-r?XT;yBTUSA%${ktui^-VU-=22=<%PxGtS?;6c9Kh(bU|;rw`OE)U@VkB7_u91c
z<by4eOBbbF_sYH&p?fznT$c4<1&`ExS%#T~2G)~rr1dP(KQ)1S+lyIyBpwNt&)aSC
zAxv1fPD|&tmbBNpX#2x@yR~<{nPoObBkB629hMof-g<%FMM7IXcAp7&{&)h%=DDwr
zNAe$JQR+3jzxij;>z&Vzn=Q#bd4JLB39VrUqP2BDKfKWpU!3#tP3Xi4Z+<^IV$isL
z3&REJh10_YE+1_XxUnvFZ(O0=P4)XC%za7*Up&&v-bT80+<&H25;J)@tLgq7GNJ2&
zeG)VJr~X-W*G6JW=JZQX-v4YB`n=WY?fFB6OsQ<|QiEqyZ;b7W6^PCgWHy~rD1B1-
z^fmkGJeD)2IpwXMlf6DR^R+++(_a4h)@IyZO1B!PTJfu$-)AJ}GFfT5@IIlcNn041
zR_BTHdTg0><C<VW=A8$;zxMKe%t}#V$@dZXo;a0tc4*$L|ExA&))^^RHb3yyIJ<O}
z*VijG=X0n1x^X4*>(8K`r7u|I)oMQIE$w&Ax~j4y=#h#_uz+&Gw3To6uxdQ7O*(7Z
z8T&#hMb9;ssq3NY)yD-*#jlMH9XQ-;q?aVL&BgH3xA{!6mCt!i@}1P=-afulc3|g}
z!e27xyfY8Z_gE}&SoYSF89hf{L@wA8{Nj<>+XTmNpMB0hJs;~7WBQoi@NwSWiZY2N
zfdiMsf_qP{OYoCXK6Ni*#;y4tdhx%eBze@I7qq;gvv}v{-G>rP)K=xst(x4CaW_Eq
z2#4C*`(HZPqLZIbxafOl!}h2ZjDBs>a^DWBExf5#`+Qo;YzFnZrV!?Ys>cU^Or8{U
zB)?8J<KnlyyM!KdYBFCuT9OrcHm>{Pje_7l*+k|^b!)Fr+H+&~_C3CvC5n{X!=5RB
z5juavM@XT2$LG$8>>8dI-OSb81-HN9D^@&Z_O*1Q)Y^Mz-`}sYNmq(4x}I{eI<aoX
z;W#B9K29~+d4hlHiq-Z?7IsT6Ru=4N&Ym~XXx`pGZzTklpJ_;s|H1X1yKdK7**^#N
zH7(hBA&7ZT^P3yr{2sRZ$M-Bha<X&Y^~^o)i_Tf;+gKP~Y+K53{-t$A>N=n4a}WQ0
zn=&Ks?lbPq9VLFoFHRJ-*sWz={8w{r{*Hx5O3w5LSa1IQzNlEwp0VfW#*nD<)4Qg9
z{lKc8^>%koz`fHS|6JhzGQT4C?2efQ6)#)u-qtSX;Agp494#;HQj??cF|z-4vwe;I
zA9lUpC(rA~%THQ<+T1QVPTr68arTdWibuPh>&o>nr`PQK_3!=m-@o|&J(zdAGG%w&
zht;2sem;@j_iVM!^Kyfz{r{Bm?M>#@eE5^2vU`Ex#rbDn%${u-SXIAN^L@@$KdEr9
zN3ne$E+4n}=l%DzK8Ikbz4E*74E!(i_ZIM)Pit21`(3N?_2qI!+mQbsrYjw9e{Fq4
z!8BcQ&nMg7_xA4dwr_fHb!N5jIT6P>E#-TDoT!#Ra6Rl+<<FR$(|+r{_nF)*l#}w|
zo-ldsyz__Ci+5#P8O)JxzoM$25cAZE_ebyarDv8;Wxso1G53ZeyY-@cOCR-e-;e6c
zf6nt;VT<_58Ee1QEI;0NSkA_t<<;dd`As{6lO#O9&0l_6DbFtN0lS&UK^a5SE9w?k
zb(=J9XHEE=R8aovqPp{xYlnN}mWEH0sJWH6%=PWPylK6$n`JLn_nzl7pWf)n(fw{u
z*X$cj*ZD=f{gW=G_PsF9tn2*y)^>V<5Wm>N!r}ve-PY8vFDp4!Hm7iszV$Q9T}2$*
zwSPU<7CYK{@q}|+>Y4Nmw{@3=Zzq_G2_AXf|8Hunjj)JVZ-})f=Y`D`CQ(nz?pe!*
znyy;8zp26RTuowjW@OVzZojrJ#UJv5m$mKm_;tQ`y$&}$tzELf!1>c}mc;V=j*-Vo
z)#mce^zjV)82K(|pTKM%4*v4;$$xGb&zN)S?<9+tw-y|klUz}G^M-4BfdA9i?i#tS
zWw*BP=E(eX`Q$+f_7E=qyyhoM?DlQ)V=(l%@N?m>O;wg>w)i=`zibu1XG&}hPw-Ru
zGLP2O!?GuWq<Ct33(F$<YIu%r)F>2?N!}p+?W)A4^}jw!rSwg-=t<}4a+Y=$TrhFY
z*7p?^Tq*g=;qz}y&nn!I$mX<6HGTcQ+BExHyTtSQ{a$W88h1zR`2Q7)`;KJtO|Y7G
z)$vol_(s34Di0oZpWs{=z$SNYonG!ky{l`kS6}@d&1-ce!7~13;GvYgO1IXrUNSP@
zzhbu6{nlv_>(_7lo3!ev-g(nW*G?tqJS$kAR;{CJYovVF-B^45EC!7;wiW*mH7@w{
z!&>Ia(jqSLv_<RAB;A~Hxcz4Yb7Am=8+~_*lV;j3GrRwe)qWv+$`USawpP)2kIz%y
zI<5}-)>2iiSZa9JEKaBWYVOsDsudY}TB~muF1O)oW14h#PGQx))qmrDcyj6-`^f#l
zJvK1u)12a|ODtsW8(Il`TGl#qi{zD)dUt;ai)gK$`N{tOXK^#>ocL`WRtk5%b$_a~
zxayU~_i>%?=Kg27{Y73+W4|7p>px*<`X}Z@(b;m9EUA4)qED6IEp_iWtJvS?@S(Gb
z(`<H-mzKk2Mjz1|VL3Ou@4meHD`?5fGo>?Q|8?chujpHMZBNt7C0*AxHHm0zaV1-3
zZ<{;ml1HUWc!pHL?O^YDui3Nhw>D{<Sj1a-r&;CKr;oFljQ&)=UO!EI*_VCS{q6=%
zzLe_0x=7qusNt1tq*2(utQDpQnVlC-O6}*=H|myXvH!?WCZ!|)GSl<M$vsSWR^BPw
z$ek6HXZ=IbxxfCxuYH$vG+#_~Ry1E#d9q;rl=}+PA8d)5v-h{$rNFfHUD9u#YOnA3
zUw1dm<8RnvL8sk^rm5XX%uheEnx%Zc15<ER2iKISmwk#4CM};>_2uuHcK*pM?~kv2
zcVt(Tz>Fz^Cx13=sm$fhnjrXW+w|pgScUdCESY@b#?!cENt_ENG_Ni8=eV)Alu?ZT
z{>}NO8?1G!_A_VSt|>mo#Fnsh$}E*OuG43q*zkNxJ;B~;-u{k%l8F_6W|`-n&Gl-M
z6Wx|Pk&0Q~7kh7^4eRIl|6l*F3s=j%d~%chy<-bDD2HV|+qK=gXhYnjb22)UZQFCc
zpAkIyZC4Su|D~{(XZjAZ{9U7bYUZupWyxagg>On`ZMdWmoH0G<Ya~<8(XFTX<Yku5
z3-(u473{bhRPs_O{K4*PtD`GrZ)N>Tc7Ax!B<5Szt$o~F%lGRF2%fE4QLDqgVM$5$
z7TcF%PR_M+jYT4#_PtZj{90JQ$#Tk}!e@)0T&OPz*NZeLX6p<-nB}S(G==}(w*Nm>
zKCJ)$X}#3q%Stgp<+|3pp6Mn&xUk_&-^$j=w$B?4l0OLa)a^`AzcYv3fkVBYUnBcd
zP~F$#Rx<B>j!p}izl>?$lwZybVb6B1*3ViuCFn_&SdO~t%-T6Ey233&4SULp8&3Ze
z&gnh&^K<mIGuK|Q<xLW=kKqjY_sQKveZd)-O}9=2HmyB6?^Afr#3jGI9~U|VO<v4i
zd#QV;A>Zcy{Nz&!NxRd|m$H~TX0fjNvMxuWUq5M6q^nub#nPq|^*^WAADfUTd5bZ1
zaa+$Ev2~hyUcZVfGY$$yS=MMA&uLNoU7T)F{YAm#V@KcxkF_5@ZQ(M%=C8}NH!!Kw
zai(+k)a-yqj!)ifJg(}wP1a-W`7O8Qd#@kR-KNRSulv&AO{AvNhgE^9YRBh&xg1yG
zc84?D>Wjp?TRkrwYaS~$MooCM*&?A%^0A&a!>SLg9`+Z1DS2kUn`@c>-E5BE&4Wwl
znW~gMx@7<Vv;AWErO72rSY;m`*zK@HBK_HeRnq0by>WAH8$X}NY4#+=ZQ{9IT-@4o
zIrJ|T$*Eob+kT|x`G&0@9pXMLZT-DuRzc))?*Dn4Zk#%EIK=XUK+eM1ec$J>$vB%Q
z+WmXBck{c+t{x{sEjKeRRh)b|GjO+V#}?a@(^8oG{wj2*Y%r@9$aT?HycINcPOQg_
zn*~WLf3KOmGXF&3@yRxCXMXW}`v2ek|I*gh`d1r1&f8q$pSU;RhE1e0|Cd`68;@U$
zaD2;i+qUiOTaQK=b(u3Wnri>Q*fIO^-=Cg0B_j81&fKzXzLLqVor#Kf_*DM4W|zr`
zw@)nl)l;^%^84Dd^PW>Duhsi1r7O)~^xo><+_z6GCpuoPEU<KzJlv&t<ARHFNYI&z
zLzBL1|9;`aeP!adIhQS;pG@bK7MVUzD(80@`_KLVuKz!D<In^Cof`w>KlT(>eh6l~
zb=p{F(o~Tv+^;8o*IHd5cS^*v&G^T($2({0o;G<j(|;}V1+nv`9COlYZdtZlu9z13
zlG}HS$D3`p<szr5mpot6ED_gXvD89llk7V`5%q$zv5Vd(Hhf-r$uIA6J^T6V8+_Y#
z>N{n4)z0y|xz~2e$~48NA6}<M@=S<7GB@s7RoqYe|1awwZPAg9f46=@uy4&5zw#5)
z=PlBocK);6v)I>LPWdTt`%O8&FnZ$l><YQQRR33dl~-4=X@2H7_wAN>ZM*xix6yZb
ze=n94O}jTYAYJp|>);10oE3MUWgq7jpIFSU__<)BZ2t_euJG~;>6_NeHqDY-Snck4
zj_utu`@fg%AKpA`A0HT3`!#=3lbh9Rcd;34@oqdk$0zE2e>A1~e~QhYcO?%_eDA#z
z5_Y!#)ywwz)wO&IsqEhOP5JYtEG~3ou`As-*I)eS8^L{bS9Z*;c|SKKezJe*Kl7jc
z|9|vXoL{i#`|V}Ue`Plt-q$bq$M^4!Ome*Je*fR^;y?M_udJ!pI`r>|=f7R12X~(O
zabn*0FS7OXcl?b$-*{0lLuTUj^WV4E*P2|C_{)C(qiXzDb^C|K@0;8{TE<s?sXnBB
z?|Ail5%v02v#a-Y>m1$P{^IdvS6(Id))U;~1~E^A-PLNEBYXMJzCX;AV3)al{zDy(
z;v2HLJM0Vs+v5wZw;kE+KX+d^v+|a@xptooG?w?<RsMR&oLmqkt7^Q4f0EUWbN7G0
z`8aRAS+&=N>h<=|qN6UW{JJ1jzT^3kg#8uszI;|b_T;#w-_)FYtuDq#s=v3@<$fyL
z>M+Gya>eh!e~0b=#0Qu^5RY4xslMqzqmacJm0553^~Je<&+mCRHIIM!%|B_(zpn^x
ztJAkUv&gn#x99TxkMBR|c(Z29uAM=ddFT0f{{=nSvQFmuswr~b)i-??Oxo^UzMpTV
zZ|2A7#o8<WKhj=*z}J35wEguxdlEVd(o&u(oVdLGwPozg__Ez+cic9A7MT0loukm)
z*<{c5+8grU|MLHTZqIO;so=(5qap*j6_Pt@Perdb)&A$v#E_GIs_V8_*7^_UKRd76
z@3m1QpF47bMn~Ven|rROzIeHm$D6sT$Yzq{#I275`VxHf760ZHonWs1#lL*r-Sqm*
zlNYLc9=iH2e0oj#%Dji0AN#AN-k<AsPHf`JtXuNOSJ}_){cC&r(S#pPD%E~k-WNIY
zN^Py|8uaTj&ED-gA+x;uqyMEPE|33RWV>jtdRM^A_0A{GPw)T#dq2_ha-);z+bQPn
z&g{Aq;jlO+W<tC5?X>4FcGq#*?I=I&xyvymXo6Vm;<H~uXGBzPP_@3@HCHHf-*PTa
z+nDn+pFN%@wEb<g>$@qlmhexIIie%myuV_XOep^>XZ?G2N+;)PsIF*o&zR2}#Hu>^
z`R>{NFFlUyDPMN-tgv3^p6)PhuYuI`dDrHen|E#tY_W;Cx*&i<H`ig)?^zdCU0NOx
z^y%YIZT0x%ou@V{&HdT4aMR-F(>`1-EbC|5-*<SY>i^^S|MU0!e1EW|{n88e6UX!a
z?|%5hiB0su1t-4Zgvm!9>`(6d+2CqW-jK4zbE4;Ly&SIXQ4^bIWKQKj5t2T)vhUU8
zph<n1o}BA`tNLW9NZv8L=*^*}w5ggU&+E0A?Z?lbug;p5qbYi21=F6@s&i{2L}%Si
zkM#_&5m8Cvv|9U<DJR4#GNQ39wL|Wylw;M&%iBT>qK!1n4V{u6Pv-oX`Q?D(9OpW{
zUvmT#qkXu&@`Cu!PxLxGPlt79%*9^gn}uF^A3pZ|diko#=KtUQ|M^c8-e|lV63Cpw
z8k(D}c{jt9_mPqNi~GUv^%Jw!UlHXD`*hl|Q_bpDr^ZXU4AI^xt;^YFyiVZR7*}KQ
zp#8@2*!i<JZ);m3rsX-Q>}9Nx%FHk|AC>8ICwp1DdS+NIvU*YC@MiO|-UZB>SqnYt
zPA<BBch#50E3_pa=X^`hT&@?-^U~OZcV~3YWD#k*^=y%$-uEw_e;m8#Qsv?gI(^)y
zt6pa5O%lDnuYTFR+bf%<u5B`Y>Q_5ya^Z`WUvIrxX0@Xy|MPOz2m77*0+z&0x~KZ8
zu}RNIZqDsln`4ZxgqpE4@xA$9%%Cb?{4GIZ;S$b@7Zyyr1fKtE6wN9!*<82wL_+4Z
z7=0G$8I!KeFur}M<Zs+FmcYK{btbnoPam*ew!rH9y)2p3|E(4h-F=O5MKjcrR$Y$u
z6I}E!*|XR~^VyG}PbZ7lD_efJt7&AtdyB%1_(T7MOG<VbFfD&4w}$gb`=q;#smGTa
zshoWq`E2otwzn=<tJ#)KP`#t*yyArETaMcsoL&E2|Nrg&gmZNcGZ<ZO9q<*2DzZ2$
zteCv)&>@pQzV3I!&KambtbX+8=BxyRHyLj??OB>z^3s*>&}0eCjr(3-J3WbM!MQ#B
zJ-t_tg>Sdc7XJNV^S(95mgw$C3|iH6;Y{czm0OlK^2^umIj3#b)wm;&_i*y(y#F$_
z>r+(ycFdXoj%`V3%EQ9*@Aq$1lhBKNc|7j7w@{%}+T}fh&b7vMaSZ=n*U!yK4DG$6
zGwbjnv$XpYjRV(kuev+?tsehV$)kl`+9x_^l#4JN(f0pbljt9r5qr1n{Dx{Hrt=lw
z)ZbpQyr`sB^{m$CxT8jiK>D7V{p!+7D~z_ie-vIKc>N7;p|Q6Am6zuqd{4R4@hnN;
z{(iro=l*|+|Hu6<GVOksPx*iD%hg}z<s497`+NPK#@l&6uJd1Rmp`n3nB|XH{k~tP
zF5fw0mpkD+&z9T%Ki;^1Ja@kO=evKO>;Ijvc-uT@#pT}*)i*h+i=E+FvCwnj70-Od
zdz-HP`d*mQnUKD>TXXOIWBM5>op;jsFCDLKG@Vp<{B=dH*>Z(5$4+v*zs<k-`<1J*
z>W5@MKEKfFe5QuovrTFqqo4AT<TWuuKc^l3GJ9R=v#liw#>!TK*%dy{kF~aJG`V>E
z$KQ*NA_BWD{~g_+G<QbRHPK(Y_y4wjp&-NInECe__X$S(j#qz+tXFmD^F(aiUOWH2
z<;GhaOLV4O5mWkDU+%5zdQM{D(T7{JW1nfZov8jiC3C%g%={zs1ohv(_c>WVKO)(4
zMfmFn1-lLQ6g!n&d-FQ|=^c*+iT@52T=DYbx%EV>Y^7@THn-h}d=jKO%?vFHLc|@D
z&ZHEo+cd0SeK&r~9<Fx{Kin=w?Re&K=8o9QyY1^e+}ISBr~U9g*k*P3>o(6>X8ix&
z+5eSwcrx+RKki=v0tJ(pW~k)tDYMwBuFeu19&LVSTVI}ub>1esdmP2d(?u`3X-sgc
z(m2e2!QqmZkaDWqpMQ4}CUJP3op?3;v5CUD1M4~x*pnArUVB%g<>gwT*AE%xE-m_e
zO?>gQ7jKO03O0nwv^MT27X0&6=yl$wHlI^}x<7sH4>)ZUDRJ_G>R+ps|K$&^3;!$8
z^3X!#fu_?!v-~G-db{2;n%te-<L|u7Kl6Zf#l-t{O`5u<^M1Q-D~hUou{S1m<^M19
z|B1~?o!I49r2X!}G6u^{juKTbbDTaJm$SXPvh7sb?6=F545QpNFI?NBw8(kSiN0g!
zIDQlh=t<SyoRg$vwO#S%>UG9!-(_!QUF;3e*{QzM*R4B#7k}Te4XN`4H92Ocvdx~t
zXLloR_WTnira8+v&BCAF)!QAo%G%GB=i5T_Yk5;2Pxuvc#I9$?iYx!~^=_wRmy2ub
zypw+BaCNux#g3G_joBZLZg}VU@9q76y7QRZ-k<cZQ?0oD#`Ci)`+~*R{pYk?OU?=&
z)0us^E&qe>p3XV*&gjcNtml{c^XJ%mTVb7K{h%UIhOOoO&gtLo#8z(NIA-BIKbmdN
zgV%pUT>sB|ztekb)vXy8TPqCag}<MxQJd%Yt&pAnxOj}$6^D{{d{6KHIeWjx`NoY2
z(|<7JREa#@yCk&FbKRfHPd~qVWUFuZGV|EaFPqt0lh5S#r)QKt>b&-L=Czm1249M6
z?>d(J`n1<Yc<$ZWZ;|IplsW5`N`E+|lXUm=>)h4XkN;Woq5IG4{r{v(Z0$L-l7!@4
zCSNoQxy!JZ^Qo=V(|cRoHBQajP&F|kVTOkAMU%Sa>i0w9m|~>t7kd|0N!vKFD$7o`
zRM>yfM3RF&>hP4Rl&!t#xfeBq_b#5r^JL|Qj*q+=_cP^>v2kq`eeU^GwctRM#O01H
z)2}B_<rCPSVC^3!@=|UBlTk>*<ttMXf6u+R@#)`Faw5XctQSA_NInv_{AaMd#qaEg
z+wp&|#@pB3|FdH@i&;l=3~S7?tG(9By=;eA<b#|8*A!luDEjA;H<SL#=Po@*GBTwa
zOs>ZqYH;a0#KUXJ!&+Binet)EE;XO^ZN2*5F?SD6*!(=yC-drEx1Yh!_oSOf<yhUC
zc;mSD%8ibEr);c6xA<+&y?#V`ZFs4pN8}N9=krSp%@U_Kw6I**Ib}}p1ani%B%aM$
zl7$>ImR@?K(50Kq$s_Qr;rD@6alEaK4-2F>aG&#g^MC&D>z<vi%krkFfBen*VEuxH
z!aXM@9Z*l=P_76w5!`%X^Zz?amTl9zpYD1;_rNSyQ^WT~pMHHcO3<*qf2M7X?dRgv
zlMl+AGd#9Vw#VkG_RP>EvF^N@t7r0_o?8&ETch{zX`feC*k9g0#*FQbzkVec3Pf#R
z6nf?lk72)S`hrhezgX;?EdSUgI)A3S&`R4C%uhu`zv~<@oTte%{bfN%M}R7WoByqU
z?=r%VS+$8={CD~Lv-p2c;~(8!aHZNnJf7o`<mPYhChu1dzVJQv^xWTHTAtrw3Xxav
z++TAxxbE@C#cW&8EbqDTd47$TYTY}*|Dl&(#!9m2J9NZbU;Qofsd~P>!T(44|B^n0
zRWjyEn7m6b$yjn@?#<ZtPitl`SmNn6+xL)9kCFMpC5w2EB)<Q8&*4epp@7X|ryFM&
ziq3v_!I&}d-2>q#+6<dFE9EGeN_jJ^ol|u$UFw0c%=X@MCzxtwS#q|TOs)USUsP@2
zzIl3>clzok9$~NE!uqC*shd8FyxX|0;$U~+smMLEbL&+e#W{a|UjI)#V`4(Xv_iiJ
zoPT%jI+4L=|8ko6%LOuD)g(=P)^?qK>c*&_cxvg!Q!N@PEgL;58<oz=H=J9XY2p0i
zwTu0I`AHKUcEojOoH4IksLehv&Yu5i!iFB@D^hn%b(Dmrt`(lTba&TJhm%1}=L+4F
zg(GVgE5z<o{9-x5d1j;L5sh^R8=1BID;z~6c3dty>%8dXmv3$c2ELQ`NcXH!DXoj1
z@@|`1be{B1PPLWhF~|P!w$9X!?B{oTJpcdC`H%Z#f)7r7BPKlSIrnUj9${Ad9a}a?
ztj>2<UnHTqW6C9g%07|lJKkh(>dA60-FGtiZrc6#DYK?6?GQ`ab)NZ+Q*rScG3K5b
zpMFKCa&@aNmolFr-Wc~d>Xomzg<9zgPX*bw+dJm%JGv?Uz>7w6gFxq3uU@ta*SEH1
z@z|CquiN@%-pU_kX)61-w@>gpT|URS%EZie=HaFa&Dq5=wfx#VOa0TM9(}6+)BpdY
zCEJJ4rQd(Itefk&)auo-SJ_jqcJDaqo8bO<sm$cc_>;S;8RaWotN%Pq|1fjv_sR1^
zmV7MU_jz%_@$3H%P3HLc{NSp}m>tJ{eqLnqXLI0&Km7k6+ItkL=gxhjySn<43s2U;
zbkmA*N71cwBy`SwyE~ij)Xmqvv&_C{{e5927^jrh{lfZD>$cl!ocvq83!NPWm*23S
z|LbLh=Uk!U*AJKVed#$Y(rdn>^=r~0o7*n}m+A49do-<Ncs}o2!1MXf9{mVCZ`c{A
zYn9-Aen&v;+V4$=Cd*wr;(b!F?O#dt+$g7|Z?`fuT&dLkH_Jz5sndiaPi4--9NL+3
zftSS3$tdsmYH|8&WsoLYmi<Hp_r6)r)*nxqvSg~{s%>7M?g}d#<?Y<4E$H-v|Lo*0
z0WCe(9iiJMvI^&fth251)!fw>pgNDC&9RDY+lyCrZ8M%MTXVhRogDYfEp8K-xFfzy
znSNyFbtdP?fDQL7@BEO|l&eVC@0MR4HP2<4<?9%h1slw?<nKyns=H<!{nu=G<3Kl$
zkCs9x^Cs83W^TQ~PS(FB+SmNKG5zEB`~TDbAD^$N`+i62JoD^DH9Jci4|YVK`<~Rf
zw58ML%VC$RZVR|CWh;1}kmX+O*Kljw%||`e^FLO6dcV8;X{FGNDxF9Pbq?V@HkJ$c
znz){HE|+_hFY)gm-(PQb<H}{<HWbxq`pwU6Tiv`sqy49O$(`R3yKkQ>)Z;&zb~wsu
z%}%9xS3jwr>o`B%@bUMUqkP>t#lZ<`ujc=~Isaj#{=!zy2YO2q_<mQIzFjJvVxQ^A
zCqA{g)i`MF%J`GtEE0Zxzn<3q$YP53!M+{xCd#vF9!G0$z4&1MYyQ5c9(!JYi+|%U
zyGU`)@p|`O`=U?r7tHP)-M;sWj9ORCkr@w)6ZR&5m||hSIQ_bLde+=qtAD1~|5`r7
z=F#_y9yXsv54P%RFK(J2U6_)8*8Q{7YUi+!0RG(>bIVM;-}ms=d<ckI{@{?z7KKT^
zu7RO`F<Yx8vjY4Y>ia8B^Y8f(yz0aP=?{POW`ypNUstB#xnp7Ks<%7meiF%CzIbuZ
zOBtcVahx?af%>)I9`i4}mFMqO%>Ql{WByuKld2-4-kKH9jjgIDSgOgL5-PhQp4YT2
z+I3g!&RM%zk_`=SXdFGW`C{fmZ4WcOwOe25D(U_I@}2vDw~49?w|GE!u!L;Lo~HDt
zZ#vaX<rXW}{PpRve=#eo)M(S~&3cC)UQy@NyL;W9uOw#PlR}fbB1$Ig@ewAG9Htih
zvz|J;CrvN9YZZMvbaUFiP<Q{RvcF~RmyCAnA31a9Fr)qTS$6%$7N4L0);pGCrP*C+
z=g)HQx+h$Gy4m*n<X!vQLX4TXzI$oSU0ZtBMyc-q{QCdz|BINXpAsyzU-;<!=8*IQ
zpC53U$%{Xp()sJpma_NzzyEsg?sG<P&%Z=L=B|HAre{tsy}a|sl3g`FTdX72?sa37
zkyvE@>h$F~mOpsiY(CHHdHgc-l=2?wcj153=TFjzU->j{j^p}G>i2_J{;gyDA<S^@
zQ?qK1h}9~)(s!O|GcqsLZK^-Yq%*rPwX5~Y&gukr4=Z`iuUoA|h5kRSENNR*6!}0u
zJIeRiQdS9OLCtuL?7p(e3XAyI@^_Rh={Ne`bS2~DAI``W>sv>^1<IJJ9Z|J5JYXv?
zc{Z(C^v1p1HTyU51Y1=;U$D|xNalQ}!6%`gk9W&TnQTlKZan0rck;o?OUrv~*`04E
zGKwfq&^&SZ)`75!o1T|DJTFErpOrVoI4Gm|!}I_DCfolM_6hj6S71%yCbkyQSjDoQ
z3l)z9Qry2S&}(Q(d~!in;#`fcjp|>AI(Idv)y(;<>g6nbY%kruSj^6dogS%Svh#d}
zjo<qPcP`Hm@$7rN@k<}mW6t28Pfpm)-(AVP>v<vXyu5po0@6G3R+^q&8vY`6yPA{P
z!@dl=ce_3Qo;`S=v}Wh5&OeXse<rK=NF<gtFV-wRr_%jOO6G|AnzeE<Mc=+Zla#hF
zw5>WPtv~OtK<T3MZ?0=BeAH(x@iU=~sqYlu7V$~0^2Ixy-q|G?9ZZ=p`D{hw>=|9l
zPgbxjfAmUW!>K89J7)w4oVaZy9lzn%!#@W)qw8<zzrR~}>rW?J{NpQ%3wAA$Rui7C
zxLfn|!W~)Nq2K#99=I^WM_c_*?ytD+HUG>1zw4ja`)SpkC*P8K)~V0RJl-a~D$<Yn
zRZoe4->u-_K9<$@ogB<PdwsQ;TM~QH>ZFpkMb6_eJ)Y~(>T$V$Q<9eC=U1}ZgjWW%
zYBx@Kvw!8ESqa7hiCz7TzUB8B{I7Br<jrL`XfyG|5>}T_6Zd$E%}(Wd_3oL0wL!3-
zf=Gwdt0lL-6;@gPa+336O8$Su<7=18)B~pRGhVp)`7}(a{dLY@;>!8wSbC;@=Wfmn
zwzu>yQ=2`L?bmMiXM6X@GyIdicV55lqxnAdpa0V1FE77$JG|~jc>L+_-xl!2&c1)>
zNyWtr->QF3j^9_)XkxHJ_h4DV)z|8?Rnx?y4|N4de3iNP=Vyia!_f1BEr!2O?tFZc
zw>rJ##_!z=!{T-*8}i1~Ze%X@E?irC<Cu5O+8GW<E~QN@joPy7Yk2T2msmgP98)nL
z^><ey6D&RnS7=xAANhPD<*Ka81m+KwDNDWE%uk2J<;^Rrne%){(N|ghV{$i)PT#+^
zFr>)Wd6sEaxz`Cf)7e(<9?JfnyR|WFo`O!I#NC;Wwc0syl{2S@P5b}uJGX=Np`J&s
z&$@mDZmZg;tWxA8qFYtvwDW@r?~dpjU#84_^R|ES^m;S>CL2L9DF%y%m;hs@&c=5?
z=J}j{9(7!iFLuenb4p$>m809fHyAuBh}o*Wo5S#&t;d|?HTe!v``QKU|JBTMnQJcb
zy6>*vS<eK!V_#x)ykg8e^^|OM!abrkFSng;owGqJpyVFo#f3(n7!|f@u1Nm0TYtax
zjSq8d^73~*)_s4YadGqQcd`%Kg(VJa|ID^&5xyOCV9B;ikM_OPRcB;hpV!m>^O}xU
zw$roxm5Z3wR<bFsU-_ZJX2OoM&vpm9XchL#EGrbywq3Yw-rPkTF?W;JSu~$3dez}3
z;*tG&8^`Hp^&h6k)?di4F1mWae!*q#WoPzJ{%v@6Im<kzwf29b{=F-&XSum`!7+jD
zufAob%kx-o%U*lCEPdXk7rJ{K&$=p4t&~Wdvuh#0{&m5+n0bC0DIuQ!=cVquS#)pr
z)#750Ja*2r&yyE(2wq?CXp>R!QTHRoC$_LCSo3M$NXazgZSeW%^kA_Y_vJKEg~mEj
zf7erioyU|^m%X{6=_q;hn9qHus}-!5-KMxXFKcbMyHK`cO5x|}?1$<#mfyQ_*}$nM
zH!El6vAKsrJ^N1yU!Ih`Cp1T9&6_9dCP>d<o4>67|IYd^?)5E&pZDMXVRy*0O0BG7
zTh^?<C3kkQ-`l*p?;+n~zh7CuKi7t=`JQICrz-#R{=E~8d~Y?ccbn$d|J_v4`}W?C
zw_?9fep+z-y-IFf?Vs<zE$X)CKKt<`{qtp;GxlDgEAp$K&SN;E(9|U9#ycrAe}lyS
zjTbJ-TAt*SyePi;A&a5Ge3t_v0uINwa_!+RGK(($*xcq@6m78N?@YeR3m<!G?j4z|
zaOAq}iP!znRXJNjXKyyTE3rC5s<!*!vndI7s=i@STp_I-D`yluPE<L&ODd+S^vS^k
z>W^(T_zp6dG_Mhwu4WdqusCoP^IUh;RSRW*yKLEbX|*5st><Dq)BnmiHNGf&HIpOA
z#~^EM=F>GBkNo~Vf3EzkOLmp9zt-)0TmAp@MBk6a$Ny~Jb}|18<NIGz^DVdU>#wZ-
zuVQ?Wlb@BTQh~Loz*KRoWb~R{x?5&hIoLXu@CsiS>kCNR_a|lM+_3itVuGY1I|Wvz
zWu8r$&`_{e`XtkvSxeq|9n`g%#QOY!!<nt?Z%6f8Ug?oD7gc<$zvuFCkHmGc7gwL2
zbYhiY+s(=uMka<c#g{C3SD@i>>*eZ2N8e=3zx7JzWd3z!k%`B4{yb8rx^lBYkm@s@
zL)UoHWxHly%gJj#csD%tT}Cp`d?glzDh3a)@}wPVtBo4uqhI&i+yDD>+s>EC{@#E2
z`no?qH!}SB@%i!jetUbd2C%@#=f{~ofCc{jnH|AU$He&m$M^qVq<@_M|9yAIfAc!&
z|DE#9zh3_T+1r!xNAKGE|G)qL^yPUq-Q205=3o83qgh|2f1TI2v-oeu_I3M~?f=yN
zeSSK-bIN~S|As$jefsWS+x;cE_tziCzrJ%B>bzfn$xjZbSMIK_+0FXE+-TALoPhm#
zj6Ys{t#jA^xn1g$eDklL&A-^~7VST^U|&At53%dNxp|(Z^Zwi($xx@<JZt~I1^*uU
zUd}gMaX*RiM-TgN?w(K8``;~|{IpoCAwDU<zOe7udixdi3d+BF*}v9yAN<VvVDbI0
z7q@?wz7i)tmqA`~()Ha8`;RPmCVyqYKgOOH<>o8Cb35!QURnEoZ_Op85BJ)?-aGkm
z;=;d%E9Tp;*#A-RuO9o?Jq$<K-M-xXx-Z?vF3}@i@>&1Ad!J*UA74=SZ9(1Hj$`Ys
z7rl>3s@v%}SG?gz%f!0U7JJFmpD(W0l}J2(%KBh&vy?sC*9{CcUmovk7W{jl`~TMF
zUt1L(xX1swY-=msU-MsJ->;27MGybpsqmnB|J%LIQuP7Nzoca^zE25wJlWwu|GpoW
z|NlQ$zwg_pd*)N(nVITVJDxo+e<8jw;J$U!{zk#SSJ}7fGkiQ)`Fo<^pCcFlzPNrT
z_MdyZ>i$>T>yJ9to?riutNEATqX*?izWd)h*6!sN(EqnPeEnbL#~&NxtIwy_e3@o{
zkM+knwy(<CuU6;ZbPvB&UdFiZG1&LXArF2Wus_cJ?`O07-+sRL?r~qvFJ`JwZ~i6A
z_d)(bN1b`|uPEscw*O`3e>lJY!GvG-_16sQ|2q7WxN@24Lw4Vb?T*Xq_Bvi=RoGYL
z`S*lJ{oR?bV&%V{GN>!@?d6}(@XvwGbpPK4b^OY|KDIvmEpw$mu<^d}s`GBYn3ZR}
zm)Q5?fok27@Bd3f9^C)2;MjKgEALZX_P<;De;?b|zb*@Qzpi*+TdQ~I)0fBZ^`7q)
zep=k=V9)k-bEkv6?8Wc*J{>>Z@;*7hei>`U*WGqTlio{Q46pk;b$$JLgF0*71J&za
z-M_cspOEsb`Sy$Me_gPzpYzAXi)Yr$w2QZYx0V0@rtFif{pV7j1M7Eo)kin~vh8_s
zow51;{RMS>su4AZ{?{@0d^P^}{rYB>--avZKjoM*zvgGXNAs^eygzjRe;5Dp+566^
z-&Y&#*}f__|MKpCq5u2&b;&E=0~`0JeYszJe!fM`{K^x*%t9W>H~*5;D)`f+{A(w-
zOWpM5DDDI96Q}emY0YN|s{a!D<3;Y?d-eYeSIoCvAzyp3{;uHJ|MU0mj$Nm+^OV6X
z&OQbi#_#p*$7&=DZZtCn_t@4mc!%yZE)Pq+7OCxIoV9Z4waVzKC@cBU=B0D3v)-*`
zP~N_sB|rLQZTMdE4KC?sS^ri@>&+@S`~Obh?e#1<e?Lcu?S0t3R<e9!NA2dVKUb9Q
z4gCJ!BsTxbH*2P?caCap`cl4I#ZF=cPff+%a>l;9f*B73y$`K0Ex&SNF@tz~$;`my
za@IbZc&79I|MV6-{rTp2RIX{(T$8MmvZcosGd!=I_0BNs&x8cq^V9b{H@^RLjsCwM
ziU;N7w%XXFJYHcOwkPr8Qukh2(TZn*VtF-BUY&4seB{om_g;SM9pfyUL*9C`z63t$
zx%IE$K~U21NGVITgipF*%JNzN8}}OZ#V22Rqs-LXlJMr%{~qVYr~Oj9B{!6~EG+qB
z^>NkIY4QDWS3VXqOO-xJJ8;H%-MuXt1xG3upR?8~;QTZ1;8gczdw$t|mlfS1VfwLx
zVXge3-tMxVC@Z~-J&T#*b*EQOn$Y%sPF3HkI3c?~H%@98`6o`a&AM51<*b;m%vK+1
z(>nJBk?HHb_U(K1Ds``V+^k~v1-sqXM)z4gW(nihxn=lZPhfI6i<UU|^uFo-{|dMA
z)UDXNJkBKR--?N^8N}kZ9PtyeDzZCy&zfm!U#oKVG^3JTAMO?Jbobj3vnxMF^XQ77
zi}QB8XbJRwwc`4ArY$;mCf&KVm3e1wrTAKTuhT~}=Pu>j`}MTj+RDXwyIx#cyzRd5
zhPSKU@7p@L-bI(Q{-v_<l`G%3{am4%f2CKPchB=`_g-0{oF}W7@wgfM^i7Ys^6xie
z&50GIIakh#^R_*h7kIp%Gh&jS_oGnl&GuJ*9%rd}xuSXVovj%&_rEY&{7goq<l23w
zO;PXmtZ+M9w@QBVtJ>)%at-{Z`V2=`nE&BOxbWgHL)!7o&C}fe_sr2Q7L(a(Xa34t
zy!ON9FRR^|r+vE9zfL%9&*SwAr>t&g-k)*h)14LikzW=D?ytN3?=?eO%zDF$)~`LQ
z<9^9Erd@dxXdYj3GVnGZ_r2o#%@c3?Ps-mU_j8+}QK9C<!%g~DS+V6;YVCci_qpy*
zzcR;~$yML|^;4N2+!8w<AD1d;smi$W>A(ulaHhN+8OOzI-mUofn9=2WPUOzyyYtMY
z|9*Hb%b)NuF#FL8=G40d7oWPnwKnv4KP$XEX4aKU7una|Ew1{|>aN?lm~YBg)owl0
ztTz`M*4CH3PR+WxwCw-3E$$KSj{}_Z6R(_Dv0Crezt(-%R@k#DRPlx%dw9@mW|edH
zF~hK5`@WvHQ0NHU|I1ceKWe+QX_3Q(Yplk6>&#w$C{2BE_?_jeS%IJ3@77#A>ZZH&
zeH}ykd-G3)YHOt{!zc1@{vMD}`<>Y!>svD8yNHr|;{R(Gf15A0=Ia@5TlHx(3<}Rb
ze53q);b}|L8G*)mtUIzV{%Q(5-_Lbt_p80jBX`cRc+BGSQ8-x2wEBv;-mf1kYRg&m
zQs3xwch8aj@aE^l&rIL$ivC!-_}ZR8^Qe;9fyI7&Q9|MSS1w;Hp84;jW4uvTQe^y=
z7e<SZy=T9$=~cLV{Od)W;SuR)BfS3i>bjkkFa7K~UFPerCkxW`wGU2zsxLKbJ5SAv
zkGE&_TG?bhcymBnch{8_AB~x}>imt3TE9s;V)xUtRrXU(xSqE(o)EZMj&IK149Vz{
zpMmG!bA&K?Z(sIxVLS8px*4|LZB`$yw{+{hBbf1Q(f2uWe|82YhciukkffY{`=@W{
z`Ty?s%ief7EZ)}ltI2h`bm_goM)OVQ0~^gHi!UAhf5-oFB`6<!SQl~k&Na#Zzqa2O
z{?NL3TIJ$*|JVPoTKsLkjLGBVyuEQL54QK!&9Jrq|9!s9l@;mx)vGU7onPeLUsV_W
zVBYPhsJwX1;7wBh9#`o({aJCq?X1*S*KR%ItpB!*(PBOKf=nOY5Ve&LI;Om~cb5ID
zwC+5^tlx?UPd#`PK0VVZIy$ZAUZ~0U2?;Y7PrKg#Ym@7A3DdHO4=3iXTfDl=P4RQT
zbUj1B`NV^p-PW#`FMaGfUH0p*4u_fN&wFQP{E8Ic__xDBUvld`>sP16Yg4Ywac6du
zzcgq1)qu0<_Mfc2Uu=->iFzjsj)BrQX$PkDt8XfJz`kB;hNV@a=HKgP{r7op7-#+L
z2sDo=`5E|_pH0g4MHJ_sU7OeH*3YzckLdn8rS$oVugY$<2N#|0t@>B+U|Rflomu;{
zK5r@R-+1d&!Gkq{r;qpkn&c`kSNi2jf@<Q!X`$BVc`b^jd==WUW9M?V*OFW7?yT4>
zrdupN*C0z)Vk=J^r-Y^I>8nqrqfNg&yIA>tukr=i#naxp&)u4F_V1KEiB~3>W&MtA
zJU>l`S6{zZe||x;SIH@%Ia^}b5?TYl+y8td+kLHCTvlT1vYuOIX$wxA^f-Sl=jS1R
ztD4x?d)B5i_r<OM-xc^eYH{Aaj6*Aw)49*>liX1HboJ87`;<H8r0!+WKU8bZtY?-L
znSEutj+H@{q{P;e7|t8N7Uz__Jn?9*V#eQOW%1;9FAr{Z(_JqMiOt(<8798h@p|yd
z$L!O>UcZlbR(##McwfmycThp8^Z9Yrffq;T6nhvfPLmhP`Rtl6Yx;ghgZ`#-hK#+l
zYJCp;)_Wtj_?)%Ii<ZUa*Lvsm%=*9O;H;DXd(PCK`YrfCH!${<d&Bg8D@_Lf_&Iak
z_U;o^P|ni-nP>8;uIE;zpjAF=#luD0dw%_uZS;Cn#lOz>vDcz))^j9GtFK&iJ-w^j
z&MfQAiUY=Z5o?Q=_nf<4y|(awU}NvB+K>nLcAvbn=Y`PXxcRacuh)fsejjIAvw!i#
z=n(JDIkGoa*e>3ea&f8KTYCkMC+kj5JUz9hH0*tR&3oH($M`ssuDoGx(%JT+2$W3>
zetnvDddil(C$YVDYZiT#)?56nf7j1Ns^2y&u6DDv*Qro3SSw%tI@N#PmaqDCB~7mn
zH}(Hh-B)qt+~KDD4H*w??^tKu|I6Uk7jF1-4fp20y+Zr%ZGHaYtGr#7X6AS1i0q5I
z-mG}b&z|@9(EL(^ZO3+cJ?MYC(_$w-yPWKs&2D!~F81kv`R(@BS|uXotI>zo2R)<f
zZHodw^Kpv({JKO?T>dL-x1M>{n+}JGk9DTEU5{NmyMW{OiT2Ci_5Z#QY)tEqiZ_1M
z)~#m`3aRk>Yro9tN_`}HP1Pdt{84Fptqp;j`?>bKSTwhDrghf+#f-|Q&sv`k`cZ8B
ztLDqDs~g>!rA&X<F>ve8vMG4Bm{HkKv+;R;gn8Am>yqN%f2}*<_I9pXk=KW>VrwV6
zzx~bq!rn5Y<mA20%KY~ZT&iaKcF%v?#>vf6roW#o=+?O<+4^(wKaqxOuh)1Le7#oM
ztiPIh{^oT3?7vSk?UmLBZg#($aZ%T;7gU5NXGYe1>R-L|@nNgo9TQ(ifr^lBvDmaL
zKbjk(ruD__Yg`=}eQ(e6!<{i-=CCtMn*R1W&?@#;X6rqptTzu2tj+GLTU4^m<Z=Jo
z|4r{}Eef8kczP9-FFwtmWBlr;Y-8HL|8C_mOTJk%?M=DE?pFJAQGbtBUC4u@Ve@{v
z*4~FEqOVCCj;;86o$<>*W$~LTKYbSk_th>=z49i|Jg(%^_TPUO$Jt96{CfU1Zoc52
zcT2uM-+GVVzACgk@Uwet>BT+T45!~NKGx5Ep*s3B@Ai#Xj&*L%513hO!>~9_o<HH*
zqSD8KxBIwan7pU;P3NsUmv(3CA{PBuKLQ)$?OwI~UYE1)#iYgC=F9D2iIb20dhGbx
zFL!S5djIdayj|8w`LF9-Pycb9E@}GwVuP_<=Et+2CEqXmo^<DT#(|rQr@eLCn|*Q4
zmUo7)zA`#S&6ocpGe`4r;OdJvugh=EGk?|9{j4tQzJ1mo>xTDYZ!HfU^6ig#JF{TR
zTDP<ErjH{SxOHY(y!uhj_`ID}-g3vSJ;^$A|6MyFf3tYP(r@$M_0F<=_2cel`RFal
zJA{68{C1bM)+#vvFg$zaKjnij+9!XmwEiryZNBBJ(_*qKGViT;yPavvn%RXuPdT?o
z)P8?Gaq;TscepN8754^u->tiNV8z#Mfsc<fYjEm!ubEZyrt3}j#PWa(6B+HZubdT=
zt$AJTmRoJ{q1>}~UFFwLPx4nRl6QNy^3b!sDEp!-({*-TSy7qJE@$~W>A0lC`g0qj
zn(8m=E@$kHW!(B|Me1!x@qYUq*PUPK+tyib%lQ08QavfplA(Af&jGK+*K*x!A1><e
zm$Ekw_>$bYMmA<E+q2xC6O_dDzn^iCH^`EeFTLzKUGD3jv;!x~H|@>luS>u1d0qAL
zzOC0*JWSNDyML@(&pHcKMowLP`pdr9OS@n0^?1CU>5R<QJw;c<b#~nWHL6nT_e@^T
zT=7Whs;gbo_TFEIT=Rd0oBqDoz+abWZ~4FWIEzWvH$z7A_>x;2m=qY~r5pVJKl-kG
zAiJLB#uMwS?e#1_zU2Rp<@|9=n^C<dY91)d+X?)ixR@!w;P)x(d^R07-+huF9=cAK
zy(-(tCLJ}4dBVrogX#UdUM}+Pf3@yF<IMYo;SU<m2bZ(f-CZHaBl73T&Ho1-OxG`y
z<GHf?h0)?Fiw{R#BR@Ypz}*-1y#LoE*XdGM86B<SzrA5}6qDI{M*eG`tM|P{(LJvw
zB+Lz-_Ku<E1E@`GEw=WvSZq-UJFD!EMfyvhrybyzE8VcBTtDiW-mW7n__+TaUH^Oi
zkK%|AGZ)|6n~^7SP3CH+qm|w?;bt4-SKeZ=Ss}~WxPAVv3vPaE{wl8fnyy=E(S>vR
zAO8CD?Yh50TG#4BYiz#k)t3i__1^ut+$_HMTDb155A)tjZhgD%z<u2tpIPO1-tjbF
zcje&uyC?3vEobfPiRz8o4r&!YKF<8(U23}g`J1UTOKL+?E^Y3<^qY5D;Ai*RlZ(82
zt7`2VrkQ#le(iPmHB<KXJ&{lP^LJ+GUfyz-|G)~{#rJk*oQ#CD3|>X<F`a8V@8-mE
z`%j!xekUj_PP3QDD7iRm_lr%7`{ac;sQk14ID2)^fBSMDhs9~~!UY>$r%QhQQ^#QZ
zzkac`UeNEq3}*76c7C<J?|kX4Zyz3r^z4m!cI2nq@^?EQz1+HZ+H<$LdoyP4elcnB
zw|MpoyFR^mI=|qn7pGt4{Za<Ev-|iIHf7A+{NfV0FezU8#CH4ImS^2{CyM*o6Ru1P
z1UEwei8KhsZ25XmeCfkf)qk7jnZMmRwKRoq@j1!TlD*R6cayGclV^+)Kf6o1;Oxtc
zl3VwFhkyOck#OaWJM*-224D1Meb@h2ym;Py(H-d*d)y;beCGU|(7o?|_LV;NfRekS
zKUTWF=5{+<X_DYs^Y7UC>#Lv7uQhql-ZQI4^}!j};<biZZ@dn?7n7|NC_7}TyS4aP
zPq%rU>Vm+{>sjV(eNiECP1>|BZNa69H}5^xy82O5S>Esd#{Wj=cv7ysF=p1?^y1Uv
zW9wOZ<SIAv{Ha>7c5Cvhi_DGR;yHgT3VgjMFn+^}qQ!l(qCehPPrR6{e|?VTX1goD
z`?&V}T#<Tjg|^<T@2>yPfHK;ab>fj9mi=Dy<&3m#VA1`L40Z)qP9A68k$rL3&lS(x
zS@Zw4ulX+H!}&bEYhKDqmi;Fd3&+Td-C414qxVi5ogZw_%)IpR({%0mYo~*{TEY6;
z>dX_a{DE|}KA+>O+4||~rIXjgxBh$Tc1~UX_py5`ZZ6)JaPg^IudU3Er{{ZhYQNfs
z9p9o`?{i-Ax_4(Bvu*a3Pa7faja+N30^c7qs>I~yn151q(F;2l*y#T6%Xyivsoi>p
zufCVFbj825{r1s+(#M5v_3zd=Uzd~kx_f)&$3^|URkcYI?%98yDY|?4xj)yR{5qoG
z_IBpu!(w|=uk8EHShHd$xGVIRVcy<=YH(d9J>Tr7fp8yJ&XrjED<A9kzOOySeSrO+
zw!J-r+gY9iyZ^ndS7KN!f1YiA`|%)qCJEEe?hSkET6Uyg`Bu#|jdT8a^Yaxde)Ed`
z9TvN})jnVJ^<v;{e}22i{}_bB@@8&K{WPufxIcg1l@lxUqe>oh+m>JX*3O)MSNX%M
zO@6bCtrESR`wJN6No?Jd1}O<QDl=_ecXLzGqeHsIa=pg$ePw2r%?*5=?RK~3qN;oD
ze(i#nF`La<CR<gTJ}vzCIPdiqP$%lW>;B)5>dUU|b8gydcVk!S!^Zba`)2DIJr|tu
zF=NgNQ2&2VM!}2U;C6$_9-UnU&v)t0Up~>YfAYDw|K0XQSq6)@_3V1NXzt=`(QdZ&
z76qK^WMVDMm&g0v`fPd2=;_t<pvHx_SguUzl67zQzq403adZ87v3XnaQZ8+_OpbpN
z-p*p2^=yTHL`lLC%f;XB^W3P4YZ8jtUHEeK>)`WhHnTrxy}EW?(zN~xuQ+etEupqM
zfxrFvZWX^<>iIm$>UT`e-#L3{?Rwi?_vOig(t<VRpys1@AE*F2^ZavNht#aSrQ2S7
ze$J?2&im(HVEn!p%8Td8i|sMry7r{ciEMA}==%IO+<*M%+k2f(JlK27`qi;+GrrP0
zc3HoZ8KeFOW=B?iDrZ^y`I>%Qy;*un-r{GV?i91@T=T5|r3~P{=hPdgmA(gCHqGB{
zTYQ`;;mW;0^XQW9z+`t;yVKbzAE!-apMA^dbNT03)2$|Z&w<i&#>G@O+1-*GST5h%
zl#=jvGw1nbIWJ#b{M%|@WxOD8fA!sE-Fmj5-pb<t?`v-#S+?z5DbJo<PSyh}lp!g7
zZh623-<~?AudD}F*#7^2!E||_)NUbzStq1F-@1ML-ga63hQP&()AXa>$CvB`^>9r-
zF<(1T)!ZM`>l0_CzUQB<+gUkqzt8kv!h&n7BNqRkz$)GsGdIX;m(=g1_kRTste6O?
z-q)Y!yYs6*^2xWUmhRykch^4JF=K7&v(M8dO{=e1i|KwAkIlMr<7~r4RrmMhGi}nn
zi`S>^oAv#VHN)b*o~q-EiZAcFx5BcYEvK^fOR?F)wYrz5Jy_!Y+0{7f8z^DV4E&wP
zCKH?g;OB`P<@5EX$!`vuW_?>Bt-I^&is$95cE1C+nb_6G2km~Q-^<(kXWuQ;X@TqA
zAk7MEjf|ALCk{<sw?1p;W*)y^e_ahhhDMgG418?Q6th-3wxZzai^SJn1^2$`|ClJx
z*mLXC!~8ujHZ9&ZSMtSbNRPAP){8w)lO8R$WN?#(^k}#KUvXgK(dh7bUnXA-4|aWS
z{XgmbUp`QH#P4|V7}UfTirB;wCl<ML%YL1r8LdJyzUMr;Wbyfb?MzrB`>nO@kDIS9
zPCXxY@8Tt)Ip5zrz3*H8?bG}HKYFdKUR~~f7RR~c*ou$A&0FVG?@WC<%~hB$G2Uvq
z&2NFeW!=eF-UQB%+oI2v-G8gj|G=dWzgAC;zMkjv_Ue|Wv(J6=sr<$pX2an2R<iV{
z>+iaA@#$A?Bp&oGczVxN-KOYk&ZB9X(ROR>|NgwcV&>v?J2LLpT=}QW6ub6%@sFwJ
z?p*6W8MU9MZ=?Qf{dZhhSI$5R-v3`79@y)By-#;i|HTmL<z7F`H$9ZrTbu@It9<=!
z&E$G{=L^Q0M*mmbFi&+mEBEy%xO3><z%Rc4_42^Y>t}7qc(>wnAJ?7-_s{%wHDBd=
zU9QxIA+o;N+^77`ukeH`Zy*(E-+zt?TmKw5wKaLyG-<DSzXcDh(2prO8Cd*|LnN~9
z(D_zd^Hnm;!Plqwhc9+>zguxJ)qQWBjsvI8%*yYptn6N%s9kf;u4P*#sF@7TB>zu3
zdUxLCeVy~PuQd8yjAfDj>uEpxF7sbpaT7Fj`DyVsS%D{67pIx7pERf9>Zyx{si&Rw
zlK8h9fRaj7$;`mp%mGr<^E{tBKi^>SI`94BRk!yin!b9mLLZcl&i8ZK6wR2r#(8~-
z-0nrscWA}$)u|Jh@V?F9)r%Fgb$1<Iah)+Ec6I9BdClufznD~|Y@K#L_;4*K3D4Hw
z^<>3H2A6+gO0RwY6q*`Uewol^Ie(qo-vgkY#rq=)svmZ(Hl3We>7C`Fs@GSp8%vv3
zU+EQ(ExYpmJl~zoKf+JnsrWVZg=N^exa&suf4&Fj7?7iGGa3A<IazJ@`Ak;&Wf@uH
z=>ZHqQnICsUAIeqwPM)2`rhPAQ_h{6c@0$3fQAzOS~1vWPk->*``)AbzF|zp+vXL2
zeKULYXaDfUeSN!rF7ocXCD$-%!<U<<)l9$cJ{gr}R~`9BI&5)Y->*Zi^732d_Ww9~
zaqFWO_npqa{&)YX(((V*|N5?P-M<%<+;cAKx~)Ba|KD4|xQ{FETU#96yZ`!%oBPW*
zyKa}*D!2d7Q^P$j@Bc5(7v9lfyZOt%|F5ru3XZd4cayGE{keNzcKezcAOB0Mo%+2$
zaP$BDHy1_sMD_3g|6BQ~(EX2gQu<-XOwO|(SaFkaM<v)I`#*;#?z(g4zOjMhw<(Vq
z4YIy`&)fDwZ1J_n^8Y`+h+2?7_2PHY9T^v|r|w&?Txzj6jy2&T#3jG38kQV>F<1Zf
zoaZyAOPc;p1xMf4AIs~lX1$lb`T5tG?>8$py2a1`Y}Y&Mubnw)<m&au^Z#o~?py9k
zUpeu+VMU>_+G+lVz|G7XE-X6TAJt#~b9(Zr!wa9;9Lf5jbpQLFz|HgTgNAa~9$#Ny
zTM~On{ob?L-4}~5KHuLPxcPqCVb|&MTjl=$TJL^c%74$gk4o!4S}ji7p9ks#ZI%1~
zE#LjSs{G%t4;*jwox7Iy{}&{ve8pp{u2lVbX6}CKqTu@q`Gei_4CDX*Hpu$+`$oyd
zrS5Bw=hs)4#J;+>^;6i}c}vUp-M9@3VQ@mK`t#wiVNKMOS${S)p1&&j`P<&Tft&9?
z2Y0J%|NXt+|6ytMtEZfo?|m;?oVLFPG@`myZvXGQ7i&L!-W`A4@NMyW<E(G5<3KIM
zYme>!J@&BV{3ZK7IpNl|`;))h_00Nf7q{s}(Bf;4?f-wy*yl3Q+wO6#n!n7?+K=Be
zue|yG6Ow-Ze~owlzI6BRw`%@#ewVqOt=m0a|JR8XUw{04->*6S%fGLAbMxXDdS=Ns
zi0fG8Ua9)?y<T2=?S_l-Qv=I64lM7F>X(;fvJ3wDm7j@$gF%7eKsw6;ng74HbkDP?
z{Iz8He9`+12aXFd2rxJ>FfcN(P>sRjKy4ER7z7v?sp>|MryUr27$70jz(6eq^-O}h
zXb>BDU}lvJ7u2B#(petxhcjP$baL|Y^VLP#3^fL{h%y!`CR9)&0HrHX@}hPgIKZL6
zK;@VN<>8TI<eZhq7cxM@u*QYql>9ojHAg3_`_KRW#rXff!_S9I!6i-QI8%Uy3N_OM
zG@wU_kp;`-+F78{@<EbO!(MEGnEyPR+Iy3u86Pxrf@@2tG<5=oi3X9z(ZEaPLW>6F
zASFg7#P9$AmjCJb`hUfY4gO!!?f<Xdbm{sWh6Z_RS1hz?UF1M(#s&t4^<n+aOwic+
z(ZVogvCP;0^A(?-yu3WGF06)`LEf9RCR0K?gUo)trT=<AK2T;3`2Xwp|34odUyhd&
zu>0)Zu>Z&5?M!Se*BKG^libYVXrOlO1<C<T6u1a`Mr>e^V5DBl71ki2K^tS>jI0Q=
z<zt05o*xJ^1=Q&{{C#W;>H}<1-_CS^U6^VOe`xTrFpTy9s9Hx;wJL&C@zgT%z|8-G
b2@Iz+iujEtDxYIuU|{fc^>bP0l+XkKHf_9f

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/NoColor.png b/htdocs/includes/jquery/plugins/jpicker/images/NoColor.png
new file mode 100755
index 0000000000000000000000000000000000000000..5dc47670ef4eae06eec62292e0b1786594428c9b
GIT binary patch
literal 552
zcmeAS@N?(olHy`uVBq!ia0y~yU=U<rVBqIqVqjqCy}a3tfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?DNh&2kcwM#CY|?Y3KTfLKUv#pVyD22zdKUe
zFYK8j!lvjUl34Zj{bw;p4GyUlE`lBrD@)FFa|Q`|P6+JwHC~<OGF@ug@prd>o~wEG
zTW;&e=LRL5Y=Zs87ChUfT@vK}P4}<7cmHC>g_E2{k|wiPJzT5%qo$<za3{;MWeE~L
zegrH{>F;^)miMaG)z^D=t~`}?dD+oFbvpWwUv^INoO1e8)AjH@dlp<ic$oQV(G<Vr
z9G>j#8S|!<ct0*s5O|Ogaw>RX!)fo<i4}Frk_4YW|4?Be)_mQ&&2Yx@+gD2qC#tJ$
zd2(~+n+tbj!dI{Q{<9*T{qf^j%4h!C?On)Po7VRIo5vJ)cMXvjU#5hIZD~IJ^{zy6
z#>B1ONpmGMKF7o+*3M;OoY_*Xus`F-(!A;K-@W)D(ciyHXZp>&>o1pHFrRtx{4@jK
zJNGU<RP0v$Xi>S>#!|B)V|!(J_(!(Hv&lOfUuRocBrF%6$T4l2OG7}1xmiKI|L@-!
zTi2A_UeJFbJ|@6!J&)3i`RxjvJprwUo7|TQEe*1<I<?HR)_3WmWx6^mmIwWF&&mJ%
zW=+_X<}8z6wHmWUA6J%&F1>W&mws}~ag(jHWn$MZtNy>^`g|rHhPvPT+W)Ek&}Lv@
OVDNPHb6Mw<&;$VN>jZ!R

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/Thumbs.db b/htdocs/includes/jquery/plugins/jpicker/images/Thumbs.db
new file mode 100755
index 0000000000000000000000000000000000000000..27621da65d4f1859df0e6939fb6c4f070894ea45
GIT binary patch
literal 39936
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

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png
new file mode 100755
index 0000000000000000000000000000000000000000..e42ad081260dcf697ad046e61356993d4c3c3d5b
GIT binary patch
literal 134
zcmeAS@N?(olHy`uVBq!ia0y~yVBi2@4kiW$2Jc+WI}8jAk|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+7&JUx978H@CD{}|<6-8Jkd{7t(}%}`;iXW||NsBn
ki_guo_2#x_VB%qLy2eoue&n<z0|Nttr>mdKI;Vst0M-X4+W-In

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png
new file mode 100755
index 0000000000000000000000000000000000000000..6756cee6df14dabac21fee85d68fd2e30f1873cb
GIT binary patch
literal 139
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLBuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFz9-^IEGZ*O0p?_#=~rukdxCBI;XSI#b8yV#DO3G
q|JSb(N<TkOmRI#xCIg27gVR=yh7BgJzZn=97(8A5T-G@yGywnzX)5;s

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif b/htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif
new file mode 100755
index 0000000000000000000000000000000000000000..f5f855745cfda02dcfa684d3fcd628eadf3d39e8
GIT binary patch
literal 93
zcmZ?wbhEHb<Y(Y#n8?Jyz`*by3>X*~6o0ZXGB7YP=zv5)@(fIRQ+Q_{pTzhuiNUNg
qD}!zK+0p~zMhAoC(x-Oi>~4DLIqi%3Z1cLe9bz*JM4X%%8LR>RE*?+-

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/picker.gif b/htdocs/includes/jquery/plugins/jpicker/images/picker.gif
new file mode 100755
index 0000000000000000000000000000000000000000..374d891042f22ff5c23eed3148b6ae5fe2cfdb1c
GIT binary patch
literal 146
zcmZ?wbhEHblw^=#Sj56`<Hn8u|NnpZ@IhKm`Tzg_3^1VhlZBCifrUW_Bmh#&z#Oiz
z;m$wrgPzGdEMDt`D<o+2C0(dVv6{uRYTugg=L{d5OR0VQ^yKng@#oavZ0&NB%oTod
tqhRaFyokz6tHL6Z8D_4NX#Q|Gn`gG{lK>H=grW@}x{Tims4y^C0{|BEJQV-{

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png
new file mode 100755
index 0000000000000000000000000000000000000000..0dd9a2f8b9d2a8ff3f52bf7ca4c772196a5dd8d6
GIT binary patch
literal 135
zcmeAS@N?(olHy`uVBq!ia0y~yU;weXIG7k17?=VgUNJB*NS3%plmzFem6RtIr7}3C
z<R_&nc;+Uirv{}arc@T5OtoQPV9@k*aSW-rm1I-=jE7msz|73;nUUcGR+Fh|fByfs
mH~RnP=H}+3nGB3<3>z&uN`xP%?Pp+MVDNPHb6Mw<&;$S}awz2h

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif b/htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif
new file mode 100755
index 0000000000000000000000000000000000000000..9fe89f472d1fae2552b8a43da7a1788327b87fe8
GIT binary patch
literal 76
zcmZ?wbhEHb6k%Xzn8?h)z`#&al=c7r|J}QHEB<6*WME)s&;f~p<QbS`dyH4kPG=H~
cX6#CTx@KlNLtC6lme0$X(d9n30~r{s0U=!$jsO4v

literal 0
HcmV?d00001

diff --git a/htdocs/includes/jquery/plugins/jpicker/jPicker.css b/htdocs/includes/jquery/plugins/jpicker/jPicker.css
new file mode 100755
index 00000000000..f63f8e5fb7d
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/jPicker.css
@@ -0,0 +1,17 @@
+@media all 
+{
+	#jPicker { margin: 0px 8px; text-align: left; }
+	#jPicker ul { font-size: 15px; margin: 0px 0px 0px 15px; padding: 0px; }
+	#jPicker ul li { list-style: disc; padding: 2px 0px; }
+	#jPicker ul li ul { margin-bottom: 10px; }
+	#jPicker ul li ul li { list-style: circle; }
+	#jPicker p { font-size: 13px; padding: 0px 10px; }
+	#jPicker hr { clear: both; }
+	#jPicker h2.jPicker { font-size: 16px; padding: 20px 10px; }
+	#jPicker code { color: #8bd; font-size: 14px; font-weight: bold; }
+	#jPicker pre { background: #eee; border: 1px solid #000; color: #000; display: block; font-size: 11px; margin: 10px 5px; padding: 5px; }
+	#jPicker span { font-size: 13px; text-align: center; }
+	#jPicker a { color: #ff8050; }
+	#jPicker input { font-size: 13px; padding: 2px 5px; }
+	#jPicker h2 { font-size: 16px; margin: 10px 0px; }
+}
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js
new file mode 100755
index 00000000000..3392159ffcb
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js
@@ -0,0 +1,2086 @@
+/*
+ * jPicker 1.1.6
+ *
+ * jQuery Plugin for Photoshop style color picker
+ *
+ * Copyright (c) 2010 Christopher T. Tillman
+ * Digital Magic Productions, Inc. (http://www.digitalmagicpro.com/)
+ * MIT style license, FREE to use, alter, copy, sell, and especially ENHANCE
+ *
+ * Painstakingly ported from John Dyers' excellent work on his own color picker based on the Prototype framework.
+ *
+ * John Dyers' website: (http://johndyer.name)
+ * Color Picker page:   (http://johndyer.name/post/2007/09/PhotoShop-like-JavaScript-Color-Picker.aspx)
+ *
+ */
+(function($, version)
+{
+  Math.precision = function(value, precision)
+    {
+      if (precision === undefined) precision = 0;
+      return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
+    };
+  var Slider = // encapsulate slider functionality for the ColorMap and ColorBar - could be useful to use a jQuery UI draggable for this with certain extensions
+      function(bar, options)
+      {
+        var $this = this, // private properties, methods, and events - keep these variables and classes invisible to outside code
+          arrow = bar.find('img:first'), // the arrow image to drag
+          minX = 0,
+          maxX = 100,
+          rangeX = 100,
+          minY = 0,
+          maxY = 100,
+          rangeY = 100,
+          x = 0,
+          y = 0,
+          offset,
+          timeout,
+          changeEvents = new Array(),
+          fireChangeEvents =
+            function(context)
+            {
+              for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context);
+            },
+          mouseDown = // bind the mousedown to the bar not the arrow for quick snapping to the clicked location
+            function(e)
+            {
+              var off = bar.offset();
+              offset = { l: off.left | 0, t: off.top | 0 };
+              clearTimeout(timeout);
+              timeout = setTimeout( // using setTimeout for visual updates - once the style is updated the browser will re-render internally allowing the next Javascript to run
+                function()
+                {
+                  setValuesFromMousePosition.call($this, e);
+                }, 0);
+              // Bind mousemove and mouseup event to the document so it responds when dragged of of the bar - we will unbind these when on mouseup to save processing
+              $(document).bind('mousemove', mouseMove).bind('mouseup', mouseUp);
+              e.preventDefault(); // don't try to select anything or drag the image to the desktop
+            },
+          mouseMove = // set the values as the mouse moves
+            function(e)
+            {
+              clearTimeout(timeout);
+              timeout = setTimeout(
+                function()
+                {
+                  setValuesFromMousePosition.call($this, e);
+                }, 0);
+              e.stopPropagation();
+              e.preventDefault();
+              return false;
+            },
+          mouseUp = // unbind the document events - they aren't needed when not dragging
+            function(e)
+            {
+              $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);
+              e.stopPropagation();
+              e.preventDefault();
+              return false;
+            },
+          setValuesFromMousePosition = // calculate mouse position and set value within the current range
+            function(e)
+            {
+              var locX = e.pageX - offset.l,
+                  locY = e.pageY - offset.t,
+                  barW = bar.w, // local copies for YUI compressor
+                  barH = bar.h;
+              // keep the arrow within the bounds of the bar
+              if (locX < 0) locX = 0;
+              else if (locX > barW) locX = barW;
+              if (locY < 0) locY = 0;
+              else if (locY > barH) locY = barH;
+              val.call($this, 'xy', { x: ((locX / barW) * rangeX) + minX, y: ((locY / barH) * rangeY) + minY });
+            },
+          draw =
+            function()
+            {
+              var arrowOffsetX = 0,
+                arrowOffsetY = 0,
+                barW = bar.w,
+                barH = bar.h,
+                arrowW = arrow.w,
+                arrowH = arrow.h;
+              setTimeout(
+                function()
+                {
+                  if (rangeX > 0) // range is greater than zero
+                  {
+                    // constrain to bounds
+                    if (x == maxX) arrowOffsetX = barW;
+                    else arrowOffsetX = ((x / rangeX) * barW) | 0;
+                  }
+                  if (rangeY > 0) // range is greater than zero
+                  {
+                    // constrain to bounds
+                    if (y == maxY) arrowOffsetY = barH;
+                    else arrowOffsetY = ((y / rangeY) * barH) | 0;
+                  }
+                  // if arrow width is greater than bar width, center arrow and prevent horizontal dragging
+                  if (arrowW >= barW) arrowOffsetX = (barW >> 1) - (arrowW >> 1); // number >> 1 - superfast bitwise divide by two and truncate (move bits over one bit discarding lowest)
+                  else arrowOffsetX -= arrowW >> 1;
+                  // if arrow height is greater than bar height, center arrow and prevent vertical dragging
+                  if (arrowH >= barH) arrowOffsetY = (barH >> 1) - (arrowH >> 1);
+                  else arrowOffsetY -= arrowH >> 1;
+                  // set the arrow position based on these offsets
+                  arrow.css({ left: arrowOffsetX + 'px', top: arrowOffsetY + 'px' });
+                }, 0);
+            },
+          val =
+            function(name, value, context)
+            {
+              var set = value !== undefined;
+              if (!set)
+              {
+                if (name === undefined || name == null) name = 'xy';
+                switch (name.toLowerCase())
+                {
+                  case 'x': return x;
+                  case 'y': return y;
+                  case 'xy':
+                  default: return { x: x, y: y };
+                }
+              }
+              if (context != null && context == $this) return;
+              var changed = false,
+                  newX,
+                  newY;
+              if (name == null) name = 'xy';
+              switch (name.toLowerCase())
+              {
+                case 'x':
+                  newX = value && (value.x && value.x | 0 || value | 0) || 0;
+                  break;
+                case 'y':
+                  newY = value && (value.y && value.y | 0 || value | 0) || 0;
+                  break;
+                case 'xy':
+                default:
+                  newX = value && value.x && value.x | 0 || 0;
+                  newY = value && value.y && value.y | 0 || 0;
+                  break;
+              }
+              if (newX != null)
+              {
+                if (newX < minX) newX = minX;
+                else if (newX > maxX) newX = maxX;
+                if (x != newX)
+                {
+                  x = newX;
+                  changed = true;
+                }
+              }
+              if (newY != null)
+              {
+                if (newY < minY) newY = minY;
+                else if (newY > maxY) newY = maxY;
+                if (y != newY)
+                {
+                  y = newY;
+                  changed = true;
+                }
+              }
+              changed && fireChangeEvents.call($this, context || $this);
+            },
+          range =
+            function (name, value)
+            {
+              var set = value !== undefined;
+              if (!set)
+              {
+                if (name === undefined || name == null) name = 'all';
+                switch (name.toLowerCase())
+                {
+                  case 'minx': return minX;
+                  case 'maxx': return maxX;
+                  case 'rangex': return { minX: minX, maxX: maxX, rangeX: rangeX };
+                  case 'miny': return minY;
+                  case 'maxy': return maxY;
+                  case 'rangey': return { minY: minY, maxY: maxY, rangeY: rangeY };
+                  case 'all':
+                  default: return { minX: minX, maxX: maxX, rangeX: rangeX, minY: minY, maxY: maxY, rangeY: rangeY };
+                }
+              }
+              var changed = false,
+                  newMinX,
+                  newMaxX,
+                  newMinY,
+                  newMaxY;
+              if (name == null) name = 'all';
+              switch (name.toLowerCase())
+              {
+                case 'minx':
+                  newMinX = value && (value.minX && value.minX | 0 || value | 0) || 0;
+                  break;
+                case 'maxx':
+                  newMaxX = value && (value.maxX && value.maxX | 0 || value | 0) || 0;
+                  break;
+                case 'rangex':
+                  newMinX = value && value.minX && value.minX | 0 || 0;
+                  newMaxX = value && value.maxX && value.maxX | 0 || 0;
+                  break;
+                case 'miny':
+                  newMinY = value && (value.minY && value.minY | 0 || value | 0) || 0;
+                  break;
+                case 'maxy':
+                  newMaxY = value && (value.maxY && value.maxY | 0 || value | 0) || 0;
+                  break;
+                case 'rangey':
+                  newMinY = value && value.minY && value.minY | 0 || 0;
+                  newMaxY = value && value.maxY && value.maxY | 0 || 0;
+                  break;
+                case 'all':
+                default:
+                  newMinX = value && value.minX && value.minX | 0 || 0;
+                  newMaxX = value && value.maxX && value.maxX | 0 || 0;
+                  newMinY = value && value.minY && value.minY | 0 || 0;
+                  newMaxY = value && value.maxY && value.maxY | 0 || 0;
+                  break;
+              }
+              if (newMinX != null && minX != newMinX)
+              {
+                minX = newMinX;
+                rangeX = maxX - minX;
+              }
+              if (newMaxX != null && maxX != newMaxX)
+              {
+                maxX = newMaxX;
+                rangeX = maxX - minX;
+              }
+              if (newMinY != null && minY != newMinY)
+              {
+                minY = newMinY;
+                rangeY = maxY - minY;
+              }
+              if (newMaxY != null && maxY != newMaxY)
+              {
+                maxY = newMaxY;
+                rangeY = maxY - minY;
+              }
+            },
+          bind =
+            function (callback)
+            {
+              if ($.isFunction(callback)) changeEvents.push(callback);
+            },
+          unbind =
+            function (callback)
+            {
+              if (!$.isFunction(callback)) return;
+              var i;
+              while ((i = $.inArray(callback, changeEvents)) != -1) changeEvents.splice(i, 1);
+            },
+          destroy =
+            function()
+            {
+              // unbind all possible events and null objects
+              $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);
+              bar.unbind('mousedown', mouseDown);
+              bar = null;
+              arrow = null;
+              changeEvents = null;
+            };
+        $.extend(true, $this, // public properties, methods, and event bindings - these we need to access from other controls
+          {
+            val: val,
+            range: range,
+            bind: bind,
+            unbind: unbind,
+            destroy: destroy
+          });
+        // initialize this control
+        arrow.src = options.arrow && options.arrow.image;
+        arrow.w = options.arrow && options.arrow.width || arrow.width();
+        arrow.h = options.arrow && options.arrow.height || arrow.height();
+        bar.w = options.map && options.map.width || bar.width();
+        bar.h = options.map && options.map.height || bar.height();
+        // bind mousedown event
+        bar.bind('mousedown', mouseDown);
+        bind.call($this, draw);
+      },
+    ColorValuePicker = // controls for all the input elements for the typing in color values
+      function(picker, color, bindedHex, alphaPrecision)
+      {
+        var $this = this, // private properties and methods
+          inputs = picker.find('td.Text input'),
+          red = inputs.eq(3),
+          green = inputs.eq(4),
+          blue = inputs.eq(5),
+          alpha = inputs.length > 7 ? inputs.eq(6) : null,
+          hue = inputs.eq(0),
+          saturation = inputs.eq(1),
+          value = inputs.eq(2),
+          hex = inputs.eq(inputs.length > 7 ? 7 : 6),
+          ahex = inputs.length > 7 ? inputs.eq(8) : null,
+          keyDown = // input box key down - use arrows to alter color
+            function(e)
+            {
+              if (e.target.value == '' && e.target != hex.get(0) && (bindedHex != null && e.target != bindedHex.get(0) || bindedHex == null)) return;
+              if (!validateKey(e)) return e;
+              switch (e.target)
+              {
+                case red.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      red.val(setValueInRange.call($this, (red.val() << 0) + 1, 0, 255));
+                      color.val('r', red.val(), e.target);
+                      return false;
+                    case 40:
+                      red.val(setValueInRange.call($this, (red.val() << 0) - 1, 0, 255));
+                      color.val('r', red.val(), e.target);
+                      return false;
+                  }
+                  break;
+                case green.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      green.val(setValueInRange.call($this, (green.val() << 0) + 1, 0, 255));
+                      color.val('g', green.val(), e.target);
+                      return false;
+                    case 40:
+                      green.val(setValueInRange.call($this, (green.val() << 0) - 1, 0, 255));
+                      color.val('g', green.val(), e.target);
+                      return false;
+                  }
+                  break;
+                case blue.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      blue.val(setValueInRange.call($this, (blue.val() << 0) + 1, 0, 255));
+                      color.val('b', blue.val(), e.target);
+                      return false;
+                    case 40:
+                      blue.val(setValueInRange.call($this, (blue.val() << 0) - 1, 0, 255));
+                      color.val('b', blue.val(), e.target);
+                      return false;
+                  }
+                  break;
+                case alpha && alpha.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      alpha.val(setValueInRange.call($this, parseFloat(alpha.val()) + 1, 0, 100));
+                      color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
+                      return false;
+                    case 40:
+                      alpha.val(setValueInRange.call($this, parseFloat(alpha.val()) - 1, 0, 100));
+                      color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
+                      return false;
+                  }
+                  break;
+                case hue.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      hue.val(setValueInRange.call($this, (hue.val() << 0) + 1, 0, 360));
+                      color.val('h', hue.val(), e.target);
+                      return false;
+                    case 40:
+                      hue.val(setValueInRange.call($this, (hue.val() << 0) - 1, 0, 360));
+                      color.val('h', hue.val(), e.target);
+                      return false;
+                  }
+                  break;
+                case saturation.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      saturation.val(setValueInRange.call($this, (saturation.val() << 0) + 1, 0, 100));
+                      color.val('s', saturation.val(), e.target);
+                      return false;
+                    case 40:
+                      saturation.val(setValueInRange.call($this, (saturation.val() << 0) - 1, 0, 100));
+                      color.val('s', saturation.val(), e.target);
+                      return false;
+                  }
+                  break;
+                case value.get(0):
+                  switch (e.keyCode)
+                  {
+                    case 38:
+                      value.val(setValueInRange.call($this, (value.val() << 0) + 1, 0, 100));
+                      color.val('v', value.val(), e.target);
+                      return false;
+                    case 40:
+                      value.val(setValueInRange.call($this, (value.val() << 0) - 1, 0, 100));
+                      color.val('v', value.val(), e.target);
+                      return false;
+                  }
+                  break;
+              }
+            },
+          keyUp = // input box key up - validate value and set color
+            function(e)
+            {
+              if (e.target.value == '' && e.target != hex.get(0) && (bindedHex != null && e.target != bindedHex.get(0) || bindedHex == null)) return;
+              if (!validateKey(e)) return e;
+              switch (e.target)
+              {
+                case red.get(0):
+                  red.val(setValueInRange.call($this, red.val(), 0, 255));
+                  color.val('r', red.val(), e.target);
+                  break;
+                case green.get(0):
+                  green.val(setValueInRange.call($this, green.val(), 0, 255));
+                  color.val('g', green.val(), e.target);
+                  break;
+                case blue.get(0):
+                  blue.val(setValueInRange.call($this, blue.val(), 0, 255));
+                  color.val('b', blue.val(), e.target);
+                  break;
+                case alpha && alpha.get(0):
+                  alpha.val(setValueInRange.call($this, alpha.val(), 0, 100));
+                  color.val('a', Math.precision((alpha.val() * 255) / 100, alphaPrecision), e.target);
+                  break;
+                case hue.get(0):
+                  hue.val(setValueInRange.call($this, hue.val(), 0, 360));
+                  color.val('h', hue.val(), e.target);
+                  break;
+                case saturation.get(0):
+                  saturation.val(setValueInRange.call($this, saturation.val(), 0, 100));
+                  color.val('s', saturation.val(), e.target);
+                  break;
+                case value.get(0):
+                  value.val(setValueInRange.call($this, value.val(), 0, 100));
+                  color.val('v', value.val(), e.target);
+                  break;
+                case hex.get(0):
+                  hex.val(hex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 6));
+                  bindedHex && bindedHex.val(hex.val());
+                  color.val('hex', hex.val() != '' ? hex.val() : null, e.target);
+                  break;
+                case bindedHex && bindedHex.get(0):
+                  bindedHex.val(bindedHex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 6));
+                  hex.val(bindedHex.val());
+                  color.val('hex', bindedHex.val() != '' ? bindedHex.val() : null, e.target);
+                  break;
+                case ahex && ahex.get(0):
+                  ahex.val(ahex.val().replace(/[^a-fA-F0-9]/g, '').toLowerCase().substring(0, 2));
+                  color.val('a', ahex.val() != null ? parseInt(ahex.val(), 16) : null, e.target);
+                  break;
+              }
+            },
+          blur = // input box blur - reset to original if value empty
+            function(e)
+            {
+              if (color.val() != null)
+              {
+                switch (e.target)
+                {
+                  case red.get(0): red.val(color.val('r')); break;
+                  case green.get(0): green.val(color.val('g')); break;
+                  case blue.get(0): blue.val(color.val('b')); break;
+                  case alpha && alpha.get(0): alpha.val(Math.precision((color.val('a') * 100) / 255, alphaPrecision)); break;
+                  case hue.get(0): hue.val(color.val('h')); break;
+                  case saturation.get(0): saturation.val(color.val('s')); break;
+                  case value.get(0): value.val(color.val('v')); break;
+                  case hex.get(0):
+                  case bindedHex && bindedHex.get(0):
+                    hex.val(color.val('hex'));
+                    bindedHex && bindedHex.val(color.val('hex'));
+                    break;
+                  case ahex && ahex.get(0): ahex.val(color.val('ahex').substring(6)); break;
+                }
+              }
+            },
+          validateKey = // validate key
+            function(e)
+            {
+              switch(e.keyCode)
+              {
+                case 9:
+                case 16:
+                case 29:
+                case 37:
+                case 39:
+                  return false;
+                case 'c'.charCodeAt():
+                case 'v'.charCodeAt():
+                  if (e.ctrlKey) return false;
+              }
+              return true;
+            },
+          setValueInRange = // constrain value within range
+            function(value, min, max)
+            {
+              if (value == '' || isNaN(value)) return min;
+              if (value > max) return max;
+              if (value < min) return min;
+              return value;
+            },
+          colorChanged =
+            function(ui, context)
+            {
+              var all = ui.val('all');
+              if (context != red.get(0)) red.val(all != null ? all.r : '');
+              if (context != green.get(0)) green.val(all != null ? all.g : '');
+              if (context != blue.get(0)) blue.val(all != null ? all.b : '');
+              if (alpha && context != alpha.get(0)) alpha.val(all != null ? Math.precision((all.a * 100) / 255, alphaPrecision) : '');
+              if (context != hue.get(0)) hue.val(all != null ? all.h : '');
+              if (context != saturation.get(0)) saturation.val(all != null ? all.s : '');
+              if (context != value.get(0)) value.val(all != null ? all.v : '');
+              if (context != hex.get(0) && (bindedHex && context != bindedHex.get(0) || !bindedHex)) hex.val(all != null ? all.hex : '');
+              if (bindedHex && context != bindedHex.get(0) && context != hex.get(0)) bindedHex.val(all != null ? all.hex : '');
+              if (ahex && context != ahex.get(0)) ahex.val(all != null ? all.ahex.substring(6) : '');
+            },
+          destroy =
+            function()
+            {
+              // unbind all events and null objects
+              red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).unbind('keyup', keyUp).unbind('blur', blur);
+              red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).unbind('keydown', keyDown);
+              color.unbind(colorChanged);
+              red = null;
+              green = null;
+              blue = null;
+              alpha = null;
+              hue = null;
+              saturation = null;
+              value = null;
+              hex = null;
+              ahex = null;
+            };
+        $.extend(true, $this, // public properties and methods
+          {
+            destroy: destroy
+          });
+        red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).bind('keyup', keyUp).bind('blur', blur);
+        red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).bind('keydown', keyDown);
+        color.bind(colorChanged);
+      };
+  $.jPicker =
+    {
+      List: [], // array holding references to each active instance of the control
+      Color: // color object - we will be able to assign by any color space type or retrieve any color space info
+             // we want this public so we can optionally assign new color objects to initial values using inputs other than a string hex value (also supported)
+        function(init)
+        {
+          var $this = this,
+            r,
+            g,
+            b,
+            a,
+            h,
+            s,
+            v,
+            changeEvents = new Array(),
+            fireChangeEvents = 
+              function(context)
+              {
+                for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context);
+              },
+            val =
+              function(name, value, context)
+              {
+                var set = value !== undefined;
+                if (!set)
+                {
+                  if (name === undefined || name == null || name == '') name = 'all';
+                  if (r == null) return null;
+                  switch (name.toLowerCase())
+                  {
+                    case 'ahex': return ColorMethods.rgbaToHex({ r: r, g: g, b: b, a: a });
+                    case 'hex': return val('ahex').substring(0, 6);
+                    case 'all': return { r: r, g: g, b: b, a: a, h: h, s: s, v: v, hex: val.call($this, 'hex'), ahex: val.call($this, 'ahex') };
+                    default:
+                      var ret={};
+                      for (var i = 0; i < name.length; i++)
+                      {
+                        switch (name.charAt(i))
+                        {
+                          case 'r':
+                            if (name.length == 1) ret = r;
+                            else ret.r = r;
+                            break;
+                          case 'g':
+                            if (name.length == 1) ret = g;
+                            else ret.g = g;
+                            break;
+                          case 'b':
+                            if (name.length == 1) ret = b;
+                            else ret.b = b;
+                            break;
+                          case 'a':
+                            if (name.length == 1) ret = a;
+                            else ret.a = a;
+                            break;
+                          case 'h':
+                            if (name.length == 1) ret = h;
+                            else ret.h = h;
+                            break;
+                          case 's':
+                            if (name.length == 1) ret = s;
+                            else ret.s = s;
+                            break;
+                          case 'v':
+                            if (name.length == 1) ret = v;
+                            else ret.v = v;
+                            break;
+                        }
+                      }
+                      return ret == {} ? val.call($this, 'all') : ret;
+                      break;
+                  }
+                }
+                if (context != null && context == $this) return;
+                var changed = false;
+                if (name == null) name = '';
+                if (value == null)
+                {
+                  if (r != null)
+                  {
+                    r = null;
+                    changed = true;
+                  }
+                  if (g != null)
+                  {
+                    g = null;
+                    changed = true;
+                  }
+                  if (b != null)
+                  {
+                    b = null;
+                    changed = true;
+                  }
+                  if (a != null)
+                  {
+                    a = null;
+                    changed = true;
+                  }
+                  if (h != null)
+                  {
+                    h = null;
+                    changed = true;
+                  }
+                  if (s != null)
+                  {
+                    s = null;
+                    changed = true;
+                  }
+                  if (v != null)
+                  {
+                    v = null;
+                    changed = true;
+                  }
+                  changed && fireChangeEvents.call($this, context || $this);
+                  return;
+                }
+                switch (name.toLowerCase())
+                {
+                  case 'ahex':
+                  case 'hex':
+                    var ret = ColorMethods.hexToRgba(value && (value.ahex || value.hex) || value || '00000000');
+                    val.call($this, 'rgba', { r: ret.r, g: ret.g, b: ret.b, a: name == 'ahex' ? ret.a : a != null ? a : 255 }, context);
+                    break;
+                  default:
+                    if (value && (value.ahex != null || value.hex != null))
+                    {
+                      val.call($this, 'ahex', value.ahex || value.hex || '00000000', context);
+                      return;
+                    }
+                    var newV = {}, rgb = false, hsv = false;
+                    if (value.r !== undefined && !name.indexOf('r') == -1) name += 'r';
+                    if (value.g !== undefined && !name.indexOf('g') == -1) name += 'g';
+                    if (value.b !== undefined && !name.indexOf('b') == -1) name += 'b';
+                    if (value.a !== undefined && !name.indexOf('a') == -1) name += 'a';
+                    if (value.h !== undefined && !name.indexOf('h') == -1) name += 'h';
+                    if (value.s !== undefined && !name.indexOf('s') == -1) name += 's';
+                    if (value.v !== undefined && !name.indexOf('v') == -1) name += 'v';
+                    for (var i = 0; i < name.length; i++)
+                    {
+                      switch (name.charAt(i))
+                      {
+                        case 'r':
+                          if (hsv) continue;
+                          rgb = true;
+                          newV.r = value && value.r && value.r | 0 || value && value | 0 || 0;
+                          if (newV.r < 0) newV.r = 0;
+                          else if (newV.r > 255) newV.r = 255;
+                          if (r != newV.r)
+                          {
+                            r = newV.r;
+                            changed = true;
+                          }
+                          break;
+                        case 'g':
+                          if (hsv) continue;
+                          rgb = true;
+                          newV.g = value && value.g && value.g | 0 || value && value | 0 || 0;
+                          if (newV.g < 0) newV.g = 0;
+                          else if (newV.g > 255) newV.g = 255;
+                          if (g != newV.g)
+                          {
+                            g = newV.g;
+                            changed = true;
+                          }
+                          break;
+                        case 'b':
+                          if (hsv) continue;
+                          rgb = true;
+                          newV.b = value && value.b && value.b | 0 || value && value | 0 || 0;
+                          if (newV.b < 0) newV.b = 0;
+                          else if (newV.b > 255) newV.b = 255;
+                          if (b != newV.b)
+                          {
+                            b = newV.b;
+                            changed = true;
+                          }
+                          break;
+                        case 'a':
+                          newV.a = value && value.a != null ? value.a | 0 : value != null ? value | 0 : 255;
+                          if (newV.a < 0) newV.a = 0;
+                          else if (newV.a > 255) newV.a = 255;
+                          if (a != newV.a)
+                          {
+                            a = newV.a;
+                            changed = true;
+                          }
+                          break;
+                        case 'h':
+                          if (rgb) continue;
+                          hsv = true;
+                          newV.h = value && value.h && value.h | 0 || value && value | 0 || 0;
+                          if (newV.h < 0) newV.h = 0;
+                          else if (newV.h > 360) newV.h = 360;
+                          if (h != newV.h)
+                          {
+                            h = newV.h;
+                            changed = true;
+                          }
+                          break;
+                        case 's':
+                          if (rgb) continue;
+                          hsv = true;
+                          newV.s = value && value.s != null ? value.s | 0 : value != null ? value | 0 : 100;
+                          if (newV.s < 0) newV.s = 0;
+                          else if (newV.s > 100) newV.s = 100;
+                          if (s != newV.s)
+                          {
+                            s = newV.s;
+                            changed = true;
+                          }
+                          break;
+                        case 'v':
+                          if (rgb) continue;
+                          hsv = true;
+                          newV.v = value && value.v != null ? value.v | 0 : value != null ? value | 0 : 100;
+                          if (newV.v < 0) newV.v = 0;
+                          else if (newV.v > 100) newV.v = 100;
+                          if (v != newV.v)
+                          {
+                            v = newV.v;
+                            changed = true;
+                          }
+                          break;
+                      }
+                    }
+                    if (changed)
+                    {
+                      if (rgb)
+                      {
+                        r = r || 0;
+                        g = g || 0;
+                        b = b || 0;
+                        var ret = ColorMethods.rgbToHsv({ r: r, g: g, b: b });
+                        h = ret.h;
+                        s = ret.s;
+                        v = ret.v;
+                      }
+                      else if (hsv)
+                      {
+                        h = h || 0;
+                        s = s != null ? s : 100;
+                        v = v != null ? v : 100;
+                        var ret = ColorMethods.hsvToRgb({ h: h, s: s, v: v });
+                        r = ret.r;
+                        g = ret.g;
+                        b = ret.b;
+                      }
+                      a = a != null ? a : 255;
+                      fireChangeEvents.call($this, context || $this);
+                    }
+                    break;
+                }
+              },
+            bind =
+              function(callback)
+              {
+                if ($.isFunction(callback)) changeEvents.push(callback);
+              },
+            unbind =
+              function(callback)
+              {
+                if (!$.isFunction(callback)) return;
+                var i;
+                while ((i = $.inArray(callback, changeEvents)) != -1) changeEvents.splice(i, 1);
+              },
+            destroy =
+              function()
+              {
+                changeEvents = null;
+              }
+          $.extend(true, $this, // public properties and methods
+            {
+              val: val,
+              bind: bind,
+              unbind: unbind,
+              destroy: destroy
+            });
+          if (init)
+          {
+            if (init.ahex != null) val('ahex', init);
+            else if (init.hex != null) val((init.a != null ? 'a' : '') + 'hex', init.a != null ? { ahex: init.hex + ColorMethods.intToHex(init.a) } : init);
+            else if (init.r != null && init.g != null && init.b != null) val('rgb' + (init.a != null ? 'a' : ''), init);
+            else if (init.h != null && init.s != null && init.v != null) val('hsv' + (init.a != null ? 'a' : ''), init);
+          }
+        },
+      ColorMethods: // color conversion methods  - make public to give use to external scripts
+        {
+          hexToRgba:
+            function(hex)
+            {
+              hex = this.validateHex(hex);
+              if (hex == '') return { r: null, g: null, b: null, a: null };
+              var r = '00', g = '00', b = '00', a = '255';
+              if (hex.length == 6) hex += 'ff';
+              if (hex.length > 6)
+              {
+                r = hex.substring(0, 2);
+                g = hex.substring(2, 4);
+                b = hex.substring(4, 6);
+                a = hex.substring(6, hex.length);
+              }
+              else
+              {
+                if (hex.length > 4)
+                {
+                  r = hex.substring(4, hex.length);
+                  hex = hex.substring(0, 4);
+                }
+                if (hex.length > 2)
+                {
+                  g = hex.substring(2, hex.length);
+                  hex = hex.substring(0, 2);
+                }
+                if (hex.length > 0) b = hex.substring(0, hex.length);
+              }
+              return { r: this.hexToInt(r), g: this.hexToInt(g), b: this.hexToInt(b), a: this.hexToInt(a) };
+            },
+          validateHex:
+            function(hex)
+            {
+              hex = hex.toLowerCase().replace(/[^a-f0-9]/g, '');
+              if (hex.length > 8) hex = hex.substring(0, 8);
+              return hex;
+            },
+          rgbaToHex:
+            function(rgba)
+            {
+              return this.intToHex(rgba.r) + this.intToHex(rgba.g) + this.intToHex(rgba.b) + this.intToHex(rgba.a);
+            },
+          intToHex:
+            function(dec)
+            {
+              var result = (dec | 0).toString(16);
+              if (result.length == 1) result = ('0' + result);
+              return result.toLowerCase();
+            },
+          hexToInt:
+            function(hex)
+            {
+              return parseInt(hex, 16);
+            },
+          rgbToHsv:
+            function(rgb)
+            {
+              var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255, hsv = { h: 0, s: 0, v: 0 }, min = 0, max = 0, delta;
+              if (r >= g && r >= b)
+              {
+                max = r;
+                min = g > b ? b : g;
+              }
+              else if (g >= b && g >= r)
+              {
+                max = g;
+                min = r > b ? b : r;
+              }
+              else
+              {
+                max = b;
+                min = g > r ? r : g;
+              }
+              hsv.v = max;
+              hsv.s = max ? (max - min) / max : 0;
+              if (!hsv.s) hsv.h = 0;
+              else
+              {
+                delta = max - min;
+                if (r == max) hsv.h = (g - b) / delta;
+                else if (g == max) hsv.h = 2 + (b - r) / delta;
+                else hsv.h = 4 + (r - g) / delta;
+                hsv.h = parseInt(hsv.h * 60);
+                if (hsv.h < 0) hsv.h += 360;
+              }
+              hsv.s = (hsv.s * 100) | 0;
+              hsv.v = (hsv.v * 100) | 0;
+              return hsv;
+            },
+          hsvToRgb:
+            function(hsv)
+            {
+              var rgb = { r: 0, g: 0, b: 0, a: 100 }, h = hsv.h, s = hsv.s, v = hsv.v;
+              if (s == 0)
+              {
+                if (v == 0) rgb.r = rgb.g = rgb.b = 0;
+                else rgb.r = rgb.g = rgb.b = (v * 255 / 100) | 0;
+              }
+              else
+              {
+                if (h == 360) h = 0;
+                h /= 60;
+                s = s / 100;
+                v = v / 100;
+                var i = h | 0,
+                    f = h - i,
+                    p = v * (1 - s),
+                    q = v * (1 - (s * f)),
+                    t = v * (1 - (s * (1 - f)));
+                switch (i)
+                {
+                  case 0:
+                    rgb.r = v;
+                    rgb.g = t;
+                    rgb.b = p;
+                    break;
+                  case 1:
+                    rgb.r = q;
+                    rgb.g = v;
+                    rgb.b = p;
+                    break;
+                  case 2:
+                    rgb.r = p;
+                    rgb.g = v;
+                    rgb.b = t;
+                    break;
+                  case 3:
+                    rgb.r = p;
+                    rgb.g = q;
+                    rgb.b = v;
+                    break;
+                  case 4:
+                    rgb.r = t;
+                    rgb.g = p;
+                    rgb.b = v;
+                    break;
+                  case 5:
+                    rgb.r = v;
+                    rgb.g = p;
+                    rgb.b = q;
+                    break;
+                }
+                rgb.r = (rgb.r * 255) | 0;
+                rgb.g = (rgb.g * 255) | 0;
+                rgb.b = (rgb.b * 255) | 0;
+              }
+              return rgb;
+            }
+        }
+    };
+  var Color = $.jPicker.Color, List = $.jPicker.List, ColorMethods = $.jPicker.ColorMethods; // local copies for YUI compressor
+  $.fn.jPicker =
+    function(options)
+    {
+      var $arguments = arguments;
+      return this.each(
+        function()
+        {
+          var $this = this, settings = $.extend(true, {}, $.fn.jPicker.defaults, options); // local copies for YUI compressor
+          if ($($this).get(0).nodeName.toLowerCase() == 'input') // Add color picker icon if binding to an input element and bind the events to the input
+          {
+            $.extend(true, settings,
+              {
+                window:
+                {
+                  bindToInput: true,
+                  expandable: true,
+                  input: $($this)
+                }
+              });
+            if($($this).val()=='')
+            {
+              settings.color.active = new Color({ hex: null });
+              settings.color.current = new Color({ hex: null });
+            }
+            else if (ColorMethods.validateHex($($this).val()))
+            {
+              settings.color.active = new Color({ hex: $($this).val(), a: settings.color.active.val('a') });
+              settings.color.current = new Color({ hex: $($this).val(), a: settings.color.active.val('a') });
+            }
+          }
+          if (settings.window.expandable)
+            $($this).after('<span class="jPicker"><span class="Icon"><span class="Color">&nbsp;</span><span class="Alpha">&nbsp;</span><span class="Image" title="Click To Open Color Picker">&nbsp;</span><span class="Container">&nbsp;</span></span></span>');
+          else settings.window.liveUpdate = false; // Basic control binding for inline use - You will need to override the liveCallback or commitCallback function to retrieve results
+          var isLessThanIE7 = parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters, // needed to run the AlphaImageLoader function for IE6
+            container = null,
+            colorMapDiv = null,
+            colorBarDiv = null,
+            colorMapL1 = null, // different layers of colorMap and colorBar
+            colorMapL2 = null,
+            colorMapL3 = null,
+            colorBarL1 = null,
+            colorBarL2 = null,
+            colorBarL3 = null,
+            colorBarL4 = null,
+            colorBarL5 = null,
+            colorBarL6 = null,
+            colorMap = null, // color maps
+            colorBar = null,
+            colorPicker = null,
+            elementStartX = null, // Used to record the starting css positions for dragging the control
+            elementStartY = null,
+            pageStartX = null, // Used to record the mousedown coordinates for dragging the control
+            pageStartY = null,
+            activePreview = null, // color boxes above the radio buttons
+            currentPreview = null,
+            okButton = null,
+            cancelButton = null,
+            grid = null, // preset colors grid
+            iconColor = null, // iconColor for popup icon
+            iconAlpha = null, // iconAlpha for popup icon
+            iconImage = null, // iconImage popup icon
+            moveBar = null, // drag bar
+            setColorMode = // set color mode and update visuals for the new color mode
+              function(colorMode)
+              {
+                var active = color.active, // local copies for YUI compressor
+                  clientPath = images.clientPath,
+                  hex = active.val('hex'),
+                  rgbMap,
+                  rgbBar;
+                settings.color.mode = colorMode;
+                switch (colorMode)
+                {
+                  case 'h':
+                    setTimeout(
+                      function()
+                      {
+                        setBG.call($this, colorMapDiv, 'transparent');
+                        setImgLoc.call($this, colorMapL1, 0);
+                        setAlpha.call($this, colorMapL1, 100);
+                        setImgLoc.call($this, colorMapL2, 260);
+                        setAlpha.call($this, colorMapL2, 100);
+                        setBG.call($this, colorBarDiv, 'transparent');
+                        setImgLoc.call($this, colorBarL1, 0);
+                        setAlpha.call($this, colorBarL1, 100);
+                        setImgLoc.call($this, colorBarL2, 260);
+                        setAlpha.call($this, colorBarL2, 100);
+                        setImgLoc.call($this, colorBarL3, 260);
+                        setAlpha.call($this, colorBarL3, 100);
+                        setImgLoc.call($this, colorBarL4, 260);
+                        setAlpha.call($this, colorBarL4, 100);
+                        setImgLoc.call($this, colorBarL6, 260);
+                        setAlpha.call($this, colorBarL6, 100);
+                      }, 0);
+                    colorMap.range('all', { minX: 0, maxX: 100, minY: 0, maxY: 100 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 360 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('s'), y: 100 - active.val('v') }, colorMap);
+                    colorBar.val('y', 360 - active.val('h'), colorBar);
+                    break;
+                  case 's':
+                    setTimeout(
+                      function()
+                      {
+                        setBG.call($this, colorMapDiv, 'transparent');
+                        setImgLoc.call($this, colorMapL1, -260);
+                        setImgLoc.call($this, colorMapL2, -520);
+                        setImgLoc.call($this, colorBarL1, -260);
+                        setImgLoc.call($this, colorBarL2, -520);
+                        setImgLoc.call($this, colorBarL6, 260);
+                        setAlpha.call($this, colorBarL6, 100);
+                      }, 0);
+                    colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 100 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('v') }, colorMap);
+                    colorBar.val('y', 100 - active.val('s'), colorBar);
+                    break;
+                  case 'v':
+                    setTimeout(
+                      function()
+                      {
+                        setBG.call($this, colorMapDiv, '000000');
+                        setImgLoc.call($this, colorMapL1, -780);
+                        setImgLoc.call($this, colorMapL2, 260);
+                        setBG.call($this, colorBarDiv, hex);
+                        setImgLoc.call($this, colorBarL1, -520);
+                        setImgLoc.call($this, colorBarL2, 260);
+                        setAlpha.call($this, colorBarL2, 100);
+                        setImgLoc.call($this, colorBarL6, 260);
+                        setAlpha.call($this, colorBarL6, 100);
+                      }, 0);
+                    colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 100 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('s') }, colorMap);
+                    colorBar.val('y', 100 - active.val('v'), colorBar);
+                    break;
+                  case 'r':
+                    rgbMap = -1040;
+                    rgbBar = -780;
+                    colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 255 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('b'), y: 255 - active.val('g') }, colorMap);
+                    colorBar.val('y', 255 - active.val('r'), colorBar);
+                    break;
+                  case 'g':
+                    rgbMap = -1560;
+                    rgbBar = -1820;
+                    colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 255 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('b'), y: 255 - active.val('r') }, colorMap);
+                    colorBar.val('y', 255 - active.val('g'), colorBar);
+                    break;
+                  case 'b':
+                    rgbMap = -2080;
+                    rgbBar = -2860;
+                    colorMap.range('all', { minX: 0, maxX: 255, minY: 0, maxY: 255 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 255 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('r'), y: 255 - active.val('g') }, colorMap);
+                    colorBar.val('y', 255 - active.val('b'), colorBar);
+                    break;
+                  case 'a':
+                    setTimeout(
+                      function()
+                      {
+                        setBG.call($this, colorMapDiv, 'transparent');
+                        setImgLoc.call($this, colorMapL1, -260);
+                        setImgLoc.call($this, colorMapL2, -520);
+                        setImgLoc.call($this, colorBarL1, 260);
+                        setImgLoc.call($this, colorBarL2, 260);
+                        setAlpha.call($this, colorBarL2, 100);
+                        setImgLoc.call($this, colorBarL6, 0);
+                        setAlpha.call($this, colorBarL6, 100);
+                      }, 0);
+                    colorMap.range('all', { minX: 0, maxX: 360, minY: 0, maxY: 100 });
+                    colorBar.range('rangeY', { minY: 0, maxY: 255 });
+                    if (active.val('ahex') == null) break;
+                    colorMap.val('xy', { x: active.val('h'), y: 100 - active.val('v') }, colorMap);
+                    colorBar.val('y', 255 - active.val('a'), colorBar);
+                    break;
+                  default:
+                    throw ('Invalid Mode');
+                    break;
+                }
+                switch (colorMode)
+                {
+                  case 'h':
+                    break;
+                  case 's':
+                  case 'v':
+                  case 'a':
+                    setTimeout(
+                      function()
+                      {
+                        setAlpha.call($this, colorMapL1, 100);
+                        setAlpha.call($this, colorBarL1, 100);
+                        setImgLoc.call($this, colorBarL3, 260);
+                        setAlpha.call($this, colorBarL3, 100);
+                        setImgLoc.call($this, colorBarL4, 260);
+                        setAlpha.call($this, colorBarL4, 100);
+                      }, 0);
+                    break;
+                  case 'r':
+                  case 'g':
+                  case 'b':
+                    setTimeout(
+                      function()
+                      {
+                        setBG.call($this, colorMapDiv, 'transparent');
+                        setBG.call($this, colorBarDiv, 'transparent');
+                        setAlpha.call($this, colorBarL1, 100);
+                        setAlpha.call($this, colorMapL1, 100);
+                        setImgLoc.call($this, colorMapL1, rgbMap);
+                        setImgLoc.call($this, colorMapL2, rgbMap - 260);
+                        setImgLoc.call($this, colorBarL1, rgbBar - 780);
+                        setImgLoc.call($this, colorBarL2, rgbBar - 520);
+                        setImgLoc.call($this, colorBarL3, rgbBar);
+                        setImgLoc.call($this, colorBarL4, rgbBar - 260);
+                        setImgLoc.call($this, colorBarL6, 260);
+                        setAlpha.call($this, colorBarL6, 100);
+                      }, 0);
+                    break;
+                }
+                if (active.val('ahex') == null) return;
+                activeColorChanged.call($this, active);
+              },
+            activeColorChanged = // Update color when user changes text values
+              function(ui, context)
+              {
+                if (context == null || (context != colorBar && context != colorMap)) positionMapAndBarArrows.call($this, ui, context);
+                setTimeout(
+                  function()
+                  {
+                    updatePreview.call($this, ui);
+                    updateMapVisuals.call($this, ui);
+                    updateBarVisuals.call($this, ui);
+                  }, 0);
+              },
+            mapValueChanged = // user has dragged the ColorMap pointer
+              function(ui, context)
+              {
+                var active = color.active;
+                if (context != colorMap && active.val() == null) return;
+                var xy = ui.val('all');
+                switch (settings.color.mode)
+                {
+                  case 'h':
+                    active.val('sv', { s: xy.x, v: 100 - xy.y }, context);
+                    break;
+                  case 's':
+                  case 'a':
+                    active.val('hv', { h: xy.x, v: 100 - xy.y }, context);
+                    break;
+                  case 'v':
+                    active.val('hs', { h: xy.x, s: 100 - xy.y }, context);
+                    break;
+                  case 'r':
+                    active.val('gb', { g: 255 - xy.y, b: xy.x }, context);
+                    break;
+                  case 'g':
+                    active.val('rb', { r: 255 - xy.y, b: xy.x }, context);
+                    break;
+                  case 'b':
+                    active.val('rg', { r: xy.x, g: 255 - xy.y }, context);
+                    break;
+                }
+              },
+            colorBarValueChanged = // user has dragged the ColorBar slider
+              function(ui, context)
+              {
+                var active = color.active;
+                if (context != colorBar && active.val() == null) return;
+                switch (settings.color.mode)
+                {
+                  case 'h':
+                    active.val('h', { h: 360 - ui.val('y') }, context);
+                    break;
+                  case 's':
+                    active.val('s', { s: 100 - ui.val('y') }, context);
+                    break;
+                  case 'v':
+                    active.val('v', { v: 100 - ui.val('y') }, context);
+                    break;
+                  case 'r':
+                    active.val('r', { r: 255 - ui.val('y') }, context);
+                    break;
+                  case 'g':
+                    active.val('g', { g: 255 - ui.val('y') }, context);
+                    break;
+                  case 'b':
+                    active.val('b', { b: 255 - ui.val('y') }, context);
+                    break;
+                  case 'a':
+                    active.val('a', 255 - ui.val('y'), context);
+                    break;
+                }
+              },
+            positionMapAndBarArrows = // position map and bar arrows to match current color
+              function(ui, context)
+              {
+                if (context != colorMap)
+                {
+                  switch (settings.color.mode)
+                  {
+                    case 'h':
+                      var sv = ui.val('sv');
+                      colorMap.val('xy', { x: sv != null ? sv.s : 100, y: 100 - (sv != null ? sv.v : 100) }, context);
+                      break;
+                    case 's':
+                    case 'a':
+                      var hv = ui.val('hv');
+                      colorMap.val('xy', { x: hv && hv.h || 0, y: 100 - (hv != null ? hv.v : 100) }, context);
+                      break;
+                    case 'v':
+                      var hs = ui.val('hs');
+                      colorMap.val('xy', { x: hs && hs.h || 0, y: 100 - (hs != null ? hs.s : 100) }, context);
+                      break;
+                    case 'r':
+                      var bg = ui.val('bg');
+                      colorMap.val('xy', { x: bg && bg.b || 0, y: 255 - (bg && bg.g || 0) }, context);
+                      break;
+                    case 'g':
+                      var br = ui.val('br');
+                      colorMap.val('xy', { x: br && br.b || 0, y: 255 - (br && br.r || 0) }, context);
+                      break;
+                    case 'b':
+                      var rg = ui.val('rg');
+                      colorMap.val('xy', { x: rg && rg.r || 0, y: 255 - (rg && rg.g || 0) }, context);
+                      break;
+                  }
+                }
+                if (context != colorBar)
+                {
+                  switch (settings.color.mode)
+                  {
+                    case 'h':
+                      colorBar.val('y', 360 - (ui.val('h') || 0), context);
+                      break;
+                    case 's':
+                      var s = ui.val('s');
+                      colorBar.val('y', 100 - (s != null ? s : 100), context);
+                      break;
+                    case 'v':
+                      var v = ui.val('v');
+                      colorBar.val('y', 100 - (v != null ? v : 100), context);
+                      break;
+                    case 'r':
+                      colorBar.val('y', 255 - (ui.val('r') || 0), context);
+                      break;
+                    case 'g':
+                      colorBar.val('y', 255 - (ui.val('g') || 0), context);
+                      break;
+                    case 'b':
+                      colorBar.val('y', 255 - (ui.val('b') || 0), context);
+                      break;
+                    case 'a':
+                      var a = ui.val('a');
+                      colorBar.val('y', 255 - (a != null ? a : 255), context);
+                      break;
+                  }
+                }
+              },
+            updatePreview =
+              function(ui)
+              {
+                try
+                {
+                  var all = ui.val('all');
+                  activePreview.css({ backgroundColor: all && '#' + all.hex || 'transparent' });
+                  setAlpha.call($this, activePreview, all && Math.precision((all.a * 100) / 255, 4) || 0);
+                }
+                catch (e) { }
+              },
+            updateMapVisuals =
+              function(ui)
+              {
+                switch (settings.color.mode)
+                {
+                  case 'h':
+                    setBG.call($this, colorMapDiv, new Color({ h: ui.val('h') || 0, s: 100, v: 100 }).val('hex'));
+                    break;
+                  case 's':
+                  case 'a':
+                    var s = ui.val('s');
+                    setAlpha.call($this, colorMapL2, 100 - (s != null ? s : 100));
+                    break;
+                  case 'v':
+                    var v = ui.val('v');
+                    setAlpha.call($this, colorMapL1, v != null ? v : 100);
+                    break;
+                  case 'r':
+                    setAlpha.call($this, colorMapL2, Math.precision((ui.val('r') || 0) / 255 * 100, 4));
+                    break;
+                  case 'g':
+                    setAlpha.call($this, colorMapL2, Math.precision((ui.val('g') || 0) / 255 * 100, 4));
+                    break;
+                  case 'b':
+                    setAlpha.call($this, colorMapL2, Math.precision((ui.val('b') || 0) / 255 * 100));
+                    break;
+                }
+                var a = ui.val('a');
+                setAlpha.call($this, colorMapL3, Math.precision(((255 - (a || 0)) * 100) / 255, 4));
+              },
+            updateBarVisuals =
+              function(ui)
+              {
+                switch (settings.color.mode)
+                {
+                  case 'h':
+                    var a = ui.val('a');
+                    setAlpha.call($this, colorBarL5, Math.precision(((255 - (a || 0)) * 100) / 255, 4));
+                    break;
+                  case 's':
+                    var hva = ui.val('hva'),
+                        saturatedColor = new Color({ h: hva && hva.h || 0, s: 100, v: hva != null ? hva.v : 100 });
+                    setBG.call($this, colorBarDiv, saturatedColor.val('hex'));
+                    setAlpha.call($this, colorBarL2, 100 - (hva != null ? hva.v : 100));
+                    setAlpha.call($this, colorBarL5, Math.precision(((255 - (hva && hva.a || 0)) * 100) / 255, 4));
+                    break;
+                  case 'v':
+                    var hsa = ui.val('hsa'),
+                        valueColor = new Color({ h: hsa && hsa.h || 0, s: hsa != null ? hsa.s : 100, v: 100 });
+                    setBG.call($this, colorBarDiv, valueColor.val('hex'));
+                    setAlpha.call($this, colorBarL5, Math.precision(((255 - (hsa && hsa.a || 0)) * 100) / 255, 4));
+                    break;
+                  case 'r':
+                  case 'g':
+                  case 'b':
+                    var hValue = 0, vValue = 0, rgba = ui.val('rgba');
+                    if (settings.color.mode == 'r')
+                    {
+                      hValue = rgba && rgba.b || 0;
+                      vValue = rgba && rgba.g || 0;
+                    }
+                    else if (settings.color.mode == 'g')
+                    {
+                      hValue = rgba && rgba.b || 0;
+                      vValue = rgba && rgba.r || 0;
+                    }
+                    else if (settings.color.mode == 'b')
+                    {
+                      hValue = rgba && rgba.r || 0;
+                      vValue = rgba && rgba.g || 0;
+                    }
+                    var middle = vValue > hValue ? hValue : vValue;
+                    setAlpha.call($this, colorBarL2, hValue > vValue ? Math.precision(((hValue - vValue) / (255 - vValue)) * 100, 4) : 0);
+                    setAlpha.call($this, colorBarL3, vValue > hValue ? Math.precision(((vValue - hValue) / (255 - hValue)) * 100, 4) : 0);
+                    setAlpha.call($this, colorBarL4, Math.precision((middle / 255) * 100, 4));
+                    setAlpha.call($this, colorBarL5, Math.precision(((255 - (rgba && rgba.a || 0)) * 100) / 255, 4));
+                    break;
+                  case 'a':
+                    var a = ui.val('a');
+                    setBG.call($this, colorBarDiv, ui.val('hex') || '000000');
+                    setAlpha.call($this, colorBarL5, a != null ? 0 : 100);
+                    setAlpha.call($this, colorBarL6, a != null ? 100 : 0);
+                    break;
+                }
+              },
+            setBG =
+              function(el, c)
+              {
+                el.css({ backgroundColor: c && c.length == 6 && '#' + c || 'transparent' });
+              },
+            setImg =
+              function(img, src)
+              {
+                if (isLessThanIE7 && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
+                {
+                  img.attr('pngSrc', src);
+                  img.css({ backgroundImage: 'none', filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\')' });
+                }
+                else img.css({ backgroundImage: 'url(\'' + src + '\')' });
+              },
+            setImgLoc =
+              function(img, y)
+              {
+                img.css({ top: y + 'px' });
+              },
+            setAlpha =
+              function(obj, alpha)
+              {
+                obj.css({ visibility: alpha > 0 ? 'visible' : 'hidden' });
+                if (alpha > 0 && alpha < 100)
+                {
+                  if (isLessThanIE7)
+                  {
+                    var src = obj.attr('pngSrc');
+                    if (src != null && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
+                      obj.css({ filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\') progid:DXImageTransform.Microsoft.Alpha(opacity=' + alpha + ')' });
+                    else obj.css({ opacity: Math.precision(alpha / 100, 4) });
+                  }
+                  else obj.css({ opacity: Math.precision(alpha / 100, 4) });
+                }
+                else if (alpha == 0 || alpha == 100)
+                {
+                  if (isLessThanIE7)
+                  {
+                    var src = obj.attr('pngSrc');
+                    if (src != null && (src.indexOf('AlphaBar.png') != -1 || src.indexOf('Bars.png') != -1 || src.indexOf('Maps.png') != -1))
+                      obj.css({ filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\', sizingMethod=\'scale\')' });
+                    else obj.css({ opacity: '' });
+                  }
+                  else obj.css({ opacity: '' });
+                }
+              },
+            revertColor = // revert color to original color when opened
+              function()
+              {
+                color.active.val('ahex', color.current.val('ahex'));
+              },
+            commitColor = // commit the color changes
+              function()
+              {
+                color.current.val('ahex', color.active.val('ahex'));
+              },
+            radioClicked =
+              function(e)
+              {
+                $(this).parents('tbody:first').find('input:radio[value!="'+e.target.value+'"]').removeAttr('checked');
+                setColorMode.call($this, e.target.value);
+              },
+            currentClicked =
+              function()
+              {
+                revertColor.call($this);
+              },
+            cancelClicked =
+              function()
+              {
+                revertColor.call($this);
+                settings.window.expandable && hide.call($this);
+                $.isFunction(cancelCallback) && cancelCallback.call($this, color.active, cancelButton);
+              },
+            okClicked =
+              function()
+              {
+                commitColor.call($this);
+                settings.window.expandable && hide.call($this);
+                $.isFunction(commitCallback) && commitCallback.call($this, color.active, okButton);
+              },
+            iconImageClicked =
+              function()
+              {
+                show.call($this);
+              },
+            currentColorChanged =
+              function(ui, context)
+              {
+                var hex = ui.val('hex');
+                currentPreview.css({ backgroundColor: hex && '#' + hex || 'transparent' });
+                setAlpha.call($this, currentPreview, Math.precision(((ui.val('a') || 0) * 100) / 255, 4));
+              },
+            expandableColorChanged =
+              function(ui, context)
+              {
+                var hex = ui.val('hex');
+                var va = ui.val('va');
+                iconColor.css({ backgroundColor: hex && '#' + hex || 'transparent' });
+                setAlpha.call($this, iconAlpha, Math.precision(((255 - (va && va.a || 0)) * 100) / 255, 4));
+                if (settings.window.bindToInput&&settings.window.updateInputColor)
+                  settings.window.input.css(
+                    {
+                      backgroundColor: hex && '#' + hex || 'transparent',
+                      color: va == null || va.v > 75 ? '#000000' : '#ffffff'
+                    });
+              },
+            moveBarMouseDown =
+              function(e)
+              {
+                var element = settings.window.element, // local copies for YUI compressor
+                  page = settings.window.page;
+                elementStartX = parseInt(container.css('left'));
+                elementStartY = parseInt(container.css('top'));
+                pageStartX = e.pageX;
+                pageStartY = e.pageY;
+                // bind events to document to move window - we will unbind these on mouseup
+                $(document).bind('mousemove', documentMouseMove).bind('mouseup', documentMouseUp);
+                e.preventDefault(); // prevent attempted dragging of the column
+              },
+            documentMouseMove =
+              function(e)
+              {
+                container.css({ left: elementStartX - (pageStartX - e.pageX) + 'px', top: elementStartY - (pageStartY - e.pageY) + 'px' });
+                if (settings.window.expandable && !$.support.boxModel) container.prev().css({ left: container.css("left"), top: container.css("top") });
+                e.stopPropagation();
+                e.preventDefault();
+                return false;
+              },
+            documentMouseUp =
+              function(e)
+              {
+                $(document).unbind('mousemove', documentMouseMove).unbind('mouseup', documentMouseUp);
+                e.stopPropagation();
+                e.preventDefault();
+                return false;
+              },
+            quickPickClicked =
+              function(e)
+              {
+                e.preventDefault();
+                e.stopPropagation();
+                color.active.val('ahex', $(this).attr('title') || null, e.target);
+                return false;
+              },
+            commitCallback = $.isFunction($arguments[1]) && $arguments[1] || null,
+            liveCallback = $.isFunction($arguments[2]) && $arguments[2] || null,
+            cancelCallback = $.isFunction($arguments[3]) && $arguments[3] || null,
+            show =
+              function()
+              {
+                color.current.val('ahex', color.active.val('ahex'));
+                var attachIFrame = function()
+                  {
+                    if (!settings.window.expandable || $.support.boxModel) return;
+                    var table = container.find('table:first');
+                    container.before('<iframe/>');
+                    container.prev().css({ width: table.width(), height: container.height(), opacity: 0, position: 'absolute', left: container.css("left"), top: container.css("top") });
+                  };
+                if (settings.window.expandable)
+                {
+                  $(document.body).children('div.jPicker.Container').css({zIndex:10});
+                  container.css({zIndex:20});
+                }
+                switch (settings.window.effects.type)
+                {
+                  case 'fade':
+                    container.fadeIn(settings.window.effects.speed.show, attachIFrame);
+                    break;
+                  case 'slide':
+                    container.slideDown(settings.window.effects.speed.show, attachIFrame);
+                    break;
+                  case 'show':
+                  default:
+                    container.show(settings.window.effects.speed.show, attachIFrame);
+                    break;
+                }
+              },
+            hide =
+              function()
+              {
+                var removeIFrame = function()
+                  {
+                    if (settings.window.expandable) container.css({ zIndex: 10 });
+                    if (!settings.window.expandable || $.support.boxModel) return;
+                    container.prev().remove();
+                  };
+                switch (settings.window.effects.type)
+                {
+                  case 'fade':
+                    container.fadeOut(settings.window.effects.speed.hide, removeIFrame);
+                    break;
+                  case 'slide':
+                    container.slideUp(settings.window.effects.speed.hide, removeIFrame);
+                    break;
+                  case 'show':
+                  default:
+                    container.hide(settings.window.effects.speed.hide, removeIFrame);
+                    break;
+                }
+              },
+            initialize =
+              function()
+              {
+                var win = settings.window,
+                    popup = win.expandable ? $($this).next().find('.Container:first') : null;
+                container = win.expandable ? $('<div/>') : $($this);
+                container.addClass('jPicker Container');
+                if (win.expandable) container.hide();
+                container.get(0).onselectstart = function(event){ if (event.target.nodeName.toLowerCase() !== 'input') return false; };
+                // inject html source code - we are using a single table for this control - I know tables are considered bad, but it takes care of equal height columns and
+                // this control really is tabular data, so I believe it is the right move
+                var all = color.active.val('all');
+                if (win.alphaPrecision < 0) win.alphaPrecision = 0;
+                else if (win.alphaPrecision > 2) win.alphaPrecision = 2;
+                var controlHtml='<table class="jPicker" cellpadding="0" cellspacing="0"><tbody>' + (win.expandable ? '<tr><td class="Move" colspan="5">&nbsp;</td></tr>' : '') + '<tr><td rowspan="9"><h2 class="Title">' + (win.title || localization.text.title) + '</h2><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="' + images.clientPath + images.colorMap.arrow.file + '" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="' + images.clientPath + images.colorBar.arrow.file + '" class="Arrow"/></div></td><td colspan="2" class="Preview">' + localization.text.newColor + '<div><span class="Active" title="' + localization.tooltips.colors.newColor + '">&nbsp;</span><span class="Current" title="' + localization.tooltips.colors.currentColor + '">&nbsp;</span></div>' + localization.text.currentColor + '</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="' + localization.text.ok + '" title="' + localization.tooltips.buttons.ok + '"/><input type="button" class="Cancel" value="' + localization.text.cancel + '" title="' + localization.tooltips.buttons.cancel + '"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label title="' + localization.tooltips.hue.radio + '"><input type="radio" value="h"' + (settings.color.mode == 'h' ? ' checked="checked"' : '') + '/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.h : '') + '" title="' + localization.tooltips.hue.textbox + '"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label title="' + localization.tooltips.saturation.radio + '"><input type="radio" value="s"' + (settings.color.mode == 's' ? ' checked="checked"' : '') + '/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.s : '') + '" title="' + localization.tooltips.saturation.textbox + '"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label title="' + localization.tooltips.value.radio + '"><input type="radio" value="v"' + (settings.color.mode == 'v' ? ' checked="checked"' : '') + '/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.v : '') + '" title="' + localization.tooltips.value.textbox + '"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label title="' + localization.tooltips.red.radio + '"><input type="radio" value="r"' + (settings.color.mode == 'r' ? ' checked="checked"' : '') + '/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.r : '') + '" title="' + localization.tooltips.red.textbox + '"/></td></tr><tr class="Green"><td class="Radio"><label title="' + localization.tooltips.green.radio + '"><input type="radio" value="g"' + (settings.color.mode == 'g' ? ' checked="checked"' : '') + '/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.g : '') + '" title="' + localization.tooltips.green.textbox + '"/></td></tr><tr class="Blue"><td class="Radio"><label title="' + localization.tooltips.blue.radio + '"><input type="radio" value="b"' + (settings.color.mode == 'b' ? ' checked="checked"' : '') + '/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.b : '') + '" title="' + localization.tooltips.blue.textbox + '"/></td></tr><tr class="Alpha"><td class="Radio">' + (win.alphaSupport ? '<label title="' + localization.tooltips.alpha.radio + '"><input type="radio" value="a"' + (settings.color.mode == 'a' ? ' checked="checked"' : '') + '/>A:</label>' : '&nbsp;') + '</td><td class="Text">' + (win.alphaSupport ? '<input type="text" maxlength="' + (3 + win.alphaPrecision) + '" value="' + (all != null ? Math.precision((all.a * 100) / 255, win.alphaPrecision) : '') + '" title="' + localization.tooltips.alpha.textbox + '"/>&nbsp;%' : '&nbsp;') + '</td></tr><tr class="Hex"><td colspan="2" class="Text"><label title="' + localization.tooltips.hex.textbox + '">#:<input type="text" maxlength="6" class="Hex" value="' + (all != null ? all.hex : '') + '"/></label>' + (win.alphaSupport ? '<input type="text" maxlength="2" class="AHex" value="' + (all != null ? all.ahex.substring(6) : '') + '" title="' + localization.tooltips.hex.alpha + '"/></td>' : '&nbsp;') + '</tr></tbody></table>';
+                if (win.expandable)
+                {
+                  container.html(controlHtml);
+                  if($(document.body).children('div.jPicker.Container').length==0)$(document.body).prepend(container);
+                  else $(document.body).children('div.jPicker.Container:last').after(container);
+                  container.mousedown(
+                    function()
+                    {
+                      $(document.body).children('div.jPicker.Container').css({zIndex:10});
+                      container.css({zIndex:20});
+                    });
+                  container.css( // positions must be set and display set to absolute before source code injection or IE will size the container to fit the window
+                    {
+                      left:
+                        win.position.x == 'left' ? (popup.offset().left - 530 - (win.position.y == 'center' ? 25 : 0)) + 'px' :
+                        win.position.x == 'center' ? (popup.offset().left - 260) + 'px' :
+                        win.position.x == 'right' ? (popup.offset().left - 10 + (win.position.y == 'center' ? 25 : 0)) + 'px' :
+                        win.position.x == 'screenCenter' ? (($(document).width() >> 1) - 260) + 'px' : (popup.offset().left + parseInt(win.position.x)) + 'px',
+                      position: 'absolute',
+                      top: win.position.y == 'top' ? (popup.offset().top - 312) + 'px' :
+                           win.position.y == 'center' ? (popup.offset().top - 156) + 'px' :
+                           win.position.y == 'bottom' ? (popup.offset().top + 25) + 'px' : (popup.offset().top + parseInt(win.position.y)) + 'px'
+                    });
+                }
+                else
+                {
+                  container = $($this);
+                  container.html(controlHtml);
+                }
+                // initialize the objects to the source code just injected
+                var tbody = container.find('tbody:first');
+                colorMapDiv = tbody.find('div.Map:first');
+                colorBarDiv = tbody.find('div.Bar:first');
+                var MapMaps = colorMapDiv.find('span'),
+                    BarMaps = colorBarDiv.find('span');
+                colorMapL1 = MapMaps.filter('.Map1:first');
+                colorMapL2 = MapMaps.filter('.Map2:first');
+                colorMapL3 = MapMaps.filter('.Map3:first');
+                colorBarL1 = BarMaps.filter('.Map1:first');
+                colorBarL2 = BarMaps.filter('.Map2:first');
+                colorBarL3 = BarMaps.filter('.Map3:first');
+                colorBarL4 = BarMaps.filter('.Map4:first');
+                colorBarL5 = BarMaps.filter('.Map5:first');
+                colorBarL6 = BarMaps.filter('.Map6:first');
+                // create color pickers and maps
+                colorMap = new Slider(colorMapDiv,
+                  {
+                    map:
+                    {
+                      width: images.colorMap.width,
+                      height: images.colorMap.height
+                    },
+                    arrow:
+                    {
+                      image: images.clientPath + images.colorMap.arrow.file,
+                      width: images.colorMap.arrow.width,
+                      height: images.colorMap.arrow.height
+                    }
+                  });
+                colorMap.bind(mapValueChanged);
+                colorBar = new Slider(colorBarDiv,
+                  {
+                    map:
+                    {
+                      width: images.colorBar.width,
+                      height: images.colorBar.height
+                    },
+                    arrow:
+                    {
+                      image: images.clientPath + images.colorBar.arrow.file,
+                      width: images.colorBar.arrow.width,
+                      height: images.colorBar.arrow.height
+                    }
+                  });
+                colorBar.bind(colorBarValueChanged);
+                colorPicker = new ColorValuePicker(tbody, color.active, win.expandable && win.bindToInput ? win.input : null, win.alphaPrecision);
+                var hex = all != null ? all.hex : null,
+                    preview = tbody.find('.Preview'),
+                    button = tbody.find('.Button');
+                activePreview = preview.find('.Active:first').css({ backgroundColor: hex && '#' + hex || 'transparent' });
+                currentPreview = preview.find('.Current:first').css({ backgroundColor: hex && '#' + hex || 'transparent' }).bind('click', currentClicked);
+                setAlpha.call($this, currentPreview, Math.precision(color.current.val('a') * 100) / 255, 4);
+                okButton = button.find('.Ok:first').bind('click', okClicked);
+                cancelButton = button.find('.Cancel:first').bind('click', cancelClicked);
+                grid = button.find('.Grid:first');
+                setTimeout(
+                  function()
+                  {
+                    setImg.call($this, colorMapL1, images.clientPath + 'Maps.png');
+                    setImg.call($this, colorMapL2, images.clientPath + 'Maps.png');
+                    setImg.call($this, colorMapL3, images.clientPath + 'map-opacity.png');
+                    setImg.call($this, colorBarL1, images.clientPath + 'Bars.png');
+                    setImg.call($this, colorBarL2, images.clientPath + 'Bars.png');
+                    setImg.call($this, colorBarL3, images.clientPath + 'Bars.png');
+                    setImg.call($this, colorBarL4, images.clientPath + 'Bars.png');
+                    setImg.call($this, colorBarL5, images.clientPath + 'bar-opacity.png');
+                    setImg.call($this, colorBarL6, images.clientPath + 'AlphaBar.png');
+                    setImg.call($this, preview.find('div:first'), images.clientPath + 'preview-opacity.png');
+                  }, 0);
+                tbody.find('td.Radio input').bind('click', radioClicked);
+                // initialize quick list
+                if (color.quickList && color.quickList.length > 0)
+                {
+                  var html = '';
+                  for (i = 0; i < color.quickList.length; i++)
+                  {
+                    /* if default colors are hex strings, change them to color objects */
+                    if ((typeof (color.quickList[i])).toString().toLowerCase() == 'string') color.quickList[i] = new Color({ hex: color.quickList[i] });
+                    var alpha = color.quickList[i].val('a');
+                    var ahex = color.quickList[i].val('ahex');
+                    if (!win.alphaSupport && ahex) ahex = ahex.substring(0, 6) + 'ff';
+                    var quickHex = color.quickList[i].val('hex');
+                    html+='<span class="QuickColor"' + (ahex && ' title="#' + ahex + '"' || '') + ' style="background-color:' + (quickHex && '#' + quickHex || '') + ';' + (quickHex ? '' : 'background-image:url(' + images.clientPath + 'NoColor.png)') + (win.alphaSupport && alpha && alpha < 255 ? ';opacity:' + Math.precision(alpha / 255, 4) + ';filter:Alpha(opacity=' + Math.precision(alpha / 2.55, 4) + ')' : '') + '">&nbsp;</span>';
+                  }
+                  setImg.call($this, grid, images.clientPath + 'bar-opacity.png');
+                  grid.html(html);
+                  grid.find('.QuickColor').click(quickPickClicked);
+                }
+                setColorMode.call($this, settings.color.mode);
+                color.active.bind(activeColorChanged);
+                $.isFunction(liveCallback) && color.active.bind(liveCallback);
+                color.current.bind(currentColorChanged);
+                // bind to input
+                if (win.expandable)
+                {
+                  $this.icon = popup.parents('.Icon:first');
+                  iconColor = $this.icon.find('.Color:first').css({ backgroundColor: hex && '#' + hex || 'transparent' });
+                  iconAlpha = $this.icon.find('.Alpha:first');
+                  setImg.call($this, iconAlpha, images.clientPath + 'bar-opacity.png');
+                  setAlpha.call($this, iconAlpha, Math.precision(((255 - (all != null ? all.a : 0)) * 100) / 255, 4));
+                  iconImage = $this.icon.find('.Image:first').css(
+                    {
+                      backgroundImage: 'url(\'' + images.clientPath + images.picker.file + '\')'
+                    }).bind('click', iconImageClicked);
+                  if (win.bindToInput&&win.updateInputColor)
+                    win.input.css(
+                      {
+                        backgroundColor: hex && '#' + hex || 'transparent',
+                        color: all == null || all.v > 75 ? '#000000' : '#ffffff'
+                      });
+                  moveBar = tbody.find('.Move:first').bind('mousedown', moveBarMouseDown);
+                  color.active.bind(expandableColorChanged);
+                }
+                else show.call($this);
+              },
+            destroy =
+              function()
+              {
+                container.find('td.Radio input').unbind('click', radioClicked);
+                currentPreview.unbind('click', currentClicked);
+                cancelButton.unbind('click', cancelClicked);
+                okButton.unbind('click', okClicked);
+                if (settings.window.expandable)
+                {
+                  iconImage.unbind('click', iconImageClicked);
+                  moveBar.unbind('mousedown', moveBarMouseDown);
+                  $this.icon = null;
+                }
+                container.find('.QuickColor').unbind('click', quickPickClicked);
+                colorMapDiv = null;
+                colorBarDiv = null;
+                colorMapL1 = null;
+                colorMapL2 = null;
+                colorMapL3 = null;
+                colorBarL1 = null;
+                colorBarL2 = null;
+                colorBarL3 = null;
+                colorBarL4 = null;
+                colorBarL5 = null;
+                colorBarL6 = null;
+                colorMap.destroy();
+                colorMap = null;
+                colorBar.destroy();
+                colorBar = null;
+                colorPicker.destroy();
+                colorPicker = null;
+                activePreview = null;
+                currentPreview = null;
+                okButton = null;
+                cancelButton = null;
+                grid = null;
+                commitCallback = null;
+                cancelCallback = null;
+                liveCallback = null;
+                container.html('');
+                for (i = 0; i < List.length; i++) if (List[i] == $this) List.splice(i, 1);
+              },
+            images = settings.images, // local copies for YUI compressor
+            localization = settings.localization,
+            color =
+              {
+                active: (typeof(settings.color.active)).toString().toLowerCase() == 'string' ? new Color({ ahex: !settings.window.alphaSupport && settings.color.active ? settings.color.active.substring(0, 6) + 'ff' : settings.color.active }) : new Color({ ahex: !settings.window.alphaSupport && settings.color.active.val('ahex') ? settings.color.active.val('ahex').substring(0, 6) + 'ff' : settings.color.active.val('ahex') }),
+                current: (typeof(settings.color.active)).toString().toLowerCase() == 'string' ? new Color({ ahex: !settings.window.alphaSupport && settings.color.active ? settings.color.active.substring(0, 6) + 'ff' : settings.color.active }) : new Color({ ahex: !settings.window.alphaSupport && settings.color.active.val('ahex') ? settings.color.active.val('ahex').substring(0, 6) + 'ff' : settings.color.active.val('ahex') }),
+                quickList: settings.color.quickList
+              };
+          $.extend(true, $this, // public properties, methods, and callbacks
+            {
+              commitCallback: commitCallback, // commitCallback function can be overridden to return the selected color to a method you specify when the user clicks "OK"
+              liveCallback: liveCallback, // liveCallback function can be overridden to return the selected color to a method you specify in live mode (continuous update)
+              cancelCallback: cancelCallback, // cancelCallback function can be overridden to a method you specify when the user clicks "Cancel"
+              color: color,
+              show: show,
+              hide: hide,
+              destroy: destroy // destroys this control entirely, removing all events and objects, and removing itself from the List
+            });
+          List.push($this);
+          setTimeout(
+            function()
+            {
+              initialize.call($this);
+            }, 0);
+        });
+    };
+  $.fn.jPicker.defaults = /* jPicker defaults - you can change anything in this section (such as the clientPath to your images) without fear of breaking the program */
+      {
+      window:
+        {
+          title: null, /* any title for the jPicker window itself - displays "Drag Markers To Pick A Color" if left null */
+          effects:
+          {
+            type: 'slide', /* effect used to show/hide an expandable picker. Acceptable values "slide", "show", "fade" */
+            speed:
+            {
+              show: 'slow', /* duration of "show" effect. Acceptable values are "fast", "slow", or time in ms */
+              hide: 'fast' /* duration of "hide" effect. Acceptable values are "fast", "slow", or time in ms */
+            }
+          },
+          position:
+          {
+            x: 'screenCenter', /* acceptable values "left", "center", "right", "screenCenter", or relative px value */
+            y: 'top' /* acceptable values "top", "bottom", "center", or relative px value */
+          },
+          expandable: false, /* default to large static picker - set to true to make an expandable picker (small icon with popup) - set automatically when binded to input element */
+          liveUpdate: true, /* set false if you want the user to have to click "OK" before the binded input box updates values (always "true" for expandable picker) */
+          alphaSupport: false, /* set to true to enable alpha picking */
+          alphaPrecision: 0, /* set decimal precision for alpha percentage display - hex codes do not map directly to percentage integers - range 0-2 */
+          updateInputColor: true /* set to false to prevent binded input colors from changing */
+        },
+      color:
+        {
+          mode: 'h', /* acceptabled values "h" (hue), "s" (saturation), "v" (value), "r" (red), "g" (green), "b" (blue), "a" (alpha) */
+          active: new Color({ ahex: '#ffcc00ff' }), /* acceptable values are any declared $.jPicker.Color object or string HEX value (e.g. #ffc000) WITH OR WITHOUT the "#" prefix */
+          quickList: /* the quick pick color list */
+            [
+              new Color({ h: 360, s: 33, v: 100 }), /* acceptable values are any declared $.jPicker.Color object or string HEX value (e.g. #ffc000) WITH OR WITHOUT the "#" prefix */
+              new Color({ h: 360, s: 66, v: 100 }),
+              new Color({ h: 360, s: 100, v: 100 }),
+              new Color({ h: 360, s: 100, v: 75 }),
+              new Color({ h: 360, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 100 }),
+              new Color({ h: 30, s: 33, v: 100 }),
+              new Color({ h: 30, s: 66, v: 100 }),
+              new Color({ h: 30, s: 100, v: 100 }),
+              new Color({ h: 30, s: 100, v: 75 }),
+              new Color({ h: 30, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 90 }),
+              new Color({ h: 60, s: 33, v: 100 }),
+              new Color({ h: 60, s: 66, v: 100 }),
+              new Color({ h: 60, s: 100, v: 100 }),
+              new Color({ h: 60, s: 100, v: 75 }),
+              new Color({ h: 60, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 80 }),
+              new Color({ h: 90, s: 33, v: 100 }),
+              new Color({ h: 90, s: 66, v: 100 }),
+              new Color({ h: 90, s: 100, v: 100 }),
+              new Color({ h: 90, s: 100, v: 75 }),
+              new Color({ h: 90, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 70 }),
+              new Color({ h: 120, s: 33, v: 100 }),
+              new Color({ h: 120, s: 66, v: 100 }),
+              new Color({ h: 120, s: 100, v: 100 }),
+              new Color({ h: 120, s: 100, v: 75 }),
+              new Color({ h: 120, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 60 }),
+              new Color({ h: 150, s: 33, v: 100 }),
+              new Color({ h: 150, s: 66, v: 100 }),
+              new Color({ h: 150, s: 100, v: 100 }),
+              new Color({ h: 150, s: 100, v: 75 }),
+              new Color({ h: 150, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 50 }),
+              new Color({ h: 180, s: 33, v: 100 }),
+              new Color({ h: 180, s: 66, v: 100 }),
+              new Color({ h: 180, s: 100, v: 100 }),
+              new Color({ h: 180, s: 100, v: 75 }),
+              new Color({ h: 180, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 40 }),
+              new Color({ h: 210, s: 33, v: 100 }),
+              new Color({ h: 210, s: 66, v: 100 }),
+              new Color({ h: 210, s: 100, v: 100 }),
+              new Color({ h: 210, s: 100, v: 75 }),
+              new Color({ h: 210, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 30 }),
+              new Color({ h: 240, s: 33, v: 100 }),
+              new Color({ h: 240, s: 66, v: 100 }),
+              new Color({ h: 240, s: 100, v: 100 }),
+              new Color({ h: 240, s: 100, v: 75 }),
+              new Color({ h: 240, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 20 }),
+              new Color({ h: 270, s: 33, v: 100 }),
+              new Color({ h: 270, s: 66, v: 100 }),
+              new Color({ h: 270, s: 100, v: 100 }),
+              new Color({ h: 270, s: 100, v: 75 }),
+              new Color({ h: 270, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 10 }),
+              new Color({ h: 300, s: 33, v: 100 }),
+              new Color({ h: 300, s: 66, v: 100 }),
+              new Color({ h: 300, s: 100, v: 100 }),
+              new Color({ h: 300, s: 100, v: 75 }),
+              new Color({ h: 300, s: 100, v: 50 }),
+              new Color({ h: 180, s: 0, v: 0 }),
+              new Color({ h: 330, s: 33, v: 100 }),
+              new Color({ h: 330, s: 66, v: 100 }),
+              new Color({ h: 330, s: 100, v: 100 }),
+              new Color({ h: 330, s: 100, v: 75 }),
+              new Color({ h: 330, s: 100, v: 50 }),
+              new Color()
+            ]
+        },
+      images:
+        {
+          clientPath: '/jPicker/images/', /* Path to image files */
+          colorMap:
+          {
+            width: 256,
+            height: 256,
+            arrow:
+            {
+              file: 'mappoint.gif', /* ColorMap arrow icon */
+              width: 15,
+              height: 15
+            }
+          },
+          colorBar:
+          {
+            width: 20,
+            height: 256,
+            arrow:
+            {
+              file: 'rangearrows.gif', /* ColorBar arrow icon */
+              width: 20,
+              height: 7
+            }
+          },
+          picker:
+          {
+            file: 'picker.gif', /* Color Picker icon */
+            width: 25,
+            height: 24
+          }
+        },
+      localization: /* alter these to change the text presented by the picker (e.g. different language) */
+        {
+          text:
+          {
+            title: 'Drag Markers To Pick A Color',
+            newColor: 'new',
+            currentColor: 'current',
+            ok: 'OK',
+            cancel: 'Cancel'
+          },
+          tooltips:
+          {
+            colors:
+            {
+              newColor: 'New Color - Press &ldquo;OK&rdquo; To Commit',
+              currentColor: 'Click To Revert To Original Color'
+            },
+            buttons:
+            {
+              ok: 'Commit To This Color Selection',
+              cancel: 'Cancel And Revert To Original Color'
+            },
+            hue:
+            {
+              radio: 'Set To &ldquo;Hue&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)'
+            },
+            saturation:
+            {
+              radio: 'Set To &ldquo;Saturation&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Saturation&rdquo; Value (0-100%)'
+            },
+            value:
+            {
+              radio: 'Set To &ldquo;Value&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Value&rdquo; Value (0-100%)'
+            },
+            red:
+            {
+              radio: 'Set To &ldquo;Red&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Red&rdquo; Value (0-255)'
+            },
+            green:
+            {
+              radio: 'Set To &ldquo;Green&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Green&rdquo; Value (0-255)'
+            },
+            blue:
+            {
+              radio: 'Set To &ldquo;Blue&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Blue&rdquo; Value (0-255)'
+            },
+            alpha:
+            {
+              radio: 'Set To &ldquo;Alpha&rdquo; Color Mode',
+              textbox: 'Enter A &ldquo;Alpha&rdquo; Value (0-100)'
+            },
+            hex:
+            {
+              textbox: 'Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)',
+              alpha: 'Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)'
+            }
+          }
+        }
+    };
+})(jQuery, '1.1.6');
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js
new file mode 100755
index 00000000000..beb1b4079dd
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js
@@ -0,0 +1 @@
+(function(e,a){Math.precision=function(j,h){if(h===undefined){h=0}return Math.round(j*Math.pow(10,h))/Math.pow(10,h)};var d=function(z,k){var o=this,j=z.find("img:first"),F=0,E=100,w=100,D=0,C=100,v=100,s=0,p=0,n,q,u=new Array(),l=function(y){for(var x=0;x<u.length;x++){u[x].call(o,o,y)}},H=function(x){var y=z.offset();n={l:y.left|0,t:y.top|0};clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);e(document).bind("mousemove",h).bind("mouseup",B);x.preventDefault()},h=function(x){clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);x.stopPropagation();x.preventDefault();return false},B=function(x){e(document).unbind("mouseup",B).unbind("mousemove",h);x.stopPropagation();x.preventDefault();return false},A=function(M){var K=M.pageX-n.l,x=M.pageY-n.t,L=z.w,y=z.h;if(K<0){K=0}else{if(K>L){K=L}}if(x<0){x=0}else{if(x>y){x=y}}J.call(o,"xy",{x:((K/L)*w)+F,y:((x/y)*v)+D})},r=function(){var L=0,x=0,N=z.w,K=z.h,M=j.w,y=j.h;setTimeout(function(){if(w>0){if(s==E){L=N}else{L=((s/w)*N)|0}}if(v>0){if(p==C){x=K}else{x=((p/v)*K)|0}}if(M>=N){L=(N>>1)-(M>>1)}else{L-=M>>1}if(y>=K){x=(K>>1)-(y>>1)}else{x-=y>>1}j.css({left:L+"px",top:x+"px"})},0)},J=function(x,K,y){var O=K!==undefined;if(!O){if(x===undefined||x==null){x="xy"}switch(x.toLowerCase()){case"x":return s;case"y":return p;case"xy":default:return{x:s,y:p}}}if(y!=null&&y==o){return}var N=false,M,L;if(x==null){x="xy"}switch(x.toLowerCase()){case"x":M=K&&(K.x&&K.x|0||K|0)||0;break;case"y":L=K&&(K.y&&K.y|0||K|0)||0;break;case"xy":default:M=K&&K.x&&K.x|0||0;L=K&&K.y&&K.y|0||0;break}if(M!=null){if(M<F){M=F}else{if(M>E){M=E}}if(s!=M){s=M;N=true}}if(L!=null){if(L<D){L=D}else{if(L>C){L=C}}if(p!=L){p=L;N=true}}N&&l.call(o,y||o)},t=function(x,L){var P=L!==undefined;if(!P){if(x===undefined||x==null){x="all"}switch(x.toLowerCase()){case"minx":return F;case"maxx":return E;case"rangex":return{minX:F,maxX:E,rangeX:w};case"miny":return D;case"maxy":return C;case"rangey":return{minY:D,maxY:C,rangeY:v};case"all":default:return{minX:F,maxX:E,rangeX:w,minY:D,maxY:C,rangeY:v}}}var O=false,N,K,M,y;if(x==null){x="all"}switch(x.toLowerCase()){case"minx":N=L&&(L.minX&&L.minX|0||L|0)||0;break;case"maxx":K=L&&(L.maxX&&L.maxX|0||L|0)||0;break;case"rangex":N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;break;case"miny":M=L&&(L.minY&&L.minY|0||L|0)||0;break;case"maxy":y=L&&(L.maxY&&L.maxY|0||L|0)||0;break;case"rangey":M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break;case"all":default:N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break}if(N!=null&&F!=N){F=N;w=E-F}if(K!=null&&E!=K){E=K;w=E-F}if(M!=null&&D!=M){D=M;v=C-D}if(y!=null&&C!=y){C=y;v=C-D}},I=function(x){if(e.isFunction(x)){u.push(x)}},m=function(y){if(!e.isFunction(y)){return}var x;while((x=e.inArray(y,u))!=-1){u.splice(x,1)}},G=function(){e(document).unbind("mouseup",B).unbind("mousemove",h);z.unbind("mousedown",H);z=null;j=null;u=null};e.extend(true,o,{val:J,range:t,bind:I,unbind:m,destroy:G});j.src=k.arrow&&k.arrow.image;j.w=k.arrow&&k.arrow.width||j.width();j.h=k.arrow&&k.arrow.height||j.height();z.w=k.map&&k.map.width||z.width();z.h=k.map&&k.map.height||z.height();z.bind("mousedown",H);I.call(o,r)},b=function(u,z,k,y){var q=this,l=u.find("td.Text input"),r=l.eq(3),v=l.eq(4),h=l.eq(5),o=l.length>7?l.eq(6):null,n=l.eq(0),p=l.eq(1),x=l.eq(2),s=l.eq(l.length>7?7:6),B=l.length>7?l.eq(8):null,C=function(E){if(E.target.value==""&&E.target!=s.get(0)&&(k!=null&&E.target!=k.get(0)||k==null)){return}if(!t(E)){return E}switch(E.target){case r.get(0):switch(E.keyCode){case 38:r.val(j.call(q,(r.val()<<0)+1,0,255));z.val("r",r.val(),E.target);return false;case 40:r.val(j.call(q,(r.val()<<0)-1,0,255));z.val("r",r.val(),E.target);return false}break;case v.get(0):switch(E.keyCode){case 38:v.val(j.call(q,(v.val()<<0)+1,0,255));z.val("g",v.val(),E.target);return false;case 40:v.val(j.call(q,(v.val()<<0)-1,0,255));z.val("g",v.val(),E.target);return false}break;case h.get(0):switch(E.keyCode){case 38:h.val(j.call(q,(h.val()<<0)+1,0,255));z.val("b",h.val(),E.target);return false;case 40:h.val(j.call(q,(h.val()<<0)-1,0,255));z.val("b",h.val(),E.target);return false}break;case o&&o.get(0):switch(E.keyCode){case 38:o.val(j.call(q,parseFloat(o.val())+1,0,100));z.val("a",Math.precision((o.val()*255)/100,y),E.target);return false;case 40:o.val(j.call(q,parseFloat(o.val())-1,0,100));z.val("a",Math.precision((o.val()*255)/100,y),E.target);return false}break;case n.get(0):switch(E.keyCode){case 38:n.val(j.call(q,(n.val()<<0)+1,0,360));z.val("h",n.val(),E.target);return false;case 40:n.val(j.call(q,(n.val()<<0)-1,0,360));z.val("h",n.val(),E.target);return false}break;case p.get(0):switch(E.keyCode){case 38:p.val(j.call(q,(p.val()<<0)+1,0,100));z.val("s",p.val(),E.target);return false;case 40:p.val(j.call(q,(p.val()<<0)-1,0,100));z.val("s",p.val(),E.target);return false}break;case x.get(0):switch(E.keyCode){case 38:x.val(j.call(q,(x.val()<<0)+1,0,100));z.val("v",x.val(),E.target);return false;case 40:x.val(j.call(q,(x.val()<<0)-1,0,100));z.val("v",x.val(),E.target);return false}break}},w=function(E){if(E.target.value==""&&E.target!=s.get(0)&&(k!=null&&E.target!=k.get(0)||k==null)){return}if(!t(E)){return E}switch(E.target){case r.get(0):r.val(j.call(q,r.val(),0,255));z.val("r",r.val(),E.target);break;case v.get(0):v.val(j.call(q,v.val(),0,255));z.val("g",v.val(),E.target);break;case h.get(0):h.val(j.call(q,h.val(),0,255));z.val("b",h.val(),E.target);break;case o&&o.get(0):o.val(j.call(q,o.val(),0,100));z.val("a",Math.precision((o.val()*255)/100,y),E.target);break;case n.get(0):n.val(j.call(q,n.val(),0,360));z.val("h",n.val(),E.target);break;case p.get(0):p.val(j.call(q,p.val(),0,100));z.val("s",p.val(),E.target);break;case x.get(0):x.val(j.call(q,x.val(),0,100));z.val("v",x.val(),E.target);break;case s.get(0):s.val(s.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));k&&k.val(s.val());z.val("hex",s.val()!=""?s.val():null,E.target);break;case k&&k.get(0):k.val(k.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));s.val(k.val());z.val("hex",k.val()!=""?k.val():null,E.target);break;case B&&B.get(0):B.val(B.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,2));z.val("a",B.val()!=null?parseInt(B.val(),16):null,E.target);break}},A=function(E){if(z.val()!=null){switch(E.target){case r.get(0):r.val(z.val("r"));break;case v.get(0):v.val(z.val("g"));break;case h.get(0):h.val(z.val("b"));break;case o&&o.get(0):o.val(Math.precision((z.val("a")*100)/255,y));break;case n.get(0):n.val(z.val("h"));break;case p.get(0):p.val(z.val("s"));break;case x.get(0):x.val(z.val("v"));break;case s.get(0):case k&&k.get(0):s.val(z.val("hex"));k&&k.val(z.val("hex"));break;case B&&B.get(0):B.val(z.val("ahex").substring(6));break}}},t=function(E){switch(E.keyCode){case 9:case 16:case 29:case 37:case 39:return false;case"c".charCodeAt():case"v".charCodeAt():if(E.ctrlKey){return false}}return true},j=function(G,F,E){if(G==""||isNaN(G)){return F}if(G>E){return E}if(G<F){return F}return G},m=function(G,E){var F=G.val("all");if(E!=r.get(0)){r.val(F!=null?F.r:"")}if(E!=v.get(0)){v.val(F!=null?F.g:"")}if(E!=h.get(0)){h.val(F!=null?F.b:"")}if(o&&E!=o.get(0)){o.val(F!=null?Math.precision((F.a*100)/255,y):"")}if(E!=n.get(0)){n.val(F!=null?F.h:"")}if(E!=p.get(0)){p.val(F!=null?F.s:"")}if(E!=x.get(0)){x.val(F!=null?F.v:"")}if(E!=s.get(0)&&(k&&E!=k.get(0)||!k)){s.val(F!=null?F.hex:"")}if(k&&E!=k.get(0)&&E!=s.get(0)){k.val(F!=null?F.hex:"")}if(B&&E!=B.get(0)){B.val(F!=null?F.ahex.substring(6):"")}},D=function(){r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).unbind("keyup",w).unbind("blur",A);r.add(v).add(h).add(o).add(n).add(p).add(x).unbind("keydown",C);z.unbind(m);r=null;v=null;h=null;o=null;n=null;p=null;x=null;s=null;B=null};e.extend(true,q,{destroy:D});r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).bind("keyup",w).bind("blur",A);r.add(v).add(h).add(o).add(n).add(p).add(x).bind("keydown",C);z.bind(m)};e.jPicker={List:[],Color:function(z){var q=this,j,o,t,u,n,A,x,k=new Array(),m=function(r){for(var h=0;h<k.length;h++){k[h].call(q,q,r)}},l=function(h,G,r){var F=G!==undefined;if(!F){if(h===undefined||h==null||h==""){h="all"}if(j==null){return null}switch(h.toLowerCase()){case"ahex":return g.rgbaToHex({r:j,g:o,b:t,a:u});case"hex":return l("ahex").substring(0,6);case"all":return{r:j,g:o,b:t,a:u,h:n,s:A,v:x,hex:l.call(q,"hex"),ahex:l.call(q,"ahex")};default:var D={};for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(h.length==1){D=j}else{D.r=j}break;case"g":if(h.length==1){D=o}else{D.g=o}break;case"b":if(h.length==1){D=t}else{D.b=t}break;case"a":if(h.length==1){D=u}else{D.a=u}break;case"h":if(h.length==1){D=n}else{D.h=n}break;case"s":if(h.length==1){D=A}else{D.s=A}break;case"v":if(h.length==1){D=x}else{D.v=x}break}}return D=={}?l.call(q,"all"):D;break}}if(r!=null&&r==q){return}var v=false;if(h==null){h=""}if(G==null){if(j!=null){j=null;v=true}if(o!=null){o=null;v=true}if(t!=null){t=null;v=true}if(u!=null){u=null;v=true}if(n!=null){n=null;v=true}if(A!=null){A=null;v=true}if(x!=null){x=null;v=true}v&&m.call(q,r||q);return}switch(h.toLowerCase()){case"ahex":case"hex":var D=g.hexToRgba(G&&(G.ahex||G.hex)||G||"00000000");l.call(q,"rgba",{r:D.r,g:D.g,b:D.b,a:h=="ahex"?D.a:u!=null?u:255},r);break;default:if(G&&(G.ahex!=null||G.hex!=null)){l.call(q,"ahex",G.ahex||G.hex||"00000000",r);return}var s={},E=false,C=false;if(G.r!==undefined&&!h.indexOf("r")==-1){h+="r"}if(G.g!==undefined&&!h.indexOf("g")==-1){h+="g"}if(G.b!==undefined&&!h.indexOf("b")==-1){h+="b"}if(G.a!==undefined&&!h.indexOf("a")==-1){h+="a"}if(G.h!==undefined&&!h.indexOf("h")==-1){h+="h"}if(G.s!==undefined&&!h.indexOf("s")==-1){h+="s"}if(G.v!==undefined&&!h.indexOf("v")==-1){h+="v"}for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(C){continue}E=true;s.r=G&&G.r&&G.r|0||G&&G|0||0;if(s.r<0){s.r=0}else{if(s.r>255){s.r=255}}if(j!=s.r){j=s.r;v=true}break;case"g":if(C){continue}E=true;s.g=G&&G.g&&G.g|0||G&&G|0||0;if(s.g<0){s.g=0}else{if(s.g>255){s.g=255}}if(o!=s.g){o=s.g;v=true}break;case"b":if(C){continue}E=true;s.b=G&&G.b&&G.b|0||G&&G|0||0;if(s.b<0){s.b=0}else{if(s.b>255){s.b=255}}if(t!=s.b){t=s.b;v=true}break;case"a":s.a=G&&G.a!=null?G.a|0:G!=null?G|0:255;if(s.a<0){s.a=0}else{if(s.a>255){s.a=255}}if(u!=s.a){u=s.a;v=true}break;case"h":if(E){continue}C=true;s.h=G&&G.h&&G.h|0||G&&G|0||0;if(s.h<0){s.h=0}else{if(s.h>360){s.h=360}}if(n!=s.h){n=s.h;v=true}break;case"s":if(E){continue}C=true;s.s=G&&G.s!=null?G.s|0:G!=null?G|0:100;if(s.s<0){s.s=0}else{if(s.s>100){s.s=100}}if(A!=s.s){A=s.s;v=true}break;case"v":if(E){continue}C=true;s.v=G&&G.v!=null?G.v|0:G!=null?G|0:100;if(s.v<0){s.v=0}else{if(s.v>100){s.v=100}}if(x!=s.v){x=s.v;v=true}break}}if(v){if(E){j=j||0;o=o||0;t=t||0;var D=g.rgbToHsv({r:j,g:o,b:t});n=D.h;A=D.s;x=D.v}else{if(C){n=n||0;A=A!=null?A:100;x=x!=null?x:100;var D=g.hsvToRgb({h:n,s:A,v:x});j=D.r;o=D.g;t=D.b}}u=u!=null?u:255;m.call(q,r||q)}break}},p=function(h){if(e.isFunction(h)){k.push(h)}},y=function(r){if(!e.isFunction(r)){return}var h;while((h=e.inArray(r,k))!=-1){k.splice(h,1)}},w=function(){k=null};e.extend(true,q,{val:l,bind:p,unbind:y,destroy:w});if(z){if(z.ahex!=null){l("ahex",z)}else{if(z.hex!=null){l((z.a!=null?"a":"")+"hex",z.a!=null?{ahex:z.hex+g.intToHex(z.a)}:z)}else{if(z.r!=null&&z.g!=null&&z.b!=null){l("rgb"+(z.a!=null?"a":""),z)}else{if(z.h!=null&&z.s!=null&&z.v!=null){l("hsv"+(z.a!=null?"a":""),z)}}}}}},ColorMethods:{hexToRgba:function(m){m=this.validateHex(m);if(m==""){return{r:null,g:null,b:null,a:null}}var l="00",k="00",h="00",j="255";if(m.length==6){m+="ff"}if(m.length>6){l=m.substring(0,2);k=m.substring(2,4);h=m.substring(4,6);j=m.substring(6,m.length)}else{if(m.length>4){l=m.substring(4,m.length);m=m.substring(0,4)}if(m.length>2){k=m.substring(2,m.length);m=m.substring(0,2)}if(m.length>0){h=m.substring(0,m.length)}}return{r:this.hexToInt(l),g:this.hexToInt(k),b:this.hexToInt(h),a:this.hexToInt(j)}},validateHex:function(h){h=h.toLowerCase().replace(/[^a-f0-9]/g,"");if(h.length>8){h=h.substring(0,8)}return h},rgbaToHex:function(h){return this.intToHex(h.r)+this.intToHex(h.g)+this.intToHex(h.b)+this.intToHex(h.a)},intToHex:function(j){var h=(j|0).toString(16);if(h.length==1){h=("0"+h)}return h.toLowerCase()},hexToInt:function(h){return parseInt(h,16)},rgbToHsv:function(l){var o=l.r/255,n=l.g/255,j=l.b/255,k={h:0,s:0,v:0},m=0,h=0,p;if(o>=n&&o>=j){h=o;m=n>j?j:n}else{if(n>=j&&n>=o){h=n;m=o>j?j:o}else{h=j;m=n>o?o:n}}k.v=h;k.s=h?(h-m)/h:0;if(!k.s){k.h=0}else{p=h-m;if(o==h){k.h=(n-j)/p}else{if(n==h){k.h=2+(j-o)/p}else{k.h=4+(o-n)/p}}k.h=parseInt(k.h*60);if(k.h<0){k.h+=360}}k.s=(k.s*100)|0;k.v=(k.v*100)|0;return k},hsvToRgb:function(n){var r={r:0,g:0,b:0,a:100},m=n.h,x=n.s,u=n.v;if(x==0){if(u==0){r.r=r.g=r.b=0}else{r.r=r.g=r.b=(u*255/100)|0}}else{if(m==360){m=0}m/=60;x=x/100;u=u/100;var l=m|0,o=m-l,k=u*(1-x),j=u*(1-(x*o)),w=u*(1-(x*(1-o)));switch(l){case 0:r.r=u;r.g=w;r.b=k;break;case 1:r.r=j;r.g=u;r.b=k;break;case 2:r.r=k;r.g=u;r.b=w;break;case 3:r.r=k;r.g=j;r.b=u;break;case 4:r.r=w;r.g=k;r.b=u;break;case 5:r.r=u;r.g=k;r.b=j;break}r.r=(r.r*255)|0;r.g=(r.g*255)|0;r.b=(r.b*255)|0}return r}}};var f=e.jPicker.Color,c=e.jPicker.List,g=e.jPicker.ColorMethods;e.fn.jPicker=function(j){var h=arguments;return this.each(function(){var w=this,av=e.extend(true,{},e.fn.jPicker.defaults,j);if(e(w).get(0).nodeName.toLowerCase()=="input"){e.extend(true,av,{window:{bindToInput:true,expandable:true,input:e(w)}});if(e(w).val()==""){av.color.active=new f({hex:null});av.color.current=new f({hex:null})}else{if(g.validateHex(e(w).val())){av.color.active=new f({hex:e(w).val(),a:av.color.active.val("a")});av.color.current=new f({hex:e(w).val(),a:av.color.active.val("a")})}}}if(av.window.expandable){e(w).after('<span class="jPicker"><span class="Icon"><span class="Color">&nbsp;</span><span class="Alpha">&nbsp;</span><span class="Image" title="Click To Open Color Picker">&nbsp;</span><span class="Container">&nbsp;</span></span></span>')}else{av.window.liveUpdate=false}var Q=parseFloat(navigator.appVersion.split("MSIE")[1])<7&&document.body.filters,R=null,l=null,s=null,au=null,at=null,ar=null,P=null,O=null,N=null,M=null,L=null,K=null,D=null,U=null,aw=null,J=null,I=null,am=null,ai=null,E=null,an=null,ah=null,X=null,ab=null,aq=null,r=null,C=null,u=null,ag=function(aB){var aD=G.active,aE=n.clientPath,aA=aD.val("hex"),aC,az;av.color.mode=aB;switch(aB){case"h":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,0);Y.call(w,au,100);x.call(w,at,260);Y.call(w,at,100);y.call(w,s,"transparent");x.call(w,P,0);Y.call(w,P,100);x.call(w,O,260);Y.call(w,O,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:100,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:360});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("s"),y:100-aD.val("v")},D);U.val("y",360-aD.val("h"),U);break;case"s":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,-260);x.call(w,O,-520);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",100-aD.val("s"),U);break;case"v":setTimeout(function(){y.call(w,l,"000000");x.call(w,au,-780);x.call(w,at,260);y.call(w,s,aA);x.call(w,P,-520);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("s")},D);U.val("y",100-aD.val("v"),U);break;case"r":aC=-1040;az=-780;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("g")},D);U.val("y",255-aD.val("r"),U);break;case"g":aC=-1560;az=-1820;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("r")},D);U.val("y",255-aD.val("g"),U);break;case"b":aC=-2080;az=-2860;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("r"),y:255-aD.val("g")},D);U.val("y",255-aD.val("b"),U);break;case"a":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,260);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,0);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",255-aD.val("a"),U);break;default:throw ("Invalid Mode");break}switch(aB){case"h":break;case"s":case"v":case"a":setTimeout(function(){Y.call(w,au,100);Y.call(w,P,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100)},0);break;case"r":case"g":case"b":setTimeout(function(){y.call(w,l,"transparent");y.call(w,s,"transparent");Y.call(w,P,100);Y.call(w,au,100);x.call(w,au,aC);x.call(w,at,aC-260);x.call(w,P,az-780);x.call(w,O,az-520);x.call(w,N,az);x.call(w,M,az-260);x.call(w,K,260);Y.call(w,K,100)},0);break}if(aD.val("ahex")==null){return}aj.call(w,aD)},aj=function(aA,az){if(az==null||(az!=U&&az!=D)){v.call(w,aA,az)}setTimeout(function(){ay.call(w,aA);al.call(w,aA);W.call(w,aA)},0)},z=function(aA,az){var aC=G.active;if(az!=D&&aC.val()==null){return}var aB=aA.val("all");switch(av.color.mode){case"h":aC.val("sv",{s:aB.x,v:100-aB.y},az);break;case"s":case"a":aC.val("hv",{h:aB.x,v:100-aB.y},az);break;case"v":aC.val("hs",{h:aB.x,s:100-aB.y},az);break;case"r":aC.val("gb",{g:255-aB.y,b:aB.x},az);break;case"g":aC.val("rb",{r:255-aB.y,b:aB.x},az);break;case"b":aC.val("rg",{r:aB.x,g:255-aB.y},az);break}},ac=function(aA,az){var aB=G.active;if(az!=U&&aB.val()==null){return}switch(av.color.mode){case"h":aB.val("h",{h:360-aA.val("y")},az);break;case"s":aB.val("s",{s:100-aA.val("y")},az);break;case"v":aB.val("v",{v:100-aA.val("y")},az);break;case"r":aB.val("r",{r:255-aA.val("y")},az);break;case"g":aB.val("g",{g:255-aA.val("y")},az);break;case"b":aB.val("b",{b:255-aA.val("y")},az);break;case"a":aB.val("a",255-aA.val("y"),az);break}},v=function(aC,az){if(az!=D){switch(av.color.mode){case"h":var aH=aC.val("sv");D.val("xy",{x:aH!=null?aH.s:100,y:100-(aH!=null?aH.v:100)},az);break;case"s":case"a":var aB=aC.val("hv");D.val("xy",{x:aB&&aB.h||0,y:100-(aB!=null?aB.v:100)},az);break;case"v":var aE=aC.val("hs");D.val("xy",{x:aE&&aE.h||0,y:100-(aE!=null?aE.s:100)},az);break;case"r":var aA=aC.val("bg");D.val("xy",{x:aA&&aA.b||0,y:255-(aA&&aA.g||0)},az);break;case"g":var aI=aC.val("br");D.val("xy",{x:aI&&aI.b||0,y:255-(aI&&aI.r||0)},az);break;case"b":var aG=aC.val("rg");D.val("xy",{x:aG&&aG.r||0,y:255-(aG&&aG.g||0)},az);break}}if(az!=U){switch(av.color.mode){case"h":U.val("y",360-(aC.val("h")||0),az);break;case"s":var aJ=aC.val("s");U.val("y",100-(aJ!=null?aJ:100),az);break;case"v":var aF=aC.val("v");U.val("y",100-(aF!=null?aF:100),az);break;case"r":U.val("y",255-(aC.val("r")||0),az);break;case"g":U.val("y",255-(aC.val("g")||0),az);break;case"b":U.val("y",255-(aC.val("b")||0),az);break;case"a":var aD=aC.val("a");U.val("y",255-(aD!=null?aD:255),az);break}}},ay=function(aA){try{var az=aA.val("all");E.css({backgroundColor:az&&"#"+az.hex||"transparent"});Y.call(w,E,az&&Math.precision((az.a*100)/255,4)||0)}catch(aB){}},al=function(aC){switch(av.color.mode){case"h":y.call(w,l,new f({h:aC.val("h")||0,s:100,v:100}).val("hex"));break;case"s":case"a":var aB=aC.val("s");Y.call(w,at,100-(aB!=null?aB:100));break;case"v":var aA=aC.val("v");Y.call(w,au,aA!=null?aA:100);break;case"r":Y.call(w,at,Math.precision((aC.val("r")||0)/255*100,4));break;case"g":Y.call(w,at,Math.precision((aC.val("g")||0)/255*100,4));break;case"b":Y.call(w,at,Math.precision((aC.val("b")||0)/255*100));break}var az=aC.val("a");Y.call(w,ar,Math.precision(((255-(az||0))*100)/255,4))},W=function(aF){switch(av.color.mode){case"h":var aH=aF.val("a");Y.call(w,L,Math.precision(((255-(aH||0))*100)/255,4));break;case"s":var aA=aF.val("hva"),aB=new f({h:aA&&aA.h||0,s:100,v:aA!=null?aA.v:100});y.call(w,s,aB.val("hex"));Y.call(w,O,100-(aA!=null?aA.v:100));Y.call(w,L,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));break;case"v":var aC=aF.val("hsa"),aE=new f({h:aC&&aC.h||0,s:aC!=null?aC.s:100,v:100});y.call(w,s,aE.val("hex"));Y.call(w,L,Math.precision(((255-(aC&&aC.a||0))*100)/255,4));break;case"r":case"g":case"b":var aD=0,aG=0,az=aF.val("rgba");if(av.color.mode=="r"){aD=az&&az.b||0;aG=az&&az.g||0}else{if(av.color.mode=="g"){aD=az&&az.b||0;aG=az&&az.r||0}else{if(av.color.mode=="b"){aD=az&&az.r||0;aG=az&&az.g||0}}}var aI=aG>aD?aD:aG;Y.call(w,O,aD>aG?Math.precision(((aD-aG)/(255-aG))*100,4):0);Y.call(w,N,aG>aD?Math.precision(((aG-aD)/(255-aD))*100,4):0);Y.call(w,M,Math.precision((aI/255)*100,4));Y.call(w,L,Math.precision(((255-(az&&az.a||0))*100)/255,4));break;case"a":var aH=aF.val("a");y.call(w,s,aF.val("hex")||"000000");Y.call(w,L,aH!=null?0:100);Y.call(w,K,aH!=null?100:0);break}},y=function(az,aA){az.css({backgroundColor:aA&&aA.length==6&&"#"+aA||"transparent"})},t=function(az,aA){if(Q&&(aA.indexOf("AlphaBar.png")!=-1||aA.indexOf("Bars.png")!=-1||aA.indexOf("Maps.png")!=-1)){az.attr("pngSrc",aA);az.css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aA+"', sizingMethod='scale')"})}else{az.css({backgroundImage:"url('"+aA+"')"})}},x=function(az,aA){az.css({top:aA+"px"})},Y=function(aA,az){aA.css({visibility:az>0?"visible":"hidden"});if(az>0&&az<100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale') progid:DXImageTransform.Microsoft.Alpha(opacity="+az+")"})}else{aA.css({opacity:Math.precision(az/100,4)})}}else{aA.css({opacity:Math.precision(az/100,4)})}}else{if(az==0||az==100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale')"})}else{aA.css({opacity:""})}}else{aA.css({opacity:""})}}}},B=function(){G.active.val("ahex",G.current.val("ahex"))},T=function(){G.current.val("ahex",G.active.val("ahex"))},A=function(az){e(this).parents("tbody:first").find('input:radio[value!="'+az.target.value+'"]').removeAttr("checked");ag.call(w,az.target.value)},Z=function(){B.call(w)},q=function(){B.call(w);av.window.expandable&&ao.call(w);e.isFunction(ax)&&ax.call(w,G.active,X)},m=function(){T.call(w);av.window.expandable&&ao.call(w);e.isFunction(ae)&&ae.call(w,G.active,ah)},af=function(){V.call(w)},ap=function(aB,az){var aA=aB.val("hex");an.css({backgroundColor:aA&&"#"+aA||"transparent"});Y.call(w,an,Math.precision(((aB.val("a")||0)*100)/255,4))},H=function(aC,az){var aB=aC.val("hex");var aA=aC.val("va");aq.css({backgroundColor:aB&&"#"+aB||"transparent"});Y.call(w,r,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));if(av.window.bindToInput&&av.window.updateInputColor){av.window.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aA==null||aA.v>75?"#000000":"#ffffff"})}},S=function(aB){var az=av.window.element,aA=av.window.page;J=parseInt(R.css("left"));I=parseInt(R.css("top"));am=aB.pageX;ai=aB.pageY;e(document).bind("mousemove",k).bind("mouseup",p);aB.preventDefault()},k=function(az){R.css({left:J-(am-az.pageX)+"px",top:I-(ai-az.pageY)+"px"});if(av.window.expandable&&!e.support.boxModel){R.prev().css({left:R.css("left"),top:R.css("top")})}az.stopPropagation();az.preventDefault();return false},p=function(az){e(document).unbind("mousemove",k).unbind("mouseup",p);az.stopPropagation();az.preventDefault();return false},F=function(az){az.preventDefault();az.stopPropagation();G.active.val("ahex",e(this).attr("title")||null,az.target);return false},ae=e.isFunction(h[1])&&h[1]||null,ad=e.isFunction(h[2])&&h[2]||null,ax=e.isFunction(h[3])&&h[3]||null,V=function(){G.current.val("ahex",G.active.val("ahex"));var az=function(){if(!av.window.expandable||e.support.boxModel){return}var aA=R.find("table:first");R.before("<iframe/>");R.prev().css({width:aA.width(),height:R.height(),opacity:0,position:"absolute",left:R.css("left"),top:R.css("top")})};if(av.window.expandable){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})}switch(av.window.effects.type){case"fade":R.fadeIn(av.window.effects.speed.show,az);break;case"slide":R.slideDown(av.window.effects.speed.show,az);break;case"show":default:R.show(av.window.effects.speed.show,az);break}},ao=function(){var az=function(){if(av.window.expandable){R.css({zIndex:10})}if(!av.window.expandable||e.support.boxModel){return}R.prev().remove()};switch(av.window.effects.type){case"fade":R.fadeOut(av.window.effects.speed.hide,az);break;case"slide":R.slideUp(av.window.effects.speed.hide,az);break;case"show":default:R.hide(av.window.effects.speed.hide,az);break}},o=function(){var aG=av.window,az=aG.expandable?e(w).next().find(".Container:first"):null;R=aG.expandable?e("<div/>"):e(w);R.addClass("jPicker Container");if(aG.expandable){R.hide()}R.get(0).onselectstart=function(aN){if(aN.target.nodeName.toLowerCase()!=="input"){return false}};var aJ=G.active.val("all");if(aG.alphaPrecision<0){aG.alphaPrecision=0}else{if(aG.alphaPrecision>2){aG.alphaPrecision=2}}var aK='<table class="jPicker" cellpadding="0" cellspacing="0"><tbody>'+(aG.expandable?'<tr><td class="Move" colspan="5">&nbsp;</td></tr>':"")+'<tr><td rowspan="9"><h2 class="Title">'+(aG.title||aa.text.title)+'</h2><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="'+n.clientPath+n.colorMap.arrow.file+'" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="'+n.clientPath+n.colorBar.arrow.file+'" class="Arrow"/></div></td><td colspan="2" class="Preview">'+aa.text.newColor+'<div><span class="Active" title="'+aa.tooltips.colors.newColor+'">&nbsp;</span><span class="Current" title="'+aa.tooltips.colors.currentColor+'">&nbsp;</span></div>'+aa.text.currentColor+'</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="'+aa.text.ok+'" title="'+aa.tooltips.buttons.ok+'"/><input type="button" class="Cancel" value="'+aa.text.cancel+'" title="'+aa.tooltips.buttons.cancel+'"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label title="'+aa.tooltips.hue.radio+'"><input type="radio" value="h"'+(av.color.mode=="h"?' checked="checked"':"")+'/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.h:"")+'" title="'+aa.tooltips.hue.textbox+'"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label title="'+aa.tooltips.saturation.radio+'"><input type="radio" value="s"'+(av.color.mode=="s"?' checked="checked"':"")+'/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.s:"")+'" title="'+aa.tooltips.saturation.textbox+'"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label title="'+aa.tooltips.value.radio+'"><input type="radio" value="v"'+(av.color.mode=="v"?' checked="checked"':"")+'/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.v:"")+'" title="'+aa.tooltips.value.textbox+'"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label title="'+aa.tooltips.red.radio+'"><input type="radio" value="r"'+(av.color.mode=="r"?' checked="checked"':"")+'/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.r:"")+'" title="'+aa.tooltips.red.textbox+'"/></td></tr><tr class="Green"><td class="Radio"><label title="'+aa.tooltips.green.radio+'"><input type="radio" value="g"'+(av.color.mode=="g"?' checked="checked"':"")+'/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.g:"")+'" title="'+aa.tooltips.green.textbox+'"/></td></tr><tr class="Blue"><td class="Radio"><label title="'+aa.tooltips.blue.radio+'"><input type="radio" value="b"'+(av.color.mode=="b"?' checked="checked"':"")+'/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.b:"")+'" title="'+aa.tooltips.blue.textbox+'"/></td></tr><tr class="Alpha"><td class="Radio">'+(aG.alphaSupport?'<label title="'+aa.tooltips.alpha.radio+'"><input type="radio" value="a"'+(av.color.mode=="a"?' checked="checked"':"")+"/>A:</label>":"&nbsp;")+'</td><td class="Text">'+(aG.alphaSupport?'<input type="text" maxlength="'+(3+aG.alphaPrecision)+'" value="'+(aJ!=null?Math.precision((aJ.a*100)/255,aG.alphaPrecision):"")+'" title="'+aa.tooltips.alpha.textbox+'"/>&nbsp;%':"&nbsp;")+'</td></tr><tr class="Hex"><td colspan="2" class="Text"><label title="'+aa.tooltips.hex.textbox+'">#:<input type="text" maxlength="6" class="Hex" value="'+(aJ!=null?aJ.hex:"")+'"/></label>'+(aG.alphaSupport?'<input type="text" maxlength="2" class="AHex" value="'+(aJ!=null?aJ.ahex.substring(6):"")+'" title="'+aa.tooltips.hex.alpha+'"/></td>':"&nbsp;")+"</tr></tbody></table>";if(aG.expandable){R.html(aK);if(e(document.body).children("div.jPicker.Container").length==0){e(document.body).prepend(R)}else{e(document.body).children("div.jPicker.Container:last").after(R)}R.mousedown(function(){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})});R.css({left:aG.position.x=="left"?(az.offset().left-530-(aG.position.y=="center"?25:0))+"px":aG.position.x=="center"?(az.offset().left-260)+"px":aG.position.x=="right"?(az.offset().left-10+(aG.position.y=="center"?25:0))+"px":aG.position.x=="screenCenter"?((e(document).width()>>1)-260)+"px":(az.offset().left+parseInt(aG.position.x))+"px",position:"absolute",top:aG.position.y=="top"?(az.offset().top-312)+"px":aG.position.y=="center"?(az.offset().top-156)+"px":aG.position.y=="bottom"?(az.offset().top+25)+"px":(az.offset().top+parseInt(aG.position.y))+"px"})}else{R=e(w);R.html(aK)}var aD=R.find("tbody:first");l=aD.find("div.Map:first");s=aD.find("div.Bar:first");var aL=l.find("span"),aI=s.find("span");au=aL.filter(".Map1:first");at=aL.filter(".Map2:first");ar=aL.filter(".Map3:first");P=aI.filter(".Map1:first");O=aI.filter(".Map2:first");N=aI.filter(".Map3:first");M=aI.filter(".Map4:first");L=aI.filter(".Map5:first");K=aI.filter(".Map6:first");D=new d(l,{map:{width:n.colorMap.width,height:n.colorMap.height},arrow:{image:n.clientPath+n.colorMap.arrow.file,width:n.colorMap.arrow.width,height:n.colorMap.arrow.height}});D.bind(z);U=new d(s,{map:{width:n.colorBar.width,height:n.colorBar.height},arrow:{image:n.clientPath+n.colorBar.arrow.file,width:n.colorBar.arrow.width,height:n.colorBar.arrow.height}});U.bind(ac);aw=new b(aD,G.active,aG.expandable&&aG.bindToInput?aG.input:null,aG.alphaPrecision);var aB=aJ!=null?aJ.hex:null,aH=aD.find(".Preview"),aF=aD.find(".Button");E=aH.find(".Active:first").css({backgroundColor:aB&&"#"+aB||"transparent"});an=aH.find(".Current:first").css({backgroundColor:aB&&"#"+aB||"transparent"}).bind("click",Z);Y.call(w,an,Math.precision(G.current.val("a")*100)/255,4);ah=aF.find(".Ok:first").bind("click",m);X=aF.find(".Cancel:first").bind("click",q);ab=aF.find(".Grid:first");setTimeout(function(){t.call(w,au,n.clientPath+"Maps.png");t.call(w,at,n.clientPath+"Maps.png");t.call(w,ar,n.clientPath+"map-opacity.png");t.call(w,P,n.clientPath+"Bars.png");t.call(w,O,n.clientPath+"Bars.png");t.call(w,N,n.clientPath+"Bars.png");t.call(w,M,n.clientPath+"Bars.png");t.call(w,L,n.clientPath+"bar-opacity.png");t.call(w,K,n.clientPath+"AlphaBar.png");t.call(w,aH.find("div:first"),n.clientPath+"preview-opacity.png")},0);aD.find("td.Radio input").bind("click",A);if(G.quickList&&G.quickList.length>0){var aE="";for(i=0;i<G.quickList.length;i++){if((typeof(G.quickList[i])).toString().toLowerCase()=="string"){G.quickList[i]=new f({hex:G.quickList[i]})}var aC=G.quickList[i].val("a");var aM=G.quickList[i].val("ahex");if(!aG.alphaSupport&&aM){aM=aM.substring(0,6)+"ff"}var aA=G.quickList[i].val("hex");aE+='<span class="QuickColor"'+(aM&&' title="#'+aM+'"'||"")+' style="background-color:'+(aA&&"#"+aA||"")+";"+(aA?"":"background-image:url("+n.clientPath+"NoColor.png)")+(aG.alphaSupport&&aC&&aC<255?";opacity:"+Math.precision(aC/255,4)+";filter:Alpha(opacity="+Math.precision(aC/2.55,4)+")":"")+'">&nbsp;</span>'}t.call(w,ab,n.clientPath+"bar-opacity.png");ab.html(aE);ab.find(".QuickColor").click(F)}ag.call(w,av.color.mode);G.active.bind(aj);e.isFunction(ad)&&G.active.bind(ad);G.current.bind(ap);if(aG.expandable){w.icon=az.parents(".Icon:first");aq=w.icon.find(".Color:first").css({backgroundColor:aB&&"#"+aB||"transparent"});r=w.icon.find(".Alpha:first");t.call(w,r,n.clientPath+"bar-opacity.png");Y.call(w,r,Math.precision(((255-(aJ!=null?aJ.a:0))*100)/255,4));C=w.icon.find(".Image:first").css({backgroundImage:"url('"+n.clientPath+n.picker.file+"')"}).bind("click",af);if(aG.bindToInput&&aG.updateInputColor){aG.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aJ==null||aJ.v>75?"#000000":"#ffffff"})}u=aD.find(".Move:first").bind("mousedown",S);G.active.bind(H)}else{V.call(w)}},ak=function(){R.find("td.Radio input").unbind("click",A);an.unbind("click",Z);X.unbind("click",q);ah.unbind("click",m);if(av.window.expandable){C.unbind("click",af);u.unbind("mousedown",S);w.icon=null}R.find(".QuickColor").unbind("click",F);l=null;s=null;au=null;at=null;ar=null;P=null;O=null;N=null;M=null;L=null;K=null;D.destroy();D=null;U.destroy();U=null;aw.destroy();aw=null;E=null;an=null;ah=null;X=null;ab=null;ae=null;ax=null;ad=null;R.html("");for(i=0;i<c.length;i++){if(c[i]==w){c.splice(i,1)}}},n=av.images,aa=av.localization,G={active:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),current:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),quickList:av.color.quickList};e.extend(true,w,{commitCallback:ae,liveCallback:ad,cancelCallback:ax,color:G,show:V,hide:ao,destroy:ak});c.push(w);setTimeout(function(){o.call(w)},0)})};e.fn.jPicker.defaults={window:{title:null,effects:{type:"slide",speed:{show:"slow",hide:"fast"}},position:{x:"screenCenter",y:"top"},expandable:false,liveUpdate:true,alphaSupport:false,alphaPrecision:0,updateInputColor:true},color:{mode:"h",active:new f({ahex:"#ffcc00ff"}),quickList:[new f({h:360,s:33,v:100}),new f({h:360,s:66,v:100}),new f({h:360,s:100,v:100}),new f({h:360,s:100,v:75}),new f({h:360,s:100,v:50}),new f({h:180,s:0,v:100}),new f({h:30,s:33,v:100}),new f({h:30,s:66,v:100}),new f({h:30,s:100,v:100}),new f({h:30,s:100,v:75}),new f({h:30,s:100,v:50}),new f({h:180,s:0,v:90}),new f({h:60,s:33,v:100}),new f({h:60,s:66,v:100}),new f({h:60,s:100,v:100}),new f({h:60,s:100,v:75}),new f({h:60,s:100,v:50}),new f({h:180,s:0,v:80}),new f({h:90,s:33,v:100}),new f({h:90,s:66,v:100}),new f({h:90,s:100,v:100}),new f({h:90,s:100,v:75}),new f({h:90,s:100,v:50}),new f({h:180,s:0,v:70}),new f({h:120,s:33,v:100}),new f({h:120,s:66,v:100}),new f({h:120,s:100,v:100}),new f({h:120,s:100,v:75}),new f({h:120,s:100,v:50}),new f({h:180,s:0,v:60}),new f({h:150,s:33,v:100}),new f({h:150,s:66,v:100}),new f({h:150,s:100,v:100}),new f({h:150,s:100,v:75}),new f({h:150,s:100,v:50}),new f({h:180,s:0,v:50}),new f({h:180,s:33,v:100}),new f({h:180,s:66,v:100}),new f({h:180,s:100,v:100}),new f({h:180,s:100,v:75}),new f({h:180,s:100,v:50}),new f({h:180,s:0,v:40}),new f({h:210,s:33,v:100}),new f({h:210,s:66,v:100}),new f({h:210,s:100,v:100}),new f({h:210,s:100,v:75}),new f({h:210,s:100,v:50}),new f({h:180,s:0,v:30}),new f({h:240,s:33,v:100}),new f({h:240,s:66,v:100}),new f({h:240,s:100,v:100}),new f({h:240,s:100,v:75}),new f({h:240,s:100,v:50}),new f({h:180,s:0,v:20}),new f({h:270,s:33,v:100}),new f({h:270,s:66,v:100}),new f({h:270,s:100,v:100}),new f({h:270,s:100,v:75}),new f({h:270,s:100,v:50}),new f({h:180,s:0,v:10}),new f({h:300,s:33,v:100}),new f({h:300,s:66,v:100}),new f({h:300,s:100,v:100}),new f({h:300,s:100,v:75}),new f({h:300,s:100,v:50}),new f({h:180,s:0,v:0}),new f({h:330,s:33,v:100}),new f({h:330,s:66,v:100}),new f({h:330,s:100,v:100}),new f({h:330,s:100,v:75}),new f({h:330,s:100,v:50}),new f()]},images:{clientPath:"/jPicker/images/",colorMap:{width:256,height:256,arrow:{file:"mappoint.gif",width:15,height:15}},colorBar:{width:20,height:256,arrow:{file:"rangearrows.gif",width:20,height:7}},picker:{file:"picker.gif",width:25,height:24}},localization:{text:{title:"Drag Markers To Pick A Color",newColor:"new",currentColor:"current",ok:"OK",cancel:"Cancel"},tooltips:{colors:{newColor:"New Color - Press &ldquo;OK&rdquo; To Commit",currentColor:"Click To Revert To Original Color"},buttons:{ok:"Commit To This Color Selection",cancel:"Cancel And Revert To Original Color"},hue:{radio:"Set To &ldquo;Hue&rdquo; Color Mode",textbox:"Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)"},saturation:{radio:"Set To &ldquo;Saturation&rdquo; Color Mode",textbox:"Enter A &ldquo;Saturation&rdquo; Value (0-100%)"},value:{radio:"Set To &ldquo;Value&rdquo; Color Mode",textbox:"Enter A &ldquo;Value&rdquo; Value (0-100%)"},red:{radio:"Set To &ldquo;Red&rdquo; Color Mode",textbox:"Enter A &ldquo;Red&rdquo; Value (0-255)"},green:{radio:"Set To &ldquo;Green&rdquo; Color Mode",textbox:"Enter A &ldquo;Green&rdquo; Value (0-255)"},blue:{radio:"Set To &ldquo;Blue&rdquo; Color Mode",textbox:"Enter A &ldquo;Blue&rdquo; Value (0-255)"},alpha:{radio:"Set To &ldquo;Alpha&rdquo; Color Mode",textbox:"Enter A &ldquo;Alpha&rdquo; Value (0-100)"},hex:{textbox:"Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)",alpha:"Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)"}}}}})(jQuery,"1.1.6");
\ No newline at end of file
diff --git a/htdocs/includes/jquery/plugins/jpicker/jquery-1.4.4.min.js b/htdocs/includes/jquery/plugins/jpicker/jquery-1.4.4.min.js
new file mode 100755
index 00000000000..8f3ca2e2daf
--- /dev/null
+++ b/htdocs/includes/jquery/plugins/jpicker/jquery-1.4.4.min.js
@@ -0,0 +1,167 @@
+/*!
+ * jQuery JavaScript Library v1.4.4
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Nov 11 19:04:53 2010 -0500
+ */
+(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
+h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
+h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
+"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
+e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
+"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
+s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
+j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
+toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
+-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
+if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
+if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
+b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
+!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
+l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
+z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
+s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
+s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
+[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
+false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
+k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
+scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
+1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
+"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
+c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
+else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
+c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
+a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
+colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
+1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
+l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
+"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
+if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
+a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
+attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
+b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
+c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
+arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
+d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
+c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
+w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
+8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
+"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
+Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
+c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
+var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
+xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
+B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
+"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
+0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
+a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
+1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
+"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
+c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
+[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
+break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
+q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
+l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
+return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
+B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
+i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
+i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
+"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
+m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
+true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
+g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
+0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
+"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
+i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
+if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
+g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
+for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
+i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
+n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
+function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
+p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
+t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
+function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
+c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
+not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
+h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
+c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
+2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
+b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
+e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
+"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
+else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
+c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
+b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
+this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
+prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
+1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
+d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
+jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
+zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
+h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
+if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
+d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
+e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
+"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
+!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
+getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
+script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
+!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
+false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
+A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
+b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
+c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
+c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
+encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
+[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
+e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
+if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
+3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
+d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
+d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
+"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
+1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
+d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
+Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
+var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
+this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
+this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
+c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
+b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
+h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
+for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
+parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
+height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
+f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
+"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
+e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
+c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
+c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window);
diff --git a/htdocs/lib/agenda.lib.php b/htdocs/lib/agenda.lib.php
index 20c7f697e97..21b7e04ac37 100644
--- a/htdocs/lib/agenda.lib.php
+++ b/htdocs/lib/agenda.lib.php
@@ -55,7 +55,7 @@ function print_actions_filter($form,$canedit,$status,$year,$month,$day,$showbirt
 		print '<input type="hidden" name="month" value="'.$month.'">';
 		print '<input type="hidden" name="day" value="'.$day.'">';
 		print '<input type="hidden" name="showbirthday" value="'.$showbirthday.'">';
-		print '<table class="border" width="100%">';
+		print '<table class="nobordernopadding" width="100%">';
 		if ($canedit || $conf->projet->enabled)
 		{
 			print '<tr><td nowrap="nowrap">';
diff --git a/htdocs/lib/lib_colorpicker.js b/htdocs/lib/lib_colorpicker.js
deleted file mode 100644
index 1074068f1cf..00000000000
--- a/htdocs/lib/lib_colorpicker.js
+++ /dev/null
@@ -1,264 +0,0 @@
-// \file       htdocs/lib/lib_colorpicker.js
-// \brief      File with javascript function to output a color picker
-// \version    $Revision$
-
-StringBuilder = function()
-{
- this.arrStr = new Array();
- this.Append = function( inVAL )
- {
-  this.arrStr[this.arrStr.length] = inVAL;
- }
- this.toString = function()
- {
-  return this.arrStr.join('');
- }
- this.Init = function()
- {
-  this.arrStr = null;
-  this.arrStr = new Array();
- }
-}
-
-var objSB = new StringBuilder();
-
-var arrGray = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
-var arrSafe = new Array('00','33','66','99','CC','FF');
-var arrSys = [['D4D0C8', 'ActiveBorder'],['0A246A', 'ActiveCaption'],['808080', 'AppWorkspace'],['3A6EA5', 'Background'],['D4D0C8', 'ButtonFace'],['FFFFFF', 'ButtonHighlight'],['808080', 'ButtonShadow'],['000000', 'ButtonText'],['FFFFFF', 'CaptionText'],['808080', 'GrayText'],['0A246A', 'Highlight'],['FFFFFF', 'HighlightText'],['D4D0C8', 'InactiveBorder'],['0A246A', 'InactiveCaption'],['D4D0C8', 'InactiveCaptionText'],['FFFFE1', 'InfoBackground'],['000000', 'InfoText'],['D4D0C8', 'Menu'],['000000', 'MenuText'],['D4D0C8', 'Scrollbar'],['404040', 'ThreedDarkShadow'],['D4D0C8', 'ThreedFace'],['FFFFFF', 'ThreedHighlight'],['D4D0C8', 'ThreedLightShadow'],['808080', 'ThreedShadow'],['FFFFFF', 'Window'],['000000', 'WindowFrame'],['000000', 'WindowText']];
-var arrName = [['FF0000', 'red'],['FFFF00', 'yellow'],['00FF00', 'lime'],['00FFFF', 'cyan'],['0000FF', 'blue'],['FF00FF', 'magenta'],['FFFFFF', 'white'],['F5F5F5', 'whitesmoke'],['DCDCDC', 'gainsboro'],['D3D3D3', 'lightgrey'],['C0C0C0', 'silver'],['A9A9A9', 'darkgray'],['808080', 'gray'],['696969', 'dimgray'],['000000', 'black'],['2F4F4F', 'darkslategray'],['708090', 'slategray'],['778899', 'lightslategray'],['4682B4', 'steelblue'],['4169E1', 'royalblue'],['6495ED', 'cornflowerblue'],['B0C4DE', 'lightsteelblue'],['7B68EE', 'mediumslateblue'],['6A5ACD', 'slateblue'],['483D8B', 'darkslateblue'],['191970', 'midnightblue'],['000080', 'navy'],['00008B', 'darkblue'],['0000CD', 'mediumblue'],['1E90FF', 'dodgerblue'],['00BFFF', 'deepskyblue'],['87CEFA', 'lightskyblue'],['87CEEB', 'skyblue'],['ADD8E6', 'lightblue'],['B0E0E6', 'powderblue'],['F0FFFF', 'azure'],['E0FFFF', 'lightcyan'],['AFEEEE', 'paleturquoise'],['48D1CC', 'mediumturquoise'],['20B2AA', 'lightseagreen'],['008B8B', 'darkcyan'],['008080', 'teal'],['5F9EA0', 'cadetblue'],['00CED1', 'darkturquoise'],['00FFFF', 'aqua'],['40E0D0', 'turquoise'],['7FFFD4', 'aquamarine'],['66CDAA', 'mediumaquamarine'],['8FBC8F', 'darkseagreen'],['3CB371', 'mediumseagreen'],['2E8B57', 'seagreen'],['006400', 'darkgreen'],['008000', 'green'],['228B22', 'forestgreen'],['32CD32', 'limegreen'],['00FF00', 'lime'],['7FFF00', 'chartreuse'],['7CFC00', 'lawngreen'],['ADFF2F', 'greenyellow'],['98FB98', 'palegreen'],['90EE90', 'lightgreen'],['00FF7F', 'springgreen'],['00FA9A', 'mediumspringgreen'],['556B2F', 'darkolivegreen'],['6B8E23', 'olivedrab'],['808000', 'olive'],['BDB76B', 'darkkhaki'],['B8860B', 'darkgoldenrod'],['DAA520', 'goldenrod'],['FFD700', 'gold'],['F0E68C', 'khaki'],['EEE8AA', 'palegoldenrod'],['FFEBCD', 'blanchedalmond'],['FFE4B5', 'moccasin'],['F5DEB3', 'wheat'],['FFDEAD', 'navajowhite'],['DEB887', 'burlywood'],['D2B48C', 'tan'],['BC8F8F', 'rosybrown'],['A0522D', 'sienna'],['8B4513', 'saddlebrown'],['D2691E', 'chocolate'],['CD853F', 'peru'],['F4A460', 'sandybrown'],['8B0000', 'darkred'],['800000', 'maroon'],['A52A2A', 'brown'],['B22222', 'firebrick'],['CD5C5C', 'indianred'],['F08080', 'lightcoral'],['FA8072', 'salmon'],['E9967A', 'darksalmon'],['FFA07A', 'lightsalmon'],['FF7F50', 'coral'],['FF6347', 'tomato'],['FF8C00', 'darkorange'],['FFA500', 'orange'],['FF4500', 'orangered'],['DC143C', 'crimson'],['FF0000', 'red'],['FF1493', 'deeppink'],['FF00FF', 'fuchsia'],['FF69B4', 'hotpink'],['FFB6C1', 'lightpink'],['FFC0CB', 'pink'],['DB7093', 'palevioletred'],['C71585', 'mediumvioletred'],['800080', 'purple'],['8B008B', 'darkmagenta'],['9370DB', 'mediumpurple'],['8A2BE2', 'blueviolet'],['4B0082', 'indigo'],['9400D3', 'darkviolet'],['9932CC', 'darkorchid'],['BA55D3', 'mediumorchid'],['DA70D6', 'orchid'],['EE82EE', 'violet'],['DDA0DD', 'plum'],['D8BFD8', 'thistle'],['E6E6FA', 'lavender'],['F8F8FF', 'ghostwhite'],['F0F8FF', 'aliceblue'],['F5FFFA', 'mintcream'],['F0FFF0', 'honeydew'],['FAFAD2', 'lightgoldenrodyellow'],['FFFACD', 'lemonchiffon'],['FFF8DC', 'cornsilk'],['FFFFE0', 'lightyellow'],['FFFFF0', 'ivory'],['FFFAF0', 'floralwhite'],['FAF0E6', 'linen'],['FDF5E6', 'oldlace'],['FAEBD7', 'antiquewhite'],['FFE4C4', 'bisque'],['FFDAB9', 'peachpuff'],['FFEFD5', 'papayawhip'],['FFF5EE', 'seashell'],['FFF0F5', 'lavenderblush'],['FFE4E1', 'mistyrose'],['FFFAFA', 'snow']];
-
-var intTdDisp = intTblDisp = 0;
-var i = j = k = 0;
-var objCurrent = objGray = objSafe = objSys = objName = objLegend = objPreview = objSelected = objPreviewTxt = objSelectedTxt = objGlobal = null;
-var strColor = '', strColorTxt = '', strCurrent = '';
-
-fctTblFeed = function()
-{
- if (intTdDisp != 16) {
-  for (i = intTdDisp; i < 16; i++) {
-   objSB.Append('<td class="tdColor"><a class="none" href="#">&nbsp;</a></td>');
-   intTblDisp++;
-  }
- }
- if (intTblDisp != 256) {
-  for (i = intTblDisp; i < 256; i++) {
-   if (i % 16 == 0) {objSB.Append('</tr><tr>');}
-   objSB.Append('<td class="tdColor"><a class="none" href="#">&nbsp;</a></td>');
-  }
- }
-}
-
-fctIsInSys = function(strColor)
-{
- var strOut = '';
- for (ii = 0; ii < arrSys.length; ii++) {
-  if (arrSys[ii][0] == strColor) {strOut = arrSys[ii][1]; break;}
- }
- return strOut;
-}
-
-fctIsInName = function(strColor)
-{
- var strOut = '';
- for (ii = 0; ii < arrName.length; ii++) {
-  if (arrName[ii][0] == strColor) {strOut = arrName[ii][1]; break;}
- }
- return strOut;
-}
-
-fctOver = function(strColor, strTxt)
-{
- objPreview.style.backgroundColor = strColor;
- objPreviewTxt.innerHTML = strColor + '<br>' + strTxt;
-}
-
-fctOut = function()
-{
- objPreview.style.backgroundColor = '';
- objPreviewTxt.innerHTML = '';
-}
-
-fctSetColor = function(strColor, strTxt)
-{
- strCurrent = strColor;
- objSelected.style.backgroundColor = strColor;
- objSelectedTxt.innerHTML = strColor + '<br>' + strTxt;
-}
-
-fctSelect = function(strArr, strTxt)
-{
- objLegend.innerHTML = '&nbsp;' + strTxt + '&nbsp;';
- objGray.style.display = (strArr == 'Gray') ? 'block' : 'none';
- objSafe.style.display = (strArr == 'Safe') ? 'block' : 'none';
- objSys.style.display = (strArr == 'Sys') ? 'block' : 'none';
- objName.style.display = (strArr == 'Name') ? 'block' : 'none';
-}
-
-fctHide = function()
-{
- fctReset();
- objGlobal.style.display = 'none';
- objCurrent = null;
-}
-
-fctReset = function()
-{
- objSelected.style.backgroundColor = '';
- objSelectedTxt.innerHTML = '';
- strCurrent = '';
-}
-
-fctOk = function()
-{
- objCurrent.value = strCurrent.toUpperCase();
- fctHide();
-}
-
-fctShow = function(objForm)
-{
- if (objForm) {
-  objCurrent = objForm;
-  if (objForm.value + '' != '') {
-   strColor = objForm.value.replace('#', '');
-   strColorTxt = '' + fctIsInName(strColor);
-   if (strColorTxt == '') {strColorTxt = '' + fctIsInSys(strColor);}
-   fctSetColor('#' + strColor, strColorTxt)
-  } else {
-   fctReset();
-  }
-  fctSelect('Safe', 'Safety');
- }
- if (objCurrent) {
-  var w = h = t = l = 0;
-  if (self.innerHeight) {
-   w = self.innerWidth;
-   h = self.innerHeight;
-  } else if (document.documentElement && document.documentElement.clientHeight) {
-   w = document.documentElement.clientWidth;
-   h = document.documentElement.clientHeight;
-  } else if (document.body) {
-   w = document.body.clientWidth;
-   h = document.body.clientHeight;
-  }
-  if (self.pageYOffset) {
-   l = self.pageXOffset;
-   t = self.pageYOffset;
-  } else if (document.documentElement && document.documentElement.scrollTop) {
-   l = document.documentElement.scrollLeft;
-   t = document.documentElement.scrollTop;
-  } else if (document.body) {
-   l = document.body.scrollLeft;
-   t = document.body.scrollTop;
-  }
-  if (objGlobal.style.display != 'block') {objGlobal.style.display = 'block';}
-  objGlobal.style.top = parseInt(((h - objGlobal.offsetHeight) / 2) + t, 10) + 'px';
-  objGlobal.style.left = parseInt(((w - objGlobal.offsetWidth) / 2) + l, 10) + 'px';
- }
-}
-
-fctLoad = function()
-{
- var objDiv = document.createElement('DIV');
- objDiv.id = 'objCP';
- objDiv.style.display = 'inline';
- document.body.appendChild(objDiv);
- objDiv.innerHTML = objSB.toString();
- objPreview = document.getElementById('objPreview');
- objSelected = document.getElementById('objSelected');
- objPreviewTxt = document.getElementById('objPreviewTxt');
- objSelectedTxt = document.getElementById('objSelectedTxt');
- objGlobal = document.getElementById('tblGlobal');
- objGray = document.getElementById('tblGray');
- objSafe = document.getElementById('tblSafe');
- objSys = document.getElementById('tblSys');
- objName = document.getElementById('tblName');
- objLegend = document.getElementById('objLegend');
- fctSelect('Name', 'Named');
-}
-
-objSB.Append('<table id="tblGlobal" class="tblGlobal" border="0" cellpadding="0" cellspacing="0"><tr><td class="tdContainer"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr>');
-//objSB.Append('<td width="24%" align="center"><input type="button" value="Named" class="btnPalette" onClick="fctSelect(\'Name\', \'Named\');"></td>');
-objSB.Append('<td width="33%" align="center"><input type="button" value="Safety" class="btnPalette" onClick="fctSelect(\'Safe\', \'Safety\');"></td>');
-objSB.Append('<td width="34%" align="center"><input type="button" value="System" class="btnPalette" onClick="fctSelect(\'Sys\', \'System\');"></td>');
-objSB.Append('<td width="33%" align="center"><input type="button" value="Grayscale" class="btnPalette" onClick="fctSelect(\'Gray\', \'Grayscale\');"></td>');
-objSB.Append('</tr></table></td></tr><tr><td class="tdContainer"><fieldset><legend align="top" id="objLegend"></legend><table id="tblContainer" class="tblContainer" border="0" cellpadding="0" cellspacing="0"><tr><td class="tdContainer">');
-
-objSB.Append('<table id="tblGray" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
-for (i = 0; i < arrGray.length; i++) {
- for (j = 0; j < arrGray.length; j++) {
-  strColor = '' + arrGray[i] + arrGray[j] + arrGray[i] + arrGray[j] + arrGray[i] + arrGray[j];
-  strColorTxt = '' + fctIsInName(strColor);
-  if (strColorTxt == '') {strColorTxt = '' + fctIsInSys(strColor);}
-  objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
-  intTdDisp++;
-  intTblDisp++;
- }
- if (i < arrGray.length - 1) {
-  objSB.Append('</tr><tr>');
-  intTdDisp = 0;
- }
-}
-fctTblFeed();
-objSB.Append('</tr></table>');
-intTdDisp = intTblDisp = 0;
-
-objSB.Append('<table id="tblSafe" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
-for (i = 0; i < arrSafe.length; i++) {
- for (j = 0; j < arrSafe.length; j++) {
-  for (k = 0; k < arrSafe.length; k++) {
-   if (intTblDisp % 16 == 0 && intTdDisp != 0) {
-    objSB.Append('</tr><tr>');
-    intTdDisp = 0;
-   }
-   strColor = '' + arrSafe[i] + arrSafe[j] + arrSafe[k];
-   strColorTxt = '' + fctIsInName(strColor);
-   if (strColorTxt == '') {strColorTxt = '' + fctIsInSys(strColor);}
-   objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
-   intTdDisp++;
-   intTblDisp++;
-  }
- }
-}
-fctTblFeed();
-objSB.Append('</tr></table>');
-intTdDisp = intTblDisp = 0;
-
-objSB.Append('<table id="tblSys" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
-for (i = 0; i < arrSys.length; i++) {
- if (intTblDisp % 16 == 0 && intTdDisp != 0) {
-  objSB.Append('</tr><tr>');
-  intTdDisp = 0;
- }
- strColor = '' + arrSys[i][0];
- strColorTxt = '' + arrSys[i][1];
- objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
- intTdDisp++;
- intTblDisp++;
-}
-fctTblFeed();
-objSB.Append('</tr></table>');
-intTdDisp = intTblDisp = 0;
-
-objSB.Append('<table id="tblName" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
-for (i = 0; i < arrName.length; i++) {
- if (intTblDisp % 16 == 0 && intTdDisp != 0) {
-  objSB.Append('</tr><tr>');
-  intTdDisp = 0;
- }
- strColor = '' + arrName[i][0];
- strColorTxt = '' + arrName[i][1];
- objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
- intTdDisp++;
- intTblDisp++;
-}
-fctTblFeed();
-objSB.Append('</tr></table></td></tr></table></fieldset></td></tr><tr><td class="tdContainer">');
-objSB.Append('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
-objSB.Append('<tr><td class="tdDisplay" id="objPreview">&nbsp;</td><td class="tdDisplay" id="objSelected">&nbsp;</td></tr>');
-objSB.Append('<tr><td class="tdDisplayTxt" id="objPreviewTxt" valign="top">&nbsp;</td><td class="tdDisplayTxt" id="objSelectedTxt" valign="top">&nbsp;</td></tr>');
-objSB.Append('</table></td></tr><tr><td class="tdContainer">');
-objSB.Append('<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr>');
-objSB.Append('<td width="50%" align="center"><input type="button" value="Cancel" class="btnColor" onClick="fctHide();"></td>');
-//objSB.Append('<td width="34%" align="center"><input type="button" value="Reset" class="btnColor" onClick="fctReset();"></td>');
-objSB.Append('<td width="50%" align="center"><input type="button" value="Ok" class="btnColor" onClick="fctOk();"></td>');
-objSB.Append('</tr></table></td></tr></table>');
\ No newline at end of file
-- 
GitLab