Index: openacs-4/packages/xowiki/www/resources/jquery/jquery.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/jquery/Attic/jquery.js,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/xowiki/www/resources/jquery/jquery.js 13 Sep 2012 16:06:47 -0000 1.6 +++ openacs-4/packages/xowiki/www/resources/jquery/jquery.js 14 Apr 2014 21:10:54 -0000 1.6.2.1 @@ -1,259 +1,131 @@ /*! - * jQuery JavaScript Library v1.6.1 + * jQuery JavaScript Library v1.11.0 * http://jquery.com/ * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * * Includes Sizzle.js * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. * - * Date: Thu May 12 15:04:36 2011 -0400 + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-01-23T21:02Z */ -(function( window, undefined ) { -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { +(function( global, factory ) { -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper window is present, + // execute the factory and get jQuery + // For environments that do not inherently posses a window with a document + // (such as Node.js), expose a jQuery-making factory as module.exports + // This accentuates the need for the creation of a real window + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - // Map over the $ in case of overwrite - _$ = window.$, +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +// - // A central reference to the root jQuery(document) - rootjQuery, +var deletedIds = []; - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, +var slice = deletedIds.slice; - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, +var concat = deletedIds.concat; - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, +var push = deletedIds.push; - // Check for digits - rdigit = /\d/, +var indexOf = deletedIds.indexOf; - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, +var class2type = {}; - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, +var toString = class2type.toString; - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, +var hasOwn = class2type.hasOwnProperty; - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, +var trim = "".trim; - // For matching the engine and version of the browser - browserMatch, +var support = {}; - // The deferred used on DOM ready - readyList, - // The ready event handler - DOMContentLoaded, - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, +var + version = "1.11.0", - // [[Class]] -> type pairs - class2type = {}; + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; + constructor: jQuery, - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = (context ? context.ownerDocument || context : document); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return (context || rootjQuery).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if (selector.selector !== undefined) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - // Start with an empty selector selector: "", - // The current version of jQuery being used - jquery: "1.6.1", - // The default length of a jQuery object is 0 length: 0, - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - toArray: function() { - return slice.call( this, 0 ); + return slice.call( this ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { - return num == null ? + return num != null ? // Return a 'clean' array - this.toArray() : + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); + slice.call( this ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) - pushStack: function( elems, name, selector ) { + pushStack: function( elems ) { + // Build a new jQuery matched element set - var ret = this.constructor(); + var ret = jQuery.merge( this.constructor(), elems ); - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - // Add the old object onto the stack (as a reference) ret.prevObject = this; - ret.context = this.context; - if ( name === "find" ) { - ret.selector = this.selector + (this.selector ? " " : "") + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - // Return the newly-formed element set return ret; }, @@ -265,20 +137,14 @@ return jQuery.each( this, callback, args ); }, - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.done( fn ); - - return this; + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); }, - eq: function( i ) { - return i === -1 ? - this.slice( i ) : - this.slice( i, +i + 1 ); + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); }, first: function() { @@ -289,33 +155,25 @@ return this.eq( -1 ); }, - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); }, - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - end: function() { return this.prevObject || this.constructor(null); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, - sort: [].sort, - splice: [].splice + sort: deletedIds.sort, + splice: deletedIds.splice }; -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, + var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {}, i = 1, length = arguments.length, @@ -324,9 +182,10 @@ // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; - target = arguments[1] || {}; + // skip the boolean and the target - i = 2; + target = arguments[ i ] || {}; + i++; } // Handle case when target is a string or something (possible in deep copy) @@ -335,9 +194,9 @@ } // extend jQuery itself if only one argument is passed - if ( length === i ) { + if ( i === length ) { target = this; - --i; + i--; } for ( ; i < length; i++ ) { @@ -379,106 +238,18 @@ }; jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } + // Assume jQuery is ready without the ready module + isReady: true, - return jQuery; + error: function( msg ) { + throw new Error( msg ); }, - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, + noop: function() {}, - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).unbind( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery._Deferred(); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). @@ -490,110 +261,77 @@ return jQuery.type(obj) === "array"; }, - // A crude way of determining if an object is a window isWindow: function( obj ) { - return obj && typeof obj === "object" && "setInterval" in obj; + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; }, - isNaN: function( obj ) { - return obj == null || !rdigit.test( obj ) || isNaN( obj ); + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + return obj - parseFloat( obj ) >= 0; }, - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; }, isPlainObject: function( obj ) { + var key; + // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 return false; } + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( support.ownLast ) { + for ( key in obj ) { + return hasOwn.call( obj, key ); + } + } + // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. - - var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }, - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; + type: function( obj ) { + if ( obj == null ) { + return obj + ""; } - return true; + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; }, - error: function( msg ) { - throw msg; - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return (new Function( "return " + data ))(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - // (xml & tmp used internally) - parseXML: function( data , xml , tmp ) { - - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - - tmp = xml.documentElement; - - if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { - jQuery.error( "Invalid XML: " + data ); - } - - return xml; - }, - - noop: function() {}, - // Evaluates a script in a global context // Workarounds based on findings by Jim Driscoll // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { + if ( data && jQuery.trim( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox @@ -603,53 +341,68 @@ } }, + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); }, // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { break; } } } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { break; } } } // A special, fast, case for the most common use of each } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { break; } } } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { break; } } } } - return object; + return obj; }, // Use native String.trim function wherever possible - trim: trim ? + trim: trim && !trim.call("\uFEFF\xA0") ? function( text ) { return text == null ? "" : @@ -660,55 +413,61 @@ function( text ) { return text == null ? "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + ( text + "" ).replace( rtrim, "" ); }, // results is for internal usage only - makeArray: function( array, results ) { + makeArray: function( arr, results ) { var ret = results || []; - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // The extra typeof function check is to prevent crashes - // in Safari 2 (See: #3039) - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); } else { - jQuery.merge( ret, array ); + push.call( ret, arr ); } } return ret; }, - inArray: function( elem, array ) { + inArray: function( elem, arr, i ) { + var len; - if ( indexOf ) { - return indexOf.call( array, elem ); - } + if ( arr ) { + if ( indexOf ) { + return indexOf.call( arr, elem, i ); + } - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } } } return -1; }, merge: function( first, second ) { - var i = first.length, - j = 0; + var len = +second.length, + j = 0, + i = first.length; - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } + while ( j < len ) { + first[ i++ ] = second[ j++ ]; + } - } else { + // Support: IE<9 + // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) + if ( len !== len ) { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } @@ -719,53 +478,56 @@ return first; }, - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; // Go through the array, only saving the items // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); } } - return ret; + return matches; }, // arg is for internal usage only map: function( elems, callback, arg ) { - var value, key, ret = [], + var value, i = 0, length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + isArray = isArraylike( elems ), + ret = []; - // Go through the array, translating each of the items to their + // Go through the array, translating each of the items to their new values if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { - ret[ ret.length ] = value; + ret.push( value ); } } // Go through every key on the object, } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); if ( value != null ) { - ret[ ret.length ] = value; + ret.push( value ); } } } // Flatten any nested arrays - return ret.concat.apply( [], ret ); + return concat.apply( [], ret ); }, // A global GUID counter for objects @@ -774,8 +536,10 @@ // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { + var args, proxy, tmp; + if ( typeof context === "string" ) { - var tmp = fn[ context ]; + tmp = fn[ context ]; context = fn; fn = tmp; } @@ -787,1823 +551,3791 @@ } // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + proxy.guid = fn.guid = fn.guid || jQuery.guid++; return proxy; }, - // Mutifunctional method to get and set values to a collection - // The value/s can be optionally by executed if its a function - access: function( elems, key, value, exec, fn, pass ) { - var length = elems.length; + now: function() { + return +( new Date() ); + }, - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - jQuery.access( elems, k, key[k], exec, fn, value ); - } - return elems; - } + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); - return elems; - } + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; - }, + if ( obj.nodeType === 1 && length ) { + return true; + } - now: function() { - return (new Date()).getTime(); - }, + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v1.10.16 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-01-13 + */ +(function( window ) { - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); +var i, + support, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + hasDuplicate, - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, - return { browser: match[1] || "", version: match[2] || "0" }; + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; }, - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; }, - browser: {} -}); + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); + // Regular expressions -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", -// All jQuery objects should point back to these -rootjQuery = jQuery(document); + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }; -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; } }; } -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); } - // and execute any waiting functions - jQuery.ready(); -} + context = context || document; + results = results || []; -// Expose jQuery to the global object -return jQuery; + if ( !selector || typeof selector !== "string" ) { + return results; + } -})(); + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + if ( documentIsHTML && !seed ) { -var // Promise methods - promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), - // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - // Create a simple deferred (one callbacks list) - _Deferred: function() { - var // callbacks list - callbacks = [], - // stored [ context , args ] - fired, - // to avoid firing when already doing so - firing, - // flag to know if the deferred has been cancelled - cancelled, - // the deferred itself - deferred = { - - // done( f1, f2, ...) - done: function() { - if ( !cancelled ) { - var args = arguments, - i, - length, - elem, - type, - _fired; - if ( fired ) { - _fired = fired; - fired = 0; + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; } - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - deferred.done.apply( deferred, elem ); - } else if ( type === "function" ) { - callbacks.push( elem ); - } - } - if ( _fired ) { - deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); - } + } else { + return results; } - return this; - }, - - // resolve with given context and args - resolveWith: function( context, args ) { - if ( !cancelled && !fired && !firing ) { - // make sure args are available (#8421) - args = args || []; - firing = 1; - try { - while( callbacks[ 0 ] ) { - callbacks.shift().apply( context, args ); - } - } - finally { - fired = [ context, args ]; - firing = 0; - } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; } - return this; - }, + } - // resolve with this as context and given arguments - resolve: function() { - deferred.resolveWith( this, arguments ); - return this; - }, + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; - // Has this deferred been resolved? - isResolved: function() { - return !!( firing || fired ); - }, + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } - // Cancel - cancel: function() { - cancelled = 1; - callbacks = []; - return this; + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); } - }; + nid = "[id='" + nid + "'] "; - return deferred; - }, + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } - // Full fledged deferred (two callbacks list) - Deferred: function( func ) { - var deferred = jQuery._Deferred(), - failDeferred = jQuery._Deferred(), - promise; - // Add errorDeferred methods, then and promise - jQuery.extend( deferred, { - then: function( doneCallbacks, failCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ); - return this; - }, - always: function() { - return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); - }, - fail: failDeferred.done, - rejectWith: failDeferred.resolveWith, - reject: failDeferred.resolve, - isRejected: failDeferred.isResolved, - pipe: function( fnDone, fnFail ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject ); - } else { - newDefer[ action ]( returned ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - if ( promise ) { - return promise; + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); } - promise = obj = {}; } - var i = promiseMethods.length; - while( i-- ) { - obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; - } - return obj; } - }); - // Make sure only one callback list will be used - deferred.done( failDeferred.cancel ).fail( deferred.cancel ); - // Unexpose cancel - delete deferred.cancel; - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); } - return deferred; - }, + } - // Deferred helper - when: function( firstParam ) { - var args = arguments, - i = 0, - length = args.length, - count = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - // Strange bug in FF4: - // Values changed onto the arguments object sometimes end up as undefined values - // outside the $.when method. Cloning the object into a fresh array solves the issue - deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); - } - }; + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; } - if ( length > 1 ) { - for( ; i < length; i++ ) { - if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject ); - } else { - --count; - } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); } - return deferred.promise(); } -}); + return a ? 1 : -1; +} +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} -jQuery.support = (function() { +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} - var div = document.createElement( "div" ), - documentElement = document.documentElement, - all, - a, - select, - opt, - input, - marginDiv, - support, - fragment, - body, - bodyStyle, - tds, - events, - eventName, - i, - isSupported; +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== strundefined && context; +} - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, + doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; } - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; + // Set our document + document = doc; + docElem = doc.documentElement; - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), + // Support tests + documentIsHTML = !isXML( doc ); - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName( "tbody" ).length, + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", function() { + setDocument(); + }, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", function() { + setDocument(); + }); + } + } - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName( "link" ).length, + /* Attributes + ---------------------------------------------------------------------- */ - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), + /* getElement(s)By* + ---------------------------------------------------------------------- */ - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55$/.test( a.style.opacity ), + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { + div.innerHTML = "<div class='a'></div><div class='a i'></div>"; - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } }; - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; + // QSA and matchesSelector support - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select t=''><option selected=''></option></select>"; + + // Support: IE8, Opera 10-12 + // Nothing should be selected when empty strings follow ^= or $= or *= + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); } - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function click() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - div.detachEvent( "onclick", click ); + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); }); - div.cloneNode( true ).fireEvent( "onclick" ); } - // Check if a radio maintains it's value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - input.setAttribute("checked", "checked"); - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.firstChild ); + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; - div.innerHTML = ""; + /* Sorting + ---------------------------------------------------------------------- */ - // Figure out if the W3C box model works as expected - div.style.width = div.style.paddingLeft = "1px"; + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { - // We use our own, invisible, body - body = document.createElement( "body" ); - bodyStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - // Set background to avoid IE crashes when removing (#9028) - background: "none" + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; }; - for ( i in bodyStyle ) { - body.style[ i ] = bodyStyle[ i ]; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); } - body.appendChild( div ); - documentElement.insertBefore( body, documentElement.firstChild ); - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); - support.boxModel = div.offsetWidth === 2; + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - if ( "zoom" in div.style ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); + try { + var ret = matches.call( elem, expr ); - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "<div style='width:4px;'></div>"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} } - div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; - tds = div.getElementsByTagName( "td" ); + return Sizzle( expr, document, null, [elem] ).length > 0; +}; - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - isSupported = ( tds[ 0 ].offsetHeight === 0 ); +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } - // Check if empty table cells still have offsetWidth/Height - // (IE < 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - div.innerHTML = ""; + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( document.defaultView && document.defaultView.getComputedStyle ) { - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; - // Remove the body element we added - body.innerHTML = ""; - documentElement.removeChild( body ); +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; - // Technique from Juriy Zaytsev - // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for( i in { - submit: 1, - change: 1, - focusin: 1 - } ) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); } - support[ i + "Bubbles" ] = isSupported; } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } } - return support; -})(); + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; -// Keep track of boxModel -jQuery.boxModel = jQuery.support.boxModel; + return results; +}; +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + return ret; +}; -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([a-z])([A-Z])/g; +Expr = Sizzle.selectors = { -jQuery.extend({ - cache: {}, + // Can be adjusted by the user + cacheLength: 50, - // Please use with caution - uuid: 0, + createPseudo: markFunction, - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + match: matchExpr, - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, + attrHandle: {}, - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + find: {}, - return !!elem && !isEmptyDataObject( elem ); + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } }, - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); - var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, + return match.slice( 0, 4 ); + }, - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { - return; - } + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ jQuery.expando ] = id = ++jQuery.uuid; - } else { - id = jQuery.expando; + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); } - } - if ( !cache[ id ] ) { - cache[ id ] = {}; + return match; + }, - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; } - } - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); - } else { - cache[ id ] = jQuery.extend(cache[ id ], name); + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); } + }, - thisCache = cache[ id ]; + filter: { - // Internal jQuery data is stored in a separate object inside the object's data - // cache in order to avoid key collisions between internal data and user-defined - // data - if ( pvt ) { - if ( !thisCache[ internalKey ] ) { - thisCache[ internalKey ] = {}; + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); } - thisCache = thisCache[ internalKey ]; - } + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; + return fn; } + }, - // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should - // not attempt to inspect the internal events object using jQuery.data, as this - // internal data object is undocumented and subject to change. - if ( name === "events" && !thisCache[name] ) { - return thisCache[ internalKey ] && thisCache[ internalKey ].events; - } + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); - return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; - }, + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), - var internalKey = jQuery.expando, isNode = elem.nodeType, + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), - // See jQuery.data for more information - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), - if ( name ) { - var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, - if ( thisCache ) { - delete thisCache[ name ]; + "root": function( elem ) { + return elem === docElem; + }, - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !isEmptyDataObject(thisCache) ) { - return; + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; } } - } + return true; + }, - // See jQuery.data for more information - if ( pvt ) { - delete cache[ id ][ internalKey ]; + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); } - } + return matchIndexes; + }), - var internalCache = cache[ id ][ internalKey ]; + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - if ( jQuery.support.deleteExpando || cache != window ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), - // We destroyed the entire user cache at once because it's faster than - // iterating through each key, but we need to continue to persist internal - // data if it existed - if ( internalCache ) { - cache[ id ] = {}; - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); } + return matchIndexes; + }) + } +}; - cache[ id ][ internalKey ] = internalCache; +Expr.pseudos["nth"] = Expr.pseudos["eq"]; - // Otherwise, we need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - } else if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ jQuery.expando ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } else { - elem[ jQuery.expando ] = null; +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; } + groups.push( (tokens = []) ); } - }, - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, + matched = false; - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); } } - return true; + if ( !matched ) { + break; + } } -}); -jQuery.fn.extend({ - data: function( key, value ) { - var data = null; + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} - if ( typeof key === "undefined" ) { - if ( this.length ) { - data = jQuery.data( this[0] ); +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} - if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : - dataAttr( this[0], name, data[ name ] ); + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; } } } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } } + }; +} - return data; +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } } + } - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; + return newUnmatched; +} - if ( value === undefined ) { - data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, - // Try to fetch any internally stored data first - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - data = dataAttr( this[0], key, data ); - } + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, - } else { - return this.each(function() { - var $this = jQuery( this ), - args = [ parts[0], value ]; + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - $this.triggerHandler( "setData" + parts[1] + "!", args ); - jQuery.data( this, key, value ); - $this.triggerHandler( "changeData" + parts[1] + "!", args ); - }); + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); } - }, - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } - data = elem.getAttribute( name ); + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - !jQuery.isNaN( data ) ? parseFloat( data ) : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); + seed[temp] = !(results[temp] = elem); + } + } + } + // Add elements to results, through postFinder if defined } else { - data = undefined; + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } } - } - - return data; + }); } -// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON -// property to be considered empty objects; this property always exists in -// order to make sure JSON.stringify does not expose internal metadata -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - if ( name !== "toJSON" ) { - return false; +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); } } - return true; + return elementMatcher( matchers ); } +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + if ( outermost ) { + outermostContext = context !== document && context; + } + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery.data( elem, deferDataKey, undefined, true ); - if ( defer && - ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && - ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery.data( elem, queueDataKey, undefined, true ) && - !jQuery.data( elem, markDataKey, undefined, true ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.resolve(); + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } } - }, 0 ); - } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; } -jQuery.extend({ +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; - _mark: function( elem, type ) { - if ( elem ) { - type = (type || "fx") + "mark"; - jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); - if ( count ) { - jQuery.data( elem, key, count, true ); + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); + elementMatchers.push( cached ); } } - }, - queue: function( elem, type, data ) { - if ( elem ) { - type = (type || "fx") + "queue"; - var q = jQuery.data( elem, type, undefined, true ); - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery.data( elem, type, jQuery.makeArray(data), true ); - } else { - q.push( data ); + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; } + selector = selector.slice( tokens.shift().value.length ); } - return q || []; - } - }, - dequeue: function( elem, type ) { - type = type || "fx"; + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - defer; + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift("inprogress"); + break; + } + } } - - fn.call(elem, function() { - jQuery.dequeue(elem, type); - }); } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; }); -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } + }); +} - if ( data === undefined ) { - return jQuery.queue( this[0], type ); +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; } - return this.each(function() { - var queue = jQuery.queue( this, type, data ); + }); +} - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; - type = type || "fx"; - return this.queue( type, function() { - var elem = this; - setTimeout(function() { - jQuery.dequeue( elem, type ); - }, time ); + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { - count++; - tmp.done( resolve ); - } - } - resolve(); - return defer.promise(); + + qualifier = jQuery.filter( qualifier, elements ); } -}); + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + if ( not ) { + expr = ":not(" + expr + ")"; + } -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - rinvalidChar = /\:/, - formHook, boolHook; + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.attr ); - }, + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; }, - - prop: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.prop ); + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); }, + is: function( selector ) { + return !!winnow( + this, - addClass: function( value ) { - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this); - self.addClass( value.call(this, i, self.attr("class") || "") ); - }); + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; } - if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspace ); + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; + } else { + match = rquickExpr.exec( selector ); + } - if ( elem.nodeType === 1 ) { - if ( !elem.className ) { - elem.className = value; + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { - } else { - var className = " " + elem.className + " ", - setClass = elem.className; + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { - setClass += " " + classNames[c]; + // scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); } } - elem.className = jQuery.trim( setClass ); } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); } - } - return this; - }, + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; - removeClass: function( value ) { - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - self.removeClass( value.call(this, i, self.attr("class")) ); - }); + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); } - if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split( rspace ); + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; + return jQuery.makeArray( selector, this ); + }; - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - var className = (" " + elem.className + " ").replace(rclass, " "); - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[c] + " ", " "); - } - elem.className = jQuery.trim( className ); +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; - } else { - elem.className = ""; - } - } +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); } + cur = cur[dir]; } - - return this; + return matched; }, - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; + sibling: function( n, elem ) { + var r = []; - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this); - self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); - }); + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } } - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); + return r; + } +}); - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } +jQuery.fn.extend({ + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; } }); }, - hasClass: function( selector ) { - var className = " " + selector + " "; - for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } } } - return false; + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); }, - val: function( value ) { - var hooks, ret, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } - return (elem.value || "").replace(rreturn, ""); - } - - return undefined; + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); } - var isFunction = jQuery.isFunction( value ); + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, - return this.each(function( i ) { - var self = jQuery(this), val; + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, - if ( this.nodeType !== 1 ) { - return; - } + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } + return cur; +} - hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); } - }); - } -}); -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); } - }, - select: { - get: function( elem ) { - var value, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; + } - // Nothing was selected - if ( index < 0 ) { - return null; - } + return this.pushStack( ret ); + }; +}); +var rnotwhite = (/\S+/g); - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - // Get the specific value for the option - value = jQuery( option ).val(); +// String to Object options format cache +var optionsCache = {}; - // We don't need an array for one selects - if ( one ) { - return value; - } +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} - // Multi-Selects return an array - values.push( value ); +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); } + } else if ( memory ) { + list = []; + } else { + self.disable(); } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } } - - return values; + return this; }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; - set: function( elem, value ) { - var values = jQuery.makeArray( value ); + return self; +}; - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - if ( !values.length ) { - elem.selectedIndex = -1; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; } - return values; + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); } + + // All done! + return deferred; }, - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + + } else if ( !(--remaining) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } }, - - attrFix: { - // Always normalize to ensure hook usage - tabindex: "tabIndex" - }, - - attr: function( elem, name, value, pass ) { - var nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; } - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); } - // Fallback to prop when attributes are not supported - if ( !("getAttribute" in elem) ) { - return jQuery.prop( elem, name, value ); + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; } - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); - // Normalize the name if needed - name = notxml && jQuery.attrFix[ name ] || name; + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + } +}); - hooks = jQuery.attrHooks[ name ]; +/** + * Clean-up method for dom ready events + */ +function detach() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); - if ( !hooks ) { - // Use boolHook for boolean attributes - if ( rboolean.test( name ) && - (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } +} - hooks = boolHook; +/** + * The ready event handler and self cleanup method + */ +function completed() { + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } +} - // Use formHook for forms and if the name contains certain characters - } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { - hooks = formHook; +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); } } + } + return readyList.promise( obj ); +}; - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return undefined; +var strundefined = typeof undefined; - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - } else { - elem.setAttribute( name, "" + value ); - return value; - } - } else if ( hooks && "get" in hooks && notxml ) { - return hooks.get( elem, name ); +// Support: IE<9 +// Iteration over object's inherited properties before its own +var i; +for ( i in jQuery( support ) ) { + break; +} +support.ownLast = i !== "0"; +// Note: most support tests are defined in their respective modules. +// false until the test is run +support.inlineBlockNeedsLayout = false; + +jQuery(function() { + // We need to execute this one support test ASAP because we need to know + // if body.style.zoom needs to be set. + + var container, div, + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + // Setup + container = document.createElement( "div" ); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + div = document.createElement( "div" ); + body.appendChild( container ).appendChild( div ); + + if ( typeof div.style.zoom !== strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1"; + + if ( (support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 )) ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = null; +}); + + + + +(function() { + var div = document.createElement( "div" ); + + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + } + + // Null elements to avoid leaks in IE. + div = null; +})(); + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( elem ) { + var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], + nodeType = +elem.nodeType || 1; + + // Do not set data on non-element DOM nodes because it will not be cleared (#8335). + return nodeType !== 1 && nodeType !== 9 ? + false : + + // Nodes accept data unless otherwise specified; rejection can be conditional + !noData || noData !== true && elem.getAttribute("classid") === noData; +}; + + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + } else { + data = undefined; + } + } - ret = elem.getAttribute( name ); + return data; +} - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; } - }, + if ( name !== "toJSON" ) { + return false; + } + } - removeAttr: function( elem, name ) { - var propName; - if ( elem.nodeType === 1 ) { - name = jQuery.attrFix[ name ] || name; - - if ( jQuery.support.getSetAttribute ) { - // Use removeAttribute in browsers that support it - elem.removeAttribute( name ); - } else { - jQuery.attr( elem, name, "" ); - elem.removeAttributeNode( elem.getAttributeNode( name ) ); - } + return true; +} - // Set corresponding property to false for boolean attributes - if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { - elem[ propName ] = false; - } +function internalData( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; } - }, + } - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); } - return value; } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); } - }, - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabIndex"); - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements (space-suffixed to avoid Object.prototype collisions) + // throw uncatchable exceptions if you attempt to set expando properties + noData: { + "applet ": true, + "embed ": true, + // ...but Flash objects (which have this classid) *can* handle expandos + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" }, - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); }, - - prop: function( elem, name, value ) { - var nType = elem.nodeType; - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, - // Try to normalize/fix the name - name = notxml && jQuery.propFix[ name ] || name; - - hooks = jQuery.propHooks[ name ]; + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + } +}); - } else { - return (elem[ name ] = value); - } +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[0], + attrs = elem && elem.attributes; - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { - return ret; + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves - } else { - return elem[ name ]; + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } } + + return data; } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; }, - - propHooks: {} + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } }); -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - return elem[ jQuery.propFix[ name ] || name ] ? - name.toLowerCase() : - undefined; + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = value; + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); } - elem.setAttribute( name, name.toLowerCase() ); + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); } - return name; - } -}; -// Use the value property for back compat -// Use the formHook for button elements in IE6/7 (#1954) -jQuery.attrHooks.value = { - get: function( elem, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.get( elem, name ); + if ( !startLength && hooks ) { + hooks.empty.fire(); } - return elem.value; }, - set: function( elem, value, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); } -}; +}); -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !jQuery.support.getSetAttribute ) { +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; - // propFix is more comprehensive and contains all fixes - jQuery.attrFix = jQuery.propFix; - - // Use this for any attribute on a form in IE6/7 - formHook = jQuery.attrHooks.name = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - // Return undefined if nodeValue is empty string - return ret && ret.nodeValue !== "" ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Check form objects in IE (multiple bugs related) - // Only use nodeValue if the attribute node exists on the form - var ret = elem.getAttributeNode( name ); - if ( ret ) { - ret.nodeValue = value; - return value; - } + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; } - }; - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); } - } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); }); - }); -} + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; + while ( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return (elem.style.cssText = "" + value); } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); }; -} -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; } } - }); -} -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); - } } - }); -}); + } + return chainable ? + elems : + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; +}; +var rcheckableType = (/^(?:checkbox|radio)$/i); -var hasOwn = Object.prototype.hasOwnProperty, - rnamespaces = /\.(.*)$/, - rformElems = /^(?:textarea|input|select)$/i, - rperiod = /\./g, - rspaces = / /g, - rescape = /[^\w\s.|`]/g, - fcleanup = function( nm ) { - return nm.replace(rescape, "\\$&"); - }; +(function() { + var fragment = document.createDocumentFragment(), + div = document.createElement("div"), + input = document.createElement("input"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a>"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName( "tbody" ).length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = + document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>"; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + input.type = "checkbox"; + input.checked = true; + fragment.appendChild( input ); + support.appendChecked = input.checked; + + // Make sure textarea (and checkbox) defaultValue is properly cloned + // Support: IE6-IE11+ + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // #11217 - WebKit loses check when the name is after the checked attribute + fragment.appendChild( div ); + div.innerHTML = "<input type='radio' checked='checked' name='t'/>"; + + // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 + // old WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + support.noCloneEvent = true; + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Execute the test only if not already executed in another module. + if (support.deleteExpando == null) { + // Support: IE<9 + support.deleteExpando = true; + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + } + + // Null elements to avoid leaks in IE. + fragment = div = input = null; +})(); + + +(function() { + var i, eventName, + div = document.createElement( "div" ); + + // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) + for ( i in { submit: true, change: true, focusin: true }) { + eventName = "on" + i; + + if ( !(support[ i + "Bubbles" ] = eventName in window) ) { + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + div.setAttribute( eventName, "t" ); + support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; + } + } + + // Null elements to avoid leaks in IE. + div = null; +})(); + + +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + /* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { - // Bind an event to an element - // Original by Dean Edwards - add: function( elem, types, handler, data ) { - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } + global: {}, - if ( handler === false ) { - handler = returnFalse; - } else if ( !handler ) { - // Fixes bug #7229. Fix recommended by jdalton + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { return; } - var handleObjIn, handleObj; - + // Caller can pass in an object of custom data in lieu of the handler if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; + selector = handleObjIn.selector; } - // Make sure that the function being executed has a unique ID + // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } - // Init the element's event structure - var elemData = jQuery._data( elem ); - - // If no elemData is found then we must be trying to bind to one of the - // banned noData elements - if ( !elemData ) { - return; + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; } - - var events = elemData.events, - eventHandle = elemData.handle; - - if ( !events ) { - elemData.events = events = {}; - } - - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.handle.apply( eventHandle.elem, arguments ) : + return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : undefined; }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; } - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native events in IE. - eventHandle.elem = elem; - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = types.split(" "); + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); - var type, i = 0, namespaces; + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } - while ( (type = types[ i++ ]) ) { - handleObj = handleObjIn ? - jQuery.extend({}, handleObjIn) : - { handler: handler, data: data }; + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; - // Namespaced event handlers - if ( type.indexOf(".") > -1 ) { - namespaces = type.split("."); - type = namespaces.shift(); - handleObj.namespace = namespaces.slice(0).sort().join("."); + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; - } else { - namespaces = []; - handleObj.namespace = ""; - } + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; - handleObj.type = type; - if ( !handleObj.guid ) { - handleObj.guid = handler.guid; - } + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); - // Get the current list of functions bound to this event - var handlers = events[ type ], - special = jQuery.event.special[ type ] || {}; - - // Init the event handler queue - if ( !handlers ) { + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { handlers = events[ type ] = []; + handlers.delegateCount = 0; - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false + // Only use addEventListener/attachEvent if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { // Bind the global event handler to the element if ( elem.addEventListener ) { @@ -2623,425 +4355,514 @@ } } - // Add the function to the element's handler list - handlers.push( handleObj ); + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } - // Keep track of which events have been used, for event optimization + // Keep track of which events have ever been used, for event optimization jQuery.event.global[ type ] = true; } // Nullify elem to prevent memory leaks in IE elem = null; }, - global: {}, - // Detach an event or set of events from an element - remove: function( elem, types, handler, pos ) { - // don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - if ( handler === false ) { - handler = returnFalse; - } - - var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - events = elemData && elemData.events; - - if ( !elemData || !events ) { + if ( !elemData || !(events = elemData.events) ) { return; } - // types is actually an event object here - if ( types && types.type ) { - handler = types.handler; - types = types.type; - } + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); - // Unbind all events for the element - if ( !types || typeof types === "string" && types.charAt(0) === "." ) { - types = types || ""; - - for ( type in events ) { - jQuery.event.remove( elem, type + types ); - } - - return; - } - - // Handle multiple events separated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - types = types.split(" "); - - while ( (type = types[ i++ ]) ) { - origType = type; - handleObj = null; - all = type.indexOf(".") < 0; - namespaces = []; - - if ( !all ) { - // Namespaced event handlers - namespaces = type.split("."); - type = namespaces.shift(); - - namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - eventType = events[ type ]; - - if ( !eventType ) { - continue; - } - - if ( !handler ) { - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( all || namespace.test( handleObj.namespace ) ) { - jQuery.event.remove( elem, origType, handleObj.handler, j ); - eventType.splice( j--, 1 ); - } + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); } - continue; } special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - for ( j = pos || 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; - if ( handler.guid === handleObj.guid ) { - // remove the given handler for the given type - if ( all || namespace.test( handleObj.namespace ) ) { - if ( pos == null ) { - eventType.splice( j--, 1 ); - } + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } + if ( handleObj.selector ) { + handlers.delegateCount--; } - - if ( pos != null ) { - break; + if ( special.remove ) { + special.remove.call( elem, handleObj ); } } } - // remove generic event handler if no more handlers exist - if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } - ret = null; delete events[ type ]; } } // Remove the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { - var handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - delete elemData.events; delete elemData.handle; - if ( jQuery.isEmptyObject( elemData ) ) { - jQuery.removeData( elem, undefined, true ); - } + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); } }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, trigger: function( event, data, elem, onlyHandlers ) { - // Event object or event type - var type = event.type || event, - namespaces = [], - exclusive; + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - if ( type.indexOf("!") >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; } + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + if ( type.indexOf(".") >= 0 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split("."); type = namespaces.shift(); namespaces.sort(); } + ontype = type.indexOf(":") < 0 && "on" + type; - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.exclusive = exclusive; + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; event.namespace = namespaces.join("."); - event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); - - // triggerHandler() and global events don't bubble or run the default action - if ( onlyHandlers || !elem ) { - event.preventDefault(); - event.stopPropagation(); - } + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; - // Handle a global trigger - if ( !elem ) { - // TODO: Stop taunting the data cache; remove global events and always attach to document - jQuery.each( jQuery.cache, function() { - // internalKey variable is just used to make it easier to find - // and potentially change this stuff later; currently it just - // points to jQuery.expando - var internalKey = jQuery.expando, - internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[ type ] ) { - jQuery.event.trigger( event, data, internalCache.handle.elem ); - } - }); - return; + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; } - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { return; } - // Clean up the event in case it is being reused - event.result = undefined; - event.target = elem; + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - // Clone any incoming data and prepend the event, creating the handler arg list - data = data ? jQuery.makeArray( data ) : []; - data.unshift( event ); + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } - var cur = elem, - // IE doesn't like method names with a colon (#3533, #8272) - ontype = type.indexOf(":") < 0 ? "on" + type : ""; + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } - // Fire event on the current element, then bubble up the DOM tree - do { - var handle = jQuery._data( cur, "handle" ); + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - event.currentTarget = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } - // Trigger an inline bound script - if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { - event.result = false; - event.preventDefault(); + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } } + } + event.type = type; - // Bubble up to document, then to window - cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; - } while ( cur && !event.isPropagationStopped() ); - // If nobody prevented the default action, do it now - if ( !event.isDefaultPrevented() ) { - var old, - special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && !event.isDefaultPrevented() ) { - if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction)() check here because IE6/7 fails that test. - // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. - try { - if ( ontype && elem[ type ] ) { - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - if ( old ) { - elem[ ontype ] = null; - } + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; - jQuery.event.triggered = type; + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode } - } catch ( ieError ) {} + jQuery.event.triggered = undefined; - if ( old ) { - elem[ ontype ] = old; + if ( tmp ) { + elem[ ontype ] = tmp; + } } - - jQuery.event.triggered = undefined; } } - + return event.result; }, - handle: function( event ) { - event = jQuery.event.fix( event || window.event ); - // Snapshot the handlers list since a called handler may add/remove events. - var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), - run_all = !event.exclusive && !event.namespace, - args = Array.prototype.slice.call( arguments, 0 ); + dispatch: function( event ) { - // Use the fix-ed Event rather than the (read-only) native event + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event args[0] = event; - event.currentTarget = this; + event.delegateTarget = this; - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } - // Triggered event must 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event. - if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - var ret = handleObj.handler.apply( this, args ); + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } } } - - if ( event.isImmediatePropagationStopped() ) { - break; - } } } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + return event.result; }, - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + fix: function( event ) { if ( event[ jQuery.expando ] ) { return event; } - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; - for ( var i = this.props.length, prop; i; ) { - prop = this.props[ --i ]; + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; event[ prop ] = originalEvent[ prop ]; } - // Fix target property, if necessary + // Support: IE<9 + // Fix target property (#1925) if ( !event.target ) { - // Fixes #1925 where srcElement might not be defined either - event.target = event.srcElement || document; + event.target = originalEvent.srcElement || document; } - // check if target is a textnode (safari) + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) if ( event.target.nodeType === 3 ) { event.target = event.target.parentNode; } - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) { - event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; - } + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var eventDocument = event.target.ownerDocument || document, - doc = eventDocument.documentElement, - body = eventDocument.body; + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - // Add which for key events - if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { - event.which = event.charCode != null ? event.charCode : event.keyCode; - } + fixHooks: {}, - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) { - event.metaKey = event.ctrlKey; - } + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button !== undefined ) { - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); - } + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } - return event; + return event; + } }, - // Deprecated, use jQuery.guid instead - guid: 1E8, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; - // Deprecated, use jQuery.proxy instead - proxy: jQuery.proxy, + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady, - teardown: jQuery.noop + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true }, - - live: { - add: function( handleObj ) { - jQuery.event.add( this, - liveConvert( handleObj.origType, handleObj.selector ), - jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, - remove: function( handleObj ) { - jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); } }, beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, + postDispatch: function( event ) { - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; } } } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } } }; @@ -3052,14 +4873,23 @@ } } : function( elem, type, handle ) { + var name = "on" + type; + if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); } }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword - if ( !this.preventDefault ) { + if ( !(this instanceof jQuery.Event) ) { return new jQuery.Event( src, props ); } @@ -3070,8 +4900,14 @@ // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && ( + // Support: IE < 9 + src.returnValue === false || + // Support: Android < 4.0 + src.getPreventDefault && src.getPreventDefault() ) ? + returnTrue : + returnFalse; // Event type } else { @@ -3083,3523 +4919,3678 @@ jQuery.extend( this, props ); } - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = jQuery.now(); + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + preventDefault: function() { var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; if ( !e ) { return; } - // if preventDefault exists run it on the original event + // If preventDefault exists, run it on the original event if ( e.preventDefault ) { e.preventDefault(); - // otherwise set the returnValue property of the original event to false (IE) + // Support: IE + // Otherwise set the returnValue property of the original event to false } else { e.returnValue = false; } }, stopPropagation: function() { - this.isPropagationStopped = returnTrue; - var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; if ( !e ) { return; } - // if stopPropagation exists run it on the original event + // If stopPropagation exists, run it on the original event if ( e.stopPropagation ) { e.stopPropagation(); } - // otherwise set the cancelBubble property of the original event to true (IE) + + // Support: IE + // Set the cancelBubble property of the original event to true e.cancelBubble = true; }, stopImmediatePropagation: function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse + } }; -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function( event ) { - // Check if mouse(over|out) are still within the same parent element - var parent = event.relatedTarget; - - // set the correct event type - event.type = event.data; - - // Firefox sometimes assigns relatedTarget a XUL element - // which we cannot access the parentNode property of - try { - - // Chrome does something similar, the parentNode property - // can be accessed but is null. - if ( parent && parent !== document && !parent.parentNode ) { - return; - } - - // Traverse up the tree - while ( parent && parent !== this ) { - parent = parent.parentNode; - } - - if ( parent !== this ) { - // handle event if we actually just moused on to a non sub-element - jQuery.event.handle.apply( this, arguments ); - } - - // assuming we've left the element since we most likely mousedover a xul element - } catch(e) { } -}, - -// In case of event delegation, we only need to rename the event.type, -// liveHandler will take care of the rest. -delegate = function( event ) { - event.type = event.data; - jQuery.event.handle.apply( this, arguments ); -}; - -// Create mouseenter and mouseleave events +// Create mouseenter/leave events using mouseover/out and event-time checks jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { - setup: function( data ) { - jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); - }, - teardown: function( data ) { - jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; } }; }); -// submit delegation -if ( !jQuery.support.submitBubbles ) { +// IE submit delegation +if ( !support.submitBubbles ) { jQuery.event.special.submit = { - setup: function( data, namespaces ) { - if ( !jQuery.nodeName( this, "form" ) ) { - jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } - if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - trigger( "submit", this, arguments ); - } - }); + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, - jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, - if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - trigger( "submit", this, arguments ); - } - }); - - } else { + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { return false; } - }, - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialSubmit" ); + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); } }; - } -// change delegation, happens here so we have bind. -if ( !jQuery.support.changeBubbles ) { +// IE change delegation and checkbox/radio fix +if ( !support.changeBubbles ) { - var changeFilters, - - getVal = function( elem ) { - var type = elem.type, val = elem.value; - - if ( type === "radio" || type === "checkbox" ) { - val = elem.checked; - - } else if ( type === "select-multiple" ) { - val = elem.selectedIndex > -1 ? - jQuery.map( elem.options, function( elem ) { - return elem.selected; - }).join("-") : - ""; - - } else if ( jQuery.nodeName( elem, "select" ) ) { - val = elem.selectedIndex; - } - - return val; - }, - - testChange = function testChange( e ) { - var elem = e.target, data, val; - - if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { - return; - } - - data = jQuery._data( elem, "_change_data" ); - val = getVal(elem); - - // the current data will be also retrieved by beforeactivate - if ( e.type !== "focusout" || elem.type !== "radio" ) { - jQuery._data( elem, "_change_data", val ); - } - - if ( data === undefined || val === data ) { - return; - } - - if ( data != null || val ) { - e.type = "change"; - e.liveFired = undefined; - jQuery.event.trigger( e, arguments[1], elem ); - } - }; - jQuery.event.special.change = { - filters: { - focusout: testChange, - beforedeactivate: testChange, + setup: function() { - click: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { - testChange.call( this, e ); + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); } - }, + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; - // Change has to be called before submit - // Keydown will be called before keypress, which is used in submit-event delegation - keydown: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || - (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || - type === "select-multiple" ) { - testChange.call( this, e ); + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); } - }, - - // Beforeactivate happens also before the previous element is blurred - // with this event you can't trigger a change event, but you can store - // information - beforeactivate: function( e ) { - var elem = e.target; - jQuery._data( elem, "_change_data", getVal(elem) ); - } + }); }, - setup: function( data, namespaces ) { - if ( this.type === "file" ) { - return false; - } + handle: function( event ) { + var elem = event.target; - for ( var type in changeFilters ) { - jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); } - - return rformElems.test( this.nodeName ); }, - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialChange" ); + teardown: function() { + jQuery.event.remove( this, "._change" ); - return rformElems.test( this.nodeName ); + return !rformElems.test( this.nodeName ); } }; - - changeFilters = jQuery.event.special.change.filters; - - // Handle when the input is .focus()'d - changeFilters.focus = changeFilters.beforeactivate; } -function trigger( type, elem, args ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - // Don't pass args or remember liveFired; they apply to the donor event. - var event = jQuery.extend( {}, args[ 0 ] ); - event.type = type; - event.originalEvent = {}; - event.liveFired = undefined; - jQuery.event.handle.call( elem, event ); - if ( event.isDefaultPrevented() ) { - args[ 0 ].preventDefault(); - } -} - // Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { +if ( !support.focusinBubbles ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0; + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; jQuery.event.special[ fix ] = { setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); } + jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); + var doc = this.ownerDocument || this, + attaches = jQuery._data( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + jQuery._removeData( doc, fix ); + } else { + jQuery._data( doc, fix, attaches ); } } }; - - function handler( donor ) { - // Donor event is always a native one; fix it and switch its type. - // Let focusin/out handler cancel the donor focus/blur event. - var e = jQuery.event.fix( donor ); - e.type = fix; - e.originalEvent = {}; - jQuery.event.trigger( e, null, e.target ); - if ( e.isDefaultPrevented() ) { - donor.preventDefault(); - } - } }); } -jQuery.each(["bind", "one"], function( i, name ) { - jQuery.fn[ name ] = function( type, data, fn ) { - var handler; +jQuery.fn.extend({ - // Handle object literals - if ( typeof type === "object" ) { - for ( var key in type ) { - this[ name ](key, data, type[key], fn); + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } return this; } - if ( arguments.length === 2 || data === false ) { - fn = data; - data = undefined; + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } - if ( name === "one" ) { - handler = function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); }; - handler.guid = fn.guid || jQuery.guid++; - } else { - handler = fn; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } - - if ( type === "unload" && name !== "one" ) { - this.one( type, data, fn ); - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.add( this[i], type, handler, data ); - } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; } - - return this; - }; -}); - -jQuery.fn.extend({ - unbind: function( type, fn ) { - // Handle object literals - if ( typeof type === "object" && !type.preventDefault ) { - for ( var key in type ) { - this.unbind(key, type[key]); + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); } - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.remove( this[i], type, fn ); - } + return this; } - - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.live( types, data, fn, selector ); - }, - - undelegate: function( selector, types, fn ) { - if ( arguments.length === 0 ) { - return this.unbind( "live" ); - - } else { - return this.die( types, null, fn, selector ); + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); }, trigger: function( type, data ) { return this.each(function() { jQuery.event.trigger( type, data, this ); }); }, - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } }); -var liveMap = { - focus: "focusin", - blur: "focusout", - mouseenter: "mouseover", - mouseleave: "mouseout" -}; -jQuery.each(["live", "die"], function( i, name ) { - jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { - var type, i = 0, match, namespaces, preType, - selector = origSelector || this.selector, - context = origSelector ? this : jQuery( this.context ); +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); - if ( typeof types === "object" && !types.preventDefault ) { - for ( var key in types ) { - context[ name ]( key, data, types[key], selector ); - } - - return this; + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); } + } + return safeFrag; +} - if ( name === "die" && !types && - origSelector && origSelector.charAt(0) === "." ) { +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /<tbody/i, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, - context.unbind( origSelector ); + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "<select multiple='multiple'>", "</select>" ], + legend: [ 1, "<fieldset>", "</fieldset>" ], + area: [ 1, "<map>", "</map>" ], + param: [ 1, "<object>", "</object>" ], + thead: [ 1, "<table>", "</table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - return this; - } + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - if ( data === false || jQuery.isFunction( data ) ) { - fn = data || returnFalse; - data = undefined; - } +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; - types = (types || "").split(" "); +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; - while ( (type = types[ i++ ]) != null ) { - match = rnamespaces.exec( type ); - namespaces = ""; - - if ( match ) { - namespaces = match[0]; - type = type.replace( rnamespaces, "" ); - } - - if ( type === "hover" ) { - types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); - continue; - } - - preType = type; - - if ( liveMap[ type ] ) { - types.push( liveMap[ type ] + namespaces ); - type = type + namespaces; - + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); } else { - type = (liveMap[ type ] || type) + namespaces; + jQuery.merge( found, getAll( elem, tag ) ); } + } + } - if ( name === "live" ) { - // bind live handler - for ( var j = 0, l = context.length; j < l; j++ ) { - jQuery.event.add( context[j], "live." + liveConvert( type, selector ), - { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - } + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} - } else { - // unbind live handler - context.unbind( "live." + liveConvert( type, selector ), fn ); - } - } +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} - return this; - }; -}); +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? -function liveHandler( event ) { - var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, - elems = [], - selectors = [], - events = jQuery._data( this, "events" ); + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} - // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) - if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { - return; +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); } + return elem; +} - if ( event.namespace ) { - namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); } +} - event.liveFired = this; +function cloneCopyEvent( src, dest ) { - var live = events.live.slice(0); + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; - if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { - selectors.push( handleObj.selector ); + if ( events ) { + delete curData.handle; + curData.events = {}; - } else { - live.splice( j--, 1 ); + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } } } - match = jQuery( event.target ).closest( selectors, event.currentTarget ); + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} - for ( i = 0, l = match.length; i < l; i++ ) { - close = match[i]; +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } - if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { - elem = close.elem; - related = null; + nodeName = dest.nodeName.toLowerCase(); - // Those two events require additional checking - if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { - event.type = handleObj.preType; - related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); - // Make sure not to accidentally match a child element with the same selector - if ( related && jQuery.contains( elem, related ) ) { - related = elem; - } - } - - if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj, level: close.level }); - } - } + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); } - for ( i = 0, l = elems.length; i < l; i++ ) { - match = elems[i]; + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); - if ( maxLevel && match.level > maxLevel ) { - break; + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; } - event.currentTarget = match.elem; - event.data = match.handleObj.data; - event.handleObj = match.handleObj; - - ret = match.handleObj.origHandler.apply( match.elem, arguments ); - - if ( ret === false || event.isPropagationStopped() ) { - maxLevel = match.level; - - if ( ret === false ) { - stop = false; - } - if ( event.isImmediatePropagationStopped() ) { - break; - } + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; } - } - return stop; -} + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set -function liveConvert( type, selector ) { - return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); -} + dest.defaultChecked = dest.checked = src.checked; -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; } - return arguments.length > 0 ? - this.bind( name, data, fn ) : - this.trigger( name ); - }; + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; } -}); +} +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rNonWord = /\W/; + if ( (!support.noCloneEvent || !support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } } } - } while ( m ); - if ( parts.length > 1 && origPOS.exec( selector ) ) { + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); } - - set = posProcess( selector, set ); + } else { + cloneCopyEvent( elem, clone ); } } - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); } - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + destElements = srcElements = node = null; - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; + // Return the cloned set + return clone; + }, - if ( parts.length > 0 ) { - checkSet = makeArray( set ); + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, - } else { - prune = false; - } + // Ensure a safe fragment + safe = createSafeFragment( context ), - while ( parts.length ) { - cur = parts.pop(); - pop = cur; + nodes = [], + i = 0; - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } + for ( ; i < l; i++ ) { + elem = elems[ i ]; - if ( pop == null ) { - pop = context; - } + if ( elem || elem === 0 ) { - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - } else { - checkSet = parts = []; - } - } + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); - if ( !checkSet ) { - checkSet = set; - } + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } + // Deserialize a standard representation + tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2]; - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } + // Manually add leading whitespace removed by IE + if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } - } else { - makeArray( checkSet, results ); - } + // Remove IE's autoinserted <tbody> from table fragments + if ( !support.tbody ) { - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } + // String was a <table>, *may* have spurious <tbody> + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : - return results; -}; + // String was a bare <thead> or <tfoot> + wrap[1] === "<table>" && !rtbody.test( elem ) ? + tmp : + 0; -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } + jQuery.merge( nodes, tmp.childNodes ); - return results; -}; + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set; - - if ( !expr ) { - return []; - } - - for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var match, - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - var left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; } } } - } - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } - return { set: set, expr: expr }; -}; + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + i = 0; + while ( (elem = nodes[ i++ ]) ) { - while ( expr && set.length ) { - for ( var type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var found, item, - filter = Expr.filter[ type ], - left = match[1]; + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } - anyFound = false; + contains = jQuery.contains( elem.ownerDocument, elem ); - match.splice(1,1); + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } - if ( curLoop === result ) { - result = []; + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } } + } + } - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + tmp = null; - if ( !match ) { - anyFound = found = true; + return safe; + }, - } else if ( match === true ) { - continue; - } - } + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = support.deleteExpando, + special = jQuery.event.special; - if ( match ) { - for ( var i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - var pass = not ^ !!found; + for ( ; (elem = elems[i]) != null; i++ ) { + if ( acceptData || jQuery.acceptData( elem ) ) { - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; + id = elem[ internalKey ]; + data = id && cache[ id ]; - } else { - curLoop[i] = false; - } + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); - } else if ( pass ) { - result.push( item ); - anyFound = true; + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); } } } - } - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { - expr = expr.replace( Expr.match[ type ], "" ); + delete cache[ id ]; - if ( !anyFound ) { - return []; - } + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; - break; - } - } - } + } else if ( typeof elem.removeAttribute !== strundefined ) { + elem.removeAttribute( internalKey ); - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); + } else { + elem[ internalKey ] = null; + } - } else { - break; + deletedIds.push( id ); + } + } } } - - old = expr; } +}); - return curLoop; -}; +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, -Sizzle.error = function( msg ) { - throw "Syntax error, unrecognized expression: " + msg; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); }, - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); }, - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); }, - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); } + }); + }, - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } + for ( ; (elem = elems[i]) != null; i++ ) { - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); } - }, - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); } + elem.parentNode.removeChild( elem ); + } + } - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; + return this; + }, - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } + empty: function() { + var elem, + i = 0; - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); } - }, - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; } + } - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, + return this; + }, - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); }, - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; } - }, - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } } - } - return ret.length === 0 ? null : ret; + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} } - }, - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); + if ( elem ) { + this.empty().append( value ); } - } + }, null, value, arguments.length ); }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - if ( isXML ) { - return match; - } + replaceWith: function() { + var arg = arguments[ 0 ]; - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; - } else if ( inplace ) { - curLoop[i] = false; - } - } + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); } + }); - return false; - }, + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, + detach: function( selector ) { + return this.remove( selector, true ); + }, - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, + domManip: function( args, callback ) { - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } + // Flatten any nested arrays + args = concat.apply( [], args ); - match[2] = match[2].replace(/^\+|\s*/g, ''); + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - // TODO: Move to normal caching system - match[0] = done++; + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; - return match; - }, + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } + callback.call( this[i], node, i ); + } - return match; - }, + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); + // Reenable scripts + jQuery.map( scripts, restoreScript ); - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - if ( !inplace ) { - result.push.apply( result, ret ); + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } } - - return false; } - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; + // Fix #11809: Avoid leaking memory + fragment = first = null; } - - return match; - }, + } - POS: function( match ) { - match.unshift( true ); + return this; + } +}); - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; - disabled: function( elem ) { - return elem.disabled === true; - }, + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + push.apply( ret, elems.get() ); + } - parent: function( elem ) { - return !!elem.firstChild; - }, + return this.pushStack( ret ); + }; +}); - empty: function( elem ) { - return !elem.firstChild; - }, - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, +var iframe, + elemdisplay = {}; - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle ? - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, + // Use of this method is a temporary fix (more like optmization) until something better comes along, + // since it was removed from specification and supported only in FF + window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, + return display; +} - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, + if ( !display ) { + display = actualDisplay( nodeName, doc ); - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document; - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, + // Support: IE + doc.write(); + doc.close(); - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; + display = actualDisplay( nodeName, doc ); + iframe.detach(); } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, + // Store the correct default display + elemdisplay[ nodeName ] = display; + } - even: function( elem, i ) { - return i % 2 === 0; - }, + return display; +} - odd: function( elem, i ) { - return i % 2 === 1; - }, - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, +(function() { + var a, shrinkWrapBlocksVal, + div = document.createElement( "div" ), + divReset = + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + + "display:block;padding:0;margin:0;border:0"; - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, + // Setup + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName( "a" )[ 0 ]; - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, + a.style.cssText = "float:left;opacity:.5"; - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); - if ( filter ) { - return filter( elem, i, match, array ); + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; - } else if ( name === "not" ) { - var not = match[3]; + // Null elements to avoid leaks in IE. + a = div = null; - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } + support.shrinkWrapBlocks = function() { + var body, container, div, containerStyles; - return true; + if ( shrinkWrapBlocksVal == null ) { + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body ) { + // Test fired too early or in an unsupported environment, exit. + return; + } - } else { - Sizzle.error( name ); + containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px"; + container = document.createElement( "div" ); + div = document.createElement( "div" ); + + body.appendChild( container ).appendChild( div ); + + // Will be changed later if needed. + shrinkWrapBlocksVal = false; + + if ( typeof div.style.zoom !== strundefined ) { + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1"; + div.innerHTML = "<div></div>"; + div.firstChild.style.width = "5px"; + shrinkWrapBlocksVal = div.offsetWidth !== 3; } - }, - CHILD: function( elem, match ) { - var type = match[1], - node = elem; + body.removeChild( container ); - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } + // Null elements to avoid leaks in IE. + body = container = div = null; + } - if ( type === "first" ) { - return true; - } + return shrinkWrapBlocksVal; + }; - node = elem; +})(); +var rmargin = (/^margin/); - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - return true; - case "nth": - var first = match[2], - last = match[3]; - if ( first === 1 && last === 0 ) { - return true; - } - - var doneName = match[0], - parent = elem.parentNode; - - if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { - var count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } +var getStyles, curCSS, + rposition = /^(top|right|bottom|left)$/; - parent.sizcache = doneName; - } - - var diff = elem.nodeIndex - last; +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + }; - if ( first === 0 ) { - return diff === 0; + curCSS = function( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, + computed = computed || getStyles( elem ); - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined; - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, + if ( computed ) { - ATTR: function( elem, match ) { - var name = match[1], - result = Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } - return result == null ? - type === "!=" : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; - if ( filter ) { - return filter( elem, i, match, array ); + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; } } - } -}; -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); + // Support: IE + // IE returns zIndex value as an integer. + return ret === undefined ? + ret : + ret + ""; }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} + curCSS = function( elem, name, computed ) { + var left, rs, rsLeft, ret, + style = elem.style; -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); + computed = computed || getStyles( elem ); + ret = computed ? computed[ name ] : undefined; - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; } } - return ret; + // Support: IE + // IE returns zIndex value as an integer. + return ret === undefined ? + ret : + ret + "" || "auto"; }; } -var sortOrder, siblingCheck; -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; +function addGetHookIf( conditionFn, hookFn ) { + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + var condition = conditionFn(); -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; + if ( condition == null ) { + // The test was not ready at this point; screw the hook this time + // but check again when needed next time. + return; + } - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } + if ( condition ) { + // Hook not needed (or it's not possible to use it due to missing dependency), + // remove it. + // Since there are no other hooks for marginRight, remove the whole object. + delete this.get; + return; + } - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; + // Hook needed; redefine it so that the support test is not executed again. - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; + return (this.get = hookFn).apply( this, arguments ); } + }; +} - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - cur = bup; +(function() { + var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal, + pixelPositionVal, reliableMarginRightVal, + div = document.createElement( "div" ), + containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", + divReset = + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" + + "display:block;padding:0;margin:0;border:0"; - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } + // Setup + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName( "a" )[ 0 ]; - al = ap.length; - bl = bp.length; + a.style.cssText = "float:left;opacity:.5"; - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; - var cur = a.nextSibling; + // Null elements to avoid leaks in IE. + a = div = null; - while ( cur ) { - if ( cur === b ) { - return -1; + jQuery.extend(support, { + reliableHiddenOffsets: function() { + if ( reliableHiddenOffsetsVal != null ) { + return reliableHiddenOffsetsVal; } - cur = cur.nextSibling; - } + var container, tds, isSupported, + div = document.createElement( "div" ), + body = document.getElementsByTagName( "body" )[ 0 ]; - return 1; - }; -} + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } -// Utility function for retreiving the text value of an array of DOM nodes -Sizzle.getText = function( elems ) { - var ret = "", elem; + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; + container = document.createElement( "div" ); + container.style.cssText = containerStyles; - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; + body.appendChild( container ).appendChild( div ); - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += Sizzle.getText( elem.childNodes ); - } - } + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; + tds = div.getElementsByTagName( "td" ); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); - return ret; -}; + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - form.innerHTML = "<a name='" + id + "'/>"; + body.removeChild( container ); - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); + // Null elements to avoid leaks in IE. + div = body = null; - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); + return reliableHiddenOffsetsVal; + }, - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; + boxSizing: function() { + if ( boxSizingVal == null ) { + computeStyleTests(); } - }; + return boxSizingVal; + }, - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computeStyleTests(); + } + return boxSizingReliableVal; + }, - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } + pixelPosition: function() { + if ( pixelPositionVal == null ) { + computeStyleTests(); + } + return pixelPositionVal; + }, - root.removeChild( form ); + reliableMarginRight: function() { + var body, container, div, marginDiv; - // release memory in IE - root = form = null; -})(); + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( reliableMarginRightVal == null && window.getComputedStyle ) { + body = document.getElementsByTagName( "body" )[ 0 ]; + if ( !body ) { + // Test fired too early or in an unsupported environment, exit. + return; + } -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") + container = document.createElement( "div" ); + div = document.createElement( "div" ); + container.style.cssText = containerStyles; - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); + body.appendChild( container ).appendChild( div ); - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement( "div" ) ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; + reliableMarginRightVal = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; + body.removeChild( container ); } - return results; - }; - } + return reliableMarginRightVal; + } + }); - // Check to see if an attribute returns normalized href attributes - div.innerHTML = "<a href='#'></a>"; + function computeStyleTests() { + var container, div, + body = document.getElementsByTagName( "body" )[ 0 ]; - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { + if ( !body ) { + // Test fired too early or in an unsupported environment, exit. + return; + } - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } + container = document.createElement( "div" ); + div = document.createElement( "div" ); + container.style.cssText = containerStyles; - // release memory in IE - div = null; -})(); + body.appendChild( container ).appendChild( div ); -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; + div.style.cssText = + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" + + "position:absolute;display:block;padding:1px;border:1px;width:4px;" + + "margin-top:1%;top:1%"; - div.innerHTML = "<p class='TEST'></p>"; + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + boxSizingVal = div.offsetWidth === 4; + }); - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; + // Will be changed later if needed. + boxSizingReliableVal = true; + pixelPositionVal = false; + reliableMarginRightVal = true; + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + boxSizingReliableVal = + ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); + body.removeChild( container ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} + // Null elements to avoid leaks in IE. + div = body = null; + } - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); +})(); - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } + ret = callback.apply( elem, args || [] ); - // release memory in IE - div = null; - })(); -} + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; + return ret; +}; - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } +var + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); -(function(){ - var div = document.createElement("div"); +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { - div.innerHTML = "<div class='test e'></div><div class='test'></div>"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; } - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; } - }; + } - // release memory in IE - div = null; -})(); + return origName; +} -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; - if ( elem ) { - var match = false; + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } - elem = elem[dir]; + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } + if ( !values[ index ] ) { + hidden = isHidden( elem ); - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); } - - elem = elem[dir]; } + } + } - checkSet[i] = match; + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } } + + return elements; } -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} - if ( elem ) { - var match = false; - - elem = elem[dir]; +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } + val = 0; - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - checkSet[i] = match; + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } } } + + return val; } -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; +function getWidthOrHeight( elem, name, extra ) { -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; -} else { - Sizzle.contains = function() { - return false; - }; -} + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] ); -var posProcess = function( selector, context ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; } - selector = Expr.relative[selector] ? selector + "*" : selector; + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, - return Sizzle.filter( later, tmpSet ); -}; + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": support.cssFloat ? "cssFloat" : "styleFloat" + }, + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } -})(); + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.POS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } - var ret = this.pushStack( "", "find", selector ), - length, n, r; + // Make sure that null and NaN values aren't set. See: #7116 + if ( value == null || value !== value ) { + return; + } - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; } - } - return ret; - }, + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } + // Support: IE + // Swallow errors from 'invalid' CSS values (#5509) + try { + // Support: Chrome, Safari + // Setting style to blank string required to delete "style: x !important;" + style[ name ] = ""; + style[ name ] = value; + } catch(e) {} } - }); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); + // Otherwise just get the value from the style object + return style[ name ]; + } }, - is: function( selector ) { - return !!selector && ( typeof selector === "string" ? - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array - if ( jQuery.isArray( selectors ) ) { - var match, selector, - matches = {}, - level = 1; + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - if ( cur && selectors.length ) { - for ( i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - if ( !matches[ selector ] ) { - matches[ selector ] = POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[ selector ]; + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } - if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { - ret.push({ selector: selector, elem: cur, level: level }); - } - } + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } - cur = cur.parentNode; - level++; - } + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); } + }, - return ret; + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); } + }; +}); - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; +if ( !support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + // IE uses filters for opacity + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : + computed ? "1" : ""; + }, - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; + set: function( elem, value ) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } + // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + // if value === "", then remove inline opacity #12685 + if ( ( value >= 1 || value === "" ) && + jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { + + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + + // if there is no filter style applied in a css rule or unset inline opacity, we are done + if ( value === "" || currentStyle && !currentStyle.filter ) { + return; } } + + // otherwise, set new filter values + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; } + }; +} - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Work around by temporarily setting element display to inline-block + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); - return this.pushStack( ret, "closest", selectors ); - }, +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, + // assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, + return expanded; + } + }; - andSelf: function() { - return this.add( this.prevObject ); + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } }); -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} +jQuery.fn.extend({ + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); + show: function() { + return showHide( this, true ); }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); + hide: function() { + return showHide( this ); }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ), - // The variable 'args' was introduced in - // https://github.com/jquery/jquery/commit/52a0238 - // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. - // http://code.google.com/p/v8/issues/detail?id=1050 - args = slice.call(arguments); +}); - if ( !runtil.test( name ) ) { - selector = until; - } - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; } + this.now = ( this.end - this.start ) * eased + this.start; - return this.pushStack( ret, name, args.join(",") ); - }; -}); + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); } + return this; + } +}; - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, +Tween.prototype.init.prototype = Tween.prototype; - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; } - cur = cur[dir]; + + // passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + result = jQuery.css( tween.elem, tween.prop, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } } - return matched; - }, + } +}; - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; +// Support: IE <=9 +// Panic based approach to setting things on disconnected nodes - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; } + } +}; - return cur; +jQuery.easing = { + linear: function( p ) { + return p; }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + } +}; - sibling: function( n, elem ) { - var r = []; +jQuery.fx = Tween.prototype.init; - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } +// Back Compat <1.8 extension point +jQuery.fx.step = {}; - return r; - } -}); -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } + // Make sure we update the tween properties later on + parts = parts || []; - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -} + // Iteratively approximate from a nonzero starting point + start = +target || 1; + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + // Update scale, tolerating zero or NaN from tween.cur() + // And breaking the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /<tbody/i, - rhtml = /<|&#?\w+;/, - rnocache = /<(?:script|object|embed|option|style)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /\/(java|ecma)script/i, - rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/, - wrapMap = { - option: [ 1, "<select multiple='multiple'>", "</select>" ], - legend: [ 1, "<fieldset>", "</fieldset>" ], - thead: [ 1, "<table>", "</table>" ], - tr: [ 2, "<table><tbody>", "</tbody></table>" ], - td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], - col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], - area: [ 1, "<map>", "</map>" ], - _default: [ 0, "", "" ] + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] }; -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize <link> and <script> tags normally -if ( !jQuery.support.htmlSerialize ) { - wrapMap._default = [ 1, "div<div>", "</div>" ]; +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }); + return ( fxNow = jQuery.now() ); } -jQuery.fn.extend({ - text: function( text ) { - if ( jQuery.isFunction(text) ) { - return this.each(function(i) { - var self = jQuery( this ); +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + attrs = { height: type }, + i = 0; - self.text( text.call(this, i, self.text()) ); - }); - } + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } - if ( typeof text !== "object" && text !== undefined ) { - return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); - } + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } - return jQuery.text( this ); - }, + return attrs; +} - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { + + // we're done with this property + return tween; } + } +} - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, dDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = jQuery._data( elem, "fxshow" ); - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } + // handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; + anim.always(function() { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); } + }); + }); + } - return elem; - }).append( this ); + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + dDisplay = defaultDisplay( elem.nodeName ); + if ( display === "none" ) { + display = dDisplay; } + if ( display === "inline" && + jQuery.css( elem, "float" ) === "none" ) { - return this; - }, + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) { + style.display = "inline-block"; + } else { + style.zoom = 1; + } + } + } - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !support.shrinkWrapBlocks() ) { + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; }); } + } - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } } - }); - }, + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } - wrap: function( html ) { - return this.each(function() { - jQuery( this ).wrapAll( html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; } - }).end(); - }, + } else { + dataShow = jQuery._data( elem, "fxshow", {} ); + } - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { - this.appendChild( elem ); + // store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + jQuery._removeData( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); } }); - }, + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 ) { - this.insertBefore( elem, this.firstChild ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } } - }); - }, + } + } +} - before: function() { - if ( this[0] && this[0].parentNode ) { - return this.domManip(arguments, false, function( elem ) { - this.parentNode.insertBefore( elem, this ); - }); - } else if ( arguments.length ) { - var set = jQuery(arguments[0]); - set.push.apply( set, this.toArray() ); - return this.pushStack( set, "before", arguments ); +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; } - }, - after: function() { - if ( this[0] && this[0].parentNode ) { - return this.domManip(arguments, false, function( elem ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - }); - } else if ( arguments.length ) { - var set = this.pushStack( this, "after", arguments ); - set.push.apply( set, jQuery(arguments[0]).toArray() ); - return set; + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; } - }, - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( elem.getElementsByTagName("*") ); - jQuery.cleanData( [ elem ] ); - } + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; } } + } else { + specialEasing[ name ] = easing; } + } +} - return this; - }, +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; - empty: function() { - for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( elem.getElementsByTagName("*") ); + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); } - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; } - } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } - return this; - }, + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + propFilter( props, animation.opts.specialEasing ); - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } - html: function( value ) { - if ( value === undefined ) { - return this[0] && this[0].nodeType === 1 ? - this[0].innerHTML.replace(rinlinejQuery, "") : - null; + jQuery.map( props, createTween, animation ); - // See if we can take a shortcut and just use innerHTML - } else if ( typeof value === "string" && !rnocache.test( value ) && - (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && - !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } - value = value.replace(rxhtmlTag, "<$1></$2>"); + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); - try { - for ( var i = 0, l = this.length; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - if ( this[i].nodeType === 1 ) { - jQuery.cleanData( this[i].getElementsByTagName("*") ); - this[i].innerHTML = value; - } - } + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} - // If using innerHTML throws an exception, use the fallback method - } catch(e) { - this.empty().append( value ); - } +jQuery.Animation = jQuery.extend( Animation, { + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } - } else if ( jQuery.isFunction( value ) ) { - this.each(function(i){ - var self = jQuery( this ); + var prop, + index = 0, + length = props.length; - self.html( value.call(this, i, self.html()) ); - }); + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); } else { - this.empty().append( value ); + animationPrefilters.push( callback ); } + } +}); - return this; - }, +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; - replaceWith: function( value ) { - if ( this[0] && this[0].parentNode ) { - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this), old = self.html(); - self.replaceWith( value.call( this, i, old ) ); - }); - } + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; - if ( typeof value !== "string" ) { - value = jQuery( value ).detach(); - } + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } - return this.each(function() { - var next = this.nextSibling, - parent = this.parentNode; + // Queueing + opt.old = opt.complete; - jQuery( this ).remove(); + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } - if ( next ) { - jQuery(next).before( value ); - } else { - jQuery(parent).append( value ); - } - }); - } else { - return this.length ? - this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : - this; + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); } - }, + }; - detach: function( selector ) { - return this.remove( selector, true ); + return opt; +}; + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - domManip: function( args, table, callback ) { - var results, first, fragment, parent, - value = args[0], - scripts = []; + // Empty animations, or finishing resolves immediately + if ( empty || jQuery._data( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; - // We can't cloneNode fragments that contain checked, in WebKit - if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { - return this.each(function() { - jQuery(this).domManip( args, table, callback, true ); - }); - } + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - args[0] = value.call(this, i, table ? self.html() : undefined); - self.domManip( args, table, callback ); - }); + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } - if ( this[0] ) { - parent = value && value.parentNode; + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); - // If we're in a fragment, just use that instead of building a new one - if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { - results = { fragment: parent }; - + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } } else { - results = jQuery.buildFragment( args, this, scripts ); + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } } - fragment = results.fragment; + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } - if ( fragment.childNodes.length === 1 ) { - first = fragment = fragment.firstChild; - } else { - first = fragment.firstChild; + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); } + }); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each(function() { + var index, + data = jQuery._data( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); + // enable finishing flag on private data + data.finish = true; - for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { - callback.call( - table ? - root(this[i], first) : - this[i], - // Make sure that we do not leak memory by inadvertently discarding - // the original fragment (which might have attached data) instead of - // using it; in addition, use the original fragment object for the last - // item instead of first because it can end up being emptied incorrectly - // in certain situations (Bug #8070). - // Fragments from the fragment cache must always be cloned and never used - // in place. - results.cacheable || (l > 1 && i < lastIndex) ? - jQuery.clone( fragment, true, true ) : - fragment - ); + // empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); } } - if ( scripts.length ) { - jQuery.each( scripts, evalScript ); + // look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } } - } - return this; + // turn off finishing flag + delete data.finish; + }); } }); -function root( elem, cur ) { - return jQuery.nodeName(elem, "table") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; -} +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); -function cloneCopyEvent( src, dest ) { +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + timers = jQuery.timers, + i = 0; - var internalKey = jQuery.expando, - oldData = jQuery.data( src ), - curData = jQuery.data( dest, oldData ); + fxNow = jQuery.now(); - // Switch to use the internal data object, if it exists, for the next - // stage of data copying - if ( (oldData = oldData[ internalKey ]) ) { - var events = oldData.events; - curData = curData[ internalKey ] = jQuery.extend({}, oldData); - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( var type in events ) { - for ( var i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data ); - } - } + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); } } -} -function cloneFixAttributes( src, dest ) { - var nodeName; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; + if ( !timers.length ) { + jQuery.fx.stop(); } + fxNow = undefined; +}; - // clearAttributes removes the attributes, which we don't want, - // but also removes the attachEvent events, which we *do* want - if ( dest.clearAttributes ) { - dest.clearAttributes(); +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); } +}; - // mergeAttributes, in contrast, only merges back on the - // original attributes, not the events - if ( dest.mergeAttributes ) { - dest.mergeAttributes( src ); +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); } +}; - nodeName = dest.nodeName.toLowerCase(); +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; - // IE6-8 fail to clone children inside object elements that use - // the proprietary classid attribute value (rather than the type - // attribute) to identify the type of content to display - if ( nodeName === "object" ) { - dest.outerHTML = src.outerHTML; +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; - } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - if ( src.checked ) { - dest.defaultChecked = dest.checked = src.checked; - } - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } +// Based off of the plugin by Clint Helfers, with permission. +// http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.selected = src.defaultSelected; + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); +}; - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } - // Event data gets referenced instead of copied if the expando - // gets copied too - dest.removeAttribute( jQuery.expando ); -} +(function() { + var a, input, select, opt, + div = document.createElement("div" ); -jQuery.buildFragment = function( args, nodes, scripts ) { - var fragment, cacheable, cacheresults, - doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + a = div.getElementsByTagName("a")[ 0 ]; - // Only cache "small" (1/2 KB) HTML strings that are associated with the main document - // Cloning options loses the selected state, so don't cache them - // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment - // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache - if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document && - args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { + // First batch of tests. + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; - cacheable = true; + a.style.cssText = "top:1px"; - cacheresults = jQuery.fragments[ args[0] ]; - if ( cacheresults && cacheresults !== 1 ) { - fragment = cacheresults; - } - } + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; - if ( !fragment ) { - fragment = doc.createDocumentFragment(); - jQuery.clean( args, doc, fragment, scripts ); - } + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); - if ( cacheable ) { - jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1; - } + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; - return { fragment: fragment, cacheable: cacheable }; -}; + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; -jQuery.fragments = {}; + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var ret = [], - insert = jQuery( selector ), - parent = this.length === 1 && this[0].parentNode; + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; - if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { - insert[ original ]( this[0] ); - return this; + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; - } else { - for ( var i = 0, l = insert.length; i < l; i++ ) { - var elems = (i > 0 ? this.clone(true) : this).get(); - jQuery( insert[i] )[ original ]( elems ); - ret = ret.concat( elems ); - } + // Support: IE8 only + // Check if we can trust getAttribute("value") + input = document.createElement( "input" ); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; - return this.pushStack( ret, name, insert.selector ); - } - }; -}); + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; -function getAll( elem ) { - if ( "getElementsByTagName" in elem ) { - return elem.getElementsByTagName( "*" ); + // Null elements to avoid leaks in IE. + a = input = select = opt = div = null; +})(); - } else if ( "querySelectorAll" in elem ) { - return elem.querySelectorAll( "*" ); - } else { - return []; - } -} +var rreturn = /\r/g; -// Used in clean, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( elem.type === "checkbox" || elem.type === "radio" ) { - elem.defaultChecked = elem.checked; - } -} -// Finds all inputs and passes them to fixDefaultChecked -function findInputs( elem ) { - if ( jQuery.nodeName( elem, "input" ) ) { - fixDefaultChecked( elem ); - } else if ( elem.getElementsByTagName ) { - jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); - } -} +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var clone = elem.cloneNode(true), - srcElements, - destElements, - i; + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - // IE copies events bound via attachEvent when using cloneNode. - // Calling detachEvent on the clone will also remove the events - // from the original. In order to get around this, we use some - // proprietary methods to clear the events. Thanks to MooTools - // guys for this hotness. + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } - cloneFixAttributes( elem, clone ); + ret = elem.value; - // Using Sizzle here is crazy slow, so we use getElementsByTagName - // instead - srcElements = getAll( elem ); - destElements = getAll( clone ); - - // Weird iteration because IE will replace the length property - // with an element if you are cloning the body and one of the - // elements on the page has a name or id of "length" - for ( i = 0; srcElements[i]; ++i ) { - cloneFixAttributes( srcElements[i], destElements[i] ); + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; } + + return; } - // Copy the events from the original to the clone - if ( dataAndEvents ) { - cloneCopyEvent( elem, clone ); + isFunction = jQuery.isFunction( value ); - if ( deepDataAndEvents ) { - srcElements = getAll( elem ); - destElements = getAll( clone ); + return this.each(function( i ) { + var val; - for ( i = 0; srcElements[i]; ++i ) { - cloneCopyEvent( srcElements[i], destElements[i] ); - } + if ( this.nodeType !== 1 ) { + return; } - } - // Return the cloned set - return clone; - }, + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } - clean: function( elems, context, fragment, scripts ) { - var checkScriptType; + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } - context = context || document; + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - // !context.createElement fails in IE with an error but returns typeof 'object' - if ( typeof context.createElement === "undefined" ) { - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; - } - - var ret = [], j; - - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - if ( typeof elem === "number" ) { - elem += ""; + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; } + }); + } +}); - if ( !elem ) { - continue; +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + jQuery.text( elem ); } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; - // Convert html string into DOM nodes - if ( typeof elem === "string" ) { - if ( !rhtml.test( elem ) ) { - elem = context.createTextNode( elem ); - } else { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, "<$1></$2>"); + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; - // Trim whitespace, otherwise indexOf won't work as expected - var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), - wrap = wrapMap[ tag ] || wrapMap._default, - depth = wrap[0], - div = context.createElement("div"); + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + elem + wrap[2]; + // Get the specific value for the option + value = jQuery( option ).val(); - // Move to the right depth - while ( depth-- ) { - div = div.lastChild; + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); } + } - // Remove IE's autoinserted <tbody> from table fragments - if ( !jQuery.support.tbody ) { + return values; + }, - // String was a <table>, *may* have spurious <tbody> - var hasBody = rtbody.test(elem), - tbody = tag === "table" && !hasBody ? - div.firstChild && div.firstChild.childNodes : + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; - // String was a bare <thead> or <tfoot> - wrap[1] === "<table>" && !hasBody ? - div.childNodes : - []; + while ( i-- ) { + option = options[ i ]; - for ( j = tbody.length - 1; j >= 0 ; --j ) { - if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { - tbody[ j ].parentNode.removeChild( tbody[ j ] ); - } + if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) { + + // Support: IE6 + // When new option element is added to select box we need to + // force reflow of newly added node in order to workaround delay + // of initialization properties + try { + option.selected = optionSet = true; + + } catch ( _ ) { + + // Will be executed only in IE6 + option.scrollHeight; } - } - // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } else { + option.selected = false; } - - elem = div.childNodes; } - } - // Resets defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - var len; - if ( !jQuery.support.appendChecked ) { - if ( elem[0] && typeof (len = elem.length) === "number" ) { - for ( j = 0; j < len; j++ ) { - findInputs( elem[j] ); - } - } else { - findInputs( elem ); + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; } + + return options; } + } + } +}); - if ( elem.nodeType ) { - ret.push( elem ); - } else { - ret = jQuery.merge( ret, elem ); +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); } } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); - if ( fragment ) { - checkScriptType = function( elem ) { - return !elem.type || rscriptType.test( elem.type ); - }; - for ( i = 0; ret[i]; i++ ) { - if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { - scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); - } else { - if ( ret[i].nodeType === 1 ) { - var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); - ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); - } - fragment.appendChild( ret[i] ); - } - } - } - return ret; +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = support.getSetAttribute, + getSetInput = support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); }, - cleanData: function( elems ) { - var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special, - deleteExpando = jQuery.support.deleteExpando; + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { - continue; +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; } - id = elem[ jQuery.expando ]; + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; - if ( id ) { - data = cache[ id ] && cache[ id ][ internalKey ]; + } else { + ret = jQuery.find.attr( elem, name ); - if ( data && data.events ) { - for ( var type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); - // Null the DOM reference to avoid IE6/7/8 leak (#7054) - if ( data.handle ) { - data.handle.elem = null; + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); } - if ( deleteExpando ) { - delete elem[ jQuery.expando ]; + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; } - - delete cache[ id ]; } } } }); -function evalScript( i, elem ) { - if ( elem.src ) { - jQuery.ajax({ - url: elem.src, - async: false, - dataType: "script" - }); - } else { - jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) ); - } +// Hook for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; } -} +}; +// Retrieve booleans specially +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + } : + function( elem, name, isXML ) { + if ( !isXML ) { + return elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + } + }; +}); -var ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity=([^)]*)/, - rdashAlpha = /-([a-z])/ig, - // fixed for IE9, see #8346 - rupper = /([A-Z]|^ms)/g, - rnumpx = /^-?\d+(?:px)?$/i, - rnum = /^-?\d/, - rrelNum = /^[+\-]=/, - rrelNumFilter = /[^+\-\.\de]+/g, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssWidth = [ "Left", "Right" ], - cssHeight = [ "Top", "Bottom" ], - curCSS, - - getComputedStyle, - currentStyle, - - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } }; +} -jQuery.fn.css = function( name, value ) { - // Setting 'undefined' is a no-op - if ( arguments.length === 2 && value === undefined ) { - return this; - } +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { - return jQuery.access( this, name, value, true, function( elem, name, value ) { - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }); -}; + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity", "opacity" ); - return ret === "" ? "1" : ret; + ret.value = value += ""; - } else { - return elem.style.opacity; - } + // Break association with cloned elements by also using setAttribute (#9646) + if ( name === "value" || value === elem.getAttribute( name ) ) { + return value; } } - }, + }; - // Exclude the following css properties to add px - cssNumber: { - "zIndex": true, - "fontWeight": true, - "opacity": true, - "zoom": true, - "lineHeight": true, - "widows": true, - "orphans": true - }, + // Some attributes are constructed with empty-string values when not defined + attrHandle.id = attrHandle.name = attrHandle.coords = + function( elem, name, isXML ) { + var ret; + if ( !isXML ) { + return (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + } + }; - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, + // Fixing value retrieval on a button requires this module + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + if ( ret && ret.specified ) { + return ret.value; + } + }, + set: nodeHook.set + }; - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); } + }; - // Make sure that we're working with the right name - var ret, type, origName = jQuery.camelCase( name ), - style = elem.style, hooks = jQuery.cssHooks[ origName ]; + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} - name = jQuery.cssProps[ origName ] || origName; +if ( !support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - // Make sure that NaN and null values aren't set. See: #7116 - if ( type === "number" && isNaN( value ) || value == null ) { - return; - } - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && rrelNum.test( value ) ) { - value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); - } - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } +var rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i; - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } +jQuery.fn.extend({ + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + } +}); - // Otherwise just get the value from the style object - return style[ name ]; - } +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" }, - css: function( elem, name, extra ) { - var ret, hooks; + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; - // Make sure that we're working with the right name - name = jQuery.camelCase( name ); - hooks = jQuery.cssHooks[ name ]; - name = jQuery.cssProps[ name ] || name; + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } - // cssFloat needs a special treatment - if ( name === "cssFloat" ) { - name = "float"; + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; } - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { - return ret; + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); - // Otherwise, if a way to get the computed value exists, use that - } else if ( curCSS ) { - return curCSS( elem, name ); + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; } }, - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback ) { - var old = {}; + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); - // Remember the old values, and insert the new ones - for ( var name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } } + } +}); - callback.call( elem ); +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; +// Support: Safari, IE9+ +// mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; } - }, + }; +} - camelCase: function( string ) { - return string.replace( rdashAlpha, fcamelCase ); - } +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; }); -// DEPRECATED, Use jQuery.css() instead -jQuery.curCSS = jQuery.css; +// IE6/7 call enctype encoding +if ( !support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} -jQuery.each(["height", "width"], function( i, name ) { - jQuery.cssHooks[ name ] = { - get: function( elem, computed, extra ) { - var val; - if ( computed ) { - if ( elem.offsetWidth !== 0 ) { - val = getWH( elem, name, extra ); - } else { - jQuery.swap( elem, cssShow, function() { - val = getWH( elem, name, extra ); - }); - } - if ( val <= 0 ) { - val = curCSS( elem, name, name ); +var rclass = /[\t\r\n\f]/g; - if ( val === "0px" && currentStyle ) { - val = currentStyle( elem, name, name ); +jQuery.fn.extend({ + addClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } } - if ( val != null ) { - // Should return "auto" instead of 0, use 0 for - // temporary backwards-compat - return val === "" || val === "auto" ? "0px" : val; + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; } } + } + } - if ( val < 0 || val == null ) { - val = elem.style[ name ]; + return this; + }, - // Should return "auto" instead of 0, use 0 for - // temporary backwards-compat - return val === "" || val === "auto" ? "0px" : val; - } + removeClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; - return typeof val === "string" ? val : val + "px"; - } - }, + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; - set: function( elem, value ) { - if ( rnumpx.test( value ) ) { - // ignore negative width and height values #1599 - value = parseFloat(value); + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); - if ( value >= 0 ) { - return value + "px"; - } + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } - } else { - return value; + // only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } } } - }; -}); -if ( !jQuery.support.opacity ) { - jQuery.cssHooks.opacity = { - get: function( elem, computed ) { - // IE uses filters for opacity - return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? - ( parseFloat( RegExp.$1 ) / 100 ) + "" : - computed ? "1" : ""; - }, + return this; + }, - set: function( elem, value ) { - var style = elem.style, - currentStyle = elem.currentStyle; + toggleClass: function( value, stateVal ) { + var type = typeof value; - // IE has trouble with opacity if it does not have layout - // Force it by setting the zoom level - style.zoom = 1; + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } - // Set the alpha filter to set the opacity - var opacity = jQuery.isNaN( value ) ? - "" : - "alpha(opacity=" + value * 100 + ")", - filter = currentStyle && currentStyle.filter || style.filter || ""; - - style.filter = ralpha.test( filter ) ? - filter.replace( ralpha, opacity ) : - filter + " " + opacity; + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); } - }; -} -jQuery(function() { - // This hook cannot be added until DOM ready because the support test - // for it is not run until after DOM ready - if ( !jQuery.support.reliableMarginRight ) { - jQuery.cssHooks.marginRight = { - get: function( elem, computed ) { - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - // Work around by temporarily setting element display to inline-block - var ret; - jQuery.swap( elem, { "display": "inline-block" }, function() { - if ( computed ) { - ret = curCSS( elem, "margin-right", "marginRight" ); + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); } else { - ret = elem.style.marginRight; + self.addClass( className ); } - }); - return ret; + } + + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; } - }; + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; } }); -if ( document.defaultView && document.defaultView.getComputedStyle ) { - getComputedStyle = function( elem, name ) { - var ret, defaultView, computedStyle; - name = name.replace( rupper, "-$1" ).toLowerCase(); - if ( !(defaultView = elem.ownerDocument.defaultView) ) { - return undefined; - } - if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) { - ret = computedStyle.getPropertyValue( name ); - if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { - ret = jQuery.style( elem, name ); - } - } +// Return jQuery for attributes-only inclusion - return ret; + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); }; -} +}); -if ( document.documentElement.currentStyle ) { - currentStyle = function( elem, name ) { - var left, - ret = elem.currentStyle && elem.currentStyle[ name ], - rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ], - style = elem.style; +jQuery.fn.extend({ + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { - // Remember the original values - left = style.left; + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + } +}); - // Put in the new values to get a computed value out - if ( rsLeft ) { - elem.runtimeStyle.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : (ret || 0); - ret = style.pixelLeft + "px"; - // Revert the changed values - style.left = left; - if ( rsLeft ) { - elem.runtimeStyle.left = rsLeft; - } - } +var nonce = jQuery.now(); - return ret === "" ? "auto" : ret; - }; -} +var rquery = (/\?/); -curCSS = getComputedStyle || currentStyle; -function getWH( elem, name, extra ) { - var which = name === "width" ? cssWidth : cssHeight, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight; - if ( extra === "border" ) { - return val; +var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; + +jQuery.parseJSON = function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + // Support: Android 2.3 + // Workaround failure to string-cast null input + return window.JSON.parse( data + "" ); } - jQuery.each( which, function() { - if ( !extra ) { - val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0; - } + var requireNonComma, + depth = null, + str = jQuery.trim( data + "" ); - if ( extra === "margin" ) { - val += parseFloat(jQuery.css( elem, "margin" + this )) || 0; + // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains + // after removing valid tokens + return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { - } else { - val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0; + // Force termination if we see a misplaced comma + if ( requireNonComma && comma ) { + depth = 0; } - }); - return val; -} + // Perform no more replacements after returning to outermost depth + if ( depth === 0 ) { + return token; + } -if ( jQuery.expr && jQuery.expr.filters ) { - jQuery.expr.filters.hidden = function( elem ) { - var width = elem.offsetWidth, - height = elem.offsetHeight; + // Commas must not follow "[", "{", or "," + requireNonComma = open || comma; - return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none"); - }; + // Determine new depth + // array/object open ("[" or "{"): depth += true - false (increment) + // array/object close ("]" or "}"): depth += false - true (decrement) + // other cases ("," or primitive): depth += true - true (numeric cast) + depth += !close - !open; - jQuery.expr.filters.visible = function( elem ) { - return !jQuery.expr.filters.hidden( elem ); - }; -} + // Remove this token + return ""; + }) ) ? + ( Function( "return " + str ) )() : + jQuery.error( "Invalid JSON: " + data ); +}; +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; -var r20 = /%20/g, - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, +var + // Document location + ajaxLocParts, + ajaxLocation, + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL - rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/, + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, - rquery = /\?/, - rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, - rselectTextarea = /^(?:select|textarea)/i, - rspacesAjax = /\s+/, - rts = /([?&])_=[^&]*/, - rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, - // Keep a copy of the old load method - _load = jQuery.fn.load, - /* Prefilters * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) * 2) These are called: @@ -6618,12 +8609,9 @@ */ transports = {}, - // Document location - ajaxLocation, + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat("*"); - // Document location segments - ajaxLocParts; - // #8138, IE may throw an exception when accessing // a field from window.location if document.domain has been set try { @@ -6650,259 +8638,256 @@ dataTypeExpression = "*"; } - if ( jQuery.isFunction( func ) ) { - var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), - i = 0, - length = dataTypes.length, - dataType, - list, - placeBefore; + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + if ( jQuery.isFunction( func ) ) { // For each dataType in the dataTypeExpression - for(; i < length; i++ ) { - dataType = dataTypes[ i ]; - // We control if we're asked to add before - // any existing element - placeBefore = /^\+/.test( dataType ); - if ( placeBefore ) { - dataType = dataType.substr( 1 ) || "*"; + while ( (dataType = dataTypes[i++]) ) { + // Prepend if requested + if ( dataType.charAt( 0 ) === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); + + // Otherwise append + } else { + (structure[ dataType ] = structure[ dataType ] || []).push( func ); } - list = structure[ dataType ] = structure[ dataType ] || []; - // then we add to the structure accordingly - list[ placeBefore ? "unshift" : "push" ]( func ); } } }; } // Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, - dataType /* internal */, inspected /* internal */ ) { +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - dataType = dataType || options.dataTypes[ 0 ]; - inspected = inspected || {}; + var inspected = {}, + seekingTransport = ( structure === transports ); - inspected[ dataType ] = true; + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + }); + return selected; + } - var list = structure[ dataType ], - i = 0, - length = list ? list.length : 0, - executeOnly = ( structure === prefilters ), - selection; + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} - for(; i < length && ( executeOnly || !selection ); i++ ) { - selection = list[ i ]( options, originalOptions, jqXHR ); - // If we got redirected to another dataType - // we try there if executing only and not done already - if ( typeof selection === "string" ) { - if ( !executeOnly || inspected[ selection ] ) { - selection = undefined; - } else { - options.dataTypes.unshift( selection ); - selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jqXHR, selection, inspected ); - } +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var deep, key, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; } } - // If we're only executing or nothing was selected - // we try the catchall dataType if not done already - if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { - selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jqXHR, "*", inspected ); + if ( deep ) { + jQuery.extend( true, target, deep ); } - // unnecessary when only executing (prefilters) - // but it'll be ignored by the caller in that case - return selection; + + return target; } -jQuery.fn.extend({ - load: function( url, params, callback ) { - if ( typeof url !== "string" && _load ) { - return _load.apply( this, arguments ); +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + var firstDataType, ct, finalDataType, type, + contents = s.contents, + dataTypes = s.dataTypes; - // Don't do a request if no elements are being requested - } else if ( !this.length ) { - return this; + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); } + } - var off = url.indexOf( " " ); - if ( off >= 0 ) { - var selector = url.slice( off, url.length ); - url = url.slice( 0, off ); + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } } + } - // Default to a GET request - var type = "GET"; + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } - // If the second parameter was provided - if ( params ) { - // If it's a function - if ( jQuery.isFunction( params ) ) { - // We assume that it's the callback - callback = params; - params = undefined; + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} - // Otherwise, build a param string - } else if ( typeof params === "object" ) { - params = jQuery.param( params, jQuery.ajaxSettings.traditional ); - type = "POST"; - } +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; } + } - var self = this; + current = dataTypes.shift(); - // Request the remote document - jQuery.ajax({ - url: url, - type: type, - dataType: "html", - data: params, - // Complete callback (responseText is used internally) - complete: function( jqXHR, status, responseText ) { - // Store the response as specified by the jqXHR object - responseText = jqXHR.responseText; - // If successful, inject the HTML into all the matched elements - if ( jqXHR.isResolved() ) { - // #4825: Get the actual response in case - // a dataFilter is present in ajaxSettings - jqXHR.done(function( r ) { - responseText = r; - }); - // See if a selector was specified - self.html( selector ? - // Create a dummy div to hold the results - jQuery("<div>") - // inject the contents of the document in, removing the scripts - // to avoid any 'Permission Denied' errors in IE - .append(responseText.replace(rscript, "")) + // Convert to each sequential dataType + while ( current ) { - // Locate the specified elements - .find(selector) : + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } - // If not, just inject the full result - responseText ); - } + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } - if ( callback ) { - self.each( callback, [ responseText, status, jqXHR ] ); - } - } - }); + prev = current; + current = dataTypes.shift(); - return this; - }, + if ( current ) { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { - serializeArray: function() { - return this.map(function(){ - return this.elements ? jQuery.makeArray( this.elements ) : this; - }) - .filter(function(){ - return this.name && !this.disabled && - ( this.checked || rselectTextarea.test( this.nodeName ) || - rinput.test( this.type ) ); - }) - .map(function( i, elem ){ - var val = jQuery( this ).val(); + current = prev; - return val == null ? - null : - jQuery.isArray( val ) ? - jQuery.map( val, function( val, i ){ - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - }) : - ( current === "*" ) { - serializeArray: function() { - return this.map(function(){ - return tkap(fuMooTool ) }; - guys list, isorktness., // IE leaype encodi ) ( !support ( oponseT]; torejqXHR ] ings - )/ don't get/set propertie { - jQuens ) { -cket = /e { + (structure(?:aboulue: if ( jQue return [ 0 ] ) { }; - Ution(Sizzif eType; crazy s numbeozeArray:rent ) { - seriali{ }; - else i{ }; .makeArray( rehe scripts - ;ection = keArray( rehe scripulue: i-{ }; - Weird thi for ( "string" &val.rets the }; -}n(){ -the full r}; - = s.ca.split(" t = his.e, +election}; -:GETataTyue: taType r}; - "")) + /name, vpre; ataTyption nctiuteOnl}n(){ "allback (reTypeEx .makeArray(fie; ++iete: functe { + (structure[ dkeArray(fieataTypkeArray(fie+ if ( jQuery.is === uQue r) { + ct =?opertie elem, valmostry mmnam if (casesopertie { lean" && tQuery.tyle.filpertie elem, valcases + iffunction( { true; nctselectopertie { cur = c" datuens nc = "falsepe ] || r dataType -e oln(){ - re }) : - ( cready - ils = /(,rse( datan this.map(functi of the old load (?:aboulue: if (current da =Put in the new valu - if ( et = /\[\]$- return this.map(functi; .makeArray( rehe scripts - ;ectioon = keArray( rehe scripulue: iQuery.expr.filters ) { - jQue i ? this.off( - ; - }; + // DeTypeEx .makeArray(fie; ++iete: funct of the old load [ dkeArray(fieataTypkeArray(fie+ i/ Prepeeturn thiript/ + // e have a rf ( jQuery.;sword|range|searc" + v #9887 +f +} - list[ ry.expr +} ) : ""; +on( dataurrent da a rf ( jue; + false ? "" : jQuery.LowerCase(); ns, " ) < 0 )" " + elem.claue; + falsasync = if - - serializeArr - Typextk; + } + if ( !fifunction(){val + ajaT { - eataTed() { true; t/settaTXHR Ty deptselectl data if ; +on( datue; ++ }); +} - naue; + "" < 0 )" " + edeType === 1 &&tion( selector} - naue; ++ "" < 0 )" " + edeTypor ( name in option if ( !extrue; + yle.filter) ue;, - }, + // There's onl( jQuery.ithe docu cur = c" datthe do+ "" < 0 )ft + "pxge|searc Typext) { Typext) ] =.isReso+ "pxgs.disabled && - ( thisbrary/ed || rselectTextarea.testript/ + deName ) || - rinput.teata! Typextlved() ) { - tchall ch se = s.ca.sprr// funcQuery.spe === 1'h ) { ' /(,rse( e === 1 Typextlved() ) { - tion( rue; t/se].classNam Typext) { Typext); +/* Handles res Typext/ If th Typext/ I); +/* Handles res=.isReso+ // jqXHR, isSuccess j i-{ };+ ( " " + elem.className + eArr "maxLength", + "cellSpacing", e === 1mentsByTa selector} / Prements++ "" < 0 )ht; aTypQuery.sprue; t/seit +il inspeto that ig only a; +on( dat { + unctiwith ( !supporlue; ]; }orej: jQueue;, tings - jq't get/set propertiript/eVal === "bafter returning toveClass( cln( dat .find(selnodes + if ( ( current === "y() )ea.te // T; + cu:values -et - serializeArrif ( !extruer ue; + yle.filelf.. 0 ]ejqXHR ] ings - if ( jQuery.iue; me === "?opertieue; ilpertieiginalOpentipts - ;eter returnyle( e.resp:values -et - serializeArrif ( !extruer ue;peof; + cu jQuery(; + currreturn " || val === var whichturn jQuery.Irs.hidden = - return if ( !pre jQuer-ooks.e; *?):[ \t jQuery(ue;pe().man - === "s, elem, c max).man - *?):[ +ame ]ion( valction( valu taType*?):[ \t "?opertie max)ilpertie an - *?):[ return (wide -e y dept.isXM if ( !to whol, use 0 fong", e === 1mentsByTa this[i].className( dat r - ype ||eArrif te: funct Name + Typextlved() irstelemepts - ;ectioomputedStyle.getlter(x "Xfina"-e = fitagbject"il i addctl funct Name + empat -n" && type === "string" ) { + rgetlteLoop be aughs.classNaunction ajaxExtsopertiquested + maxe.charAt( 0 )ry(; + cuile ( Exts da yle.getlteTrimfunct| "*"; ++ } + if*?):[Ofyle = ee ];ttaTexp{ + var extruer tagR, s var type = typeArrif e; - // IE has trouble wi- true (dVal R, Val ) { +tagR| rseVal ) { if ( th- true (ddepmma =Val - // ht ction; + Typextlved() ) { - -jQue+ return pes[ldse ted - }upd.fn.lnction aector it f - t (#2551)valu taTt( the ( Extkey in srce; *sByTa) { - i !hooks rn pesDe = e mouseover curr, type, +type: typnctioTyptype: typn{ - hooks rn ( aType: "html", - d?ta: pExtktype: typ ]ion( vrams = undefinetype: ty // If }); +} !hooks rn (ta: pExtk ) { - jQuetype: typnction( i, status, j: pExtk ) { - jQu,ons |- } -At( yle.getlteGoeto .isXMtaTy delega funpeelns.daextra=Val pctl funct content-type anVal 1]e = ents+nVal 2elem, namType ) { + ngth >ctthe dolist, - : pExtem, namT + " ").replace(; + cui ns, "da yle.getlteMrCRLFady - ren; depmmyle.getr - depmm-- te: funct tion; + conetur } else { s, null, "*" )ypes[ oTyin oolistan -shift()se { s,ly incnere's onl( j jQuery.ithe dlse { s,= "falsegetlteM thi-Shift();n( value Tyin oem, namT + " l */ ) {- if ( e{ s,= " s,= yle.getlte value IE's autothere wa <?:GET> }) tyle.dTypes.unyle.get number - // but a n?:GETe a rf ( jQuery.{- i= 0 ) { , yle.get // if (wtaTyp dataTy, *may* - jQspurious <?:GET>yle.get y worasBGETe= r?:GET ype |ull : // ht ct ?:GETe= tagR,umentdget) val rasBGETe + } + try con === "" || Respcon === "" ||a hook was pilpertset - serializeArr,// There's onl( self.ialSetof; + cu jQuery(; + currreturn " || val === vue;pe().myle.filteke in options ) valu taTypeion( valction(da yle.getet // if (wtaTypbe, +<y -ad- retfoot>yle.getet Val 1]e var dataTy) val rasBGETe + } + try con hook was pil } + try eae.net/ar - i-- te: 0 )ry(; + cuile ( Exts da yle.getiquesteje= t:GET }n(){ -("[" j >+ eed --j te: funct tresponseText, status, jt:GET[ j ]tes ooks = jval t:GET[ j ]) { + for ( conv ite: funct tr t:GET[ j ]) ) { - jQuery.cssHooks[ t:GET[ j ] filter.rep,= " s, // Put in thn in optlectTextarea.te.ion( vramse(; + cui ,// The!fif>+ ee keyup ertet // If succes6se { s, nul funokens + cuiplit(" t s re func e + whiboxataTypes[tose { s, nu + "WQuerompr= 1okely re fu staoesn't=== "*"e ]; - se, jqXse { s, nucted[itis; - for (rds-compatse { s,r opaconl( j j ( Extkey in src=elf.ialSetpe, - dase { s,=- // f/ P_e keyup ertet , nulal.rb }ecuon aj commnces6se { s,j ( ExtkecrollHstyle( e{ s,ilter + ,= yle.getlte.isAr see acomkal.s le; + tfunct| "*";l, funtent-type s { + var xml number - // but a nStyle = elem.curreich,le; + toggleClass: functeArrif te: funct contes.selected = Typextlved() irstelemep,le; + toggleClass: = tyull :onver,spcon === "" ||t(jQuery.cs " + elem.clasj ( Extkey in src=elValue; // jqXH t Name + con hook was %20/g, - -+ ,= yle.glte vsssar.dataFilter ) {xLocatiov && dataTyter if pe ) }; - abing "*"b type func the wholch se 6/7 (#8060)) }; selen;( cln( dat r - // but a n if ( cts, originalOptrn this.na/ If the === 1(lis.leturn conv )sByTa selector} / Preiquesteje= 0" j \t]*(" jement - pl elf.each( callba[j] filter.relter + "putedStyle.getelf.each( callback rgetlteF+ "WQi addctl "*"b - jQ Ty - Force funoon-0, + + tfunction( lis // IE lea!lf.ialSetpte: 0 )ry(turn jQuery.Irs.he= -1%20/g, - +rf ( jQuery.{ ( Exts;eter returng toveClass( cln( dat = prev; - eE][+-]?\d+t */ ) {ts - ;ectio{ + // Support:t).myle.filtport responllback lte && dataTyter if pe ehe torry ctctopl = /^\/\//, - v && i,ilter if pro = /<script\spected /* intarea.testript ajax{le( e.t - serializeArr,// There's onl( - for ( name in options ) { - elejQuery.{(+ response =Put in thn in optlectTeyull : ns, ",// There'>+ ee // Shouurng to| []; - inalDataType !==tersOrTransportarea.testript aramsjaxConvert( seArrif ( !ext // If succWebkit !ext /""on( Query.end( true, tarType s sp) { - selectength > 0 ? + in IE - .tched elements - / If }); +?rType :eturn [ 0 ] ) selectedveClass( clfter removing.classNam val + ajaT { jaxConvert( seArrif ( -elejQuery.{!turn if (nctrs+ ajaT { : functeArr.ments afctio{;allback (reTypeEx Quefie; mplete: funct\[\]$/, - rCuery.support.reliableQuefie= /\, - r = jval(!Quefie if (nctruefie if me ) || - r struc/java\, - r f te: funct /, - rCR*/ ) {ruefie "\\\r\n]|\\?{ruefie "\\\r\n]|\ery.cssHooks[ ruefie?/, ruefie?/da yle.ge"putedStyle.getry.suppte.filter || style.filter || "" sejsTagbj=Put in t+ if ppte.fi .append(responseText.\, - r = ,){val + ajaT { ?/da yle.ge?\d+t c ); +([^\/?#:espon[i +am, jqXHR.jsTagbj) filter.relter + type + " + if ( ct ) { ruefie?/da-/g, - -+ ,= ange|searc { - jQuens )tructureea.t, [\w\ea.t,uentcheHm, val - if ( jQr.tcheHm, va,uenr{ + return = /^(?:sponse | jQuery.)$/i,uen( type in response + for ( type in respo,uen( typeIdataType a dataFilte;eout mouseenter mouseleavtche:XXX fields on the/ There's onln( valueccurn tver: functiontche, on the/ The,s a weird ending, >// Other , yle style.fi - serializeArr fifunction()data, idataTypel - if (aType, = "*"; } - if ( jQuery. "auto" - if ( e = /"auto" ,ection ee aE it'll eft, - r a datan ee aE it'll ] !==g (prefi:XXX fields on t + allTypes = "*/".cers ) { - jQuery.expr.t, - ==g (prefi tver: fon t +;eturning toveClass( cl+ ( " " + elem.className + eArr "maxLength", + "cellSpacing", ( this.nodeNauery.support. jQue( this.nodeName ) || - rquery = odes + if ( ( current === "y(tche:XXX fields eArr,/on the/ There's only work to do ifexpr.nT { jax = prev; - ;yup error "*" )/ Try c + while ( datapextk;y mming.taTy] ) { + , use +ln( dat .fresp || style3fresp || style8fresp || style2if ( !extpe ] || [] - +rf (lteFtion segers ut ) fun+ while ( de, +typer a datture[ dataTe === 1ment .tched elestyles - t get/set propert\-storage|.+\- ut s eArr,/on the/ There| [] - +rf (lteAlln+ while ( de, +l || caserf (lteGrab1okcurnurn rk t s scneriar.dat/sere[ dataTn38, IE may throw an ex ? - nteArrif te: xpr.nprefilnry ) { + var dataT xgs.disabled && -tcheHa.testtion ajlse if ( - if ( jQr.0, + .[\w\: functon t + ? [\w\ea.t, tureea.tre| [] - +rf (computed ) don't get/set prop; +on( datue; docume}); +} - nat, - ==g (prefi teArr,/on t else { //" " + edeTypype encodis) ( !support ( oponseT]; sorejqXHR ]/ The,son t e)/ don't get/set properti { - jQuens )< 0 )" " + elem.claturn jts - jQon the/ Ther+e - / jQuery.ithe dlsrbracket = /\ { + r[ - // but it'll g value for mE leaype encodi ) ( !support ( oponseT]; torejqXHR ]on t e)/ don}); +} - n { - jQuens s( cln( datiriginalOptr functiaType[tiri]Check to [tiri]ery.isFunction( value for m - n { + yle.filelf.. 0 ]ejqXHR ]on t els= defaultVie func } - . // We control dataTypes[ i ]; - - . // We control dt\[\]$/auto" Types[i+ite: funct tr- if ( e = /"mousedoqXHR ]ments af!ext /Non-e, - ing.t "push" ]( f - jQ}); dataTye ) >= 0 lengn.dat/sere[ n { - jQuenocu cur = / j't get/set: / jQue| [] - +{ , yle.get /Tipt s computed ?/ Convert- if ( e = /"mouse' daverhe i{ }; .ge"putedStyle.getnat, - ==g (pd load (?:abo ( fldfor(; i < filter.replter + ,= !==g (prefi:XXX fields eArr,// There's onltructprolog chdeNa"; +on( { - it "pdeNas -curCSS = getC0, + { rtypunct| "da yle.getlteript,the wholuery.exte?/ ConvertIE6/7/8 ("," (#7054)yle.getry.sudfor(; i < fe: funct for(; i < ementsB) { - etry.sut "pdeNas ._da ).val(); + curr} - nr - (nprefilt "pdeNas[+ "] { - elejg chdeNa + yle.fil + xsttion ajlsttion dase { o\w\+\..t "push" ](amsj"auto" ted() !clos#10870)s // IE lea- if ( jQr.0, + .[\w\: functon t + te: 0 )ry(t: + * if ( spon + tf name ], ing - " s, // P( typeIdataT._d( type in responor = { + return: functon t + te: 0 )ry( r[ g chdeNa ] ibly dangerous) // If succes<9gerous) /e anunction.dataFilter ) / if ( src[ key (s spp{ - rate)valu tas " + elem.clasj r[ - // bunses ) { xt. if ( -"r+eon t + ] ise { s,j r[ g chdeNa ] ibly dange{ s,= "se { / 10#9699 in caxplan for (taTyp s p{ -ity;( only anHiddenOa fun==g (al)valu ts " + elem.clased && -tches eArr,/on the - 0/g, - r defaultVie ee aE it'll fe: funct ession r[ - // but it'll g valulaturn ing (prefilters) ( type in respon?eon t : g chdeNa .async = "] - +{ , yle.gecurrent = dataTyping (prefilters te: funct Nameting (prefilters) - // but it'll be entcheHa.te // T ( :values set - serializeArr,// There's onl( ; - inalDatact the contSS = get( !prev && isery.support.reliableXHR ] ); - + te: 0 )ry(t: + *ly and noect( dn // Crean === "sector d not donervsssard not donemnces6-9gerous) / vsssot doneransreturn } { +i ]; -( lisector t donedu if (ced()Extem, namuer ue; + turn [ 0 ] ) se laturn jts - jQuery("<d + if ( son( datue; te: 0 )ry( r/eVal === "baf+r + ,= ! jQuery.ithe dlsrbra // jqXH tession - to [tiri] // Shouurngction - rlocalProtocotion + aja\b[^<eArrif ( -e = dataTyphen ac this; - }, ajax(: funcurl:ataTyphen,ectioasync:bly da,ectionforT ( :v.\, - r ange; + current this; - }, +lobalEns, octeArr.mext) ] eArr.mextCTypeOrT ] eArr.tent-type ot t" - n" && r styl + aja ] /*$0*/"j) filte - H ajaxLocb\w\+\..t "push" ] +[\w\ea.t,aTypeOret - serializeArr,// The^<]*(?:(?!<\/n( datue; documeurn token; + lte value b\w\+\..t "push" ]) funaTypeng - " st, - ==g (prefi teArr,/on t elsegecurrent = da( typeIdataT._d( type in responor = { + return: functon t + te: 0 )rlte.i<8Typesard no* name ],*ton t 0 )rturn jts - jQ!( type in responery.suppor + xsttion ajlsttion ]on t els= de = dataTypt has a class nametaTypt has a clery.cssHooks[ llback rgonse; r.dataFilter ) {a se, if ( src[ key listaldsevalue for m - n r[ - // bunses ) { xt. if ( -"r+eon t + ] i r[ tion ajax - dat,= "se { f - jQ}ion de appen// we +" + v rieue b\w\+\.sj"auto" , invar + // Docu- if ( jQr.0, + .[\w\:sourctC0, + { /\w+/g= ,)/<script\b[^<]*(?:(?!<sNamuer he torfilt "pHm, vasttion ajlstyle.filelf.. 0 ] we + t "pHm, vasttion aj=a( typeIdataT._d( type in responor = { + return: functon t + / XX fields eArr,/on the ? - ? this.off( espon; i < le +on( dat! ? - ? this.o) /envertpecifl prt +l op caltemlDaarilyn==g (y and -( { - se }) : -g ctctops.o)hm, val t "pHm, vasttion aaf+r + t "pHm, vasttion aj=auens ) { - { + g ctcts eArr,/on the ? - ? me === "?opertienry ) { + var da)ilpertie { - et+ t "pHm, vasttion aj=a; i < le +on} - n { - jQuens alue : / XX fields eArr,/on the ? - ? this.o( dat! ? - ? this.o)in IE - [ - // bunses ) { xt. if ( -"r+eon t + ] ?opertienry ) { + var da)ilpertie { - et+}) select - rlocff( ealphncti/alphn\([^)]*\)/i,u- r name ) ti/ name )=([^)]*)/,u- rdashAlphncti/-([a-z])/igection //y listIE9se -10#8346u- ru pctcti/([A-Z]|^ms)/gectirnumpx = /^-?\d+(?:px)?$/i,u- rnum = /^-?\d/,u- rrelNum = /^[+\-]=/,u- rrelNumF bind = /[^+\-\.\de]+/gectyle ssSh lis{ posi+ cu:v"absolspo"<d isibil= {}, -den",nsport )en tlock// Dole ssWidmma =[ "Lefti,ilRtylenot fle ssHstylea =[ "Topi,ilBo== mnot fle urCSSectyleg cCompuon S = f fle urhas S = f flflefnses ) { +ion( url, par; dale torfind(selector) le tor) {U pctvar dataTon /s[ldse t "ps-compatse( dat!( typeIdataTeturn type in responspected /* intcheHa.te/eVal ==={le( e.t - serializeArr,// The^<]*(?:(?!<\/nresponseText, status, jqXHR ] ); - } - is.o) /Dent-types+/, - ror, typy convertible s anu{ + valulaturn ginalOptions, j falsasync = " + elem.claonse; rtureea.tresp get/sets#1954);++ } + ify convertible s et/shis.o)in IE -tureea.trpply( tea.t sorejqXHR ]/ The,son t easync = "] - elect ) { + datanse f+ion( url, paon the/ There's -(t: + *ly an''t get/se' s cno-op dataTypes.weird ending, we n2tSS = get( !pr't get/set pro-Types = "*/".ilte - IE6/7 []).puseed to mg *ly a/ only an fun.t "push" ]) s.c/ Try convertiblse( dat!( type in responspecnd a dataTyd /* intccurn tver: fon the/ The,stypeofXX fields eArr,/on the/ There's - jQuery.ithe do don't get/set + } +t, - r = fs eArr,/on the/ There':+ } +t, - fn[ neArr,/on t els-ge; + t( finalUth = isaxLocationnvertible n IE6/7 finalTipt // Ialmostrta )y IE6/7 issuireNtureea.tr=={le( e.t - serializeArr,// The^<]*(?:(?!<\/nrt: + * ); }isn( i, r(ced()eidtoken] ) { + , ushis.off( esp + turn .tched eleelemepon t easync ( dat retpte: 0 )ryturn jts - elemelpertie(esp + turn idget):$/, rnoConts - jQon t ))valu t + "pxge|sea ( current === "*" /ed+ } e = fi name ], upportlistaa )ridy and noginalOp"*" /b - iistafmg *ly a{a se only ana e = fi name ],fle ssHa.te /-sj (ajaxLoc: func-et - serializeArrk;y mpuon ete: funct\[\]$y mpuon ete: funct, null,shouldparseXML ) { tselect inspee }) (ajaxL r extruer esp + urCSS jqXHR ] me ] = fun me ] = f filter.re { - jQuenocu+ ""+?rT1 datuens - n { /eVal === "bher+jqXHR.done(fe"putedStyle.getin IE - ( typeme ] = i/ Prepeetur or"," conten s s.c +} - for(; s cal anu{ + } +convertible #9646)sync ( datns( - sings - etu= get( !pr .tched elemton t + te: 0 )ryQuery.ithe dlsrbracke // Se / we try tExclude }; -followif (c f+rds-compat?/ Cod+ pxfle ssNelectoc: fun"zIrs.h":xtra ) fun"fTypWstyle":xtra ) fun"me ] = f:xtra ) fun"zo mn:xtra ) fun"lt/sHstyle":xtra ) fun"widows":xtra ) fun"mrphnns":xtra / Se t: +fun.t "push" ])e, +eons - cnts = s.c ) { - if (/ The!f funootr.dat/sere[t "pHm, va.\ { +t "pHm, va.nprefilt "pHm, va.coordata / XX fields eArr,/on the ? - ? this.off( esple +on( dat! ? - ? this.o)Query.{(esp + turn .tched eleelemepon t e jval { /eVal =!u+ ""+? ! jQue/eVal =ilpertie { - et+}) selec "*" /ed+ } rds-compat?who; rteNas his.w&])_=- the re"*" / only anormg *ly a{d not donfle ssP; oc: fun /ye ) >= 0 flo not f+rds-comy fun"flo n":xff >= 0 ) { - ssFlo no?rT ssFlo n data( typFlo n / Se t: Fix+ tfunctiorv rieual dn // === "srequir; + pt module ted /* intarea.te. === "s=={le( -et - serializeArrk;]*(?:(?!<\/nrff( esp + turn .tched eleelemepon t easync ( datesp val { /ength > 0t properti { - jQuen [ 0 ] ) se returnyle( e.t:ly( tea.t sor / we try t ) {a se on{ + firs name ], dn //wholelem tr fir:XXX fields eArr,/on the/ The,aextra=)c: fun /De = e on{ fir datapextataTyt mming., use 0 f( dat .fresa ).val(); + cu3fresa ).val(); + cu8fres! ( typete: funcpe ] || []t: + * ifypeOredi tyle.ing - }oun==g (alss#10429) []t: + *ly a{do" ) { - if (be awsca.sprr// astpecif(ali ) { - cted /* intcheHa.te/ifypeOredi tyle.=={le( e.t - serializeArr,// The^<]*(?:(?!<\/nry( tea.t sorejqXHR ]/ Theocu+ ""+?r - }:]/ The,son t easuurng to| ut.teataement) + // otheif (e ]; + }= s.conteren; nali{ };ff( espon ( fl deNa + yle.filnses ) { xton t e,ectioe = fina ( typ ] ? tar+ yle.filnssHa.te[l deNa ]| []t: + * widmmataTyhstylea/ Couort true, tar0}oun ) { - if ( : " + 150 ) finalTipt isaxLoc==g (alscted /* in/\//, - widmm - rsetylenot /<script\b[^<]*(?:(?!<\/ed /* intcheHa.testtion aj=aalues set - serializeArr,// There's onl( ; - / Theocu+ ""+te: 0 )ry(turn jts - jQon the"ouor- / jjQuery.ithe dlse { }- et+}) selected - // ut.teneNa + yle.filnssP; [l deNa ]fres deNa;se( dat!lDataType = fispected /* intcheHa.te/e = fina{le( -et - serializeArroken; + lte very.i't get/seth = /#. { += 1m) { - if ; + lteNotecces u pctcases t f+rds-comyrteNas, funcTML in deort) { + var da; + ltese first, // othouldpaTyproy. { +se tritive ) h =URL's, else n "inspg - s" - n { - jQ ( typee first rest[ placeBefournyle( e.t:l- serializeArr,// There's onl(Query.{(+ re( type ); + b/ Ther+e - / ng to| [dataType -ethe HTML iif ( only ana t donfle(computed ) don't get/set proctio" options (= 1 && ] ) { }; - ement) + // otNaNon( da== "/ The!f - / on. / 1: #7116( cln( dat if ( !preselectornversNaNptions ) {etu= get( !n}); +} -elejQuery.eText; - { }; - Ty deptrela( datselect DataType(+jqLoc-=) Fixesla( datselects. #7345( cln( dat if ( !pre+ ct = s.rrelNum: functions ) { - -extrueal ===+= getC- n" && rrelNumF bind,taType =parspFlo n( t, - fn[ neArr,/on t enseText; - { }; - If{ tselect wtaTpe );eth ,Cod+ 'px'unc the (excep ); - error( "CSS rds-compat)( cln( dat if ( !preselectornve!t, - fn[Nelect[l deNa ]f - -extrueal =+jqX+ }ext; -ields[f:$/style.==/^(?:); - | jQuer|tructure| === "|h ) { )$/i,uenrclicktyle.==/^(?:a|ture)$/i;- { }; - If{ trk t wtaTprovidseitgth = at ue;peof; } + ifjuTypes[{ + ngth >+ ) { - ( cln( dat { + unctiwith ( !supporlue; (ueal ===]; sorejqXHR ]/ The e)/ don't get/set pro-nct, nulal pcdgers u e = ces e }) :rowif (prr//!f fun'if(ali '"/ The!f Tprovidseo-nct, nu; + } b " +5509o-nct,r opacfunct / typsttion aj=av } else {s,=- // f(e prpend if r mouseenter mouseleavrds-:XXX fields on the/ There's onln( valueccurn tver: functionrds-, on the/ The,s a weird ending, >// Oth+{ , yle."putedStyle.g- If{ trk t wtaTprovidseL ) {, - on-y mpuon ethe dol }) : r ( cln( datype encodi ) ( !support ( oponseT]; torejqXHR ]ly da,aextra=))/ don't get/set pro-nct, { - jQuens nd if r!==g (pPds-:XXX fields on tre's onlneNa + yle.fil + xsttion ajlsttion daTypes = "*/".cers ) { - jQuery.expr.- r o/ // f/; i < slcases + iffes balort(su f/asn==g (y anas name ], dn wifdowa; + r opaconl( -autottion aj=at[ placeBefour tession -autottion aasync = // f( tre'sreturning toveClass( clns ) } + ifjuTyp ) {, - the dol }) : firsh ) { funcpe ] | / typsttion a+ //( ( current === "y( + x:values // "}, tmlForespues { + "}, ype (mediaher , yle ss:XXX fields eArr,/on theextra=)c: funff( espon;; ;eavrds-:XXX fields eArr,/on the/ There's only woespon;; nspecxmlfexpr.nT { jax = prev; - ;yut.teataement) + // otheif (e ]; + }= s.conteren; nali{ };neNa + yle.filnses ) { xton t e+ ? tar+ yle.filnssHa.te[ltion a+ neNa + yle.filnssP; [ltion ajlsttion daTyror "*" )/ Try c rds-compat?atapextk;y mming.taTy] ) { + , use +ln( dat .fresp || style3fresp || style8fresp || style2if ( !extpe ] || [] - ut.teata ssFlo noypesaraj"auto" ted() !clfle(compuns( - s ssFlo n d pro-nctneNa + "flo n"| [] pecxmlsB) 38, IE may throw an ex ? - nteArrif; +rf (compupecxmlsry.expr.- r(x neNa taTy] )ity; ? taexpr.neNa + yle.fil + xsttion ajlsttion daTy ? tar+ yle.fil + Ha.te[ltion a+ r dataType -If{ trk t wtaTprovidseL ) {, - y mpuon ethe dol }) : r ( cl( datype encodi ) ( !support ( oponseT]; torejqXHR ]typeofextra=))/ don't get/set pro-nct { - jQuens alucomputed ) don't get/set propnct { - jQype encodis) ( !support ( oponseT]; sorejqXHR ]/ The,son t e)/ don't get/set? ) { - { ilperti( r[ tion ajax- if ( eaType - } + i, s sp)way "*" ) {, - y mpuon ethe doe, - gth = atyle."putedS\[\]$yurCSSt pro-nct { - jQ urCSS jqXHR ]on t elsegecurrentropnct { - jQype encodi ) ( !support ( oponseT]; torejqXHR ]on t e)/ don}); +? ) { - { ilperti r[ tion atherwise a,c "*" /e this.m); - quickl - wl pif ( !/ing CSS rds-compat "*" ) {if ( ( ecalc / = jQue wl :XXX fields eArr,/" || valmpression + alfunff( ol { +ft( fi + Ha.te // T abIrs.h:values -et - serializeArrif ( !extr- ""). abIrs.h ted - }arseXMLpes = "*/- if ( ( executeOnlythe ha - } (axpliciorce lis // I/ectPrefilfluid + ) { .org/blogtruc8/01/09/g *ly a- only a-taT-==g (y a- ab) { --/ The!-= s.-java\, - r/em.claonse; rrds-coy] ) { + rv rieual(#12072)valu tuer tabar whichyle.filelf.. 0 ]ejqXHR ] tabar wh"f ( eaType -Remelect , - :l ethe dalmtaTy var co, - wscnee 0 fataTypes[ tion ieover curr pro-nct:l [ tion ajax re( typ[ltion a+ re( typ[ltion aile ( Exts tion aaf+r + pes = "*abar whi? ! jparspIoad *abar wh, 10 a)ilpertie[f:$/style: functeArr.s.nodeNaulue; rclicktyle: functeArr.s.nodeNaulu._da ).vd; +"?opertie 0)ilpertie -1%2+bracke // toveClass( clpressione ? "" eArrif; +t: +fun.t "push" ])requir;raj"auto" ? "?ataseva/ectPrefilmsdn.microsoftorts(en-us/libra o/ms536429%28VS.85%29.aspxse( dat!lDataTyp = params; - f ( !e/ect= p/hen name ], shouldp ) {, - f); +nrams; - URLos#10299/#12915)cted /* in/\//, - d; + = /\rcnot /<script\b[^<]*(?:(?!<\/ed /* in + Ha.te[ltion aj=aalues -et - serializeArrif ( !extrin IE - .tched elem/on the4 easync = "] -ected - // ut.tee -Revr co, - :l ethe da 0 fataTyption ieover curr pro-nct re( typ[ltion aile l [ tion a; +t: + If succSafariof p9+ +t: mis-==f su If not, just} +} - // Othee alrn : pExtem /eccurny a{d not has 's jQuery.Irs.he // Othee // Iit !( dat!lDataTypery.param( pspected /* in + Ha.tekey in src=e{le( -et - serializeArroken; + es[ rev, + ctaTypt has a cl;op; +on( datrev, + - elejg 1 ] ) jQuery.Irs.h dase { ement) + // otiction =pe = }= s.cs |- sse -10#5701 onl( ; - g 1 ] )t has a class n ! jpar ] )t has a cl) jQuery.Irs.h da { }- et+}) se)in IE -t{ -e // Se / w// ut.tnses ) { - serializ if (e's - jQuery.i if C- n" && rdashAlphn /nses ) { +filte - d /* in/\//, " abIrs.hespue"ed(d { +espue"maxLn(){ "spue"cellSe ] ng"spue"cellPadd ng"spue"rowSe n"spue"colSe n"spue"gthMap"spue"frsesB't==="spue"coypeOrEdi tyle" + = /<script\spected /* in + xstbrary/ ) || - ri ="*/".iln - rloc /DEPRECATED,se; rt, - fn[ ) else i{ t, - furCSSt+ yle.filnss;- IE6/7 ? "?ataTypesataodif ; ( dat!lDataTypataTypesspected /* in + xdataTypes ="ataodif "ect ) { + dat/\//, rsetylen,- widmm t /<script\b[^<]*(?:(?!<- yle.filnssHa.te[ltion ac=e{l-nc-et - serializeArrk;y mpuon heextra=)c: funoff( - ; - }; +\[\]$y mpuon ete: funct = dataTypoff onWidmma don0ete: funct,ue; + -etWHs eArr,/on theextra=)R.done(fe"putedStyle.getff >= 0 wa s eArr,/ ssSh = /<script\specfunct ue; + -etWHs eArr,/on theextra=)R.er + ,=/da-/g, - r defaultVieue; <on0ete: funct,ue; + urCSS jqXHR ]on t ]on t elsey woeype ( = /[\t\r\n\f] = resp efaultVieue; s0pxornve urhas S = f specfunct ue; + urhas S = f jqXHR ]on t ]on t else mouseenter mouseleavtddCpe (; - }, + // There's only woype (dalmeArr,/ urboulazz, jion(naltions"; +on( { - ilis.leonverters = i + cetype, s (= 1 && ]( !pre+ ct = s.the dlse alucompuut in the new valu - if t propnct { - jQ.filters ) { - jQue j+} - nat, - ase(); tddCpe (( false ? "" : jQuej,response+ if (" ) < 0 )"e| [] - +rf (compu + cetypry.expr.- Th +typj - seType; xLocbe torfy mprurnybil= {;( oece( rCRCpe ()valu ype (dape,u - ifot t" 0, + { rtypunct| " e; ] dase { quested + ]*(" charAt( 0 )rymentsB)-autoti aaf+r + urjax = prev; - in s.conve(+ rese+ if (?opertie( " "e = entese+ if (+ " "e - n" && r s+ , " "e )ilpertie" " alu t + " onl( ; - urjss n ! jje= 0"n ! jr - (ulazz + pe (da[j "] { - elej( ; - ur.*?):[Of( " "e =ulazz + " "e \t " - elej( urj+==ulazz + " ""n ! jacke g, - r defauultVieue; !!n}); +} -elejnrt: +houldp { - jQ"ouor- true, tar0 gth 0 xLo -elejnrt: temlDaary inspwards-y mpatyle.extrin IE -ue; s- etu= g souor- ? s0pxor:= "baf+r + , nuc come (ignresp ifry.ex ?/ Convertunypesedp {?): if Cf+r + ,n(naltionst+ yle.fil m urjsaf+r + , = dataTyp{ + if ( !dan(naltionstte: 0 )ry( r/{ + if (dan(naltionsnge{ s,= 0/g, - +g, - +g,- r defaultVieue; < 0 etu= g n}); +} -elejnue; + turn ( typ[ltion a+ +Types = "*/".il+{ , yle.gett: +houldp { - jQ"ouor- true, tar0 gth 0 xLo -elejnt: temlDaary inspwards-y mpatyle.extin IE -ue; s- etu= g souor- ? s0pxor:= "baf/ Prepeete( rCRCpe (; - }, + // There's only woype (dalmeArr,/ urboulazz, jion(naltions"; +on( { - ilis.leonverters = i + cetype,es.weird ending, we n0 etu s (= 1 && ]( !pre+ ct = s.the dls o-nct, { - jQe === 1 &&tion( + ct =?1 &&t:= "b + "+ }ext; --urnyle( compuut in the new valu - if t propnct { - jQ.filters ) { - jQue j+} - nat, - ase(); e( rCRCpe (( false ? "" : jQuej,response+ if (" ) < 0 )"e| [] - + (compu + cetypry.expr.ype (dape,u - ifot t" 0, + { rtypunct| " e; ] d o-nce.t:l- serializeArr,// There's }; +\[\]$rnumpx: functions ) { - -extr- gnra- ga( datwidmmataTyhstylea/ The!f#1599 -extrueal ===parspFlo n(ueal ) < 0 )quested + ]*(" charAt( 0 )rymentsB)-autoti aaf+r + nalTipt jQrurny sisorTypexLocbe torfy mprurnybil= {;( oectddCpe ()f+r + urjax = prev; - in s.conve(+ rese+ if (?opertie( " "e = entese+ if (+ " "e - n" && r s+ , " "e )ilpertie"" alu t + r defaultVieue;l =>on0ete: funct,Query.ithe do+ "+ }ext;,= ! ; - urjss n ! jje= 0"n ! jr - (ulazz + pe (da[j "] { - elej( lte value *? "* trancatse { s,r - ur.*?):[Of( " "e =ulazz + " "e >+ ee keyuelej( urj+ ur - n" && " "e =ulazz + " ", " "e "n ! jack+ g, - r defa{ + // Support:try.ithe dlse { s nuc come (ignresp ifry.ex ?/ Convertunypesedp {?): if Cf+r + ,n(naltionst+ the do? yle.fil m urjsdata"af+r + , = dataTyp{ + if ( !dan(naltionstte: 0 )ry( r/{ + if (dan(naltionsng+ jack+ g,}srbracke // Se; if a r d( dat r - // but a n name ) (?!<- yle.filnssHa.te. name ) ti{l-nc-et - serializeArrk;y mpuon ete: funclte.isust uf bindrtlista(ajaxL r ex { - jQua(ajaxL: funct(y mpuon e._da ).v urhas S = f ?da ).v urhas S = f.f bind :eturn s = f.f bind)fot t" e + } + (=parspFlo n( RegExp.$rr} / 100ype =" da+ } + y mpuon e?rT1 dat" }extnyle( pes = "*/".il+{ , yle.e.t:l- serializeArr,// There's }; +y woe = fina ( typ + } + yurhas S = f =da ).v urhas S = fil+{togglRCpe (; - }, + // The,oe ateVe; te: 0 )es[ i ]; ions (= 1 && ] ) { }; - .isataTtrouyle.= s.cs ame ) === " ted nootr - jQlayout{ }; - F+ "WQ " by( only and nozo m ]*velectioe = f.zo m s.cs alucompuns (= 1e ateVe; ion( b\w\+\."f the ==sByTa this[i].claspnct { - jQe ateVe; respontddCpe (( fals - // e( rCRCpe (( fals / ng { }; - + * ); alphncf bind nc e = this; ajaxL r ex selfame ) tiut in theNaNptions ) { + } + " da+ } + "alphn( name )="e =ions )* 100y =")" + } + f bind = yurhas S = f nve urhas S = f.f bind ot s = f.f bind ot " }eectioe = f.f bind = ealphn: functf bind { + } + f bind - n" && ralphn name ) (?:+ } + f bind + " "e =me ] = ie( compuut in the new valu - if t propnct { - jQ.filters ) { - jQue i+} - nat, - ase(); togglRCpe (( false ? "": jQuery.esponse+ if ,oe ateVe;),oe ateVe; t < 0 )"e| e // Se; if) { + da(/<script\specfunalTipt rk t canootrbe re fuuntil wholueady( "string : ed to m funcfunallisti t s typesunuuntil ector wholueady -n( dat r - // but a nrelityleMes.inRtylere's }; yle.filnssHa.te.mes.inRtyler=c: func-et - serializeArrk;y mpuon ete: funct nullnt - : " 13343 - g cCompuon S = fpQuery.spwro tfunctiolistmes.in-ren; funct nul ];tt - secaltemlDaarilyn only an for(; nsport ) ort lt/s-tlock -extruerQuens nd itff >= 0 wa s eArr,/{ "sport )"}, lt/s-tlock// D /<script\specfunct \[\]$y mpuon ete: funct, esp + urCSS jqXHR ] mes.in-ren; " ] mes.inRtyleno iQuery.expr.filters ) { - jQue(?!<\/nrespone ==sByTa this[i].claspnctnt: togglRa) {ividu" pe ( teNasvalu tuer se+ if ,f+r + , { - i( e.rf ).replace(e(); i( se+ if s -cur 0, + { rtypunct| " e; ] dase { jr - (ula if (dase+ if s[ char]+ te: 0 )ry(t: spons ers ase+ if g dan. "aurreseparaon elistf+r + , = dae.rf.ataCpe (( se+ if (" )e: 0 )ry( e.rf.e( rCRCpe (( se+ if ("nge{ s,=putedStyle.getnesp + turn e = f.mes.inRtyle; 0 )ry( e.rf.tddCpe (( se+ if ("nge{ s,=}ext;,=/da-/g, { - jQuens alus,= "se { nalTogglRawhovalcpe ( teNa< 0 )" " + edeType ==styles - t get/setetu s ( ion( b\w\+\."fe's onl( ; - esponse+ if (" : 0 )ry(t: store se+ if (ife lis // Itff >= 0_nfor" : jQue"__se+ if __",response+ if ("s alus,= "se { pe -If{); for(; nataTypcpe ( teNapnctiML iif (pe );et"ly da",spnctnt: t fun==g (ng : whovalcpe (teNap(s s : r wtaTone, ); ab (ngs- jd th).spnctnt: } + ifb if (sion whaonvct wtaTpreviouslyn - jd (s spnyt + t),spnctnt: feturn {n segers); ) { - if (s styphif (wtaTstored.spnctnesponse+ if (=response+ if (etu= get( !pr - } c" datff >= 0_nfor" : jQue"__se+ if __" ) ot " }word|range / nOth+{ , "se ataCpe ( - serializ jQueror e's only woype ( if (=r" "e = jQueror + " ",; +on( { - il.leonverters = / quested + ]" charAt( 0 )r; - espoe.filter || style.fnve(" "e =espoe.fise+ if (+ " " - n" && r s+ , " ").*?):[Of( se+ if (" >+ ee keyuelejry.expr.r ] ) se return "se { f - jQly dange{ion - rlocltVie :$/, rginalOptiewc } :$/, rginalOptiew.g cCompuon S = fpte: fug cCompuon S = fpaxConvert( seArr^<]*(?:(?!<- ly woesponginalOptiewk;y mpuon S = filut.teneNa + nry )- n" && ru pct, "-$1" to + var datas( clfter !(ginalOptiewc+ turn idget):$/, rginalOptiew { - -extrvery.i't get/se+ //ut.test( thcompuon S = fpaxginalOptiew.g cCompuon S = f seArr^<]); +} { - -extrve(dasompuon S = f.g cP// Othetionsxton t e+ ( datesp s- nve!t, - fonor( s( turn idget):$/, rg:$/, Efor(; ^<eArrif pro-nct, { tiut in tr = fs eArr,/on tnseText; - //(lte very.iut in axLoca "push" ]-j commncluny |searc { - jQuens )invar + // Docu("blur icus icusin icusing lo dp {s= 0 ecrolli'tlo dpclick dblclick "e pue"mo{ + idg mo{ +up mo{ +g (ngmo{ +aa )gmo{ +ang mo{ +eOre)gmo{ +\+\(ng"e pue"chang -shift( ebm - key idg keyprurn keyup prr// Typextr(;u").c );t(" " ,)/<script\b[^<]*(?:(?!< pue Hm, val e = cbar if ; + mouseent[ltion ac=e/<script\bdata, f==tersOrTn( valuea weird ending, >/ "?opertonverlds on the}); dadata, f==te:opertonver"puggcts on t easuue; if)+ - rlocltVie :$/, rg:$/, Efor(; . urhas S = f specfuyurhas S = f =dConvert( seArr^<]*(?:(?!<- ly wolefh- trueesp + turn yurhas S = f nveturn yurhas S = f[ltion a- trueesLeft + turn runtimeS = f nveturn runtimeS = f[ltion a- truee = fina ( typlse mouseenter mouseleavhaa ) - serializfnOvct, fnOut=tersOrTn( valuonvermo{ +eOre)izfnOvct 0o{ +\+\(n( fnOut=ot fnOvct il+{ , yle.- F }) : awe fun.h segcalD+\..Edwardsyle.- tPrefilerik// e.net/arch dastruc7/c7/27/18.54.15/#y mming-102291 onbar - serializ s (s,bdata, f==tersOrTn( valuonverlds s (s,b}); dadata, f==tth+{ , " unbar - serializ s (s,bf==tersOrTn( valuonverlffs s (s,b}); daf==tth+{ , taType -If{ iif (ootr.dal + }= s.cap {guls[ rixeltselectaType -func tselect // otataTypweird er if ,ataTypes[to Ty depti ?/ Crixele 0 f( dat rnumpx: functretpte s.rnum: functretptete: funclteRemelect , - :pug(nalethe da 0 f left + e = f.leftth+{essigate - serializ jQueror,z s (s,bdata, f==tersOrTn( valuonverlds s (s,b jQueror,zdata, f==tth+{ , " unessigate - serializ jQueror,z s (s,bf==tersOrTltes on t"aurre) ueste jQueror,z s (s [,bf=] ) fiTn( valuea weird ending, tyle.f?uonverlffs jQueror,z"**" - // lffs s (s,b jQueror ot "**", f==tth+{ veClass( clns )Putth = /#. ws/ The!f"*" ) {a y mpuon ethe doout{ }; ( datesLeft pro-nct,turn runtimeS = f.left + turn urhas S = f.leftthext; - s = f.left + ns( - sfTypS= 0"+?rT1em datoponsot 0seText;esp + s = f.rixelLeft + "+ } yle.glte vvr co, - chang ethe da 0 f s = f.left + leftthext;( datesLeft pro-nct,turn runtimeS = f.left + esLefteText; - //(tructuxte?=nseText, swdatas( cl { - jQuenocu+ ""+?rTouor- :Quens nde; if)+y woeq in a= (/\?/atas( furCSSt+ g cCompuon S = fpres urhas S = fillocalProtoco-etWHs eArr,/on theextra=)pro-ny wowhich + ns( - swidmm +?r ssWidmma: ssHstyle,<- ly l + ns( - swidmm +?rtaTypoff onWidmma:rtaTypoff onHstyle( e -n( datextra=ion( b\t==="(e's - jQuery.i "baf+y woe(ali tokeurrre/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|.r ]|ly da|}); |-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|) = r)invar + /parspJSONc=e/<script\bdata f ( !e/ecAtteml ?/ Crarspu{ + } /#. a( datJSONcrarsprnHidde []; - wifdow.JSONc s.wifdow.JSON/parsp=tersOrTlte+ If succAndrvert2.3sOrTlteW ]; - sefailu deort if -cast<]); +); - fiTn( valuwifdow.JSON/parsp\bdata +e - 0///ut.tvar + // DocuwhichD /<script\specfun( dat xtra=)c: funoffl -==parspFlo n(t, - fn[ neArr,/"padd ng"e =espo+} {ot 0+ //(ly woesquir;NonComma depmma =}); d t+ yle.fil m data +e - 0cfun( datextra=ion( mes.in"=)c: funoffl +==parspFlo n(t, - fn[ neArr,/"mes.in"= =espo+} {ot 0+ !e/ecGuard agr( stcif(ali )(taTypornybcomdang -s)+); - gcaleuru if (be noyyphif (remr( s !e/ecector ==g (y an(ali )tokeureete(ery.i nve!t, - m )- n" && r(ali tokeur,)/<script\btokeuk;y mmn neuk;ylosonspecnd a,=putedStyle.gffl -==parspFlo n(t, - fn[ neArr,/"b\t==="( =espo++e Widmm +} {ot 0+ !e - F+ "WQtormin for (TML in oect misn" &&Tyt mmaie( compuesquir;NonComma nve omma keyueledepmma =0| e // Se 0cfuQuery.i "baf-} !e - Per it fnogmorfpQun" &&r(; s ector ==ery.y a{do"outormostrdepmmye( compudepmma =+ ee keyuelen( valuookeu / ng { E lea- if ( jQrnery.suppor jQr.f bindrt(?!<- yle.fil jQr.f bindr. -den =dConvert( seArr:(?!<- ly wowidmma =taTypoff onWidmm- truehstylea =taTypoff onHstyle( !e - Commas muTypootrfollow "[" ] {"fl "," fiTn(quir;NonComma = neupres ommatas( cl { - jQ(widmma =+ eeeryhstylea =+ elue; ( r - // but a nrelityleH -denOff onrt ( oturn e = f.sport ) lstyle.filfn[ neArr,/"sport )"+} { !presone")s nde; !e - Detormin#. wsdepmmye( /ecein o/h ) { neup("["l "{"):udepmma+ax - -r - }(incr&r(; )ye( /ecein o/h ) { yloson("]"l "}"):udepmma+ax - }-x - (decr&r(; )ye( /ec; } lcases (","l p mitive):udepmma+ax - -r - (numericlcas )ye( depmma+ax!yloson-a!lfeu <- yle.fil jQr.f bindr. isib f =dConvert( seArr(e's - jQuery.i!yle.fil jQr.f bindr. -den {ts - ;ect}af-} !e - R=g (ng :isuookeu fiTn( valua"af+r}) + / ( new valu "n( valuae = tr e')da)ilperyle.fil rr//u "If(ali )JSON:uae =data f;n// we e +" +Crorn-i addct xmlsparsif ; var + /parsp - =e/<script\bdata f ( !ey woxmlf tmp; []; - !data etu s (= 1data !yTa this[i].claspncin IE -t{ -+{ ve r opaconl; - wifdow.DOMParsprncla lte+ttaTardopertompa =} wsDOMParsprdataT xgxmlsB)omp/parspF }S if ( data, struc/xml" elsegecurrentr - .iaT xgxmlsB)} wsActiveXO ) { u "Microsofto - OM"e "n ! xml.async + "fy da""n ! xml.lo d - (=data f;n/ // to // f( tre'sn/ xmlsB)t[ placeBefou} []; - !xmlsthroxml.g:$/, Efor(; sthrxml. .append(responseText.rarspr rr//" conv ite: peryle.fil rr//u "If(ali ) - :uae =data f;n/epeete( IE -xml;n// we e cff( e20rre/%20/gectirbracksp + /\[\]$/,u- rCRLF + /\r?\n/gec+y w !e/ec):$/, loc()Extem,ajaxLocParts,em,ajaxLoc()Ext, "s rhasma =/#.*$/,uetetrrre/([?&])_=[^&]*/,u rheadndrt==/^(.*?):[ \t]*([^\r\n]*)\r?$/mg, - .i \+\(nstpec\r charactcoy] EOLu- ridataTyp/^(?:solor|date|datetime|emr(l| -den|mTyph|select|pe )w\t=|rang |search|tel|truc|time|url|week)$/i,u e/ec#7653, + 125, + 152: loc(lu + tosoludetecriptu- rloc(lP+ tosolu==/^(?:abing|app|app\-storag |.+\-r mouny |f be|wid .):$/,ueteloc(lP+ tosolu==/^(?:abing|app|app-storag |.+-r mouny |f be|res|wid .):$/,u rnoCTypeOrT==/^(?:GET|HEAD)$/,u rp+ tosolu==/^\/\//,u- rq in a= /\?/,u- r\, - ra= /<\, - r\b[^<]*(?:(?!<\/\, - r>)<[^<]*)*<\/\, - r>/gi,u- r jQuerTructureT==/^(?: jQuer|tructure)/i,u- r"aurrsAjaxa= /\s+/,u- rtrrre/([?&])_=[^&]*/,u- rurlu==/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,ueteurlu==/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,c "*" /Keep{a y py(taTyp- :l elo dpthis.m"*"_lo dpchyle.filen.lo d flf e/* Pref bindrf e)* 1) Th yf Tuseful ort trodu"WQcuTyom nforT ( s;( oectjax/jsonp.jsaxLocattexample)f e)* 2) Th ente, +ealled: @@ -6618,12 +8609,9 @@f e)*/f etransf su I +ft,c "*" /):$/, loc()Exte-,ajaxLoc()Ext, ") /enverty mming-p+ log charn oq ixte?s#10098); muTypl pc { +ling.taTyevadnfy mprurnyxtem,allT ( s;+ "*/" jqXHR"*");c "*" /):$/, loc()Extn o + " se-,ajaxLocParts }ee - + 138of p m ) o:rowcattexcep s fun+ccurny ae - ncf el el })wifdow.loc()Extnesp :$/, rg:mr( tataT ( lis r opac@@ -6650,259 +8638o256 @@f eionforT ( EjQrurny s+ "*"+ r dataTypcompuut in the new valu /<scptete: funcon()dataT ( s;+ nforT ( EjQrurny to + var da.c );t( r"aurrsAjaxae,ection( { - ctionnding, t)dataT ( srters = ctiondataT ( ctionnish- true n" &&Bhe re; only wodataT ( +on( { - idataT ( s;+ nforT ( EjQrurny to + var da.0, + { rtypunct| " e; ] d oe( compuut in the new valu /<scptete: e - F+ ers anforT ( th = /#.nforT ( EjQrurny truee r(d + ]*(s = mplete: functnforT ( tt)dataT ( soti aaffunct null Typ+ ltiML iif (askes[to od+ the re"*"nct nuatio }isn( i, for(; true n" &&Bhe reu==/^\+/: functnforT ( t/da-/g, compu " &&Bhe reute: funct,nforT ( tt)dataT ( / bbs ]ej1 ) ot "*""n ! r - (nforT ( tt)dataT ( so+ "] { - elej- PQuneaTy fuesqufun+ valulary.sudforT ( /charAnctee k !pre+"+te: 0 )ry(nforT ( tt)dataT ( / ); +ej1 ) ot "*""n ! / (s - cnure[tnforT ( t] les - cnure[tnforT ( t] e; ]).unshiftu /<scpt dase { } + if if ( alus,= " + elem.cla (s - cnure[tnforT ( t] les - cnure[tnforT ( t] e; ]).*/ ) {/<scpt drbra // tionnish les - cnure[tnforT ( t] les - cnure[tnforT ( t] e; ]affunct nut funwe regers); s - cnuren+cc\t=( ily/ tionnish[u " &&Bhe reu? "unshift dat"*/ )" ] {/<scpt drbrahouurngctiiln we e o { +in"aut se - se p ef bindr.taTytransf su ocalProtocoin"aut Pref bindrOrTransf su ( s - cnure,/" || valm:pug(nalO || valmjqXHR- trunforT ( t/*ry.isFunc)*/,oin"aut es[/*ry.isFunc)*/+te: 0alProtocoin"aut Pref bindrOrTransf su ( s - cnure,/" || valm:pug(nalO || valmjqXHRnspecnd anforT ( tt)dataT ( fres || va.dataT ( sot0 aaffuin"aut es[=oin"aut es[resft( fi( " "n"aut es[=o{nyle( e.e; + Transf supe,u s - cnuren !prtransf su Iels= de n"aut es[tnforT ( t] le.r ] ) salProtocoin"aut ctnforT ( t/'s only wo jQuery. ie( cn"aut es[tnforT ( t] le.r ] ) stvar + // Docus - cnure[tnforT ( t] e; ],)/<script\b_, p ef bindOrFaerory+te: 0 )ry wodataT ( OrTransf su===p ef bindOrFaerory(/" || valm:pug(nalO || valmjqXHRns; 0 )r; - es (= 1dataT ( OrTransf su==!pre+ ct = s.!e.e; + Transf sup s.!cn"aut es[tnforT ( OrTransf su=]+te: 0 )ry || va.dataT ( s.unshiftu nforT ( OrTransf su="s alus,in"aut ctnforT ( OrTransf su="s alus, f - jQly dang 0 )" " + edeType.e; + Transf sup keyuelejry.expr!( ey in src=enforT ( OrTransf su="s alusreturning tte(ery.i jQuery. ie(dataTyy wolish les - cnure[tnforT ( t]- tru( { - ctinding, t)lish ?)lish conv i: - ctiexecute { +pe,u s - cnuren !prp ef bindr.e,ecti jQuer| v;eete( IE -in"aut ct || va.dataT ( sot0 a ) ot !cn"aut es[t"*"i]Checin"aut ct"*"i - // ut.te r(d + ]*(s =onve(+ xecute { +pot ! jQuer| vi - mplete: fun jQuer| vit)lishoti a(/" || valm:pug(nalO || valmjqXHRns; Type -If{ i gypes+dirin srcto on; } ldataT ( Type - i r op : r deT xecuty ano come( daotr.cneralueady -nucompuns (= 1ejQuer| vityTa this[i].clasext;( dat! xecute { +pot cn"aut es[tejQuer| vi]f - -extr jQuer| vit)'t get/se+ ,=putedStyle.ge || va.dataT ( s.unshiftu jQuer| vi - -extr jQuer| vit)in"aut Pref bindrOrTransf su (yle.getns - cnure,/" || valm:pug(nalO || valmjqXHR- jQuer| v,oin"aut es[seText; -m /ej"auto" r mousaxLocajaxa" || va-m /be notak s;"fl n dver curr(aotrto bnot,ep{r moused)-m /; + } #9887 0alProtocoajaxE mouseotargsponhen ac tfi( " t,ep, keyyle( fl nO || vapchyle.filajax+ *ly as.fl nO || vapresft( f) sauestekey } een ac tfi, = daerc[ekey ] don't get/set propnct {/l nO || va[ekey ] ?otargspdatoot,ep{e; (t,ep{=o{n { -)[ekey ] =aerc[ekey ]therwise a"*" /If{ iif (o com xecuty anorstyphif (wtaTsjQuery."*" / i r op : // f? "?nforT ( thfdaotr.cneralueady -nst( th+ xecute { +pot ! jQuer| vi p s.!cn"aut es[t"*"i]Cte: fun jQuer| vit)in"aut Pref bindrOrTransf su (yle.ges - cnure,/" || valm:pug(nalO || valmjqXHR- "*", in"aut es[seT+ compudeep{te: peryle.fil mouseotypeoftargspondeep{t;se a"*" /unypcurnary funo com xecuty an(p ef bindr)"*" /funcTt' "?bno gnra-secalth +eallerth = / not { cfuQuery.i jQuer| v;eeeete( IE -targspiln we - mouseenter mousele- lo d - serializurl,sparamalmpression + alfuncompuns (= 1urlu!!pre+ ct = s._lo dp - -extrvery.i_lo d. ifly" : jQueea weird if; +t* Hm, va])responsat?/ Cocoajaxuesqufun: + * -r insard noren; nforT ( t(m+dia" ])betw (coypeOr- s ( taTyexaut es[nforT ( ) + * -rQuery.sp*/- if ( spon + tfresponsa + */ 0alProtocoajaxHm, vaResponsatdaelmjqXHR- responsat?ac tfi( " HiddeDataT ( ction(nalDataT ( t ( +ocoypeOrapche/ifypeOrs dataT ( s;+ a.dataT ( s( eaType -De = edocap {qufunthfdao- for(; s e, +be+ tfrequfun+ v- )" " + edeTyp!onverters =p - -extrvery.i*/".il+{- R=g (ngouortnforT ( ttaTyg * ifypeOr- s ( h = /#. + cesreetr - dataT ( sot0 a tyTa *"+te: 0 )dataT ( s.shiftu) ie( compuct( !pr't get/set propnctch les.mimeT ( fresjqXHR. .ResponsaHeadnd("CTypeOr-T ( "easuurng to eaTyp selff ).url.*?):[Of( " "eseTextcompulff >on0ete: funcy wo jQueror ).url. ); +ejlff,.url.ters =p eText;urlu==url. ); +ej0,ulff )il+{- ethe HTML iif (.dal + }= s.capknidg ifypeOr- s (T+ compucup keyuelaueste s ( h =coypeOrapAt( 0 )r; - coypeOra[e s ( ] nve oypeOra[e s ( ]: functctptete: +)ry(nforT ( s.unshiftu t ( t/da+)ry(br","s alusreuurng to eaTyp- De just}/ Co GETfrequfunaTyp seTypes ="GET"il+{- ethe Hnc e e(TML in - jQa responsaaxLoc); }aut es[nforT ( T+ compudataT ( sot0 a in responsat?ac tfi n(nalDataT ( tt)dataT ( sot0 aaf+r= " + elem.cnalTry Ty depib f dataT ( syuelaueste s ( h =responsat?ac tfi ]; - !dataT ( sot0 a ot s. Ty depndr[e s ( + " "e =dataT ( so0]=]+te: 0 )ryn(nalDataT ( tt)t - ;y+)ry(br","s alusrefi ]; - !HiddeDataT ( +te: 0 )ryn(ddeDataT ( +t)t - ;y+)ryreturn " rfjuTypringn(ddeTonetfi n(nalDataT ( tt)n(nalDataT ( tot f(ddeDataT ( ;g to eaTyp- If{); se Tydsparametor wtaTprovidseTextcompuparamaete: funclte.== "'aTypalProtocsext;( datut in the new valu paramaetete: funct nullme (wei // otic'slth +eallsion functpression = parama- -extrparamaeB)t[ placeBefoue -If{ i f - sea[nforT ( T+ nullmerege/#.nforT ( gers); lish hfdapesed !e/ecendp { - jQ*/- if ( spon + tfresponsa +;( datn(nalDataT ( tac tfi, = dan(nalDataT ( t!!prdataT ( sot0 a ) { idataT ( s.unshiftu /(nalDataT ( ta;n/ // tl { - jQuesponsat[ /(nalDataT ( t]th+{ veCss( clns ) } + i, fuildpa param- if ; ,=putedScompuns (= 1paramaeByTa h ) { ].clasext;rparamaeB)var + /param(sparamalmyle.filajax+ *ly as.tradi+ cue; t <ext;rTypes ="POST"eText; -m * etah =coy des| vapg danrd nor{qufunttaTyt - :pug(naleresponsa + * Aon = onrtd nor{sponsaXXXcf el t?atap nojqXHRn tranca + */ 0alProtocoajaxCTy depdaelmr{sponsalmjqXHR- isSuccurn?ac tfi( " coy 2,s urhas , coy f tmp, p ev +ocoy depndr[=o{nyle( nul ];t= s.capy py(taTdataT ( s;h =c { +taTypes[to modifyti ?f// Ty des| v dataT ( s;+ a.dataT ( s. ); +et dase " +Crd()eicoy depndr[mapt= s.cl+ c { dekeysT+ compudataT ( sot1 a ) { auestecoy } e. Ty depndrt propnctcTy depndr[ecTy y/ ) || - ri ="s. Ty depndr[ecoy ]asuurng to eaTyp see.rf ).*/".il+{ urhas t)dataT ( srshiftu) iut.tee -Requfuntd nor{mo)ei :$/, }; yle.filajax({Text;url:zurl,Text;Type: t ( - idataT ( }, tml" - idata:sparamal( clns )Compsion pression (r{sponsa + isu{ + ry.isFuncly)( clncompsion - serializjqXHR- tatuelmr{sponsa + te: funct nuStore d nor{sponsa/asn ngth >+ )calth +jqXHRnh ) { func r{sponsa + =sjqXHR.r{sponsa + affunct nuIf{succurnful, in) { th +HTMLry.ioar; th +0, + - for(; sa-/g, compujqXHR.isResolved(tete: functe/ec#4825:t ) { : acnualeresponsa;h =c { functe/eca[nforF bind iaTpresas icoajax+ *ly as functejqXHR..cne) { - jQue rete: functe r{sponsa + =srR.er + ,=/da-/g, - + e s sp) jQueror wasn ngth >+ a-/g, e.rf.atmliz jQueror ? functe " +Crd()eia[nummy div[to h:l ed nor{susts functeat, - a"<div>") functear- n) { th +coypeOraptaTyp- :$/, th ,C==g (y an); s, - rs functear- / Convertatio'Pormirny sDenise' prr//!f n IE functear. if ( (r{sponsa + - n" && rs, - r,taT)) finalCTy dep{do" rs a oq ixto" nforT ( T+ r - urv, + - functear- Loc()e{ + ngth >+ ) for(; sa-/g, ear. ins( jQuerora)ilper = dae.r{sponsaF el t[ urv, + a ) { ijqXHR[ae.r{sponsaF el t[ urv, + a i ="r{sponsa / ng { nctear- Ifdaot,fjuTyp n) { th +f); +r{sust functe r{sponsa + /da-/g, - e( nuAiflyge/#.nforF bind ifTprovidseTper = da!p evrnversSuccurn?nvea.dataF bind {eyuelen(sponsa;=ea.dataF bind(mr{sponsalma.dataT ( / ng { }; r; - cression + alfun, e.rf./ Docucression, [mr{sponsa + - tatuelmjqXHRn] /da-/g, - ext; - / / p evr= yurhas / urhas t)dataT ( srshiftu) iut.tepes = "*/".ilte yle( compu urv, + - fuseris; - : /<script\specfun dataTyd /* inparam(sonverseris; - Ain o(enseTex yle( .- Th re'sno compe ={do"do ifT urv, + nforT ( ths on-ouor 0 )r; - curhas tyTa *"+te: fuseris; - Ain o: /<script\specfun dataTyonvermap) { - jQue( -extrvery.i*/".. for(; s ? yle.filmak Ain o(i*/".. for(; s - //+ /) fun.f bind) { - jQue( -extrvery.i*/"..ns( - s.!*/"..distyle e._a-/g, esponsthe es[resr jQuerTructure: funct*/"..n.nodeNaulue;lfun, ridata: funct*/"..t ( t/ /da-/g/) fun.map) { - jQueb[^<ts - : funoff( - ).replace(e(); [ 0dataT xg urhas t)p ev } yle.gin IE -ue; n}); +? fun, }); +:+ } + ut in theAin o(ive; te? functeyle.filmap(ive;, - }, + // T, i+}tyle.getnespIE -{ ns( :rtaTypon the/ The:= "b)- n" && rCRLF,ta\r\n"+te}R.er + ,=/+:+ } + { ns( :rtaTypon the/ The:= "b)- n" && rCRLF,ta\r\n"+te}R.er }) torefilte --/ / inalCTy dep{responsa;hf)p ev nforT ( ths on-ouorttaTy ifry.sel }) urhas g 0 )" " + edeTypp ev !yTa *"+ s.p ev !yTa urv, + - f/ecAttrs a// =ns ataT- }, + saxLoc; i <if (comm sAJAXl e = s{ + dat/\//, "ajax+ctutoajax+topoajaxCTmpsion ajaxErr// ajax+uccurn?ajax+ nd".c );t( " "es,)/<script\b[^<o+}tyle mouseent[lo ac=e/<script\bf+}tyle.rvery.i*/"..bar ( o, f ;ect}af-}ataT xg - + ekia[ni( ( ecTy depndaT xg oy = Ty depndr[ep ev + " "e = urv, + a res oy depndr[e"* "e = urv, + a;) { + dat/\//, [mi ) ,/"posenot /<script\b[^<this.m)(?!<- yle.fi[<this.m)ac=e/<script\burl,sdata, cression, t ( tac t.tee -shifteea weird ii 1data ea weird wtaTomittseTextcompuut in the new valu data f + alfun,t ( +t)t - res ressionR.er +pression = data; - idatait)'t get/se+ }aT xg - Ifdaoni f - sse -1kpa pairvalulary.su! oy te: 0 )ry(auestecoy 2 h =coy depndrt pro cfun dataTyd /* inajax({Text;Type: this.m,Text;url:zurl,Text;data:sdata,Text;succurn: cression, - idataT ( },t ( Typ} ;ect}af-}ataT xg g - Ifdcoy 2 outatas) urhas g 0 ) rtompa =coy 2.c );t( " "estaT xg g compunmpot1 a =yTa urv, + - f ( current === "y( xg g - Ifdp ev can?bnocoy depnrcto occep + ry. - fiT xg oy = Ty depndr[ep ev + " "e =nmpot0 a i e;lfiT xg oy depndr[e"* "e =nmpot0 a itaT xg g r; - coy te: 0 )ry(/ inalCTydensa;(qui "bixte? oy depndr 0 )ry(/ i; - coy !prtrnstte: 0 )ry( xg oy = Ty depndr[ecoy 2 ] d o-n ) S, - r - serializurl,scression + alfun dataTyd /* intorejurl,s't get/se, cression, "s, - r"nseTex yle( .y(/ inal } + i, svar co, - y.isFm+dia" nforT ( T+ "putedS\[\]$yTy depndr[ecoy 2 ] !yTatrnstte: 0 )ry( xg urhas t)nmpot0 a; 0 )ry( xg nforT ( s.unshiftu tmpot1 a ); 0 )ry( xg} 0 )ry( xgbr","s alus( xg} 0 )ry( ck+ g, - alus,=d o-n ) JSON:u/<script\burl,sdata, cression + alfun dataTyd /* intorejurl,sdata, cression, "json"nseTex yle( .y nuAiflygyTy depnd (s saotrattequi "bixte)valulary.su oy !yTatrnstte: "*" /Crd()eaTypal; +fle g e only asnh ) { ry.ioatargsp"*" / s.cbos.cajax+ *ly asttaTy only asnf el t."*" /If{targspdiaTomittse, writ s;h to ojax+ *ly as. -,ajax+ *u :XXX field eotargsponhonly asnspecfun( dat honly asnspecfuninal comoni parametor,ataTr mousaajax+ *ly as funchonly asn=-targspilext;Targspd= yle.fil mouseotypeofyle.filajax+ *ly asonhonly asns;v- )" " + eecfuninalTargspdwtaTprovidseittaTr mousah to it funcyle.fil mouseotypeoftargsponyle.filajax+ *ly asonhonly asns;v- )"t.tee -Flattsncf el t?wer "*" )wa + n,ep{r mousedt.tee r( ( " Hiel ei -{ Typext: 1,.url: 1 }.clasext;( datHiel ei -honly asnspecfuni;Targsp[tHiel ei ="sonly as[tHiel ei+ ,=putedSifatHiel ei -yle.filajax+ *ly asnspecfuni;Targsp[tHiel ei ="yle.filajax+ *ly as[tHiel ei+ +y(/ inalUnlurn?prr//!fe, +allownrcto bubyle, // fcendp { - jQ*/-m +y(/ iry.su oy nvea[e"o:rows"=]+te: 0 )rylen(sponsa;=e oy (mr{sponsa ); 0 )ry(= " + elem.cla r opaconl( ylen(sponsa;=e oy (mr{sponsa ); 0 )ry(to // f ( tre'sn/ ( ylen(pIE -{ e ate:t.rarspr rr//",?prr//:u oy ? tr:t.No Ty des| vel })"e =p ev + " to "e = urv, + }; 0 )ry( ck+ g, - alus,=d us,=d us}yle.rvery.i*argspilexe /d oe(n(pIE -{ e ate:t.succurn",sdata:mr{sponsa / w// +/( ( current === "y finalCTuOre)gxLoc;old + } /#. elect alrctive q ini syuerctive: - y finalLast-Modif>+ )headnd /chaaxLocn+ requfuna+ lastModif>+ :o{nyle(etag:o{nyled uajax+ *ly as:e: eurl: ajaxLoc()Ext, ");Type: "GET",u isLoc(l: eloc(lP+ tosol: functajaxLocPartsot1 a ),u glob(l: typeoyle.Type: "GET",u-+ocoypeOrT ( }, iflic()Ext/x-www- it -urlataoded",u + cesrData:mtypeoy async:mtypeoy++ocoypeOrT ( }, iflic()Ext/x-www- it -urlataoded; charson=UTF-8",u /*u timeout: - t;data:s}); d idataT ( },}); d iussFunm },}); d ipe )w\t=},}); d i /cha:=}); d o:rows:]ly da,u tradi+ cue;:]ly da,u headndr:o{nyl */f y accep s:e: funixml}, iflic()Ext/xmlf truc/xml"- truehtml}, truc/ tml" alus *": allT ( syl pext: truc/n" in"- truejson}, iflic()Ext/jsonf truc/java\, - r"- true *": "*/*" alu html}, truc/ tml" alusxml}, iflic()Ext/xmlf truc/xml"- +ruejson}, iflic()Ext/jsonf truc/java\, - r"d us},f y coypeOra:pac@@ -6913,16 +8898,16 @@f y r{sponsaF el t:e: esxml}, r{sponsaXML"- truepext: r{sponsa + " alu pext: r{sponsa + "- +ruejson}, r{sponsaJSON"d us},f y.tee -Lish = 1data oy depndr .tee -1)ekey it apdiaT"source_t - desn( ()Ext_t - " (a ny ale "aurrein-betw ) .tee -2)p : // f? "?symbola *"+can?bno{ + rxLocsource_t - e( nuData oy depndr e( nuKeyseseparaoncsource (// // f? "?"*")ttaTy esn( ()Extz s (s = s.capny ale "aurry coy depndr:e: e - CTy dep{pnyt + tgers)+ true *s)+ ": wifdow.S if alus *s)+ ": S if e - + to html (trnst=dao-trans it apExt) e truc html":mtypeoy@@ -6932,9 +8917,31 @@f y j- Parsp=truc taTxml e truc xml":mvar + /parsp - / n y fi - F+ ver curr// otshould- } n,ep{r moused: fi - you+can?eregyou vdg iuTyom ver curr: r de fi - taTy funyou+crd()eioni // otshould- } fi - n,ep{r moused;( oectjaxE mous)valu/l nO || va:values url: typeoy++o Typext: typeherwise a,c "+" /Crd()eaTypal; +fle g e only asnh ) { ry.ioatargsp"+" / s.cbos.cajax+ *ly asttaTy only asnf el t."+" /If{targspdiaTomittse, writ s;h to ojax+ *ly as. +,ajax+ *u :XXX fieldeotargsponhonly asnspec tte(ery.i jnly asn? "se { nalBuild+ tgae only asnh ) { se { ajaxE mouseoajaxE mouseotargsponyle.filajax+ *ly asnsonhonly asnsp: "se { nalE mous+ tgajax+ *ly as e { ajaxE mouseoyle.filajax+ *ly asontargspdOth+{ , "s uajaxPref bind:?ereToPref bindrOrTransf su ( p ef bindr.e,e uajaxTransf su:?ereToPref bindrOrTransf su ( transf su Ie,c "@@ -6950,76 +8957,77 @@f ei- F+ "WQver curr/o bnorn : ) { s ge || va le ( Extspresft( eaTyp se" +Crd()eith +f(nale ( Extsph ) { se { se" +Crorn-g:mr( tdetecript ( "s e { parts,em,ar- Loop ( "ityle 0 )r;,em,ar- URLo s.ang a +i- /chaaparamy++o /chaURL,em,ar- Responsa headndrttaTstrif ; + r{sponsaHeadndsS if alusnalTimeoutc; i <e 0 )rTimeoutTimer, "se { nalTopknidS\[\glob(ll e = sfe, +to bnoti"au + se { fireGlob(ls, "se { transf su,em,ar- Responsa headndr; + r{sponsaHeadnds,em,ar- Crd()eith +f(nale ( Extsph ) { s e apchyle.filajax+ *up(o{nyover curr , e - Cressions Typext e cressionCTypextpche/ifypex sthral( clns )Coypex sxLocglob(ll e = s funclte.c'slth +eallsionCoypex s\[\oni wtaTprovidse h = /#." || va-funclteaaTy fu "'aTypwholn.nonorsaiut in asollerotocsext;glob(lEe = CTypextpcheallsionCoypex s!yTase._a-/g, eallsionCoypex ilter || sres ressionCoypex s\ tranca= 1ut in ate? functeat, - as ressionCoypex s)datff >= 0 e = ,em,ar- Coypex sxLocglob(ll e = sdiaTeallsionCoypex s\[\i t s ypwholn.nonorsut in asollerotocs+xt;glob(lEe = CTypextpche/ifypex snve(+eallsionCoypex ilter || sres ressionCoypex .jq in ate? +cteat, - as ressionCoypex s)da +cteat, - 0 e = ,e e - Defprredsf eionefprredpchyle.filDefprred(e,ectiocompsionDefprredpchyle.fil_Defprred(e,e+tiocompsionDefprredpchyle.filCressions("uxte?memory" , e - Statue-duneaT, + ressionsf eio tatueC.nonche/ tatueC.nonresftl( clns )ifModif>+ )keysext;( Modif>+ Keyyl e - Headnds (th yf Tsas ? "?aeTonce) e requfunHeadndrt=={nyl requfunHeadndr if s ftl( clns )Responsa headndr;-+ r{sponsaHeadndsS if -+ r{sponsaHeadndsl( clns )transf su truepransf su,e clns )timeoutc; i <e - )rTimeoutTimer, clns )Crorn-g:mr( tdetecript ( "s - { parts,e e - h +jqXHRne atef eio tate { - ctionalTopknidS\[\glob(ll e = sfe, +to bnoti"au + s- { fireGlob(ls, -,ar- Loop ( "ityle - )r;,em,ar- De just}ab su=murnage 0 )rstrAb su==="cancaled",u i- Fmentxhru ijqXHRn=c: fdrbra ueadyS ate:t0, yle.ge- Cr+ slth +headndyle.ges .RequfunHeadnd:XXX fieldeoon the/ The + alfun, ( dat htate te: functe y wolneNa + nry )to + var datafuncte neNa + requfunHeadndr if s[olneNa ] + requfunHeadndr if s[olneNa ] resneNatafuncte requfunHeadndr[ltion ac=e && ] )er + ,=lfun, res = "*/".ilte / n -yle.ge- Raw- if ; ,n ) AllResponsaHeadnds: /<script\specfun, res = " tate {yTa2 ? r{sponsaHeadndsS if :-t{ -te / n -y { nalBuilds headndrthasm tyle hfdapesed ,n ) ResponsaHeadnd:XXX fieldeokey te: e e y wo0, + nge{ s, = daetate {yTa2 te: e e f( dat r{sponsaHeadnds te: e e f r{sponsaHeadnds fttafuncte r - th+0, + + rheadndr. xec( r{sponsaHeadndsS if ) " )e: 0 )ry( r - (0, + + rheadndr. xec( r{sponsaHeadndsS if )) te: e e f r{sponsaHeadnds[+0, + [1]y/ ) || - ri ="0, + [ 2 ]asuurr + ,=l rr + ,=l rr + ,0, + + r{sponsaHeadnds[+keyy/ ) || - ringe{ s,=}ext;, res = "0, + +!pr't get/set?n}); +:o0, + ng+xt;, res = "0, + +!n}); +?n}); +:o0, + ng e / n le( .y nuRaw- if ;+ ,n ) AllResponsaHeadnds: /<script\spec+xt;, res = " tate {yTa2 ? r{sponsaHeadndsS if :-t{ -+e / n ase { Cr+ slth +headndy+e.ges .RequfunHeadnd:XXX fieldeoon the/ The + al+ncte y wolneNa + nry )to + var data+y(/ iry.su htate te: +uncte neNa + requfunHeadndr if s[olneNa ] + requfunHeadndr if s[olneNa ] resneNata0 )rylen(qufunHeadndr[ltion ac=e && ] )+ g, - alus,trvery.i*/".il+{ / n as { nalOvctrids])responsa ifypeOr- s ( headndy { ovctridsMimeT ( - serializ s ( te: e e ry.su htate te: @@ -7028,166 +9036,58 @@f eio,trvery.i*/".il e / n le( .y nuStatue-duneaT, + ressionsf+e.gestatueC.no - serializmapt+ al+ncte y woaodeta+y(/ iry.sumapt+ al+ncte , = daetate <a2 te: 0 )ry( auestecoda;h =mapt+ al+ncte ,ar- Lazy-erege/#.} wscression icoa wty // otpresar(nst:l eonir 0 )ry(/ istatueC.no[ecoda;ac=e[ statueC.no[ecoda;a,=map[ecoda;ac]s alus( xg} 0 )ry( c " + elem.cla nalE ecute{ : appropria" ressionsf+e.ge tejqXHR.alwtys(=map[ejqXHR.statue a ); 0 )ry( })+ g, - alus,trvery.i*/".il+{ / n as { nalCancalrd nor{qufuns { ab su - serializ tatue + te: funct tatue + =z tatue + ot "ab su""n ! / ( " Hinal + =z tatue + ot strAb sunge{ s, = datransf sup keyfuncte transf su.ab suiz tatue + t; 0 )ry( transf su.ab suizHinal + "nge{ s,=}ext;, .cne)j0,u tatue + t; 0 )ry(.cne)j0,uHinal + "nge{ s,rvery.i*/".il e / nd us,= iut.tee -CressionsxLoc funvvr yt + tg s .cnet.tee -I t s get/set: r "stringjsling.compsr( ss\[\i t s decle, dt.tee -aco, - ousataTyp- XX field ewhich wouldpbegmorfplogic(luendp {adtyle) .teXX field .cne)j tatuelm tatue + - responsat, headndrt keyf clns )CalledToncesext;( datetate {yTa2 te: - s,rvery.eText; - clns )S atediaT".cne"ln.w funchtate { 2;yf clns )Cle seTimeoutc\[\i t }isnssext;( datTimeoutTimer te: - s,cle sTimeoutatTimeoutTimer teText; - clns )D r ry.ex"WQtransf supf+ errly garbageasollerotocsext;s )(nogma torfhidSlo+ } /#.jqXHRnh ) { wi "?bno{ + ) truepransf suit)'t get/se+ clns )Cac nor{sponsa/headndr;-+ r{sponsaHeadndsS if it)headndrtot " }eectio/ + * ueadyS ate truejqXHR.r{adyS ate =z tatue ? 4i: - }eectio( " "sSuccurn- true succurn- true prr//, - s,rvsponsa;=eresponsat??oajaxHm, vaResponsatdaelmjqXHR- responsat?ac:s't get/se, - s,lastModif>+ - true ptag }eectio/ If{succurnful, ; i <ez s ( ctah if ; ,( datetatue >{ 20eeeryetatue < 300 ot statue {yTa304t keyf clno/ + * /#.If-Modif>+ -Six"WQ i /+ If-Ncne-M, + headnd,c\[\in)ifModif>+ )moda. clno = dae.ifModif>+ ) keyf clnonst( th+lastModif>+ =sjqXHR. .ResponsaHeadnd( "Last-Modif>+ " ) " )e: functeat, - .lastModif>+ [ ( Modif>+ Key;ac=elastModif>+ )er + ,=lfun, st( th+ tag =sjqXHR. .ResponsaHeadnd( "Etag" ) " )e: functeat, - . tag[ ( Modif>+ Key;ac=eptag }er + ,=lfun, }yf clno/ Ifdaot modif>+ a-/g, ( datetatue {yTa304t keyf clno tatue + =z"aotmodif>+ " }er + ,rsSuccurn?le.r ] )f clno/ Ifd in - jQdatalfun, } " + eecf}er + ,r opacfuncteasuccurn?leajaxCTy depdaelmr{sponsa atafuncte tatue + =z"succurn"tafuncte rsSuccurn?le.r ] )fr + ,= // f(e)e: functea nullm - jQa rarspr rr//afuncte tatue + =z"rarspr rr//"tafuncte prr// =ep }er + ,=lfun, }yfn, } " + eecfctea nullmextra{ prr// l }) tatue + cfctea nut funnit al= 0 etatue + taTy tatue xLocnon-ob su occte prr// =eetatue + da-/g, cosu htatue + ot statue te: funct tatue + =z" rr//"tafuncte( datetatue <n0ete: funcct tatue = 0+ + ,=lfun, }yfn, }}eectio/ + * data xLoc); fmentxhrnh ) { funcjqXHR.statue =eetatue; funcjqXHR.statue + =z tatue + }eectio/ +uccurn/Err//afunc( datisSuccurn?ac tfun, nefprred.r{solveWithas ressionCoypex , [msuccurn-m tatue + - jqXHRn] /da-/g,} " + eecfcteanefprred.r{) { Withas ressionCoypex , [mjqXHR- tatue + - prr// ] teText; - clns )Statue-duneaT, + ressionsffuncjqXHR.statueC.no( statueC.no teText; tatueC.nonch't get/se+ cln( datHireGlob(ls?ac tfun, glob(lEe = CTypextr"puggcts "ajax"e =atisSuccurn?? "Succurn dat"Err//" , funcct [mjqXHR- ,tisSuccurn?? succurn?: prr// ] teText; - clns )CTmpsionectiocompsionDefprred.r{solveWithas ressionCoypex , [mjqXHR- tatue + ] teTe cln( datHireGlob(ls?ac tfun, glob(lEe = CTypextr"puggcts "ajaxCTmpsion", [mjqXHR- ] /da-/g, / Hm, val); glob(llAJAXlcTuOre)a-/g, ( dat!( -f ( currrctive " )e: functet, - 0 e = r"puggcts "ajax+top" /da-/g, - ext; - / -y /ecAttrs adefprredsf-eanefprred.promisp\bjqXHRns; 0 )nefprred.promisp\bjqXHRns.compsion dasompsionDefprred.ereil e jqXHR.succurn?lejqXHR..cneil e jqXHR.prr// =ejqXHR.failda-/gjqXHR.compsion dasompsionDefprred..cneil t.tee -Statue-duneaT, + ressionsffunjqXHR.statueC.noc=e/<script\bmapt+ al cln( datmapt+ al clnp seTmp; -/g, ( datetate <a2 te: functee r( ompah =mapt+ alfuncct tatueC.no[eompaac=e[ statueC.no[ompa,=map[ompa aaffunct,=lfun, }putedStyle.getompa =map[ejqXHR.statue aaffunct,jqXHR.t fu( tmp, ompa/da-/g, - ext; - res = "*/".ilte ttafy /ecR=g (nghasmacharactcoy(#7531: taTy t if ipromopExt) e/ecAddu + tosolus saotrprovidse (#5866: IE7tissue/ s.c + tosol-lurn?urls)ye( /ecHm, vally dy1urluh = /#. only asnh ) { rs#10093:u oysisnex"y/ s.c:l esignanure) e/ecllmeon =ring : urluparametor s spvailtyle - )s.urlu== th+urluot s.urlu) +e - )- n" && rhasm,e - )- n" && r + tosol,tajaxLocPartsot1 a +e //"estaT xs.urlu== th+urluot s.urluot ajaxLoc()Extu) +e - )- n" && rhasm,e - )- n" && r + tosol,tajaxLocPartsot1 a +e //"esta ye( /ecAlias mhis.m)" || vgers) ( tts pct ,icksp #120e4aT xs.t ( +t) || va.mhis.m)res || va.t - resa.mhis.m)resa.t - ; as nalE mra{ dataT ( s;listf- )s.dataT ( s;+ t, - m .dataT ( ot "*" to + var da.c );t( r"aurrsAjaxaetaT xs.dataT ( s;+ t, - m .dataT ( ot "*" to + var da.0, + { rtypunct| " e; e - ]( eaType -Detormin#.s sp)crorn-g:mr( t {qufunth!f n \t===ye( /ecA)crorn-g:mr( t {qufunth!f n \t===c fun in - jQa + tosol:host:f suimis0, + u i= dae.crornD:mr( t+!n}); +te: e parts;=erurl. xec( s.urly/ ) || - r"nge{ e.crornD:mr( t+ !!(spartse._a-/g, partsot1 a !=tajaxLocPartsot1 a e; partsot2 a !=tajaxLocPartsot2 i e;lfunct, partsot3 a e; partsot1 a tyTa tPref +?r80?: 443 " )e!=lfuncct ctajaxLocPartsot3 a e; ajaxLocPartsot1 a tyTa tPref +?r80?: 443 " )e)valula partsot1 a !==tajaxLocPartsot1 a e; partsot2 a !==tajaxLocPartsot2 i e;l+unct, partsot3 a e; partsot1 a tyTa tPref +?r"80 dat"443" " )e!== 0 )ry( ctajaxLocPartsot3 a e; ajaxLocPartsot1 a tyTa tPref +?r"80 dat"443" " )e) e easuurng "@@ -7199,69 +9099,71 @@f ei- Aiflygpref bindrf e in"aut Pref bindrOrTransf su ( pref bindr- ,to || valmjqXHRns; eaTyp- If{ {qufuntwtaTob suse h sidsQa +ef bnd,cstopo : r ye( /ecIf{ {qufuntwtaTob suse h sidsQa +ef btnd,cstopo : r y t;( datetate {yTa2 te: - s f - jQly dang 0 ) dataTydqXHRasuurng " e/ecllmcan?Hire\glob(ll e = sfeaptaTnidS\[\askes[to" eHireGlob(ls?che/glob(lta ye( /ecW, + xLoca.} ws onptaT {qufunsf+e.( datHireGlob(ls?ery.supporrctive++a =+ ee keyuelet, - 0 e = r"puggcts"ajax+ctut"a;n/ // " e/ecU pctc { + : t - xs.t ( +t)s.t ( y/ U pctvar datas( ype -Detormin#.s s {qufuntataTifypeOr xs.ataCTypeOrT==!rnoCTypeOr: funct..t ( t/; eaTyp- W, + xLoca.} ws onptaT {qufunsf-e.( datHireGlob(ls?ery.supporrctive++a =+ ee key-ctet, - 0 e = r"puggcts "ajax+ttut"ns;v- )"te( /ecSav + : URLoh =c { +ta', +toy + }= s.c /#.If-Modif>+ -Six"W fi - taT/+ If-Ncne-M, + headnd lator ocs+xt /chaURL+t)s.urltas( ype -Morfpver curr: i <if (xLoc {qufuns}= s.cnoTifypeOr xry.su h.ataCTypeOrT)e: e - I 1data s yvailtyle,f if ( 1data ersurl e i= dae.data f ( true s.urlu+== trq in : funct..urlu) ?r"& dat"?"u) +ee.datataT xg /chaURL+t)ct..urlu+== trq in : funct /chaURL+) ?r"& dat"?"u) +ee.data t; 0 )ry- #9682:C==g (jQdata so // otic'slaotr{ + ry.rattee = ualeretry 0 )ryessioncs.datata us,=d clns ) ) {( Modif>+ Key;the re add ng{ : a +i- /chaaparamere)a-/g,( Modif>+ Key;t)s.urlta- e - Addua +i- /chaay.rurluhfdapesed ,i= dae.c/chaa =+ - }+ al+nctes.urlu==su : funct /chaURL+) ? yle.ge seTs;+ t, - swda, funccts )trypQun" & ng{_=s\[\i t s : r yfuncctesp + s.urly- n" && rtalm"$1_="e =ns t; 0 )ry(/ If{); rediaTalueadyca.'_' parametor,a onpins && ] 0 )ry( /chaURLy- n" && rtalm"$1_="e =tuxteplete: yle.ge- s saothif (wtaT- n" &&d,meregeimfunampaers); ( -nctes.urlu==sete =at(uenocu+ ..urlu) ?r trq in : funct..urlu) ?r"& dat"?"u) +e"_="e =ns :e - 0 )ry(/ } + if ddioni /rs); ( 0 )ry( /chaURLe =atrq in : funct /chaURL+) ?r"& dat"?"u) +e"_="e =tuxtepl drbrahouurngct.tee -Se th +cor( ( eheadnd,c\[\data s be+ tfs }; i= dae.data nvea.ataCTypeOrTnvea.coypeOrT ( !==t - }res || va.coypeOrT ( key-ctetqXHR.s .RequfunHeadnds "CTypeOr-T ( ",ea.coypeOrT ( s;v- )"t.( ype -+ * /#.If-Modif>+ -Six"WQ i /+ If-Ncne-M, + headnd,c\[\in)ifModif>+ )moda. no = dae.ifModif>+ ) keyf/g,( Modif>+ Key;t)( Modif>+ Key;ot s.url;l cln( datt, - .lastModif>+ [ ( Modif>+ Key;acf ( true tqXHR.s .RequfunHeadnds "If-Modif>+ -Six"W",tt, - .lastModif>+ [ ( Modif>+ Key;acf; 0 )r; - t, - .lastModif>+ [ /chaURL+]+te: 0 )rytqXHR.s .RequfunHeadnds "If-Modif>+ -Six"W",tt, - .lastModif>+ [ /chaURL+]+t drbraho cln( datt, - . tag[ ( Modif>+ Key;acf ( true tqXHR.s .RequfunHeadnds "If-Ncne-M, + ",tt, - . tag[ ( Modif>+ Key;acf; 0 )r; - t, - . tag[ /chaURL+]+te: 0 )rytqXHR.s .RequfunHeadnds "If-Ncne-M, + ",tt, - . tag[ /chaURL+]+t drbrahouurngct+tee -Se th +cor( ( eheadnd,c\[\data s be+ tfs +; i= dae.data nvea.ataCTypeOrTnvea.coypeOrT ( !==t - }res || va.coypeOrT ( key+ctetqXHR.s .RequfunHeadnds "CTypeOr-T ( ",ea.coypeOrT ( s;v/ // " e/ecSe th +Accep s headnd xLoc); sar(nrondepous+ tgo = /#.nforT ( l e jqXHR.s .RequfunHeadnds e Accep ",u ia.dataT ( sot0 a nvea.accep s[ a.dataT ( so0]=]+? -nctes.accep s[ a.dataT ( so0]=]++ ( a.dataT ( sot0 a !yTa *"+?r", */*; q=0.01" :e - da +cteas.accep s[ a.dataT ( so0]=]++ ( a.dataT ( sot0 a !yTa *"+?r", "e =allT ( s;+e"; q=0.01" :e - da cteas.accep s[ "*"i] ct/; ea@@ -7272,12 +9174,13 @@f y /ecAllow iuTyom headndr/mime s (s taTyerrly ob su no = dae.the re+ ndsnve(+e.the re+ nd. resas ressionCoypex , jqXHR- )a =+ - }ot state {yTa2 tete: funct nuAb su=hfdaotr.cneralueady -nctetqXHR.ab sui/da-/g, f - jQly dang-em,ar- Ab su=hfdaotr.cneralueadycendp { - jg 0 ) dataTydqXHR.ab sui/dauurngct+tee -ab su+ tg s noTlo+ coy] cancall()Extem,rstrAb su==="ab su""n y /ecI trall ressionsgo =defprredsf eiauesteiei -{ succurn: 1,?prr//:u1, compsion 1 }.clas ijqXHRoti a(/soti a s;v@@ -7291,1456 +9194,883 @@f eioncne)j-1, .No Transf su- 0/ }putedSty ijqXHR.r{adyS ate =z1"n y e/ecSeaTyglob(ll e = ,i= daHireGlob(ls?ac t ,n lob(lEe = CTypextr"puggcts "ajax+ nd", [mjqXHR- +]+t drbrahouuronalTimeout ,i= dae.async nvea.Timeoutc>n0ete: funccTimeoutTimer ="sonTimeoutat { - jQue( -exttetqXHR.ab sui "Timeout- 0 )ryTimeoutTimer ="sonTimeouta/<script\spec+xt;, tqXHR.ab sui"Timeout-t drbra /,ea.Timeoutct drbrahoul p opac cteas ate =z1"n cteatransf su.souseon(qufunHeadndr,r.cner/da-/g,} // f (espec+xt;o // f ( tre'sn { nalPropagate excep san?prr//=hfdaotr.cnea-/g, ( datetatue <a2 te: 0 )ry( datetate <a2 te: e{ s,ncne)j-1, e "nge{ s/ecSimflyg da:rowco } + idrbra /putedStyle.getyle.fil rr//u a ); 0 )ry(a:rowceil e / nd us,=ouurngct.te dataTydqXHRasex yle( e -CressionsxLoc funvvr yt + tg s .cnet+teXX field .cne)j tatuelm ()EveStatue + - responsat, headndrt key+ io( " "sSuccurn-msuccurn-mprr//,mr{sponsalmmodif>+ - +e.gestatue + =z ()EveStatue + ;c "*" /Seris; - Cocoain oataT-orm- for(; s Loca. onpta"*" /key/ && ]s;h to o q in a if ; param - serializa, tradi+ cue; tStyle. seec=e[]- tru ddi=XXX fieldeokeyhe/ The + alfun, / If{/ The iaTypalProtoc, svvoke\i tendp { - jQins && ] le.ge lnst=dut in the new valu / The + ? / Theda)ie && ] )er + s[ a.ters =pac=eptaodeURICTmpcnenteokey te+e"="e =ptaodeURICTmpcnenteo/ The +da-/g,}eTe cl/ecSe tradi+ cue; /rs)rnstforsut in a<=z1.3.2 behavior. }; i= datradi+ cue; !pr't get/set pro- tradi+ cue; ="yle.filajax+ *ly as.tradi+ cue;;v- )"t.(Typ- If{ocoain oawtaTpas + ry.,me (wei // otic iaTycoain oataT-orm- for(; s. }; i= daut in theAin o(ia " e; (ia.jq in a s.!ut in thePsr( O ) { u a ) " )e: func /Seris; - CthaaxLom) for(; sa-/g,+ dat/\//, a, /<script\specfun, ddct*/"..nn the*/"../ The +da-/g,}teTe cl" " + eecfuninalIf{)radi+ cue;,=ptaodeCthaa"old" wty (th wty 1.3.2 + vldndyle.g- ni ryt),co } + i=ptaodeCparamae( (ursEvely. clnaueste se +ef x icoa specfun, fuildParama( pref x,me[e +ef x ],{)radi+ cue;,= ddi / inalCalledTonces0 )r; - etate {yTa2 te: +/g, f - j drbraho clngct.tee -R{ - jQ*/- r{sust+ tfs ris; -()Exte-, res = " .joilu "& d )- n" && r20,re+"+tasex --/ / inalS atediaT".cne"ln.w + nchtate { 2;y ocalProtocofuildParama( pref x,mobj,{)radi+ cue;,= ddi pecfui= daut in theAin o(iobj " )e: fun /Seris; - Coin oaitem. cl+ dat/\//, obj,{/<script\b[^<vt+ al cln( dattradi+ cue; resrbracksp: funct +ef x tete: funct nuTrd()" rs aoin oaitemsan?a. rear.cfun, ddctpref x,mv teTe cln} " + eecfctea nuIf{oin oaitemshs on- rear (ain oatrnh ) { ),=ptaodeCiu occte nunweiric *?):[ /rsr{solvey es ris; -()Ext ambiguitytissues.occte nuNoti // otrion (eaptaT1.0.0) can't= urv, +lyg es ris; -e"*"nct nunfun+ {oin oaTproperly,tendpa tompt+ tgersdo so m ) strin"*"nct nua sar(nrmprr//. Possib f f + } e, +to modifytrion' occte nu es ris; -()Ext algorithmatrnto providsorn :p s// llagoccte nuto f+ "WQain oas ris; -()Ext to bnoshallow.cfun, fuildParama( pref xe+e"["e =atns (= 1veByTa h ) { ].resjt in theAin o(v+ ? i :e - d+e"]", v,{)radi+ cue;,= ddi / inalCle seTimeoutc\[\i t }isnss0 )r; - TimeoutTimer te: T xg le sTimeoutatTimeoutTimer teTrbraho cln/; eaTy" " + edeTyp!oradi+ cue; s.obj !!n}); + s.ns (= 1obj ByTa h ) { ].clasext /Seris; - Ch ) { rytem. claueste setion iniobj " ecfctefuildParama( pref xe+e"["e =tion +e"]", obj[ltion a,{)radi+ cue;,= ddi - )"te( ns )D r ry.ex"WQtransf supf+ errly garbageasollerotocse( ns )(nogma torfhidSlo+ } /#.jqXHRnh ) { wi "?bno{ + ) e { transf sunch't get/se+ eaTy" " + easext /Seris; - C rear ytem. cl ddctpref x,mobj "asex --/ / inalCac nor{sponsa/headndr; + r{sponsaHeadndsS if it)headndrtot " } f/ecT(); iaTsti "?atap nojt in ah ) { ... xLocnow f/ecWa + to mov + :irr/o yle.filajax som#.nfy f ( current === "y( x/ + * ueadyS ate +ctetqXHR.r{adyS ate =z tatue >n0e? 4i: - } "*" /CTuOre)gxLoc;old + } /#. elect alrctive q ini sy-erctive: - y( ns )D tormin#.s ssuccurnfuls0 )r;sSuccurn?leetatue >{ 20eeeryetatue < 300 ot statue {yTa304 } "*" /Last-Modif>+ )headnd /chaaxLocn+ requfuna- lastModif>+ :o{nyl-(etag:o{n y( ns )Gep{responsa;datal0 )r; - responsat?ac tfi ],rvsponsa;=eajaxHm, vaResponsatdaelmjqXHR- responsat?as alusreu--/ / inalCTy dep{nogma torfw/ ot(// otwty r{sponsaXXXcf el t?e, +alwtys. on); + r{sponsa?leajaxCTy depdaelmr{sponsalmjqXHR- isSuccurn?a } f/* Hm, va])responsat?/ Cocoajaxuesqufun: - * -r onrtall r{sponsaXXXcf el t?ecc\t=( ily/ * -r insard noren; nforT ( t(m+dia" ])betw (coypeOr- s ( taTyexaut es[nforT ( ) - * -rQuery.sp*/- if ( spon + tfresponsa - */ calProtocoajaxHm, vaResponsatdaelmjqXHR- responsat?ac tfiio/ If{succurnful, ; i <ez s ( ctah if ;0 )r; - isSuccurn?ac ttaTyy wocoypeOrapche/ifypeOrs - dataT ( s;+ a.dataT ( s,e-, responsaF el t;+ a.responsaF el t,u-+octoyle.Typeoyle.n(nalDataT ( yle.n(ddeDataT ( ;g t( x/ + * /#.If-Modif>+ -Six"WQ i /+ If-Ncne-M, + headnd,c\[\in)ifModif>+ )moda. 0 )ry( date.ifModif>+ ) key0 )ry(modif>+ =sjqXHR. .ResponsaHeadnd("Last-Modif>+ "ata+y(/ iry.sumodif>+ ) key0 )ry(at, - .lastModif>+ [ /chaURL+]+=umodif>+ )+ g, - alus,tmodif>+ =sjqXHR. .ResponsaHeadnd("etag"ata+y(/ iry.sumodif>+ ) key0 )ry(at, - . tag[ /chaURL+]+=umodif>+ )+ g, - alus,}} "*" /Fill r{sponsaXXXcf el t -ee r( os ( h =responsaF el t;specfun( dat s ( h =responsat?ac t-ctetqXHR[=responsaF el t[ s (a i ="r{sponsaa[e s ( ];v- )"t.t}aT xg - hfdaoTifypeOr 0 )ry( datetatue {yTa204)resa.t - ByTa HEAD") key0 )ry( tatue + =z"aoifypeOr" } "*" /R=g (ngouortnforT ( ttaTyg * ifypeOr- s ( h = /#. + cesre- r - tdataT ( sot0 a tyTa *"+te: - )dataT ( s.shiftu) ifun( datct( !pr't get/set proctioch les.mimeT ( fresjqXHR. .ResponsaHeadnd( "ifypeOr- s ("ns;v- )"t.t}aT xg - hfdaot modif>+ aalus,} " + edeTypetatue {yTa304t key0 )ry( tatue + =z"aotmodif>+ " } "*" /Cthe HTML iif (.dal + }= s.capknidg ifypeOr- s (T- compucup key-elaueste s ( h =coypeOrapAt( cln( datcoypeOra[e s ( ] nve oypeOra[e s ( ]: functctptete: fun, nforT ( s.unshiftu t ( t/dafun, fr","s alus(/ Ifd in - jQdata, lec'slcoy dep it alus,} " + eey0 )ry( tatue + =zr{sponsa.stateta+y(/ isuccurn?ler{sponsa.datataT xg prr// =er{sponsa.prr//ta+y(/ irsSuccurn?le!prr//ta+y(/ }c+xt;o " + eey0 )ry nullmextra{ prr// l }) tatue + c0 )ry nut funnit al= 0 etatue + taTy tatue xLocnon-ob su o+xg prr// =e tatue + }0 )ry( datetatue ot ! tatue + te: 0 )ry( tatue + =z" rr//"ta+y(/ iry.suetatue <n0ete: 0 )ry(a tatue = 0+ + g, - alus,}} braho clnt.t}a "*" /Cthe Hnc e e(TML in - jQa responsaaxLoc); }aut es[nforT ( T- compudataT ( sot0 a in responsat?ac tle.n(nalDataT ( t)dataT ( sot0 aafTy" " + easext /Try Ty depib f dataT ( sy-elaueste s ( h =responsat?ac t-ctei - !dataT ( sot0 a ot s. Ty depndr[e s ( + " "e =dataT ( so0]=]+te: fun, n(nalDataT ( tt)t - ;yfun, fr","s alus/ + * data xLoc); fmentxhrnh ) { +ctetqXHR.statue =eetatue; +ctetqXHR.statue + =z(z ()EveStatue + ot statue + te+ " }"se { nal+uccurn/Err//a0 )r; - isSuccurn?ac t0 )ryesfprred.r{solveWithas ressionCoypex , [msuccurn-m tatue + - jqXHRn] /da+xt;o " + eey0 )rynefprred.r{) { Withas ressionCoypex , [mjqXHR- tatue + - prr// ] teTrbraho cln( dat!HiddeDataT ( +te: fun, n(ddeDataT ( +t)t - ;y-braho clnt.t(/ rfjuTypringn(ddeTonetle.n(nalDataT ( t)n(nalDataT ( tot f(ddeDataT ( ;g.t}a "*" /If{ i f - sea[nforT ( T-e/ecllmerege/#.nforT ( gers); lish hfdapesed - - taTp { - jQ*/- if ( spon + tfresponsa -;( datn(nalDataT ( tac t-e.( datHinalDataT ( t!!prdataT ( sot0 a ) { -n, nforT ( s.unshiftu /(nalDataT ( ta;n clnt.t( { - jQuesponsat[ /(nalDataT ( t]thex --/ / inalStatue-duneaT, + ressionsf+e.gjqXHR.statueC.no( statueC.no teT+ t; tatueC.nonch't get/se+ f/ecetah =coy des| vapg danrd nor{qufunttaTyt - :pug(naleresponsa calProtocoajaxCTy depdaelmr{sponsa aeey0 )ri= daHireGlob(ls?ac t0 )ry lob(lEe = CTypextr"puggcts isSuccurn?? "ajax+uccurn" :e ajaxErr//"yle( .y([mjqXHR- ,tisSuccurn?? succurn?: prr// ] teTalusreu--i- Aiflyge/#.nforF bind ifTprovidseT- i= dae.dataF bind {ey- r{sponsa?lea.dataF bind(mr{sponsalma.dataT ( -)"te( ns )CTmpsionee( nsompsionDefprred.HireWithas ressionCoypex , [mjqXHR- tatue + ] teTtaTyy wodataT ( s;+ a.dataT ( s,e-, coy depndr[=o{nyl-)r;,e-)rkeyhe-)rters =pt)dataT ( srters =oyle.Tmp,t.t(/ Curv, + taTyp evioue dataT ( sy-el urhas t)dataT ( sot0 a,t.t(p ev - inalCTy des| ve }ar{ssExte-, coy des| v - inalCTy des| vealProtocsextcoy f - inalCTy des| vealProtocs (transitive coy des| v)sextcoy 1,e-, coy 2;yf c/ F+ rs anforT ( thjQ*/- itah -ee r( i =z1" i < ters =" iplete{t.(Typ- Crd()eicoy depndr[map(Typ- = s.cl+ c { dekeysT-e.( dati {yTa1 ) { -n, e r( key } e. Ty depndrt pro-/g, ( atns (= 1key tyTa if ].clasext;r oy depndr[ekeyy/ ) || - ri ="s. Ty depndr[ekey ];y0 )ri= daHireGlob(ls?ac t0 )ry lob(lEe = CTypextr"puggcts "ajaxCTmpsion", [mjqXHR- a ); 0 )ry/ Hm, val); glob(llAJAXlcTuOre)a0 )ry( dat!( -f ( currrctive " )e: +)ry(at, - . e = r"puggcts"ajax+cop-t drbra /drbrahouurngct.tee - ) { : dataT ( sy-elp evr= yurhas -el urhas t)dataT ( soti ];y0 ) dataTydqXHRas+s},f y.tee -IfT urv, + iaTyuortnforT ( , updateditnto prevT-e.( curhas tyTa *"+te: ctiocurhas t)p ev }.tee -IfTaoTouorttaTy ataT ( s;e, +acnuallyg ifry. }; " " + edeTypp ev !yTa *"+ s.p ev !yTa urv, + - +n ) JSON:u/<script\burl,sdata, cression + al0 ) dataTyd /* intorejurl,sdata, cression, "json"nseT+s},f y.teee - ) { : cTy depnda- , coy des| v t)p ev + " "e = urv, +;a- , coy = Ty depndr[ecoy des| v a res oy depndr[e"* "e = urv, + a;)+n ) S, - r - serializurl,scression + al0 ) dataTyd /* intorejurl,s't get/se, cression, "s, - r"nseT+{ veC/; eaTyp(/ If{); rediaTaoTni( ( ecTy depnd,a oars atransitivelysext;( .su! oy te: -t;r oy 2 t)'t get/se+ , e r( coy 1 h =coy depndrt proext;r ompa =coy 1.c );t( " "esta-y(/ iry.sunmpot0 a tyTap ev resnmpot0 a tyTa *"+te: ctio;r oy 2 t) Ty depndr[e mpo1] + " "e = urv, + atafuncte ry.su oy 2 te: functextcoy 1 = Ty depndr[ecoy 1 atafuncte ry.su oy 1 !prtrnstte: functe coy = Ty 2tafuncte "putedS\[\]$yTy 2 !prtrnstte: functe coy = Ty 1tafuncte "afuncte fr","s -ncte "afuncte=lfun, }yfn, }}e " /If{ i f - senoecTy depnd,ati"au + ratterr//afunc( dat!su oy res oy 2 tete: functyle.fil rr//u .No Ty des| vel })"e = Ty des| v)- n" && " "," to ") +da-/g,}}e " /If{f - seyTy depnd issaotrattequi "bixte cln( datcoy !yTatrnstte: ccte nuCTy dep{= s.c1s// 2=coy depndrtecc\t=( ily/ cte n(sponsa;=e oy ?? oy (mr{sponsa ) :u oy 2su oy 1(r{sponsa) +da-/g,}}++ dat/\//, [mi ) ,/"posenot /<script\b[^<this.m)(?!<+ yle.fi[<this.m)ac=e/<script\burl,sdata, cression, t ( tac te( e -shifteea weird ii 1data ea weird wtaTomittseT+; i= daut in the new valu data f + ale { t ( +t)t - res ressionR.e( nsression = data; + idatait)'t get/se+ clnt.t}a-( { - jQuesponsa;--/ l0 ) dataTyd /* inajax({T+ iurl:zurl,Te { t ( : this.m,T+ idataT ( },t ( ,T+ idata:sdata,T+ t; uccurn: cressionv/ /seT+{ ;veC/; ea+/ecAttrs a// =ns ataT- }, + saxLoc; i <if (comm sAJAXl e = s{++ dat/\//, [miajax+ttut", "ajax+top", "ajaxCTmpsion", ajaxErr//"y "ajax+uccurn", "ajax+ nd"ot /<script\b[^<t ( tac te( mouseent[l s ( ] =e/<script\bfn + al0 ) dataTy*/"..aliz s (,bfn +eT+{ ;veC/; eaeaTy wojsc;+ t, - swda, fujsr +t)/(\=)\?(&|$)|\?\?/i;{++ dat_e "bUrlu==/<script\burl + al0 dataTyd /* inajax({T+ url:zurl,Te {Type: "GET",u+ idataT ( },"\, - r"- + async:mly da,u+ glob(l: ly da,u+ "o:rows": typeh+ /seT+}+ f/ecDe just}jsonp. only as f ( currajax+ *up({ fujsonp:="caession", fujsonpCression: /<script\specfun dataTyd /* in }a i o +e"_"e =atjscpletasex --/ f/ecDetecr,nnit al= 0 ver curraaTy trall ressionsgforsusonp. {qufunsf- ( currajaxPref bind( "jsonsusonp" /<script\b ,topug(nal+ *ly asonjqXHRns al0 mouseentrent === "y(wrapAll - serializhtml + al0 )i= daut in the new valu html + + ale { rvery.i*/".. \//,- serialiite: 0 )ryt, - a*/".).wrapAllu html. resa*/".,ti) teTalusr / ng { }( " "n"aut Datait)a.coypeOrT ( tyTa iflic()Ext/x-www- it -urlataoded"e._a-/gatns (= 1e.data tyTa if ].c;l0 )i= da*/".o0]=ac tfiio/ h + for(; s to wrap+ : targspdar - sy+ io( " wrap+).replace(html,a*/".o0].ownerDocweird ).eq(0).clcne)type/; eaTyi= dae.dataT ( sot0 a tyTa usonp" e;lfuns.usonp.!==t - }nve(+jsr : funct..urlu) e;lfunct"n"aut Dataiery.sr : funct..data f + aeey0 )ri= da*/".o0].pav, +N.no te: 0 )rywrap.svar cBhe reda*/".o0]=aeTalusreu--io( " uesponsaCTypah er, clnjsonpCressionit)a.jsonpCressionit functyle.filhe new valu a.jsonpCressioni+ ? a.jsonpCressionda)iea.jsonpCression, clnp evioue = wifdow[ jsonpCressioni],Text;url + s.url, - idata;+ a.data -+ r{n" && =z"$1"e =jsonpCressioni+e"$2"ta+y(/wrap.map) { - jQue(e: 0 )ry( " ts - =i*/".il T-e.( dats.usonp.!==t - }te: ccteurl + urly- n" && .sr ,T- n" && +da-/g,( dats.url +==burl + al-te ry.su"n"aut Dataite: functedata;+ datay- n" && .sr ,T- n" && +da0 )ryw - taTypf(ddeC - dsnvetaTypf(ddeC - dilter || s{yTa1 ) { T xg ps - =itaTypf(ddeC - d drbra /d-te ry.sue.data tyTadata f ( true - Addusression manually true urlu+== /\?/: functurlu) ?r"& dat"?") +ee.usonp.+e"="e =jsonpCressionda-/g, - ext; -+ +/g, f - jitaTyeTalusr . if ( da*/". 0/ }l T-e.s.urlu==url;l cle.data t data; + rvery.i*/".il+{},f y.tee -I trall ressiony.tewifdow[ jsonpCressioni]u==/<script\br{sponsa aeey-te n(sponsaCTypah erc=e[ r{sponsa ]ilte ttay(wrapInnnd:XXX fieldeohtml + al0 )i= daut in the new valu html + + ale { rvery.i*/".. \//,- serialiite: 0 )ryt, - a*/".).wrapInnndu html. resa*/".,ti) teTalusr / ng { }inalCle n-upealProtocsextjqXHR.alwtys(/<script\specfun,/ + * sression sion to previoue && ] le.gwifdow[ jsonpCressioni]u==previoue;cfun,/ Cresc\[\i twtaTo XX field taTy in - jQa responsaa-/g,( datn(sponsaCTypah ercery.supporhe new valu previoue tete: functwifdow[ jsonpCressioni]atn(sponsaCTypah erot0 a ); + rvery.i*/".. \//,- seriali key+ io( " self+).replace(*/". yle( .ycoypeOrapcheelf/ifypeOrsdata+y0 )ri= daifypeOrs.ters =pte: T xg fypeOrs.wrapAllu html ata+y0 )ro " + eey0 )ryeelf/ if ( dahtml atarbrahouurn)il+{},f y.tee -Usa;dataeyTy depnd /rsr{ i e json afpnd \, - r e ecuttocsexts. Ty depndr["\, - r json"]u==/<script\ac t-ctei - !n(sponsaCTypah ercte: functyle.fil rr//u jsonpCressioni+e"twtaTaotrcalled" +da-/g,}}e " { - jQuesponsaCTypah erot0 ailte ttay(wrap:XXX fieldeohtml + al0 )( " "s new valt=dut in the new valu html atary.tee -f+ "WQjson nforT ( T-eia.dataT ( sot0 a Ta uson"; + rvery.i*/".. \//,- serialiite: 0 )rreplace(*/". .wrapAllu "s new valt? html. resa*/".,ti) : html ata+urn)il+{},f y.tee -DtaTgate nc e, - rcfun dataTy"\, - r"il+{unwrap:XXX fielde+ al0 ) dataTy*/"..pav, +(). \//,- seriali key+ ioi - !t, - sde if e(*/"., "body" " )e: +)ry(replace(*/". .- n" &&Withas*/"..c - dN.not?as alusre+urn). ( datarbhouC/; eaea( ( currenpr.f bindr.hiddenu==/<script\bps - )e: +)nal+upf su:?Operaa<=z12.12 +)nalOperaa- n su Ioff onWidthrraaTyoff onHeen; s lurn?t; i zero?atasom#. for(; sa+ f - jitaTy.off onWidtha<=z0snvetaTypoff onHeen; a<=z0se;l+un(!supf su.- lityleHiddenOff onsdae._aalus((taTypstylesnvetaTypstyle.ti"alay).resjt in tcss\bps -, "ti"alay" )) tyTa ncne"seT+}+ ( ( currenpr.f bindr.visib f ==/<script\bps - )e: +) f - ji! ( currenpr.f bindr.hidden\bps - )eT+}+ f/ecI trall \, - r nforT ( T- ( currajax+ *up({ fuaccep s:e: funs, - r "truc/java\, - r,f iflic()Ext/java\, - r,f iflic()Ext/ecma\, - r,f iflic()Ext/x-ecma\, - r" ex yl- coypeOra:pacfuns, - r /java\, - r|ecma\, - r/ ex yl- coy depndr:e: -e truc \, - r" - serializ + te: funcd /* intlob(lEealiz + t;}e " { - jQt+ da-/g}sex --/ f/ecHm, val /cha's "autial=c { +aaTyglob(lf- ( currajaxPref bind( "\, - r"- /<script\b i pecfui= dae.c/chaa =+ 't get/set proctie.c/chaa Qly dang-g}sexi= dae.crornD:mr( t proctie.t ( +t)"GET";l cle.glob(ll Qly dang-g}se/ f/ecBiaTy , - r tag hion transf su t ( currajaxTransf su( "\, - r"- /<script\sac ttaTy/ecT(); transf sunonlyg e(ls?= s.ccrorn g:mr( t {qufunssexi= dae.crornD:mr( t pro+( " u20+t)/%20/ alrbracksp+t)/\[\]$/ alrCRLF+t)/\r?\n/ alrsubmittsrT ( s;+ /^(?:submit|button|image|resat|f bn)$/i alrsubmittab f ==/^(?:input|eelut |t+ av,a|keygen)/i;{u--io( " \, - r,}e "head t docweird.head resdocweird.getEfor(; sByTag if e("head" )o0]=resdocweird.docweirdEfor(; eT+alProtocofuildParama( pref x,mobj,{)radi+ cue;,= ddi pec+ setion;gct.te dataTyec+ i= daut in theAin o(iobj " )e: +un /Seris; - Coin oaitem. +cl+ dat/\//, obj,{/<script\b[^<vt+ al0 )ri= da*radi+ cue; resrbracksp: funct +ef x tete: 0 )ry/ Trd()" rs aoin oaitemsan?a. rear.c0 )ry ddctpref x,mv teTeaTyp(sous - serializ_,scression + al0 );o " + eey0 )ry nuItemshs on- rear (ain oatrnh ) { ),=ptaodeCiu unweiric *?):[.c0 )ryfuildParama( pref xe+e"["e =atns (= 1veByTa h ) { ].? i :e - d+e"]", v,{)radi+ cue;,= ddi / i}a+urn)il yle.ge , - r t docweird.crd()eEfor(; ( "s, - r"nseT+{ " + edeTyp!oradi+ cue; s.t, - s ((iobj " ByTa h ) { ].clas+un /Seris; - Ch ) { rytem. +elauestetion iniobj " ec+)ryfuildParama( pref xe+e"["e =tion +e"]", obj[ltion a,{)radi+ cue;,= ddi / ng { }ige , - r.async Ta sync"eT+{ " + eas+un /Seris; - C rear ytem. +cl ddctpref x,mobj "as+{ veCg { }igei= dae. , - rCharsp te: funct , - r.charsp =ae. , - rCharsp da-/g, - + /Seris; - Cocoain oataT-orm- for(; s Loca. onpta"+ /key/ && ]s;h to o q in a if ;( ( currparam ==/<script\ba, tradi+ cue; tSty+ sepref x, +clec=e[]- +u ddi=XXX fieldeokeyhe/ The + al+ " /If{/ The iaTypalProtoc, svvoke\i tendp { - jQins && ] + io( lnst=dut in the new valu / The + ? / Theda)ieu / The +!n}); +?n"")ie && ] teT+ t; [ a.ters =pac=eptaodeURICTmpcnenteokey te+e"="e =ptaodeURICTmpcnenteo/ The +da+s,= iut.tet , - r.src;t)s.urlta+l/ecSe tradi+ cue; /rs)rnstforsut in a<=z1.3.2 behavior. + i= datradi+ cue; !pr't get/set pro+ tradi+ cue; ="yle.filajax+ *ly as?ery.supporrjax+ *ly as.tradi+ cue;;v+ ng { }ige/ecAttrs a; i <ersgforsall browsndr;-+ , - r.onload t , - r.onr{adystatechangf ==/<script\b_,tisAb su=)e: +)nalIf{ocoain oawtaTpas + ry.,me (wei // otic iaTycoain oataT-orm- for(; s. + i= daut in theAin o(ia " e; (ia.jq in a s.!ut in thePsr( O ) { u a ) " )e: +un /Seris; - CthaaxLom) for(; sa+cl+ dat/\//, a, /<script\spec+ , ddct*/"..nn the*/"../ The +da+urn)il yle.ger; - isAb su=ot ! , - r.r{adyS ate ot /loaded|sompsion/: funct , - r.r{adyS ate " )e: +u " + eas+un /If{)radi+ cue;,=ptaodeCthaa"old" wty (th wty 1.3.2 + vldndy+.g- ni ryt),co } + i=ptaodeCparamae( (ursEvely. +elaueste +ef x icoa spec+)ryfuildParama( pref x,me[e +ef x ],{)radi+ cue;,= ddi / }v+ ng { }igery/ Hm, valmemory luan icoIE{ }igery , - r.onload t , - r.onr{adystatechangf ==t{ -+ee -R{ - jQ*/- r{sust+ tfs ris; -()Exte+) f - ji .joilu "& d )- n" && r20,re+"+tas+= iut.tet /ecR=g (ng); s, - rcfun.ger; - head erye, - r.pav, +N.no te: functe head.==g (jC - dct , - r atafuncte }l0 mouseentrent === "y(s ris; -e:XXX fielde+ al0 ) dataTy ( currparamct*/"..s ris; -eAin o()nseT+s},fy(s ris; -eAin o:XXX fielde+ al0 ) dataTy*/"..map) { - jQue(e: 0 )r/ Crn= ddipropHoonsxLoc" for(; s" to f bind LocaddixLom) for(; sa+cly( " ts -eOrapch ( currprope(*/"., " for(; s" teT+ t; f - jitaTyeOrap?h ( currmakeAin o(itaTyeOrapa)ie*/".il+{ }); + .f bind,- seriali key+ io( " t ( +t)t/"..t ( ;g t( e -Usa;the(":disab fd") so // otf el tet[disab fd] worksT+ t; f - ji*/"..nn ta s.!ut in e(*/". .he( ":disab fd" ae._aaluslrsubmittab f: funct*/"..nsde if ae._ !rsubmittsrT ( s: funct* ( tac._aaluslas*/"..c eckes[ot !rc eckab fT ( y/funct* ( tac)il+{ }); + .map) { - jQueb[^<ps - )e: +)io( " ve; ="yle.fie(*/". .eali) iut.tet /ecD r ry.ex"WQt; s, - rcfun.ger , - r t 't get/se+ clnun,/ Cression ifdaot ob su fun.ger; - !isAb su=)e: functextcressiond 20e,z"succurn" atafuncte }lfuncte=lfun, };{ }ige/ecUsa;svar cBhe rey tread alrif ( C - ds to circwev, + taoIE6ofug.occte nuT(); arisat? funa b { +n.non); { + r(#2709tendp#4378).occte head.svar cBhe reda\, - r,fhead.f(ddeC - ds+da-/g,} -yle.gab su - seriali+ al-te ry.su , - r ae: funct , - r.onload)j0,u1 /da-/g, - ext; - /eT+ t; f - jive; =!n}); +?aalusl}); +: +)ry(replactheAin o(ive; tS?aalusl ( currmap(ive;,{/<script\bve; tSty+ dataTyeltion:etaTypon the/ Theie &&)- n" && rCRLF,z"\r\n"ns /eT+ t;{ })+: +)ry( eltion:etaTypon the/ Theie &&)- n" && rCRLF,z"\r\n"ns /eT+ t})ntoreatarbhouC/; eaea-a-a-( " nu#5280: IOre)ne Expl rer wi "?keepeyTyne, + sas; ve(TML indon't=ab su=on 'tload- xhrOnUtloadAb su===wifdow.ActiveXO ) { p?h- seriali+ al-te- Ab su=all pous+ tg {qufunsf-e.aueste sekey } xhrCressionrt proext;xhrCressionr[ekey ])j0,u1 /da-/g}sex : ly da,u xhrId t 0,u xhrCressionr+ / F }, + sato crd()eixhrs calProtococrd()eS andardXHRi+ al-tr opacfun dataTy} wswifdow.XMLHttpRequfunu) ifu= // f( tre's --/ - calProtococrd()eActiveXHRi+ al-tr opacfun dataTy} wswifdow.ActiveXO ) { ( "Microroft.XMLHTTP"+tasex // f( tre's --/ - - Crd()eid nor{qufunth ) { - (T(); iaTsti "?attrs es[to ajax+ *ly as?auessionward comp()Ebility)T- ( currajax+ *ly as.xhrn==wifdow.ActiveXO ) { p?aTy/* Microroft failes[to properlyaTy * imflTyeOrid noXMLHttpRequfun icoIE7 (can't=r{qufuntloc(luf bnsa, fu * so we=ring : ActiveXO ) { p funic iaTyvailtyle - * Addi+ cue;lyoXMLHttpRequfun can?be disab fd icoIE7/IE8 so - * wedapesTyparession. - */l0 mouseeajax+ *ly as.xhrn==wifdow.ActiveXO ) { p!!pr't get/set? +)nal+upf su:?IE6 y /<script\specfun dataTy!*/"..isLoc(lunve rd()eS andardXHRi+ res rd()eActiveXHRi+ta+y0 )nalXHRncanaot occurn?loc(luf bns,+alwtys.ringActiveX xLoc);at=c { l0 ) dataTy!*/"..isLoc(lunv}"se { nal+upf su:?IE7-8se { nalvldIElXHRndoeaTaotrsupf su on-RFC2616 this.msrs#13240)se { nal+ee tPref//msdn.microroft.com/en-us/library/ie/ms536648(v=vs.85).aspxse { nalendptPref//www.w3.org/P+ tosols/rfc2616/rfc2616-sec9.html#sec9se { nalAlis.ugh(*/". c eck xLocs x this.msr tread aleen; se { nalsix"WQIEleon =doeaTaotrsupf su "tra{e"lendp"yTyne, "se { n^(tor|pose|head|put|ession|ver cur)$/i: funct*/"..* ( tac._aase { rd()eS andardXHRi+ res rd()eActiveXHRi+ta x :a x/ F+ all o } browsndr,=ring : s andardoXMLHttpRequfun h ) { rd()eS andardXHR f/ecDetermin#.supf su properti sy-) { - jQuebxhrnspecfu ( current ===h ( currsupf su,pecfunajax: !!xhr,e-, codr:e!!xhr}nve(+"= s.CrdT, +is;n" } xhre)va sexhrId t 0,u+ xhrCressionr[=o{nyl+ xhr+upf su+ =sjmouseeajax+ *ly as.xhri+ta+y0nal+upf su:?IE<10y0nalOpouc {qufuns}muTypbegmanuallyTob suse on 'tload (#5280)vary.suwifdow.ActiveXO ) { pac te( mousesuwifdow .Queb"'tload", /<script\spec+ ,aueste sekey } xhrCressionrt pro+xt;xhrCressionr[ekey ])j't get/se, trnstt / ng ,}teTe})(sjmouseeajax+ *ly as.xhri++tas+= ea+/ecDetermin#.supf su properti sy+supf su.codr?le!!xhr+upf su+ nve(+"= s.CrdT, +is;n" } xhr+upf su+ tas+xhr+upf su+ =ssupf su.ajaxule!!xhr+upf su+ ta+y - Crd()eidransf suniaTyp- browsnd can?providsorn xhr -i= daut in tsupf su.ajaxu pro+i= daxhr+upf su+ tc ttaTy ( currajaxTransf su(/<script\b i pec+y ( currajaxTransf su(/<script\bver currtc ttyp- Crorn g:mr( tonlygallowfd ifssupf sues[thr.ugh(XMLHttpRequfunT-e.( dat!e.crornD:mr( tresjt in tsupf su.codr?+ al0 )i= da! || va.crornD:mr( tressupf su.codr?+ alul y wocressiondaul dataTyec cteasous - serializheadndr,rcompsion tSty+ ( " "yle( .y( xhrn== || va.xhri+yle( .y( i =s++xhrId iut.tet e - ) {a.} wsxhr - ( " xhrn==a.xhri+ylfuncte ; i <eylfuncte i;a- e nalOpouc : sockspt.tet e -Pass+ tg}); +rinron thegenera" ])aplogin?popup on Operaa(#2865)yle.ger; - s.rinron t=)e: functexxhr.openct..t ( , s.url,ae.async, s.rinron t, s.pas word atafuncte/putedStyle.getxxhr.openct..t ( , s.url,ae.async atafuncte/le( .y(xhr.openct || va.t - ,to || va.url,ao || va.async, o || va.uinron t, o || va.pas word ata e nalAiflygiuTyom f el t?ifTprovidseT- .ger; - s.xhrF el t;specfunnnnnauesteiei -s.xhrF el t;specfunnnnn(xhroti a =-s.xhrF el toti ];y0 )ger; - || va.xhrF el t;spec+unnnnnauesteiei - || va.xhrF el t;spec+unnnnn(xhroti a =- || va.xhrF el toti ];y e /drbrarahoul nalOverridsomimee s ( hfdapesed - .ger; - s.mimeT ( fnvexhr.overridsMimeT ( f)e: functexxhr.overridsMimeT ( s.mimeT ( f);y0 )ger; - || va.mimeT ( fnvexhr.overridsMimeT ( f)e: +unctexxhr.overridsMimeT ( || va.mimeT ( ft drbra ahoul nalX-Requfuned-Withzheadndl nalF+ crorn-g:mr( t {qufunn-m ee+ tftaTifydi+ cusgforsae +eflen; aarel nalakit to a jigsaw puzzle,fwedsimflygnvvr a onpin to bnosura. no nal(in can?alwtys.be. onptuna per-r{qufuntbasis Loc e =+ri+ tftjax+ *up)l nalF+ sn t-g:mr( t {qufunn-mwon't=changf headnd ; -alueadycprovidse. - .ger; - !e.crornD:mr( t._ !headndr["X-Requfuned-With"]f)e: functexheadndr[ "X-Requfuned-With" a Ta XMLHttpRequfun";y0 )ger; - ! || va.crornD:mr( t._ !headndr["X-Requfuned-With"]f)e: +unctexheadndr["X-Requfuned-With"]fTa XMLHttpRequfun";yrbra ahoul.tet e -NpesTynmextra)try/c, + xLoccrorn g:mr( t {qufunsei -Fi+efox 3l.tet r opacfunnnnnauesteiei -headndrt keyfunnnnn(xhr.s .RequfunHeadnds i, headndroti a s;v+tet e -Se headndr; + nnauesteiei -headndrt key+unctexnal+upf su:?IE<9y+unctexnalIE's ActiveXO ) { po:rowsca.'T ( fMis0, + ' excep s fun only ay+unctexnal {qufuntaeadnd to a }); -/ The.y+unctexnay+unctexnalTo?keepeyTysisnexp{= s.co } XHRnimflTyeOr()Extr,rcasrid no && ] 0 )ry( nuto t if iaaTy gn rey`'t get/se`.y+unctex; - headndroti a !!pr't get/set pro+ nnnn(xhr.s .RequfunHeadnds i, headndroti a +e - e /dfuncte/p // f( _re's -+bra ahoul nalDc e aTyt - requfuna nalT(); m ) ra if n excep s i+ iaTycnuallya nal; i <ed icoyle.filajax (n =no)try/c, + ; re)yle.gerxhr.s ===h(ea.ataCTypeOrTnvea.data f res}); +t;le( .y(xhr.s ===h(e || va.ataCTypeOrTnve || va.data f res}); +t;lul nalLisnexndl sression = /<script\b_,tisAb su=)e: +))))))( " \tatuelm tatue + - uesponsat iut.tet ( " \tatuelyfunnnnn( tatue + -yfunnnnn(r{sponsaHeadnds-yfunnnnn(r{sponsas-yfunnnnn(xml; 0 )ry( nuWtaTavvr acallediaaTy aTob suse LoccTmpsionee( ntex; - sression nve(+isAb su=ot xhr.r{adyS ate =!pr4 " )e: +)ry(a}inalCle n up +)ry(a}iessioncxhrCressionr[ei ];y0 )ger sression = 't get/se+ + nnnn(xhr.onr{adystatechangf ==t, - sop iut.tet /ecFi+efox o:rowscexcep t? funaccurnif iproperti sy-tet /ecoforn xhr? funa network prr// occurady-tet /ectPref//helpful.knobn-gis;n.com/*?):[.php/CTmpcnent_ dataTed_failura_aode:_0x80040111_(NS_ERROR_NOT_AVAILABLE)yle.ger r opacfyfunnnnn( nuWtaTavvr acallediaaTy aTob suse LoccTmpsionefunnnnn(; - sression nve(+isAb su=ot xhr.r{adyS ate =!pr4 " )e: fyfunnnnn( nalOnlygcalledToncesfunnnnn( sression = 't get/se+ fyfunnnnn( nalDoTaotrkeepeaslrctive anymoresfunnnnn( ; - hm, valte: functe (xhr.onr{adystatechangf ==t, - sop ifuncte (i= daxhrOnUtloadAb su=te: functe (iessioncxhrCressionr[ehm, val] ifuncte (} +)ry(a}inalAb su=manuallyThfdapesed +cte (i= daisAb su=)e: +)))))) (i= daxhr.r{adyS ate !!pr4 " : +)))))) ((xhr.ab sui/dauurte (} +)ry(a}i} " + eey0 )ry( n(r{sponsas[=o{n+ + nnnn(a tatue = xhr.statue; yfunnnnn( nalIftic'slan?ab su fun.ger (i= daisAb su=)e: functe (nalAb su=iu=manuallyThfdapesed functe (i= daxhr.r{adyS ate !!pr4 " : functe (ixhr.ab sui/dafuncte (} functe /putedStyle.getxn(a tatue = xhr.statue; le.getxn(ar{sponsaHeadnds = xhr.getAllResponsaHeadndsi/dafuncte (r{sponsas[=o{n+ functe (xml = xhr.r{sponsaXML+ fyfunnnnn( nuCTy t ucp{responsa;listf- )cte (i= daxmlunvexml.docweirdEfor(; /* #4958 */ " : functe (ir{sponsas.xml = xml ifuncte (} +)ry(a}ixnal+upf su:?IE<10y0ncte (nalAccurnif ibinary-data r{sponsa + o:rowscan excep y0ncte (nal(#11426) +)))))) (i= dans (= 1xhr.r{sponsa + =yTa if ].clasuurte (ir{sponsas.t+ =zxhr.r{sponsa + + + nnnn(a} yfunnnnn( /ecFi+efox o:rowsc n excep s funaccurnif yfunnnnn( /ec tatue + aues justy crorn-g:mr( t {qufunnyfunnnnn( r opacfunnnnnxn(a tatueT+ =zxhr. tatue + }functe (} // f( tre'scfunnnnnxn(a/ecllmnit al= 0 = s.cWebkiu=givif iaa ompty) tatue + cfunnnnnxn(a tatueT+ =z"" ifuncte (} +)ry(a}ixnalFi+efox o:rowsc n excep s funaccurnif y+)ry(a}ixnal tatue + aues justy crorn-g:mr( t {qufunny+)ry(a}ixr opac+nnnnnxn(a tatueT+ =zxhr. tatue + }+ nnnn(a} // f( tre'sc+nnnnnxn(a/ecllmnit al= 0 = s.cWebkiu=givif iaa ompty) tatue + c+nnnnnxn(a tatueT+ =z""+ + nnnn(a} yfunnnnn( /ecFibind tatue xLocnon s andardobehaviors +)ry(a}ixnalFibind tatue xLocnon s andardobehaviors yfunnnnn( /ecIf{); l {qufuntin?loc(lutaTy in - jQdata:se (wei a succurnyfunnnnn( /ec(succurn?= s.cnoTdata won't=gspdaotif>+ -c);at'sp*/- bfuntweyfunnnnn( /eccan?dopg danr urv, + imflTyeOr()Extr)f- )cte (i= da! tatueTnvea.isLoc(lunve!e.crornD:mr( t proctinnnnxn(a tatue =er{sponsas.t+ ? 20ee: 404 }funnnnn( /ecIE - #1450:asom#eimfurQuery.sp1223p funic shouldobea204}functe (} " + edeTypetatue {yTa1223p proctinnnnxn(a tatue =e204 }funnnnn( } +)ry(a}ixnalIf{); l {qufuntin?loc(lutaTy in - jQdata:se (wei a succurny0ncte (nal(succurn?= s.cnoTdata won't=gspdaotif>+ -c);at'sp*/- bfuntwey0ncte (nalcan?dopg danr urv, + imflTyeOr()Extr)f+)))))) (i= da! tatueTnve || va.isLoc(lunve! || va.crornD:mr( t)pac+nnnnnxn(a tatue =er{sponsas.t+ ? 20ee: 404 }+)ry(a}ixnalIE - #1450:asom#eimfurQuery.sp1223p funic shouldobea204}+ nnnn(a} " + edeTypetatue {yTa1223p pro+nnnnnxn(a tatue =e204 }uurte (} rte (} functe } // f( fi+efoxAccurnExcep s proctinnnnx; - !isAb su=)e: functextnsompsion)j-1, fi+efoxAccurnExcep s tafuncte "a e /dra e / Cresccompsion ifdapesed ,nnx; - responsat?ac t-cteextnsompsion)j\tatuelm tatue + - uesponsat- uesponsaHeadnds );y0 )ger sompsion)j\tatuelm tatue + - uesponsat- xhr.getAllResponsaHeadndsi/ e /drbra ah iut.tet e -TML iif (i -sync moda Locic'slh =crs et.tet e -endptas.beouc { i e dTni( ( lyT(IE6o&?IE7)t.tet e -wedapesTto manuallyTfi+e{ : cressiony.te) (i= da! .async ot xhr.r{adyS ate =!pr4 " ro+nnnnn; - ! || va.async akey+unctexnalTML iif (i -sync moda weTfi+e{ : cressiony e cressiond);y0 )ger} " + edeTypxhr.r{adyS ate =!pr4 " ro+nnnnn(nal(IE6o&?IE7)c\[\i 'slh =crs e-endptas.beouy+unctexnal { i e dTni( ( lyTwedapesTto fi+e{ : cressiony+unctexsonTimeoutatcression +;yrbra ahputedStyle.getxhm, val=s++xhrId ifun.ger; - xhrOnUtloadAb su=te: functe - Crd()eid norctive xhrs ressionsglish hfdapesed - ncte - endpa trs ad no'tload ; i <eroctinnnnx; - !xhrCressionrt proext;;;;;;xhrCressionr[=o{n }funnnnn( mousesuwifdow .unload)jxhrOnUtloadAb su=ttafuncte "afuncte - Adduto lish alrctive xhrs ressionsyfunnnnn(xhrCressionr[ehm, val];=e ressionda-/g, "afuncte xhr.onr{adystatechangf == ressionR.e( ne - Adduto ); lish alrctive xhr ressionsf+e.gte xhr.onr{adystatechangf ==xhrCressionr[ei ] == ressionR.rbra ahoura ah,dra e ab su - seriali+ al nnnnx; - cression + al- e cressiond0,1);y0 )ger cressiond 't get/se, trnstt rbra ahoura aharbrah 0/ }l rn)il = ea+/ecF }, + sato crd()eixhrs +alProtococrd()eS andardXHRi+ al+xr opac+nn dataTy} wswifdow.XMLHttpRequfunu) i+x // f( tre's -+= ea+alProtococrd()eActiveXHRi+ al+xr opac+nn dataTy} wswifdow.ActiveXO ) { ( "Microroft.XMLHTTP"+tas+x // f( tre's -+= eaeaTy wotaTyti"alay[=o{nyl-)ifrn t, ifrn tDocyl-)rfxt ( s;+ /^(?:toggle|show|hidn)$/yl-)rfxnum;+ /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i -yTimerId -yfxAttds = [l-te- heen; aanim()Extrl-te[("heen; ", "marginTop", "marginBottom ,/"pads+ tTop", "pads+ tBottom i],Texte -widthaanim()Extrl-te[("width", "marginLef ", "marginRen; ", "pads+ tLef ", "pads+ tRen; "i],Texte -opacitytanim()Extrl-te[("opacity"i] - ] -yfxNowyl-)requfunAnim()ExtFrn tn==wifdow.webkiuRequfunAnim()ExtFrn tne;lfu wifdow.mozRequfunAnim()ExtFrn tne;lfu wifdow.oRequfunAnim()ExtFrn t iut. mouseentrent === "- show - serializspese, eanif , cression + al- ey wotaTy,ati"alayil T-e.( datspesetresspeset=!pr0ete: func f - ji*/"..anim()n)jgenFx("show", 3),zspese, eanif , cressionteTe cl" " + eecfuniaueste sei t 0, j+t)t/"..ters =" i < j" iplete{t.ra ats - =i*/".[i]+ fyfunnn( dattaTypstyleste: functedi"alay[=otaTypstyle.ti"alay+ fyfunnnn/ecR=s) { : inlin#.di"alay[of(*/". elTyeOrido lua jQifnic iayfunnnn/ecbe+ tfhiddenubygcascaded ruva])Locno cfunnnni - !t, - _data(ps -, "oldti"alay"ae._ di"alay[=yTa ncne" + al- e di"alay[=otaTypstyle.ti"alay =z"" ifuncte} fyfunnnn/ecSe taTyeOrap i+ - jQbeoucoverriddenu= s.cti"alay:cnonet.tet e -icoa stylesheerido w/ ovvr a : de just}browsnd stylesiayfunnnn/ecxLocsu+ ratteaTyeOrcfunnnni - di"alay[=yTa "?ery.supporcss\bps -, "ti"alay" )[=yTa ncne" + al- e t, - _data(ps -, "oldti"alay", de justDi"alay(taTypnsde if )atafuncte/l-ncte/l-nct} fyfunn/ + * /#.di"alay[of(mosh alth + for(; s icoa seifyd?loopyfunn/ to avoid{ : cTys anp{reflow f nnauesteie= 0+ i < j" iplete{t.ra ats - =i*/".[i]+ fyfunnn( dattaTypstyleste: functedi"alay[=otaTypstyle.ti"alay+ fyfunnnni - di"alay[=yTa "?resdi"alay[=yTa ncne" + al- e taTypstyle.ti"alay =zt, - _data(ps -, "oldti"alay"aeot " }functe/l-ncte/l-nct} fyfunnrvery.i*/".il-, - + /I trall \, - r nforT ( T0 mouseeajax+ *up({ +uaccep s:e: +uns, - r "truc/java\, - r,f iflic()Ext/java\, - r,f iflic()Ext/ecma\, - r,f iflic()Ext/x-ecma\, - r" ,} -ylehidn - serializspese, eanif , cression + al- e( datspesetresspeset=!pr0ete: func f - ji*/"..anim()n)jgenFx("hidn", 3),zspese, eanif , cressionteTe cl" " + eecfuniaueste sei t 0, j+t)t/"..ters =" i < j" iplete{t.ra ai= da*/".oi]pstyleste: functey wodi"alay =zt, - css\b*/".oi], "ti"alay" )+ fyfunnnni - di"alay[!yTa ncne" s.!ut in t_data(b*/".oi], "oldti"alay" tete: funct t, - _data(b*/".oi], "oldti"alay",ati"alay atafuncte/l-ncte/l-nct} fyfunn/ + * /#.di"alay[of(th + for(; s icoa seifyd?loopyfunn/ to avoid{ : cTys anp{reflow f nnauesteie= 0+ i < j" iplete{t.ra ai= da*/".oi]pstyleste: functe*/".oi]pstyle.ti"alay =z"ncne"da-/g, - ext; - yfunnrvery.i*/".il-, - + coypeOra:pac+uns, - r /(?:java|ecma)\, - r/ ,} -yle/ +a(ng); old toggleealProtocsex_toggle: mouseentrtoggle -yletoggle: /<script\bfn,bfn2, cression + al- ey wobool+t)t - taT-n[=yTa boolean"; -l- e( datut in the new valufn)cery.supporhe new valufn2tete: funct/".._toggle/ iflye(*/"., ea weird iteTe cl" " + ei= daHn =!n}); +resbool+te: funct/".. \//,- seriali key-nctey wohtate { bool+?aHn : mousea*/".).he(":hidden"atafunct mousea*/".)[ohtate ? "show" :e hidn" ]i/dafunc}teTe cl" " + eecfuni*/"..anim()n)genFx("toggle", 3),zfn,bfn2, cressiontas+xcoy depndr:e: +e truc \, - r" - serializ + te: + ncd /* intlob(lEealiz + t;}+ t; f - ji*+ } / }v+ ngeC/; eaTyprvery.i*/".il-,nyl+/ecHm, val /cha's "autial=c { +aaTyglob(lf0 mouseeajaxPref bind( "\, - r"- /<script\b i pec+ui= dae.c/chaa =+ 't get/set pro+tie.c/chaa Qly dang+ ngexi= dae.crornD:mr( t pro+tie.t ( +t)"GET";l+cle.glob(ll Qly dang+ ngeC/; eaTyfadeTo - serializspese, to, eanif , cression + al- e f - ji*/"..f bind(":hidden"a css\"opacity", 0).show(). ( da functe.anim()n){opacity: to},zspese, eanif , cressionteTe,nyl+/ecBiaTy , - r tag hion transf su + ( currajaxTransf su( "\, - r"- /<script\sac ttaTyanim()n - serializprop,zspese, eanif , cression + al- ey wooprall =zt, - spese(spese, eanif , cressionteT+y/ecT(); transf sunonlyg e(ls?= s.ccrorn g:mr( t {qufunssexi= dae.crornD:mr( t pro l- e( datut in theEmptyO ) { ( prop tete: funcrvery.i*/".. \//,ooprall.sompsion, [m - }]i - )"te( ( " \, - r,}+ t;head t docweird.head res mousea"head")o0]=resdocweird.docweirdEfor(; eT y.tee -DoTaotrchangf r ry.ex"Wdiproperti seaslper-property eanif wi "?bnolostf- )prop =zt, - ent ===h{},zprop t;c+nn dataTy{ eaTyprvery.i*/".[ooprall.qufuaa =+ - }? " \//" :e qufua" ]i/<script\specfun,/ XXXc'*/".'=doeaTaotralwtys. - jQa nsde if funrunn + } /#yfunn/ tfuntsuionee( nsous - serializ_,scression + alut.tet; - |all.qufuaa =+ - } key-nctet, - _markda*/". ext; -0 )ge , - r t docweird.crd()eEfor(; ("\, - r") iut.tety woopr =zt, - ent ===h{},zoprall +ylfunctheElTyeOri=t*/"..nsde || s{yTa1ylfuncthiddenu==heElTyeOriery.suppoa*/".).he(":hidden"aylfuncton the/ T,zpylfunctti"alay, eylfunctpartelm tasu,p ==,s'ti }+ nn , - r.async Tatrns; eaTyp(/ wi "?st reyper property eanif aaTybe { + rortnetermin#. funantanim()Exttin?cTmpsionefunno r.anim()ndProperti se=o{n }f f nnauestep icoprop te: fyfunnn/ property on t=nit al= attocsextcton t =zt, - cn tl- p atafunctdeTypp[!yTaon t=)e: functeprop[ltion au==prop[lpl] ifuncteessioncprop[lpl] i+unctdeType. , - rCharsp te: 0 )ger , - r.charsp =ae. , - rCharsp daura ahary-nctey lu==prop[ltion a }+ nn , - r.src;t)s.urlta { }ige/eceanif r{soluttoc:yper property >zopr."autialEanif >zopr.eanif >z'swif ' (de just)afunctdeTypreplactheAin o(ive; tS)e: functeo r.anim()ndProperti s[ltion au==ve;[ 1 atafunctey lu==prop[ltion au==ve;[ 0 atafuncthputedStyle.geto r.anim()ndProperti s[ltion au==opr."autialEanif nve |."autialEanif [ltion auresopr.eanif res'swif 'da-/g, - +}ige/ecAttrs a; i <ersgforsall browsndr;+ nn , - r.onload t , - r.onr{adystatechangf ==/<script\b_,tisAb su=)e: { }igei= dave; !pr hidn" nvehiddenuresve; !pr show" ._ !hiddenu)e: functervery.iopr.cTmpsion. resaa*/". ext; } +)ry(a; - isAb su=ot ! , - r.r{adyS ate ot /loaded|sompsion/: funct , - r.r{adyS ate " )e: { }igei= daheElTyeOrierytetion !pr heen; " res}ion !pr width" tS)e: functe/ecMmentsurac);at=aoth+ tfsneaks oupt.tet e -Rec\t=sall 3coverflowpa tribu" ])becaringIE=doeaTaott.tet e -changf ); overflowpa tribu" . funoverflowX aaTt.tet e -overflowY;e, +serido : sion && ] le.geto r.overflowp=e[ */"..style.overflow, */"..style.overflowX, */"..style.overflowY ];y0 )ger / Hm, valmemory luan icoIE{+unctexs, - r.onload t , - r.onr{adystatechangf ==t{ -ut.tet e -+ * di"alay property do inlin#-block xLocheen; /widtht.tet e -anim()Extrptuninlin#. for(; s t;at=e, +havif width/heen; t.tet e -anim()ed - .ger; - t, - css\b*/"., "ti"alay" )[=yTa inlin#"e._a-/g nctet, - css\b*/"., "float" )[=yTa ncne" + al- e i - !t, - supf su.inlin#BlockNpessLayoupt proext;;;;;*/"..style.ti"alay =z"inlin#-block"; -l- euncthputedStyle.gettedi"alay[=ode justDi"alay(t*/"..nsde if a;cfyfunnnnn( nuinlin#-level. for(; s accep inlin#-block;yfunnnnn( nublock-level. for(; s apesTto b inlin#.= s.clayoupyfunnnnn(i - di"alay[=yTa inlin#"e proext;;;;;;*/"..style.ti"alay =z"inlin#-block"; -l- eunct /putedStyle.getxn(*/"..style.ti"alay =z"inlin#" ifuncte */"..style.zoo- =i1tafuncte "a0 )ger / R=g (ng); s, - rce( ntex; - e, - r.pav, +N.no te: 0 )ger e, - r.pav, +N.no.==g (jC - dct , - r ata e /dfuncte/a-/g, - ext; -ut.tet; - |.overflowp!!n}); + proext;;*/"..style.overflow pr hidden" ext; -0 )ge /ecD r ry.ex"WQt; s, - rc+unctexs, - r ==t{ -ut.tetauestep icoprop te: fctexf ==tew mouseenx\b*/"., o r,fp atafuncty lu==prop[lpl] if{ }igei= darfxt ( s: funcy ltS)e: functee[sve; !pr toggle"t? hiddenu? "show" :e hidn" ie && ]i/dafafuncthputedStyle.getparte =erfxnum.e ec(ive; ttafuncte tasu[=ot.cur()+ fyfunnnni - parte + al- e tnd t parspFloat parte[2]=ttafuncte 'ti t parte[3] e; (it, - cssNumberotpl]+?n"")ie"px" )+ fyfunnnna/ecllmnpesTto sompu" . tasuif && ] le.getni - 'ti !yTa px" )Style.getxnt, - style\b*/"., p, (tnd e; 1te+e'ti ttafuncte tasu[=o((tnd e; 1te/ot.cur()) * stasu;yle.getxnt, - style\b*/"., p, tasu[+e'ti tta0 )ge /ecCression ifdaot ob su e( ntex; - !isAb su=)e: +)))))) cressiond 20e,z"succurn" ata e /dfyfunnnna/ecIf{o +=/-Tatokenu=aslprovidse,L iif (doif a r{lative anim()Ext le.getni - parte[1]f)e: functex tnd t ( (parte[ 1 a !pr -="t? -1)ie1) * tnd ) +eetasu;yle.getx/dfyfunnnnat.cuTyom(m tasu,p ==,s'ti )+ fyfunnnn/putedStyle.getxt.cuTyom(m tasu,p/ T,z - e /a-/g, - ext; -+))))}; eaTyp(/ F+ JS t i( ecTmpsiancesfunnrvery.i*rns; -nc}teTes},fy(e /ecCircwev, + IE6ofugs?= s.cb { + for(; s (#2709tendp#4378)ubygprepous+ tfy(e /ecUsa;native DOM manipul()Exttto avoid{our g:mManipsAJAXlt i(k- fy(e head.svar cBhe reda\, - r,fhead.f(ddeC - ds+day(e },f y.tTyop:XXX fieldeoclua Qufua, gotoEnet procti; - clua Qufua+te: funct/"..qufua([]/da-/g}sea-/gt/".. \//,- seriali key-nct( " timerapch ( currtimeraylfuncth Tatimera.ters ="aTyp(/ clua markr acTuOre)s(TML inknow t; y won't=baa-/g,( dat!gotoEnet proctitet, - _unmarkda*ruthe*/". +da-/g,}}e "w - i--ete{t.ra ai= da*imeraoi]pts - ===e*/". +Style.geti= dgotoEne)e: functex/ -f+ "WQt; nruc \tepTto b ); lastf- )cte *imeraoi])type/; functe/a- functetimera.c );ce(i, 1);y0 )gab su - seriali+ al+unctdeType, - r ae: 0 )ger , - r.onload)j't get/se, trnstt rbra /drbraho-nc}teTe clnal tartQt; nruc hjQ*/- qufuaaiaTyp- last \tepT=asn't=f+ "Wdocti; - !gotoEnet proctitt/"..dequfua(/da-/g}sea-/grvery.i*/".il+{ah 0// - / f/ecAnim()Extrpcrd()ed-synchronouslyTwi "?run-synchronously calProtococrd()eFxNowi key-nsonTimeoutatclua FxNow,r0etda-/rvery.i( fxNow + t, - swdaetda- -ut.alProtococlua FxNowi key-nfxNow + 't get/se+ f} f/ecGenera" Cparamere)s(to crd()eia s andardoanim()Ext lalProtocogenFx(z s (,bnum; key-ny woobje=o{n }taTy ( curr \//,ofxAttds. Tycat/ iflye[t /xAttds.s);ce(0,num)),h- seriali+ al-teobj[l*/". ]+t)t - eTes});y0y wooldCressionr[=o[]- +urusonp.t)/(=)\?(?=&|$)|\?\?/ }taTyrvery.iobj;--/ - c/ecGenera" CshortcutsgforsiuTyom anim()Extrl- ( curr \//,ey-nslidsDown:jgenFx("show", 1aylfuslidsUp:jgenFx("hidn", 1aylfuslidsToggle: genFx("toggle", 1aylfufadeIn:j{ opacity: "show" }ylfufadeOut:j{ opacity: "hidn" }ylfufadeToggle: { opacity: "toggle"t --/- /<script\bon theprop. +Style mouseent[ltion au==- serializspese, eanif , cression + al- e f - ji*/"..anim()n)jprop.,zspese, eanif , cression +eTes};se/ -l- ( curr nt === "- spese - serializspese, eanif , fnu)e: funy woopr =zspeset&&tns (= 1epeset=!pr h ) { ].? ( curr nt === },zspesea)ieroctitsompsion: fnuot !f t._ eanif reoctitet, - he new valu apeset)ceryspese,octitdurattoc:yspese,octiteanif : fnu._ eanif re eanif s.!ut in the new valueanif )u._ eanif a-/g}eTe cl |.durattoc + t, - fxpoff.? ee: ns (= 1 |.durattoc +yTa number].? |.durattoc :efunno r.durattoc icoyle.filfxpspeseap?h ( currfxpspesea[o r.durattoc] :h ( currfxpspesea._de justeTe clnalQufuaif a-/g |.oldu==opr.sompsion;a-/g |.compsion ==- serializnoUnmarkt proctit; - |.qufuaa!==t - }te: ccteet, - dequfua(e*/". +da-/g,} " + ei= danoUnmarkt!==t - }te: ccteet, - _unmarkda*/". +da-/g,}}eoctit; - t, - he new valu |.oldutS)e: funct |.old. resaa*/". ext;}a-/g}eTe clrvery.iopreTes},fe ceanif : : funlin#ad:XXX fieldeop, n, fi+stNum,atiff.te: funcrvery.ifi+stNum +etiff.* p ifun}ylfu swif :XXX fieldeop, n, fi+stNum,atiff.te: funcrvery.i((-Math.cos(p*Math.PI)/2) +e0.5) * tiff.+ fi+stNumda-/g}ses},fe ctimera:o[]- -y-nfx:XXX fieldeops -, || va,oprop te: fct*/"..ap t?=- || va;a-/gt/".. s - =itaTy;a-/gt/"..prop =zpropeTe cl || va.opug =- || va.opug re {n+ +/ecDe just}jsonp. only as 0 mouseeajax+ *up({ +ujsonp:="caession", +ujsonpCression: /<script\spec+ y wocression =- ldCressionr.pop() e; (it, - }a i o +e"_"e =atnonceplete);y0 )*/".[ocression ] Tatrns; +nn dataTy ressionR.rb/ - / f ( currfxpp+ tot ( +t): fce -+imflT XX field xLocsonly aoa style && ] leupd()n - seriali procti; - */"..ap t.\tepT proctitt/"..ap t.\tep. resaa*/"..ps -, */"..nswhe*/". +da-/g}a+/ecDetecr,nnit al= 0 ver curraaTy trall ressionsgforsusonp. {qufunsf0 mouseeajaxPref bind( "jsonsusonp" /<script\b ,topug(nal+ *ly asonjqXHRns aleaTyp( ( currfxpstep[t/"..prop]tresjt in tfxpstep._de just)aa*/". ex},fy(y wocressionNn t, overwrittsn- uesponsaCTypah er, +lnjsonProp =zs.usonp.!==t - }nve(+rusonp: funct..urlu) ?aalus"url"+: +)ryns (= 1e.data tyTa if ]. s.!()a.coypeOrT ( ot " .h?):[Of( iflic()Ext/x-www- it -urlataoded")u._ rusonp: funct..data f ._ "data"se {) iut.te - ) { : curv, + s= 0t.tcur - seriali procti; - */"..ps -[t/"..prop]t!!n}); +nve(!*/"..ps -pstylesot */"..ps -pstyle[t/"..prop]t=!n}); tete: funcrvery.i*/".. s -[ t/"..prop ] - )"te(/ Hm, valiff.th + xaut dTnata s ( hsa usonp" ors in - jQa paramere)uto etsexi= dajsonProp ress.dataT ( sot0 a tyTa usonp" s aleaTyp separspe,octitr =zt, - css\b*/"..ps -, */"..prop t;c clnalEmpty) try ason}); , 't get/setendp"auto"=e, +coy depnsTto 0,Texte -compsix && ]s;su+ rasa + t()n)1rad)"=e, + dataTedrasais,Texte -simflT && ]s;su+ rasa 10px" e, +parspeTto Float. clrvery.iisNaN(+parspeTt parspFloat rutS)e? !r resr tyTa uto"=? ee: re: parspeeTes},fy(ee - ) {cression on therememberif ipreexisuif && ]se (oci()ed-= s.ciu e( cressionNn t t)a.jsonpCressionit t, - he new valu a.jsonpCressioni+ ?ee( ns.jsonpCressionda)iee( ns.jsonpCression iut.te -StartQantanim()Exttfrom one numbertto ano } t.tcuTyom: /<script\bfrom, to, 'ti )e: funy woself+).*/".,octitfx + t, - fx,octitraf;sea-/gt/".. tartTime ==-xNow res rd()eFxNowi ;a-/gt/".. tart ==-rom;a-/gt/".. nd t to;a-/gt/"..'ti t 'ti ot */"..'ti ot (it, - cssNumberott/"..prop ]+?n"")ie"px" )+ f/gt/"..now + t/".. tart;a-/gt/"..pos + t/".. taon ==0;sea-/gXX field t gotoEnet proctit f - ji elf/stepdgotoEne);fy(ee -Ivar c{cression h to urluues Lom)data 0 )i= dajsonProp ae: 0 )gs[ajsonProp a =-s[ajsonProp a)- n" && rjsonp,z"$1"e =cressionNn t t / n " + edeType.usonp.!==t - }te: e( ns.urlu+== rq currtfunct..urlu) ?r"& dat"?" ) +ee.usonp.+e"="e =cressionNn t 0/ }l T-e.t.ts - =i*/"..taTy;a-octi; - *()cery.supportimera.push(tae._ !TimerIdt proctit/ecUsa;requfunAnim()ExtFrn tn tread al etIOre)ve; ; -availtyle - nx; - requfunAnim()ExtFrn tn proext;;*imerIdt=i1tafunctraf ==/<script\ac t-ctena/ecl fun*imerIdtgets+serido }); +at=eny poh the*/". Tyopayfunnnni= da*imerIdt proctittit fqufunAnim()ExtFrn t raf ttafuncte fxptiond);yfuncte/a-/g, -tafunctrfqufunAnim()ExtFrn t raf ttafunc/putedStyle.ge*imerIdt=i etIOre)ve;,ofxption /x.h?re)ve; );fy(ee -Usa;dataeyTy depnd /rsr{ i e json afpnd \, - r e ecuttocs+xts. Ty depndr["\, - r json"]u==/<script\ac t+/g,( dat!n(sponsaCTypah ercte: +cteet, - rr//u cressionNn t +e"twtaTaotrcalled" +darbraho-nc}Tes},fy(e { - jQuesponsaCTypah erot0 ail+))}; eaTye -+imflT 'show'ealProtocsexshow - seriali procti/ R=gember. fra weT tartse, so // otwelcan?gossion do it laonr fct*/"..ap t.opug[t/"..prop]t= t, - style\b*/"..ps -, */"..prop t;c clt/"..ap t.\how + trns; +nn/ -f+ "WQjson nforT ( T+eia.dataT ( sot0 a Ta uson"; y.tee -BeghjQ*/- anim()Ext le./ecMmentsurac);at=weT tart+at=e small width/heen; tto avoid{eny le./ecflash alcoypeOrc clt/"..cuTyom(t/"..prop =!pr width" ot */"..prop =!pr heen; " ? 1)ie0, */"..cur());fy(ee -Ivarall ressionfy(eoverwrittsnn==wifdow[ cressionNn t ail+))wifdow[ cressionNn t au==/<script\ac t+/g,n(sponsaCTypah erc= ea weird il+))}; eaTyte -StartQbyCshow + } /#teaTyeOrcfunyle.fie(*/"..ts - ).show()eTes},fy(ee -Cle n-up XX field (fi+es afpnd Ty depndr)f+))jqXHR.alwtys) { - jQue(e: 0 )r/ Rest reypreexisuif && ] 0 )rwifdow[ cressionNn t au==overwrittsn; eaTye -+imflT 'hidn'ealProtocsexhidn - seriali procti/ R=gember. fra weT tartse, so // otwelcan?gossion do it laonr fct*/"..ap t.opug[t/"..prop]t= t, - style\b*/"..ps -, */"..prop t;c clt/"..ap t.hidn + trns; +nne/ +a(ngsion taTfreet+/g,( dats[ cressionNn t aute: +ctee/ mmentsurac);at=re-ri+ tf); oer currdoean't=\, ew t;y as?aro't ;+ nn .jsonpCressionit opug(nal+ *ly as.jsonpCression iut.tee -BeghjQ*/- anim()Ext le.t/"..cuTyom(t/"..cur(), 0)eTes},fe cnalErs a\tepToforn anim()Ext le\tep: /<script\bgotoEnet procti( " t ==-xNow res rd()eFxNowi ,octitdone + trns,octites - =i*/"..taTy,efunno r t?=-t/"..ap t,efunnion};a-octi; - gotoEnetot * >=- || va.durattoc + t/".. tartTime proctitt/"..now + t/".. nd;octitt/"..pos + t/".. taon ==1;octitt/"..upd()n()+ fyfunn || va.anim()ndProperti s[lt/"..prop ]++ trns; f f nnauesteiei - || va.anim()ndProperti sete{t.ra ai= da || va.anim()ndProperti s[ia !!prtrnstte: functedone + ly dang-g , - +}ige/ecsa(ng); cression on t aues uturacusey0ncte ldCressionr.push(=cressionNn t t rbrahout.tet; - done te: funct/ecR=s) { : overflowt.ra ai= da || va.overflowp!!n}); + s.!ut in tsupf su.shrifkWrapBlocks te: fyfunnny ( curr \//,o[n"",z"X",z"Y"i], XX field (h?):[he/ The+ al- e taTypstyle[("overflow"e = && ]sa =- || va.overflow[h?):[atafuncte}/da-/g, - e funct/ecHideCthaaelTyeOriiaTyp- "hidn" operattoc wtaTdonet.tet i= da || va.hidn + al- e yle.fieelTy).hidn(/da-/g, - e funct/ecR=s) { : properti s,iiaTyp- itemstas.beouchiddenuLocshownt.tet i= da || va.hidn resopr t.\how + al- e aueste sepei - || va.anim()ndProperti sete{t.ra axnt, - style\bps -, p,- || va.opug[p]=ttafuncte}a-/g, - e funct/ecE ecutng); compsion alProtocsexunn || va.cTmpsion. resaats - ); +nne/ Crescifnic waaTypalProtocutaTy in - jQa r{sponsat+/g,( datn(sponsaCTypah ercery.supporhe new valu=overwrittsn " )e: +)ry(overwrittsnatn(sponsaCTypah erot0 a t rbrahout.tetrvery.ify dang+ g,n(sponsaCTypah erc= overwrittsnn=='t get/se+ + C/; eaTyp/putedStyle.g/ class+c(lueanif canaot be { + r= s.ctaoInet/itytdurattoct.tet; - || va.durattoc !prInet/ityt proext;;*/"..now + ttafunc/putedStyle.genn==t - t/".. tartTime;oext;;*/".. taon ==n / || va.durattoc; e funct/ecPerfLom)thaaeanif alProtoc, de justs(to swif oext;;*/"..pos + ( curr \nif [l || va.anim()ndProperti s[lt/"..prop ]+]( t/".. taon, n, 0,u1, || va.durattoc );oext;;*/"..now + t/".. tart + ((t/".. nd - t/".. tart) * */"..pos+da-/g,}}e "/ecPerfLom)thaanruc \tepTof(th +anim()Ext le.gt/"..upd()n()+ f/g}sea-/grvery.i*rns; +nn/ -Dts g()eido s, - rc+unrvery.i"\, - r"R.rb/ -n+ +/ f ( current ===h ( currfx,pecfution - seriali proctiaueste setimerapch ( currtimerayeie= 0 + i < timera.ters = + ++it proctit; - !*imeraoi]))n proext;;*imera.c );ce(i--, 1);yext;}a-/g}o l- e( dat!timera.ters = proext;jt in tfxpstop()da-/g}ses},f l- h?re)ve;: 13,f y.tTyop:XXX fielde proextclua IOre)ve;,o*imerIdt ;c cltimerIdt=it{ -e,nyl+/ecdata:s t if iof(htmll+/eccoypeuc ( || val):cIf{"autif>+ -c);n aragmexp{= "?bnocrd()ed-i.i*/".ccoypeuc, de justs(to docweirdl+/eckeepS, - rs ( || val):cIf{*ruthe= "?includ s, - raTpas + ry.c);n htmls t if f0 mouseeparspHTML ==- serializdata,ccoypeuc, keepS, - rs pec+ui= da!dataeot *s (= 1datae!yTa if ].clas+nn dataTy}{ -+engexi= da*s (= 1coypeuc =yTa boolean".clas+nnkeepS, - rs =1coypeuc; +nncoypeuc =Qly dang+ ngexcoypeuc =Qcoypeuc resdocweird; eaTyspesea: : funslow 600,Textfast: 20e,t.tee -De just}speset.te_de just: 400 ex},fy(y woparspeTt rnif leTag.e ec(idata f,c+uns, - rr?le!keepS, - rs ery[]; eaTystep: al-teopacity: /<script\bfx proext;jt in tstyle\bfxpps -, "opacity", fxpnow ) ifun}ylft.te_de just: /<script\bfx proext;i= daHx.ps -pstyleseryHx.ps -pstyle[ fxpp+ p ]p!!n}); + proext;;Hx.ps -pstyle[ fxpp+ p ]p= (fx.prop =!pr width" ot fx.prop =!pr heen; " ? Math.max(0, fxpnowa)iefxpnowa)+efxp'ti }func/putedStyle.geHx.ps -[ fxpp+ p ]p= fxpnow;yext;}a-/g}o+)nal+if le taggexi= daparspeTclas+nn dataTy[Qcoypeuc.crd()eEfor(; (aparspe[1]f)e]R.rb/ -n f; - t, - exprcery.supporexpr.f bind. +Style mouseeexpr.f bind..anim()nd ==- serializps - )e: -/grvery.id /* intrep( ( currtimeraye/<script\bfnt proctit f - jits - ===entreaTy;a-/g}).ters ="aTy};se/s+nparspeTt ( currbuildFragmexp,o[ndata ],ccoypeuc, s, - rr? f/ecTry /rsr{st rey : de just}ti"alay && ]soforn eaTyeOrcfalProtocude justDi"alay(tnsde if aeec+ui= dae, - rs erye, - rs.ters = pro+unyle.fie(s, - rr? .==g (ju) i+x f l- h= da!taTyti"alay[tnsde if aute: +crvery.id /* inmerge\b[t parspe.c - dN.nos );y0}; eaTyty wotaTy ="yle.fie("<"e =nsde if + "> .rif ( To(a body" ),octitdi"alay[=otaTypcss\b"ti"alay" )+ eaTyttaTyp==g (ju) i+/ecKeepeaccopy[of(th +olduload this.my0y wo_load t mouseentrload iut.tee -If{); lsimflT way[fails,Texte -ge taTyeOr'urQu(lude just}ti"alay bypa trs if iin to a temp ifrn tl- e( datdi"alay[=yTa ncne" resdi"alay[=yTa " )Style.ge -No ifrn t to ringyet, so crd()eiitoctit; - !ifrn t te{t.ra ai=rn tn==docweird.crd()eEfor(; ( "i=rn t" atafuncti=rn t.=rn tBorderc= i=rn t.widtha= i=rn t.heen; t==0;se , - +/** + * Load a urluh to a page + */l0 mouseentrload ==- serializurl,aparams, cression + alexi= da*s (= 1urlu!yTa if ]. s._load clas+nn dataTy_load/ iflye(*/"., ea weird iteT+ahout.tetdocweird.body.rif ( C - d( ifrn t teT+ay woselect r- uesponsa,z s (,c+unself+).*/".,oy(eoff+).url.h?):[Of( ") iut.tet- Crd()eial /chatyleccopy[of(th +ifrn t docweirdptunfi+st cres.t.tet- IElend Operaa= "?allow ri /rsr{ring : ifrn tDocr= s.ouptre-writ+ tf); fmenthtmll.tet- docweirdpdo it,cWebkiu=&lFi+efox won't=allow r{ri+ tf); ifrn t docweirdoctit; - !ifrn tDocrot !i=rn t.crd()eEfor(; te{t.ra ai=rn tDocr== i=rn t.coypeOrWifdow ot i=rn t.coypeOrDocweirdp).docweird; .ra ai=rn tDoc.writee("<!doc s (><html><body></body></html>" ext;}aexi= daoff+>pr0ete: +unselect r+).url.s);ce(aoff,.url.ters = ; +nnurlu).url.s);ce(a0, off+teT+ahout.tettaTy ="i=rn tDoc.crd()eEfor(; ( nsde if a;c+ nalIftic'sla alProtocsexi= dajsupporhe new valu=params " )e: { }igi=rn tDoc.body.rif ( C - d( ts - ); +nn/ecllme (wei );at=it'sp*/- ressionfy(ecression =-params; +nnparams =='t get/se+ octitdi"alay[=o.supporcss\bps -, "ti"alay" ); e funcdocweird.body.==g (jC - dctifrn t teTf/g}sea-/ge -St rey : cor( ( ude just}ti"alayaTyttaTyti"alay[tnsde if au=ati"alayil+ nalO } wisa,zbuildQa params t if f0 n " + edeTypparams &&tns (= 1params =!pr h ) { ].te: +unt ( +t)"POST"R.rb/ taTyrvery.itaTyti"alay[tnsde if a;se/s+nnalIft in - jQ for(; s to modify, mmentt - requfuna+ui= daeelf/ters = >r0ete: +un mouseeajax(: +)ryurl:zurl, ea+ exnalTML"t ( "e sitylec".c't get/se, t fun"GET" this.m{= "?bno{ + +)ryns (:z s (,c+un dataT ( : "html",c+un data:1params + C/.done(/<script\br{sponsa + )e: {+nne/ +a(ngresponsa;auesringh =compsion cressiony+uncresponsa;= ea weird il ee( nsolf/html(oselect r ?aeaTy worttylec+ /^t(?:tyle|d|h)$/i -yrroot + /^(?:body|html)$/i; +}ige/ecIf{o select r waaT"autif>+ -cloc(tng); ren; t for(; s icoa dummyativ +}ige/ecExclud s, - raTto avoid{IEl'PermisstocuDen>+ ' prr//s +cteet, - ("<tiv>" .rif ( dajsupporparspHTML\br{sponsa + )e).f ( daselect r a)ie f; - "ge Bo't if Cli(; R { ].insdocweird.docweirdEfor(; +Style mouseentpoffsp =a/<script\bver currtc tTyty wotaTy ="*/".[0t box; +}ige/ecO } wisa=ring : f); +r{sust +}iger{sponsa + )il T-e.( datver currtc tTytcrvery.i*/".. \//,/<script\bit proctite mouseeoffsp .s .Offsp \b*/"., o r| va,oi ext;} - )"te( C/.sompsion)jsression nve/<script\bjqXHRlm tatue}te: e( nsolf/ \//,osression- uesponsa ot [bjqXHR.r{sponsa + ,j\tatuelmjqXHRna s;v+te}teT+ahout.teh= da!taTyrot !taTypownerDocweirdp)c tTytcrvery.it{ -e,)"te(rvery.i*/".il+}il T-e.( datts - ===etaTypownerDocweird.bodyp)c tTytcrvery.i mouseeoffsp .bodyOffsp \bts - ); -/g}o l- er opacfunnbox[=otaTypge Bo't if Cli(; R { ()da-/g} // f(e+ a} eaTyty wodocr==taTypownerDocweird,octitdocEaTy ="doc.docweirdEfor(; eT y.tee -Mmentsurac iif (aot e(lif wis.ctati"coynut dTDOM nsdet.teh= da!box[ot !.supporcTypah s docEaTy,zps - )e)c tTytcrvery.ibox[? { yop:Xbox.top,zleft:Xbox.left })ier yop:X0,zleft:X0 } -e,)"te mouseeexpr.f bind..anim()nd ==- serializps - )e: +crvery.id /* intrep( ( currtimeraye/<script\bfnt pro+it f - jits - ===entreaTy;a+g}).ters ="a0}; eaTyty wobodyp="doc.body,octitwinn==ge Wifdow(doc),octitcli(; Top p="docEaTypcli(; Top presbody.cli(; Top pres0,octitcli(; Lef p="docEaTypcli(; Lef presbody.cli(; Lef pres0,octits, ollTop p="win.pageYOffsp tresjt in tsupf su.boxMsde + s.docEaTyps, ollTop presbody.s, ollTop,octits, ollLef p="win.pageXOffsp tresjt in tsupf su.boxMsde + s.docEaTyps, ollLef presbody.s, ollLef ,octittop p="box.top +ee, ollTop p- cli(; Top,octitlef p="box.left +ee, ollLef p- cli(; Lef ; eaTyprvery.ir yop:Xtop,zleft:Xleft }"aTy};seaT/putedStyle mouseentpoffsp =a/<script\bver currtc tTyty wotaTy ="*/".[0til T-e.( datver currtc tTytcrvery.i*/".. \//,/<script\bit proctite mouseeoffsp .s .Offsp \b*/"., o r| va,oi ext;} - )"tut.teh= da!taTyrot !taTypownerDocweirdp)c tTytcrvery.it{ -e,)"tey wodocEaTy ="wifdow.docweird.docweirdEfor(; eT y.te( datts - ===etaTypownerDocweird.bodyp)c tTytcrvery.i mouseeoffsp .bodyOffsp \bts - ); -/g}oea-/g mouseeoffsp .t/itial= 0()+ fyfuny wocompu" dStyle,efunnoffsp Pav, +r==taTypoffsp Pav, +,efunnprevOffsp Pav, +r==taTy,octitdocr==taTypownerDocweird,octitdocEaTy ="doc.docweirdEfor(; ,cfunnbodyp="doc.body,octitde justView ="doc.de justView,efunnprevCompu" dStyle =ode justView ?ode justViewpge Compu" dStyle\bps -, }); + p:otaTypcurv, +Style,efunntop =ztaTypoffsp Top,octitlef p="taTypoffsp Lef ; fyfunw - ( s - =itaTy.pav, +N.no)u._ es - !yTabodyp._ es - !yTadocEaTy proext;i= da mouseeoffsp .supf susFixedPosi+ cup._ prevCompu" dStyle.posittoc +yTa fixed" )Style.gebrd(k;yext;}a-octitcompu" dStyle =ode justView ?ode justViewpge Compu" dStyle\ps -, }); p:otaTypcurv, +Style;octittop p-=otaTyps, ollTop;octitlef p-=otaTyps, ollLef ; fyfune( datts - ===eoffsp Pav, +r proext;;*op +=ztaTypoffsp Top; .ra aleft +="taTypoffsp Lef ; fyfunt;i= da mouseeoffsp .doeaNotAddBorderc s.!( mouseeoffsp .doeaAddBorderForTtyleA( Cells &&trttylertfunctaTypnsde if )aete{t.ra ax*op +=zparspFloat compu" dStyle.borderTopWidtha ) e; 0tafuncteleft +="parspFloat compu" dStyle.borderLef Widtha) e; 0tafunct- e functprevOffsp Pav, +r==offsp Pav, +tafunctoffsp Pav, +r==taTypoffsp Pav, +;yext;}a-octiti= da mouseeoffsp .subtractsBorderForOverflowNotVisibleserycompu" dStyle.overflowp!!Ta visible"r proext;;*op +=zparspFloat compu" dStyle.borderTopWidtha ) e; 0tafunctleft +="parspFloat compu" dStyle.borderLef Widtha) e; 0tafunc}a-octitprevCompu" dStyle =ocompu" dStyle; -/g}oea-/gdeTypprevCompu" dStyle.posittoc +yTa r{lative" resprevCompu" dStyle.posittoc +yTa \tatic"r proext;*op +=zbody.offsp Top; .ra left +="body.offsp Lef ; f/g}oea-/gdeTyp mouseeoffsp .supf susFixedPosi+ cup._ prevCompu" dStyle.posittoc +yTa fixed" )Style.g*op +=zMath.max(.docEaTyps, ollTop,sbody.s, ollTop ext;left +="Math.max(.docEaTyps, ollLef ,sbody.s, ollLef ); -/g}oea-/grvery.ir yop:Xtop,zleft:Xleft }"aTy};s+/** + * Gets+auwifdow from rn eaTyeOrc+ */l0alProtocoge Wifdow(zps - )e: +crvery.id /* inisWifdow(zps - )e?ee( ps - :ee( ps -.nsde || s{yTa9 ?ee( nps -.de justView re eaTy.pav, +Wifdow iee( nly dang = eap mouseeoffsp +t): fct/itial= 0:XXX fielde proexty wobodyp="docweird.body,ccoypah erc= docweird.crd()eEfor(; ("div"),oinnerDiv,ccheckDiv,cttyle,ctd,sbodyMarginTopTt parspFloat .supporcss\body,c"marginTop")a) e; 0,octithtmlsTa <tiv style='posittoc:absolute;yop:0;left:0;margin:0;border:5px solid #000;pads+ t:0;width:1px;heen; :1px;'><tiv></tiv></tiv><ttylecstyle='posittoc:absolute;yop:0;left:0;margin:0;border:5px solid #000;pads+ t:0;width:1px;heen; :1px;' cellpads+ t='0' cellspaci t='0'><tr><td></td></tr></ttyle>";oea-/g mouseeent ===hcoypah erpstyle,ir posittoc: "absolute", yop:X0,zleft:X0, mmrgin:X0, border:X0, width: "1px",cheen; : "1px",cvisibility: "hidden" }))+ fyfuncoypah erpinnerHTML ==html; -/gbody.svar cBhe redacoypah er,sbody.f(ddeC - ds+da-/gdnnerDiv =Qcoypah erpf(ddeC - dda-/gcheckDiv ="innerDivpf(ddeC - dda-/gtd ="innerDivpnrucSibli tpf(ddeC - dpf(ddeC - dda-a-/gt/"..doeaNotAddBorderc= (checkDiv.offsp Topp!!Ta5t;c clt/"..doeaAddBorderForTtyleA( Cells = (td.offsp Topp=!Ta5t;c a-/gcheckDiv.style.posittoc +a fixed";a-/gcheckDiv.style.top =z"20px";Te clnal afari subtracts pav, + border-widtha fra w i+ is 5pxc clt/"..supf susFixedPosi+ cup= (checkDiv.offsp Topp=!Ta20 res heckDiv.offsp Topp=!Ta15t;c clcheckDiv.style.posittoc +acheckDiv.style.top =z"";Te clinnerDivpstyle.overflow pr hidden" extinnerDivpstyle.posittoc +a r{lative"da-a-/gt/"..subtractsBorderForOverflowNotVisibles= (checkDiv.offsp Topp=!Ta-5t;c a-/gt/"..doeaNotInclud MarginInBodyOffsp s= (body.offsp Top !yTabodyMarginTopt;c a-/gbody.==g (jC - dctcoypah erct;c cl mouseeoffsp .t/itial= 0 + t, - sop; .r}ylft.tbodyOffsp : /<script\bbodyp)c tTyt setop =zbody.offsp Top,octitlef p="body.offsp Lef ; fa-/g mouseeoffsp .t/itial= 0()+ fyfuni= da mouseeoffsp .doeaNotInclud MarginInBodyOffsp s)Style.g*op +=zparspFloat .supporcss\body,c"marginTop")a) e; 0 ext;left +="parspFloat .supporcss\body,c"marginLef ")a) e; 0 ext}oea-/grvery.ir yop:Xtop,zleft:Xleft }"aTy}ylft s .Offsp :XXX fieldeops -, || va,oip)c tTyt seposittoc +a.supporcss\bps -, "posittoc"+tas+xny wocurPosi+ cu,ocurLef ,scurCSSTop,scurTop,scurOffsp ,scurCSSLef ,scalcul()ePosi+ cu,ee( nposittoc +a.supporcss\bps -, "posittoc"+t,ee( ncurEaTy ="yle.fie(ps - ),ee( nprop. =o{n }ta clnal p sposittoc f(dde,oin-c { +top/left e, +seriedanron s atic(ps -a cldeTypposittoc +yTa \tatic"r pro taTypstyle.posittoc +a r{lative"da0/ }l T-e.y wocurEaTy ="yle.fie(ps - ),e-( ncurOffsp s= curEaTyeoffsp (),e-( ncurCSSTop +a.supporcss\bps -, "top" ),e-( ncurCSSLef p=".supporcss\bps -, "left" ),e-( ncalcul()ePosi+ cus= (posittoc +yTa absolute" resposittoc +yTa fixed")cery.supporhnAin o( uto", [curCSSTop,scurCSSLef ]) >j-1,octitprop. =o{n,ocurPosi+ cu =o{n,ocurTop,scurLef ; + ncurOffsp s= curEaTyeoffsp (); + ncurCSSTop +a.supporcss\bps -, "top" ); + ncurCSSLef p=".supporcss\bps -, "left" );fy(ecrecul()ePosi+ cus= ( posittoc +yTa absolute" resposittoc +yTa fixed" f ._ + ncd /* inhnAin o( uto", [ curCSSTop,scurCSSLef aute>j-1 }ta clnalapesTto b tylecto crecul()esposittoc deTei } etop orXleft is utolend posittoc dsTei } eabsoluteuues ixeda cldeTypcrecul()ePosi+ cus pro@@ -8756,11 +10086,11 @@o ap t?=- || va. resaats -,oi,scurOffsp t rbr"tut.teh= d || va.top !y }); p{octitprop..top =zd || va.top -scurOffsp .topa)+ecurTop; 0 )i= da || va.top !y }); }te: e( nprop..top =zd || va.top -scurOffsp .top a)+ecurTop; t;}a-/gh= d || va.left !y }); p{octitprop..lef p="d || va.left -scurOffsp .lefta)+ecurLef ; + ni= da || va.left !y }); }te: e( nprop..lef p="d || va.left -scurOffsp .left a)+ecurLef ; rbr"tut cldeTyp"ri+ t"ei - || vas pro@@ -8771,166 +10101,237 @@o "tu};seaT mouseentr nt === "+toffsp :a/<script\bver currtc t+ ni= daea weird .ters = pro+unlrvery.iopr t?==+ 't get/set?ee( ngt/". iee( ngt/".. \//,- serialioip)c t0 )ger mouseeoffsp .s .Offsp \b*/"., o r| va,oi +))))}s;v+te} +s+xny wodocEaTy,zwif,ee( nbox[=or yop:X0,zleft:X0 },ee( nps - ="*/".[t0 a,c+un docr==taTyp._ es -pownerDocweird; +s+xni= da!doc pro+unlrvery.;v+te} +s+xndocEaTy ="doc.docweirdEfor(; eT+ +nn/ecMmentsuracit'spaot oati"coynut dTDOM nsdet+xni= da!.supporcTypah s docEaTy,zps - )e)c t+unlrvery.ibox; +}i}T+ +nn/ecIft indon't= - jQgBCR, just=ring0,0 ra } ethrn err// +nn/ecBlackBerry 5,oiOS 3"d pug(nal iPhone)t+xni= dans (= 1taTypge Bo't if Cli(; R { !yTastr't get/set pro+tinbox[=otaTypge Bo't if Cli(; R { ()da+ )"te( winn==ge Wifdow(odocrt;c+nn dataTy{ +e.g*op:"box.top +e("win.pageYOffsp tresdocEaTyps, ollTop ) p- ("docEaTypcli(; Top pres0 ),ee( nleft:Xbox.left +e("win.pageXOffsp tresdocEaTyps, ollLef )p- ("docEaTypcli(; Lef pres0 )l+))}; +x},fyo posittoc: - seriali procti; - !*/".[0tp)c tTytcrvery.it{ -+ti; - !*/".[t0 a tpro+unlrvery.;v0/ }l T-e.y wotaTy ="*/".[0t s+xny wooffsp Pav, +,ooffsp ,ee( npav, +Offsp s= r yop:X0,zleft:X0 },ee( nps - ="*/".[t0 aeT y.tee - ) {*Qu(l*ooffsp Pav, +y.teoffsp Pav, +r==t/"..affsp Pav, +(),fy(ee - ixed. for(; s areooffsp from wifdow (pav, +Offsp s= ryop:0,zleft:X0n,obecaringic iagicsnonlygoffsp pav, +-+ti; - .supporcss\bps -, "posittoc"+t +yTa fixed" )Sty+nne/ wlme (wei );at=ge Bo't if Cli(; R { is vailtyle. funcompu" d posittoc dsT ixeda+nctoffsp [=otaTypge Bo't if Cli(; R { ()da+ )"putedSty+nne/ ) {*Qu(l*ooffsp Pav, +y+nctoffsp Pav, +r==t/"..affsp Pav, +()eT y.tee - ) {cor( ( uaffsp sy.teoffsp ==t/"..affsp (),e-( pav, +Offsp s= rrootrtfuncaffsp Pav, +[0tpnsde if )[? { yop:X0,zleft:X0 } :ooffsp Pav, +eoffsp (); + nee - ) {cor( ( uaffsp sy+nctoffsp [=ot/"..affsp (); + nei= da!.suppornsde if (ooffsp Pav, +[t0 a, "html" " )e: +)ry(pav, +Offsp s= offsp Pav, +eoffsp (); + ne} eaTyte -SubtractaelTyeOrimargins + nee -Addeoffsp Pav, +rbordersee( npav, +Offsp .*op +=z.supporcss\boffsp Pav, +[t0 a, "borderTopWidth", trnstt e( npav, +Offsp .left +=".supporcss\boffsp Pav, +[t0 a, "borderLef Width", trnstt e( }T+ +nn/ecSubtractapav, + affsp slend elTyeOrimargins clnalao)n funantelTyeOritas.mmrgin:X utolth +offsp Lef lend marginLef clnalarey : sn tn Safari cariif ioffsp .left do incor( ( lygb 0y.teoffsp .top p-=oparspFloat .supporcss\ps -, "marginTop")a) e; 0 extoffsp .left -=oparspFloat .supporcss\ps -, "marginLef ")a) e; 0 eaTyte -Addeoffsp Pav, +rborderse- npav, +Offsp .*op +=zparspFloat .supporcss\affsp Pav, +[0t, "borderTopWidth")a) e; 0 extpav, +Offsp .left +="parspFloat .supporcss\affsp Pav, +[0t, "borderLef Width")a) e; 0 eaTyte -Subtracta : twouaffsp sy nn dataTy{ -e.g*op:" offsp .top p- pav, +Offsp .*op,octitlef :ioffsp .left - pav, +Offsp .left +e.g*op:" offsp .top p- pav, +Offsp .*opp- .supporcss\bps -, "marginTop", trnstt,ee( nleft:Xoffsp .left - pav, +Offsp .leftp- .supporcss\bps -, "marginLef ", trns)v0/ }; ,} ut caffsp Pav, +: - seriali pro tcrvery.i*/"..map,- seriali key-nct( " offsp Pav, +r==t/"..affsp Pav, +=resdocweird.body ext;w - affsp Pav, +=nve(!rrootrtfuncaffsp Pav, +pnsde if )[ery.supporcss\affsp Pav, +, "posittoc") +yTa \tatic"" )e: +)ry( " offsp Pav, +r==t/"..affsp Pav, +=resdocEaTy;a+ +)ryw - affsp Pav, +=nve(a!.suppornsde if (ooffsp Pav, +, "html" " ery.supporcss\ooffsp Pav, +, "posittoc"+t +yTa \tatic"r p pro toffsp Pav, +r==offsp Pav, +eoffsp Pav, +;yrbraho-nclrvery.ioffsp Pav, +;y+nclrvery.ioffsp Pav, +=resdocEaTy;a C/; e "tu});seaT - Crd()eis, ollLef aaTy , ollTop this.mrl- ( curr \//, ["Lef ", "Top"]ye/<script\bion}n t te{t.r( " this.m{=i"\, oll"e =nn t + ( curr \//, {is, ollLef ie"pageXOffsp ",y , ollTopie"pageYOffsp " }ye/<script\bthis.m,oprop te: +t setop =z/Y/: functprop t;cut c mouseent[lthis.m{au==- serializve; tS tTyty wotaTy,zwif;c+nn dataTyaccurn\b*/"., XX fieldeops -, this.m,ove; tS t+)ry( " winn==ge Wifdow(ots - ); y.te( datve; !pr't get/set pro-( nps - ="*/".[t0 aeT-octiti= da!ps - )e: functrvery.it{ -+tie( datve; !pr't get/set pro+unctrvery.iwinn? (prop i.iwin)[? win[ p+ p ]piee( ng win.docweird.docweirdEfor(; [lthis.m{auiee( ng ps -[lthis.m{a rbrahout.tetwinn==ge Wifdow(ots - ); -octit/ecR=ery.i*/eis, ollioffsp o-nclrvery.iwinn? ("pageXOffsp " i.iwin)[? win[ i ?r"pageYOffsp " ie"pageXOffsp "{auiectite mouseesupf su.boxMsde + s.win.docweird.docweirdEfor(; [lthis.m{aureoctite win.docweird.body[lthis.m{auie- ng ps -[lthis.m{a ext}oea-/ge -+ * */eis, ollioffsp o-ncrvery.i*/".. \//,/<script\)e: funcwinn==ge Wifdow(o*/". e rbra( datw( t pro ite win. , ollTo(octite !i ?rve; : mouseatw( t ps, ollLef (),e-( n i ?rve; : mouseatw( t ps, ollTop()ee( ng !top ?rve; : mouseatw( t ps, ollLef (),ee( ng top ?rve; : mouseatw( t ps, ollTop()e ite t;cut cnc/putedStyle.ge*/".[tthis.m{au==ve; +))))ps -[lthis.m{au==ve; rbraho-nc}teTe( }, this.m,ove;,aea weird .ters =, }); + ; e ";tu});seaTalProtocoge Wifdow(zps - )e: -crvery.id /* inisWifdow(zps - )e?e-( ps - :e-( ps -.nsde || s{yTa9 ?e-( nps -.de justView re eaTy.pav, +Wifdow ie-( nly dang-}a+/ecAdde : top/left cssHooks riif i mouseentrposittoca+/ecWebkiu=bug: https://fugs.webkiu.org/\how_fug.cgi?id=29084a+/ecge Compu" dStyle+ dataTslperc, += fun"autif>+ ;auestop/left/bottom/ren; a+/ecra } ethrn mmentt - css modul def ( ron th +offsp modul ,L i just=check;auesiu= fra + ( curr \//, [ "top", "left" ]ye/<script\bionprop te: +t.supporcssHooks[ p+ p ]p= add ) HookIf( supf su.pixelPosi+ cu,ee( XX fieldeops -, compu" d ac t+/g,( datcompu" d ac t+/g,tcompu" ds= curCSS\bps -, prop t;c+nnexnalTMLcurCSS+ dataTslperc, +age,Qly lsion do offsp o+unctrvery.irnumnonpx: functcompu" d ac?t0 )ger mouse(zps - )rposittoc()[ p+ p ]p+e"px" iee( ng compu" d; + ne} + )"te()+ +/ a+/ecCrd()eiinnerHeen; ,oinnerWidth,cheen; , width, ouperHeen; aaTyouperWidthathis.mrl+ ( curr \//, {iHeen; : "heen; ", Width: "width" /- /<script\bon thet ( +te: +t.suppor \//, {ipads+ t:z"inner].+bon thecoypeOr:z s (, "":z"ouper].+bon t /- /<script\bde justExtra- /<sc if aeec+ue/ mmrgin dsTonlygauesouperHeen; ,youperWidth +un mouseent[l/<sc if au==- serializmmrginhe/ The tS t+)ry( " chaintylec+ ea weird .ters = nve(ade justExtraeot *s (= 1mmrgin !yTa boolean".c,ee( ngextrae=ade justExtraeot izmmrgin ===e*rnstresve;uaa =+ *rnst? "margin" ie"border" )+ ea+nclrvery.iaccurn\b*/"., XX fieldeops -, s (, / The tS t+)ryny wodoc f/ecCrd()eiinnerHeen; ,oinnerWidth,couperHeen; aaTyouperWidthathis.mrl- ( curr \//,[ "Heen; ", "Width" ]ye/<script\bionnif aeec+ueit; - t, - heWifdow(zps - )e)c t0 )ger/ecAs[of(5/8/2012o*/". = "?yield incor( ( +r{sustsgforsMob- Safari,zbu* */eret0 )ger/ecian't=a= ole lootwelcan?do.-+ e p); +r{qufun+at=*/". URLgforsti"cusstoc:t0 )ger/echttps://github.som/jq cur/jq cur/p); /764t0 )ger f - jits -.docweird.docweirdEfor(; [l"cli(; ].+bon t ];y0 )gehout.t set ( +t)on t.*oLowerCase(t;c+nnexnal ) {docweirdpwidthaLocheen; c+ueit; - ps -.nsde || s{yTa9 )c t0 )gerdocr==taTypdocweirdEfor(; eT y.t nuinnerHeen; aaTyinnerWidth le mouseent["inner].+bon tau==/<script\ac t-ncrvery.i*/".[0tp?e-( nparspFloat .supporcss\"*/".[0t s (, "pads+ t"r p pie-( nt{ -e,n;t0 )ger/ecEi } es, oll[Width/Heen; ]aLocoffsp [Width/Heen; ]aLoccli(; [Width/Heen; ], w i+ ev} e". grd()estt0 )ger/ecunfortun()elyhe*/". carins=bug #3838 icoIE6/8Tonly,zbu* */eree". curv, +lygno go.m,osmall way /rsfixsiu.t0 )ger f - jiMath.max(t0 )gernps -.body[l"\, oll"e =nn t ]yedoc[l"\, oll"e =nn t ]yt0 )gernps -.body[l"offsp "{ =nn t ]yedoc[l"offsp "{ =nn t ]yt0 )gerndoc[l"cli(; ].+bon t ]t0 )ger);y0 )gehout.te -ouperHeen; aaTyouperWidth le mouseent["ouper].+bon tau==- serializmmrgin ac t-ncrvery.i*/".[0tp?e-( nparspFloat .supporcss\"*/".[0t s (, mmrgin ? "margin" ie"border" )p pie-( nt{ -e,n;t0 )gervery.ive;uaa =+ 't get/set?ee( ngxnal ) {widthaLocheen; ron th +elTyeOr,+r{qufunif ibu* aot f+ "if iparspFloatt0 )ger mouseecss\bps -, s (, extraea)ie fn mouseent[lt ( +au==- serializs= 0 procti/ ) {wifdow widthaLocheen; c-e.y wotaTy ="*/".[0t;octi; - !ps - )e: func f - ji = 0 +y }); }? }); }:i*/".il-t; -0 )ge e -+ * widthaLocheen; ron th +elTyeOrt0 )ger mouseestyle\bps -, s (, / The, extraea; + ne}, s (, chaintylec? mmrgin :c't get/se, chaintyle, }); + ; +))}; +x})+ +/ -it; - t, - heF serializs= 0 ptc tTytcrvery.i*/".. \//,/<script\bit proctitey woself+).yle.fie(*/". atafunctself[lt ( +aizs= 0. resaa*/".,oi,sself[lt ( +ai ptc ext;} - )"tut.teh= dat, - heWifdow(zps - )e)c tctit/ecEv} yone utedSringdocweird.docweirdEfor(; orsdocweird.body def ( if ion Quirks vs-Standards modetctit/ec3rdecoydittoc allows Nokia supf su,rasait supf susp*/- docEaTy p+ p bu* aot CSS1Compaty-nct( " docEaTyProp =zts -.docweird.docweirdEfor(; [l"cli(; ].+bon t ];yTytcrvery.its -.docweird.compatMsde +yTa CSS1Compat"+ s.docEaTyProp ree- ng ps -.docweird.body[l"cli(; ].+bon t ]=resdocEaTyPropeT+/ecThe numbert= 1taTy(; s coypah e ry.c);n m// fed. for(; etse mouseentr = 0 +=/<script\ac t+/rvery.i*/"..ters ="a0}; eaTytnal ) {docweirdpwidthaLocheen; c-/ n " + edeTypps -.nsde || s{yTa9 )c tctit/ecEi } es, oll[Width/Heen; ]aLocoffsp [Width/Heen; ], w i+ ev} e". grd()eryTytcrvery.iMath.max(t- ng ps -.docweirdEfor(; ["cli(; ].+bon t],t- ng ps -.body["\, oll"e =nn t],=taTypdocweirdEfor(; ["\, oll"e =nn t],t- ng ps -.body["offsp "{ =nn t],=taTypdocweirdEfor(; ["offsp "{ =nn t]t- ng);se mouseentrandSelf+).yle.fientraddBion iut.tee - ) {Locson widthaLocheen; ron th +elTyeOrt-/ n " + edeTyp = 0 +ypr't get/set pro-( n( " opug =- mouseecss\bps -, s ( ),e-( ncrveTt parspFloat opug ) iut.tetrvery.id /* inisNaN(+rp s)S? opug :+rp ; eaTyte -S * */eiwidthaLocheen; ron th +elTyeOr (de just}/rspixels(TMLve;uaa".c'titlurn)t-/ n " + e tTytcrvery.i*/"..css\"*s (, ns (= 1e= 0 +ypr if ].?1e= 0 :1e= 0 +e"px" )+ f/g} Ty};seaT/) i+/ecRegispnd aaTypnn td AMD modul ,Lsinceid /* ilcan?b +coyc(tnn()ed-= s.co } t+e - ilur );at=may ringdget/s, bu* aot via a proper+coyc(tnn()toc \, - r );att+e -'t grs andslenonymous AMD modul s. Apnn td AMD ". Taffun+and moun+robustt+e -way /rsregispnd. Lowerc { +jq cura".c'speTbecaringAMD modul pnn ts arel+/ecderiv+ ;arom ilupnn ts,+and d /* ilisnnit ally deliv+re ry.ca lowerc { t+e - ilu)on t. Do(*/". afpnd rd()+ tf); global so // otiforn AMD modul pwan sy+e -to crelnniConflict}/rshideCth". v+rstocu= 1d /* i,nic w "?work.t0i= dans (= 1dget/s +yTa f<script"+ s.dget/s.amd ac t+/dget/s( "jq cur", [],=/<script\ac t+/trvery.id /* i; +x})+ +/ a-wifdow.d /* il="wifdow.$ =- mouseng-})(wifdow);a+ +tey w +n/ecMmp over d /* iliTy rs]sofooverwritet0 _d /* il="wifdow.d /* i,a+ +)/ecMmp over ); $liTy rs]sofooverwritet0 _$l="wifdow.$;a+ +.suppornsConflict}==- serializdeep te: +t( datw( dow.$ ===- mouse )c t0 )wifdow.$ =-_$ng+ nge +t( datdeep s.window.d /* il===- mouse )c t0 )wifdow.d /* il="_d /* i; +x}ge +trvery.id /* i; +};a+ +/ecExposeid /* iland $lideOrif>+rayeedanrica+/ecAMD (#7102#comyeOr:10,chttps://github.som/jq cur/jq cur/p); /557)a+/ecand CommonJSgforsbrowser emul()ors (#13566)t0i= dans (= 1noGlobal =yTastr't get/set pro+twifdow.d /* il="wifdow.$ =- mouseng+}a+ +tetetervery.id /* i; + +/ );aI?):[: openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js =================================================================== RCS- ilu: /usr/loc(l/cvsroot/openacs-4/pionages/xowiki/www/resources/jq cur/Attic/jq cur.min.js,v tiff.-u -r1.3 -r1.3.2.1 --- openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js 13-S p 2012o16:06:47 -0000 1.3 +++ openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js 14 Apr 2014 21:10:55 -0000 1.3.2.1 @@ -1,18 +1,4 @@o-/*! - *id /* ilJavaS, - r Libra ilv1.6.1 - *ihttp://jq cur.som/ - * - *iCopyren; t2011, JohncR=sig - *iDual );censpeT't gr ); MITaLocGPL V+rstocu2 );censps. - *ihttp://jq cur.org/);censp - * - *iInclud s-Sizzle.js - *ihttp://sizzlejs.som/ - *iCopyren; t2011, The Dojo Fo't ()Ext l *iRelTaspeT't gr ); MIT, BSD,+and GPL L;censps. - * - *iD()n ThucMmy 12o15:04:36t2011 -0400 e */l-,/<script\a,b){alProtococy(a){rvery.if heWifdow(a)?a:a.nsde || ===9?a.de justView||a.pav, +Wifdow:!1}alProtococv(a){if(!cj[a]){y wob=f("<"+a+">" .rif ( To( body"),d=b.css\"ti"alay");bp==g (ju) if(d=== ncne"||d=== "){ck||(ck=c.crd()eEfor(; ("i=rn t"),ck.=rn tBorder=ck.width=ck.heen; =0),c.body.rif ( C - d(ck) if(!cl||!ck.crd()eEfor(; )cl=(ck.coypeOrWifdow||ck.coypeOrDocweird).docweird,cl.writee"<!doc s (><html><body></body></html>");b=cl.crd()eEfor(; (a),cl.body.rif ( C - d(b),d=frcss\b,"ti"alay"),c.body.==g (jC - dcck)}cj[a]=d} dataTy j[a]}alProtococu\a,b){( " c={};f/ \//,cp.coyc(t/ iflye[],cp.s);ce(0,b)),/<script\a{c[t/".]=a})+ dataTy }alProtococt\a{cq=b}alProtococs\a{sp Timeout(ct,0)+ dataTy q=frnowi }alProtococi\a{try{rvery.inew a.ActiveXO ) { ("Mi, osoft.XMLHTTP")}c// f(b){}}alProtococh\a{try{rvery.inew a.XMLHttpR{qufun}c// f(b){}}alProtococb\a,c){a.dataF bind&&(c=a.dataF bind(c,a.dataT ( );( " d=a.dataT ( s,e={},g,h,i=d.ters =,j,k=d[0t l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(hry.ca. Ty depndr)ns (= 1h== if ]&&(e[h.*oLowerCase(t]=a. Ty depndr[h]);l=k,k=d[g] if(k=== *")k=l;" + ede(l!== *"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k] if(!n){p=b;for(o in e){j=o.c );t( ") if(j[0t===l||j[0t=== *"){p=e[j[1]+" "+k] if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);brd(k}}}}!n&&!p&&f rr//u"No Ty destocuarom "+m)- n" && " ","}/rs")),n!==!0&&(c=n?n(c):p(o(c)))}} dataTy }alProtococa\a,c,d){( " e=a. TypeOrs,f=a.dataT ( s,g=a.r{sponsaFields,h,i,j,k;for(iei -g)iei -d&&(c[g[i]]=d[i]);w - (f[0t=== *")f.shif (),h===b&&(h=a.mimeT ( ||cpge R{sponsaHeader(" TypeOr-t ( ")) if(h)for(iei -e)if(e[i]&&e[i]: funch)){a.unshif (i);brd(k}if(f[0ti -d)j=f[0t;" + {for(iei -d){if(!f[0t||a. Ty depndr[i+" "+f[0t]){j=i;brd(k}k||(k=i)}j=j||k}if(j){j!==f[0t&&f unshif (j)+ dataTyd[j]}}alProtocob_\a,b,c,d){if(f heAin o(b))f/ \//,b,/<script\b,e){c||bF: funca)?d\a,e):b_\a+"["+(ns (= 1t== h ) { ]||f heAin o(e)?b: ")+"]",e,c,d)})+" + ede(!c&&b!=}); &&ns (= 1b== h ) { ])for(( " eei -b)b_\a+"["+e+"]",b[e],c,d)+" + ed\a,b)}alProtocob$\a,c,d,e,f,g){a=f||cpdataT ( so0t g=g||{},g[f]=!0;( " h=a[f],i=0,j=h?h.ters =:0,k=a===bU,l;for(;i<j&&(k||!l) i++)l=hoi])c,d,e),ns (= 1l== if ]&&(!k||g[l]?l=b:(cpdataT ( s unshif (l),l=b$\a,c,d,e,l,g))) (k||!l)&&!g["*"t&&(l=b$\a,c,d,e,"*",g))+ dataTyl}alProtocobZ(a){rvery.if<script\b,c){ns (= 1b!= if ]&&(c=b,b= *");if(f heF serialic)){( " d=b.*oLowerCase(t.c );t(bQ),e=0 g=d.ters =,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/: funch),j&&(h=h.sub (1)|| *"),i=a[h]=a[h]||[],i[j?"unshif ":"push"])c)}}}alProtocobD\a,b,c){( " d=b=== width"?bx:by,e=b=== width"?aeoffsp Width:aeoffsp Heen; ;if(c=== border")rvery.it;f/ \//,d,/<script\a{c||(e-=parspFloat frcss\a,"pads+ t"+t/".))||0),c=== margin"?e+=parspFloat frcss\a,"margin"+t/".))||0:e-=parspFloat frcss\a,"border"+t/".+"Width"))||0})+ dataTye}alProtocobt\a,b){b.src?feajax(:url:b.src,async:!1,dataT ( :"\, - r"}):f.globalEve;,(b.*ext||b.*extCTypeOr||b.innerHTML|| "))- n" && bf,"/*$0*/")),b.pav, +N.no&&b.pav, +N.no.==g (jC - dcb)}alProtocobm(a){frnsde if (a,"inpu ])?bl(a):aege Efor(; sByTag if &&f trep(aege Efor(; sByTag if ("inpu ]),bl)}alProtocobl(a){if(a.t|| ==="checkbox"||a.t|| ==="radio")a.de justChecked=a.checked}alProtocobk(a){rvery."ge Efor(; sByTag if "y.ca?aege Efor(; sByTag if ("*"):"q curSelect rAll"y.ca?aeq curSelect rAll("*"):[]}alProtocobj\a,b){( " c;if(b.nsde || ===1){b.clua Attribu fu&&b.clua Attribu fu(),b.mergeAttribu fu&&b.mergeAttribu fu(a),c=brnsde if .*oLowerCase(t;if(c=== h ) { ])b.ouperHTML=a.ouperHTML+" + ede(c!== inpu ]||a.t|| !=="checkbox"&&a.t|| !=="radio"){if(c=== hpttoc")b.selected=a.de justSelected+" + ede(c=== inpu ]||c=== *extav,a")b.de justVe;ua=a.de justVe;ua}" + ea.checked&&(b.de justChecked=b.checked=a.checked),b.ve;ua!==a.ve;ua&&(b.ve;ua=a./ The+;bp==g (jAttribu f frexpando)}}alProtocobi\a,b){if(b.nsde || ===1&&!!f.hasD()a\a)){( " c=frexpando,d=frd()a\a),e=frd()a\b,d)+if(d=d[c]){y wog=d.edants;e=e[c]=frext === },d)+if(g){desion e.handle,e.edants={};for(( " hei -g)for(( " i=0,j=g[h].ters ="i<j i++)f.edantradd\b,h+(g[h][i]:nn tsp &&?".": ")+g[h][i]:nn tsp &&,g[h][i],g[h][i]rd()a)}}}}alProtocobh\a,b){rvery.if nsde if (a,"ttyle])?aege Efor(; sByTag if ("tbody")[0t||a.rif ( C - d(apownerDocweird.crd()eEfor(; ("tbody")):a}alProtocoX\a,b,c){b=b||0;if(f heF serialib))rvery.if trep(a,/<script\a,d){( " e=!!b. resaa,d,a)+ dataTye===c});if(b.nsde || )rvery.if trep(a,/<script\a,d){rvery.ia===b===c});if(ns (= 1b== if ]){( " d=f trep(a,/<script\a){rvery.ia.nsde || ===1});if(S: funcb))rvery.if f bind\b,d,!c);b=f f bind\b,d)}rvery.if trep(a,/<script\a,d){rvery.ifnhnAin o(a,b)>=0===c})}alProtocoW\a){rvery.!a||!a.pav, +N.no||a.pav, +N.no.nsde || ===11}alProtocoO\a,b){rvery.(a&&a!== *"?a+".": ")+b)- n" && A,"`"))- n" && B,"&")}alProtocoN\a){y wob,c,d,e,g,h,i,j,k l,m,n,o,p=[],q=[],r=f _d()a\*/".,"edants");if(!(apliv+Fi+ed===*/".||!r||!rpliv+||a.targp .distyled||a.bu ton&&a.t|| ==="click")){a.nn tsp &&&&(n=new RegExp("(^|\\.)"+a.nn tsp &&.c );t( ."))join("\\.(?:.*\\.)?")+"(\\.|$)")),apliv+Fi+ed=*/".iy wos=rpliv+.s);ce(0);for(i=0;i<..ters ="i++)g=s[i],g.opug || )- n" && y, ")===a.t|| ?q.push(g.select r):a.c );ce(i--,1)+"=f(a.targp ).closfuncq,apcurv, +Targp );for(j=0,k=e.ters ="j<k;j++){m=e[j];for(i=0;i<..ters ="i++){g=s[i];if(m.select r===g.select r&&(!n||n: funcg.nn tsp &&))&&!m.ps -pdistyled){h=m.ps -,d=t{ if(g.pre || ==="mouseeOre)]||g.pre || ==="mouseluave")a.t|| =g.pre || ,d=f(a.r{l()edTargp ).closfuncg.select r)o0t d&&f cTypah s h,d)&&(d=h) (!d||d!==h)&&p.push({ps -:=,handleObj:g,ledal:m.ledal})}}}aor(j=0,k=p.ters ="j<k;j++){e=p[j];de(c&&e.ledal>c)brd(k;apcurv, +Targp =e.ps -,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.opugHandler/ iflyee.ps -,aa weird );if(o===!1||a.isPropag()ExtStoif d()){c=e.ledal,o===!1&&(b=!1);if(a.isImmedi()ePropag()ExtStoif d())brd(k}}rvery.ib}}alProtocoL\a,c,d){( " e=frext === },do0t)+".t|| =a,e. pug(nalEdant={},epliv+Fi+ed=b,f.edantrhandle. resac,e),e.isDe justPredant d()&&do0t.predantDe justi }alProtocoF(){rvery.!0}alProtocoE(){rvery.!1}alProtocom\a,c,d){( " e=c+"de e)] g=c+"q cue",h=c+"mark",i=frd()a\a,e,b,!0);i&&(d==="q cue"||!frd()a\a,g,b,!0))&&(d==="mark"||!frd()a\a,h,b,!0))&&sp Timeout(/<script\a{!frd()a\a,g,b,!0)&&!frd()a\a,h,b,!0)&&(fp==g (jD()a\a,e,!0),i.r{sol(ju))},0 }alProtocol(a){for(( " bry.ca)if(b!== toJSON")rvery.!1;rvery.!0}alProtocok\a,c,d){if(d===b&&a.nsde || ===1){( " e="d()a-"+c)- n" && j,"$1-$2"))*oLowerCase(t;d=a.gp Attribu f e);if(ns (= 1d== if ]){try{d=d=== *rue"?!0:d=== ly da"?!1:d=== t{ "?t{ :fnisNaN(d)?i: funcd)?frparspJSONcd):d:parspFloat d)}c// f(g){}frd()a\a,c,d)}" + ed=b}rvery.id}( " c=a.docweird,d=a.navig()or,a=a.loc(t cu,f=/<script\a{alProtocoH(){if(!e.isReady){try{c.docweirdEfor(; .doS, oll("left")}c// f(aa{sp Timeout(H,1)+rvery.} )- adyi }}( " e=f<script\a,b){rvery.inew eentrt/it\a,b,h)},f=a.d /* i,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|*rue|ly da|t{ |-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkiu)[ \/]([\w.]+)/,t=/(opera)(?:.* destoc)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgird,x,y,z,A=O ) { pp+ tons ()*oS if ,B=O ) { pp+ tons ()hasOwnProperty,C=Ain opp+ tons ()push,D=Ain opp+ tons ()s);ce,E=S if pp+ tons ()*rim,F=Ain opp+ tons ()h?):[Of,G={};eent=e.p+ tons (={cTystr'ct r:e,t/it:/<script\a,d,f){y wog,=,j,k;if(!a)rvery.i*/".iif(a.nsde || ){*/"..coypeuc=*/".[0t=a,*/"..ters ==1;rvery.i*/".}if(a=== body"&&!d&&c.body){*/"..coypeuc=c,*/".[0t=c.body,t/"..select r=a,*/"..ters ==1;rvery.i*/".}if(ns (= 1a== if ]){a.cha At(0)!== <]||a.cha At(a.ters =-1)!== >]||a.ters =<3?g=i.e ec(a):g=[t{ ,a,t{ ];de(g&&(g[1t||!d)){if(g[1t){d=dry.s anc(= 1t?do0t:d,k=d?dpownerDocweird||d:c,j=n.e ec(a),j?e.isPlah O ) { (d)?(a=[c.crd()eEfor(; (j[1])],eentrattr. resaa,d,!0)):a=[k.crd()eEfor(; (j[1])]:(j=e.buildFragmexp,[g[1t],[k]),a=(j. /chatyle?e.clon& j.aragmexp):j.aragmexp).c - dN.nos)+ dataTyenmerge\*/".,a)}h=cege Efor(; ById(g[2]) if(h&&h.pav, +N.no){if(h.id!==g[2])rvery.if f ===a)+*/"..ters ==1,*/".[0t=h}*/"..coypeuc=c,*/"..select r=a;rvery.i*/".}rvery.!d||d.jq cur?(d||f) f ===a):*/"..coystr'ct r(d) f ===a)}if(e heF serialia))rvery.if - adyia)+a.select r!==b&&(*/"..select r=a.select r,*/"..coypeuc=a.coypeuc)+ dataTyenmakeAin o(a,t/".)},select r: ",jq cur:"1.6.1",ters =:0,e= 0:/<script\a{rvery.i*/"..ters =},toAin o:/<script\a{rvery.iD. resa*/".,0 },ge :/<script\a){rvery.ia==t{ ?*/"..toAin o():a<0?*/".[*/"..ters =+a]:*/".[a]},pushStack:/<script\a,b,c){( " d=*/"..coystr'ct r()+".heAin o(a)?C/ iflyed,a):enmerge\d,a),d.predO ) { =*/".,d.coypeuc=*/"..coypeuc,b=== f =="?dpselect r=*/"..select r+(*/"..select r?" ": ")+c:b&&(dpselect r=*/"..select r+ ."+b+"("+c+")")+ dataTyd},e/ch:f<script\a,b){rvery.ie/ \//,*/".,a,b)},- ady:/<script\a){e.b ==R adyi ,y.done(a)+ dataTy*/".},eq:/<script\a){rvery.ia===-1?*/"..s);ce(a):*/"..s);ce(a,+a+1)},f(dde:/<script\a{rvery.i*/"..eq(0 },lade:/<script\a{rvery.i*/"..eq(-1)},s);ce:/<script\a{rvery.i*/"..pushStack(D/ iflye*/".,aa weird ),"s);ce",D. resaaa weird ))join(","))},map:/<script\a){rvery.i*/"..pushStack(e.map,*/".,f<script\b,c){rvery.ia. resab,c,b)}))}, ==:/<script\a{rvery.i*/"..predO ) { ||*/"..coystr'ct r(}); },push:C,sort:[].sort,c );ce:[].s );ce},eentrt/it.p+ tons (=eent,e.ext ===eent.ext ===/<script\a{( " a,c,d,f,g,h,i=aa weird [0t||{},j=1,k=ea weird .ters =,l=!1;ns (= 1i== boolean"&&(l=i,i=aa weird [1t||{},j=2),ns (= 1i!= h ) { ]&&!e heF serialii)&&(i={}),k===j&&(i=*/".,--j);for("j<k;j++)if((a=aa weird [j])!=}); )for(cry.ca){d=i[c],f=a[c] if(i===f)coypinue;l&&f&&(e.isPlah O ) { (f)||(g=".heAin o(f)))?(g?(g=!1,h=d&&e.heAin o(d)?d:[]):h=d&&e.hePlah O ) { (d)?d:{},i[c]=e.ext ==(l,h,f)):f!==b&&(i[c]=f)}rvery.ii},e.ext ==({nsConflict:/<script\b){a.$===&&&(a.$=g),b&&a.d /* i===&&&(a.d /* i=f)+ dataTye},isReady:!1,- adyWait:1,hol=R ady:/<script\a){a? )- adyWait++: )- adyi!0)},- ady:/<script\a){if(a===!0&&!-- )- adyWait||a!==!0&&!e.isReady){de(!c.body) f - ji p Timeout( )- ady,1)+".isReady=!0;if(a!==!0&&-- )- adyWait>0) f - j;y.r{sol(jWith(c,[e]),eentr iggnd&&e(c)r iggnd("- ady"))unb ==("- ady")}},b ==R ady:/<script\a{de(!y){y=e._De e)r d();de(c)- adyStat ==="compsion") f - ji p Timeout( )- ady,1)+de(c)addEdantLispnner)c)addEdantLispnner("DOMCTypeOrLoaded",z,!1),apaddEdantLispnner("load", )- ady,!1);" + ede(cratt\//Edant){cratt\//Edant("on- ady\tatechange",z),apatt\//Edant("onload", )- ady);( " b=!1;nry{b=a.=rn tEfor(; ==t{ }c// f(d){}c.docweirdEfor(; .doS, oll&&b&&Hi }}},isF serial:/<script\a){rvery.i".t|| \a)=== f<script"},isAin o:Ain opisAin o||f<script\a){rvery.i".t|| \a)=== ain o"},isWifdow:/<script\a){rvery.ia&&ns (= 1a== h ) { ]&&" p IOre)val"y.ca},isNaN:/<script\a){rvery.ia==t{ ||!m: funca)||isNaN(a)},ns (:/<script\a){rvery.ia==t{ ?S if (a):G[A. resaa)t|| h ) { ]},isPlah O ) { :/<script\a){if(!a||".t|| \a)!== h ) { ]||a.nsde || ||".heWifdow(a))rvery.!1;if(a.coystr'ct r&&!B. resaa,"coystr'ct r")&&!B. resaa.coystr'ct r.p+ tons (,"isProtons (Of"))rvery.!1;( " c;for(cry.ca)+ dataTy ===b||B. resaa,c)},isEmptyO ) { :/<script\a){for(( " bry.ca)rvery.!1;rvery.!0}, rr//:/<script\a){throwca},parspJSON:/<script\b){if(ns (= 1b!= if ]||!b) f - jit{ b=()*rim\b);if(a.JSON&&a.JSONrparsp)rvery.ia.JSONrparsp\b);if(o: funcb)- n" && p,"@"))- n" && q,"]"))- n" && r, ")))rvery.(new F seriali"rvery.i"+b))()+". rr//u"Invalid JSON:i"+b)},parspXML:f<script\b,c,d){a.DOMParspr?(d=new DOMParspr,c=drparspFromS if (b, *ext/xml")):(c=new ActiveXO ) { ("Mi, osoft.XMLDOM"),c.async= ly da",c.loadXMLcb)),d=c.docweirdEfor(; ,(!d||!d nsde if ||d.nsde if === parspr rr//")&&". rr//u"Invalid XML:i"+b)+ dataTy }, sop:/<script\a{},globalEve;:/<script\b){b&&j: funcb)&&(a.e ecS, - r||f<script\b){a.eve;. resaa,b)})cb)},nsde if :f<script\a,b){rvery.ia.nsde if &&a.nsde if .*oUpperCase(t===b.*oUpperCase(t},e/ch:f<script\a,c,d){( " f,g=0,h=a.ters =,i=h===b||e heF serialia)+if(d){if(i){for(fry.ca)if(c/ iflyea[f],d)===!1)brd(k}" + efor("g<h;)if(c/ iflyea[g++],d)===!1)brd(k}" + eif(i){for(fry.ca)if(c/ resaa[f],f,a[f])===!1)brd(k}" + efor("g<h;)if(c/ resaa[g],g,a[g++])===!1)brd(k+ dataTya},*rim:E?/<script\a){rvery.ia==t{ ?"":E. resaa)}:/<script\a){rvery.ia==t{ ?"":\a+""))- n" && k,""))- n" && l,"")},makeAin o:f<script\a,b){( " c=b||[];if(a!=}); ){( " d=".t|| \a);a.ters ===t{ ||d=== if ]||d=== f<script"||d=== regexp"||".heWifdow(a)?C/ resac,a):enmerge\c,a)} dataTy },hnAin o:f<script\a,b){if(F)rvery.iF. resab,a);for(( " c=0,d=b.ters ="c<d;c++)if(b[c]===a)rvery.ic+ dataT-1},merge:f<script\a,c){( " d=a.ters =,e=0;if(ns (= 1c.ters ==="number])for(( " f=c.ters =;e<f;e++)a[d++]=c[e];" + ew - (c[e]!==b)a[d++]=c[e++];a.ters ==d+ dataTya},trep:/<script\a,b,c){( " d=[],e;c=!!c;for(( " f=0,g=a.ters =;f<g;f++)e=!!baa[f],f),c!==&&&d.push(a[f])+ dataTyd},map:/<script\a,c,d){( " f,g,h=[],i=0,j=a.ters =,k=ery.s anc(= 1t||j!==b&&ns (= 1j=="number]&&(j>0&&a[0t&&a[j-1t||j===0||".heAin o(a))+if(k)for(;i<j i++)f=c(a[i],i,d),f!=}); &&(h[h.ters =]=f);" + efor(gry.ca)f=c(a[g],g,d),f!=}); &&(h[h.ters =]=f); dataTyh.coyc(t/ iflye[],h)},guid:1,p+ xy:f<script\a,c){if(ns (= 1c== if ]){( " d=a[c] c=a,a=d}if(!e.isF serialia))rvery.ib;( " f=D. resaaa weird ,2),g=/<script\a{rvery.ia. iflyec,f.coyc(t(D. resaaa weird )))};g.guid=a.guid=a.guid||g.guid||e.guid++; dataTyg},accurn:/<script\a,c,d,f,g,h){( " i=a.ters =;if(ns (= 1c== h ) { ]){for(( " jliTy )e.accurn\a,j,c[j],f,g,d)+ dataTya}if(d!==b){f=!h&&f&&e.isF serialid);for(( " k=0;k<i;k++)g(a[k],c,f?d/ resaa[k],k,g(a[k],c)):d,h)+ dataTya}rvery.ii?g(a[0],c):b},nsw:/<script\a{rvery.(new D()n)ege Time(t},uaM// f:/<script\a){a=a.toLowerCase(t;( " b=s.e ec(a)||t.e ec(a)||u.e ec(a)||a)h?):[Of("compatible")<0&&v.e ec(a)||[];rvery.{browser:b[1t||"", destoc:b[2t||"0"}},sub:/<script\a{alProtocoa\b,c){rvery.inew a.ntrt/it\b,c)}e.ext ==(!0,a,t/".),apsuperclass=*/".,a.nt=a.p+ tons (=*/".(),a.nt.coystr'ct r=a,a.sub=t/"..sub,a.ntrt/it=/<script\d,f){f&&fry.s anc(= 1t&&!(fry.s anc(= 1a)&&(f=a(f))+ dataTyenntrt/it. resa*/".,d,f,b)},aentrt/it.p+ tons (=aent;( " b=a(c)+ dataTya},browser:{}}),ee \//,"Boolean NumbertS if F serial Ain o D()n RegExp O ) { ".c );t( "),f<script\a,b){G["[h ) { "+b+"]"]=b.*oLowerCase(t}),x=".uaM// f(w),x.browser&&(e.browser[x.browser]=!0,e.browser. destoc=x. destoc),e.browser.webkiu&&(e.browser. afari=!0),j: func" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c)addEdantLispnner?z=/<script\a{cp==g (jEdantLispnner("DOMCTypeOrLoaded",z,!1), )- adyi }:cratt\//Edant&&(z=/<script\a{cp==adyStat ==="compsion"&&(c.det\//Edant("on- ady\tatechange",z), )- adyi )})+ dataTye}(),g="done fail isResol(jd isRejut dTp+ misntt -c always pipe".c );t( "),h=[].s);ce;frext === _De e)r d:/<script\a{( " a=[],b,c,d,e={done:/<script\a{de(!d){( " c=aa weird ,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.ters =;g<h;g++)i=c[g],j=f.t|| \i),j=== ain o"?e.done/ iflyee,i):j=== f<script"&&a.push(i);k&&e.r{sol(jWith(k[0],k[1])}rvery.i*/".},r{sol(jWith:/<script\e,f){de(!d&&!b&&!c){a=f||[],c=1;nry{w - (a[0])a.shif ()/ iflyee,f)}f(nally{b=[e,f],c=0}}rvery.i*/".},r{sol(j:/<script\a{e.r{sol(jWith(*/".,aa weird )+ dataTy*/".},isResol(jd:/<script\a{rvery.!!c||!!b},canc(l:/<script\a{d=1,a=[]+ dataTy*/".}}+ dataTye},De e)r d:/<script\a){y wob=f._De e)r d(),c=f._De e)r d(),d;frext ===b,{t -c:f<script\a,c){b.done(a).fail(c)+ dataTy*/".},always:/<script\a{rvery.ib.done/ iflyeb,aa weird ).fail/ iflye*/".,aa weird )},fail:c.done,r{jut With:c.r{sol(jWith,r{jut :c.r{sol(j,isRejut d:c.isResol(jd,pipe:f<script\a,c){rvery.if De e)r d(/<script\d){fr \//,{done:[a,"r{sol(j"],fail:[c,"r{) { "]},f<script\a,c){( " e=c[0t g=c[1],=;f.isF serialie)?b[a](/<script\a{h=e/ iflye*/".,aa weird ),h&&f.isF serialih.p+ misn)?h.p+ misn()/t -c(d.r{sol(j,d.r{) { ):d[g](h)}):b[a](d[g])})}).p+ misn()},p+ misn:/<script\a){if(a==}); ){if(d) dataTyd;d=a={}}( " c=g.ters =;w - (c--)a[g[c]]=b[g[c]]+ dataTya}}),b.done(c/ rnc(l).fail(b/ rnc(l),desion b/ rnc(l,a&&a. resab,b)+ dataTyb},w -c:f<script\aa{alProtocoi(a){rvery.if<script\c){b[a]=ea weird .ters =>1?h. resaaa weird ,0):c,--e||g.r{sol(jWith(g,h. resab,0) }}( " b=aa weird ,c=0,d=b.ters =,e=d g=d<=1&&a&&f.isF serialia.p+ misn)?a:f De e)r d()+if(d>1){for("c<d;c++)b[c]&&f.isF serialib[c].p+ misn)?b[c].p+ misn()/t -c(i(c),g.r{) { ):--e;e||g.r{sol(jWith(g,b)}" + eg!==a&&g.r{sol(jWith(g,d?[a]:[]); dataTyg.p+ misn()}}),fesupf su=/<script\a{( " a=c.crd()eEfor(; ("div"),b=c.docweirdEfor(; ,d,e,f,g,h,i,j,k l,m,n,o,p,q,r+a.se Attribu f "class if "," ]),a.innerHTML=" <link/><ttyle></ttyle><a href='/a'cstyle='*op:1px;float:left;opacity:.55;'>a</a><inpu ans (='checkbox'/>",d=a.gp Efor(; sByTag if ("*"),a=a.gp Efor(; sByTag if ("a")[0t;if(!d||!d ters =||!p)rvery.{};f=c.crd()eEfor(; ("select"),g=/.rif ( C - d(c.crd()eEfor(; ("hpttoc")),h=a.ge Efor(; sByTag if ("inpu ])[0t j={leas+ tWhittsp &&:apf(ddeC - dpnsde || ===3,tbody:!aege Efor(; sByTag if ("tbody").ters =,htmlSerial= 0:!!aege Efor(; sByTag if ("link").ters =,style:/top/: funce.gp Attribu f "style")),hrefNit al= 0d:e.gp Attribu f "href")==="/a",opacity:/^0.55$/: funce.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.ve;ua=== hn",optSelected:g.selected,ge Sp Attribu f:apclass if !== t",submitBubyles:!0,changeBubyles:!0,focwsinBubyles:!1,desionExpando:!0,noClon&Edant:!0,inlineBlockNeedsLayout:!1,sh ifkWrapBlocks:!1,- lityleMarginRen; :!0},h.checked=!0,j.noClon&Checked=h.clon&N.noi!0).checked,fedistyled=!0,j.optDistyled=!gedistyled;nry{desion a: fun}c// f(s){j.desionExpando=!1}!apaddEdantLispnner&&a.att\//Edant&&apf(deEdant&&(apatt\//Edant("onclick",f<script b(){j.noClon&Edant=!1,a.det\//Edant("onclick",b)}),apclon&N.noi!0).f(deEdant("onclick")),h=c.crd()eEfor(; ("inpu ]),h.ve;ua= t",h.se Attribu f "t ( ","radio"),j.radioVe;ua=h.ve;ua=== t",h.se Attribu f "checked","checked"),apaif ( C - d(h),k=c.crd()eDocweirdFragmexp,),k.rif ( C - d(apf(ddeC - d),j.checkClon&=k.clon&N.noi!0).clon&N.noi!0).ladeC - dpchecked,a.innerHTML="",a.style.width=a.style.pads+ tLef ="1px",l=c.crd()eEfor(; ("body"),m={visibility:"hidden",width:0,heen; :0,border:0,mmrgin:0,backgro't : ncne"};for(qliTym)l.style[q]=m[q];l.rif ( C - d(a),b.insertBefor& l,bpf(ddeC - d),j.rif ( C ecked=h.checked,j.boxMsde =aeoffsp Width===2,"zoom"y.ca.style&&(apstyle.ti"alay= inline",a.style.zoom=1,j.inlineBlockNeedsLayout=aeoffsp Width===2,apstyle.ti"alay= ",a.innerHTML="<divcstyle='width:4px;'></div>",j.sh ifkWrapBlocks=aeoffsp Width!==2),a.innerHTML="<ttyle><tr><tdcstyle='pads+ t:0;border:0;ti"alay:ncne'></td><td>t</td></tr></ttyle>",n=a.ge Efor(; sByTag if ("td"),r=no0t.offsp Heen; ===0,no0t.style.ti"alay= ",n[1].style.ti"alay= ncne",j.r lityleHiddenOffsp s=r&&no0t.offsp Heen; ===0,a.innerHTML="",c.de justView&&c.de justView.ge Compu" dStyle&&(i=c.crd()eEfor(; ("div"),i.style.width="0",i.style.marginRen; ="0",apaif ( C - d(i),j.r lityleMarginRen; =(parspI; ((c.de justView.ge Compu" dStyle(i,t{ )||{marginRen; :0}).marginRen; ,10)||0)===0),l.innerHTML="",bp==g (jC - d(l);if(a.att\//Edant)for(qliT{submit:1,change:1,focwsin:1})p= hn"+q,r=p i.ia,r||(a.se Attribu f p,"rvery.;"),r=ns (= 1a[p]== f<script"),j[q+"Bubyles"]=r; dataTyj}(),f.boxMsde =fesupf su.boxMsde ;( " i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;frext === /cha:{},uuid:0,expando:"d /* i"+(fentrjq cur+Math.random()))- n" && /\D/g,""),noD()a:{embed:!0,h ) { :"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",appsio:!0},hasD()a:/<script\a){a=a.nsde || ?f. /cha[a[frexpando]]:a[frexpando];rvery.!!a&&!saa)},data:/<script\a,c,d,o){if(!!f.accuptD()a\a)){( " g=frexpando,h=ns (= 1c== if ],i,j=a.nsde || ,k=j?f. /cha:a,l=j?a[frexpando]:a[frexpando]&&f xpando;if((!l||e&&l&&!k[l][g])&&h&&d===b) f - j;l||(j?a[frexpando]=l=++f.uuid:l=frexpando),k[l]||(k[l]={},j||(k[l].toJSON=frnoop));if(ns (= 1c== h ) { ]||ns (= 1c== f<script")e?k[l][g]=frext ===k[l][g],c):k[l]=frext ===k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f. /melCase(c)]=dt;if(c=== edants"&&!i[c]) dataTyi[g]&&i[g].edants; dataTyh?i[f. /melCase(c)]:i}},r{g (jD()a:f<script\b,c,d){if(!!f.accuptD()a\b)){( " e=frexpando,g=b.nsde || ,h=g?f. /cha:b,i=g?b[frexpando]:f xpando;if(!hoi]) f - j;if(c){( " j=d?hoi][e]:h[i];if(j){desion j[c] if(!saj))rvery.}}if(d){desion hoi][e] if(!sahoi]))rvery.}( " k=hoi][e] fesupf su.desionExpando||h!=a?desion hoi]:h[i]=}); ,k?ahoi]={},g||(h[i]: oJSON=frnoop),hoi][e]=k):g&&(fpsupf su.desionExpando?desion b[frexpando]:bp==g (jAttribu f?bp==g (jAttribu f frexpando):b[frexpando]=}); )}},_data:/<script\a,b,c){rvery.if d()a\a,b,c,!0)},accuptD()a:/<script\a){if(apnsde if ){y wob=f.noD()a[arnsde if .*oLowerCase(t] if(b) f - jib!==!0&&a.gp Attribu f "classid")===b}rvery.!0}}),fent.ext ==({data:/<script\a,c){( " d=t{ if(ns (= 1a== 't get/se"){if(*/"..ters =a{d=f d()a\*/".[0t);if(n/".[0t.nsde || ===1){( " e=n/".[0t.attribu fu,g;for(( " h=0,i=e.ters ="h<i;h++)g=e[h].on thg)h?):[Of("d()a-")===0&&(g=f. /melCase(g.sub if (5)),k(n/".[0t,g,d[g]))}} dataTyd}if(ns (= 1a== h ) { ])rvery.i*/"..e\//,/<script\){f d()a\*/".,a)}t;( " j=a.c );t( .");j[1]=j[1]?"."+j[1]:"";if(c===ba{d=*/"..t iggndHandler("ge D()a"+j[1]+"!",[j[0t]),d===b&&*/"..ters =&&(d=f d()a\*/".[0t,a),d=k(n/".[0t,a,d))+ dataTyd===b&&j[1]?*/"..d()a\j[0t):d}rvery.i*/"..e\//,/<script\){y wob=f(t/".),d=[j[0t,c] b.t iggndHandler("se D()a"+j[1]+"!",d),f d()a\*/".,a,c),b.t iggndHandler("changeD()a"+j[1]+"!",d)})},r{g (jD()a:f<script\a){rvery.i*/"..e\//,/<script\){f ==g (jD()a\*/".,a)}t}}),feext === _mark:/<script\a,c){a&&(c=(c||"fx")+"mark",frd()a\a,c,(frd()a\a,c,b,!0)||0)+1,!0))},_unmark:/<script\a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";( " e=d+"mark",g=a?0:(frd()a\c,e,b,!0)||1)-1;g?f.d()a\c,e,g,!0):(fp==g (jD()a\c,e,!0),m)c,d,"mark"))}},q cue:/<script\a,c,d){if(a){c=(c||"fx")+"q cue";( " e=frd()a\a,c,b,!0);d&&(!e||f heAin o(d)?e=frd()a\a,c,fnmakeAin o(d),!0):()push(d))+ dataTye||[]}},deq cue:/<script\a,b){b=b||"fx";( " c=f.q cue\a,b),d=c.shif (),e;d=== inprogress"&&(d=c.shif ()),d&&(b=== fx"&&c unshif ( inprogress"),d. resaa,/<script\){f deq cue\a,b)})),c)ters =||(fp==g (jD()a\a,b+"q cue",!0),m)a,b,"q cue"))}}),fent.ext ==({q cue:/<script\a,c){ns (= 1a!= if ]&&(c=a,a="fx");if(c===barvery.if q cue\*/".[0t,a);rvery.i*/"..e\//,/<script\){y wob=f q cue\*/".,a,c);a=== fx"&&b[0t!== inprogress"&&f deq cue\*/".,a)}t},deq cue:/<script\a){rvery.i*/"..e\//,/<script\){f deq cue\*/".,a)}t},del o:f<script\a,b){a=f fx?f fx.c eeds[at||a:a,b=b||"fx";rvery.i*/"..q cue\b,/<script\){y woc=*/".isp Timeout(/<script\a{f deq cue\c,b)},a)}t},clua Q cue:/<script\a){rvery.i*/"..q cue\a||"fx",[])},p+ misn:/<script\a,c){alProtocom\){--h||d.r{sol(jWith(e,[e])}ns (= 1a!= if ]&&(c=a,a=b),a=a||"fx";( " d=f De e)r d(),e=n/".,g=e.ters =,==1,i=a+"de e)] j=a+"q cue",k=a+"mark",l;w - (g--)if(l=frd()a\e[g],i,b,!0)||(frd()a\e[g],j,b,!0)||frd()a\e[g],k,b,!0))&&frd()a\e[g],i,f._De e)r d(),!0))h++,l.done(m);m\)+ dataTyd.p+ misn()}});( " n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:bu ton|inpu )$/i,r=/^(?:bu ton|inpu |h ) { |select|*extav,a)$/i,s=/^a(?:v,a)?$/i,t=/^(?:autofocws|autoalay|async|checked|coyprols|de e)|distyled|hidden|loop|multipsi|open|- adonly|r{qui+ed|scoped|selected)$/i,u=/\:/,v,w;fent.ext ==({attr:f<script\a,b){rvery.if.accurn\*/".,a,b,!0,f.attr)},r{g (jAttr:f<script\a){rvery.i*/"..e\//,/<script\){f ==g (jAttr\*/".,a)}t},prop:f<script\a,b){rvery.if.accurn\*/".,a,b,!0,f.prop)},r{g (jProp:f<script\a){a=f propFix[at||a;rvery.i*/"..e\//,/<script\){nry{*/".[a]=b,desion */".[a]}c// f(c){}})},addClass:/<script\a){if(f.isF serialia))rvery.i*/"..e\//,/<script\b){( " c=f(t/".);c)addClass(a. resa*/".,b,crattr "class")|| "))});if(a&&ns (= 1a== if ]){( " b=\a||""t.c );t(o);for(( " c=0,d=*/"..ters ="c<d;c++){( " e=n/".[c] if(o.nsde || ===1)if(!e.class if )e.class if =a;" + {( " g=" "+e.class if +" ",h=e.class if ;for(( " i=0,j=b.ters ="i<j i++)g)h?):[Of(" "+boi]+" ")<0&&(h+=" "+boi])+".class if =f)*rim\h }}}rvery.i*/".},r{g (jClass:/<script\a){if(f.isF serialia))rvery.i*/"..e\//,/<script\b){( " c=f(t/".);c)r{g (jClass(a. resa*/".,b,crattr "class")))});if(a&&ns (= 1a== if ]||a===ba{( " c=\a||""t.c );t(o);for(( " d=0,e=*/"..ters ="d<e;d++){( " g=n/".[d];de(g.nsde || ===1&&g.class if )if(a){( " h=(" "+g.class if +" "))- n" && n, ") for(( " i=0,j=c.ters ="i<j i++)h=h.- n" && " "+coi]+" ", ") g.class if =f)*rim\h }" + eg.class if =""}}rvery.i*/".},toggljClass:/<script\a,b){( " c=ns (= 1a,d=*s (= 1b== boolean";if(f heF serialia))rvery.i*/"..e\//,/<script\c){( " d=f(t/".);d.toggljClass(a. resa*/".,c,drattr "class"),b),b)})+ dataTy*/"..e\//,/<script\){if(c=== if ]){( " e,g=0,h=f(t/".),i=b,j=a.c );t(o);w - (e=j[g++])i=d?i:!h)hasClass(e),hoi?"addClass":"r{g (jClass"](e)}" + ede(c=== 't get/se"||c=== boolean")*/"..class if &&fr_d()a\*/".,"__class if __",*/"..class if ),*/"..class if =*/"..class if ||a===!1?"":fr_d()a\*/".,"__class if __")|| "})},hasClass:/<script\a){y wob=" "+a+" ";for(( " c=0,d=*/"..ters ="c<d;c++)if((" "+n/".[c].class if +" "))- n" && n, "))h?):[Of(b)>-1)rvery.!0;rvery.!1},ve;:/<script\a){y woc,d,e=*/".[0t;if(!aa weird .ters =){if(e){c=f)ve;Hooks[ernsde if .*oLowerCase(t]||frve;Hooks[er*s (];de(c&&"ge "y.cc&&(d=c.ge (e,"ve;ua"))!==barvery.id+ dataT(o.ve;ua|| "))- n" && p,"")} dataTyb}( " g=frheF serialia)+ dataTy*/"..e\//,/<script\d){( " e=f(t/".),h;if(n/"..nsde || ===1){g?h=a. resa*/".,d,o.ve;()):h=a,===t{ ?h="":ns (= 1h== number]?h+="":f heAin o(h)&&(h=f.map,h,/<script\a){rvery.ia==t{ ?"":a+""})),c=f)ve;Hooks[n/"..nsde if .*oLowerCase(t]||frve;Hooks[*/"..ts (];de(!c||!("se "y.cc)||cpse a*/".,h,"ve;ua")===ba*/"..ve;ua=h}}t}}),feext === ve;Hooks:{hpttoc:{ge :/<script\a){( " b=a.attribu fu.ve;ua;rvery.!b||b."autif>+ ?a./ The:a.*ext}},select:{ge :/<script\a){( " b,c=a.selectedI?):[,d=[],e=aeopttocs,g=a.t|| ==="select-cne";de(c<0) f - jit{ for(( " h=g?c:0,i=g?c+1:e.ters ="h<i;h++){( " j=e[h];if(j.selected&&(fpsupf su.optDistyled?!jedistyled:j.gp Attribu f "distyled")===}); )&&(!j.pav, +N.no.distyled||!f nsde if (j.pav, +N.no,"hptgro'p"))){b=f(j).ve;()+if(g)rvery.ib;d.push(b)}}de(g&&!d ters =&&e.lers =)rvery.if(e[c]).ve;()+ dataTyd},se :/<script\a,b){( " c=fnmakeAin o(b) f(a).f ==("hpttoc").e\//,/<script\){n/"..selected=f hnAin o(f(t/".).ve;(),c)>=0}),c)ters =||(a.selectedI?):[=-1)+ dataTy }}},attrFc:{ve;:!0,css:!0,html:!0,*ext:!0,data:!0,width:!0,heen; :!0,hffsp :!0},attrFix:{tabh?):[:"ttyI?):["},attr:/<script\a,c,d,o){( " g=a.nsde || ;if(!a||g===3||g===8||g===2)rvery.ib;if(e&&cry.cf.attrFn)rvery.if(a)[c](d);if(!("gp Attribu f"y.ca))rvery.if prop\a,c,d);( " h,i,j=g!==1||!f isXMLDoc(a);c=j&&f.attrFix[c]||c,i=frattrHooks[c],i||(!t: funcc)||ns (= 1d!= boolean"&&d!==b&&d.*oLowerCase(t!==c.*oLowerCase(t?v&&(fpnsde if (a,"form")||u. funcc))&&(i=v):i=w)+if(d!==b){if(d===}); ){f ==g (jAttr\a,c); dataTyb}if(i&&" p "y.ci&&j&&(h=ipse aa,d,c))!==barvery.ih+a.se Attribu f c,""+d)+ dataTyd}if(i&&"gp "y.ci&&j) dataTyi.ge (a,c);h=a.gp Attribu f c); dataTyh===}); ?b:h},r{g (jAttr:f<script\a,b){( " c;a.nsde || ===1&&(b=f.attrFix[b]||b,fesupf su.ge Sp Attribu f?ap==g (jAttribu f b):(fpattr\a,b,""),ap==g (jAttribu fN.noia.gp Attribu fN.noib))),t: funcb)&&(c=f propFix[b]||b)i.ia&&(a[c]=!1))},attrHooks:{ns (:{se :/<script\a,b){if(q: funcapnsde if )&&a.pav, +N.no)f rr//u" s ( propertylcan't?b +changed")+" + ede(!fesupf su.radioVe;ua&&b==="radio"&&f.nsde if (a,"inpu ])){( " c=a.ve;ua;a.se Attribu f "t ( ",b),c&&(apve;ua=c); dataTyb}}},ttyI?):[:{ge :/<script\a){( " c=a.gp Attribu fN.noi"ttyI?):[")+ dataTy &&c "autif>+ ?parspI; (cpve;ua,10):r: funcapnsde if )||s: funcapnsde if )&&a.href?0:b}}},propFix:{tabh?):[:"ttyI?):[",- adonly:"- adOnly","for":"htmlFor","class":"class if ",maxters =:"maxLers =",cellsp &+ t:"cellSp &+ t",cellpads+ t:"cellPads+ t",rowspan:"-owSp n",colspan:"colSp n",usemap:"useMap",=rn tborder:"=rn tBorder",coypeOredittyle:" TypeOrEdittyle"},prop:f<script\a,c,d){( " e=a.nsde || ;if(!a||e===3||e===8||e===2)rvery.ib;y wog,=,i=e!==1||!f isXMLDoc(a);c=i&&f.propFix[c]||c,h=f propHooks[c]+ dataTyd!==b?h&&" p "y.ch&&(g=hpse aa,d,c))!==b?g:a[c]=d:h&&"gp "y.ch&&(g=hpge (a,c))!==b?g:a[c]},propHooks:{}}),w={ge :/<script\a,c){rvery.ia[f.propFix[c]||c]?c.*oLowerCase(t:b},se :/<script\a,b,c){( " d;b===!1?f ==g (jAttr\a,c):(d=f propFix[c]||c, ry.ca&&(a[d]=b),a.se Attribu f c,c.*oLowerCase(t))+ dataTy }},frattrHookspve;ua={ge :/<script\a,b){if(v&&f.nsde if (a,"bu ton"))rvery. vpge (a,b)+ dataTyapve;ua},se :/<script\a,b,c){if(v&&f.nsde if (a,"bu ton"))rvery. vpse aa,b,c);apve;ua=b}},frsupf su.ge Sp Attribu f||(frattrFix=f propFix,v=frattrHooks.on t=f)ve;Hooks.bu ton={ge :/<script\a,c){( " d;d=a.gp Attribu fN.noic); dataTyd&&d.nsdeVe;ua!==""?dpnsdeVe;ua:b},se :/<script\a,b,c){( " d=a.gp Attribu fN.noic);if(d){dpnsdeVe;ua=b; dataTyb}}},fr \//,[ width","heen; "],f<script\a,b){frattrHooks[b]=frext ===frattrHooks[b],{se :/<script\a,c){if(c=== ]){a.se Attribu f b,"auto")+ dataTy }}})})),frsupf su.hrefNit al= 0d||fr \//,[ href","src","width","heen; "],f<script\a,c){frattrHooks[c]=frext ===frattrHooks[c],{ge :/<script\a){( " d=a.gp Attribu f c,2)+ dataTyd===}); ?b:d}})}),frsupf su.style||(frattrHooks.style={ge :/<script\a){ dataTyapstyle.cssText.*oLowerCase(t||b},se :/<script\a,b){ dataTyapstyle.cssText= ]+b}}),fesupf su.optSelected||(frpropHooks.selected=f ext ===frpropHooks.selected,{ge :/<script\a){( " b=a.pav, +N.no;b&&(b.selectedI?):[,b.pav, +N.no&&b.pav, +N.no.selectedI?):[t}})),fesupf su.checkOn||fr \//,[ radio","checkbox"],/<script\){f ve;Hooks[*/".]={ge :/<script\a){ dataTyapgp Attribu f "ve;ua")===t{ ?"on":apve;ua}}}),fee\//,[ radio","checkbox"],/<script\){f ve;Hooks[*/".]=f ext ===frve;Hooks[*/".],{se :/<script\a,b){if(f heAin o(b)) dataTyapchecked=f hnAin o(f(a).ve;(),b)>=0}})});y wox=O ) { pp+ tons ()hasOwnProperty,y=/\.(.*)$/,z=/^(?:*extav,a|inpu |select)$/i,A=/\./ ,B=/ / ,C=/[^\w\s.|`]/g,D=/<script\a){ dataTyap- n" && C,"\\$&")};f.edant={ads:/<script\a,c,d,o){if(a.nsde || !==3&&a.nsde || !==8){if(d===!1)d=E+" + ede(!d) dataT;y wog,=;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f tuid++);( " i=fr_d()a\a)+if(!i) dataT;y woj=i.edants,k=i.handle;j||(i.edants=j={}),k||(i.handle=k=/<script\a){ dataTyns (= 1f!= 't get/se"&&(!a||fr dantrt iggnded!==a.t|| )?fredantrhandle. iflyek.ps -,aa weird ):b}),k.ps -=a,c=c.s );t( ") y wol,m=0,n;w - (l=c[m++]){h=g?f.ext === },g):{handler:d,data:a},l)h?):[Of(".")>-1?(n=l.c );t( ."),l=n.shif (),h.nn tsp &&=n.s);ce(0).sort())join(".")):(n=[],h.nn tsp &&="]),h.t|| =l,h.guid||(h.guid=d.guid) y woo=j[l],p=fredantr"autial[l]||{}+if(!o){o=j[l]=[];if(!p.se up||p.se up. resaa,e,n,k)===!1)apaddEdantLispnner?apaddEdantLispnner(l,k,!1):a.att\//Edant&&apatt\//Edant("on"+l,k)}ppadd&&(ppadd. resaa,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.edantrglobal[l]=!0}a=t{ }},global:{},==g (j:/<script\a,c,d,o){if(a.nsde || !==3&&a.nsde || !==8){d===!1&&(d=E);y wog,=,i,j,k=0 l,m,n,o,p,q,r,s=f.hasD()a\a)&&fr_d()a\a),t=s&&s.edants;if(!.||!t) dataT; &&c t|| &&(d=c.handler,c=c.t|| );de(!c||ns (= 1c== if ]&&c cha At(0)=== ."){c=c||"";for(hei -t)f.edantr==g (jua,h+c); dataT}c=c.s );t( ") w - (h=c[k++]){r=h,q=}); ,l=hph?):[Of(".")<0,m=[],l||(m=hps );t( ."),h=m.shif (),n=new RegExp("(^|\\.)"+f.map,m.s);ce(0).sort(),D))join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)coypinue;de(!d){aor(j=0;j<p.ters ="j++){q=p[j];de(l||n: funcq.nn tsp &&))f.edantr==g (jua,r,q.handler,j),p.c );ce(j--,1)}coypinue}o=fredantr"autial[h]||{}+aor(j=e||0;j<p.ters ="j++){q=p[j];de(d.guid===q.guid){de(l||n: funcq.nn tsp &&))e==}); &&p.c );ce(j--,1),o.==g (j&&o.==g (j. resaa,q);de(e!=}); )brd(k}}de(p.ters ====0||"!=}); &&p.ters ====1)(!o: fardown||o: fardown. resaa,m)===!1)&&fr==g (jEdant\a,h,s.handle),g=}); ,desion *[h]}if(f heEmptyO ) { (t)){( " u=s.handle;u&&(u.ps -=}); ),desion s.edants,desion s.handle,f heEmptyO ) { (s)&&fr==g (jD()a\a,b,!0)}}},customEdant:{ge D()a:!0,se D()a:!0,changeD()a:!0},t iggnd:/<script\c,d,e,g){( " h=c.t|| ||c,i=[],j;hph?):[Of("!")>=0&&(h=h.s);ce(0,-1),j=!0),hph?):[Of(".")>=0&&(i=hps );t( ."),h=i.shif (),i.sort());de(!!e&&!fredantrcustomEdant[h]||!!f.edantrglobal[h]){c=ns (= 1c== h ) { ]?c[frexpando]?c:new f.Edant\h,c):new f.Edant\h),c)t|| =h,crexclusive=j,crnn tsp &&=i)join("."),crnn tsp &&_re=new RegExp("(^|\\.)"+i)join("\\.(?:.*\\.)?")+"(\\.|$)")+if(g||!p)c.predantDe justi ,crstopPropag()Ext()+if(!p){fr \//,f. /cha,/<script\){y woa=frexpando,b=t/".[a];b&&b.edants&&b.edants[h]&&f dantrt iggnd\c,d,brhandle.ps - -)})+ dataT}if(o.nsde || ===3||e.nsde || ===8) dataT; .r{sust=b,crtargp =e,d=d?fnmakeAin o(d):[],d unshif (c);y wok=e,l=hph?):[Of(":")<0?"on"+h:"";do{y wom=fr_d()a\k,"handle");c)curv, +Targp =k,m&&m. iflyek,d),l&&f.accuptD()a\k)&&k[l]&&k[l]. iflyek,d)===!1&&( .r{sust=!1,c.predantDe justi ),k=k.pav, +N.no||kpownerDocweird||k===crtargp pownerDocweird&&a}w - (k&&!c.isPropag()ExtStoif d());de(!c.isDe justPredant d()){y won,o=fredantr"autial[h]||{}+if((!or_de just||o:_de just. resaepownerDocweird,c)===!1)&&(h!=="click"||!f nsde if (e,"a"))&&f.accuptD()a\&)){nry{l&&e[h]&&(n=e[l],n&&(e[l]=}); ),fr dantrt iggnded=h,e[h]i )}c// f(p){}n&&(e[l]=}),fr dantrt iggnded=b}} dataTy .r{sust}},handle:/<script\c){c=f) dantrfix(c||a) dant);( " d=((f _d()a\*/".,"edants")||{})[c)t|| ]||[]).s);ce(0),e=!crexclusive&&!c.nn tsp &&,g=Ain opp+ tons ()s);ce. resaaa weird ,0);g[0t=c,c)curv, +Targp =*/".ifor(( " h=0,i=d.ters ="h<i;h++){( " j=d[h];if( ||cpnn tsp &&_re: funcj.nn tsp &&)){c.handler=j.handler,c.data=j.data,c.handleObj=j;y wok=j.handler/ iflye*/".,g);k!==b&&( .r{sust=k,k===!1&&( .predantDe justi ,crstopPropag()Ext()))+de(c)isImmedi()ePropag()ExtStoif d())brd(k}}rvery.i .r{sust},props:"altKey attrChange attr if bubyles bu ton rnc(ltyle+charCsde cliantX cliantY ctrlKey curv, +Targp data det\il edantPhaseuaromEfor(; handler keyCsde layerX layerY met\Key newVe;ua hffsp X hffsp Y pageX pageY predVe;ua r{l()edN.no r{l()edTargp screenX screenY shif Key srcEfor(; targp toEfor(; view wheelDelta w -ch".c );t( "),fix:/<script\a){if(a[frexpando]) dataTya;( " d=a;a=frEdant\d);for(( " =*/"..props.ters =,g;e;)g=*/"..props[--e],a[g]=d[g];a.targp ||(a.targp =a.srcEfor(; ||c),a.targp pnsde || ===3&&(aptargp =a.targp ppav, +N.no),!a.r{l()edTargp &&apfromEfor(; &&(apr{l()edTargp =apfromEfor(; ===a.targp ?a.toEfor(; :apfromEfor(; );if(a.pageX==}); &&apcliantX!=}); ){( " h=a.targp pownerDocweird||c,i=h.docweirdEfor(; ,j=h.body;a.pageX=apcliantX+(i&&i.s, ollLef ||j&&j:s, ollLef ||0)-(i&&i.cliantLef ||j&&j:cliantLef ||0),a.pageY=apcliantY+(i&&i.s, ollTop||j&&j:s, ollTop||0)-(i&&i.cliantTop||j&&j:cliantTop||0)}a.w -ch==}); &&(a.cha Csde!=t{ ||a.keyCsde!=}); )&&(a.w -ch=a.cha Csde!=t{ ?a.cha Csde:a.keyCsde),!a.met\Key&&apctrlKey&&(a.met\Key=apctrlKey),!a.w -ch&&apbu ton!==b&&(a.w -ch=a.bu ton&1?1:a.bu ton&2?3:a.bu ton&4?2:0)+ dataTya},guid:1e8,p+ xy:f.p+ xy,"autial:{- ady:{se up:f.b ==R ady, fardown:frnoop},liv+:{ads:/<script\a){fr dantradd\*/".,O(apopug || ,a.select r),feext === },a,{handler:N,guid:a.handler.guid}))},==g (j:/<script\a){fr dantr==g (ju*/".,O(apopug || ,a.select r),a)}},befor&unload:{se up:f<script\a,b,c){f.heWifdow(t/".)&&(*/"..onbefor&unload=c)}, fardown:f<script\a,b){*/"..onbefor&unload===b&&(*/"..onbefor&unload=}); )}}}},fr==g (jEdant=cp==g (jEdantLispnner?f<script\a,b,c){ap==g (jEdantLispnner&&ap==g (jEdantLispnner(b,c,!1)}:/<script\a,b,c){apdet\//Edant&&apdet\//Edant("on"+b,c)},frEdant=/<script\a,b){if(!*/"..predantDe just) f - jitew f.Edant\a,b)+a&&a.t|| ?(*/"..opug(nalEdant=a,*/"..ns (=aens (,*/"..isDe justPredant d=a.de justPredant d||a. f - jVe;ua===!1||a.gp PredantDe just&&a.gp PredantDe justi ?F:E):*/"..t|| =a,b&&f xt ===*/".,b),*/"..timeStamp=f.now(),*/".[frexpando]=!0},f.Edant.p+ tons (={predantDe just:/<script\a{*/"..isDe justPredant d=F;y woa=*/"..opug(nalEdant;!a||ia.p+edantDe just?a.p+edantDe just():a. f - jVe;ua=!1)},stopPropag()Ext:/<script\a{*/"..isPropag()ExtStoif d=F;y woa=*/"..opug(nalEdant;!a||ia.stopPropag()Ext&&a.stopPropag()Ext(),apcrnc(lBubyle=!0)},stopImmedi()ePropag()Ext:/<script\a{*/"..isImmedi()ePropag()ExtStoif d=F,*/"..stopPropag()Ext()},isDe justPredant d:E,isPropag()ExtStoif d:E,isImmedi()ePropag()ExtStoif d:E};y woG=/<script\a){( " b=a.r{l()edTargp ;a.ns (=aedata;nry{if(b&&b!==c&&!bppav, +N.no) dataT;w - (b&&b!==t/".)b=b.pav, +N.no;b!==t/".&&f dantrhandle. iflye*/".,aa weird )}c// f(d){}},H=/<script\a){a.ns (=aedata,f.edantrhandle. iflye*/".,aa weird )};fr \//,{mouseeOre):"mouse (jr",mouseluave:"mouse u ]},f<script\a,b){fredantr"autial[a]={se up:f<script\c){fr dantradd\*/".,b, &&c "elect r?H:G,a)}, fardown:f<script\a){fr dantr==g (ju*/".,b,a&&a."elect r?H:G)}}}),fesupf su.submitBubyles||(fredantr"autial.submit={se up:f<script\a,b){if(!f nsde if (*/".,"form"))fr dantradd\*/".,"clickr"autialSubmit",/<script\a){( " b=a.targp ,c=b.*|| ;(c=== ubmit"||c=== image")&&f(b).closfunc"form") ters =&&L( ubmit",*/".,aa weird )}),fr dantradd\*/".,"keypressr"autialSubmit",/<script\a){( " b=a.targp ,c=b.*|| ;(c=== *ext"||c=== password")&&f(b).closfunc"form") ters =&&a.keyCsde===13&&L( ubmit",*/".,aa weird )})+" + ervery.!1}, fardown:f<script\a){fr dantr==g (ju*/".,"r"autialSubmit")}});de(!fesupf su.changeBubyles){( " I,J=/<script\a){( " b=a.ns (,c=a.ve;ua;b==="radio"||b==="checkbox"?c=apchecked:b==="select-multipsi"?c=apselectedI?):[>-1?f.map,aeopttocs,/<script\a){ dataTyapselected}))join("-"):"":f nsde if (a,"select")&&(c=a.selectedI?):[t+ dataTy },K=f<script\c){( " d=crtargp ,e,g;de(!!z: funcdpnsde if )&&!d.- adOnly){e=f _d()a\d,"_change_d()a"),g=J(d),(c)t|| !=="focws u ]||d.t|| !=="radio")&&fr_d()a\d,"_change_d()a",g);if( ===b||g===o) dataT;de(e!=}); ||g)c)t|| ="change",cpliv+Fi+ed=b,f.edantrt iggnd\c,aa weird [1t,d)}};f.edantr"autial.change={filre)s:{focws u :K,befor&d \/tiv()e:K,click:/<script\a){( " b=a.targp ,c=f nsde if (b,"inpu ])?b.*|| :"";(c=== radio"||c==="checkbox"||frnsde if (b,"select"))&&K. resa*/".,a)},keydown:f<script\a){( " b=a.targp ,c=f nsde if (b,"inpu ])?b.*|| :"";(a.keyCsde===13&&!f nsde if (b,"*extav,a")||a.keyCsde===32&&(c==="checkbox"||c=== radio")||c=== select-multipsi")&&K. resa*/".,a)},befor&\/tiv()e:f<script\a){( " b=a.targp ;fr_d()a\b,"_change_d()a",J(b))}},se up:f<script\a,b){if(*/"..t|| === f le")rvery.!1;for(( " cei -I)fr dantradd\*/".,c+"r"autialChange",I[c])+ dataTyz: funcn/"..nsde if )}, fardown:f<script\a){fr dantr==g (ju*/".,"r"autialChange")+ dataTyz: funcn/"..nsde if )}},I=fredantr"autial.change.filre)s,I.focws=I.befor&\/tiv()e}fesupf su.focwsinBubyles||fr \//,{focws:"focwsin",blur:"focws u ]},f<script\a,b){flProtocoe\a){( " c=f) dantrfix(a);c.t|| =b,cropug(nalEdant={},f.edantrt iggnd\c,}); ,crtargp ,crisDe justPredant d()&&a.p+edantDe just()}( " d=0;f.edantr"autial[b]={se up:f<script\){d++===0&&c)addEdantLispnner(a,e,!0)}, fardown:f<script\){--d===0&&c)==g (jEdantLispnner(a,e,!0)}}}),fee\//,[ b ==","cne"],f<script\a,c){frfn[c]=f<script\a,d,o){( " g if(ns (= 1a== h ) { ]){for(( " hry.ca)n/".[c](h,d,a[h],o);rvery.i*/".}if(aa weird .ters ====2||d===!1)e=d,d=b;c=== hni"?(g=/<script\a){f(t/".).unb ==(a,g); dataTyen iflye*/".,aa weird )},g.guid=e.guid||f tuid++):g=e;de(a=== 'tload"&&c!== hni")*/"..one\a,d,o);" + efor(( " i=0,j=*/"..ters ="i<j i++)fr dantradd\*/".[i],a,g,d)+ dataTy*/".}}),fent.ext ==({unb ==:f<script\a,b){if(*s (= 1a== h ) { ]&&!a.p+edantDe just)for(( " cei -a)n/"..unb ==(c,a[c])+" + efor(( " d=0,e=*/"..ters ="d<e;d++)fr dantr==g (ju*/".[d],a,b)+ dataTy*/".},desig()e:f<script\a,b,c,d){ dataTy*/"..liv+\b,c,d,a)},'t gsig()e:f<script\a,b,c){ dataTyaa weird .ters ====0?*/".)unb ==("liv+"):*/"..di+\b,}); ,c,a)}, iggnd:/<script\a,b){ dataTy*/"..e\//,/<script\){f edantrt iggnd\a,b,t/".)})}, iggndHandler:f<script\a,b){if(*/".[0t)rvery.if edantrt iggnd\a,b,t/".[0t,!0)}, ogglj:f<script\a){( " b=aa weird ,c=a.guid||f tuid++,d=0,e=f<script\c){( " e=(f d()a\*/".,"ladeTogglj"+a.guid)||0)%d;frd()a\*/".,"ladeTogglj"+a.guid,e+1),c.predantDe justi ; dataTyb[e]n iflye*/".,aa weird )||!1};e.guid=c;w - (d<b.ters =)b[d++].guid=c; dataTy*/"..click(e)},h (jr:/<script\a,b){ dataTy*/"..mouseeOre)(a).mouseluave(b||a)}});( " M={focws:"focwsin",blur:"focws u ],mouseeOre):"mouse (jr",mouseluave:"mouse u ]};fee\//,[ liv+","di+"],f<script\a,c){frfn[c]=f<script\a,d,o,g){( " h,i=0,j,k l,m=g||*/"..select r,n=g?*/".:f(*/"..coypeuc)+if(*s (= 1a== h ) { ]&&!a.p+edantDe just){for(( " oei -a)n[c](o,d,a[o],m);rvery.i*/".}if(c=== di+"&&!a&&g&&g.cha At(0)=== ."){n)unb ==(g);rvery.i*/".}if(d===!1||f.isF serialid))e=d||E,d=b;a=\a||""t.c );t( ") w - ((h=a[i++])!=}); ){j=y.e ec(h),k= ",j&&(k=j[0t,h=h.- n" && y, ")) if(h=== h (jr]){a.push("mouseeOre)"+k,"mouseluave"+k);coypinue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c=== liv+")for(( " p=0,q=n.ters ="p<q;p++)fr dantradd\n[p], liv+."+O(h,m),{data:d,select r:m,handler:e,opug || :h,opugHandler:e,p+e || :l})+" + en)unb ==("liv+."+O(h,m),e)}rvery.i*/".}}),fee\//,"blur focws focwsin focws u loaderve= 0 s, oll 'tload click dblclick mousedown mouseup mouseg (j mouse (jr mouse u mouseeOre) mouseluave+change select ubmit keydown keypress keyup rr//".c );t( "),f<script\a,b){frfn[b]=f<script\a,c){c==}); &&(c=a,a=}); ); dataTyaa weird .ters =>0?*/".)b ==(b,a,c):*/"..t iggnd\b)},frattrFn&&(fpattrFn[b]=!0)}),/<script\){flProtocou\a,b,c,d,e,f){for(( " g=0,h=d.ters ="g<h;g++){( " i=d[g];if(i){( " j=!1;i=i[a];w - (i){if(i.e= /cha===c){j=d[i.e= se ];brd(k}if(i.nsde || ===1){f||(i.e= /cha=c,i.e= se =g)+if(*s (= 1b!= if ]){if(i===ba{j=!0;brd(k}}" + ede(k.filre)(b,oi]).ters =>0a{j=i;brd(k}}i=i[a]}d[g]=j}}}flProtocot\a,b,c,d,e,f){for(( " g=0,h=d.ters ="g<h;g++){( " i=d[g];if(i){( " j=!1;i=i[a];w - (i){if(i.e= /cha===c){j=d[i.e= se ];brd(k}i.nsde || ===1&&!f&&(i.e= /cha=c,i.e= se =g)+if(i.nsde if .*oLowerCase(t===ba{j=i;brd(k}i=i[a]}d[g]=j}}}y woa=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=O ) { pp+ tons ()toS if ,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0t.sort(/<script\){h=!1;rvery. 0});y wok=/<script\b,d,f,g){a=f||[],d=d||c;( " h=d;de(d.nsde || !==1&&d.nsde || !==9)rvery.[];if(!b||ns (= 1b!= if ])rvery.if;( " i,j,n,o,q,r,s,t,u=!0,w=k isXML(d),x=[],y=b;do{a.e ec("]),i=a.e ec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];brd(k}}}w - (i);if(x.ters =>1&&m.e ec(b))if(x.ters ====2&&l.r{l()iv+[x[0t])j=v(x[0t+x[1t,d);" + {j=l.r{l()iv+[x[0t]?[d]:k(x.shif (),d) w - (x.ters =)b=x.shif (),l.r{l()iv+[b]&&(b+=x.shif ()),j=v\b,j)}" + {!g&&x.ters =>1&&dpnsde || ===9&&!w&&l.m// f.ID: funcx[0t)&&!l.m// f.ID: funcx[x.ters =-1t)&&(q=k.f ==(x.shif (),d,w),d=qrexpr?k.filre)(qrexpr,q.se )[0t:q.se [0t);if(d){q=g?{expr:x.pop(),se :p(g)}:k.f ==(x.pop(),x.ters ====1&&(x[0t=== ~"||x[0t=== +")&&d.pav, +N.no?d.pav, +N.no:d,w),j=qrexpr?k.filre)(qrexpr,q.se ):q.se ,x.ters =>0?n=p(j):u=!1;w - (x.ters =)r=x.pop(),s=r,l.r{l()iv+[r]?s=x.pop():r= ",s==}); &&(s=d),l.r{l()iv+[r](n,s,w)}" + en=x=[]}n||(n=j),n||kp rr//ur||b) if(o. resan)=== [h ) { Ain o]")if(!u)frpushn iflyef,n)+" + ede(d&&dpnsde || ===1)for(t=0;n[t]!=}); ;t++)n[t]&&(n[t]===!0||n[t].nsde || ===1&&k.coypains(d,n[t]))&&f.push(j[t])+" + efor(t=0;n[t]!=}); ;t++)n[t]&&n[t].nsde || ===1&&f.push(j[t])+" + ep(n,f);o&&(k(o,h,f,g),k)uniqueSort(/))+ dataTyf};k)uniqueSort=/<script\a){de(r){g=h,a.sort(r)+if(g)for(( " b=1;b<a.ters =;b++)a[b]===a[b-1t&&a." );ce(b--,1)} dataTya},k.m// fes=/<script\a,b){ dataTyk\a,}); ,}); ,b)},k.m// fesSelect r=/<script\a,b){ dataTyk\b,}); ,}); ,[a]).ters =>0},k.f ===f<script\a,b,c){( " d;if(!a)rvery.[];for(( " =0,f=l.order.ters =;e<f;e++){y wog,==l.order[e] if(g=l.leftM// f[h].e ec(a)){( " j=g[1t;g." );ce(1,1);if(j.sub (j.ters =-1)!=="\\]){g[1t=(g[1t||""))- n" && i,""),d=l.f ==[h]ig,b,c);if(d!=}); ){a=ap- n" && l.m// f[h],"");brd(k}}}}d||(d=*s (= 1b.ge Efor(; sByTag if != 't get/se"?b.ge Efor(; sByTag if ("*"):[]); dataT{se :d,expr:a}},k.f lre)=f<script\a,c,d,o){( " f,g,h=a,i=[],j=c,m=c&&c[0t&&k isXML(c[0t);w - (a&&c)ters =){for(( " nei -l.f lre))if((f=l.leftM// f[n].e ec(a))!=}); &&f[2]){( " o,p,q=l.f lre)[n],)=f[1t;g=!1,f." );ce(1,1);if(r.sub (r.ters =-1)==="\\])coypinue;j===i&&(i=[t);if(l.p+eF lre)[n]){a=l.p+eF lre)[n]ef,j,d,i,e,m);de(!f)g=o=!0;" + ede(f===!0)coypinue}if(f)for(( " s=0;(p=j[s])!=}); ;s++)if(p){o=q(p,f,s,j);( " t=e^!!o;d&&o!=t{ ?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=ap- n" && l.m// f[n],"");de(!g)rvery.[];brd(k}}de(a===h)if(g==}); )kp rr//ua)+" + ebrd(k+h=a} dataTyj},k. rr//=/<script\a){throw"Syypax rr//, 'trecogn= 0d expressExt: "+a};y wol=k.select rs={order:["ID","NAME","TAG"],m// f:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[on t=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|lade|f(dde)-c - d(?:\(\s*( dan|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|le|f(dde|lade| dan|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftM// f:{},attrMap:{"class":"class if ","for":"htmlFor"},attrHandle:{href:/<script\a){ dataTyapgp Attribu f "href")},*|| :/<script\a){ dataTyapgp Attribu f "t ( ")}},r{l()iv+:{"+":/<script\a,b){( " c=ns (= 1b== if ],d=c&&!j: funcb),e=c&&!d;d&&(b=b.*oLowerCase(t);for(( " f=0,g=a.ters =,=;f<g;f++)if(h=a[f]){w - ((h=h.p+ediousSiblif )&&h.nsde || !==1);a[f]=e||h&&h.nsde if .*oLowerCase(t===b?=||!1:h===b}e&&k filre)(b,a,!0)},">":/<script\a,b){( " c,d=*s (= 1b== if ], =0,f=a.ters =;if(d&&!j: funcb)){b=b.toLowerCase(t;for("e<f;e++){c=a[(];de(c){( " g=c.pav, +N.no;a[(]=g.nsde if .*oLowerCase(t===b?g:!1}}}" + {for("e<f;e++)c=a[(],c&&(a[(]=d?c.pav, +N.no:c.pav, +N.no===ba;d&&k filre)(b,a,!0)}},"":f<script\a,b,c){( " e,f=d++,g=u;*s (= 1b== if ]&&!j: funcb)&&(b=b.*oLowerCase(t, =b,g=t),g("pav, +N.no",b,f,a,e,c)}, ~":f<script\a,b,c){( " e,f=d++,g=u;*s (= 1b== if ]&&!j: funcb)&&(b=b.*oLowerCase(t, =b,g=t),g("p+ediousSiblif ",b,f,a,e,c)}},f ==:{ID:/<script\a,b,c){if(*s (= 1b.ge Efor(; ById!= 't get/se"&&!c){( " d=b.ge Efor(; ById(a[1]); dataTyd&&d.pav, +N.no?[d]:[]}},NAME:f<script\a,b){if(*s (= 1b.ge Efor(; sBy if != 't get/se"){( " c=[],d=b.ge Efor(; sBy if (a[1]);for(( " =0,f=d.ters =;e<f;e++)d[e]ngp Attribu f "on t")===a[1]&&c)push(d[e])+ dataTy .ters ====0?}); : }},TAG:f<script\a,b){if(*s (= 1b.ge Efor(; sByTag if != 't get/se")rvery.ib.ge Efor(; sByTag if (a[1])}},preF lre):{CLASS:f<script\a,b,c,d,e,f){a=" "+a[1].- n" && i,"")+" ";if(f) dataTya;for(( " g=0,h;(h=b[g])!=}); ;g++)h&&(e^(h.class if &&(" "+h.class if +" "))- n" && /[\t\n\r]/g, "))h?):[Of(a)>=0)?c||d.push(h):c&&(b[g]=!1));rvery.!1},ID:/<script\a){rvery.ia[1].- n" && i,"")},TAG:f<script\a,b){rvery.ia[1].- n" && i,"").*oLowerCase(t},CHILD:/<script\a){if(a[1t=== nth]){a[2]||kp rr//ua[0]),a[2]=a[2])- n" && /^\+|\s*/g,"");( " b=/(-?)(\d*)(?:n([+\-]?\d*))?/.e ec(a[2]=== edan"&&"2n]||a[2]=== odd"&&"2n+1"||!/\D/: funca[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}" + ea[2]&&k rr//ua[0]);a[0]=d+++ dataTya},ATTR:f<script\a,b,c,d,e,f){( " g=a[1t=a[1].- n" && i,"");!f&&l.attrMap[g]&&(a[1t=l.attrMap[g]),a[4t=(a[4t||a[5t||""))- n" && i,""),a[2]=== ~="&&(a[4t=" "+a[4]+" ")+ dataTya},PSEUDO:/<script\b,c,d,e,f){if(b[1t=== not")if((a.e ec(b[3])|| ").ters =>1||/^\w/: funcb[3]))b[3]=kcb[3],}); ,}); ,c);" + {( " g=k filre)(b[3],c,d,!0^fa;d||e.pushn iflyee,g); dataT!1}" + ede(l.m// f.POS: funcb[0])||l.m// f.CHILD: funcb[0]))rvery.!0;rvery.yb},POS:/<script\a){a.unshif (!0)+ dataTya}},f lre)s:{entyled:/<script\a){ dataTyapdistyled===!1&&a.t|| !=="hidden"},distyled:/<script\a){ dataTyapdistyled===!0},checked:/<script\a){ dataTyapchecked===!0},selected:/<script\a){a.pav, +N.no&&a.pav, +N.no.selectedI?):[+ dataTyapselected===!0},pav, +:/<script\a){ dataT!!aef(ddeC - d},empty:/<script\a){ dataT!aef(ddeC - d},has:f<script\a,b,c){ dataT!!k(c[3t,a).ters =},header:f<script\a){rvery./h\d/i: funcapnsde if )},*ext:f<script\a){( " b=a.gp Attribu f "t ( "),c=a.*|| ; dataTyapnsde if .*oLowerCase(t==="inpu ]&&"*ext"===c&&(b===c||b===}); )},radio:/<script\a){ dataTyapnsde if .*oLowerCase(t==="inpu ]&&"radio"===a.t|| },checkbox:/<script\a){ dataTyapnsde if .*oLowerCase(t==="inpu ]&&"checkbox"===a.t|| },f le:/<script\a){ dataTyapnsde if .*oLowerCase(t==="inpu ]&&"f le"===a.t|| },password:/<script\a){ dataTyapnsde if .*oLowerCase(t==="inpu ]&&"password"===a.t|| },submit:f<script\a){( " b=a.nsde if .*oLowerCase(t+ dataT(b==="inpu ]||b==="bu ton")&&" ubmit"===a.t|| },image:/<script\a){ dataTyapnsde if .*oLowerCase(t==="inpu ]&&"image"===a.t|| },rese :/<script\a){( " b=a.nsde if .*oLowerCase(t+ dataT(b==="inpu ]||b==="bu ton")&&"rese "===a.t|| },bu ton:/<script\a){( " b=a.nsde if .*oLowerCase(t+ dataT b==="inpu ]&&"bu ton"===a.t|| ||b==="bu ton"},inpu :f<script\a){rvery./inpu |select|*extav,a|bu ton/i: funcapnsde if )},focws:/<script\a){rvery.ia===aeownerDocweird.\/tiveEfor(; }},se Filre)s:{f(dde:f<script\a,b){rvery.ib===0},lade:f<script\a,b,c,d){ dataTyb===d.ters =-1},edan:f<script\a,b){rvery.ib%2===0},od=:f<script\a,b){rvery.ib%2===1},l :/<script\a,b,c){rvery.ib<c[3]-0},g :/<script\a,b,c){rvery.ib>c[3]-0},nth:/<script\a,b,c){rvery.ic[3]-0===b},eq:/<script\a,b,c){rvery.ic[3]-0===b}},f lre):{PSEUDO:/<script\a,b,c,d){( " =b[1t,f=l.f lre)s[(];de(f)rvery.if(a,c,b,d);if( ==="coypains")rvery.(a.*extCTypeOr||a.innerText||kpgp Text([a])|| ").h?):[Of(b[3])>=0;if( ==="not"){( " g=b[3]ifor(( " h=0,i=g.ters ="h<i;h++)if(g[h]===a)rvery.!1;rvery.!0}k rr//uet},CHILD:/<script\a,b){( " c=b[1t,d=a;swi/ f(c){case"only":case"f(dde":w - (d=d.p+ediousSiblif )de(d.nsde || ===1)rvery.!1;if(c=== f(dde")rvery.!0;d=a;case"lade":w - (d=d.nextSiblif )de(d.nsde || ===1)rvery.!1;rvery.!0;case"nth]:( " =b[2t,f=b[3]iif( ===1&&f===0)rvery.!0;( " g=b[0t,h=a.pav, +N.no;if(h&&(h.e= /cha!==g||!apnsdeI?):[t){( " i=0ifor(d=h.f(ddeC - d;d;d=d.nextSiblif )d.nsde || ===1&&(d.nsdeI?):[=++i);h.e= /cha=g}( " j=apnsdeI?):[-f; dataTye===0?j===0:j%e===0&&j/e>=0}},ID:/<script\a,b){ dataTyapnsde || ===1&&a.gp Attribu f "id")===b},TAG:f<script\a,b){rvery.ib==="*"&&a.nsde || ===1||apnsde if .*oLowerCase(t===b},CLASS:f<script\a,b){rvery.(" "+(a.class if ||a.gp Attribu f "class"))+ "))h?):[Of(b)>-1},ATTR:f<script\a,b){( " c=b[1t,d=l.attrHandle[c]?l.attrHandle[c]\a):a[c]!=t{ ?a[c]:a.gp Attribu f c),e=d+"",f=b[2t,g=b[4]+ dataTyd==t{ ?f==="!= :f==="="? ===g:f==="*="? )h?):[Of(g)>=0:f==="~="?(" "+e+ "))h?):[Of(g)>=0:g?f==="!= ?a!==g:f==="^="? )h?):[Of(g)===0:f==="$="? )sub (e.lers =-g.ters =)===g:f==="|="? ===g||e.sub (0,g.ters =+1)===g+"-":!1:e&&d!==!1},POS:/<script\a,b,c,d){( " =b[2t,f=l.se Filre)s[(];de(f)rvery.if(a,c,b,d)}}},m=l.m// f.POS,n=/<script\a,b){ dataT"\\]+(b-0+1)};for(( " oei -l.m// f)l.m// f[o]=}ew RegExp(l.m// f[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftM// f[o]=}ew RegExp(/(^(?:.|\r|\n)*?)/.source+l.m// f[o].source)- n" && /\\(\d+)/g,n));( " p=/<script\a,b){a=Ain opp+ tons ()s);ce. resaa,0);if(b){b.pushn iflyeb,a);rvery.ib} dataTya};nry{Ain opp+ tons ()s);ce. resac.docweirdEfor(; .c - dN.no ,0)[0t.nsde || }c// f(q){p=/<script\a,b){( " c=0,d=b||[] if(o. resaa)=== [h ) { Ain o]")Ain opp+ tons ()pushn iflyed,a);" + ede(*s (= 1a.ters === number])for(( " f=a.ters =;c<f;c++)d.push(a[c])+" + efor(;a[c];c++)d.push(a[c])+ dataTyd}}y wor,s;c.docweirdEfor(; .compav,DocweirdPosiript?r=/<script\a,b){de(a===b){g=!0;rvery.y0}if(!a.compav,DocweirdPosiript||!b.compav,DocweirdPosiript) dataTyapcompav,DocweirdPosiript?-1:1; dataTyapcompav,DocweirdPosiriptcb)&4?-1:1}:(r=/<script\a,b){de(a===b){g=!0;rvery.y0}if(a.sourceI?):[&&b.sourceI?):[) dataTyapsourceI?):[-b.sourceI?):[;y woc,d,e=[t,f=[t,h=a.pav, +N.no,i=b.pav, +N.no,j=h if(h===i) dataT s\a,b)+if(!=)rvery.-1+if(!i) dataT 1;w - (j)e.unshif (j),j=j.pav, +N.no;j=i;w - (j)f.unshif (j),j=j.pav, +N.no;c=e.ters =,d=f ters =;for(( " k=0ik<c&&k<d;k++)if(e[kt!==f[kt) dataT s\e[kt,f[kt);rvery.yk===c?s\a,f[kt,-1):s\e[kt,b,1)},s=f<script\a,b,c){de(a===b)rvery.ic;( " d=a.nextSiblif ;w - (d){if(d===b)rvery.-1+d=d.nextSiblif } dataTy1}),k.gp Text=/<script\a){( " b="",c;for(( " d=0;a[d];d++)c=a[d],crnsde || ===3||crnsde || ===4?b+=cpnsdeVe;ua:c.nsde || !==8&&(b+=kpgp Text(c.c - dN.no ));rvery.ib},/<script\){y woa=c.cv,ateEfor(; "div"),d="script]+(}ew Date)pgp Time(t, =c.docweirdEfor(; ;a.innerHTML="<a on t='"+d+"'/>", )h?sertBefor&(a,e.f(ddeC - d),c.ge Efor(; ById(d)&&(l.f ==.ID=f<script\a,c,d){if(*s (= 1c.ge Efor(; ById!= 't get/se"&&!d){( " =c.ge Efor(; ById(a[1]); dataTye? )hd===a[1]||ns (= 1e.gp Attribu fN.no!= 't get/se"&&e.gp Attribu fN.no "id")pnsdeVe;ua===a[1]?[e]:b:[]}},l.f lre).ID=f<script\a,b){( " c=ns (= 1a.gp Attribu fN.no!= 't get/se"&&a.gp Attribu fN.noi"id"); dataTyapnsde || ===1&& &&c nsdeVe;ua===b}),e)r{g (jC - d(at, =a=t{ }(),/<script\){y woa=c.cv,ateEfor(; "div");a. ifendC - d(c.cv,ateComr(; "")),a.ge Efor(; sByTag if ("*").ters =>0&&(l.f ==.TAG=f<script\a,b){( " c=b.ge Efor(; sByTag if (a[1]);if(a[1t=== *"){( " d=[];for(( " =0;c[(];e++)c[e]nnsde || ===1&&d.push(c[e])+c=d}rvery.ic}),a.innerHTML="<a href='#'></a>",aef(ddeC - d&&ns (= 1aef(ddeC - d.gp Attribu f!= 't get/se"&&a.f(ddeC - d.gp Attribu f "href")!=="#"&&(l.attrHandle.href=/<script\a){ dataTyapgp Attribu f "href",2)}),a=t{ }(),c.q crySelect rA; &&f<script\){y woa=k,b=c.cv,ateEfor(; "div"),d="__e= zl __";b.innerHTML="<p class='TEST'></p>";if(!b.q crySelect rA; ||b.q crySelect rA; (".TEST").ters =!==0){k=/<script\b,e,f,g){e=e||c;de(!g&&!k isXML(e)){( " h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.e ec(b);if(h&&(e.nsde || ===1||e.nsde || ===9)){if(h[1]) dataTyp(e.ge Efor(; sByTag if (b),f);if(h[2]&&l.f ==.CLASS&&e.gp Efor(; sByClass if ) dataTyp(e.ge Efor(; sByClass if (h[2]),f)}if(o.nsde || ===9){if(b==="body"&&e.body) dataTyp([e.body],f);if(h&&h[3]){( " i=e.ge Efor(; ById(h[3])+if(!i||!ippav, +N.no) dataTyp([],f);if(i)hd===h[3]) dataTyp([i],f)}nry{ dataTyp(e.q crySelect rA; (b),f)}c// f(j){}}" + ede(ennsde || ===1&&ernsde if .*oLowerCase(t!== h ) { ]){y wom=e,n=e.gp Attribu f "id"),o=t||d,q=e.pav, +N.no,r=/^\s*[+~]/: funcb);n?o=o)- n" && /'/g,"\\$&"):e.se Attribu f "id",o),r&&q&&(e=e.pav, +N.no);nry{if(!r||q) dataTyp(e.q crySelect rA; ("[hd='"+o+"'] "+b),f)}c// f(s){}f(nally{t||mp==g (jAttribu f "id")}}}rvery.ia\b,e,f,g)};for(( " eei -a)k[(]=a[(];b=t{ }}(),/<script\){y woa=c.docweirdEfor(; ,b=a.m// fesSelect r||a.mozM// fesSelect r||a.webkitM// fesSelect r||a.msM// fesSelect r;if(b){( " d=!b.cresac.cv,ateEfor(; "div"),"div"),a=!1;nry{b. resac.docweirdEfor(; ,"[ fun!='']:e= zl ")}c// f(f){e=!0}k m// fesSelect r=/<script\a,c){c=c)- n" && /\=\s*([^'"\]]*)\s*\]/g,"='$1']");de(!k isXML(a))nry{if(e||!l.m// f.PSEUDO. funcc)&&!/!=/. funcc)){( " f=b. resaa,c);if(f||!d||a.docweird&&a.docweird.nsde || !==11)rvery.if}}c// f(g){}rvery.ik\c,}); ,}); ,[a]).ters =>0}}}(),/<script\){y woa=c.cv,ateEfor(; "div");a.innerHTML="<div class=' fun e'></div><div class=' fun'></div>";if(!!a.ge Efor(; sByClass if &&a.gp Efor(; sByClass if ("e").ters =!==0){a.tadeC - d.class if ="e";de(a.gp Efor(; sByClass if ("e").ters ====1)rvery.;l.order." );ce(1,0,"CLASS"),l.f ==.CLASS=f<script\a,b,c){de(*s (= 1b.ge Efor(; sByClass if != 't get/se"&&!c)rvery.ib.ge Efor(; sByClass if (a[1])},a=t{ }}(),c.docweirdEfor(; .coypains?k.coypains=/<script\a,b){ dataTya!==b&&(a.coypains?a.coypains b):!0)}:c.docweirdEfor(; .compav,DocweirdPosiript?k.coypains=/<script\a,b){ dataT!!(apcompav,DocweirdPosiriptcb)&16)}:k.coypains=/<script\){ dataT!1},k.isXML=/<script\a){( " b=(a?apownerDocweird||a:0).docweirdEfor(; ;rvery.ib?brnsde if !== HTML":!1};y wov=f<script\a,b){( " c,d=[],e="",f=b.nsde || ?[b]:b;w - (c=l.m// f.PSEUDO.e ec(a))e+=c[0t,a=ap- n" && l.m// f.PSEUDO,"");a=l.r{l()iv+[a]?a+ *":a;for(( " g=0,h=f ters =;g<h;g++)k\a,f[g],d)+ dataTyk filre)(e,d)};f.f ===k,feexpr=k.select rs,feexpr[":"]=f expr.filre)s,f)unique=k)uniqueSort,f)*ext=kpgp Text,f isXMLDoc=k isXML,f coypains=k.coypains}();y woP=/Until$/,Q=/^(?:pav, +s|p+edUntil|p+edA; )/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Ain opp+ tons ()s);ce,U=f expr.m// f.POS,V={c - dv, :!0,cTypeOrs:!0,next:!0,p+ed:!0};fent.ext ==({f ==:f<script\a){( " b=*/".,c,d+if(*s (= 1a!= if ])rvery.if(a).f lre)(/<script\){for(c=0,d=b.ters ="c<d;c++)if(f.coypains b[c],t/".))rvery.!0});y wo =*/"..pushStack "","f ==",at,g,=,i;for(c=0,d=*/"..ters ="c<d;c++){g=e.ters =,f.f ==(a,*/".[c], );de(c>0)for(h=g;h<e.ters ="h++)for(i=0ii<g i++)if(e[it===e[h]){e." );ce(h--,1);brd(k}}rvery.ie},has:f<script\a){( " b=fia)+ dataTy*/"..f lre)(/<script\){for(y woa=0,c=b.ters ="a<c;a++)if(f.coypains */".,b[a]))rvery.!0})},no :/<script\a){ dataTy*/"..pushStack Xe*/".,a,!1),"not",a)},f lre):/<script\a){ dataTy*/"..pushStack Xe*/".,a,!0),"f lre)",a)},is:/<script\a){rvery.!!a&&(*s (= 1a== if ]?f.f lre)(a,*/".).ters =>0:*/"..f lre)(a).ters =>0a},closfun:f<script\a,b){( " c=[],d,o,g=*/".[0t;if(f heAin o(a)){( " h,i,j={},k=1+if(g&&a.ters =){for(d=0,e=a.ters =;d<e;d++)i=a[d],j[it||(j[it=U. funci)?f(i,b||*/"..coypeuc):i);w - (g&&g.ownerDocweird&&g!==b){for(iei -j)h=j[it,(h.jq cry?hph?):[(g)>-1:f(g) he(h))&&c)push({select r:i,ps -:g,level:k});g=g.pav, +N.no,k++}}rvery.i }y wol=U. funca)||ns (= 1a!= if ]?f(a,b||*/"..coypeuc):0ifor(d=0,e=*/"..ters ="d<e;d++){g=*/".[d];w - (g){de(l?lph?):[(g)>-1:f.f ==.m// fesSelect r(g,a)){c.push(g);brd(k}g=g.pav, +N.no;de(!g||!gpownerDocweird||g===b||gnnsde || ===11)brd(k}}c=c)ters =>1?f)uniquecc):c; dataTy*/"..pushStack c,"closfun",a)},i?):[:/<script\a){if(!a||*s (= 1a== if ])rvery.if hnAin o(t/".[0t,a?f(a):*/"..pav, +().c - dv, ())+ dataTyf hnAin o(a.jq cry?a[0]:a,*/".)},ad=:f<script\a,b){( " c=ns (= 1a== if ]?f(a,b):fnmakeAin o(a&&a.nsde || ?[a]:a),d=f mergju*/".pge (),c); dataTy*/"..pushStack W(c[0t)||W(d[0t)?=:f)uniquecd))},andSelf:/<script\){ dataTy*/"..add\*/"..p+edO ) { )}}),fee\//,{pav, +:/<script\a){( " b=a.pav, +N.no;rvery.ib&&b.nsde || !==11?b:t{ },pav, +s:/<script\a){rvery.if.di)(a,"pav, +N.no")},pav, +sUntil:/<script\a,b,c){rvery.if.di)(a,"pav, +N.no",c)},next:f<script\a){rvery.if.nth(a,2,"nextSiblif ")},p+ed:f<script\a){rvery.if.nth(a,2,"p+ediousSiblif ")},nextA; :/<script\a){rvery.if.di)(a,"nextSiblif ")},p+edA; :/<script\a){rvery.if.di)(a,"p+ediousSiblif ")},nextUntil:/<script\a,b,c){rvery.if.di)(a,"nextSiblif ",c)},p+edUntil:/<script\a,b,c){rvery.if.di)(a,"p+ediousSiblif ",c)},siblif s:/<script\a){rvery.if.siblif (a.pav, +N.no.f(ddeC - d,a)},c - dv, :/<script\a){rvery.if.siblif (a.f(ddeC - d)},cTypeOrs:f<script\a){rvery.if.nsde if (a,"i=rn t")?a.coypantDocweird||a.coypantWifdow.docweird:fnmakeAin o(a.c - dN.no )}},f<script\a,b){frfn[a]=f<script\c,d){( " =f.map,*/".,b, ),g=T. resaaa weird );P. funca)||(d=c),d&&ns (= 1d== if ]&&( =f.f lre)(d,o)),e=*/"..ters =>1&&!V[a]?f)uniquece):e,(*/"..ters =>1||R: funcd))&&Q. funca)&&(e=e.+edarse(t); dataTy*/"..pushStack e,a,g)join(","))}}),feext ==({f lre):/<script\a,b,c){c&&(a=":not("+a+ )"); dataTyb.ters ====1?f.f ==.m// fesSelect r(b[0t,a)?[b[0t]:[]:f.f ==.m// fes\a,b)},di):/<script\a,c,d){( " =[t,g=a[c];w - (g&&g.nsde || !==9&&(d===b||gnnsde || !==1||!f(g) he(d)))gnnsde || ===1&&erpush(g),g=g[c]+ dataTye},nth:/<script\a,b,c,d){b=b||1;( " =0;for(;a;a=a[c])if(a.nsde || ===1&&++o===babrd(k+ dataTya},siblif :f<script\a,b){( " c=[];for(;a;a=a.nextSiblif )apnsde || ===1&&a!==b&&c.push(a)+ dataTyc}});( " Y=/ jQ cry\d+="(?:\d+|}); )"/g,Z=/^\s+/,$=/<(?!av,a|br|col|embed|hr|img|inpu |lifk|met\|pavam)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|h ) { |embed|opttoc|style)/i,bd=/checked\s*(?:[^=]|=\s*pchecked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={opttoc:[1,"<select multipsi='multipsi'>","</select>"],leg ==:[1,"<fieldset>","</fieldset>"],t/ea=:[1,"<ttyle>","</ttyle>"],tr:[2,"<ttyle><tbody>","</tbody></ttyle>"],t=:[3,"<ttyle><tbody><tr>","</tr></tbody></ttyle>"],col:[2,"<ttyle><tbody></tbody><colgroup>","</colgroup></ttyle>"],av,a:[1,"<map>","</map>"],_de just:[0,"",""]};bgeoptgroup=bgeopttoc,bg.tbody=bgetfoot=bgecolgroup=bgecapttoc=bget/ea=,bg.th=bgetd,frsupf su.htmlSerial= 0||(bge_de just=[1,"div<div>","</div>"]),fent.ext ==({*ext:f<script\a){if(f heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".);c.text(a. resa*/".,b,crtext()))})+if(*s (= 1a!= h ) { ]&&a!==b) dataTy*/"..empty(). ifend((t/".[0t&&n/".[0tpownerDocweird||c).cv,ateTextN.noia))+ dataTyf text(*/".)},wrapA; :/<script\a){if(f heF<script\a)) dataTy*/"..e\//,/<script\b){f(t/".).wrapA; (a. resa*/".,b))})+if(*/".[0t){( " b=fia,n/".[0tpownerDocweird).eq(0).clone(!0)+n/".[0tppav, +N.no&&b.h?sertBefor&(*/".[0t),b.map,/<script\){y woa=*/".iw - (aef(ddeC - d&&a.f(ddeC - d.nsde || ===1)a=a.f(ddeC - d; dataTya}). ifend(*/".)} dataTy*/".},wrapInner:/<script\a){if(f heF<script\a)) dataTy*/"..e\//,/<script\b){f(t/".).wrapInner(a. resa*/".,b))})+ dataTy*/"..e\//,/<script\){( " b=fit/".),c=b.cTypeOrs();c.ters =?c.wrapA; (a):b. ifend(a)})},wrap:/<script\a){ dataTy*/"..e\//,/<script\){f(t/".).wrapA; (a)})},unwrap:/<script\){ dataTy*/"..pav, +().e\//,/<script\){f nsde if (*/".,"body")||f(t/".).- n" &&With(*/"..c - dN.no )}).end()},aifend:/<script\){ dataTy*/"..domManipaaa weird ,!0,/<script\a){n/"..nsde || ===1&&*/"..aifendC - d(a)})},p+efend:/<script\){ dataTy*/"..domManipaaa weird ,!0,/<script\a){n/"..nsde || ===1&&*/"..h?sertBefor&(a,*/"..f ddeC - d)})},befor&:/<script\){if(*/".[0t&&n/".[0tppav, +N.no) dataTy*/"..domManipaaa weird ,!1,/<script\a){n/"..pav, +N.no.h?sertBefor&(a,*/".)})+if(aa weird .ters =){y woa=f(aa weird [0]);a)pushn iflyea,*/"..noAin o(t); dataTy*/"..pushStack a,"befor&",aa weird )}},afre):/<script\){if(*/".[0t&&n/".[0tppav, +N.no) dataTy*/"..domManipaaa weird ,!1,/<script\a){n/"..pav, +N.no.h?sertBefor&(a,*/"..nextSiblif )})+if(aa weird .ters =){y woa=*/"..pushStack */".,"afre)",aa weird );a)pushn iflyea,f(aa weird [0]).noAin o(t); dataTya}},==g (j:/<script\a,b){for(y woc=0,d;(d=*/".[c])!=}); ;c++)if(!a||frf lre)(a,[d]).ters =)!b&&dpnsde || ===1&&(fpcleanD()a\d.ge Efor(; sByTag if ("*")),fecleanD()a\[d])),d.pav, +N.no&&d.pav, +N.no)r{g (jC - d(d)+ dataTy*/".},empty:/<script\){for(y woa=0,b;(b=t/".[a])!=}); ;a++){bpnsde || ===1&&fecleanD()a\b.ge Efor(; sByTag if ("*"));w - (b.f ddeC - d)b)r{g (jC - d(b.f ddeC - d)} dataTy*/".},clone:/<script\a,b){a=a==t{ ?!1:a,b=b==t{ ?a:b; dataTy*/"..map,/<script\){ dataTyf clone(*/".,a,b)})},html:/<script\a){if(a===b) dataTy*/".[0t&&n/".[0tpnsde || ===1?n/".[0tpinnerHTMLp- n" && Y,""):t{ +if(*s (= 1a== if ]&&!bc. funca)&&(frsupf su.leadif Whittsp &&||!Z. funca))&&!bg[(_.e ec(a)||["",""])[1].*oLowerCase(t]){a=ap- n" && $,"<$1></$2>");nry{for(y woc=0,d=*/"..ters ="c<d;c++)*/".[c]pnsde || ===1&&(fpcleanD()a\*/".[c]pge Efor(; sByTag if ("*")),*/".[c]pinnerHTML=a)}c// f(e){n/"..empty(). ifend(a)}}" + ef heF<script\a)?*/"..e\//,/<script\b){( " c=f(t/".);c.html(a. resa*/".,b,crhtml()))}):n/"..empty(). ifend(a)+ dataTy*/".},- n" &&With:/<script\a){if(*/".[0t&&n/".[0tppav, +N.no){if(f heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".),d=c.html();c.- n" &&With(a. resa*/".,b,d))})+ns (= 1a!= if ]&&(a=f(a).det\//(t); dataTy*/"..e\//,/<script\){( " b=*/"..nextSiblif ,c=n/"..pav, +N.no;f(t/".).- g (ju),b?f(b).befor&(a):e(c). ifend(a)})} dataTy*/"..ters =?*/"..pushStack f(f heF<script\a)?a():a),"- n" &&With",a):*/".},det\//:/<script\a){ dataTy*/"..==g (jua,!0)},domManip:/<script\a,c,d){( " ,g,=,i,j=a[0],k=[];if(!fesupf su.checkClone&&aa weird .ters ====3&&ns (= 1j== if ]&&bd: funcj)) dataTy*/"..e\//,/<script\){f(t/".).domManipaa,c,d,!0)})+if(f heF<script\j)) dataTy*/"..e\//,/<script\o){( " g=f(t/".);a[0]=j. resa*/".,e,c?g.html():b),g.domManipaa,c,d)})+if(*/".[0t){i=j&&j:pav, +N.no,fesupf su.pav, +N.no&&i&&i.nsde || ===11&&i.c - dN.no .ters ====*/"..ters =?e={frageird:i}: =f.bu- dFrageird(a,*/".,k),h=e.frageird,h.c - dN.no .ters ====1?g=h=h.f(ddeC - d:g=h.f(ddeC - d;if(g){c=c&&fensde if (g,"tr");for(( " l=0,m=*/"..ters =,n=m-1;l<m;l++)d. resac?bh(*/".[l],g):*/".[l],e. /chatyle||m>1&&l<n?f clone(h,!0,!0):h)}k ters =&&fee\//,k,bn)}rvery.i*/".}}),febu- dFrageird=f<script\a,b,d){( " ,g,=,i=b&&b[0t?b[0tpownerDocweird||b[0t:c;a.ters ====1&&ns (= 1a[0t== if ]&&a[0t.ters =<512&&i===c&&a[0t.cha At(0)=== <]&&!bc. funca[0t)&&(fesupf su.checkClone||!bd. funca[0t))&&(g=!0,h=f frageird.[a[0t],h&&h!==1&&(e=h)),e||(&=i)cv,ateDocweirdFrageird(),feclean\a,i,e,d)),g&&(fefrageird.[a[0t]==?e:1); dataT{frageird:e,c/chatyle:g}},frfrageird.={},f.e\//,{ ifendTo:" ifend",p+efendTo:"p+efend",h?sertBefor&:"befor&",h?sertAfre):"afre)",- n" &&A; :"- n" &&With"},f<script\a,b){frfn[a]=f<script\c){( " d=[],e=f( ),g=*/"..ters ====1&&*/".[0tppav, +N.no+if(g&&g.nsde || ===11&&g.c - dN.no .ters ====1&&erters ====1){+[b](*/".[0t)+ dataTy*/".}for(( " h=0,i=e.ters ="h<i;h++){( " j=(=>0?*/".)clone(!0):t/".).ge ();f(e[h])[b](j),d=d.cTyc//(j)} dataTy*/"..pushStack d,a,e.select r)}}),feext ==({clone:/<script\a,b,c){( " d=apcloneN.noi!0), ,g,=+if((!fesupf su.noCloneEdant||!f supf su.noCloneChecked)&&(a.nsde || ===1||apnsde || ===11)&&!f isXMLDoc(a)){bj\a,dt, =bk(at,g=bk(d);for(h=0;e[h];++h)bj\e[h],g[h])}if(b){bi\a,dt;de(c){ =bk(at,g=bk(d);for(h=0;e[h];++h)bi\e[h],g[h])}} dataTyd},clean:/<script\a,b,d,o){( " g b=b||c,*s (= 1b.cv,ateEfor(; == 't get/se"&&(b=b.ownerDocweird|| -b[0t&&b[0tpownerDocweird||c);( " h=[],i;for(( " j=0,k;(k=a[j])!=}); ;j++){*s (= 1k== number]&&(k+="");de(!k)coypinue;if(*s (= 1k== if ])if(!bb. funck))k=b.cv,ateTextN.noik);" + {k=kp- n" && $,"<$1></$2>");( " l=(_.e ec(k)||["",""])[1].*oLowerCase(t,m=bg[l]||bge_de just,n=m[0],o=b.cv,ateEfor(; "div");opinnerHTML=m[1]+k+m[2];w - (n--)o=o)tadeC - d;if(!fesupf su.tbody){( " p=ba. funck),q=l=== ttyle]&&!p?oef(ddeC - d&&oef(ddeC - d.c - dN.no :m[1t=== <ttyle>"&&!p?oec - dN.no :[];for(i=q.ters =-1;i>=0;--i)fensde if (q[it,"tbody")&&!q[it.c - dN.no .ters =&&q[it.pav, +N.no)r{g (jC - d(q[it)}!frsupf su.leadif Whittsp &&&&Z. funck)&&oeh?sertBefor&(b.cv,ateTextN.noiZ.e ec(k)[0t),oef(ddeC - d),k=oec - dN.no }y wor;if(!fesupf su.aifendC ecked)de(k[0t&&ns (= 1(r=k.ters =)== number])for(i=0ii<r i++)bm(k[i])+" + ebm(k);k.nsde || ?h.push(k):h=f mergjuh,k)}if(d){g=/<script\a){ dataT!a.t|| ||be: funcapt|| )};for(j=0;h[j];j++)if(e&&fensde if (h[j],"script])&&(!h[j].t|| ||h[j].t|| .*oLowerCase(t==="text/javascript]))erpush(h[j].pav, +N.no?h[j].pav, +N.no)r{g (jC - d(h[j]):h[j]);" + {if(h[j]pnsde || ===1){( " s=f g- n(h[j]pge Efor(; sByTag if ("script]),g);h." );cen iflyeh,[j+1,0t.cTyc//(s))}d.aifendC - d(h[j])}} dataTyh},cleanD()a:/<script\a){( " b,c,d=f c/cha,e=frexpando,g=f.edantr"autial,h=f supf su. gsiteExpando;for(( " i=0,j;(j=a[i])!=}); ;i++){if(j.nsde if &&fensD()a[j.nsde if .*oLowerCase(t])coypinue;c=j[frexpando];de(c){b=d[c]&&d[c][(];de(b&&b.edants){for(y wokei -b.edants)g[k]?f) dantr==g (juj,k):fr==g (jEdantuj,k,brhandle);brhandle&&(brhandle.ps -=}); )}h? gsite j[frexpando]:jp==g (jAttribu f&&j:==g (jAttribu f frexpando), gsite d[c]}}}});( " bo=/alpha\([^)]*\)/i,bp=/op &ity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={posiript:"absolu f",visibility:"hidden",disn" y:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=/<script\a,b){ dataTyb.*oUiferCase(t};fent.css=/<script\a,c){if(aa weird .ters ====2&&c===b) dataTy*/".+ dataTyf access(*/".,a,c,!0,/<script\a,c,d){ dataTyd!==b?f)style\a,c,d):frcss\a,c)})},frext ==({cssHooks:{op &ity:{gen:f<script\a,b){if(b){( " c=bz a,"op &ity","op &ity")+ dataTyc===""?"1":c}rvery.ia)style.op &ity}}},cssNumber:{zI?):[:!0,foypWeight:!0,op &ity:!0,zoom:!0,lt/sHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f supf su.cssFloat?"cssFloat":"styleFloat"},style:/<script\a,c,d,o){if(!!a&&a.nsde || !==3&&a.nsde || !==8&&!!a)style){y wog,=,i=f c/melCase(c),j=a)style,k=frcssHooks[i];c=frcssProps[it||i;if(d===b){if(k&&"gen"i -k&&(g=kpgp ua,!1,o))!==b) dataTyg+ dataTyj[c]}h=ns (= 1d if(h=== number]&&isNaN(d)||d==t{ )rvery.;h=== if ]&&bu: funcd)&&(d=+dp- n" && bv,"")+pavseFloat(frcss\a,c))),h=== number]&&!frcssNumber[it&&(d+="px");de(!k||!("sen"i -k)||(d=k.set\a,dt)!==b)nry{j[c]=d}c// f(l){}}},css:/<script\a,c,d){( " ,g;c=frc/melCase(c),g=frcssHooks[c],c=frcssProps[c]||c,c==="cssFloat"&&(c="float")+if(g&&"gen"i -g&&(e=gpgp ua,!0,dt)!==b) dataTye;de(bz)rvery.ibz\a,c)},swap:/<script\a,b,c){( " d={};for(( " eei -b)d[e]=a)style[(],a)style[(]=b[e];c. resaa);for(eei -b)a)style[(]=d[e]},c/melCase:/<script\a){ dataTyap- n" && bq,bC)}}),fecurCSS=frcss,fee\//,[ height","width"],f<script\a,b){frcssHooks[b]={gen:f<script\a,c,d){( " ;de(c){a.offsetWidth!==0? =bD\a,b,d):f swap,a,bw,/<script\){ =bD\a,b,d)})+if(e<=0){e=bz a,b,b),e==="0px"&&bB&&(e=bB a,b,b));de(e!=}); ) dataTye===""||e==="auto"?"0px":e}if(e<0||e==}); ){e=a)style[b]+ dataTye===""||e==="auto"?"0px":e} dataTy*s (= 1e== if ]?e:e+"px"}},se :f<script\a,b){if(!bs: funcb))rvery.ib b=pavseFloat(b);if(b>=0)rvery. b+"px"}}}),fesupf su.op &ity||(frcssHooks.op &ity={gen:f<script\a,b){ dataTybp: func(b&&aecurv, +Style?aecurv, +Stylerf lre):a)style.f lre))|| ")?pavseFloat(RegExp.$1)/100+"":b?"1":""},se :f<script\a,b){( " c=a)style,d=apcurv, +Style;c.zoom=1;( " =f isNaN(b)?"":"alpha(op &ity="+b*100+")",g=d&&d.f lre)||crf lre)||"";crf lre)=bo: funcg)?gp- n" && bo,o):g+" "+e}}),f,/<script\){f supf su.relityleMaa inRight||(frcssHooks.maa inRight={gen:f<script\a,b){( " c;f swap,a,{disn" y:"inlt/s-block"},/<script\){b?c=bz a,"maa in-right","maa inRight"):c=a)style.maa inRight})+ dataTyc}})}),c.de justView&&c.de justViewpgp Compu fdStyle&&(bA=/<script\a,c){( " d, ,g;c=c)- n" && br,"-$1").*oLowerCase(t;de(!(e=aeownerDocweird.de justView))rvery.ib if(g=epgp Compu fdStyle\a,}); ))d=gpgp PropertyVe;ua(c),d===""&&!frcoypains aeownerDocweird.docweirdEfor(; ,a)&&(d=f)style\a,c))+ dataTyd}),c.docweirdEfor(; .curv, +Style&&(bB=f<script\a,b){( " c,d=a.curv, +Style&&a.curv, +Style[b],e=a.ruypimeStyle&&a.ruypimeStyle[b],f=a)style;!bs: funcd)&&bt: funcd)&&(c=f teft,e&&(a.ruypimeStyle teft=a.curv, +Style teft),feteft=b==="foypSize"?"1em":d||0,d=f pixelLeft+"px",feteft=c,e&&(a.ruypimeStyle teft=e))+ dataTyd===""?"auto":d}),bz=bA||bB,feexpr&&feexpr.filre)s&&(feexpr.filre)s.hidden=/<script\a){( " b=a.offsetWidth,c=a.offsetHeight+ dataT b===0&&c===0||!f supf su.relityleHiddenOffsets&&(a.style.disn" y||frcss\a,"disn" y]))==="none"},feexpr.filre)s.visible=/<script\a){ dataT!feexpr.filre)s.hidden(a)});( " bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datepime|email|hidden|month|number|password|range|search|tel|*ext|pime|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-ext =sExt|f le|widgp :$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|*extav,a)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=fent.load,bU={},bV={},bW,bX;nry{bW=e.href}c// f(bY){bW=c.cv,ateEfor(; "a"),bW.href="",bW=bW.href}bX=bS.e ec(bW.*oLowerCase(t)||[],fent.ext ==({load:f<script\a,c,d){if(*s (= 1a!= if ]&&bT)rvery.ibTn iflye*/".,aa weird );de(!*/"..ters =) dataTy*/".+( " =a)h?):[Of(" ")+if(e>=0){( " g=a)s);ce e,a.ters =);a=a.s);ce 0,e)}( " h="GET";c&&(feheF<script\c)?(d=c,c=b):*s (= 1c== h ) { ]&&(c=f pavam(c,frajaxSettif s.tradiriptal),h="POST"));( " i=*/".ifrajax({url:a,*|| :h,data || :"html",data:c,compsite:/<script\a,b,c){c=ap- sponseText,a.isResolved()&&(a.done(/<script\a){c=a}),i.html(g?f("<div>"). ifend(c)- n" && bO,"")).f ==(g):c)),d&&iee\//,d,[c,b,a])}}); dataTy*/".},serial= 0:/<script\){ dataTyf pavam(*/"..serial= 0Ain o(t)},serial= 0Ain o:/<script\){ dataTy*/"..map,/<script\){ dataTy*/"..efor(; s?fnmakeAin o(*/"..efor(; s):*/".}).f lre)(/<script\){ dataTy*/"..nif &&!*/"..distyled&&(*/"..c ecked||bP. funcn/"..nsde if )||bJ. funcn/"..t|| ))}).map,/<script\a,b){( " c=f(t/".).val()+ dataTyc==t{ ?}); :f heAin o(c)?f.map,c,f<script\a,c){ dataT{nif :b.nif ,ve;ua:ap- n" && bG,"\r\n")}}):{nif :b.nif ,ve;ua:cp- n" && bG,"\r\n")}}).ge ()}}),fee\//,"ajaxStavt ajaxStop ajaxCompsite ajaxErr// ajaxSuccess ajaxSend".c );t( "),f<script\a,b){frfn[b]=f<script\a){ dataTy*/"..b ==(b,a)}}),fee\//,["gen","post"],f<script\a,c){f[c]=f<script\a,d,o,g){f.isF serialid)&&(g=g||e,e=d,d=b)+ dataTyf ajax({*|| :c,url:a,data:d,success:e,data || :g})}}),feext ==({genScript:f<script\a,c){ dataTyf gp ua,b,c,"script])},gp JSON:/<script\a,b,c){rvery.if.gp ua,b,c,"json")},ajaxSetup:f<script\a,b){b?f)ext ==(!0,a,frajaxSettif s,b):(b=a,a=f)ext ==(!0,frajaxSettif s,b));for(( " c in{coypeuc:1,url:1})cei -b?a[c]=b[c]:cei -frajaxSettif s&&(a[c]=frajaxSettif s[c])+ dataTya},ajaxSettif s:{url:bW,isLocal:bK: funcbX[1]),global:!0,*|| :"GET",cTypeOr || :" iflic//ipt/x-www-form-urlencsded",p+ocessD()a:!0,async:!0,accepts:{xml:" iflic//ipt/xml, text/xml",html:"text/html",peuc:"text/n" in",json:" iflic//ipt/json, text/javascript], *":"*/*"},cTypeOrs:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",peuc:"- sponseText"},cTyverte)s:{"* text":apS if ,"text html":!0,"text json":f pavseJSON,"text xml":f pavseXML}},ajaxPref lre):bZ(bU),ajaxTransf su:bZ(bV),ajax:f<script\a,c){f<script w\a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",vp- adyStat =a?4:0;( " o,r,u,w=l?ca,d,v,l):b,x,y+if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.gp R sponseHeader("Last-Modified"))f)tadeModified[k]=x+if(y=v.gp R sponseHeader("Etag"))f)etag[k]=y}de(a===304)c="notmodified",o=!0;" + enry{ =cb(d,w),c="success",o=!0}c// f(z){c="pavser rr//",u=z}}" + {u=c;de(!c||a)c=" rr//",a<0&&(a=0)}(.status=a,(.statusText=c,o?hp- solveWith(e,[r,c,v]):hp- ) { With(e,[v,c,u]),(.statusC.noij),j=b,d&&g.t iggnd\"ajax"+(o?"Success":"Err//"),[v,d,o?r:u]),ip- solveWith(e,[v,c]),t&&(g.t iggnd\"ajaxCompsite",[v,d]),--f.\/tive||fr dantrt iggnd\"ajaxStop"))}}*s (= 1a== h ) { ]&&(c=a,a=b),c=c||{};( " d=frajaxSetup({},c),e=d.coypeuc||d,g= !==d&&(e.nsde || ||eei stanc(= 1f)?f(e):f dant,h=f Def rred(),i=f _Def rred(),j=d.statusC.no||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={- adyStat :0,se RequfunHeader:f<script\a,b){if(!s){( " c=a)*oLowerCase(t;a=m[c]=m[c]||a,l[a]=b} dataTy*/".},gp AllR sponseHeaders:/<script\){ dataTys===2?n:t{ },gp R sponseHeader:/<script\a){( " c;de(s===2){if(!o){o={};w - (c=bI.e ec(n))o[c[1].*oLowerCase(t]=c[2]}c=o[a)*oLowerCase(t]} dataTyc===b?}); : },overrideMimeT|| :/<script\a){s||(d.mimeT|| =a)+ dataTy*/".},abort:f<script\a){a=a||"abort",p&&p.abort(at,w 0,a)+ dataTy*/".}};h.p+omise(v),(.success=v.done,(. rr//=v.fail,(.compsite=i.done,(.statusC.no=/<script\a){de(a){( " b;de(s<2)for(bei -a)j[b]=[j[b],a[b]]+" + eb=a[(.status],(.thet\b,b)} dataTy*/".},d.url=((a||d.url)+""))- n" && bH,""))- n" && bM,bX[1]+"//"),d.data || s=f t im(d.data || ||"*").*oLowerCase(t.c );t(bQ),d.crossDom in==}); &&(r=bS.e ec(d.url.*oLowerCase(t),d.crossDom in=!(!r||r[1t==bX[1]&&r[2]==bX[2]&&(r[3t||(r[1t=== http:"?80:443))==cbX[3t||(bX[1]=== http:"?80:443)))),d.data&&d.p+ocessD()a&&ns (= 1d.data!= if ]&&(d.data=f pavam(d.data,d.tradiriptal)),b$(bU,d,c,v);de(s===2) dataT!1;t=d.global,d.t|| =d.t|| .*oUiferCase(t,d.hasCTypeOr=!bL: funcd.t|| ),t&&f.\/tive++===0&&fr dantrt iggnd\"ajaxStavt");de(!d.hasCTypeOr){d.data&&(d.url+=cbN: funcd.url)?"&":"?")+d.data),k=d.url;if(d c/cha===!1){( " x=fensw(t,y=d.url)- n" && bR,"$1_="+x);d.url=y+(y===d.url?cbN: funcd.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasCTypeOr&&d.cTypeOr || !==!1||crcTypeOr || )&&v.se RequfunHeader("CTypeOr- || ",d.cTypeOr || t,d.ifModified&&(k=k||d.url,f)tadeModified[k]&&v.se RequfunHeader("If-Modified-Sinc(",f)tadeModified[k]),feetag[k]&&v.se RequfunHeader("If-None-M// f",feetag[k])),(.se RequfunHeader("Accept",d.data || s[0t&&d.accepts[d.data || s[0t]?d.accepts[d.data || s[0t]+(d.data || s[0t!== *"?", */*; q=0.01":""):d.accepts[ *"]);for(uei -d.headers)(.se RequfunHeader(u,d.headers[u])+if(d.befor&Send&&(d.befor&Send. resae,(,d)===!1||s===2)){(.abort(); dataT!1}for(uei {success:1, rr//:1,compsite:1})v[u](d[u])+p=b$(bV,d,c,v);de(!p)w(-1,"No Transf su");" + {(p- adyStat =1,d&&g.t iggnd\"ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=sp Timeout(/<script\){(.abort("timeout")},d.timeout));nry{s=1,p.se==(l,w)}c// f(z){status<2?w(-1,z):f rr//uz)}} dataTyv},pavam:/<script\a,c){( " d=[],e=f<script\a,b){b=f.isF serialib)?b():b,d[d.ters =]=encsdeURIComponerd(a)+"="+encsdeURIComponerd(b)};c===b&&(c=f ajaxSettif s.tradiriptal);if(f heAin o(a)||apjq cry&&!f isP" inO ) { (a))fee\//,a,/<script\){ (*/"..nif ,*/"..ve;ua)});" + efor(( " gei -a)b_(g,a[g],c, ); dataTyd)join("&"))- n" && bE,"+")}}),feext ==({\/tive:0,tadeModified:{},etag:{}});( " cc=fensw(t,cd=/(\=)\?(&|$)|\?\?/i;frajaxSetup({jsonp:" resback",jsonpCresback:/<script\){ dataTyf expando+"_"+cc++}}),frajaxPref lre)("json jsonp",/<script\b,c,d){( " =b.cTypeOr || ==="aiflic//ipt/x-www-form-urlencsded"&&ns (= 1b.data== if ];if(b.data || s[0t==="jsonp"||b.jsonp!==!1&&(cd. funcb.url)||e&&cd. funcb.data))){y wog,==b.jsonpCresback=f.isF serialib.jsonpCresback)?b.jsonpCresback():b.jsonpCresback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.- n" && cd,l),b.url===j&&(e&&(k=k.- n" && cd,l)),b.data===k&&(j+=c/\?/: funcj)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=/<script\a){g=[a]},d.always(/<script\){a[h]=i,g&&f.isF serialii)&&a[h](g[0t)}),b.cTyverte)s["script json"]=/<script\){g||fr rr//uh+" was not resed"); dataTyg[0t},b.data || s[0t="json"; dataT"script]}}),frajaxSetup({accepts:{script:"text/javascript, iflic//ipt/javascript, iflic//ipt/ecmascript, iflic//ipt/x-ecmascript"},cTypeOrs:{script:/javascript|ecmascript/},cTyverte)s:{"text script":f<script\a){f.globalEval(a); dataTya}}}),frajaxPref lre)("script],f<script\a){a c/cha===b&&(a.c/cha=!1),a.crossDom in&&(a.t|| ="GET",a.global=!1)}),frajaxTransf su("script],f<script\a){if(a.crossDom in){( " d, =c.h ad||crge Efor(; sByTag if ("h ad")[0t||crdocweirdEfor(; ;rvery.{send:/<script\f,g){d=c.cv,ateEfor(; "script]),d.async="async",a.scriptChavset&&(d.chavset=a.scriptChavset),d.src=a)url,d.onload=d.on- adystatechange=/<script\a,c){if(c||!dp- adyStat ||/loaded|compsite/: funcd.- adyStat ))d.onload=d.on- adystatechange=}); ,o&&d.pav, +N.no&&err{g (jC - d(d),d=b,c||g(200,"success")},o.h?sertBefor&(d,e.f(ddeC - d)},abort:f<script\){d&&d.onload 0,1)}}}});( " c =a)A/tiveXO ) { ?/<script\){for(y woaei -cg)cg[a] 0,1)}:!1,cf=0,cg;f ajaxSettif s.xhr=a)A/tiveXO ) { ?/<script\){ dataT!*/"..hsLocal&&ch()||ci()}:ch,f<script\a){f.ext ==(f supf su,{ajax:!!a,co)s:!!a&&"withCred, +ials"i -a})}(f ajaxSettif s.xhr()),fesupf su.ajax&&f.\jaxTransf su(f<script\c){de(!c.crossDom in||frsupf su.co)s){( " d;rvery.{send:/<script\o,g){( " h=c.xhr(),i,j;c.usernif ?h.opet\c.t|| ,c)url,c.async,c.usernif ,c.password):hpopet\c.t|| ,c)url,c.asynct;de(c.xhrFields)for(jei -c.xhrFields)h[j]=c.xhrFields[j];c.mimeT|| &&hpoverrideMimeT|| &&hpoverrideMimeT|| (c.mimeT|| ),!c.crossDom in&&!e["X-Requfuned-With"]&&(e["X-Requfuned-With"]="XMLHttpRequfun");nry{for(jei -e)h.se RequfunHeader(j,e[j])}c// f(k){}h.se==(c.hasCTypeOr&&c.data||}); ),d=f<script\a,e){y woj,k,l,m,n;nry{if(d&&(e||hp- adyStat ===4)){d=b,i&&(h.on- adystatechange=/ensop,&&&& gsite cg[i])+if(e)h.- adyStat !==4&&hpabort();" + {j=h.status,l=h.gp AllR sponseHeaders(t,m={},n=h.responseXML,n&&nrdocweirdEfor(; &&(m.xml=nt,m)*ext=hp- sponseText;nry{k=h.statusText}c// f(o){k=""}!j&&c.hsLocal&&!c.crossDom in?j=m)*ext?200:404:j===1223&&(j=204)}}}c// f(p){ ||g(-1,p)}m&&guj,k,m, )},!c.async||hp- adyStat ===4?d():(i=++cf,&&&&(cg||(cg={},f(a).unload co)),cg[i]=d),h.on- adystatechange=d)},abort:f<script\){d&&d 0,1)}}}});( " cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[[ height","maa inTop","maa inBottom","paddif Top","paddif Bottom"],["width","maa inLeft","maa inRight","paddif Left","paddif Right"],["op &ity"]],cq,cr=a)webkitRequfunAnim//iptFrif ||a.mozRequfunAnim//iptFrif ||a.oRequfunAnim//iptFrif ;fent.ext ==({show:/<script\a,b,c){( " d, ;de(a||a===0) dataTy*/"..anim// (cu "show",3),a,b,c);for(( " g=0,h=*/"..ters ="g<h;g++)d=*/".[g],d.style&&(e=d.style.disn" y,!f _d()a\d,"olddisn" y])&&e==="none"&&(e=d.style.disn" y=""),e===""&&fecss\d,"disn" y])==="none"&&f _d()a\d,"olddisn" y],cv(d.nsde if )));for(g=0"g<h;g++){d=*/".[g]+if(d.style){e=d.style.disn" y;if( ===""||e==="none")d.style.disn" y=f _d()a\d,"olddisn" y])||""}} dataTy*/".},hide:/<script\a,b,c){de(a||a===0) dataTy*/"..anim// (cu "hide",3),a,b,c);for(( " d=0,e=*/"..ters ="d<e;d++)if(*/".[d])style){y wog=frcss(*/".[d],"disn" y]);g!=="none"&&!f _d()a\*/".[d],"olddisn" y])&&f _d()a\*/".[d],"olddisn" y],g)}for(d=0"d<e;d++)*/".[d])style&&(*/".[d])style.disn" y="none")+ dataTy*/".},_toggle:fent.toggle,toggle:f<script\a,b,c){( " d=*s (= 1a== boolean";f heF<script\a)&&f.isF serialib)?*/".._togglen iflye*/".,aa weird ):a==t{ ||d?*/"..e\//,/<script\){( " b=d?a:f(t/".).is(":hidden");f(t/".)[b?"show":"hide"]()}):n/"..anim// (cu "toggle",3),a,b,c); dataTy*/".},fadeTo:f<script\a,b,c,d){ dataTy*/"..f lre)(":hidden")rcss("op &ity",0).show().end().anim// ({op &ity:b},a,c,d)},anim// :/<script\a,b,c,d){( " =fr"aued\b,c,d);if(f heEmptyO ) { (a)) dataTy*/"..e\//,e.compsite,[!1]);a=f)ext ==({},a)+ dataTy*/".[e.q cua===!1?"e\//":"q cua"](/<script\){ .q cua===!1&&f _maak(t/".);( " b=f)ext ==({},e),c=n/"..nsde || ===1,d=c&&f(t/".).is(":hidden"),g,=,i,j,k,l,m,n,o;b.anim// dProperties={};for(iei -a){g=frc/melCase(i),i!==g&&(a[g]=a[i], gsite a[i]),h=a[g],f heAin o(h)?(b.anim// dProperties[g]=h[1],h=a[g]=h[0]):b. nim// dProperties[g]=br"autialEasif &&b.sautialEasif [g]||b.easif ||"swif ];if(h=== hide"&&d||h=== how"&&!d) dataTyb.compsite. resa*/".);c&&(g=== height"||g==="width")&&(broverflow=[*/"..style.overflow,*/"..style.overflowX,*/"..style.overflowY],f css(*/".,"disn" y])==="inlt/s"&&fecss\*/".,"float")==="none"&&(frsupf su.inlt/sBlockNuedsLayout?(j=cv(n/"..nsde if ),j==="inlt/s"?*/"..style.disn" y="inlt/s-block":(*/"..style.disn" y="inlt/s",*/"..style.zoom=1)):n/"..style.disn" y="inlt/s-block"))}broverflow!=}); &&(*/"..style.overflow="hidden");for(iei -a)k=}ew fenxa*/".,b,i),h=a[i],cm: funch)?k[h=== toggle"?d?"show":"hide":h]():(l=cn.e ec(ht,m=k.cur(t,l?(n=pavseFloat(l[2]),o=l[3t||(frcssNumber[it?"":"px"),o!=="px"&&(f)style\*/".,i,(n||1)+ot,m=(n||1)/k.cur(t*m,f)style\*/".,i,m+ott,l[1]&&(n=(l[1]=== -="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));rvery.!0})},stop:f<script\a,b){a&&*/"..q cua([]),*/"..e\//,/<script\){( " a=f)timers,c=a.ters ="b||fr_unmaak(!0,*/".);w - (c--)a[c].ps -===*/".&&(b&&a[c]i!0),a." );ce(c,1))}),b||*/"..deq cua()+ dataTy*/".}}),fee\//,{slideDown:cu "show",1),slideUp:cu "hide",1),slideToggle:cu "toggle",1),fadeIn:{op &ity:"show"},fadeOut:{op &ity:"hide"},fadeToggle:{op &ity:"toggle"}},f<script\a,b){frfn[a]=f<script\a,c,d){ dataTy*/"..anim// (b,a,c,d)}}),feext ==({"aued:/<script\a,b,c){( " d=a&&ns (= 1a== h ) { ]?f)ext ==({},a):{compsite:c||!c&&b||frheF<script\a)&&a,dur//ipt:a,easif :c&&b||b&&!f isF serialib)&&b};d.dur//ipt=fenx.off?0:ns (= 1d.dur//ipt== number]?d.dur//ipt:d.dur//iptei -frnx."aueds?fnnx."aueds[d.dur//ipt]:f.fx."auedse_de just,d.old=d.compsite,d.compsite=/<script\a){d.q cua!==!1?fndeq cua(*/".):a!==!1&&f _unmaak(t/".),f.isF serialid.old)&&d.old. resa*/".)}+ dataTyd},easif :{lt/sa):/<script\a,b,c,d){ dataTyc+d*a},swif :f<script\a,b,c,d){ dataT(-M//h.cos(a*M//h.PI)/2+.5)*d+c}},timers:[],fx:/<script\a,b,c){*/"..opttocs=b,d/"..efor=a,*/"..prop=c,brorig=brorig||{}}}),fefx.p+ tons (={upd// :/<script\){*/"..opttocs)step&&*/"..opttocs)step. resa*/"..efor,*/"..now,*/".),(f.fx."tep[*/"..prop]||frfx."tepe_de just)(*/".)},cur:/<script\){if(*/"..efor[*/"..prop]!=}); &&(!*/"..efor)style||*/"..efor)style[*/"..prop]==}); )) dataTy*/"..efor[*/"..prop];( " a,b=fecss\*/"..efor,*/"..prop)+ dataTyisNaN(a=pavseFloat(b))?!b||b==="auto"?0:b:a},custom:/<script\a,b,c){f<script h\a){ dataTyd."tep(a)}( " d=*/".,e=fenx,g;*/"..star Time=cq||cs(t,*/"..star =a,*/".. ===b,d/"..unit=c||d/"..unit||(frcssNumber[*/"..prop]?"":"px"),*/"..now=*/"..star ,*/"..pos=*/"..state=0,h.efor=*/"..efor,h()&&f.timersrpush(h)&&!co&&(cr?(co=1,g=/<script\){co&&(cr(g),e.tick())},cr(g)):co=setInre)val(e.tick,o.h?re)valt)},show:/<script\){*/"..opttocs)orig[*/"..prop]=f)style\*/"..efor,*/"..prop),*/"..opttocs)show=!0,*/"..custom(*/"..prop==="width"||d/"..prop==="height"?1:0,*/"..cur()),f\*/"..efor).show()},hide:/<script\){*/"..opttocs)orig[*/"..prop]=f)style\*/"..efor,*/"..prop),*/"..opttocs)hide=!0,*/"..custom(*/"..cur(t,0)},step:/<script\a){( " b=cq||cs(t,c=!0,d=*/"..efor,e=*/"..opttocs,g,=+if(a||b>=e.dur//ipt+*/"..star Time){n/"..nsw=*/".. ==,*/"..pos=*/"..state=1,d/"..upd// (t, . nim// dProperties[*/"..prop]=!0;for(gei - . nim// dProperties) . nim// dProperties[gt!==!0&&(c=!1t;de(c){ roverflow!=}); &&!f supf su.shrinkWrapBlocks&&fee\//,["","X","Y"],f<script\a,b){d.style["overflow"+b]= roverflow[a]}t, .hide&&f(d).hide(t;de( .hide||e.show)for(( " iei - . nim// dProperties)f)style\d,i,e)orig[i])+".compsite. resad)} dataT!1}e.dur//ipt==Infinity?n/"..nsw=b:(h=b-*/"..star Time,*/"..state=h/e.dur//ipt,*/"..pos=f.easif [ . nim// dProperties[*/"..prop]](*/"..state,h,0,1,e.dur//ipt),*/"..now=*/"..star +(*/".. ==-*/"..star )**/"..pos),d/"..upd// (t;rvery.!0}},frext ==(fenx,{tick:/<script\){for(y woa=f)timers,b=0;b<a.ters ="++b)a[b]()||ap" );ce(b--,1);a.ters =||frfx."top()},i?re)val:13,stop:f<script\){clearInre)val(cot,co=t{ },"aueds:{slow:600,fast:200,_de just:400},step:{op &ity:f<script\a){f.style\a.efor,"op &ity",a.nsw)},_de just:f<script\a){a efor)style&&a.efor)style[a.prop]!=}); ?a.efor)style[a.prop]=(a.prop==="width"||a.prop==="height"?M//h.max 0,a.nsw):a.nsw)+a.unit:a.efor[a.prop]=a.nsw}}}),feexpr&&feexpr.filre)s&&(feexpr.filre)s. nim// d=f<script\a){ dataTyf g- n(f)timers,/<script\b){ dataTya===b.efor}).ters =});( " cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"genBoundif ClientR { ]i -c.docweirdEfor(; ?fent.offset=/<script\a){( " b=*/".[0],c+if(a) dataTy*/"..e\//,/<script\b){f.offset.se Offset(*/".,a,b)});if(!b||!bpownerDocweird) dataTyt{ +if(b===b.ownerDocweird.body) dataTyf.offset.bodyOffset(b);nry{c=b.genBoundif ClientR { ()}c// f(d){}( " =b.ownerDocweird,g= rdocweirdEfor(; ;de(!c||!frcoypains g,b))rvery.ic?{top:c.top,teft:c teft}:{top:0,teft:0};( " h=e.body,i=cy( ),j=g.clientTop||hpclientTop||0,k=g.clientLeft||hpclientLeft||0,t=ippageYOffset||frsupf su.boxModel&&g.scrollTop||hpscrollTop,m=ippageXOffset||frsupf su.boxModel&&g.scrollLeft||hpscrollLeft,n=c.top+l-j,o=c teft+m-k+ dataT{top:n,teft:o}}:fent.offset=/<script\a){( " b=*/".[0]+if(a) dataTy*/"..e\//,/<script\b){f.offset.se Offset(*/".,a,b)});if(!b||!bpownerDocweird) dataTyt{ +if(b===b.ownerDocweird.body) dataTyf.offset.bodyOffset(b);f.offset.initial= 0();y woc,d=b.offsetPav, +, =b,g=b.ownerDocweird,h=g.docweirdEfor(; ,i=g.body,j=g.de justView,k=j?jpgp Compu fdStyle\b,}); ):b.curv, +Style,t=b.offsetTop,m=b.offsetLeft;w - ((b=b.pav, +N.no)&&b!==i&&b!==h){if(f offset.supf susFix dPosiript&&k.posiript==="fix d"abrd(k+c=j?jpgp Compu fdStyle\b,}); ):b.curv, +Style,t-=br"crollTop,m-=br"crollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f offset.doesNotAddBorder&&(!f offset.doesAddBorderForTableAndCells||!cw. funcb.nsde if ))&&(l+=pavseFloat(c.borderTopWidth)||0,m+=pavseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetPav, +),f offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=pavseFloat(c.borderTopWidth)||0,m+=pavseFloat(c.borderLeftWidth)||0),k=c}de(k.posiript==="r{l()iv+"||k.posiript==="static")l+=i.offsetTop,m+=i.offsetLeft;f offset.supf susFix dPosiript&&k.posiript==="fix d"&&(l+=M//h.max hpscrollTop,ipscrollTop),m+=M//h.max hpscrollLeft,ipscrollLeft));rvery.{top:l,teft:m}},froffset={initial= 0:/<script\){( " a=c.body,b=c.cv,ateEfor(; "div"),d,o,g,=,i=pavseFloat(frcss\a,"maa inTop"))||0,j="<div style='posiript:absolu f;top:0;teft:0;maa in:0;border:5px solid #000;paddif :0;width:1px;height:1px;'><div></div></div><ttyle style='posiript:absolu f;top:0;teft:0;maa in:0;border:5px solid #000;paddif :0;width:1px;height:1px;' cellpaddif ='0' cellsp &if ='0'><tr><td></td></tr></ttyle>";frext ==(b)style,{posiript:"absolu f",top:0,teft:0,maa in:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.i?sertBefor&(b,a.f(ddeC - d),d=b.f(ddeC - d,e=d.f(ddeC - d,h=d.nextSiblif ef(ddeC - d.f(ddeC - d,*/"..doesNotAddBorder= roffsetTop!==5,*/"..doesAddBorderForTableAndCells=hroffsetTop===5,e.style.posiript="fix d",e.style.top="20px",*/"..supf susFix dPosiript= roffsetTop===20||eroffsetTop===15,e.style.posiript=e.style.top="",d.style.overflow="hidden",d.style.posiript="r{l()iv+",*/"..subtractsBorderForOverflowNotVisible= roffsetTop===-5,*/"..doesNotIncludeMaa inInBodyOffset=a.offsetTop!==i,a)r{g (jC - d(b),f offset.initial= 0=/ensop},bodyOffset:/<script\a){( " b=a.offsetTop,c=a.offsetLeft;f offset.initial= 0(),f offset.doesNotIncludeMaa inInBodyOffset&&(b+=pavseFloat(frcss\a,"maa inTop"))||0,c+=pavseFloat(frcss\a,"maa inLeft"))||0);rvery.{top:b,teft:c}},se Offset:/<script\a,b,c){( " d=frcss\a,"posiript");d==="static"&&(a.style.posiript="r{l()iv+");( " =f(at,g= roffset(),h=f css\a,"top"),i=f css\a,"left"),j=(d==="absolu f"||d==="fix d"a&&f.inAin o("auto",[=,i])>-1,k={},l={},m,n;j?(l=e.posiript(t,m=l.top,n=l.teft):(m=pavseFloat(h)||0,n=pavseFloat(i)||0),f isF serialib)&&(b=b. resaa,c,g)),b.top!=}); &&(k.top=b.top-g.top+m),b.teft!=}); &&(k.teft=b.teft-g.teft+n),"usif "i -b?b.usif . resaa,k):e css\k)}},frft.ext ==({posiript:/<script\){if(!*/".[0]) dataTyt{ +y woa=*/".[0],b=*/"..offsetPav, +(),c=n/"..offset(),d=cx. funcb[0tpnsde if )?{top:0,teft:0}:b.offset();c.top-=pavseFloat(frcss\a,"maa inTop"))||0,c.teft-=pavseFloat(frcss\a,"maa inLeft"))||0,d.top+=pavseFloat(frcss\b[0t,"borderTopWidth"))||0,d.teft+=pavseFloat(frcss\b[0t,"borderLeftWidth"))||0;rvery.{top:c.top-d.top,teft:c teft-d.teft}},offsetPav, +:/<script\){ dataTy*/"..map,/<script\){y woa=*/"..offsetPav, +||crbodyiw - (a&&!cx: funcapnsde if )&&fecss\a,"posiript")==="static")a=a.offsetPav, +; dataTya})}}),fee\//,["Left","Top"],f<script\a,c){( " d="scroll"+c;fent[d]=f<script\c){( " ,g;de(c===b){e=*/".[0]+if(!e) dataTyt{ +g=cy( ); dataTyg?"pageXOffset"i -g?g[a?"pageYOffset":"pageXOffset"]:frsupf su.boxModel&&g.docweird.docweirdEfor(; [d]||gndocweird.body[d]:e[d]} dataTy*/"..e\//,/<script\){g=cy(t/".),g?gpscrollTo(a?f(g) scrollLeft():c,a?c:f(g) scrollTop()):*/".[d]=c})}}),fee\//,["Height","Width"],f<script\a,c){( " d=c)*oLowerCase(t;fent["inner"+c]=/<script\){ dataTy*/".[0t?pavseFloat(frcss\*/".[0],d,"paddif ")):t{ },fent["outer"+c]=/<script\a){ dataTy*/".[0t?pavseFloat(frcss\*/".[0],d,a?"maa in":"border")):t{ },fent[d]=/<script\a){( " e=*/".[0]+if(!e) dataTya==t{ ?}); :*/".+if(f heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".);c[d](a. resa*/".,b,c[d]()))})+if(f heWifdow( )){y wog=e.docweird.docweirdEfor(; ["client"+c]+ dataTye.docweird.compaeMode==="CSS1Compae"&&g||endocweird.body["client"+c]||g}if(e.nsde || ===9) dataTyM//h.max rdocweirdEfor(; ["client"+c],e.body["scroll"+c],e.docweirdEfor(; ["scroll"+c],e.body["offset"+c],e.docweirdEfor(; ["offset"+c])+if(a===b){( " h=frcss\e,d),i=pavseFloat(h)+ dataTyf isNaN(i)?h:i} dataTy*/"..css\d,*s (= 1a== if ]?a:a+"px")}}),a.jQ cry=a.$=f})(wifdow); \ No newlt/s at == = 1f- +/*! jQ cry v1.11.0 | \c) 2005, 2014 jQ cry Found//ipt, Inc. | jq cry.org/);ce?se */ +!f<script\a,b){ h ) { ]==*s (= 1module&& h ) { ]==*s (= 1moduleeexp sus?moduleeexp sus=a.docweird?bua,!0):/<script\a){if(!a.docweird)throw new Err//("jQ cry requires a wifdow with a docweird"); dataTyb(a)}:b(a)}( 't get/se"!=*s (= 1wifdow?wifdow:*/".,f<script\a,b){( " c=[],d=c.s);ce, =c.cTyc//,f=c.push,g=c)h?):[Of,h={},i=hrtoS if ,j=h.hasOwnProperty,k="" t im,l={},m="1.11.0",n=/<script\a,b){ dataTynew nrft.init\a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=/<script\a,b){ dataTyb.*oUiferCase(t};nrft=n.p+ tons (={jq cry:m,cTy uct r:n,select r:"",ters =:0,*oAin o:/<script\){ dataTyd. resa*/".)},get:/<script\a){ dataTyt{ !=a?0>a?n/".[a+*/"..ters =]:*/".[a]:d. resa*/".)},pushStack:/<script\a){( " b=n mergju*/"..cTy uct r(),a)+ dataTyb.p+evO ) { =*/".,b.coypeuc=*/"..cTypeuc,b},ea//:/<script\a,b){ dataTyn.e\//,*/".,a,b)},map:/<script\a){ dataTy*/"..pushStack n.map,*/".,f<script\b,c){rvery.ia. resab,c,b)}))},s);ce:/<script\){ dataTy*/"..pushStack dn iflye*/".,aa weird ))},f(dde:/<script\){ dataTy*/"..eq(0)},tade:/<script\){ dataTy*/"..eq(-1)},oq:/<script\a){( " b=*/"..ters =,c=+a+(0>a?b:0); dataTy*/"..pushStack c>=0&&b>c?[*/".[c]]:[])},ond:/<script\){ dataTy*/"..p+evO ) { ||d/"..cTy uct r(}); )},push:f,sort:c.s su," );ce:c.s );ce},t.ext ===nrft.ext ===/<script\){y woa,b,c,d,e,f,g=aa weird [0]||{},h=1,i=aa weird .ters =,j=!1;for( boolean"==*s (= 1g&&(j=g,g=aa weird [h]||{},h++),"h ) { ]==*s (= 1g||n heF<script\g)||(g={}),h===i&&(g=*/".,h--)+i>h;h++)if(t{ !=(e=aa weird [h]))for(dei -e)a=g[d],c=e[d],g!==c&&(j&&c&&(n isP" inO ) { (c)||(b=n heAin o(c)))?(b?(b=!1,/=a&&n heAin o(a)?a:[]):/=a&&n heP" inO ) { (a)?a:{},g[d]=t.ext ==(j,f,c)):void 0!==c&&(g[d]=c))+ dataTyg},t.ext ==({expando:"jQ cry"+(m+M//h.random()).- n" && /\D/g,""),isReady:!0, rr//:/<script\a){throw new Err//(a)},nsop:/<script\){},ieF<script:/<script\a){ dataT"/<script]===t.*s ((a)},heAin o:Ain o heAin o||/<script\a){ dataT"ain o]===t.*s ((a)},heWifdow:/<script\a){ dataTyt{ !=a&&a==a.wifdow},heNweiric:/<script\a){ dataTya-pavseFloat(a)>=0},heEmptyO ) { :/<script\a){( " b;for(bei -a) dataT!1;rvery.!0},heP" inO ) { :/<script\a){( " b;if(!a||"h ) { ]!==t.*s ((a)||apnsde || ||n heWifdow(a)) dataT!1;try{if(a.cTy uct r&&!j. resaa,"cTy uct r")&&!j. resaa.cTy uct r.p+ tons (,"isProtons (Of")) dataT!1}c// f(c){rvery.!1}if(l.ownLast)for(bei -a) dataT j. resaa,b);for(bei -a)+ dataTyvoid 0===b||j. resaa,b)},*|| :/<script\a){ dataTyt{ ==a?a+"":"h ) { ]==*s (= 1a||"/<script]==*s (= 1a?h[i. resaa)]||"h ) { ]:ns (= 1a},globalEval:/<script\b){b&&n t im(b)&&(a.e ecScript||/<script\b){a eval. resaa,b)})(b)},c/melCase:/<script\a){ dataTyap- n" && p,"ms-"))- n" && q,r)},nsde if :/<script\a,b){ dataTya.nsde if &&a.nsde if .*oLowerCase(t===b.*oLowerCase(t},ea//:/<script\a,b,c){( " d, =0,f=a)ters =,g=s(a);de(c){if(g){for(;f>e;e++)if(d=b. iflyea[(],c),d===!1abrd(k}" + efor(eei -a)if(d=b. iflyea[(],c),d===!1abrd(k}" + eif(g){for(;f>e;e++)if(d=b. resaa[(],e,a[(]),d===!1abrd(k}" + efor(eei -a)if(d=b. resaa[(],e,a[(]),d===!1abrd(k+ dataTya},t im:k&&!k. resa"\ufeff\xa0")?/<script\a){ dataTyt{ ==a?"":k. resaa)}:/<script\a){ dataTyt{ ==a?"":(a+""))- n" && o,"")},mak0Ain o:/<script\a,b){( " c=b||[]; dataTyt{ !=a&&(s(O ) { (a))?n mergjuc,"s if ]==*s (= 1a?[a]:a):frcresac,a)),c},i?Ain o:/<script\a,b,c){( " d;if(b){if(g) dataTyg. resab,a,c);for(d=b.ters =,c=c?0>c?M//h.max 0,d+c):c:0;d>c;c++)de(cei -b&&b[c]===a) dataT c}rvery.-1},mergj:/<script\a,b){( " c=+b.ters =,d=0,e=a.ters ="w - (c>d)a[(++]=b[d++];de(c!==c)w - (void 0!==b[d])a[(++]=b[d++]; dataTya.ters ==e,a},grep:/<script\a,b,c){for(( " d,e=[],f=0,g=a)ters =,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&erpush(a[f])+ dataTye},map:/<script\a,b,c){( " d,f=0,g=a)ters =,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),t{ !=d&&iepush(d);" + efor(fei -a)d=b(a[f],f,c),t{ !=d&&iepush(d); dataTye. iflye[],i)},guid:1,p+oxo:/<script\a,b){( " c,e,f; dataT"s if ]==*s (= 1b&&(f=a[b],b=a,a=f),t heF<script\a)?(c=d. resaaa weird ,2),e=f<script\){ dataTya. iflyeb||*/".,c.cTyc//(d. resaaa weird )))},e.guid=a)guid=a)guid||n guid++,o):void 0},nsw:/<script\){ dataT+new Date},supf su:l}),t e\//,"Boolean Number S if F<script Ain o Date RegExp O ) { Err//".c );t( "),f<script\a,b){h["[h ) { "+b+"]"]=b.*oLowerCase(t});f<script s\a){( " b=a.ters =,c=t.*s ((a); dataT"/<script]===c||n heWifdow(a)?!1:1===apnsde || &&b?!0:"ain o]===c||0===b|| number]==*s (= 1b&&b>0&&b-1ei -a}( " t=/<script\a){( " b,c,d,e,f,g,=,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.docweird,u=0,v=0,w=eb(),x=eb(),y=eb(),z=/<script\a,b){ dataTya===b&&(j=!0),0},A= 't get/se",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.s);ce,I=D.h?):[Of||/<script\a){for(( " b=0,c=*/"..ters ="c>b;b++)if(*/".[b]===a) dataT b;rvery.-1},J="c ecked|selected|async|autofocws|auton" y|cTyprols|def r|distyled|hidden|ismap|lsop|multiple|opet|- adonly|required|scopee",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L)- n" && "w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N)- n" && 3,8)+")*)|.*)\\)|)",P=}ew RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=}ew RegExp("^"+K+"*,"+K+"*"),R=}ew RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=}ew RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=}ew RegExp(O),U=}ew RegExp("^"+M+"$"),V={ID:}ew RegExp("^#("+L+")"),CLASS:}ew RegExp("^\\.("+L+")"),TAG:}ew RegExp("^("+L)- n" && "w","w*")+")"),ATTR:}ew RegExp("^"+N),PSEUDO:}ew RegExp("^"+O),CHILD:}ew RegExp("^:(only|f(dde|tade|nth|nth-tade)-(c - d|of-t|| )(?:\\("+K+"*( dan|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:}ew RegExp("^(?:"+J+")$","i"),nuedsCoypeuc:}ew RegExp("^"+K+"*[>+~]|:( dan|odd|eq|ge|te|nth|f(dde|tade)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|*extav,a|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[n()iv+ \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=}ew RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=/<script\a,b,c){( " d="0x"+b-65536+ dataTyd!==d||c?b:0>d?S if .fromChavC.noid+65536):S if .fromChavC.noid>>10|55296,1023&d|56320)};try{G. iflyeD=H. resa*ec - dN.no ),*ec - dN.no ),D[t.c - dN.no .ters =]pnsde || }c// f(cb){G={ ifly:D.ters =?/<script\a,b){F. iflyea,H. resab))}:/<script\a,b){( " c=a)ters =,d=0iw - (a[c++]=b[d++]);a.ters ==c-1}}}f<script db\a,b,d,o){( " f,g,=,i,j,m,p,q,u,v;if((b?b.ownerDocweird||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"s if ]!=*s (= 1a) dataT d;if(1!==(i=bpnsde || )&&9!==i) dataT[];if(n&&!e){if(f=Z.e ec(a))if(h=f[1]){if(9===i){if(g=b.genEfor(; ById(ht,!g||!g.pav, +N.no) dataT d;if(g.id====) dataTydepush(g),d}" + eif(b.ownerDocweird&&(g=b.ownerDocweird.genEfor(; ById(ht)&&rab,g)&&g.id====) dataTydepush(g),d}" + {if(f[2]) dataTyG. iflyed,brge Efor(; sByTag if (a)),d;if((h=f[3])&&c.ge Efor(; sByCtads if &&b.ge Efor(; sByCtads if ) dataTyG. iflyed,brge Efor(; sByCtads if (ht),d}de(c.qsa&&(!o||!o: funca))){de(q=p=s,u=b,v=9===i&&a,1===i&&"h ) { ]!==b.nsde if .*oLowerCase(t){m=ob(a),(p=b.genAttribu f "id"))?q=p)- n" && _,"\\$&"):b.senAttribu f "id",q),q="[id='"+q+"'] ",j=m)ters ="w - (j--)m[j]=q+pb(m[j]);u=$: funca)&&mb(b.pav, +N.no)||b,v=m)join(",")}if(v)nry{ dataTyG. iflyed,u.q crySelect rAesavt),d}c// f(w){}et/resy{p||b.==g (jAttribu f "id")}}} dataTyxb(ap- n" && P,"$1"),b,d,o)}f<script eb(){y woa=[];f<script b(c, ){ dataTya.push(c+" ")>d c/chaLers =&& gsite b[a.shift()],b[c+" "]=e} dataTyb}f<script fb\a){ dataTya[s]=!0,a}f<script gb\a){( " b=l.cv,ateEfor(; "div");nry{ dataT!!a(b)}c// f(c){rvery.!1}et/resy{b.pav, +N.no&&b.pav, +N.no)r{g (jC - d(b),b=t{ }}f<script hb\a,b){( " c=a)s );t( |"),e=a.ters ="w - (e--)d.attrHandle[c[e]]=b}f<script ib\a,b){( " c=b&&a,d=c&&1===apnsde || &&1===bpnsde || &&(~b.sourceI?):[||B)-(~a.sourceI?):[||B)+if(d) dataT d;if(c)w - (c=c)nextSiblif )de(c===b)rvery.-1; dataTya?1:-1}f<script jb\a){ dataTy/<script\b){( " c=b.nsde if .*oLowerCase(t; dataT"input]===c&&b.t|| ===a}}f<script kb\a){ dataTy/<script\b){( " c=b.nsde if .*oLowerCase(t; dataT("input]===c||"button]===c)&&b.t|| ===a}}f<script lb\a){ dataTy/b,/<script\b){ dataTyb=+b,/b,/<script\c,d){( " ,f=ae[],c)ters =,b),g=frters ="w - (g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}f<script mb\a){ dataTya&&ns (= 1arge Efor(; sByTag if !==A&&a}c=dbrsupf su={},f=dbrisXML=/<script\a){( " b=a&&(a.ownerDocweird||a)rdocweirdEfor(; ;rvery. b?"HTML]!==b.nsde if :!1},k=db.senDocweird=/<script\a){( " b, =a?a.ownerDocweird||a:d,g= rde justView; dataTye!==l&&9===epnsde || &&e.docweirdEfor(; ?(l=e,m= rdocweirdEfor(; ,n=!f(e),g&&g!==g.top&&(g.addEdantListener?g.addEdantListener( 'tload",/<script\){k(t},!1):g.att/chEdant&&g.att/chEdant("on'tload",/<script\){k(t})),c.attribu fs=gb(/<script\a){rvery.ia. tads if ="i",!a.genAttribu f " tads if ")}),c.ge Efor(; sByTag if =gb(/<script\a){rvery.ia. ifendC - d(e.cv,ateComr(; "")),!a.genEfor(; sByTag if ("*").ters =}),c.ge Efor(; sByCtads if =Y: funce.ge Efor(; sByCtads if )&&gb(/<script\a){rvery.ia.innerHTML="<div tads='a'></div><div tads='a i'></div>",a.f(ddeC - d. tads if ="i",2===apge Efor(; sByCtads if ("i").ters =}),c.ge ById=gb(/<script\a){rvery.im. ifendC - d(a)rid=s,!e.ge Efor(; sByNif ||!e.ge Efor(; sByNif (s).ters =}),c.ge ById?(d.f ==.ID=/<script\a,b){if(*s (= 1b.genEfor(; ById!==A&&n){( " c=b.genEfor(; ById(a)+ dataTyc&&c.pav, +N.no?[c]:[]}},d.filre).ID=/<script\a){( " b=a.- n" && ab,bb)+ dataTyf<script\a){rvery.ia.genAttribu f "id")===b}}):( gsite d.f ==.ID,d.filre).ID=/<script\a){( " b=a.- n" && ab,bb)+ dataTyf<script\a){( " c=ns (= 1arge Attribu fN.no!==A&&arge Attribu fN.no "id")+ dataTyc&&c.ve;ua===b}}),d.f ==.TAG=c.ge Efor(; sByTag if ?/<script\a,b){ dataTy*s (= 1b.genEfor(; sByTag if !==A?brge Efor(; sByTag if (a):void 0}:/<script\a,b){( " c,d=[],e=0,f=brge Efor(; sByTag if (a);if("*"===a){w - (c=f[(++])1===cpnsde || &&depush(c); dataTyd} dataTyf},d.f ==.CLASS=c.ge Efor(; sByCtads if &&/<script\a,b){ dataTy*s (= 1b.genEfor(; sByCtads if !==A&&n?brge Efor(; sByCtads if (a):void 0},p=[],o=[],(c.qsa=Y: funce.q crySelect rAes))&&(gb(/<script\a){a.innerHTML="<select t=''><opttoc selected=''></opttoc></select>",a.q crySelect rAesa"[t^='']").ters =&&oepush("[*^$]="+K+"*(?:''|\"\")"),a.q crySelect rAesa"[selected]").ters =||oepush("\\["+K+"*(?:ve;ua|"+J+")"),a.q crySelect rAesa":c ecked").ters =||oepush(":c ecked")}),gb(/<script\a){( " b=e.cv,ateEfor(; "input]);b.senAttribu f "t|| ","hidden"),a. ifendC - d(b).senAttribu f "nif ","D"),a.q crySelect rAesa"[nif =d]").ters =&&oepush("nif "+K+"*[*^$|!~]?="),a.q crySelect rAesa":entyled").ters =||oepush(":entyled",":distyled"),a.q crySelect rAesa"*,:x"),oepush(",.*:"t})),(c.m// fesSelect r=Y: funcq=m)webkitM// fesSelect r||m.mozM// fesSelect r||m.oM// fesSelect r||m.msM// fesSelect r))&&gb(/<script\a){c.disconnectedM// f=q. resaa,"div"),q. resaa,"[s!='']:x"),pepush("!=",O)}),o=o.ters =&&}ew RegExp(o)join("|")),p=p)ters =&&}ew RegExp(p)join("|")),b=Y: funcm.compareDocweirdPosiript),r=b||Y: funcm.coypains)?/<script\a,b){( " c=9===apnsde || ?ardocweirdEfor(; :a,d=b&&b.pav, +N.no; dataTya===d||!(!d||1!==dpnsde || ||!(c.coypains?c.coypains(d):a.compareDocweirdPosiript&&16&a.compareDocweirdPosiript(d)))}:/<script\a,b){if(b)w - (b=b.pav, +N.no)if(b===a) dataT!0;rvery.!1},z=b?/<script\a,b){if(a===b)rvery. j=!0,0;( " d=!a.compareDocweirdPosiript-!b.compareDocweirdPosiript; dataTyd?d:( =(a.ownerDocweird||a)===cb.ownerDocweird||b)?a.compareDocweirdPosiript(b):1,1&d||!c.s suDet/ched&&b.compareDocweirdPosiript(a)===d?a=== ||a.ownerDocweird===*&&rat,a)?-1:b=== ||b.ownerDocweird===*&&rat,b)?1:i?I. resai,a)-I. resai,b):0:4&d?-1:1)}:/<script\a,b){if(a===b)rvery. j=!0,0;( " c,d=0,f=a)pav, +N.no,g=b.pav, +N.no,h=[a],k=[b]+if(!f||!g) dataTya===e?-1:b=== ?1:f?-1:g?1:i?I. resai,a)-I. resai,b):0+if(f===g) dataTyib\a,b);c=a;w - (c=c)pav, +N.no)h.unshift(c);c=b;w - (c=c)pav, +N.no)k.unshift(c);w - (h[d]===k[d])d++; dataTyd?ib\h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.m// fes=/<script\a,b){ dataTydb\a,}); ,}); ,b)},db.m// fesSelect r=/<script\a,b){if((a.ownerDocweird||a)!==l&&k(a),b=b.- n" && S,"='$1']"),!(!c.m// fesSelect r||!n||p&&p. funcb)||o&&oe funcb)))nry{( " d=q. resaa,b);if(d||crdisconnectedM// f||a.docweird&&11!==a.docweirdpnsde || ) dataTyd}c// f(e){} dataTydb\b, ,}); ,[a]).ters =>0},db.coypains=/<script\a,b){ dataT(a.ownerDocweird||a)!==l&&k(a),raa,b)},db.attr=/<script\a,b){(a.ownerDocweird||a)!==l&&k(a);( " =d.attrHandle[b.*oLowerCase(t],f= &&C. resad.attrHandle,b.*oLowerCase(t)?e\a,b,!n):void 0+ dataTyvoid 0!==f?f:c.attribu fs||!n?a.genAttribu f b):(f=arge Attribu fN.no b))&&fesautified?f.ve;ua:t{ },db. rr//=/<script\a){throw new Err//("Syypax rr//, unrecognized expressipt: "+a)},db.uniq cS su=/<script\a){( " b,d=[],e=0,f=0+if(j=!crditectDuflic//es,i=!c.s suSttyle&&ars);ce(0),a."ort(z),j){w - (b=a[f++])b===a[f]&&(e=d.push(f))"w - (e--)ap" );ce(d[e],1)} dataTyi=}); ,a},e=dbrge Text=/<script\a){( " b,c="",d=0,f=a)nsde || +if(f){if(1===f||9===f||11===f){if("s if ]==*s (= 1a)*extCTypeOr)rvery.ia.*extCTypeOr;for(a=a.f(ddeC - d;a;a=a.nextSiblif )c+=((a)}" + eif(3===f||4===f) dataTya.nsdeVe;ua}" + ew - (b=a[d++])c+=((b)+ dataTyc},d=db.select rs={c/chaLers =:50,cv,atePseudo:fb,m// f:V,attrHandle:{},f ==:{},r{l()iv+:{">":{dir:"pav, +N.no",f(dde:!0}," ":{dir:"pav, +N.no"},"+":{dir:"previousSiblif ",f(dde:!0},"~":{dir:"previousSiblif "}},preF lre):{ATTR:f<script\a){rvery.ia[1]=a[1].- n" && ab,bb),a[3]=(a[4]||a[5]||""))- n" && ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),ars);ce(0,4)},CHILD:f<script\a){rvery.ia[1]=a[1].*oLowerCase(t,"nth"===a[1].s);ce(0,3)?(a[3]||db. rr//(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(" dan"===a[3]||"hdd"===a[3])),a[5]=+(a[7]+a[8]||"hdd"===a[3])):a[3]&&db. rr//(a[0]),a},PSEUDO:/<script\a){( " b,c=!a[5]&&a[2]; dataTyV.CHILD: funca[0])?}); :(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T: funcc)&&(b=ob(c,!0))&&(b=c)h?):[Of(")",c)ters =-b)-c)ters =)&&(a[0t=a[0t.s);ce(0,b),a[2]=c.s);ce(0,b)),ars);ce(0,3))}},f lre):{TAG:/<script\a){( " b=a.- n" && ab,bb).*oLowerCase(t; dataT"*"===a?/<script\){ dataT!0}:/<script\a){ dataTya.nsde if &&a.nsde if .*oLowerCase(t===b}},CLASS:/<script\a){( " b=w[a+" "];rvery. b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w,a,/<script\a){ dataTyb: func"s if ]==*s (= 1a)ctads if &&a)ctads if ||ns (= 1arge Attribu f!==A&&arge Attribu f " tads])||"")})},ATTR:f<script\a,b,c){rvery.if<script\d){( " =db.attr(d,a)+ dataTyt{ ==e?"!="===b:b?(e+="","="===b?a===c:"!="===b?f!==c:"^="===b?c&&0===eph?):[Of(c):"*="===b?c&&eph?):[Of(c)>-1:"$="===b?c&&eps);ce(-c)ters =)===c:"~="===b?( "+e+" ")ph?):[Of(c)>-1:"|="===b?a===c||e.s);ce(0,c)ters =+1)===c+"-":!1):!0}},CHILD:f<script\a,b,c,d,e){( " f="nth"!==a.s);ce(0,3),g="tade"!==a.s);ce(-4),h="of-t|| "===b+ dataTy1===d&&0===e?/<script\a){ dataT!!a)pav, +N.no}:/<script\b,c,i){y woj,k,l,m,n,o,p=f!==g?"nextSiblif ":"previousSiblif ",q=b.pav, +N.no,r=h&&b.nsde if .*oLowerCase(t,t=!i&&!=+if(q){if(f){w - (p){l=b;w - (l=l[p])if(h?l.nsde if .*oLowerCase(t===r:1===lpnsde || ) dataT!1;o=p="onlo]===a&&!o&&"nextSiblif "} dataT!0}if(o=[g?q.f(ddeC - d:q)tadeC - d],g&&t){k=q[st||(q[st={}),j=k[a]||[],n=j[0t===u&&j[1],m=j[0t===u&&j[2],l=t&&q.c - dN.no [n];w - (l=++t&&l&&l[p]||(m=n=0)||oepop())if(1===lpnsde || &&++m&&l===b){k[a]=[u,n,m];brd(k}}" + eif(t&&(j=(b[st||(b[st={}))[a])&&j[0t===u)m=j[1]+" + ew - (l=++t&&l&&l[p]||(m=n=0)||oepop())if((h?l.nsde if .*oLowerCase(t===r:1===lpnsde || )&&++m&&(t&&((l[st||(l[st={}))[a]=[u,m]),l===b)abrd(k+ dataTym-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:/<script\a,b){( " c,e=d.pseudos[a]||d.senF lre)s[a.*oLowerCase(t]||db. rr//("unsupf sued pseudo: "+a); dataTye[st?f b):e.ters =>1?(c=[a,a,"",b],d.senF lre)s.hasOwnProperty(a.*oLowerCase(t)?/b,/<script\a,c){( " d,f=e\a,b),g=frters ="w - (g--)d=I. resaa,f[g]),a[d]=!(c[d]=/[g])}):/<script\a){ dataTye\a,0,c)}):e}},pseudos:{not:fb(/<script\a){( " b=[],c=[],d=g(ap- n" && P,"$1")); dataTyd[st?/b,/<script\a,b,c, ){( " f,g=d\a,}); ,e,[]),h=arters ="w - (h--)(f=g[h])&&(a[h]=!(b[h]=/))}):/<script\a,e,f){ dataTyb[0t=a,d\b,}); ,f,c),!c.pop()}}),has:fb(/<script\a){ dataTy/<script\b){ dataTydb\a,b).ters =>0}}),coypains:fb(/<script\a){ dataTy/<script\b){ dataT(b.*extCTypeOr||b.innerText||e b))ph?):[Of(a)>-1}}),laf :fb(/<script\a){ dataTyU: funca||"")||db. rr//("unsupf sued laf : "+a),a=a.- n" && ab,bb).*oLowerCase(t,/<script\b){( " c;do de(c=n?brlaf :b.genAttribu f "xml:laf ")||b.genAttribu f "laf ")) dataT c=c)*oLowerCase(t,c===a||0===c)h?):[Of(a+"-");w - ((b=b.pav, +N.no)&&1===bpnsde || ); dataT!1}}),target:/<script\b){( " c=a)toc//ipt&&artoc//ipt.hash+ dataTyc&&c.s);ce(1t===b.id},root:/<script\a){ dataTya===m},focws:/<script\a){ dataTya===l.\/tiveEfor(; &&(!l.hasFocws||l.hasFocws())&&!!(a.t|| ||a.href||~a.tabI?):[)},ontyled:/<script\a){ dataTya.distyled===!1},distyled:/<script\a){ dataTya.distyled===!0},c ecked:/<script\a){( " b=a.nsde if .*oLowerCase(t; dataT"input]===b&&!!a.c ecked||"hpript]===b&&!!a.selected},selected:/<script\a){ dataTya.pav, +N.no&&a.pav, +N.no.selectedI?):[,a.selected===!0},empty:f<script\a){for(a=a.f(ddeC - d;a;a=a.nextSiblif )if(a.nsde || <6) dataT!1;rvery.!0},pav, +:/<script\a){ dataT!d.pseudos.empty(a)},header:/<script\a){ dataTyX: funcapnsde if )},i?put:/<script\a){ dataTyW: funcapnsde if )},button:/<script\a){( " b=a.nsde if .*oLowerCase(t; dataT"input]===b&&"button]===a.t|| ||"button]===b},peuc:/<script\a){( " b; dataT"input]===a.nsde if .*oLowerCase(t&&"peuc]===a.t|| &&(n{ ==(b=a.genAttribu f "t|| "))||"peuc]===b.*oLowerCase(t)},f(dde:lb,/<script\){ dataT[0]}),lade:lb,/<script\a,b){ dataT[b-1]}t, q:lb,/<script\a,b,c){rvery.[0>c?c+b:c]}t, dan:lb,/<script\a,b){for(( " c=0;b>c;c+=2)aepush(c); dataTya}),odd:lb,/<script\a,b){for(( " c=1;b>c;c+=2)aepush(c); dataTya}),le:lb,/<script\a,b,c){for(( " d=0>c?c+b:c;--d>=0;)aepush(d); dataTya}),ge:lb,/<script\a,b,c){for(( " d=0>c?c+b:c;++d<b;)aepush(d); dataTya})}},d.pseudos.nth=d.pseudos.eq;for(bei {radio:!0,c eckbox:!0,f- :!0,password:!0,imag :!0})d.pseudos[b]=jb(b);for(bei {submie:!0,reset:!0})d.pseudos[b]=kb(b);f<script nb(){}nb.p+ tons (=d.filre)s=d.pseudos,d.senF lre)s=new nb;f<script ob\a,b){( " c,e,f,g,=,i,j,k=x[a+" "];de(k) dataT b?0:krs);ce(0);h=a,i=[],j=d.preF lre)"w - (h){(!c||(e=Q.e ec(ht))&&( &&(h=h.s);ce(e[0t.ters =)||h),iepush(f=[])t,c=!1,(e=R.e ec(ht)&&(c=e.shift(),fepush({ve;ua:c,*|| :e[0t.- n" && P," ")}),h=h.s);ce(c)ters =));for(gei -d.filre))!(e=V[g].e ec(ht)||j[g]&&!(e=j[g]( ))||(c=e.shift(),fepush({ve;ua:c,*|| :g,m// fes:e}),h=h.s);ce(c)ters =));de(!cabrd(k} dataT b?h)ters =:h?db. rr//(a):x\a,i)rs);ce(0)}f<script pb\a){for(( " b=0,c=a)ters =,d="""c>b;b++)d+=a[b].ve;ua; dataTyd}f<script qb\a,b,c){( " d=b.dir, =c&&"pav, +N.no"===d,f=v++; dataTyb.f(dde?/<script\b,c,f){w - (b=b[d])if(1===bpnsde || ||e) dataTya\b,c,f)}:/<script\b,c,g){( " h,i,j=[u,f];de(g){w - (b=b[d])if((1===bpnsde || ||e)&&a\b,c,g)) dataT!0}" + ew - (b=b[d])if(1===bpnsde || ||e){if(i=b[st||(b[st={}),(h=i[d])&&h[0t===u&&h[1]===f) dataTyj[2]=h[2];if(i[d]=j,j[2]=a\b,c,g)) dataT!0}}}f<script rb\a){ dataTya.ters =>1?/<script\b,c,d){( " =a.ters ="w - (e--)if(!a[e]\b,c,d)) dataT!1;rvery.!0}:a[0t}f<script sb\a,b,c,d,e){for(( " f,g=[],h=0,i=a.ters =,j=t{ !=b+i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h))+ dataTyg}f<script tb\a,b,c,d,e,f){ dataTyd&&!d[st&&(d=tb\d)),o&&!e[st&&(e=tb\e,f)),/b,/<script\f,g,=,i){y woj,k,l,m=[],n=[],o=g.ters =,p=f||wbeb||"*",hpnsde || ?[h]:h,[]),q=!a||!f&&b?p:sb\p,m,a,=,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c q,r,=,i),d){j=sb\r,n),d(j,[],h,i),k=j.ters ="w - (k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=lt)}if(f){if( ||a){if( ){j=[],k=r.ters ="w - (k--)(l=r[k])&&j.push(q[k]=lt;e(n{ ,r=[],j,i)}k=r.ters ="w - (k--)(l=r[k])&&(j=e?I. resaf,l):m[k])>-1&&(f[j]=!(g[j]=lt)}}" + er=sb\r===g?rp" );ce(o,r.ters =):r),o?e(n{ ,g,r,i):G. iflyeg,r)})}f<script ub\a){for(( " b,c,e,f=a)ters =,g=d.r{l()iv+[a[0t.*|| ],i=g||d.r{l()iv+[" "],j=g?1:0,k=qb(/<script\a){rvery.ia===b},i,!0),l=qb(/<script\a){rvery.iI. resab,a)>-1},i,!0),m=[/<script\a,c,d){ dataT!g&&(d||c!==h)||((b=c)pnsde || ?k\a,c,d):l\a,c,d))}];f>j;j++)de(c=d.r{l()iv+[a[jt.*|| ])m=[qb(rb\mt,c)]+" + {de(c=d.filre)[a[jt.*|| ]. iflye}); ,a[jt.m// fest,c[st){for(e=++j;f>e;e++)if(d.r{l()iv+[a[et.*|| ])brd(k+ dataTytb\j>1&&rb\mt,j>1&&pb\a.s);ce(0,j-1).cTyc//({ve;ua:" "===a[j-2t.*|| ?"*":""})).- n" && P,"$1"),c,e>j&&ub\a.s);ce(j,e)),f>e&&ub\a=a.s);ce(e)),f>e&&pb\a))}mepush(c)} dataT rb\mt}f<script vb\a,b){( " c=b.ters =>0,e=a.ters =>0,f=/<script\f,g,i,j,k){( " m,n,o,p=0,q="0",r=/&&[],s=[],t=h,v=f|| &&def ==.TAG("*",k),w=u+=n{ ==t?1:M//h.random()||.1,x=v.ters ="for(k&&(h=g!==l&&g);q!==x&&t{ !=(m=v[q]);q++){if( &&m){n=0iw - (o=a[n++])if(o(m,g,i)){jepush(m);brd(k}k&&(u=w)}c&&((m=!o&&m)&&p--,/&&repush(m))}if(p+=q,c&&q!==p){n=0iw - (o=b[n++])o\r,s,g,i)+if(f){if(p>0)w - (q--)r[q]||s[q]||(s[q]=E. resaj))+s=sb\s)}G. iflyej,st,k&&!/&&s.ters =>0&&p+b.ters =>1&&db.uniq cS suaj)} dataT k&&(u=w,h=*),r}+ dataTyc?/b,/):f}g=db.comp- =/<script\a,b){( " c,d=[],e=[],f=y[a+" "];de(!f){b||(b=ob(a)t,c=b.ters ="w - (c--)f=ub\b[c]),f[st?d.push(f):e.push(f);f=y\a,vb\e,d))} dataTyf};f<script wb\a,b,c){for(( " d=0, =b.ters ="e>d;d++)db\a,b[d],c)+ dataTyc}f<script xb\a,b,e,f){( " h,i,j,k,l,m=ob(a);de(!f&&1===m)ters =){if(i=m[0t=m[0t.s);ce(0),ieters =>2&&"ID"===(j=i[0]).t|| &&c.ge ById&&9===bpnsde || &&n&&der{l()iv+[i[1].*|| ]){if(b=(d.f ==.ID(j.m// fes[0t.- n" && ab,bb),b)||[])[0],!b)rvery. e;a=a.s);ce(i.shift().ve;ua)ters =)}h=V.nuedsCoypeuc: funca)?0:irters ="w - (h--){if(j=i[h],der{l()iv+[k=j.*|| ])brd(k+if((l=d.f ==[k])&&(f=l(j.m// fes[0t.- n" && ab,bb),$: funci[0t.*|| )&&mb(b.pav, +N.no)||b))){de(ip" );ce(h,1),a=frters =&&pb\i),!a) dataTyG. iflyee,f),e;brd(k}}} dataTyg\a,m)(f,b,!n,e,$: funca)&&mb(b.pav, +N.no)||b),e} dataTyc.s suSttyle=s)s );t( ")."ort(z))join("")===.,c.ditectDuflic//es=!!j,k(t,c.s suDet/ched=gb(/<script\a){rvery.i1&a.compareDocweirdPosiript(l.cv,ateEfor(; "div"))}),gb(/<script\a){rvery.ia.innerHTML="<a href='#'></a>","#]===a.f(ddeC - d.genAttribu f "href")})||hb "t|| |href|height|width",/<script\a,b,c){rvery.yc?void 0:a.genAttribu f b,"t|| "===b.*oLowerCase(t?1:2)}),c.attribu fs&&gb(/<script\a){rvery.ia.innerHTML="<input/>",a.f(ddeC - d.senAttribu f "ve;ua",""),"]===a.f(ddeC - d.genAttribu f "ve;ua")})||hb "ve;ua",/<script\a,b,c){rvery.yc||"input]!==a.nsde if .*oLowerCase(t?void 0:a.de justVe;ua}),gb(/<script\a){rvery.it{ ==a.genAttribu f "distyled")})||hb J,/<script\a,b,c){( " d;rvery.yc?void 0:a[b]===!0?b.*oLowerCase(t:( =arge Attribu fN.no b))&&desautified?d.ve;ua:t{ }),db}(a);n.f ===t,t.expr=t.select rs,t.expr[":"]=t.expr.pseudos,n.uniq c=t.uniq cS su,n.peuc=*rge Text,t heXMLDoc=*rheXML,t coypains=t coypains;( " u=t.expr.m// f.nuedsCoypeuc,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;f<script x\a,b,c){if(n isF serialib)) dataTyt g- n(a,/<script\a,d){ dataT!!b. resaa,d,a)!==c})+if(bpnsde || ) dataTyt g- n(a,/<script\a){rvery.ia===b!==c})+if("s if ]==*s (= 1b){if(we funcb)) dataTyt filre)ab,a,c);b=n filre)ab,a)} dataTyt g- n(a,/<script\a){rvery.in.inAin o(a,b)>=0!==c})}n filre)=/<script\a,b,c){( " d=b[0t+ dataTyc&&\a=":no "+a+")"),1===bpters =&&1===dpnsde || ?n.f ==.m// fesSelect r(d,a)?[d]:[]:n.f ==.m// fes\a,} g- n(b,/<script\a){rvery.i1===apnsde || }))},nrft.ext ==({f ==:/<script\a){( " b,c=[],d=*/".,e=drters ="if("s if ]!=*s (= 1a) dataT */"..pushStack n(a)rfilre)a/<script\){for(b=0ie>b;b++)if(n.coypains(d[b],*/".)) dataT!0}));for(b=0ie>b;b++)n.f ==aa,d[b],c)+ dataTyc=*/"..pushStack e>1?n.uniq c(c):ct,c.select r=*/"..select r?*/"..select r+" "+a:a,c},f lre):/<script\a){rvery.i*/"..pushStack xe*/".,a||[],!1))},not:/<script\a){ dataTy*/"..pushStack xe*/".,a||[],!0))},he:/<script\a){ dataT!!xe*/".,"s if ]==*s (= 1a&&u: funca)?t\a):a||[],!1).ters =}});( " y,z=a.docweird,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=nrft.init=/<script\a,b){( " c,d;if(!a) dataT */".+if("s if ]==*s (= 1a){if(c="<]===a.charAt(0)&&">]===a.charAt(a.ters =-1)&&arters =>=3?[}); ,a,}); ]:A.e ec(a),!c||!c[1]&&b)rvery.!b||b.jq cry?eb||y).f ==aa):*/"..cTy uct r(b).f ==aa);if(c[1]){if(b=bei stanc(= 1n?b[0t:b,n mergju*/".,n pavseHTML(c[1],b&&b.nsde || ?b.ownerDocweird||b:z,!0)),v: funcc[1])&&n heP" inO ) { (b))for(cei -b)n isF seriali*/".[c])?*/".[c]\b[c]):*/"..attr(c,b[c]); dataT */".}if(d=z.genEfor(; ById(c[2]),d&&depav, +N.no){if(d.id!==c[2]) dataTyy.f ==aa);*/"..ters ==1,d/".[0t=d} dataTy*/"..coypeuc=z,*/"..select r=a,*/".}rvery.ia.nsde || ?(*/"..coypeuc=d/".[0t=a,*/"..ters ==1,d/".):t heF<script\a)? 't get/se"!=*s (= 1y.- ady?y.- ady\a):a(nt:(void 0!==a.select r&&(t/"..select r=a.select r,*/"..coypeuc=a.coypeuc),t mak0Ain o(a,*/".))};B.p+ tons (=nrft,y=n(z);( " C=/^(?:pav, +s|prev(?:Until|Aes))/,D={c - dv, :!0,cTypeOrs:!0,next:!0,prev:!0};t.ext ==({dir:/<script\a,b,c){( " d=[],e=a[b]"w - (e&&9!==epnsde || &&(void 0===c||1!==epnsde || ||!n(e) he(c)))1===epnsde || &&d.push(e),e=e[b]" dataTyd},siblif :/<script\a,b){for(( " c=[];a;a=a.nextSiblif )1===apnsde || &&a!==b&&crpush(a)+ dataTyc}}),t ft.ext ==({has:f<script\a){( " b,c=n(a,*/".),d=c.ters =" dataTy*/"..filre)a/<script\){for(b=0id>b;b++)if(n.coypains(*/".,c[b])) dataT!0})},closest:/<script\a,b){for(( " c,d=0,e=*/"..ters =,f=[],g=u: funca)||"s if ]!=*s (= 1a?t\a,b||d/"..cTypeuc):0"e>d;d++)for(c=*/".[d];c&&c!==b;c=c)pav, +N.no)de(c.nsde || <11&&(g?gph?):[(c)>-1:1===cpnsde || &&n.f ==.m// fesSelect r(c,a))){f.push(c);brd(k} dataT */"..pushStack f.ters =>1?n.uniq c(/):f)},i?):[:/<script\a){ dataTya?"s if ]==*s (= 1a?n.inAin o(*/".[0],t\a)):t hnAin o(a.jq cry?a[0t:a,*/".):*/".[0]&&*/".[0].pav, +N.no?*/"..fidde().p+evAesa).ters =:-1},add:/<script\a,b){ dataT */"..pushStack n.uniq c(n mergju*/"..get(),t\a,b))))},addBack:/<script\a){ dataT */"..add(t{ ==a?*/"..p+evO ) { :*/"..p+evO ) { .filre)aa))}});f<script E\a,b){doia=a[b]"w - (a&&1!==apnsde || ); dataTya}t e\//,{pav, +:/<script\a){( " b=a.pav, +N.no; dataTyb&&11!==b.nsde || ?b:t{ },pav, +s:/<script\a){ dataTyt.dir\a,"pav, +N.no")},pav, +sUntil:f<script\a,b,c){rvery.it.dir\a,"pav, +N.no",c)},next:/<script\a){ dataTyE\a,"nextSiblif ")},prev:/<script\a){ dataTyE\a,"previousSiblif ")},nextAes:/<script\a){ dataTyt.dir\a,"nextSiblif ")},prevAes:/<script\a){ dataTyt.dir\a,"previousSiblif ")},nextUntil:f<script\a,b,c){rvery.it.dir\a,"nextSiblif ",c)},prevUntil:f<script\a,b,c){rvery.it.dir\a,"previousSiblif ",c)},siblif s:/<script\a){ dataTyt.siblif ((a.pav, +N.no||{}).f(ddeC - d,a)},c - dv, :/<script\a){ dataTyt.siblif (a.f(ddeC - d)},cTypeOrs:/<script\a){ dataTyt.nsde if \a,"ifrif ")?a.coypentDocweird||a.coypentWifdow.docweird:n mergju[],aec - dN.no )}},f<script\a,b){t ft[a]=f<script\c,d){( " =n.map,*/".,b,c)+ dataT"Until"!==a.s);ce(-5)&&(d=c),d&&"s if ]==*s (= 1d&&(e=n filre)ad,e)),*/"..ters =>1&&(D[a]||(e=n uniq c(e)),C: funca)&&(e= rreverse(t)),*/"..pushStack e)}});( " F=/\S+/g,G={};f<script H\a){( " b=G[a]={}+ dataTyt e\//,a.m// f(F)||[],f<script\a,c){b[c]=!0}),b}t Cresbacks=/<script\a){a="s if ]==*s (= 1a?G[a]||H\a):t.ext ==({},a);( " b,c,d,e,f,g,==[],i=!a.onc(&&[],j=/<script\l){for(c=a)memory&&l,d=!0,f=g||0,g=0,e=h)ters =,b=!0;h&&e>f;f++)if(h[f]. iflyel[0],l[1])===!1&&arstopOnFalso){c=!1;brd(k}b=!1,h&&(i?ipters =&&j(i.shift()):c?==[]:k.distyle(t)},k={add:/<script\){if(h){( " d=h)ters =;!f<script f(b){t e\//,b,f<script\b,c){( " d=t.*s ((c)+"/<script]===d?a.uniq c&&k.has(c)||h.push(c):c&&c.ters =&&"s if ]!==d&&f(c)})}aaa weird ),b?a=h)ters =:c&&(g=d,j(c))} dataT */".},r{g (j:/<script\){ dataTy=&&} e\//,aa weird ,/<script\a,c){( " d;w - ((d=t.hnAin o(c,h,d))>-1)hp" );ce(d,1),b&&(e>=d&&e--,/>=d&&f--)}),*/".},has:f<script\a){ dataTya?n.inAin o(a,h)>-1:!(!h||!h)ters =)},empty:f<script\){ dataTy==[],e=0,*/".},distyle:f<script\){ dataTy==i=c=void 0,*/".},distyled:/<script\){ dataT!h},lock:/<script\){ dataTyi=void 0,c||k.distyle(t,*/".},locked:/<script\){ dataT!i},f(deWit/:/<script\a,c){rvery.!h||d&&!i||(c=c||[],c=[a,c.s);ce?c.s);ce():c],b?i.push(c):j(c)),*/".},f(de:/<script\){ dataTyk.f(deWit/e*/".,aa weird ),*/".},f(ded:/<script\){ dataT!!d}}+ dataTyk},t.ext ==({Def rred:/<script\a){( " b=[["resolv+","don+",t Cresbacks("once memory"),"resolv+d"],["re) { ],"fail",t Cresbacks("once memory"),"rejected"],["notify","progress",t Cresbacks("memory")]],c="fendif ",d={state:/<script\){ dataTyc},always:/<script\){ dataTy rdoneaaa weird ).fail(aa weird ),*/".},thet:/<script\){y woa=aa weird + dataTyt Def rred,/<script\c){t e\//,b,f<script\b,f){y wog=t heF<script\a[b])&&a[b]"e[f[1]],/<script\){y woa=g&&g.aiflye*/".,aa weird );a&&n heF<script\a.p+ miso)?a.p+ miso()rdoneac.resolv+).fail(c.reject).p+ogress(c.nstify):c[f[0]+"Wit/"]e*/".===d?c.p+ miso():*/".,g?[a]:aa weird )})}),a=t{ }).p+ miso()},pr miso:/<script\a){ dataTyt{ !=a?t.ext ==(a,d):d}},e={}+ dataTyd.pi (=d.thet,t e\//,b,f<script\a,f){y wog=f[2],h=f[3];d[f[1]]=g.add,h&&g.add,/<script\){c=h},b[1^a][2].distyle,b[2][2].lock),e[f[0]]=/<script\){ dataTye[f[0]+"Wit/"]e*/".===e?d:*/".,aa weird ),*/".},e[f[0]+"Wit/"]=g.f(deWit/}),d.p+ miso(e),a&&a)cresae,e),e},when:/<script\a){( " b=0,c=d. resaaa weird ), =c.ters =,f=1!==e||a&&n heF<script\a.p+ miso)?e:0,g=1===f?a:t Def rred,),h=f<script\a,b,c){rvery.if<script\e){b[a]=*/".,c[a]=aa weird .ters =>1?d. resaaa weird ):e,c===i?gpnstifyWit/eb,c):--f||gnresolv+Wit/eb,c)}},i,j,k;if(e>1)for(i=new Ain o(e),j=new Ain o(e),k=new Ain o(e)ie>b;b++)c[b]&&n heF<script\c[b].p+ miso)?c[b].p+ miso()rdonea/eb,k,c)).fail(g.reject).p+ogress(/eb,j,i)):--f+ dataTyf||gnresolv+Wit/ek,c),g.p+ miso()}});( " I;nrft.- ady=/<script\a){ dataTyt.- ady.p+ miso()rdoneaa),*/".},t.ext ==({isReady:!1,- adyWait:1,holdReady:/<script\a){a?t.- adyWait++:t.- ady(!0)},ready:/<script\a){if(a===!0?!--t.- adyWait:!n heReady){if(!z.body) dataTysetTimeout(t.- ady);n.heReady=!0,a!==!0&&--t.- adyWait>0||(Inresolv+Wit/ez,[n]),t ft. igger&&n(z)) igger("- ady").off("- ady"))}}});f<script J\){z.addEdantListener?(z)r{g (jEdantListener( DOMCTypeOrLoadee",K,!1),a)r{g (jEdantListener( load",K,!1)):(z)det/chEdant("on- adystatechang+",K),a)det/chEdant("onload",K)t}f<script K\){(z.addEdantListener|| load"===edant.t|| ||"compsite"===z.- adyState)&&(J(),t.- ady())}n - ady.p+ miso=/<script\b){if(!I)if(I=t Def rred,),"compsite"===z.- adyState)setTimeout(t.- ady);" + eif(z.addEdantListener)z.addEdantListener( DOMCTypeOrLoadee",K,!1),a)addEdantListener( load",K,!1)+" + {z.att/chEdant("on- adystatechang+",K),a)att/chEdant("onload",K);( " c=!1;try{c=t{ ==a.frif Efor(; &&zrdocweirdEfor(; }c// f(d){}c&&c.doScroll&&!/<script e\){if(!n heReady){try{c.doScroll( left")}c// f(a){ dataTysetTimeout(e,50)}J(),t.- ady()}}()} dataT I.p+ miso(b)};( " L= 't get/se",M;for(Mei -t\l))brd(k+l.ownLast="0"!==M,l.inlt/sBlockNuedsLayout=!1,n,/<script\){y woa,b,c=z.genEfor(; sByTag if ("body")[0];c&&\a=z.cv,ateEfor(; "div"),a.style.cssText="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px;maa in-top:1px",b=z.cv,ateEfor(; "div"),c. ifendC - d(a)r ifendC - d(b),*s (= 1b.style.zoom!==L&&(b.style.cssText="border:0;maa in:0;width:1px;paddif :1px;disn" y:inlt/s;zoom:1",(l.inlt/sBlockNuedsLayout=3===bpoffsetWidth)&&(c.style.zoom=1)),c.r{g (jC - d(a),a=b=t{ )}),/<script\){y woa=z.cv,ateEfor(; "div");if(t{ ==l. gsiteExpando){l. gsiteExpando=!0;try{ gsite a: fun}c// f(b){l. gsiteExpando=!1}}a=t{ }(),t.acceptData=/<script\a){( " b=t.nsData[capnsde if +" ")p*oLowerCase(t],c=+apnsde || ||1; dataTy1!==c&&9!==c?!1:!b||b!==!0&&arge Attribu f " tadsid")===b};( " N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;f<script P\a,b,c){if(void 0===c&&1===apnsde || ){( " d="data-"+b.- n" && O,"-$1").*oLowerCase(t;if(c=arge Attribu f d),"s if ]==*s (= 1c){try{c="true"===c?!0:"falso"===c?!1:"t{ "===c?}); :+c+""===c?+c:N: funcc)?n pavseJSON(c):c}c// f(e){}n.data\a,b,c)}" + ec=void 0} dataTyc}f<script Q\a){( " b;for(bei -a)if(("data]!==b||!n.heEmptyO ) { \a[b])t&&"poJSON]!==b) dataT!1;rvery.!0}f<script R\a,b,d,o){if(n.acceptDataaa)){( " f,g,==t.expando,i=a.nsde || ,j=i?n c/cha:a,k=i?a[h]:a[h]&&="if(k&&j[kt&&(e||j[k].data)||void 0!==d||"s if ]!=*s (= 1b)rvery. k||(k=i?a[h]=c.pop()||n guid++:h),j[k]||(j[k]=i?{}:{poJSON:t.nsop}),("h ) { ]==*s (= 1b||"/<script]==*s (= 1b)&&(e?j[k]=t.ext ==(j[k],b):j[k].data=t.ext ==(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n c/melCase(b)]=d),"s if ]==*s (= 1b?(f=g[b],t{ ==f&&(f=g[n c/melCase(b)])):/=g,f +}}f<script S\a,b,c){if(n acceptDataaa)){( " d,e,f=a)nsde || ,g=f?n c/cha:a,h=f?a[t.expando]:t.expando;de(g[h]){if(b&&(d=c?g[h]:g[h].data)){t heAin o(b)?b=b.cTyc//(n.map,b,n c/melCase)):bei -d?b=[b]:(b=n c/melCase(b),b=bei -d?[b]:b.c );t( ")), =b.ters ="w - (e--)dgsite d[b[e]];if(c?!Q(d):!n.heEmptyO ) { \d)) dataT}(c||(dgsite g[h].data,Q(g[h])))&&(f?n cleanDataa[a],!0):l. gsiteExpando||g!=g.wifdow?dgsite g[h]:g[h]=t{ )}}}t.ext ==({c/cha:{},noData:{"aiflet ":!0,"embed ":!0,"h ) { ":" tsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:/<script\a){rvery.ia=apnsde || ?n.c/cha[a[t.expando]]:a[t.expando],!!a&&!Q(a)},data:/<script\a,b,c){rvery.iR\a,b,c)},r{g (jData:/<script\a,b){rvery.iSaa,b)},_data:/<script\a,b,c){rvery.iR\a,b,c,!0)},_r{g (jData:/<script\a,b){rvery.iSaa,b,!0)}}),t ft.ext ==({data:/<script\a,b){( " c,d,e,f=*/".[0],g=f&&f.attribu fs;if(void 0===a){if(*/"..ters =&&(e=n data\f),1===fpnsde || &&!n._data\f,"pavsedAttrs"))){c=g.ters ="w - (c--)d=g[c].nif ,0===dph?):[Of("data-")&&(d=n c/melCase(d.s);ce(5)),P(f,d,e[d]));n._data\f,"pavsedAttrs",!0)} dataTye} dataT"h ) { ]==*s (= 1a?*/"..e\//,/<script\){n data\*/".,a)}):aa weird .ters =>1?*/"..e\//,/<script\){n data\*/".,a,b)}):f?P(f,a,} data\f,a)):void 0},r{g (jData:/<script\a){ dataT */"..e\//,/<script\){n r{g (jData\*/".,a)})}}),t ext ==({queue:/<script\a,b,c){( " d;rvery.ya?(b=eb||"fx")+"queue",d=n._data\a,b),c&&\!d||n heAin o(c)?d=n._data\a,b,t mak0Ain o(c)):depush(c)),d||[]):void 0},dequeue:/<script\a,b){b=b||"fx";( " c=n.queue\a,b),d=c.ters =, =c.shift(),f=n._queueHooks\a,b),g=f<script\){n dequeue\a,b)};"inprogress"===e&&(e=c.shift(),d--),o&&("fx"===b&&crunshift("inprogress"),dgsite frstop,e. resaa,g,f)),!d&&f&&f.empty.f(de()},_queueHooks:/<script\a,b){( " c=b+"queueHooks"+ dataTyt _data\a,c)||n _data\a,c,{empty:t Cresbacks("once memory").add,/<script\){n _r{g (jData\a,b+"queue"),t _r{g (jData\a,c)})})}}),t ft.ext ==({queue:/<script\a,b){( " c=2+ dataT"s if ]!=*s (= 1a&&(b=a,a="fx",c--),aa weird .ters =<c?}.queue\*/".[0],a):void 0===b?*/".:*/"..e\//,/<script\){( " c=n.queue\*/".,a,b);n._queueHooks\*/".,a),"fx"===a&&"inprogress"!==c[0]&&n dequeue\*/".,a)})},dequeue:/<script\a){ dataT */"..e\//,/<script\){n dequeue\*/".,a)})},clearQueue:/<script\a){ dataT */"..queue\a||"fx",[])},pr miso:/<script\a,b){( " c,d=1,e=t Def rred,),f=*/".,g=*/"..ters =,h=f<script\){--d||e.resolv+Wit/ef,[f])};"s if ]!=*s (= 1a&&(b=a,a=void 0),a=a||"fx";w - (g--)c=n._data\/[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add,h))+ dataTyh,),e.p+ miso(b)}});( " T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=/<script\a,b){ dataTya=b||a,"non+"===n.cssaa,"disn" y")||!n.coypains(a.ownerDocweird,a)},W=n access=f<script\a,b,c,d,e,f,g){( " h=0,i=a.ters =,j=t{ ==c+if("h ) { ]===t.*s ((c)){e=!0;for(hei -c)n access\a,b,h,c[h],!0,f,g)}" + eif(void 0!==d&&(e=!0,t heF<script\d)||(g=!0),j&&(g?(b. resaa,d),b=t{ ):(j=b,b=/<script\a,b,c){ dataTyj. resat\a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d. resaa[h],h,b(a[h],c)))+ dataTye?a:j?b. resaa):i?b(a[0t,c):f},X=/^(?:c eckbox|radio)$/i;!f<script\){y woa=z.cv,ateDocweirdFragr(; ),b=z.cv,ateEfor(; "div"),c=z.cv,ateEfor(; "input]);if(bpsenAttribu f " tads if ","t"),b.innerHTML=" <link/><ttyle></ttyle><a href='/a'>a</a>",l.teadif Whi fsp &&=3===bpf(ddeC - d.nsde || ,l.tbody=!brge Efor(; sByTag if ("tbody").ters =,l.htmlSerialize=!!brge Efor(; sByTag if ("link").ters =,l.html5Clon+="<:nav></:nav>"!==z.cv,ateEfor(; "nav").clon+N.no !0).ou frHTML,c.ns (="c eckbox",c)c ecked=!0,ar ifendC - d(c),l. ifendC ecked=c)c ecked,b.innerHTML="<*extav,a>x</textav,a>",l.noClon+C ecked=!!b. lon+N.no !0).tadeC - d.de justVe;ua,a. ifendC - d(b),b.innerHTML="<inputy*s (='radio' c ecked='c ecked' nif ='t'/>",l.c eckClon+=b. lon+N.no !0). lon+N.no !0).tadeC - d.c ecked,l.noClon+Edant=!0,b.att/chEdant&&(b)att/chEdant("onc);ck",/<script\){l.noClon+Edant=!1}),b. lon+N.no !0). l;ck()),t{ ==l. gsiteExpando){l. gsiteExpando=!0;try{ gsite b: fun}c// f(d){l. gsiteExpando=!1}}a=b=c=t{ }(),f<script\){y wob,c,d=z.cv,ateEfor(; "div");for(bei {submie:!0,chang+:!0,focwsin:!0})c="on"+b,(l[b+"Bubyles"]=cei -a)||(dpsenAttribu f c,"t"),l[b+"Bubyles"]=d.attribu fs[c].expando===!1);d=t{ }();( " Y=/^(?:input|select|*extav,a)$/i,Z=/^key/,$=/^(?:mouse|cTypeucr(;u)| l;ck/,_=/^(?:focwsinfocws|focwsou blur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;f<script bb\){ dataT!0}f<script cb\){ dataT!1}f<script db\){nry{ dataTyz.\/tiveEfor(; }c// f(a){}}t.edant={global:{},add:/<script\a,b,c,d,e){( " f,g,=,i,j,k,l,m,o,p,q,r=n._data\a);if(r){c.handler&&(i=c,c=i.handler,e=i.select r),c.guid||(c.guid=n guid++),(g=r.edants)||(g=r.edants={}),(k=r.handle)||(k=r.handle=/<script\a){ dataTy*s (= 1n===L||a&&n edant.t iggered===a.t|| ?void 0:n edant.disn// f.aiflyek.elem,aa weird )},k.elem=a),b=eb||"").m// f(F)||[""],h=b.ters ="w - (h--)f=ab.e ec(b[h])||[],o=q=f[1],p=(f[2]||"").c );t( .")."ort(),o&&(j=n edant.sautial[o]||{},o=(e?j. gsigate || :j.bh?) || )||o,j=n edant.sautial[o]||{},l=t.ext ==({*|| :o,o ig || :q,data:d,handler:c,guid:c.guid,select r:e,nuedsCoypeuc: &&n.expr.m// f.nuedsCoypeuc: funce),tif sp &&:p)join(".")},i),(m=g[o])||(m=g[o]=[],m. gsigateCount=0,jpsenup&&j.senup. resaa,d,p,k)!==!1||(a)addEdantListener?a)addEdantListener(o,k,!1):a.att/chEdant&&a)att/chEdant("on"+o,kt)),j)add&&(j)add. resaa,l),l.handler.guid||(l.handler.guid=c.guid)), ?mp" );ce(m. gsigateCount++,0,l):mepush(l),t edant.global[o]=!0);a=t{ }},r{g (j:/<script\a,b,c,d,e){( " f,g,=,i,j,k,l,m,o,p,q,r=n.hasDataca)&&n._data\a);if(r&&(k=r.edants)){b=eb||"").m// f(F)||[""],j=b.ters ="w - (j--)if(h=ab.e ec(b[j])||[],o=q=h[1],p=(h[2]||"").c );t( .")."ort(),o){l=n edant.sautial[o]||{},o=(d?l. gsigate || :l.bh?) || )||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p)join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m)ters ="w - (f--)g=m[f],!e&&q!==g.o ig || ||c&&c.guid!==g.guid||h&&!=: funcg.tif sp &&)||d&&d!==g.select r&&("**"!==d||!g.select r)||(mp" );ce(f,1),g.select r&&m. gsigateCount--,l.r{g (j&&l.r{g (j. resaa,g));d&&!m.ters =&&(l.teardown&&l.teardown. resaa,p,r.handle)!==!1||n)r{g (jEdantaa,o,r.handle),dgsite k[o])}" + efor(oei -k)n edant.r{g (jaa,o+b[j],c,d,!0);n.heEmptyO ) { \k)&&(dgsite r.handle,t _r{g (jData\a,"edants"))}},t igger:/<script\b,c,d,e){( " f,g,=,i,k,l,m,o=[d||z],p=j. resab,"t|| ")?b.t|| :b,q=j. resab,"tif sp &&")?b.tif sp &&.c );t( ."):[];if(h=l=d=d||z,3!==dpnsde || &&8!==dpnsde || &&!_: funcp+n edant.t iggered)&&(pph?):[Of(".")>=0&&(q=p.c );t( ."),p=q.shift(),q."ort()),g=pph?):[Of(":")<0&&"hn"+p,b=b[t.expando]?b:tew n.Edantap,"h ) { ]==*s (= 1b&&b),b.isT igger=e?2:3,b.tif sp &&=q.join("."),b.tif sp &&_r{=b.tif sp &&?new RegExp("(^|\\.)"+q)join("\\.(?:.*\\.|)")+"(\\.|$)"):}); ,b.resust=void 0,b.target||(b.target=d),c=t{ ==c?[b]:t mak0Ain o(c,[b]),k=n edant.sautial[p]||{}, ||!k.t igger||k.t igger. iflyed,c)!==!1)){de(!e&&!k.noBubyle&&!n.isWifdow\d)){for(i=k. gsigate || ||p,_: funci+p)||(h=h.pav, +N.no);h;h=h.pav, +N.no)o.push(h),l=h;l===(dpownerDocweird||z)&&oepush(lrde justView||l.pav, +Wifdow||a)}m=0iw - ((h=o[m++])&&!b.isPropag//iptStoifed())b.t|| =m>1?i:k.bh?) || ||p,f=(n._data\h,"edants")||{})[b.t|| ]&&n._data\h,"handle"),f&&f.aiflyeh,c),f=g&&h[g],f&&f.aifly&&n.acceptDataah)&&(b.resust=f.aiflyeh,c),b.resust===!1&&b.p+eventDe just());if(bpt|| =p,!e&&!b.isDe justP+evented()&&\!k._de just||k._de just.aiflyeoepop(),c)===!1)&&n.acceptDataad)&&g&&d[p]&&!n.isWifdow\d)){l=d[g],l&&(d[g]=t{ ),n edant.t iggered=p;try{ [p]()}c// f(r){}n.edant.t iggered=void 0,l&&(d[g]=l)} dataTyb.resust}},disn// f:/<script\a){a=n edant.fix(a);( " b,c,e,f,g,==[],i=d. resaaa weird ),j=(n._data\*/".,"edants")||{})[a.t|| ]||[],k=n edant.sautial[a.t|| ]||{};if(i[0t=a,a. gsigate arget=*/".,!k.p+eDisn// f||k.p+eDisn// f. resa*/".,a)!==!1){h=n edant.handlers. resa*/".,a,j),b=0iw - ((f=h[b++])&&!a.isPropag//iptStoifed()){a.curv, + arget=f.elem,g=0iw - ((e=/.handlers[g++])&&!a.isImmediatePropag//iptStoifed())(!a.tif sp &&_r{||a.tif sp &&_r{: funce.tif sp &&))&&(a.handleO )=a,a.data=e.data,c=((n edant.sautial[e.o ig || ]||{}).handle||e.handler).aiflyef.elem,i),void 0!==c&&\a.resust=c)===!1&&\a.p+eventDe just(),arstopPropag//ipt(t))} dataT kepostDisn// f&&k.postDisn// f. resa*/".,a),a.resust}},handlers:/<script\a,b){( " c,d,e,f,g=[],h=b. gsigateCount,i=a.target;if(h&&ipnsde || &&(!a.button||"c);ck"!==a.t|| ))for(;i!=*/".+i=i.pav, +N.no||*/".)if(1===ipnsde || &&(i.distyled!==!0||"c);ck"!==a.t|| )){for(e=[],f=0;h>f;f++)d=b[f],c=d.select r+" ",void 0===e[ct&&(e[c]=d.nuedsCoypeuc?t\c,*/".)ph?):[(i)>=0:n.f ==\c,*/".,}); ,[i]).ters =),e[ct&&eepush(d);e.ters =&&g.push({elem:i,handlers:e})} dataT h<b.ters =&&g.push({elem:*/".,handlers:b.s);ce(h)}),g},f(x:/<script\a){if(a[t.expando]) dataTya;( " b,c,d,e=a.t|| ,f=a,g=*/"..f(xHooks[e];g||(*/"..f(xHooks[e]=g=$: funce)?*/"..mouseHooks:Z: funce)?*/"..keyHooks:{}),d=g.p+ ps?*/"..p+ ps.cTyc//(g.p+ ps):*/"..p+ ps,a=tew n.Edantaf),b=d)ters ="w - (b--)c=d[b],a[c]=f[c];rvery.ya.target||(a.target=/.srcEfor(; ||z),3===a.targetpnsde || &&(a.target=a.targetppav, +N.no),a)metaKey=!!a.metaKey,g filre)?g.filre)aa,f):a},pr ps:"altKey bubyles canc(ltyle ctrlKey curv, + arget eventPhase metaKey r{l()ed arget shiftKey target timeStamp viewew -ch".c );t( "),f(xHooks:{},keyHooks:{pr ps:"char charC.no key keyC.no".c );t( "),f(lre):/<script\a,b){ dataTyt{ ==a.w -ch&&(a.w -ch=t{ !=b.charC.no?b.charC.no:b.keyC.no),a}},mouseHooks:{pr ps:"button buttons clientX clientY fromEfor(; offsetX offsetY pageX pageY screenX screenY toEfor(; ".c );t( "),f(lre):/<script\a,b){( " c,d,e,f=b.button,g=b.fromEfor(; ; dataTyt{ ==a.pageX&&t{ !=b. lientX&&(d=a.targetpownerDocweird||z,e=drdocweirdEfor(; ,c=d.body,a.pageX=b. lientX+(e&&&.ccrollLeft||c&&c.ccrollLeft||0)-(e&&&. lientLeft||c&&c. lientLeft||0),a.pageY=b. lientY+(e&&&.ccrollTop||c&&c.ccrollTop||0)-(e&&&. lientTop||c&&c. lientTop||0)),!a.r{l()ed arget&&g&&(a.r{l()ed arget=g===a.target?b.*oEfor(; :g),a.w -ch||void 0===f||(a.w -ch=1&f?1:2&f?3:4&f?2:0),a}},sautial:{load:{noBubyle:!0},focws:{t igger:/<script\){if(*/".!==db()&&*/"..focws)nry{ dataTy*/"..focws(),!1}c// f(a){}}, gsigate || :"focwsin"},blur:{t igger:/<script\){ dataTy*/".===db()&&*/"..blur?(*/"..blur(),!1):void 0},desigate || :"focwsout"},cl;ck:{t igger:/<script\){ dataTyt.nsde if \*/".,"input])&&"c eckbox"===*/"..t|| &&d/"..cl;ck?(*/"..cl;ck(),!1):void 0},_de just:/<script\a){ dataTyt.nsde if \a.target,"a")}},beforeunload:{postDisn// f:/<script\a){(oid 0!==a.resust&&(a.o iginalEdant.r{ataTVe;ua=a.resust)}}},simulate:/<script\a,b,c,d){( " =n.ext ==(tew n.Edant,c,{t|| :a,isSimulated:!0,o iginalEdant:{}});d?n.edant.t igger(e,}); ,b):n edant.disn// f. resab,e),e.isDe justP+evented()&&c.p+eventDe just()}},n)r{g (jEdant=z)r{g (jEdantListener?/<script\a,b,c){a)r{g (jEdantListener&&a)r{g (jEdantListener(b,c,!1)}:/<script\a,b,c){( " d="on"+b;a)det/chEdant&&(ts (= 1a[d]===L&&(a[d]=t{ ),a)det/chEdant(d,c))},nrEdant=/<script\a,b){ dataT */".ei stanc(= 1nrEdant?(a&&a)t|| ?(*/"..o iginalEdant=a,*/"..t|| =a.t|| ,*/"..isDe justP+evented=a.de justP+evented||void 0===a.de justP+evented&&(a.r{ataTVe;ua===!1||arge P+eventDe just&&arge P+eventDe just())?bb:cb):*/"..t|| =a,b&&n.ext ==(*/".,b),*/"..timeStamp=a&&a)timeStamp||n)now\),void\*/".[t.expando]=!0)):tew n.Edantaa,b)},n.Edant.p+ tons (={isDe justP+evented:cb,isPropag//iptStoifed:cb,isImmediatePropag//iptStoifed:cb,p+eventDe just:/<script\){y woa=*/"..o iginalEdant;*/"..isDe justP+evented=bb,a&&\a.p+eventDe just?a.p+eventDe just():a.r{ataTVe;ua=!1)},stopPropag//ipt:/<script\){y woa=*/"..o iginalEdant;*/"..isPropag//iptStoifed=bb,a&&\a.stopPropag//ipt&&arstopPropag//ipt(t,aecanc(lBubyle=!0)},stopImmediatePropag//ipt:/<script\){*/"..isImmediatePropag//iptStoifed=bb,t/"..stopPropag//ipt(t}},n)e\//,{mouseenter:"mouse (jr",mouseleave:"mouse ut"},f<script\a,b){t edant.sautial[a]={desigate || :b,bh?) || :b,handle:/<script\a){( " c,d=*/".,e=a.r{l()ed arget,f=a)handleO ); dataT(!e||e!==d&&!n.coypains(d,e))&&(a.t|| =/.o ig || ,c=/.handler.aiflye*/".,aa weird ),a.t|| =b),c}}}),l.submieBubyles||(t edant.sautial.submie={senup:/<script\){ dataTyt.nsde if \*/".,"form")?!1:void t edant.add,*/".,"cl;ck._submie keypress._submie",/<script\a){( " b=a.target,c=t.nsde if \b,"input])||n)node if \b,"button])?b.form:void 0+c&&!n._data\c,"submieBubyles")&&(t edant.add,c,"submie._submie",/<script\a){a._submie_bubyle=!0}),t _data\c,"submieBubyles",!0))})},postDisn// f:/<script\a){a._submie_bubyle&&(dgsite a._submie_bubyle,*/"..pav, +N.no&&!a.isT igger&&n edant.simulate("submie",*/"..pav, +N.no,a,!0))},teardown:/<script\){ dataTyt.nsde if \*/".,"form")?!1:void t edant.r{g (ja*/".,"._submie")}}),l.chang+Bubyles||(t edant.sautial.chang+={senup:/<script\){ dataTyY: func*/"..nsde if )?(("c eckbox"===*/"..t|| ||"radio"===*/"..t|| )&&(t edant.add,*/".,"propertychang+._chang+",/<script\a){"c ecked]===a.o iginalEdant.property if &&c*/".._just_chang+d=!0)}),n edant.add,*/".,"cl;ck._chang+",/<script\a){*/".._just_chang+d&&!a.isT igger&&c*/".._just_chang+d=!1),n edant.simulate("chang+",*/".,a,!0)})),!1):void n edant.add,*/".,"before\/tivate._chang+",/<script\a){( " b=a.target;Y: funcb.nsde if )&&!n._data\b,"chang+Bubyles")&&(t edant.add,b,"chang+._chang+",/<script\a){!*/"..pav, +N.no||arisSimulated||arisT igger||n edant.simulate("chang+",*/"..pav, +N.no,a,!0)}),t _data\b,"chang+Bubyles",!0))})},handle:/<script\a){( " b=a.target; dataT */".!==b||arisSimulated||arisT igger||"radio"!==b.t|| &&"c eckbox"!==b.t|| ?a)handleO ).handler.aiflye*/".,aa weird ):void 0},teardown:/<script\){ dataTyt.edant.r{g (ja*/".,"._chang+"),!Y: func*/"..nsde if )}}),l.focwsinBubyles||n)e\//,{focws:"focwsin",blur:"focwsout"},/<script\a,b){( " c=/<script\a){n edant.simulate(b,a.target,n edant.fix(a),!0)};t edant.sautial[b]={senup:/<script\){( " d=*/"..ownerDocweird||*/".,e=t _data\d,b);e||d.addEdantListener(a,c,!0),t _data\d,b,(e||0)+1)},teardown:/<script\){( " d=*/"..ownerDocweird||*/".,e=t _data\d,b)-1; ?n._data\d,b,et:( )r{g (jEdantListener(a,c,!0),t _r{g (jData\d,b))}}}),t ft.ext ==({on:/<script\a,b,c,d,e){( " f,g+if("h ) { ]==*s (= 1a){"s if ]!=*s (= 1b&&(c=c||b,b=void 0);for(fei -a)*/"..on(f,b,c,a[f],e); dataT */".}if(t{ ==c&&t{ ==d?(d=b,c=b=void 0):t{ ==d&&("s if ]==*s (= 1b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;" + eif(!d) dataT */".+rvery.i1===e&&(g=d,d=/<script\a){ dataTyt().off(a),g.aiflye*/".,aa weird )},d.guid=g.guid||(g.guid=n guid++)),*/"..e\//,/<script\){n edant.add,*/".,a,d,c,b)})},one:/<script\a,b,c,d){ dataTy*/"..pt\a,b,c,d,1)},off:/<script\a,b,c){( " d,e+if(a&&a)p+eventDe just&&arhandleO )) dataT d=a)handleO ),t\a. gsigate arget).off(d.tif sp &&?d.o ig || +"."+d.tif sp &&:d.o ig || ,d.select r,d.handler),*/".+if("h ) { ]==*s (= 1a){for(eei -a)*/"..off(e,b,a[et); dataT */".} dataT(b===!1||"/<script]==*s (= 1b)&&(c=b,b=void 0),c===!1&&\c=cb),*/"..e\//,/<script\){n edant.r{g (ja*/".,a,c,b)})},t igger:/<script\a,b){ dataT */"..e\//,/<script\){n edant.t igger(a,b,*/".)})},t iggerHandler:/<script\a,b){( " c=*/".[0];rvery.yc?n edant.t igger(a,b,c,!0):void 0}});f<script eb\a){( " b=fb.c );t( |"),c=a.cv,ateDocweirdFragr(; );if(c.cv,ateEfor(; )w - (b.ters =)c.cv,ateEfor(; (b.pop())+ dataTyc}( " fb="abbr|article|asino|audio|bdi|canvas|data|datalist|det/ils|figcapript|figure|footer|header|hgroup|mark|meter|nav|output|progress|secript|summary|time|vinoo",gb=/ jQ cry\d+="(?:t{ |\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!av,a|br|col|embed|hr|img|input|link|meta|pavam)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/c ecked\s*(?:[^=]|=\s*.c ecked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={hpript:[1,"<select multiple='multiple'>","</select>"],sig ==:[1,"<fieldsen>","</fieldsen>"],av,a:[1,"<map>","</map>"],pavam:[1,"<h ) { >","</h ) { >"],*/ead:[1,"<ttyle>","</ttyle>"],*r:[2,"<ttyle><tbody>","</tbody></ttyle>"],col:[2,"<ttyle><tbody></tbody><colgroup>","</colgroup></ttyle>"],*d:[3,"<ttyle><tbody><tr>","</tr></tbody></ttyle>"],_de just:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb\z),ub=tb. ifendC - d(z.cv,ateEfor(; "div"));sb.hprgroup=sb.hpript,sb.tbody=sb.tfoot=sb.colgroup=sb.capript=sb.t/ead,sb.th=sb.td;f<script vb\a,b){( " c,d,e=0,f=*s (= 1arge Efor(; sByTag if !==L?arge Efor(; sByTag if eb||"*"):*s (= 1arq crySelect rA !==L?arq crySelect rA eb||"*"):void 0+de(!f)for(f=[],c=aec - dN.no ||a;t{ !=(d=c[et);e++)!b||t.nsde if \d,b)?fepush(d):n mergjuf,vb\d,b))+ dataTyvoid 0===b||b&&n nsde if \a,b)?n mergju[a],/):f}f<script wb\a){X: funcapt|| )&&(a.de justC ecked=a.c ecked)}f<script xb\a,b){ dataTyt.nsde if \a,"ttyle")&&n nsde if \11!==b.nsde || ?b:bpf(ddeC - d,"tr")?a.ge Efor(; sByTag if ("tbody")[0]||ar ifendC - d(a.ownerDocweird.cv,ateEfor(; "tbody")):a}f<script yb\a){ dataTya.t|| =(t{ !==n.f ==.attr(a,"t|| "))+"/"+a.t|| ,a}f<script zb\a){( " b=qb.e ec(apt|| ); dataTyb?a.t|| =b[1]:a)r{g (jAttribu f "t|| "),a}f<script Ab\a,b){for(( " c,d=0;t{ !=(c=a[d]);d++)t _data\c,"globalEval",!b||n _data\b[d],"globalEval")t}f<script Bb\a,b){if(1===bpnsde || &&n hasDataca)){( " c,d,e,f=n._data\a),g=t _data\b,f),h=f.edants;if(h){dgsite g.handle,g.edants={};for(cei -h)for(d=0,e=h[c].ters ="e>d;d++)t edant.add,b,c,h[c][d])}g.data&&(g.data=t.ext ==({},g.data))}}f<script Cb\a,b){( " c,d,e;if(1===bpnsde || ){if(c=b.nsde if .*oLowerCase(t,!l.noClon+Edant&&b[t.expando]){e=t _data\b);for(dei -e.edants)n)r{g (jEdantab,d,o.handle);b)r{g (jAttribu f t.expando)}"script"===c&&b.peuc!==a.teuc?(yb(b).peuc=a.peuc,zb(b)):"h ) { ]===c?(b.pav, +N.no&&(b.ou frHTML=a.ou frHTML),l.html5Clon+&&arinnerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=arinnerHTML)):"input]===c&&X: funcapt|| )?(b.de justC ecked=b)c ecked=a)c ecked,b.ve;ua!==a.ve;ua&&(b.ve;ua=a.ve;ua)):"hpript]===c?b.de justSelected=b)selected=a.de justSelected:("input]===c||"*extav,a]===c)&&(b.de justVe;ua=a.de justVe;ua)}}t.ext ==({clone:/<script\a,b,c){( " d,e,f,g,=,i=n.coypains(a.ownerDocweird,a);if(l.html5Clon+||n heXMLDocca)||!hb: fun("<"+apnsde if +">")?f=a) lon+N.no !0):(ub.innerHTML=arou frHTML,ub)r{g (jC - d(f=ub.f(ddeC - d)t,!(l.noClon+Edant&&l.noClon+C ecked||1!==apnsde || &&11!==apnsde || ||n heXMLDocca)))for(d=vb,/),h=vb\a),g=0it{ !=(e=h[g]);++g)d[g]&&Cb\e,d[g]);if(b)de(c)for(h=h||vb\a),d=d||vb,/),g=0it{ !=(e=h[g]);g++)Bb\e,d[g]);" + eBb\a,f); dataTyd=vb,/,"script"),d.ters =>0&&Ab\d,!i&&vb\a,"script")),d=h=e=t{ ,f},bu- dFragr(; :/<script\a,b,c,d){for(( " e,f,g,=,i,j,k,m=a.ters =,o=eb\b),p=[],q=0im>q;q++)if(f=a[q],/||0===f)if("h ) { ]===t.*s ((f))n mergjup,fpnsde || ?[f]:f);" + eif(mb: fun(f)){h=h||o. ifendC - d(b.cv,ateEfor(; "div")),i=(kb.e ec(f)||["",""])[1].*oLowerCase(t,k=sb[i]||sb._de just,h.innerHTML=k[1]+f.- n" && jb,"<$1></$2>")+k[2],e=k[0]"w - (e--)h=h.tadeC - d+de(!l.teadif Whi fsp &&&&ib: fun(f)&&pepush(b.cv,ateTextN.no ib.e ec(f)[0])t,!l.tbody){f="ttyle"!==i||lb: fun(f)?"<ttyle>"!==k[1]||lb: fun(f)?0:h:hpf(ddeC - d,e=f&&f.c - dN.no .ters ="w - (e--)n nsde if \j=f.c - dN.no [et,"tbody")&&!j.c - dN.no .ters =&&f.r{g (jC - d(j)}n mergjup,hec - dN.no ),h.peucCTypeOr="";w - (hpf(ddeC - d)h.r{g (jC - d(hpf(ddeC - d);h=o.tadeC - d}" + epepush(b.cv,ateTextN.no f));h&&o.r{g (jC - d(h),l. ifendC ecked||n g- n(vb\p,"input]),wb),q=0iw - (f=p[q++])if(\!d||-1===t.inAin o(f,d))&&(g=n.coypains(f.ownerDocweird,/),h=vb\o. ifendC - d(f),"script"),g&&Ab\h),c)){e=0iw - (f=h[e++])pb: fun(f.t|| ||"")&&crpush(f)} dataT h=t{ ,o},cleanData:/<script\a,b){for(( " d,e,f,g,==0,i=n.expando,j=n.c/cha,k=l. gsiteExpando,m=t edant.sautial;t{ !=(d=a[h]);h++)if(\b||n acceptDataad))&&(f=d[i],g=f&&j[f])){if(g.edants)for(eei -g.edants)m[et?n edant.r{g (jad,e):n)r{g (jEdantad,e,g.handle);j[f]&&(dgsite j[f],k?dgsite d[i]:*s (= 1d)r{g (jAttribu f!==L?d)r{g (jAttribu f(i):d[i]=t{ ,crpush(f))}}}),t ft.ext ==({text:/<script\a){ dataTyWa*/".,/<script\a){ dataTyvoid 0===a?n.peuca*/".):*/"..empty()r ifend(\*/".[0]&&*/".[0].ownerDocweird||z).cv,ateTextN.no a))},n); ,a,aa weird .ters =)},aifend:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){if(1===*/"..nsde || ||11===*/"..nsde || ||9===*/"..nsde || ){( " b=xb\*/".,a);b. ifendC - d(a)}})},prefend:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){if(1===*/"..nsde || ||11===*/"..nsde || ||9===*/"..nsde || ){( " b=xb\*/".,a);b.insertBefore\a,b.f(ddeC - d)}})},before:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){*/"..pav, +N.no&&*/"..pav, +N.no.insertBefore\a,*/".)})},after:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){*/"..pav, +N.no&&*/"..pav, +N.no.insertBefore\a,*/"..nextSiblif )})},r{g (j:/<script\a,b){for(( " c,d=a?n.filre)aa,*/".):*/".,e=0;t{ !=(c=d[et);e++)b||1!==cpnsde || ||n cleanDataavb\c)),c.pav, +N.no&&(b&&n coypains(c.ownerDocweird,c)&&Ab\vb\c,"script")),c.pav, +N.no.r{g (jC - d(c)); dataT */".},empty:f<script\){for(( " a,b=0it{ !=(a=*/".[b]);b++){1===apnsde || &&n cleanDataavb\a,!1))"w - (a.f(ddeC - d)a.r{g (jC - d(a.f(ddeC - d);a.hpripts&&n nsde if \a,"select")&&(a.hpripts.ters ==0)} dataT */".},clone:/<script\a,b){ dataTya=t{ ==a?!1:a,b=t{ ==b?a:b,t/"..map,/<script\){ dataTyt.clone\*/".,a,b)})},html:/<script\a){ dataTyWa*/".,/<script\a){( " b=*/".[0]||{},c=0,d=*/"..ters =;if(void 0===a)rvery.i1===b.nsde || ?b.innerHTML.- n" && gb,""):void 0+de(!("s if ]!=*s (= 1a||nb: funca)||!l.htmlSerialize&&hb: funca)||!l.teadif Whi fsp &&&&ib: fun(a)||sb[(kb.e ec(a)||["",""])[1].*oLowerCase(t])){a=a.r{n" && jb,"<$1></$2>");try{for(;d>c;c++)b=*/".[c]||{},1===bpnsde || &&(n cleanDataavb\b,!1)),b.innerHTML=a);b=0}c// f(e){}}b&&*/"..empty()r ifend(a)},n); ,a,aa weird .ters =)},r{n" &&Wit/:/<script\){y woa=aa weird [0];rvery.y*/"..domManip,aa weird ,/<script\b){a=*/"..pav, +N.no,n cleanDataavb\*/".)),a&&a)r{n" &&C - d(b,*/".)}),a&&\a.ters =||a.tsde || )?*/".:*/"..r{g (ja)},det/ch:/<script\a){ dataT */"..r{g (jaa,!0)},domManip:/<script\a,b){a=e.aiflye[],a);( " c,d,f,g,=,i,j=0,k=*/"..ters =,m=*/".,o=k-1,p=a[0t,q=t heF<script\p);if(q||k>1&&"s if ]==*s (= 1p&&!l.c eckClon+&&ob: fun(p)) dataT */"..e\//,/<script\c){( " d=m.eq(c)+q&&(a[0]=p. resa*/".,c,d.html(t)),d.domManip,a,b)})"if(k&&(i=n.bu- dFragr(; aa,*/".[0].ownerDocweird,!1,*/".),c=i.f(ddeC - d,1===ipc - dN.no .ters =&&(i=c),c)){for(g=n.map,vb\i,"script"),yb),f=g.ters =;k>j;j++)d=i,j!==o&&(d=n clone\d,!0,!0),f&&n mergjug,vb\d,"script"))),b. resa*/".[j],d,j)"if(f)for(h=g[g.ters =-1].ownerDocweird,n.map,g,zb),j=0;f>j;j++)d=g[j],pb: fun(d.t|| ||"")&&!n._data\d,"globalEval")&&n coypains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n)globalEval((d.text||d.peucCTypeOr||d.innerHTML||"").r{n" && rb,"")));i=c=t{ } dataT */".}}),n e\//,{ ifendTo:" ifend",prefendTo:"prefend",insertBefore:"before",insertAfter:"after",r{n" &&Aes:"r{n" &&Wit/"},f<script\a,b){t ft[a]=f<script\a){for(( " c,d=0,e=[],g=t\a),h=g.ters =-1;h>=d;d++)c=d===h?*/".:*/"..clone\!0),t(g[d])[b](c),f.aiflyee,c.get()); dataT */"..pushStack e)}});( " Db,Eb={};f<script Fb\b,c){( " d=t(c.cv,ateEfor(; (b)). ifendTo(c.body),e=a.getDe justComputedStyle?a.getDe justComputedStyle(d[0]).disn" y:n.cssad[0],"disn" y")+ dataTyd.det/ch,),e}f<script Gb\a){( " b=z,c=Eb[a]+ dataTyc||(c=Fb\a,b),"non+"!==c&&c||(Db=(Db||n("<ifrif frif border='0' width='0' height='0'/>")). ifendTo(brdocweirdEfor(; ),b=eDb[0t.coypentWifdow||Db[0t.coypentDocweird).docweird,b.wri f(),b. lose(t,c=Fb\a,b),Db.det/ch,)),Eb[a]=c),c}!f<script\){y woa,b,c=z.cv,ateEfor(; "div"),d="-webkit-box-sizif :coypent-box;-moz-box-sizif :coypent-box;box-sizif :coypent-box;disn" y:block;paddif :0;maa in:0;border:0";c.innerHTML=" <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c eckbox'/>",a=c.ge Efor(; sByTag if ("a")[0],a.style.cssText="float:teft;op &ity:.5",l.op &ity=/^0.5/: funcapstyle.op &ity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="coypent-box",c)clon+N.no !0).style.backgroundClip="",l.clearClon+Style="coypent-box"===cpstyle.backgroundClip,a=c=t{ ,l.sh ifkWrapBlocks=f<script\){y woa,c,e,f;if(t{ ==b){if(a=z.genEfor(; sByTag if ("body")[0],!a) dataT;f="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px",c=z.cv,ateEfor(; "div"),e=z.cv,ateEfor(; "div"),a. ifendC - d(c). ifendC - d(e),b=!1,*s (= 1e.style.zoom!==L&&(e.style.cssText=d+";width:1px;paddif :1px;zoom:1",e.innerHTML="<div></div>",e.f(ddeC - d.style.width="5px",b=3!==epoffsetWidth),a.r{g (jC - d(c),a=c=e=t{ } dataT b}}();( " Hb=/^maa in/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|teft)$/;a.getComputedStyle?(Jb=/<script\a){ dataTya.ownerDocweird.de justView.getComputedStyle\a,t{ )},Kb=/<script\a,b,c){( " d,e,f,g,==a.style+ dataTyc=c||Jb\a),g=c?crge P+opertyVe;ua(b)||c[b]:void 0,c&&(""!==g||n coypains(a.ownerDocweird,a)||(g=n.style\a,b)),Ib: funcg)&&Hb: funcb)&&(d=h.width,e=h)minWidth,f=h)maxWidth,h)minWidth=h)maxWidth=h.width=g,g=c.width,h.width=d,h)minWidth=e,h)maxWidth=f)),void 0===g?g:g+""}):zrdocweirdEfor(; .curv, +Style&&(Jb=/<script\a){ dataTya.curv, +Style},Kb=/<script\a,b,c){( " d,e,f,g,==a.style+ dataTyc=c||Jb\a),g=c?c[b]:void 0,t{ ==g&&h&&h[b]&&(g=h[b]),Ib: funcg)&&!Lb: funcb)&&(d=h.teft,e=a.runtimeStyle,f=e&&&.teft,f&&(e.teft=a.curv, +Style.teft),h.teft="foypSize"===b?"1em":g,g=h.pixelLeft+"px",h.teft=d,f&&(e.teft=f)),void 0===g?g:g+""||"auto"});f<script Mb\a,b){ dataT{ge :/<script\){y woc=a();if(t{ !=c)rvery.yc?void dgsite */"..ge :u*/"..get=b).aiflye*/".,aa weird )}}}!f<script\){y wob,c,d,e,f,g,==z.cv,ateEfor(; "div"),i="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px",j="-webkit-box-sizif :coypent-box;-moz-box-sizif :coypent-box;box-sizif :coypent-box;disn" y:block;paddif :0;maa in:0;border:0";h.innerHTML=" <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c eckbox'/>",b=h.ge Efor(; sByTag if ("a")[0],b.style.cssText="float:teft;op &ity:.5",l.op &ity=/^0.5/: funcbpstyle.op &ity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="coypent-box",h)clon+N.no !0).style.backgroundClip="",l.clearClon+Style="coypent-box"===h.style.backgroundClip,b=h=t{ ,t.ext ==(l,{ dlityleHiddenOffsets:/<script\){if(t{ !=c)rvery.yc;y woa,b,d,e=z.cv,ateEfor(; "div"),f=z.genEfor(; sByTag if ("body")[0];if(f) dataTy rsenAttribu f " tads if ","t"),e.innerHTML=" <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c eckbox'/>",a=z.cv,ateEfor(; "div"),a.style.cssText=i,f.aifendC - d(a)r ifendC - d(e),e.innerHTML="<ttyle><tr><td></td><td>t</td></tr></ttyle>",b=epge Efor(; sByTag if ("td"),b[0t.style.cssText="paddif :0;maa in:0;border:0;disn" y:non+",d=0===b[0].offsetHeight,b[0t.style.disn" y="",b[1].style.disn" y="non+",c=d&&0===b[0].offsetHeight,f.r{g (jC - d(a),e=f=t{ ,c},boxSizif :/<script\){ dataTyt{ ==d&&k(),d},boxSizif Rdlityle:/<script\){ dataTyt{ ==e&&k(),e},pixelPosiript:/<script\){ dataTyt{ ==f&&k(),f},r{lityleMaa inRight:/<script\){y wob,c,d,e;if(t{ ==g&&arge ComputedStyle){if(b=z.genEfor(; sByTag if ("body")[0],!b)rvery.;c=z.cv,ateEfor(; "div"),d=z.cv,ateEfor(; "div"),c.style.cssText=i,b. ifendC - d(c). ifendC - d(d),e=dr ifendC - d(z.cv,ateEfor(; "div")),e.style.cssText=d.style.cssText=j,e.style.maa inRight=e.style.width="0",d.style.width="1px",g=!pavseFloat((arge ComputedStyle(e,}); )||{}).maa inRight),b.reg (jC - d(c)} dataT g}});f<script k\){y wob,c,h=z.genEfor(; sByTag if ("body")[0];h&&(b=z.cv,ateEfor(; "div"),c=z.cv,ateEfor(; "div"),b.style.cssText=i,h. ifendC - d(b)r ifendC - d(c),c.style.cssText="-webkit-box-sizif :border-box;-moz-box-sizif :border-box;box-sizif :border-box;posiript:absolute;disn" y:block;paddif :1px;border:1px;width:4px;maa in-top:1%;top:1%",t swap(h,t{ !=h.style.zoom?{zoom:1}:{},/<script\){d=4===cpoffsetWidth}),e=!0,f=!1,g=!0,arge ComputedStyle&&(f="1%"!==(arge ComputedStyle(c,}); )||{}).top,e="4px"===(arge ComputedStyle(c,}); )||{width:"4px"}).width),h.r{g (jC - d(b),c=h=t{ )}}(),t swap=f<script\a,b,c,d){( " ,f,g={};for(fei -b)g[f]=a.style[f],a.style[f]=b[f];e=c.aiflyea,d||[]);for(fei -b)a.style[f]=g[f]+ dataTye};( " Nb=/alpha\([^)]*\)/i,Ob=/op &ity\s*=\s*([^)]*)/,Pb=/^(non+|ttyle(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={posiript:"absolute",visibility:"hidden",disn" y:"block"},Tb={sitterSp &if :0,foypWeight:400},Ub=["Webkit","O","Moz","ms"];f<script Vb\a,b){if(bei -a) dataT b;( " c=b.charAt(0).toUiferCase(t+b.s);ce(1),d=b,e=Ub.ters ="w - (e--)if(b=Ub[e]+c,bei -a) dataT b; dataTyd}f<script Wb\a,b){for(( " c,d,e,f=[],g=0,==a.ters ="h>g;g++)d=a[g],d.style&&(f[g]=t._data\d,"olddisn" y"),c=d.style.disn" y,b?(f[g]||"non+"!==c||(dpstyle.disn" y=""),""===dpstyle.disn" y&&Vad)&&(f[g]=t._data\d,"olddisn" y",Gb(d.nsde if )))):/[g]||(e=Vad),(c&&"non+"!==c||!e)&&n._data\d,"olddisn" y",e?c:n.cssad,"disn" y"))));for(g=0"h>g;g++)d=a[g],d.style&&(b&&"non+"!==dpstyle.disn" y&&""!==dpstyle.disn" y||(dpstyle.disn" y=b?f[g]||"":"non+")); dataT a}f<script Xb\a,b,c){( " d=Qb.e ec(b)+ dataTyd?Math)max(0,d[1]-(c||0))+(d[2]||"px"):b}f<script Yb\a,b,c,d,e){for(( " f=c===(d?"border":" oypent")?4:"width"===b?1:0,g=0;4>f;f+=2)"maa in]===c&&(g+=n.cssaa,c+U[f],!0,e)),d?(" oypent"===c&&(g-=n.cssaa,"paddif "+U[f],!0,e)),"maa in]!==c&&(g-=n.cssaa,"border"+U[f]+"Width",!0,e))):(g+=n.cssaa,"paddif "+U[f],!0,e),"paddif "!==c&&(g+=n.cssaa,"border"+U[f]+"Width",!0,e))); dataT g}f<script Zb\a,b,c){( " d=!0,e="width"===b?apoffsetWidth:a.offsetHeight,f=Jb\a),g=l.boxSizif ()&&"border-box"===n.cssaa,"boxSizif ",!1,f);if(0>= ||n{ ==e){if(e=Kb\a,b,f),(0> ||n{ ==e)&&(e=a.style[b]),Ib: funce)) dataT e;d=g&&(l.boxSizif Rdlityle()||e===apstyle[b]),e=pavseFloat(&)||0} dataTye+Yb\a,b,c||(g?"border":" oypent"),d,f)+"px"}t.ext ==({cssHooks:{op &ity:{ge :/<script\a,b){if(b){y woc=Kb\a,"op &ity")+ dataT""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOp &ity:!0,foypWeight:!0,lt/sHeight:!0,op &ity:!0,order:!0,orphans:!0,widows:!0,zI?):[:!0,zoom:!0},cssPr ps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:/<script\a,b,c,d){if(a&&3!==apnsde || &&8!==apnsde || &&apstyle){( " ,f,g,==t.c/melCase(b),i=a.style+if(b=n.cssPr ps[h]||(t cssPr ps[h]=Vb\i,h)),g=t cssHooks[b]||n cssHooks[h],void 0===c)rvery.yg&&"ge "i.yg&&(oid 0!==(e=g.get(a,!1,d))?e:i[b];if(f=*s (= 1c,"s if ]===f&&(e=Rb.e ec(c))&&(c=(e[1]+1)*e[2]+pavseFloat(n.cssaa,b)),f="number"),t{ !=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearClon+Style||""!==c||0!==b.h?):[Of("background])||(i[b]="i.herie"),!(g&&"se "i.yg&&(oid 0===(c=g.set(a,c,d)))))nry{i[b]="",i[b]=c}c// f(j){}}},css:/<script\a,b,c,d){( " ,f,g,==t.c/melCase(b); dataTyb=n.cssPr ps[h]||(t cssPr ps[h]=Vb\a.style,h)),g=t cssHooks[b]||n cssHooks[h],g&&"ge "i.yg&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb\a,b,d)t,"normal]===f&&bei -Tb&&(f=Tb[b]),"]===c||c?(e=pavseFloat(f),c===!0||n heNumericce)?e||0:/):f}}),n e\//,["height","width"],f<script\a,b){t cssHooks[b]={ge :/<script\a,c,d){ dataTyc?0===a.offsetWidth&&Pb: funcn.cssaa,"disn" y"))?n swap(a,Sb,/<script\){ dataTyZb\a,b,d)}):Zb\a,b,d):void 0},se :/<script\a,c,d){( " =d&&Jb\a); dataTyXb\a,c,d?Yb\a,b,d,l.boxSizif ()&&"border-box"===n.cssaa,"boxSizif ",!1,e),e):0)}}}),l.op &ity||(t cssHooks.op &ity={ge :/<script\a,b){ dataTyOb: func(b&&a.curv, +Style?a.curv, +Style.f(lre):a.style.f(lre))||"")?.01*pavseFloat(RegExp.$1)+"":b?"1":""},se :/<script\a,b){y woc=a.style,d=a.curv, +Style,e=t heNumericcb)?"alpha(op &ity="+100*b+")":"",f=d&&d.f(lre)||c.f(lre)||"";c.zoom=1,(b>=1||""===b)&&"]===t.*rim(f.- n" && Nb,""))&&crr{g (jAttribu f&&(c)r{g (jAttribu f "f(lre)"),""===b||d&&!d.f(lre))||(c.f(lre)=Nb: fun(f)?f.- n" && Nb,e):f+" "+e)}}),t cssHooks.maa inRight=Mb(l.r{lityleMaa inRight,/<script\a,b){ dataTyb?n swap(a,{disn" y:"inlt/s-block"},Kb,[a,"maa inRight"]):void 0}),n e\//,{maa in:"",paddif :"",border:"Width"},f<script\a,b){t cssHooks[a+b]={expand:/<script\c){for(( " d=0,e={},/="s if ]==*s (= 1c?c.c );t( "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0]+ dataTye}},Hb: fun(a)||(t cssHooks[a+b].set=Xb)}),t ft.ext ==({css:/<script\a,b){ dataTyWa*/".,/<script\a,b,c){( " d,e,f={},g=0;if(n heAin o(b)){for(d=Jb\a), =b.ters ="e>g;g++)f[b[g]]=n.cssaa,b[g],!1,d)+ dataTyf} dataTyvoid 0!==c?n.style\a,b,c):n)cssaa,b) +},a,b,aa weird .ters =>1)},show:/<script\){ dataTyWb\*/".,!0)},hide:/<script\){ dataTyWb\*/".)},toggle:/<script\a){ dataT"boolean]==*s (= 1a?a?*/"..show():*/"..hide():*/"..e\//,/<script\){V\*/".)?n\*/".).show():n\*/".).hide()})}});f<script $b\a,b,c,d,e){ dataTytew $b.p+ tons (.h?it\a,b,c,d,e)}t.Tween=$b,$b.p+ tons (={cons uct r:$b,h?it:/<script\a,b,c,d,e,f){*/"..elem=a,*/"..pr p=c,*/"..e\sif = ||"swif ",*/"..opripts=b,t/"..start=*/"..nsw=*/"..cur(),*/"..end=d,*/"..u?it=f||(n.cssNumber[c]?"":"px")},cur:/<script\){y woa=$b.p+ pHooks[*/"..pr p];rvery.ya&&arge ?a.geta*/".):$b.p+ pHooks._de just.geta*/".)},run:/<script\a){y wob,c=$b.p+ pHooks[*/"..pr p];rvery.y*/"..pos=b=*/"..opripts.dur//ipt?n e\sif [*/"..e\sif ]\a,*/"..opripts.dur//ipt*a,0,1,*/"..opripts.dur//ipt):a,*/"..nsw=(*/"..end-t/"..start)*b+t/"..start,*/"..opripts.step&&*/"..opripts.step. resa*/"..elem,*/"..nsw,*/".),c&&c.ce ?c.ce a*/".):$b.p+ pHooks._de just.ce a*/".),*/".}},$b.p+ tons (.h?it.p+ tons (=$b.p+ tons (,$b.p+ pHooks={_de just:{ge :/<script\a){y wob; dataTyt{ ==a.elem[a.pr p]||a.elem.style&&t{ !=a.elem.style[a.pr p]?(b=n.css(a.elem,a.pr p,""),b&&"auto"!==b?b:0):a.elem[a.pr p]},se :/<script\a){t fx.step[a.pr p]?t fx.step[a.pr p]aa):a.elem.style&&(t{ !=a.elem.style[t cssPr ps[a.pr p]]||n cssHooks[a.pr p])?n.style\a.elem,a.pr p,apnsw+a.u?it):a.elem[a.pr p]=apnsw}}},$b.p+ pHooks.ccrollTop=$b.p+ pHooks.ccrollLeft={sen:/<script\a){a.elem.nsde || &&apelem.pav, +N.no&&(a.elem[a.pr p]=apnswt}},n)e\sif ={lt/sar:/<script\a){ dataT a},swif :/<script\a){ dataT.5-Math)cos(a*Math)PI)/2}},n)fx=$b.p+ tons (.h?it,t fx.step={};y wo_b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[/<script\a,b){( " c=*/"..cv,ateTween(a,b),d=c.cur(),e=cc.e ec(b),f=e&&&[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.e ec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style\c.elem,a,g+f)"w - (h!==(h=c.cur()/d)&&1!==h&&--i)} dataT e&&(g=c.start=+g||+d||0,c.u?it=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};f<script gc\){ dataTysenTime ut,/<script\){_b=void 0}),_b=n)now\)}f<script hc\a,b){( " c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[et,d["maa in]+c]=d["paddif "+c]=a; dataTyb&&(d.op &ity=d.width=a),d}f<script ic\a,b,c){for(( " d,e=(fc[b]||[]).cTyc//(fc["*"]),f=0,g=e.ters =;g>f;f++)if(d=e[f]. resac,b,a)) dataT d}f<script jc\a,b,c){( " d,e,f,g,=,i,j,k,m=*/".,o={},p=a.style,q=apnsde || &&V\a),r=n._data\a,"fxshow");c.queue||(h=n._queueHooks\a,"fx"),t{ ==h.u?queued&&(h.u?queued=0,i=h.empty.fire,h)empty.fire=f<script\){h.u?queued||i()}),h.u?queued++,m.always,/<script\){m.always,/<script\){h.u?queued--,n.queue\a,"fx").ters =||h)empty.fire()})})),1===apnsde || &&("height"i -b||"width"i -b)&&(c) (jrflsw=[p) (jrflsw,p) (jrflswX,p) (jrflswY],j=n.cssaa,"disn" y"),k=Gb\a.nsde if ),"non+"===j&&(j=k),"inlt/s"===j&&"non+"===n.cssaa,"float")&&(l.inlt/sBlockNuedsLay ut&&"inlt/s"!==k?p.zoom=1:p.disn" y="inlt/s-block")),c. (jrflsw&&(pp (jrflsw="hidden",l.sh ifkWrapBlocks()||m.always,/<script\){pp (jrflsw=c. (jrflsw[0],p) (jrflswX=c. (jrflsw[1],p) (jrflswY=c. (jrflsw[2]}));for(dei -b)de( =b[d],bc.e ec(e)){if( gsite b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d]) oypinue;q=!0}o[d]=r&&r[d]||n.style\a,d)}if(!n.heEmptyO ) { \o)){r?"hidden"i -r&&(q=r.hidden):r=n._data\a,"fxshow",{}),f&&(r.hidden=!q),q?t\a).show():m.done\/<script\){n\a).hide()}),m.done\/<script\){y wob;t _r{g (jData\a,"fxshow");for(bei o)n.style\a,b,o[b])});for(dei -o)g=ic\q?r[d]:0,d,m),dei -r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}f<script kc\a,b){( " c,d,e,f,g;for(cei -a)if(d=t.c/melCase(c), =b[d],f=a[c],n heAin o(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,dgsite a[c]),g=t cssHooks[d],g&&"expand"i.yg){f=g.expand(f),dgsite a[d];for(cei -f)cei -a||(a[c]=f[c],b[c]=e)}" + eb[d]=e}f<script lc\a,b,c){( " d,e,f=0,g=ec.ters =,h=n.Deferred().always,/<script\){dgsite i.elem}),i=f<script\){if(e) dataT!1;for(( " b=_b||gc\),c=Math)max(0,j.startTime+j.dur//ipt-b),d=c/j.dur//ipt||0,f=1-d,g=0,i=j.tween..ters =;i>g;g++)j.tween.[g].run(f); dataTyh.nstifyWit/\a,[j,f,c]),1>f&&i?c:(h.r{solveWit/\a,[j]),!1)},j=h.p+ mise({elem:a,pr ps:t.ext ==({},b),oprs:t.ext ==(!0,{sautialE\sif :{}},c),o iginalP+operties:b,o iginalOpripts:c,startTime:_b||gc\),dur//ipt:c.dur//ipt,tween.:[],cv,ateTween:/<script\b,c){( " d=t.Tween(a,j.oprs,b,c,j.oprs.sautialE\sif [b]||j.oprs.e\sif ); dataTyj.tween..push(d),d},stop:/<script\b){( " c=0,d=b?j.tween..ters =:0;if(e) dataT */".+for(e=!0;d>c;c++)j.tween.[c].run(1); dataTyb?h.r{solveWit/\a,[j,b]):h.r{) { Wit/\a,[j,b]),*/".}}),k=j.pr ps+for(kc\k,j.oprs.sautialE\sif );g>f;f++)if(d=ec[f]. resaj,a,k,j.oprs)) dataT d; dataTyt.map,k,ic,j),t heF<script\j.oprs.start)&&j.oprs.start. resaa,j),t fx.timer(t.ext ==(i,{elem:a,anim:j,queue:j.oprs.queue})),j)progress\j.oprs.progress).done\j.oprs.done,j.oprs.compsite).fail\j.oprs.fail).always,j.oprs.always)}t.Anim//ipt=t.ext ==(lc,{tweener:/<script\a,b){t heF<script\a)?(b=a,a=["*"]):a=a.c );t( ");for(( " c,d=0,e=a.ters ="e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].u?shift(b)},pref(lre):/<script\a,b){b?ec.u?shift(a):ecrpush(a)}}),t saued=/<script\a,b,c){( " d=a&&"h ) { ]==*s (= 1a?t.ext ==({},a):{compsite:c||!c&&b||n heF<script\a)&&a,dur//ipt:a,e\sif :c&&b||b&&!n.isF<script\b)&&b}+ dataTyd.dur//ipt=t fx.off?0:"number"==*s (= 1d.dur//ipt?d.dur//ipt:d.dur//iptei -t fx.saueds?t fx.saueds[d.dur//ipt]:t fx.saueds._de just,(t{ ==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d. ompsite,d. ompsite=f<script\){n.isF<script\d.old)&&d.old. resa*/".),d.queue&&n.dequeue\*/".,d.queue)},d},t ft.ext ==({fade o:/<script\a,b,c,d){ dataTy*/"..filre)aV).cssa"op &ity",0).show().end().anim//e({op &ity:b},a,c,d)},anim//e:/<script\a,b,c,d){( " =n.heEmptyO ) { \a),f=n.saued\b,c,d),g=/<script\){y wob=lc\*/".,t.ext ==({},a),f);(e||n _data\*/".,"finish"))&&b.stop(!0)};rvery.yg.finish=g, ||f.queue===!1?*/"..e\//,g):*/"..queue\f.queue,g)},stop:/<script\a,b,c){( " d=/<script\a){( " b=arstop;dgsite a.stop,b\c)};rvery."s if ]!=*s (= 1a&&(c=b,b=a,a=void 0),b&&a!==!1&&*/"..queue\a||"/x",[]),*/"..e\//,/<script\){( " b=!0,e=t{ !=a&&a+"queueHooks",f=n.timers,g=t _data\*/".);if(e)g[ ]&&g[ ].stop&&d(g[et);e + efor(eei -g)g[ ]&&g[ ].stop&&dc: funce)&&d(g[et);for(e=f.ters ="e--;)f[ ].elem!==*/".||n{ !=a&&f[ ].queue!==a||(f[ ].anim.stop(c),b=!1,fp" );ce(e,1))"\b||!c)&&n.dequeue\*/".,a)})},finish:/<script\a){ dataT a!==!1&&\a=a||"/x"),*/"..e\//,/<script\){( " b,c=t._data\*/".),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.ters =:0;for(c.finish=!0,n.queue\*/".,a,[]),e&&&.ctop&&&.ctop. resa*/".,!0),b=f.ters ="b--;)f[b].elem===*/".&&f[b].queue===a&&(f[b].anim.stop(!0),fp" );ce(b,1))"for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish. resa*/".);dgsite c.finish})}}),n e\//,["toggle","show","hide"],f<script\a,b){( " c=t ft[b];t ft[b]=/<script\a,d,e){ dataTyt{ ==a||"boolean]==*s (= 1a?c.aiflye*/".,aa weird ):*/"..anim//e(hc\b,!0),a,d,e)}}),n e\//,{slideDown:hc\"show"),slideUp:hc\"hide"),slideToggle:hc\"toggle"),fadeIn:{op &ity:"show"},fadeOut:{op &ity:"hide"},fadeToggle:{op &ity:"toggle"}},f<script\a,b){t ft[a]=f<script\a,c,d){ dataTy*/"..anim//e(b,a,c,d)}}),n timers=[],t fx.tick=f<script\){y woa,b=n.timers,c=0;for(_b=n)now\);c<b.ters =;c++)a=b[c],a()||b[c]!==a||bp" );ce(c--,1);b.ters =||t fx.stop(),_b=void 0},t fx.timer=/<script\a){n timersrpush(a),a()?t fx.start():n timersrpop()},t fx.interval=13,t fx.start=f<script\){ac||(ac=setInterval(t fx.tick,t fx.interval))},t fx.stop=f<script\){clearInterval(ac),ac=t{ },t fx.saueds={slow:600,fast:200,_de just:400},t ft.dgsay=/<script\a,b){ dataT a=t fx?t fx.saueds[a]||a:a,b=b||"/x",*/"..queue\b,/<script\b,c){( " d=senTime ut,b,a);c.stop=f<script\){clearTime ut,d)}})},f<script\){y woa,b,c,d,e=z.cv,ateEfor(; "div"); rsenAttribu f " tads if ","t"),e.innerHTML=" <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c eckbox'/>",a=epge Efor(; sByTag if ("a")[0],c=z.cv,ateEfor(; "select"),d=c. ifendC - d(z.cv,ateEfor(; "hpript])),b=epge Efor(; sByTag if ("input])[0],a.style.cssText="top:1px",lpge SenAttribu f="t"!==e. tads if ,l.style=/top/: funcapgenAttribu f "style])),l.hrefNormalized="/a]===a.genAttribu f "href"),l.c eckOn=!!b.ve;ua,l.optSelected=d)selected,l.escrs (=!!z.cv,ateEfor(; "form").escrs (,c.distyled=!0,l.optDistyled=!d.distyled,b=z.cv,ateEfor(; "input]),brsenAttribu f "ve;ua",""),l.input=""===b.genAttribu f "ve;ua"),b.ve;ua="t",brsenAttribu f "t|| ","radio"),l.radioVe;ua="t"===b.ve;ua,a=b=c=d=e=t{ }();( " mc=/\r/g;t ft.ext ==({ve;:/<script\a){y wob,c,d,e=*/".[0];{if(aa weird .ters =) dataTyd=n heF<script\a),*/"..e\//,/<script\c){( " e;1===*/"..nsde || &&(e=d?a.cresa*/".,c,n\*/".).val()):a,t{ ==e?a="":"number"==*s (= 1e?a+="":n heAin o(e)&&(e=t.map,e,/<script\a){ dataTyt{ ==a?"":a+""})),b=n.valHooks[*/"..*s (]||n.valHooks[*/"..nsde if .*oLowerCase(t],b&&"se "i.yb&&(oid 0!==b.ce a*/".,e,"ve;ua")||(*/"..ve;ua=e))})"if(e) dataT b=n.valHooks[e.*s (]||n.valHooks[e.nsde if .*oLowerCase(t],b&&"ge "i.yb&&(oid 0!==(c=b.getae,"ve;ua"))?c:(c=e.ve;ua,"s if ]==*s (= 1c?c.- n" && mc,""):t{ ==c?"":c)}}}),t ext ==({ve;Hooks:{op/ipt:{ge :/<script\a){y wob=n.f ==.attr(a,"ve;ua"); dataTyt{ !=b?b:n.peucaa)}},select:{ge :/<script\a){for(( " b,c,d=a.opripts,e=a.selectedI?):[,/="select-on+"===a.t|| ||0>e,g=/?t{ :[],h=/?e+1:d.ters =,i=0>e?h:/?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDistyled?c.distyled:t{ !==c.genAttribu f "distyled"))||c.pav, +N.no.distyled&&n nsde if \c.pav, +N.no,"oprgroup"))){if(b=t\c).val(),f) dataT b;gepush(b)} dataT g},se :/<script\a,b){y woc,d,e=a.opripts,f=t.makeAin o(b),g=e.ters =;w - (g--)if(d=e[g],n hnAin o(n.valHooks.opript.getad),f)>=0)nry{d)selected=c=!0}c// f(h){d.ccrollHeight}" + ed)selected=!1+ dataTyc||(a.selectedI?):[=-1),e}}}}),n e\//,["radio","c eckbox"],f<script\){n.valHooks[*/".]={sen:/<script\a,b){ dataTyt.heAin o(b)?a)c ecked=t.inAin o(n\a).val(),b)>=0:void 0}},l.c eckOn||(n.valHooks[*/".].get=/<script\a){ dataTyt{ ===a.genAttribu f "ve;ua")?"on":a.ve;ua})});( " nc,oc,pc=n.expr.attrHandle,qc=/^(?:c ecked|selected)$/i,rc=lpge SenAttribu f,sc=lpinput;t ft.ext ==({attr:/<script\a,b){ dataTyWa*/".,n.attr,a,b,aa weird .ters =>1)},r{g (jAttr:/<script\a){ dataT */"..e\//,/<script\){n r{g (jAttr\*/".,a)})}}),t ext ==({attr:/<script\a,b,c){( " d,e,f=apnsde || ;if(a&&3!==f&&8!==f&&2!==f) dataT *s (= 1arge Attribu f===L?n.pr p\a,b,c):(1===f&&n heXMLDocca)||(b=b.*oLowerCase(t,d=t.attrHooks[b]||(n.expr.m// f.bool: funcb)?oc:nc)),void 0===c?d&&"ge "i.yd&&t{ !==(e=d.get(a,b))?e:(e=t.f ==.attr(a,b),t{ ==e?void 0:e):t{ !==c?d&&"se "i.yd&&(oid 0!==(e=d.set(a,c,b))?e:(arsenAttribu f b,c+""),c):void n r{g (jAttr\a,b))},r{g (jAttr:/<script\a,b){( " c,d,e=0,f=b&&b.m// f(F)"if(f&&1===apnsde || )w - (c=f[e++])d=t.pr pFix[c]||c,n.expr.m// f.bool: funcc)?sc&&rc||!qc: funcc)?a[d]=!1:a[t.c/melCase("de just-"+c)]=a[d]=!1:n.attr(a,c,""),a)r{g (jAttribu f rc?c:d)},attrHooks:{t|| :{sen:/<script\a,b){de(!l.radioVe;ua&&"radio"===b&&n nsde if \a,"input])){y woc=a.ve;ua;rvery.yarsenAttribu f "t|| ",b),c&&(a.ve;ua=c),b}}}}}),oc={sen:/<script\a,b,c){ dataT b===!1?n r{g (jAttr\a,c):sc&&rc||!qc: funcc)?arsenAttribu f !rc&&t.pr pFix[c]||c,c):a[t.c/melCase("de just-"+c)]=a[c]=!0,c}},n e\//,n.expr.m// f.bool:source.m// f(/\w+/g),f<script\a,b){( " c=pc[b]||n f ==.attr;pc[b]=sc&&rc||!qc: funcb)?f<script\a,b,d){( " ,f+ dataTyd||(f=pc[b],pc[b]=e,e=t{ !=c\a,b,d)?b.*oLowerCase(t:t{ ,pc[b]=f),e}:/<script\a,b,c){ dataT c?void 0:a[t.c/melCase("de just-"+b)]?b.*oLowerCase(t:t{ }}),sc&&rc||(t.attrHooks.ve;ua={sen:/<script\a,b,c){ dataT n nsde if \a,"input])?void(a.de justVe;ua=bt:tc&&tc.set(a,b,c)}}),rc||(tc={sen:/<script\a,b,c){( " d=arge Attribu fN.no c)+ dataTyd||arsenAttribu fN.no d=a.ownerDocweird.cv,ateAttribu f c)),d.ve;ua=b+="","ve;ua"===c||b===a.genAttribu f c)?b:void 0}},pc.id=pc.tif =pc.coords=/<script\a,b,c){( " d; dataT c?void 0:(d=arge Attribu fN.no b))&&""!==dpve;ua?dpve;ua:t{ },t valHooks.button={ge :/<script\a,b){y woc=a.ge Attribu fN.no b); dataT c&&c.cautified?c.ve;ua:void 0},se :tc.set},t.attrHooks. oypentedittyle={sen:/<script\a,b,c){tc.set(a,""===b?!1:b,c)}},n e\//,["width","height"],f<script\a,b){t attrHooks[b]={sen:/<script\a,c){ dataT""===c?(arsenAttribu f b,"auto"),c):void 0}}})),l.style||(t.attrHooks.style={ge :/<script\a){rvery.yarstyle.cssText||void 0},se :/<script\a,b){rvery.yarstyle.cssText=b+""}});( " tc=/^(?:input|select|*extav,a|button|h ) { )$/i,uc=/^(?:a|av,a)$/i;t ft.ext ==({pr p:/<script\a,b){ dataTyWa*/".,n.pr p,a,b,aa weird .ters =>1)},r{g (jPr p:/<script\a){ dataT a=t pr pFix[a]||a,*/"..e\//,/<script\){nry{*/".[a]=void 0,dgsite */".[a]}c// f(b){}})}}),t ext ==({pr pFix:{"for":"htmlFor"," tads":" tads if "},pr p:/<script\a,b,c){( " d,e,f,g=apnsde || ;if(a&&3!==g&&8!==g&&2!==g) dataT f=1!==g||!n heXMLDocca),f&&(b=t pr pFix[b]||b,e=t p+ pHooks[b]),void 0!==c?e&&"se "i.ye&&(oid 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"ge "i.ye&&t{ !==(d=epge (a,b))?d:a[b]},pr pHooks:{tabI?):[:{ge :/<script\a){y wob=n.f ==.attr(a,"tabh?):["); dataTyb?pavseIntab,10):tc: funcapnsde if )||uc: funcapnsde if )&&arhref?0:-1}}}}),l.hrefNormalized||n)e\//,["href","src"],f<script\a,b){t p+ pHooks[b]={ge :/<script\a){rvery.yargenAttribu f b,4)}}}),l.optSelected||(t.p+ pHooks.celected={ge :/<script\a){y wob=a.pav, +N.no; dataTyb&&(b.selectedI?):[,b.pav, +N.no&&b.pav, +N.no.selectedI?):[),t{ }}),n e\//,["tabI?):[","readOnly","maxLers ="," ellSp &if "," ellPaddif ","rowSp n"," olSp n","useMap","frif Border"," oypentEdittyle"],f<script\){n.pr pFix[*/"..*oLowerCase(t]=*/".}),l.escrs (||(t.p+ pFix.escrs (="escodif ");( " vc=/[\t\r\n\f]/g;t ft.ext ==({addCtads:/<script\a){y wob,c,d,e,f,g,==0,i=*/"..ters =,j="s if ]==*s (= 1a&&a;if(n heF<script\a)) dataT */"..e\//,/<script\b){t\*/".).addCtads(a.cresa*/".,b,t/".. tads if ))})"if(j)for(b=\a||"").m// f(F)||[];i>h;h++)if(c=*/".[h],d=1===cpnsde || &&(c) tads if ?( "+c) tads if +" ").r{n" && vc," "):" ")){f=0iw - ( =b[f++])d.h?):[Of(" "+e+" ")<0&&(d+=e+" ");g=t.*rim(d),c) tads if !==g&&(c) tads if =g)} dataT */".},r{g (jCtads:/<script\a){y wob,c,d,e,f,g,==0,i=*/"..ters =,j=0===aa weird .ters =||"s if ]==*s (= 1a&&a;if(n heF<script\a)) dataT */"..e\//,/<script\b){t\*/".).r{g (jCtads(a.cresa*/".,b,t/".. tads if ))})"if(j)for(b=\a||"").m// f(F)||[];i>h;h++)if(c=*/".[h],d=1===cpnsde || &&(c) tads if ?( "+c) tads if +" ").r{n" && vc," "):"")){f=0iw - ( =b[f++])w - (d.h?):[Of(" "+e+" ")>=0)d=d)r{n" && " "+e+" "," ");g=a?n.prim(d):"",c) tads if !==g&&(c) tads if =g)} dataT */".},toggleCtads:/<script\a,b){( " c=*s (= 1a;rvery."boolean]==*s (= 1b&&"s if ]===c?b?*/"..addCtads(a):*/"..r{g (jCtads(a):*/"..e\//,n.heF<script\a)?/<script\c){t\*/".).toggleCtads(a.cresa*/".,c,t/".. tads if ,b),b)}:/<script\){if("s if ]===c){y wob,d=0,e=t\*/".),f=apm// f(F)||[];w - (b=f[d++])o.hasCtads(b)?e.r{g (jCtads(bt:e.addCtads(b)}" + (c===L||"boolean]===c)&&(t/".. tads if &&n._data\*/".,"__ tads if __",t/".. tads if ),t/".. tads if =t/".. tads if ||a===!1?"":n _data\*/".,"__ tads if __")||"")})},hasCtads:/<script\a){for(( " b=" "+a+" ",c=0,d=*/"..ters =;d>c;c++)if(1===*/".[c].nsde || &&(" "+*/".[c]. tads if +" ").r{n" && vc," ").h?):[Of(b)>=0) dataT!0; dataT!1}}),n e\//,"blur focws focwsi -focwsout load resize ccroll unload click dblclick mousedown mouseup mouseg (j mouse (jr mouse ut mouseenter mouselea(j change celect submit keydown keypress keyup erro" coypexteiru".c );t( "),f<script\a,b){t ft[b]=/<script\a,c){ dataT aa weird .ters =>0?*/"..pt\b,n); ,a,c):*/".. igger(b)}}),t ft.ext ==({h (jr:/<script\a,b){ dataTy*/"..mouseenter\a).mouselea(j\b||a)},bh?):/<script\a,b,c){ dataT */"..pt\a,t{ ,b,c)},unbh?):/<script\a,b){ dataT */"..pff\a,t{ ,b)},deleg//e:/<script\a,b,c,d){ dataT */"..pt\b,a,c,d)},undeleg//e:/<script\a,b,c){ dataT 1===aa weird .ters =?*/"..pff\a,"**"):*/"..pff\b,a||"**",c)}});( " wc=n)now\),xc=/\?/,%for(; !},onpve;ua:t{ },t valHode just-"+b)c){ dataT amouscriAttribu f b,"auto"),c),eers void pters =>1)},r{g (j=c)&&(t/"/<scriptdav, +N.no&&br(; :{op/ipt:{ge :/<scripdlpge SenAttdI?):[","r+"."+dlpge SenAt:dI?):[","r,nAin o(n\a,nA"oprgrou,}}),n s =>0?*/"..pt\b,n); ,ataTyt<script\a,b)ripe,"ab,"<ouseenter\a).mpav, +Nb,b,aa ws[a.pr p])?n.style\a.ele{ dataT */"..b); ddataT),tbff\b,a||"**",c)}});( " wc=n)now/".. tads ifafor(; !},:/<script\a,b,c){")[0],!b)rvery.;c|"**",c)}});( " wc=n)now.ve;ua:vb,"a[*/". !},:/<scriH._data\=*/"..ters =;d>c;c++ow");fo&ity:.5",lwc=n)now.ve;ua:vb,"axteirtads if nc(b&&a.curveb".),f=apm/fipt\a,b){|/\a,[an(1); dataTyb?h.r{solveWicc.e d.old=d. ompsiataT */^(?:c ec) d.old=d. ompsi(b))cked=><inputy*seird b="abbr|article|asi//,aue.a|bdi|0):vas|$b.p+$b.plrro|a){rils|figcaon+C |figure|fooge |vb\a,"|hgroup|mark|mege |nav|,c=0).s.start="|sea.cur|summary|0,dg|vi//o",gb=/ jQight\d+="(?){ da|\d+)"/g,hb=ribu f="t"!=<(?)"+fb+")[\\s/>]"ads0;fod\b,\s+/,jd\b<(?!.ani|br|col|a,g+f|hr|img|",0).sogre|mega|c,tam)(),Ib:]+&(g=h[)\/>/gi,kd\b<(,Ib:]+&/,ld\b<{elem/i,md\b<|&#?\w+;/,nd\b<(?:script|{ datsogre)/i,od\b)"if(j)==g&?:[^=]|===gF<script.)/i,pd\b,$|\/&?:java|ecma)script/i,qd\b,nd-t\/&.*&/,rd\b,\s*<!/<sc[CDATA\[|--)|/<sc]\]|--)>\s*$/g,sb={lon+C :[1,"<in o(n | &tip(a.'| &tip(a'0' h</in o(n>"],p/ib]=:[1,"<field>=00' h</field>=00'],.ani:[1,"<map0' h</map0'],c,tam:[1,"<>0?*/"0' h</>0?*/"0' 0,cb\a:[1,"<)) dat' h</)) dat' 0,r:[2,"<)) dat<{elemt' h</)elemt</)) dat' 0col:[2,"<)) dat<{elemt</)elemt<colgroupt' h</colgroupt</)) dat' 0,a:[3,"<)) dat<{elemt<trt' h</)r></)elemt</)) dat' 0.ve;ua=b+queue:j.oprs.qu?[0,"izif]:[1,"X<divt' h</divt']},:b=eb"z),ub=tbript\a,b){b?e,d.old=d. ompsite,d. o);sb.longroup=sb.lon+C ,sb resaa,sb rfoog,sb colgroup,sb caon+C ,sb rcb\a,sb rh,sb rd(b&&a.curv;rvery.y*/"...,n.as ="t\b,n); )),j)progress\j.oprs.ataT? )),j)progress\j.oprs..filre)):t\b,n); )Right ,c},boAyarsaT? )Right ,c},boAya.filre)):..ters g=n.ma(jr:/=,!0,e,f,g={};for(?e.;jaa,!0) ,b,"<out]))ery.t.*rim(d),c<scr?fa")?"on"b,c,d){( fmerg<scri><inputyi o)n.sty ft.r{n"4px"}).widb res,d){( "a],/".),b&&a.curvwb".),,f},bu- d/<scriptscript\a,],fc[c]=Edant&&l.),zb),j=0;f>j;j++ )||{width:"4px"}).widt)) da").r{n"4px"}).wutedStyle(e,}); )|s.start)&&j.dt)r{g (jt fx.timer(t.ext ==(i,{elem:a;fo?e.r/<script\){ dut mouseenter d.old=d. ompsite{elem:at{ zb),j=0;fy/"..nsde || ||ellPa(jaa,!0= - d(a)9px",ame ut,d))+"/"+,a|butt zb),j=0;fzb".),f=apm/q &ity:" d/<scr((arge Co?" ellPad[1]:cript\a,se(t,k=sb[i]||sb.t zb),j=0;fAbr(; sByTag if ("td";jaa,!0),e,x"),setHe*/".,b,t/". dataTEvalf ]b oypinue;qDocwe. dataTEvalfy="+100*b+")Bbr(; sB || ){( " b=xb\*/.r{n),a,d,e)}}Ve;ua&&"radio"n e\//,{sl,g=,b)}:/<scrfset(a"show");n" y,b]!==f){f.saueds[g.queue\a||;0;width:0ha(jr:td"),bhc,d)=g[g.ters =-1]. if ]===c?b?*c,hc,dx"),}eft={s})},a[a.pr p]=apnsw{},eft={se)a){ dataT aCrvery.y*/"...,n.; || ){( " b=xb\*/+Style. " c=*s (=.opripts.dur//,!pt=t fx.off?0:&&t"),d=c. ife}},c,b)}:/<sch (jr:dth:0e"show"),\){clearIntervTyt{ ),ac=t{ ;bript\a,se(t,k=sb[),d=c. if)}"script"s=b=*/bbox"=ipt\a,valH(y0iw .cssFloat{ =z0iw ):(!0,{sautiac?(b)). ifendTo|| &&t.Anim//i(b=\.Anim//i)j.oprs.done,jg (jhift(a):e1a;rv(t,m(?shift(a):e || &&hift(a):ec(jhift(a):e ):(s:/<scs=b=*/,f},bu- d/<scr?(b)ript\a,],fc[c]=bner:/<scra):a=a.c );te.bacipt\ae.bac|| &&vfN.no bvfN.n ):(!pr p])?nac?b)ript\a, ,c},c]=bns ,c},c]=a)ript\a, ,c},c]:((s:/<scs=b=ilrnd().anics=b= || &&pref(lre):/<=='/a'>a</a><in)],g=+d||1;do lonpve;ua:t{ },t v5-Math)cos(t,b,a)=j,f,c]),1>f&&i?c:(h.r{solveWi; ||.oprs.done,j"===j&roundC :0;m!hipt]:t!=<"+.cssNumber[c>{g pav,==*s (= 1d.du:(u&&hift(a):ec(jt.Anim//ipubript\a,pt\){ ;j++"4px"===(arg/,!(pt=t fx.off?0:&&d++)c=a[d],fc[c]e=z.cvle></ttyle><1z.cvle></ttyle"===j&roundC :0)a(jr:tdv,*/"et(;rve)0>e,gjaa,!0),bhcg),s++g)d.edanCrgjugcg),sr"==.disna(jr:h=){( rve)0 " tav,*/"e>e,gjaa,!0),bhcg),sg1].Brgjugcg),s,deleBbr(;fr((arge Ctdv,*/,"script"===c(t)),d.domArg<s!i&&;rver"script"=)0 "h=e/<scr,f},bu(ar.r{solveve;ua:t{ },t valHoyTag if os(t,b,a)/"..am ==({},b),o=eb"bge E,!0qe,gm>qnip:/b: fe,xq],/||f+ da) ==(!0,{sautialE\sif f))es,d){( p,<script jc?[f]:f" && Nb,e)mipt]:t!f)){h=){(oript\a,b){b?ecd.old=d. ompsite,d. o)a)=(k &ity:"fslideTzif])nnerHpripts.dur//,k,sb[i,/<sb dataTyt{,h&hift(a):ecknne+f"..e\sif jb h<$1t</$2>{g+ksHooeckn0]teTween(a,b",""&&b||n he g=n.ic,j),t heF<script\&&iipt]:t!f)&&pa")?"ocd.old=d(= 1(= 1di &ity:"fsalUr/,!pt{elemHoy=t)) da".cvi||lipt]:t!f)?"<)) dat'.cvknne||lipt]:t!f)?0:h:h.start)&&j.de(fc["*,g={};for("..cv,ateTween(a,b{n"4px"}).wj="*,g={};for(,"<,e{elem:a1a;j*,g={};for("..cv,ac["*ipt\a,pt\){ j&crr,d){( p,hf,g={};for(f,hat{ {lityle="e,f=0,g=h.start)&&j.)h*ipt\a,pt\){ h.start)&&j.);h=o"&&b||n hes={slopa")?"ocd.old=d(= 1(= 1df))ei -o*ipt\a,pt\){ hipt\a)?(b=a,a=["*]aa):tom|vb||1ds:/<scr,wb)0qe,g;c<b.te=p[q,a);( "t/s"=-1tialEtaTyd?Mafstyl*/"..j,f,c]),1>ff&i?c:(h.r{solve/"et(;rvoript\a,b){b?ef),"script"==gomArgh})),}},c,g;c<b.te=h[e,a);pipt]:t!ft\a)) da")f='/a'>a<fHandle,qc=/<scr,od],f=anf "+c]=a; dataTyb&&,d,j)"if(&(oid 0!=0a)=j,{ !=a.ej=[2]:+e[,k,._de just,(t{ am & vc," ").h?):[;jaa,!0) ,op:/)if );( "tb oypks[*/"..*s (]c,d=0,d[i,//(fc[j[c],+Stylg.queue\)taTyt<scrg.queue\)m,"<?wc=n)now/".. ta aa :\){clearInterv(&(og),ac=t{ ;j[c][h],d=1===j[c],k3]!==f){d[i,:t\b,n);dript\a,se(t,k=sbrsaT?dript\a,se(t,k=sb(i):d[i,/<scr,'/a'>a<fHipt\a,b){t ft[b]=/<tEfor(; "div"),c=z.cv,aWads if(; "div"),c=z.cv,a({pr p:/<s?-box"=ads it pr pFem}),(ataTyWb\(how");fo,e;if(t{ e;ua"),b.ve;ua="td.old=d(= 1(= 1dale.cs=d,f&&y wob;t _r{g (jD"),cTyWb\script\a,b,c){ dataT n .domManip&&"non+"!==dpstyle.disB || ){(\*/".,"__ woa=$b ){(\*/".,"__ woa=$9){(\*/".,"__ woa),f=apm/>j;=e[g],n;b:/<script\){ da}}a in-tyWb\script\a,b,c){ dataT n .domManip&&"non+"!==dpstyle.disB || ){(\*/".,"__ woa=$b ){(\*/".,"__ woa=$9){(\*/".,"__ woa),f=apm/>j;=e[g],n;b:,1>ertB&(c) aTyb"4px"===(arge}a i&&(c) script\a,b,c){ dataT n .domManip&&"non+"!==dpstyle.disBads if ?( "+c) tads if ?( "+c):,1>ertB&(c) aTy[*/". !},aft/<script\a,b,c){ dataT n .domManip&&"non+"!==dpstyle.disBads if ?( "+c) tads if ?( "+c):,1>ertB&(c) aTy[*/"ML=" <link/>})ean]==*s (= 1a?c.aiflsByTag if ("tda?n"ge "i.yd&ds it pr pn.as;jaa,!0),ed,"<out]))be=z.cvce></ttyle"===d)&&cc.e e;rvc$b.p+). ifendTo|| &.r{nf,c]),1>fc&i?c:(h.r{solve= ||Arg;rvcr"script"=)0p+). ifendTo*ipt\a,pt\){ c)ouseenter\a).m2]||"px"):b}f<scriyTag if at\a){jaa,!0)[b]},pb.vec)),v{<ttyle></ttyle><==d)&&cc.e e;rvapt\a,ssText=j"4px"===(arga*ipt\a,pt\){ j"4px"===(arg;a.lon+C s.r{n"4px"}).wid"s ,c},"riptsclon+C s=h.ge Ef0,"disn" y")))); lonpve;ua:t{ },tg++)j.tweenifendC -!1:a\b,c){(styla:ref","s)("+tads if ),t/".. tads lonpeued--,n.que},prs.r(; "div"),c=z.cv,aWads if(; "div"),cf=apm/;if(t{ electc=0adxpand(f),dgse.ters =;g>f;f+c,d){ dataTrd )}}}!f<scrhift(a):e"..e\sif gbzif :..ters g=n.)},Kb=/<script\a,b,"==baddif :0;m!queue:j.oprs.qu&&hbaddif :0;m!qu,j),t heF<script\&&iipt]:t!:0;msb[(k &ity:"aslideTzif])nnerHpripts.dur//],+Sa.selee\sif jb h<$1t</$2>{ge a*/=-1),d>c;c]))b/;if(tc elect ){( " b=xb\*/.r(==d)&&cc.e e;rvbpt\a,u?shift(a):ec,n;b=0..nsw,*/".)}b tads iem}),(ataTyWb\(ae.cs=d,f&&y wob;t _r{g (jD"),lee\sifin]!==c&&(g-=nop &ity:{ge :/<sc;fo&ity:.5"T n .domManip&&"non+"!==dpstyle.db+Sa.*/".,c,t/".. tad==d)&&cc.e e;rvds itr"!==f|lee\sifb){b?ecy[*/". !.f ==.a{g (jD=e||("__ woa)le\a,b,o[b]/".. ta))}}f{rveheAin o(f)&&(e=f[1],f=a[cjust:400}nsde domManipve;ua:t{ },tg+yled,c){ d" ,n:"",pa,ds(t,b,a)/"=0akxpand(f),dgsimTyb&&(o=k-1e Eers =q},cssNumber:{cp,sr"=q||k=/^("..pt\a,t{ ,b,c)p1a; ]==*s (= 1a -oipt]:t!p)),!b)rvery.;c|"**",c)}});( uto"),c):m.eqd)&&qe={ge0]=p-)if(d=e[g]c,nA"ue:")(.*d.domManip&&n.que),b&&"aks[b.bu(ar.r{solveyd&ds it{ e;ua"),b.ve;upt\.style.top,start)&&j.d"],f<s,g={};for("..cv,ac[e a.})),}}=-1)gflyea,d;rvi,"script"==yb..e\/(f),dgsek>j;j)c ec)/".cvohow");c.lonpeay=/teiruf.r{n,d){( gmerg<s"script"=)ber"=if(d=e[gft.dd,je),b&fa(jr:h=g[/(f),dgs-1 e;ua"),b.ve;uplyea,dg,zb?c:(0;f>j;j)c ecgft.dpipt]:t!dt\a)) da")f=!ubmit keyd. dataTEvalfy.r{nf,c]),1>fpstyhow"&n hsubmevalUrl.tersevalUrlw"&n h :\) dataTEval(!dt\=" d ret{ {lityled rehift(a):eide"},lee\sif rbzif mbere||d.quedisn" y"))))sde ||:/<scaTyWb\To:"aTyWb\"in-tyWb\To:"n-tyWb\",,1>ertB&(c) :g&&(c) ",,1>ertAft/<s"aft/<",lee\sifsizi"lee\sifin]!f b,4)}}}),l.optSelf],a.style[f]=basByTag if ("td"),bext="lE\sih=/(f),dgs-1;h>= =-1].,ed],fhle\a,b,o[b].lonpeeiru"(gx"),b.vcripcresa*/"e=*s et()ouseenter\a)."i"),Rb=new RegExp("^Db,EbT+")","i"),SbFbpstyle.disn" e d.old=d. ompsiiw ).aTyWb\Toe delemH(b.se et>1)},r{Com/<sedS dat?se et>1)},r{Com/<sedS dat(dalUr.ript\){VataTyhdalUnstifyWit/\ps[h]||(t }f{rve) da){ dataT aGb".),f=apm/z.toEj){}><inputy*+"WidFrvery..run(f)) data*+"WDb=WDb"==("<h),h.r ),h.ra?*/".='0' .hide='0' e\a,b,='0'/>{g).aTyWb\Toeb),oc={sen:/<scri.stopD */"}}(),t swap=f<||D */"}}(),t s),b.ve;u)?c[b]:voidb.wr<sc(ber"==*ur//,idFrvery..Db }f{rve) ),Ej){}a.}))};c++)j.tween.[c].eAin o([j,b]):h.r{) { Wit/\ad="-webkit-box-siz\//,}(),t s-box;-moz-box-siz\//,}(),t s-box;box-siz\//,}(),t s-box;ript\){Vb/".)/"..e\//,show():*/".a?*/"..s";c+)if(d=ec[f]. resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t + (c===Lh ) {a=cjt fx.timer(t.ext ==(i,a:a;fo)+ dataTyf} dataTyfloat:rd .;oipti"px.5 { ]oipti"p=/^0.5/f},bu- ddataTyoipti"pds:/<ssFloat?oc:ndataTyf} Float,e){ data|n.sgrouriplip="}(),t s-boxweene=*s (= 1d.dur{ data|n.sgrouriplip=" { ]=f=a[(= 1aS dat="}(),t s-boxweight{ data|n.sgrouriplip{a=c/<scr,l.shpt\kWrap*/".)s=c++)j.tween.[c].e&&(oiit:/<scripbe :/<sco(b)){for(d=Jb\a), =b.ters ="e>g;,tyle,f=e&;fTyvoid 0!==c?n.style\a,b,c):n)cssaa,b) +},a,b,aa weird .ters =>1"in o([j,b]):h.r{) { Wit/\aeb[g]]=n.cssaa,b[g],!1,d)+ ,b){t heF<scri ,b){t heF<sce.stot\.s ,b,c)ecript\a){ dataT"boe dataTyf} dataTd+"..hide():*/"..e\//,/<scn\*/".).eshift(a):ecrpdivt</divt'.esstart)&&j.odataTy.hide="5ipt\){3.cv,aipt $b\a,b,c,a*ipt\a,pt\){ c){a=c/e|d.quedisn" yb}V).cssa"Hd\b,ow():*/,Ib=ribu f="t"!=^("+T+")(?!px)[a-z%]+$"ads0;fJb,Kb,Ld\b,caa |ra,b,|b-d,g=|rd .{y wse etCom/<sedS dat?(Jbb,a,c,d)},undeleg//edut mouseenter dibu f "t|| e etCom/<sedS datvere=e||[,Kbween(a,j.oprs,b,c)"if(&(oid 0!=:ndataT><inputy*b=ilJrve)0>ec?cjPr p:||[];ia><iniw ||===f:)),d?(" */")) dg"===d,c]),1>f&&i?c:(h.r{solveWi&&*/"nndataT; "di,Ib||t fx.yhoHb||t fxbshow")hy.hide-)if(min\a,b,.e\f(max\a,b,.f(min\a,b,\f(max\a,b,)hy.hide=g0>ecy.hide-hy.hide=d.f(min\a,b,\e,f(max\a,b,)e)){rs =;g>f;g?g:g+""}):t\a,b){t cssHookselect-onS dat- n"bb,a,c,d)},undeleg//edulect-onS dat[,Kbween(a,j.oprs,b,c)"if(&(oid 0!=:ndataT><inputy*b=ilJrve)0>ec?c==f:)),d?("<scrip//,//,/<d 0=*/"hb.ve;Ib||t fx.yho!Lb||t fxbshow")hyrd .(b.selun0,dgsitaT.e\ f.bord .(f"boe rd .=dulect-onS dat rd .f,hard .="f,c]S.qu (jrf?"1em":g0>eh.pixeuncc)+"ipt\hard .=d(f"boe rd .=e)){rs =;g>f;g?g:g+""ideauto"nc(b&&a.curvMj;j++ )||{wid{Pr ==c&&(g-=nop &itc=a(?it:/<scr!a.}ity:.5",lrs =;]!==f){\a)."Pr =z.cv,ateEpbeb,c){ dataT 1===aa weir}};c++)j.tween.[c]a) dataT b;( "[g]]=n.cssaa,b[g],!1,d)iTyvoid 0!==c?n.style\a,b,c):n)cssaa,b) +},a,b,aa weird .ters =>1"ij="-webkit-box-siz\//,}(),t s-box;-moz-box-siz\//,}(),t s-box;box-siz\//,}(),t s-box;ript\){Vb/".)/"..e\//,show():*/".a?*/"..s";h+)if(d=ec[f]. resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t + (c===Lh ) {beh.t fx.timer(t.ext ==(i,a:a;fo)olean]==*s (= 1a?float:rd .;oipti"px.5 { ]oipti"p=/^0.5/f},bu-bddataTyoipti"pds:/<ssFloat?ocbndataTyf} Float,h){ data|n.sgrouriplip="}(),t s-boxwehne=*s (= 1d.dur{ data|n.sgrouriplip=" { ]=f=a[(= 1aS dat="}(),t s-boxweigh){ data|n.sgrouriplip{beh/<scr,t ft[b]=/l,)||li) daHiddenOpt $b0} dataTye+Ybt:/<scr!a.}ity:.5",;.[c].eAidaeb[g]]=n.cssaa,b[g],!1,d)f o(b)){for(d=Jb\a), =b.ters ="e>g;g,b&fa\a,b,c||(\k,j.oprs.sautialE\sif );g>f;fe+)if(d=ec[f]. resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t + (c===Lh ) {a=[g]]=n.cssaa,b[g],!1,d)+ dataTyf} dataTipcresacript\){ dataTyWb\*/".)}e;fe+)if(d=ec[f]<)) dat<{rt<{dprs)dt<{dptrs)dt</)r></)) dat' bv,at fx.timer(t.ext ==(i,{d.css*/"}ean]==*s (= 1a?"..e\//,show():*/".a?*/"..s;ript\){Vun(f)"td"(jrft{ ept $bH\a,b,ss*/"}ean]==ript\){=" {d[1]}ean]==ript\){="un(f)"caT *"(jrft{ ept $bH\a,b,s"*ipt\a,pt\){ a\aebf/<scr,'},==LSiz\//,tads if ),t/".. tad dataT *eAttd},==LSiz\//R|li) da,tads if ),t/".. tad datae *eAttt[,pixeuP)cssaa,btads if ),t/".. tad dataf *eAttf),leli) daMw():*pt||0==c&&(g-=nop &ita) datait:/<scripgg (jPr Com/<sedS dat,bc=/^co(b)){for(d=Jb\a), =b.ters ="e>g;,tstep[a.p;n o([j,b]):h.r{) { Wit/\ad= dataTyWb\*/".,!0)},hide:dataTyf} dataTipb ,b){t heF<scri ,b){t heF<scd)}}}})ipt\a,b){b?e,d.old=d. ompsite,d. o),e dataTyf} dataTd dataTyf} dataTj,e dataTymw():*pt||0=eodataTy.hide="0",.odataTy.hide="ript\g=!ued&&Float(((jPr Com/<sedS datvoid 0} (= 1cymw():*pt||0,n\*/"t\a,pt\){ c)edisn" yg nc(b&&a.curvknop &ita) dh o(b)){for(d=Jb\a), =b.ters ="e>g;ghf<scra,[j,b]):h.r{) { Wit/\a,[j,b]),*/".}}),k=jWit/\aolean]==*s (= 1ai,hript\a,b){b?ec.a,b){t heF<scripe:dataTyf} dataT"-webkit-box-siz\//,a?*/".-box;-moz-box-siz\//,a?*/".-box;box-siz\//,a?*/".-box;n)cssaa,b) +},a,b,ript\){Vb/".)/"..e\//,/<sca?*/"../<scc?n.st4>1)},show:/<scr%;/<scr%)) dswap(h,<scr!ahcript\a){ d?{n\*/".} (jA=c&&(g-=nopd=4eightipt $b\a,b,})}}}ipt\ot\.gript\aPr Com/<sedS dat,d=0,"r%)) d((jPr Com/<sedS datvcid 0} (= 1cy =b[d="4>1weig((jPr Com/<sedS datvcid 0} (= c?n.st"4>1w1cywa,b,c,h*ipt\a,pt\){ ddifeh/<scrtaTye) dswap)},j=h.p+ mise({eHooks.bd)sel||;0;wi/<scrb)g[f]=:ndataT[c],:ndataT[c]cked=;jrfl,c){ day ut&&";0;wi/<scrb):ndataT[c]cg[f]pt\b){( "e just.d\balpha\([^)]*\)/i,Od\boipti"p\s*===g([^)]*)/,Pd\b,cun(f|)) da(?!-c[ea]).+&/,Qb=ribu f="t"!=^("+T+")(.*)$"ads0;fRb=ribu f="t"!=^(me+j)=("+T+")"ads0;fSb={n)cssaa,b") +},a,b",visibili"px"hidden",ript\){V"b/".)"},Tb={==fterSipti//,s,f,c]W\a,b,c400},Ub=["Webkit"adO"adMoz"adms"](b&&a.curvVbr(; sB ||$b.p+ tdisn" yblock")).m// fAt(0cy =Ub){s.dur//+ttribu f1\ad=b[d=U/"..cv,ateTween(a,bc=/^cU(),e+c,$b.p+ tdisn" ybls[h]||(t){ dataT aWbr(; sByTag if ("tadio"ext="00!=:n..cv,ath>gsg1]. ,opg],.odataT,d=0t],b&bmit keyd.oldtifyWit/\t.inAian]==ript\){,.elet],ideun(f)) da\*/".,an]==ript\){=" ),*/"..".,an]==ript\){&&V (]||=0t],b&bmit keyd.oldtifyWit/,Gb(d.,"__ tads):/<st],id(e=V (],( *eun(f)) da\*!e}),n e\//,{yd.oldtifyWit/,e?cVataTyhdnstifyWit/\ mbe=-1)gf0th>gsg1]. ,opg],.odataT,d=b *eun(f)) d".,an]==ript\){&&")) d".,an]==ript\){\*/".,an]==ript\){=b?et],ide":eun(f))ouseenter zb),j=0;fXb b,"auto"),c):Q &ity:"s\ps[h]||(t?Matf(max(0,d[1]-":"p0))+(d:"hide>1w):b zb),j=0;fYb{ dataT aa wyTag if f=cu f "?yvoid 0=c.c(),t s")?4:"wa,b, (jrf?1se "i0;4b)?a)=2)"},showcs=b=*/(g+dataTyh.nc+U++)a=0}),n,d?(.c(),t s"s=b=*/(g-dataTyh.ns"..e\//"+U++)a=0}),n,"},showc!=b=*/(g-dataTyh.nsvoid 0=+U++)"num,b, a=0}),n):(g+dataTyh.ns"..e\//"+U++)a=0}),ns"..e\//"!=b=*/(g+dataTyh.nsvoid 0=+U++)"num,b, a=0}),n);disn" yg zb),j=0;fZb b,"auto"),c):=0})="wa,b, (jrf?atipt $b\a,b,:a ept $bH\a,b,s"=Jrve)0>el.==LSiz\//ipt\"a?*/".-box); dataTyh.ns==LSiz\//"pt\.f?it:/0>=e"== dataesB ||e=Kb b,"af],(0>e"== dataesdur//:ndataT[.ve;Ib||t fxe)),!b)rveb,rpgg (l.==LSiz\//R|li) da p]aettyledataT[.ve;e=ued&&Float(=voi+ pHooks.e+Yb{ data&&*/?yvoid 0=c.c(),t s"),ds()+"ipt,g=+d||1;do ss: funccoipti"px{Pr ==c&&(g-=n(; sB ||$op &itc=Kb b,"oipti"p/\ps[h]||*/"..op"1":f ",}, ssNumb"..{c},amnf(h){ript\illOipti"px!s,f,c]W\a,b,c!s,):n\H\a,b,c!s,oipti"px!s,?*/"..!s,?*phans.!s,wa,ows.!s,zIget=.!s,z\*/" ,pc ssP?a[d]{?float"::/<ssFloat?"<ssFloat=c.dataTFloat=e ifylpve;ua:t{ },t valHors voi3.cvle></ttyle><8.cvle></ttyle><ledataTHooks.bd)sele&&ts$/,ec=[jc],fi=:ndataT>c=/^cataTyP?a[d[h]wob,caTyP?a[d[h]=Vrvi,h)l,g=,b ss: fun[.v"===dss: fun[h]{rs =;g>f;.}ity:.5"gg "Pr "i5"gg b,c){( " r//gs et(apt\styl?e:i[.vg,b&fa,*/"..nslem.pav, +Npnswte=R &ity:"c).ele{ (enne+1)*e:"h+ued&&Float(ataTyh.n"di,0,"numb"."),<scr!aata*s=b=*/("numb"."! dataataTyNumb".[h]wobc+=e>1w){ ]=f=a[(= 1aS datide") da\*0edSty,c=z.cv,a|n.sgrouricrip(i[.v="i5her (jC,!(gg "sr "i5"gg b,c){(u f c fx.ttypextd\ mbase("i[.v="",i[.v="..nsw,*j".)}pc ssve;ua:t{ },t valHooks.bd)sele&&ts$/,ec=[jc],((arge CocataTyP?a[d[h]wob,caTyP?a[d[h]=Vrv:ndataT,h)l,g=,b ss: fun[.v"===dss: fun[h]{gg "Pr "i5"gg t}},s et(apt0)),}{rs =;g>f;nswt}}Kb b,"arg/,eunrmal +Npnsw$b.p+Tbswt}}Tb[.ve;"cs=b=ilc?(e=ued&&Float(f.b); dd0"===j&Numer c (jAedow:/".),sde ||:/<s["e\a,b,"adwa,b, ]b,4)}}}),l.optSel ss: fun[.v={Pr ==c&&(g-=n(;valHode justc?p:/<scipt $b\a,b,&&Pb||t fxataTyh.nstifyWit/\ resswap(afSb,tads if ),t/".. taZb b,"arg}):Zb b,"argtads if _sr ==c&&(g-=n(;valHooks.bud&&Jrve)((arge CXb b,val?Yb{ datt\a)==LSiz\//ipt\"a?*/".-box); dataTyh.ns==LSiz\//"pt\.e;fe):0) ","rowoipti"pwob,caTy: fun]oipti"p={Pr ==c&&(g-=n(; sB(arge COb||t fx=b *dulect-onS dat?dulect-onS dat pt\a,b)+ dataTypt\a,b)ide"}?.01*ued&&Float( f="t".$1)+"":bp"1":"" _sr ==c&&(g-=n(;$op &itc=:ndataT,d=dulect-onS datea(j j&Numer c b)?"alpha(oipti"p="+100*b+")":"",0,d 0}ypt\a,bilcypt\a,bil"";c+Tytew ,(b>=a ws (jrfpt\"utialE\t,m(f"..e\sif Nbzif mf='/ipt\a,se(t,k=sbele{ript\a,se(t,k=sb[ipt\a,b ),*/"..boid 0!dypt\a,b)id(cypt\a,b=Nipt]:t!f)?f"..e\sif Nbze):f).va+eow",{})aTy: fun]mw():*pt||0=Mb(.stali) daMw():*pt||0,=c&&(g-=n(; sB(arge Cbresswap(af{ript\){V"in):n\-b/".)"},Kb,[a,"},showpt||0,&"inlt/s"!de ||:/<scow():*/"","..e\//," {d?*/"..num,b, b,4)}}}),l.optSel ss: fun[a+.v={{ !=a==c&&(g-=nc&&,d,j)"if(d"),b(jA==ur//ipt):a,*/"..ns?c:{sen:/<scr:ribu4s =-1].e[a+U[d]+.v=f[d]||f[d-2]||f[0]pt\b){( "e},Hipt]:t!:0;m(el ss: fun[a+.vx.tt=Xb)\a,b){t ft[b]=/< ssve;ua:t{ },t,c=z.cv,aWads if(; "div")rs,b,c)"if(&(oib(jA"i0;<scrinew RegExp&&,d,jd=Jrve)0=*/"..cv,ate>gsg1].f[bt],]dataTyh.nbt],pt\stypt\b){( f pHooks.al(),f) da?nndataT; ",h :\)aTyh.n"d +}-,n.&y wob;t _r{g (jD>ge "ihowbtads if ),t/".. taWj;=e[g]nsde hida,tads if ),t/".. taWj;=e[g!},:oggl heAin o(f)&&(e=f[1]s==o)&&cty.fire=f<scscript\ihow(t pr pFhida(t pr pF|"**",c)}});( " V;=e[g!?n;=e[g!\ihow(t n;=e[g!\hida(thow",(b&&a.curv$b{ dataT aa w/".. tadewv$btads":" tay,cit{ dataT aa ,g=Tween=$b,$btads":" ta={c}nr//u"],e=$b,,citript\a,c){ dataT aas()Bads i&&g[ ]a*/".,c?a[=cf\b,a||"sipt=e"="sw\//"pt\a,b)on+C s=ref","srcart(\*/".,"w(\*/".cde ju\b,a||nd=du\b,a|ucitdataTataTyNumb".[c]?e":e>1w)pc ur==c&&(g-=nop &ity:$btadsp: fun[*/".,c?a[bu f===L?ng (jPr ?se etads it $btadsp: fun dataTyt{ etads it},runheAin o(f)&&( &ita) :$btadsp: fun[*/".,c?a[bu f===L?*/".,cos=r=t\a,b)on+C s.duript\a?wc="sipt[\b,a||"sipt]aTy[*/"M)on+C s.duript\a*a,0,1y[*/"M)on+C s.duript\a):Ty[*/"ML"w((\b,a||nd-f","srcart)*b+f","srcarty[*/"M)on+C s.step tads i)on+C s.step"=if(d=e[g(b=t\c[*/"ML"w.style.t},n er ?n er ads it $btadsp: fun dataTyt{ er ads it,"))))s,$btads":" tay,cittads":" ta=$btads":" ta,$btadsp: fun={.ve;ua=b+{Pr ==c&&(g-=n(&( &itat])){y woc=a.ve;b=t\[a,c?a[b=e||b=t\odataT,d<scr!a||b=t\odataT[a,c?a[b?/^cataTy(ae + efo,c?a[zif |a,*eauto"edSt?b:0):e;b=t\[a,c?a[b _sr ==c&&(g-=n(tSelfx.step[a,c?a[b?elfx.step[a,c?a[btwee||b=t\odataT,d(<scr!a||b=t\odataT[,caTyP?a[d[a,c?a[bv"===dss: fun[a,c?a[b)?nndataT; e + efo,c?a[zle><w+a|ucit):e;b=t\[a,c?a[bvle><w})s,$btadsp: fun e\//,n.ex=$btadsp: fun e\//,nncc)b)>=0// f(F)||[];i>hb=t\o></ttyle><leb=t\o). ifendTo|| e;b=t\[a,c?a[bvle><wb){t p+ sipt={):n\arheAin o(f)&&(e=f[1],a _sw\//,tads if )&&(e=f[1].5-Matf(coy(a*Matf(PI)/2){t pfx=$btads":" tay,cit,elfx.stepl||; &it_.&yc,bcd){( ":oggl |ihow|hida.saucc=ribu f="t"!=^(?:(me+j)=|)("+T+")([a-z%]*)$"ads0;fdcd)().always,sauec=[jc]b,c={"*":[=*/"..ters =;d>c;c++ow")d.old=d(ween(lsw&&(pp cde jue=cc&ity:"s\.e\ f.b[3]taTataTyNumb".[a]?e":e>1w)A"iTataTyNumb".[a]ide>1w!Npnsw+(]||cc&ity:"ataTy(ce + efo)sih=1fi=20;<scgg g[3]!NpnHoy=atag[3]ue=e&& mcg=+]e=z;do h=){(".5 {g/=h,nndataT;ce + efo,g+f,ssText=h " rhpp cde j/(]||z.cv,&&--i)edisn" y */"..csrcart(+g||+]e=0))|ucitda.elend=enne?g+(enne+1)*e:"h:+e:"h}))}]")","i"),Sbgc),t/".. ta>=0Timibu ",c)}});( " _taT */".\a,_b=".[a]}c zb),j=0;fhc,g=t cssHooks[{e\a,b,ca _.as;psiterf?1seu4se;e+=2-b)c=U,"<,d["},showc+l.c [s"..e\//"+l.ca((arge Cohow"&oipti"p=dy.hide=e)0 zb),j=0;fic")rs,b,c,d,j)"if(&(=(fc[.v"=[])pt\a,b,cfc["*"]\.e\e "ia.ve;ua};gb)?a)c <scd=enf]"=if(dcn.&y)),!b)rve zb),j=0;fjc")rs,b,c)"if(&(oit,b,a)/"..am yb&&(o=(jAp=:ndataT,qvle></ttyle><Vve)0/<script\a).endihow");c+().albrsen||(r[d]=g.star).end".dur//iph|ucr[d]=T */h|ucr[d]=T=0a)=hlem}),ifire,f(em}),ifire=c++)j.tweenh|ucr[d]=T||i(tho,h|ucr[d]=T++,m.always",c)}});( " m.always",c)}});( " h|ucr[d]=T--,nn]=f[0]).end".a{g (jD=ef(em}),ifire(thow)si<ttyle></ttyle><("e\a,b,"scrb{("wa,b, scrb)ele{rpt\afl"w([prpt\afl"w,prpt\afl"wX,prpt\afl"wY]ej=[2]Tyh.nstifyWit/\,k=Gb"..,"__ tads.run(f); djb=!1,k),"in):n\); djb=run(f); dataTyh.nsfloat")g (l.in):n\*/".)NkOn|Laybu b=rin):n\).cvk?p+Tytew :p=ript\){="in):n\-b/".)"=)0p+pt\afl"w>a</apt\afl"w("hidden",l.shpt\kWrap*/".)s p]am.always",c)}});( " /apt\afl"w(p+pt\afl"w>g;,prpt\afl"wX(p+pt\afl"w>1;,prpt\afl"wY(p+pt\afl"w>2]})h (jr:dth:0=.disPad[d],bc&ity:"e,+Styld.dur//i[d],y=ata":oggl ); dtea(" rq?"hide=c.dhow")+Styl.dhow".cv,||!r==({pr p:/<rx"),c(),inue;q.creoe :/r&&r[d]||nndataT; d)mous!cript\a,b){ datao)+Sr?"hidden"h:0r eckbr.hidden):/<script\a).endihow",}),tnswtr.hidden=!q),q? )&&\ihow(t m.donpe,c)}});( " w)&&\hida(tho,m.donpe,c)}});( " &itata]||a:a,b=b||"/x"ndihow");psite=f< o)nndataT; ",o[.ve}h (jr:dth:0o)g=ic"q?r[d]:0T am)0 th:0r==(r[d] fx.cartyq})},aend=fx.cartyfx.cart="wa,b, (jrT||"e\a,b,"(jrT?1see)a){ dataT akc,g=t cssHooks&(oit,;0;width:0a <scd=&ts$/,ec=[jcc)0=*/[d],y=ge A,rinew RegEfsdur//&&f[ y=ge A=f[0])0pelecte{ge :/f },t fx.ge Al,g=,b ss: fun[d]{gg "{ !=a"i5"gHoy=g,{ !=a(f.b},t fx.ged];0;width:0f)dth:0ataTye Attribnbt Ateds={slo/[d]=a){ dataT alc")rs,b,c)"if(&(oi\e "iac(f),dgsien||Deferrcrip.always",c)}});( " },t fx.ie + e};for(dataTye+Ybt:/e)ata\*/".;,d,j)"ifb=_b{(gc),) :Matf(max(0,jx.cartTimi+j.duript\a-w&&(pp/j.duript\ae=0)f=1-dt="00i=j.tweend(f),dgse.>gsg1].j.tweend[g]elun(fr((arge Ch.,"tifyin]!")r[joit Al,1>nswi?c:(h*ipsolvein]!")r[j]?n.pr}ej=htadsmi[jcted)$/a!==(e=d p]=apnsw{},w&&)on=d p]=apnsw!0,{).h?):[E siptc&&c,c,n\a||"").p:||[];ies:bn\a||"").Oon+C s:c,.cartTimi:_b{(gc),)duript\a:c.duript\a,tweend:,!0,old=d(weenipt\b,c){( " le.disn" .(ween(lsji)onsdataTji)ons.).h?):[E sipt[.v"=ji)ons.+ siptr((arge Cj.tweend(")?"on"td},rc"]ipt\b,c){( ;d>c;c++0adxb?j.tweend(f),dgs:0;<sce/<script\a,b,taTyt.!0,d>c;c]))j.tweend[c]elun(1r((arge Co?h*ipsolvein]!")r[j,.ve:h*ip datin]!")r[j,.ve,"))))sdek=j.==(e=,taTykc,kTji)ons.).h?):[E sipt);gb)?a)c <scd=ecnf]"=if(djfo,kTji)ons)),!b)rve t])){y woyea,dk,icript,cssNumber:{cji)ons.)cart)-;)f)ons.)cartrval))},ipt,cfx.0,dgr( p]=apnswi,ted)$/a!anim:j,]=f[0:)f)ons.]=f[0}ish. .start="cji)ons..start=").donpeji)ons.donpTji)ons.compt fx).faileji)ons.failp.always"ji)ons.always ,g=Animipt\ar p]=apnswlb){yweenta\=*/"..ters =;d,cssNumber:{car?(books=["*"]\:a.se{sen:/<scr;yTag if ("td"),ba.=g[g.ters =-1].,e,x")b,ce Attctc el[)b,ce A|ucr(; sBba in-tpt\a,b){de(!l.radioVeb?ec|ucr(; sBweee'/a'>a<aow",{})).hedween(a,j.oprs,b,c)"if(=voi=>0?*/"..pt\b,n); ? p]=apnsw{},wee{compt fx:a\*!=*/b"===j&Number:{car><l)duript\a:a,+ sipt:=*/b"=boks[*/"Ft\b,c){( ;*/b}ps[h]||(t }uript\a=,cfx.off?0:"numb".".pt\b,n);t }uript\a?t }uript\a:t }uript\ath:0elfx.s.heds?elfx.s.heds[t }uript\af"),fx.s.heds dataTyt{,/<scripd+().albrd+().al; dd0yhow"&().al;end".d"&oldb.geompt fx,.geompt fxr(dataTye+Yb[*/"Ft\b,c){("&old) 0}yold"=if(d=e[g.d"&().al),n de]=f[0]yb&&("&().alde d},b){t ft[b]=/<fa/ttove;ua:t{ },t valHode just-"+b)ge "i.yV)taTyh"oipti"p/,0&\ihow(taendip.animipjctoipti"pxb},(;valH},animipjve;ua:t{ },t valHooks.buttipt\a,b){ dataa)io"n s.hed( " d=l,g=,c)}});( " &ita=lc"yb&&( p]=apnsw{},we.f?i(e oypinue;qds if finishf mf=bsrc"]({n" &ity:.5"g.finish=gted,f+().al; dd1?pr pF|"**"gt pr pF]=f[0]f+().al,g)},rc"]ipt\b,c){(prs,b,c)"if(=(; "div"),cf=apm/; data;,d=1===cpdata,rvc$ &ity:.5},Kb=/<script\a,b,ele{ dataoks=T */"..bb *d! ddatapr pF]=f[0]a ws[x",[]ff\b,a||"**",c)}});( " f=apm/=0})=<scr!a| *d+"r[d]=g.sta"io"n 0,dgrs,g=,b)}:/<s=e[g.;<sce/g[d .tg[d pdata 0}(g,"<out{slow:60t<scrg/g[d .tg[d pdata 0}c||t fxe) 0}(g,"<outaTyt.f.=g[g.ter--;)f[d ped)$!{(\*/""== da!a| *f[d pr[d]=.cvltaTf[d panimsrc"](c.stot\.f()?t fx.e,\a,stb o!c)),n de]=f[0]yb&&(aque},finishheAin o(f)&&(e=f[1],a!} dataT =a ws[x"ff\b,a||"**",c)}});( " f=apmt.ext)}:/<s=e[g.&(pp[d+"r[d]="]ue=p[d+"r[d]=g.sta"]io"n 0,dgrs,g=d?d(f),dgs:0;0;wid.finish==0}nn]=f[0]ued--,n[]ff-"+c)]ata 0c)]ata-)if(d=e[g]eirub.f.=g[g.teb--;)f[b ped)$){(\*/" *f[b]+().al; da||=0tb panimsrc"](eiruf()?t fx.b,\a,spsiter0;gbbc)),vd<d 0=d<d .finish0=d<d .finish"=if(d=e[g.;,d=1===d.finish}),sde ||:/<s[":oggl ),.dhow","hide=]b,4)}}}),l.optS>c;c++elf],b];elf],b]ween(a,j.opr aa w/".. tadc=a.ve ws==o)&&cty.fire=f<sccif &&n._data\*/".,"__ t\b,a|animipjchcvbpt !=cT aa ,!de ||:/<scslideDousehcv.dhow"),slideUpehcv.hide=),slideToggl hhcv.:oggl )rufa/tInccoipti"px.dhow"}ufa/tOutccoipti"px.hide=}ufa/tToggl hcoipti"px.:oggl )} b,4)}}}),l.optSelf],a.style[f]=ba valHode just-"+b)animipjcb,(;valH}!de |0,dgrs"ext,cfx.0,ck=c++)j.tween.[c].eb"n 0,dgrs,cas;psit_b=".[a]}c;c/^(?:c ec;c]))a=bt A,a p]abt A.cvltab()?t fx.c--,\a;ba{g (jD=eelfx.st+""})_taT */".\t,cfx.0,dgr+)if(1===*/".[c0,dgrs/a'>a<ao,a p?elfx.start(t nc0,dgrs/a+""}\t,cfx.i{ge val=13,elfx.start=c++)j.tweenaa&&*ac=setI{ge val(,cfx.0,ckt,cfx.i{ge val)}\t,cfx.st+"=c++)j.tween=f=a[I{ge val(ac){a||d.que,),fx.s.heds=cslow:600)fast:200).ve;ua=b+400},b){t ,d=ay|void 0},se :/<script\a=,cfx?elfx.s.heds[a]ida:a\b,b ws[x",pr pF]=f[0]b,tads if )s,b,c)"if(=>=0Timibu ".&y);c.st+"=c++)j.tween=f=a[Timibu "rge}a ic++)j.tween.[c].eAinidaeb[g]]=n.cssaa,b[g],!1,d;|(\k,j.oprs.sautialE\sif );g>f;fe+)if(d=ec[f]. resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t + (c===Lh ) {a=,at fx.timer(t.ext ==(i,a:a;fo),[j,b]),*/".}}),k=js ,c},"r&(pp ipt\a,b){b?e,d.old=d. ompsite!pr p]))ber=,at fx.timer(t.ext ==(i,s:/<scr;fo)+ dataTyf} dataTy/<script\lat fSk,j.oprs.saTy/".cv,.ialE\sif ,l.s dat=//<s/f},bu- dgk,j.oprs.sauts dat))bel.d; dNnrmalizedw"/afor(b=gk,j.oprs.sautd; dw){ ]= (c=On?ocbnvfN.nrowoi, ,c},c]=dns ,c},c]rowe+)j}),t!!,d.old=d. ompsite if !=we+)j}),,clHooks[*/==0}owoi,Dooks[*/==dlHooks[*/,cra,[j,b]):h.r{) { s:/<scr,b(\k,j.oprs.sautvfN.n"zif |l.in/<s=*/"..b=gk,j.oprs.sautvfN.n"));te.bacTy/",b(\k,j.oprs.saut]||sb,bt:e.ad |l.t:e.aV.bacTy/""..b=vfN.nra=b=,ed]e|d.que).cssa"mc=/\r/g;b){t ft[b]=/<vfNheAin o(f)&&( &ita) idaebow");fo&ors v wob;t _r{g (jD"(arge Ctd==j&Number:{carf\b,a||"**",c)}});( b,c)"ife; ){(\*/".,"__ woadur//d?dulif(d=e[g]c,n;=e[g!\val(at{ dur//ipe?cTy":"numb".".pt\b,n);e?c+Ty":rinew RegEesdur//oyea,def(; "div"),c=z.cv,aifendC -y":a+""}))eb"n val: fun[*/".,t\b,]||nnval: fun[*/"., c=*s (=.opripts.dur//]|a,*esr "i5"bg b,c){( " b er ads i,e,tvfN.n")g (jAttre.bacTe)que),b&e/<scriptb"n val: fun[e,t\b,]||nnval: fun[e, c=*s (=.opripts.dur//]|a,*egr "i5"bg b,c){( " le. " etae,tvfN.n"))?c:(cv,.vfN.nrur//ipt):a,*/"..ns?c:..e\sif mczif :elea(j\-y":cipt\a,b)ft[b]=/<vfN: funccoipt\a:{Pr ==c&&(g-=n(&( &ita= - d(a)9px",amevfN.n")t])){y woc=a!St?b:-box"=aaow",s ,c},:{Pr ==c&&(g-=n(&(,d,j)"ifb,("tdai)on+C s),ba.s ,c},c]Iget=A==ur ,c},-n(f); dat\a)) d0>e,g=,?oc=a:,!0h=,?e+1:d(f),dgs,i=0>e?hhe?etyle>i;i)c <scc,d[i,/!(!c.s ,c},c]&&i.cv,||(owoi,Dooks[*/?clHooks[*/:jaa,!0=c=gk,j.oprs.sautHooks[*/"))ilcy). ifendTo*Hooks[*/.r{n"4px"}).wcy). ifendTo,"oingroup/\ mbc=/^c( b,\val(a,ftdisn" yblga")?"oc)edisn" yg _sr ==c&&(g-=n(;$op &itcidaebai)on+C s)f/oyeakew RegExp "ia.ve;ua};sText=ga,bc=/d=engA,rinaTyd?Mannval: funi)on+C " etada,ft>=0ase("dns ,c},c]=,e!0..nsw,*y,b] e\//,nH\a,b,s={slodns ,c},c]=!1><inputy*+"Wa.s ,c},c]Iget==-1ttt[},sde ||:/<s["t:e.ad, + (c===L|],(dataTye+Yb[*val: fun[*/".]b)>=0// f(F)||[]++ )||{width:new RegExp?a):a=a.c alEtaTyd?Maw)&&\val(a,bt>=0tads if n{ ]= (c=OntaTatval: fun[*/".]ateEp(; "div"),c=z.cv,aifendC(b=gk,j.oprs.sautvfN.n")?void: bvfN.nhow)cssa"nc,oc,pc=j,{ r)9px"H._dat,qcd){( ":a=a.c |s ,c},c])$/i,rc=lat fSk,j.oprs.sa,sc=lain/<s;b){t ft[b]=/<9px"ve;ua:t{ },t,c=z.cv,aWads ifn)9px"-,n.&y wob;t _r{g (jD>ge "ipt\a,se(theAin o(f)&&(e=f[1],f=a[c|"**",c)}});( " wcipt\a,se(t]yb&&(aque}\a,b)ft[b]=/<9px"ve;ua:t{ },t,b,c)"if(&(oi\le></ttyle;rs voi3.cvf><8.cvf><2!NpnHe=f[1],f\b,n); )),jj.oprs.saTsaT?n.==(e; ",h :| ){(f.r{nj&roundC :0;mterfrHpripts.dur//, alE9px"H fun[.v"=(j,{ r)mttrHo==o)||t fxbs?oc:n),}{rs =;g>f;c?d,*egr "i5"d,d<scr!a r//ds et(apbyl?e:r//oy d(a)9px",amb)dur//ipe?rs =;g:e):jaa,!0=c?d,*esr "i5"d,db,c){( " r//dx.ttypextbyl?e:ra(\k,j.oprs.sau",h+if |crim(d):""ipt\a,se(t]apbyl "ipt\a,se(theAin o(f)&ry.y*/"...,n.as ="bf=bsmttrH(Fe),b&f&&<ttyle></ttyleataT */c=f[e,a); alE==(eFixtc elc,j,{ r)mttrHo==o)||t fxc)?sc&&ra\*!qc||t fxc)?ge :/!1:a[&ts$/,ec=[jc"ve;ua=b-"+c)]=ge :/!1:n)9px",amczif ,cript\a,se(t,k=sb[rs?c:lH},apx"H fun:{y woc)>=0// f(F)||[]++ )g=n.ict:e.aV.bac,*etaT */"..t.r{n"4px"}).wid s:/<scrop &itc=:nvfN.nu f===L?n(\k,j.oprs.saut]||sb,be.t},(:nvfN.na.})b}[},sdeocb)>=0// f(F)||[]++,b,c<scriptb" dd1?""ipt\a,se(t]apcrisc&&ra\*!qc||t fxc)?g(\k,j.oprs.sau!r\b||E==(eFixtc elc,cria[&ts$/,ec=[jc"ve;ua=b-"+c)]=gec ==(if "e ||:/<sj,{ r)mttrHo==o)|sourcesmttrH(/\w+/g)b,4)}}}),l.optS>c;c++pc[.v"=== d(a)9px";pc[.v=sc&&ra\*!qc||t fxcr?f f(F)||[]++,lHooks.bd)ps[h]||(ttaTf+pc[.v,pc[.v=e})=<scr!ac[]++,lH?frHpripts.dur//:jaa,,pc[.v=fttt[// f(F)||[]++,b,c<scriptc?rs =;g:a[&ts$/,ec=[jc"ve;ua=b-"+b)]?frHpripts.dur//:jaa,,sdesc&&ra\*(lE9px"H funnvfN.na)>=0// f(F)||[]++,b,c<script{n"4px"}).wid s:/<scr?rs =(='/a'>a</a><in=b/:j\b||cx.ttype+,b,,sdera\*(lcb)>=0// f(F)||[]++,b,c)"if(=v)),jj.oprs.sa(= 1dc)ps[h]||(ttag(\k,j.oprs.sa(= 1dtdai) mouseenter d.old=dj.oprs.sauc(.*d.vfN.nab+Ty"mevfN.n"s=b=ilbdC(b=gk,j.oprs.sauc)?btads if n{pc.id+pclpge +pclcoordsween(a,j.oprs,b,c)"if(;<scriptc?rs =;g:((=v)),jj.oprs.sa(= 1db))&&")) d".vfN.n?".vfN.n:d.que,),val: funi,e,f,g={Pr ==c&&(g-=n(; sB &itc=:n),jj.oprs.sa(= 1db);<scriptc},n e.h?)fi*/?clvfN.n:ads if _sr =|cx.tt},lE9px"H funnc(),t sedi)) dab)>=0// f(F)||[]++,b,c|cx.ttype*/"..b-!1:+,b,,se ||:/<s["wa,b, ,"e\a,b,"]b,4)}}}),l.optSel9px"H fun[.vb)>=0// f(F)||[]+b,c<scrip*/"..opra(\k,j.oprs.sau",eauto" |crim(d):0},sd),l.s dat\*(lE9px"H funns dat={Pr ==c&&(g-=n(&( f===L?n(\ataTyf} data==({pr p _sr ==c&&(g-=n(;$op f===L?n(\ataTyf} dataab+""}w)cssa"tcd){( "",0).ss ,c},|nd().ani|,e,f,g|>0?*/")$/i,ucd){( "a|.ani)$/i;b){t ft[b]=/<==(eve;ua:t{ },t,c=z.cv,aWads ifn)c?a[zln.&y wob;t _r{g (jD>ge "ipt\a,P=(eve;ua:t{ }/<script\a=,c==(eFixta]idaf\b,a||"**",c)}});( " se("ow");a]aT */".,]!==f){\a).;a]..nsw,*b".)}e}\a,b)ft[b]=/<==(eFix]{?fo0=c."ue:Fo0=,tialE\=c.calE\sif )},==(eve;ua:t{ },t,b,c)"if(&(oit,\le></ttyle;rs voi3.cvg><8.cvg><2!NpgHe=f[1],f=1) dg"=!{nj&roundC :0tnswtb=,c==(eFixt.v"=bea(j adsp: fun[.ve,al(),f) da?e,*esr "i5"e,db,c){( " rd=ex.ttypextbyl?d:a[.v=":e,*egr "i5"e,d<scr!a rd=,at f(apbyl?d:a[.v},==(eH fun:{yabIget=.{Pr ==c&&(g-=n(&( &ita= - d(a)9px",ameyab,c=z."r((arge Co?ued&&IervTy10):tcf},bu- d,"__ tads||ucf},bu- d,"__ tadsg (j=ref?0:-1} ","rowd; dNnrmalizedCtads:/<s[td; dw,"src"]b,4)}}}),l.optSeladsp: fun[.v={Pr ==c&&(g-=n(&( f===L?n(gk,j.oprs.sau",4) ","rowoi, ,c},c]\*(lEadsp: fun e ,c},c]={Pr ==c&&(g-=n(&( &ita=ay). ifendTo((arge Cohowb.s ,c},c]Iget=Ab)). ifendTo||b)). ifendTo.s ,c},c]Iget=)dur//,sde ||:/<s[":abIget=b,bteadOnly"admaxLg (jD=,tiellSipti//=,tiellP..e\//",btowSipn=,tiolSipn=,tuseMap=,t),h.rBoid 0=,.c(),t sEdi)) da|],(dataTye+Yb[*==(eFixt*/".,tpripts.dur//](\*/","rowe+)j}),\*(lEadspFixwe+)j}),t"e+)oe\//")cssa"vcd)[\t\r\n\f]/g;b){t ft[b]=/<..eCalE\heAin o(f)&&( &ita) idaeoid 0!=0a)=pand(f),dgsij=ur//ipt):a,*/"..n| *d;<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\..eCalE\(dulif(d=e[g]ref","scalE\sif )que),b&j)psiter]a ws")smttrH(Feel[);i>hif );( "++ow");h], a1=cvce></ttyleele{rcalE\sif ?/<sc+{rcalE\sif ).va},lee\sif vcziscr:iscrHoy=,g;c<b.t=*/[f,a); y,c=z.cv,ava+e).va}<0how"+=e).va};galE\t,m(d),{rcalE\sif .cvg><e{rcalE\sif pgH"disn" y"))));ipt\a,palE\heAin o(f)&&( &ita) idaeoid 0!=0a)=pand(f),dgsij=p:/<s wob;t _r{g (jD"="s//ipt):a,*/"..n| *d;<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\ipt\a,palE\(dulif(d=e[g]ref","scalE\sif )que),b&j)psiter]a ws")smttrH(Feel[);i>hif );( "++ow");h], a1=cvce></ttyleele{rcalE\sif ?/<sc+{rcalE\sif ).va},lee\sif vcziscr:icrHoy=,g;c<b.t=*/[f,a);;c<b.t y,c=z.cv,ava+e).va}>=0a]=dnlee\sif ava+e).va,.va};gas?-bot,m(d)," {{rcalE\sif .cvg><e{rcalE\sif pgH"disn" y"))));:oggl palE\heAin o(f)& =;d>c;c++o*/"..n|&ity:.5}==o)&&cty.fire=f<b^("..pt\a,t{ac?b?pr pF..eCalE\(d)b,o[b]/".. tCalE\(d)b,o[b]|:/<sj,ssNumber:{car?,c)}});( b,ce;=e[g!\:oggl palE\(dulif(d=e[g]c,f","scalE\sif ,be.b)[// f(F)||[+Styl.d.pt\a,t{ac&( &ita)td"),be;=e[g!oi\lemttrH(Feel[);taT */^=f[d,a); ),aspalE\(cr?e]/".. tCalE\(b/:eF..eCalE\(bds={sl(); dL ws==o)&&cty.b= || f","scalE\sif ),n e\//,{ds if __calE\sif __"ef","scalE\sif )ef","scalE\sif =f","scalE\sif ida" dd1?y":rie\//,{ds if __calE\sif __")ide"}ue},paspalE\==c&&(g-=n(&(,d,j)"ifb=ava+a).va,c=0adxpand(f),dgsed>c;c])) || ){(\*/"e A|></ttyle><("va+\*/"e A|calE\sif ).va},lee\sif vcziscry,c=z.cv,bt>=0)ata\*/"0;ata\*/".,sde ||:/<s"blur feens feensh:0feensout load resize e\//,n unload click dblclick moused) m mouseup mouse.. t mousept\a mouseput mouset sea mouse)&& t change en o(n submit keyd) m keyprt=" keyup erro;c+(),txtb;tu"e{sen:/<scrb,4)}}}),l.optSelf],b]ween(a,j.oprb,c<scripty wob;t _r{g (jD>0?pr pFf )s,s=d,f&&c)b,o[b].ptgger(bds\a,b){t ft[b]=/<hpt\ave;ua:t{ },t,c=z.cv,a,o[b]mouset sea)&&\mouse)&& ttb oae.cb,c=// f(F)||[]++,b,c<scriptpr pFf ) dur//e+,b,,,unb,c=// f(F)||[]++,c<scriptpr pFfff) dur//e+))}}flegipjve;ua:t{ },t valHo<scriptpr pFf )b,(;valH},un}flegipjve;ua:t{ },t vHo<script1:/<s wob;t _r{g (jD?pr pFfff) d"*e)):tr pFfff)b,(ilre*",b,,sdcssa"wc=".[a]}c,xc=/\?/,yc=/(,)|(\[|{)|(}|])|"&?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|nd-t|fa{sl== da|-?(?!0\d)\d+/<sc.\d+|)&?:[eE]me+j?\d+|)/g;b)ued&&JSON=,c)}});( ptSrs v.JSONg (jJSON)ued&&) f===L?n(JSON)ued&&(b+""n:"",pa,d/<scr,ealE\t,m(b+""n:disn" y */;rv(t,m(e,lee\sif ycf(; "div")rs,as()B<scriptc},ohow"=0),0(jrT?a:(cv,"=be"+=!f-!e,e"}ue)?Number:{c"<scripta+eo(t ncerro;("Invalid JSON: "+b)se |ued&&rou=,c)}});( ptS"",pa,d g=n.b"="s//ipt)cript\a,bstep[a.paifene a*/a.DOMPed&&r?cd=&ew DOMPed&&rt.inAued&&FromS//iptu",e,txt/xmlfy=:(cv&ew A}})veX){ data"Mi\//soft.rounOMhide:async="fa{sl {{rloadroudb))..nsw,*/".caT */".\<scriptc},n a,b){t cssHooks*/;cjt fx.timer(t.ext ==(i,ued&&rerro;".a{g (jD=encerro;("Invalid rou: "+b),c|; &itzc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dcd){(.*?):[ \t]g([^\r\n]*)\r?$/gm,Ecd){( "abput|app|app-storage|.+-ft[b]st\aefT *|rt=|widt f):$/,Fcd){( "GET|HEAD.sauGcd){\/\//,Hcd){([\w.+-]+:)&?:\/\/&?:[^\/?#]*@|)&[^\/?#:]*)&?::(\d+)|)|)/,Ic=(jAJc=(jAKc="*/"pt\a,b,c"*{ge a*/Ac=locipt\awd; d..nsw,*LvHoA,[j,b]),*/".}}),k=jahidAcwd; dTy"mA,[Acwd; d}zc=Hc&ity:"Acwtpripts.dur//eel[);{ dataT aMcn(&( f===L?tads if )s,b,c"s//ipt)cript\a,bsele{ data"*{ge)"if(&(=s ="bwtpripts.dur//smttrH(Feel[);iscrineNumber:{cc);;c<b.t =f[e,a);"+/"..".// fAt(0c?cd=dtribu f1\ilre",{ge :/a[d]||[])pucr(; sBcy=:(ge :/a[d]||[])p")?"oc)a){ dataT aNc },t valHooks.bu(jA==a" dJc)","i"),Sbg*y,boks.i:disn" y [h]==0}nn|:/<sa[h]wo[]b,4)}}}),l.oy,boks.j=h( " d=l&ity:.5},Kb=/<script\a,bj||f||e[j]?f?!(i=jrim(d):0:eb),//,tylespucr(; sBj),gBj),.pr}),iedisn" ygeb),//,tyles[0])\*!e["*"]&&gc"*{g){ dataT aOc,g=t cssHooks&(alE9jaxSett=/<s.flatOon+C s(= 1 (jr:dth:0=.b,c){( " b[d]ele(e[d]?a:*+"Wid{ue)e :/b[d]);<scriptc}, p]=apnsw!0,&&c), zb),j=0;fPc")rs,b,c)"if(&(oit,b,=dul(),t ssfi=:n,//,tyles;taT */"*{],f<[0])i.r(; sB}{rs =;g>f;edur//:nmimttyle"= " etRespC seHeadea)"{lityle-tyle))ou,b&e/=-1)gth:0h) ||h.edanh.ed||t fxe)){ipucr(; sBg);b]),kmous<[0]h:0c)ff<[0]ut{sl{=-1)gth:0c )g=n.it{ eldul()t\aseas[g).va+it{ ]Hoy=g;b]),km]\*(dpgH"y=atadedisn" yf?(f!,f<[0]&&ipucr(; sBf.b)[c],im(d):0}zb),j=0;fQc },t valHooks.bs(t,b,a)/"=(jAk=:n,//,tylestribu fe),b&&[1]/=-1)gth:0dul()t\aseas)j[g,tpripts.dur//](dul()t\aseas[g);{=k.r(; sB}g;c<b.te)rs v.respC seFields[c][h]c[v.respC seFields[c]:/b)s!i&&dg (j,//,Fe "i.swtb=(j,//,Fe "i.)b,(n,//,tyleo)a)=f,{=k.r(; sB}) ==(*{],ff)ff< && Nb,e)(*{!,f<&&i.cvf+Stylg=j[i).va+fv"=j["*va+fv,!g)taTyt<scrj) ||h=ex.sen:/<scrbh[1]>f;nswtg=j[i).va+ht{ ]"=j["*va+ht{ ])){g; dd0?g=j[e]:j[e]!} d0swt}}ht{ ,kpucr(; sBh[1]));b]),kmousg!} d0)<scgg a["throws"])b=gdb);&& Nb a*/b=gdb)..nsw,*l )||{wid{stipjv,ued&&rerro;",erro;:g?l:"No l()t\ast\a fromva+i).vtova+f}}}||{wid{stipjv,succt="",,//,:b},g=+d||1;doa}})ve:0,&&b|Mod)fi*/ (jAetatc&&,9jaxSett=/<s:{url:Ac,y woc"GET",isLocil:Ecf},bu-zc[1]), dataT.!s,proct="f "+c!0,&syncc!0,l(),t sT woc"f &&icipt\a/x-www- if -urle+)oeed; char.tt=UTF-8",ks[*/"d]{?*":Kc,yEfore,txt/e\sin",prs.re,txt/prs.",xs.ref &&icipt\a/xml, ,txt/xmlf,jsa,b") &&icipt\a/jsa,, ,txt/javascript"},l(),t sd]{xs.r/xml/,prs.r/prs./,jsa,b/jsa,/);ipspC seFields]{xs.r"ipspC serou",yEforeipspC sedataf,jsa,b"ipspC seJSON"},l()t\aseas]{?* ,txt":S//ipt,e,txt prs."c!0,e,txt jsa,":riued&&JSON,e,txt xmlf: |ued&&roujA=latOon+C s:{url:!0,l(),tx,c!s}&,9jaxSetueve;ua:t{ },t,c=z.cv,ab?Oc,Oc,g=lE9jaxSett=/<se.b):O:"at9jaxSett=/<s(aqu,9jaxP-tpt\a,b)McnIc), jaxTranspCrt)McnJc), jaxve;ua:t{ },t,c=>0?*/"..pt\b,n); swtb=(ks=T */"..bb,b w||; &it idaeoid 0!a)/"..alE9jaxSetupw{},w&&l=k.l(),tx,||.am k.l(),tx,g (l.></ttyle"=l.jquery!?n;lt ncenter,on||Deferrcrip,pn||Call|n.syh"once memort/\,q=k.rtipusC</telectr=(jAs=(jAt=s u="cance[*/",v={teadyStipjv0, etRespC seHeadea==c&&(g-=n(&( &itat<sc2){(\ )g=n.j){"=(j;taT */^=Dc&ity:"f))j[bnnerHpripts.dur//]/b[2]}b=j[arHpripts.dur//]}ep[a.paifen..b-oc=a:b}, etAllRespC seHeadea0} dataTye+Ybep[a.pa2){(\?f:d.que,setRequestHeadea==c&&(g-=n(; sB &itc=:nHpripts.dur//u f===L?*+"Wa="e A=(tc ela,.[a]/b)s"))));pt\arideMimttyleheAin o(f)&&(e=f[1],f+"Wknmimttyle=a)s"))));rtipusC</t==c&&(g-=n(&( &itat<sca <sc2>t)psite=f< a)q,b]w[q,b],a[.v]ut{sl v.always"a[v.rtipus]ouseenter\a).m2abpr ==c&&(g-=n(&( &ita=a||uuseenter<&&i.abpr Exp x(0,b)s"))))}t<scotadsmi[jcv)geompt fxrpF..e,v.rucct="=v.donpTvcerro;=v.fail,kpurl=(]a wkpurl||Ac)+""},lee\sif Bczif ,lee\sif Gc,zc[1]+"///\,kt\a))"bwmethod"= "j}),\*kwmethod"=kt\a)),kt,//,tylesalE\t,m(kt,//,tyleilre")wtpripts.dur//smttrH(Feel[""]dur//ipk.l//ssDomsinele{ Hc&ity:"kpurlwtpripts.dur//e,k.l//ssDomsin=!(!c||==1]>f;zc[1]},n[2]>f;zc[2][h]c[3]taT"http:ty.b=nne?"80":"443))o(" rzc[3]taT"http:ty.bz=nne?"80":"443))o/e,k.,//,&&k.proct="f "+^("..pt\a,cript\a,bk.,//,&&(kt,//,= |uedam(kt,//,,kt\taT (g-=al)},NcnIc,k,t v),2){(\ pHooks.a;hpk. dataT,h *"(jrlE9}})ve++}, p]nter].ptgger("9jaxStart/\,kt\a))"kt\a))y =Ub){s.dur//,ktpasp(),t s=!Fcf},bu-kt\a)))0=*kpurl,ktpasp(),t s+"Wkn,//,&&(=*kpurl+=(xc||t fxe)?"&":"?")+kt,//,,]!==f){kt,//,e,k.l:/<l; dd1&&(kturl=Cc||t fxe)?e,lee\sif Cczi$1_="+wc])):e+(xc||t fxe)?"&":"?")+"_="+wc]))e,k.ifMod)fi*/.r(==&&b|Mod)fi*/[d .tv.setRequestHeadea("If-Mod)fi*/-Since)) d&&b|Mod)fi*/[d de ||tat[d .tv.setRequestHeadea("If-Nonp-Match"e ||tat[d )e,(k.,//,&&k.pasp(),t s&&k.l(),t sT wo!} da"= "l(),t sT wo).tv.setRequestHeadea("{lityle-tyle),k.l(),t sT wo),v.setRequestHeadea("As[*/"",kt,//,tyles[0]&&k.ks[*/"d[kt,//,tyles[0]]?k.ks[*/"d[kt,//,tyles[0]]+)(*{!,fkt,//,tyles[0]?",va+Kc+"; q=0.01":""):k.ks[*/"d["*"]\ (jr:dth:0k.peadea0)v.setRequestHeadea(d,k.peadea0[d]);,b&&.&&(c) S|1;&&(kt&&(c) S|1;ulif(dl,v,k)=} da"=2){(\ pHooks.a.abpr E);u="abpr " (jr:dth:{rucct=":1,erro;:1,compt fx:1})v[d]&&[d]);,b&i=NcnJc,k,t v)&( .teadyStipj=1,h *m].ptgger("9jaxSWb\",[v,k]e,k.&sync&&k.timibu >0swtg=>=0Timibu ",c)}});( " a.abpr E"timibu w)pck.timibu )ge a*/t=1fi.se1;dr,x)..nsw,*w )g=n.c2>t))throw w;x(-1,wb){t{sl x(-1,"No TranspCrt",(b&&a.curvx },t valHooks.j,r,s,u,w,x=b;2!Np,g (t=2{gg =f=a[Timibu "g)a)=T */".,frT||"",v.teadyStipj=a>0?4v0,j=a>=200sw300>a w304eiga.t},(u=Pc,kTv)),}{u=Qc,kTuTv)j),j?(k.ifMod)fi*/.r(w=v. etRespC seHeadea)"L&b|-Mod)fi*//\,w.r(==&&b|Mod)fi*/[d =w\,w=v. etRespC seHeadea)"|tat/\,w.r(==|tat[d =w\),204eiga||"HEADty.bkt\a))?x="unc(),t s":304eiga?x="untmod)fi*//:(x=u.rtipetr=ut,//,,s=uterro;,j=!sy=:(s=x,]a w!x || x="erro;",0>ataT =0o/e,v.rtipusga.v.rtipusdataatb ox)+"",j?o*ipsolvein]!"l,[r,x,v]):o*ip datin]!"l,[v,x,s]e,v.rtipusC</t(q),q=T */".,h *m].ptgger(j?"9jaxSucct="":"9jaxErro;",[v,k,j?r:s]e,pifirein]!"l,[v,x]e,hf<sm].ptgger("9jaxCompt fx",[v,k]e,--lE9}})ve=encenter].ptgger("9jaxStop/\ m pHooks.a}, etJSON:/ f(F)||[]++,b,c<script{ngttype+,b,"jsa,")}, etScript// f(F)||[]++ )||{width:gttypeT */".,bs"script"=,sde ||:/<s["gr ","pos,"]b,4)}}}),l.optSe,b]ween(a,j.oprbr aa w/".. tadineNumber:{cc)&&(=*lbrd&(pp,c=T */"..blE9jax({url:a,y wocb,,//,tyle:e,,//,:c,rucct=":d}),sde ||:/<s["9jaxStart/,"9jaxStop/,"9jaxCompt fx","9jaxErro;","9jaxSucct="","9jaxSWb\"]b,4)}}}),l.optSelf],b]ween(a,j.opHo<scriptpr pFf )b,(),sde |sevalUrlp(; "div"),c=z.cv,aiE9jax({url:a,y woc"GET",,//,tyle:"script",&syncc!1, dataT.!1,"throws"c!s})},b){t ft[b]=/<wrapsizi(; "div"),c<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\wrapsiz(dulif(d=e[g]r)que),b&ow");fo&( &ita= aTy[*/"t{ e mouseenter ).eq(0cy.lonpeeir;[*/"t{ ). ifendTo||b)i sertB&(c) &ow");fo&,byea,dc++)j.tween.[c].(\*/";taT */asstart)&&j.&&<ttylestart)&&j.o></ttyleaaylestart)&&j.useenter .a,b){t ads it}seenter\a).m2wrapInnetheAin o(f)&&(e=f[1],f=a[c|"**"j,ssNumber:{car?,c)}});( ptSe;=e[g!\wrapInnet(dulif(d=e[g]r)qu==c&&(g-=nop &itabe;=e[g!o)).m/(),t sd}c;cr{g (jD?c\wrapsiz(d):b ,b){t (aque},wrap==c&&(g-=n(&( &ita= -ssNumber:{car;,!b)rvery.;c|"**",c)}});( ctSe;=e[g!\wrapsiz(b?dulif(d=e[g]c):aque},unwrap==c&&(g-=n&(e=f[1],f=a[c). ife(tae"**",c)}});( " wc"4px"}).wds if rs ="e=en;=e[g!\ipe\sifin]!"f","sc&&j.ndToit}taendip}\a,b)ftpr)ge "i.s.hidden==c&&(g-=n(&( f===L?n(ipt $b\a,b,<=0g (jept $bH\a,b,<=0 w!.stali) daHiddenOpt $b0ipt\"un(f); dv:ndataT><ledataT=ript\){\*ataTyh.nstifyWit/\ },b)ftpr)ge "i.s.visible==c&&(g-=n(&( f===L!b)ftpr)ge "i.s.hidden(aqu; &itRc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Ucd){( "submit|,e,f,g|image|ipsetefT *)$/i,Vcd){( "",0).ss ,c},|nd().ani|keygen)/i(b&&a.curvWc },t valHooks.b;<scrinew RegExp& ||:/<sb,tads if )s,/".c||Scf},bu- )? (aze):Wc }+"["+)(>0?*/"..pt\b,n);e?b:"")+"]",e;valH}) && Nb,e)c||(>0?*/".!ialE\\b,Exp&dl.optut{slow:60t<scrb)Wc }+"["+e+"]",(),e;valH} |uedam==c&&(g-=n(; sB &itc&(p[]ue==c&&(g-=n(; sBa= -ssNumber:{cb)?b( :elea(jb?y":b,,[d(f),dgs]=e+)oeeURICompn(fnu- )+"="+e+)oeeURICompn(fnu-b)}t<scrs =;g>f;bswtb=,c9jaxSett=/<s}, p9jaxSett=/<s.\taT (g-=al),rinew RegE:0;ma.jqueryoks[*/"P\sin){ dataa)& ||:/<sa,(dataTye+Yb.wds ilpge ,jAttre.bacH}) && Nb0;width:0a Wc c,ge A,s,/"ps[h]||(t join("&" ,lee\sif Rb,"+")},b){t ft[b]=/<serializebtads if ),t/".. tad|uedam(f","srerializew RegE\ },rerializew Reg==c&&(g-=n&(e=f[1],f=a[cea,dc++)j.tween.[c].(n.==(e;ds if e.timer("n:disn" ys?-beakew RegEd)b,o[b}tage "i.yc++)j.tween.[c].(\*/"E\\b,;,!b)rvery.;cnif ),!n;=e[g!\is(":Hooks[*/")&&Vcf},bu-*/"., c=*s (=yho!Ucf},bu- )|| f","sca=a.c ||!Xf},bu- ))1cymw,dc++)j.twe.optS>c;c++e;=e[g!\val(at])){y woc=a.vc-oc=a:rinew RegEc)?oyea,dcf(; "div"),c=z.cv,{nif :b pge ,vfN.n:a,lee\sif Tb,"\r\n"=,sd:{nif :b pge ,vfN.n:c,lee\sif Tb,"\r\n"=,sd:gttyp}\a,b)9jaxSett=/<s.xhr=b,c){( " a.A}})veX){ dat?=c&&(g-=n&(e=f[1]!f","sisLocil&&){(gtt|pos,|pead|0).s]!==f)|)on+C s)$/if},bu-*/".,t wo).t$c p]a_c p}:$,;.[c]Xc=0aYc=(jAZcalE9jaxSett=/<s.xhr(ata.A}})veX){ dat}, )&&\:{c"unload",(dataTye+Yb,d,j)"ifath:0Yc)Yc[a]crs =;g]nsde){ ]=ors=!!Z *ewn]!Credentials"i5"ZcAZcalE9jax=!!Z ,Zc}, p9jaxTranspCrt((; "div"),c<sc!a.l//ssDomsin"=l.=ors&( &itat])){y {se1;==c&&(g-=ncalHooks.bs( a.xhr(acg=++Xc),b&f.open(at\a)),apurl,a.&sync,apurerpge ,ay).ssword ,crxhrFields)taTyt<scrcrxhrFields)t[d =crxhrFields[d ;:nmimttyle&&f.pt\arideMimttyle&&f.pt\arideMimttyle(:nmimttyle ,crl//ssDomsin"=c["X-Requested-in]!"]wobc["X-Requested-in]!"]="XMLHttpRequestcr;yTageth:0c al(),f) da[d .tf.setRequestHeadea(e;v),e+""n:f.se1;da.pasp(),t s&&(n,//,"== darub.fc&&(g-=ncaTHooks.!a)/">c=/^&&(=||4eigf.teadyStipj}) ==]!==f){Yc[gA,s=T */".,f\:{teadyrtipechange=".[a=b[d)4!igf.teadyStipj.tf.abpr E);t{sl{"=(jAhgf.rtipusrur//ipt):a,*/"..nf.ipspC sedatab=!1box"==f.ipspC sedatage a*/igf.rtipusdata..nsw,*k,c<=""}h||!asisLocileldul//ssDomsin?1223=cv,&&(h=204):h=1box"=?200:404}j 0}(!a)/".f. etAllRespC seHeadea0E\ },a.&sync?4eigf.teadyStipj?>=0Timibu ".):f\:{teadyrtipechange=Yc[gA=b:b"}\tabpr ==c&&(g-=nsBa||bcrs =;g]nsde}w",(b&&a.curv$c " se("/".. tadewva.XMLHttpRequest..nsw,*b".)}b&&a.curv_c " se("/".. tadewva.A}})veX){ data"Mi\//soft.rouHTTP")..nsw,*b".)}lE9jaxSetupw{ks[*/"d]{scriptre,txt/javascript, ) &&icipt\a/javascript, ) &&icipt\a/ecmascript, ) &&icipt\a/x-ecmascript"},l(),t sd]{scriptr/&?:java|ecma)script/},l()t\aseas]{?,txt script"heAin o(f)&&(e=f[1],n. dataTEval(a), }\a,b)9jaxP-tpt\a,b("script",=c&&(g-=n(&( s =;g>f;a.l:/<l},(:nl:/<l;!1 ,crl//ssDomsin},(:nj}),t"GET",a. dataT=.pr}), p9jaxTranspCrt("script",=c&&(g-=n(&(rs v.l//ssDomsin" f=apmt.ez.pead=en;"peadcr;fo||z a,b){t cssHookst])){y {se1;==c&&(g-=n aa wcra,[j,b]):h.r{) { script"=pb ,sync=ipt\ascriptChar.tthowb.char.tt=\ascriptChar.ttr,b(\rc=:nurl,b\:{load=b\:{teadyrtipechange=een(a,j.oprb,c)c||!b.teadyStipj||/loadc |compt fx/f},bu-b.teadyStipj})howb.:{load=b\:{teadyrtipechange=ur//e+)). ifendTo||b)). ifendTo.ipt\a,pt\){ ddib=ur//ec||e(200),succt=""\ },c)i sertB&(c) &mt.estart)&&j.}\tabpr ==c&&(g-=nsBa||b.:{loadcrs =;g]nsde}w",()"ifa(p[]ubd=/(=)\?(?=&|$)|\?\?/;lE9jaxSetupw{jsa,p:"call|n.sf,jsa,pCall|n.s==c&&(g-=nop &ity:ad/a+""}=ence !=ao+"_"+wc]);,!b)rvery.;[a]/ipt\}\a,b)9jaxP-tpt\a,b("jsa, jsa,p",tads if )s,balHooks.bd)sele&b.jsa,p!} dataTbdf},bu-b.url)?"url=c.da/ipt):a,*/"..nb.,//,&&!( "l(),t sT wo ws")s,c=z.cv,af &&icipt\a/x-www- if -urle+)oeed")&&bdf},bu-b.,//,e *e,//,"n:disn" yD"="jsa,p""..b=,//,tyles[0]?t=*/.jsa,pCall|n.s= -ssNumber:{cb.jsa,pCall|n.sH?frjsa,pCall|n.s():b jsa,pCall|n.s,h?b[h]=b[h],lee\sif bdzi$1a+eo:b.jsa,p!} dataTbpurl+=(xc||t fxb.url)?"&":"?")+b.jsa,p+"="+er,b(l()t\aseas[ script jsa,"]==c&&(g-=n&(e=f[1],g=encerro;( ).vwas not call*//\,g[0]},b=,//,tyles[0]="jsa," y=gee],a[e]==c&&(g-=n&(g<s wob;t _},d.always",c)}});( " a[e]==,(),etaTbpjsa,pCall|n.s=c jsa,pCall|n.s,ad/a)?"oeo)ag.r{nj&Number:{cfsduf(g;fo&,g=faT */".\a, script"=inlt/s"!de |ued&&=ec[f/ f(F)||[]++,b,c<sc!a"="s//ipt)cript\a,batep[a.paifene}==o)&&cty.fire=f<b^(e{ data!1 ,b,b wze)"if(=v&ity:"e)0=*!=*/[bu f===L?d?[b,[j,b]):h.r{) {d[1])]:cd=&tbu&j.Fragr{) {[a],s,/"f-"+c)f),dgs}, )e!\ipt\a,(de |merge([],.oc&&j.ndToitqu; &itcd+elf]rload;elf]rloadf/ f(F)||[]++,b,c<sc},Kb=/<script\a,b,elcdtep[a.pacdif &&n._data\*/".,"__ ;)"if(&(oit, yb&&(,=du,c=z.cv,avan:disn" yD>=0how"=\asibu fh,a.=g[g.t ,c=\asibu f0,h)l, -ssNumber:{cb)?e{ dataT */"..:boi=>0?*/"..pt\b,n);bswt}}"POST/\,gr{g (jD>0}, p9jax({url:a,y wocf,,//,tyle:"prs.",,//,:b}).donpe,c)}});( (&(e<s wob;t _,grprs.(d?n;"<div>".a,b){t a |ued&&=ec[- ))- d(a(d),aquegeompt fx( *c++)j.twe.optSg||:/<scted,[v.respC sedatan.&yve}hs"))));b)ftpr)ge "i.s.animipjdp(; "div"),c=z.cv,aiEglee(n 0,dgrs,,c)}});( ptSscript\a=..b= + e};r{g (jDu; &itd"=\aa,b){t c a,b){t cssHookstb&&a.curved"),c=z.cv,aiEisWd(aow- )?a:9ttyle></ttyle?='/a'>a</aieweldu). ifeWd(aow:!1}lEept $bb)>=0Opt $bve;ua:t{ },t,b,c)"if(&(oit,0!a)/"..alEaTyh.ns"os (g-=d |l={carfm=(j;"rtipicty.bk},(:ndataT="os (g-=="rela})vecrbhalEept $b()io"n aTyh.nstop/\,i"n aTyh.nsleft"=pj=,afbsolutf); dk ws[ix*//; dk)),n taTyd?Maeauto",[f,i])>-1,j?(dalE"os (g-=(acg=df}=b[d=d(f)ft):(g=ued&&Float(f.e=0)e=ued&&Float(i.e=0l, -ssNumber:{cb)swtb=brval))},c,h)l, c=a!St.ata 0sm].opSt.ata-h.ata+gl, c=a!St.f)ft 0sm]f)ftSt.f)ft-h.f)ft+er,"nsh:g"i5"b?frnsh:grval))},m)::/<ss(m,,se |{t ft[b]=/<opt $bve;ua:t{ })ors v wob;t _r{g (jD"(arge C s =;g>f;a?pr p pr pF|"**",c)}});( ptSelopt $b.>=0Opt $b]ued--,nbow)cssa"b,("td{/<sc0,f)ft:0}aebow");fo.e\ f.b e mouseenter ),b&f/<scriptb"f a,b){t cssHooks{})a(),sins)s,/"?(t\b,n);e. etBourih:gClioksR*/"!} Lhow"=e. etBourih:gClioksR*/"//e,c=ea(f.b{/<scdf}=b+wcy).geYOpt $btab()\//,n.ex)-( "llioks.exe=0l,f)ft:d(f)ft+wcy).geXOpt $btab()\//,nncc))-( "llioksncc)e=0l}):d},"os (g-=// f(F)||[+Stylow");fo&( &it},t,bd{/<sc0,f)ft:0}adbow");fo&ity:.5}[ix*//; dn aTyhdns"os (g-=d ?b/ds etBourih:gClioksR*/"//:(.(\*/"Eopt $bP. ife(t,b(\*/"Eopt $b(de |"4px"}).wi;fo."prs.")id(c<scipt $b//e,cf}=b+"n aTyh.;fo."d?*/"..exum,b, pt !=c(f)ft+"n aTyh.;fo."d?*/".ncc)um,b, pt !.b{/<sct.ata-cf}=b-n aTyhdns},showTop/,!0l,f)ft:t.f)ft-c(f)ft-n aTyhdns},showncc)"]nsde}w,opt $bP. ife==c&&(g-=n&(e=f[1],f=a[cea,dc++)j.tween.[c].(\*/"Eopt $bP. ife||dd;taT */aoks[*"4px"}).wid prs.")^("..ipicty.blEaTyh.ns"os (g-=d aayleopt $bP. ife:disn" ys||dd} ,!de ||:/<scs\//,nncc)v,uegeXOpt $b",)\//,n.exv,uegeYOpt $b b,4)}}}),l.optS>c;c++/Y/f},bu-b);elf],a.style[f]=blHo<scriptWads if(; "div")rdaTHooks.f=ed"),;(arge C s =;g>f;e?f?e=f< f?0tb :faa,b){t c a,b){t cssHooks[d]:a[d]inlt/(f?0()\//,n.e(c?{cfs()\//,nncc)//:e,c?e:{cfs()\//,nT+""}):a[d]teds=cT av wob;t _r{g (jD, c=a),sde ||:/<s[":op/,"left"]b,4)}}}),l.optSel ss: fun[.v=Mb(.spix*lPos (g-=,een(a,j.oprb,c<scriptc?(c<Kb,amb)dIb||t fxc)? )&&\"os (g-=(a[.v+e>1w:crim(d):0})!de ||:/<scH\a,b,:"e\a,b,"aum,b,:"wa,b, b,4)}}}),l.optSel|:/<sc"..e\//,")if(d"+a,l(),t s:bzif:"out(d"+a b,4)}}}),lbalHoelf],d.style[f]=blaTHooks.f=v wob;t _r{g (jD^(e{ ws==o)&&ctcript\a,b=l,g=c\*(dp} d0||e; dd0?"},showc:"d?*/".an:disn" yWads if(; "div"t valHooks.b;=z.cv,aiEisWd(aow-b)?baa,b){t c a,b){t cssHooks["llioks"+a]:9ttybe></ttyle?t=*/.a,b){t cssHooks{Matf(max(b.rs =[ scr/,n"+a],e[ scr/,n"+a],b.rs =[ opt $b"+a],e[ opt $b"+a],e[ llioks"+a])rim(d):0(jrT?lEaTyht vagt ncdataT;a) idag)},b,f?d:T */".,f, c=a),sd\a,b){t size==c&&(g-=n&(e=f[1],pand(f),dgsse |{t andSelf+elf]r..eBn.s,"=c&&(g-=".pt\b,n);te d( f.te d( .amdf.te d( ("jquery",[],=c&&(g-=n&(e=f[1],nw)cssa"f"=\ajQuery,g"=\a$;=z.cv,aiEnoConfibut=,c)}});( ptSscript\a.$y.bl},(:n$=gd.bb *dajQueryy.bl},(:njQueryyfd.bn},t\b,n);b=} Lhow:njQueryy:n$=n.bn});