{"version":3,"file":"js_thirdp_libs_webpack.js","mappings":"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","sources":["webpack:///./site_media/jquery.powertip.js","webpack:///./src_libs/jquery-1.9.0.js","webpack:///./src_libs/jquery.ba-bbq.js","webpack:///./src_libs/jquery.form.js","webpack:///./src_libs/jquery.placeholder.js","webpack:///./src_libs/jquery.popupWindow.js","webpack:///./src_libs/jquery.tokenize.js","webpack:///./src_libs/jquery.validationEngine-en.js","webpack:///./src_libs/jquery.validationEngine.js","webpack:///./src_libs/json2.js","webpack:///./src_libs/jstz.js","webpack:///./src_libs/lscache.js","webpack:///external var \"jQuery\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/amd options","webpack:///webpack/startup"],"sourcesContent":["/*!\n PowerTip v1.3.2 (2022-03-06)\n https://stevenbenner.github.io/jquery-powertip/\n Copyright (c) 2022 Steven Benner (https://stevenbenner.com/).\n Released under MIT license.\n https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt\n*/\n(function(root, factory) {\n\t// support loading the plugin via common patterns\n\tif (typeof define === 'function' && define.amd) {\n\t\t// load the plugin as an amd module\n\t\tdefine([ 'jquery' ], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// load the plugin as a commonjs module\n\t\tmodule.exports = factory(require('jquery'));\n\t} else {\n\t\t// load the plugin as a global\n\t\tfactory(root.jQuery);\n\t}\n}(this, function($) {\n\t// useful private variables\n\tvar $document = $(document),\n\t\t$window = $(window),\n\t\t$body = $('body');\n\n\t// constants\n\tvar DATA_DISPLAYCONTROLLER = 'displayController',\n\t\tDATA_HASACTIVEHOVER = 'hasActiveHover',\n\t\tDATA_FORCEDOPEN = 'forcedOpen',\n\t\tDATA_HASMOUSEMOVE = 'hasMouseMove',\n\t\tDATA_MOUSEONTOTIP = 'mouseOnToPopup',\n\t\tDATA_ORIGINALTITLE = 'originalTitle',\n\t\tDATA_POWERTIP = 'powertip',\n\t\tDATA_POWERTIPJQ = 'powertipjq',\n\t\tDATA_POWERTIPTARGET = 'powertiptarget',\n\t\tEVENT_NAMESPACE = '.powertip',\n\t\tRAD2DEG = 180 / Math.PI,\n\t\tMOUSE_EVENTS = [\n\t\t\t'click',\n\t\t\t'dblclick',\n\t\t\t'mousedown',\n\t\t\t'mouseup',\n\t\t\t'mousemove',\n\t\t\t'mouseover',\n\t\t\t'mouseout',\n\t\t\t'mouseenter',\n\t\t\t'mouseleave',\n\t\t\t'contextmenu'\n\t\t];\n\n\t/**\n\t * Session data\n\t * Private properties global to all powerTip instances\n\t */\n\tvar session = {\n\t\telements: [],\n\t\ttooltips: null,\n\t\tisTipOpen: false,\n\t\tisFixedTipOpen: false,\n\t\tisClosing: false,\n\t\ttipOpenImminent: false,\n\t\tactiveHover: null,\n\t\tcurrentX: 0,\n\t\tcurrentY: 0,\n\t\tpreviousX: 0,\n\t\tpreviousY: 0,\n\t\tdesyncTimeout: null,\n\t\tcloseDelayTimeout: null,\n\t\tmouseTrackingActive: false,\n\t\tdelayInProgress: false,\n\t\twindowWidth: 0,\n\t\twindowHeight: 0,\n\t\tscrollTop: 0,\n\t\tscrollLeft: 0\n\t};\n\n\t/**\n\t * Collision enumeration\n\t * @enum {number}\n\t */\n\tvar Collision = {\n\t\tnone: 0,\n\t\ttop: 1,\n\t\tbottom: 2,\n\t\tleft: 4,\n\t\tright: 8\n\t};\n\n\t/**\n\t * Display hover tooltips on the matched elements.\n\t * @param {(Object|string)=} opts The options object to use for the plugin, or\n\t * the name of a method to invoke on the first matched element.\n\t * @param {*=} [arg] Argument for an invoked method (optional).\n\t * @return {jQuery} jQuery object for the matched selectors.\n\t */\n\t$.fn.powerTip = function(opts, arg) {\n\t\tvar targetElements = this,\n\t\t\toptions,\n\t\t\ttipController;\n\n\t\t// don't do any work if there were no matched elements\n\t\tif (!targetElements.length) {\n\t\t\treturn targetElements;\n\t\t}\n\n\t\t// handle api method calls on the plugin, e.g. powerTip('hide')\n\t\tif ($.type(opts) === 'string' && $.powerTip[opts]) {\n\t\t\treturn $.powerTip[opts].call(targetElements, targetElements, arg);\n\t\t}\n\n\t\t// extend options\n\t\toptions = $.extend({}, $.fn.powerTip.defaults, opts);\n\n\t\t// handle repeated powerTip calls on the same element by destroying any\n\t\t// original instance hooked to it and replacing it with this call\n\t\t$.powerTip.destroy(targetElements);\n\n\t\t// instantiate the TooltipController for this instance\n\t\ttipController = new TooltipController(options);\n\n\t\t// hook mouse and viewport dimension tracking\n\t\tinitTracking();\n\n\t\t// setup the elements\n\t\ttargetElements.each(function elementSetup() {\n\t\t\tvar $this = $(this),\n\t\t\t\tdataPowertip = $this.data(DATA_POWERTIP),\n\t\t\t\tdataElem = $this.data(DATA_POWERTIPJQ),\n\t\t\t\tdataTarget = $this.data(DATA_POWERTIPTARGET),\n\t\t\t\ttitle = $this.attr('title');\n\n\t\t\t// attempt to use title attribute text if there is no data-powertip,\n\t\t\t// data-powertipjq or data-powertiptarget. If we do use the title\n\t\t\t// attribute, delete the attribute so the browser will not show it\n\t\t\tif (!dataPowertip && !dataTarget && !dataElem && title) {\n\t\t\t\t$this.data(DATA_POWERTIP, title);\n\t\t\t\t$this.data(DATA_ORIGINALTITLE, title);\n\t\t\t\t$this.removeAttr('title');\n\t\t\t}\n\n\t\t\t// create hover controllers for each element\n\t\t\t$this.data(\n\t\t\t\tDATA_DISPLAYCONTROLLER,\n\t\t\t\tnew DisplayController($this, options, tipController)\n\t\t\t);\n\t\t});\n\n\t\t// attach events to matched elements if the manual option is not enabled\n\t\tif (!options.manual) {\n\t\t\t// attach open events\n\t\t\t$.each(options.openEvents, function(idx, evt) {\n\t\t\t\tif ($.inArray(evt, options.closeEvents) > -1) {\n\t\t\t\t\t// event is in both openEvents and closeEvents, so toggle it\n\t\t\t\t\ttargetElements.on(evt + EVENT_NAMESPACE, function elementToggle(event) {\n\t\t\t\t\t\t$.powerTip.toggle(this, event);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttargetElements.on(evt + EVENT_NAMESPACE, function elementOpen(event) {\n\t\t\t\t\t\t$.powerTip.show(this, event);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// attach close events\n\t\t\t$.each(options.closeEvents, function(idx, evt) {\n\t\t\t\tif ($.inArray(evt, options.openEvents) < 0) {\n\t\t\t\t\ttargetElements.on(evt + EVENT_NAMESPACE, function elementClose(event) {\n\t\t\t\t\t\t// set immediate to true for any event without mouse info\n\t\t\t\t\t\t$.powerTip.hide(this, !isMouseEvent(event));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// attach escape key close event\n\t\t\ttargetElements.on('keydown' + EVENT_NAMESPACE, function elementKeyDown(event) {\n\t\t\t\t// always close tooltip when the escape key is pressed\n\t\t\t\tif (event.keyCode === 27) {\n\t\t\t\t\t$.powerTip.hide(this, true);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// remember elements that the plugin is attached to\n\t\tsession.elements.push(targetElements);\n\n\t\treturn targetElements;\n\t};\n\n\t/**\n\t * Default options for the powerTip plugin.\n\t */\n\t$.fn.powerTip.defaults = {\n\t\tfadeInTime: 200,\n\t\tfadeOutTime: 100,\n\t\tfollowMouse: false,\n\t\tpopupId: 'powerTip',\n\t\tpopupClass: null,\n\t\tintentSensitivity: 7,\n\t\tintentPollInterval: 100,\n\t\tcloseDelay: 100,\n\t\tplacement: 'n',\n\t\tsmartPlacement: false,\n\t\toffset: 10,\n\t\tmouseOnToPopup: false,\n\t\tmanual: false,\n\t\topenEvents: [ 'mouseenter', 'focus' ],\n\t\tcloseEvents: [ 'mouseleave', 'blur' ],\n\t\t// [speedplane] - When true, add an additional inner div to the\n\t\t// tooltip, allowing for additional CSS styling options.\n\t\twrapDiv : true\n\t};\n\n\t/**\n\t * Default smart placement priority lists.\n\t * The first item in the array is the highest priority, the last is the lowest.\n\t * The last item is also the default, which will be used if all previous options\n\t * do not fit.\n\t */\n\t$.fn.powerTip.smartPlacementLists = {\n\t\tn: [ 'n', 'ne', 'nw', 's' ],\n\t\te: [ 'e', 'ne', 'se', 'w', 'nw', 'sw', 'n', 's', 'e' ],\n\t\ts: [ 's', 'se', 'sw', 'n' ],\n\t\tw: [ 'w', 'nw', 'sw', 'e', 'ne', 'se', 'n', 's', 'w' ],\n\t\tnw: [ 'nw', 'w', 'sw', 'n', 's', 'se', 'nw' ],\n\t\tne: [ 'ne', 'e', 'se', 'n', 's', 'sw', 'ne' ],\n\t\tsw: [ 'sw', 'w', 'nw', 's', 'n', 'ne', 'sw' ],\n\t\tse: [ 'se', 'e', 'ne', 's', 'n', 'nw', 'se' ],\n\t\t'nw-alt': [ 'nw-alt', 'n', 'ne-alt', 'sw-alt', 's', 'se-alt', 'w', 'e' ],\n\t\t'ne-alt': [ 'ne-alt', 'n', 'nw-alt', 'se-alt', 's', 'sw-alt', 'e', 'w' ],\n\t\t'sw-alt': [ 'sw-alt', 's', 'se-alt', 'nw-alt', 'n', 'ne-alt', 'w', 'e' ],\n\t\t'se-alt': [ 'se-alt', 's', 'sw-alt', 'ne-alt', 'n', 'nw-alt', 'e', 'w' ]\n\t};\n\n\t/**\n\t * Public API\n\t */\n\t$.powerTip = {\n\t\t/**\n\t\t * Attempts to show the tooltip for the specified element.\n\t\t * @param {jQuery|Element} element The element to open the tooltip for.\n\t\t * @param {jQuery.Event=} event jQuery event for hover intent and mouse\n\t\t * tracking (optional).\n\t\t * @return {jQuery|Element} The original jQuery object or DOM Element.\n\t\t */\n\t\tshow: function apiShowTip(element, event) {\n\t\t\t// if we were given a mouse event then run the hover intent testing,\n\t\t\t// otherwise, simply show the tooltip asap\n\t\t\tif (isMouseEvent(event)) {\n\t\t\t\ttrackMouse(event);\n\t\t\t\tsession.previousX = event.pageX;\n\t\t\t\tsession.previousY = event.pageY;\n\t\t\t\t$(element).data(DATA_DISPLAYCONTROLLER).show();\n\t\t\t} else {\n\t\t\t\t$(element).first().data(DATA_DISPLAYCONTROLLER).show(true, true);\n\t\t\t}\n\t\t\treturn element;\n\t\t},\n\n\t\t/**\n\t\t * Repositions the tooltip on the element.\n\t\t * @param {jQuery|Element} element The element the tooltip is shown for.\n\t\t * @return {jQuery|Element} The original jQuery object or DOM Element.\n\t\t */\n\t\treposition: function apiResetPosition(element) {\n\t\t\t$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();\n\t\t\treturn element;\n\t\t},\n\n\t\t/**\n\t\t * Attempts to close any open tooltips.\n\t\t * @param {(jQuery|Element)=} element The element with the tooltip that\n\t\t * should be closed (optional).\n\t\t * @param {boolean=} immediate Disable close delay (optional).\n\t\t * @return {jQuery|Element|undefined} The original jQuery object or DOM\n\t\t * Element, if one was specified.\n\t\t */\n\t\thide: function apiCloseTip(element, immediate) {\n\t\t\tvar displayController;\n\n\t\t\t// set immediate to true when no element is specified\n\t\t\timmediate = element ? immediate : true;\n\n\t\t\t// find the relevant display controller\n\t\t\tif (element) {\n\t\t\t\tdisplayController = $(element).first().data(DATA_DISPLAYCONTROLLER);\n\t\t\t} else if (session.activeHover) {\n\t\t\t\tdisplayController = session.activeHover.data(DATA_DISPLAYCONTROLLER);\n\t\t\t}\n\n\t\t\t// if found, hide the tip\n\t\t\tif (displayController) {\n\t\t\t\tdisplayController.hide(immediate);\n\t\t\t}\n\n\t\t\treturn element;\n\t\t},\n\n\t\t/**\n\t\t * Toggles the tooltip for the specified element. This will open a closed\n\t\t * tooltip, or close an open tooltip.\n\t\t * @param {jQuery|Element} element The element with the tooltip that\n\t\t * should be toggled.\n\t\t * @param {jQuery.Event=} event jQuery event for hover intent and mouse\n\t\t * tracking (optional).\n\t\t * @return {jQuery|Element} The original jQuery object or DOM Element.\n\t\t */\n\t\ttoggle: function apiToggle(element, event) {\n\t\t\tif (session.activeHover && session.activeHover.is(element)) {\n\t\t\t\t// tooltip for element is active, so close it\n\t\t\t\t$.powerTip.hide(element, !isMouseEvent(event));\n\t\t\t} else {\n\t\t\t\t// tooltip for element is not active, so open it\n\t\t\t\t$.powerTip.show(element, event);\n\t\t\t}\n\t\t\treturn element;\n\t\t},\n\n\t\t/**\n\t\t * Destroy and roll back any powerTip() instance on the specified elements.\n\t\t * If no elements are specified then all elements that the plugin is\n\t\t * currently attached to will be rolled back.\n\t\t * @param {(jQuery|Element)=} element The element with the powerTip instance.\n\t\t * @return {jQuery|Element|undefined} The original jQuery object or DOM\n\t\t * Element, if one was specified.\n\t\t */\n\t\tdestroy: function apiDestroy(element) {\n\t\t\tvar $element,\n\t\t\t\tfoundPowerTip = false,\n\t\t\t\trunTipCheck = true,\n\t\t\t\ti;\n\n\t\t\t// if the plugin is not hooked to any elements then there is no point\n\t\t\t// trying to destroy anything, or dealing with the possible errors\n\t\t\tif (session.elements.length === 0) {\n\t\t\t\treturn element;\n\t\t\t}\n\n\t\t\tif (element) {\n\t\t\t\t// make sure we're working with a jQuery object\n\t\t\t\t$element = $(element);\n\t\t\t} else {\n\t\t\t\t// if we are being asked to destroy all instances, then iterate the\n\t\t\t\t// array of jQuery objects that we've been tracking and call destroy\n\t\t\t\t// for each group\n\t\t\t\t$.each(session.elements, function cleanElsTracking(idx, els) {\n\t\t\t\t\t$.powerTip.destroy(els);\n\t\t\t\t});\n\n\t\t\t\t// reset elements list\n\t\t\t\t// if a dev calls .remove() on an element before calling this\n\t\t\t\t// destroy() method then jQuery will have deleted all of the .data()\n\t\t\t\t// information, so it will not be recognized as a PowerTip element,\n\t\t\t\t// which could leave dangling references in this array - causing\n\t\t\t\t// future destroy() (no param) invocations to not fully clean up -\n\t\t\t\t// so make sure the array is empty and set a flag to skip the\n\t\t\t\t// element check before proceeding\n\t\t\t\tsession.elements = [];\n\t\t\t\trunTipCheck = false;\n\n\t\t\t\t// set $element to an empty jQuery object to proceed\n\t\t\t\t$element = $();\n\t\t\t}\n\n\t\t\t// check if PowerTip has been set on any of the elements - if PowerTip\n\t\t\t// has not been found then return early to skip the slow .not()\n\t\t\t// operation below - only if we did not reset the elements list above\n\t\t\tif (runTipCheck) {\n\t\t\t\t$element.each(function checkForPowerTip() {\n\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\tif ($this.data(DATA_DISPLAYCONTROLLER)) {\n\t\t\t\t\t\tfoundPowerTip = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t\tif (!foundPowerTip) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if a tooltip is currently open for an element we are being asked to\n\t\t\t// destroy then it should be forced to close\n\t\t\tif (session.isTipOpen && !session.isClosing && $element.filter(session.activeHover).length > 0) {\n\t\t\t\t// if the tooltip is waiting to close then cancel that delay timer\n\t\t\t\tif (session.delayInProgress) {\n\t\t\t\t\tsession.activeHover.data(DATA_DISPLAYCONTROLLER).cancel();\n\t\t\t\t}\n\t\t\t\t// hide the tooltip, immediately\n\t\t\t\t$.powerTip.hide(session.activeHover, true);\n\t\t\t}\n\n\t\t\t// unhook events and destroy plugin changes to each element\n\t\t\t$element.off(EVENT_NAMESPACE).each(function destroy() {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tdataAttributes = [\n\t\t\t\t\t\tDATA_ORIGINALTITLE,\n\t\t\t\t\t\tDATA_DISPLAYCONTROLLER,\n\t\t\t\t\t\tDATA_HASACTIVEHOVER,\n\t\t\t\t\t\tDATA_FORCEDOPEN\n\t\t\t\t\t];\n\n\t\t\t\t// revert title attribute\n\t\t\t\tif ($this.data(DATA_ORIGINALTITLE)) {\n\t\t\t\t\t$this.attr('title', $this.data(DATA_ORIGINALTITLE));\n\t\t\t\t\tdataAttributes.push(DATA_POWERTIP);\n\t\t\t\t}\n\n\t\t\t\t// remove data attributes\n\t\t\t\t$this.removeData(dataAttributes);\n\t\t\t});\n\n\t\t\t// remove destroyed element from active elements collection\n\t\t\tfor (i = session.elements.length - 1; i >= 0; i--) {\n\t\t\t\tsession.elements[i] = session.elements[i].not($element);\n\n\t\t\t\t// check if there are any more elements left in this collection, if\n\t\t\t\t// there is not then remove it from the elements array\n\t\t\t\tif (session.elements[i].length === 0) {\n\t\t\t\t\tsession.elements.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if there are no active elements left then we will unhook all of the\n\t\t\t// events that we've bound code to and remove the tooltip elements\n\t\t\tif (session.elements.length === 0) {\n\t\t\t\t$window.off(EVENT_NAMESPACE);\n\t\t\t\t$document.off(EVENT_NAMESPACE);\n\t\t\t\tsession.mouseTrackingActive = false;\n\t\t\t\tif (session.tooltips) {\n\t\t\t\t\tsession.tooltips.remove();\n\t\t\t\t\tsession.tooltips = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn element;\n\t\t}\n\t};\n\n\t// API aliasing\n\t// for backwards compatibility with versions earlier than 1.2.0\n\t$.powerTip.showTip = $.powerTip.show;\n\t$.powerTip.closeTip = $.powerTip.hide;\n\n\t/**\n\t * Creates a new CSSCoordinates object.\n\t * @private\n\t * @constructor\n\t */\n\tfunction CSSCoordinates() {\n\t\tvar me = this;\n\n\t\t// initialize object properties\n\t\tme.top = 'auto';\n\t\tme.left = 'auto';\n\t\tme.right = 'auto';\n\t\tme.bottom = 'auto';\n\n\t\t/**\n\t\t * Set a property to a value.\n\t\t * @private\n\t\t * @param {string} property The name of the property.\n\t\t * @param {number} value The value of the property.\n\t\t */\n\t\tme.set = function(property, value) {\n\t\t\tif ($.isNumeric(value)) {\n\t\t\t\tme[property] = Math.round(value);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Creates a new tooltip display controller.\n\t * @private\n\t * @constructor\n\t * @param {jQuery} element The element that this controller will handle.\n\t * @param {Object} options Options object containing settings.\n\t * @param {TooltipController} tipController The TooltipController object for\n\t * this instance.\n\t */\n\tfunction DisplayController(element, options, tipController) {\n\t\tvar hoverTimer = null,\n\t\t\tmyCloseDelay = null;\n\n\t\t/**\n\t\t * Begins the process of showing a tooltip.\n\t\t * @private\n\t\t * @param {boolean=} immediate Skip intent testing (optional).\n\t\t * @param {boolean=} forceOpen Ignore cursor position and force tooltip to\n\t\t * open (optional).\n\t\t */\n\t\tfunction openTooltip(immediate, forceOpen) {\n\t\t\tcancelTimer();\n\t\t\tif (!element.data(DATA_HASACTIVEHOVER)) {\n\t\t\t\tif (!immediate) {\n\t\t\t\t\tsession.tipOpenImminent = true;\n\t\t\t\t\thoverTimer = setTimeout(\n\t\t\t\t\t\tfunction intentDelay() {\n\t\t\t\t\t\t\thoverTimer = null;\n\t\t\t\t\t\t\tcheckForIntent();\n\t\t\t\t\t\t},\n\t\t\t\t\t\toptions.intentPollInterval\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tif (forceOpen) {\n\t\t\t\t\t\telement.data(DATA_FORCEDOPEN, true);\n\t\t\t\t\t}\n\t\t\t\t\tcloseAnyDelayed();\n\t\t\t\t\ttipController.showTip(element);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// cursor left and returned to this element, cancel close\n\t\t\t\tcancelClose();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Begins the process of closing a tooltip.\n\t\t * @private\n\t\t * @param {boolean=} disableDelay Disable close delay (optional).\n\t\t */\n\t\tfunction closeTooltip(disableDelay) {\n\t\t\t// if this instance already has a close delay in progress then halt it\n\t\t\tif (myCloseDelay) {\n\t\t\t\tmyCloseDelay = session.closeDelayTimeout = clearTimeout(myCloseDelay);\n\t\t\t\tsession.delayInProgress = false;\n\t\t\t}\n\t\t\tcancelTimer();\n\t\t\tsession.tipOpenImminent = false;\n\t\t\tif (element.data(DATA_HASACTIVEHOVER)) {\n\t\t\t\telement.data(DATA_FORCEDOPEN, false);\n\t\t\t\tif (!disableDelay) {\n\t\t\t\t\tsession.delayInProgress = true;\n\t\t\t\t\tsession.closeDelayTimeout = setTimeout(\n\t\t\t\t\t\tfunction closeDelay() {\n\t\t\t\t\t\t\tsession.closeDelayTimeout = null;\n\t\t\t\t\t\t\ttipController.hideTip(element);\n\t\t\t\t\t\t\tsession.delayInProgress = false;\n\t\t\t\t\t\t\tmyCloseDelay = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\toptions.closeDelay\n\t\t\t\t\t);\n\t\t\t\t\t// save internal reference close delay id so we can check if the\n\t\t\t\t\t// active close delay belongs to this instance\n\t\t\t\t\tmyCloseDelay = session.closeDelayTimeout;\n\t\t\t\t} else {\n\t\t\t\t\ttipController.hideTip(element);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks mouse position to make sure that the user intended to hover on the\n\t\t * specified element before showing the tooltip.\n\t\t * @private\n\t\t */\n\t\tfunction checkForIntent() {\n\t\t\t// calculate mouse position difference\n\t\t\tvar xDifference = Math.abs(session.previousX - session.currentX),\n\t\t\t\tyDifference = Math.abs(session.previousY - session.currentY),\n\t\t\t\ttotalDifference = xDifference + yDifference;\n\n\t\t\t// check if difference has passed the sensitivity threshold\n\t\t\tif (totalDifference < options.intentSensitivity) {\n\t\t\t\tcancelClose();\n\t\t\t\tcloseAnyDelayed();\n\t\t\t\ttipController.showTip(element);\n\t\t\t} else {\n\t\t\t\t// try again\n\t\t\t\tsession.previousX = session.currentX;\n\t\t\t\tsession.previousY = session.currentY;\n\t\t\t\topenTooltip();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Cancels active hover timer.\n\t\t * @private\n\t\t * @param {boolean=} stopClose Cancel any active close delay timer.\n\t\t */\n\t\tfunction cancelTimer(stopClose) {\n\t\t\thoverTimer = clearTimeout(hoverTimer);\n\t\t\t// cancel the current close delay if the active close delay is for this\n\t\t\t// element or the stopClose argument is true\n\t\t\tif (session.closeDelayTimeout && myCloseDelay === session.closeDelayTimeout || stopClose) {\n\t\t\t\tcancelClose();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Cancels any active close delay timer.\n\t\t * @private\n\t\t */\n\t\tfunction cancelClose() {\n\t\t\tsession.closeDelayTimeout = clearTimeout(session.closeDelayTimeout);\n\t\t\tsession.delayInProgress = false;\n\t\t}\n\n\t\t/**\n\t\t * Asks any tooltips waiting on their close delay to close now.\n\t\t * @private\n\t\t */\n\t\tfunction closeAnyDelayed() {\n\t\t\t// if another element is waiting for its close delay then we should ask\n\t\t\t// it to close immediately so we can proceed without unexpected timeout\n\t\t\t// code being run during this tooltip's lifecycle\n\t\t\tif (session.delayInProgress && session.activeHover && !session.activeHover.is(element)) {\n\t\t\t\tsession.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Repositions the tooltip on this element.\n\t\t * @private\n\t\t */\n\t\tfunction repositionTooltip() {\n\t\t\ttipController.resetPosition(element);\n\t\t}\n\n\t\t// expose the methods\n\t\tthis.show = openTooltip;\n\t\tthis.hide = closeTooltip;\n\t\tthis.cancel = cancelTimer;\n\t\tthis.resetPosition = repositionTooltip;\n\t}\n\n\t/**\n\t * Creates a new Placement Calculator.\n\t * @private\n\t * @constructor\n\t */\n\tfunction PlacementCalculator() {\n\t\t/**\n\t\t * Compute the CSS position to display a tooltip at the specified placement\n\t\t * relative to the specified element.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t * @param {string} placement The placement for the tooltip.\n\t\t * @param {number} tipWidth Width of the tooltip element in pixels.\n\t\t * @param {number} tipHeight Height of the tooltip element in pixels.\n\t\t * @param {number} offset Distance to offset tooltips in pixels.\n\t\t * @return {CSSCoordinates} A CSSCoordinates object with the position.\n\t\t */\n\t\tfunction computePlacementCoords(element, placement, tipWidth, tipHeight, offset) {\n\t\t\tvar placementBase = placement.split('-')[0], // ignore 'alt' for corners\n\t\t\t\tcoords = new CSSCoordinates(),\n\t\t\t\tposition;\n\n\t\t\tif (isSvgElement(element)) {\n\t\t\t\tposition = getSvgPlacement(element, placementBase);\n\t\t\t} else {\n\t\t\t\tposition = getHtmlPlacement(element, placementBase);\n\t\t\t}\n\n\t\t\t// calculate the appropriate x and y position in the document\n\t\t\tswitch (placement) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tcoords.set('left', position.left - (tipWidth / 2));\n\t\t\t\t\tcoords.set('bottom', session.windowHeight - position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'e':\n\t\t\t\t\tcoords.set('left', position.left + offset);\n\t\t\t\t\tcoords.set('top', position.top - (tipHeight / 2));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tcoords.set('left', position.left - (tipWidth / 2));\n\t\t\t\t\tcoords.set('top', position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'w':\n\t\t\t\t\tcoords.set('top', position.top - (tipHeight / 2));\n\t\t\t\t\tcoords.set('right', session.windowWidth - position.left + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'nw':\n\t\t\t\t\tcoords.set('bottom', session.windowHeight - position.top + offset);\n\t\t\t\t\tcoords.set('right', session.windowWidth - position.left - 20);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'nw-alt':\n\t\t\t\t\tcoords.set('left', position.left);\n\t\t\t\t\tcoords.set('bottom', session.windowHeight - position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ne':\n\t\t\t\t\tcoords.set('left', position.left - 20);\n\t\t\t\t\tcoords.set('bottom', session.windowHeight - position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ne-alt':\n\t\t\t\t\tcoords.set('bottom', session.windowHeight - position.top + offset);\n\t\t\t\t\tcoords.set('right', session.windowWidth - position.left);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sw':\n\t\t\t\t\tcoords.set('top', position.top + offset);\n\t\t\t\t\tcoords.set('right', session.windowWidth - position.left - 20);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sw-alt':\n\t\t\t\t\tcoords.set('left', position.left);\n\t\t\t\t\tcoords.set('top', position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'se':\n\t\t\t\t\tcoords.set('left', position.left - 20);\n\t\t\t\t\tcoords.set('top', position.top + offset);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'se-alt':\n\t\t\t\t\tcoords.set('top', position.top + offset);\n\t\t\t\t\tcoords.set('right', session.windowWidth - position.left);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn coords;\n\t\t}\n\n\t\t/**\n\t\t * Finds the tooltip attachment point in the document for a HTML DOM element\n\t\t * for the specified placement.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t * @param {string} placement The placement for the tooltip.\n\t\t * @return {Object} An object with the top,left position values.\n\t\t */\n\t\tfunction getHtmlPlacement(element, placement) {\n\t\t\tvar objectOffset = element.offset(),\n\t\t\t\tobjectWidth = element.outerWidth(),\n\t\t\t\tobjectHeight = element.outerHeight(),\n\t\t\t\tleft,\n\t\t\t\ttop;\n\n\t\t\t// calculate the appropriate x and y position in the document\n\t\t\tswitch (placement) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tleft = objectOffset.left + objectWidth / 2;\n\t\t\t\t\ttop = objectOffset.top;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'e':\n\t\t\t\t\tleft = objectOffset.left + objectWidth;\n\t\t\t\t\ttop = objectOffset.top + objectHeight / 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tleft = objectOffset.left + objectWidth / 2;\n\t\t\t\t\ttop = objectOffset.top + objectHeight;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'w':\n\t\t\t\t\tleft = objectOffset.left;\n\t\t\t\t\ttop = objectOffset.top + objectHeight / 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'nw':\n\t\t\t\t\tleft = objectOffset.left;\n\t\t\t\t\ttop = objectOffset.top;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ne':\n\t\t\t\t\tleft = objectOffset.left + objectWidth;\n\t\t\t\t\ttop = objectOffset.top;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sw':\n\t\t\t\t\tleft = objectOffset.left;\n\t\t\t\t\ttop = objectOffset.top + objectHeight;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'se':\n\t\t\t\t\tleft = objectOffset.left + objectWidth;\n\t\t\t\t\ttop = objectOffset.top + objectHeight;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: top,\n\t\t\t\tleft: left\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Finds the tooltip attachment point in the document for a SVG element for\n\t\t * the specified placement.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t * @param {string} placement The placement for the tooltip.\n\t\t * @return {Object} An object with the top,left position values.\n\t\t */\n\t\tfunction getSvgPlacement(element, placement) {\n\t\t\tvar svgElement = element.closest('svg')[0],\n\t\t\t\tdomElement = element[0],\n\t\t\t\tpoint = svgElement.createSVGPoint(),\n\t\t\t\tboundingBox = domElement.getBBox(),\n\t\t\t\tmatrix = domElement.getScreenCTM(),\n\t\t\t\thalfWidth = boundingBox.width / 2,\n\t\t\t\thalfHeight = boundingBox.height / 2,\n\t\t\t\tplacements = [],\n\t\t\t\tplacementKeys = [ 'nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w' ],\n\t\t\t\tcoords,\n\t\t\t\trotation,\n\t\t\t\tsteps,\n\t\t\t\tx;\n\n\t\t\t/**\n\t\t\t * Transform and append the current points to the placements list.\n\t\t\t * @private\n\t\t\t */\n\t\t\tfunction pushPlacement() {\n\t\t\t\tplacements.push(point.matrixTransform(matrix));\n\t\t\t}\n\n\t\t\t// get bounding box corners and midpoints\n\t\t\tpoint.x = boundingBox.x;\n\t\t\tpoint.y = boundingBox.y;\n\t\t\tpushPlacement();\n\t\t\tpoint.x += halfWidth;\n\t\t\tpushPlacement();\n\t\t\tpoint.x += halfWidth;\n\t\t\tpushPlacement();\n\t\t\tpoint.y += halfHeight;\n\t\t\tpushPlacement();\n\t\t\tpoint.y += halfHeight;\n\t\t\tpushPlacement();\n\t\t\tpoint.x -= halfWidth;\n\t\t\tpushPlacement();\n\t\t\tpoint.x -= halfWidth;\n\t\t\tpushPlacement();\n\t\t\tpoint.y -= halfHeight;\n\t\t\tpushPlacement();\n\n\t\t\t// determine rotation\n\t\t\tif (placements[0].y !== placements[1].y || placements[0].x !== placements[7].x) {\n\t\t\t\trotation = Math.atan2(matrix.b, matrix.a) * RAD2DEG;\n\t\t\t\tsteps = Math.ceil(((rotation % 360) - 22.5) / 45);\n\t\t\t\tif (steps < 1) {\n\t\t\t\t\tsteps += 8;\n\t\t\t\t}\n\t\t\t\twhile (steps--) {\n\t\t\t\t\tplacementKeys.push(placementKeys.shift());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// find placement\n\t\t\tfor (x = 0; x < placements.length; x++) {\n\t\t\t\tif (placementKeys[x] === placement) {\n\t\t\t\t\tcoords = placements[x];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: coords.y + session.scrollTop,\n\t\t\t\tleft: coords.x + session.scrollLeft\n\t\t\t};\n\t\t}\n\n\t\t// expose methods\n\t\tthis.compute = computePlacementCoords;\n\t}\n\n\t/**\n\t * Creates a new tooltip controller.\n\t * @private\n\t * @constructor\n\t * @param {Object} options Options object containing settings.\n\t */\n\tfunction TooltipController(options) {\n\t\tvar placementCalculator = new PlacementCalculator(),\n\t\t\ttipElement = $('#' + options.popupId);\n\n\t\t// build and append tooltip div if it does not already exist\n\t\tif (tipElement.length === 0) {\n\t\t\ttipElement = $('
', { id: options.popupId });\n\t\t\t// grab body element if it was not populated when the script loaded\n\t\t\t// note: this hack exists solely for jsfiddle support\n\t\t\tif ($body.length === 0) {\n\t\t\t\t$body = $('body');\n\t\t\t}\n\t\t\t$body.append(tipElement);\n\t\t\t// remember the tooltip elements that the plugin has created\n\t\t\tsession.tooltips = session.tooltips ? session.tooltips.add(tipElement) : tipElement;\n\t\t}\n\n\t\t// hook mousemove for cursor follow tooltips\n\t\tif (options.followMouse) {\n\t\t\t// only one positionTipOnCursor hook per tooltip element, please\n\t\t\tif (!tipElement.data(DATA_HASMOUSEMOVE)) {\n\t\t\t\t$document.on('mousemove' + EVENT_NAMESPACE, positionTipOnCursor);\n\t\t\t\t$window.on('scroll' + EVENT_NAMESPACE, positionTipOnCursor);\n\t\t\t\ttipElement.data(DATA_HASMOUSEMOVE, true);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gives the specified element the active-hover state and queues up the\n\t\t * showTip function.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t */\n\t\tfunction beginShowTip(element) {\n\t\t\telement.data(DATA_HASACTIVEHOVER, true);\n\t\t\t// show tooltip, asap\n\t\t\ttipElement.queue(function queueTipInit(next) {\n\t\t\t\tshowTip(element);\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Shows the tooltip, as soon as possible.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t */\n\t\tfunction showTip(element) {\n\t\t\tvar tipContent;\n\n\t\t\t// it is possible, especially with keyboard navigation, to move on to\n\t\t\t// another element with a tooltip during the queue to get to this point\n\t\t\t// in the code. if that happens then we need to not proceed or we may\n\t\t\t// have the fadeout callback for the last tooltip execute immediately\n\t\t\t// after this code runs, causing bugs.\n\t\t\tif (!element.data(DATA_HASACTIVEHOVER)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// if the tooltip is open and we got asked to open another one then the\n\t\t\t// old one is still in its fadeOut cycle, so wait and try again\n\t\t\tif (session.isTipOpen) {\n\t\t\t\t// [speedplane] Fixed Bug null check bug.\n\t\t\t\t// https://github.com/stevenbenner/jquery-powertip/issues/184\n\t\t\t\tif (!session.isClosing && session.activeHover) {\n\t\t\t\t\thideTip(session.activeHover);\n\t\t\t\t}\n\t\t\t\ttipElement.delay(100).queue(function queueTipAgain(next) {\n\t\t\t\t\tshowTip(element);\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// trigger powerTipPreRender event\n\t\t\telement.trigger('powerTipPreRender');\n\n\t\t\t// set tooltip content\n\t\t\ttipContent = getTooltipContent(element);\n\t\t\tif (tipContent) {\n\t\t\t\tif(options.wrapDiv) {\n\t\t\t\t\ttipContent = wrapTooltipContent(tipContent);\n\t\t\t\t}\n\t\t\t\ttipElement.empty().append(tipContent);\n\t\t\t} else {\n\t\t\t\t// we have no content to display, give up\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// trigger powerTipRender event\n\t\t\telement.trigger('powerTipRender');\n\n\t\t\tsession.activeHover = element;\n\t\t\tsession.isTipOpen = true;\n\n\t\t\ttipElement.data(DATA_MOUSEONTOTIP, options.mouseOnToPopup);\n\n\t\t\t// add custom class to tooltip element\n\t\t\ttipElement.addClass(options.popupClass);\n\n\t\t\t// set tooltip position\n\t\t\t// revert to static placement when the \"force open\" flag was set because\n\t\t\t// that flag means that we do not have accurate mouse position info\n\t\t\tif (!options.followMouse || element.data(DATA_FORCEDOPEN)) {\n\t\t\t\tpositionTipOnElement(element);\n\t\t\t\tsession.isFixedTipOpen = true;\n\t\t\t} else {\n\t\t\t\tpositionTipOnCursor();\n\t\t\t}\n\n\t\t\t// close tooltip when clicking anywhere on the page, with the exception\n\t\t\t// of the tooltip's trigger element and any elements that are within a\n\t\t\t// tooltip that has 'mouseOnToPopup' option enabled\n\t\t\t// always enable this feature when the \"force open\" flag is set on a\n\t\t\t// followMouse tooltip because we reverted to static placement above\n\t\t\tif (!element.data(DATA_FORCEDOPEN) && !options.followMouse) {\n\t\t\t\t$document.on('click' + EVENT_NAMESPACE, function documentClick(event) {\n\t\t\t\t\tvar target = event.target;\n\t\t\t\t\tif (target !== element[0]) {\n\t\t\t\t\t\tif (options.mouseOnToPopup) {\n\t\t\t\t\t\t\tif (target !== tipElement[0] && !$.contains(tipElement[0], target)) {\n\t\t\t\t\t\t\t\t$.powerTip.hide();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.powerTip.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// if we want to be able to mouse on to the tooltip then we need to\n\t\t\t// attach hover events to the tooltip that will cancel a close request\n\t\t\t// on mouseenter and start a new close request on mouseleave\n\t\t\t// only hook these listeners if we're not in manual mode\n\t\t\tif (options.mouseOnToPopup && !options.manual && $.inArray('mouseleave', options.closeEvents) > -1) {\n\t\t\t\ttipElement.on('mouseenter' + EVENT_NAMESPACE, function tipMouseEnter() {\n\t\t\t\t\t// check activeHover in case the mouse cursor entered the\n\t\t\t\t\t// tooltip during the fadeOut and close cycle\n\t\t\t\t\tif (session.activeHover) {\n\t\t\t\t\t\tsession.activeHover.data(DATA_DISPLAYCONTROLLER).cancel();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttipElement.on('mouseleave' + EVENT_NAMESPACE, function tipMouseLeave() {\n\t\t\t\t\t// check activeHover in case the mouse cursor left the tooltip\n\t\t\t\t\t// during the fadeOut and close cycle\n\t\t\t\t\tif (session.activeHover) {\n\t\t\t\t\t\tsession.activeHover.data(DATA_DISPLAYCONTROLLER).hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// fadein\n\t\t\ttipElement.fadeIn(options.fadeInTime, function fadeInCallback() {\n\t\t\t\t// start desync polling\n\t\t\t\tif (!session.desyncTimeout) {\n\t\t\t\t\tsession.desyncTimeout = setInterval(closeDesyncedTip, 500);\n\t\t\t\t}\n\n\t\t\t\t// trigger powerTipOpen event\n\t\t\t\telement.trigger('powerTipOpen');\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Queues up the hideTip function.\n\t\t * See https://github.com/stevenbenner/jquery-powertip/issues/184#issuecomment-1475457786\n\t\t * @private\n\t\t * @param {jQuery} element The element with the tooltip to hide.\n\t\t */\n\t\tfunction beginHideTip(element) {\n\t\t\t// hide tooltip, asap\n\t\t\ttipElement.queue(function queueTipHide(next) {\n\t\t\t\thideTip(element);\n\t\t\t next();\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Hides the tooltip.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t */\n\t\tfunction hideTip(element) {\n\t\t\t// reset session\n\t\t\tsession.isClosing = true;\n\t\t\tsession.isTipOpen = false;\n\n\t\t\t// stop desync polling\n\t\t\tsession.desyncTimeout = clearInterval(session.desyncTimeout);\n\n\t\t\t// reset element state\n\t\t\telement.data(DATA_HASACTIVEHOVER, false);\n\t\t\telement.data(DATA_FORCEDOPEN, false);\n\n\t\t\t// remove document click handler\n\t\t\t$document.off('click' + EVENT_NAMESPACE);\n\n\t\t\t// unbind the mouseOnToPopup events if they were set\n\t\t\ttipElement.off(EVENT_NAMESPACE);\n\n\t\t\t// fade out\n\t\t\ttipElement.fadeOut(options.fadeOutTime, function fadeOutCallback() {\n\t\t\t\tvar coords = new CSSCoordinates();\n\n\t\t\t\t// reset session and tooltip element\n\t\t\t\tsession.activeHover = null;\n\t\t\t\tsession.isClosing = false;\n\t\t\t\tsession.isFixedTipOpen = false;\n\t\t\t\ttipElement.removeClass();\n\n\t\t\t\t// support mouse-follow and fixed position tips at the same time by\n\t\t\t\t// moving the tooltip to the last cursor location after it is hidden\n\t\t\t\tcoords.set('top', session.currentY + options.offset);\n\t\t\t\tcoords.set('left', session.currentX + options.offset);\n\t\t\t\ttipElement.css(coords);\n\n\t\t\t\t// trigger powerTipClose event\n\t\t\t\telement.trigger('powerTipClose');\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Moves the tooltip to the user's mouse cursor.\n\t\t * @private\n\t\t */\n\t\tfunction positionTipOnCursor() {\n\t\t\tvar tipWidth,\n\t\t\t\ttipHeight,\n\t\t\t\tcoords,\n\t\t\t\tcollisions,\n\t\t\t\tcollisionCount;\n\n\t\t\t// to support having fixed tooltips on the same page as cursor tooltips,\n\t\t\t// where both instances are referencing the same tooltip element, we\n\t\t\t// need to keep track of the mouse position constantly, but we should\n\t\t\t// only set the tip location if a fixed tip is not currently open, a tip\n\t\t\t// open is imminent or active, and the tooltip element in question does\n\t\t\t// have a mouse-follow using it.\n\t\t\tif (!session.isFixedTipOpen && (session.isTipOpen || (session.tipOpenImminent && tipElement.data(DATA_HASMOUSEMOVE)))) {\n\t\t\t\t// grab measurements\n\t\t\t\ttipWidth = tipElement.outerWidth();\n\t\t\t\ttipHeight = tipElement.outerHeight();\n\t\t\t\tcoords = new CSSCoordinates();\n\n\t\t\t\t// grab collisions\n\t\t\t\tcoords.set('top', session.currentY + options.offset);\n\t\t\t\tcoords.set('left', session.currentX + options.offset);\n\t\t\t\tcollisions = getViewportCollisions(\n\t\t\t\t\tcoords,\n\t\t\t\t\ttipWidth,\n\t\t\t\t\ttipHeight\n\t\t\t\t);\n\n\t\t\t\t// handle tooltip view port collisions\n\t\t\t\tif (collisions !== Collision.none) {\n\t\t\t\t\tcollisionCount = countFlags(collisions);\n\t\t\t\t\tif (collisionCount === 1) {\n\t\t\t\t\t\t// if there is only one collision (bottom or right) then\n\t\t\t\t\t\t// simply constrain the tooltip to the view port\n\t\t\t\t\t\tif (collisions === Collision.right) {\n\t\t\t\t\t\t\tcoords.set('left', session.scrollLeft + session.windowWidth - tipWidth);\n\t\t\t\t\t\t} else if (collisions === Collision.bottom) {\n\t\t\t\t\t\t\tcoords.set('top', session.scrollTop + session.windowHeight - tipHeight);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if the tooltip has more than one collision then it is\n\t\t\t\t\t\t// trapped in the corner and should be flipped to get it out\n\t\t\t\t\t\t// of the user's way\n\t\t\t\t\t\tcoords.set('left', session.currentX - tipWidth - options.offset);\n\t\t\t\t\t\tcoords.set('top', session.currentY - tipHeight - options.offset);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// position the tooltip\n\t\t\t\ttipElement.css(coords);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Sets the tooltip to the correct position relative to the specified target\n\t\t * element. Based on options settings.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t */\n\t\tfunction positionTipOnElement(element) {\n\t\t\tvar priorityList,\n\t\t\t\tfinalPlacement;\n\n\t\t\t// when the followMouse option is enabled and the \"force open\" flag is\n\t\t\t// set we revert to static positioning. since the developer may not have\n\t\t\t// considered this scenario we should use smart placement\n\t\t\tif (options.smartPlacement || (options.followMouse && element.data(DATA_FORCEDOPEN))) {\n\t\t\t\tpriorityList = $.fn.powerTip.smartPlacementLists[options.placement];\n\n\t\t\t\t// iterate over the priority list and use the first placement option\n\t\t\t\t// that does not collide with the view port. if they all collide\n\t\t\t\t// then the last placement in the list will be used.\n\t\t\t\t$.each(priorityList, function(idx, pos) {\n\t\t\t\t\t// place tooltip and find collisions\n\t\t\t\t\tvar collisions = getViewportCollisions(\n\t\t\t\t\t\tplaceTooltip(element, pos),\n\t\t\t\t\t\ttipElement.outerWidth(),\n\t\t\t\t\t\ttipElement.outerHeight()\n\t\t\t\t\t);\n\n\t\t\t\t\t// update the final placement variable\n\t\t\t\t\tfinalPlacement = pos;\n\n\t\t\t\t\t// break if there were no collisions\n\t\t\t\t\treturn collisions !== Collision.none;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// if we're not going to use the smart placement feature then just\n\t\t\t\t// compute the coordinates and do it\n\t\t\t\tplaceTooltip(element, options.placement);\n\t\t\t\tfinalPlacement = options.placement;\n\t\t\t}\n\n\t\t\t// add placement as class for CSS arrows\n\t\t\ttipElement.removeClass('w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt');\n\t\t\ttipElement.addClass(finalPlacement);\n\t\t}\n\n\t\t/**\n\t\t * Sets the tooltip position to the appropriate values to show the tip at\n\t\t * the specified placement. This function will iterate and test the tooltip\n\t\t * to support elastic tooltips.\n\t\t * @private\n\t\t * @param {jQuery} element The element that the tooltip should target.\n\t\t * @param {string} placement The placement for the tooltip.\n\t\t * @return {CSSCoordinates} A CSSCoordinates object with the top, left, and\n\t\t * right position values.\n\t\t */\n\t\tfunction placeTooltip(element, placement) {\n\t\t\tvar iterationCount = 0,\n\t\t\t\ttipWidth,\n\t\t\t\ttipHeight,\n\t\t\t\tcoords = new CSSCoordinates();\n\n\t\t\t// set the tip to 0,0 to get the full expanded width\n\t\t\tcoords.set('top', 0);\n\t\t\tcoords.set('left', 0);\n\t\t\ttipElement.css(coords);\n\n\t\t\t// to support elastic tooltips we need to check for a change in the\n\t\t\t// rendered dimensions after the tooltip has been positioned\n\t\t\tdo {\n\t\t\t\t// grab the current tip dimensions\n\t\t\t\ttipWidth = tipElement.outerWidth();\n\t\t\t\ttipHeight = tipElement.outerHeight();\n\n\t\t\t\t// get placement coordinates\n\t\t\t\tcoords = placementCalculator.compute(\n\t\t\t\t\telement,\n\t\t\t\t\tplacement,\n\t\t\t\t\ttipWidth,\n\t\t\t\t\ttipHeight,\n\t\t\t\t\toptions.offset\n\t\t\t\t);\n\n\t\t\t\t// place the tooltip\n\t\t\t\ttipElement.css(coords);\n\t\t\t} while (\n\t\t\t\t// sanity check: limit to 5 iterations, and...\n\t\t\t\t++iterationCount <= 5 &&\n\t\t\t\t// try again if the dimensions changed after placement\n\t\t\t\t(tipWidth !== tipElement.outerWidth() || tipHeight !== tipElement.outerHeight())\n\t\t\t);\n\n\t\t\treturn coords;\n\t\t}\n\n\t\t/**\n\t\t * Checks for a tooltip desync and closes the tooltip if one occurs.\n\t\t * @private\n\t\t */\n\t\tfunction closeDesyncedTip() {\n\t\t\tvar isDesynced = false,\n\t\t\t\thasDesyncableCloseEvent = $.grep(\n\t\t\t\t\t[ 'mouseleave', 'mouseout', 'blur', 'focusout' ],\n\t\t\t\t\tfunction(eventType) {\n\t\t\t\t\t\treturn $.inArray(eventType, options.closeEvents) !== -1;\n\t\t\t\t\t}\n\t\t\t\t).length > 0;\n\n\t\t\t// It is possible for the mouse cursor to leave an element without\n\t\t\t// firing the mouseleave or blur event. This most commonly happens when\n\t\t\t// the element is disabled under mouse cursor. If this happens it will\n\t\t\t// result in a desynced tooltip because the tooltip was never asked to\n\t\t\t// close. So we should periodically check for a desync situation and\n\t\t\t// close the tip if such a situation arises.\n\t\t\t// [speedplane] add null check for session.activeHover\n\t\t\tif (session.isTipOpen && !session.isClosing && !session.delayInProgress && hasDesyncableCloseEvent && session.activeHover) {\n\t\t\t\tif (session.activeHover.data(DATA_HASACTIVEHOVER) === false || session.activeHover.is(':disabled')) {\n\t\t\t\t\t// user moused onto another tip or active hover is disabled\n\t\t\t\t\tisDesynced = true;\n\t\t\t\t} else if (!isMouseOver(session.activeHover) && !session.activeHover.is(':focus') && !session.activeHover.data(DATA_FORCEDOPEN)) {\n\t\t\t\t\t// hanging tip - have to test if mouse position is not over the\n\t\t\t\t\t// active hover and not over a tooltip set to let the user\n\t\t\t\t\t// interact with it.\n\t\t\t\t\t// for keyboard navigation: this only counts if the element does\n\t\t\t\t\t// not have focus.\n\t\t\t\t\t// for tooltips opened via the api: we need to check if it has\n\t\t\t\t\t// the forcedOpen flag.\n\t\t\t\t\tif (tipElement.data(DATA_MOUSEONTOTIP)) {\n\t\t\t\t\t\tif (!isMouseOver(tipElement)) {\n\t\t\t\t\t\t\tisDesynced = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisDesynced = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (isDesynced) {\n\t\t\t\t\t// close the desynced tip\n\t\t\t\t\thideTip(session.activeHover);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// expose methods\n\t\tthis.showTip = beginShowTip;\n\t\tthis.hideTip = beginHideTip;\n\t\tthis.resetPosition = positionTipOnElement;\n\t}\n\n\t/**\n\t * Determine whether a jQuery object is an SVG element\n\t * @private\n\t * @param {jQuery} element The element to check\n\t * @return {boolean} Whether this is an SVG element\n\t */\n\tfunction isSvgElement(element) {\n\t\treturn Boolean(window.SVGElement && element[0] instanceof SVGElement);\n\t}\n\n\t/**\n\t * Determines if the specified jQuery.Event object has mouse data.\n\t * @private\n\t * @param {jQuery.Event=} event The jQuery.Event object to test.\n\t * @return {boolean} True if there is mouse data, otherwise false.\n\t */\n\tfunction isMouseEvent(event) {\n\t\treturn Boolean(event && $.inArray(event.type, MOUSE_EVENTS) > -1 &&\n\t\t\ttypeof event.pageX === 'number');\n\t}\n\n\t/**\n\t * Initializes the viewport dimension cache and hooks up the mouse position\n\t * tracking and viewport dimension tracking events.\n\t * Prevents attaching the events more than once.\n\t * @private\n\t */\n\tfunction initTracking() {\n\t\tif (!session.mouseTrackingActive) {\n\t\t\tsession.mouseTrackingActive = true;\n\n\t\t\t// grab the current viewport dimensions on load\n\t\t\tgetViewportDimensions();\n\t\t\t$(getViewportDimensions);\n\n\t\t\t// hook mouse move tracking\n\t\t\t$document.on('mousemove' + EVENT_NAMESPACE, trackMouse);\n\n\t\t\t// hook viewport dimensions tracking\n\t\t\t$window.on('resize' + EVENT_NAMESPACE, trackResize);\n\t\t\t$window.on('scroll' + EVENT_NAMESPACE, trackScroll);\n\t\t}\n\t}\n\n\t/**\n\t * Updates the viewport dimensions cache.\n\t * @private\n\t */\n\tfunction getViewportDimensions() {\n\t\tsession.scrollLeft = $window.scrollLeft();\n\t\tsession.scrollTop = $window.scrollTop();\n\t\tsession.windowWidth = $window.width();\n\t\tsession.windowHeight = $window.height();\n\t}\n\n\t/**\n\t * Updates the window size info in the viewport dimensions cache.\n\t * @private\n\t */\n\tfunction trackResize() {\n\t\tsession.windowWidth = $window.width();\n\t\tsession.windowHeight = $window.height();\n\t}\n\n\t/**\n\t * Updates the scroll offset info in the viewport dimensions cache.\n\t * @private\n\t */\n\tfunction trackScroll() {\n\t\tvar x = $window.scrollLeft(),\n\t\t\ty = $window.scrollTop();\n\t\tif (x !== session.scrollLeft) {\n\t\t\tsession.currentX += x - session.scrollLeft;\n\t\t\tsession.scrollLeft = x;\n\t\t}\n\t\tif (y !== session.scrollTop) {\n\t\t\tsession.currentY += y - session.scrollTop;\n\t\t\tsession.scrollTop = y;\n\t\t}\n\t}\n\n\t/**\n\t * Saves the current mouse coordinates to the session object.\n\t * @private\n\t * @param {jQuery.Event} event The mousemove event for the document.\n\t */\n\tfunction trackMouse(event) {\n\t\tsession.currentX = event.pageX;\n\t\tsession.currentY = event.pageY;\n\t}\n\n\t/**\n\t * Tests if the mouse is currently over the specified element.\n\t * @private\n\t * @param {jQuery} element The element to check for hover.\n\t * @return {boolean} True if the mouse is over the element, otherwise false.\n\t */\n\tfunction isMouseOver(element) {\n\t\t// use getBoundingClientRect() because jQuery's width() and height()\n\t\t// methods do not work with SVG elements\n\t\t// compute width/height because those properties do not exist on the object\n\t\t// returned by getBoundingClientRect() in older versions of IE\n\t\tvar elementPosition = element.offset(),\n\t\t\telementBox = element[0].getBoundingClientRect(),\n\t\t\telementWidth = elementBox.right - elementBox.left,\n\t\t\telementHeight = elementBox.bottom - elementBox.top;\n\n\t\treturn session.currentX >= elementPosition.left &&\n\t\t\tsession.currentX <= elementPosition.left + elementWidth &&\n\t\t\tsession.currentY >= elementPosition.top &&\n\t\t\tsession.currentY <= elementPosition.top + elementHeight;\n\t}\n\n\t/**\n\t * Fetches the tooltip content from the specified element's data attributes.\n\t * @private\n\t * @param {jQuery} element The element to get the tooltip content for.\n\t * @return {(string|jQuery|undefined)} The text/HTML string, jQuery object, or\n\t * undefined if there was no tooltip content for the element.\n\t */\n\tfunction getTooltipContent(element) {\n\t\tvar tipText = element.data(DATA_POWERTIP),\n\t\t\ttipObject = element.data(DATA_POWERTIPJQ),\n\t\t\ttipTarget = element.data(DATA_POWERTIPTARGET),\n\t\t\ttargetElement,\n\t\t\tcontent;\n\n\t\tif (tipText) {\n\t\t\tif ($.isFunction(tipText)) {\n\t\t\t\ttipText = tipText.call(element[0]);\n\t\t\t}\n\t\t\tcontent = tipText;\n\t\t} else if (tipObject) {\n\t\t\tif ($.isFunction(tipObject)) {\n\t\t\t\ttipObject = tipObject.call(element[0]);\n\t\t\t}\n\t\t\tif (tipObject.length > 0) {\n\t\t\t\tcontent = tipObject.clone(true, true);\n\t\t\t}\n\t\t} else if (tipTarget) {\n\t\t\ttargetElement = $('#' + tipTarget);\n\t\t\tif (targetElement.length > 0) {\n\t\t\t\tcontent = targetElement.html();\n\t\t\t}\n\t\t}\n\t\treturn content;\n\t}\n\n\t/**\n\t * Wraps the tooltip content in a div with the powertip_wrap class.\n\t * @param content\n\t * @returns {*|jQuery}\n\t */\n\tfunction wrapTooltipContent(content) {\n\t\treturn $('
').append(content);\n\t}\n\n\t/**\n\t * Finds any viewport collisions that an element (the tooltip) would have if it\n\t * were absolutely positioned at the specified coordinates.\n\t * @private\n\t * @param {CSSCoordinates} coords Coordinates for the element.\n\t * @param {number} elementWidth Width of the element in pixels.\n\t * @param {number} elementHeight Height of the element in pixels.\n\t * @return {number} Value with the collision flags.\n\t */\n\tfunction getViewportCollisions(coords, elementWidth, elementHeight) {\n\t\tvar viewportTop = session.scrollTop,\n\t\t\tviewportLeft = session.scrollLeft,\n\t\t\tviewportBottom = viewportTop + session.windowHeight,\n\t\t\tviewportRight = viewportLeft + session.windowWidth,\n\t\t\tcollisions = Collision.none;\n\n\t\tif (coords.top < viewportTop || Math.abs(coords.bottom - session.windowHeight) - elementHeight < viewportTop) {\n\t\t\tcollisions |= Collision.top;\n\t\t}\n\t\tif (coords.top + elementHeight > viewportBottom || Math.abs(coords.bottom - session.windowHeight) > viewportBottom) {\n\t\t\tcollisions |= Collision.bottom;\n\t\t}\n\t\tif (coords.left < viewportLeft || coords.right + elementWidth > viewportRight) {\n\t\t\tcollisions |= Collision.left;\n\t\t}\n\t\tif (coords.left + elementWidth > viewportRight || coords.right < viewportLeft) {\n\t\t\tcollisions |= Collision.right;\n\t\t}\n\n\t\treturn collisions;\n\t}\n\n\t/**\n\t * Counts the number of bits set on a flags value.\n\t * @param {number} value The flags value.\n\t * @return {number} The number of bits that have been set.\n\t */\n\tfunction countFlags(value) {\n\t\tvar count = 0;\n\t\twhile (value) {\n\t\t\tvalue &= value - 1;\n\t\t\tcount++;\n\t\t}\n\t\treturn count;\n\t}\n\n\t// return api for commonjs and amd environments\n\treturn $.powerTip;\n}));\n","/*!\n * jQuery JavaScript Library v1.9.0\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-1-14\n */\n(function( window, undefined ) {\n\"use strict\";\nvar\n\t// A central reference to the root jQuery(document)\n\trootjQuery,\n\n\t// The deferred used on DOM ready\n\treadyList,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\tlocation = window.location,\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$,\n\n\t// [[Class]] -> type pairs\n\tclass2type = {},\n\n\t// List of deleted data cache ids, so we can reuse them\n\tcore_deletedIds = [],\n\n\tcore_version = \"1.9.0\",\n\n\t// Save a reference to some core methods\n\tcore_concat = core_deletedIds.concat,\n\tcore_push = core_deletedIds.push,\n\tcore_slice = core_deletedIds.slice,\n\tcore_indexOf = core_deletedIds.indexOf,\n\tcore_toString = class2type.toString,\n\tcore_hasOwn = class2type.hasOwnProperty,\n\tcore_trim = core_version.trim,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\treturn new jQuery.fn.init( selector, context, rootjQuery );\n\t},\n\n\t// Used for matching numbers\n\tcore_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\n\n\t// Used for splitting on whitespace\n\tcore_rnotwhite = /\\S+/g,\n\n\t// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\t// Match a standalone tag\n\trsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n\n\t// JSON RegExp\n\trvalidchars = /^[\\],:{}\\s]*$/,\n\trvalidbraces = /(?:^|:|,)(?:\\s*\\[)+/g,\n\trvalidescape = /\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,\n\trvalidtokens = /\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d+\\.|)\\d+(?:[eE][+-]?\\d+|)/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t},\n\n\t// The ready event handler and self cleanup method\n\tDOMContentLoaded = function() {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.removeEventListener( \"DOMContentLoaded\", DOMContentLoaded, false );\n\t\t\tjQuery.ready();\n\t\t} else if ( document.readyState === \"complete\" ) {\n\t\t\t// we're here because readyState === \"complete\" in oldIE\n\t\t\t// which is good enough for us to call the dom ready!\n\t\t\tdocument.detachEvent( \"onreadystatechange\", DOMContentLoaded );\n\t\t\tjQuery.ready();\n\t\t}\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: core_version,\n\n\tconstructor: jQuery,\n\tinit: function( selector, context, rootjQuery ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn rootjQuery.ready( selector );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t},\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\t// The number of elements contained in the matched element set\n\tsize: function() {\n\t\treturn this.length;\n\t},\n\n\ttoArray: function() {\n\t\treturn core_slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num == null ?\n\n\t\t\t// Return a 'clean' array\n\t\t\tthis.toArray() :\n\n\t\t\t// Return just the object\n\t\t\t( num < 0 ? this[ this.length + num ] : this[ num ] );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tready: function( fn ) {\n\t\t// Add the callback\n\t\tjQuery.ready.promise().done( fn );\n\n\t\treturn this;\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( core_slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: core_push,\n\tsort: [].sort,\n\tsplice: [].splice\n};\n\n// Give the init function the jQuery prototype for later instantiation\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( length === i ) {\n\t\ttarget = this;\n\t\t--i;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\tnoConflict: function( deep ) {\n\t\tif ( window.$ === jQuery ) {\n\t\t\twindow.$ = _$;\n\t\t}\n\n\t\tif ( deep && window.jQuery === jQuery ) {\n\t\t\twindow.jQuery = _jQuery;\n\t\t}\n\n\t\treturn jQuery;\n\t},\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.trigger ) {\n\t\t\tjQuery( document ).trigger(\"ready\").off(\"ready\");\n\t\t}\n\t},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\treturn !isNaN( parseFloat(obj) ) && isFinite( obj );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn String( obj );\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ core_toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!core_hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!core_hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\n\t\tvar key;\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || core_hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\t// data: string of html\n\t// context (optional): If specified, the fragment will be created in this context, defaults to document\n\t// keepScripts (optional): If true, will include scripts passed in the html string\n\tparseHTML: function( data, context, keepScripts ) {\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof context === \"boolean\" ) {\n\t\t\tkeepScripts = context;\n\t\t\tcontext = false;\n\t\t}\n\t\tcontext = context || document;\n\n\t\tvar parsed = rsingleTag.exec( data ),\n\t\t\tscripts = !keepScripts && [];\n\n\t\t// Single tag\n\t\tif ( parsed ) {\n\t\t\treturn [ context.createElement( parsed[1] ) ];\n\t\t}\n\n\t\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\t\tif ( scripts ) {\n\t\t\tjQuery( scripts ).remove();\n\t\t}\n\t\treturn jQuery.merge( [], parsed.childNodes );\n\t},\n\n\tparseJSON: function( data ) {\n\t\t// Attempt to parse using the native JSON parser first\n\t\tif ( window.JSON && window.JSON.parse ) {\n\t\t\treturn window.JSON.parse( data );\n\t\t}\n\n\t\tif ( data === null ) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif ( typeof data === \"string\" ) {\n\n\t\t\t// Make sure leading/trailing whitespace is removed (IE can't handle it)\n\t\t\tdata = jQuery.trim( data );\n\n\t\t\tif ( data ) {\n\t\t\t\t// Make sure the incoming data is actual JSON\n\t\t\t\t// Logic borrowed from http://json.org/json2.js\n\t\t\t\tif ( rvalidchars.test( data.replace( rvalidescape, \"@\" )\n\t\t\t\t\t.replace( rvalidtokens, \"]\" )\n\t\t\t\t\t.replace( rvalidbraces, \"\")) ) {\n\n\t\t\t\t\treturn ( new Function( \"return \" + data ) )();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n\t},\n\n\t// Cross-browser xml parsing\n\tparseXML: function( data ) {\n\t\tvar xml, tmp;\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\ttry {\n\t\t\tif ( window.DOMParser ) { // Standard\n\t\t\t\ttmp = new DOMParser();\n\t\t\t\txml = tmp.parseFromString( data , \"text/xml\" );\n\t\t\t} else { // IE\n\t\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\t\txml.async = \"false\";\n\t\t\t\txml.loadXML( data );\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\txml = undefined;\n\t\t}\n\t\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\t\tjQuery.error( \"Invalid XML: \" + data );\n\t\t}\n\t\treturn xml;\n\t},\n\n\tnoop: function() {},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Use native String.trim function wherever possible\n\ttrim: core_trim && !core_trim.call(\"\\uFEFF\\xA0\") ?\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\tcore_trim.call( text );\n\t\t} :\n\n\t\t// Otherwise use our own trimming functionality\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcore_push.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( core_indexOf ) {\n\t\t\t\treturn core_indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar l = second.length,\n\t\t\ti = first.length,\n\t\t\tj = 0;\n\n\t\tif ( typeof l === \"number\" ) {\n\t\t\tfor ( ; j < l; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, inv ) {\n\t\tvar retVal,\n\t\t\tret = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length;\n\t\tinv = !!inv;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tretVal = !!callback( elems[ i ], i );\n\t\t\tif ( inv !== retVal ) {\n\t\t\t\tret.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn core_concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = core_slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\t// Multifunctional method to get and set values of a collection\n\t// The value/s can optionally be executed if it's a function\n\taccess: function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\t\tvar i = 0,\n\t\t\tlength = elems.length,\n\t\t\tbulk = key == null;\n\n\t\t// Sets many values\n\t\tif ( jQuery.type( key ) === \"object\" ) {\n\t\t\tchainable = true;\n\t\t\tfor ( i in key ) {\n\t\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t\t}\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\tchainable = true;\n\n\t\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\t\traw = true;\n\t\t\t}\n\n\t\t\tif ( bulk ) {\n\t\t\t\t// Bulk operations run against the entire set\n\t\t\t\tif ( raw ) {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\n\t\t\t\t// ...except when executing function values\n\t\t\t\t} else {\n\t\t\t\t\tbulk = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn chainable ?\n\t\t\telems :\n\n\t\t\t// Gets\n\t\t\tbulk ?\n\t\t\t\tfn.call( elems ) :\n\t\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n\t},\n\n\tnow: function() {\n\t\treturn ( new Date() ).getTime();\n\t}\n});\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", DOMContentLoaded, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", jQuery.ready, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", DOMContentLoaded );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", jQuery.ready );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || type !== \"function\" &&\n\t\t( length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj );\n}\n\n// All jQuery objects should point back to these\nrootjQuery = jQuery(document);\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Control if a given callback is in the list\n\t\t\thas: function( fn ) {\n\t\t\t\treturn jQuery.inArray( fn, list ) > -1;\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\targs = args || [];\n\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar action = tuple[ 0 ],\n\t\t\t\t\t\t\t\tfn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ action + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = core_slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;\n\t\t\t\t\tif( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\njQuery.support = (function() {\n\n\tvar support, all, a, select, opt, input, fragment, eventName, isSupported, i,\n\t\tdiv = document.createElement(\"div\");\n\n\t// Setup\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \"
a\";\n\n\t// Support tests won't run in some limited or non-browser environments\n\tall = div.getElementsByTagName(\"*\");\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\tif ( !all || !a || !all.length ) {\n\t\treturn {};\n\t}\n\n\t// First batch of tests\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px;float:left;opacity:.5\";\n\tsupport = {\n\t\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\t\tgetSetAttribute: div.className !== \"t\",\n\n\t\t// IE strips leading whitespace when .innerHTML is used\n\t\tleadingWhitespace: div.firstChild.nodeType === 3,\n\n\t\t// Make sure that tbody elements aren't automatically inserted\n\t\t// IE will insert them into empty tables\n\t\ttbody: !div.getElementsByTagName(\"tbody\").length,\n\n\t\t// Make sure that link elements get serialized correctly by innerHTML\n\t\t// This requires a wrapper element in IE\n\t\thtmlSerialize: !!div.getElementsByTagName(\"link\").length,\n\n\t\t// Get the style information from getAttribute\n\t\t// (IE uses .cssText instead)\n\t\tstyle: /top/.test( a.getAttribute(\"style\") ),\n\n\t\t// Make sure that URLs aren't manipulated\n\t\t// (IE normalizes it by default)\n\t\threfNormalized: a.getAttribute(\"href\") === \"/a\",\n\n\t\t// Make sure that element opacity exists\n\t\t// (IE uses filter instead)\n\t\t// Use a regex to work around a WebKit issue. See #5145\n\t\topacity: /^0.5/.test( a.style.opacity ),\n\n\t\t// Verify style float existence\n\t\t// (IE uses styleFloat instead of cssFloat)\n\t\tcssFloat: !!a.style.cssFloat,\n\n\t\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\t\tcheckOn: !!input.value,\n\n\t\t// Make sure that a selected-by-default option has a working selected property.\n\t\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\t\toptSelected: opt.selected,\n\n\t\t// Tests for enctype support on a form (#6743)\n\t\tenctype: !!document.createElement(\"form\").enctype,\n\n\t\t// Makes sure cloning an html5 element does not cause problems\n\t\t// Where outerHTML is undefined, this still works\n\t\thtml5Clone: document.createElement(\"nav\").cloneNode( true ).outerHTML !== \"<:nav>\",\n\n\t\t// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode\n\t\tboxModel: document.compatMode === \"CSS1Compat\",\n\n\t\t// Will be defined later\n\t\tdeleteExpando: true,\n\t\tnoCloneEvent: true,\n\t\tinlineBlockNeedsLayout: false,\n\t\tshrinkWrapBlocks: false,\n\t\treliableMarginRight: true,\n\t\tboxSizingReliable: true,\n\t\tpixelPosition: false\n\t};\n\n\t// Make sure checked status is properly cloned\n\tinput.checked = true;\n\tsupport.noCloneChecked = input.cloneNode( true ).checked;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<9\n\ttry {\n\t\tdelete div.test;\n\t} catch( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement(\"input\");\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tinput.setAttribute( \"checked\", \"t\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tfragment = document.createDocumentFragment();\n\tfragment.appendChild( input );\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tsupport.appendChecked = input.checked;\n\n\t// WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)\n\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\tdiv.setAttribute( eventName = \"on\" + i, \"t\" );\n\n\t\tsupport[ i + \"Bubbles\" ] = eventName in window || div.attributes[ eventName ].expando === false;\n\t}\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Run tests that need a body at doc ready\n\tjQuery(function() {\n\t\tvar container, marginDiv, tds,\n\t\t\tdivReset = \"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;\",\n\t\t\tbody = document.getElementsByTagName(\"body\")[0];\n\n\t\tif ( !body ) {\n\t\t\t// Return for frameset docs that don't have a body\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer = document.createElement(\"div\");\n\t\tcontainer.style.cssText = \"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\";\n\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"
t
\";\n\t\ttds = div.getElementsByTagName(\"td\");\n\t\ttds[ 0 ].style.cssText = \"padding:0;margin:0;border:0;display:none\";\n\t\tisSupported = ( tds[ 0 ].offsetHeight === 0 );\n\n\t\ttds[ 0 ].style.display = \"\";\n\t\ttds[ 1 ].style.display = \"none\";\n\n\t\t// Support: IE8\n\t\t// Check if empty table cells still have offsetWidth/Height\n\t\tsupport.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );\n\n\t\t// Check box-sizing and margin behavior\n\t\tdiv.innerHTML = \"\";\n\t\tdiv.style.cssText = \"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\";\n\t\tsupport.boxSizing = ( div.offsetWidth === 4 );\n\t\tsupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );\n\n\t\t// Use window.getComputedStyle because jsdom on node.js will break without it.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tsupport.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tsupport.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// Fails in WebKit before Feb 2011 nightlies\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tmarginDiv = div.appendChild( document.createElement(\"div\") );\n\t\t\tmarginDiv.style.cssText = div.style.cssText = divReset;\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\tsupport.reliableMarginRight =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );\n\t\t}\n\n\t\tif ( typeof div.style.zoom !== \"undefined\" ) {\n\t\t\t// Support: IE<8\n\t\t\t// Check if natively block-level elements act like inline-block\n\t\t\t// elements when setting their display to 'inline' and giving\n\t\t\t// them layout\n\t\t\tdiv.innerHTML = \"\";\n\t\t\tdiv.style.cssText = divReset + \"width:1px;padding:1px;display:inline;zoom:1\";\n\t\t\tsupport.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );\n\n\t\t\t// Support: IE6\n\t\t\t// Check if elements with layout shrink-wrap their children\n\t\t\tdiv.style.display = \"block\";\n\t\t\tdiv.innerHTML = \"
\";\n\t\t\tdiv.firstChild.style.width = \"5px\";\n\t\t\tsupport.shrinkWrapBlocks = ( div.offsetWidth !== 3 );\n\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\t// Null elements to avoid leaks in IE\n\t\tcontainer = div = tds = marginDiv = null;\n\t});\n\n\t// Null elements to avoid leaks in IE\n\tall = select = fragment = opt = a = input = null;\n\n\treturn support;\n})();\n\nvar rbrace = /(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\t\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ){\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, ret,\n\t\tinternalKey = jQuery.expando,\n\t\tgetByName = typeof name === \"string\",\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\telem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\tcache[ id ] = {};\n\n\t\t// Avoids exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tif ( !isNode ) {\n\t\t\tcache[ id ].toJSON = jQuery.noop;\n\t\t}\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( getByName ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt /* For internal use only */ ){\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i, l,\n\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\tfor ( i = 0, l = name.length; i < l; i++ ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t} else if ( jQuery.support.deleteExpando || cache != cache.window ) {\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// Unique for each copy of jQuery on the page\n\t// Non-digits removed to match rinlinejQuery\n\texpando: \"jQuery\" + ( core_version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// The following elements throw uncatchable exceptions if you\n\t// attempt to add expando properties to them.\n\tnoData: {\n\t\t\"embed\": true,\n\t\t// Ban all objects except for Flash (which handle expandos)\n\t\t\"object\": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",\n\t\t\"applet\": true\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, false );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, false );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\t\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t},\n\n\t// A method for determining if a DOM node can handle the data expando\n\tacceptData: function( elem ) {\n\t\tvar noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];\n\n\t\t// nodes accept data unless otherwise specified; rejection can be conditional\n\t\treturn !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar attrs, name,\n\t\t\telem = this[0],\n\t\t\ti = 0,\n\t\t\tdata = null;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\tattrs = elem.attributes;\n\t\t\t\t\tfor ( ; i < attrs.length; i++ ) {\n\t\t\t\t\t\tname = attrs[i].name;\n\n\t\t\t\t\t\tif ( !name.indexOf( \"data-\" ) ) {\n\t\t\t\t\t\t\tname = jQuery.camelCase( name.substring(5) );\n\n\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn jQuery.access( this, function( value ) {\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\t// Try to fetch any internally stored data first\n\t\t\t\treturn elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\tdata === \"false\" ? false :\n\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\thooks.cur = fn;\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// http://blindsignals.com/index.php/2009/07/jquery-delay/\n\tdelay: function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || \"fx\";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar nodeHook, boolHook,\n\trclass = /[\\t\\r\\n]/g,\n\trreturn = /\\r/g,\n\trfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i,\n\trboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = jQuery.support.getSetAttribute,\n\tgetSetInput = jQuery.support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t},\n\n\tprop: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t},\n\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = jQuery.trim( cur );\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisBool = typeof stateVal === \"boolean\";\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tstate = stateVal,\n\t\t\t\t\tclassNames = value.match( core_rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tstate = isBool ? state : !self.hasClass( className );\n\t\t\t\t\tself[ state ? \"addClass\" : \"removeClass\" ]( className );\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === \"undefined\" || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val,\n\t\t\t\tself = jQuery(this);\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, self.val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map(val, function ( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// attributes.value is undefined in Blackberry 4.7 but\n\t\t\t\t// uses .value. See #6932\n\t\t\t\tvar val = elem.attributes.value;\n\t\t\t\treturn !val || val.specified ? elem.value : elem.text;\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( jQuery.support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar values = jQuery.makeArray( value );\n\n\t\t\t\tjQuery(elem).find(\"option\").each(function() {\n\t\t\t\t\tthis.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;\n\t\t\t\t});\n\n\t\t\t\tif ( !values.length ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t},\n\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( notxml ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && notxml && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && notxml && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\n\t\t\t// In IE9+, Flash objects don't have .getAttribute (#12945)\n\t\t\t// Support: IE9+\n\t\t\tif ( typeof elem.getAttribute !== \"undefined\" ) {\n\t\t\t\tret = elem.getAttribute( name );\n\t\t\t}\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( core_rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( rboolean.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false for boolean attributes\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate) for IE<8\n\t\t\t\t\tif ( !getSetAttribute && ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !jQuery.support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\ttabindex: \"tabIndex\",\n\t\treadonly: \"readOnly\",\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\",\n\t\tmaxlength: \"maxLength\",\n\t\tcellspacing: \"cellSpacing\",\n\t\tcellpadding: \"cellPadding\",\n\t\trowspan: \"rowSpan\",\n\t\tcolspan: \"colSpan\",\n\t\tusemap: \"useMap\",\n\t\tframeborder: \"frameBorder\",\n\t\tcontenteditable: \"contentEditable\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\treturn ( elem[ name ] = value );\n\t\t\t}\n\n\t\t} else {\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\treturn elem[ name ];\n\t\t\t}\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\tvar attributeNode = elem.getAttributeNode(\"tabindex\");\n\n\t\t\t\treturn attributeNode && attributeNode.specified ?\n\t\t\t\t\tparseInt( attributeNode.value, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tundefined;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hook for boolean attributes\nboolHook = {\n\tget: function( elem, name ) {\n\t\tvar\n\t\t\t// Use .prop to determine if this attribute is understood as boolean\n\t\t\tprop = jQuery.prop( elem, name ),\n\n\t\t\t// Fetch it accordingly\n\t\t\tattr = typeof prop === \"boolean\" && elem.getAttribute( name ),\n\t\t\tdetail = typeof prop === \"boolean\" ?\n\n\t\t\t\tgetSetInput && getSetAttribute ?\n\t\t\t\t\tattr != null :\n\t\t\t\t\t// oldIE fabricates an empty string for missing boolean attributes\n\t\t\t\t\t// and conflates checked/selected into attroperties\n\t\t\t\t\truseDefault.test( name ) ?\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] :\n\t\t\t\t\t\t!!attr :\n\n\t\t\t\t// fetch an attribute node for properties not recognized as boolean\n\t\t\t\telem.getAttributeNode( name );\n\n\t\treturn detail && detail.value !== false ?\n\t\t\tname.toLowerCase() :\n\t\t\tundefined;\n\t},\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\n\n// fix oldIE value attroperty\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\treturn jQuery.nodeName( elem, \"input\" ) ?\n\n\t\t\t\t// Ignore the value *property* by using defaultValue\n\t\t\t\telem.defaultValue :\n\n\t\t\t\tret && ret.specified ? ret.value : undefined;\n\t\t},\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = jQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\treturn ret && ( name === \"id\" || name === \"name\" || name === \"coords\" ? ret.value !== \"\" : ret.specified ) ?\n\t\t\t\tret.value :\n\t\t\t\tundefined;\n\t\t},\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\treturn name === \"value\" || value === elem.getAttribute( name ) ?\n\t\t\t\tvalue :\n\t\t\t\tundefined;\n\t\t}\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tget: nodeHook.get,\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !jQuery.support.hrefNormalized ) {\n\tjQuery.each([ \"href\", \"src\", \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar ret = elem.getAttribute( name, 2 );\n\t\t\t\treturn ret == null ? undefined : ret;\n\t\t\t}\n\t\t});\n\t});\n\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !jQuery.support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n// Safari mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !jQuery.support.optSelected ) {\n\tjQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t});\n}\n\n// IE6/7 call enctype encoding\nif ( !jQuery.support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n// Radios and checkboxes getter/setter\nif ( !jQuery.support.checkOn ) {\n\tjQuery.each([ \"radio\", \"checkbox\" ], function() {\n\t\tjQuery.valHooks[ this ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\t// Handle the case where in Webkit \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t\t}\n\t\t};\n\t});\n}\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t});\n});\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\t\telemData = elem.nodeType !== 3 && elem.nodeType !== 8 && jQuery._data( elem );\n\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\t// jQuery(...).bind(\"mouseover mouseout\", fn);\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = event.type || event,\n\t\t\tnamespaces = event.namespace ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\tevent.isTrigger = true;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&\n\t\t\t\t!(type === \"click\" && jQuery.nodeName( elem, \"a\" )) && jQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = core_slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.disabled !== true || event.type !== \"click\" ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = jQuery.event.fixHooks[ event.type ] || {},\n\t\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== document.activeElement && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === document.activeElement && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Even when returnValue equals to undefined Firefox will still show alert\n\t\t\t\tif ( event.result !== undefined ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{ type: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === \"undefined\" ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||\n\t\t\tsrc.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !jQuery.support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !jQuery.support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !jQuery.support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler while someone wants focusin/focusout\n\t\tvar attaches = 0,\n\t\t\thandler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tif ( attaches++ === 0 ) {\n\t\t\t\t\tdocument.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( --attaches === 0 ) {\n\t\t\t\t\tdocument.removeEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n});\n\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n\n\tif ( rkeyEvent.test( name ) ) {\n\t\tjQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;\n\t}\n\n\tif ( rmouseEvent.test( name ) ) {\n\t\tjQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;\n\t}\n});\n/*!\n * Sizzle CSS Selector Engine\n * Copyright 2012 jQuery Foundation and other contributors\n * Released under the MIT license\n * http://sizzlejs.com/\n */\n(function( window, undefined ) {\n\nvar i,\n\tcachedruns,\n\tExpr,\n\tgetText,\n\tisXML,\n\tcompile,\n\thasDuplicate,\n\toutermostContext,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsXML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\tsortOrder,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + -(new Date()),\n\tpreferredDoc = window.document,\n\tsupport = {},\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\n\t// General-purpose constants\n\tstrundefined = typeof undefined,\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Array methods\n\tarr = [],\n\tpop = arr.pop,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf if we can't use a native one\n\tindexOf = arr.indexOf || function( elem ) {\n\t\tvar i = 0,\n\t\t\tlen = this.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( this[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors\n\toperators = \"([*^$|!~]?=)\",\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")\" + whitespace +\n\t\t\"*(?:\" + operators + whitespace + \"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\" + identifier + \")|)|)\" + whitespace + \"*\\\\]\",\n\n\t// Prefer arguments quoted,\n\t// then not containing pseudos/brackets,\n\t// then attribute selectors/non-parenthetical expressions,\n\t// then anything else\n\t// These preferences are here to reduce the number of selectors\n\t// needing tokenize in the PSEUDO preFilter\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes.replace( 3, 8 ) + \")*)|.*)\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([\\\\x20\\\\t\\\\r\\\\n\\\\f>+~])\" + whitespace + \"*\" ),\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"NAME\": new RegExp( \"^\\\\[name=['\\\"]?(\" + characterEncoding + \")['\\\"]?\\\\]\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trsibling = /[\\x20\\t\\r\\n\\f]*[+~]/,\n\n\trnative = /\\{\\s*\\[native code\\]\\s*\\}/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trescape = /'|\\\\/g,\n\trattributeQuotes = /\\=[\\x20\\t\\r\\n\\f]*([^'\"\\]]*)[\\x20\\t\\r\\n\\f]*\\]/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = /\\\\([\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|.)/g,\n\tfunescape = function( _, escaped ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\treturn high !== high ?\n\t\t\tescaped :\n\t\t\t// BMP codepoint\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t};\n\n// Use a stripped-down slice if we can't use a native one\ntry {\n\tslice.call( docElem.childNodes, 0 )[0].nodeType;\n} catch ( e ) {\n\tslice = function( i ) {\n\t\tvar elem,\n\t\t\tresults = [];\n\t\tfor ( ; (elem = this[i]); i++ ) {\n\t\t\tresults.push( elem );\n\t\t}\n\t\treturn results;\n\t};\n}\n\n/**\n * For feature detection\n * @param {Function} fn The function to test for native support\n */\nfunction isNative( fn ) {\n\treturn rnative.test( fn + \"\" );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar cache,\n\t\tkeys = [];\n\n\treturn (cache = function( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key += \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key ] = value);\n\t});\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\n\tif ( !selector || typeof selector !== \"string\" ) {\n\t\treturn results;\n\t}\n\n\tif ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {\n\t\treturn [];\n\t}\n\n\tif ( !documentIsXML && !seed ) {\n\n\t\t// Shortcuts\n\t\tif ( (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, slice.call(context.getElementsByClassName( m ), 0) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && !rbuggyQSA.test(selector) ) {\n\t\t\told = true;\n\t\t\tnid = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType === 9 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && context.parentNode || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results, slice.call( newContext.querySelectorAll(\n\t\t\t\t\t\tnewSelector\n\t\t\t\t\t), 0 ) );\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Detect xml\n * @param {Element|Object} elem An element or a document\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar doc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\n\t// Support tests\n\tdocumentIsXML = isXML( doc );\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.tagNameNoComments = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Check if attributes should be retrieved by attribute nodes\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.innerHTML = \"\";\n\t\tvar type = typeof div.lastChild.getAttribute(\"multiple\");\n\t\t// IE8 returns a string for some attributes even when not present\n\t\treturn type !== \"boolean\" && type !== \"string\";\n\t});\n\n\t// Check if getElementsByClassName can be trusted\n\tsupport.getByClassName = assert(function( div ) {\n\t\t// Opera can't find a second classname (in 9.6)\n\t\tdiv.innerHTML = \"\";\n\t\tif ( !div.getElementsByClassName || !div.getElementsByClassName(\"e\").length ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Safari 3.2 caches class attributes and doesn't catch changes\n\t\tdiv.lastChild.className = \"e\";\n\t\treturn div.getElementsByClassName(\"e\").length === 2;\n\t});\n\n\t// Check if getElementById returns elements by name\n\t// Check if getElementsByName privileges form controls or returns elements by ID\n\tsupport.getByName = assert(function( div ) {\n\t\t// Inject content\n\t\tdiv.id = expando + 0;\n\t\tdiv.innerHTML = \"
\";\n\t\tdocElem.insertBefore( div, docElem.firstChild );\n\n\t\t// Test\n\t\tvar pass = doc.getElementsByName &&\n\t\t\t// buggy browsers will return fewer than the correct 2\n\t\t\tdoc.getElementsByName( expando ).length === 2 +\n\t\t\t// buggy browsers will return more than the correct 0\n\t\t\tdoc.getElementsByName( expando + 0 ).length;\n\t\tsupport.getIdNotName = !doc.getElementById( expando );\n\n\t\t// Cleanup\n\t\tdocElem.removeChild( div );\n\n\t\treturn pass;\n\t});\n\n\t// IE6/7 return modified attributes\n\tExpr.attrHandle = assert(function( div ) {\n\t\tdiv.innerHTML = \"\";\n\t\treturn div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&\n\t\t\tdiv.firstChild.getAttribute(\"href\") === \"#\";\n\t}) ?\n\t\t{} :\n\t\t{\n\t\t\t\"href\": function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"href\", 2 );\n\t\t\t},\n\t\t\t\"type\": function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"type\");\n\t\t\t}\n\t\t};\n\n\t// ID find and filter\n\tif ( support.getIdNotName ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== strundefined && !documentIsXML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [m] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== strundefined && !documentIsXML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\n\t\t\t\treturn m ?\n\t\t\t\t\tm.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode(\"id\").value === id ?\n\t\t\t\t\t\t[m] :\n\t\t\t\t\t\tundefined :\n\t\t\t\t\t[];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.tagNameNoComments ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== strundefined ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\t\t\t}\n\t\t} :\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\tfor ( ; (elem = results[i]); i++ ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Name\n\tExpr.find[\"NAME\"] = support.getByName && function( tag, context ) {\n\t\tif ( typeof context.getElementsByName !== strundefined ) {\n\t\t\treturn context.getElementsByName( name );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21),\n\t// no need to also add to buggyMatches since matches checks buggyQSA\n\t// A support test would require too much code (would include document ready)\n\trbuggyQSA = [ \":focus\" ];\n\n\tif ( (support.qsa = isNative(doc.querySelectorAll)) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explictly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdiv.innerHTML = \"\";\n\n\t\t\t// IE8 - Some boolean attributes are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:checked|disabled|ismap|multiple|readonly|selected|value)\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\n\t\t\t// Opera 10-12/IE8 - ^= $= *= and empty values\n\t\t\t// Should not select anything\n\t\t\tdiv.innerHTML = \"\";\n\t\t\tif ( div.querySelectorAll(\"[i^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:\\\"\\\"|'')\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = new RegExp( rbuggyMatches.join(\"|\") );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = isNative(docElem.contains) || docElem.compareDocumentPosition ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t// Document order sorting\n\tsortOrder = docElem.compareDocumentPosition ?\n\tfunction( a, b ) {\n\t\tvar compare;\n\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) {\n\t\t\tif ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) {\n\t\t\t\tif ( a === doc || contains( preferredDoc, a ) ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( b === doc || contains( preferredDoc, b ) ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn compare & 4 ? -1 : 1;\n\t\t}\n\n\t\treturn a.compareDocumentPosition ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// The nodes are identical, we can exit early\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\n\t\t// Fallback to using sourceIndex (in IE) if it's available on both nodes\n\t\t} else if ( a.sourceIndex && b.sourceIndex ) {\n\t\t\treturn ( ~b.sourceIndex || MAX_NEGATIVE ) - ( contains( preferredDoc, a ) && ~a.sourceIndex || MAX_NEGATIVE );\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\t} else if ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\t// Always assume the presence of duplicates if sort doesn't\n\t// pass them to our comparison function (as in Google Chrome).\n\thasDuplicate = false;\n\t[0, 0].sort( sortOrder );\n\tsupport.detectDuplicates = hasDuplicate;\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\t// rbuggyQSA always contains :focus, so no need for an existence check\n\tif ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) {\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch(e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [elem] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\tvar val;\n\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( !documentIsXML ) {\n\t\tname = name.toLowerCase();\n\t}\n\tif ( (val = Expr.attrHandle[ name ]) ) {\n\t\treturn val( elem );\n\t}\n\tif ( documentIsXML || support.attributes ) {\n\t\treturn elem.getAttribute( name );\n\t}\n\treturn ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ?\n\t\tname :\n\t\tval && val.specified ? val.value : null;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n// Document sorting and removing duplicates\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\ti = 1,\n\t\tj = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\tfor ( ; (elem = results[i]); i++ ) {\n\t\t\tif ( elem === results[ i - 1 ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\treturn results;\n};\n\nfunction siblingCheck( a, b ) {\n\tvar cur = a && b && a.nextSibling;\n\n\tfor ( ; cur; cur = cur.nextSibling ) {\n\t\tif ( cur === b ) {\n\t\t\treturn -1;\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n// Returns a function to use in pseudos for input types\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n// Returns a function to use in pseudos for buttons\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n// Returns a function to use in pseudos for positionals\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\tfor ( ; (node = elem[i]); i++ ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (see #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[5] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[4] ) {\n\t\t\t\tmatch[2] = match[4];\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeName ) {\n\t\t\tif ( nodeName === \"*\" ) {\n\t\t\t\treturn function() { return true; };\n\t\t\t}\n\n\t\t\tnodeName = nodeName.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\")) || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.substr( result.length - check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.substr( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifider\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsXML ?\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\") :\n\t\t\t\t\t\telem.lang) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\n\t\t\t// not comment, processing instructions, or others\n\t\t\t// Thanks to Diego Perini for the nodeName shortcut\n\t\t\t// Greater than \"@\" means alpha characters (specifically not starting with \"#\" or \"?\")\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeName > \"@\" || elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\t// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\n\t\t\t// use getAttribute instead to test this case\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === elem.type );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( tokens = [] );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && combinator.dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar data, cache, outerCache,\n\t\t\t\tdirkey = dirruns + \" \" + doneName;\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {\n\t\t\t\t\t\t\tif ( (data = cache[1]) === true || data === cachedruns ) {\n\t\t\t\t\t\t\t\treturn data === true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcache = outerCache[ dir ] = [ dirkey ];\n\t\t\t\t\t\t\tcache[1] = matcher( elem, context, xml ) || cachedruns;\n\t\t\t\t\t\t\tif ( cache[1] === true ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\treturn ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\t// A counter to specify which element is currently being matched\n\tvar matcherCachedRuns = 0,\n\t\tbySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, expandContext ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tsetMatched = [],\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\toutermost = expandContext != null,\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", expandContext && context.parentNode || context ),\n\t\t\t\t// Nested matchers should use non-integer dirruns\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t\tcachedruns = matcherCachedRuns;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tfor ( j = 0; (matcher = elementMatchers[j]); j++ ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t\tcachedruns = ++matcherCachedRuns;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// `i` starts as a string, so matchedCount would equal \"00\" if there are no elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tfor ( j = 0; (matcher = setMatchers[j]); j++ ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !group ) {\n\t\t\tgroup = tokenize( selector );\n\t\t}\n\t\ti = group.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( group[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\t}\n\treturn cached;\n};\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tmatch = tokenize( selector );\n\n\tif ( !seed ) {\n\t\t// Try to minimize operations if there is only one group\n\t\tif ( match.length === 1 ) {\n\n\t\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\t\ttokens = match[0] = match[0].slice( 0 );\n\t\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\t\tcontext.nodeType === 9 && !documentIsXML &&\n\t\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\t\tcontext = Expr.find[\"ID\"]( token.matches[0].replace( runescape, funescape ), context )[0];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\n\t\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t\t}\n\n\t\t\t// Fetch a seed set for right-to-left matching\n\t\t\tfor ( i = matchExpr[\"needsContext\"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) {\n\t\t\t\ttoken = tokens[i];\n\n\t\t\t\t// Abort if we hit a combinator\n\t\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\t\tif ( (seed = find(\n\t\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\t\trsibling.test( tokens[0].type ) && context.parentNode || context\n\t\t\t\t\t)) ) {\n\n\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\t\tpush.apply( results, slice.call( seed, 0 ) );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\tcompile( selector, match )(\n\t\tseed,\n\t\tcontext,\n\t\tdocumentIsXML,\n\t\tresults,\n\t\trsibling.test( selector )\n\t);\n\treturn results;\n}\n\n// Deprecated\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nExpr.filters = setFilters.prototype = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\n// Initialize with the default document\nsetDocument();\n\n// Override sizzle attribute retrieval\nSizzle.attr = jQuery.attr;\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n})( window );\nvar runtil = /Until$/,\n\trparentsprev = /^(?:parents|prev(?:Until|All))/,\n\tisSimple = /^.[^:#\\[\\.,]*$/,\n\trneedsContext = jQuery.expr.match.needsContext,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i, ret, self;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\tself = this;\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < self.length; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tret = [];\n\t\tfor ( i = 0; i < this.length; i++ ) {\n\t\t\tjQuery.find( selector, this[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( jQuery.unique( ret ) );\n\t\tret.selector = ( this.selector ? this.selector + \" \" : \"\" ) + selector;\n\t\treturn ret;\n\t},\n\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector, false) );\n\t},\n\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector, true) );\n\t},\n\n\tis: function( selector ) {\n\t\treturn !!selector && (\n\t\t\ttypeof selector === \"string\" ?\n\t\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\t\trneedsContext.test( selector ) ?\n\t\t\t\t\tjQuery( selector, this.context ).index( this[0] ) >= 0 :\n\t\t\t\t\tjQuery.filter( selector, this ).length > 0 :\n\t\t\t\tthis.filter( selector ).length > 0 );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tret = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tcur = this[i];\n\n\t\t\twhile ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {\n\t\t\t\tif ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {\n\t\t\t\t\tret.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\tvar set = typeof selector === \"string\" ?\n\t\t\t\tjQuery( selector, context ) :\n\t\t\t\tjQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),\n\t\t\tall = jQuery.merge( this.get(), set );\n\n\t\treturn this.pushStack( jQuery.unique(all) );\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( !runtil.test( name ) ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;\n\n\t\tif ( this.length > 1 && rparentsprev.test( name ) ) {\n\t\t\tret = ret.reverse();\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\njQuery.extend({\n\tfilter: function( expr, elems, not ) {\n\t\tif ( not ) {\n\t\t\texpr = \":not(\" + expr + \")\";\n\t\t}\n\n\t\treturn elems.length === 1 ?\n\t\t\tjQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :\n\t\t\tjQuery.find.matches(expr, elems);\n\t},\n\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, keep ) {\n\n\t// Can't pass null or undefined to indexOf in Firefox 4\n\t// Set to 0 to skip string check\n\tqualifier = qualifier || 0;\n\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep(elements, function( elem, i ) {\n\t\t\tvar retVal = !!qualifier.call( elem, i, elem );\n\t\t\treturn retVal === keep;\n\t\t});\n\n\t} else if ( qualifier.nodeType ) {\n\t\treturn jQuery.grep(elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) === keep;\n\t\t});\n\n\t} else if ( typeof qualifier === \"string\" ) {\n\t\tvar filtered = jQuery.grep(elements, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t});\n\n\t\tif ( isSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter(qualifier, filtered, !keep);\n\t\t} else {\n\t\t\tqualifier = jQuery.filter( qualifier, filtered );\n\t\t}\n\t}\n\n\treturn jQuery.grep(elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;\n\t});\n}\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
\", \"
\" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: jQuery.support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip(arguments, true, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tthis.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip(arguments, true, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tthis.insertBefore( elem, this.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, false, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, false, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\t// keepData is for internal use only--do not document\n\tremove: function( selector, keepData ) {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\tif ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) {\n\t\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t\t}\n\n\t\t\t\tif ( elem.parentNode ) {\n\t\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function () {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\tvar elem = this[0] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [\"\", \"\"] )[1].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function( value ) {\n\t\tvar isFunc = jQuery.isFunction( value );\n\n\t\t// Make sure that the elements are removed from the DOM before they are inserted\n\t\t// this can help fix replacing a parent with child elements\n\t\tif ( !isFunc && typeof value !== \"string\" ) {\n\t\t\tvalue = jQuery( value ).not( this ).detach();\n\t\t}\n\n\t\treturn this.domManip( [ value ], true, function( elem ) {\n\t\t\tvar next = this.nextSibling,\n\t\t\t\tparent = this.parentNode;\n\n\t\t\tif ( parent && this.nodeType === 1 || this.nodeType === 11 ) {\n\n\t\t\t\tjQuery( this ).remove();\n\n\t\t\t\tif ( next ) {\n\t\t\t\t\tnext.parentNode.insertBefore( elem, next );\n\t\t\t\t} else {\n\t\t\t\t\tparent.appendChild( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, table, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = core_concat.apply( [], args );\n\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction || !( l <= 1 || typeof value !== \"string\" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, table ? self.html() : undefined );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, table, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\ttable = table && jQuery.nodeName( first, \"tr\" );\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call(\n\t\t\t\t\t\ttable && jQuery.nodeName( this[i], \"table\" ) ?\n\t\t\t\t\t\t\tfindOrAppend( this[i], \"tbody\" ) :\n\t\t\t\t\t\t\tthis[i],\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\ti\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Hope ajax is available...\n\t\t\t\t\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\t\t\t\turl: node.src,\n\t\t\t\t\t\t\t\t\ttype: \"GET\",\n\t\t\t\t\t\t\t\t\tdataType: \"script\",\n\t\t\t\t\t\t\t\t\tasync: false,\n\t\t\t\t\t\t\t\t\tglobal: false,\n\t\t\t\t\t\t\t\t\t\"throws\": true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\nfunction findOrAppend( elem, tag ) {\n\treturn elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\tvar attr = elem.getAttributeNode(\"type\");\n\telem.type = ( attr && attr.specified ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, data, e;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && manipulation_rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tcore_push.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== \"undefined\" ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( manipulation_rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, srcElements, node, i, clone,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar contains, elem, tag, tmp, wrap, tbody, j,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [\"\", \"\"] )[1].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !jQuery.support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !jQuery.support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar data, id, elem, type,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = jQuery.support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== \"undefined\" ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcore_deletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\nvar curCSS, getStyles, iframe,\n\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\trposition = /^(top|right|bottom|left)$/,\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trmargin = /^margin/,\n\trnumsplit = new RegExp( \"^(\" + core_pnum + \")(.*)$\", \"i\" ),\n\trnumnonpx = new RegExp( \"^(\" + core_pnum + \")(?!px)[a-z%]+$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + core_pnum + \")\", \"i\" ),\n\telemdisplay = { BODY: \"block\" },\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: 0,\n\t\tfontWeight: 400\n\t},\n\n\tcssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ],\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction isHidden( elem, el ) {\n\t// isHidden might be called from jQuery#filter function;\n\t// in that case, element will be second argument\n\telem = el || elem;\n\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n}\n\nfunction showHide( elements, show ) {\n\tvar elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && elem.style.display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", css_defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else if ( !values[ index ] && !isHidden( elem ) ) {\n\t\t\tjQuery._data( elem, \"olddisplay\", jQuery.css( elem, \"display\" ) );\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn jQuery.access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tvar bool = typeof state === \"boolean\";\n\n\t\treturn this.each(function() {\n\t\t\tif ( bool ? state : isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Exclude the following css properties to add px\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": jQuery.support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that NaN and null values aren't set. See: #7116\n\t\t\tif ( value == null || type === \"number\" && isNaN( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !jQuery.support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Wrapped to prevent IE from throwing errors when 'invalid' values are provided\n\t\t\t\t// Fixes bug #5509\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t},\n\n\t// A method for quickly swapping in/out CSS properties to get correct calculations\n\tswap: function( elem, options, callback, args ) {\n\t\tvar ret, name,\n\t\t\told = {};\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor ( name in options ) {\n\t\t\told[ name ] = elem.style[ name ];\n\t\t\telem.style[ name ] = options[ name ];\n\t\t}\n\n\t\tret = callback.apply( elem, args || [] );\n\n\t\t// Revert the old values\n\t\tfor ( name in options ) {\n\t\t\telem.style[ name ] = old[ name ];\n\t\t}\n\n\t\treturn ret;\n\t}\n});\n\n// NOTE: we've included the \"window\" in window.getComputedStyle\n// because jsdom on node.js will break without it.\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar width, minWidth, maxWidth,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\n\t\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar left, rs, rsLeft,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\t\t\tret = computed ? computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\treturn ret === \"\" ? \"auto\" : ret;\n\t};\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\n// Try to determine the default display value of an element\nfunction css_defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe ||\n\t\t\t\tjQuery(\"