From 91f66d4d787806c645613e224fda01f4cbded290 Mon Sep 17 00:00:00 2001 From: Kimura Youichi Date: Mon, 5 Sep 2011 19:41:49 +0900 Subject: [PATCH] add caja resources to lib/vendor/Shindig/external/resources (fixes #2394) --- NOTICE | 1 + .../modules/gadgets/actions/actions.class.php | 12 + ...lPluginPcFrontendRouteCollection.class.php | 4 + .../com/google/caja/plugin/domita-minified.js | 768 ++++++++++++++++++ .../caja/plugin/html-sanitizer-minified.js | 45 + .../com/google/caja/plugin/valija.out.js | 453 +++++++++++ 6 files changed, 1283 insertions(+) create mode 100644 lib/vendor/Shindig/external/resources/com/google/caja/plugin/domita-minified.js create mode 100644 lib/vendor/Shindig/external/resources/com/google/caja/plugin/html-sanitizer-minified.js create mode 100644 lib/vendor/Shindig/external/resources/com/google/caja/plugin/valija.out.js diff --git a/NOTICE b/NOTICE index 0097604..a9289b9 100644 --- a/NOTICE +++ b/NOTICE @@ -13,6 +13,7 @@ The Apache Software Foundation (http://www.apache.org/). - config/* => vendor/Shindig/config - php/config/* => vendor/Shindig/config - php/external/jsmin-php => vendor/Shindig/external/jsmin-php + - php/external/resources => vendor/Shindig/external/recources - php/src => vendor/Shindig/src - Some class names have been changed by the following script. - https://gist.github.com/659536 diff --git a/apps/pc_frontend/modules/gadgets/actions/actions.class.php b/apps/pc_frontend/modules/gadgets/actions/actions.class.php index 3d98637..2f8cbec 100644 --- a/apps/pc_frontend/modules/gadgets/actions/actions.class.php +++ b/apps/pc_frontend/modules/gadgets/actions/actions.class.php @@ -28,6 +28,18 @@ protected function check() } } + /** + * Execute resources action + * + * @param sfWebRequest $request A request object + */ + public function executeResources(sfWebRequest $request) + { + $class = new ResourcesFilesServlet(); + self::servletExecute($class); + exit; + } + /** * Execute js action * diff --git a/lib/routing/opOpenSocialPluginPcFrontendRouteCollection.class.php b/lib/routing/opOpenSocialPluginPcFrontendRouteCollection.class.php index 4acdcad..e793106 100644 --- a/lib/routing/opOpenSocialPluginPcFrontendRouteCollection.class.php +++ b/lib/routing/opOpenSocialPluginPcFrontendRouteCollection.class.php @@ -106,6 +106,10 @@ protected function generateRoutes() array('model' => 'Application', 'type' => 'object') ), + 'gadgets_resources' => new sfRoute( + '/gadgets/resources/*', + array('module' => 'gadgets', 'action' => 'resources') + ), 'gadgets_js' => new sfRoute( '/gadgets/js/*', array('module' => 'gadgets', 'action' => 'js') diff --git a/lib/vendor/Shindig/external/resources/com/google/caja/plugin/domita-minified.js b/lib/vendor/Shindig/external/resources/com/google/caja/plugin/domita-minified.js new file mode 100644 index 0000000..453458e --- /dev/null +++ b/lib/vendor/Shindig/external/resources/com/google/caja/plugin/domita-minified.js @@ -0,0 +1,768 @@ +{var JSON,___,attachDocumentStub,bridal,bridalMaker,cajita,css,cssparser,domitaModules,escape,html,html4,json_sans_eval,safeJSON,unicode;typeof +Date.prototype.toJSON!=='function'&&(Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}),json_sans_eval=(function(){var +hop=Object.hasOwnProperty,EMPTY_STRING,SLASH,completeToken,cx,escapable,escapeSequence,escapes,gap,indent,meta,number,oneChar,rep,significantToken,string;function +f(n){return n<10?'0'+n:n}cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={'\b':'\\b',' ':'\\t','\n':'\\n',' ':'\\f','\r':'\\r','\"':'\\\"','\\':'\\\\'};function +quote(string){return escapable.lastIndex=0,escapable.test(string)?'\"'+string.replace(escapable,function(a){var +c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'\"':'\"'+string+'\"'}function +str(key,holder){var mind=gap,value=holder[key],i,k,length,partial,v;value&&typeof +value==='object'&&typeof value.toJSON==='function'&&(value=value.toJSON(key)),typeof +rep==='function'&&(value=rep.call(holder,key,value));switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value)return'null';gap+=indent,partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i=s)arr[e]=''}function checkSyntax(text,keyFilter){var toks=(''+text).match(completeToken),i=0,n=toks.length;checkArray();if(i=0;)delete +value[toDelete[i]]}return opt_reviver.call(holder,key,value)},result=walk({'':result},'')),result}return{'checkSyntax':checkSyntax,'parse':parse,'stringify':stringify}})(),typeof +JSON==='undefined'&&(JSON={}),typeof JSON.stringify!=='function'&&(JSON.stringify=json_sans_eval.stringify),typeof +JSON.parse!=='function'&&(JSON.parse=json_sans_eval.parse),Array.typeTag___='Array',Object.typeTag___='Object',String.typeTag___='String',Boolean.typeTag___='Boolean',Number.typeTag___='Number',Date.typeTag___='Date',RegExp.typeTag___='RegExp',Error.typeTag___='Error',EvalError.typeTag___='EvalError',RangeError.typeTag___='RangeError',ReferenceError.typeTag___='ReferenceError',SyntaxError.typeTag___='SyntaxError',TypeError.typeTag___='TypeError',URIError.typeTag___='URIError',Object.prototype.proto___=null,Date.prototype.toISOString===void +0&&typeof Date.prototype.toJSON==='function'&&(Date.prototype.toISOString=function(){return Date.prototype.toJSON.call(this)});try{(function(){}).apply({},{'length':0})}catch(ex){ex +instanceof TypeError&&(Function.prototype.apply___=Function.prototype.apply,Function.prototype.apply=function +applyGuard(self,args){return args&&args.CLASS___==='Arguments'&&(args=Array.slice(args,0)),this.apply___(self,args)})}Array.slice===void +0&&(Array.slice=function(self,opt_start,opt_end){return self&&typeof self==='object'?(opt_end===void +0&&(opt_end=self.length),Array.prototype.slice.call(self,opt_start,opt_end)):[]}),Function.prototype.bind===void +0&&(Function.prototype.bind=function(self,var_args){var thisFunc=this,leftArgs=Array.slice(arguments,1);function +funcBound(var_args){var args=leftArgs.concat(Array.slice(arguments,0));return thisFunc.apply(self,args)}return funcBound}),(function(global){var +BREAK,GuardMark,GuardStamp,GuardT,MAGIC_NAME,MAGIC_NUM,MAGIC_TOKEN,NO_RESULT,PseudoFunctionProto,USELESS,attribute,endsWith__,endsWith___,endsWith_canDelete___,endsWith_canRead___,endsWith_canSet___,goodJSON,magicCount,myKeeper,myLogFunc,myNewModuleHandler,myOriginalHOP,myOriginalToString,obtainNewModule,poisonArgsCallee,poisonArgsCaller,poisonFuncArgs,poisonFuncCaller,pushMethod,registeredImports,sharedImports,stackInfoFields;function +ToInt32(alleged_int){return alleged_int>>0}function ToUInt32(alleged_int){return alleged_int>>>0}function +arrayIndexOf(specimen,i){var len=ToUInt32(this.length);i=ToInt32(i),i<0&&((i+=len)<0&&(i=0));for(;i=len)i=len-1}for(;i>=0;--i)if(i in this&&identical(this[i],specimen))return i;return -1}Array.prototype.lastIndexOf=arrayLastIndexOf,endsWith_canDelete___=/_canDelete___$/,endsWith_canRead___=/_canRead___$/,endsWith_canSet___=/_canSet___$/,endsWith___=/___$/,endsWith__=/__$/;function +typeOf(obj){var result=typeof obj,ctor;return result!=='function'?result:(ctor=obj.constructor,typeof +ctor==='function'&&ctor.typeTag___==='RegExp'&&obj instanceof ctor?'object':'function')}typeof +new RegExp('x')==='object'&&(typeOf=function fastTypeof(obj){return typeof obj}),myOriginalHOP=Object.prototype.hasOwnProperty,myOriginalToString=Object.prototype.toString;function +hasOwnProp(obj,name){var t;return obj?(t=typeof obj,t!=='object'&&t!=='function'?false:myOriginalHOP.call(obj,name)):false}function +identical(x,y){return x===y?x!==0||1/x===1/y:x!==x&&y!==y}function callFault(var_args){return asFunc(this).apply(USELESS,arguments)}Object.prototype.CALL___=callFault;function +defaultLogger(str,opt_stop){}myLogFunc=markFuncFreeze(defaultLogger);function getLogFunc(){return myLogFunc}function +setLogFunc(newLogFunc){myLogFunc=newLogFunc}function log(str){myLogFunc(String(str))}function +fail(var_args){var message=Array.slice(arguments,0).join('');throw myLogFunc(message,true),new +Error(message)}function enforce(test,var_args){return test||fail.apply(USELESS,Array.slice(arguments,1))}function +enforceType(specimen,typename,opt_name){return typeOf(specimen)!==typename&&fail('expected ',typename,' instead of ',typeOf(specimen),': ',opt_name||specimen),specimen}function +enforceNat(specimen){return enforceType(specimen,'number'),Math.floor(specimen)!==specimen&&fail('Must be integral: ',specimen),specimen<0&&fail('Must not be negative: ',specimen),Math.floor(specimen-1)!==specimen-1&&fail('Beyond precision limit: ',specimen),Math.floor(specimen-1)>=specimen&&fail('Must not be infinite: ',specimen),specimen}function +deprecate(func,badName,advice){var warningNeeded=true;return function(){return warningNeeded&&(log('\"'+badName+'\" is deprecated.\n'+advice),warningNeeded=false),func.apply(USELESS,arguments)}}function +debugReference(obj){var constr;switch(typeOf(obj)){case'object':return obj===null?'':(constr=directConstructor(obj),'['+(constr&&constr.name||'Object')+']');default:return'('+obj+':'+typeOf(obj)+')'}}myKeeper={'toString':function +toString(){return''},'handleRead':function handleRead(obj,name){return},'handleCall':function +handleCall(obj,name,args){fail('Not callable: (',debugReference(obj),').',name)},'handleSet':function +handleSet(obj,name,val){fail('Not writable: (',debugReference(obj),').',name)},'handleDelete':function +handleDelete(obj,name){fail('Not deletable: (',debugReference(obj),').',name)}},Object.prototype.handleRead___=function +handleRead___(name){var handlerName=name+'_getter___';return this[handlerName]?this[handlerName]():myKeeper.handleRead(this,name)},Object.prototype.handleCall___=function +handleCall___(name,args){var handlerName=name+'_handler___';return this[handlerName]?this[handlerName].call(this,args):myKeeper.handleCall(this,name,args)},Object.prototype.handleSet___=function +handleSet___(name,val){var handlerName=name+'_setter___';return this[handlerName]?this[handlerName](val):myKeeper.handleSet(this,name,val)},Object.prototype.handleDelete___=function +handleDelete___(name){var handlerName=name+'_deleter___';return this[handlerName]?this[handlerName]():myKeeper.handleDelete(this,name)};function +directConstructor(obj){var oldConstr,proto,result;if(obj===null)return;if(obj===void +0)return;if(typeOf(obj)==='function')return;obj=Object(obj);if(myOriginalHOP.call(obj,'proto___')){proto=obj.proto___;if(proto===null)return;result=proto.constructor,(result.prototype!==proto||typeOf(result)!=='function')&&(result=directConstructor(proto))}else{if(!myOriginalHOP.call(obj,'constructor'))result=obj.constructor;else{oldConstr=obj.constructor;if(delete +obj.constructor)result=obj.constructor,obj.constructor=oldConstr;else if(isPrototypical(obj))log('Guessing the directConstructor of : '+obj),result=Object;else +return fail('Discovery of direct constructors unsupported when the ','constructor property is not deletable: ',obj,'.constructor === ',oldConstr,'(',obj===global,')')}(typeOf(result)!=='function'||!(obj +instanceof result))&&fail('Discovery of direct constructors for foreign begotten ','objects not implemented on this platform.\n'),result.prototype.constructor===result&&(obj.proto___=result.prototype)}return result}function +getFuncCategory(fun){return enforceType(fun,'function'),fun.typeTag___?fun.typeTag___:fun}function +isDirectInstanceOf(obj,ctor){var constr=directConstructor(obj);return constr===void +0?false:getFuncCategory(constr)===getFuncCategory(ctor)}function isInstanceOf(obj,ctor){return obj +instanceof ctor?true:!!isDirectInstanceOf(obj,ctor)}function isRecord(obj){return obj?obj.RECORD___===obj?true:isDirectInstanceOf(obj,Object)?(obj.RECORD___=obj,true):false:false}function +isArray(obj){return isDirectInstanceOf(obj,Array)}function isJSONContainer(obj){var +constr,typeTag;return obj?obj.RECORD___===obj?true:(constr=directConstructor(obj),constr===void +0?false:(typeTag=constr.typeTag___,typeTag!=='Object'&&typeTag!=='Array'?false:!isPrototypical(obj))):false}function +isFrozen(obj){var t;return obj?obj.FROZEN___===obj?true:(t=typeof obj,t!=='object'&&t!=='function'):true}function +primFreeze(obj){var badFlags,flag,i,k;if(isFrozen(obj))return obj;if(obj.SLOWFREEZE___){badFlags=[];for(k +in obj)(endsWith_canSet___.test(k)||endsWith_canDelete___.test(k))&&(obj[k]&&badFlags.push(k));for(i=0;i=0?name in obj:(name=String(name),obj===null?false:obj===void +0?false:obj[name+'_canRead___']?name in Object(obj):endsWith__.test(name)?false:name==='toString'?false:isJSONContainer(obj)?myOriginalHOP.call(obj,name)?(fastpathRead(obj,name),true):false:false)}function +hasOwnPropertyOf(obj,name){return typeof name==='number'&&name>=0?hasOwnProp(obj,name):(name=String(name),obj&&obj[name+'_canRead___']===obj?true:canReadPub(obj,name)&&myOriginalHOP.call(obj,name))}function +inPub(name,obj){var t=typeof obj;if(!obj||t!=='object'&&t!=='function')throw new +TypeError('invalid \"in\" operand: '+obj);return obj=Object(obj),canReadPub(obj,name)?true:canCallPub(obj,name)?true:name+'_getter___'in +obj?true:name+'_handler___'in obj}function readPub(obj,name){if(typeof name==='number'&&name>=0)return typeof +obj==='string'?obj.charAt(name):obj[name];name=String(name);if(canReadPub(obj,name))return obj[name];if(obj===null||obj===void +0)throw new TypeError('Can\'t read '+name+' on '+obj);return obj.handleRead___(name)}function +readOwn(obj,name,pumpkin){if(typeof obj!=='object'||!obj){if(typeOf(obj)!=='object')return pumpkin};return typeof +name==='number'&&name>=0?myOriginalHOP.call(obj,name)?obj[name]:pumpkin:(name=String(name),obj[name+'_canRead___']===obj?obj[name]:myOriginalHOP.call(obj,name)?endsWith__.test(name)?pumpkin:name==='toString'?pumpkin:isJSONContainer(obj)?(fastpathRead(obj,name),obj[name]):pumpkin:pumpkin)}function +enforceStaticPath(result,permitsUsed){forOwnKeys(permitsUsed,markFuncFreeze(function(name,subPermits){enforce(isFrozen(result),'Assumed frozen: ',result);if(name==='()');else +enforce(canReadPub(result,name),'Assumed readable: ',result,'.',name),inPub('()',subPermits)&&enforce(canCallPub(result,name),'Assumed callable: ',result,'.',name,'()'),enforceStaticPath(readPub(result,name),subPermits)}))}function +readImport(module_imports,name,opt_permitsUsed){var pumpkin={},result=readOwn(module_imports,name,pumpkin);return result===pumpkin?(log('Linkage warning: '+name+' not importable'),void +0):(opt_permitsUsed&&enforceStaticPath(result,opt_permitsUsed),result)}function +canInnocentEnum(obj,name){return name=String(name),!endsWith___.test(name)}function +canEnumPub(obj,name){return obj===null?false:obj===void 0?false:(name=String(name),obj[name+'_canEnum___']?true:endsWith__.test(name)?false:isJSONContainer(obj)?myOriginalHOP.call(obj,name)?(fastpathEnum(obj,name),name==='toString'||fastpathRead(obj,name),true):false:false)}function +canEnumOwn(obj,name){return name=String(name),obj&&obj[name+'_canEnum___']===obj?true:canEnumPub(obj,name)&&myOriginalHOP.call(obj,name)}function +Token(name){return name=String(name),primFreeze({'toString':markFuncFreeze(function +tokenToString(){return name}),'throwable___':true})}markFuncFreeze(Token),BREAK=Token('BREAK'),NO_RESULT=Token('NO_RESULT');function +forOwnKeys(obj,fn){var i,keys;fn=toFunc(fn),keys=ownKeys(obj);for(i=0;i=0&&obj instanceof Array&&obj.FROZEN___!==obj)return obj[name]=val;name=String(name);if(obj===null||obj===void +0)throw new TypeError('Can\'t set '+name+' on '+obj);return obj[name+'_canSet___']===obj?(obj[name]=val):canSetPub(obj,name)?(fastpathSet(obj,name),obj[name]=val):obj.handleSet___(name,val)}function +canSetStatic(fun,staticMemberName){return staticMemberName=''+staticMemberName,typeOf(fun)!=='function'?(log('Cannot set static member of non function: '+fun),false):isFrozen(fun)?(log('Cannot set static member of frozen function: '+fun),false):isFunc(fun)?staticMemberName==='toString'?false:endsWith__.test(staticMemberName)||staticMemberName==='valueOf'?(log('Illegal static member name: '+staticMemberName),false):staticMemberName +in fun?(log('Cannot override static member: '+staticMemberName),false):true:(log('Can only set static members on simple-functions: '+fun),false)}function +setStatic(fun,staticMemberName,staticMemberValue){staticMemberName=''+staticMemberName,canSetStatic(fun,staticMemberName)?(fun[staticMemberName]=staticMemberValue,fastpathEnum(fun,staticMemberName),fastpathRead(fun,staticMemberName)):fun.handleSet___(staticMemberName,staticMemberValue)}function +canDeletePub(obj,name){return name=String(name),isFrozen(obj)?false:endsWith__.test(name)?false:name==='valueOf'?false:name==='toString'?false:!!isJSONContainer(obj)}function +deletePub(obj,name){name=String(name);if(obj===null||obj===void 0)throw new TypeError('Can\'t delete '+name+' on '+obj);return canDeletePub(obj,name)?deleteFieldEntirely(obj,name):obj.handleDelete___(name)}function +deleteFieldEntirely(obj,name){return delete obj[name+'_canRead___'],delete obj[name+'_canEnum___'],delete +obj[name+'_canCall___'],delete obj[name+'_grantCall___'],delete obj[name+'_grantSet___'],delete +obj[name+'_canSet___'],delete obj[name+'_canDelete___'],delete obj[name]||(fail('not deleted: ',name),false)}USELESS=Token('USELESS');function +manifest(ignored){}stackInfoFields=['stack','fileName','lineNumer','description','stackTrace','sourceURL','line'];function +callStackUnsealer(ex){var i,k,numStackInfoFields,stackInfo;if(ex&&isInstanceOf(ex,Error)){stackInfo={},numStackInfoFields=stackInfoFields.length;for(i=0;i>>0;for(i=0;i>> 0) instead as a UInt32 test')},forOwnKeys(cajita,markFuncFreeze(function(k,v){switch(typeOf(v)){case'object':v!==null&&primFreeze(v);break;case'function':markFuncFreeze(v)}})),sharedImports={'cajita':cajita,'null':null,'false':false,'true':true,'NaN':NaN,'Infinity':Infinity,'undefined':void +0,'parseInt':markFuncFreeze(parseInt),'parseFloat':markFuncFreeze(parseFloat),'isNaN':markFuncFreeze(isNaN),'isFinite':markFuncFreeze(isFinite),'decodeURI':markFuncFreeze(decodeURI),'decodeURIComponent':markFuncFreeze(decodeURIComponent),'encodeURI':markFuncFreeze(encodeURI),'encodeURIComponent':markFuncFreeze(encodeURIComponent),'escape':escape?markFuncFreeze(escape):void +0,'Math':Math,'JSON':safeJSON,'Object':Object,'Array':Array,'String':String,'Boolean':Boolean,'Number':Number,'Date':Date,'RegExp':RegExp,'Error':Error,'EvalError':EvalError,'RangeError':RangeError,'ReferenceError':ReferenceError,'SyntaxError':SyntaxError,'TypeError':TypeError,'URIError':URIError},forOwnKeys(sharedImports,markFuncFreeze(function(k,v){switch(typeOf(v)){case'object':v!==null&&primFreeze(v);break;case'function':primFreeze(v)}})),primFreeze(sharedImports),___={'getLogFunc':getLogFunc,'setLogFunc':setLogFunc,'primFreeze':primFreeze,'canRead':canRead,'grantRead':grantRead,'canEnum':canEnum,'grantEnum':grantEnum,'canCall':canCall,'canSet':canSet,'grantSet':grantSet,'canDelete':canDelete,'grantDelete':grantDelete,'readImport':readImport,'isCtor':isCtor,'isFunc':isFunc,'markCtor':markCtor,'extend':extend,'markFuncFreeze':markFuncFreeze,'markXo4a':markXo4a,'markInnocent':markInnocent,'asFunc':asFunc,'toFunc':toFunc,'inPub':inPub,'canSetStatic':canSetStatic,'setStatic':setStatic,'typeOf':typeOf,'hasOwnProp':hasOwnProp,'deleteFieldEntirely':deleteFieldEntirely,'tameException':tameException,'primBeget':primBeget,'callStackUnsealer':callStackUnsealer,'RegExp':RegExp,'GuardStamp':GuardStamp,'asFirstClass':asFirstClass,'initializeMap':initializeMap,'iM':initializeMap,'useGetHandler':useGetHandler,'useSetHandler':useSetHandler,'grantFunc':grantFunc,'grantGenericMethod':grantGenericMethod,'handleGenericMethod':handleGenericMethod,'grantTypedMethod':grantTypedMethod,'grantMutatingMethod':grantMutatingMethod,'grantInnocentMethod':grantInnocentMethod,'enforceMatchable':enforceMatchable,'all2':all2,'tamesTo':tamesTo,'tamesToSelf':tamesToSelf,'tame':tame,'untame':untame,'getNewModuleHandler':getNewModuleHandler,'setNewModuleHandler':setNewModuleHandler,'obtainNewModule':obtainNewModule,'makeNormalNewModuleHandler':makeNormalNewModuleHandler,'loadModule':loadModule,'prepareModule':prepareModule,'NO_RESULT':NO_RESULT,'getId':getId,'getImports':getImports,'unregister':unregister,'grantEnumOnly':deprecate(grantEnum,'___.grantEnumOnly','Use ___.grantEnum instead.'),'grantCall':deprecate(grantGenericMethod,'___.grantCall','Choose a method tamer (e.g., ___.grantFunc,___.grantGenericMethod,etc) according to the safety properties of calling and reading the method.'),'grantGeneric':deprecate(grantGenericMethod,'___.grantGeneric','Use ___.grantGenericMethod instead.'),'useApplyHandler':deprecate(useApplyHandler,'___.useApplyHandler','Use ___.handleGenericMethod instead.'),'useCallHandler':deprecate(useCallHandler,'___.useCallHandler','Use ___.handleGenericMethod instead.'),'handleGeneric':deprecate(useCallHandler,'___.handleGeneric','Use ___.handleGenericMethod instead.'),'grantTypedGeneric':deprecate(useCallHandler,'___.grantTypedGeneric','Use ___.grantTypedMethod instead.'),'grantMutator':deprecate(useCallHandler,'___.grantMutator','Use ___.grantMutatingMethod instead.'),'useDeleteHandler':deprecate(useDeleteHandler,'___.useDeleteHandler','Refactor to avoid needing to handle deletions.'),'isXo4aFunc':deprecate(isXo4aFunc,'___.isXo4aFunc','Refactor to avoid needing to dynamically test whether a function is marked exophoric.'),'xo4a':deprecate(markXo4a,'___.xo4a','Consider refactoring to avoid needing to explicitly mark a function as exophoric. Use one of the exophoric method tamers (e.g., ___.grantGenericMethod) instead.Otherwise, use ___.markXo4a instead.'),'ctor':deprecate(markCtor,'___.ctor','Use ___.markCtor instead.'),'func':deprecate(markFuncFreeze,'___.func','___.func should not be called from manually written code.'),'frozenFunc':deprecate(markFuncFreeze,'___.frozenFunc','Use ___.markFuncFreeze instead.'),'markFuncOnly':deprecate(markFuncFreeze,'___.markFuncOnly','___.markFuncOnly should not be called from manually written code.'),'sharedImports':sharedImports},forOwnKeys(cajita,markFuncFreeze(function(k,v){k +in ___&&fail('internal: initialization conflict: ',k),typeOf(v)==='function'&&grantFunc(cajita,k),___[k]=v})),setNewModuleHandler(makeNormalNewModuleHandler())})(this),unicode={},unicode.BASE_CHAR='A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u0131\u0134-\u013e\u0141-\u0148\u014a-\u017e\u0180-\u01c3\u01cd-\u01f0\u01f4-\u01f5\u01fa-\u0217\u0250-\u02a8\u02bb-\u02c1\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d6\u03da\u03dc\u03de\u03e0\u03e2-\u03f3\u0401-\u040c\u040e-\u044f\u0451-\u045c\u045e-\u0481\u0490-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04eb\u04ee-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0586\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u0671-\u06b7\u06ba-\u06be\u06c0-\u06ce\u06d0-\u06d3\u06d5\u06e5-\u06e6\u0905-\u0939\u093d\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b36-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61\u0e01-\u0e2e\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eae\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0f40-\u0f47\u0f49-\u0f69\u10a0-\u10c5\u10d0-\u10f6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110b-\u110c\u110e-\u1112\u113c\u113e\u1140\u114c\u114e\u1150\u1154-\u1155\u1159\u115f-\u1161\u1163\u1165\u1167\u1169\u116d-\u116e\u1172-\u1173\u1175\u119e\u11a8\u11ab\u11ae-\u11af\u11b7-\u11b8\u11ba\u11bc-\u11c2\u11eb\u11f0\u11f9\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2126\u212a-\u212b\u212e\u2180-\u2182\u3041-\u3094\u30a1-\u30fa\u3105-\u312c\uac00-\ud7a3',unicode.IDEOGRAPHIC='\u4e00-\u9fa5\u3007\u3021-\u3029',unicode.LETTER=unicode.BASE_CHAR+unicode.IDEOGRAPHIC,unicode.COMBINING_CHAR='\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05a1\u05a3-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u064b-\u0652\u0670\u06d6-\u06dc\u06dd-\u06df\u06e0-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0901-\u0903\u093c\u093e-\u094c\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be\u09bf\u09c0-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a02\u0a3c\u0a3e\u0a3f\u0a40-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0b01-\u0b03\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82-\u0b83\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86-\u0f8b\u0f90-\u0f95\u0f97\u0f99-\u0fad\u0fb1-\u0fb7\u0fb9\u20d0-\u20dc\u20e1\u302a-\u302f\u3099\u309a',unicode.DIGIT='0-9\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be7-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29',unicode.EXTENDER='\xb7\u02d0\u02d1\u0387\u0640\u0e46\u0ec6\u3005\u3031-\u3035\u309d-\u309e\u30fc-\u30fe',css={'properties':(function(){var +s=['|left|center|right','|top|center|bottom','#(?:[\\da-f]{3}){1,2}|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|rgb\\(\\s*(?:-?\\d+|0|[+\\-]?\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:-?\\d+|0|[+\\-]?\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:-?\\d+|0|[+\\-]?\\d+(?:\\.\\d+)?%)\\)','[+\\-]?\\d+(?:\\.\\d+)?(?:[cem]m|ex|in|p[ctx])','\\d+(?:\\.\\d+)?(?:[cem]m|ex|in|p[ctx])','none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset','[+\\-]?\\d+(?:\\.\\d+)?%','\\d+(?:\\.\\d+)?%','url\\(\"[^()\\\\\"\\r\\n]+\"\\)','repeat-x|repeat-y|(?:repeat|space|round|no-repeat)(?:\\s+(?:repeat|space|round|no-repeat)){0,2}'],c=[RegExp('^\\s*(?:\\s*(?:0|'+s[3]+'|'+s[6]+')){1,2}\\s*$','i'),RegExp('^\\s*(?:\\s*(?:0|'+s[3]+'|'+s[6]+')){1,4}(?:\\s*\\/(?:\\s*(?:0|'+s[3]+'|'+s[6]+')){1,4})?\\s*$','i'),RegExp('^\\s*(?:\\s*none|(?:(?:\\s*(?:'+s[2]+')\\s+(?:0|'+s[3]+')(?:\\s*(?:0|'+s[3]+')){1,4}(?:\\s*inset)?|(?:\\s*inset)?\\s+(?:0|'+s[3]+')(?:\\s*(?:0|'+s[3]+')){1,4}(?:\\s*(?:'+s[2]+'))?)\\s*,)*(?:\\s*(?:'+s[2]+')\\s+(?:0|'+s[3]+')(?:\\s*(?:0|'+s[3]+')){1,4}(?:\\s*inset)?|(?:\\s*inset)?\\s+(?:0|'+s[3]+')(?:\\s*(?:0|'+s[3]+')){1,4}(?:\\s*(?:'+s[2]+'))?))\\s*$','i'),RegExp('^\\s*(?:'+s[2]+'|transparent|inherit)\\s*$','i'),RegExp('^\\s*(?:'+s[5]+'|inherit)\\s*$','i'),RegExp('^\\s*(?:thin|medium|thick|0|'+s[3]+'|inherit)\\s*$','i'),RegExp('^\\s*(?:(?:thin|medium|thick|0|'+s[3]+'|'+s[5]+'|'+s[2]+'|transparent|inherit)(?:\\s+(?:thin|medium|thick|0|'+s[3]+')|\\s+(?:'+s[5]+')|\\s*#(?:[\\da-f]{3}){1,2}|\\s+aqua|\\s+black|\\s+blue|\\s+fuchsia|\\s+gray|\\s+green|\\s+lime|\\s+maroon|\\s+navy|\\s+olive|\\s+orange|\\s+purple|\\s+red|\\s+silver|\\s+teal|\\s+white|\\s+yellow|\\s+rgb\\(\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\)|\\s+transparent|\\s+inherit){0,2}|inherit)\\s*$','i'),/^\s*(?:none|inherit)\s*$/i,RegExp('^\\s*(?:'+s[8]+'|none|inherit)\\s*$','i'),RegExp('^\\s*(?:0|'+s[3]+'|'+s[6]+'|auto|inherit)\\s*$','i'),RegExp('^\\s*(?:0|'+s[4]+'|'+s[7]+'|none|inherit|auto)\\s*$','i'),RegExp('^\\s*(?:0|'+s[4]+'|'+s[7]+'|inherit|auto)\\s*$','i'),/^\s*(?:0(?:\.\d+)?|\.\d+|1(?:\.0+)?|inherit)\s*$/i,RegExp('^\\s*(?:(?:'+s[2]+'|invert|inherit|'+s[5]+'|thin|medium|thick|0|'+s[3]+')(?:\\s*#(?:[\\da-f]{3}){1,2}|\\s+aqua|\\s+black|\\s+blue|\\s+fuchsia|\\s+gray|\\s+green|\\s+lime|\\s+maroon|\\s+navy|\\s+olive|\\s+orange|\\s+purple|\\s+red|\\s+silver|\\s+teal|\\s+white|\\s+yellow|\\s+rgb\\(\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\)|\\s+invert|\\s+inherit|\\s+(?:'+s[5]+'|inherit)|\\s+(?:thin|medium|thick|0|'+s[3]+'|inherit)){0,2}|inherit)\\s*$','i'),RegExp('^\\s*(?:'+s[2]+'|invert|inherit)\\s*$','i'),/^\s*(?:visible|hidden|scroll|auto|no-display|no-content)\s*$/i,RegExp('^\\s*(?:0|'+s[4]+'|'+s[7]+'|inherit)\\s*$','i'),/^\s*(?:auto|always|avoid|left|right|inherit)\s*$/i,RegExp('^\\s*(?:0|[+\\-]?\\d+(?:\\.\\d+)?m?s|'+s[6]+'|inherit)\\s*$','i'),/^\s*(?:0|[+\-]?\d+(?:\.\d+)?|inherit)\s*$/i,/^\s*(?:clip|ellipsis)\s*$/i,RegExp('^\\s*(?:normal|0|'+s[3]+'|inherit)\\s*$','i')];return{'-moz-border-radius':c[1],'-moz-border-radius-bottomleft':c[0],'-moz-border-radius-bottomright':c[0],'-moz-border-radius-topleft':c[0],'-moz-border-radius-topright':c[0],'-moz-box-shadow':c[2],'-moz-opacity':c[12],'-moz-outline':c[13],'-moz-outline-color':c[14],'-moz-outline-style':c[4],'-moz-outline-width':c[5],'-o-text-overflow':c[20],'-webkit-border-bottom-left-radius':c[0],'-webkit-border-bottom-right-radius':c[0],'-webkit-border-radius':c[1],'-webkit-border-radius-bottom-left':c[0],'-webkit-border-radius-bottom-right':c[0],'-webkit-border-radius-top-left':c[0],'-webkit-border-radius-top-right':c[0],'-webkit-border-top-left-radius':c[0],'-webkit-border-top-right-radius':c[0],'-webkit-box-shadow':c[2],'azimuth':/^\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:g?rad|deg)|(?:left-side|far-left|left|center-left|center|center-right|right|far-right|right-side|behind)(?:\s+(?:left-side|far-left|left|center-left|center|center-right|right|far-right|right-side|behind))?|leftwards|rightwards|inherit)\s*$/i,'background':RegExp('^\\s*(?:\\s*(?:'+s[8]+'|none|(?:(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?))?)(?:\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain))?|\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain)|'+s[9]+'|scroll|fixed|local|(?:border|padding|content)-box)(?:\\s*'+s[8]+'|\\s+none|(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)){1,2})(?:\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain))?|\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain)|\\s+repeat-x|\\s+repeat-y|(?:\\s+(?:repeat|space|round|no-repeat)){1,2}|\\s+(?:scroll|fixed|local)|\\s+(?:border|padding|content)-box){0,4}\\s*,)*\\s*(?:'+s[2]+'|transparent|inherit|'+s[8]+'|none|(?:(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?))?)(?:\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain))?|\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain)|'+s[9]+'|scroll|fixed|local|(?:border|padding|content)-box)(?:\\s*#(?:[\\da-f]{3}){1,2}|\\s+aqua|\\s+black|\\s+blue|\\s+fuchsia|\\s+gray|\\s+green|\\s+lime|\\s+maroon|\\s+navy|\\s+olive|\\s+orange|\\s+purple|\\s+red|\\s+silver|\\s+teal|\\s+white|\\s+yellow|\\s+rgb\\(\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\)|\\s+transparent|\\s+inherit|\\s*'+s[8]+'|\\s+none|(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)){1,2})(?:\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain))?|\\s*\\/\\s*(?:(?:0|'+s[4]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[4]+'|'+s[6]+'|auto)){0,2}|cover|contain)|\\s+repeat-x|\\s+repeat-y|(?:\\s+(?:repeat|space|round|no-repeat)){1,2}|\\s+(?:scroll|fixed|local)|\\s+(?:border|padding|content)-box){0,5}\\s*$','i'),'background-attachment':/^\s*(?:scroll|fixed|local)(?:\s*,\s*(?:scroll|fixed|local))*\s*$/i,'background-color':c[3],'background-image':RegExp('^\\s*(?:'+s[8]+'|none)(?:\\s*,\\s*(?:'+s[8]+'|none))*\\s*$','i'),'background-position':RegExp('^\\s*(?:(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?))?)(?:\\s*,\\s*(?:(?:0|'+s[6]+'|'+s[3]+s[0]+')(?:\\s+(?:0|'+s[6]+'|'+s[3]+s[1]+'))?|(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?)(?:\\s+(?:center|(?:lef|righ)t(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?|(?:top|bottom)(?:\\s+(?:0|'+s[6]+'|'+s[3]+'))?))?))*\\s*$','i'),'background-repeat':RegExp('^\\s*(?:'+s[9]+')(?:\\s*,\\s*(?:'+s[9]+'))*\\s*$','i'),'border':RegExp('^\\s*(?:(?:thin|medium|thick|0|'+s[3]+'|'+s[5]+'|'+s[2]+'|transparent)(?:\\s+(?:thin|medium|thick|0|'+s[3]+')|\\s+(?:'+s[5]+')|\\s*#(?:[\\da-f]{3}){1,2}|\\s+aqua|\\s+black|\\s+blue|\\s+fuchsia|\\s+gray|\\s+green|\\s+lime|\\s+maroon|\\s+navy|\\s+olive|\\s+orange|\\s+purple|\\s+red|\\s+silver|\\s+teal|\\s+white|\\s+yellow|\\s+rgb\\(\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\)|\\s+transparent){0,2}|inherit)\\s*$','i'),'border-bottom':c[6],'border-bottom-color':c[3],'border-bottom-left-radius':c[0],'border-bottom-right-radius':c[0],'border-bottom-style':c[4],'border-bottom-width':c[5],'border-collapse':/^\s*(?:collapse|separate|inherit)\s*$/i,'border-color':RegExp('^\\s*(?:(?:'+s[2]+'|transparent)(?:\\s*#(?:[\\da-f]{3}){1,2}|\\s+aqua|\\s+black|\\s+blue|\\s+fuchsia|\\s+gray|\\s+green|\\s+lime|\\s+maroon|\\s+navy|\\s+olive|\\s+orange|\\s+purple|\\s+red|\\s+silver|\\s+teal|\\s+white|\\s+yellow|\\s+rgb\\(\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\s*,\\s*(?:-?\\d+|0|'+s[6]+')\\)|\\s+transparent){0,4}|inherit)\\s*$','i'),'border-left':c[6],'border-left-color':c[3],'border-left-style':c[4],'border-left-width':c[5],'border-radius':c[1],'border-right':c[6],'border-right-color':c[3],'border-right-style':c[4],'border-right-width':c[5],'border-spacing':RegExp('^\\s*(?:(?:\\s*(?:0|'+s[3]+')){1,2}|\\s*inherit)\\s*$','i'),'border-style':RegExp('^\\s*(?:(?:'+s[5]+')(?:\\s+(?:'+s[5]+')){0,4}|inherit)\\s*$','i'),'border-top':c[6],'border-top-color':c[3],'border-top-left-radius':c[0],'border-top-right-radius':c[0],'border-top-style':c[4],'border-top-width':c[5],'border-width':RegExp('^\\s*(?:(?:thin|medium|thick|0|'+s[3]+')(?:\\s+(?:thin|medium|thick|0|'+s[3]+')){0,4}|inherit)\\s*$','i'),'bottom':c[9],'box-shadow':c[2],'caption-side':/^\s*(?:top|bottom|inherit)\s*$/i,'clear':/^\s*(?:none|left|right|both|inherit)\s*$/i,'clip':RegExp('^\\s*(?:rect\\(\\s*(?:0|'+s[3]+'|auto)\\s*,\\s*(?:0|'+s[3]+'|auto)\\s*,\\s*(?:0|'+s[3]+'|auto)\\s*,\\s*(?:0|'+s[3]+'|auto)\\)|auto|inherit)\\s*$','i'),'color':RegExp('^\\s*(?:'+s[2]+'|inherit)\\s*$','i'),'counter-increment':c[7],'counter-reset':c[7],'cue':RegExp('^\\s*(?:(?:'+s[8]+'|none|inherit)(?:\\s*'+s[8]+'|\\s+none|\\s+inherit)?|inherit)\\s*$','i'),'cue-after':c[8],'cue-before':c[8],'cursor':RegExp('^\\s*(?:(?:\\s*'+s[8]+'\\s*,)*\\s*(?:auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)|\\s*inherit)\\s*$','i'),'direction':/^\s*(?:ltr|rtl|inherit)\s*$/i,'display':/^\s*(?:inline|block|list-item|run-in|inline-block|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|none|inherit|-moz-inline-box|-moz-inline-stack)\s*$/i,'elevation':/^\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:g?rad|deg)|below|level|above|higher|lower|inherit)\s*$/i,'empty-cells':/^\s*(?:show|hide|inherit)\s*$/i,'filter':RegExp('^\\s*(?:\\s*alpha\\(\\s*opacity\\s*=\\s*(?:0|'+s[6]+'|[+\\-]?\\d+(?:\\.\\d+)?)\\))+\\s*$','i'),'float':/^\s*(?:left|right|none|inherit)\s*$/i,'font':RegExp('^\\s*(?:(?:normal|italic|oblique|inherit|small-caps|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)(?:\\s+(?:normal|italic|oblique|inherit|small-caps|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)){0,2}\\s+(?:xx-small|x-small|small|medium|large|x-large|xx-large|(?:small|larg)er|0|'+s[4]+'|'+s[7]+'|inherit)(?:\\s*\\/\\s*(?:normal|0|\\d+(?:\\.\\d+)?|'+s[4]+'|'+s[7]+'|inherit))?(?:(?:\\s*\"\\w(?:[\\w-]*\\w)(?:\\s+\\w([\\w-]*\\w))*\"|\\s+(?:serif|sans-serif|cursive|fantasy|monospace))(?:\\s*,\\s*(?:\"\\w(?:[\\w-]*\\w)(?:\\s+\\w([\\w-]*\\w))*\"|serif|sans-serif|cursive|fantasy|monospace))*|\\s+inherit)|caption|icon|menu|message-box|small-caption|status-bar|inherit)\\s*$','i'),'font-family':/^\s*(?:(?:"\w(?:[\w-]*\w)(?:\s+\w([\w-]*\w))*"|serif|sans-serif|cursive|fantasy|monospace)(?:\s*,\s*(?:"\w(?:[\w-]*\w)(?:\s+\w([\w-]*\w))*"|serif|sans-serif|cursive|fantasy|monospace))*|inherit)\s*$/i,'font-size':RegExp('^\\s*(?:xx-small|x-small|small|medium|large|x-large|xx-large|(?:small|larg)er|0|'+s[4]+'|'+s[7]+'|inherit)\\s*$','i'),'font-stretch':/^\s*(?:normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded)\s*$/i,'font-style':/^\s*(?:normal|italic|oblique|inherit)\s*$/i,'font-variant':/^\s*(?:normal|small-caps|inherit)\s*$/i,'font-weight':/^\s*(?:normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit)\s*$/i,'height':c[9],'left':c[9],'letter-spacing':c[21],'line-height':RegExp('^\\s*(?:normal|0|\\d+(?:\\.\\d+)?|'+s[4]+'|'+s[7]+'|inherit)\\s*$','i'),'list-style':RegExp('^\\s*(?:(?:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none|inherit|inside|outside|'+s[8]+')(?:\\s+(?:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none|inherit)|\\s+(?:inside|outside|inherit)|\\s*'+s[8]+'|\\s+none|\\s+inherit){0,2}|inherit)\\s*$','i'),'list-style-image':c[8],'list-style-position':/^\s*(?:inside|outside|inherit)\s*$/i,'list-style-type':/^\s*(?:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none|inherit)\s*$/i,'margin':RegExp('^\\s*(?:(?:0|'+s[3]+'|'+s[6]+'|auto)(?:\\s+(?:0|'+s[3]+'|'+s[6]+'|auto)){0,4}|inherit)\\s*$','i'),'margin-bottom':c[9],'margin-left':c[9],'margin-right':c[9],'margin-top':c[9],'max-height':c[10],'max-width':c[10],'min-height':c[11],'min-width':c[11],'opacity':c[12],'outline':c[13],'outline-color':c[14],'outline-style':c[4],'outline-width':c[5],'overflow':/^\s*(?:visible|hidden|scroll|auto|inherit)\s*$/i,'overflow-x':c[15],'overflow-y':c[15],'padding':RegExp('^\\s*(?:(?:\\s*(?:0|'+s[4]+'|'+s[7]+')){1,4}|\\s*inherit)\\s*$','i'),'padding-bottom':c[16],'padding-left':c[16],'padding-right':c[16],'padding-top':c[16],'page-break-after':c[17],'page-break-before':c[17],'page-break-inside':/^\s*(?:avoid|auto|inherit)\s*$/i,'pause':RegExp('^\\s*(?:(?:\\s*(?:0|[+\\-]?\\d+(?:\\.\\d+)?m?s|'+s[6]+')){1,2}|\\s*inherit)\\s*$','i'),'pause-after':c[18],'pause-before':c[18],'pitch':/^\s*(?:0|\d+(?:\.\d+)?k?Hz|x-low|low|medium|high|x-high|inherit)\s*$/i,'pitch-range':c[19],'play-during':RegExp('^\\s*(?:'+s[8]+'\\s*(?:mix|repeat)(?:\\s+(?:mix|repeat))?|auto|none|inherit)\\s*$','i'),'position':/^\s*(?:static|relative|absolute|inherit)\s*$/i,'quotes':c[7],'richness':c[19],'right':c[9],'speak':/^\s*(?:normal|none|spell-out|inherit)\s*$/i,'speak-header':/^\s*(?:once|always|inherit)\s*$/i,'speak-numeral':/^\s*(?:digits|continuous|inherit)\s*$/i,'speak-punctuation':/^\s*(?:code|none|inherit)\s*$/i,'speech-rate':/^\s*(?:0|[+\-]?\d+(?:\.\d+)?|x-slow|slow|medium|fast|x-fast|faster|slower|inherit)\s*$/i,'stress':c[19],'table-layout':/^\s*(?:auto|fixed|inherit)\s*$/i,'text-align':/^\s*(?:left|right|center|justify|inherit)\s*$/i,'text-decoration':/^\s*(?:none|(?:underline|overline|line-through|blink)(?:\s+(?:underline|overline|line-through|blink)){0,3}|inherit)\s*$/i,'text-indent':RegExp('^\\s*(?:0|'+s[3]+'|'+s[6]+'|inherit)\\s*$','i'),'text-overflow':c[20],'text-shadow':c[2],'text-transform':/^\s*(?:capitalize|uppercase|lowercase|none|inherit)\s*$/i,'text-wrap':/^\s*(?:normal|unrestricted|none|suppress)\s*$/i,'top':c[9],'unicode-bidi':/^\s*(?:normal|embed|bidi-override|inherit)\s*$/i,'vertical-align':RegExp('^\\s*(?:baseline|sub|super|top|text-top|middle|bottom|text-bottom|0|'+s[6]+'|'+s[3]+'|inherit)\\s*$','i'),'visibility':/^\s*(?:visible|hidden|collapse|inherit)\s*$/i,'voice-family':/^\s*(?:(?:\s*(?:"\w(?:[\w-]*\w)(?:\s+\w([\w-]*\w))*"|male|female|child)\s*,)*\s*(?:"\w(?:[\w-]*\w)(?:\s+\w([\w-]*\w))*"|male|female|child)|\s*inherit)\s*$/i,'volume':RegExp('^\\s*(?:0|\\d+(?:\\.\\d+)?|'+s[7]+'|silent|x-soft|soft|medium|loud|x-loud|inherit)\\s*$','i'),'white-space':/^\s*(?:normal|pre|nowrap|pre-wrap|pre-line|inherit|-o-pre-wrap|-moz-pre-wrap|-pre-wrap)\s*$/i,'width':RegExp('^\\s*(?:0|'+s[4]+'|'+s[7]+'|auto|inherit)\\s*$','i'),'word-spacing':c[21],'word-wrap':/^\s*(?:normal|break-word)\s*$/i,'z-index':/^\s*(?:auto|-?\d+|inherit)\s*$/i,'zoom':RegExp('^\\s*(?:normal|0|\\d+(?:\\.\\d+)?|'+s[7]+')\\s*$','i')}})(),'alternates':{'MozBoxShadow':['boxShadow'],'WebkitBoxShadow':['boxShadow'],'float':['cssFloat','styleFloat']},'HISTORY_INSENSITIVE_STYLE_WHITELIST':{'display':true,'filter':true,'float':true,'height':true,'left':true,'opacity':true,'overflow':true,'position':true,'right':true,'top':true,'visibility':true,'width':true,'padding-left':true,'padding-right':true,'padding-top':true,'padding-bottom':true}},html4={},html4 +.atype={'NONE':0,'URI':1,'URI_FRAGMENT':11,'SCRIPT':2,'STYLE':3,'ID':4,'IDREF':5,'IDREFS':6,'GLOBAL_NAME':7,'LOCAL_NAME':8,'CLASSES':9,'FRAME_TARGET':10},html4 +.ATTRIBS={'*::class':9,'*::dir':0,'*::id':4,'*::lang':0,'*::onclick':2,'*::ondblclick':2,'*::onkeydown':2,'*::onkeypress':2,'*::onkeyup':2,'*::onload':2,'*::onmousedown':2,'*::onmousemove':2,'*::onmouseout':2,'*::onmouseover':2,'*::onmouseup':2,'*::style':3,'*::title':0,'a::accesskey':0,'a::coords':0,'a::href':1,'a::hreflang':0,'a::name':7,'a::onblur':2,'a::onfocus':2,'a::rel':0,'a::rev':0,'a::shape':0,'a::tabindex':0,'a::target':10,'a::type':0,'area::accesskey':0,'area::alt':0,'area::coords':0,'area::href':1,'area::nohref':0,'area::onblur':2,'area::onfocus':2,'area::shape':0,'area::tabindex':0,'area::target':10,'bdo::dir':0,'blockquote::cite':1,'br::clear':0,'button::accesskey':0,'button::disabled':0,'button::name':8,'button::onblur':2,'button::onfocus':2,'button::tabindex':0,'button::type':0,'button::value':0,'caption::align':0,'col::align':0,'col::char':0,'col::charoff':0,'col::span':0,'col::valign':0,'col::width':0,'colgroup::align':0,'colgroup::char':0,'colgroup::charoff':0,'colgroup::span':0,'colgroup::valign':0,'colgroup::width':0,'del::cite':1,'del::datetime':0,'dir::compact':0,'div::align':0,'dl::compact':0,'font::color':0,'font::face':0,'font::size':0,'form::accept':0,'form::action':1,'form::autocomplete':0,'form::enctype':0,'form::method':0,'form::name':7,'form::onreset':2,'form::onsubmit':2,'form::target':10,'h1::align':0,'h2::align':0,'h3::align':0,'h4::align':0,'h5::align':0,'h6::align':0,'hr::align':0,'hr::noshade':0,'hr::size':0,'hr::width':0,'iframe::align':0,'iframe::frameborder':0,'iframe::height':0,'iframe::marginheight':0,'iframe::marginwidth':0,'iframe::width':0,'img::align':0,'img::alt':0,'img::border':0,'img::height':0,'img::hspace':0,'img::ismap':0,'img::name':7,'img::src':1,'img::usemap':11,'img::vspace':0,'img::width':0,'input::accept':0,'input::accesskey':0,'input::align':0,'input::alt':0,'input::autocomplete':0,'input::checked':0,'input::disabled':0,'input::ismap':0,'input::maxlength':0,'input::name':8,'input::onblur':2,'input::onchange':2,'input::onfocus':2,'input::onselect':2,'input::readonly':0,'input::size':0,'input::src':1,'input::tabindex':0,'input::type':0,'input::usemap':11,'input::value':0,'ins::cite':1,'ins::datetime':0,'label::accesskey':0,'label::for':5,'label::onblur':2,'label::onfocus':2,'legend::accesskey':0,'legend::align':0,'li::type':0,'li::value':0,'map::name':7,'menu::compact':0,'ol::compact':0,'ol::start':0,'ol::type':0,'optgroup::disabled':0,'optgroup::label':0,'option::disabled':0,'option::label':0,'option::selected':0,'option::value':0,'p::align':0,'pre::width':0,'q::cite':1,'select::disabled':0,'select::multiple':0,'select::name':8,'select::onblur':2,'select::onchange':2,'select::onfocus':2,'select::size':0,'select::tabindex':0,'table::align':0,'table::bgcolor':0,'table::border':0,'table::cellpadding':0,'table::cellspacing':0,'table::frame':0,'table::rules':0,'table::summary':0,'table::width':0,'tbody::align':0,'tbody::char':0,'tbody::charoff':0,'tbody::valign':0,'td::abbr':0,'td::align':0,'td::axis':0,'td::bgcolor':0,'td::char':0,'td::charoff':0,'td::colspan':0,'td::headers':6,'td::height':0,'td::nowrap':0,'td::rowspan':0,'td::scope':0,'td::valign':0,'td::width':0,'textarea::accesskey':0,'textarea::cols':0,'textarea::disabled':0,'textarea::name':8,'textarea::onblur':2,'textarea::onchange':2,'textarea::onfocus':2,'textarea::onselect':2,'textarea::readonly':0,'textarea::rows':0,'textarea::tabindex':0,'tfoot::align':0,'tfoot::char':0,'tfoot::charoff':0,'tfoot::valign':0,'th::abbr':0,'th::align':0,'th::axis':0,'th::bgcolor':0,'th::char':0,'th::charoff':0,'th::colspan':0,'th::headers':6,'th::height':0,'th::nowrap':0,'th::rowspan':0,'th::scope':0,'th::valign':0,'th::width':0,'thead::align':0,'thead::char':0,'thead::charoff':0,'thead::valign':0,'tr::align':0,'tr::bgcolor':0,'tr::char':0,'tr::charoff':0,'tr::valign':0,'ul::compact':0,'ul::type':0},html4 +.eflags={'OPTIONAL_ENDTAG':1,'EMPTY':2,'CDATA':4,'RCDATA':8,'UNSAFE':16,'FOLDABLE':32,'SCRIPT':64,'STYLE':128},html4 +.ELEMENTS={'a':0,'abbr':0,'acronym':0,'address':0,'applet':16,'area':2,'b':0,'base':18,'basefont':18,'bdo':0,'big':0,'blockquote':0,'body':49,'br':2,'button':0,'caption':0,'center':0,'cite':0,'code':0,'col':2,'colgroup':1,'dd':1,'del':0,'dfn':0,'dir':0,'div':0,'dl':0,'dt':1,'em':0,'fieldset':0,'font':0,'form':0,'frame':18,'frameset':16,'h1':0,'h2':0,'h3':0,'h4':0,'h5':0,'h6':0,'head':49,'hr':2,'html':49,'i':0,'iframe':4,'img':2,'input':2,'ins':0,'isindex':18,'kbd':0,'label':0,'legend':0,'li':1,'link':18,'map':0,'menu':0,'meta':18,'noframes':20,'noscript':20,'object':16,'ol':0,'optgroup':0,'option':1,'p':1,'param':18,'pre':0,'q':0,'s':0,'samp':0,'script':84,'select':0,'small':0,'span':0,'strike':0,'strong':0,'style':148,'sub':0,'sup':0,'table':0,'tbody':1,'td':1,'textarea':8,'tfoot':1,'th':1,'thead':1,'title':24,'tr':1,'tt':0,'u':0,'ul':0,'var':0},html=(function(){var +ENTITIES,INSIDE_TAG_TOKEN,OUTSIDE_TAG_TOKEN,ampRe,decimalEscapeRe,entityRe,eqRe,gtRe,hexEscapeRe,lcase,looseAmpRe,ltRe,nulRe,quotRe;'script'==='SCRIPT'.toLowerCase()?(lcase=function(s){return s.toLowerCase()}):(lcase=function(s){return s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0)|32)})}),ENTITIES={'lt':'<','gt':'>','amp':'&','nbsp':'\xa0','quot':'\"','apos':'\''},decimalEscapeRe=/^#(\d+)$/,hexEscapeRe=/^#x([0-9A-Fa-f]+)$/;function +lookupEntity(name){var m;return name=lcase(name),ENTITIES.hasOwnProperty(name)?ENTITIES[name]:(m=name.match(decimalEscapeRe),m?String.fromCharCode(parseInt(m[1],10)):(m=name.match(hexEscapeRe))?String.fromCharCode(parseInt(m[1],16)):'')}function +decodeOneEntity(_,name){return lookupEntity(name)}nulRe=/\0/g;function stripNULs(s){return s.replace(nulRe,'')}entityRe=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g;function +unescapeEntities(s){return s.replace(entityRe,decodeOneEntity)}ampRe=/&/g,looseAmpRe=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,ltRe=//g,quotRe=/\"/g,eqRe=/\=/g;function +escapeAttrib(s){return s.replace(ampRe,'&').replace(ltRe,'<').replace(gtRe,'>').replace(quotRe,'"').replace(eqRe,'=')}function +normalizeRCData(rcdata){return rcdata.replace(looseAmpRe,'&$1').replace(ltRe,'<').replace(gtRe,'>')}INSIDE_TAG_TOKEN=new +RegExp('^\\s*(?:(?:([a-z][a-z-]*)(\\s*=\\s*(\"[^\"]*\"|\'[^\']*\'|(?=[a-z][a-z-]*\\s*=)|[^>\"\'\\s]*))?)|(/?>)|.[^a-z\\s>]*)','i'),OUTSIDE_TAG_TOKEN=new +RegExp('^(?:&(\\#[0-9]+|\\#[x][0-9a-f]+|\\w+);||]*>|<\\?[^>*]*>|<(/)?([a-z][a-z0-9]*)|([^<&>]+)|([<&>]))','i');function +makeSaxParser(handler){return function parse(htmlText,param){var attribName,attribs,dataEnd,decodedValue,eflags,encodedValue,htmlLower,inTag,m,openTag,tagName;htmlText=String(htmlText),htmlLower=null,inTag=false,attribs=[],tagName=void +0,eflags=void 0,openTag=void 0,handler.startDoc&&handler.startDoc(param);while(htmlText){m=htmlText.match(inTag?INSIDE_TAG_TOKEN:OUTSIDE_TAG_TOKEN),htmlText=htmlText.substring(m[0].length);if(inTag){if(m[1]){attribName=lcase(m[1]);if(m[2]){encodedValue=m[3];switch(encodedValue.charCodeAt(0)){case +34:case 39:encodedValue=encodedValue.substring(1,encodedValue.length-1)}decodedValue=unescapeEntities(stripNULs(encodedValue))}else +decodedValue=attribName;attribs.push(attribName,decodedValue)}else if(m[4])eflags!==void +0&&(openTag?handler.startTag&&handler.startTag(tagName,attribs,param):handler.endTag&&handler.endTag(tagName,param)),openTag&&eflags&(html4 +.eflags.CDATA|html4 .eflags.RCDATA)&&(htmlLower===null?(htmlLower=lcase(htmlText)):(htmlLower=htmlLower.substring(htmlLower.length-htmlText.length)),dataEnd=htmlLower.indexOf('':handler.pcdata('>',param);break;default:handler.pcdata('&',param)}}}handler.endDoc&&handler.endDoc(param)}}return{'normalizeRCData':normalizeRCData,'escapeAttrib':escapeAttrib,'unescapeEntities':unescapeEntities,'makeSaxParser':makeSaxParser}})(),html.makeHtmlSanitizer=function(sanitizeAttributes){var +ignoring,stack;return html.makeSaxParser({'startDoc':function(_){stack=[],ignoring=false},'startTag':function(tagName,attribs,out){var +attribName,eflags,i,n,value;if(ignoring)return;if(!html4 .ELEMENTS.hasOwnProperty(tagName))return;eflags=html4 +.ELEMENTS[tagName];if(eflags&html4 .eflags.FOLDABLE)return;else if(eflags&html4 .eflags.UNSAFE)return ignoring=!(eflags&html4 +.eflags.EMPTY),void 0;attribs=sanitizeAttributes(tagName,attribs);if(attribs){eflags&html4 +.eflags.EMPTY||stack.push(tagName),out.push('<',tagName);for(i=0,n=attribs.length;i')}},'endTag':function(tagName,out){var +eflags,i,index,stackEl;if(ignoring)return ignoring=false,void 0;if(!html4 .ELEMENTS.hasOwnProperty(tagName))return;eflags=html4 +.ELEMENTS[tagName];if(!(eflags&(html4 .eflags.UNSAFE|html4 .eflags.EMPTY|html4 .eflags.FOLDABLE))){if(eflags&html4 +.eflags.OPTIONAL_ENDTAG)for(index=stack.length;--index>=0;){stackEl=stack[index];if(stackEl===tagName)break;if(!(html4 +.ELEMENTS[stackEl]&html4 .eflags.OPTIONAL_ENDTAG))return}else for(index=stack.length;--index>=0;)if(stack[index]===tagName)break;if(index<0)return;for(i=stack.length;--i>index;)stackEl=stack[i],html4 +.ELEMENTS[stackEl]&html4 .eflags.OPTIONAL_ENDTAG||out.push('');stack.length=index,out.push('')}},'pcdata':function(text,out){ignoring||out.push(text)},'rcdata':function(text,out){ignoring||out.push(text)},'cdata':function(text,out){ignoring||out.push(text)},'endDoc':function(out){var +i;for(i=stack.length;--i>=0;)out.push('');stack.length=0}})};function +html_sanitize(htmlText,opt_uriPolicy,opt_nmTokenPolicy){var out=[];return html.makeHtmlSanitizer(function +sanitizeAttribs(tagName,attribs){var attribKey,attribName,atype,i,value;for(i=0;i').type==='radio'}catch(e){return false}})(),CUSTOM_EVENT_TYPE_SUFFIX='_custom___',endsWith__,escapeAttrib;function +tameEventType(type,opt_isCustom,opt_tagName){var tagAttr;type=String(type);if(endsWith__.test(type))throw new +Error('Invalid event type '+type);return tagAttr=false,opt_tagName&&(tagAttr=String(opt_tagName).toLowerCase()+'::on'+type),!opt_isCustom&&(tagAttr&&html4 +.atype.SCRIPT===html4 .ATTRIBS[tagAttr]||html4 .atype.SCRIPT===html4 .ATTRIBS['*::on'+type])?type:type+CUSTOM_EVENT_TYPE_SUFFIX}function +eventHandlerTypeFilter(handler,tameType){return function(event){if(tameType===event.eventType___)return handler.call(this,event)}}endsWith__=/__$/,escapeAttrib=html.escapeAttrib;function +constructClone(node,deep){var attr,attrs,child,clone,cloneChild,i,tagDesc;if(node.nodeType===1&&featureExtendedCreateElement){tagDesc=node.tagName;switch(node.tagName){case'INPUT':tagDesc='':'>');break;case'BUTTON':tagDesc='