/*!
 * jquery.qtip. The jQuery tooltip plugin
 *
 * Copyright (c) 2009 Craig Thompson
 * http://craigsworks.com
 *
 * Licensed under MIT
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Launch  : February 2009
 * Version : 1.0.0-rc3
 * Released: Tuesday 12th May, 2009 - 00:00
 * Debug: jquery.qtip.debug.js
 */
(function($)
{
   // Implementation
   $.fn.qtip = function(options, blanket)
   {
      var i, id, interfaces, opts, obj, command, config, api;

      // Return API / Interfaces if requested
      if(typeof options == 'string')
      {
         // Make sure API data exists if requested
         if(typeof $(this).data('qtip') !== 'object')
            $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.NO_TOOLTIP_PRESENT, false);

         // Return requested object
         if(options == 'api')
            return $(this).data('qtip').interfaces[ $(this).data('qtip').current ];
         else if(options == 'interfaces')
            return $(this).data('qtip').interfaces;
      }

      // Validate provided options
      else
      {
         // Set null options object if no options are provided
         if(!options) options = {};

         // Sanitize option data
         if(typeof options.content !== 'object' || (options.content.jquery && options.content.length > 0)) options.content = { text: options.content };
         if(typeof options.content.title !== 'object') options.content.title = { text: options.content.title };
         if(typeof options.position !== 'object') options.position = { corner: options.position };
         if(typeof options.position.corner !== 'object') options.position.corner = { target: options.position.corner, tooltip: options.position.corner };
         if(typeof options.show !== 'object') options.show = { when: options.show };
         if(typeof options.show.when !== 'object') options.show.when = { event: options.show.when };
         if(typeof options.show.effect !== 'object') options.show.effect = { type: options.show.effect };
         if(typeof options.hide !== 'object') options.hide = { when: options.hide };
         if(typeof options.hide.when !== 'object') options.hide.when = { event: options.hide.when };
         if(typeof options.hide.effect !== 'object') options.hide.effect = { type: options.hide.effect };
         if(typeof options.style !== 'object') options.style = { name: options.style };
         options.style = sanitizeStyle(options.style);

         // Build main options object
         opts = $.extend(true, {}, $.fn.qtip.defaults, options);

         // Inherit all style properties into one syle object and include original options
         opts.style = buildStyle.call({ options: opts }, opts.style);
         opts.user = $.extend(true, {}, options);
      };

      // Iterate each matched element
      return $(this).each(function() // Return original elements as per jQuery guidelines
      {
         // Check for API commands
         if(typeof options == 'string')
         {
            command = options.toLowerCase();
            interfaces = $(this).qtip('interfaces');

            // Make sure API data exists$('.qtip').qtip('destroy')
            if(typeof interfaces == 'object')
            {
               // Check if API call is a BLANKET DESTROY command
               if(blanket === true && command == 'destroy')
                  while(interfaces.length > 0) interfaces[interfaces.length-1].destroy();

               // API call is not a BLANKET DESTROY command
               else
               {
                  // Check if supplied command effects this tooltip only (NOT BLANKET)
                  if(blanket !== true) interfaces = [ $(this).qtip('api') ];

                  // Execute command on chosen qTips
                  for(i = 0; i < interfaces.length; i++)
                  {
                     // Destroy command doesn't require tooltip to be rendered
                     if(command == 'destroy') interfaces[i].destroy();

                     // Only call API if tooltip is rendered and it wasn't a destroy call
                     else if(interfaces[i].status.rendered === true)
                     {
                        if(command == 'show') interfaces[i].show();
                        else if(command == 'hide') interfaces[i].hide();
                        else if(command == 'focus') interfaces[i].focus();
                        else if(command == 'disable') interfaces[i].disable(true);
                        else if(command == 'enable') interfaces[i].disable(false);
                     };
                  };
               };
            };
         }

         // No API commands, continue with qTip creation
         else
         {
            // Create unique configuration object
            config = $.extend(true, {}, opts);
            config.hide.effect.length = opts.hide.effect.length;
            config.show.effect.length = opts.show.effect.length;

            // Sanitize target options
            if(config.position.container === false) config.position.container = $(document.body);
            if(config.position.target === false) config.position.target = $(this);
            if(config.show.when.target === false) config.show.when.target = $(this);
            if(config.hide.when.target === false) config.hide.when.target = $(this);

            // Determine tooltip ID (Reuse array slots if possible)
            id = $.fn.qtip.interfaces.length;
            for(i = 0; i < id; i++)
            {
               if(typeof $.fn.qtip.interfaces[i] == 'undefined'){ id = i; break; };
            };

            // Instantiate the tooltip
            obj = new qTip($(this), config, id);

            // Add API references
            $.fn.qtip.interfaces[id] = obj;

            // Check if element already has qTip data assigned
            if(typeof $(this).data('qtip') == 'object')
            {
               // Set new current interface id
               if(typeof $(this).attr('qtip') === 'undefined')
                  $(this).data('qtip').current = $(this).data('qtip').interfaces.length;

               // Push new API interface onto interfaces array
               $(this).data('qtip').interfaces.push(obj);
            }

            // No qTip data is present, create now
            else $(this).data('qtip', { current: 0, interfaces: [obj] });

            // If prerendering is disabled, create tooltip on showEvent
            if(config.content.prerender === false && config.show.when.event !== false && config.show.ready !== true)
            {
               config.show.when.target.bind(config.show.when.event+'.qtip-'+id+'-create', { qtip: id }, function(event)
               {
                  // Retrieve API interface via passed qTip Id
                  api = $.fn.qtip.interfaces[ event.data.qtip ];

                  // Unbind show event and cache mouse coords
                  api.options.show.when.target.unbind(api.options.show.when.event+'.qtip-'+event.data.qtip+'-create');
                  api.cache.mouse = { x: event.pageX, y: event.pageY };

                  // Render tooltip and start the event sequence
                  construct.call( api );
                  api.options.show.when.target.trigger(api.options.show.when.event);
               });
            }

            // Prerendering is enabled, create tooltip now
            else
            {
               // Set mouse position cache to top left of the element
               obj.cache.mouse = {
                  x: config.show.when.target.offset().left,
                  y: config.show.when.target.offset().top
               };

               // Construct the tooltip
               construct.call(obj);
            }
         };
      });
   };

   // Instantiator
   function qTip(target, options, id)
   {
      // Declare this reference
      var self = this;

      // Setup class attributes
      self.id = id;
      self.options = options;
      self.status = {
         animated: false,
         rendered: false,
         disabled: false,
         focused: false
      };
      self.elements = {
         target: target.addClass(self.options.style.classes.target),
         tooltip: null,
         wrapper: null,
         content: null,
         contentWrapper: null,
         title: null,
         button: null,
         tip: null,
         bgiframe: null
      };
      self.cache = {
         mouse: {},
         position: {},
         toggle: 0
      };
      self.timers = {};

      // Define exposed API methods
      $.extend(self, self.options.api,
      {
         show: function(event)
         {
            var returned, solo;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'show');

            // Only continue if element is visible
            if(self.elements.tooltip.css('display') !== 'none') return self;

            // Clear animation queue
            self.elements.tooltip.stop(true, false);

            // Call API method and if return value is false, halt
            returned = self.beforeShow.call(self, event);
            if(returned === false) return self;

            // Define afterShow callback method
            function afterShow()
            {
               // Call API method and focus if it isn't static
               if(self.options.position.type !== 'static') self.focus();
               self.onShow.call(self, event);

               // Prevent antialias from disappearing in IE7 by removing filter attribute
               if($.browser.msie) self.elements.tooltip.get(0).style.removeAttribute('filter');
            };

            // Maintain toggle functionality if enabled
            self.cache.toggle = 1;

            // Update tooltip position if it isn't static
            if(self.options.position.type !== 'static')
               self.updatePosition(event, (self.options.show.effect.length > 0));

            // Hide other tooltips if tooltip is solo
            if(typeof self.options.show.solo == 'object') solo = $(self.options.show.solo);
            else if(self.options.show.solo === true) solo = $('div.qtip').not(self.elements.tooltip);
            if(solo) solo.each(function(){ if($(this).qtip('api').status.rendered === true) $(this).qtip('api').hide(); });

            // Show tooltip
            if(typeof self.options.show.effect.type == 'function')
            {
               self.options.show.effect.type.call(self.elements.tooltip, self.options.show.effect.length);
               self.elements.tooltip.queue(function(){ afterShow(); $(this).dequeue(); });
            }
            else
            {
               switch(self.options.show.effect.type.toLowerCase())
               {
                  case 'fade':
                     self.elements.tooltip.fadeIn(self.options.show.effect.length, afterShow);
                     break;
                  case 'slide':
                     self.elements.tooltip.slideDown(self.options.show.effect.length, function()
                     {
                        afterShow();
                        if(self.options.position.type !== 'static') self.updatePosition(event, true);
                     });
                     break;
                  case 'grow':
                     self.elements.tooltip.show(self.options.show.effect.length, afterShow);
                     break;
                  default:
                     self.elements.tooltip.show(null, afterShow);
                     break;
               };

               // Add active class to tooltip
               self.elements.tooltip.addClass(self.options.style.classes.active);
            };

            // Log event and return
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_SHOWN, 'show');
         },

         hide: function(event)
         {
            var returned;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'hide');

            // Only continue if element is visible
            else if(self.elements.tooltip.css('display') === 'none') return self;

            // Stop show timer and animation queue
            clearTimeout(self.timers.show);
            self.elements.tooltip.stop(true, false);

            // Call API method and if return value is false, halt
            returned = self.beforeHide.call(self, event);
            if(returned === false) return self;

            // Define afterHide callback method
            function afterHide(){ self.onHide.call(self, event); };

            // Maintain toggle functionality if enabled
            self.cache.toggle = 0;

            // Hide tooltip
            if(typeof self.options.hide.effect.type == 'function')
            {
               self.options.hide.effect.type.call(self.elements.tooltip, self.options.hide.effect.length);
               self.elements.tooltip.queue(function(){ afterHide(); $(this).dequeue(); });
            }
            else
            {
               switch(self.options.hide.effect.type.toLowerCase())
               {
                  case 'fade':
                     self.elements.tooltip.fadeOut(self.options.hide.effect.length, afterHide);
                     break;
                  case 'slide':
                     self.elements.tooltip.slideUp(self.options.hide.effect.length, afterHide);
                     break;
                  case 'grow':
                     self.elements.tooltip.hide(self.options.hide.effect.length, afterHide);
                     break;
                  default:
                     self.elements.tooltip.hide(null, afterHide);
                     break;
               };

               // Remove active class to tooltip
               self.elements.tooltip.removeClass(self.options.style.classes.active);
            };

            // Log event and return
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_HIDDEN, 'hide');
         },

         updatePosition: function(event, animate)
         {
            var i, target, tooltip, coords, mapName, imagePos, newPosition, ieAdjust, ie6Adjust, borderAdjust, mouseAdjust, offset, curPosition, returned

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updatePosition');

            // If tooltip is static, return
            else if(self.options.position.type == 'static')
               return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.CANNOT_POSITION_STATIC, 'updatePosition');

            // Define property objects
            target = {
               position: { left: 0, top: 0 },
               dimensions: { height: 0, width: 0 },
               corner: self.options.position.corner.target
            };
            tooltip = {
               position: self.getPosition(),
               dimensions: self.getDimensions(),
               corner: self.options.position.corner.tooltip
            };

            // Target is an HTML element
            if(self.options.position.target !== 'mouse')
            {
               // If the HTML element is AREA, calculate position manually
               if(self.options.position.target.get(0).nodeName.toLowerCase() == 'area')
               {
                  // Retrieve coordinates from coords attribute and parse into integers
                  coords = self.options.position.target.attr('coords').split(',');
                  for(i = 0; i < coords.length; i++) coords[i] = parseInt(coords[i]);

                  // Setup target position object
                  mapName = self.options.position.target.parent('map').attr('name');
                  imagePos = $('img[usemap="#'+mapName+'"]:first').offset();
                  target.position = {
                     left: Math.floor(imagePos.left + coords[0]),
                     top: Math.floor(imagePos.top + coords[1])
                  };

                  // Determine width and height of the area
                  switch(self.options.position.target.attr('shape').toLowerCase())
                  {
                     case 'rect':
                        target.dimensions = {
                           width: Math.ceil(Math.abs(coords[2] - coords[0])),
                           height: Math.ceil(Math.abs(coords[3] - coords[1]))
                        };
                        break;

                     case 'circle':
                        target.dimensions = {
                           width: coords[2] + 1,
                           height: coords[2] + 1
                        };
                        break;

                     case 'poly':
                        target.dimensions = {
                           width: coords[0],
                           height: coords[1]
                        };

                        for(i = 0; i < coords.length; i++)
                        {
                           if(i % 2 == 0)
                           {
                              if(coords[i] > target.dimensions.width)
                                 target.dimensions.width = coords[i];
                              if(coords[i] < coords[0])
                                 target.position.left = Math.floor(imagePos.left + coords[i]);
                           }
                           else
                           {
                              if(coords[i] > target.dimensions.height)
                                 target.dimensions.height = coords[i];
                              if(coords[i] < coords[1])
                                 target.position.top = Math.floor(imagePos.top + coords[i]);
                           };
                        };

                        target.dimensions.width = target.dimensions.width - (target.position.left - imagePos.left);
                        target.dimensions.height = target.dimensions.height - (target.position.top - imagePos.top);
                        break;

                     default:
                        return $.fn.qtip.log.error.call(self, 4, $.fn.qtip.constants.INVALID_AREA_SHAPE, 'updatePosition');
                        break;
                  };

                  // Adjust position by 2 pixels (Positioning bug?)
                  target.dimensions.width -= 2; target.dimensions.height -= 2;
               }

               // Target is the document
               else if(self.options.position.target.add(document.body).length === 1)
               {
                  target.position = { left: $(document).scrollLeft(), top: $(document).scrollTop() };
                  target.dimensions = { height: $(window).height(), width: $(window).width() };
               }

               // Target is a regular HTML element, find position normally
               else
               {
                  // Check if the target is another tooltip. If its animated, retrieve position from newPosition data
                  if(typeof self.options.position.target.attr('qtip') !== 'undefined')
                     target.position = self.options.position.target.qtip('api').cache.position;
                  else
                     target.position = self.options.position.target.offset();

                  // Setup dimensions objects
                  target.dimensions = {
                     height: self.options.position.target.outerHeight(),
                     width: self.options.position.target.outerWidth()
                  };
               };

               // Calculate correct target corner position
               newPosition = $.extend({}, target.position);
               if(target.corner.search(/right/i) !== -1)
                  newPosition.left += target.dimensions.width;

               if(target.corner.search(/bottom/i) !== -1)
                  newPosition.top += target.dimensions.height;

               if(target.corner.search(/((top|bottom)Middle)|center/) !== -1)
                  newPosition.left += (target.dimensions.width / 2);

               if(target.corner.search(/((left|right)Middle)|center/) !== -1)
                  newPosition.top += (target.dimensions.height / 2);
            }

            // Mouse is the target, set position to current mouse coordinates
            else
            {
               // Setup target position and dimensions objects
               target.position = newPosition = { left: self.cache.mouse.x, top: self.cache.mouse.y };
               target.dimensions = { height: 1, width: 1 };
            };

            // Calculate correct target corner position
            if(tooltip.corner.search(/right/i) !== -1)
               newPosition.left -= tooltip.dimensions.width;

            if(tooltip.corner.search(/bottom/i) !== -1)
               newPosition.top -= tooltip.dimensions.height;

            if(tooltip.corner.search(/((top|bottom)Middle)|center/) !== -1)
               newPosition.left -= (tooltip.dimensions.width / 2);

            if(tooltip.corner.search(/((left|right)Middle)|center/) !== -1)
               newPosition.top -= (tooltip.dimensions.height / 2);

            // Setup IE adjustment variables (Pixel gap bugs)
            ieAdjust = ($.browser.msie) ? 1 : 0; // And this is why I hate IE...
            ie6Adjust = ($.browser.msie && parseInt($.browser.version.charAt(0)) === 6) ? 1 : 0; // ...and even more so IE6!

            // Adjust for border radius
            if(self.options.style.border.radius > 0)
            {
               if(tooltip.corner.search(/Left/) !== -1)
                  newPosition.left -= self.options.style.border.radius;
               else if(tooltip.corner.search(/Right/) !== -1)
                  newPosition.left += self.options.style.border.radius;

               if(tooltip.corner.search(/Top/) !== -1)
                  newPosition.top -= self.options.style.border.radius;
               else if(tooltip.corner.search(/Bottom/) !== -1)
                  newPosition.top += self.options.style.border.radius;
            };

            // IE only adjustments (Pixel perfect!)
            if(ieAdjust)
            {
               if(tooltip.corner.search(/top/) !== -1)
                  newPosition.top -= ieAdjust
               else if(tooltip.corner.search(/bottom/) !== -1)
                  newPosition.top += ieAdjust

               if(tooltip.corner.search(/left/) !== -1)
                  newPosition.left -= ieAdjust
               else if(tooltip.corner.search(/right/) !== -1)
                  newPosition.left += ieAdjust

               if(tooltip.corner.search(/leftMiddle|rightMiddle/) !== -1)
                  newPosition.top -= 1
            };

            // If screen adjustment is enabled, apply adjustments
            if(self.options.position.adjust.screen === true)
               newPosition = screenAdjust.call(self, newPosition, target, tooltip);

            // If mouse is the target, prevent tooltip appearing directly under the mouse
            if(self.options.position.target === 'mouse' && self.options.position.adjust.mouse === true)
            {
               if(self.options.position.adjust.screen === true && self.elements.tip)
                  mouseAdjust = self.elements.tip.attr('rel');
               else
                  mouseAdjust = self.options.position.corner.tooltip;

               newPosition.left += (mouseAdjust.search(/right/i) !== -1) ? -6 : 6;
               newPosition.top += (mouseAdjust.search(/bottom/i) !== -1) ? -6 : 6;
            }

            // Initiate bgiframe plugin in IE6 if tooltip overlaps a select box or object element
            if(!self.elements.bgiframe && $.browser.msie && parseInt($.browser.version.charAt(0)) == 6)
            {
               $('select, object').each(function()
               {
                  offset = $(this).offset();
                  offset.bottom = offset.top + $(this).height();
                  offset.right = offset.left + $(this).width();

                  if(newPosition.top + tooltip.dimensions.height >= offset.top
                  && newPosition.left + tooltip.dimensions.width >= offset.left)
                     bgiframe.call(self);
               });
            };

            // Add user xy adjustments
            newPosition.left += self.options.position.adjust.x;
            newPosition.top += self.options.position.adjust.y;

            // Set new tooltip position if its moved, animate if enabled
            curPosition = self.getPosition();
            if(newPosition.left != curPosition.left || newPosition.top != curPosition.top)
            {
               // Call API method and if return value is false, halt
               returned = self.beforePositionUpdate.call(self, event);
               if(returned === false) return self;

               // Cache new position
               self.cache.position = newPosition;

               // Check if animation is enabled
               if(animate === true)
               {
                  // Set animated status
                  self.status.animated = true;

                  // Animate and reset animated status on animation end
                  self.elements.tooltip.animate(newPosition, 200, 'swing', function(){ self.status.animated = false });
               }

               // Set new position via CSS
               else self.elements.tooltip.css(newPosition);

               // Call API method and log event if its not a mouse move
               self.onPositionUpdate.call(self, event);
               if(typeof event !== 'undefined' && event.type && event.type !== 'mousemove')
                  $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_POSITION_UPDATED, 'updatePosition');
            };

            return self;
         },

         updateWidth: function(newWidth)
         {
            var hidden;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateWidth');

            // Make sure supplied width is a number and if not, return
            else if(newWidth && typeof newWidth !== 'number')
               return $.fn.qtip.log.error.call(self, 2, 'newWidth must be of type number', 'updateWidth');

            // Setup elements which must be hidden during width update
            hidden = self.elements.contentWrapper.siblings().add(self.elements.tip).add(self.elements.button);

            // Calculate the new width if one is not supplied
            if(!newWidth)
            {
               // Explicit width is set
               if(typeof self.options.style.width.value == 'number')
                  newWidth = self.options.style.width.value;

               // No width is set, proceed with auto detection
               else
               {
                  // Set width to auto initally to determine new width and hide other elements
                  self.elements.tooltip.css({ width: 'auto' });
                  hidden.hide();

                  // Set position and zoom to defaults to prevent IE hasLayout bug
                  if($.browser.msie)
                     self.elements.wrapper.add(self.elements.contentWrapper.children()).css({ zoom: 'normal' });

                  // Set the new width
                  newWidth = self.getDimensions().width + 1;

                  // Make sure its within the maximum and minimum width boundries
                  if(!self.options.style.width.value)
                  {
                     if(newWidth > self.options.style.width.max) newWidth = self.options.style.width.max
                     if(newWidth < self.options.style.width.min) newWidth = self.options.style.width.min
                  };
               };
            };

            // Adjust newWidth by 1px if width is odd (IE6 rounding bug fix)
            if(newWidth % 2 !== 0) newWidth -= 1;

            // Set the new calculated width and unhide other elements
            self.elements.tooltip.width(newWidth);
            hidden.show();

            // Set the border width, if enabled
            if(self.options.style.border.radius)
            {
               self.elements.tooltip.find('.qtip-betweenCorners').each(function(i)
               {
                  $(this).width(newWidth - (self.options.style.border.radius * 2));
               })
            };

            // IE only adjustments
            if($.browser.msie)
            {
               // Reset position and zoom to give the wrapper layout (IE hasLayout bug)
               self.elements.wrapper.add(self.elements.contentWrapper.children()).css({ zoom: '1' });

               // Set the new width
               self.elements.wrapper.width(newWidth);

               // Adjust BGIframe height and width if enabled
               if(self.elements.bgiframe) self.elements.bgiframe.width(newWidth).height(self.getDimensions.height);
            };

            // Log event and return
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_WIDTH_UPDATED, 'updateWidth');
         },

         updateStyle: function(name)
         {
            var tip, borders, context, corner, coordinates;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateStyle');

            // Return if style is not defined or name is not a string
            else if(typeof name !== 'string' || !$.fn.qtip.styles[name])
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.STYLE_NOT_DEFINED, 'updateStyle');

            // Set the new style object
            self.options.style = buildStyle.call(self, $.fn.qtip.styles[name], self.options.user.style);

            // Update initial styles of content and title elements
            self.elements.content.css( jQueryStyle(self.options.style) );
            if(self.options.content.title.text !== false)
               self.elements.title.css( jQueryStyle(self.options.style.title, true) );

            // Update CSS border colour
            self.elements.contentWrapper.css({ borderColor: self.options.style.border.color });

            // Update tip color if enabled
            if(self.options.style.tip.corner !== false)
            {
               if($('<canvas>').get(0).getContext)
               {
                  // Retrieve canvas context and clear
                  tip = self.elements.tooltip.find('.qtip-tip canvas:first');
                  context = tip.get(0).getContext('2d');
                  context.clearRect(0,0,300,300);

                  // Draw new tip
                  corner = tip.parent('div[rel]:first').attr('rel');
                  coordinates = calculateTip(corner, self.options.style.tip.size.width, self.options.style.tip.size.height);
                  drawTip.call(self, tip, coordinates, self.options.style.tip.color || self.options.style.border.color);
               }
               else if($.browser.msie)
               {
                  // Set new fillcolor attribute
                  tip = self.elements.tooltip.find('.qtip-tip [nodeName="shape"]');
                  tip.attr('fillcolor', self.options.style.tip.color || self.options.style.border.color);
               };
            };

            // Update border colors if enabled
            if(self.options.style.border.radius > 0)
            {
               self.elements.tooltip.find('.qtip-betweenCorners').css({ backgroundColor: self.options.style.border.color });

               if($('<canvas>').get(0).getContext)
               {
                  borders = calculateBorders(self.options.style.border.radius)
                  self.elements.tooltip.find('.qtip-wrapper canvas').each(function()
                  {
                     // Retrieve canvas context and clear
                     context = $(this).get(0).getContext('2d');
                     context.clearRect(0,0,300,300);

                     // Draw new border
                     corner = $(this).parent('div[rel]:first').attr('rel')
                     drawBorder.call(self, $(this), borders[corner],
                        self.options.style.border.radius, self.options.style.border.color);
                  });
               }
               else if($.browser.msie)
               {
                  // Set new fillcolor attribute on each border corner
                  self.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function()
                  {
                     $(this).attr('fillcolor', self.options.style.border.color)
                  });
               };
            };

            // Log event and return
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_STYLE_UPDATED, 'updateStyle');
         },

         updateContent: function(content, reposition)
         {
            var parsedContent, images, loadedImages;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateContent');

            // Make sure content is defined before update
            else if(!content)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.NO_CONTENT_PROVIDED, 'updateContent');

            // Call API method and set new content if a string is returned
            parsedContent = self.beforeContentUpdate.call(self, content);
            if(typeof parsedContent == 'string') content = parsedContent;
            else if(parsedContent === false) return;

            // Set position and zoom to defaults to prevent IE hasLayout bug
            if($.browser.msie) self.elements.contentWrapper.children().css({ zoom: 'normal' });

            // Append new content if its a DOM array and show it if hidden
            if(content.jquery && content.length > 0)
               content.clone(true).appendTo(self.elements.content).show();

            // Content is a regular string, insert the new content
            else self.elements.content.html(content);

            // Check if images need to be loaded before position is updated to prevent mis-positioning
            images = self.elements.content.find('img[complete=false]');
            if(images.length > 0)
            {
               loadedImages = 0;
               images.each(function(i)
               {
                  $('<img src="'+ $(this).attr('src') +'" />')
                     .load(function(){ if(++loadedImages == images.length) afterLoad(); });
               });
            }
            else afterLoad();

            function afterLoad()
            {
               // Update the tooltip width
               self.updateWidth();

               // If repositioning is enabled, update positions
               if(reposition !== false)
               {
                  // Update position if tooltip isn't static
                  if(self.options.position.type !== 'static')
                     self.updatePosition(self.elements.tooltip.is(':visible'), true);

                  // Reposition the tip if enabled
                  if(self.options.style.tip.corner !== false)
                     positionTip.call(self);
               };
            };

            // Call API method and log event
            self.onContentUpdate.call(self);
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_CONTENT_UPDATED, 'loadContent');
         },

         loadContent: function(url, data, method)
         {
            var returned;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'loadContent');

            // Call API method and if return value is false, halt
            returned = self.beforeContentLoad.call(self);
            if(returned === false) return self;

            // Load content using specified request type
            if(method == 'post')
               $.post(url, data, setupContent);
            else
               $.get(url, data, setupContent);

            function setupContent(content)
            {
               // Call API method and log event
               self.onContentLoad.call(self);
               $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_CONTENT_LOADED, 'loadContent');

               // Update the content
               self.updateContent(content);
            };

            return self;
         },

         updateTitle: function(content)
         {
            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateTitle');

            // Make sure content is defined before update
            else if(!content)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.NO_CONTENT_PROVIDED, 'updateTitle');

            // Call API method and if return value is false, halt
            returned = self.beforeTitleUpdate.call(self);
            if(returned === false) return self;

            // Set the new content and reappend the button if enabled
            if(self.elements.button) self.elements.button = self.elements.button.clone(true);
/*
HACK
			self.elements.title.html(content)
            if(self.elements.button) self.elements.title.prepend(self.elements.button);
*/

            // Call API method and log event
            self.onTitleUpdate.call(self);
            return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_TITLE_UPDATED, 'updateTitle');
         },

         focus: function(event)
         {
            var curIndex, newIndex, elemIndex, returned;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'focus');

            else if(self.options.position.type == 'static')
               return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.CANNOT_FOCUS_STATIC, 'focus');

            // Set z-index variables
            curIndex = parseInt( self.elements.tooltip.css('z-index') );
            newIndex = 6000 + $('div.qtip[qtip]').length - 1;

            // Only update the z-index if it has changed and tooltip is not already focused
            if(!self.status.focused && curIndex !== newIndex)
            {
               // Call API method and if return value is false, halt
               returned = self.beforeFocus.call(self, event);
               if(returned === false) return self;

               // Loop through all other tooltips
               $('div.qtip[qtip]').not(self.elements.tooltip).each(function()
               {
                  if($(this).qtip('api').status.rendered === true)
                  {
                     elemIndex = parseInt($(this).css('z-index'));

                     // Reduce all other tooltip z-index by 1
                     if(typeof elemIndex == 'number' && elemIndex > -1)
                        $(this).css({ zIndex: parseInt( $(this).css('z-index') ) - 1 });

                     // Set focused status to false
                     $(this).qtip('api').status.focused = false;
                  }
               })

               // Set the new z-index and set focus status to true
               self.elements.tooltip.css({ zIndex: newIndex });
               self.status.focused = true;

               // Call API method and log event
               self.onFocus.call(self, event);
               $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_FOCUSED, 'focus');
            };

            return self;
         },

         disable: function(state)
         {
            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'disable');

            if(state)
            {
               // Tooltip is not already disabled, proceed
               if(!self.status.disabled)
               {
                  // Set the disabled flag and log event
                  self.status.disabled = true;
                  $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_DISABLED, 'disable');
               }

               // Tooltip is already disabled, inform user via log
               else  $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.TOOLTIP_ALREADY_DISABLED, 'disable');
            }
            else
            {
               // Tooltip is not already enabled, proceed
               if(self.status.disabled)
               {
                  // Reassign events, set disable status and log
                  self.status.disabled = false;
                  $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_ENABLED, 'disable');
               }

               // Tooltip is already enabled, inform the user via log
               else $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.TOOLTIP_ALREADY_ENABLED, 'disable');
            };

            return self;
         },

         destroy: function()
         {
            var i, returned, interfaces;

            // Call API method and if return value is false, halt
            returned = self.beforeDestroy.call(self);
            if(returned === false) return self;

            // Check if tooltip is rendered
            if(self.status.rendered)
            {
               // Remove event handlers and remove element
               self.options.show.when.target.unbind('mousemove.qtip', self.updatePosition);
               self.options.show.when.target.unbind('mouseout.qtip', self.hide);
               self.options.show.when.target.unbind(self.options.show.when.event + '.qtip');
               self.options.hide.when.target.unbind(self.options.hide.when.event + '.qtip');
               self.elements.tooltip.unbind(self.options.hide.when.event + '.qtip');
               self.elements.tooltip.unbind('mouseover.qtip', self.focus);
               self.elements.tooltip.remove();
            }

            // Tooltip isn't yet rendered, remove render event
            else self.options.show.when.target.unbind(self.options.show.when.event+'.qtip-create');

            // Check to make sure qTip data is present on target element
            if(typeof self.elements.target.data('qtip') == 'object')
            {
               // Remove API references from interfaces object
               interfaces = self.elements.target.data('qtip').interfaces;
               if(typeof interfaces == 'object' && interfaces.length > 0)
               {
                  // Remove API from interfaces array
                  for(i = 0; i < interfaces.length - 1; i++)
                     if(interfaces[i].id == self.id) interfaces.splice(i, 1)
               }
            }
            delete $.fn.qtip.interfaces[self.id];

            // Set qTip current id to previous tooltips API if available
            if(typeof interfaces == 'object' && interfaces.length > 0)
               self.elements.target.data('qtip').current = interfaces.length -1;
            else
               self.elements.target.removeData('qtip');

            // Call API method and log destroy
            self.onDestroy.call(self);
            $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_DESTROYED, 'destroy');

            return self.elements.target
         },

         getPosition: function()
         {
            var show, offset;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'getPosition');

            show = (self.elements.tooltip.css('display') !== 'none') ? false : true;

            // Show and hide tooltip to make sure coordinates are returned
            if(show) self.elements.tooltip.css({ visiblity: 'hidden' }).show();
            offset = self.elements.tooltip.offset();
            if(show) self.elements.tooltip.css({ visiblity: 'visible' }).hide();

            return offset;
         },

         getDimensions: function()
         {
            var show, dimensions;

            // Make sure tooltip is rendered and if not, return
            if(!self.status.rendered)
               return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'getDimensions');

            show = (!self.elements.tooltip.is(':visible')) ? true : false;

            // Show and hide tooltip to make sure dimensions are returned
            if(show) self.elements.tooltip.css({ visiblity: 'hidden' }).show();
            dimensions = {
               height: self.elements.tooltip.outerHeight(),
               width: self.elements.tooltip.outerWidth()
            };
            if(show) self.elements.tooltip.css({ visiblity: 'visible' }).hide();

            return dimensions;
         }
      });
   };

   // Define priamry construct function
   function construct()
   {
      var self, adjust, content, url, data, method, tempLength;
      self = this;

      // Call API method
      self.beforeRender.call(self);

      // Set rendered status to true
      self.status.rendered = true;

      // Create initial tooltip elements
      self.elements.tooltip =  '<div qtip="'+self.id+'" ' +
         'class="qtip '+(self.options.style.classes.tooltip || self.options.style)+'"' +
         'style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;' +
         'position:'+self.options.position.type+';">' +
         '  <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;">' +
         '    <div class="qtip-contentWrapper" style="overflow:hidden;">' +
         '       <div class="qtip-content '+self.options.style.classes.content+'"></div>' +
         '</div></div></div>';

      // Append to container element
      self.elements.tooltip = $(self.elements.tooltip);
      self.elements.tooltip.appendTo(self.options.position.container)

      // Setup tooltip qTip data
      self.elements.tooltip.data('qtip', { current: 0, interfaces: [self] });

      // Setup element references
      self.elements.wrapper = self.elements.tooltip.children('div:first');
      self.elements.contentWrapper = self.elements.wrapper.children('div:first').css({ background: self.options.style.background });
      self.elements.content = self.elements.contentWrapper.children('div:first').css( jQueryStyle(self.options.style) );

      // Apply IE hasLayout fix to wrapper and content elements
      if($.browser.msie) self.elements.wrapper.add(self.elements.content).css({ zoom: 1 });

      // Setup tooltip attributes
      if(self.options.hide.when.event == 'unfocus') self.elements.tooltip.attr('unfocus', true);

      // If an explicit width is set, updateWidth prior to setting content to prevent dirty rendering
      if(typeof self.options.style.width.value == 'number') self.updateWidth();

      // Create borders and tips if supported by the browser
      if($('<canvas>').get(0).getContext || $.browser.msie)
      {
         // Create border
         if(self.options.style.border.radius > 0)
            createBorder.call(self);
         else
            self.elements.contentWrapper.css({ border: self.options.style.border.width+'px solid '+self.options.style.border.color  });

         // Create tip if enabled
         if(self.options.style.tip.corner !== false)
            createTip.call(self);
      }

      // Neither canvas or VML is supported, tips and borders cannot be drawn!
      else
      {
         // Set defined border width
         self.elements.contentWrapper.css({ border: self.options.style.border.width+'px solid '+self.options.style.border.color  });

         // Reset border radius and tip
         self.options.style.border.radius = 0;
         self.options.style.tip.corner = false;

         // Inform via log
         $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.CANVAS_VML_NOT_SUPPORTED, 'render');
      };

      // Use the provided content string or DOM array
      if((typeof self.options.content.text == 'string' && self.options.content.text.length > 0)
      || (self.options.content.text.jquery && self.options.content.text.length > 0))
         content = self.options.content.text;

      // Use title string for content if present
      else if(typeof self.elements.target.attr('title') == 'string' && self.elements.target.attr('title').length > 0)
      {
         content = self.elements.target.attr('title').replace("\\n", '<br />');
         self.elements.target.attr('title', ''); // Remove title attribute to prevent default tooltip showing
      }

      // No title is present, use alt attribute instead
      else if(typeof self.elements.target.attr('alt') == 'string' && self.elements.target.attr('alt').length > 0)
      {
         content = self.elements.target.attr('alt').replace("\\n", '<br />');
         self.elements.target.attr('alt', ''); // Remove alt attribute to prevent default tooltip showing
      }

      // No valid content was provided, inform via log
      else
      {
         content = ' ';
         $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.NO_VALID_CONTENT, 'render');
      };

      // Set the tooltips content and create title if enabled
      if(self.options.content.title.text !== false) createTitle.call(self);
      self.updateContent(content);

      // Assign events and toggle tooltip with focus
      assignEvents.call(self);
      if(self.options.show.ready === true) self.show();

      // Retrieve ajax content if provided
      if(self.options.content.url !== false)
      {
         url = self.options.content.url;
         data = self.options.content.data;
         method = self.options.content.method || 'get';
         self.loadContent(url, data, method);
      };

      // Call API method and log event
      self.onRender.call(self);
      $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_RENDERED, 'render');
   };

   // Create borders using canvas and VML
   function createBorder()
   {
      var self, i, width, radius, color, coordinates, containers, size, betweenWidth, betweenCorners, borderTop, borderBottom, borderCoord, sideWidth, vertWidth;
      self = this;

      // Destroy previous border elements, if present
      self.elements.wrapper.find('.qtip-borderBottom, .qtip-borderTop').remove();

      // Setup local variables
      width = self.options.style.border.width;
      radius = self.options.style.border.radius;
      color = self.options.style.border.color || self.options.style.tip.color;

      // Calculate border coordinates
      coordinates = calculateBorders(radius);

      // Create containers for the border shapes
      containers = {};
      for(i in coordinates)
      {
         // Create shape container
         containers[i] = '<div rel="'+i+'" style="'+((i.search(/Left/) !== -1) ? 'left' : 'right') + ':0; ' +
            'position:absolute; height:'+radius+'px; width:'+radius+'px; overflow:hidden; line-height:0.1px; font-size:1px">';

         // Canvas is supported
         if($('<canvas>').get(0).getContext)
            containers[i] += '<canvas height="'+radius+'" width="'+radius+'" style="vertical-align: top"></canvas>';

         // No canvas, but if it's IE use VML
         else if($.browser.msie)
         {
            size = radius * 2 + 3;
            containers[i] += '<v:arc stroked="false" fillcolor="'+color+'" startangle="'+coordinates[i][0]+'" endangle="'+coordinates[i][1]+'" ' +
               'style="width:'+size+'px; height:'+size+'px; margin-top:'+((i.search(/bottom/) !== -1) ? -2 : -1)+'px; ' +
               'margin-left:'+((i.search(/Right/) !== -1) ? coordinates[i][2] - 3.5 : -1)+'px; ' +
               'vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>';

         };

         containers[i] += '</div>';
      };

      // Create between corners elements
      betweenWidth = self.getDimensions().width - (Math.max(width, radius) * 2);
      betweenCorners = '<div class="qtip-betweenCorners" style="height:'+radius+'px; width:'+betweenWidth+'px; ' +
         'overflow:hidden; background-color:'+color+'; line-height:0.1px; font-size:1px;">';

      // Create top border container
      borderTop = '<div class="qtip-borderTop" dir="ltr" style="height:'+radius+'px; ' +
         'margin-left:'+radius+'px; line-height:0.1px; font-size:1px; padding:0;">' +
         containers['topLeft'] + containers['topRight'] + betweenCorners;
      self.elements.wrapper.prepend(borderTop);

      // Create bottom border container
      borderBottom = '<div class="qtip-borderBottom" dir="ltr" style="height:'+radius+'px; ' +
         'margin-left:'+radius+'px; line-height:0.1px; font-size:1px; padding:0;">' +
         containers['bottomLeft'] + containers['bottomRight'] + betweenCorners;
      self.elements.wrapper.append(borderBottom);

      // Draw the borders if canvas were used (Delayed til after DOM creation)
      if($('<canvas>').get(0).getContext)
      {
         self.elements.wrapper.find('canvas').each(function()
         {
            borderCoord = coordinates[ $(this).parent('[rel]:first').attr('rel') ];
            drawBorder.call(self, $(this), borderCoord, radius, color);
         })
      }

      // Create a phantom VML element (IE won't show the last created VML element otherwise)
      else if($.browser.msie) self.elements.tooltip.append('<v:image style="behavior:url(#default#VML);"></v:image>');

      // Setup contentWrapper border
      sideWidth = Math.max(radius, (radius + (width - radius)) )
      vertWidth = Math.max(width - radius, 0);
      self.elements.contentWrapper.css({
         border: '0px solid ' + color,
         borderWidth: vertWidth + 'px ' + sideWidth + 'px'
      })
   };

   // Border canvas draw method
   function drawBorder(canvas, coordinates, radius, color)
   {
      // Create corner
      var context = canvas.get(0).getContext('2d');
      context.fillStyle = color;
      context.beginPath();
      context.arc(coordinates[0], coordinates[1], radius, 0, Math.PI * 2, false);
      context.fill();
   };

   // Create tip using canvas and VML
   function createTip(corner)
   {
      var self, color, coordinates, coordsize, path;
      self = this;

      // Destroy previous tip, if there is one
      if(self.elements.tip !== null) self.elements.tip.remove();

      // Setup color and corner values
      color = self.options.style.tip.color || self.options.style.border.color;
      if(self.options.style.tip.corner === false) return;
      else if(!corner) corner = self.options.style.tip.corner;

      // Calculate tip coordinates
      coordinates = calculateTip(corner, self.options.style.tip.size.width, self.options.style.tip.size.height);

      // Create tip element
      self.elements.tip =  '<div class="'+self.options.style.classes.tip+'" dir="ltr" rel="'+corner+'" style="position:absolute; ' +
         'height:'+self.options.style.tip.size.height+'px; width:'+self.options.style.tip.size.width+'px; ' +
         'margin:0 auto; line-height:0.1px; font-size:1px;">';

      // Use canvas element if supported
      if($('<canvas>').get(0).getContext)
          self.elements.tip += '<canvas height="'+self.options.style.tip.size.height+'" width="'+self.options.style.tip.size.width+'"></canvas>';

      // Canvas not supported - Use VML (IE)
      else if($.browser.msie)
      {
         // Create coordize and tip path using tip coordinates
         coordsize = self.options.style.tip.size.width + ',' + self.options.style.tip.size.height;
         path = 'm' + coordinates[0][0] + ',' + coordinates[0][1];
         path += ' l' + coordinates[1][0] + ',' + coordinates[1][1];
         path += ' ' + coordinates[2][0] + ',' + coordinates[2][1];
         path += ' xe';

         // Create VML element
         self.elements.tip += '<v:shape fillcolor="'+color+'" stroked="false" filled="true" path="'+path+'" coordsize="'+coordsize+'" ' +
            'style="width:'+self.options.style.tip.size.width+'px; height:'+self.options.style.tip.size.height+'px; ' +
            'line-height:0.1px; display:inline-block; behavior:url(#default#VML); ' +
            'vertical-align:'+((corner.search(/top/) !== -1) ? 'bottom' : 'top')+'"></v:shape>';

         // Create a phantom VML element (IE won't show the last created VML element otherwise)
         self.elements.tip += '<v:image style="behavior:url(#default#VML);"></v:image>';

         // Prevent tooltip appearing above the content (IE z-index bug)
         self.elements.contentWrapper.css('position', 'relative');
      };

      // Attach new tip to tooltip element
      self.elements.tooltip.prepend(self.elements.tip + '</div>');

      // Create element reference and draw the canvas tip (Delayed til after DOM creation)
      self.elements.tip = self.elements.tooltip.find('.'+self.options.style.classes.tip).eq(0);
      if($('<canvas>').get(0).getContext)
         drawTip.call(self, self.elements.tip.find('canvas:first'), coordinates, color);

      // Fix IE small tip bug
      if(corner.search(/top/) !== -1 && $.browser.msie && parseInt($.browser.version.charAt(0)) === 6)
         self.elements.tip.css({ marginTop: -4 });

      // Set the tip position
      positionTip.call(self, corner);
   };

   // Canvas tip drawing method
   function drawTip(canvas, coordinates, color)
   {
      // Setup properties
      var context = canvas.get(0).getContext('2d');
      context.fillStyle = color;

      // Create tip
      context.beginPath();
      context.moveTo(coordinates[0][0], coordinates[0][1]);
      context.lineTo(coordinates[1][0], coordinates[1][1]);
      context.lineTo(coordinates[2][0], coordinates[2][1]);
      context.fill();
   };

   function positionTip(corner)
   {
      var self, ieAdjust, paddingCorner, paddingSize, newMargin;
      self = this;

      // Return if tips are disabled or tip is not yet rendered
      if(self.options.style.tip.corner === false || !self.elements.tip) return;
      if(!corner) corner = self.elements.tip.attr('rel');

      // Setup adjustment variables
      ieAdjust = positionAdjust = ($.browser.msie) ? 1 : 0;

      // Set initial position
      self.elements.tip.css(corner.match(/left|right|top|bottom/)[0], 0);

      // Set position of tip to correct side
      if(corner.search(/top|bottom/) !== -1)
      {
         // Adjustments for IE6 - 0.5px border gap bug
         if($.browser.msie)
         {
            if(parseInt($.browser.version.charAt(0)) === 6)
               positionAdjust = (corner.search(/top/) !== -1) ? -3 : 1;
            else
               positionAdjust = (corner.search(/top/) !== -1) ? 1 : 2;
         };

         if(corner.search(/Middle/) !== -1)
            self.elements.tip.css({ left: '50%', marginLeft: -(self.options.style.tip.size.width / 2) });

         else if(corner.search(/Left/) !== -1)
            self.elements.tip.css({ left: self.options.style.border.radius - ieAdjust });

         else if(corner.search(/Right/) !== -1)
            self.elements.tip.css({ right: self.options.style.border.radius + ieAdjust });

         if(corner.search(/top/) !== -1)
            self.elements.tip.css({ top: -positionAdjust });
         else
            self.elements.tip.css({ bottom: positionAdjust });

      }
      else if(corner.search(/left|right/) !== -1)
      {
         // Adjustments for IE6 - 0.5px border gap bug
         if($.browser.msie)
            positionAdjust = (parseInt($.browser.version.charAt(0)) === 6) ? 1 : ((corner.search(/left/) !== -1) ? 1 : 2);

         if(corner.search(/Middle/) !== -1)
            self.elements.tip.css({ top: '50%', marginTop: -(self.options.style.tip.size.height / 2) });

         else if(corner.search(/Top/) !== -1)
            self.elements.tip.css({ top: self.options.style.border.radius - ieAdjust });

         else if(corner.search(/Bottom/) !== -1)
            self.elements.tip.css({ bottom: self.options.style.border.radius + ieAdjust });

         if(corner.search(/left/) !== -1)
            self.elements.tip.css({ left: -positionAdjust });
         else
            self.elements.tip.css({ right: positionAdjust });
      };

      // Adjust tooltip padding to compensate for tip
      paddingCorner = 'padding-' + corner.match(/left|right|top|bottom/)[0];
      paddingSize = self.options.style.tip.size[ (paddingCorner.search(/left|right/) !== -1) ? 'width' : 'height' ];
      self.elements.tooltip.css('padding', 0);
      self.elements.tooltip.css(paddingCorner, paddingSize);

      // Match content margin to prevent gap bug in IE6 ONLY
      if($.browser.msie && parseInt($.browser.version.charAt(0)) == 6)
      {
         newMargin = parseInt(self.elements.tip.css('margin-top')) || 0;
         newMargin += parseInt(self.elements.content.css('margin-top')) || 0;

         self.elements.tip.css({ marginTop: newMargin });
      };
   };

   // Create title bar for content
   function createTitle()
   {
      var self = this;

      // Destroy previous title element, if present
/*
HACK
		if(self.elements.title !== null) self.elements.title.remove();
*/
	  
      // Create title element
/*
HACK
		self.elements.title = $('<div class="'+self.options.style.classes.title+'">')
         .css( jQueryStyle(self.options.style.title, true) )
         .css({ zoom: ($.browser.msie) ? 1 : 0 })
         .prependTo(self.elements.contentWrapper);
*/
	  
      // Update title with contents if enabled
      if(self.options.content.title.text) self.updateTitle.call(self, self.options.content.title.text);

      // Create title close buttons if enabled
      if(self.options.content.title.button !== false
      && typeof self.options.content.title.button == 'string')
      {
         self.elements.button = $('<a class="'+self.options.style.classes.button+'" style="float:right; position: relative"></a>')
            .css( jQueryStyle(self.options.style.button, true) )
            .html(self.options.content.title.button)
/*
HACK
			.prependTo(self.elements.title)
*/
			.prependTo(self.elements.contentWrapper)
			.click(function(event){ if(!self.status.disabled) self.hide(event) });
      };
   };

   // Assign hide and show events
   function assignEvents()
   {
      var self, showTarget, hideTarget, inactiveEvents;
      self = this;

      // Setup event target variables
      showTarget = self.options.show.when.target;
      hideTarget = self.options.hide.when.target;

      // Add tooltip as a hideTarget is its fixed
      if(self.options.hide.fixed) hideTarget = hideTarget.add(self.elements.tooltip);

      // Check if the hide event is special 'inactive' type
      if(self.options.hide.when.event == 'inactive')
      {
         // Define events which reset the 'inactive' event handler
         inactiveEvents = ['click', 'dblclick', 'mousedown', 'mouseup', 'mousemove',
         'mouseout', 'mouseenter', 'mouseleave', 'mouseover' ];

         // Define 'inactive' event timer method
         function inactiveMethod(event)
         {
            if(self.status.disabled === true) return;

            //Clear and reset the timer
            clearTimeout(self.timers.inactive);
            self.timers.inactive = setTimeout(function()
            {
               // Unassign 'inactive' events
               $(inactiveEvents).each(function()
               {
                  hideTarget.unbind(this+'.qtip-inactive');
                  self.elements.content.unbind(this+'.qtip-inactive');
               });

               // Hide the tooltip
               self.hide(event);
            }
            , self.options.hide.delay);
         };
      }

      // Check if the tooltip is 'fixed'
      else if(self.options.hide.fixed === true)
      {
         self.elements.tooltip.bind('mouseover.qtip', function()
         {
            if(self.status.disabled === true) return;

            // Reset the hide timer
            clearTimeout(self.timers.hide);
         });
      };

      // Define show event method
      function showMethod(event)
      {
         if(self.status.disabled === true) return;

         // If set, hide tooltip when inactive for delay period
         if(self.options.hide.when.event == 'inactive')
         {
            // Assign each reset event
            $(inactiveEvents).each(function()
            {
               hideTarget.bind(this+'.qtip-inactive', inactiveMethod);
               self.elements.content.bind(this+'.qtip-inactive', inactiveMethod);
            });

            // Start the inactive timer
            inactiveMethod();
         };

         // Clear hide timers
         clearTimeout(self.timers.show);
         clearTimeout(self.timers.hide);

         // Start show timer
         self.timers.show = setTimeout(function(){ self.show(event); }, self.options.show.delay);
      };

      // Define hide event method
      function hideMethod(event)
      {
         if(self.status.disabled === true) return;

         // Prevent hiding if tooltip is fixed and event target is the tooltip
         if(self.options.hide.fixed === true
         && self.options.hide.when.event.search(/mouse(out|leave)/i) !== -1
         && $(event.relatedTarget).parents('div.qtip[qtip]').length > 0)
         {
            // Prevent default and popagation
            event.stopPropagation();
            event.preventDefault();

            // Reset the hide timer
            clearTimeout(self.timers.hide);
            return false;
         };

         // Clear timers and stop animation queue
         clearTimeout(self.timers.show);
         clearTimeout(self.timers.hide);
         self.elements.tooltip.stop(true, true);

         // If tooltip has displayed, start hide timer
         self.timers.hide = setTimeout(function(){ self.hide(event); }, self.options.hide.delay);
      };

      // Both events and targets are identical, apply events using a toggle
      if((self.options.show.when.target.add(self.options.hide.when.target).length === 1
      && self.options.show.when.event == self.options.hide.when.event
      && self.options.hide.when.event !== 'inactive')
      || self.options.hide.when.event == 'unfocus')
      {
         self.cache.toggle = 0;
         // Use a toggle to prevent hide/show conflicts
         showTarget.bind(self.options.show.when.event + '.qtip', function(event)
         {
            if(self.cache.toggle == 0) showMethod(event);
            else hideMethod(event);
         });
      }

      // Events are not identical, bind normally
      else
      {
         showTarget.bind(self.options.show.when.event + '.qtip', showMethod);

         // If the hide event is not 'inactive', bind the hide method
         if(self.options.hide.when.event !== 'inactive')
            hideTarget.bind(self.options.hide.when.event + '.qtip', hideMethod);
      };

      // Focus the tooltip on mouseover
      if(self.options.position.type.search(/(fixed|absolute)/) !== -1)
         self.elements.tooltip.bind('mouseover.qtip', self.focus);

      // If mouse is the target, update tooltip position on mousemove
      if(self.options.position.target === 'mouse' && self.options.position.type !== 'static')
      {
         showTarget.bind('mousemove.qtip', function(event)
         {
            // Set the new mouse positions if adjustment is enabled
            self.cache.mouse = { x: event.pageX, y: event.pageY };

            // Update the tooltip position only if the tooltip is visible and adjustment is enabled
            if(self.status.disabled === false
            && self.options.position.adjust.mouse === true
            && self.options.position.type !== 'static'
            && self.elements.tooltip.css('display') !== 'none')
               self.updatePosition(event);
         });
      };
   };

   // Screen position adjustment
   function screenAdjust(position, target, tooltip)
   {
      var self, adjustedPosition, adjust, newCorner, overflow, corner;
      self = this;

      // Setup corner and adjustment variable
      if(tooltip.corner == 'center') return target.position // TODO: 'center' corner adjustment
      adjustedPosition = $.extend({}, position);
      newCorner = { x: false, y: false };

      // Define overflow properties
      overflow = {
         left: (adjustedPosition.left < $.fn.qtip.cache.screen.scroll.left),
         right: (adjustedPosition.left + tooltip.dimensions.width + 2 >= $.fn.qtip.cache.screen.width + $.fn.qtip.cache.screen.scroll.left),
         top: (adjustedPosition.top < $.fn.qtip.cache.screen.scroll.top),
         bottom: (adjustedPosition.top + tooltip.dimensions.height + 2 >= $.fn.qtip.cache.screen.height + $.fn.qtip.cache.screen.scroll.top)
      };

      // Determine new positioning properties
      adjust = {
         left: (overflow.left && (tooltip.corner.search(/right/i) != -1 || (tooltip.corner.search(/right/i) == -1 && !overflow.right))),
         right: (overflow.right && (tooltip.corner.search(/left/i) != -1 || (tooltip.corner.search(/left/i) == -1 && !overflow.left))),
         top: (overflow.top && tooltip.corner.search(/top/i) == -1),
         bottom: (overflow.bottom && tooltip.corner.search(/bottom/i) == -1)
      };

      // Tooltip overflows off the left side of the screen
      if(adjust.left)
      {
         if(self.options.position.target !== 'mouse')
            adjustedPosition.left = target.position.left + target.dimensions.width;
         else
            adjustedPosition.left = self.cache.mouse.x

         newCorner.x = 'Left';
      }

      // Tooltip overflows off the right side of the screen
      else if(adjust.right)
      {
         if(self.options.position.target !== 'mouse')
            adjustedPosition.left = target.position.left - tooltip.dimensions.width;
         else
            adjustedPosition.left = self.cache.mouse.x - tooltip.dimensions.width;

         newCorner.x = 'Right';
      };

      // Tooltip overflows off the top of the screen
      if(adjust.top)
      {
         if(self.options.position.target !== 'mouse')
            adjustedPosition.top = target.position.top + target.dimensions.height;
         else
            adjustedPosition.top = self.cache.mouse.y

         newCorner.y = 'top';
      }

      // Tooltip overflows off the bottom of the screen
      else if(adjust.bottom)
      {
         if(self.options.position.target !== 'mouse')
            adjustedPosition.top = target.position.top - tooltip.dimensions.height;
         else
            adjustedPosition.top = self.cache.mouse.y - tooltip.dimensions.height;

         newCorner.y = 'bottom';
      };

      // Don't adjust if resulting position is negative
      if(adjustedPosition.left < 0)
      {
         adjustedPosition.left = position.left;
         newCorner.x = false;
      };
      if(adjustedPosition.top < 0)
      {
         adjustedPosition.top = position.top;
         newCorner.y = false;
      };

      // Change tip corner if positioning has changed and tips are enabled
      if(self.options.style.tip.corner !== false)
      {
         // Determine new corner properties
         adjustedPosition.corner = new String(tooltip.corner);
         if(newCorner.x !== false) adjustedPosition.corner = adjustedPosition.corner.replace(/Left|Right|Middle/, newCorner.x);
         if(newCorner.y !== false) adjustedPosition.corner = adjustedPosition.corner.replace(/top|bottom/, newCorner.y);

         // Adjust tip if position has changed and tips are enabled
         if(adjustedPosition.corner !== self.elements.tip.attr('rel'))
            createTip.call(self, adjustedPosition.corner);
      };

      return adjustedPosition;
   };

   // Build a jQuery style object from supplied style object
   function jQueryStyle(style, sub)
   {
      var styleObj, i;

      styleObj = $.extend(true, {}, style);
      for(i in styleObj)
      {
         if(sub === true && i.search(/(tip|classes)/i) !== -1)
            delete styleObj[i];
         else if(!sub && i.search(/(width|border|tip|title|classes|user)/i) !== -1)
            delete styleObj[i];
      };

      return styleObj;
   };

   // Sanitize styles
   function sanitizeStyle(style)
   {
      if(typeof style.tip !== 'object') style.tip = { corner: style.tip };
      if(typeof style.tip.size !== 'object') style.tip.size = { width: style.tip.size, height: style.tip.size };
      if(typeof style.border !== 'object') style.border = { width: style.border };
      if(typeof style.width !== 'object') style.width = { value: style.width };
      if(typeof style.width.max == 'string') style.width.max = parseInt(style.width.max.replace(/([0-9]+)/i, "$1"));
      if(typeof style.width.min == 'string') style.width.min = parseInt(style.width.min.replace(/([0-9]+)/i, "$1"));

      // Convert deprecated x and y tip values to width/height
      if(typeof style.tip.size.x == 'number')
      {
         style.tip.size.width = style.tip.size.x;
         delete style.tip.size.x;
      };
      if(typeof style.tip.size.y == 'number')
      {
         style.tip.size.height = style.tip.size.y;
         delete style.tip.size.y;
      };

      return style;
   };

   // Build styles recursively with inheritance
   function buildStyle()
   {
      var self, i, styleArray, styleExtend, finalStyle, ieAdjust;
      self = this;

      // Build style options from supplied arguments
      styleArray = [true, {}];
      for(i = 0; i < arguments.length; i++)
         styleArray.push(arguments[i]);
      styleExtend = [ $.extend.apply($, styleArray) ];

      // Loop through each named style inheritance
      while(typeof styleExtend[0].name == 'string')
      {
         // Sanitize style data and append to extend array
         styleExtend.unshift( sanitizeStyle($.fn.qtip.styles[ styleExtend[0].name ]) );
      };

      // Make sure resulting tooltip className represents final style
      styleExtend.unshift(true, {classes:{ tooltip: 'qtip-' + (arguments[0].name || 'defaults') }}, $.fn.qtip.styles.defaults);

      // Extend into a single style object
      finalStyle = $.extend.apply($, styleExtend);

      // Adjust tip size if needed (IE 1px adjustment bug fix)
      ieAdjust = ($.browser.msie) ? 1 : 0;
      finalStyle.tip.size.width += ieAdjust;
      finalStyle.tip.size.height += ieAdjust;

      // Force even numbers for pixel precision
      if(finalStyle.tip.size.width % 2 > 0) finalStyle.tip.size.width += 1;
      if(finalStyle.tip.size.height % 2 > 0) finalStyle.tip.size.height += 1;

      // Sanitize final styles tip corner value
      if(finalStyle.tip.corner === true)
         finalStyle.tip.corner = (self.options.position.corner.tooltip === 'center') ? false : self.options.position.corner.tooltip;

      return finalStyle;
   };

   // Tip coordinates calculator
   function calculateTip(corner, width, height)
   {
      // Define tip coordinates in terms of height and width values
      var tips = {
         bottomRight:   [[0,0],              [width,height],      [width,0]],
         bottomLeft:    [[0,0],              [width,0],           [0,height]],
         topRight:      [[0,height],         [width,0],           [width,height]],
         topLeft:       [[0,0],              [0,height],          [width,height]],
         topMiddle:     [[0,height],         [width / 2,0],       [width,height]],
         bottomMiddle:  [[0,0],              [width,0],           [width / 2,height]],
         rightMiddle:   [[0,0],              [width,height / 2],  [0,height]],
         leftMiddle:    [[width,0],          [width,height],      [0,height / 2]]
      };
      tips.leftTop = tips.bottomRight;
      tips.rightTop = tips.bottomLeft;
      tips.leftBottom = tips.topRight;
      tips.rightBottom = tips.topLeft;

      return tips[corner];
   };

   // Border coordinates calculator
   function calculateBorders(radius)
   {
      var borders;

      // Use canvas element if supported
      if($('<canvas>').get(0).getContext)
      {
         borders = {
            topLeft: [radius,radius], topRight: [0,radius],
            bottomLeft: [radius,0], bottomRight: [0,0]
         };
      }

      // Canvas not supported - Use VML (IE)
      else if($.browser.msie)
      {
         borders = {
            topLeft: [-90,90,0], topRight: [-90,90,-radius],
            bottomLeft: [90,270,0], bottomRight: [90, 270,-radius]
         };
      };

      return borders;
   };

   // BGIFRAME JQUERY PLUGIN ADAPTION
   //   Special thanks to Brandon Aaron for this plugin
   //   http://plugins.jquery.com/project/bgiframe
   function bgiframe()
   {
      var self, html, dimensions;
      self = this;
      dimensions = self.getDimensions();

      // Setup iframe HTML string
      html = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" '+
         'style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; ' +
         'height:'+dimensions.height+'px; width:'+dimensions.width+'px" />';

      // Append the new HTML and setup element reference
      self.elements.bgiframe = self.elements.wrapper.prepend(html).children('.qtip-bgiframe:first');
   };

   // Assign cache and event initialisation on document load
   $(document).ready(function()
   {
      // Setup library cache with window scroll and dimensions of document
      $.fn.qtip.cache = {
         screen: {
            scroll: { left: $(window).scrollLeft(), top: $(window).scrollTop() },
            width: $(window).width(),
            height: $(window).height()
         }
      };

      // Adjust positions of the tooltips on window resize or scroll if enabled
      var adjustTimer;
      $(window).bind('resize scroll', function(event)
      {
         clearTimeout(adjustTimer);
         adjustTimer = setTimeout(function()
         {
            // Readjust cached screen values
            if(event.type === 'scroll')
               $.fn.qtip.cache.screen.scroll = { left: $(window).scrollLeft(), top: $(window).scrollTop() };
            else
            {
               $.fn.qtip.cache.screen.width = $(window).width();
               $.fn.qtip.cache.screen.height = $(window).height();
            };

            for(i = 0; i < $.fn.qtip.interfaces.length; i++)
            {
               // Access current elements API
               var api = $.fn.qtip.interfaces[i];

               // Update position if resize or scroll adjustments are enabled
               if(api.status.rendered === true
               && (api.options.position.type !== 'static'
               || api.options.position.adjust.scroll && event.type === 'scroll'
               || api.options.position.adjust.resize && event.type === 'resize'))
               {
                  // Queue the animation so positions are updated correctly
                  api.updatePosition(event, true);
               }
            };
         }
         , 100);
      })

      // Hide unfocus toolipts on document mousedown
      $(document).bind('mousedown.qtip', function(event)
      {
         if($(event.target).parents('div.qtip').length === 0)
         {
            $('.qtip[unfocus]').each(function()
            {
               var api = $(this).qtip("api");

               // Only hide if its visible and not the tooltips target
               if($(this).is(':visible') && !api.status.disabled
               && $(event.target).add(api.elements.target).length > 1)
                  api.hide(event);
            })
         };
      })
   });

   // Define qTip API interfaces array
   $.fn.qtip.interfaces = []

   // Define log and constant place holders
   $.fn.qtip.log = { error: function(){ return this; } };
   $.fn.qtip.constants = {};

   // Define configuration defaults
   $.fn.qtip.defaults = {
      // Content
      content: {
         prerender: false,
         text: false,
         url: false,
         data: null,
         title: {
            text: false,
            button: false
         }
      },
      // Position
      position: {
         target: false,
         corner: {
            target: 'bottomRight',
            tooltip: 'topLeft'
         },
         adjust: {
            x: 0, y: 0,
            mouse: true,
            screen: false,
            scroll: true,
            resize: true
         },
         type: 'absolute',
         container: false
      },
      // Effects
      show: {
         when: {
            target: false,
            event: 'mouseover'
         },
         effect: {
            type: 'fade',
            length: 100
         },
         delay: 140,
         solo: false,
         ready: false
      },
      hide: {
         when: {
            target: false,
            event: 'mouseout'
         },
         effect: {
            type: 'fade',
            length: 100
         },
         delay: 0,
         fixed: false
      },
      // Callbacks
      api: {
         beforeRender: function(){},
         onRender: function(){},
         beforePositionUpdate: function(){},
         onPositionUpdate: function(){},
         beforeShow: function(){},
         onShow: function(){},
         beforeHide: function(){},
         onHide: function(){},
         beforeContentUpdate: function(){},
         onContentUpdate: function(){},
         beforeContentLoad: function(){},
         onContentLoad: function(){},
         beforeTitleUpdate: function(){},
         onTitleUpdate: function(){},
         beforeDestroy: function(){},
         onDestroy: function(){},
         beforeFocus: function(){},
         onFocus: function(){}
      }
   };

   $.fn.qtip.styles = {
      defaults: {
         background: 'white',
         color: '#111',
         overflow: 'hidden',
         textAlign: 'left',
         width: {
            min: 0,
            max: 250
         },
         padding: '5px 9px',
         border: {
            width: 1,
            radius: 0,
            color: '#d3d3d3'
         },
         tip: {
            corner: false,
            color: false,
            size: { width: 13, height: 13 },
            opacity: 1
         },
         title: {
            background: '#e1e1e1',
            fontWeight: 'bold',
            padding: '7px 12px'
         },
         button: {
            cursor: 'pointer'
         },
         classes: {
            target: '',
            tip: 'qtip-tip',
            title: 'qtip-title',
            button: 'qtip-button',
            content: 'qtip-content',
            active: 'qtip-active'
         }
      },
      cream: {
         border: {
            width: 3,
            radius: 0,
            color: '#F9E98E'
         },
         title: {
            background: '#F0DE7D',
            color: '#A27D35'
         },
         background: '#FBF7AA',
         color: '#A27D35',

         classes: { tooltip: 'qtip-cream' }
      },
      light: {
         border: {
            width: 3,
            radius: 0,
            color: '#E2E2E2'
         },
         title: {
            background: '#f1f1f1',
            color: '#454545'
         },
         background: 'white',
         color: '#454545',

         classes: { tooltip: 'qtip-light' }
      },
      dark: {
         border: {
            width: 3,
            radius: 0,
            color: '#303030'
         },
         title: {
            background: '#404040',
            color: '#f3f3f3'
         },
         background: '#505050',
         color: '#f3f3f3',

         classes: { tooltip: 'qtip-dark' }
      },
      red: {
         border: {
            width: 3,
            radius: 0,
            color: '#CE6F6F'
         },
         title: {
            background: '#f28279',
            color: '#9C2F2F'
         },
         background: '#F79992',
         color: '#9C2F2F',

         classes: { tooltip: 'qtip-red' }
      },
      green: {
         border: {
            width: 3,
            radius: 0,
            color: '#A9DB66'
         },
         title: {
            background: '#b9db8c',
            color: '#58792E'
         },
         background: '#CDE6AC',
         color: '#58792E',

         classes: { tooltip: 'qtip-green' }
      },
      blue: {
         border: {
            width: 3,
            radius: 0,
            color: '#ADD9ED'
         },
         title: {
            background: '#D0E9F5',
            color: '#5E99BD'
         },
         background: '#E5F6FE',
         color: '#4D9FBF',

         classes: { tooltip: 'qtip-blue' }
      }
   };
})(jQuery);

/**
 * jQuery custom checkboxes
 * 
 * Copyright (c) 2008 Khavilo Dmitry (http://widowmaker.kiev.ua/checkbox/)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * @version 1.3.0 Beta 1
 * @author Khavilo Dmitry
 * @mailto wm.morgun@gmail.com
**/

(function($){
	/* Little trick to remove event bubbling that causes events recursion */
	var CB = function(e)
	{
		if (!e) var e = window.event;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
	};
	
	$.fn.checkbox = function(options) {
		/* IE6 background flicker fix */
		try	{ document.execCommand('BackgroundImageCache', false, true);	} catch (e) {}
		
		/* Default settings */
		var clsExt = this.attr('id');
		var settings = {
			cls: 'jquery-checkbox',  /* checkbox  */
			clsid: clsExt,  /* checkbox  */
			empty: '/images/pixel.png'  /* checkbox  */
		};
		
		/* Processing settings */
		settings = $.extend(settings, options || {});
		
		/* Adds check/uncheck & disable/enable events */
		var addEvents = function(object)
		{
			var checked = object.checked;
			var disabled = object.disabled;
			var $object = $(object);
			
			if ( object.stateInterval )
				clearInterval(object.stateInterval);
			
			object.stateInterval = setInterval(
				function() 
				{
					if ( object.disabled != disabled )
						$object.trigger( (disabled = !!object.disabled) ? 'disable' : 'enable');
					if ( object.checked != checked )
						$object.trigger( (checked = !!object.checked) ? 'check' : 'uncheck');
				}, 
				10 /* in miliseconds. Low numbers this can decrease performance on slow computers, high will increase responce time */
			);
			return $object;
		};
		//try { console.log(this); } catch(e) {}
		
		/* Wrapping all passed elements */
		return this.each(function() 
		{
			var ch = this; /* Reference to DOM Element*/
			var $ch = addEvents(ch); /* Adds custom events and returns, jQuery enclosed object */
			
			/* Removing wrapper if already applied  */
			if (ch.wrapper) ch.wrapper.remove();
			
			/* Creating wrapper for checkbox and assigning "hover" event */
			ch.wrapper = $('<span class="' + settings.cls + ' '+ $ch.attr('id') + '"><span class="mark"><img src="' + settings.empty + '" title="'+ $ch.attr('title') + '" /></span></span>');
			ch.wrapperInner = ch.wrapper.children('span:eq(0)');
			ch.wrapper.hover(
				function(e) { ch.wrapperInner.addClass(settings.cls + '-hover');CB(e); },
				function(e) { ch.wrapperInner.removeClass(settings.cls + '-hover');CB(e); }
			);
			
			/* Wrapping checkbox */
			$ch.css({position: 'absolute', zIndex: -1, visibility: 'hidden'}).after(ch.wrapper);
			
			/* Ttying to find "our" label */
			var label = false;
			if ($ch.attr('id'))
			{
				label = $('label[for='+$ch.attr('id')+']');
				if (!label.length) label = false;
			}
			if (!label)
			{
				/* Trying to utilize "closest()" from jQuery 1.3+ */
				label = $ch.closest ? $ch.closest('label') : $ch.parents('label:eq(0)');
				if (!label.length) label = false;
			}
			/* Labe found, applying event hanlers */
			if (label)
			{
				label.hover(
					function(e) { ch.wrapper.trigger('mouseover', [e]); },
					function(e) { ch.wrapper.trigger('mouseout', [e]); }
				);
				label.click(function(e) { $ch.trigger('click',[e]); CB(e); return false;});
			}
			ch.wrapper.click(function(e) { $ch.trigger('click',[e]); CB(e); return false;});
			$ch.click(function(e) { CB(e); });
			$ch.bind('disable', function() { ch.wrapperInner.addClass(settings.cls+'-disabled');}).bind('enable', function() { ch.wrapperInner.removeClass(settings.cls+'-disabled');});
			$ch.bind('check', function() { ch.wrapper.addClass(settings.cls+'-checked' );}).bind('uncheck', function() { ch.wrapper.removeClass(settings.cls+'-checked' );});
			
			/* Disable image drag-n-drop for IE */
			$('img', ch.wrapper).bind('dragstart', function () {return false;}).bind('mousedown', function () {return false;});
			
			/* Firefox antiselection hack */
			if ( window.getSelection )
				ch.wrapper.css('MozUserSelect', 'none');
			
			/* Applying checkbox state */
			if ( ch.checked )
				ch.wrapper.addClass(settings.cls + '-checked');
			if ( ch.disabled )
				ch.wrapperInner.addClass(settings.cls + '-disabled');			
		});
	}
})(jQuery);


/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.08
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I-1]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());

/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2000 by . All rights reserved.
 * 
 * Trademark:
 * DinG is a trademark of .
 * 
 * Description:
 * Copyright (c) 2000 by . All rights reserved.
 */
Cufon.registerFont({"w":169,"face":{"font-family":"DinG","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 6 0 0 0 2 0 3","ascent":"268","descent":"-92","x-height":"2","bbox":"-12 -355 350 81.1398","underline-thickness":"18.36","underline-position":"-41.04","unicode-range":"U+0020-U+00FF"},"glyphs":{" ":{"w":88},"!":{"d":"48,-256r29,0r-4,184r-22,0xm78,-30r0,30r-31,0r0,-30r31,0","w":81},"\"":{"d":"121,-256r0,61r-29,0r0,-61r29,0xm60,-256r0,61r-28,0r0,-61r28,0","w":124},"#":{"d":"217,-179r0,23r-35,0r-8,51r32,0r0,23r-36,0r-13,82r-26,0r13,-82r-58,0r-13,82r-26,0r13,-82r-32,0r0,-23r36,0r8,-51r-33,0r0,-23r36,0r12,-78r27,0r-12,78r57,0r12,-78r27,0r-13,78r32,0xm147,-105r9,-51r-58,0r-8,51r57,0","w":212,"k":{"_":185}},"$":{"d":"115,-141v50,7,79,21,79,70v0,44,-33,71,-78,72r0,40r-22,0r0,-39v-32,-1,-58,-13,-79,-34r19,-18v18,18,38,26,62,27r0,-95v-42,-4,-73,-25,-74,-68v-1,-43,30,-69,72,-72r0,-32r22,0r0,32v26,1,48,11,67,28r-18,17v-15,-13,-31,-20,-50,-21r0,93xm96,-144r0,-90v-28,3,-47,19,-47,47v0,24,16,38,47,43xm115,-23v46,6,69,-56,37,-81v-7,-6,-20,-8,-37,-11r0,92","w":189},"%":{"d":"228,-132v43,0,49,38,49,86v0,28,-21,49,-49,49v-44,1,-48,-40,-48,-87v0,-29,19,-48,48,-48xm199,-256r22,0r-120,256r-22,0xm72,-259v43,0,49,39,49,87v0,28,-21,48,-49,48v-43,0,-49,-38,-49,-86v0,-29,20,-49,49,-49xm228,-15v33,0,28,-36,28,-68v0,-21,-9,-31,-28,-31v-33,0,-28,36,-28,67v0,21,9,32,28,32xm72,-142v33,0,28,-36,28,-68v0,-21,-9,-31,-28,-31v-33,0,-28,36,-28,68v0,21,9,31,28,31","w":273,"k":{"_":190}},"&":{"d":"168,-204v-3,33,-16,36,-48,58r66,79v9,-14,14,-34,14,-59r26,0v0,34,-9,61,-24,79r40,47r-35,0r-23,-28v-47,51,-159,37,-156,-44v2,-40,24,-56,55,-77v-46,-43,-32,-106,29,-109v30,-2,59,24,56,54xm105,-163v22,-16,37,-18,37,-41v0,-17,-13,-31,-30,-31v-40,0,-37,42,-7,72xm98,-132v-26,18,-44,27,-44,59v0,60,81,64,115,26","w":227,"k":{"_":179}},"'":{"d":"60,-256r0,61r-28,0r0,-61r28,0","w":64,"k":{"s":48}},"(":{"d":"59,-36v1,29,7,33,25,52r-17,18v-24,-24,-34,-30,-34,-68v0,-74,-10,-165,8,-226v4,-7,13,-17,26,-30r17,17v-17,19,-25,24,-25,53r0,184","w":78},")":{"d":"41,-290v23,25,33,29,33,68v0,91,27,210,-33,256r-19,-19v18,-19,25,-20,25,-51r0,-184v0,-31,-7,-33,-25,-52","w":78},"*":{"d":"103,-193r44,23r-11,18r-42,-26r2,49r-21,0r1,-49r-41,26r-11,-18r43,-23r-43,-24r11,-17r41,25r-1,-49r21,0r-2,49r42,-25r11,17","w":141,"k":{">":159}},"+":{"d":"169,-108r0,24r-63,0r0,63r-24,0r0,-63r-63,0r0,-24r63,0r0,-63r24,0r0,63r63,0","w":164},",":{"d":"63,-32r0,55r-31,29r0,-84r31,0","w":64,"k":{"\"":64}},"-":{"d":"126,-109r0,24r-99,0r0,-24r99,0","w":132,"k":{"7":57,"2":45}},".":{"d":"66,-34r0,34r-34,0r0,-34r34,0","w":65,"k":{"'":60,"\"":65}},"\/":{"d":"103,-283r25,0r-102,310r-26,0","w":119},"0":{"d":"94,-258v41,0,70,29,70,70r0,120v0,40,-30,70,-70,70v-41,0,-71,-29,-70,-70r0,-120v-1,-41,29,-70,70,-70xm94,-21v67,-1,39,-101,44,-165v2,-28,-16,-50,-44,-49v-67,2,-39,102,-44,165v-2,28,16,49,44,49","w":167,"k":{",":10}},"1":{"d":"119,-256r0,256r-26,0r0,-228r-48,43r0,-30r48,-41r26,0","w":124},"2":{"d":"95,-258v65,0,89,70,50,120r-89,115r110,0r0,23r-142,0r0,-23r102,-129v27,-30,13,-83,-31,-83v-28,0,-44,17,-44,46r-26,0v-1,-41,29,-69,70,-69","w":162},"3":{"d":"90,-259v71,0,98,103,36,127v26,10,40,30,40,62v1,44,-32,73,-76,73v-44,0,-73,-25,-75,-68r26,0v2,28,21,44,49,44v29,0,50,-20,50,-49v0,-36,-19,-50,-56,-50r0,-23v34,0,51,-15,51,-46v0,-28,-18,-47,-45,-47v-26,0,-43,17,-46,43r-26,0v2,-39,32,-66,72,-66","w":168},"4":{"d":"174,-64r0,23r-32,0r0,41r-25,0r0,-41r-103,0r0,-23r93,-192r28,0r-93,192r75,0r0,-73r25,0r0,73r32,0","k":{"_":156}},"5":{"d":"95,-21v35,-1,41,-26,45,-64v7,-68,-67,-80,-85,-37r-24,0r0,-134r130,0r0,23r-106,0r0,81v44,-39,111,-14,111,67v0,58,-23,88,-71,88v-43,0,-67,-21,-70,-63r26,0v3,27,18,39,44,39","w":164},"6":{"d":"72,-141v49,-21,94,17,94,67v0,43,-28,76,-71,76v-69,0,-85,-71,-55,-131r63,-127r26,0xm94,-21v28,0,47,-23,46,-52v0,-29,-17,-52,-46,-52v-27,0,-45,22,-45,52v0,29,17,52,45,52","w":164},"7":{"d":"170,-256r0,23r-89,233r-28,0r89,-233r-89,0r0,40r-26,0r0,-63r143,0","w":163},"8":{"d":"94,-258v69,0,98,96,37,125v69,31,39,135,-37,135v-75,0,-106,-105,-37,-135v-60,-29,-33,-125,37,-125xm139,-189v0,-26,-19,-46,-45,-46v-26,0,-45,20,-45,46v0,26,19,45,45,45v26,0,45,-19,45,-45xm94,-21v28,0,50,-23,50,-50v0,-27,-22,-50,-50,-50v-28,0,-50,23,-50,50v0,27,22,50,50,50","w":172},"9":{"d":"93,-258v68,0,84,72,55,131r-63,127r-27,0r58,-115v-50,19,-94,-17,-94,-68v0,-43,28,-75,71,-75xm93,-132v28,0,47,-22,46,-52v0,-29,-17,-51,-46,-51v-29,0,-45,22,-45,51v0,29,17,53,45,52","w":158},":":{"d":"75,-142r0,34r-34,0r0,-34r34,0xm75,-34r0,34r-34,0r0,-34r34,0","w":76},";":{"d":"75,-142r0,34r-34,0r0,-34r34,0xm74,-32r0,55r-32,29r0,-84r32,0","w":75},"<":{"d":"350,-109r0,25r-284,0r131,131r-34,0r-143,-144r143,-143r34,0r-131,131r284,0","w":326,"k":{"\u00b8":172,"\u00b4":179,"`":161,"^":170,"=":160,".":175}},"=":{"d":"169,-139r0,24r-150,0r0,-24r150,0xm169,-78r0,24r-150,0r0,-24r150,0","w":163,"k":{"\u00ad":163,"\u00f7":165,"^":162,">":179,"-":172}},">":{"d":"206,-240r144,143r-144,144r-34,0r132,-131r-284,0r0,-25r284,0r-132,-131r34,0","w":340,"k":{"\u00b8":162}},"?":{"d":"95,-258v57,0,85,62,50,111v-17,23,-35,33,-35,75r-26,0v-7,-54,52,-75,52,-121v0,-24,-17,-42,-41,-42v-24,0,-42,18,-42,42r-26,0v0,-36,32,-65,68,-65xm113,-30r0,30r-31,0r0,-30r31,0","w":154},"@":{"d":"54,3v-47,-26,-24,-116,-28,-182v-5,-70,55,-78,129,-78v49,0,76,29,76,78r0,179r-25,0r0,-20v-43,48,-119,19,-113,-66v3,-54,15,-87,64,-88v20,0,37,8,49,23v4,-49,-7,-84,-54,-84v-55,0,-105,2,-101,56v5,57,-17,141,21,165xm162,-20v35,0,44,-27,44,-66v0,-40,-10,-66,-44,-66v-34,0,-44,27,-44,66v0,40,9,66,44,66","w":236,"k":{"_":199}},"A":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135","w":201,"k":{"y":16,"w":9,"v":16,"_":179,"Y":33,"W":22,"V":36,"T":42}},"B":{"d":"134,-256v75,-10,103,99,37,124v26,10,42,33,42,61v0,46,-30,71,-76,71r-100,0r0,-256r97,0xm182,-188v0,-53,-65,-44,-118,-44r0,89v0,0,118,9,118,-45xm186,-72v0,-56,-67,-46,-122,-46r0,94v56,0,122,9,122,-48","w":214,"k":{"_":178}},"C":{"d":"55,-128v0,68,8,106,62,106v32,0,55,-21,62,-52r27,0v-8,46,-42,76,-89,76v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130v47,0,81,29,89,76r-28,0v-7,-32,-29,-52,-61,-52v-54,0,-62,38,-62,106","w":193,"k":{"_":166}},"D":{"d":"125,-256v76,-1,93,56,90,139v-2,75,-21,117,-90,117r-88,0r0,-256r88,0xm120,-24v63,0,69,-48,68,-118v-1,-59,-14,-89,-68,-90r-56,0r0,208r56,0","w":217,"k":{"_":180,".":15,",":18}},"E":{"d":"196,-24r0,24r-159,0r0,-256r159,0r0,24r-132,0r0,91r113,0r0,24r-113,0r0,93r132,0","w":183},"F":{"d":"196,-256r0,24r-132,0r0,94r113,0r0,25r-113,0r0,113r-27,0r0,-256r159,0","w":183,"k":{"o":15,"e":16,"a":30,".":114,",":114}},"G":{"d":"117,-22v45,0,68,-37,63,-88r-63,0r0,-24r90,0v8,79,-20,139,-90,136v-66,-3,-90,-42,-90,-130v0,-89,23,-126,90,-130v49,-3,83,33,90,76r-28,0v-7,-32,-30,-52,-62,-52v-51,0,-62,37,-62,106v0,68,8,106,62,106","w":205,"k":{"_":178}},"H":{"d":"213,-256r0,256r-27,0r0,-117r-122,0r0,117r-27,0r0,-256r27,0r0,115r122,0r0,-115r27,0","w":219,"k":{"_":183}},"I":{"d":"64,-256r0,256r-27,0r0,-256r27,0","w":70},"J":{"d":"27,-39v33,35,93,13,93,-42r0,-175r27,0r0,178v7,73,-93,105,-139,57","w":151},"K":{"d":"137,-157r92,157r-32,0r-79,-136r-54,64r0,72r-27,0r0,-256r27,0r0,147r120,-147r33,0","w":213,"k":{"y":19,"w":12,"v":19,"_":177}},"L":{"d":"195,-24r0,24r-158,0r0,-256r27,0r0,232r131,0","w":182,"k":{"\u00b4":157,"Y":49,"V":45,"O":21}},"M":{"d":"257,-256r0,256r-28,0r0,-195r-70,155r-23,0r-72,-155r0,195r-27,0r0,-256r27,0r84,181r81,-181r28,0","w":262,"k":{"_":199}},"N":{"d":"226,-256r0,256r-25,0r-137,-206r0,206r-27,0r0,-256r26,0r136,205r0,-205r27,0","w":232,"k":{"_":195}},"O":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106v0,70,12,99,62,106","w":209,"k":{"_":182,".":14,",":19}},"P":{"d":"132,-256v45,-1,80,29,80,75v0,45,-35,77,-80,76r-68,0r0,105r-27,0r0,-256r95,0xm184,-181v0,-59,-63,-52,-120,-51r0,102v57,1,120,8,120,-51","w":197,"k":{"_":161,"A":24,".":129,",":129}},"Q":{"d":"207,-128v0,55,0,69,-18,96r28,28r-16,17r-29,-29v-75,45,-164,-2,-145,-112v-7,-88,23,-130,90,-130v67,0,90,42,90,130xm55,-128v0,70,12,106,62,106v13,0,25,-5,36,-13r-32,-32r17,-17r31,32v11,-14,10,-48,10,-76v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106","w":212,"k":{"_":185}},"R":{"d":"135,-256v43,-1,77,27,76,71v0,36,-20,62,-55,69r60,116r-32,0r-58,-114r-62,0r0,114r-27,0r0,-256r98,0xm184,-185v0,-56,-65,-47,-120,-47r0,94v55,0,120,10,120,-47","w":212,"k":{"_":175}},"S":{"d":"163,-213v-31,-34,-114,-31,-114,26v0,46,68,44,105,57v25,9,38,29,38,59v0,85,-132,93,-177,39r19,-18v31,39,129,42,130,-20v1,-48,-66,-44,-105,-57v-25,-8,-37,-29,-37,-59v0,-79,112,-92,158,-44","w":185,"k":{"_":170}},"T":{"d":"186,-256r0,24r-74,0r0,232r-27,0r0,-232r-74,0r0,-24r175,0","w":173,"k":{"y":36,"w":35,"u":57,"s":48,"r":58,"o":51,"e":51,"a":50,"_":163,"A":38,";":71,":":70,".":57,"-":53,",":57}},"U":{"d":"123,2v-51,0,-91,-36,-90,-87r0,-171r28,0r0,169v0,39,24,65,62,65v96,-1,53,-146,62,-234r27,0r0,171v1,51,-38,87,-89,87","w":217,"k":{"_":184,".":15,",":20}},"V":{"d":"165,-256r29,0r-85,256r-22,0r-84,-256r29,0r66,207","w":181,"k":{"u":14,"r":15,"o":23,"i":-8,"e":24,"a":18,"_":179,"A":40,";":37,":":37,".":56,"-":27,",":58}},"W":{"d":"273,-256r29,0r-66,256r-25,0r-57,-205r-57,205r-26,0r-65,-256r29,0r50,206r56,-206r25,0r56,206","w":292,"k":{"y":-11,"v":-11,"r":12,"o":17,"e":18,"a":14,"_":184,"A":26,";":32,":":31,".":43,"-":20,",":44}},"X":{"d":"114,-131r79,131r-32,0r-62,-108r-63,108r-31,0r79,-131r-74,-125r32,0r57,101r57,-101r32,0","w":181,"k":{"_":176}},"Y":{"d":"153,-256r29,0r-75,150r0,106r-28,0r0,-106r-76,-150r29,0r61,122","k":{"u":27,"o":42,"e":43,"a":35,"_":167,"A":36,";":55,":":55,".":59,"-":52,",":59}},"Z":{"d":"180,-24r0,24r-159,0r0,-26r128,-206r-123,0r0,-24r154,0r0,23r-130,209r130,0","w":168},"[":{"d":"97,4r0,23r-64,0r0,-310r64,0r0,23r-38,0r0,264r38,0","w":90},"\\":{"d":"26,-282r102,309r-26,0r-102,-309r26,0","w":119},"]":{"d":"80,-283r0,310r-64,0r0,-23r39,0r0,-265r-39,0r0,-22r64,0","w":85},"^":{"d":"109,-258r58,109r-26,0r-44,-82r-44,82r-27,0r59,-109r24,0","w":162,"k":{">":172}},"_":{"d":"193,41r0,18r-193,0r0,-18r193,0","w":180,"k":{"\u00ad":156,"\u00de":199,"\u00dd":169,"\u00d0":194,"\u00be":198,"\u00bd":196,"\u00bc":196,"\u00fc":157,"\u00fa":157,"\u00f9":157,"\u00f7":157,"\u00f1":159,"\u00e6":199,"\u00df":161,"\u00dc":199,"\u00da":199,"\u00d9":199,"\u00d8":194,"\u00d6":194,"\u00d3":194,"\u00d2":194,"\u00d1":213,"\u00cb":183,"\u00ca":183,"\u00c9":183,"\u00c8":183,"\u00c6":183,"\u00c5":185,"\u00c4":185,"\u00c3":185,"\u00c2":185,"\u00c1":185,"\u00c0":185,"\u00bb":172,"\u00b1":156,"\u00ae":208,"\u00ac":157,"\u00ab":158,"\u00a9":208,"\u00a5":169,"\u00a4":197,"\u00a3":166,"~":163,"w":184,"u":157,"n":159,"m":213,"k":168,"h":159,"b":160,"Z":167,"Y":169,"X":180,"W":186,"V":181,"U":199,"T":174,"S":179,"R":203,"Q":204,"P":199,"O":194,"N":213,"M":217,"L":183,"K":216,"H":201,"G":194,"F":183,"E":183,"D":202,"C":193,"B":200,"A":185,"@":206,"=":156,"8":157,"7":157,"4":161,"+":156,"&":208,"%":204,"#":204}},"`":{"d":"76,-269r32,55r-24,0r-39,-55r31,0","w":104},"a":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30","w":163},"b":{"d":"173,-89v0,88,-69,116,-115,68r0,21r-26,0r0,-256r26,0r0,99v44,-46,115,-19,115,68xm103,-21v35,0,44,-27,44,-68v0,-41,-9,-67,-44,-67v-35,0,-45,27,-45,67v0,40,10,68,45,68","w":170},"c":{"d":"23,-89v-9,-80,87,-120,136,-64r-17,17v-35,-39,-93,-21,-93,47v0,68,57,87,93,48r17,17v-49,56,-146,16,-136,-65","w":152},"d":{"d":"164,-256r0,256r-26,0r0,-21v-44,48,-124,19,-115,-68v-8,-87,70,-114,115,-68r0,-99r26,0xm94,-21v35,0,44,-27,44,-68v0,-41,-9,-67,-44,-67v-35,0,-45,26,-45,67v0,41,9,68,45,68"},"e":{"d":"23,-89v0,-52,23,-90,72,-90v49,0,73,32,73,97r-119,0v-7,61,64,79,98,41r18,16v-51,53,-142,26,-142,-64xm49,-101r93,0v-2,-37,-18,-56,-47,-56v-29,0,-44,19,-46,56","w":167},"f":{"d":"102,-235v-44,-6,-38,23,-38,59r38,0r0,20r-38,0r0,156r-26,0r0,-156r-23,0r0,-20r23,0v-3,-65,7,-83,64,-81r0,22","w":95,"k":{"f":-17}},"g":{"d":"46,41v33,35,95,16,91,-37r0,-27v-44,47,-123,21,-114,-67v-8,-86,70,-113,115,-66r0,-21r25,0r0,182v5,72,-87,99,-134,53xm93,-24v35,0,44,-26,44,-66v0,-41,-9,-66,-44,-66v-35,0,-44,27,-44,66v0,40,9,66,44,66","w":167},"h":{"d":"172,-114r0,114r-26,0v-6,-59,23,-156,-43,-156v-67,0,-40,95,-45,156r-26,0r0,-256r26,0r0,98v35,-41,114,-20,114,44"},"i":{"d":"60,-257r0,29r-29,0r0,-29r29,0xm58,-177r0,177r-26,0r0,-177r26,0","w":64},"j":{"d":"60,-257r0,29r-29,0r0,-29r29,0xm-5,57v30,-1,37,0,37,-26r0,-207r26,0r0,208v0,36,-23,52,-63,48r0,-23","w":63},"k":{"d":"111,-109r70,109r-32,0r-56,-91r-35,40r0,51r-26,0r0,-256r26,0r0,171r80,-92r33,0","w":168,"k":{"e":7}},"l":{"d":"58,-48v2,26,8,25,37,26r0,22v-39,4,-63,-11,-63,-47r0,-209r26,0r0,208","w":88},"m":{"d":"286,-113r0,113r-26,0v-6,-61,23,-156,-44,-156v-67,0,-38,96,-44,156r-26,0v-6,-60,23,-156,-43,-156v-67,0,-40,95,-45,156r-26,0r0,-177r26,0r0,19v25,-30,87,-28,105,8v31,-51,123,-32,123,37","w":291,"k":{"_":199}},"n":{"d":"172,-113r0,113r-26,0v-6,-61,23,-156,-44,-156v-66,0,-38,96,-44,156r-26,0r0,-177r26,0r0,19v36,-41,114,-19,114,45","w":177},"o":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68","w":171},"p":{"d":"173,-89v0,88,-69,116,-115,68r0,100r-26,0r0,-256r26,0r0,21v44,-47,115,-21,115,67xm103,-21v35,0,44,-27,44,-68v0,-41,-9,-67,-44,-67v-35,0,-45,27,-45,67v0,40,10,68,45,68","w":175},"q":{"d":"164,-177r0,256r-26,0r0,-100v-45,48,-115,20,-115,-68v0,-88,71,-114,115,-67r0,-21r26,0xm94,-21v35,0,44,-27,44,-68v0,-41,-9,-67,-44,-67v-35,0,-45,26,-45,67v0,41,9,68,45,68"},"r":{"d":"150,-163r-19,20v-26,-29,-73,-6,-73,34r0,109r-26,0r0,-177r26,0r0,21v15,-28,69,-31,92,-7","w":140,"k":{"o":10,"e":11,"c":13,".":78,"-":73,",":78}},"s":{"d":"52,-85v-58,-20,-23,-94,37,-94v27,0,48,6,63,19r-17,17v-20,-19,-90,-23,-86,15v5,49,111,6,111,76v0,65,-110,67,-145,29r18,-18v18,27,103,32,102,-10v-1,-32,-55,-24,-83,-34","w":158},"t":{"d":"63,-48v1,24,10,26,37,26r0,22v-39,4,-63,-13,-63,-48r0,-108r-23,0r0,-20r23,0r0,-55r26,0r0,55r37,0r0,20r-37,0r0,108","w":95},"u":{"d":"170,-177r0,177r-26,0r0,-20v-35,42,-113,21,-113,-44r0,-113r26,0v6,59,-23,156,43,156v66,0,38,-96,44,-156r26,0","w":173},"v":{"d":"129,-177r28,0r-65,177r-23,0r-65,-177r28,0r48,142","w":151,"k":{".":42,",":44}},"w":{"d":"229,-177r28,0r-56,177r-24,0r-47,-138r-46,138r-24,0r-56,-177r28,0r41,142r46,-142r22,0r47,142","w":251,"k":{"_":188,".":35,",":36}},"x":{"d":"100,-90r60,90r-31,0r-43,-69r-43,69r-31,0r60,-90r-58,-87r32,0r40,65r40,-65r32,0","w":156},"y":{"d":"129,-177r28,0r-81,220v-10,26,-21,34,-58,33r0,-23v41,3,38,-31,50,-57r-64,-173r28,0r49,142","w":151,"k":{".":42,",":46}},"z":{"d":"147,-23r0,23r-129,0r0,-22r99,-132r-94,0r0,-23r124,0r0,22r-99,132r99,0","w":144},"{":{"d":"53,-128v58,28,-20,145,57,132r0,23v-40,2,-61,-8,-61,-47v0,-39,18,-103,-32,-97r0,-23v81,7,-28,-160,93,-143r0,23v-77,-13,1,103,-57,132","w":102},"|":{"d":"72,-283r0,310r-26,0r0,-310r26,0","w":77},"}":{"d":"17,-283v120,-16,12,150,93,143r0,23v-80,-5,27,160,-93,144r0,-23v77,13,-2,-105,58,-132v-34,-12,-20,-62,-23,-104v-1,-29,-4,-27,-35,-28r0,-23","w":103},"~":{"d":"64,-120v32,-1,70,42,96,4r16,16v-16,16,-21,24,-46,24v-33,0,-71,-40,-97,-3r-15,-16v16,-15,22,-24,46,-25","w":178,"k":{"_":161,"^":169}},"\u00a1":{"d":"67,-177r0,30r-31,0r0,-30r31,0xm62,-105r4,184r-30,0r4,-184r22,0","w":70},"\u00a2":{"d":"23,-132v0,-48,24,-84,65,-89r0,-35r21,0r0,34v20,1,37,10,52,27r-17,16v-11,-12,-23,-19,-36,-20r0,134v13,-1,25,-8,36,-20r17,17v-15,17,-32,26,-52,27r0,41r-21,0r0,-42v-42,-5,-66,-41,-65,-90xm89,-66r0,-132v-27,5,-40,27,-40,66v0,39,13,61,40,66","w":158},"\u00a3":{"d":"40,-138v-7,-71,16,-121,80,-120v24,0,44,8,59,23r-19,18v-33,-35,-99,-13,-93,42r0,37r53,0r0,19r-53,0r0,95r112,0r0,24r-139,0r0,-119r-23,0r0,-19r23,0","w":166},"\u00a4":{"d":"183,-50r27,27r-17,16r-27,-26v-27,20,-68,20,-95,0r-26,26r-17,-16r27,-27v-21,-27,-21,-68,0,-95r-27,-26r17,-17r26,26v27,-20,68,-20,95,0r27,-26r17,17r-27,26v21,27,21,68,0,95xm119,-41v29,0,56,-28,56,-57v0,-29,-27,-55,-56,-55v-30,0,-56,25,-56,55v0,30,26,57,56,57","w":210,"k":{"_":183}},"\u00a5":{"d":"153,-256r29,0r-56,112r36,0r0,19r-46,0v-5,10,-11,20,-9,38r55,0r0,20r-55,0r0,67r-28,0r0,-67r-56,0r0,-20r56,0v2,-18,-4,-28,-10,-38r-46,0r0,-19r36,0r-56,-112r29,0r61,122","k":{"_":167}},"\u00a7":{"d":"69,-150v-58,-22,-33,-108,31,-108v37,0,66,21,66,56r-26,0v-2,-22,-15,-33,-40,-33v-47,0,-50,57,-10,69v38,11,79,24,79,75v0,26,-14,48,-37,59v23,9,35,25,35,51v0,55,-72,80,-113,48v-13,-10,-21,-26,-22,-44r27,0v2,23,15,35,41,35v45,0,55,-60,12,-73v-38,-11,-81,-25,-81,-76v0,-26,15,-48,38,-59xm143,-91v0,-27,-17,-46,-43,-46v-26,0,-42,20,-42,46v0,26,16,46,42,46v26,0,43,-19,43,-46"},"\u00a8":{"d":"141,-249r0,32r-26,0r0,-32r26,0xm65,-249r0,32r-26,0r0,-32r26,0","w":141},"\u00a9":{"d":"158,-258v70,0,131,60,131,130v0,70,-61,130,-131,130v-69,0,-130,-61,-130,-130v0,-69,61,-130,130,-130xm158,-17v59,0,110,-52,110,-111v0,-59,-51,-111,-110,-111v-59,0,-109,53,-109,111v0,58,50,111,109,111xm96,-128v0,-64,67,-97,111,-55r-13,13v-32,-28,-78,-13,-78,42v0,55,47,69,78,41r13,13v-42,42,-111,10,-111,-54","w":289,"k":{"_":194}},"\u00aa":{"d":"20,-154v0,-43,45,-45,90,-41v12,-47,-50,-56,-70,-28r-15,-13v23,-35,106,-30,106,26r0,95r-20,0r0,-13v-24,26,-91,19,-91,-26xm72,-132v33,0,39,-14,38,-47v-29,0,-69,-5,-69,24v0,15,10,23,31,23","w":135},"\u00ab":{"d":"171,-53r0,32r-75,-75r75,-76r0,32r-43,44xm90,-53r0,32r-76,-75r76,-76r0,32r-43,44","w":175,"k":{"_":161}},"\u00ac":{"d":"170,-111r0,74r-25,0r0,-49r-127,0r0,-25r152,0","w":175,"k":{"_":157,"^":174}},"\u00ae":{"d":"158,-258v70,0,131,60,131,130v0,70,-61,130,-131,130v-69,0,-130,-61,-130,-130v0,-69,61,-130,130,-130xm158,-17v59,0,110,-51,110,-111v0,-60,-50,-111,-110,-111v-60,0,-109,52,-109,111v0,59,50,111,109,111xm116,-200v47,-3,94,0,94,43v0,20,-10,33,-31,39r34,61r-23,0r-33,-58r-21,0r0,58r-20,0r0,-143xm189,-157v0,-25,-26,-27,-53,-25r0,50v27,1,53,0,53,-25","w":289,"k":{"_":194}},"\u00b0":{"d":"84,-260v30,0,59,29,59,59v0,31,-28,60,-59,60v-31,0,-60,-28,-60,-60v0,-32,29,-59,60,-59xm121,-201v0,-21,-17,-38,-38,-38v-21,0,-37,17,-37,38v0,21,17,39,38,39v21,0,37,-18,37,-39","w":137},"\u00b1":{"d":"169,-128r0,24r-63,0r0,64r-24,0r0,-64r-63,0r0,-24r63,0r0,-63r24,0r0,63r63,0xm169,-24r0,24r-150,0r0,-24r150,0","w":164},"\u00b4":{"d":"104,-269r31,0r-39,55r-24,0","w":126},"\u00b6":{"d":"15,-186v0,-42,34,-71,78,-70r87,0r0,335r-26,0r0,-311r-42,0r0,311r-26,0r0,-196v-38,0,-72,-30,-71,-69","w":186},"\u00b8":{"d":"89,24r24,0r-22,54r-28,0","w":105},"\u00ba":{"d":"82,-258v40,0,58,31,57,73v0,48,-18,72,-57,72v-39,0,-58,-24,-58,-72v0,-42,18,-73,58,-73xm118,-185v0,-35,-12,-53,-36,-53v-24,0,-36,18,-36,53v0,35,12,53,36,53v24,0,36,-18,36,-53","w":141,"k":{">":158}},"\u00bb":{"d":"109,-172r76,76r-76,75r0,-32r44,-43r-44,-44r0,-32xm28,-172r76,76r-76,75r0,-32r44,-43r-44,-44r0,-32","w":182},"\u00bf":{"d":"97,-177r0,30r-30,0r0,-30r30,0xm84,81v-57,0,-86,-62,-50,-111v17,-23,37,-32,35,-75r26,0v7,53,-53,74,-53,120v0,24,18,43,42,43v24,0,42,-19,42,-43r26,0v1,36,-31,66,-68,66","w":141},"\u00c0":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm95,-336r31,55r-23,0r-39,-55r31,0","w":201,"k":{"_":179}},"\u00c1":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm123,-336r31,0r-39,55r-24,0","w":201,"k":{"_":179}},"\u00c2":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm121,-336r45,55r-25,0r-32,-38r-33,38r-25,0r45,-55r25,0","w":201,"k":{"_":179}},"\u00c3":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm51,-303v31,-48,71,20,101,-15r13,13v-31,47,-70,-18,-101,14","w":201,"k":{"_":179}},"\u00c4":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm160,-316r0,32r-26,0r0,-32r26,0xm84,-316r0,32r-26,0r0,-32r26,0","w":201,"k":{"_":179}},"\u00c5":{"d":"122,-256r94,256r-30,0r-20,-58r-112,0r-21,58r-29,0r95,-256r23,0xm62,-82r96,0r-47,-135xm109,-355v23,0,42,19,42,43v0,24,-19,43,-42,43v-23,0,-43,-19,-43,-43v0,-24,20,-43,43,-43xm134,-312v0,-13,-12,-25,-25,-25v-13,0,-25,12,-25,25v0,13,12,25,25,25v13,0,25,-12,25,-25","w":201,"k":{"_":179}},"\u00c6":{"d":"312,-24r0,24r-159,0r0,-61r-89,0r-31,61r-30,0r135,-256r174,0r0,24r-132,0r0,91r113,0r0,25r-113,0r0,92r132,0xm76,-85r77,0r0,-147","w":292,"k":{"_":174}},"\u00c7":{"d":"55,-128v0,68,8,106,62,106v32,0,55,-21,62,-52r27,0v-8,46,-42,76,-89,76v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130v47,0,81,29,89,76r-28,0v-7,-32,-29,-52,-61,-52v-54,0,-62,38,-62,106xm109,24r24,0r-21,54r-28,0","w":193},"\u00c8":{"d":"196,-24r0,24r-159,0r0,-256r159,0r0,24r-132,0r0,91r113,0r0,24r-113,0r0,93r132,0xm99,-336r31,55r-23,0r-39,-55r31,0","w":183},"\u00c9":{"d":"196,-24r0,24r-159,0r0,-256r159,0r0,24r-132,0r0,91r113,0r0,24r-113,0r0,93r132,0xm127,-336r31,0r-39,55r-24,0","w":183},"\u00ca":{"d":"196,-24r0,24r-159,0r0,-256r159,0r0,24r-132,0r0,91r113,0r0,24r-113,0r0,93r132,0xm125,-336r45,55r-25,0r-32,-38r-33,38r-25,0r45,-55r25,0","w":183},"\u00cb":{"d":"196,-24r0,24r-159,0r0,-256r159,0r0,24r-132,0r0,91r113,0r0,24r-113,0r0,93r132,0xm164,-316r0,32r-26,0r0,-32r26,0xm87,-316r0,32r-25,0r0,-32r25,0","w":183},"\u00cc":{"d":"64,-256r0,256r-27,0r0,-256r27,0xm42,-336r32,55r-24,0r-39,-55r31,0","w":70},"\u00cd":{"d":"64,-256r0,256r-27,0r0,-256r27,0xm60,-336r31,0r-39,55r-24,0","w":84},"\u00ce":{"d":"64,-256r0,256r-27,0r0,-256r27,0xm62,-336r45,55r-25,0r-32,-38r-32,38r-25,0r45,-55r24,0","w":100},"\u00cf":{"d":"64,-256r0,256r-27,0r0,-256r27,0xm102,-316r0,32r-26,0r0,-32r26,0xm25,-316r0,32r-26,0r0,-32r26,0","w":94},"\u00d1":{"d":"226,-256r0,256r-25,0r-137,-206r0,206r-27,0r0,-256r26,0r136,205r0,-205r27,0xm74,-303v31,-48,71,20,101,-15r13,13v-31,47,-70,-18,-101,14","w":231,"k":{"_":195}},"\u00d2":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106v0,70,12,99,62,106xm103,-336r32,55r-24,0r-39,-55r31,0","w":208,"k":{"_":181}},"\u00d3":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-69,-11,-100,-62,-106v-51,5,-62,38,-62,106v0,70,12,99,62,106xm162,-336r-39,55r-24,0r32,-55r31,0","w":208,"k":{"_":181}},"\u00d6":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106v0,70,12,99,62,106xm168,-316r0,32r-26,0r0,-32r26,0xm92,-316r0,32r-26,0r0,-32r26,0","w":208,"k":{"_":181}},"\u00d8":{"d":"180,-235v26,32,24,42,27,107v4,89,-23,130,-90,130v-17,0,-32,-3,-45,-11r-12,25r-24,0r18,-38v-27,-30,-24,-42,-27,-106v-4,-89,23,-130,90,-130v17,0,32,3,45,11r12,-25r24,0xm82,-33v60,30,105,-11,97,-95v-4,-44,0,-59,-12,-81xm152,-224v-62,-29,-97,13,-97,96v0,30,0,67,12,81","w":208,"k":{"_":181}},"\u00d9":{"d":"123,2v-51,0,-91,-36,-90,-87r0,-171r28,0r0,169v0,39,24,65,62,65v96,-1,53,-146,62,-234r27,0r0,171v1,51,-38,87,-89,87xm109,-336r31,55r-23,0r-39,-55r31,0","w":214,"k":{"_":181}},"\u00da":{"d":"123,2v-51,0,-91,-36,-90,-87r0,-171r28,0r0,169v0,39,24,65,62,65v96,-1,53,-146,62,-234r27,0r0,171v1,51,-38,87,-89,87xm137,-336r31,0r-39,55r-24,0","w":214,"k":{"_":181}},"\u00dc":{"d":"123,2v-51,0,-91,-36,-90,-87r0,-171r28,0r0,169v0,39,24,65,62,65v96,-1,53,-146,62,-234r27,0r0,171v1,51,-38,87,-89,87xm174,-316r0,32r-26,0r0,-32r26,0xm98,-316r0,32r-26,0r0,-32r26,0","w":214,"k":{"_":181}},"\u00df":{"d":"152,-156v33,11,20,64,22,105v1,39,-27,55,-70,51r0,-22v59,9,44,-46,44,-92v0,-27,-11,-30,-44,-30r0,-22v30,0,44,-7,44,-33v1,-26,-19,-38,-45,-37v-30,0,-44,16,-44,48r0,188r-27,0r0,-189v0,-45,28,-70,73,-70v62,0,93,71,47,103","w":177},"\u00e0":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm77,-269r31,55r-23,0r-39,-55r31,0","w":156},"\u00e1":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm105,-269r31,0r-39,55r-24,0","w":157},"\u00e2":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm103,-269r45,55r-25,0r-32,-37r-33,37r-25,0r45,-55r25,0","w":158},"\u00e3":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm33,-236v31,-47,70,18,101,-14r13,13v-32,47,-71,-21,-101,14","w":159},"\u00e4":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm142,-249r0,32r-26,0r0,-32r26,0xm66,-249r0,32r-26,0r0,-32r26,0","w":159},"\u00e5":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v29,-43,134,-34,134,33r0,120r-26,0r0,-17v-31,34,-115,23,-115,-33xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30xm91,-290v23,0,42,19,42,43v0,24,-19,43,-42,43v-23,0,-43,-19,-43,-43v0,-24,20,-43,43,-43xm116,-247v0,-13,-12,-25,-25,-25v-13,0,-25,12,-25,25v0,13,12,25,25,25v13,0,25,-12,25,-25","w":159},"\u00e6":{"d":"18,-50v0,-54,59,-55,115,-51v16,-60,-66,-71,-90,-36r-18,-16v21,-35,109,-35,125,1v13,-18,32,-27,56,-27v49,0,72,32,72,97r-120,0v-6,60,64,80,99,41r18,16v-31,36,-104,38,-128,-3v-21,44,-129,42,-129,-22xm158,-101r94,0v-2,-37,-17,-56,-46,-56v-30,0,-46,19,-48,56xm84,-20v42,1,51,-20,49,-62v-38,0,-89,-7,-89,32v0,20,13,30,40,30","w":277,"k":{"_":193}},"\u00e7":{"d":"23,-89v-9,-80,87,-120,136,-64r-17,17v-35,-39,-93,-21,-93,47v0,68,57,87,93,48r17,17v-49,56,-146,16,-136,-65xm89,24r24,0r-22,54r-28,0","w":152},"\u00e8":{"d":"23,-89v0,-52,23,-90,72,-90v49,0,73,32,73,97r-119,0v-7,61,64,79,98,41r18,16v-51,53,-142,26,-142,-64xm49,-101r93,0v-2,-37,-18,-56,-47,-56v-29,0,-44,19,-46,56xm82,-269r32,55r-24,0r-39,-55r31,0","w":162},"\u00e9":{"d":"23,-89v0,-52,23,-90,72,-90v49,0,73,32,73,97r-119,0v-7,61,64,79,98,41r18,16v-51,53,-142,26,-142,-64xm49,-101r93,0v-2,-37,-18,-56,-47,-56v-29,0,-44,19,-46,56xm111,-269r30,0r-38,55r-24,0","w":163},"\u00ea":{"d":"23,-89v0,-52,23,-90,72,-90v49,0,73,32,73,97r-119,0v-7,61,64,79,98,41r18,16v-51,53,-142,26,-142,-64xm49,-101r93,0v-2,-37,-18,-56,-47,-56v-29,0,-44,19,-46,56xm109,-269r45,55r-25,0r-33,-37r-32,37r-25,0r45,-55r25,0","w":164},"\u00eb":{"d":"23,-89v0,-52,23,-90,72,-90v49,0,73,32,73,97r-119,0v-7,61,64,79,98,41r18,16v-51,53,-142,26,-142,-64xm49,-101r93,0v-2,-37,-18,-56,-47,-56v-29,0,-44,19,-46,56xm148,-249r0,32r-26,0r0,-32r26,0xm71,-249r0,32r-26,0r0,-32r26,0","w":165},"\u00ec":{"d":"58,-177r0,177r-26,0r0,-177r26,0xm37,-269r32,55r-24,0r-39,-55r31,0","w":68},"\u00ed":{"d":"58,-177r0,177r-26,0r0,-177r26,0xm55,-269r31,0r-38,55r-24,0","w":80},"\u00ee":{"d":"58,-177r0,177r-26,0r0,-177r26,0xm58,-269r45,55r-25,0r-33,-37r-32,37r-25,0r45,-55r25,0","w":95},"\u00ef":{"d":"58,-177r0,177r-26,0r0,-177r26,0xm96,-249r0,32r-26,0r0,-32r26,0xm19,-249r0,32r-25,0r0,-32r25,0","w":89},"\u00f1":{"d":"172,-113r0,113r-26,0v-6,-61,23,-156,-44,-156v-66,0,-38,96,-44,156r-26,0r0,-177r26,0r0,19v36,-41,114,-19,114,45xm45,-236v31,-47,70,18,101,-14r13,13v-32,47,-71,-21,-101,14","w":171},"\u00f2":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68xm78,-269r31,55r-23,0r-39,-55r31,0","w":163},"\u00f3":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68xm109,-269r31,0r-38,55r-24,0","w":165},"\u00f6":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68xm147,-249r0,32r-26,0r0,-32r26,0xm70,-249r0,32r-26,0r0,-32r26,0","w":164},"\u00f7":{"d":"109,-176r0,31r-31,0r0,-31r31,0xm170,-109r0,24r-152,0r0,-24r152,0xm109,-49r0,31r-31,0r0,-31r31,0","w":158,"k":{"=":160}},"\u00f8":{"d":"44,-19v-38,-43,-28,-160,51,-160v14,0,27,3,38,9r14,-23r20,0r-20,35v38,43,27,160,-52,160v-14,0,-26,-4,-37,-10r-14,24r-21,0xm69,-29v40,23,73,-6,73,-60v0,-23,-3,-38,-9,-47xm58,-41r63,-108v-39,-20,-72,3,-72,60v0,22,3,38,9,48","w":170},"\u00f9":{"d":"170,-177r0,177r-26,0r0,-20v-35,42,-113,21,-113,-44r0,-113r26,0v6,59,-23,156,43,156v66,0,38,-96,44,-156r26,0xm86,-269r32,55r-24,0r-39,-55r31,0","w":167},"\u00fa":{"d":"170,-177r0,177r-26,0r0,-20v-35,42,-113,21,-113,-44r0,-113r26,0v6,59,-23,156,43,156v66,0,38,-96,44,-156r26,0xm114,-269r31,0r-39,55r-24,0","w":168},"\u00fc":{"d":"170,-177r0,177r-26,0r0,-20v-35,42,-113,21,-113,-44r0,-113r26,0v6,59,-23,156,43,156v66,0,38,-96,44,-156r26,0xm151,-249r0,32r-26,0r0,-32r26,0xm75,-249r0,32r-26,0r0,-32r26,0","w":171},"\u00ff":{"d":"129,-177r28,0r-81,220v-10,26,-21,34,-58,33r0,-23v41,3,38,-31,50,-57r-64,-173r28,0r49,142xm131,-249r0,32r-26,0r0,-32r26,0xm55,-249r0,32r-26,0r0,-32r26,0","w":147},"\u00af":{"d":"144,-242r0,21r-108,0r0,-21r108,0","w":142},"\u00b5":{"d":"170,-177r0,177r-26,0r0,-20v-19,25,-64,30,-88,9r0,90r-26,0r0,-256r26,0v6,60,-23,156,43,156v67,0,40,-95,45,-156r26,0","w":173},"\u03bc":{"d":"170,-177r0,177r-26,0r0,-20v-19,25,-64,30,-88,9r0,90r-26,0r0,-256r26,0v6,60,-23,156,43,156v67,0,40,-95,45,-156r26,0","w":173},"\u00b7":{"d":"66,-114r0,34r-34,0r0,-34r34,0","w":71},"\u00a0":{"w":88},"\u00a6":{"d":"72,-283r0,126r-26,0r0,-126r26,0xm72,-99r0,126r-26,0r0,-126r26,0","w":76},"\u00b2":{"d":"106,-121r0,18r-89,0r0,-18v21,-32,56,-54,68,-94v0,-16,-8,-24,-23,-24v-15,0,-24,8,-24,24r-21,0v0,-26,19,-43,45,-43v41,0,55,46,30,76r-50,61r64,0","w":104},"\u00b3":{"d":"89,-182v40,15,21,81,-25,81v-27,0,-46,-16,-47,-43r21,0v1,16,9,24,26,24v15,0,26,-10,26,-26v0,-18,-10,-26,-30,-26r0,-18v18,0,28,-9,28,-25v0,-14,-10,-24,-24,-24v-15,0,-23,8,-24,23r-21,0v1,-25,20,-42,45,-42v43,0,61,59,25,76","w":110},"\u00b9":{"d":"66,-256r0,153r-21,0r0,-130r-30,26r0,-24v15,-10,22,-29,51,-25","w":69},"\u00bc":{"d":"265,-42r0,19r-17,0r0,23r-20,0r0,-23r-62,0r0,-19r55,-112r22,0r-54,112r39,0r0,-38r20,0r0,38r17,0xm182,-256r22,0r-120,256r-22,0xm66,-256r0,153r-21,0r0,-130r-30,26r0,-24v15,-10,22,-29,51,-25","w":260,"k":{"_":189}},"\u00bd":{"d":"267,-19r0,19r-88,0r0,-19v21,-31,55,-53,67,-93v0,-16,-8,-24,-23,-24v-15,0,-24,8,-24,24r-20,0v0,-26,18,-43,44,-43v41,-1,55,45,30,76r-49,60r63,0xm178,-256r21,0r-119,256r-22,0xm66,-256r0,153r-21,0r0,-130r-30,26r0,-24v15,-10,22,-29,51,-25","w":262,"k":{"_":188}},"\u00be":{"d":"282,-42r0,19r-17,0r0,23r-21,0r0,-23r-61,0r0,-19r54,-112r22,0r-54,112r39,0r0,-38r21,0r0,38r17,0xm201,-256r22,0r-120,256r-22,0xm89,-182v40,15,21,81,-25,81v-27,0,-46,-16,-47,-43r21,0v1,16,9,24,26,24v15,0,26,-10,26,-26v0,-18,-10,-26,-30,-26r0,-18v18,0,28,-9,28,-25v0,-14,-10,-24,-24,-24v-15,0,-23,8,-24,23r-21,0v1,-25,20,-42,45,-42v43,0,61,59,25,76","w":276,"k":{"_":189}},"\u00d0":{"d":"130,-256v64,4,90,43,90,128v0,124,-63,134,-178,128r0,-119r-28,0r0,-21r28,0r0,-116r88,0xm125,-24v60,-3,68,-33,68,-103v0,-70,-9,-102,-68,-105r-55,0r0,92r58,0r0,21r-58,0r0,95r55,0","w":221,"k":{"_":195}},"\u00d7":{"d":"110,-97r55,54r-17,16r-54,-54r-54,54r-17,-16r55,-54r-55,-55r17,-16r54,55r54,-55r17,16","w":166},"\u00dd":{"d":"153,-256r29,0r-75,150r0,106r-28,0r0,-106r-76,-150r29,0r61,122xm107,-336r31,0r-39,55r-24,0","k":{"_":167}},"\u00de":{"d":"132,-205v45,-1,80,31,80,76v0,74,-67,78,-148,75r0,54r-27,0r0,-256r27,0r0,51r68,0xm184,-129v0,-59,-63,-52,-120,-51r0,102v57,1,120,8,120,-51","w":204,"k":{"\u00b4":179,"`":159,"_":167}},"\u00f0":{"d":"122,-209v35,66,42,56,45,121v3,55,-21,90,-72,90v-48,0,-71,-30,-71,-90v0,-67,36,-100,92,-85r-21,-36r-42,0r0,-19r32,0r-17,-29r27,0r17,29r29,0r0,19r-19,0xm141,-88v0,-45,-15,-67,-46,-67v-31,0,-45,22,-45,67v0,45,14,67,45,67v31,0,46,-22,46,-67"},"\u00fd":{"d":"129,-177r28,0r-81,220v-10,26,-21,34,-58,33r0,-23v41,3,38,-31,50,-57r-64,-173r28,0r49,142xm94,-269r31,0r-39,55r-23,0","w":147},"\u00fe":{"d":"173,-89v0,88,-69,116,-115,68r0,100r-26,0r0,-335r26,0r0,99v44,-46,115,-19,115,68xm103,-21v35,0,44,-27,44,-68v0,-41,-9,-67,-44,-67v-35,0,-45,27,-45,67v0,40,10,68,45,68","w":171},"\u00ad":{"d":"169,-109r0,24r-150,0r0,-24r150,0","w":175,"k":{"_":157,"^":174,"=":175}},"\u00fb":{"d":"170,-177r0,177r-26,0r0,-20v-35,42,-113,21,-113,-44r0,-113r26,0v6,59,-23,156,43,156v66,0,38,-96,44,-156r26,0xm113,-269r45,55r-25,0r-32,-37r-33,37r-24,0r45,-55r24,0","w":173},"\u00d4":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106v0,70,12,99,62,106xm130,-348r45,55r-25,0r-32,-37r-33,37r-25,0r45,-55r25,0","w":209},"\u00d5":{"d":"117,-258v67,0,90,42,90,130v0,89,-23,130,-90,130v-67,0,-90,-42,-90,-130v0,-89,23,-130,90,-130xm117,-22v50,-6,62,-36,62,-106v0,-70,-11,-100,-62,-106v-51,5,-62,37,-62,106v0,70,12,99,62,106xm60,-315v31,-47,70,18,101,-14r13,13v-32,47,-71,-21,-101,14","w":209},"\u00db":{"d":"123,2v-51,0,-91,-36,-90,-87r0,-171r28,0r0,169v0,39,24,65,62,65v96,-1,53,-146,62,-234r27,0r0,171v1,51,-38,87,-89,87xm136,-348r45,55r-24,0r-33,-37r-32,37r-25,0r45,-55r24,0","w":217},"\u00f4":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68xm109,-269r45,55r-24,0r-33,-37r-32,37r-25,0r45,-55r24,0","w":171},"\u00f5":{"d":"95,-179v51,0,73,36,73,90v0,54,-21,91,-73,91v-51,0,-72,-37,-72,-91v0,-54,21,-90,72,-90xm142,-89v0,-45,-16,-67,-47,-67v-31,0,-46,22,-46,67v0,45,15,68,46,68v31,0,47,-23,47,-68xm37,-236v32,-47,70,19,102,-14r13,13v-32,47,-71,-21,-101,14","w":171}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2000 by . All rights reserved.
 * 
 * Trademark:
 * DinG Bold is a trademark of .
 * 
 * Full name:
 * DinG-Bold
 * 
 * Description:
 * Copyright (c) 2000 by . All rights reserved.
 */
Cufon.registerFont({"w":176,"face":{"font-family":"DinG","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 6 0 0 0 2 0 4","ascent":"274","descent":"-86","x-height":"2","bbox":"-16 -365 352 74","underline-thickness":"31.32","underline-position":"-33.12","unicode-range":"U+0020-U+00FF"},"glyphs":{" ":{"w":97},"!":{"d":"40,-256r58,0r-11,176r-36,0xm94,-48r0,48r-50,0r0,-48r50,0","w":105},"\"":{"d":"142,-256r0,76r-43,0r0,-76r43,0xm68,-256r0,76r-44,0r0,-76r44,0","w":154},"#":{"d":"231,-195r0,44r-32,0r-5,39r25,0r0,44r-33,0r-10,68r-50,0r12,-68r-42,0r-11,68r-49,0r10,-68r-24,0r0,-44r32,0r5,-39r-25,0r0,-44r32,0r10,-63r50,0r-10,63r41,0r10,-63r49,0r-9,63r24,0xm144,-112r6,-39r-41,0r-6,39r41,0","w":235,"k":{"_":214}},"$":{"d":"123,-152v54,8,83,22,83,76v0,45,-34,73,-78,77r0,40r-36,0r0,-39v-36,-1,-64,-13,-85,-34r32,-32v14,14,33,21,57,22r0,-66v-50,-5,-78,-24,-79,-73v-1,-45,34,-72,75,-77r0,-32r36,0r0,32v29,2,53,11,71,29r-32,32v-10,-10,-25,-17,-44,-18r0,63xm96,-154r0,-60v-41,2,-42,58,0,60xm123,-43v33,-1,43,-35,24,-54v-5,-4,-13,-6,-24,-8r0,62","w":207},"%":{"d":"234,-132v44,-1,53,35,53,85v0,30,-23,49,-53,49v-45,1,-52,-36,-52,-85v0,-30,21,-49,52,-49xm195,-256r37,0r-121,256r-37,0xm71,-258v44,-1,52,35,52,84v0,30,-22,50,-52,50v-45,0,-52,-36,-52,-85v0,-30,21,-49,52,-49xm234,-28v24,2,19,-30,19,-53v0,-14,-7,-21,-19,-21v-24,-2,-17,31,-18,53v0,14,6,21,18,21xm71,-154v24,2,17,-32,18,-54v0,-14,-6,-20,-18,-20v-24,0,-17,31,-18,53v0,14,6,21,18,21","w":288,"k":{"_":219}},"&":{"d":"176,-198v-1,31,-19,40,-45,58r44,51v8,-11,12,-26,13,-45r44,0v-2,35,-12,62,-28,80r47,54r-60,0r-19,-22v-52,45,-150,27,-150,-54v0,-26,15,-48,46,-68v-48,-43,-25,-114,43,-114v38,0,67,24,65,60xm132,-198v0,-13,-8,-21,-21,-21v-31,0,-26,30,-5,50v17,-10,26,-20,26,-29xm144,-55r-51,-61v-38,20,-33,75,13,76v14,0,26,-5,38,-15","w":238,"k":{"_":205}},"'":{"d":"69,-256r0,76r-45,0r0,-76r45,0","w":80,"k":{"t":-10,"s":26}},"(":{"d":"76,-52v0,32,7,35,25,55r-31,31v-30,-32,-41,-36,-41,-84v0,-67,-10,-153,10,-204v4,-8,14,-19,31,-36r31,31v-18,20,-25,23,-25,55r0,152","w":97},")":{"d":"51,-290v31,32,41,35,41,83v0,67,10,153,-10,204v-4,8,-14,20,-31,37r-32,-32v19,-19,26,-21,26,-54r0,-152v0,-33,-7,-35,-26,-54","w":103},"*":{"d":"118,-186r40,20r-16,29r-38,-24r1,45r-33,0r2,-45r-38,24r-16,-29r39,-20r-39,-21r16,-29r38,24r-2,-45r33,0r-1,45r38,-24r16,29","w":161},"+":{"d":"177,-122r0,44r-57,0r0,58r-44,0r0,-58r-58,0r0,-44r58,0r0,-57r44,0r0,57r57,0","w":181},",":{"d":"76,-51r0,71r-52,39r0,-110r52,0","w":82,"k":{"\"":83}},"-":{"d":"132,-125r0,44r-111,0r0,-44r111,0","w":144,"k":{"7":56,"2":33}},"\u2010":{"d":"132,-125r0,44r-111,0r0,-44r111,0","w":144},".":{"d":"78,-53r0,53r-54,0r0,-53r54,0","w":86,"k":{"'":77,"\"":86}},"\/":{"d":"103,-283r44,0r-103,310r-44,0","w":136},"0":{"d":"98,-258v45,0,79,31,78,76r0,108v1,45,-33,76,-78,76v-44,0,-78,-31,-78,-76r0,-108v-1,-45,34,-76,78,-76xm98,-40v53,0,31,-91,31,-141v0,-20,-11,-35,-31,-35v-53,0,-31,91,-31,141v0,20,11,35,31,35","w":185,"k":{"_":166}},"1":{"d":"136,-256r0,256r-47,0r0,-206r-52,45r0,-50r52,-45r47,0","w":148},"2":{"d":"99,-258v74,0,96,81,51,133r-72,83r99,0r0,42r-156,0r0,-42r96,-111v22,-21,16,-63,-18,-63v-21,0,-31,10,-31,32r-47,0v-1,-44,34,-74,78,-74","w":183},"3":{"d":"96,-258v70,0,110,94,49,126v63,33,30,134,-48,134v-48,0,-82,-28,-82,-75r47,0v0,21,14,33,35,33v22,0,34,-14,34,-36v0,-23,-14,-35,-42,-35r0,-41v26,0,39,-11,39,-32v0,-19,-13,-32,-32,-32v-18,0,-30,13,-31,31r-47,0v-1,-43,35,-73,78,-73","w":185,"k":{"_":170}},"4":{"d":"184,-81r0,45r-23,0r0,36r-45,0r0,-36r-105,0r0,-45r88,-175r51,0r-88,175r54,0r0,-48r45,0r0,48r23,0","w":189,"k":{"_":178}},"5":{"d":"68,-159v49,-35,110,4,110,73v0,54,-27,88,-79,88v-48,0,-74,-25,-78,-74r46,0v3,21,14,32,32,32v22,0,32,-15,32,-46v0,-52,-48,-60,-62,-26r-43,0r0,-144r146,0r0,42r-104,0r0,55","w":182},"6":{"d":"91,-150v46,-16,86,25,86,72v0,47,-33,80,-80,80v-47,0,-84,-31,-80,-79v5,-57,54,-128,76,-179r51,0xm97,-40v20,0,33,-16,33,-37v0,-21,-12,-38,-33,-38v-21,0,-33,16,-33,38v0,21,13,37,33,37","w":181},"7":{"d":"181,-256r0,42r-83,214r-51,0r83,-214r-67,0r0,40r-45,0r0,-82r163,0","w":185,"k":{"_":168}},"8":{"d":"98,-258v69,-7,108,88,50,126v63,37,26,143,-50,134v-76,9,-112,-96,-50,-134v-58,-37,-20,-134,50,-126xm130,-184v0,-18,-14,-32,-32,-32v-18,0,-32,14,-32,32v0,18,14,32,32,32v18,0,32,-14,32,-32xm133,-75v0,-20,-15,-36,-35,-36v-20,0,-35,16,-35,36v0,20,15,35,35,35v20,0,35,-15,35,-35","w":186,"k":{"_":171}},"9":{"d":"98,-258v78,1,94,76,59,147r-54,111r-51,0r53,-106v-49,14,-87,-25,-87,-73v0,-47,33,-80,80,-79xm98,-141v20,0,33,-16,33,-38v0,-22,-12,-37,-33,-37v-21,0,-33,15,-33,37v0,21,12,38,33,38","w":181},":":{"d":"87,-151r0,53r-54,0r0,-53r54,0xm87,-53r0,53r-54,0r0,-53r54,0","w":96},";":{"d":"87,-151r0,53r-54,0r0,-53r54,0xm86,-51r0,71r-51,39r0,-110r51,0","w":96},"<":{"d":"351,-125r0,44r-253,0r118,117r-59,0r-139,-139r139,-138r59,0r-118,116r253,0","w":329},"=":{"d":"177,-164r0,44r-159,0r0,-44r159,0xm177,-86r0,44r-159,0r0,-44r159,0","w":181},">":{"d":"213,-241r139,138r-139,139r-59,0r117,-117r-253,0r0,-44r253,0r-117,-116r59,0","w":348},"?":{"d":"99,-258v59,0,98,61,63,110v-13,18,-37,41,-37,68r-47,0v-6,-49,51,-68,51,-107v0,-17,-13,-29,-30,-29v-18,0,-28,12,-28,30r-47,0v-1,-41,32,-72,75,-72xm126,-48r0,48r-50,0r0,-48r50,0","w":177},"@":{"d":"49,5v-44,-27,-24,-108,-28,-173v-4,-80,57,-90,141,-90v62,0,90,28,90,90r0,169r-44,-1r0,-17v-11,13,-25,19,-43,19v-47,0,-62,-32,-62,-85v0,-53,14,-85,62,-85v18,0,32,6,42,18v3,-41,-9,-66,-48,-66v-50,0,-97,-3,-93,49v4,49,-13,114,15,140xm207,-83v0,-31,-10,-46,-30,-46v-20,0,-29,15,-29,46v0,31,9,46,29,46v20,0,30,-15,30,-46","w":263,"k":{"_":229}},"A":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94","w":217,"k":{"y":17,"w":12,"v":22,"_":207,"Y":36,"W":26,"V":39,"T":38}},"B":{"d":"133,-256v74,-9,107,93,47,125v65,27,35,131,-43,131r-107,0r0,-256r103,0xm162,-182v0,-37,-46,-30,-82,-30r0,59v36,-1,82,8,82,-29xm166,-76v0,-40,-48,-32,-86,-32r0,63v38,-1,86,9,86,-31","w":222,"k":{"_":193}},"C":{"d":"71,-128v0,57,3,86,45,86v23,0,37,-13,43,-37r51,0v-9,50,-43,81,-94,81v-68,0,-95,-43,-95,-130v0,-89,27,-130,95,-130v51,0,85,31,94,81r-51,0v-6,-24,-20,-37,-43,-37v-42,0,-45,30,-45,86","w":205,"k":{"_":184}},"D":{"d":"122,-256v75,-3,94,58,94,146v0,73,-32,110,-94,110r-92,0r0,-256r92,0xm80,-45v67,5,86,-9,86,-84v0,-74,-19,-87,-86,-83r0,167","w":223,"k":{"_":194}},"E":{"d":"199,-45r0,45r-169,0r0,-256r169,0r0,44r-119,0r0,60r101,0r0,45r-101,0r0,62r119,0","w":198,"k":{"_":168}},"F":{"d":"199,-256r0,44r-119,0r0,63r101,0r0,45r-101,0r0,104r-50,0r0,-256r169,0","w":186,"k":{"a":18,".":95,",":95}},"G":{"d":"71,-128v0,57,3,86,45,86v31,0,47,-20,47,-59r-47,0r0,-42r96,0v6,85,-19,148,-96,145v-68,-3,-95,-43,-95,-130v0,-89,27,-130,95,-130v52,0,88,31,96,82r-50,0v-6,-25,-21,-38,-46,-38v-42,0,-45,30,-45,86","w":216,"k":{"_":195}},"H":{"d":"217,-256r0,256r-50,0r0,-107r-87,0r0,107r-50,0r0,-256r50,0r0,104r87,0r0,-104r50,0","w":229,"k":{"_":199}},"I":{"d":"80,-256r0,256r-50,0r0,-256r50,0","w":92},"J":{"d":"157,-84v6,80,-105,114,-156,60r33,-33v24,28,73,17,73,-29r0,-170r50,0r0,172","w":168,"k":{"_":168}},"K":{"d":"146,-154r91,154r-58,0r-66,-117r-33,40r0,77r-50,0r0,-256r50,0r0,111r90,-111r61,0","w":234,"k":{"y":27,"w":23,"v":27,"o":15,"_":204}},"L":{"d":"196,-45r0,45r-166,0r0,-256r50,0r0,211r116,0","w":185,"k":{"Y":45,"V":37}},"M":{"d":"262,-256r0,256r-50,0r0,-149r-49,97r-34,0r-49,-97r0,149r-50,0r0,-256r49,0r67,138r67,-138r49,0","w":274,"k":{"_":229}},"N":{"d":"226,-256r0,256r-45,0r-101,-157r0,157r-50,0r0,-256r45,0r101,157r0,-157r50,0","w":238,"k":{"_":209}},"O":{"d":"116,-258v68,0,95,44,95,130v0,86,-27,130,-95,130v-67,0,-95,-43,-95,-130v0,-89,27,-130,95,-130xm116,-42v41,-4,45,-31,45,-86v0,-56,-3,-86,-45,-86v-42,0,-45,30,-45,86v0,57,3,82,45,86","w":219,"k":{"_":199,".":8,",":9}},"P":{"d":"129,-256v47,-1,86,33,85,80v-1,66,-59,88,-134,80r0,96r-50,0r0,-256r99,0xm164,-176v0,-40,-44,-37,-84,-36r0,71v40,1,84,6,84,-35","w":209,"k":{"_":180,"A":28,".":118,",":118}},"Q":{"d":"211,-128v-3,47,-1,65,-16,91r22,22r-27,26r-22,-23v-80,38,-164,-8,-147,-116v-7,-89,27,-130,95,-130v66,0,100,44,95,130xm71,-128v0,63,14,96,61,81r-22,-22r27,-26r19,19v3,-9,5,-26,5,-52v0,-56,-3,-86,-45,-86v-42,0,-45,30,-45,86","w":222,"k":{"_":201}},"R":{"d":"130,-256v47,-1,83,31,83,78v0,31,-17,57,-46,67r57,111r-58,0r-50,-102r-36,0r0,102r-50,0r0,-256r100,0xm163,-178v0,-39,-44,-35,-83,-34r0,68v39,1,83,5,83,-34","w":222,"k":{"_":193}},"S":{"d":"157,-197v-19,-24,-92,-28,-92,14v-9,34,93,36,97,43v23,11,33,32,33,64v0,89,-142,99,-188,44r32,-32v18,26,109,35,108,-10v11,-34,-97,-41,-97,-45v-22,-10,-33,-31,-33,-62v0,-84,125,-98,172,-48","w":198,"k":{"_":192}},"T":{"d":"195,-256r0,44r-67,0r0,212r-50,0r0,-212r-67,0r0,-44r184,0","w":195,"k":{"y":40,"w":39,"u":57,"s":45,"r":58,"o":53,"e":51,"a":49,"_":185,"A":40,";":68,":":68,".":56,"-":53,",":56}},"U":{"d":"120,2v-52,0,-94,-38,-94,-90r0,-168r50,0r0,166v0,28,16,48,44,48v28,0,45,-20,45,-48r0,-166r50,0r0,168v1,53,-42,90,-95,90","w":226,"k":{"_":200,".":9,",":10}},"V":{"d":"156,-256r52,0r-85,256r-37,0r-85,-256r52,0r51,167","w":200,"k":{"y":-8,"u":8,"r":10,"o":22,"i":-9,"e":22,"a":13,"_":199,"A":42,";":32,":":32,".":49,"-":21,",":49}},"W":{"d":"265,-256r52,0r-69,256r-41,0r-48,-156r-47,156r-41,0r-69,-256r52,0r40,161r47,-161r37,0r47,161","w":309,"k":{"y":-13,"v":-13,"o":14,"e":14,"_":209,"A":28,";":24,":":24,".":36,"-":13,",":36}},"X":{"d":"135,-131r80,131r-57,0r-50,-89r-49,89r-57,0r79,-131r-74,-125r57,0r44,82r45,-82r57,0","w":210,"k":{"_":209}},"Y":{"d":"150,-256r55,0r-77,151r0,105r-50,0r0,-105r-77,-151r54,0r48,103","w":197,"k":{"u":21,"o":40,"e":40,"a":29,"_":196,"A":40,";":50,":":50,".":58,"-":44,",":58}},"Z":{"d":"183,-45r0,45r-169,0r0,-40r110,-172r-105,0r0,-44r164,0r0,39r-110,172r110,0","w":186,"k":{"_":172}},"[":{"d":"121,-15r0,42r-92,0r0,-310r92,0r0,42r-45,0r0,226r45,0","w":123},"\\":{"d":"44,-278r101,305r-44,0r-101,-305r44,0","w":135},"]":{"d":"108,-283r0,310r-93,0r0,-42r46,0r0,-226r-46,0r0,-42r93,0","w":120},"^":{"d":"130,-259r64,119r-49,0r-37,-68r-36,68r-49,0r64,-119r43,0","w":197,"k":{"\u00ad":181,"\u00ac":182,"_":175,">":201}},"_":{"d":"217,33r0,31r-217,0r0,-31r217,0","w":202,"k":{"\u00de":199,"\u00dd":190,"\u00d0":210,"\u00be":218,"\u00bd":216,"\u00bc":216,"\u00f1":168,"\u00eb":166,"\u00ea":166,"\u00e9":166,"\u00e8":166,"\u00e6":215,"\u00df":171,"\u00dc":200,"\u00da":200,"\u00d9":200,"\u00d8":196,"\u00d6":196,"\u00d3":196,"\u00d2":196,"\u00d1":212,"\u00cb":184,"\u00ca":184,"\u00c9":184,"\u00c8":184,"\u00c6":203,"\u00c5":204,"\u00c4":204,"\u00c3":204,"\u00c2":204,"\u00c1":204,"\u00c0":204,"\u00bb":200,"\u00ae":224,"\u00ab":188,"\u00a9":224,"\u00a5":190,"\u00a4":205,"\u00a3":178,"~":190,"x":171,"w":204,"n":168,"m":229,"k":183,"h":166,"e":166,"b":169,"^":180,"Z":168,"Y":190,"X":201,"W":204,"V":194,"U":200,"T":180,"S":181,"R":210,"Q":202,"P":199,"O":196,"N":212,"M":232,"L":182,"K":223,"H":202,"G":198,"F":184,"E":184,"D":202,"C":195,"B":201,"A":204,"@":223,"7":167,"4":170,"&":224,"%":221,"#":217}},"`":{"d":"87,-279r23,62r-32,0r-41,-62r50,0","w":113},"a":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22","w":180,"k":{"_":167}},"b":{"d":"118,-190v52,2,65,35,65,96v0,61,-12,94,-65,96v-19,0,-34,-7,-46,-20r0,18r-46,0r0,-256r47,0r0,85v11,-13,26,-19,45,-19xm105,-40v27,0,32,-21,31,-54v0,-34,-4,-54,-31,-54v-27,0,-32,20,-32,54v0,34,5,54,32,54","w":189},"c":{"d":"17,-94v-10,-86,93,-125,146,-71r-32,32v-27,-30,-67,-14,-67,39v0,53,39,69,67,39r32,32v-52,54,-157,15,-146,-71","w":161},"d":{"d":"18,-94v0,-61,13,-93,65,-96v19,0,35,6,46,19r0,-85r47,0r0,256r-46,0r0,-18v-12,13,-27,20,-46,20v-53,-1,-66,-35,-66,-96xm97,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-32,20,-32,54v0,34,5,54,32,54","w":188,"k":{"_":170}},"e":{"d":"99,-190v58,0,87,46,81,111r-117,0v-3,46,59,54,84,24r28,28v-54,55,-158,32,-158,-67v0,-55,29,-96,82,-96xm63,-111r71,0v-1,-26,-12,-40,-35,-40v-23,0,-35,14,-36,40","w":188,"k":{"_":171}},"f":{"d":"32,-182v-3,-63,20,-81,81,-77r0,39v-38,2,-33,-2,-34,38r34,0r0,35r-34,0r0,147r-47,0r0,-147r-19,0r0,-35r19,0","w":119,"k":{"f":-9}},"g":{"d":"18,-99v0,-57,13,-90,64,-91v19,0,34,7,46,20r0,-18r46,0r0,181v5,77,-104,101,-151,53r29,-29v16,19,61,20,70,-4v3,-7,5,-21,5,-40v-11,13,-26,19,-45,19v-51,-1,-64,-34,-64,-91xm96,-50v25,0,31,-19,31,-49v0,-30,-6,-49,-31,-49v-25,0,-31,19,-31,49v0,30,6,49,31,49","w":185},"h":{"d":"73,-170v38,-42,108,-14,108,49r0,121r-47,0r0,-114v0,-20,-11,-34,-31,-34v-19,0,-30,14,-30,34r0,114r-47,0r0,-256r47,0r0,86","w":187},"i":{"d":"73,-258r0,38r-47,0r0,-38r47,0xm73,-188r0,188r-47,0r0,-188r47,0","w":84},"j":{"d":"73,-258r0,38r-47,0r0,-38r47,0xm73,-188r0,205v0,43,-34,58,-81,53r0,-39v18,1,34,0,34,-17r0,-202r47,0","w":83},"k":{"d":"125,-112r72,112r-58,0r-46,-78r-20,22r0,56r-47,0r0,-256r47,0r0,145r62,-77r57,0","w":190,"k":{"o":10,"e":10}},"l":{"d":"106,-40r0,40v-48,4,-82,-11,-82,-54r0,-202r47,0r0,199v-2,17,18,20,35,17","w":110},"m":{"d":"291,-120r0,120r-47,0r0,-113v0,-20,-11,-35,-31,-35v-54,0,-24,97,-31,148r-47,0r0,-113v0,-20,-11,-35,-31,-35v-54,0,-23,96,-31,148r-47,0r0,-188r46,0r0,18v24,-28,76,-27,96,4v39,-45,123,-24,123,46","w":303,"k":{"_":229}},"n":{"d":"72,-170v38,-42,110,-14,110,50r0,120r-47,0r0,-113v0,-20,-11,-35,-31,-35v-54,0,-23,96,-31,148r-47,0r0,-188r46,0r0,18","w":194,"k":{"_":168}},"o":{"d":"177,-94v0,64,-26,96,-79,96v-53,0,-80,-32,-80,-96v0,-64,27,-96,80,-96v53,0,79,32,79,96xm98,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-33,22,-33,54v0,32,6,54,33,54","w":185,"k":{"_":167}},"p":{"d":"118,-190v52,2,65,35,65,96v0,61,-12,94,-65,96v-19,0,-34,-6,-45,-19r0,86r-47,0r0,-257r46,0r0,18v12,-13,27,-20,46,-20xm105,-40v27,0,32,-21,31,-54v0,-34,-4,-54,-31,-54v-27,0,-32,20,-32,54v0,34,5,54,32,54","w":192},"q":{"d":"18,-94v0,-62,13,-93,66,-96v19,0,34,7,46,20r0,-18r46,0r0,257r-47,0r0,-86v-11,13,-27,19,-46,19v-53,-2,-65,-35,-65,-96xm97,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-32,20,-32,54v0,34,5,54,32,54","w":187},"r":{"d":"163,-172r-35,36v-20,-24,-55,-9,-55,23r0,113r-47,0r0,-188r46,0r0,18v20,-25,69,-27,91,-2","w":157,"k":{"o":9,"e":11,"c":10,".":73,"-":67,",":73}},"s":{"d":"45,-84v-54,-26,-20,-106,45,-106v32,0,57,7,72,22r-29,29v-10,-13,-71,-22,-70,6v-3,22,72,19,77,26v18,8,27,25,27,48v0,73,-123,75,-159,34r31,-30v13,19,79,27,83,-2v4,-25,-74,-20,-77,-27","k":{"_":168}},"t":{"d":"111,-40r0,40v-47,4,-80,-11,-80,-54r0,-93r-20,0r0,-35r20,0r0,-56r46,0r0,56r34,0r0,35r-34,0r0,90v-1,18,16,18,34,17","w":118},"u":{"d":"134,-17v-39,41,-110,12,-110,-51r0,-120r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0r0,188r-46,0r0,-17","w":191,"k":{"_":168}},"v":{"d":"127,-188r49,0r-69,188r-36,0r-70,-188r50,0r38,116","w":174,"k":{"_":173,".":37,",":37}},"w":{"d":"222,-188r50,0r-57,188r-39,0r-39,-118r-39,118r-39,0r-58,-188r50,0r30,116r39,-116r34,0r38,116","w":272,"k":{"_":217,".":30,",":30}},"x":{"d":"121,-96r64,96r-56,0r-34,-56r-35,56r-56,0r65,-96r-62,-92r56,0r32,54r32,-54r56,0","w":187,"k":{"_":183}},"y":{"d":"127,-188r49,0r-80,218v-11,32,-33,42,-73,39r0,-42v38,-4,27,-4,43,-40r-65,-175r50,0r39,116","w":173,"k":{".":36,",":39}},"z":{"d":"156,-42r0,42r-143,0r0,-36r83,-109r-78,0r0,-43r138,0r0,36r-84,110r84,0","w":164},"{":{"d":"79,-128v60,15,-21,128,70,113r0,42v-78,10,-102,-25,-92,-106v-2,-26,-10,-28,-42,-28r0,-42v49,7,42,-26,41,-64v-4,-62,31,-75,93,-70r0,42v-27,-1,-49,-1,-46,28v3,36,7,76,-24,85","w":150},"|":{"d":"86,-283r0,310r-46,0r0,-310r46,0","w":99},"}":{"d":"108,-213v0,40,-8,71,41,64r0,42v-49,-6,-41,24,-41,64v0,64,-32,74,-93,70r0,-42v28,1,50,0,47,-29v-4,-35,-7,-75,24,-84v-31,-9,-28,-49,-24,-85v3,-29,-19,-29,-47,-28r0,-42v61,-4,93,6,93,70","w":152},"~":{"d":"72,-136v34,-1,76,42,103,5r30,30v-18,18,-31,31,-60,31v-34,0,-74,-42,-102,-6r-30,-29v19,-18,31,-30,59,-31","w":210,"k":{"_":197}},"\u00a1":{"d":"81,-188r0,48r-50,0r0,-48r50,0xm73,-107r12,176r-58,0r12,-176r34,0","w":91},"\u00a2":{"d":"17,-132v0,-50,26,-86,67,-94r0,-30r36,0r0,30v19,3,35,12,49,27r-31,31v-7,-8,-15,-13,-23,-15r0,103v8,-2,16,-7,23,-15r31,30v-14,15,-30,24,-49,27r0,38r-36,0r0,-38v-41,-8,-67,-44,-67,-94xm89,-81r0,-102v-34,3,-33,100,0,102","w":170},"\u00a3":{"d":"36,-143v-20,-101,92,-148,156,-89r-33,33v-23,-28,-78,-16,-73,29r0,27r41,0r0,36r-41,0r0,62r106,0r0,45r-156,0r0,-107r-22,0r0,-36r22,0","w":190,"k":{"_":176}},"\u00a4":{"d":"193,-61r27,26r-31,31r-27,-26v-25,16,-59,16,-84,0r-26,26r-31,-31r27,-26v-16,-25,-16,-59,0,-84r-27,-26r31,-31r26,26v25,-16,59,-16,84,0r27,-26r31,31r-27,26v16,25,16,59,0,84xm120,-61v24,0,43,-19,43,-42v0,-23,-20,-42,-43,-42v-23,0,-42,19,-42,42v0,23,19,42,42,42","w":227,"k":{"_":207}},"\u00a5":{"d":"150,-256r54,0r-48,97r26,0r0,36r-45,0v-5,10,-11,19,-9,36r54,0r0,36r-54,0r0,51r-50,0r0,-51r-55,0r0,-36r55,0v2,-17,-4,-26,-9,-36r-46,0r0,-36r27,0r-49,-97r54,0r48,103","w":195,"k":{"_":195}},"\u00a7":{"d":"55,-149v-54,-27,-23,-109,41,-109v41,0,70,21,70,61r-44,0v0,-15,-10,-22,-26,-22v-35,1,-31,37,1,46v53,14,73,23,73,74v0,22,-13,43,-32,54v56,28,23,116,-42,116v-42,0,-72,-25,-72,-64r45,0v1,14,12,23,27,23v15,0,26,-9,26,-24v6,-26,-72,-40,-74,-46v-37,-23,-33,-91,7,-109xm125,-97v0,-19,-10,-32,-29,-32v-19,0,-29,11,-29,32v0,19,10,32,29,32v18,0,29,-13,29,-32"},"\u00a8":{"d":"150,-263r0,45r-40,0r0,-45r40,0xm70,-263r0,45r-40,0r0,-45r40,0","w":154},"\u00a9":{"d":"152,-258v69,0,130,61,130,130v0,69,-61,130,-130,130v-69,0,-130,-61,-130,-130v0,-69,61,-130,130,-130xm152,-27v55,0,99,-46,99,-101v0,-55,-44,-101,-99,-101v-55,0,-99,46,-99,101v0,55,44,101,99,101xm90,-128v0,-63,69,-93,112,-52r-20,20v-26,-22,-61,-12,-61,32v0,44,35,54,61,32r20,20v-42,40,-112,10,-112,-52","w":287,"k":{"_":222}},"\u00aa":{"d":"17,-152v4,-41,28,-44,86,-43v8,-35,-40,-39,-56,-19r-24,-23v29,-36,118,-26,118,32r0,98r-37,0r0,-13v-27,30,-91,13,-87,-32xm75,-136v23,1,29,-11,28,-34v-21,0,-50,-5,-49,17v0,11,7,17,21,17","w":152},"\u00ab":{"d":"202,-66r0,56r-90,-89r90,-89r0,56r-34,33xm102,-66r0,56r-90,-89r90,-89r0,56r-34,33","w":213,"k":{"_":202}},"\u00ac":{"d":"179,-130r0,96r-44,0r0,-52r-118,0r0,-44r162,0","w":190,"k":{"_":174,"^":197}},"\u00ae":{"d":"152,-258v69,0,130,61,130,130v0,69,-61,130,-130,130v-69,0,-130,-61,-130,-130v0,-69,61,-130,130,-130xm152,-27v55,0,99,-45,99,-101v0,-56,-44,-101,-99,-101v-55,0,-99,45,-99,101v0,56,44,101,99,101xm104,-198v50,-2,103,-3,103,44v0,18,-9,30,-26,37r30,58r-36,0r-25,-54r-15,0r0,54r-31,0r0,-139xm176,-154v0,-18,-21,-19,-41,-18r0,36v20,1,41,1,41,-18","w":287,"k":{"_":222}},"\u00b0":{"d":"86,-262v35,0,66,31,66,67v0,35,-31,66,-66,66v-35,0,-66,-31,-66,-66v0,-36,31,-67,66,-67xm114,-195v0,-16,-12,-29,-28,-29v-16,0,-28,13,-28,29v0,16,12,29,28,29v16,0,28,-13,28,-29","w":157},"\u00b1":{"d":"177,-166r0,43r-57,0r0,58r-44,0r0,-58r-58,0r0,-43r58,0r0,-58r44,0r0,58r57,0xm177,-44r0,44r-159,0r0,-44r159,0","w":182},"\u00b4":{"d":"93,-279r50,0r-41,62r-32,0","w":133},"\u00b6":{"d":"13,-183v0,-90,110,-73,198,-73r0,325r-47,0r0,-281r-36,0r0,281r-47,0r0,-180v-37,2,-68,-35,-68,-72","w":223},"\u00b8":{"d":"82,22r35,0r-16,52r-43,0","w":109},"\u00ba":{"d":"147,-181v0,51,-22,76,-64,76v-42,0,-63,-25,-63,-76v0,-51,21,-77,63,-77v42,0,64,26,64,77xm83,-139v21,0,26,-17,26,-42v0,-26,-4,-43,-26,-43v-22,0,-25,17,-25,43v0,26,4,42,25,42","w":152},"\u00bb":{"d":"124,-188r90,89r-90,89r0,-56r34,-33r-34,-33r0,-56xm24,-188r90,89r-90,89r0,-56r34,-33r-34,-33r0,-56","w":214,"k":{"_":191}},"\u00bf":{"d":"112,-188r0,48r-50,0r0,-48r50,0xm13,-1v0,-43,49,-66,51,-106r47,0v6,48,-51,67,-51,106v0,17,12,30,29,30v18,0,29,-12,29,-30r47,0v1,42,-33,73,-76,72v-43,0,-76,-29,-76,-72","w":153},"\u00c0":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm111,-342r23,61r-31,0r-41,-61r49,0","w":217,"k":{"_":207}},"\u00c1":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm117,-342r50,0r-41,61r-32,0","w":217,"k":{"_":207}},"\u00c2":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm133,-342r47,61r-36,0r-30,-33r-30,33r-36,0r47,-61r38,0","w":217,"k":{"_":207}},"\u00c3":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm49,-310v26,-34,59,-17,88,-6v7,0,14,-4,21,-11r21,21v-26,33,-60,17,-89,6v-7,0,-14,4,-21,11","w":225,"k":{"_":214}},"\u00c4":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm174,-327r0,45r-40,0r0,-45r40,0xm94,-327r0,45r-40,0r0,-45r40,0","w":225,"k":{"_":214}},"\u00c5":{"d":"134,-256r94,256r-52,0r-15,-45r-92,0r-15,45r-52,0r93,-256r39,0xm84,-87r63,0r-31,-94xm114,-365v25,0,47,22,47,47v0,25,-22,47,-47,47v-25,0,-47,-22,-47,-47v0,-25,22,-47,47,-47xm135,-318v0,-12,-9,-21,-21,-21v-12,0,-21,9,-21,21v0,12,9,21,21,21v12,0,21,-9,21,-21","w":217,"k":{"_":207}},"\u00c6":{"d":"333,-45r0,45r-168,0r0,-56r-81,0r-29,56r-54,0r134,-256r198,0r0,44r-118,0r0,61r101,0r0,44r-101,0r0,62r118,0xm105,-98r60,0r0,-114","w":334,"k":{"_":217}},"\u00c7":{"d":"71,-128v0,57,3,86,45,86v23,0,37,-13,43,-37r51,0v-9,50,-43,81,-94,81v-68,0,-95,-43,-95,-130v0,-89,27,-130,95,-130v51,0,85,31,94,81r-51,0v-6,-24,-20,-37,-43,-37v-42,0,-45,30,-45,86xm102,22r34,0r-15,52r-44,0","w":205},"\u00c8":{"d":"199,-45r0,45r-169,0r0,-256r169,0r0,44r-119,0r0,60r101,0r0,45r-101,0r0,62r119,0xm108,-342r23,61r-31,0r-41,-61r49,0","w":194},"\u00c9":{"d":"199,-45r0,45r-169,0r0,-256r169,0r0,44r-119,0r0,60r101,0r0,45r-101,0r0,62r119,0xm114,-342r50,0r-41,61r-32,0","w":194},"\u00ca":{"d":"199,-45r0,45r-169,0r0,-256r169,0r0,44r-119,0r0,60r101,0r0,45r-101,0r0,62r119,0xm130,-342r48,61r-37,0r-29,-33r-30,33r-37,0r48,-61r37,0","w":194},"\u00cb":{"d":"199,-45r0,45r-169,0r0,-256r169,0r0,44r-119,0r0,60r101,0r0,45r-101,0r0,62r119,0xm171,-327r0,45r-40,0r0,-45r40,0xm92,-327r0,45r-40,0r0,-45r40,0","w":194},"\u00cc":{"d":"80,-256r0,256r-50,0r0,-256r50,0xm61,-342r23,61r-31,0r-41,-61r49,0","w":91},"\u00cd":{"d":"80,-256r0,256r-50,0r0,-256r50,0xm50,-342r49,0r-41,61r-31,0","w":92},"\u00ce":{"d":"80,-256r0,256r-50,0r0,-256r50,0xm73,-342r48,61r-37,0r-30,-33r-30,33r-36,0r48,-61r37,0","w":112},"\u00cf":{"d":"80,-256r0,256r-50,0r0,-256r50,0xm115,-327r0,45r-40,0r0,-45r40,0xm35,-327r0,45r-40,0r0,-45r40,0","w":107},"\u00d1":{"d":"226,-256r0,256r-45,0r-101,-157r0,157r-50,0r0,-256r45,0r101,157r0,-157r50,0xm63,-310v26,-34,59,-17,88,-6v7,0,14,-4,21,-11r21,21v-26,33,-60,17,-89,6v-7,0,-14,4,-21,11","w":237,"k":{"_":208}},"\u00d2":{"d":"116,-258v68,0,95,44,95,130v0,86,-27,130,-95,130v-67,0,-95,-43,-95,-130v0,-89,27,-130,95,-130xm116,-42v41,-4,45,-31,45,-86v0,-56,-3,-86,-45,-86v-42,0,-45,30,-45,86v0,57,3,82,45,86xm113,-342r23,61r-32,0r-41,-61r50,0","w":218,"k":{"_":197}},"\u00d3":{"d":"116,-258v68,0,95,44,95,130v0,86,-27,130,-95,130v-67,0,-95,-43,-95,-130v0,-89,27,-130,95,-130xm116,-42v41,-4,45,-31,45,-86v0,-56,-3,-86,-45,-86v-42,0,-45,30,-45,86v0,57,3,82,45,86xm119,-342r49,0r-41,61r-31,0","w":218,"k":{"_":197}},"\u00d6":{"d":"116,-258v68,0,95,44,95,130v0,86,-27,130,-95,130v-67,0,-95,-43,-95,-130v0,-89,27,-130,95,-130xm116,-42v41,-4,45,-31,45,-86v0,-56,-3,-86,-45,-86v-42,0,-45,30,-45,86v0,57,3,82,45,86xm176,-327r0,45r-40,0r0,-45r40,0xm96,-327r0,45r-40,0r0,-45r40,0","w":217,"k":{"_":196}},"\u00d8":{"d":"183,-232v24,27,28,46,28,104v0,102,-52,147,-136,122r-10,22r-36,0r19,-40v-24,-29,-23,-46,-27,-104v-7,-104,50,-144,136,-123r10,-21r35,0xm139,-208v-48,-19,-68,14,-68,80v0,27,2,45,4,54xm93,-49v47,21,68,-14,68,-79v0,-26,-1,-45,-4,-55","w":218,"k":{"_":197}},"\u00d9":{"d":"120,2v-52,0,-94,-38,-94,-90r0,-168r50,0r0,166v0,28,16,48,44,48v28,0,45,-20,45,-48r0,-166r50,0r0,168v1,53,-42,90,-95,90xm117,-342r23,61r-31,0r-41,-61r49,0","w":223,"k":{"_":197}},"\u00da":{"d":"120,2v-52,0,-94,-38,-94,-90r0,-168r50,0r0,166v0,28,16,48,44,48v28,0,45,-20,45,-48r0,-166r50,0r0,168v1,53,-42,90,-95,90xm123,-342r50,0r-41,61r-32,0","w":223,"k":{"_":197}},"\u00dc":{"d":"120,2v-52,0,-94,-38,-94,-90r0,-168r50,0r0,166v0,28,16,48,44,48v28,0,45,-20,45,-48r0,-166r50,0r0,168v1,53,-42,90,-95,90xm180,-327r0,45r-40,0r0,-45r40,0xm100,-327r0,45r-40,0r0,-45r40,0","w":222,"k":{"_":197}},"\u00df":{"d":"107,-258v67,0,105,68,56,103v31,13,22,57,23,97v1,46,-29,62,-79,58r0,-40v45,8,32,-39,32,-74v0,-19,-10,-22,-32,-22r0,-36v22,0,32,-4,32,-22v0,-16,-11,-24,-32,-24v-22,0,-34,11,-34,34r0,184r-47,0r0,-188v0,-47,32,-70,81,-70","w":197,"k":{"_":171}},"\u00e0":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm91,-279r23,62r-32,0r-41,-62r50,0","w":174},"\u00e1":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm97,-279r50,0r-42,62r-31,0"},"\u00e2":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm113,-278r47,61r-36,0r-30,-33r-30,33r-36,0r47,-61r38,0"},"\u00e3":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm29,-246v32,-48,76,11,109,-17r21,20v-27,34,-58,17,-89,7v-7,0,-14,3,-21,10"},"\u00e4":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm154,-263r0,45r-40,0r0,-45r40,0xm74,-263r0,45r-40,0r0,-45r40,0"},"\u00e5":{"d":"21,-164v34,-46,147,-32,147,41r0,123r-46,0r0,-16v-34,36,-109,17,-109,-41v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22xm94,-305v26,0,47,22,47,48v0,25,-22,47,-47,47v-25,0,-47,-21,-47,-47v0,-26,21,-48,47,-48xm115,-257v0,-12,-9,-21,-21,-21v-12,0,-21,9,-21,21v0,12,9,21,21,21v12,0,21,-9,21,-21"},"\u00e6":{"d":"150,-169v49,-49,144,-7,135,69r0,21r-118,0v-3,46,59,54,84,24r28,28v-33,37,-106,40,-137,3v-29,41,-129,37,-129,-33v0,-53,52,-56,108,-54v10,-45,-51,-49,-71,-24r-29,-29v22,-34,103,-34,129,-5xm167,-111r72,0v-1,-26,-13,-40,-36,-40v-23,0,-35,14,-36,40xm85,-36v30,1,38,-13,36,-43v-26,1,-63,-6,-63,21v0,14,9,22,27,22","w":292,"k":{"_":225}},"\u00e7":{"d":"17,-94v-10,-86,93,-125,146,-71r-32,32v-27,-30,-67,-14,-67,39v0,53,39,69,67,39r32,32v-52,54,-157,15,-146,-71xm82,22r35,0r-16,52r-43,0","w":161},"\u00e8":{"d":"99,-190v58,0,87,46,81,111r-117,0v-3,46,59,54,84,24r28,28v-54,55,-158,32,-158,-67v0,-55,29,-96,82,-96xm63,-111r71,0v-1,-26,-12,-40,-35,-40v-23,0,-35,14,-36,40xm96,-279r24,62r-32,0r-41,-62r49,0","w":183,"k":{"_":167}},"\u00e9":{"d":"99,-190v58,0,87,46,81,111r-117,0v-3,46,59,54,84,24r28,28v-54,55,-158,32,-158,-67v0,-55,29,-96,82,-96xm63,-111r71,0v-1,-26,-12,-40,-35,-40v-23,0,-35,14,-36,40xm103,-279r49,0r-41,62r-31,0","w":184,"k":{"_":167}},"\u00ea":{"d":"99,-190v58,0,87,46,81,111r-117,0v-3,46,59,54,84,24r28,28v-54,55,-158,32,-158,-67v0,-55,29,-96,82,-96xm63,-111r71,0v-1,-26,-12,-40,-35,-40v-23,0,-35,14,-36,40xm118,-278r48,61r-36,0r-30,-33r-30,33r-37,0r48,-61r37,0","w":183,"k":{"_":167}},"\u00eb":{"d":"99,-190v58,0,87,46,81,111r-117,0v-3,46,59,54,84,24r28,28v-54,55,-158,32,-158,-67v0,-55,29,-96,82,-96xm63,-111r71,0v-1,-26,-12,-40,-35,-40v-23,0,-35,14,-36,40xm159,-263r0,45r-39,0r0,-45r39,0xm80,-263r0,45r-40,0r0,-45r40,0","w":185,"k":{"_":168}},"\u00ec":{"d":"73,-188r0,188r-47,0r0,-188r47,0xm56,-279r23,62r-31,0r-41,-62r49,0","w":87},"\u00ed":{"d":"73,-188r0,188r-47,0r0,-188r47,0xm44,-279r50,0r-41,62r-32,0","w":87},"\u00ee":{"d":"73,-188r0,188r-47,0r0,-188r47,0xm69,-278r48,61r-37,0r-30,-33r-29,33r-37,0r48,-61r37,0","w":113},"\u00ef":{"d":"73,-188r0,188r-47,0r0,-188r47,0xm109,-263r0,45r-40,0r0,-45r40,0xm30,-263r0,45r-40,0r0,-45r40,0","w":109},"\u00f1":{"d":"72,-170v38,-42,110,-14,110,50r0,120r-47,0r0,-113v0,-20,-11,-35,-31,-35v-54,0,-23,96,-31,148r-47,0r0,-188r46,0r0,18xm39,-246v27,-33,58,-16,88,-7v7,0,14,-3,21,-10r21,20v-26,35,-57,17,-88,7v-7,0,-15,3,-22,10","w":190},"\u00f2":{"d":"177,-94v0,64,-26,96,-79,96v-53,0,-80,-32,-80,-96v0,-64,27,-96,80,-96v53,0,79,32,79,96xm98,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-33,22,-33,54v0,32,6,54,33,54xm93,-279r23,62r-31,0r-41,-62r49,0","w":180},"\u00f3":{"d":"177,-94v0,64,-26,96,-79,96v-53,0,-80,-32,-80,-96v0,-64,27,-96,80,-96v53,0,79,32,79,96xm98,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-33,22,-33,54v0,32,6,54,33,54xm101,-279r49,0r-41,62r-31,0","w":182},"\u00f6":{"d":"177,-94v0,64,-26,96,-79,96v-53,0,-80,-32,-80,-96v0,-64,27,-96,80,-96v53,0,79,32,79,96xm98,-40v27,0,32,-21,32,-54v0,-33,-5,-54,-32,-54v-27,0,-33,22,-33,54v0,32,6,54,33,54xm158,-263r0,45r-40,0r0,-45r40,0xm78,-263r0,45r-40,0r0,-45r40,0","w":184,"k":{"_":166}},"\u00f7":{"d":"121,-199r0,47r-46,0r0,-47r46,0xm179,-125r0,44r-162,0r0,-44r162,0xm121,-53r0,47r-46,0r0,-47r46,0"},"\u00f8":{"d":"177,-94v0,80,-52,112,-117,88r-13,22r-28,0r21,-37v-14,-14,-22,-38,-22,-73v0,-80,54,-112,117,-88r13,-21r29,0v-6,12,-18,26,-21,36v14,14,21,38,21,73xm115,-143v-43,-24,-59,35,-47,80xm80,-45v44,24,59,-34,47,-80","w":187,"k":{"_":170}},"\u00f9":{"d":"134,-17v-39,41,-110,12,-110,-51r0,-120r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0r0,188r-46,0r0,-17xm99,-279r23,62r-32,0r-41,-62r50,0","w":184},"\u00fa":{"d":"134,-17v-39,41,-110,12,-110,-51r0,-120r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0r0,188r-46,0r0,-17xm105,-279r49,0r-41,62r-31,0","w":187},"\u00fc":{"d":"134,-17v-39,41,-110,12,-110,-51r0,-120r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0r0,188r-46,0r0,-17xm162,-263r0,45r-40,0r0,-45r40,0xm82,-263r0,45r-40,0r0,-45r40,0","w":189},"\u00ff":{"d":"127,-188r49,0r-80,218v-11,32,-33,42,-73,39r0,-42v38,-4,27,-4,43,-40r-65,-175r50,0r39,116xm148,-263r0,45r-40,0r0,-45r40,0xm68,-263r0,45r-40,0r0,-45r40,0","w":173},"\u00af":{"d":"147,-258r0,31r-114,0r0,-31r114,0","w":151},"\u02c9":{"d":"147,-258r0,31r-114,0r0,-31r114,0","w":151},"\u00b5":{"d":"181,-188r0,188r-46,0r0,-17v-15,16,-41,25,-63,14r0,72r-47,0r0,-257r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0","w":192},"\u03bc":{"d":"181,-188r0,188r-46,0r0,-17v-15,16,-41,25,-63,14r0,72r-47,0r0,-257r47,0r0,114v0,20,11,34,31,34v55,0,23,-97,31,-148r47,0","w":192},"\u00b7":{"d":"78,-130r0,54r-54,0r0,-54r54,0","w":90},"\u2219":{"d":"78,-130r0,54r-54,0r0,-54r54,0","w":90},"\u00a0":{"w":97},"\u00a6":{"d":"86,-283r0,126r-46,0r0,-126r46,0xm86,-99r0,126r-46,0r0,-126r46,0","w":95},"\u00b2":{"d":"113,-133r0,30r-98,0r0,-30v21,-27,51,-46,65,-79v0,-10,-6,-15,-16,-15v-10,0,-15,6,-15,16r-34,0v0,-28,21,-47,49,-47v46,-1,63,50,31,84r-38,41r56,0","w":122},"\u00b3":{"d":"99,-182v36,23,14,81,-33,81v-30,0,-51,-18,-51,-48r34,0v0,12,6,18,17,18v11,0,17,-6,17,-18v0,-12,-7,-18,-22,-18r0,-29v26,4,26,-31,5,-31v-10,0,-15,5,-15,15r-34,0v0,-27,21,-46,49,-46v41,0,68,55,33,76","w":125},"\u00b9":{"d":"80,-256r0,153r-34,0r0,-115r-32,28r0,-38r32,-28r34,0","w":91},"\u00bc":{"d":"287,-53r0,32r-12,0r0,21r-33,0r0,-21r-63,0r0,-32r51,-101r37,0r-51,101r26,0r0,-22r33,0r0,22r12,0xm188,-256r37,0r-121,256r-37,0xm80,-256r0,153r-34,0r0,-115r-32,28r0,-38r32,-28r34,0","w":286,"k":{"_":217}},"\u00bd":{"d":"295,-31r0,31r-98,0r0,-31v20,-26,51,-45,64,-78v0,-10,-5,-16,-15,-16v-10,0,-15,6,-15,16r-34,0v0,-28,21,-46,49,-46v46,-1,62,49,30,83r-38,41r57,0xm187,-256r36,0r-121,256r-36,0xm80,-256r0,153r-34,0r0,-115r-32,28r0,-38r32,-28r34,0","w":298,"k":{"_":221}},"\u00be":{"d":"297,-53r0,32r-12,0r0,21r-32,0r0,-21r-64,0r0,-32r52,-101r37,0r-52,101r27,0r0,-22r32,0r0,22r12,0xm200,-256r37,0r-122,256r-37,0xm99,-182v36,23,14,81,-33,81v-30,0,-51,-18,-51,-48r34,0v0,12,6,18,17,18v11,0,17,-6,17,-18v0,-12,-7,-18,-22,-18r0,-29v26,4,26,-31,5,-31v-10,0,-15,5,-15,15r-34,0v0,-27,21,-46,49,-46v41,0,68,55,33,76","w":297,"k":{"_":217}},"\u00d0":{"d":"224,-142v0,83,-21,142,-94,142r-92,0r0,-111r-25,0r0,-38r25,0r0,-107r93,0v62,3,93,40,93,114xm88,-44v66,4,86,-8,86,-83v0,-76,-17,-90,-86,-85r0,63r42,0r0,38r-42,0r0,67","w":232,"k":{"_":219}},"\u00d7":{"d":"127,-103r51,51r-30,29r-50,-50r-51,50r-29,-29r50,-51r-50,-51r29,-29r51,51r50,-51r30,29","w":187,"k":{"_":170}},"\u00dd":{"d":"150,-256r55,0r-77,151r0,105r-50,0r0,-105r-77,-151r54,0r48,103xm106,-342r49,0r-41,61r-31,0","w":198,"k":{"_":197}},"\u00de":{"d":"80,-209v74,-7,134,12,134,79v0,66,-59,88,-134,80r0,50r-50,0r0,-256r50,0r0,47xm164,-130v0,-40,-44,-36,-84,-35r0,71v40,1,84,5,84,-36","w":213,"k":{"\u00b4":169,"_":184}},"\u00f0":{"d":"20,-91v0,-61,24,-92,80,-92r-12,-22r-41,0r0,-33r25,0r-12,-21r51,0r11,21r33,0r0,33r-17,0v16,34,38,64,37,114v0,62,-26,93,-77,93v-51,0,-78,-31,-78,-93xm98,-40v25,0,30,-20,30,-51v0,-32,-5,-52,-30,-52v-25,0,-31,21,-31,52v0,31,6,51,31,51","w":182},"\u00fd":{"d":"127,-188r49,0r-80,218v-11,32,-33,42,-73,39r0,-42v38,-4,27,-4,43,-40r-65,-175r50,0r39,116xm91,-279r49,0r-41,62r-31,0","w":173},"\u00fe":{"d":"118,-190v52,2,65,35,65,96v0,61,-12,94,-65,96v-19,0,-34,-6,-45,-19r0,86r-47,0r0,-325r47,0r0,85v11,-13,26,-19,45,-19xm105,-40v27,0,32,-21,31,-54v0,-34,-4,-54,-31,-54v-27,0,-32,20,-32,54v0,34,5,54,32,54","w":187},"\u00ad":{"d":"177,-125r0,44r-159,0r0,-44r159,0","w":189,"k":{"_":172,"^":194}},"\u2212":{"d":"177,-125r0,44r-159,0r0,-44r159,0","w":189}}});

/*
* Tadas Juozapaitis ( kasp3rito@gmail.com )
*/

(function($){
$.fn.vTicker = function(options) {
	var defaults = {
		speed: 700,
		pause: 4000,
		showItems: 2,
		animation: '',
		mousePause: true
	};

	var options = $.extend(defaults, options);

	moveUp = function(obj, height){
		obj = obj.children('ul');
    	first = obj.children('li:first').clone(true);
		
    	obj.animate({top: '-=' + height + 'px'}, options.speed, function() {
        	$(this).children('li:first').remove();
        	$(this).css('top', '0px');
        });
		
		if(options.animation == 'fade')
		{
			obj.children('li:first').fadeOut(options.speed);
			obj.children('li:last').hide().fadeIn(options.speed);
		}

    	first.appendTo(obj);
	};
	
	return this.each(function() {
		obj = $(this);
		maxHeight = 0;

		obj.css({overflow: 'hidden', position: 'relative'})
			.children('ul').css({position: 'absolute', margin: 0, padding: 0})
			.children('li').css({margin: 0, padding: 0});

		obj.children('ul').children('li').each(function(){
			if($(this).height() > maxHeight)
			{
				maxHeight = $(this).height();
			}
		});

		obj.children('ul').children('li').each(function(){
			$(this).height(maxHeight);
		});

		obj.height(maxHeight * options.showItems);
		
    	interval = setInterval('moveUp(obj, maxHeight)', options.pause);
		
		if(options.mousePause)
		{
			obj.bind("mouseenter",function(){
				clearInterval(interval);
			}).bind("mouseleave",function(){
				interval = setInterval('moveUp(obj, maxHeight)', options.pause);
			});
		}
	});
};
})(jQuery);

/*
 * stickyfloat - jQuery plugin for verticaly floating anything in a constrained area
 * 
 * Example: jQuery('#menu').stickyfloat({duration: 400});
 * parameters:
 * 		duration 	- the duration of the animation
 *		startOffset - the amount of scroll offset after it the animations kicks in
 *		offsetY		- the offset from the top when the object is animated
 *		lockBottom	- 'true' by default, set to false if you don't want your floating box to stop at parent's bottom
 * $Version: 05.16.2009 r1
 * Copyright (c) 2009 Yair Even-Or
 * vsync.design@gmail.com
 */

$.fn.stickyfloat = function(options, lockBottom) {
	var $obj 				= this;
	/*var parentPaddingTop 	= parseInt($obj.parent().css('padding-top'));*/
	var parentPaddingTop 	= 0;
	var isstop              = "false"; 
	var startOffset 		= $obj.parent().offset().top;
	var opts 				= $.extend({ startOffset: startOffset, offsetY: parentPaddingTop, duration: 200, lockBottom: true }, options);
	
	/*$obj.css({ position: 'absolute' });*/
	
	if(opts.lockBottom){
		var bottomPos = $obj.parent().height() - $obj.height() + parentPaddingTop; //get the maximum scrollTop value
		if( bottomPos < 0 )
			bottomPos = 0;
	}
	
	$(window).scroll(function () { 
		$obj.stop(); // stop all calculations on scroll event

		var pastStartOffset			= $(document).scrollTop() > opts.startOffset;	// check if the window was scrolled down more than the start offset declared.
		var objFartherThanTopPos	= $obj.offset().top > startOffset;	// check if the object is at it's top position (starting point)
		var objBiggerThanWindow 	= $obj.outerHeight() < $(window).height();	// if the window size is smaller than the Obj size, then do not animate.
		
		// if window scrolled down more than startOffset OR obj position is greater than
		// the top position possible (+ offsetY) AND window size must be bigger than Obj size
		if( (pastStartOffset || objFartherThanTopPos) && objBiggerThanWindow ){ 
			var newpos = ($(document).scrollTop() -startOffset + opts.offsetY );
			if ( newpos > bottomPos )
				newpos = bottomPos;
			if ( $(document).scrollTop() < opts.startOffset ) // if window scrolled < starting offset, then reset Obj position (opts.offsetY);
				newpos = parentPaddingTop;

			$obj.animate({ top: newpos }, opts.duration );
		}
	});
};