(function mistikaVRToAENull () { /* aequery */ var aeq=function(){var aeq=function(selector,context){if(aeq.isNullOrUndefined(selector))return selector;var result;if(aeq.isAeq(selector))result=selector;else if(aeq.isString(selector))result=aeq.select(selector,context);else if(aeq.isArray(selector))result=aeq.arrayEx(selector);else if(aeq.isApp(selector))result=aeq.app;else if(aeq.isComp(selector))result=new aeq.Comp(selector);else if(aeq.isLayer(selector))result=new aeq.Layer(selector);else if(aeq.isProperty(selector))result=new aeq.Property(selector);result.aeq=true;return result};aeq.version="0.4.0";aeq.thisObj=this;if("object"===typeof module)module.exports=aeq;aeq.extend=function(){var options,name,src,copy,copyIsArray,clone,target=setDefault(arguments[0],{}),i=1,length=arguments.length,deep=false;if("boolean"===typeof target){deep=target;target=setDefault(arguments[i],{});i++}if("object"!==typeof target&&!aeq.isFunction(target))target={};if(i===length){target=this;i--}for(;i=14)return obj.markerProperty;return null},getKeys:function(property){var arr=[],i,len;if(aeq.isArray(property)){for(i=0,len=property.length;i0){var part=parts[0];var unshifted=false;switch(part.type){case"activecomp":results=filterResults(aeq.arrayEx([aeq.getActiveComposition()]));results.type="comp";break;case"composition":case"comp":results=filterResults(aeq.getCompositions());results.type="comp";break;case"layer":if("comp"===results.type||aeq.isComp(results[0])){results=filterResults(aeq.getLayers(results));results.type="layer"}else if("comp"!==results.type){parts.unshift({type:"comp"});unshifted=true}break;case"propertygroup":case"propgrp":case"propgroup":if("layer"===results.type||"propertygroup"===results.type||aeq.isLayer(results[0])||aeq.isPropertyGroup(results[0])){results=filterResults(aeq.getProperties(results,{separate:false,groups:true,props:false}));results.type="propertygroup"}else if("layer"!==results.type){parts.unshift({type:"layer"});unshifted=true}break;case"property":case"prop":if("layer"===results.type||"propertygroup"===results.type||aeq.isLayer(results[0])||aeq.isPropertyGroup(results[0])){results=filterResults(aeq.getProperties(results,{separate:false}));results.type="property"}else if("layer"!==results.type){parts.unshift({type:"layer"});unshifted=true}break;case"effect":if("layer"===results.type||aeq.isLayer(results[0])){results=filterResults(aeq.getEffects(results));results.type="effect"}else if("layer"!==results.type){parts.unshift({type:"layer"});unshifted=true}break;case"key":case"keys":if("property"===results.type||aeq.isProperty(results[0])){results=filterResults(aeq.getKeys(results));results.type="key"}else if("property"!==results.type){parts.unshift({type:"property"});unshifted=true}break;case"item":results=filterResults(aeq.getItems());results.type="item";break;default:throw new Error("Unrecognized token "+part.type)}if(!unshifted)parts.shift()}function filterResults(arr){if(part.props||part.pseudo)return arr.filter(filter);return arr}function filter(obj){var ret=true,len,pseudo;if(null!==part.props)if(!hasAllAttributes(obj,part.props,false))return false;if(!part.pseudo)return true;len=part.pseudo.length;for(var i=0;i=13&&appVersion<13.5)versionPrettyName="CC 2014";else if(appVersion>=13.5&&appVersion<14)versionPrettyName="CC 2015";else if(appVersion>=14)versionPrettyName="CC 2017";return[Folder.current.fullName+"/Presets/",Folder.myDocuments.fullName+"/Adobe/After Effects "+versionPrettyName+"/User Presets/"]},ensureSecurityPrefEnabled:function(){if(!aeq.app.securityPrefEnabled()){if(confirm("This script requires access to write files.\n"+'Go to the "General" panel of the application preferences and ensure\n'+'"Allow Scripts to Write Files and Access Network" is checked.\n\nOpen prefs now?'))app.executeCommand(2359);if(!aeq.app.securityPrefEnabled())throw new Error("Security preference is not enabled! Can't continue.")}},open:function(filePath){var file=aeq.getFile(filePath);if(file)return app.open(file);return app.open()}});aeq.open=aeq.app.open;aeq.AEversion=aeq.app.version;aeq.command=aeq.extend({},{toString:function(){return"[object aeq.command]"},extend:aeq.extend,call:function(windows,mac,arg){if(aeq.isObject(arguments[0])){var args=arguments[0];windows=setDefault(args.win,args.windows);mac=setDefault(args.mac,args.osx);arg=args.arg}var command=mac;if(aeq.isWindows)command=windows;arg=void 0!==arg?" "+arg:"";return system.callSystem(command+arg)},openURL:function(URL){try{if(null===URL.match(/^https?:\/\//))URL="http://"+URL;aeq.command.call({win:'cmd /c "explorer',mac:"open",arg:URL})}catch(err){alert("Error in openURL function\n"+err.toString())}},revealFile:function(filePath){if(aeq.isFile(filePath))filePath=filePath.fsName;return aeq.command.call("Explorer /select,","open -R",'"'+filePath+'"')},copyToClipboard:function(text){aeq.command.call('cmd.exe /c cmd.exe /c "echo '+text+' | clip"','echo "'+text+'" | pbcopy')}});aeq.callSystem=aeq.command.call;aeq.openURL=aeq.command.openURL;aeq.revealFile=aeq.command.revealFile;aeq.copyToClipboard=aeq.command.copyToClipboard;aeq.comp=aeq.extend({},{toString:function(){return"[object aeq.comp]"},extend:aeq.extend,create:function(folder,options){if(!aeq.isFolderItem(folder)){options=setDefault(folder,{});folder=setDefault(options.folder,app.project)}var defaultOptions={name:"Comp",width:1920,height:1080,pixelAspect:1,duration:1,frameRate:24};options=aeq.extend(defaultOptions,options);return folder.items.addComp(options.name,options.width,options.height,options.pixelAspect,options.duration,options.frameRate)},getCompInQueue:function(comp,queuedOnly){if(aeq.isNullOrUndefined(queuedOnly))queuedOnly=true;var queuedItems;if(queuedOnly)queuedItems=aeq.renderqueue.getQueuedItems();else queuedItems=aeq.renderqueue.getRQItems();return aeq.filter(queuedItems,function(item){return item.comp.id==comp.id})},isInQueue:function(comp){if(!aeq.isComp(comp))return null;var items=aeq.renderqueue.getRQItems();return items.exists(function(item){return item.comp.id==comp.id})},isQueued:function(comp){return aeq.comp.getCompInQueue(comp,true).length>0}});aeq.file=aeq.extend({},{toString:function(){return"[object aeq.file]"},extend:aeq.extend,pathSeparatorSymbol:$.os.indexOf("Windows")>-1?"\\":"/",normalizePathArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if("."===last)parts.splice(i,1);else if(".."===last){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot)for(;up--;up)parts.unshift("..");return parts},pathIsAbsolute:function(path){return path.charAt(0)===aeq.file.pathSeparatorSymbol},normalizePath:function(path){var pathIsAbsolute=aeq.file.pathIsAbsolute(path),trailingSlash=path.substr(-1)===aeq.file.pathSeparatorSymbol;path=aeq.file.normalizePathArray(aeq.filter(path.split(aeq.file.pathSeparatorSymbol),function(p){return!!p}),!pathIsAbsolute).join(aeq.file.pathSeparatorSymbol);if(!path&&!pathIsAbsolute)path=".";if(path&&trailingSlash)path+=aeq.file.pathSeparatorSymbol;return(pathIsAbsolute?aeq.file.pathSeparatorSymbol:"")+path},joinPath:function(){var paths=Array.prototype.slice.call(arguments,0);return aeq.file.normalizePath(aeq.filter(paths,function(p,index){if(p&&"string"===typeof p.fsName){p=p.fsName;paths[index]=p}if("string"!==typeof p)throw new TypeError("Arguments to path.join must be strings, Files or Folders");return p}).join(aeq.file.pathSeparatorSymbol))},getExtension:function(filePath){var filePathStr=aeq.isFile(filePath)?filePath.name:filePath;return filePathStr.substr(filePathStr.lastIndexOf(".")+1,filePathStr.length)},stripExtension:function(filePath){var filePathStr=aeq.isFile(filePath)?filePath.name:filePath;return filePathStr.substr(0,filePathStr.lastIndexOf("."))},getFileObject:function(filePath){return aeq.isFile(filePath)?filePath:new File(filePath)},getFile:function(filePath){var file=aeq.getFileObject(filePath);if(!file.exists)return null;return file},getFiles:function(folderPath,filter){filter=setDefault(filter,"");var folder=aeq.getFolder(folderPath),files;files=folder.getFiles(filter);if(null===files||0===files.length)return null;return aeq.arrayEx(files)},getFolderObject:function(folderPath){return aeq.isFolder(folderPath)?folderPath:new Folder(folderPath)},getFolder:function(folderPath){var folder=aeq.getFolderObject(folderPath);if(!folder.exists)return null;return folder},ensureFolderExists:function(folderPath){var folder=aeq.getFolderObject(folderPath);if(!folder.exists)folder.create();return folder},readFile:function(filePath,encoding){var file=aeq.getFileObject(filePath),contents;encoding=setDefault(encoding,"UTF-8");if(file.exists){if(File.isEncodingAvailable(encoding))file.encoding=encoding;file.open();contents=file.read();file.close();return contents}return null},writeFile:function(filePath,contents,options){var file=aeq.getFileObject(filePath);options=aeq.setDefault(options,{});if(file.exists&&false===options.overwrite)return null;if(!file.exists)aeq.file.ensureFolderExists(file.path);if(!aeq.isNullOrUndefined(options.encoding)&&File.isEncodingAvailable(options.encoding))file.encoding=options.encoding;file.open("w");var success=file.write(contents);file.close();if(success)return file;return null}});aeq.pathSeparatorSymbol=aeq.file.pathSeparatorSymbol;aeq.getFileObject=aeq.file.getFileObject;aeq.getFolderObject=aeq.file.getFolderObject;aeq.getFile=aeq.file.get=aeq.file.getFile;aeq.getFiles=aeq.file.getFiles;aeq.getFolder=aeq.file.getFolder;aeq.readFile=aeq.file.readFile;aeq.writeFile=aeq.file.writeFile;aeq.layer=aeq.extend({},{toString:function(){return"[object aeq.layer]"},extend:aeq.extend,setLayerToggles:function(sourceLayer,destLayer){var switches="enabled solo shy quality effectsActive motionBlur "+"adjustmentLayer threeDLayer blendingMode preserveTransparency "+"parent inPoint stretch startTime outPoint label guideLayer "+"name comment autoOrient";switches=switches.split(" ");aeq.forEach(switches,function(switchName){destLayer[switchName]=sourceLayer[switchName]})},children:function(parentLayer){var layers=aeq.getLayers(parentLayer.containingComp);return layers.filter(function(layer){return layer.parent===parentLayer})},allChildren:function(parentLayer){var allChildren=[];var children=aeq.layer.children(parentLayer);aeq.forEach(children,function(layer){allChildren.push(layer);allChildren=allChildren.concat(aeq.layer.allChildren(layer))});return aeq.arrayEx(allChildren)},parents:function(childLayer){var parents=aeq.arrayEx();var layer=childLayer;while(null!==layer.parent){parents.push(layer.parent);layer=layer.parent}return parents},relatedLayers:function(root){var parents=aeq.layer.parents(root);var children=aeq.layer.allChildren(root);var all=parents.push.apply(parents,children);return aeq.arrayEx(all)}});aeq.project=aeq.extend({},{toString:function(){return"[object aeq.project]"},extend:aeq.extend,getFootage:function(){var items=aeq.getItems();return aeq.filter(items,aeq.isFootageItem)},getFolders:function(parentFolder){var folders=aeq.getItems(parentFolder);return folders.filter(aeq.isFolderItem)},findFolder:function(name,parentFolder){var folders=aeq.project.getFolders(parentFolder);var folder=aeq.filter(folders,function(folder){return folder.name==name});if(folder.length)return folder[0];return null},getFolder:function(folder,parentFolder){if(aeq.isFolderItem(folder))return folder;if(aeq.isString(folder))return aeq.project.findFolder(folder,parentFolder);return null},getSelectedFolders:function(){return aeq.filter(app.project.selection,aeq.isFolderItem)},getSelectedComps:function(){return aeq.filter(app.project.selection,aeq.isComp)},getSelectedFootage:function(){return aeq.filter(app.project.selection,aeq.isFootageItem)},getOrCreateFolder:function(folder,parentFolder){if(aeq.isNullOrUndefined(parentFolder))parentFolder=app.project.rootFolder;else parentFolder=aeq.project.getOrCreateFolder(parentFolder);var foundFolder=aeq.project.getFolder(folder,parentFolder);if(aeq.isNullOrUndefined(foundFolder))return parentFolder.items.addFolder(folder);return foundFolder},getFolderOrRoot:function(folder){folder=aeq.project.getFolder(folder);if(aeq.isNullOrUndefined(folder))return app.project.rootFolder;return folder},save:function(path){if(!path)return app.project.save();var file=aeq.getFileObject(path);if(file.exists)if(!confirm("File exists! Overwrite?"))return null;return app.project.save(file)},quickSave:function(){var file=aeq.app.getAEP();return app.project.save(file)},importFile:function(file,folder,options){var proj=app.project,newItem;var newFile=aeq.getFile(file);if(!aeq.isFile(newFile))throw new Error(file+" is not a valid file!");if(aeq.isNullOrUndefined(folder))folder=app.project.rootFolder;else folder=aeq.project.getOrCreateFolder(folder);options=setDefault(options,{});var iO=new ImportOptions(newFile);if(true===options.sequence)iO.sequence=true;try{newItem=proj.importFile(iO)}catch(e){throw new Error("Can't import file "+newFile.name+"\n"+String(e))}if(newItem.duration*newItem.frameRate==1)newItem.replace(file);newItem.parentFolder=folder;newItem.selected=false;return newItem},simpleImportFile:function(file,options){var iO=new ImportOptions(file);options=setDefault(options,{});if(true===options.sequence)iO.sequence=true;try{newItem=app.project.importFile(iO)}catch(e){throw new Error("Can't import file "+file.name+"\n"+String(e))}return newItem},importSequence:function(file,folder){return aeq.importFile(file,folder,{sequence:true})},importFiles:function(fileArray,folder,options){var importedItems=aeq.arrayEx();aeq.forEach(fileArray,function(file){var item=aeq.importFile(file,folder,options);importedItems.push(item)});return importedItems},moveToFolder:function(items,folder){folder=aeq.project.getFolder(folder);if(!aeq.isArray(items))items=[items];aeq.forEach(items,function(item){item.parentFolder=folder;item.selected=false})},reduceToQueuedComps:function(){var queuedComps=aeq.renderqueue.getQueuedComps();if(0===queuedComps.length)return null;app.project.reduceProject(queuedComps);return queuedComps}});aeq.save=aeq.project.save;aeq.quickSave=aeq.project.quickSave;aeq.importFile=aeq.project.importFile;aeq.importFiles=aeq.project.importFiles;aeq.importSequence=aeq.project.importSequence;aeq.property=aeq.extend({},{toString:function(){return"[object aeq.property]"},extend:aeq.extend,valueType:function(property){return aeq.valueInObject(property.propertyValueType||property,PropertyValueType)},type:function(property){return aeq.valueInObject(property.propertyType||property,PropertyType)},getLayer:function(property){var depth=property.propertyDepth;return property.propertyGroup(depth)}});aeq.prop=aeq.property;aeq.renderqueue=aeq.extend({},{toString:function(){return"[object aeq.RenderQueue]"},extend:aeq.extend,queue:function(item){return app.project.renderQueue.items.add(item)},unqueue_all:function(){var items=aeq.renderqueue.getRQItems();items.forEach(function(item){if(item.status!=RQItemStatus.USER_STOPPED&&item.status!=RQItemStatus.ERR_STOPPED&&item.status!=RQItemStatus.RENDERING&&item.status!=RQItemStatus.DONE)item.render=false})},clear:function(){var items=aeq.renderqueue.getRQItems();items=items.reverse();items.forEach(function(item){item.remove()})},isQueued:function(rqItem){return rqItem.status==RQItemStatus.QUEUED},getQueuedItems:function(){var items=aeq.renderqueue.getRQItems();return item.filter(function(item){return aeq.renderqueue.isQueued(item)})},getQueuedComps:function(){var queuedItems=aeq.renderqueue.getQueuedItems();var compIDs={};var comps=[];queuedItems.forEach(function(item){var comp=item.comp;var compID=comp.id;if(void 0===compIDs[compID]){ compIDs[compID]=true;comps.push(comp)}});return aeq.arrayEx(comps)},getRQItems:function(){return aeq.arrayEx(aeq.normalizeCollection(app.project.renderQueue.items))},getRQComps:function(){var rqItems=aeq.renderqueue.getRQItems();var compIDs={};var comps=[];rqItems.forEach(function(item){var comp=item.comp;var compID=comp.id;if(void 0===compIDs[compID]){compIDs[compID]=true;comps.push(comp)}});return aeq.arrayEx(comps)},getSettings:function(renderItem){return renderItem.getSettings(GetSettingsFormat.STRING)},ensureRenderPathExists:function(outputModule){aeq.app.ensureSecurityPrefEnabled();aeq.file.ensureFolderExists(outputModule.file.parent)},omTemplateExists:function(templateName){var tempComp=aeq.comp.create();var tempRQItem=aeq.renderqueue.queue(tempComp);var templates=aeq.arrayEx(tempRQItem.outputModule(1).templates);var templateExists=templates.exists(function(template){return template==templateName});tempRQItem.remove();tempComp.remove();return templateExists},rqTemplateExists:function(templateName){var tempComp=aeq.comp.create();var tempRQItem=aeq.renderqueue.queue(tempComp);var templates=aeq.arrayEx(tempRQItem.templates);var templateExists=templates.exists(function(template){return template==templateName});tempRQItem.remove();tempComp.remove();return templateExists}});aeq.settings=aeq.extend({},{toString:function(){return"[object aeq.settings]"},extend:aeq.extend,setting:function(sectionName,keyName,value){if(void 0!==value){aeq.settings.save(sectionName,keyName,value);return aeq}return aeq.settings.get(sectionName,keyName)},initSetting:function(sectionName,keyName,value,overwrite){overwrite=setDefault(overwrite,false);if(!aeq.settings.have(sectionName,keyName)||overwrite)aeq.settings.save(sectionName,keyName,value);return aeq.settings.get(sectionName,keyName)},get:function(sectionName,keyName){if(aeq.settings.have(sectionName,keyName))return app.settings.getSetting(sectionName,keyName);return},getAsBool:function(sectionName,keyName){var value=aeq.settings.get(sectionName,keyName);if("true"===value)return true;else if("false"===value)return false;return},getAsArray:function(sectionName,keyName){return aeq.settings.get(sectionName,keyName).split(",")},getAsFloat:function(sectionName,keyName){return parseFloat(aeq.settings.get(sectionName,keyName))},getAsInt:function(sectionName,keyName){return parseInt(aeq.settings.get(sectionName,keyName))},have:function(sectionName,keyName){return app.settings.haveSetting(sectionName,keyName)},save:function(sectionName,keyName,value){app.settings.saveSetting(sectionName,keyName,value)},unpack:function(sectionName,keyNames){var ret;ret=aeq.isObject(keyNames)?keyNames:{};aeq.forEach(keyNames,function(keyName){if(app.settings.haveSetting(sectionName,keyName))ret[keyName]=app.settings.getSetting(sectionName,keyName)});return ret}});aeq.saveSetting=aeq.setSetting=aeq.settings.set=aeq.settings.save;aeq.getSetting=aeq.settings.get;aeq.getSettingAsBool=aeq.settings.getAsBool;aeq.getSettingAsArray=aeq.settings.getAsArray;aeq.getSettingAsFloat=aeq.settings.getAsFloat;aeq.getSettingAsInt=aeq.settings.getAsInt;aeq.haveSetting=aeq.settings.have;aeq.unpackSettings=aeq.loadSettings=aeq.settings.load=aeq.settings.unpack;aeq.snippet=aeq.extend({},{toString:function(){return"[object aeq.snippet]"},extend:aeq.extend,activeComp:function(undoGroup,callback){var comp=getCompWithAlert();if(null===comp)return false;return aeq.createUndoGroup(undoGroup,callback,[comp])},selectedLayers:function(undoGroup,callback){var comp=getCompWithAlert();if(null===comp)return false;var layers=getSelectedLayersWithAlert(comp);if(null===layers)return false;layers=aeq.arrayEx(layers);return aeq.createUndoGroup(undoGroup,callback,[layers,comp])},selectedLayersOrAll:function(undoGroup,callback){var comp=getCompWithAlert();if(null===comp)return false;var layers=aeq.getSelectedLayersOrAll(comp);layers=aeq.arrayEx(layers);return aeq.createUndoGroup(undoGroup,callback,[layers,comp])},selectedProperties:function(undoGroup,callback){var comp=getCompWithAlert();if(null===comp)return false;var props=getSelectedPropertiesWithAlert(comp);if(null===props)return false;props=aeq.arrayEx(props);return aeq.createUndoGroup(undoGroup,callback,[props,comp])},forEachSelectedLayer:function(undoGroup,callback){return aeq.snippet.selectedLayers(undoGroup,function(layers){layers.forEach(callback);return layers})},forEachSelectedLayerOrAll:function(undoGroup,callback){return aeq.snippet.selectedLayersOrAll(undoGroup,function(layers){layers.forEach(callback);return layers})},forEachSelectedProperty:function(undoGroup,callback){return aeq.snippet.selectedProperties(undoGroup,function(props){props.forEach(callback);return props})}});function getCompWithAlert(){var comp=aeq.getActiveComp();if(null===comp)alert("No Comp selected");return comp}function getSelectedLayersWithAlert(comp){if(0===comp.selectedLayers.length){alert("No layers selected");return null}return comp.selectedLayers}function getSelectedPropertiesWithAlert(comp){if(0===comp.selectedProperties.length){alert("No properties selected");return null}return comp.selectedProperties}aeq.arrayEx=function(arr){arr=setDefault(arr,[]);if(arr._init)return arr;arr._init=true;arr.isAeq=true;aeq.extend(arr,arrayEx);return arr};var arrayEx={forEach:function(callback){var len=this.length;for(var i=0;i>>0;if(0===len)return-1;var n=+fromIndex||0;if(Math.abs(n)===1/0)n=0;if(n>=len)return-1;k=Math.max(n>=0?n:len-Math.abs(n),0);while(kproperty.numKeys)throw new Error("Index "+index+" out of range 1-"+property.numKeys);this.property=property;this.index=index;this.originalTime=this.getTime()}else return new aeq.Key(property,index)};aeq.Key.prototype={isAeq:true,toString:function(){return"[object aeq.Key]"},extend:aeq.extend,checkKey:function(){if(this.index<=this.property.numKeys&&this.getTime()===this.originalTime)return;var newIndex=this.property.nearestKeyIndex(this.originalTime);if(this.property.keyTime(newIndex)===this.originalTime)this.index=newIndex;else throw new Error("Original key has been deleted/moved")},getTime:function(){return this.property.keyTime(this.index)},interpolationType:function(inType,outType){this.checkKey();if(0===arguments.length)return{inType:this.property.keyInInterpolationType(this.index),outType:this.property.keyOutInterpolationType(this.index)};if(void 0===outType&&inType.outType)outType=inType.outType;if(inType.inType)inType=inType.inType;if(aeq.isString(inType))inType=KeyframeInterpolationType[inType];if(outType&&aeq.isString(outType))outType=KeyframeInterpolationType[outType];else if(void 0===outType)outType=inType;if(!this.property.isInterpolationTypeValid(inType)||outType&&!this.property.isInterpolationTypeValid(outType))return false;this.property.setInterpolationTypeAtKey(this.index,inType,outType);return true},spatialTangent:function(inType,outType){this.checkKey();if(0===arguments.length)return{inTangent:this.property.keyInSpatialTangent(this.index),outTangent:this.property.keyOutSpatialTangent(this.index)};if(void 0===outType&&inType.outTangent)outType=inType.outTangent;if(inType.inTangent)inType=inType.inTangent;this.property.setSpatialTangentsAtKey(this.index,inType,outType)},temporalEase:function(inType,outType){this.checkKey();if(0===arguments.length)return{inEase:this.property.keyInTemporalEase(this.index),outEase:this.property.keyOutTemporalEase(this.index)};if(void 0===outType&&inType.outEase)outType=inType.outEase;if(inType.inEase)inType=inType.inEase;if(!aeq.isArray(inType))if(this.valueTypeIs("TwoD"))inType=[inType,inType];else if(this.valueTypeIs("ThreeD"))inType=[inType,inType,inType];else inType=[inType];if(outType&&!aeq.isArray(outType))if(this.valueTypeIs("TwoD"))outType=[outType,outType];else if(this.valueTypeIs("ThreeD"))outType=[outType,outType,outType];else outType=[outType];this.property.setTemporalEaseAtKey(this.index,inType,outType)},time:function(){this.checkKey();return this.originalTime},remove:function(){this.checkKey();this.property.removeKey(this.index)},getKeyinfo:function(){this.checkKey();var keyInfo={property:this.property,interpolationType:this.interpolationType(),value:this.value(),time:this.time()};if(keyInfo.interpolationType.inType===KeyframeInterpolationType.BEZIER&&keyInfo.interpolationType.outType===KeyframeInterpolationType.BEZIER){keyInfo.temporalAutoBezier=this.temporalAutoBezier();keyInfo.temporalContinuous=this.temporalContinuous()}if(keyInfo.interpolationType.outType!==KeyframeInterpolationType.HOLD)keyInfo.temporalEase=this.temporalEase();if(this.valueTypeIs("TwoD_SPATIAL")||this.valueTypeIs("ThreeD_SPATIAL")){keyInfo.spatialAutoBezier=this.spatialAutoBezier();keyInfo.spatialContinuous=this.spatialContinuous();keyInfo.spatialTangent=this.spatialTangent();keyInfo.roving=this.roving()}return keyInfo},copyTo:function(targetProp,time){var keyInfo=this.getKeyinfo();keyInfo.time=void 0!==time?time:keyInfo.time;if(targetProp.isAeq)targetProp=targetProp.get();keyInfo.property=targetProp;return aeq.pasteKey(keyInfo)},moveTo:function(time){var thisTime=this.time();if(time===thisTime)return;var newKey=this.copyTo(this.property,time);this.remove();this.index=this.property.nearestKeyIndex(newKey.time());this.originalTime=time},valueTypeIs:function valueTypeIs(type){return this.property.propertyValueType===PropertyValueType[type]}};aeq.forEach(["roving","selected","spatialAutoBezier","spatialContinuous","temporalAutoBezier","temporalContinuous","value"],function(type){var typeCapitalized=type.charAt(0).toUpperCase()+type.slice(1);var getter="key"+typeCapitalized;var setter="set"+typeCapitalized+"AtKey";aeq.Key.prototype[type]=function(){this.checkKey();if(0===arguments.length)return this.property[getter](this.index);[].unshift.call(arguments,this.index);this.property[setter].apply(this.property,arguments)}});aeq.pasteKey=function(keyInfo){var keyIndex=keyInfo.property.addKey(keyInfo.time);var key=new aeq.Key(keyInfo.property,keyIndex);if(2===keyInfo.property.value.length&&aeq.isArray(keyInfo.value)&&3===keyInfo.value.length){keyInfo.value=[keyInfo.value[0],keyInfo.value[1]];keyInfo.spatialTangent.inTangent=[keyInfo.spatialTangent.inTangent[0],keyInfo.spatialTangent.inTangent[1]];keyInfo.spatialTangent.outTangent=[keyInfo.spatialTangent.outTangent[0],keyInfo.spatialTangent.outTangent[1]]}key.value(keyInfo.value);if(void 0!==keyInfo.temporalEase)key.temporalEase(keyInfo.temporalEase);key.interpolationType(keyInfo.interpolationType);if(void 0!==keyInfo.temporalAutoBezier&&void 0!==keyInfo.temporalContinuous){key.temporalAutoBezier(keyInfo.temporalAutoBezier);key.temporalContinuous(keyInfo.temporalContinuous)}if(void 0!==keyInfo.spatialAutoBezier&&void 0!==keyInfo.spatialContinuous){key.spatialAutoBezier(keyInfo.spatialAutoBezier);key.spatialContinuous(keyInfo.spatialContinuous);key.spatialTangent(keyInfo.spatialTangent);key.roving(keyInfo.roving)}return key};aeq.Layer=function(layer){if(layer instanceof aeq.Layer)return layer;if(this instanceof aeq.Layer)this.layer=layer;else return new aeq.Layer(layer)};aeq.Layer.prototype={isAeq:true,toString:function(){return"[object aeq.Layer]"},extend:aeq.extend,get:function(){return this.layer},parent:function(selector){if(0===arguments.length)return this.layer.parent;if(null===selector){this.layer.parent=null;return null}var layer=getLayer(this.layer,selector);if(null===layer)return null;this.layer.parent=layer;return layer},copyToComp:function(comp){if(!aeq.isComp(comp))if(comp instanceof aeq.Comp)comp=comp.comp;else if(aeq.isString(comp))comp=aeq.getComp(comp);this.layer.copyToComp(comp);return this},removeParent:function(){this.layer.parent=null;return this},forEachEffect:function(callback){var effects=this.layer.property("ADBE Effect Parade"),length=effects.numProperties,i=1;for(;i<=length;i++)callback(effects.property(i),i,effects);return this},addEffect:function(effectName){var effects=this.layer.property("ADBE Effect Parade");if(effects.canAddProperty(effectName))effects.addProperty(effectName);else throw new Error('Can not add effect "'+effectName+'" to this layer')},children:function(){return aeq.layer.children(this.layer)},allChildren:function(){return aeq.layer.allChildren(this.layer)},parents:function(){return aeq.layer.parents(this.layer)},relatedLayers:function(){return aeq.layer.relatedLayers(this.layer)}};aeq.forEach(["active","index","isNameSet","selectedProperties","time","containingComp","hasVideo"],function(attribute){aeq.Layer.prototype[attribute]=function(){return this.layer[attribute]}});aeq.forEach(["comment","enabled","inPoint","locked","name","outPoint","shy","solo","startTime","stretch"],function(attribute){aeq.Layer.prototype[attribute]=function(newValue){if(0===arguments.length)return this.layer[attribute];this.layer[attribute]=newValue;return this}});aeq.forEach(["activeAtTime","applyPreset","duplicate","remove","moveToBeginning","moveToEnd"],function(method){aeq.Layer.prototype[method]=function(newValue){this.layer[method](newValue);return this}});aeq.forEach(["setParentWithJump","moveAfter","moveBefore"],function(method){aeq.Layer.prototype[method]=function(selector){var layer=getLayer(this.layer,selector);if(null===layer)return null;this.layer[method](layer);return layer}});var regexRelativeIndex=/^(\+|-)=/;function getLayer(baseLayer,selector){var index,offset;if(selector instanceof aeq.Layer)return selector.layer;if(aeq.isLayer(selector))return selector;if(aeq.isNumber(selector))return baseLayer.containingComp.layer(selector);if(aeq.isString(selector)){if(regexRelativeIndex.test(selector)){offset=getRelativeIndex(selector);if(offset){index=baseLayer.index+offset;if(0===index||index>baseLayer.containingComp.numLayers)return null;return baseLayer.containingComp.layer(index)}}return baseLayer.containingComp.layer(selector)}return null}function getRelativeIndex(str){var offset=str.charAt(0)+str.substr(2);offset=parseInt(offset,10);if(isNaN(offset))return false;return offset}aeq.Property=function(property){if(property instanceof aeq.Property)return property;if(this instanceof aeq.Property)this.property=property;else return new aeq.Property(property)};aeq.Property.prototype={isAeq:true,toString:function(){return"[object aeq.Property]"},extend:aeq.extend,get:function(){return this.property},expression:function(newValue){if(!this.property.canSetExpression)return false;if(0===arguments.length)return this.property.expression;this.property.expression=newValue;if(""===this.property.expressionError&&(this.property.expressionEnabled||""===newValue))return true;return this.property.expressionError},selectedKeys:function(){var selectedKeys=[];for(var i=1;i<=this.property.selectedKeys.length;i++)selectedKeys.push(this.key(i));return selectedKeys},addKey:function(time){var keyIndex=this.property.addKey(time);return this.key(keyIndex)},separationFollower:function(dim){return this.property.getSeparationFollower(dim)},nearestKeyIndex:function(time){var keyIndex=this.property.nearestKeyIndex(time);return this.key(keyIndex)},removeKey:function(keyIndex){if(aeq.isNumber(keyIndex))this.property.removeKey(keyIndex);else if("[object aeq.Key]"===keyIndex.toString())keyIndex.remove()},separationLeader:function(){if(this.property.isSeparationFollower)return this.property.separationLeader;return null},separationDimension:function(){if(this.property.isSeparationFollower)return this.property.separationDimension;return null},maxValue:function(){if(this.property.hasMax)return this.property.maxValue;return null},minValue:function(){if(this.property.hasMin)return this.property.minValue;return null},value:function(newValue){if(0===arguments.length)return this.property.value;this.property.setValue(newValue)},valueAtTime:function(time,value){if(1===arguments.length)return this.property.valueAtTime(time);this.property.setValueAtTime(time,value);return this.nearestKeyIndex(time)},valuesAtTimes:function(times,values){var result=[],i=0,il=times.length;if(1===arguments.length){for(;i1?arguments[1]:{},parser=this,peg$FAILED={},peg$startRuleFunctions={Start:peg$parseStart},peg$startRuleFunction=peg$parseStart,peg$c0="[",peg$c1={type:"literal",value:"[",description:'"["'},peg$c2="]",peg$c3={type:"literal",value:"]",description:'"]"'},peg$c4=function(props){return mergeProps(props)},peg$c5="(",peg$c6={type:"literal",value:"(",description:'"("'},peg$c7=")",peg$c8={type:"literal",value:")",description:'")"'},peg$c9=/^[a-zA-Z]/,peg$c10={type:"class",value:"[a-zA-Z]",description:"[a-zA-Z]"},peg$c11=function(name){var o={};var key=name.join("");o[key]={type:"Bool",value:true};return o},peg$c12="=",peg$c13={type:"literal",value:"=",description:'"="'},peg$c14=function(name,value){var o={};var key=name.join("");o[key]=value;return o},peg$c15=function(type,props,pseudo){return{type:type.join("").toLowerCase(),props:props,pseudo:pseudo}},peg$c16=":",peg$c17={type:"literal",value:":",description:'":"'},peg$c18=function(type,props){return{type:type.join("").toLowerCase(),props:props}},peg$c19=function(literal){return literal},peg$c20=function(){return{type:"Bool",value:true}},peg$c21=function(){return{type:"Bool",value:false}},peg$c22="0",peg$c23={type:"literal",value:"0",description:'"0"'},peg$c24=/^[0-9]/,peg$c25={type:"class",value:"[0-9]",description:"[0-9]"},peg$c26=/^[1-9]/,peg$c27={type:"class",value:"[1-9]",description:"[1-9]"},peg$c28=".",peg$c29={type:"literal",value:".",description:'"."'},peg$c30=function(){return{type:"Number",value:parseFloat(text())}},peg$c31=function(){return{type:"Integer",value:parseFloat(text())}},peg$c32="0x",peg$c33={type:"literal",value:"0x",description:'"0x"'},peg$c34=function(digits){return{type:"Hex",value:parseInt(digits,16)}},peg$c35=/^[0-9a-f]/i,peg$c36={type:"class",value:"[0-9a-f]i",description:"[0-9a-f]i"},peg$c37='"',peg$c38={type:"literal",value:'"',description:'"\\""'},peg$c39=function(chars){return{type:"String",value:chars.join("")}},peg$c40="'",peg$c41={type:"literal",value:"'",description:'"\'"'},peg$c42="\\",peg$c43={type:"literal",value:"\\",description:'"\\\\"'},peg$c44={type:"any",description:"any character"},peg$c45=function(){return text()},peg$c46=function(sequence){return sequence},peg$c47=function(){return""},peg$c48=function(){return"\0"},peg$c49="b",peg$c50={type:"literal",value:"b",description:'"b"'},peg$c51=function(){return"\b"},peg$c52="f",peg$c53={type:"literal",value:"f",description:'"f"'},peg$c54=function(){return"\f"},peg$c55="n",peg$c56={type:"literal",value:"n",description:'"n"'},peg$c57=function(){return"\n"},peg$c58="r",peg$c59={type:"literal",value:"r",description:'"r"'},peg$c60=function(){return"\r"},peg$c61="t",peg$c62={type:"literal",value:"t",description:'"t"'},peg$c63=function(){return"\t"},peg$c64="v",peg$c65={type:"literal",value:"v",description:'"v"'},peg$c66=function(){return"\v"},peg$c67="x",peg$c68={type:"literal",value:"x",description:'"x"'},peg$c69="u",peg$c70={type:"literal",value:"u",description:'"u"'},peg$c71=function(digits){return String.fromCharCode(parseInt(digits,16))},peg$c72=/^[\n\r\u2028\u2029]/,peg$c73={type:"class",value:"[\\n\\r\\u2028\\u2029]",description:"[\\n\\r\\u2028\\u2029]"},peg$c74={type:"other",description:"end of line"},peg$c75="\n",peg$c76={type:"literal",value:"\n",description:'"\\n"'},peg$c77="\r\n",peg$c78={type:"literal",value:"\r\n",description:'"\\r\\n"'},peg$c79="\r",peg$c80={type:"literal",value:"\r",description:'"\\r"'},peg$c81="\u2028",peg$c82={type:"literal",value:"\u2028",description:'"\\u2028"'},peg$c83="\u2029",peg$c84={type:"literal",value:"\u2029",description:'"\\u2029"'},peg$c85=function(head,tail){head.push(tail);return{type:"Array",value:head}},peg$c86=",",peg$c87={type:"literal",value:",",description:'","'},peg$c88=function(value){return value},peg$c89="true",peg$c90={type:"literal",value:"true",description:'"true"'},peg$c91="false",peg$c92={type:"literal",value:"false",description:'"false"'},peg$c93={type:"other",description:"whitespace"},peg$c94=/^[ \t\n\r]/,peg$c95={type:"class",value:"[ \\t\\n\\r]",description:"[ \\t\\n\\r]"},peg$c96={type:"other",description:"regular expression"},peg$c97="/",peg$c98={type:"literal",value:"/",description:'"/"'},peg$c99=function(body,flags){return{type:"RegExp",body:body,flags:flags,value:new RegExp(body,flags)}},peg$c100=function(char_,chars){return char_+chars},peg$c101=function(chars){return chars.join("")},peg$c102=/^[*\\\/[]/,peg$c103={type:"class",value:"[*\\\\/[]",description:"[*\\\\/[]"},peg$c104=function(char_){return char_},peg$c105=/^[\\\/[]/,peg$c106={type:"class",value:"[\\\\/[]",description:"[\\\\/[]"},peg$c107=function(char_){return"\\"+char_},peg$c108=function(chars){return"["+chars+"]"},peg$c109=/^[\]\\]/,peg$c110={type:"class",value:"[\\]\\\\]",description:"[\\]\\\\]"},peg$c111=/^[gimuy]/,peg$c112={type:"class",value:"[gimuy]",description:"[gimuy]"},peg$c113=function(parts){return parts.join("")},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1,seenCR:false}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions))throw new Error("Can't start parsing from rule \""+options.startRule+'".');peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function location(){return peg$computeLocation(peg$savedPos,peg$currPos)}function expected(description){throw peg$buildException(null,[{type:"other",description:description}],input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos))}function error(message){throw peg$buildException(message,null,input.substring(peg$savedPos,peg$currPos),peg$computeLocation(peg$savedPos,peg$currPos))}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p,ch;if(details)return details;else{p=pos-1;while(!peg$posDetailsCache[p])p--;details=peg$posDetailsCache[p];details={line:details.line,column:details.column,seenCR:details.seenCR};while(ppeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected)}function peg$buildException(message,expected,found,location){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.descriptionb.description)return 1;else return 0});while(i1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?'"'+stringEscape(found)+'"':"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found."}if(null!==expected)cleanupExpected(expected);return new peg$SyntaxError(null!==message?message:buildMessage(expected,found),expected,found,location)}function peg$parseStart(){var s0;s0=peg$parseSelectors();return s0}function peg$parsePropertiesBrackets(){var s0,s1,s2,s3;s0=peg$currPos;if(91===input.charCodeAt(peg$currPos)){s1=peg$c0;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c1)}if(s1!==peg$FAILED){s2=[];s3=peg$parseProperty();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseProperty()}if(s2!==peg$FAILED){if(93===input.charCodeAt(peg$currPos)){s3=peg$c2;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c3)}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c4(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parsePropertiesParentheses(){var s0,s1,s2,s3;s0=peg$currPos;if(40===input.charCodeAt(peg$currPos)){s1=peg$c5;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c6)}if(s1!==peg$FAILED){s2=[];s3=peg$parseProperty();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseProperty()}if(s2!==peg$FAILED){if(41===input.charCodeAt(peg$currPos)){s3=peg$c7;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c8)}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c4(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseProperty(){var s0;s0=peg$parseValuePair();if(s0===peg$FAILED)s0=peg$parseValueSingle();return s0}function peg$parseValueSingle(){var s0,s1,s2;s0=peg$currPos;s1=[];if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}if(s2!==peg$FAILED)while(s2!==peg$FAILED){s1.push(s2);if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}}else s1=peg$FAILED;if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c11(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseValuePair(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}if(s2!==peg$FAILED)while(s2!==peg$FAILED){s1.push(s2);if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}}else s1=peg$FAILED;if(s1!==peg$FAILED){if(61===input.charCodeAt(peg$currPos)){s2=peg$c12;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c13)}if(s2!==peg$FAILED){s3=peg$parseValue();if(s3!==peg$FAILED){s4=peg$parse_();if(s4===peg$FAILED)s4=null;if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c14(s1,s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSelector(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=[];if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}if(s2!==peg$FAILED)while(s2!==peg$FAILED){s1.push(s2);if(peg$c9.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}}else s1=peg$FAILED;if(s1!==peg$FAILED){s2=peg$parsePropertiesBrackets();if(s2===peg$FAILED)s2=null;if(s2!==peg$FAILED){s3=[];s4=peg$parsePseudo();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parsePseudo()}if(s3!==peg$FAILED){s4=peg$parse_();if(s4===peg$FAILED)s4=null;if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s1,s2,s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSelectors(){var s0,s1;s0=[];s1=peg$parseSelector();if(s1!==peg$FAILED)while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseSelector()}else s0=peg$FAILED;return s0}function peg$parsePseudo(){var s0,s1,s2,s3;s0=peg$currPos;if(58===input.charCodeAt(peg$currPos)){s1=peg$c16;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c17)}if(s1!==peg$FAILED){s2=[];if(peg$c9.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}while(s3!==peg$FAILED){s2.push(s3);if(peg$c9.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c10)}}if(s2!==peg$FAILED){s3=peg$parsePropertiesParentheses();if(s3===peg$FAILED)s3=null;if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c18(s2,s3);s0=s1}else{peg$currPos=s0; s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseValue(){var s0;s0=peg$parseBooleanLiteral();if(s0===peg$FAILED){s0=peg$parseNumericLiteral();if(s0===peg$FAILED){s0=peg$parseStringLiteral();if(s0===peg$FAILED){s0=peg$parseArrayLiteral();if(s0===peg$FAILED)s0=peg$parseRegularExpressionLiteral()}}}return s0}function peg$parseNumericLiteral(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseHexIntegerLiteral();if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseDecimalDigit();peg$silentFails--;if(s3===peg$FAILED)s2=void 0;else{peg$currPos=s2;s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c19(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseDecimalLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c19(s1)}s0=s1}return s0}function peg$parseBooleanLiteral(){var s0,s1;s0=peg$currPos;s1=peg$parseTrueToken();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c20()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseFalseToken();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c21()}s0=s1}return s0}function peg$parseDecimalIntegerLiteral(){var s0,s1,s2,s3;if(48===input.charCodeAt(peg$currPos)){s0=peg$c22;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c23)}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonZeroDigit();if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseDecimalDigit(){var s0;if(peg$c24.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c25)}return s0}function peg$parseNonZeroDigit(){var s0;if(peg$c26.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c27)}return s0}function peg$parseDecimalLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseDecimalIntegerLiteral();if(s1!==peg$FAILED){if(46===input.charCodeAt(peg$currPos)){s2=peg$c28;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c29)}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c30();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(46===input.charCodeAt(peg$currPos)){s1=peg$c28;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c29)}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED)while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}else s2=peg$FAILED;if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c30();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseDecimalIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c31()}s0=s1}}return s0}function peg$parseHexIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c32){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c33)}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED)while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit()}else s3=peg$FAILED;if(s3!==peg$FAILED)s2=input.substring(s2,peg$currPos);else s2=s3;if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c34(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseHexDigit(){var s0;if(peg$c35.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c36)}return s0}function peg$parseStringLiteral(){var s0,s1,s2,s3;s0=peg$currPos;if(34===input.charCodeAt(peg$currPos)){s1=peg$c37;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c38)}if(s1!==peg$FAILED){s2=[];s3=peg$parseDoubleStringCharacter();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDoubleStringCharacter()}if(s2!==peg$FAILED){if(34===input.charCodeAt(peg$currPos)){s3=peg$c37;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c38)}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c39(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(39===input.charCodeAt(peg$currPos)){s1=peg$c40;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c41)}if(s1!==peg$FAILED){s2=[];s3=peg$parseSingleStringCharacter();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseSingleStringCharacter()}if(s2!==peg$FAILED){if(39===input.charCodeAt(peg$currPos)){s3=peg$c40;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c41)}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c39(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseDoubleStringCharacter(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(34===input.charCodeAt(peg$currPos)){s2=peg$c37;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c38)}if(s2===peg$FAILED){if(92===input.charCodeAt(peg$currPos)){s2=peg$c42;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s2===peg$FAILED)s2=peg$parseLineTerminator()}peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){if(input.length>peg$currPos){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c44)}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c45();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(92===input.charCodeAt(peg$currPos)){s1=peg$c42;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s1!==peg$FAILED){s2=peg$parseEscapeSequence();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c46(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED)s0=peg$parseLineContinuation()}return s0}function peg$parseSingleStringCharacter(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(39===input.charCodeAt(peg$currPos)){s2=peg$c40;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c41)}if(s2===peg$FAILED){if(92===input.charCodeAt(peg$currPos)){s2=peg$c42;peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s2===peg$FAILED)s2=peg$parseLineTerminator()}peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){if(input.length>peg$currPos){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c44)}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c45();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(92===input.charCodeAt(peg$currPos)){s1=peg$c42;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s1!==peg$FAILED){s2=peg$parseEscapeSequence();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c46(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED)s0=peg$parseLineContinuation()}return s0}function peg$parseLineContinuation(){var s0,s1,s2;s0=peg$currPos;if(92===input.charCodeAt(peg$currPos)){s1=peg$c42;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s1!==peg$FAILED){s2=peg$parseLineTerminatorSequence();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c47();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEscapeSequence(){var s0,s1,s2,s3;s0=peg$parseCharacterEscapeSequence();if(s0===peg$FAILED){s0=peg$currPos;if(48===input.charCodeAt(peg$currPos)){s1=peg$c22;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c23)}if(s1!==peg$FAILED){s2=peg$currPos;peg$silentFails++;s3=peg$parseDecimalDigit();peg$silentFails--;if(s3===peg$FAILED)s2=void 0;else{peg$currPos=s2;s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c48();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$parseHexEscapeSequence();if(s0===peg$FAILED)s0=peg$parseUnicodeEscapeSequence()}}return s0}function peg$parseCharacterEscapeSequence(){var s0;s0=peg$parseSingleEscapeCharacter();if(s0===peg$FAILED)s0=peg$parseNonEscapeCharacter();return s0}function peg$parseSingleEscapeCharacter(){var s0,s1;if(39===input.charCodeAt(peg$currPos)){s0=peg$c40;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c41)}if(s0===peg$FAILED){if(34===input.charCodeAt(peg$currPos)){s0=peg$c37;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c38)}if(s0===peg$FAILED){if(92===input.charCodeAt(peg$currPos)){s0=peg$c42;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s0===peg$FAILED){s0=peg$currPos;if(98===input.charCodeAt(peg$currPos)){s1=peg$c49;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c50)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c51()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(102===input.charCodeAt(peg$currPos)){s1=peg$c52;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c53)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c54()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(110===input.charCodeAt(peg$currPos)){s1=peg$c55;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c56)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c57()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(114===input.charCodeAt(peg$currPos)){s1=peg$c58;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c59)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c60()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(116===input.charCodeAt(peg$currPos)){s1=peg$c61;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c62)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c63()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(118===input.charCodeAt(peg$currPos)){s1=peg$c64;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c65)}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c66()}s0=s1}}}}}}}}return s0}function peg$parseNonEscapeCharacter(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseEscapeCharacter();if(s2===peg$FAILED)s2=peg$parseLineTerminator();peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){if(input.length>peg$currPos){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c44)}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c45();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEscapeCharacter(){var s0;s0=peg$parseSingleEscapeCharacter();if(s0===peg$FAILED){s0=peg$parseDecimalDigit();if(s0===peg$FAILED){if(120===input.charCodeAt(peg$currPos)){s0=peg$c67;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c68)}if(s0===peg$FAILED)if(117===input.charCodeAt(peg$currPos)){s0=peg$c69;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c70)}}}return s0}function peg$parseHexEscapeSequence(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(120===input.charCodeAt(peg$currPos)){s1=peg$c67;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c68)}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED)s2=input.substring(s2,peg$currPos);else s2=s3;if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c71(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseUnicodeEscapeSequence(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;if(117===input.charCodeAt(peg$currPos)){s1=peg$c69;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c70)}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s4=[s4,s5,s6,s7];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED)s2=input.substring(s2,peg$currPos);else s2=s3;if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c71(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLineTerminator(){var s0;if(peg$c72.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c73)}return s0}function peg$parseLineTerminatorSequence(){var s0,s1;peg$silentFails++;if(10===input.charCodeAt(peg$currPos)){s0=peg$c75;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c76)}if(s0===peg$FAILED){if(input.substr(peg$currPos,2)===peg$c77){s0=peg$c77;peg$currPos+=2}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c78)}if(s0===peg$FAILED){if(13===input.charCodeAt(peg$currPos)){s0=peg$c79;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c80)}if(s0===peg$FAILED){if(8232===input.charCodeAt(peg$currPos)){s0=peg$c81;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c82)}if(s0===peg$FAILED)if(8233===input.charCodeAt(peg$currPos)){s0=peg$c83;peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c84)}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c74)}return s0}function peg$parseArrayLiteral(){var s0,s1,s2,s3,s4,s5,s6,s7;s0=peg$currPos;if(91===input.charCodeAt(peg$currPos)){s1=peg$c0;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c1)}if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){s3=[];s4=peg$parseArrayValue();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseArrayValue()}if(s3!==peg$FAILED){s4=peg$parse_();if(s4!==peg$FAILED){s5=peg$parseValue();if(s5!==peg$FAILED){s6=peg$parse_();if(s6!==peg$FAILED){if(93===input.charCodeAt(peg$currPos)){s7=peg$c2;peg$currPos++}else{s7=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c3)}if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c85(s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrayValue(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseValue();if(s1!==peg$FAILED){s2=peg$parse_();if(s2!==peg$FAILED){if(44===input.charCodeAt(peg$currPos)){s3=peg$c86;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c87)}if(s3!==peg$FAILED){s4=peg$parse_();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c88(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseTrueToken(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c89){s1=peg$c89;peg$currPos+=4}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c90)}if(s1!==peg$FAILED){s2=peg$parse_();if(s2===peg$FAILED)s2=null;if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseFalseToken(){var s0,s1,s2;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c91){s1=peg$c91;peg$currPos+=5}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c92)}if(s1!==peg$FAILED){s2=peg$parse_();if(s2===peg$FAILED)s2=null;if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parse_(){var s0,s1;peg$silentFails++;s0=[];if(peg$c94.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c95)}while(s1!==peg$FAILED){s0.push(s1);if(peg$c94.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c95)}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c93)}return s0}function peg$parseRegularExpressionLiteral(){var s0,s1,s2,s3,s4;peg$silentFails++;s0=peg$currPos;if(47===input.charCodeAt(peg$currPos)){s1=peg$c97;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c98)}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionBody();if(s2!==peg$FAILED){if(47===input.charCodeAt(peg$currPos)){s3=peg$c97;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c98)}if(s3!==peg$FAILED){s4=peg$parseRegularExpressionFlags();if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c99(s2,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c96)}return s0}function peg$parseRegularExpressionBody(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseRegularExpressionFirstChar();if(s1!==peg$FAILED){s2=peg$parseRegularExpressionChars();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c100(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRegularExpressionChars(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseRegularExpressionChar();while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseRegularExpressionChar()}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c101(s1)}s0=s1;return s0}function peg$parseRegularExpressionFirstChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c102.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c103)}peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionNonTerminator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c104(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$parseRegularExpressionBackslashSequence();if(s0===peg$FAILED)s0=peg$parseRegularExpressionClass()}return s0}function peg$parseRegularExpressionChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c105.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c106)}peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionNonTerminator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c104(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$parseRegularExpressionBackslashSequence();if(s0===peg$FAILED)s0=peg$parseRegularExpressionClass()}return s0}function peg$parseRegularExpressionBackslashSequence(){var s0,s1,s2;s0=peg$currPos;if(92===input.charCodeAt(peg$currPos)){s1=peg$c42;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c43)}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionNonTerminator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c107(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRegularExpressionNonTerminator(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;s2=peg$parseLineTerminator();peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s2=peg$parseSourceCharacter();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c104(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRegularExpressionClass(){var s0,s1,s2,s3;s0=peg$currPos;if(91===input.charCodeAt(peg$currPos)){s1=peg$c0;peg$currPos++}else{s1=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c1)}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionClassChars();if(s2!==peg$FAILED){if(93===input.charCodeAt(peg$currPos)){s3=peg$c2;peg$currPos++}else{s3=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c3)}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c108(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRegularExpressionClassChars(){var s0,s1,s2;s0=peg$currPos;s1=[];s2=peg$parseRegularExpressionClassChar();while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseRegularExpressionClassChar()}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c101(s1)}s0=s1;return s0}function peg$parseRegularExpressionClassChar(){var s0,s1,s2;s0=peg$currPos;s1=peg$currPos;peg$silentFails++;if(peg$c109.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c110)}peg$silentFails--;if(s2===peg$FAILED)s1=void 0;else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s2=peg$parseRegularExpressionNonTerminator();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c104(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED)s0=peg$parseRegularExpressionBackslashSequence();return s0}function peg$parseRegularExpressionFlags(){var s0,s1,s2;s0=peg$currPos;s1=[];if(peg$c111.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c112)}while(s2!==peg$FAILED){s1.push(s2);if(peg$c111.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++}else{s2=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c112)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c113(s1)}s0=s1;return s0}function peg$parseSourceCharacter(){var s0;if(input.length>peg$currPos){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(0===peg$silentFails)peg$fail(peg$c44)}return s0}function mergeProps(array){var merged={};for(var i=0;i=0;i--)obj.remove(obj.children[i])},removeAll:function(){for(var i=this.obj.children.length-1;i>=0;i--)this.obj.remove(this.obj.children[i])}};ui.Container.prototype.addListbox=ui.Container.prototype.addListBox;ui.Container.prototype.addStatictext=ui.Container.prototype.addStaticText;ui.Container.prototype.addTreeview=ui.Container.prototype.addTreeView;(function createControllerSetters(){var oneParameters=["enabled","helpTip","orientation","text","visible"],twoParameters=["alignChildren","alignment","location","maximumSize","minimumSize","preferredSize","size"],fourParameters=["bounds","margins"];aeq.forEach(oneParameters,function(type){ui.Container.prototype[type]=function(newValue){if(void 0===newValue)return this.obj[type];this.obj[type]=newValue}});function multiParameter(type,numParameters){return function(newValue){if(void 0===newValue)return this.obj[type];newValue=arguments.length===numParameters?Array.apply(null,arguments):arguments[0];this.obj[type]=newValue}}aeq.forEach(twoParameters,function(type){ui.Container.prototype[type]=multiParameter(type,2)});aeq.forEach(fourParameters,function(type){ui.Container.prototype[type]=multiParameter(type,4)})})();return ui}(aeq.ui||{});aeq.ui=function(ui){ui.createMainWindow=function(thisObj,title,opt){if(aeq.isPanel(thisObj))return new ui.Window(thisObj);if(aeq.isString(thisObj)){opt=title;title=thisObj}opt=aeq.setDefault(opt,{resizeable:true});var root=new Window("palette",title,void 0,opt);aeq.ui.root=root;return new ui.Window(root)};ui.createWindow=function(title,options){options=aeq.setDefault(options,{resizeable:true});var newWindow=new Window("palette",title,void 0,options);return new ui.Window(newWindow)};ui.createDialog=function(title,options){options=aeq.setDefault(options,{resizeable:true});var newWindow=new Window("dialog",title,void 0,options);return new ui.Window(newWindow)};ui.ready=function(callback){callback()};ui.set=function(obj,options){for(var option in options)if(options.hasOwnProperty(option)&&"properties"!==option&&"arg1"!==option)obj[option]=options[option]};return ui}(aeq.ui||{});aeq.ui=function(ui){ui.Window=function(obj){this.obj=obj};ui.Window.prototype=ui.Container.prototype;ui.Window.prototype.show=function(){this.layout();if(aeq.isWindow(this.obj))return this.obj.show()};ui.Window.prototype.hide=function(){if(aeq.isWindow(this.obj))this.obj.hide()};ui.Window.prototype.close=function(value){if(aeq.isWindow(this.obj))this.obj.close(value)};ui.Window.prototype.layout=function(){this.obj.layout.layout(true);this.obj.layout.resize();this.obj.onResizing=this.obj.onResize=function(){this.layout.resize()}};return ui}(aeq.ui||{}); /* aequery */ /** * Gets data from file contents starting at specified sectionHeader * * @param {String} fileContents File contents to search in * @param {String} sectionHeader Name of section header to find * @returns {{"times": Number[], "values": Number[]}} Object containing times and values arrays */ function getSectionData (fileContents, sectionHeader) { var start = fileContents.indexOf(sectionHeader); var end = fileContents.indexOf("\t)", start); var section = fileContents.substring(start, end); var sectionSplit = aeq.arrayEx(section.split("\n")); sectionSplit.shift(); sectionSplit.pop(); var times = []; var values = []; var firstTime = aeq.framesToTime(sectionSplit[0].match(/t\((.*?)\)/)[1], rootComp.frameRate); sectionSplit.forEach(function (chunk) { var time = aeq.framesToTime(chunk.match(/t\((.*?)\)/)[1], rootComp.frameRate); var value = chunk.match(/v\((.*?)\)/)[1]; times.push(time - firstTime); values.push(value); }); return { "times" : times, "values" : values } } var yawHeader = "c(n(S-Yaw$NL) m(-100000) M(100000) d(0)"; var pitchHeader = "c(n(S-Pitch) m(-100000) M(100000) d(0)"; var rollHeader = "c(n(S-Roll) m(-100000) M(100000) d(0)"; var scriptFile = File.openDialog("Select your .grp file", "*.grp", false); if (aeq.isNullOrUndefined(scriptFile)) return; var fileContents = aeq.file.readFile(scriptFile); if (aeq.isNullOrUndefined(fileContents)) return; app.beginUndoGroup("Mistika to AE"); var rootComp = aeq.comp.create(); rootComp.frameRate = 60; var yaw = getSectionData(fileContents, yawHeader); var pitch = getSectionData(fileContents, pitchHeader); var roll = getSectionData(fileContents, rollHeader); // Set up comp info rootComp.name = aeq.file.stripExtension(scriptFile.displayName); rootComp.displayStartTime = yaw.times[0]; rootComp.duration = yaw.times[yaw.times.length - 1] - yaw.times[0]; // Build controller null var controller = rootComp.layers.addNull(); controller.name = "Stabilization Controller"; var yawSliderControl = controller.property("ADBE Effect Parade").addProperty("ADBE Slider Control"); yawSliderControl.name = "Yaw"; var pitchSliderControl = controller.property("ADBE Effect Parade").addProperty("ADBE Slider Control"); pitchSliderControl.name = "Pitch"; var rollSliderControl = controller.property("ADBE Effect Parade").addProperty("ADBE Slider Control"); rollSliderControl.name = "Roll"; var yawSlider = controller.property("ADBE Effect Parade").property(1).property("ADBE Slider Control-0001"); var pitchSlider = controller.property("ADBE Effect Parade").property(2).property("ADBE Slider Control-0001"); var rollSlider = controller.property("ADBE Effect Parade").property(3).property("ADBE Slider Control-0001"); var numValues = yaw.times.length; var start = 0; var current = 0; while (current < numValues) { start = current; current += 1000; current = Math.min(current, numValues); yawSlider.setValuesAtTimes(yaw.times.slice(start, current), yaw.values.slice(start, current)); pitchSlider.setValuesAtTimes(pitch.times.slice(start, current), pitch.values.slice(start, current)); rollSlider.setValuesAtTimes(roll.times.slice(start, current), roll.values.slice(start, current)); } rootComp.openInViewer(); app.endUndoGroup(); })();