").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ }).complete( callback && function( jqXHR, status ) {
+ self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+ });
+ }
+
+ return this;
+};
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
+ jQuery.fn[ type ] = function( fn ){
+ return this.on( type, fn );
+ };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ return jQuery.ajax({
+ url: url,
+ type: method,
+ dataType: type,
+ data: data,
+ success: callback
+ });
+ };
+});
+
+jQuery.extend({
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ type: "GET",
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ processData: true,
+ async: true,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ throws: false,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ "*": allTypes,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+
+ // Data converters
+ // Keys separate source (or catchall "*") and destination types with a single space
+ converters: {
+
+ // Convert anything to text
+ "* text": window.String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ url: true,
+ context: true
+ }
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ return settings ?
+
+ // Building a settings object
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+ // Extending ajaxSettings
+ ajaxExtend( jQuery.ajaxSettings, target );
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var // Cross-domain detection vars
+ parts,
+ // Loop variable
+ i,
+ // URL without anti-cache param
+ cacheURL,
+ // Response headers as string
+ responseHeadersString,
+ // timeout handle
+ timeoutTimer,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ transport,
+ // Response headers
+ responseHeaders,
+ // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
+ globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
+ jQuery( callbackContext ) :
+ jQuery.event,
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks("once memory"),
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+ // The jqXHR state
+ state = 0,
+ // Default abort message
+ strAbort = "canceled",
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( (match = rheaders.exec( responseHeadersString )) ) {
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ var lname = name.toLowerCase();
+ if ( !state ) {
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( state < 2 ) {
+ for ( code in map ) {
+ // Lazy-add the new callback in a way that preserves old ones
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ } else {
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ }
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ var finalText = statusText || strAbort;
+ if ( transport ) {
+ transport.abort( finalText );
+ }
+ done( 0, finalText );
+ return this;
+ }
+ };
+
+ // Attach deferreds
+ deferred.promise( jqXHR ).complete = completeDeferred.add;
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
+
+ // A cross-domain request is in order when we have a protocol:host:port mismatch
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( state === 2 ) {
+ return jqXHR;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger("ajaxStart");
+ }
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Save the URL in case we're toying with the If-Modified-Since
+ // and/or If-None-Match header later on
+ cacheURL = s.url;
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+ s.url = rts.test( cacheURL ) ?
+
+ // If there is already a '_' parameter, set its value
+ cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
+
+ // Otherwise add one to the end
+ cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
+ }
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ if ( jQuery.lastModified[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+ }
+ if ( jQuery.etag[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout(function() {
+ jqXHR.abort("timeout");
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ // Get response data
+ if ( responses ) {
+ response = ajaxHandleResponses( s, jqXHR, responses );
+ }
+
+ // If successful, handle type chaining
+ if ( status >= 200 && status < 300 || status === 304 ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ modified = jqXHR.getResponseHeader("Last-Modified");
+ if ( modified ) {
+ jQuery.lastModified[ cacheURL ] = modified;
+ }
+ modified = jqXHR.getResponseHeader("etag");
+ if ( modified ) {
+ jQuery.etag[ cacheURL ] = modified;
+ }
+ }
+
+ // if no content
+ if ( status === 204 ) {
+ isSuccess = true;
+ statusText = "nocontent";
+
+ // if not modified
+ } else if ( status === 304 ) {
+ isSuccess = true;
+ statusText = "notmodified";
+
+ // If we have data, let's convert it
+ } else {
+ isSuccess = ajaxConvert( s, response );
+ statusText = isSuccess.state;
+ success = isSuccess.data;
+ error = isSuccess.error;
+ isSuccess = !error;
+ }
+ } else {
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if ( status || !statusText ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger("ajaxStop");
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ }
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - 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,
+ responseFields = s.responseFields;
+
+ // Fill responseXXX fields
+ for ( type in responseFields ) {
+ if ( type in responses ) {
+ jqXHR[ responseFields[type] ] = responses[ type ];
+ }
+ }
+
+ // 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");
+ }
+ }
+
+ // 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;
+ }
+ }
+ }
+
+ // 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 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 ];
+ }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+ var conv2, current, conv, tmp,
+ converters = {},
+ i = 0,
+ // Work with a copy of dataTypes in case we need to modify it for conversion
+ dataTypes = s.dataTypes.slice(),
+ prev = dataTypes[ 0 ];
+
+ // Apply the dataFilter if provided
+ if ( s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ // Create converters map with lowercased keys
+ if ( dataTypes[ 1 ] ) {
+ for ( conv in s.converters ) {
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
+ }
+ }
+
+ // Convert to each sequential dataType, tolerating list modification
+ for ( ; (current = dataTypes[++i]); ) {
+
+ // There's only work to do if current dataType is non-auto
+ if ( current !== "*" ) {
+
+ // Convert response if prev dataType is non-auto and differs from current
+ if ( prev !== "*" && prev !== current ) {
+
+ // Seek a direct converter
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+ // If none found, seek a pair
+ if ( !conv ) {
+ for ( conv2 in converters ) {
+
+ // If conv2 outputs current
+ tmp = conv2.split(" ");
+ if ( tmp[ 1 ] === current ) {
+
+ // If prev can be converted to accepted input
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
+ converters[ "* " + tmp[ 0 ] ];
+ if ( conv ) {
+ // Condense equivalence converters
+ if ( conv === true ) {
+ conv = converters[ conv2 ];
+
+ // Otherwise, insert the intermediate dataType
+ } else if ( converters[ conv2 ] !== true ) {
+ current = tmp[ 0 ];
+ dataTypes.splice( i--, 0, current );
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Apply converter (if not an equivalence)
+ if ( conv !== true ) {
+
+ // Unless errors are allowed to bubble, catch and return them
+ if ( conv && s["throws"] ) {
+ response = conv( response );
+ } else {
+ try {
+ response = conv( response );
+ } catch ( e ) {
+ return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+ }
+ }
+ }
+ }
+
+ // Update prev for next iteration
+ prev = current;
+ }
+ }
+
+ return { state: "success", data: response };
+}
+// Install script dataType
+jQuery.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /(?:java|ecma)script/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || jQuery("head")[0] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement("script");
+
+ script.async = true;
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( script.parentNode ) {
+ script.parentNode.removeChild( script );
+ }
+
+ // Dereference the script
+ script = null;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+
+ // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( undefined, true );
+ }
+ }
+ };
+ }
+});
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters["script json"] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always(function() {
+ // Restore preexisting value
+ window[ callbackName ] = overwritten;
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+ // make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ });
+
+ // Delegate to script
+ return "script";
+ }
+});
+var xhrCallbacks, xhrSupported,
+ xhrId = 0,
+ // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+ xhrOnUnloadAbort = window.ActiveXObject && function() {
+ // Abort all pending requests
+ var key;
+ for ( key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( undefined, true );
+ }
+ };
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject("Microsoft.XMLHTTP");
+ } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+ /* Microsoft failed to properly
+ * implement the XMLHttpRequest in IE7 (can't request local files),
+ * so we use the ActiveXObject when it is available
+ * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+ * we need a fallback.
+ */
+ function() {
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
+ } :
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+// Determine support properties
+xhrSupported = jQuery.ajaxSettings.xhr();
+jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+xhrSupported = jQuery.support.ajax = !!xhrSupported;
+
+// Create transport if the browser can provide an xhr
+if ( xhrSupported ) {
+
+ jQuery.ajaxTransport(function( s ) {
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !s.crossDomain || jQuery.support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+
+ // Get a new xhr
+ var handle, i,
+ xhr = s.xhr();
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if ( s.username ) {
+ xhr.open( s.type, s.url, s.async, s.username, s.password );
+ } else {
+ xhr.open( s.type, s.url, s.async );
+ }
+
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+ headers["X-Requested-With"] = "XMLHttpRequest";
+ }
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+ } catch( err ) {}
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+ var status, responseHeaders, statusText, responses;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occurred
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ if ( xhrOnUnloadAbort ) {
+ delete xhrCallbacks[ handle ];
+ }
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ responses = {};
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+
+ // When requesting binary data, IE6-9 will throw an exception
+ // on any attempt to access responseText (#11426)
+ if ( typeof xhr.responseText === "string" ) {
+ responses.text = xhr.responseText;
+ }
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
+ };
+
+ if ( !s.async ) {
+ // if we're in sync mode we fire the callback
+ callback();
+ } else if ( xhr.readyState === 4 ) {
+ // (IE6 & IE7) if it's in cache and has been
+ // retrieved directly we need to fire the callback
+ setTimeout( callback );
+ } else {
+ handle = ++xhrId;
+ if ( xhrOnUnloadAbort ) {
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ jQuery( window ).unload( xhrOnUnloadAbort );
+ }
+ // Add to list of active xhrs callbacks
+ xhrCallbacks[ handle ] = callback;
+ }
+ xhr.onreadystatechange = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback( undefined, true );
+ }
+ }
+ };
+ }
+ });
+}
+var fxNow, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
+ rrun = /queueHooks$/,
+ animationPrefilters = [ defaultPrefilter ],
+ tweeners = {
+ "*": [function( prop, value ) {
+ var end, unit,
+ tween = this.createTween( prop, value ),
+ parts = rfxnum.exec( value ),
+ target = tween.cur(),
+ start = +target || 0,
+ scale = 1,
+ maxIterations = 20;
+
+ if ( parts ) {
+ end = +parts[2];
+ unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+
+ // We need to compute starting value
+ if ( unit !== "px" && start ) {
+ // Iteratively approximate from a nonzero starting point
+ // Prefer the current property, because this process will be trivial if it uses the same units
+ // Fallback to end or a simple constant
+ start = jQuery.css( tween.elem, prop, true ) || end || 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 );
+ }
+
+ tween.unit = unit;
+ tween.start = start;
+ // If a +=/-= token was provided, we're doing a relative animation
+ tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end;
+ }
+ return tween;
+ }]
+ };
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ setTimeout(function() {
+ fxNow = undefined;
+ });
+ return ( fxNow = jQuery.now() );
+}
+
+function createTweens( animation, props ) {
+ jQuery.each( props, function( prop, value ) {
+ var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
+ index = 0,
+ length = collection.length;
+ for ( ; index < length; index++ ) {
+ if ( collection[ index ].call( animation, prop, value ) ) {
+
+ // we're done with this property
+ return;
+ }
+ }
+ });
+}
+
+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;
+
+ for ( ; index < length ; index++ ) {
+ animation.tweens[ index ].run( percent );
+ }
+
+ 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 );
+ }
+
+ // 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;
+
+ propFilter( props, animation.opts.specialEasing );
+
+ for ( ; index < length ; index++ ) {
+ result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
+ if ( result ) {
+ return result;
+ }
+ }
+
+ createTweens( animation, props );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ })
+ );
+
+ // 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 );
+}
+
+function propFilter( props, specialEasing ) {
+ var value, name, index, easing, 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 ];
+ }
+
+ if ( index !== name ) {
+ props[ name ] = value;
+ delete props[ index ];
+ }
+
+ hooks = jQuery.cssHooks[ name ];
+ if ( hooks && "expand" in hooks ) {
+ value = hooks.expand( value );
+ delete props[ name ];
+
+ // 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;
+ }
+ }
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+ tweener: function( props, callback ) {
+ if ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.split(" ");
+ }
+
+ var prop,
+ index = 0,
+ length = props.length;
+
+ 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 {
+ animationPrefilters.push( callback );
+ }
+ }
+});
+
+function defaultPrefilter( elem, props, opts ) {
+ /*jshint validthis:true */
+ var prop, index, length,
+ value, dataShow, toggle,
+ tween, hooks, oldfire,
+ anim = this,
+ style = elem.style,
+ orig = {},
+ handled = [],
+ hidden = elem.nodeType && isHidden( elem );
+
+ // 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++;
+
+ 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();
+ }
+ });
+ });
+ }
+
+ // 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
+ if ( jQuery.css( elem, "display" ) === "inline" &&
+ jQuery.css( elem, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
+ style.display = "inline-block";
+
+ } else {
+ style.zoom = 1;
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ if ( !jQuery.support.shrinkWrapBlocks ) {
+ anim.always(function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ });
+ }
+ }
+
+
+ // show/hide pass
+ for ( index in props ) {
+ value = props[ index ];
+ if ( rfxtypes.exec( value ) ) {
+ delete props[ index ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+ continue;
+ }
+ handled.push( index );
+ }
+ }
+
+ length = handled.length;
+ if ( length ) {
+ dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+
+ // 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 ( index = 0 ; index < length ; index++ ) {
+ prop = handled[ index ];
+ tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 );
+ orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop );
+
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = tween.start;
+ if ( hidden ) {
+ tween.end = tween.start;
+ tween.start = prop === "width" || prop === "height" ? 1 : 0;
+ }
+ }
+ }
+ }
+}
+
+function Tween( elem, options, prop, end, easing ) {
+ return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+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 ];
+
+ 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;
+
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ if ( hooks && hooks.set ) {
+ hooks.set( this );
+ } else {
+ Tween.propHooks._default.set( this );
+ }
+ return this;
+ }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+ _default: {
+ get: function( tween ) {
+ var result;
+
+ if ( tween.elem[ tween.prop ] != null &&
+ (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
+ return tween.elem[ tween.prop ];
+ }
+
+ // 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;
+ }
+ }
+ }
+};
+
+// Remove in 2.0 - this supports IE8's panic based approach
+// to setting things on disconnected nodes
+
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+ set: function( tween ) {
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+};
+
+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 );
+ };
+});
+
+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 );
+ doAnimation.finish = function() {
+ anim.stop( true );
+ };
+ // Empty animations, or finishing resolves immediately
+ if ( empty || jQuery._data( this, "finish" ) ) {
+ anim.stop( true );
+ }
+ };
+ doAnimation.finish = doAnimation;
+
+ 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 ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each(function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = jQuery._data( this );
+
+ if ( index ) {
+ if ( data[ index ] && data[ index ].stop ) {
+ stopQueue( data[ index ] );
+ }
+ } else {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+ stopQueue( data[ index ] );
+ }
+ }
+ }
+
+ 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 );
+ }
+ }
+
+ // 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;
+
+ // enable finishing flag on private data
+ data.finish = true;
+
+ // empty the queue first
+ jQuery.queue( this, type, [] );
+
+ if ( hooks && hooks.cur && hooks.cur.finish ) {
+ hooks.cur.finish.call( this );
+ }
+
+ // 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 );
+ }
+ }
+
+ // 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 );
+ }
+ }
+
+ // turn off finishing flag
+ delete data.finish;
+ });
+ }
+});
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ attrs = { height: type },
+ i = 0;
+
+ // 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 ( includeWidth ) {
+ attrs.opacity = attrs.width = type;
+ }
+
+ return attrs;
+}
+
+// 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 );
+ };
+});
+
+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
+ };
+
+ 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;
+
+ // normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function() {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ }
+ };
+
+ return opt;
+};
+
+jQuery.easing = {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return 0.5 - Math.cos( p*Math.PI ) / 2;
+ }
+};
+
+jQuery.timers = [];
+jQuery.fx = Tween.prototype.init;
+jQuery.fx.tick = function() {
+ var timer,
+ timers = jQuery.timers,
+ i = 0;
+
+ fxNow = jQuery.now();
+
+ 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 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+ if ( timer() && jQuery.timers.push( timer ) ) {
+ jQuery.fx.start();
+ }
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ clearInterval( timerId );
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+};
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+ };
+}
+jQuery.fn.offset = function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ var docElem, win,
+ box = { top: 0, left: 0 },
+ elem = this[ 0 ],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return;
+ }
+
+ docElem = doc.documentElement;
+
+ // Make sure it's not a disconnected DOM node
+ if ( !jQuery.contains( docElem, elem ) ) {
+ return box;
+ }
+
+ // If we don't have gBCR, just use 0,0 rather than error
+ // BlackBerry 5, iOS 3 (original iPhone)
+ if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
+ box = elem.getBoundingClientRect();
+ }
+ win = getWindow( doc );
+ return {
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+ };
+};
+
+jQuery.offset = {
+
+ setOffset: function( elem, options, i ) {
+ var position = jQuery.css( elem, "position" );
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ var curElem = jQuery( elem ),
+ curOffset = curElem.offset(),
+ curCSSTop = jQuery.css( elem, "top" ),
+ curCSSLeft = jQuery.css( elem, "left" ),
+ calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+ props = {}, curPosition = {}, curTop, curLeft;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+
+jQuery.fn.extend({
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ parentOffset = { top: 0, left: 0 },
+ elem = this[ 0 ];
+
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+ // we assume that getBoundingClientRect is available when computed position is fixed
+ offset = elem.getBoundingClientRect();
+ } else {
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+ }
+
+ // Subtract parent offsets and element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || document.documentElement;
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent || document.documentElement;
+ });
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return jQuery.access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? (prop in win) ? win[ prop ] :
+ win.document.documentElement[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+});
+
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
+ // margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return jQuery.access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
+ // https://github.com/jquery/jquery/pull/764
+ return elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
+ // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable, null );
+ };
+ });
+});
+// Limit scope pollution from any deprecated API
+// (function() {
+
+// })();
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+// Do this after creating the global so that if an AMD module wants to call
+// noConflict to hide this version of jQuery, it will work.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+ define( "jquery", [], function () { return jQuery; } );
+}
+
+})( window );
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/Effect Presets and Custom Items.prfpset b/pype/premiere/extensions/com.pype.rename/payloads/Effect Presets and Custom Items.prfpset
new file mode 100644
index 0000000000..a5c1d1772a
--- /dev/null
+++ b/pype/premiere/extensions/com.pype.rename/payloads/Effect Presets and Custom Items.prfpset
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Root
+
+ false
+ false
+
+
+
+
+
+
+ false
+
+
+
+ 1
+
+
+ Presets
+
+ true
+ false
+
+
+
+
+
+ 1
+
+
+
+ false
+
+
+
+ fubnunkus
+
+
+
+
+
+
+
+ false
+ 5
+
+
+
+
+
+ 0
+ 1.
+ 1678182105600
+ 0
+ 228cda18-3625-4d2d-951e-348879e4ed93
+ 0
+
+ AE.ADBE Spherize
+
+
+
+ 2
+ AE.ADBE Spherize
+
+
+
+
+ false
+
+
+
+
+ Spherize
+ false
+ 0
+
+
+
+
+
+ 1
+ false
+
+ 250.
+ 2500.
+ 0.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 2
+ false
+ false
+ false
+
+ Radius
+
+
+
+
+ 2
+
+ 0,0
+ -91445760000000000,0.5:0.5,0,0,0,0,0,0,5,4,0,0,0,0
+ 6
+ false
+ false
+ false
+
+ Center of Sphere
+
+
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.mxi b/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.mxi
new file mode 100644
index 0000000000..fb7d11f83c
--- /dev/null
+++ b/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.mxi
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.sqpreset b/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.sqpreset
new file mode 100644
index 0000000000..ed28feb232
--- /dev/null
+++ b/pype/premiere/extensions/com.pype.rename/payloads/PProPanel.sqpreset
@@ -0,0 +1,41 @@
+
+
+
+
+ 0,0,1920,1080
+ {"capturedHorizontalView":0,"capturedVerticalView":0,"fieldOfHorizontalView":90,"fieldOfVerticalView":60,"projectionType":0,"stereoscopicEye":0,"stereoscopicType":0,"version":2}
+ []
+ [{"mAudioSends":[],"mChannelType":1,"mExpandedHeight":25,"mIsOpen":false,"mIsSubmix":false,"mMatrix":[],"mName":"","mPan":0,"mPannerAssignments":[],"mSolo":false,"mTrackID":-1,"mVolume":1},{"mAudioSends":[],"mChannelType":1,"mExpandedHeight":25,"mIsOpen":false,"mIsSubmix":false,"mMatrix":[],"mName":"","mPan":0,"mPannerAssignments":[],"mSolo":false,"mTrackID":-1,"mVolume":1},{"mAudioSends":[],"mChannelType":1,"mExpandedHeight":25,"mIsOpen":false,"mIsSubmix":false,"mMatrix":[],"mName":"","mPan":0,"mPannerAssignments":[],"mSolo":false,"mTrackID":-1,"mVolume":1},{"mAudioSends":[],"mChannelType":1,"mExpandedHeight":25,"mIsOpen":false,"mIsSubmix":false,"mMatrix":[],"mName":"","mPan":0,"mPannerAssignments":[],"mSolo":false,"mTrackID":-1,"mVolume":1}]
+ 3
+ 2
+ false
+ false
+ false
+ 1,1
+ 1297107278
+ I-Frame Only MPEG
+ 1297107278
+ I-Frame Only MPEG
+ cc7991f5-c236-4db1-957e-2c71f924e81c
+ cc7991f5-c236-4db1-957e-2c71f924e81c
+
+
+
+ en_US
+
+
+
+
+ fupduddy
+ en_US
+
+
+ 0
+ 200
+ 102
+ 1
+ 5292000
+ 0,0,1920,1080
+ 8475667200
+
+
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/Registry.png b/pype/premiere/extensions/com.pype.rename/payloads/Registry.png
new file mode 100644
index 0000000000..0d8f5a4cea
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/Registry.png differ
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/addons.png b/pype/premiere/extensions/com.pype.rename/payloads/addons.png
new file mode 100644
index 0000000000..c631ad903e
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/addons.png differ
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/estk.png b/pype/premiere/extensions/com.pype.rename/payloads/estk.png
new file mode 100644
index 0000000000..e68834a5cf
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/estk.png differ
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/example.epr b/pype/premiere/extensions/com.pype.rename/payloads/example.epr
new file mode 100644
index 0000000000..e44682b8cd
--- /dev/null
+++ b/pype/premiere/extensions/com.pype.rename/payloads/example.epr
@@ -0,0 +1,4001 @@
+
+
+
+
+ false
+
+ false
+
+
+
+ false
+ -1
+
+ false
+ false
+
+ 10
+
+ false
+ -101606400000000000
+ false
+ false
+ false
+ false
+ 0
+ 0,0,0,0
+ false
+ 0
+
+
+ false
+ true
+ true
+ 125affd7-e3d0-4a1b-a6db-e3f4a9df64dc
+
+
+ 1211250228
+ 1313424203
+
+
+ Custom
+ awfulLooking
+
+ 1
+
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 10
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ ADBEAudioTabGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ADBEMPEGAudioFormatGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+ ADBEMPEGAudioFormat
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 1094796064
+
+
+
+
+ ADBEAudioCodecGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 8
+ 0
+
+
+
+
+
+ ADBEBasicAudioGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AAC
+ ADBEAudioCodec
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 1094796064
+
+
+
+ AAC
+ ADBEAudioRatePerSecond
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 48000
+
+
+
+ AAC
+ ADBEAudioNumChannels
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 2
+ 2
+
+
+
+ AAC
+ ADBEAACParametricStereo
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 3
+ 1
+ false
+
+
+
+ AAC
+ ADBEAudioSampleType
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ true
+ false
+ false
+ false
+ 4
+ 2
+ 1
+
+
+
+ AAC
+ ADBEAACAudioQuality
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 5
+ 2
+ 2
+
+
+
+
+ ADBEAudioCodecPrefsButton
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 6
+ 7
+ false
+
+
+
+
+ ADBEMPEGAudioLayer
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 7
+ 2
+ 0
+
+
+
+
+ ADBEMPEGAudioMode
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 8
+ 2
+ 0
+
+
+
+
+
+ ADBEAudioBitrateGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+ ADBEAudioBitrate
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 128
+
+
+
+
+
+ ADBEAudioAdvancedSettingsGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 4
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AAC
+ ADBEAACAudioPrecedence
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+ AAC
+ ADBEAACAudioOversampled
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 1
+ 1
+ false
+
+
+
+
+ ADBEMPEGAudioPsychModel
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 2
+ 2
+ 0
+
+
+
+
+ ADBEMPEGAudioDeemphasis
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 3
+ 2
+ 0
+
+
+
+
+ ADBEMPEGAudioEnableCRC
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 4
+ 1
+ false
+
+
+
+
+ ADBEMPEGAudioEnablePrivateBit
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 5
+ 1
+ false
+
+
+
+
+ ADBEMPEGAudioEnableCopyrightBit
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 6
+ 1
+ false
+
+
+
+
+ ADBEMPEGAudioEnableOriginalBit
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 7
+ 1
+ false
+
+
+
+
+
+ ADBEAudioChannelConfigurationGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 5
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+ eyJtQWxsb3dlZENoYW5uZWxMYXlvdXRWZWN0b3IiOltdLCJtQ2hhbm5lbExheW91dFZlY3RvciI6W1t7ImNoYW5uZWxsYWJlbCI6MTAwfSx7ImNoYW5uZWxsYWJlbCI6MTAxfV1dLCJtTWF4TnVtQXVkaW9DaGFubmVscyI6MzIsIm1NYXhOdW1BdWRpb0NoYW5uZWxzUGVyU3RyZWFtIjozMiwibU1heE51bUF1ZGlvU3RyZWFtcyI6MzIsIm1WZXJzaW9uIjoxfQ==
+ ADBEAudioChannelConfiguration
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 0
+ 9
+
+
+
+
+
+ ADBEDolby_Group_0
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 6
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ ADBEDolby_1
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 7
+
+
+
+
+ ADBEDolby_2
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 1
+
+
+
+
+ ADBEDolby_4
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ 2
+ 2
+ -31
+
+
+
+
+
+ ADBEDolby_Group_3
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 7
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+ ADBEDolby_5
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+
+ ADBEDolby_6
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 1
+ true
+
+
+
+
+ ADBEDolby_7
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 1
+ true
+
+
+
+
+ ADBEDolby_8
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 2
+ 0
+
+
+
+
+ ADBEDolby_9
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 4
+ 2
+ 1
+
+
+
+
+
+ ADBEDolby_Group_2
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 8
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+ ADBEDolby_10
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+
+ ADBEDolby_11
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 4
+
+
+
+
+ ADBEDolby_12
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 2
+ 4
+
+
+
+
+ ADBEDolby_13
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 2
+ 4
+
+
+
+
+ ADBEDolby_14
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 4
+ 2
+ 4
+
+
+
+
+
+ ADBEDolby_Group_1
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 9
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ ADBEDolby_15
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 1
+ true
+
+
+
+
+ ADBEDolby_16
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 1
+ true
+
+
+
+
+ ADBEDolby_17
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 1
+ true
+
+
+
+
+ ADBEDolby_18
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 1
+ false
+
+
+
+
+
+ ADBEDolby_Group_4
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 10
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+ ADBEDolby_19
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 1
+
+
+
+
+ ADBEDolby_20
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 1
+
+
+
+
+
+ ADBEDolby_Group_5
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 11
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ ADBEDolby_21
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+
+ ADBEDolby_22
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ 1
+ 2
+ 105
+
+
+
+
+ ADBEDolby_23
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 2
+ 2
+
+
+
+
+
+ ADBEVideoTabGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ ADBEVideoCodecGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 0
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+ ADBEVideoCodec
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+
+
+ ADBEBasicVideoGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BgAAAA==
+ ADBEVideoMatchSource
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 7
+ false
+
+
+
+
+ ADBEVideoQuality
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ true
+ false
+ 1
+ 2
+ 100
+
+
+
+
+ ADBEVideoWidth
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 2
+ 176
+
+
+
+
+ ADBEVideoHeight
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 2
+ 120
+
+
+
+
+ ADBEVideoFPS
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 4
+ 4
+ 25401600000
+
+
+
+
+ ADBEVideoFieldType
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 5
+ 2
+ 0
+
+
+
+
+ ADBEVideoAspect
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 6
+ 11
+ 1,1
+
+
+
+
+ ADBEMPEGTVStandard
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 7
+ 2
+ 0
+
+
+
+
+ ADBEVideoMPEGProfile
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 8
+ 2
+ 3
+
+
+
+
+ ADBEVideoMPEGProfileLevel
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 9
+ 2
+ 10
+
+
+
+
+ ADBERenderDeepColor
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 10
+ 1
+ false
+
+
+
+
+
+ ADBEVideoBitrateGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+ ADBEVideoBitrateEncoding
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 2
+
+
+
+
+ ADBEVideoBitrateLevel
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 0
+
+
+
+
+ ADBEVideoMinBitrate
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ true
+ false
+ 2
+ 3
+ 2.
+
+
+
+
+ ADBEVideoTargetBitrate
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ 3
+ 3
+ 0.080000000000000001665335
+
+
+
+
+ ADBEVideoMaxBitrate
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ 4
+ 3
+ 0.080000000000000001665335
+
+
+
+
+
+ ADBEVideoAdvancedSettingsGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 3
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+ ADBEMPEGKeyframeRate
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 90
+
+
+
+
+
+ ADBEVideoVRGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 4
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+ ADBEVideoVRDoExport
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 1
+ false
+
+
+
+
+ ADBEVideoVRStereoscopic
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 0
+
+
+
+
+
+ ADBEMPEGMuxTabGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 2
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+ ADBEMPEGMuxBasicSettingsGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 8
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+ ADBEMPEGMultiplexer
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 2
+ 1297101856
+
+
+
+
+ ADBEMPEGMuxStreamCompatibility
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1
+ 2
+ 1398031392
+
+
+ 9
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ false
+
+
+
+
+
+ 0
+ 1.
+ 0
+ 0
+ 228cda18-3625-4d2d-951e-348879e4ed93
+ 1
+
+ AE.ADBE Lumetri
+ InternalSerialize
+
+
+ 2
+ AE.ADBE Lumetri
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lumetri Color
+ false
+ 0
+
+
+
+
+
+ 1
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+ File Path
+
+
+
+
+ 62
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 2
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Basic Correction
+
+
+
+
+ 3
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 4
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 95
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 5
+ false
+
+ 998
+ 0
+ 0
+ -91445760000000000,0,0,0,0,0,0,0
+ 7
+ true
+ false
+ false
+
+ Input LUT
+
+
+
+
+ 63
+ false
+
+ 1000.
+ 100.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ HDR White
+
+
+
+
+ 6
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ White Balance
+
+
+
+
+ 94
+ false
+
+ 18446744073709551615
+ 0
+ 0
+ -91445760000000000,18374897589125431296,0,0,0,0,0,0
+ 5
+ false
+ false
+ false
+
+ Show Mask
+
+
+
+
+ 7
+ false
+
+ 100.
+ -100.
+ 300.
+ -300.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Temperature
+
+
+
+
+ 8
+ false
+
+ 100.
+ -100.
+ 300.
+ -300.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Tint
+
+
+
+
+ 9
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 10
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Tone
+
+
+
+
+ 11
+ false
+
+ 5.
+ -5.
+ 7.
+ -7.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Exposure
+
+
+
+
+ 12
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Contrast
+
+
+
+
+ 13
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Highlights
+
+
+
+
+ 14
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Shadows
+
+
+
+
+ 15
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Whites
+
+
+
+
+ 16
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Blacks
+
+
+
+
+ 64
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ HDR Specular
+
+
+
+
+ 17
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+
+
+
+
+
+ 18
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+
+
+
+
+
+ 19
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 20
+ false
+
+ 200.
+ 300.
+ 0.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Saturation
+
+
+
+
+ 21
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 22
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Creative
+
+
+
+
+ 23
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 24
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 96
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 25
+ false
+
+ 998
+ 0
+ 0
+ -91445760000000000,0,0,0,0,0,0,0
+ 7
+ true
+ false
+ false
+
+ Look
+
+
+
+
+ 26
+ false
+
+ 200.
+ 0.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Intensity
+
+
+
+
+ 27
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Adjustments
+
+
+
+
+ 28
+ false
+
+ 100.
+ 150.
+ 0.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Faded Film
+
+
+
+
+ 29
+ false
+
+ 100.
+ -100.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Sharpen
+
+
+
+
+ 30
+ false
+
+ 100.
+ -100.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Vibrance
+
+
+
+
+ 31
+ false
+
+ 200.
+ 300.
+ 0.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Saturation
+
+
+
+
+ 32
+
+ 0
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 33
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Tint Balance
+
+
+
+
+ 34
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 35
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 36
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Curves
+
+
+
+
+ 37
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 38
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ RGB Curves
+
+
+
+
+ 65
+ false
+
+ 10000.
+ 100.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ HDR Range
+
+
+
+
+ 39
+
+ 0
+ AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 40
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 41
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Hue Saturation Curve
+
+
+
+
+ 42
+
+ 0
+ AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 43
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 44
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 45
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Color Wheels
+
+
+
+
+ 46
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 66
+ false
+
+ 1000.
+ 100.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ HDR White
+
+
+
+
+ 47
+
+ 0
+ AAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAA
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 48
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 67
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ HSL Secondary
+
+
+
+
+ 68
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 69
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Key
+
+
+
+
+ 70
+ false
+
+ 18446744073709551615
+ 0
+ 0
+ -91445760000000000,18374686479671623680,0,0,0,0,0,0
+ 5
+ false
+ false
+ false
+
+ Set color
+
+
+
+
+ 71
+ false
+
+ 18446744073709551615
+ 0
+ 0
+ -91445760000000000,18374686479671623680,0,0,0,0,0,0
+ 5
+ false
+ false
+ false
+
+ Add color
+
+
+
+
+ 72
+ false
+
+ 18446744073709551615
+ 0
+ 0
+ -91445760000000000,18374686479671623680,0,0,0,0,0,0
+ 5
+ false
+ false
+ false
+
+ Remove color
+
+
+
+
+ 73
+
+ 0
+ AAAAAD8AAAAAAAAAAAEAAAA/AAAAAAAAAAABAAAAPwAAAAAAAAAAAQ==
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 74
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 75
+ false
+
+ 2
+ 0
+ 0
+ -91445760000000000,0,0,0,0,0,0,0
+ 7
+ true
+ false
+ false
+
+
+
+
+
+
+ 76
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 77
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+
+
+
+
+
+ 78
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+
+
+
+
+
+ 79
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 80
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Refine
+
+
+
+
+ 81
+ false
+
+ 100.
+ 0.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Denoise
+
+
+
+
+ 82
+ false
+
+ 30.
+ 1000.
+ 0.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Blur
+
+
+
+
+ 83
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+ Blur
+
+
+
+
+ 84
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Correction
+
+
+
+
+ 85
+
+ 0
+ AAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAA
+ -91445760000000000
+ 9
+ false
+ false
+ false
+
+
+
+
+
+ 93
+
+ 0
+ AAAAAA==
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 86
+ false
+
+ 100.
+ -100.
+ 300.
+ -300.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Color Wheels
+
+
+
+
+ 87
+ false
+
+ 100.
+ -100.
+ 300.
+ -300.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Temperature
+
+
+
+
+ 88
+ false
+
+ 100.
+ -100.
+ 150.
+ -150.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Tint
+
+
+
+
+ 89
+ false
+
+ 100.
+ -100.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Contrast
+
+
+
+
+ 90
+ false
+
+ 200.
+ 300.
+ 0.
+ 0.
+ -91445760000000000,100.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Sharpen
+
+
+
+
+ 91
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+ Sharpen
+
+
+
+
+ 92
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 49
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ Vignette
+
+
+
+
+ 50
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+
+
+ 51
+ false
+
+ 3.
+ -3.
+ 5.
+ -5.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Amount
+
+
+
+
+ 52
+ false
+
+ 100.
+ 0.
+ 0.
+ -91445760000000000,50.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Midpoint
+
+
+
+
+ 53
+ false
+
+ 100.
+ -100.
+ 0.
+ -91445760000000000,0.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Roundness
+
+
+
+
+ 54
+ false
+
+ 100.
+ 0.
+ 0.
+ -91445760000000000,50.,0,0,0,0,0,0
+ 8
+ false
+ false
+ false
+
+ Feather
+
+
+
+
+ 55
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 56
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 11
+ false
+ false
+ false
+
+ SpeedGrade Custom
+
+
+
+
+ 57
+ false
+
+ true
+ false
+ false
+ -91445760000000000,true,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+ Custom Layer
+
+
+
+
+ 58
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+ unused
+
+
+
+
+ 59
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 16
+ false
+ false
+ false
+
+ unused
+
+
+
+
+ 60
+
+ 0
+ /v4=
+ -91445760000000000
+ 10
+ false
+ false
+ false
+
+
+
+
+
+ 61
+ false
+
+ false
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 12
+ false
+ false
+ false
+
+
+
+
+
+
+ 97
+ false
+
+ true
+ false
+ false
+ -91445760000000000,false,0,0,0,0,0,0
+ 4
+ false
+ false
+ false
+
+
+
+
+ 0.
+ 100.
+ 10.
+ 0
+ 1
+ false
+
+
+ false
+ 100.
+ 0.
+ 0.
+ 4
+
+ 100
+ 0
+ 1.
+ 0
+ 0
+ 1
+ 1
+ false
+
+
+ 0
+ false
+ false
+ false
+ 100.
+ 1
+ true
+
+
+ false
+ 15.
+ 0.
+ 0.
+ 1
+ 40
+
+ 1
+
+ 0
+ 1.
+ 0
+ 0
+ 1
+ 1
+ false
+
+
+ 0
+ 0
+ 2
+ 0
+ 40
+ false
+ 15.
+ 0.
+ 0.
+ 7
+ 0
+ 1.
+ 0
+ 0
+ 1
+ 1
+ false
+
+
+ 1
+ 8484142867200
+ 1.
+ 0
+ 1
+ false
+
+
+ 10.
+ 64.
+ 4
+ 130.
+ -30.
+ 100.
+ 0.
+ 130.
+ -30.
+ 3
+ 0
+ 10.
+ 192.
+ 1
+ false
+
+
+ 200.
+ 12.
+ -2.
+ -24.
+ 0
+ 0
+ eyJjdXN0b21EYXRhIjp7InVzZVNjZW5hcmlvIjoyfSwibUFsbG93ZWRDaGFubmVsTGF5b3V0VmVjdG9yIjpbW3siY2hhbm5lbGxhYmVsIjowfV0sW3siY2hhbm5lbGxhYmVsIjoxMDB9LHsiY2hhbm5lbGxhYmVsIjoxMDF9XSxbeyJjaGFubmVsbGFiZWwiOjEwMH0seyJjaGFubmVsbGFiZWwiOjEwMX0seyJjaGFubmVsbGFiZWwiOjEwMn0seyJjaGFubmVsbGFiZWwiOjEwM30seyJjaGFubmVsbGFiZWwiOjEwNH0seyJjaGFubmVsbGFiZWwiOjEwNX1dXSwibUNoYW5uZWxMYXlvdXRWZWN0b3IiOltdLCJtTWF4TnVtQXVkaW9DaGFubmVscyI6MiwibU1heE51bUF1ZGlvQ2hhbm5lbHNQZXJTdHJlYW0iOjIsIm1NYXhOdW1BdWRpb1N0cmVhbXMiOjMyLCJtVmVyc2lvbiI6MX0=
+
+ false
+ false
+ false
+ 2.
+ 1
+ false
+
+
+ 1
+
+
+
+
+
+ 0
+ 0
+
+
+
+ Captions
+ ADBECaptionTabGroup
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ 10
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ ADBECaptionExportOption
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 0
+ 2
+ 0
+
+
+
+
+ ADBECaptionFormat
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 1
+ 2
+ 0
+
+
+
+
+ ADBECaptionFrameRate
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ 2
+ 2
+ 102
+
+
+
+
+ ADBECaptionStreamFormat
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ true
+ false
+ false
+ false
+ 3
+ 2
+ 0
+
+
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/localhost.png b/pype/premiere/extensions/com.pype.rename/payloads/localhost.png
new file mode 100644
index 0000000000..12e8ef9d87
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/localhost.png differ
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/onbeforeunload.html b/pype/premiere/extensions/com.pype.rename/payloads/onbeforeunload.html
new file mode 100644
index 0000000000..f4a609b77e
--- /dev/null
+++ b/pype/premiere/extensions/com.pype.rename/payloads/onbeforeunload.html
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
PProPanel opened this page...
+
+
+
+
+
+
+
+
+
+
PProPanel opened this page...
+
+
...upon receiving onbeforeunload from PPro.
+
+
[This page will auto-close in 10 seconds.]
+
+
This would be a great time for your panel to close any open sockets, sign out of databases, and perform any other pre-shutdown cleanup you may want to do.
+
+
There are some restrictions: not all of CSInterface is available, and you can't pop any alerts.
+
+
+
+
+
+
+
+
+
+
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/sequence_output_options.png b/pype/premiere/extensions/com.pype.rename/payloads/sequence_output_options.png
new file mode 100644
index 0000000000..5a83ace12b
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/sequence_output_options.png differ
diff --git a/pype/premiere/extensions/com.pype.rename/payloads/test.jpg b/pype/premiere/extensions/com.pype.rename/payloads/test.jpg
new file mode 100644
index 0000000000..611a4bf673
Binary files /dev/null and b/pype/premiere/extensions/com.pype.rename/payloads/test.jpg differ
diff --git a/pype/vendor/pico/server.py b/pype/vendor/pico/server.py
index c5f0d1602e..dc57f4455d 100644
--- a/pype/vendor/pico/server.py
+++ b/pype/vendor/pico/server.py
@@ -13,14 +13,15 @@ log = logging.getLogger(__name__)
def run_app(app, **kwargs):
- ip = kwargs.get("ip", '127.0.0.1')
- port = kwargs.get("port", 4242)
- use_debugger = kwargs.get("use_debugger", True)
- use_reloader = kwargs.get("use_reloader", True)
- threaded = kwargs.get("threaded", True)
-
+ ip = kwargs.get("ip")
+ port = kwargs.get("port")
+ use_debugger = kwargs.get("use_debugger")
+ use_reloader = kwargs.get("use_reloader")
+ threaded = kwargs.get("threaded")
+ html_dir = kwargs.get("html_dir")
+ log.info("html_dir: {}".format(html_dir))
app = SharedDataMiddleware(app, {
- '/': 'static'
+ '/': html_dir
})
while True:
try:
@@ -40,18 +41,20 @@ if __name__ == '__main__':
module_name += ':app'
app = import_string(module_name)
- ip = os.getenv("PICO_IP", None)
+ ip = os.getenv("PICO_IP", '127.0.0.1')
if ip and ip.startswith('http'):
ip = ip.replace("http://", "")
kwargs = {"ip": ip,
- "port": int(os.getenv("PICO_PORT", None)),
- "use_debugger": os.getenv("PICO_DEBUG", None),
- "use_reloader": os.getenv("PICO_RELOADER", None),
- "threaded": os.getenv("PICO_THREADED", None), }
+ "port": int(os.getenv("PICO_PORT", 4242)),
+ "use_debugger": os.getenv("PICO_DEBUG", True),
+ "use_reloader": os.getenv("PICO_RELOADER", True),
+ "threaded": os.getenv("PICO_THREADED", True),
+ "html_dir": os.getenv("PICO_HTML_DIR", 'static'), }
log.info("Pico.server > settings: "
+ "\n\thtml_dir: {html_dir}"
"\n\tip: {ip}"
"\n\tport: {port}"
"\n\tuse_debugger: {use_debugger}"
diff --git a/pype/vendor/pysync.py b/pype/vendor/pysync.py
index 139c8eb538..65075f0407 100644
--- a/pype/vendor/pysync.py
+++ b/pype/vendor/pysync.py
@@ -57,7 +57,7 @@ else:
def compare(fa, fb, options_input=[]):
if isfile(fa) == isfile(fb):
if isdir(fa):
- walktree(fa, fb)
+ walktree(fa, fb, options_input)
elif isfile(fa):
if getsize(fa) != getsize(fb) \
or int(getmtime(fa)) != int(getmtime(fb)):
@@ -166,7 +166,7 @@ def walktree(source, target, options_input=[]):
continue
if tpath in tarentry:
continue
- copy(tpath, spath)
+ copy(tpath, spath, options_input)
if __name__ == '__main__':
@@ -202,5 +202,5 @@ if __name__ == '__main__':
for folder in sto_content:
if folder in tar_content:
print('Processing', folder)
- walktree(sto_content[folder], tar_content[folder])
+ walktree(sto_content[folder], tar_content[folder], options_input)
print("Done.")
diff --git a/pype/widgets/message_window.py b/pype/widgets/message_window.py
index 9cbf15a87f..0d57d7fba0 100644
--- a/pype/widgets/message_window.py
+++ b/pype/widgets/message_window.py
@@ -45,7 +45,7 @@ class Window(QWidget):
def exit(self):
self.hide()
# self.parent.exec_()
- self.parent.hide()
+ # self.parent.hide()
return
@@ -54,4 +54,4 @@ def message(title=None, message=None, level="info"):
app = QApplication(sys.argv)
ex = Window(app, title, message, level)
ex.show()
- sys.exit(app.exec_())
+ # sys.exit(app.exec_())