var a,l=l||{};l.global=this;l.isDef=function(b){return void 0!==b};l.exportPath_=function(b,c,d){b=b.split(".");d=d||l.global;b[0]in d||!d.execScript||d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)!b.length&&l.isDef(c)?d[e]=c:d=d[e]?d[e]:d[e]={}};l.define=function(b,c){l.exportPath_(b,c)};l.DEBUG=!0;l.LOCALE="en";l.TRUSTED_SITE=!0;l.STRICT_MODE_COMPATIBLE=!1;l.DISALLOW_TEST_ONLY_CODE=!l.DEBUG;l.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
l.provide=function(b){if(l.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");l.constructNamespace_(b)};l.constructNamespace_=function(b,c){l.exportPath_(b,c)};l.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
l.module=function(b){if(!l.isString(b)||!b||-1==b.search(l.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!l.isInModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly.");if(l.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");l.moduleLoaderState_.moduleName=b};l.module.get=function(){return l.module.getInternal_()};l.module.getInternal_=function(){};l.moduleLoaderState_=null;l.isInModuleLoader_=function(){return null!=l.moduleLoaderState_};
l.module.declareLegacyNamespace=function(){l.moduleLoaderState_.declareLegacyNamespace=!0};l.setTestOnly=function(b){if(l.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};l.forwardDeclare=function(){};l.getObjectByName=function(b){b=b.split(".");for(var c=l.global,d;d=b.shift();)if(l.isDefAndNotNull(c[d]))c=c[d];else return null;return c};l.globalize=function(b,c){var d=c||l.global,e;for(e in b)d[e]=b[e]};
l.addDependency=function(b,c,d,e){if(l.DEPENDENCIES_ENABLED){var f;b=b.replace(/\\/g,"/");var g=l.dependencies_;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.nameToPath[f]=b,g.pathIsModule[b]="goog"==e.module;for(e=0;c=d[e];e++)b in g.requires||(g.requires[b]={}),g.requires[b][c]=!0}};l.useStrictRequires=!1;l.ENABLE_DEBUG_LOADER=!0;l.logToConsole_=function(b){l.global.console&&l.global.console.error(b)};l.require=function(){};l.basePath="";l.nullFunction=function(){};
l.abstractMethod=function(){throw Error("unimplemented abstract method");};l.addSingletonGetter=function(b){b.getInstance=function(){if(b.instance_)return b.instance_;l.DEBUG&&(l.instantiatedSingletons_[l.instantiatedSingletons_.length]=b);return b.instance_=new b}};l.instantiatedSingletons_=[];l.LOAD_MODULE_USING_EVAL=!0;l.SEAL_MODULE_EXPORTS=l.DEBUG;l.loadedModules_={};l.DEPENDENCIES_ENABLED=!1;
l.DEPENDENCIES_ENABLED&&(l.dependencies_={pathIsModule:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},l.inHtmlDocument_=function(){var b=l.global.document;return null!=b&&"write"in b},l.findBasePath_=function(){if(l.isDef(l.global.CLOSURE_BASE_PATH))l.basePath=l.global.CLOSURE_BASE_PATH;else if(l.inHtmlDocument_())for(var b=l.global.document.getElementsByTagName("SCRIPT"),c=b.length-1;0<=c;--c){var d=b[c].src,e=d.lastIndexOf("?"),e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){l.basePath=
d.substr(0,e-7);break}}},l.importScript_=function(b,c){(l.global.CLOSURE_IMPORT_SCRIPT||l.writeScriptTag_)(b,c)&&(l.dependencies_.written[b]=!0)},l.IS_OLD_IE_=!(l.global.atob||!l.global.document||!l.global.document.all),l.importModule_=function(b){l.importScript_("",'goog.retrieveAndExecModule_("'+b+'");')},l.queuedModules_=[],l.wrapModule_=function(b,c){return l.LOAD_MODULE_USING_EVAL&&l.isDef(l.global.JSON)?"goog.loadModule("+l.global.JSON.stringify(c+"\n//# sourceURL="+b+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+
c+"\n;return exports});\n//# sourceURL="+b+"\n"},l.loadQueuedModules_=function(){var b=l.queuedModules_.length;if(0<b){var c=l.queuedModules_;l.queuedModules_=[];for(var d=0;d<b;d++)l.maybeProcessDeferredPath_(c[d])}},l.maybeProcessDeferredDep_=function(b){l.isDeferredModule_(b)&&l.allDepsAreAvailable_(b)&&l.maybeProcessDeferredPath_(l.basePath+l.getPathFromDeps_(b))},l.isDeferredModule_=function(b){return(b=l.getPathFromDeps_(b))&&l.dependencies_.pathIsModule[b]?l.basePath+b in l.dependencies_.deferred:
!1},l.allDepsAreAvailable_=function(b){if((b=l.getPathFromDeps_(b))&&b in l.dependencies_.requires)for(var c in l.dependencies_.requires[b])if(!l.isProvided_(c)&&!l.isDeferredModule_(c))return!1;return!0},l.maybeProcessDeferredPath_=function(b){if(b in l.dependencies_.deferred){var c=l.dependencies_.deferred[b];delete l.dependencies_.deferred[b];l.globalEval(c)}},l.loadModuleFromUrl=function(){l.retrieveAndExecModule_()},l.loadModule=function(b){var c=l.moduleLoaderState_;try{l.moduleLoaderState_=
{moduleName:void 0,declareLegacyNamespace:!1};var d;if(l.isFunction(b))d=b.call(l.global,{});else if(l.isString(b))d=l.loadModuleFromSource_.call(l.global,b);else throw Error("Invalid module definition");var e=l.moduleLoaderState_.moduleName;if(!l.isString(e)||!e)throw Error('Invalid module name "'+e+'"');l.moduleLoaderState_.declareLegacyNamespace?l.constructNamespace_(e,d):l.SEAL_MODULE_EXPORTS&&Object.seal&&Object.seal(d);l.loadedModules_[e]=d}finally{l.moduleLoaderState_=c}},l.loadModuleFromSource_=
function(b){eval(b);return{}},l.writeScriptSrcNode_=function(b){l.global.document.write('<script type="text/javascript" src="'+b+'">\x3c/script>')},l.appendScriptSrcNode_=function(b){var c=l.global.document,d=c.createElement("script");d.type="text/javascript";d.src=b;d.defer=!1;d.async=!1;c.head.appendChild(d)},l.writeScriptTag_=function(b,c){if(l.inHtmlDocument_()){var d=l.global.document;if(!l.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==d.readyState){if(/\bdeps.js$/.test(b))return!1;throw Error('Cannot write "'+
b+'" after document load');}var e=l.IS_OLD_IE_;void 0===c?e?(e=" onreadystatechange='goog.onScriptLoad_(this, "+ ++l.lastNonModuleScriptIndex_+")' ",d.write('<script type="text/javascript" src="'+b+'"'+e+">\x3c/script>")):l.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?l.appendScriptSrcNode_(b):l.writeScriptSrcNode_(b):d.write('<script type="text/javascript">'+c+"\x3c/script>");return!0}return!1},l.lastNonModuleScriptIndex_=0,l.onScriptLoad_=function(b,c){"complete"==b.readyState&&l.lastNonModuleScriptIndex_==
c&&l.loadQueuedModules_();return!0},l.writeScripts_=function(b){function c(b){if(!(b in f.written||b in f.visited)){f.visited[b]=!0;if(b in f.requires)for(var g in f.requires[b])if(!l.isProvided_(g))if(g in f.nameToPath)c(f.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);b in e||(e[b]=!0,d.push(b))}}var d=[],e={},f=l.dependencies_;c(b);for(b=0;b<d.length;b++){var g=d[b];l.dependencies_.written[g]=!0}var h=l.moduleLoaderState_;l.moduleLoaderState_=null;for(b=0;b<d.length;b++)if(g=d[b])f.pathIsModule[g]?
l.importModule_(l.basePath+g):l.importScript_(l.basePath+g);else throw l.moduleLoaderState_=h,Error("Undefined script input");l.moduleLoaderState_=h},l.getPathFromDeps_=function(b){return b in l.dependencies_.nameToPath?l.dependencies_.nameToPath[b]:null},l.findBasePath_(),l.global.CLOSURE_NO_DEPS||l.importScript_(l.basePath+"deps.js"));l.normalizePath_=function(b){b=b.split("/");for(var c=0;c<b.length;)"."==b[c]?b.splice(c,1):c&&".."==b[c]&&b[c-1]&&".."!=b[c-1]?b.splice(--c,2):c++;return b.join("/")};
l.loadFileSync_=function(b){if(l.global.CLOSURE_LOAD_FILE_SYNC)return l.global.CLOSURE_LOAD_FILE_SYNC(b);var c=new l.global.XMLHttpRequest;c.open("get",b,!1);c.send();return c.responseText};l.retrieveAndExecModule_=function(){};
l.typeOf=function(b){var c=typeof b;if("object"==c)if(b){if(b instanceof Array)return"array";if(b instanceof Object)return c;var d=Object.prototype.toString.call(b);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof b.length&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==c&&"undefined"==typeof b.call)return"object";return c};l.isNull=function(b){return null===b};l.isDefAndNotNull=function(b){return null!=b};l.isArray=function(b){return"array"==l.typeOf(b)};l.isArrayLike=function(b){var c=l.typeOf(b);return"array"==c||"object"==c&&"number"==typeof b.length};l.isDateLike=function(b){return l.isObject(b)&&"function"==typeof b.getFullYear};l.isString=function(b){return"string"==typeof b};l.isBoolean=function(b){return"boolean"==typeof b};
l.isNumber=function(b){return"number"==typeof b};l.isFunction=function(b){return"function"==l.typeOf(b)};l.isObject=function(b){var c=typeof b;return"object"==c&&null!=b||"function"==c};l.getUid=function(b){return b[l.UID_PROPERTY_]||(b[l.UID_PROPERTY_]=++l.uidCounter_)};l.hasUid=function(b){return!!b[l.UID_PROPERTY_]};l.removeUid=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(l.UID_PROPERTY_);try{delete b[l.UID_PROPERTY_]}catch(c){}};
l.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);l.uidCounter_=0;l.getHashCode=l.getUid;l.removeHashCode=l.removeUid;l.cloneObject=function(b){var c=l.typeOf(b);if("object"==c||"array"==c){if(b.clone)return b.clone();var c="array"==c?[]:{},d;for(d in b)c[d]=l.cloneObject(b[d]);return c}return b};l.bindNative_=function(b,c,d){return b.call.apply(b.bind,arguments)};
l.bindJs_=function(b,c,d){if(!b)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return b.apply(c,d)}}return function(){return b.apply(c,arguments)}};l.bind=function(b,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?l.bind=l.bindNative_:l.bind=l.bindJs_;return l.bind.apply(null,arguments)};
l.partial=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return b.apply(this,c)}};l.mixin=function(b,c){for(var d in c)b[d]=c[d]};l.now=l.TRUSTED_SITE&&Date.now||function(){return+new Date};
l.globalEval=function(b){if(l.global.execScript)l.global.execScript(b,"JavaScript");else if(l.global.eval){if(null==l.evalWorksForGlobals_)if(l.global.eval("var _evalTest_ = 1;"),"undefined"!=typeof l.global._evalTest_){try{delete l.global._evalTest_}catch(e){}l.evalWorksForGlobals_=!0}else l.evalWorksForGlobals_=!1;if(l.evalWorksForGlobals_)l.global.eval(b);else{var c=l.global.document,d=c.createElement("SCRIPT");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(b));c.body.appendChild(d);
c.body.removeChild(d)}}else throw Error("goog.globalEval not available");};l.evalWorksForGlobals_=null;l.getCssName=function(b,c){var d=function(b){return l.cssNameMapping_[b]||b},e=function(b){b=b.split("-");for(var c=[],e=0;e<b.length;e++)c.push(d(b[e]));return c.join("-")},e=l.cssNameMapping_?"BY_WHOLE"==l.cssNameMappingStyle_?d:e:function(b){return b};return c?b+"-"+e(c):e(b)};l.setCssNameMapping=function(b,c){l.cssNameMapping_=b;l.cssNameMappingStyle_=c};
l.getMsg=function(b,c){c&&(b=b.replace(/\{\$([^}]+)}/g,function(b,e){return null!=c&&e in c?c[e]:b}));return b};l.getMsgWithFallback=function(b){return b};l.exportSymbol=function(b,c,d){l.exportPath_(b,c,d)};l.exportProperty=function(b,c){b.then=c};
l.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b;b.base=function(b,d,g){for(var h=Array(arguments.length-2),k=2;k<arguments.length;k++)h[k-2]=arguments[k];return c.prototype[d].apply(b,h)}};
l.base=function(b,c,d){var e=arguments.callee.caller;if(l.STRICT_MODE_COMPATIBLE||l.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(b,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];for(var g=!1,h=b.constructor;h;h=
h.superClass_&&h.superClass_.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(b,f);if(b[c]===e)return b.constructor.prototype[c].apply(b,f);throw Error("goog.base called from a method of one name to a method of a different name");};l.scope=function(b){if(l.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");b.call(l.global)};
l.defineClass=function(b,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=l.defineClass.createSealingConstructor_(d,b);b&&l.inherits(d,b);delete c.constructor;delete c.statics;l.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):l.defineClass.applyProperties_(d,e));return d};l.defineClass.SEAL_CLASS_INSTANCES=l.DEBUG;
l.defineClass.createSealingConstructor_=function(b,c){if(l.defineClass.SEAL_CLASS_INSTANCES&&Object.seal instanceof Function){if(c&&c.prototype&&c.prototype[l.UNSEALABLE_CONSTRUCTOR_PROPERTY_])return b;var d=function(){var c=b.apply(this,arguments)||this;c[l.UID_PROPERTY_]=c[l.UID_PROPERTY_];this.constructor===d&&Object.seal(c);return c};return d}return b};l.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
l.defineClass.applyProperties_=function(b,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d]);for(var e=0;e<l.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=l.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d])};l.tagUnsealableClass=function(){};l.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";l.craw={};l.craw.AppBackgroundDelegate=function(){};l.craw.AppBackgroundDelegate.impl_=l.craw.AppBackgroundDelegate;l.craw.AppBackgroundDelegate.setImpl=function(){l.craw.AppBackgroundDelegate.impl_=n.BackgroundDelegate};l.craw.AppBackgroundDelegate.createImpl=function(){return new l.craw.AppBackgroundDelegate.impl_};l.craw.AppBackgroundDelegate.prototype.getDefaultUrl=function(){return null};l.craw.AppBackgroundDelegate.prototype.getWindowBounds=function(){};l.craw.WindowConfig=function(b,c){this.url_=b;this.useAuth_=c};l.craw.WindowConfig.prototype.getUrl=function(){return this.url_};l.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};var n={Errors:{}};n.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};n.Errors.getErrorResponse=function(b){return{request:{},response:{errorType:b}}};l.debug={};l.debug.Error=function(b){if(Error.captureStackTrace)Error.captureStackTrace(this,l.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}b&&(this.message=String(b))};l.inherits(l.debug.Error,Error);l.debug.Error.prototype.name="CustomError";l.dom={};l.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};l.string={};l.string.DETECT_DOUBLE_ESCAPING=!1;l.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;l.string.Unicode={NBSP:"\u00a0"};l.string.startsWith=function(b,c){return 0==b.lastIndexOf(c,0)};l.string.endsWith=function(b,c){var d=b.length-c.length;return 0<=d&&b.indexOf(c,d)==d};l.string.caseInsensitiveStartsWith=function(b){return 0==l.string.caseInsensitiveCompare("tel:",b.substr(0,4))};
l.string.caseInsensitiveEndsWith=function(b,c){return 0==l.string.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))};l.string.caseInsensitiveEquals=function(b){return l.net.XhrIo.CONTENT_TYPE_HEADER.toLowerCase()==b.toLowerCase()};l.string.subs=function(b,c){for(var d=b.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};
l.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};l.string.isEmptyOrWhitespace=function(b){return/^[\s\xa0]*$/.test(b)};l.string.isEmptyString=function(b){return 0==b.length};l.string.isEmpty=l.string.isEmptyOrWhitespace;l.string.isEmptyOrWhitespaceSafe=function(b){return l.string.isEmptyOrWhitespace(l.string.makeSafe(b))};l.string.isEmptySafe=l.string.isEmptyOrWhitespaceSafe;l.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};
l.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};l.string.isNumeric=function(b){return!/[^0-9]/.test(b)};l.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};l.string.isSpace=function(b){return" "==b};l.string.isUnicodeChar=function(b){return 1==b.length&&" "<=b&&"~">=b||"\u0080"<=b&&"\ufffd">=b};l.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};l.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};
l.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};l.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};l.string.collapseBreakingSpaces=function(b){return b.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};l.string.trim=l.TRUSTED_SITE&&String.prototype.trim?function(b){return b.trim()}:function(b){return b.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};l.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};
l.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};l.string.caseInsensitiveCompare=function(b,c){var d=String(b).toLowerCase(),e=String(c).toLowerCase();return d<e?-1:d==e?0:1};
l.string.numberAwareCompare_=function(b,c,d){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var e=b.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var k=f[h];if(d!=k)return b=parseInt(d,10),!isNaN(b)&&(c=parseInt(k,10),!isNaN(c)&&b-c)?b-c:d<k?-1:1}return e.length!=f.length?e.length-f.length:b<c?-1:1};l.string.intAwareCompare=function(b,c){return l.string.numberAwareCompare_(b,c,/\d+|\D+/g)};
l.string.floatAwareCompare=function(b,c){return l.string.numberAwareCompare_(b,c,/\d+|\.\d+|\D+/g)};l.string.numerateCompare=l.string.floatAwareCompare;l.string.urlEncode=function(b){return encodeURIComponent(String(b))};l.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};l.string.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
l.string.htmlEscape=function(b,c){if(c)b=b.replace(l.string.AMP_RE_,"&amp;").replace(l.string.LT_RE_,"&lt;").replace(l.string.GT_RE_,"&gt;").replace(l.string.QUOT_RE_,"&quot;").replace(l.string.SINGLE_QUOTE_RE_,"&#39;").replace(l.string.NULL_RE_,"&#0;"),l.string.DETECT_DOUBLE_ESCAPING&&(b=b.replace(l.string.E_RE_,"&#101;"));else{if(!l.string.ALL_RE_.test(b))return b;-1!=b.indexOf("&")&&(b=b.replace(l.string.AMP_RE_,"&amp;"));-1!=b.indexOf("<")&&(b=b.replace(l.string.LT_RE_,"&lt;"));-1!=b.indexOf(">")&&
(b=b.replace(l.string.GT_RE_,"&gt;"));-1!=b.indexOf('"')&&(b=b.replace(l.string.QUOT_RE_,"&quot;"));-1!=b.indexOf("'")&&(b=b.replace(l.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=b.indexOf("\x00")&&(b=b.replace(l.string.NULL_RE_,"&#0;"));l.string.DETECT_DOUBLE_ESCAPING&&-1!=b.indexOf("e")&&(b=b.replace(l.string.E_RE_,"&#101;"))}return b};l.string.AMP_RE_=/&/g;l.string.LT_RE_=/</g;l.string.GT_RE_=/>/g;l.string.QUOT_RE_=/"/g;l.string.SINGLE_QUOTE_RE_=/'/g;l.string.NULL_RE_=/\x00/g;l.string.E_RE_=/e/g;
l.string.ALL_RE_=l.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;l.string.unescapeEntities=function(b){return l.string.contains(b,"&")?!l.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in l.global?l.string.unescapeEntitiesUsingDom_(b):l.string.unescapePureXmlEntities_(b):b};l.string.unescapeEntitiesWithDocument=function(b,c){return l.string.contains(b,"&")?l.string.unescapeEntitiesUsingDom_(b,c):b};
l.string.unescapeEntitiesUsingDom_=function(b,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},e;e=c?c.createElement("div"):l.global.document.createElement("div");return b.replace(l.string.HTML_ENTITY_PATTERN_,function(b,c){var h=d[b];if(h)return h;if("#"==c.charAt(0)){var k=Number("0"+c.substr(1));isNaN(k)||(h=String.fromCharCode(k))}h||(e.innerHTML=b+" ",h=e.firstChild.nodeValue.slice(0,-1));return d[b]=h})};
l.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(b,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==d.charAt(0)){var e=Number("0"+d.substr(1));if(!isNaN(e))return String.fromCharCode(e)}return b}})};l.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;l.string.whitespaceEscape=function(b){return l.string.newLineToBr(b.replace(/  /g," &#160;"),void 0)};
l.string.preserveSpaces=function(b){return b.replace(/(^|[\n ]) /g,"$1"+l.string.Unicode.NBSP)};l.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};l.string.truncate=function(b,c,d){d&&(b=l.string.unescapeEntities(b));b.length>c&&(b=b.substring(0,c-3)+"...");d&&(b=l.string.htmlEscape(b));return b};
l.string.truncateMiddle=function(b,c,d,e){d&&(b=l.string.unescapeEntities(b));e&&b.length>c?(e>c&&(e=c),b=b.substring(0,c-e)+"..."+b.substring(b.length-e)):b.length>c&&(e=Math.floor(c/2),b=b.substring(0,e+c%2)+"..."+b.substring(b.length-e));d&&(b=l.string.htmlEscape(b));return b};l.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};l.string.jsEscapeCache_={"'":"\\'"};
l.string.quote=function(b){b=String(b);for(var c=['"'],d=0;d<b.length;d++){var e=b.charAt(d),f=e.charCodeAt(0);c[d+1]=l.string.specialEscapeChars_[e]||(31<f&&127>f?e:l.string.escapeChar(e))}c.push('"');return c.join("")};l.string.escapeString=function(b){for(var c=[],d=0;d<b.length;d++)c[d]=l.string.escapeChar(b.charAt(d));return c.join("")};
l.string.escapeChar=function(b){if(b in l.string.jsEscapeCache_)return l.string.jsEscapeCache_[b];if(b in l.string.specialEscapeChars_)return l.string.jsEscapeCache_[b]=l.string.specialEscapeChars_[b];var c=b,d=b.charCodeAt(0);if(31<d&&127>d)c=b;else{if(256>d){if(c="\\x",16>d||256<d)c+="0"}else c="\\u",4096>d&&(c+="0");c+=d.toString(16).toUpperCase()}return l.string.jsEscapeCache_[b]=c};l.string.contains=function(b,c){return-1!=b.indexOf(c)};
l.string.caseInsensitiveContains=function(){return l.string.contains(l.labs.userAgent.util.getUserAgent().toLowerCase(),"webkit")};l.string.countOf=function(b,c){return b&&c?b.split(c).length-1:0};l.string.removeAt=function(b,c,d){var e=b;0<=c&&c<b.length&&0<d&&(e=b.substr(0,c)+b.substr(c+d,b.length-c-d));return e};l.string.remove=function(b,c){var d=new RegExp(l.string.regExpEscape(c),"");return b.replace(d,"")};
l.string.removeAll=function(b,c){var d=new RegExp(l.string.regExpEscape(c),"g");return b.replace(d,"")};l.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};l.string.repeat=String.prototype.repeat?function(b,c){return b.repeat(c)}:function(b,c){return Array(c+1).join(b)};l.string.padNumber=function(b,c,d){b=l.isDef(d)?b.toFixed(d):String(b);d=b.indexOf(".");-1==d&&(d=b.length);return l.string.repeat("0",Math.max(0,c-d))+b};
l.string.makeSafe=function(b){return null==b?"":String(b)};l.string.buildString=function(b){return Array.prototype.join.call(arguments,"")};l.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^l.now()).toString(36)};
l.string.compareVersions=function(b,c){for(var d=0,e=l.string.trim(String(b)).split("."),f=l.string.trim(String(c)).split("."),g=Math.max(e.length,f.length),h=0;0==d&&h<g;h++){var k=e[h]||"",m=f[h]||"",p=RegExp("(\\d*)(\\D*)","g"),N=RegExp("(\\d*)(\\D*)","g");do{var w=p.exec(k)||["","",""],v=N.exec(m)||["","",""];if(0==w[0].length&&0==v[0].length)break;d=l.string.compareElements_(0==w[1].length?0:parseInt(w[1],10),0==v[1].length?0:parseInt(v[1],10))||l.string.compareElements_(0==w[2].length,0==v[2].length)||
l.string.compareElements_(w[2],v[2])}while(0==d)}return d};l.string.compareElements_=function(b,c){return b<c?-1:b>c?1:0};l.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d)c=31*c+b.charCodeAt(d)>>>0;return c};l.string.uniqueStringCounter_=2147483648*Math.random()|0;l.string.createUniqueString=function(){return"goog_"+l.string.uniqueStringCounter_++};l.string.toNumber=function(b){var c=Number(b);return 0==c&&l.string.isEmptyOrWhitespace(b)?NaN:c};l.string.isLowerCamelCase=function(b){return/^[a-z]+([A-Z][a-z]*)*$/.test(b)};
l.string.isUpperCamelCase=function(b){return/^([A-Z][a-z]*)+$/.test(b)};l.string.toCamelCase=function(b){return String(b).replace(/\-([a-z])/g,function(b,d){return d.toUpperCase()})};l.string.toSelectorCase=function(b){return String(b).replace(/([A-Z])/g,"-$1").toLowerCase()};l.string.toTitleCase=function(b,c){var d=l.isString(c)?l.string.regExpEscape(c):"\\s";return b.replace(new RegExp("(^"+(d?"|["+d+"]+":"")+")([a-z])","g"),function(b,c,d){return c+d.toUpperCase()})};
l.string.capitalize=function(b){return String(b.charAt(0)).toUpperCase()+String(b.substr(1)).toLowerCase()};l.string.parseInt=function(b){isFinite(b)&&(b=String(b));return l.isString(b)?/^\s*-?0x/i.test(b)?parseInt(b,16):parseInt(b,10):NaN};l.string.splitLimit=function(b,c,d){b=b.split(c);for(var e=[];0<d&&b.length;)e.push(b.shift()),d--;b.length&&e.push(b.join(c));return e};
l.string.lastComponent=function(b,c){if(c)"string"==typeof c&&(c=[c]);else return b;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=b.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?b:b.slice(d+1)};
l.string.editDistance=function(b,c){var d=[],e=[];if(b==c)return 0;if(!b.length||!c.length)return Math.max(b.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<b.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(b[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};l.asserts={};l.asserts.ENABLE_ASSERTS=l.DEBUG;l.asserts.AssertionError=function(b,c){c.unshift(b);l.debug.Error.call(this,l.string.subs.apply(null,c));c.shift()};l.inherits(l.asserts.AssertionError,l.debug.Error);l.asserts.AssertionError.prototype.name="AssertionError";l.asserts.DEFAULT_ERROR_HANDLER=function(b){throw b;};l.asserts.errorHandler_=l.asserts.DEFAULT_ERROR_HANDLER;
l.asserts.doAssertFailure_=function(b,c,d,e){var f="Assertion failed";if(d)var f=f+(": "+d),g=e;else b&&(f+=": "+b,g=c);b=new l.asserts.AssertionError(""+f,g||[]);l.asserts.errorHandler_(b)};l.asserts.setErrorHandler=function(b){l.asserts.ENABLE_ASSERTS&&(l.asserts.errorHandler_=b)};l.asserts.assert=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!b&&l.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return b};
l.asserts.fail=function(b,c){l.asserts.ENABLE_ASSERTS&&l.asserts.errorHandler_(new l.asserts.AssertionError("Failure"+(b?": "+b:""),Array.prototype.slice.call(arguments,1)))};l.asserts.assertNumber=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isNumber(b)&&l.asserts.doAssertFailure_("Expected number but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
l.asserts.assertString=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isString(b)&&l.asserts.doAssertFailure_("Expected string but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};l.asserts.assertFunction=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isFunction(b)&&l.asserts.doAssertFailure_("Expected function but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
l.asserts.assertObject=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isObject(b)&&l.asserts.doAssertFailure_("Expected object but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};l.asserts.assertArray=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isArray(b)&&l.asserts.doAssertFailure_("Expected array but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
l.asserts.assertBoolean=function(b,c,d){l.asserts.ENABLE_ASSERTS&&!l.isBoolean(b)&&l.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};l.asserts.assertElement=function(b,c,d){!l.asserts.ENABLE_ASSERTS||l.isObject(b)&&b.nodeType==l.dom.NodeType.ELEMENT||l.asserts.doAssertFailure_("Expected Element but got %s: %s.",[l.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
l.asserts.assertInstanceof=function(b,c,d,e){!l.asserts.ENABLE_ASSERTS||b instanceof c||l.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[l.asserts.getType_(c),l.asserts.getType_(b)],d,Array.prototype.slice.call(arguments,3));return b};l.asserts.assertObjectPrototypeIsIntact=function(){for(var b in Object.prototype)l.asserts.fail(b+" should not be enumerable in Object.prototype.")};
l.asserts.getType_=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};l.array={};l.NATIVE_ARRAY_PROTOTYPES=l.TRUSTED_SITE;l.array.ASSUME_NATIVE_FUNCTIONS=!1;l.array.peek=function(b){return b[b.length-1]};l.array.last=l.array.peek;
l.array.indexOf=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.indexOf.call(b,c,d)}:function(b,c,d){d=null==d?0:0>d?Math.max(0,b.length+d):d;if(l.isString(b))return l.isString(c)&&1==c.length?b.indexOf(c,d):-1;for(;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
l.array.lastIndexOf=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.lastIndexOf.call(b,c,null==d?b.length-1:d)}:function(b,c,d){d=null==d?b.length-1:d;0>d&&(d=Math.max(0,b.length+d));if(l.isString(b))return l.isString(c)&&1==c.length?b.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in b&&b[d]===c)return d;return-1};
l.array.forEach=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(b,c,d){l.asserts.assert(null!=b.length);Array.prototype.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=l.isString(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};l.array.forEachRight=function(b,c){for(var d=b.length,e=l.isString(b)?b.split(""):b,d=d-1;0<=d;--d)d in e&&c.call(void 0,e[d],d,b)};
l.array.filter=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=l.isString(b)?b.split(""):b,k=0;k<e;k++)if(k in h){var m=h[k];c.call(d,m,k,b)&&(f[g++]=m)}return f};
l.array.map=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=Array(e),g=l.isString(b)?b.split(""):b,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,b));return f};
l.array.reduce=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(b,c,d,e){l.asserts.assert(null!=b.length);e&&(c=l.bind(c,e));return Array.prototype.reduce.call(b,c,d)}:function(b,c,d,e){var f=d;l.array.forEach(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
l.array.reduceRight=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(b,c,d,e){l.asserts.assert(null!=b.length);l.asserts.assert(null!=c);e&&(c=l.bind(c,e));return Array.prototype.reduceRight.call(b,c,d)}:function(b,c,d,e){var f=d;l.array.forEachRight(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
l.array.some=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=l.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return!0;return!1};
l.array.every=l.NATIVE_ARRAY_PROTOTYPES&&(l.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(b,c,d){l.asserts.assert(null!=b.length);return Array.prototype.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=l.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return!1;return!0};l.array.count=function(b,c,d){var e=0;l.array.forEach(b,function(b,g,h){c.call(d,b,g,h)&&++e},d);return e};
l.array.find=function(b,c,d){c=l.array.findIndex(b,c,d);return 0>c?null:l.isString(b)?b.charAt(c):b[c]};l.array.findIndex=function(b,c,d){for(var e=b.length,f=l.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};l.array.findRight=function(b,c,d){c=l.array.findIndexRight(b,c,d);return 0>c?null:l.isString(b)?b.charAt(c):b[c]};
l.array.findIndexRight=function(b,c,d){for(var e=b.length,f=l.isString(b)?b.split(""):b,e=e-1;0<=e;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};l.array.contains=function(b,c){return 0<=l.array.indexOf(b,c)};l.array.isEmpty=function(b){return 0==b.length};l.array.clear=function(b){if(!l.isArray(b))for(var c=b.length-1;0<=c;c--)delete b[c];b.length=0};l.array.insert=function(b,c){l.array.contains(b,c)||b.push(c)};l.array.insertAt=function(b,c,d){l.array.splice(b,d,0,c)};
l.array.insertArrayAt=function(b,c,d){l.partial(l.array.splice,b,d,0).apply(null,c)};l.array.insertBefore=function(b,c,d){var e;2==arguments.length||0>(e=l.array.indexOf(b,d))?b.push(c):l.array.insertAt(b,c,e)};l.array.remove=function(b,c){var d=l.array.indexOf(b,c),e;(e=0<=d)&&l.array.removeAt(b,d);return e};l.array.removeLast=function(b,c){var d=l.array.lastIndexOf(b,c);return 0<=d?(l.array.removeAt(b,d),!0):!1};
l.array.removeAt=function(b,c){l.asserts.assert(null!=b.length);return 1==Array.prototype.splice.call(b,c,1).length};l.array.removeIf=function(b,c,d){c=l.array.findIndex(b,c,d);return 0<=c?(l.array.removeAt(b,c),!0):!1};l.array.removeAllIf=function(b,c,d){var e=0;l.array.forEachRight(b,function(f,g){c.call(d,f,g,b)&&l.array.removeAt(b,g)&&e++});return e};l.array.concat=function(b){return Array.prototype.concat.apply(Array.prototype,arguments)};
l.array.join=function(b){return Array.prototype.concat.apply(Array.prototype,arguments)};l.array.toArray=function(b){var c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];return d}return[]};l.array.clone=l.array.toArray;l.array.extend=function(b,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(l.isArrayLike(e)){var f=b.length||0,g=e.length||0;b.length=f+g;for(var h=0;h<g;h++)b[f+h]=e[h]}else b.push(e)}};
l.array.splice=function(b,c,d,e){l.asserts.assert(null!=b.length);return Array.prototype.splice.apply(b,l.array.slice(arguments,1))};l.array.slice=function(b,c,d){l.asserts.assert(null!=b.length);return 2>=arguments.length?Array.prototype.slice.call(b,c):Array.prototype.slice.call(b,c,d)};
l.array.removeDuplicates=function(b,c){for(var d=c||b,e={},f=0,g=0;g<b.length;){var h=b[g++],k;k=h;k=l.isObject(k)?"o"+l.getUid(k):(typeof k).charAt(0)+k;Object.prototype.hasOwnProperty.call(e,k)||(e[k]=!0,d[f++]=h)}d.length=f};l.array.binarySearch=function(b,c,d){return l.array.binarySearch_(b,d||l.array.defaultCompare,!1,c)};l.array.binarySelect=function(b,c,d){return l.array.binarySearch_(b,c,!0,void 0,d)};
l.array.binarySearch_=function(b,c,d,e,f){for(var g=0,h=b.length,k;g<h;){var m=g+h>>1,p;p=d?c.call(f,b[m],m,b):c(e,b[m]);0<p?g=m+1:(h=m,k=!p)}return k?g:~g};l.array.sort=function(b,c){b.sort(c||l.array.defaultCompare)};l.array.stableSort=function(b,c){for(var d=Array(b.length),e=0;e<b.length;e++)d[e]={index:e,value:b[e]};var f=c||l.array.defaultCompare;l.array.sort(d,function(b,c){return f(b.value,c.value)||b.index-c.index});for(e=0;e<b.length;e++)b[e]=d[e].value};
l.array.sortByKey=function(b,c,d){var e=d||l.array.defaultCompare;l.array.sort(b,function(b,d){return e(c(b),c(d))})};l.array.sortObjectsByKey=function(b,c,d){l.array.sortByKey(b,function(b){return b[c]},d)};l.array.isSorted=function(b){for(var c=l.array.defaultCompare,d=1;d<b.length;d++)if(0<c(b[d-1],b[d]))return!1;return!0};
l.array.equals=function(b,c,d){if(!l.isArrayLike(b)||!l.isArrayLike(c)||b.length!=c.length)return!1;var e=b.length;d=d||l.array.defaultCompareEquality;for(var f=0;f<e;f++)if(!d(b[f],c[f]))return!1;return!0};l.array.compare3=function(b,c,d){d=d||l.array.defaultCompare;for(var e=Math.min(b.length,c.length),f=0;f<e;f++){var g=d(b[f],c[f]);if(0!=g)return g}return l.array.defaultCompare(b.length,c.length)};l.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};
l.array.inverseDefaultCompare=function(b,c){return-l.array.defaultCompare(b,c)};l.array.defaultCompareEquality=function(b,c){return b===c};l.array.binaryInsert=function(b,c,d){d=l.array.binarySearch(b,c,d);return 0>d?(l.array.insertAt(b,c,-(d+1)),!0):!1};l.array.binaryRemove=function(b,c,d){c=l.array.binarySearch(b,c,d);return 0<=c?l.array.removeAt(b,c):!1};l.array.bucket=function(b,c,d){for(var e={},f=0;f<b.length;f++){var g=b[f],h=c.call(d,g,f,b);l.isDef(h)&&(e[h]||(e[h]=[])).push(g)}return e};
l.array.toObject=function(b,c,d){var e={};l.array.forEach(b,function(f,g){e[c.call(d,f,g,b)]=f});return e};l.array.range=function(b,c,d){var e=[],f=0,g=b;d=d||1;void 0!==c&&(f=b,g=c);if(0>d*(g-f))return[];if(0<d)for(b=f;b<g;b+=d)e.push(b);else for(b=f;b>g;b+=d)e.push(b);return e};l.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};
l.array.flatten=function(b){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(l.isArray(e))for(var f=0;f<e.length;f+=8192)for(var g=l.array.slice(e,f,f+8192),g=l.array.flatten.apply(null,g),h=0;h<g.length;h++)c.push(g[h]);else c.push(e)}return c};l.array.rotate=function(b,c){l.asserts.assert(null!=b.length);b.length&&(c%=b.length,0<c?Array.prototype.unshift.apply(b,b.splice(-c,c)):0>c&&Array.prototype.push.apply(b,b.splice(0,-c)));return b};
l.array.moveItem=function(b,c,d){l.asserts.assert(0<=c&&c<b.length);l.asserts.assert(0<=d&&d<b.length);c=Array.prototype.splice.call(b,c,1);Array.prototype.splice.call(b,d,0,c[0])};l.array.zip=function(b){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};
l.array.shuffle=function(b,c){for(var d=c||Math.random,e=b.length-1;0<e;e--){var f=Math.floor(d()*(e+1)),g=b[e];b[e]=b[f];b[f]=g}};l.array.copyByIndex=function(b,c){var d=[];l.array.forEach(c,function(c){d.push(b[c])});return d};l.functions={};l.functions.constant=function(b){return function(){return b}};l.functions.FALSE=l.functions.constant(!1);l.functions.TRUE=l.functions.constant(!0);l.functions.NULL=l.functions.constant(null);l.functions.identity=function(b){return b};l.functions.error=function(b){return function(){throw Error(b);}};l.functions.fail=function(b){return function(){throw b;}};l.functions.lock=function(b,c){c=c||0;return function(){return b.apply(this,Array.prototype.slice.call(arguments,0,c))}};
l.functions.nth=function(b){return function(){return arguments[b]}};l.functions.partialRight=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return b.apply(this,c)}};l.functions.withReturnValue=function(b,c){return l.functions.sequence(b,l.functions.constant(c))};l.functions.equalTo=function(b,c){return function(d){return c?b==d:b===d}};
l.functions.compose=function(b,c){var d=arguments,e=d.length;return function(){var b;e&&(b=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)b=d[c].call(this,b);return b}};l.functions.sequence=function(b){var c=arguments,d=c.length;return function(){for(var b,f=0;f<d;f++)b=c[f].apply(this,arguments);return b}};l.functions.and=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(!c[b].apply(this,arguments))return!1;return!0}};
l.functions.or=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(c[b].apply(this,arguments))return!0;return!1}};l.functions.not=function(b){return function(){return!b.apply(this,arguments)}};l.functions.create=function(b,c){var d=function(){};d.prototype=b.prototype;d=new d;b.apply(d,Array.prototype.slice.call(arguments,1));return d};l.functions.CACHE_RETURN_VALUE=!0;
l.functions.cacheReturnValue=function(b){var c=!1,d;return function(){if(!l.functions.CACHE_RETURN_VALUE)return b();c||(d=b(),c=!0);return d}};l.functions.once=function(b){var c=b;return function(){if(c){var b=c;c=null;b()}}};l.functions.debounce=function(b,c,d){d&&(b=l.bind(b,d));var e=null;return function(d){l.global.clearTimeout(e);var g=arguments;e=l.global.setTimeout(function(){b.apply(null,g)},c)}};
l.functions.throttle=function(b,c,d){d&&(b=l.bind(b,d));var e=null,f=!1,g=[],h=function(){e=null;f&&(f=!1,k())},k=function(){e=l.global.setTimeout(h,c);b.apply(null,g)};return function(b){g=arguments;e?f=!0:k()}};l.math={};l.math.randomInt=function(b){return Math.floor(Math.random()*b)};l.math.uniformRandom=function(b,c){return b+Math.random()*(c-b)};l.math.clamp=function(b,c,d){return Math.min(Math.max(b,c),d)};l.math.modulo=function(b,c){var d=b%c;return 0>d*c?d+c:d};l.math.lerp=function(b,c,d){return b+d*(c-b)};l.math.nearlyEquals=function(b,c,d){return Math.abs(b-c)<=(d||1E-6)};l.math.standardAngle=function(b){return l.math.modulo(b,360)};
l.math.standardAngleInRadians=function(b){return l.math.modulo(b,2*Math.PI)};l.math.toRadians=function(b){return b*Math.PI/180};l.math.toDegrees=function(b){return 180*b/Math.PI};l.math.angleDx=function(b,c){return c*Math.cos(l.math.toRadians(b))};l.math.angleDy=function(b,c){return c*Math.sin(l.math.toRadians(b))};l.math.angle=function(b,c,d,e){return l.math.standardAngle(l.math.toDegrees(Math.atan2(e-c,d-b)))};
l.math.angleDifference=function(b,c){var d=l.math.standardAngle(c)-l.math.standardAngle(b);180<d?d-=360:-180>=d&&(d=360+d);return d};l.math.sign=Math.sign||function(b){return 0<b?1:0>b?-1:b};
l.math.longestCommonSubsequence=function(b,c,d,e){d=d||function(b,c){return b==c};e=e||function(c){return b[c]};for(var f=b.length,g=c.length,h=[],k=0;k<f+1;k++)h[k]=[],h[k][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(k=1;k<=f;k++)for(m=1;m<=g;m++)d(b[k-1],c[m-1])?h[k][m]=h[k-1][m-1]+1:h[k][m]=Math.max(h[k-1][m],h[k][m-1]);for(var p=[],k=f,m=g;0<k&&0<m;)d(b[k-1],c[m-1])?(p.unshift(e(k-1,m-1)),k--,m--):h[k-1][m]>h[k][m-1]?k--:m--;return p};
l.math.sum=function(b){return l.array.reduce(arguments,function(b,d){return b+d},0)};l.math.average=function(b){return l.math.sum.apply(null,arguments)/arguments.length};l.math.sampleVariance=function(b){var c=arguments.length;if(2>c)return 0;var d=l.math.average.apply(null,arguments);return l.math.sum.apply(null,l.array.map(arguments,function(b){return Math.pow(b-d,2)}))/(c-1)};l.math.standardDeviation=function(b){return Math.sqrt(l.math.sampleVariance.apply(null,arguments))};
l.math.isInt=function(b){return isFinite(b)&&0==b%1};l.math.isFiniteNumber=function(b){return isFinite(b)&&!isNaN(b)};l.math.isNegativeZero=function(b){return 0==b&&0>1/b};l.math.log10Floor=function(b){if(0<b){var c=Math.round(Math.log(b)*Math.LOG10E);return c-(parseFloat("1e"+c)>b?1:0)}return 0==b?-Infinity:NaN};l.math.safeFloor=function(b,c){l.asserts.assert(!l.isDef(c)||0<c);return Math.floor(b+(c||2E-15))};
l.math.safeCeil=function(b,c){l.asserts.assert(!l.isDef(c)||0<c);return Math.ceil(b-(c||2E-15))};l.iter={};l.iter.StopIteration="StopIteration"in l.global?l.global.StopIteration:{message:"StopIteration",stack:""};l.iter.Iterator=function(){};l.iter.Iterator.prototype.next=function(){throw l.iter.StopIteration;};l.iter.Iterator.prototype.__iterator__=function(){return this};
l.iter.toIterator=function(b){if(b instanceof l.iter.Iterator)return b;if("function"==typeof b.__iterator__)return b.__iterator__(!1);if(l.isArrayLike(b)){var c=0,d=new l.iter.Iterator;d.next=function(){for(;;){if(c>=b.length)throw l.iter.StopIteration;if(c in b)return b[c++];c++}};return d}throw Error("Not implemented");};
l.iter.forEach=function(b,c,d){if(l.isArrayLike(b))try{l.array.forEach(b,c,d)}catch(e){if(e!==l.iter.StopIteration)throw e;}else{b=l.iter.toIterator(b);try{for(;;)c.call(d,b.next(),void 0,b)}catch(e){if(e!==l.iter.StopIteration)throw e;}}};l.iter.filter=function(b,c,d){var e=l.iter.toIterator(b);b=new l.iter.Iterator;b.next=function(){for(;;){var b=e.next();if(c.call(d,b,void 0,e))return b}};return b};l.iter.filterFalse=function(b,c,d){return l.iter.filter(b,l.functions.not(c),d)};
l.iter.range=function(b,c,d){var e=0,f=b,g=d||1;1<arguments.length&&(e=b,f=c);if(0==g)throw Error("Range step argument must not be zero");var h=new l.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw l.iter.StopIteration;var b=e;e+=g;return b};return h};l.iter.join=function(b,c){return l.iter.toArray(b).join(c)};l.iter.map=function(b,c,d){var e=l.iter.toIterator(b);b=new l.iter.Iterator;b.next=function(){var b=e.next();return c.call(d,b,void 0,e)};return b};
l.iter.reduce=function(b,c,d,e){var f=d;l.iter.forEach(b,function(b){f=c.call(e,f,b)});return f};l.iter.some=function(b,c,d){b=l.iter.toIterator(b);try{for(;;)if(c.call(d,b.next(),void 0,b))return!0}catch(e){if(e!==l.iter.StopIteration)throw e;}return!1};l.iter.every=function(b,c,d){b=l.iter.toIterator(b);try{for(;;)if(!c.call(d,b.next(),void 0,b))return!1}catch(e){if(e!==l.iter.StopIteration)throw e;}return!0};l.iter.chain=function(b){return l.iter.chainFromIterable(arguments)};
l.iter.chainFromIterable=function(b){var c=l.iter.toIterator(b);b=new l.iter.Iterator;var d=null;b.next=function(){for(;;){if(null==d){var b=c.next();d=l.iter.toIterator(b)}try{return d.next()}catch(f){if(f!==l.iter.StopIteration)throw f;d=null}}};return b};l.iter.dropWhile=function(b,c,d){var e=l.iter.toIterator(b);b=new l.iter.Iterator;var f=!0;b.next=function(){for(;;){var b=e.next();if(!f||!c.call(d,b,void 0,e))return f=!1,b}};return b};
l.iter.takeWhile=function(b,c,d){var e=l.iter.toIterator(b);b=new l.iter.Iterator;b.next=function(){var b=e.next();if(c.call(d,b,void 0,e))return b;throw l.iter.StopIteration;};return b};l.iter.toArray=function(b){if(l.isArrayLike(b))return l.array.toArray(b);b=l.iter.toIterator(b);var c=[];l.iter.forEach(b,function(b){c.push(b)});return c};l.iter.equals=function(b,c,d){b=l.iter.zipLongest({},b,c);var e=d||l.array.defaultCompareEquality;return l.iter.every(b,function(b){return e(b[0],b[1])})};
l.iter.nextOrValue=function(b){try{l.iter.toIterator(b).next()}catch(c){if(c!=l.iter.StopIteration)throw c;}};
l.iter.product=function(b){if(l.array.some(arguments,function(b){return!b.length})||!arguments.length)return new l.iter.Iterator;var c=new l.iter.Iterator,d=arguments,e=l.array.repeat(0,d.length);c.next=function(){if(e){for(var b=l.array.map(e,function(b,c){return d[c][b]}),c=e.length-1;0<=c;c--){l.asserts.assert(e);if(e[c]<d[c].length-1){e[c]++;break}if(0==c){e=null;break}e[c]=0}return b}throw l.iter.StopIteration;};return c};
l.iter.cycle=function(b){var c=l.iter.toIterator(b),d=[],e=0;b=new l.iter.Iterator;var f=!1;b.next=function(){var b=null;if(!f)try{return b=c.next(),d.push(b),b}catch(h){if(h!=l.iter.StopIteration||l.array.isEmpty(d))throw h;f=!0}b=d[e];e=(e+1)%d.length;return b};return b};l.iter.count=function(b,c){var d=b||0,e=l.isDef(c)?c:1,f=new l.iter.Iterator;f.next=function(){var b=d;d+=e;return b};return f};l.iter.repeat=function(b){var c=new l.iter.Iterator;c.next=l.functions.constant(b);return c};
l.iter.accumulate=function(b){var c=l.iter.toIterator(b),d=0;b=new l.iter.Iterator;b.next=function(){return d+=c.next()};return b};l.iter.zip=function(b){var c=arguments,d=new l.iter.Iterator;if(0<c.length){var e=l.array.map(c,l.iter.toIterator);d.next=function(){return l.array.map(e,function(b){return b.next()})}}return d};
l.iter.zipLongest=function(b,c){var d=l.array.slice(arguments,1),e=new l.iter.Iterator;if(0<d.length){var f=l.array.map(d,l.iter.toIterator);e.next=function(){var c=!1,d=l.array.map(f,function(d){var e;try{e=d.next(),c=!0}catch(f){if(f!==l.iter.StopIteration)throw f;e=b}return e});if(!c)throw l.iter.StopIteration;return d}}return e};l.iter.compress=function(b,c){var d=l.iter.toIterator(c);return l.iter.filter(b,function(){return!!d.next()})};
l.iter.GroupByIterator_=function(b,c){this.iterator=l.iter.toIterator(b);this.keyFunc=c||l.functions.identity};l.inherits(l.iter.GroupByIterator_,l.iter.Iterator);
l.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var b=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==l.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[b,d]};
l.iter.groupBy=function(b,c){return new l.iter.GroupByIterator_(b,c)};l.iter.starMap=function(b,c,d){var e=l.iter.toIterator(b);b=new l.iter.Iterator;b.next=function(){var b=l.iter.toArray(e.next());return c.apply(d,l.array.concat(b,void 0,e))};return b};
l.iter.tee=function(b,c){var d=l.iter.toIterator(b),e=l.array.map(l.array.range(l.isNumber(c)?c:2),function(){return[]}),f=function(){var b=d.next();l.array.forEach(e,function(c){c.push(b)})};return l.array.map(e,function(b){var c=new l.iter.Iterator;c.next=function(){l.array.isEmpty(b)&&f();l.asserts.assert(!l.array.isEmpty(b));return b.shift()};return c})};l.iter.enumerate=function(b,c){return l.iter.zip(l.iter.count(c),b)};
l.iter.limit=function(b,c){l.asserts.assert(l.math.isInt(c)&&0<=c);var d=l.iter.toIterator(b),e=new l.iter.Iterator,f=c;e.next=function(){if(0<f--)return d.next();throw l.iter.StopIteration;};return e};l.iter.consume=function(b,c){l.asserts.assert(l.math.isInt(c)&&0<=c);for(var d=l.iter.toIterator(b);0<c--;)l.iter.nextOrValue(d);return d};
l.iter.slice=function(b,c,d){l.asserts.assert(l.math.isInt(c)&&0<=c);b=l.iter.consume(b,c);l.isNumber(d)&&(l.asserts.assert(l.math.isInt(d)&&d>=c),b=l.iter.limit(b,d-c));return b};l.iter.hasDuplicates_=function(b){var c=[];l.array.removeDuplicates(b,c);return b.length!=c.length};l.iter.permutations=function(b,c){var d=l.iter.toArray(b),d=l.array.repeat(d,l.isNumber(c)?c:d.length),d=l.iter.product.apply(void 0,d);return l.iter.filter(d,function(b){return!l.iter.hasDuplicates_(b)})};
l.iter.combinations=function(b,c){function d(b){return e[b]}var e=l.iter.toArray(b),f=l.iter.range(e.length),f=l.iter.permutations(f,c),g=l.iter.filter(f,function(b){return l.array.isSorted(b)}),f=new l.iter.Iterator;f.next=function(){return l.array.map(g.next(),d)};return f};
l.iter.combinationsWithReplacement=function(b,c){function d(b){return e[b]}var e=l.iter.toArray(b),f=l.array.range(e.length),f=l.array.repeat(f,c),f=l.iter.product.apply(void 0,f),g=l.iter.filter(f,function(b){return l.array.isSorted(b)}),f=new l.iter.Iterator;f.next=function(){return l.array.map(g.next(),d)};return f};l.object={};l.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};l.object.filter=function(b,c,d){var e={},f;for(f in b)c.call(d,b[f],f,b)&&(e[f]=b[f]);return e};l.object.map=function(b,c,d){var e={},f;for(f in b)e[f]=c.call(d,b[f],f,b);return e};l.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return!0;return!1};l.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return!1;return!0};l.object.getCount=function(b){var c=0,d;for(d in b)c++;return c};
l.object.getAnyKey=function(b){for(var c in b)return c};l.object.getAnyValue=function(b){for(var c in b)return b[c]};l.object.contains=function(b,c){return l.object.containsValue(b,c)};l.object.getValues=function(b){var c=[],d=0,e;for(e in b)c[d++]=b[e];return c};l.object.getKeys=function(b){var c=[],d=0,e;for(e in b)c[d++]=e;return c};l.object.getValueByKeys=function(b,c){for(var d=l.isArrayLike(c),e=d?c:arguments,d=d?0:1;d<e.length&&(b=b[e[d]],l.isDef(b));d++);return b};
l.object.containsKey=function(b,c){return null!==b&&c in b};l.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return!0;return!1};l.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};l.object.findValue=function(b,c,d){return(c=l.object.findKey(b,c,d))&&b[c]};l.object.isEmpty=function(b){for(var c in b)return!1;return!0};l.object.clear=function(b){for(var c in b)delete b[c]};l.object.remove=function(b,c){var d;(d=c in b)&&delete b[c];return d};
l.object.add=function(b,c,d){if(null!==b&&c in b)throw Error('The object already contains the key "'+c+'"');l.object.set(b,c,d)};l.object.get=function(b,c,d){return null!==b&&c in b?b[c]:d};l.object.set=function(b,c,d){b[c]=d};l.object.setIfUndefined=function(b,c,d){return c in b?b[c]:b[c]=d};l.object.setWithReturnValueIfNotSet=function(b,c,d){if(c in b)return b[c];d=d();return b[c]=d};
l.object.equals=function(b,c){for(var d in b)if(!(d in c)||b[d]!==c[d])return!1;for(d in c)if(!(d in b))return!1;return!0};l.object.clone=function(b){var c={},d;for(d in b)c[d]=b[d];return c};l.object.unsafeClone=function(b){var c=l.typeOf(b);if("object"==c||"array"==c){if(l.isFunction(b.clone))return b.clone();var c="array"==c?[]:{},d;for(d in b)c[d]=l.object.unsafeClone(b[d]);return c}return b};l.object.transpose=function(b){var c={},d;for(d in b)c[b[d]]=d;return c};l.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
l.object.extend=function(b,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)b[d]=e[d];for(var g=0;g<l.object.PROTOTYPE_FIELDS_.length;g++)d=l.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(b[d]=e[d])}};l.object.create=function(b){var c=arguments.length;if(1==c&&l.isArray(arguments[0]))return l.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};
l.object.createSet=function(b){var c=arguments.length;if(1==c&&l.isArray(arguments[0]))return l.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};l.object.createImmutableView=function(b){var c=b;Object.isFrozen&&!Object.isFrozen(b)&&(c=Object.create(b),Object.freeze(c));return c};l.object.isImmutableView=function(b){return!!Object.isFrozen&&Object.isFrozen(b)};l.structs={};l.structs.Map=function(b,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else b&&this.addAll(b)};a=l.structs.Map.prototype;a.getCount=function(){return this.count_};a.getValues=function(){r(this);for(var b=[],c=0;c<this.keys_.length;c++)b.push(this.map_[this.keys_[c]]);return b};a.getKeys=function(){r(this);return this.keys_.concat()};
a.containsKey=function(b){return l.structs.Map.hasKey_(this.map_,b)};a.containsValue=function(b){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(l.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==b)return!0}return!1};a.equals=function(b,c){if(this===b)return!0;if(this.count_!=b.getCount())return!1;var d=c||l.structs.Map.defaultEquals;r(this);for(var e,f=0;e=this.keys_[f];f++)if(!d(this.get(e),b.get(e)))return!1;return!0};l.structs.Map.defaultEquals=function(b,c){return b===c};
l.structs.Map.prototype.isEmpty=function(){return 0==this.count_};l.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};l.structs.Map.prototype.remove=function(b){return l.structs.Map.hasKey_(this.map_,b)?(delete this.map_[b],this.count_--,this.version_++,this.keys_.length>2*this.count_&&r(this),!0):!1};
var r=function(b){if(b.count_!=b.keys_.length){for(var c=0,d=0;c<b.keys_.length;){var e=b.keys_[c];l.structs.Map.hasKey_(b.map_,e)&&(b.keys_[d++]=e);c++}b.keys_.length=d}if(b.count_!=b.keys_.length){for(var f={},d=c=0;c<b.keys_.length;)e=b.keys_[c],l.structs.Map.hasKey_(f,e)||(b.keys_[d++]=e,f[e]=1),c++;b.keys_.length=d}};a=l.structs.Map.prototype;a.get=function(b,c){return l.structs.Map.hasKey_(this.map_,b)?this.map_[b]:c};
a.set=function(b,c){l.structs.Map.hasKey_(this.map_,b)||(this.count_++,this.keys_.push(b),this.version_++);this.map_[b]=c};a.addAll=function(b){var c;b instanceof l.structs.Map?(c=b.getKeys(),b=b.getValues()):(c=l.object.getKeys(b),b=l.object.getValues(b));for(var d=0;d<c.length;d++)this.set(c[d],b[d])};a.forEach=function(b,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);b.call(c,g,f,this)}};a.clone=function(){return new l.structs.Map(this)};
a.transpose=function(){for(var b=new l.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];b.set(this.map_[d],d)}return b};a.toObject=function(){r(this);for(var b={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];b[d]=this.map_[d]}return b};
a.__iterator__=function(b){r(this);var c=0,d=this.version_,e=this,f=new l.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw l.iter.StopIteration;var f=e.keys_[c++];return b?f:e.map_[f]};return f};l.structs.Map.hasKey_=function(b,c){return Object.prototype.hasOwnProperty.call(b,c)};l.structs.getCount=function(b){return b.getCount&&"function"==typeof b.getCount?b.getCount():l.isArrayLike(b)||l.isString(b)?b.length:l.object.getCount(b)};l.structs.getValues=function(b){if(b.getValues&&"function"==typeof b.getValues)return b.getValues();if(l.isString(b))return b.split("");if(l.isArrayLike(b)){for(var c=[],d=b.length,e=0;e<d;e++)c.push(b[e]);return c}return l.object.getValues(b)};
l.structs.getKeys=function(b){if(b.getKeys&&"function"==typeof b.getKeys)return b.getKeys();if(!b.getValues||"function"!=typeof b.getValues){if(l.isArrayLike(b)||l.isString(b)){var c=[];b=b.length;for(var d=0;d<b;d++)c.push(d);return c}return l.object.getKeys(b)}};
l.structs.contains=function(b,c){return b.contains&&"function"==typeof b.contains?b.contains(c):b.containsValue&&"function"==typeof b.containsValue?b.containsValue(c):l.isArrayLike(b)||l.isString(b)?l.array.contains(b,c):l.object.containsValue(b,c)};l.structs.isEmpty=function(b){return b.isEmpty&&"function"==typeof b.isEmpty?b.isEmpty():l.isArrayLike(b)||l.isString(b)?l.array.isEmpty(b):l.object.isEmpty(b)};
l.structs.clear=function(b){b.clear&&"function"==typeof b.clear?b.clear():l.isArrayLike(b)?l.array.clear(b):l.object.clear(b)};l.structs.forEach=function(b,c,d){if(b.forEach&&"function"==typeof b.forEach)b.forEach(c,d);else if(l.isArrayLike(b)||l.isString(b))l.array.forEach(b,c,d);else for(var e=l.structs.getKeys(b),f=l.structs.getValues(b),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],b)};
l.structs.filter=function(b,c,d){if("function"==typeof b.filter)return b.filter(c,d);if(l.isArrayLike(b)||l.isString(b))return l.array.filter(b,c,d);var e,f=l.structs.getKeys(b),g=l.structs.getValues(b),h=g.length;if(f){e={};for(var k=0;k<h;k++)c.call(d,g[k],f[k],b)&&(e[f[k]]=g[k])}else for(e=[],k=0;k<h;k++)c.call(d,g[k],void 0,b)&&e.push(g[k]);return e};
l.structs.map=function(b,c,d){if("function"==typeof b.map)return b.map(c,d);if(l.isArrayLike(b)||l.isString(b))return l.array.map(b,c,d);var e,f=l.structs.getKeys(b),g=l.structs.getValues(b),h=g.length;if(f){e={};for(var k=0;k<h;k++)e[f[k]]=c.call(d,g[k],f[k],b)}else for(e=[],k=0;k<h;k++)e[k]=c.call(d,g[k],void 0,b);return e};
l.structs.some=function(b,c,d){if("function"==typeof b.some)return b.some(c,d);if(l.isArrayLike(b)||l.isString(b))return l.array.some(b,c,d);for(var e=l.structs.getKeys(b),f=l.structs.getValues(b),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],b))return!0;return!1};
l.structs.every=function(b,c,d){if("function"==typeof b.every)return b.every(c,d);if(l.isArrayLike(b)||l.isString(b))return l.array.every(b,c,d);for(var e=l.structs.getKeys(b),f=l.structs.getValues(b),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],b))return!1;return!0};l.uri={};l.uri.utils={};l.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};l.uri.utils.buildFromEncodedParts=function(b,c,d,e,f,g,h){var k="";b&&(k+=b+":");d&&(k+="//",c&&(k+=c+"@"),k+=d,e&&(k+=":"+e));f&&(k+=f);g&&(k+="?"+g);h&&(k+="#"+h);return k};l.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;l.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
l.uri.utils.split=function(b){return b.match(l.uri.utils.splitRe_)};l.uri.utils.decodeIfPossible_=function(b,c){return b?c?decodeURI(b):decodeURIComponent(b):b};l.uri.utils.getComponentByIndex_=function(b,c){return l.uri.utils.split(c)[b]||null};l.uri.utils.getScheme=function(b){return l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.SCHEME,b)};
l.uri.utils.getEffectiveScheme=function(b){b=l.uri.utils.getScheme(b);!b&&l.global.self&&l.global.self.location&&(b=l.global.self.location.protocol,b=b.substr(0,b.length-1));return b?b.toLowerCase():""};l.uri.utils.getUserInfoEncoded=function(b){return l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.USER_INFO,b)};l.uri.utils.getUserInfo=function(b){return l.uri.utils.decodeIfPossible_(l.uri.utils.getUserInfoEncoded(b))};
l.uri.utils.getDomainEncoded=function(b){return l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.DOMAIN,b)};l.uri.utils.getDomain=function(b){return l.uri.utils.decodeIfPossible_(l.uri.utils.getDomainEncoded(b),!0)};l.uri.utils.getPort=function(b){return Number(l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.PORT,b))||null};l.uri.utils.getPathEncoded=function(b){return l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.PATH,b)};
l.uri.utils.getPath=function(b){return l.uri.utils.decodeIfPossible_(l.uri.utils.getPathEncoded(b),!0)};l.uri.utils.getQueryData=function(b){return l.uri.utils.getComponentByIndex_(l.uri.utils.ComponentIndex.QUERY_DATA,b)};l.uri.utils.getFragmentEncoded=function(b){var c=b.indexOf("#");return 0>c?null:b.substr(c+1)};l.uri.utils.setFragmentEncoded=function(b,c){return l.uri.utils.removeFragment(b)+(c?"#"+c:"")};l.uri.utils.getFragment=function(b){return l.uri.utils.decodeIfPossible_(l.uri.utils.getFragmentEncoded(b))};
l.uri.utils.getHost=function(b){b=l.uri.utils.split(b);return l.uri.utils.buildFromEncodedParts(b[l.uri.utils.ComponentIndex.SCHEME],b[l.uri.utils.ComponentIndex.USER_INFO],b[l.uri.utils.ComponentIndex.DOMAIN],b[l.uri.utils.ComponentIndex.PORT])};l.uri.utils.getPathAndAfter=function(b){b=l.uri.utils.split(b);return l.uri.utils.buildFromEncodedParts(null,null,null,null,b[l.uri.utils.ComponentIndex.PATH],b[l.uri.utils.ComponentIndex.QUERY_DATA],b[l.uri.utils.ComponentIndex.FRAGMENT])};
l.uri.utils.removeFragment=function(b){var c=b.indexOf("#");return 0>c?b:b.substr(0,c)};l.uri.utils.haveSameDomain=function(b,c){var d=l.uri.utils.split(b),e=l.uri.utils.split(c);return d[l.uri.utils.ComponentIndex.DOMAIN]==e[l.uri.utils.ComponentIndex.DOMAIN]&&d[l.uri.utils.ComponentIndex.SCHEME]==e[l.uri.utils.ComponentIndex.SCHEME]&&d[l.uri.utils.ComponentIndex.PORT]==e[l.uri.utils.ComponentIndex.PORT]};
l.uri.utils.assertNoFragmentsOrQueries_=function(b){if(l.DEBUG&&(0<=b.indexOf("#")||0<=b.indexOf("?")))throw Error("goog.uri.utils: Fragment or query identifiers are not supported: ["+b+"]");};l.uri.utils.parseQueryData=function(b,c){if(b)for(var d=b.split("&"),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=null,h=null;0<=f?(g=d[e].substring(0,f),h=d[e].substring(f+1)):g=d[e];c(g,h?l.string.urlDecode(h):"")}};
l.uri.utils.appendQueryData_=function(b){if(b[1]){var c=b[0],d=c.indexOf("#");0<=d&&(b.push(c.substr(d)),b[0]=c=c.substr(0,d));d=c.indexOf("?");0>d?b[1]="?":d==c.length-1&&(b[1]=void 0)}return b.join("")};l.uri.utils.appendKeyValuePairs_=function(b,c,d){if(l.isArray(c)){l.asserts.assertArray(c);for(var e=0;e<c.length;e++)l.uri.utils.appendKeyValuePairs_(b,String(c[e]),d)}else null!=c&&d.push("&",b,""===c?"":"=",l.string.urlEncode(c))};
l.uri.utils.buildQueryDataBuffer_=function(b,c,d){l.asserts.assert(0==Math.max(c.length-(d||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");for(d=d||0;d<c.length;d+=2)l.uri.utils.appendKeyValuePairs_(c[d],c[d+1],b);return b};l.uri.utils.buildQueryData=function(b,c){var d=l.uri.utils.buildQueryDataBuffer_([],b,c);d[0]="";return d.join("")};l.uri.utils.buildQueryDataBufferFromMap_=function(b,c){for(var d in c)l.uri.utils.appendKeyValuePairs_(d,c[d],b);return b};
l.uri.utils.buildQueryDataFromMap=function(b){b=l.uri.utils.buildQueryDataBufferFromMap_([],b);b[0]="";return b.join("")};l.uri.utils.appendParams=function(b,c){return l.uri.utils.appendQueryData_(2==arguments.length?l.uri.utils.buildQueryDataBuffer_([b],arguments[1],0):l.uri.utils.buildQueryDataBuffer_([b],arguments,1))};l.uri.utils.appendParamsFromMap=function(b,c){return l.uri.utils.appendQueryData_(l.uri.utils.buildQueryDataBufferFromMap_([b],c))};
l.uri.utils.appendParam=function(b,c,d){b=[b,"&",c];l.isDefAndNotNull(d)&&b.push("=",l.string.urlEncode(d));return l.uri.utils.appendQueryData_(b)};l.uri.utils.findParam_=function(b,c,d,e){for(var f=d.length;0<=(c=b.indexOf(d,c))&&c<e;){var g=b.charCodeAt(c-1);if(g==l.uri.utils.CharCode_.AMPERSAND||g==l.uri.utils.CharCode_.QUESTION)if(g=b.charCodeAt(c+f),!g||g==l.uri.utils.CharCode_.EQUAL||g==l.uri.utils.CharCode_.AMPERSAND||g==l.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};
l.uri.utils.hashOrEndRe_=/#|$/;l.uri.utils.hasParam=function(b,c){return 0<=l.uri.utils.findParam_(b,0,c,b.search(l.uri.utils.hashOrEndRe_))};l.uri.utils.getParamValue=function(b,c){var d=b.search(l.uri.utils.hashOrEndRe_),e=l.uri.utils.findParam_(b,0,c,d);if(0>e)return null;var f=b.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return l.string.urlDecode(b.substr(e,f-e))};
l.uri.utils.getParamValues=function(b,c){for(var d=b.search(l.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=l.uri.utils.findParam_(b,e,c,d));){e=b.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(l.string.urlDecode(b.substr(f,e-f)))}return g};l.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;
l.uri.utils.removeParam=function(b,c){for(var d=b.search(l.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=l.uri.utils.findParam_(b,e,c,d));)g.push(b.substring(e,f)),e=Math.min(b.indexOf("&",f)+1||d,d);g.push(b.substr(e));return g.join("").replace(l.uri.utils.trailingQueryPunctuationRe_,"$1")};l.uri.utils.setParam=function(b){var c=l.uri.utils.StandardQueryParam.RANDOM,d=l.string.getRandomString();return l.uri.utils.appendParam(l.uri.utils.removeParam(b,c),c,d)};
l.uri.utils.appendPath=function(b,c){l.uri.utils.assertNoFragmentsOrQueries_(b);l.string.endsWith(b,"/")&&(b=b.substr(0,b.length-1));l.string.startsWith(c,"/")&&(c=c.substr(1));return l.string.buildString(b,"/",c)};
l.uri.utils.setPath=function(b,c){l.string.startsWith(c,"/")||(c="/"+c);var d=l.uri.utils.split(b);return l.uri.utils.buildFromEncodedParts(d[l.uri.utils.ComponentIndex.SCHEME],d[l.uri.utils.ComponentIndex.USER_INFO],d[l.uri.utils.ComponentIndex.DOMAIN],d[l.uri.utils.ComponentIndex.PORT],c,d[l.uri.utils.ComponentIndex.QUERY_DATA],d[l.uri.utils.ComponentIndex.FRAGMENT])};l.uri.utils.StandardQueryParam={RANDOM:"zx"};l.uri.utils.makeUnique=function(b){return l.uri.utils.setParam(b)};l.Uri=function(b,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;b instanceof l.Uri?(this.ignoreCase_=l.isDef(c)?c:b.ignoreCase_,t(this,b.getScheme()),u(this,b.getUserInfo()),x(this,b.getDomain()),y(this,b.getPort()),this.setPath(b.getPath()),z(this,b.getQueryData().clone()),A(this,b.getFragment())):b&&(d=l.uri.utils.split(String(b)))?(this.ignoreCase_=!!c,t(this,d[l.uri.utils.ComponentIndex.SCHEME]||"",!0),u(this,
d[l.uri.utils.ComponentIndex.USER_INFO]||"",!0),x(this,d[l.uri.utils.ComponentIndex.DOMAIN]||"",!0),y(this,d[l.uri.utils.ComponentIndex.PORT]),this.setPath(d[l.uri.utils.ComponentIndex.PATH]||"",!0),z(this,d[l.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),A(this,d[l.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new l.Uri.QueryData(null,0,this.ignoreCase_))};l.Uri.preserveParameterTypesCompatibilityFlag=!1;l.Uri.RANDOM_PARAM=l.uri.utils.StandardQueryParam.RANDOM;
l.Uri.prototype.toString=function(){var b=[],c=this.getScheme();c&&b.push(l.Uri.encodeSpecialChars_(c,l.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)b.push("//"),(c=this.getUserInfo())&&b.push(l.Uri.encodeSpecialChars_(c,l.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),b.push(l.Uri.removeDoubleEncoding_(l.string.urlEncode(d))),d=this.getPort(),null!=d&&b.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&b.push("/"),b.push(l.Uri.encodeSpecialChars_(d,
"/"==d.charAt(0)?l.Uri.reDisallowedInAbsolutePath_:l.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&b.push("?",d);(d=this.getFragment())&&b.push("#",l.Uri.encodeSpecialChars_(d,l.Uri.reDisallowedInFragment_));return b.join("")};
l.Uri.prototype.resolve=function(b){var c=this.clone(),d=!!b.scheme_;d?t(c,b.getScheme()):d=!!b.userInfo_;d?u(c,b.getUserInfo()):d=!!b.domain_;d?x(c,b.getDomain()):d=null!=b.port_;var e=b.getPath();if(d)y(c,b.getPort());else if(d=!!b.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=l.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==b.queryData_.toString();d?z(c,l.Uri.decodeOrEmpty_(b.queryData_.toString())):
d=!!b.fragment_;d&&A(c,b.getFragment());return c};l.Uri.prototype.clone=function(){return new l.Uri(this)};l.Uri.prototype.getScheme=function(){return this.scheme_};var t=function(b,c,d){B(b);b.scheme_=d?l.Uri.decodeOrEmpty_(c,!0):c;b.scheme_&&(b.scheme_=b.scheme_.replace(/:$/,""))};l.Uri.prototype.getUserInfo=function(){return this.userInfo_};var u=function(b,c,d){B(b);b.userInfo_=d?l.Uri.decodeOrEmpty_(c):c};l.Uri.prototype.getDomain=function(){return this.domain_};
var x=function(b,c,d){B(b);b.domain_=d?l.Uri.decodeOrEmpty_(c,!0):c};l.Uri.prototype.getPort=function(){return this.port_};var y=function(b,c){B(b);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);b.port_=c}else b.port_=null};l.Uri.prototype.getPath=function(){return this.path_};l.Uri.prototype.setPath=function(b,c){B(this);this.path_=c?l.Uri.decodeOrEmpty_(b,!0):b;return this};
var z=function(b,c,d){B(b);c instanceof l.Uri.QueryData?(b.queryData_=c,b.queryData_.setIgnoreCase(b.ignoreCase_)):(d||(c=l.Uri.encodeSpecialChars_(c,l.Uri.reDisallowedInQuery_)),b.queryData_=new l.Uri.QueryData(c,0,b.ignoreCase_))};l.Uri.prototype.getQueryData=function(){return this.queryData_};l.Uri.prototype.getFragment=function(){return this.fragment_};var A=function(b,c,d){B(b);b.fragment_=d?l.Uri.decodeOrEmpty_(c):c};
l.Uri.prototype.makeUnique=function(){B(this);var b=l.Uri.RANDOM_PARAM,c=l.string.getRandomString();B(this);this.queryData_.set(b,c);return this};var B=function(b){if(b.isReadOnly_)throw Error("Tried to modify a read-only Uri");};l.Uri.prototype.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b);return this};l.Uri.parse=function(b,c){return b instanceof l.Uri?b.clone():new l.Uri(b,c)};
l.Uri.create=function(b,c,d,e,f,g,h,k){k=new l.Uri(null,k);b&&t(k,b);c&&u(k,c);d&&x(k,d);e&&y(k,e);f&&k.setPath(f);g&&z(k,g);h&&A(k,h);return k};l.Uri.resolve=function(b,c){b instanceof l.Uri||(b=l.Uri.parse(b));c instanceof l.Uri||(c=l.Uri.parse(c));return b.resolve(c)};
l.Uri.removeDotSegments=function(b){if(".."==b||"."==b)return"";if(l.string.contains(b,"./")||l.string.contains(b,"/.")){var c=l.string.startsWith(b,"/");b=b.split("/");for(var d=[],e=0;e<b.length;){var f=b[e++];"."==f?c&&e==b.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==b.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return b};l.Uri.decodeOrEmpty_=function(b,c){return b?c?decodeURI(b.replace(/%25/g,"%2525")):decodeURIComponent(b):""};
l.Uri.encodeSpecialChars_=function(b,c,d){return l.isString(b)?(b=encodeURI(b).replace(c,l.Uri.encodeChar_),d&&(b=l.Uri.removeDoubleEncoding_(b)),b):null};l.Uri.encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15).toString(16)+(b&15).toString(16)};l.Uri.removeDoubleEncoding_=function(b){return b.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};l.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;l.Uri.reDisallowedInRelativePath_=/[\#\?:]/g;l.Uri.reDisallowedInAbsolutePath_=/[\#\?]/g;
l.Uri.reDisallowedInQuery_=/[\#\?@]/g;l.Uri.reDisallowedInFragment_=/#/g;l.Uri.haveSameDomain=function(b,c){var d=l.uri.utils.split(b),e=l.uri.utils.split(c);return d[l.uri.utils.ComponentIndex.DOMAIN]==e[l.uri.utils.ComponentIndex.DOMAIN]&&d[l.uri.utils.ComponentIndex.PORT]==e[l.uri.utils.ComponentIndex.PORT]};l.Uri.QueryData=function(b,c,d){this.count_=this.keyMap_=null;this.encodedQuery_=b||null;this.ignoreCase_=!!d};
var C=function(b){b.keyMap_||(b.keyMap_=new l.structs.Map,b.count_=0,b.encodedQuery_&&l.uri.utils.parseQueryData(b.encodedQuery_,function(c,d){b.add(l.string.urlDecode(c),d)}))};l.Uri.QueryData.createFromMap=function(b,c,d){c=l.structs.getKeys(b);if("undefined"==typeof c)throw Error("Keys are undefined");d=new l.Uri.QueryData(null,0,d);b=l.structs.getValues(b);for(var e=0;e<c.length;e++){var f=c[e],g=b[e];l.isArray(g)?D(d,f,g):d.add(f,g)}return d};
l.Uri.QueryData.createFromKeysValues=function(b,c,d,e){if(b.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new l.Uri.QueryData(null,0,e);for(e=0;e<b.length;e++)d.add(b[e],c[e]);return d};a=l.Uri.QueryData.prototype;a.getCount=function(){C(this);return this.count_};a.add=function(b,c){C(this);this.encodedQuery_=null;b=E(this,b);var d=this.keyMap_.get(b);d||this.keyMap_.set(b,d=[]);d.push(c);this.count_=l.asserts.assertNumber(this.count_)+1;return this};
a.remove=function(b){C(this);b=E(this,b);return this.keyMap_.containsKey(b)?(this.encodedQuery_=null,this.count_=l.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length,this.keyMap_.remove(b)):!1};a.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};a.isEmpty=function(){C(this);return 0==this.count_};a.containsKey=function(b){C(this);b=E(this,b);return this.keyMap_.containsKey(b)};a.containsValue=function(b){var c=this.getValues();return l.array.contains(c,b)};
a.getKeys=function(){C(this);for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=b[e],g=0;g<f.length;g++)d.push(c[e]);return d};a.getValues=function(b){C(this);var c=[];if(l.isString(b))this.containsKey(b)&&(c=l.array.concat(c,this.keyMap_.get(E(this,b))));else{b=this.keyMap_.getValues();for(var d=0;d<b.length;d++)c=l.array.concat(c,b[d])}return c};
a.set=function(b,c){C(this);this.encodedQuery_=null;b=E(this,b);this.containsKey(b)&&(this.count_=l.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length);this.keyMap_.set(b,[c]);this.count_=l.asserts.assertNumber(this.count_)+1;return this};a.get=function(b,c){var d=b?this.getValues(b):[];return l.Uri.preserveParameterTypesCompatibilityFlag?0<d.length?d[0]:c:0<d.length?String(d[0]):c};
var D=function(b,c,d){b.remove(c);0<d.length&&(b.encodedQuery_=null,b.keyMap_.set(E(b,c),l.array.clone(d)),b.count_=l.asserts.assertNumber(b.count_)+d.length)};
l.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++)for(var e=c[d],f=l.string.urlEncode(e),e=this.getValues(e),g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+l.string.urlEncode(e[g]));b.push(h)}return this.encodedQuery_=b.join("&")};
l.Uri.QueryData.prototype.clone=function(){var b=new l.Uri.QueryData;b.encodedQuery_=this.encodedQuery_;this.keyMap_&&(b.keyMap_=this.keyMap_.clone(),b.count_=this.count_);return b};var E=function(b,c){var d=String(c);b.ignoreCase_&&(d=d.toLowerCase());return d};l.Uri.QueryData.prototype.setIgnoreCase=function(b){b&&!this.ignoreCase_&&(C(this),this.encodedQuery_=null,this.keyMap_.forEach(function(b,d){var e=d.toLowerCase();d!=e&&(this.remove(d),D(this,e,b))},this));this.ignoreCase_=b};
l.Uri.QueryData.prototype.extend=function(b){for(var c=0;c<arguments.length;c++)l.structs.forEach(arguments[c],function(b,c){this.add(c,b)},this)};n.WebStoreService=function(b){this.baseUrl_=b||n.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+n.WebStoreService.WEB_STORE_REQUEST_PATH_};n.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};n.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
var F=function(b,c,d,e,f,g,h,k,m,p){var N=d?d:"",w=k||"application/x-www-form-urlencoded",v=function(b,c){if(c&&200==b){var d=null;try{d=JSON.parse(c)}catch(e){g(n.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}f(d)}else g(n.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)},R=function(H){H||g(n.Errors.ErrorTypes.TOKEN_MISSING_ERROR);var q=new XMLHttpRequest;q.open(e,c);q.setRequestHeader("Authorization","Bearer "+H);q.setRequestHeader("Content-Type",w);q.onreadystatechange=function(){4==q.readyState&&
(401==q.status&&H?chrome.identity.removeCachedAuthToken({token:H},function(){h?F(b,e,d,e,f,g,!1,k,m,p):(console.log(q),v(q.status,q.responseText))}):(console.log(q),v(q.status,q.responseText)))};q.send(N)};p?R(p):chrome.identity.getAuthToken({interactive:m||!1},R)},G=function(b,c){var d=c.parameters||{};if("env"in d){switch(d.env){case "prod":b.baseUrl_=n.WebStoreService.Environment.PROD;break;default:b.baseUrl_=n.WebStoreService.Environment.SANDBOX}b.baseUrlAndPath_=b.baseUrl_+n.WebStoreService.WEB_STORE_REQUEST_PATH_}};
n.WebStoreService.prototype.onFailure_=function(b,c,d){b(n.Errors.getErrorResponse(d||c))};
var aa=function(b,c,d,e,f){var g=new l.Uri.QueryData;g.add("projection",f.projection?f.projection:"THIN");c=new l.Uri(b.baseUrlAndPath_+"/items/"+c+"/payments");z(c,g);e=l.bind(b.onFailure_,b,e,n.Errors.ErrorTypes.GET_PURCHASES_ERROR);F(b,c.toString(),null,"GET",d,e,!0,void 0,f.interactive)},ba=function(b,c,d,e,f,g){c=b.baseUrlAndPath_+"/items/"+c+"/skus/"+d;f=l.bind(b.onFailure_,b,f,n.Errors.ErrorTypes.CONSUME_PURCHASE_ERROR);F(b,c,null,"DELETE",e,f,!0,void 0,g)},ca=function(b,c,d,e,f,g){var h=new l.Uri.QueryData;
h.add("hl",g.hl?g.hl:window.navigator.language);g.gl&&h.add("gl",g.gl);h.add("projection",g.projection?g.projection:"THIN");c=b.baseUrlAndPath_+"/items/"+c+"/skus";f&&(c=c+"/"+f);f=new l.Uri(c);z(f,h);e=l.bind(b.onFailure_,b,e,n.Errors.ErrorTypes.GET_SKU_DETAILS_ERROR);F(b,f.toString(),null,"GET",d,e,!0,void 0,g.interactive)};n.BackgroundDelegate=function(){chrome.runtime.onConnectExternal.addListener(l.bind(this.onConnect_,this))};l.inherits(n.BackgroundDelegate,l.craw.AppBackgroundDelegate);l.craw.AppBackgroundDelegate.setImpl();n.BackgroundDelegate.Methods_={BUY:"buy",CONSUME_PURCHASE:"consumePurchase",GET_PURCHASES:"getPurchases",GET_SKU_DETAILS:"getSkuDetails"};n.BackgroundDelegate.METHOD_NAME_="method";n.BackgroundDelegate.prototype.getDefaultUrl=function(){return null};
n.BackgroundDelegate.prototype.getWindowBounds=function(){return{width:435,height:345}};
var da=function(b,c,d,e,f){chrome.identity.getAuthToken({interactive:!1},function(g){chrome.app.window.create("/html/craw_window.html",{bounds:b.getWindowBounds("https://www.google.com/intl/en-US/chrome/blank.html"),frame:"chrome",hidden:!1},function(b){d.onDisconnect.addListener(function(){b.close()});var k=b.contentWindow;k.crawConfig_=new l.craw.WindowConfig("https://www.google.com/intl/en-US/chrome/blank.html",!1);k.iapJwt_=e;k.sku_=f;var m=c.parameters;m||(m={});m.userSessionIndex=0;m.fullscreen=
!0;m.oauthToken=g;m.propertyId="ChromeIAP";m.applicationId=d.sender.id;k.iapParams_=m;b.onClosed.addListener(function(){var b=k.purchase_result;b||(b=n.Errors.getErrorResponse(n.Errors.ErrorTypes.PURCHASE_CANCELED));"response"in b||(b.response={errorType:n.Errors.ErrorTypes.PURCHASE_CANCELED});var c=k.payment_data;c&&(b.paymentData=c);(c=k.signature)&&(b.signature=c);d.postMessage(b);d.disconnect()})})})},ea=function(b,c,d,e){var f=b.parameters||{};G(e,b);aa(e,c,function(b){d({response:{details:b}})},
d,f)},fa=function(b,c,d,e){var f=b.parameters||{};G(e,b);ca(e,c,function(b){d({response:{details:b}})},d,b.sku,f)},ga=function(b,c,d,e){var f=b.parameters||{};G(e,b);ba(e,c,b.sku,function(b){d({response:{details:b}})},d,f.interactive)};
n.BackgroundDelegate.prototype.onConnect_=function(b){var c=function(c){b.postMessage(c);b.disconnect()},d=new n.WebStoreService;b.onMessage.addListener(l.bind(function(e){!e.sku&&n.BackgroundDelegate.Methods_.GET_SKU_DETAILS!=e[n.BackgroundDelegate.METHOD_NAME_]&&n.BackgroundDelegate.Methods_.GET_PURCHASES!=e[n.BackgroundDelegate.METHOD_NAME_]&&n.BackgroundDelegate.Methods_.CONSUME_PURCHASE!=e[n.BackgroundDelegate.METHOD_NAME_]||"prod"==(e.parameters||{}).env?n.BackgroundDelegate.Methods_.GET_PURCHASES==
e[n.BackgroundDelegate.METHOD_NAME_]?ea(e,b.sender.id,c,d):n.BackgroundDelegate.Methods_.GET_SKU_DETAILS==e[n.BackgroundDelegate.METHOD_NAME_]?fa(e,b.sender.id,c,d):n.BackgroundDelegate.Methods_.CONSUME_PURCHASE==e[n.BackgroundDelegate.METHOD_NAME_]?ga(e,b.sender.id,c,d):da(this,e,b,e.jwt,e.sku):c(n.Errors.getErrorResponse(n.Errors.ErrorTypes.ENV_NOT_SUPPORTED_ERROR))},this))};l.debug.entryPointRegistry={};l.debug.EntryPointMonitor=function(){};l.debug.entryPointRegistry.refList_=[];l.debug.entryPointRegistry.monitors_=[];l.debug.entryPointRegistry.monitorsMayExist_=!1;l.debug.entryPointRegistry.register=function(b){l.debug.entryPointRegistry.refList_[l.debug.entryPointRegistry.refList_.length]=b;if(l.debug.entryPointRegistry.monitorsMayExist_)for(var c=l.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)b(l.bind(c[d].wrap,c[d]))};
l.debug.entryPointRegistry.monitorAll=function(b){l.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=l.bind(b.wrap,b),d=0;d<l.debug.entryPointRegistry.refList_.length;d++)l.debug.entryPointRegistry.refList_[d](c);l.debug.entryPointRegistry.monitors_.push(b)};
l.debug.entryPointRegistry.unmonitorAllIfPossible=function(b){var c=l.debug.entryPointRegistry.monitors_;l.asserts.assert(b==c[c.length-1],"Only the most recent monitor can be unwrapped.");b=l.bind(b.unwrap,b);for(var d=0;d<l.debug.entryPointRegistry.refList_.length;d++)l.debug.entryPointRegistry.refList_[d](b);c.length--};l.disposable={};l.disposable.IDisposable=function(){};l.Disposable=function(){l.Disposable.MONITORING_MODE!=l.Disposable.MonitoringMode.OFF&&(l.Disposable.instances_[l.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};l.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};l.Disposable.MONITORING_MODE=0;l.Disposable.INCLUDE_STACK_ON_CREATION=!0;l.Disposable.instances_={};
l.Disposable.getUndisposedObjects=function(){var b=[],c;for(c in l.Disposable.instances_)l.Disposable.instances_.hasOwnProperty(c)&&b.push(l.Disposable.instances_[Number(c)]);return b};l.Disposable.clearUndisposedObjects=function(){l.Disposable.instances_={}};l.Disposable.prototype.disposed_=!1;l.Disposable.prototype.isDisposed=function(){return this.disposed_};
l.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),l.Disposable.MONITORING_MODE!=l.Disposable.MonitoringMode.OFF)){var b=l.getUid(this);if(l.Disposable.MONITORING_MODE==l.Disposable.MonitoringMode.PERMANENT&&!l.Disposable.instances_.hasOwnProperty(b))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");delete l.Disposable.instances_[b]}};
l.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};l.Disposable.isDisposed=function(b){return b&&"function"==typeof b.isDisposed?b.isDisposed():!1};l.dispose=function(b){b&&"function"==typeof b.dispose&&b.dispose()};l.disposeAll=function(b){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];l.isArrayLike(e)?l.disposeAll.apply(null,e):l.dispose(e)}};l.events={};l.events.EventId=function(b){this.id=b};l.events.EventId.prototype.toString=function(){return this.id};l.events.Event=function(b,c){this.type=b instanceof l.events.EventId?String(b):b;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};l.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};l.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};l.events.Event.stopPropagation=function(b){b.stopPropagation()};l.events.Event.preventDefault=function(b){b.preventDefault()};l.reflect={};l.reflect.object=function(b,c){return c};l.reflect.sinkValue=function(b){l.reflect.sinkValue[" "](b);return b};l.reflect.sinkValue[" "]=l.nullFunction;l.reflect.canAccessProperty=function(b){try{return l.reflect.sinkValue(b.nodeName),!0}catch(c){}return!1};l.reflect.cache=function(b,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(b,e)?b[e]:b[e]=d(c)};l.labs={};l.labs.userAgent={};l.labs.userAgent.util={};l.labs.userAgent.util.getNativeUserAgentString_=function(){var b=l.labs.userAgent.util.getNavigator_();return b&&(b=b.userAgent)?b:""};l.labs.userAgent.util.getNavigator_=function(){return l.global.navigator};l.labs.userAgent.util.userAgent_=l.labs.userAgent.util.getNativeUserAgentString_();l.labs.userAgent.util.setUserAgent=function(b){l.labs.userAgent.util.userAgent_=b||l.labs.userAgent.util.getNativeUserAgentString_()};
l.labs.userAgent.util.getUserAgent=function(){return l.labs.userAgent.util.userAgent_};l.labs.userAgent.util.matchUserAgent=function(b){return l.string.contains(l.labs.userAgent.util.getUserAgent(),b)};l.labs.userAgent.util.matchUserAgentIgnoreCase=function(){return l.string.caseInsensitiveContains()};l.labs.userAgent.util.extractVersionTuples=function(b){for(var c=RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g"),d=[],e;e=c.exec(b);)d.push([e[1],e[2],e[3]||void 0]);return d};l.labs.userAgent.browser={};l.labs.userAgent.browser.matchOpera_=function(){return l.labs.userAgent.util.matchUserAgent("Opera")||l.labs.userAgent.util.matchUserAgent("OPR")};l.labs.userAgent.browser.matchIE_=function(){return l.labs.userAgent.util.matchUserAgent("Trident")||l.labs.userAgent.util.matchUserAgent("MSIE")};l.labs.userAgent.browser.matchEdge_=function(){return l.labs.userAgent.util.matchUserAgent("Edge")};l.labs.userAgent.browser.matchFirefox_=function(){return l.labs.userAgent.util.matchUserAgent("Firefox")};
l.labs.userAgent.browser.matchSafari_=function(){return l.labs.userAgent.util.matchUserAgent("Safari")&&!(l.labs.userAgent.browser.matchChrome_()||l.labs.userAgent.browser.matchCoast_()||l.labs.userAgent.browser.matchOpera_()||l.labs.userAgent.browser.matchEdge_()||l.labs.userAgent.browser.isSilk()||l.labs.userAgent.util.matchUserAgent("Android"))};l.labs.userAgent.browser.matchCoast_=function(){return l.labs.userAgent.util.matchUserAgent("Coast")};
l.labs.userAgent.browser.matchIosWebview_=function(){return(l.labs.userAgent.util.matchUserAgent("iPad")||l.labs.userAgent.util.matchUserAgent("iPhone"))&&!l.labs.userAgent.browser.matchSafari_()&&!l.labs.userAgent.browser.matchChrome_()&&!l.labs.userAgent.browser.matchCoast_()&&l.labs.userAgent.util.matchUserAgent("AppleWebKit")};
l.labs.userAgent.browser.matchChrome_=function(){return(l.labs.userAgent.util.matchUserAgent("Chrome")||l.labs.userAgent.util.matchUserAgent("CriOS"))&&!l.labs.userAgent.browser.matchOpera_()&&!l.labs.userAgent.browser.matchEdge_()};l.labs.userAgent.browser.matchAndroidBrowser_=function(){return l.labs.userAgent.util.matchUserAgent("Android")&&!(l.labs.userAgent.browser.isChrome()||l.labs.userAgent.browser.isFirefox()||l.labs.userAgent.browser.isOpera()||l.labs.userAgent.browser.isSilk())};
l.labs.userAgent.browser.isOpera=l.labs.userAgent.browser.matchOpera_;l.labs.userAgent.browser.isIE=l.labs.userAgent.browser.matchIE_;l.labs.userAgent.browser.isEdge=l.labs.userAgent.browser.matchEdge_;l.labs.userAgent.browser.isFirefox=l.labs.userAgent.browser.matchFirefox_;l.labs.userAgent.browser.isSafari=l.labs.userAgent.browser.matchSafari_;l.labs.userAgent.browser.isCoast=l.labs.userAgent.browser.matchCoast_;l.labs.userAgent.browser.isIosWebview=l.labs.userAgent.browser.matchIosWebview_;
l.labs.userAgent.browser.isChrome=l.labs.userAgent.browser.matchChrome_;l.labs.userAgent.browser.isAndroidBrowser=l.labs.userAgent.browser.matchAndroidBrowser_;l.labs.userAgent.browser.isSilk=function(){return l.labs.userAgent.util.matchUserAgent("Silk")};
l.labs.userAgent.browser.getVersion=function(){function b(b){b=l.array.find(b,e);return d[b]||""}var c=l.labs.userAgent.util.getUserAgent();if(l.labs.userAgent.browser.isIE())return l.labs.userAgent.browser.getIEVersion_(c);var c=l.labs.userAgent.util.extractVersionTuples(c),d={};l.array.forEach(c,function(b){d[b[0]]=b[1]});var e=l.partial(l.object.containsKey,d);return l.labs.userAgent.browser.isOpera()?b(["Version","Opera","OPR"]):l.labs.userAgent.browser.isEdge()?b(["Edge"]):l.labs.userAgent.browser.isChrome()?
b(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};l.labs.userAgent.browser.isVersionOrHigher=function(b){return 0<=l.string.compareVersions(l.labs.userAgent.browser.getVersion(),b)};
l.labs.userAgent.browser.getIEVersion_=function(b){var c=/rv: *([\d\.]*)/.exec(b);if(c&&c[1])return c[1];var c="",d=/MSIE +([\d\.]+)/.exec(b);if(d&&d[1])if(b=/Trident\/(\d.\d)/.exec(b),"7.0"==d[1])if(b&&b[1])switch(b[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};l.labs.userAgent.engine={};l.labs.userAgent.engine.isPresto=function(){return l.labs.userAgent.util.matchUserAgent("Presto")};l.labs.userAgent.engine.isTrident=function(){return l.labs.userAgent.util.matchUserAgent("Trident")||l.labs.userAgent.util.matchUserAgent("MSIE")};l.labs.userAgent.engine.isEdge=function(){return l.labs.userAgent.util.matchUserAgent("Edge")};l.labs.userAgent.engine.isWebKit=function(){return l.labs.userAgent.util.matchUserAgentIgnoreCase()&&!l.labs.userAgent.engine.isEdge()};
l.labs.userAgent.engine.isGecko=function(){return l.labs.userAgent.util.matchUserAgent("Gecko")&&!l.labs.userAgent.engine.isWebKit()&&!l.labs.userAgent.engine.isTrident()&&!l.labs.userAgent.engine.isEdge()};
l.labs.userAgent.engine.getVersion=function(){var b=l.labs.userAgent.util.getUserAgent();if(b){var b=l.labs.userAgent.util.extractVersionTuples(b),c=l.labs.userAgent.engine.getEngineTuple_(b);if(c)return"Gecko"==c[0]?l.labs.userAgent.engine.getVersionForKey_(b):c[1];var b=b[0],d;if(b&&(d=b[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
l.labs.userAgent.engine.getEngineTuple_=function(b){if(!l.labs.userAgent.engine.isEdge())return b[1];for(var c=0;c<b.length;c++){var d=b[c];if("Edge"==d[0])return d}};l.labs.userAgent.engine.isVersionOrHigher=function(b){return 0<=l.string.compareVersions(l.labs.userAgent.engine.getVersion(),b)};l.labs.userAgent.engine.getVersionForKey_=function(b){return(b=l.array.find(b,function(b){return"Firefox"==b[0]}))&&b[1]||""};l.labs.userAgent.platform={};l.labs.userAgent.platform.isAndroid=function(){return l.labs.userAgent.util.matchUserAgent("Android")};l.labs.userAgent.platform.isIpod=function(){return l.labs.userAgent.util.matchUserAgent("iPod")};l.labs.userAgent.platform.isIphone=function(){return l.labs.userAgent.util.matchUserAgent("iPhone")&&!l.labs.userAgent.util.matchUserAgent("iPod")&&!l.labs.userAgent.util.matchUserAgent("iPad")};l.labs.userAgent.platform.isIpad=function(){return l.labs.userAgent.util.matchUserAgent("iPad")};
l.labs.userAgent.platform.isIos=function(){return l.labs.userAgent.platform.isIphone()||l.labs.userAgent.platform.isIpad()||l.labs.userAgent.platform.isIpod()};l.labs.userAgent.platform.isMacintosh=function(){return l.labs.userAgent.util.matchUserAgent("Macintosh")};l.labs.userAgent.platform.isLinux=function(){return l.labs.userAgent.util.matchUserAgent("Linux")};l.labs.userAgent.platform.isWindows=function(){return l.labs.userAgent.util.matchUserAgent("Windows")};
l.labs.userAgent.platform.isChromeOS=function(){return l.labs.userAgent.util.matchUserAgent("CrOS")};
l.labs.userAgent.platform.getVersion=function(){var b=l.labs.userAgent.util.getUserAgent(),c="";l.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(b=c.exec(b))?b[1]:"0.0"):l.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(b=c.exec(b))&&b[1].replace(/_/g,".")):l.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(b=c.exec(b))?b[1].replace(/_/g,"."):"10"):l.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(b=c.exec(b))&&
b[1]):l.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(b=c.exec(b))&&b[1]);return c||""};l.labs.userAgent.platform.isVersionOrHigher=function(b){return 0<=l.string.compareVersions(l.labs.userAgent.platform.getVersion(),b)};l.userAgent={};l.userAgent.ASSUME_IE=!1;l.userAgent.ASSUME_EDGE=!1;l.userAgent.ASSUME_GECKO=!1;l.userAgent.ASSUME_WEBKIT=!1;l.userAgent.ASSUME_MOBILE_WEBKIT=!1;l.userAgent.ASSUME_OPERA=!1;l.userAgent.ASSUME_ANY_VERSION=!1;l.userAgent.BROWSER_KNOWN_=l.userAgent.ASSUME_IE||l.userAgent.ASSUME_EDGE||l.userAgent.ASSUME_GECKO||l.userAgent.ASSUME_MOBILE_WEBKIT||l.userAgent.ASSUME_WEBKIT||l.userAgent.ASSUME_OPERA;l.userAgent.getUserAgentString=function(){return l.labs.userAgent.util.getUserAgent()};
l.userAgent.getNavigator=function(){return l.global.navigator||null};l.userAgent.OPERA=l.userAgent.BROWSER_KNOWN_?l.userAgent.ASSUME_OPERA:l.labs.userAgent.browser.isOpera();l.userAgent.IE=l.userAgent.BROWSER_KNOWN_?l.userAgent.ASSUME_IE:l.labs.userAgent.browser.isIE();l.userAgent.EDGE=l.userAgent.BROWSER_KNOWN_?l.userAgent.ASSUME_EDGE:l.labs.userAgent.engine.isEdge();l.userAgent.EDGE_OR_IE=l.userAgent.EDGE||l.userAgent.IE;l.userAgent.GECKO=l.userAgent.BROWSER_KNOWN_?l.userAgent.ASSUME_GECKO:l.labs.userAgent.engine.isGecko();
l.userAgent.WEBKIT=l.userAgent.BROWSER_KNOWN_?l.userAgent.ASSUME_WEBKIT||l.userAgent.ASSUME_MOBILE_WEBKIT:l.labs.userAgent.engine.isWebKit();l.userAgent.isMobile_=function(){return l.userAgent.WEBKIT&&l.labs.userAgent.util.matchUserAgent("Mobile")};l.userAgent.MOBILE=l.userAgent.ASSUME_MOBILE_WEBKIT||l.userAgent.isMobile_();l.userAgent.SAFARI=l.userAgent.WEBKIT;l.userAgent.determinePlatform_=function(){var b=l.userAgent.getNavigator();return b&&b.platform||""};l.userAgent.PLATFORM=l.userAgent.determinePlatform_();
l.userAgent.ASSUME_MAC=!1;l.userAgent.ASSUME_WINDOWS=!1;l.userAgent.ASSUME_LINUX=!1;l.userAgent.ASSUME_X11=!1;l.userAgent.ASSUME_ANDROID=!1;l.userAgent.ASSUME_IPHONE=!1;l.userAgent.ASSUME_IPAD=!1;l.userAgent.PLATFORM_KNOWN_=l.userAgent.ASSUME_MAC||l.userAgent.ASSUME_WINDOWS||l.userAgent.ASSUME_LINUX||l.userAgent.ASSUME_X11||l.userAgent.ASSUME_ANDROID||l.userAgent.ASSUME_IPHONE||l.userAgent.ASSUME_IPAD;l.userAgent.MAC=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_MAC:l.labs.userAgent.platform.isMacintosh();
l.userAgent.WINDOWS=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_WINDOWS:l.labs.userAgent.platform.isWindows();l.userAgent.isLegacyLinux_=function(){return l.labs.userAgent.platform.isLinux()||l.labs.userAgent.platform.isChromeOS()};l.userAgent.LINUX=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_LINUX:l.userAgent.isLegacyLinux_();l.userAgent.isX11_=function(){var b=l.userAgent.getNavigator();return!!b&&l.string.contains(b.appVersion||"","X11")};
l.userAgent.X11=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_X11:l.userAgent.isX11_();l.userAgent.ANDROID=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_ANDROID:l.labs.userAgent.platform.isAndroid();l.userAgent.IPHONE=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_IPHONE:l.labs.userAgent.platform.isIphone();l.userAgent.IPAD=l.userAgent.PLATFORM_KNOWN_?l.userAgent.ASSUME_IPAD:l.labs.userAgent.platform.isIpad();
l.userAgent.determineVersion_=function(){var b="",c=l.userAgent.getVersionRegexResult_();c&&(b=c?c[1]:"");return l.userAgent.IE&&(c=l.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(b))?String(c):b};
l.userAgent.getVersionRegexResult_=function(){var b=l.userAgent.getUserAgentString();if(l.userAgent.GECKO)return/rv\:([^\);]+)(\)|;)/.exec(b);if(l.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(b);if(l.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);if(l.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(b);if(l.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(b)};l.userAgent.getDocumentMode_=function(){var b=l.global.document;return b?b.documentMode:void 0};l.userAgent.VERSION=l.userAgent.determineVersion_();
l.userAgent.compare=function(b,c){return l.string.compareVersions(b,c)};l.userAgent.isVersionOrHigherCache_={};l.userAgent.isVersionOrHigher=function(b){return l.userAgent.ASSUME_ANY_VERSION||l.userAgent.isVersionOrHigherCache_[b]||(l.userAgent.isVersionOrHigherCache_[b]=0<=l.string.compareVersions(l.userAgent.VERSION,b))};l.userAgent.isVersion=l.userAgent.isVersionOrHigher;l.userAgent.isDocumentModeOrHigher=function(b){return Number(l.userAgent.DOCUMENT_MODE)>=b};l.userAgent.isDocumentMode=l.userAgent.isDocumentModeOrHigher;
var I=l.global.document;l.userAgent.DOCUMENT_MODE=I&&l.userAgent.IE?l.userAgent.getDocumentMode_()||("CSS1Compat"==I.compatMode?parseInt(l.userAgent.VERSION,10):5):void 0;l.events.BrowserFeature={HAS_W3C_BUTTON:!l.userAgent.IE||l.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!l.userAgent.IE||l.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:l.userAgent.IE&&!l.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!l.userAgent.WEBKIT||l.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:l.userAgent.GECKO&&l.userAgent.isVersionOrHigher("1.9b")||l.userAgent.IE&&l.userAgent.isVersionOrHigher("8")||l.userAgent.OPERA&&
l.userAgent.isVersionOrHigher("9.5")||l.userAgent.WEBKIT&&l.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:l.userAgent.GECKO&&!l.userAgent.isVersionOrHigher("8")||l.userAgent.IE&&!l.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in l.global||!!(l.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!l.global.navigator||!l.global.navigator.msMaxTouchPoints)};l.events.getVendorPrefixedName_=function(b){return l.userAgent.WEBKIT?"webkit"+b:l.userAgent.OPERA?"o"+b.toLowerCase():b.toLowerCase()};
l.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:l.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:l.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",RESET:"reset",SELECT:"select",
SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",
READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",ANIMATIONSTART:l.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:l.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:l.events.getVendorPrefixedName_("AnimationIteration"),
TRANSITIONEND:l.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",
MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",
EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",
DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint"};l.events.BrowserEvent=function(b,c){l.events.Event.call(this,b?b.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.charCode=this.keyCode=this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.event_=this.state=null;if(b){var d=this.type=b.type,e=b.changedTouches?b.changedTouches[0]:null;this.target=b.target||b.srcElement;this.currentTarget=c;var f=b.relatedTarget;f?l.userAgent.GECKO&&
(l.reflect.canAccessProperty(f)||(f=null)):d==l.events.EventType.MOUSEOVER?f=b.fromElement:d==l.events.EventType.MOUSEOUT&&(f=b.toElement);this.relatedTarget=f;l.isNull(e)?(this.offsetX=l.userAgent.WEBKIT||void 0!==b.offsetX?b.offsetX:b.layerX,this.offsetY=l.userAgent.WEBKIT||void 0!==b.offsetY?b.offsetY:b.layerY,this.clientX=void 0!==b.clientX?b.clientX:b.pageX,this.clientY=void 0!==b.clientY?b.clientY:b.pageY,this.screenX=b.screenX||0,this.screenY=b.screenY||0):(this.clientX=void 0!==e.clientX?
e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0);this.button=b.button;this.keyCode=b.keyCode||0;this.charCode=b.charCode||("keypress"==d?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.state=b.state;this.event_=b;b.defaultPrevented&&this.preventDefault()}};l.inherits(l.events.BrowserEvent,l.events.Event);l.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};
l.events.BrowserEvent.IEButtonMap=[1,4,2];l.events.BrowserEvent.prototype.stopPropagation=function(){l.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
l.events.BrowserEvent.prototype.preventDefault=function(){l.events.BrowserEvent.superClass_.preventDefault.call(this);var b=this.event_;if(b.preventDefault)b.preventDefault();else if(b.returnValue=!1,l.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(b.ctrlKey||112<=b.keyCode&&123>=b.keyCode)b.keyCode=-1}catch(c){}};l.events.Listenable=function(){};l.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);l.events.Listenable.addImplementation=function(b){b.prototype[l.events.Listenable.IMPLEMENTED_BY_PROP]=!0};l.events.Listenable.isImplementedBy=function(b){return!(!b||!b[l.events.Listenable.IMPLEMENTED_BY_PROP])};l.events.ListenableKey=function(){};l.events.ListenableKey.counter_=0;l.events.ListenableKey.reserveKey=function(){return++l.events.ListenableKey.counter_};l.events.Listener=function(b,c,d,e,f,g){this.listener=b;this.proxy=c;this.src=d;this.type=e;this.capture=!!f;this.handler=g;this.key=l.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};l.events.Listener.ENABLE_MONITORING=!1;var J=function(b){b.removed=!0;b.listener=null;b.proxy=null;b.src=null;b.handler=null};l.events.ListenerMap=function(b){this.src=b;this.listeners={};this.typeCount_=0};l.events.ListenerMap.prototype.add=function(b,c,d,e,f){var g=b.toString();b=this.listeners[g];b||(b=this.listeners[g]=[],this.typeCount_++);var h=l.events.ListenerMap.findListenerIndex_(b,c,e,f);-1<h?(c=b[h],d||(c.callOnce=!1)):(c=new l.events.Listener(c,null,this.src,g,!!e,f),c.callOnce=d,b.push(c));return c};
l.events.ListenerMap.prototype.remove=function(b,c,d,e){b=b.toString();if(!(b in this.listeners))return!1;var f=this.listeners[b];c=l.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(J(f[c]),l.array.removeAt(f,c),0==f.length&&(delete this.listeners[b],this.typeCount_--),!0):!1};var K=function(b,c){var d=c.type;if(!(d in b.listeners))return!1;var e=l.array.remove(b.listeners[d],c);e&&(J(c),0==b.listeners[d].length&&(delete b.listeners[d],b.typeCount_--));return e};
l.events.ListenerMap.prototype.removeAll=function(b){b=b&&b.toString();var c=0,d;for(d in this.listeners)if(!b||d==b){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,J(e[f]);delete this.listeners[d];this.typeCount_--}return c};l.events.ListenerMap.prototype.getListeners=function(b,c){var d=this.listeners[b.toString()],e=[];if(d)for(var f=0;f<d.length;++f){var g=d[f];g.capture==c&&e.push(g)}return e};
l.events.ListenerMap.prototype.getListener=function(b,c,d,e){b=this.listeners[b.toString()];var f=-1;b&&(f=l.events.ListenerMap.findListenerIndex_(b,c,d,e));return-1<f?b[f]:null};l.events.ListenerMap.prototype.hasListener=function(b,c){var d=l.isDef(b),e=d?b.toString():"",f=l.isDef(c);return l.object.some(this.listeners,function(b){for(var h=0;h<b.length;++h)if(!(d&&b[h].type!=e||f&&b[h].capture!=c))return!0;return!1})};
l.events.ListenerMap.findListenerIndex_=function(b,c,d,e){for(var f=0;f<b.length;++f){var g=b[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};l.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);l.events.onString_="on";l.events.onStringMap_={};l.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};l.events.CAPTURE_SIMULATION_MODE=2;l.events.listenerCountEstimate_=0;l.events.listen=function(b,c,d,e,f){if(l.isArray(c)){for(var g=0;g<c.length;g++)l.events.listen(b,c[g],d,e,f);return null}d=l.events.wrapListener(d);return l.events.Listenable.isImplementedBy(b)?b.listen(c,d,e,f):l.events.listen_(b,c,d,!1,e,f)};
l.events.listen_=function(b,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=!!f;if(h&&!l.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(l.events.CAPTURE_SIMULATION_MODE==l.events.CaptureSimulationMode.OFF_AND_FAIL)return l.asserts.fail("Can not register capture listener in IE8-."),null;if(l.events.CAPTURE_SIMULATION_MODE==l.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var k=l.events.getListenerMap_(b);k||(b[l.events.LISTENER_MAP_PROP_]=k=new l.events.ListenerMap(b));d=k.add(c,
d,e,f,g);if(d.proxy)return d;e=l.events.getProxy();d.proxy=e;e.src=b;e.listener=d;if(b.addEventListener)b.addEventListener(c.toString(),e,h);else if(b.attachEvent)b.attachEvent(l.events.getOnString_(c.toString()),e);else throw Error("addEventListener and attachEvent are unavailable.");l.events.listenerCountEstimate_++;return d};
l.events.getProxy=function(){var b=l.events.handleBrowserEvent_,c=l.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return b.call(c.src,c.listener,d)}:function(d){d=b.call(c.src,c.listener,d);if(!d)return d};return c};l.events.listenOnce=function(b,c,d,e,f){if(l.isArray(c)){for(var g=0;g<c.length;g++)l.events.listenOnce(b,c[g],d,e,f);return null}d=l.events.wrapListener(d);return l.events.Listenable.isImplementedBy(b)?b.listenOnce(c,d,e,f):l.events.listen_(b,c,d,!0,e,f)};
l.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};l.events.unlisten=function(b,c,d,e,f){if(l.isArray(c)){for(var g=0;g<c.length;g++)l.events.unlisten(b,c[g],d,e,f);return null}d=l.events.wrapListener(d);if(l.events.Listenable.isImplementedBy(b))return b.unlisten(c,d,e,f);if(!b)return!1;if(b=l.events.getListenerMap_(b))if(c=b.getListener(c,d,!!e,f))return l.events.unlistenByKey(c);return!1};
l.events.unlistenByKey=function(b){if(l.isNumber(b)||!b||b.removed)return!1;var c=b.src;if(l.events.Listenable.isImplementedBy(c))return c.unlistenByKey(b);var d=b.type,e=b.proxy;c.removeEventListener?c.removeEventListener(d,e,b.capture):c.detachEvent&&c.detachEvent(l.events.getOnString_(d),e);l.events.listenerCountEstimate_--;(d=l.events.getListenerMap_(c))?(K(d,b),0==d.typeCount_&&(d.src=null,c[l.events.LISTENER_MAP_PROP_]=null)):J(b);return!0};
l.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};l.events.removeAll=function(b,c){if(!b)return 0;if(l.events.Listenable.isImplementedBy(b))return b.eventTargetListeners_?b.eventTargetListeners_.removeAll(c):0;var d=l.events.getListenerMap_(b);if(!d)return 0;var e=0,f=c&&c.toString(),g;for(g in d.listeners)if(!f||g==f)for(var h=d.listeners[g].concat(),k=0;k<h.length;++k)l.events.unlistenByKey(h[k])&&++e;return e};
l.events.getListeners=function(b,c,d){return l.events.Listenable.isImplementedBy(b)?b.getListeners(c,d):b?(b=l.events.getListenerMap_(b))?b.getListeners(c,d):[]:[]};l.events.getListener=function(b,c,d,e,f){d=l.events.wrapListener(d);e=!!e;return l.events.Listenable.isImplementedBy(b)?b.getListener(c,d,e,f):b?(b=l.events.getListenerMap_(b))?b.getListener(c,d,e,f):null:null};
l.events.hasListener=function(b,c,d){if(l.events.Listenable.isImplementedBy(b))return b.hasListener(c,d);b=l.events.getListenerMap_(b);return!!b&&b.hasListener(c,d)};l.events.expose=function(b){var c=[],d;for(d in b)b[d]&&b[d].id?c.push(d+" = "+b[d]+" ("+b[d].id+")"):c.push(d+" = "+b[d]);return c.join("\n")};l.events.getOnString_=function(b){return b in l.events.onStringMap_?l.events.onStringMap_[b]:l.events.onStringMap_[b]=l.events.onString_+b};
l.events.fireListeners=function(b,c,d,e){return l.events.Listenable.isImplementedBy(b)?b.fireListeners(c,d,e):l.events.fireListeners_(b,c,d,e)};l.events.fireListeners_=function(b,c,d,e){var f=!0;if(b=l.events.getListenerMap_(b))if(c=b.listeners[c.toString()])for(c=c.concat(),b=0;b<c.length;b++){var g=c[b];g&&g.capture==d&&!g.removed&&(g=l.events.fireListener(g,e),f=f&&!1!==g)}return f};
l.events.fireListener=function(b,c){var d=b.listener,e=b.handler||b.src;b.callOnce&&l.events.unlistenByKey(b);return d.call(e,c)};l.events.getTotalListenerCount=function(){return l.events.listenerCountEstimate_};l.events.dispatchEvent=function(b,c){l.asserts.assert(l.events.Listenable.isImplementedBy(b),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return b.dispatchEvent(c)};l.events.protectBrowserEventEntryPoint=function(b){l.events.handleBrowserEvent_=b.protectEntryPoint(l.events.handleBrowserEvent_)};
l.events.handleBrowserEvent_=function(b,c){if(b.removed)return!0;if(!l.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||l.getObjectByName("window.event"),e=new l.events.BrowserEvent(d,this),f=!0;if(l.events.CAPTURE_SIMULATION_MODE==l.events.CaptureSimulationMode.ON){if(!l.events.isMarkedIeEvent_(d)){l.events.markIeEvent_(d);for(var d=[],g=e.currentTarget;g;g=g.parentNode)d.push(g);for(var g=b.type,h=d.length-1;!e.propagationStopped_&&0<=h;h--){e.currentTarget=d[h];var k=l.events.fireListeners_(d[h],
g,!0,e),f=f&&k}for(h=0;!e.propagationStopped_&&h<d.length;h++)e.currentTarget=d[h],k=l.events.fireListeners_(d[h],g,!1,e),f=f&&k}}else f=l.events.fireListener(b,e);return f}return l.events.fireListener(b,new l.events.BrowserEvent(c,this))};l.events.markIeEvent_=function(b){var c=!1;if(0==b.keyCode)try{b.keyCode=-1;return}catch(d){c=!0}if(c||void 0==b.returnValue)b.returnValue=!0};l.events.isMarkedIeEvent_=function(b){return 0>b.keyCode||void 0!=b.returnValue};l.events.uniqueIdCounter_=0;
l.events.getUniqueId=function(b){return b+"_"+l.events.uniqueIdCounter_++};l.events.getListenerMap_=function(b){b=b[l.events.LISTENER_MAP_PROP_];return b instanceof l.events.ListenerMap?b:null};l.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
l.events.wrapListener=function(b){l.asserts.assert(b,"Listener can not be null.");if(l.isFunction(b))return b;l.asserts.assert(b.handleEvent,"An object listener must have handleEvent method.");b[l.events.LISTENER_WRAPPER_PROP_]||(b[l.events.LISTENER_WRAPPER_PROP_]=function(c){return b.handleEvent(c)});return b[l.events.LISTENER_WRAPPER_PROP_]};l.debug.entryPointRegistry.register(function(b){l.events.handleBrowserEvent_=b(l.events.handleBrowserEvent_)});l.events.EventTarget=function(){l.Disposable.call(this);this.eventTargetListeners_=new l.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};l.inherits(l.events.EventTarget,l.Disposable);l.events.Listenable.addImplementation(l.events.EventTarget);l.events.EventTarget.MAX_ANCESTORS_=1E3;a=l.events.EventTarget.prototype;a.addEventListener=function(b,c,d,e){l.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){l.events.unlisten(this,b,c,d,e)};
a.dispatchEvent=function(b){L(this);var c,d=this.parentEventTarget_;if(d){c=[];for(var e=1;d;d=d.parentEventTarget_)c.push(d),l.asserts.assert(++e<l.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return l.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,b,c)};a.disposeInternal=function(){l.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
a.listen=function(b,c,d,e){L(this);return this.eventTargetListeners_.add(String(b),c,!1,d,e)};a.listenOnce=function(b,c,d,e){return this.eventTargetListeners_.add(String(b),c,!0,d,e)};a.unlisten=function(b,c,d,e){return this.eventTargetListeners_.remove(String(b),c,d,e)};a.unlistenByKey=function(b){return K(this.eventTargetListeners_,b)};
a.fireListeners=function(b,c,d){b=this.eventTargetListeners_.listeners[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,k=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(k,d)&&e}}return e&&0!=d.returnValue_};a.getListeners=function(b,c){return this.eventTargetListeners_.getListeners(String(b),c)};a.getListener=function(b,c,d,e){return this.eventTargetListeners_.getListener(String(b),c,d,e)};
a.hasListener=function(b,c){return this.eventTargetListeners_.hasListener(l.isDef(b)?String(b):void 0,c)};var L=function(b){l.asserts.assert(b.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
l.events.EventTarget.dispatchEventInternal_=function(b,c,d){var e=c.type||c;if(l.isString(c))c=new l.events.Event(c,b);else if(c instanceof l.events.Event)c.target=c.target||b;else{var f=c;c=new l.events.Event(e,b);l.object.extend(c,f)}var f=!0,g;if(d)for(var h=d.length-1;!c.propagationStopped_&&0<=h;h--)g=c.currentTarget=d[h],f=g.fireListeners(e,!0,c)&&f;c.propagationStopped_||(g=c.currentTarget=b,f=g.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=g.fireListeners(e,!1,c)&&f));if(d)for(h=0;!c.propagationStopped_&&
h<d.length;h++)g=c.currentTarget=d[h],f=g.fireListeners(e,!1,c)&&f;return f};l.json={};l.json.USE_NATIVE_JSON=!1;l.json.isValid=function(b){return/^\s*$/.test(b)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(b.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};
l.json.parse=l.json.USE_NATIVE_JSON?l.global.JSON.parse:function(b){b=String(b);if(l.json.isValid(b))try{return eval("("+b+")")}catch(c){}throw Error("Invalid JSON string: "+b);};l.json.unsafeParse=l.json.USE_NATIVE_JSON?l.global.JSON.parse:function(b){return eval("("+b+")")};l.json.serialize=l.json.USE_NATIVE_JSON?l.global.JSON.stringify:function(b,c){return(new l.json.Serializer(c)).serialize(b)};l.json.Serializer=function(b){this.replacer_=b};
l.json.Serializer.prototype.serialize=function(b){var c=[];M(this,b,c);return c.join("")};
var M=function(b,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(l.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],M(b,b.replacer_?b.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),O(e,d),d.push(":"),M(b,b.replacer_?b.replacer_.call(c,e,f):f,
d),g=","));d.push("}");return}}switch(typeof c){case "string":O(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};l.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
l.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;var O=function(b,c){c.push('"',b.replace(l.json.Serializer.charsToReplace_,function(b){var c=l.json.Serializer.charToJsonCharCache_[b];c||(c="\\u"+(b.charCodeAt(0)|65536).toString(16).substr(1),l.json.Serializer.charToJsonCharCache_[b]=c);return c}),'"')};l.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",ARTICLE:"ARTICLE",ASIDE:"ASIDE",AUDIO:"AUDIO",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDI:"BDI",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CANVAS:"CANVAS",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",COMMAND:"COMMAND",DATA:"DATA",DATALIST:"DATALIST",DD:"DD",DEL:"DEL",DETAILS:"DETAILS",DFN:"DFN",DIALOG:"DIALOG",DIR:"DIR",DIV:"DIV",
DL:"DL",DT:"DT",EM:"EM",EMBED:"EMBED",FIELDSET:"FIELDSET",FIGCAPTION:"FIGCAPTION",FIGURE:"FIGURE",FONT:"FONT",FOOTER:"FOOTER",FORM:"FORM",FRAME:"FRAME",FRAMESET:"FRAMESET",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",HEAD:"HEAD",HEADER:"HEADER",HGROUP:"HGROUP",HR:"HR",HTML:"HTML",I:"I",IFRAME:"IFRAME",IMG:"IMG",INPUT:"INPUT",INS:"INS",ISINDEX:"ISINDEX",KBD:"KBD",KEYGEN:"KEYGEN",LABEL:"LABEL",LEGEND:"LEGEND",LI:"LI",LINK:"LINK",MAP:"MAP",MARK:"MARK",MATH:"MATH",MENU:"MENU",META:"META",METER:"METER",
NAV:"NAV",NOFRAMES:"NOFRAMES",NOSCRIPT:"NOSCRIPT",OBJECT:"OBJECT",OL:"OL",OPTGROUP:"OPTGROUP",OPTION:"OPTION",OUTPUT:"OUTPUT",P:"P",PARAM:"PARAM",PRE:"PRE",PROGRESS:"PROGRESS",Q:"Q",RP:"RP",RT:"RT",RUBY:"RUBY",S:"S",SAMP:"SAMP",SCRIPT:"SCRIPT",SECTION:"SECTION",SELECT:"SELECT",SMALL:"SMALL",SOURCE:"SOURCE",SPAN:"SPAN",STRIKE:"STRIKE",STRONG:"STRONG",STYLE:"STYLE",SUB:"SUB",SUMMARY:"SUMMARY",SUP:"SUP",SVG:"SVG",TABLE:"TABLE",TBODY:"TBODY",TD:"TD",TEMPLATE:"TEMPLATE",TEXTAREA:"TEXTAREA",TFOOT:"TFOOT",
TH:"TH",THEAD:"THEAD",TIME:"TIME",TITLE:"TITLE",TR:"TR",TRACK:"TRACK",TT:"TT",U:"U",UL:"UL",VAR:"VAR",VIDEO:"VIDEO",WBR:"WBR"};l.dom.tags={};l.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};l.dom.tags.isVoidTag=function(b){return!0===l.dom.tags.VOID_TAGS_[b]};l.i18n={};l.i18n.bidi={};l.i18n.bidi.FORCE_RTL=!1;
l.i18n.bidi.IS_RTL=l.i18n.bidi.FORCE_RTL||("ar"==l.LOCALE.substring(0,2).toLowerCase()||"fa"==l.LOCALE.substring(0,2).toLowerCase()||"he"==l.LOCALE.substring(0,2).toLowerCase()||"iw"==l.LOCALE.substring(0,2).toLowerCase()||"ps"==l.LOCALE.substring(0,2).toLowerCase()||"sd"==l.LOCALE.substring(0,2).toLowerCase()||"ug"==l.LOCALE.substring(0,2).toLowerCase()||"ur"==l.LOCALE.substring(0,2).toLowerCase()||"yi"==l.LOCALE.substring(0,2).toLowerCase())&&(2==l.LOCALE.length||"-"==l.LOCALE.substring(2,3)||"_"==
l.LOCALE.substring(2,3))||3<=l.LOCALE.length&&"ckb"==l.LOCALE.substring(0,3).toLowerCase()&&(3==l.LOCALE.length||"-"==l.LOCALE.substring(3,4)||"_"==l.LOCALE.substring(3,4));l.i18n.bidi.Format={LRE:"\u202a",RLE:"\u202b",PDF:"\u202c",LRM:"\u200e",RLM:"\u200f"};l.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};l.i18n.bidi.RIGHT="right";l.i18n.bidi.LEFT="left";l.i18n.bidi.I18N_RIGHT=l.i18n.bidi.IS_RTL?l.i18n.bidi.LEFT:l.i18n.bidi.RIGHT;l.i18n.bidi.I18N_LEFT=l.i18n.bidi.IS_RTL?l.i18n.bidi.RIGHT:l.i18n.bidi.LEFT;
l.i18n.bidi.toDir=function(b){return"number"==typeof b?0<b?l.i18n.bidi.Dir.LTR:0>b?l.i18n.bidi.Dir.RTL:l.i18n.bidi.Dir.NEUTRAL:null==b?null:b?l.i18n.bidi.Dir.RTL:l.i18n.bidi.Dir.LTR};l.i18n.bidi.ltrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";l.i18n.bidi.rtlChars_="\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc";l.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
l.i18n.bidi.stripHtmlIfNeeded_=function(b,c){return c?b.replace(l.i18n.bidi.htmlSkipReg_,""):b};l.i18n.bidi.rtlCharReg_=new RegExp("["+l.i18n.bidi.rtlChars_+"]");l.i18n.bidi.ltrCharReg_=new RegExp("["+l.i18n.bidi.ltrChars_+"]");l.i18n.bidi.hasAnyRtl=function(b,c){return l.i18n.bidi.rtlCharReg_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,c))};l.i18n.bidi.hasRtlChar=l.i18n.bidi.hasAnyRtl;l.i18n.bidi.hasAnyLtr=function(b){return l.i18n.bidi.ltrCharReg_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,void 0))};
l.i18n.bidi.ltrRe_=new RegExp("^["+l.i18n.bidi.ltrChars_+"]");l.i18n.bidi.rtlRe_=new RegExp("^["+l.i18n.bidi.rtlChars_+"]");l.i18n.bidi.isRtlChar=function(b){return l.i18n.bidi.rtlRe_.test(b)};l.i18n.bidi.isLtrChar=function(b){return l.i18n.bidi.ltrRe_.test(b)};l.i18n.bidi.isNeutralChar=function(b){return!l.i18n.bidi.isLtrChar(b)&&!l.i18n.bidi.isRtlChar(b)};l.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+l.i18n.bidi.rtlChars_+"]*["+l.i18n.bidi.ltrChars_+"]");
l.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+l.i18n.bidi.ltrChars_+"]*["+l.i18n.bidi.rtlChars_+"]");l.i18n.bidi.startsWithRtl=function(b,c){return l.i18n.bidi.rtlDirCheckRe_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,c))};l.i18n.bidi.isRtlText=l.i18n.bidi.startsWithRtl;l.i18n.bidi.startsWithLtr=function(b,c){return l.i18n.bidi.ltrDirCheckRe_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,c))};l.i18n.bidi.isLtrText=l.i18n.bidi.startsWithLtr;l.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;
l.i18n.bidi.isNeutralText=function(b,c){b=l.i18n.bidi.stripHtmlIfNeeded_(b,c);return l.i18n.bidi.isRequiredLtrRe_.test(b)||!l.i18n.bidi.hasAnyLtr(b)&&!l.i18n.bidi.hasAnyRtl(b)};l.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+l.i18n.bidi.ltrChars_+"][^"+l.i18n.bidi.rtlChars_+"]*$");l.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+l.i18n.bidi.rtlChars_+"][^"+l.i18n.bidi.ltrChars_+"]*$");l.i18n.bidi.endsWithLtr=function(b,c){return l.i18n.bidi.ltrExitDirCheckRe_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,c))};
l.i18n.bidi.isLtrExitText=l.i18n.bidi.endsWithLtr;l.i18n.bidi.endsWithRtl=function(b,c){return l.i18n.bidi.rtlExitDirCheckRe_.test(l.i18n.bidi.stripHtmlIfNeeded_(b,c))};l.i18n.bidi.isRtlExitText=l.i18n.bidi.endsWithRtl;l.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;l.i18n.bidi.isRtlLanguage=function(b){return l.i18n.bidi.rtlLocalesRe_.test(b)};l.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
l.i18n.bidi.guardBracketInText=function(b,c){var d=(void 0===c?l.i18n.bidi.hasAnyRtl(b):c)?l.i18n.bidi.Format.RLM:l.i18n.bidi.Format.LRM;return b.replace(l.i18n.bidi.bracketGuardTextRe_,d+"$&"+d)};l.i18n.bidi.enforceRtlInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+b+"</span>"};l.i18n.bidi.enforceRtlInText=function(b){return l.i18n.bidi.Format.RLE+b+l.i18n.bidi.Format.PDF};
l.i18n.bidi.enforceLtrInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+b+"</span>"};l.i18n.bidi.enforceLtrInText=function(b){return l.i18n.bidi.Format.LRE+b+l.i18n.bidi.Format.PDF};l.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;l.i18n.bidi.leftRe_=/left/gi;l.i18n.bidi.rightRe_=/right/gi;l.i18n.bidi.tempRe_=/%%%%/g;
l.i18n.bidi.mirrorCSS=function(b){return b.replace(l.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(l.i18n.bidi.leftRe_,"%%%%").replace(l.i18n.bidi.rightRe_,l.i18n.bidi.LEFT).replace(l.i18n.bidi.tempRe_,l.i18n.bidi.RIGHT)};l.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;l.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;l.i18n.bidi.normalizeHebrewQuote=function(b){return b.replace(l.i18n.bidi.doubleQuoteSubstituteRe_,"$1\u05f4").replace(l.i18n.bidi.singleQuoteSubstituteRe_,"$1\u05f3")};
l.i18n.bidi.wordSeparatorRe_=/\s+/;l.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;l.i18n.bidi.rtlDetectionThreshold_=.4;
l.i18n.bidi.estimateDirection=function(b,c){for(var d=0,e=0,f=!1,g=l.i18n.bidi.stripHtmlIfNeeded_(b,c).split(l.i18n.bidi.wordSeparatorRe_),h=0;h<g.length;h++){var k=g[h];l.i18n.bidi.startsWithRtl(k)?(d++,e++):l.i18n.bidi.isRequiredLtrRe_.test(k)?f=!0:l.i18n.bidi.hasAnyLtr(k)?e++:l.i18n.bidi.hasNumeralsRe_.test(k)&&(f=!0)}return 0==e?f?l.i18n.bidi.Dir.LTR:l.i18n.bidi.Dir.NEUTRAL:d/e>l.i18n.bidi.rtlDetectionThreshold_?l.i18n.bidi.Dir.RTL:l.i18n.bidi.Dir.LTR};
l.i18n.bidi.detectRtlDirectionality=function(b,c){return l.i18n.bidi.estimateDirection(b,c)==l.i18n.bidi.Dir.RTL};l.i18n.bidi.setElementDirAndAlign=function(b,c){b&&(c=l.i18n.bidi.toDir(c))&&(b.style.textAlign=c==l.i18n.bidi.Dir.RTL?l.i18n.bidi.RIGHT:l.i18n.bidi.LEFT,b.dir=c==l.i18n.bidi.Dir.RTL?"rtl":"ltr")};l.i18n.bidi.setElementDirByTextDirectionality=function(b,c){switch(l.i18n.bidi.estimateDirection(c)){case l.i18n.bidi.Dir.LTR:b.dir="ltr";break;case l.i18n.bidi.Dir.RTL:b.dir="rtl";break;default:b.removeAttribute("dir")}};
l.i18n.bidi.DirectionalString=function(){};l.string.TypedString=function(){};l.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=l.string.Const.TYPE_MARKER_};l.string.Const.prototype.implementsGoogStringTypedString=!0;l.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
l.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};l.string.Const.unwrap=function(b){if(b instanceof l.string.Const&&b.constructor===l.string.Const&&b.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===l.string.Const.TYPE_MARKER_)return b.stringConstValueWithSecurityContract__googStringSecurityPrivate_;l.asserts.fail("expected object of type Const, got '"+b+"'");return"type_error:Const"};
l.string.Const.from=function(b){return l.string.Const.create__googStringSecurityPrivate_(b)};l.string.Const.TYPE_MARKER_={};l.string.Const.create__googStringSecurityPrivate_=function(b){var c=new l.string.Const;c.stringConstValueWithSecurityContract__googStringSecurityPrivate_=b;return c};l.html={};l.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};l.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;l.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
l.html.SafeStyle.fromConstant=function(b){b=l.string.Const.unwrap(b);if(0===b.length)return l.html.SafeStyle.EMPTY;l.html.SafeStyle.checkStyle_(b);l.asserts.assert(l.string.endsWith(b,";"),"Last character of style string is not ';': "+b);l.asserts.assert(l.string.contains(b,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+b);return l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
l.html.SafeStyle.checkStyle_=function(b){l.asserts.assert(!/[<>]/.test(b),"Forbidden characters in style string: "+b)};l.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};l.DEBUG&&(l.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
l.html.SafeStyle.unwrap=function(b){if(b instanceof l.html.SafeStyle&&b.constructor===l.html.SafeStyle&&b.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleWrappedValue_;l.asserts.fail("expected object of type SafeStyle, got '"+b+"' of type "+l.typeOf(b));return"type_error:SafeStyle"};l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(b){return(new l.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(b)};
l.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=b;return this};l.html.SafeStyle.EMPTY=l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");l.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
l.html.SafeStyle.create=function(b){var c="",d;for(d in b){if(!/^[-_a-zA-Z0-9]+$/.test(d))throw Error("Name allows only [-_a-zA-Z0-9], got: "+d);var e=b[d];null!=e&&(e instanceof l.string.Const?(e=l.string.Const.unwrap(e),l.asserts.assert(!/[{;}]/.test(e),"Value does not allow [{;}].")):l.html.SafeStyle.VALUE_RE_.test(e)?l.html.SafeStyle.hasBalancedQuotes_(e)||(l.asserts.fail("String value requires balanced quotes, got: "+e),e=l.html.SafeStyle.INNOCUOUS_STRING):(l.asserts.fail("String value allows only [-,.\"'%_!# a-zA-Z0-9], rgb() and rgba(), got: "+
e),e=l.html.SafeStyle.INNOCUOUS_STRING),c+=d+":"+e+";")}if(!c)return l.html.SafeStyle.EMPTY;l.html.SafeStyle.checkStyle_(c);return l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};l.html.SafeStyle.hasBalancedQuotes_=function(b){for(var c=!0,d=!0,e=0;e<b.length;e++){var f=b.charAt(e);"'"==f&&d?c=!c:'"'==f&&c&&(d=!d)}return c&&d};l.html.SafeStyle.VALUE_RE_=/^([-,."'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\([0-9.%, ]+\))$/;
l.html.SafeStyle.concat=function(b){var c="",d=function(b){l.isArray(b)?l.array.forEach(b,d):c+=l.html.SafeStyle.unwrap(b)};l.array.forEach(arguments,d);return c?l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c):l.html.SafeStyle.EMPTY};l.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};l.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;l.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
l.html.SafeStyleSheet.concat=function(b){var c="",d=function(b){l.isArray(b)?l.array.forEach(b,d):c+=l.html.SafeStyleSheet.unwrap(b)};l.array.forEach(arguments,d);return l.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};l.html.SafeStyleSheet.fromConstant=function(b){b=l.string.Const.unwrap(b);if(0===b.length)return l.html.SafeStyleSheet.EMPTY;l.asserts.assert(!l.string.contains(b,"<"),"Forbidden '<' character in style sheet string: "+b);return l.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};
l.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};l.DEBUG&&(l.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});
l.html.SafeStyleSheet.unwrap=function(b){if(b instanceof l.html.SafeStyleSheet&&b.constructor===l.html.SafeStyleSheet&&b.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;l.asserts.fail("expected object of type SafeStyleSheet, got '"+b+"' of type "+l.typeOf(b));return"type_error:SafeStyleSheet"};
l.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(b){return(new l.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(b)};l.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=b;return this};l.html.SafeStyleSheet.EMPTY=l.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");l.fs={};l.fs.url={};l.fs.url.createObjectUrl=function(b){return l.fs.url.getUrlObject_().createObjectURL(b)};l.fs.url.revokeObjectUrl=function(b){l.fs.url.getUrlObject_().revokeObjectURL(b)};l.fs.url.getUrlObject_=function(){var b=l.fs.url.findUrlObject_();if(null!=b)return b;throw Error("This browser doesn't seem to support blob URLs");};
l.fs.url.findUrlObject_=function(){return l.isDef(l.global.URL)&&l.isDef(l.global.URL.createObjectURL)?l.global.URL:l.isDef(l.global.webkitURL)&&l.isDef(l.global.webkitURL.createObjectURL)?l.global.webkitURL:l.isDef(l.global.createObjectURL)?l.global:null};l.fs.url.browserSupportsObjectUrls=function(){return null!=l.fs.url.findUrlObject_()};l.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};l.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";l.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;l.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};l.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;
l.html.SafeUrl.prototype.getDirection=function(){return l.i18n.bidi.Dir.LTR};l.DEBUG&&(l.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});
l.html.SafeUrl.unwrap=function(b){if(b instanceof l.html.SafeUrl&&b.constructor===l.html.SafeUrl&&b.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;l.asserts.fail("expected object of type SafeUrl, got '"+b+"' of type "+l.typeOf(b));return"type_error:SafeUrl"};l.html.SafeUrl.fromConstant=function(b){return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(l.string.Const.unwrap(b))};
l.html.SAFE_MIME_TYPE_PATTERN_=/^(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm))$/i;l.html.SafeUrl.fromBlob=function(b){b=l.html.SAFE_MIME_TYPE_PATTERN_.test(b.type)?l.fs.url.createObjectUrl(b):l.html.SafeUrl.INNOCUOUS_STRING;return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};l.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i;
l.html.SafeUrl.fromDataUrl=function(b){var c=b.match(l.html.DATA_URL_PATTERN_),c=c&&l.html.SAFE_MIME_TYPE_PATTERN_.test(c[1]);return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c?b:l.html.SafeUrl.INNOCUOUS_STRING)};l.html.SafeUrl.fromTelUrl=function(b){l.string.caseInsensitiveStartsWith(b)||(b=l.html.SafeUrl.INNOCUOUS_STRING);return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};l.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i;
l.html.SafeUrl.sanitize=function(b){if(b instanceof l.html.SafeUrl)return b;b=b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);l.html.SAFE_URL_PATTERN_.test(b)||(b=l.html.SafeUrl.INNOCUOUS_STRING);return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};l.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new l.html.SafeUrl;c.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;return c};
l.html.SafeUrl.ABOUT_BLANK=l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");l.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};l.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;l.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};
l.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;l.html.TrustedResourceUrl.prototype.getDirection=function(){return l.i18n.bidi.Dir.LTR};l.DEBUG&&(l.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
l.html.TrustedResourceUrl.unwrap=function(b){if(b instanceof l.html.TrustedResourceUrl&&b.constructor===l.html.TrustedResourceUrl&&b.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;l.asserts.fail("expected object of type TrustedResourceUrl, got '"+b+"' of type "+l.typeOf(b));return"type_error:TrustedResourceUrl"};l.html.TrustedResourceUrl.fromConstant=function(b){return l.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(l.string.Const.unwrap(b))};
l.html.TrustedResourceUrl.fromConstants=function(b){for(var c="",d=0;d<b.length;d++)c+=l.string.Const.unwrap(b[d]);return l.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};l.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};l.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new l.html.TrustedResourceUrl;c.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=b;return c};l.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};l.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;l.html.SafeHtml.prototype.getDirection=function(){return this.dir_};l.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;l.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};
l.DEBUG&&(l.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});l.html.SafeHtml.unwrap=function(b){if(b instanceof l.html.SafeHtml&&b.constructor===l.html.SafeHtml&&b.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;l.asserts.fail("expected object of type SafeHtml, got '"+b+"' of type "+l.typeOf(b));return"type_error:SafeHtml"};
l.html.SafeHtml.htmlEscape=function(b){if(b instanceof l.html.SafeHtml)return b;var c=null;b.implementsGoogI18nBidiDirectionalString&&(c=b.getDirection());return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(l.string.htmlEscape(b.implementsGoogStringTypedString?b.getTypedStringValue():String(b)),c)};
l.html.SafeHtml.htmlEscapePreservingNewlines=function(b){if(b instanceof l.html.SafeHtml)return b;b=l.html.SafeHtml.htmlEscape(b);return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(l.string.newLineToBr(l.html.SafeHtml.unwrap(b)),b.getDirection())};
l.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(b){if(b instanceof l.html.SafeHtml)return b;b=l.html.SafeHtml.htmlEscape(b);return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(l.string.whitespaceEscape(l.html.SafeHtml.unwrap(b)),b.getDirection())};l.html.SafeHtml.from=l.html.SafeHtml.htmlEscape;l.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;l.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};
l.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_=l.object.createSet(l.dom.TagName.APPLET,l.dom.TagName.BASE,l.dom.TagName.EMBED,l.dom.TagName.IFRAME,l.dom.TagName.LINK,l.dom.TagName.MATH,l.dom.TagName.META,l.dom.TagName.OBJECT,l.dom.TagName.SCRIPT,l.dom.TagName.STYLE,l.dom.TagName.SVG,l.dom.TagName.TEMPLATE);l.html.SafeHtml.create=function(b,c,d){l.html.SafeHtml.verifyTagName(b);return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(b,c,d)};
l.html.SafeHtml.verifyTagName=function(b){if(!l.html.SafeHtml.VALID_NAMES_IN_TAG_.test(b))throw Error("Invalid tag name <"+b+">.");if(b.toUpperCase()in l.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+b+"> is not allowed for SafeHtml.");};
l.html.SafeHtml.createIframe=function(b,c,d,e){b&&l.html.TrustedResourceUrl.unwrap(b);var f={};f.src=b||null;f.srcdoc=c&&l.html.SafeHtml.unwrap(c);b=l.html.SafeHtml.combineAttributes(f,{sandbox:""},d);return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};
l.html.SafeHtml.createSandboxIframe=function(b,c,d,e){if(!l.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var f={};f.src=b?l.html.SafeUrl.unwrap(l.html.SafeUrl.sanitize(b)):null;f.srcdoc=c||null;f.sandbox="";b=l.html.SafeHtml.combineAttributes(f,{},d);return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};l.html.SafeHtml.canUseSandboxIframe=function(){return l.global.HTMLIFrameElement&&"sandbox"in l.global.HTMLIFrameElement.prototype};
l.html.SafeHtml.createScriptSrc=function(b,c){l.html.TrustedResourceUrl.unwrap(b);var d=l.html.SafeHtml.combineAttributes({src:b},{},c);return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",d)};
l.html.SafeHtml.createStyle=function(b,c){var d=l.html.SafeHtml.combineAttributes({type:"text/css"},{},c),e="";b=l.array.concat(b);for(var f=0;f<b.length;f++)e+=l.html.SafeStyleSheet.unwrap(b[f]);e=l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,l.i18n.bidi.Dir.NEUTRAL);return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",d,e)};
l.html.SafeHtml.createMetaRefresh=function(b,c){var d=l.html.SafeUrl.unwrap(l.html.SafeUrl.sanitize(b));(l.labs.userAgent.browser.isIE()||l.labs.userAgent.browser.isEdge())&&l.string.contains(d,";")&&(d="'"+d.replace(/'/g,"%27")+"'");return l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(c||0)+"; url="+d})};
l.html.SafeHtml.getAttrNameAndValue_=function(b,c,d){if(d instanceof l.string.Const)d=l.string.Const.unwrap(d);else if("style"==c.toLowerCase())d=l.html.SafeHtml.getStyleValue_(d);else{if(/^on/i.test(c))throw Error('Attribute "'+c+'" requires goog.string.Const value, "'+d+'" given.');if(c.toLowerCase()in l.html.SafeHtml.URL_ATTRIBUTES_)if(d instanceof l.html.TrustedResourceUrl)d=l.html.TrustedResourceUrl.unwrap(d);else if(d instanceof l.html.SafeUrl)d=l.html.SafeUrl.unwrap(d);else if(l.isString(d))d=
l.html.SafeUrl.sanitize(d).getTypedStringValue();else throw Error('Attribute "'+c+'" on tag "'+b+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+d+'" given.');}d.implementsGoogStringTypedString&&(d=d.getTypedStringValue());l.asserts.assert(l.isString(d)||l.isNumber(d),"String or number value expected, got "+typeof d+" with value: "+d);return c+'="'+l.string.htmlEscape(String(d))+'"'};
l.html.SafeHtml.getStyleValue_=function(b){if(!l.isObject(b))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof b+" given: "+b);b instanceof l.html.SafeStyle||(b=l.html.SafeStyle.create(b));return l.html.SafeStyle.unwrap(b)};l.html.SafeHtml.createWithDir=function(b,c,d,e){c=l.html.SafeHtml.create(c,d,e);c.dir_=b;return c};
l.html.SafeHtml.concat=function(b){var c=l.i18n.bidi.Dir.NEUTRAL,d="",e=function(b){l.isArray(b)?l.array.forEach(b,e):(b=l.html.SafeHtml.htmlEscape(b),d+=l.html.SafeHtml.unwrap(b),b=b.getDirection(),c==l.i18n.bidi.Dir.NEUTRAL?c=b:b!=l.i18n.bidi.Dir.NEUTRAL&&c!=b&&(c=null))};l.array.forEach(arguments,e);return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,c)};l.html.SafeHtml.concatWithDir=function(b,c){var d=l.html.SafeHtml.concat(l.array.slice(arguments,1));d.dir_=b;return d};
l.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(b,c){return(new l.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(b,c)};l.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b,c){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;this.dir_=c;return this};
l.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(b,c,d){var e=null,f;f="<"+b+l.html.SafeHtml.stringifyAttributes(b,c);l.isDefAndNotNull(d)?l.isArray(d)||(d=[d]):d=[];l.dom.tags.isVoidTag(b.toLowerCase())?(l.asserts.assert(!d.length,"Void tag <"+b+"> does not allow content."),f+=">"):(e=l.html.SafeHtml.concat(d),f+=">"+l.html.SafeHtml.unwrap(e)+"</"+b+">",e=e.getDirection());(b=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(b)?l.i18n.bidi.Dir.NEUTRAL:null);return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(f,
e)};l.html.SafeHtml.stringifyAttributes=function(b,c){var d="";if(c)for(var e in c){if(!l.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error('Invalid attribute name "'+e+'".');var f=c[e];l.isDefAndNotNull(f)&&(d+=" "+l.html.SafeHtml.getAttrNameAndValue_(b,e,f))}return d};
l.html.SafeHtml.combineAttributes=function(b,c,d){var e={},f;for(f in b)l.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=b[f];for(f in c)l.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=c[f];for(f in d){var g=f.toLowerCase();if(g in b)throw Error('Cannot override "'+g+'" attribute, got "'+f+'" with value "'+d[f]+'"');g in c&&delete e[g];e[f]=d[f]}return e};l.html.SafeHtml.DOCTYPE_HTML=l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",l.i18n.bidi.Dir.NEUTRAL);
l.html.SafeHtml.EMPTY=l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",l.i18n.bidi.Dir.NEUTRAL);l.html.SafeHtml.BR=l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",l.i18n.bidi.Dir.NEUTRAL);l.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=l.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};l.html.SafeScript.prototype.implementsGoogStringTypedString=!0;l.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};l.html.SafeScript.fromConstant=function(b){b=l.string.Const.unwrap(b);return 0===b.length?l.html.SafeScript.EMPTY:l.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};
l.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};l.DEBUG&&(l.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});
l.html.SafeScript.unwrap=function(b){if(b instanceof l.html.SafeScript&&b.constructor===l.html.SafeScript&&b.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===l.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeScriptWrappedValue_;l.asserts.fail("expected object of type SafeScript, got '"+b+"' of type "+l.typeOf(b));return"type_error:SafeScript"};l.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(b){return(new l.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(b)};
l.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=b;return this};l.html.SafeScript.EMPTY=l.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");l.html.uncheckedconversions={};l.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(b,c,d){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmptyOrWhitespace(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,d||null)};
l.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(b,c){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmpty(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(c)};
l.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(b,c){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmptyOrWhitespace(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
l.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(b,c){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmptyOrWhitespace(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
l.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(b,c){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmptyOrWhitespace(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)};
l.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(b,c){l.asserts.assertString(l.string.Const.unwrap(b),"must provide justification");l.asserts.assert(!l.string.isEmptyOrWhitespace(l.string.Const.unwrap(b)),"must provide non-empty justification");return l.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};l.structs.Collection=function(){};l.structs.Set=function(b){this.map_=new l.structs.Map;b&&this.addAll(b)};l.structs.Set.getKey_=function(b){var c=typeof b;return"object"==c&&b||"function"==c?"o"+l.getUid(b):c.substr(0,1)+b};a=l.structs.Set.prototype;a.getCount=function(){return this.map_.getCount()};a.add=function(b){this.map_.set(l.structs.Set.getKey_(b),b)};a.addAll=function(b){b=l.structs.getValues(b);for(var c=b.length,d=0;d<c;d++)this.add(b[d])};a.removeAll=function(b){b=l.structs.getValues(b);for(var c=b.length,d=0;d<c;d++)this.remove(b[d])};
a.remove=function(b){return this.map_.remove(l.structs.Set.getKey_(b))};a.clear=function(){this.map_.clear()};a.isEmpty=function(){return this.map_.isEmpty()};a.contains=function(b){return this.map_.containsKey(l.structs.Set.getKey_(b))};a.getValues=function(){return this.map_.getValues()};a.clone=function(){return new l.structs.Set(this)};a.equals=function(b){return this.getCount()==l.structs.getCount(b)&&ha(this,b)};
var ha=function(b,c){var d=l.structs.getCount(c);if(b.getCount()>d)return!1;!(c instanceof l.structs.Set)&&5<d&&(c=new l.structs.Set(c));return l.structs.every(b,function(b){return l.structs.contains(c,b)})};l.structs.Set.prototype.__iterator__=function(){return this.map_.__iterator__(!1)};l.debug.LOGGING_ENABLED=l.DEBUG;l.debug.FORCE_SLOPPY_STACKS=!1;l.debug.catchErrors=function(b,c,d){d=d||l.global;var e=d.onerror,f=!!c;l.userAgent.WEBKIT&&!l.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(c,d,k,m,p){e&&e(c,d,k,m,p);b({message:c,fileName:d,line:k,col:m,error:p});return f}};l.debug.expose=function(b,c){if("undefined"==typeof b)return"undefined";if(null==b)return"NULL";var d=[],e;for(e in b)if(c||!l.isFunction(b[e])){var f=e+" = ";try{f+=b[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
l.debug.deepExpose=function(b,c){var d=[],e=function(b,g,h){var k=g+"  ";h=new l.structs.Set(h);try{if(l.isDef(b))if(l.isNull(b))d.push("NULL");else if(l.isString(b))d.push('"'+b.replace(/\n/g,"\n"+g)+'"');else if(l.isFunction(b))d.push(String(b).replace(/\n/g,"\n"+g));else if(l.isObject(b))if(h.contains(b))d.push("*** reference loop detected ***");else{h.add(b);d.push("{");for(var m in b)if(c||!l.isFunction(b[m]))d.push("\n"),d.push(k),d.push(m+" = "),e(b[m],k,h);d.push("\n"+g+"}")}else d.push(b);
else d.push("undefined")}catch(p){d.push("*** "+p+" ***")}};e(b,"",new l.structs.Set);return d.join("")};l.debug.exposeArray=function(b){for(var c=[],d=0;d<b.length;d++)l.isArray(b[d])?c.push(l.debug.exposeArray(b[d])):c.push(b[d]);return"[ "+c.join(", ")+" ]"};l.debug.exposeException=function(b,c){var d=l.debug.exposeExceptionAsHtml(b,c);return l.html.SafeHtml.unwrap(d)};
l.debug.exposeExceptionAsHtml=function(b,c){try{var d=l.debug.normalizeErrorObject(b),e=l.debug.createViewSourceUrl_(d.fileName);return l.html.SafeHtml.concat(l.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Message: "+d.message+"\nUrl: "),l.html.SafeHtml.create("a",{href:e,target:"_new"},d.fileName),l.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("\nLine: "+d.lineNumber+"\n\nBrowser stack:\n"+d.stack+"-> [end]\n\nJS stack traversal:\n"+l.debug.getStacktrace(c)+"-> "))}catch(f){return l.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Exception trying to expose exception! You win, we lose. "+
f)}};l.debug.createViewSourceUrl_=function(b){l.isDefAndNotNull(b)||(b="");if(!/^https?:\/\//i.test(b))return l.html.SafeUrl.fromConstant(l.string.Const.from("sanitizedviewsrc"));b=l.html.SafeUrl.sanitize(b);return l.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(l.string.Const.from("view-source scheme plus HTTP/HTTPS URL"),"view-source:"+l.html.SafeUrl.unwrap(b))};
l.debug.normalizeErrorObject=function(b){var c=l.getObjectByName("window.location.href");if(l.isString(b))return{message:b,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d,e,f=!1;try{d=b.lineNumber||b.line||"Not available"}catch(g){d="Not available",f=!0}try{e=b.fileName||b.filename||b.sourceURL||l.global.$googDebugFname||c}catch(g){e="Not available",f=!0}return!f&&b.lineNumber&&b.fileName&&b.stack&&b.message&&b.name?b:{message:b.message||"Not available",name:b.name||
"UnknownError",lineNumber:d,fileName:e,stack:b.stack||"Not available"}};l.debug.enhanceError=function(b,c){var d;"string"==typeof b?(d=Error(b),Error.captureStackTrace&&Error.captureStackTrace(d,l.debug.enhanceError)):d=b;d.stack||(d.stack=l.debug.getStacktrace(l.debug.enhanceError));if(c){for(var e=0;d["message"+e];)++e;d["message"+e]=String(c)}return d};
l.debug.getStacktraceSimple=function(b){if(!l.debug.FORCE_SLOPPY_STACKS){var c=l.debug.getNativeStackTrace_(l.debug.getStacktraceSimple);if(c)return c}for(var c=[],d=arguments.callee.caller,e=0;d&&(!b||e<b);){c.push(l.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=l.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}b&&e>=b?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
l.debug.MAX_STACK_DEPTH=50;l.debug.getNativeStackTrace_=function(b){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,b),String(c.stack);try{throw c;}catch(d){c=d}return(b=c.stack)?String(b):null};l.debug.getStacktrace=function(b){var c;l.debug.FORCE_SLOPPY_STACKS||(c=l.debug.getNativeStackTrace_(b||l.debug.getStacktrace));c||(c=l.debug.getStacktraceHelper_(b||arguments.callee.caller,[]));return c};
l.debug.getStacktraceHelper_=function(b,c){var d=[];if(l.array.contains(c,b))d.push("[...circular reference...]");else if(b&&c.length<l.debug.MAX_STACK_DEPTH){d.push(l.debug.getFunctionName(b)+"(");for(var e=b.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g;g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=l.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(b);d.push(")\n");try{d.push(l.debug.getStacktraceHelper_(b.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else b?d.push("[...long stack...]"):d.push("[end]");return d.join("")};l.debug.setFunctionResolver=function(b){l.debug.fnNameResolver_=b};
l.debug.getFunctionName=function(b){if(l.debug.fnNameCache_[b])return l.debug.fnNameCache_[b];if(l.debug.fnNameResolver_){var c=l.debug.fnNameResolver_(b);if(c)return l.debug.fnNameCache_[b]=c}b=String(b);l.debug.fnNameCache_[b]||(c=/function ([^\(]+)/.exec(b),l.debug.fnNameCache_[b]=c?c[1]:"[Anonymous]");return l.debug.fnNameCache_[b]};l.debug.makeWhitespaceVisible=function(b){return b.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};
l.debug.runtimeType=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};l.debug.fnNameCache_={};l.debug.LogRecord=function(b,c,d,e,f){this.reset(b,c,d,e,f)};l.debug.LogRecord.prototype.exception_=null;l.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;l.debug.LogRecord.nextSequenceNumber_=0;l.debug.LogRecord.prototype.reset=function(b,c,d,e,f){l.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||l.debug.LogRecord.nextSequenceNumber_++);e||l.now();this.level_=b;this.msg_=c;delete this.exception_};l.debug.LogRecord.prototype.setLevel=function(b){this.level_=b};
l.debug.LogRecord.prototype.getMessage=function(){return this.msg_};l.debug.LogBuffer=function(){l.asserts.assert(l.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};l.debug.LogBuffer.getInstance=function(){l.debug.LogBuffer.instance_||(l.debug.LogBuffer.instance_=new l.debug.LogBuffer);return l.debug.LogBuffer.instance_};l.debug.LogBuffer.CAPACITY=0;l.debug.LogBuffer.isBufferingEnabled=function(){return 0<l.debug.LogBuffer.CAPACITY};
l.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(l.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};l.debug.Logger=function(b){this.name_=b;this.handlers_=this.children_=this.level_=this.parent_=null};l.debug.Logger.ROOT_LOGGER_NAME="";l.debug.Logger.ENABLE_HIERARCHY=!0;l.debug.Logger.ENABLE_HIERARCHY||(l.debug.Logger.rootHandlers_=[]);l.debug.Logger.Level=function(b,c){this.name=b;this.value=c};l.debug.Logger.Level.prototype.toString=function(){return this.name};l.debug.Logger.Level.OFF=new l.debug.Logger.Level("OFF",Infinity);l.debug.Logger.Level.SHOUT=new l.debug.Logger.Level("SHOUT",1200);
l.debug.Logger.Level.SEVERE=new l.debug.Logger.Level("SEVERE",1E3);l.debug.Logger.Level.WARNING=new l.debug.Logger.Level("WARNING",900);l.debug.Logger.Level.INFO=new l.debug.Logger.Level("INFO",800);l.debug.Logger.Level.CONFIG=new l.debug.Logger.Level("CONFIG",700);l.debug.Logger.Level.FINE=new l.debug.Logger.Level("FINE",500);l.debug.Logger.Level.FINER=new l.debug.Logger.Level("FINER",400);l.debug.Logger.Level.FINEST=new l.debug.Logger.Level("FINEST",300);
l.debug.Logger.Level.ALL=new l.debug.Logger.Level("ALL",0);l.debug.Logger.Level.PREDEFINED_LEVELS=[l.debug.Logger.Level.OFF,l.debug.Logger.Level.SHOUT,l.debug.Logger.Level.SEVERE,l.debug.Logger.Level.WARNING,l.debug.Logger.Level.INFO,l.debug.Logger.Level.CONFIG,l.debug.Logger.Level.FINE,l.debug.Logger.Level.FINER,l.debug.Logger.Level.FINEST,l.debug.Logger.Level.ALL];l.debug.Logger.Level.predefinedLevelsCache_=null;
l.debug.Logger.Level.createPredefinedLevelsCache_=function(){l.debug.Logger.Level.predefinedLevelsCache_={};for(var b=0,c;c=l.debug.Logger.Level.PREDEFINED_LEVELS[b];b++)l.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,l.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};l.debug.Logger.Level.getPredefinedLevel=function(b){l.debug.Logger.Level.predefinedLevelsCache_||l.debug.Logger.Level.createPredefinedLevelsCache_();return l.debug.Logger.Level.predefinedLevelsCache_[b]||null};
l.debug.Logger.Level.getPredefinedLevelByValue=function(b){l.debug.Logger.Level.predefinedLevelsCache_||l.debug.Logger.Level.createPredefinedLevelsCache_();if(b in l.debug.Logger.Level.predefinedLevelsCache_)return l.debug.Logger.Level.predefinedLevelsCache_[b];for(var c=0;c<l.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=l.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=b)return d}return null};l.debug.Logger.getLogger=function(b){return l.debug.LogManager.getLogger(b)};
l.debug.Logger.logToProfilers=function(b){l.global.console&&(l.global.console.timeStamp?l.global.console.timeStamp(b):l.global.console.markTimeline&&l.global.console.markTimeline(b));l.global.msWriteProfilerMark&&l.global.msWriteProfilerMark(b)};a=l.debug.Logger.prototype;
a.addHandler=function(b){l.debug.LOGGING_ENABLED&&(l.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(b)):(l.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),l.debug.Logger.rootHandlers_.push(b)))};a.removeHandler=function(b){if(l.debug.LOGGING_ENABLED){var c=l.debug.Logger.ENABLE_HIERARCHY?this.handlers_:l.debug.Logger.rootHandlers_;return!!c&&l.array.remove(c,b)}return!1};
a.getParent=function(){return this.parent_};a.getChildren=function(){this.children_||(this.children_={});return this.children_};a.setLevel=function(b){l.debug.LOGGING_ENABLED&&(l.debug.Logger.ENABLE_HIERARCHY?this.level_=b:(l.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),l.debug.Logger.rootLevel_=b))};
var P=function(b){if(!l.debug.LOGGING_ENABLED)return l.debug.Logger.Level.OFF;if(!l.debug.Logger.ENABLE_HIERARCHY)return l.debug.Logger.rootLevel_;if(b.level_)return b.level_;if(b.parent_)return P(b.parent_);l.asserts.fail("Root logger has no level set.");return null};
l.debug.Logger.prototype.log=function(b,c,d){if(l.debug.LOGGING_ENABLED&&l.debug.LOGGING_ENABLED&&b.value>=P(this).value){l.isFunction(c)&&(c=c());if(l.debug.LogBuffer.isBufferingEnabled()){var e=l.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%l.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(b,c,f),b=e):(e.isFull_=g==l.debug.LogBuffer.CAPACITY-1,b=e.buffer_[g]=new l.debug.LogRecord(b,c,f))}else b=new l.debug.LogRecord(b,String(c),this.name_);d&&(b.exception_=
d);l.debug.Logger.logToProfilers("log:"+b.getMessage());if(l.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){c=d;f=b;if(c.handlers_)for(e=0,g=void 0;g=c.handlers_[e];e++)g(f);d=d.getParent()}else for(d=0;c=l.debug.Logger.rootHandlers_[d++];)c(b)}};l.debug.Logger.prototype.warning=function(b,c){l.debug.LOGGING_ENABLED&&this.log(l.debug.Logger.Level.WARNING,b,c)};l.debug.Logger.prototype.info=function(b,c){l.debug.LOGGING_ENABLED&&this.log(l.debug.Logger.Level.INFO,b,c)};
l.debug.Logger.prototype.fine=function(b,c){l.debug.LOGGING_ENABLED&&this.log(l.debug.Logger.Level.FINE,b,c)};l.debug.LogManager={};l.debug.LogManager.loggers_={};l.debug.LogManager.rootLogger_=null;l.debug.LogManager.initialize=function(){l.debug.LogManager.rootLogger_||(l.debug.LogManager.rootLogger_=new l.debug.Logger(l.debug.Logger.ROOT_LOGGER_NAME),l.debug.LogManager.loggers_[l.debug.Logger.ROOT_LOGGER_NAME]=l.debug.LogManager.rootLogger_,l.debug.LogManager.rootLogger_.setLevel(l.debug.Logger.Level.CONFIG))};
l.debug.LogManager.getLoggers=function(){return l.debug.LogManager.loggers_};l.debug.LogManager.getRoot=function(){l.debug.LogManager.initialize();return l.debug.LogManager.rootLogger_};l.debug.LogManager.getLogger=function(b){l.debug.LogManager.initialize();return l.debug.LogManager.loggers_[b]||l.debug.LogManager.createLogger_(b)};
l.debug.LogManager.createFunctionForCatchErrors=function(b){return function(c){var d=b||l.debug.LogManager.getRoot();l.debug.LOGGING_ENABLED&&d.log(l.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
l.debug.LogManager.createLogger_=function(b){var c=new l.debug.Logger(b);if(l.debug.Logger.ENABLE_HIERARCHY){var d=b.lastIndexOf("."),e=b.substr(d+1),d=l.debug.LogManager.getLogger(b.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return l.debug.LogManager.loggers_[b]=c};l.log={};l.log.ENABLED=l.debug.LOGGING_ENABLED;l.log.ROOT_LOGGER_NAME=l.debug.Logger.ROOT_LOGGER_NAME;l.log.Logger=l.debug.Logger;l.log.Level=l.debug.Logger.Level;l.log.LogRecord=l.debug.LogRecord;l.log.getLogger=function(b,c){if(l.log.ENABLED){var d=l.debug.LogManager.getLogger(b);c&&d&&d.setLevel(c);return d}return null};l.log.addHandler=function(b,c){l.log.ENABLED&&b&&b.addHandler(c)};l.log.removeHandler=function(b,c){return l.log.ENABLED&&b?b.removeHandler(c):!1};
l.log.log=function(b,c,d,e){l.log.ENABLED&&b&&b.log(c,d,e)};l.log.error=function(b,c,d){l.log.ENABLED&&b&&l.debug.LOGGING_ENABLED&&b.log(l.debug.Logger.Level.SEVERE,c,d)};l.log.warning=function(b,c,d){l.log.ENABLED&&b&&b.warning(c,d)};l.log.info=function(b,c,d){l.log.ENABLED&&b&&b.info(c,d)};l.log.fine=function(b,c,d){l.log.ENABLED&&b&&b.fine(c,d)};l.async={};l.async.FreeList=function(b,c,d){this.limit_=d;this.create_=b;this.reset_=c;this.occupants_=0;this.head_=null};l.async.FreeList.prototype.get=function(){var b;0<this.occupants_?(this.occupants_--,b=this.head_,this.head_=b.next,b.next=null):b=this.create_();return b};l.async.FreeList.prototype.put=function(b){this.reset_(b);this.occupants_<this.limit_&&(this.occupants_++,b.next=this.head_,this.head_=b)};l.async.throwException=function(b){l.global.setTimeout(function(){throw b;},0)};l.async.nextTick=function(b,c,d){var e=b;c&&(e=l.bind(b,c));e=l.async.nextTick.wrapCallback_(e);l.isFunction(l.global.setImmediate)&&(d||l.async.nextTick.useSetImmediate_())?l.global.setImmediate(e):(l.async.nextTick.setImmediate_||(l.async.nextTick.setImmediate_=l.async.nextTick.getSetImmediateEmulator_()),l.async.nextTick.setImmediate_(e))};
l.async.nextTick.useSetImmediate_=function(){return l.global.Window&&l.global.Window.prototype&&!l.labs.userAgent.browser.isEdge()&&l.global.Window.prototype.setImmediate==l.global.setImmediate?!1:!0};
l.async.nextTick.getSetImmediateEmulator_=function(){var b=l.global.MessageChannel;"undefined"===typeof b&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!l.labs.userAgent.engine.isPresto()&&(b=function(){var b=document.createElement(l.dom.TagName.IFRAME);b.style.display="none";b.src="";document.documentElement.appendChild(b);var c=b.contentWindow,b=c.document;b.open();b.write("");b.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+
"//"+c.location.host,b=l.bind(function(b){if(("*"==e||b.origin==e)&&b.data==d)this.port1.onmessage()},this);c.addEventListener("message",b,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof b&&!l.labs.userAgent.browser.isIE()){var c=new b,d={},e=d;c.port1.onmessage=function(){if(l.isDef(d.next)){d=d.next;var b=d.cb;d.cb=null;b()}};return function(b){e.next={cb:b};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
document.createElement(l.dom.TagName.SCRIPT)?function(b){var c=document.createElement(l.dom.TagName.SCRIPT);c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;b();b=null};document.documentElement.appendChild(c)}:function(b){l.global.setTimeout(b,0)}};l.async.nextTick.wrapCallback_=l.functions.identity;l.debug.entryPointRegistry.register(function(b){l.async.nextTick.wrapCallback_=b});l.async.WorkQueue=function(){this.workTail_=this.workHead_=null};l.async.WorkQueue.DEFAULT_MAX_UNUSED=100;l.async.WorkQueue.freelist_=new l.async.FreeList(function(){return new l.async.WorkItem},function(b){b.reset()},l.async.WorkQueue.DEFAULT_MAX_UNUSED);l.async.WorkQueue.prototype.add=function(b,c){var d=l.async.WorkQueue.freelist_.get();d.set(b,c);this.workTail_?this.workTail_.next=d:(l.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
l.async.WorkQueue.prototype.remove=function(){var b=null;this.workHead_&&(b=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),b.next=null);return b};l.async.WorkItem=function(){this.next=this.scope=this.fn=null};l.async.WorkItem.prototype.set=function(b,c){this.fn=b;this.scope=c;this.next=null};l.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};l.async.run=function(b,c){l.async.run.schedule_||l.async.run.initializeRunner_();l.async.run.workQueueScheduled_||(l.async.run.schedule_(),l.async.run.workQueueScheduled_=!0);l.async.run.workQueue_.add(b,c)};l.async.run.initializeRunner_=function(){if(l.global.Promise&&l.global.Promise.resolve){var b=l.global.Promise.resolve(void 0);l.async.run.schedule_=function(){b.then(l.async.run.processWorkQueue)}}else l.async.run.schedule_=function(){l.async.nextTick(l.async.run.processWorkQueue)}};
l.async.run.forceNextTick=function(b){l.async.run.schedule_=function(){l.async.nextTick(l.async.run.processWorkQueue);b&&b(l.async.run.processWorkQueue)}};l.async.run.workQueueScheduled_=!1;l.async.run.workQueue_=new l.async.WorkQueue;l.DEBUG&&(l.async.run.resetQueue=function(){l.async.run.workQueueScheduled_=!1;l.async.run.workQueue_=new l.async.WorkQueue});
l.async.run.processWorkQueue=function(){for(var b=null;b=l.async.run.workQueue_.remove();){try{b.fn.call(b.scope)}catch(c){l.async.throwException(c)}l.async.WorkQueue.freelist_.put(b)}l.async.run.workQueueScheduled_=!1};l.promise={};l.promise.Resolver=function(){};l.Thenable=function(){};l.Thenable.prototype.then=function(){};l.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";l.Thenable.addImplementation=function(b){l.exportProperty(b.prototype,b.prototype.then);b.prototype[l.Thenable.IMPLEMENTED_BY_PROP]=!0};l.Thenable.isImplementedBy=function(b){if(!b)return!1;try{return!!b[l.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};l.Promise=function(b,c){this.state_=l.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<l.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==l.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);l.Promise.LONG_STACK_TRACES&&(this.stack_=[],Q(this,Error("created")),this.currentStep_=0);if(b!=l.nullFunction)try{var d=this;b.call(c,function(b){S(d,l.Promise.State_.FULFILLED,b)},function(b){if(l.DEBUG&&
!(b instanceof l.Promise.CancellationError))try{if(b instanceof Error)throw b;throw Error("Promise rejected.");}catch(c){}S(d,l.Promise.State_.REJECTED,b)})}catch(e){S(this,l.Promise.State_.REJECTED,e)}};l.Promise.LONG_STACK_TRACES=!1;l.Promise.UNHANDLED_REJECTION_DELAY=0;l.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};l.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
l.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};l.Promise.DEFAULT_MAX_UNUSED=100;l.Promise.freelist_=new l.async.FreeList(function(){return new l.Promise.CallbackEntry_},function(b){b.reset()},l.Promise.DEFAULT_MAX_UNUSED);l.Promise.getCallbackEntry_=function(b,c,d){var e=l.Promise.freelist_.get();e.onFulfilled=b;e.onRejected=c;e.context=d;return e};l.Promise.returnEntry_=function(b){l.Promise.freelist_.put(b)};
l.Promise.resolve=function(b){if(b instanceof l.Promise)return b;var c=new l.Promise(l.nullFunction);S(c,l.Promise.State_.FULFILLED,b);return c};l.Promise.reject=function(b){return new l.Promise(function(c,d){d(b)})};l.Promise.resolveThen_=function(b,c,d){l.Promise.maybeThen_(b,c,d,null)||l.async.run(l.partial(c,b))};l.Promise.race=function(b){return new l.Promise(function(c,d){b.length||c(void 0);for(var e=0,f;e<b.length;e++)f=b[e],l.Promise.resolveThen_(f,c,d)})};
l.Promise.all=function(b){return new l.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b,d){e--;f[b]=d;0==e&&c(f)},h=function(b){d(b)},k=0,m;k<b.length;k++)m=b[k],l.Promise.resolveThen_(m,l.partial(g,k),h);else c(f)})};
l.Promise.allSettled=function(b){return new l.Promise(function(c){var d=b.length,e=[];if(d)for(var f=function(b,f,g){d--;e[b]=f?{fulfilled:!0,value:g}:{fulfilled:!1,reason:g};0==d&&c(e)},g=0,h;g<b.length;g++)h=b[g],l.Promise.resolveThen_(h,l.partial(f,g,!0),l.partial(f,g,!1));else c(e)})};
l.Promise.firstFulfilled=function(b){return new l.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b){c(b)},h=function(b,c){e--;f[b]=c;0==e&&d(f)},k=0,m;k<b.length;k++)m=b[k],l.Promise.resolveThen_(m,g,l.partial(h,k));else c(void 0)})};l.Promise.withResolver=function(){var b,c,d=new l.Promise(function(d,f){b=d;c=f});return new l.Promise.Resolver_(d,b,c)};
l.Promise.prototype.then=function(b,c,d){null!=b&&l.asserts.assertFunction(b,"opt_onFulfilled should be a function.");null!=c&&l.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");l.Promise.LONG_STACK_TRACES&&Q(this,Error("then"));return T(this,l.isFunction(b)?b:null,l.isFunction(c)?c:null,d)};l.Thenable.addImplementation(l.Promise);
var ia=function(b,c){l.Promise.LONG_STACK_TRACES&&Q(b,Error("thenCatch"));return T(b,null,c,void 0)},V=function(b,c){b.callbackEntries_||b.state_!=l.Promise.State_.FULFILLED&&b.state_!=l.Promise.State_.REJECTED||U(b);l.asserts.assert(null!=c.onFulfilled);b.callbackEntriesTail_?b.callbackEntriesTail_.next=c:b.callbackEntries_=c;b.callbackEntriesTail_=c},T=function(b,c,d,e){var f=l.Promise.getCallbackEntry_(null,null,null);f.child=new l.Promise(function(b,h){f.onFulfilled=c?function(d){try{var f=c.call(e,
d);b(f)}catch(p){h(p)}}:b;f.onRejected=d?function(c){try{var f=d.call(e,c);!l.isDef(f)&&c instanceof l.Promise.CancellationError?h(c):b(f)}catch(p){h(p)}}:h});f.child.parent_=b;V(b,f);return f.child};l.Promise.prototype.unblockAndFulfill_=function(b){l.asserts.assert(this.state_==l.Promise.State_.BLOCKED);this.state_=l.Promise.State_.PENDING;S(this,l.Promise.State_.FULFILLED,b)};
l.Promise.prototype.unblockAndReject_=function(b){l.asserts.assert(this.state_==l.Promise.State_.BLOCKED);this.state_=l.Promise.State_.PENDING;S(this,l.Promise.State_.REJECTED,b)};
var S=function(b,c,d){b.state_==l.Promise.State_.PENDING&&(b==d&&(c=l.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),b.state_=l.Promise.State_.BLOCKED,l.Promise.maybeThen_(d,b.unblockAndFulfill_,b.unblockAndReject_,b)||(b.result_=d,b.state_=c,b.parent_=null,U(b),c!=l.Promise.State_.REJECTED||d instanceof l.Promise.CancellationError||l.Promise.addUnhandledRejection_(b,d)))};
l.Promise.maybeThen_=function(b,c,d,e){if(b instanceof l.Promise)return null!=c&&l.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&l.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),l.Promise.LONG_STACK_TRACES&&Q(b,Error("then")),V(b,l.Promise.getCallbackEntry_(c||l.nullFunction,d||null,e)),!0;if(l.Thenable.isImplementedBy(b))return b.then(c,d,e),!0;if(l.isObject(b))try{var f=b.then;if(l.isFunction(f))return l.Promise.tryThen_(b,
f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};l.Promise.tryThen_=function(b,c,d,e,f){var g=!1,h=function(b){g||(g=!0,d.call(f,b))},k=function(b){g||(g=!0,e.call(f,b))};try{c.call(b,h,k)}catch(m){k(m)}};var U=function(b){b.executing_||(b.executing_=!0,l.async.run(b.executeCallbacks_,b))},ja=function(b){var c=null;b.callbackEntries_&&(c=b.callbackEntries_,b.callbackEntries_=c.next,c.next=null);b.callbackEntries_||(b.callbackEntriesTail_=null);null!=c&&l.asserts.assert(null!=c.onFulfilled);return c};
l.Promise.prototype.executeCallbacks_=function(){for(var b=null;b=ja(this);){l.Promise.LONG_STACK_TRACES&&this.currentStep_++;var c=this.state_,d=this.result_;if(c==l.Promise.State_.REJECTED&&b.onRejected&&!b.always)if(0<l.Promise.UNHANDLED_REJECTION_DELAY)for(var e=this;e&&e.unhandledRejectionId_;e=e.parent_)l.global.clearTimeout(e.unhandledRejectionId_),e.unhandledRejectionId_=0;else if(0==l.Promise.UNHANDLED_REJECTION_DELAY)for(e=this;e&&e.hadUnhandledRejection_;e=e.parent_)e.hadUnhandledRejection_=
!1;if(b.child)b.child.parent_=null,l.Promise.invokeCallback_(b,c,d);else try{b.always?b.onFulfilled.call(b.context):l.Promise.invokeCallback_(b,c,d)}catch(f){l.Promise.handleRejection_.call(null,f)}l.Promise.returnEntry_(b)}this.executing_=!1};l.Promise.invokeCallback_=function(b,c,d){c==l.Promise.State_.FULFILLED?b.onFulfilled.call(b.context,d):b.onRejected&&b.onRejected.call(b.context,d)};
var Q=function(b,c){if(l.Promise.LONG_STACK_TRACES&&l.isString(c.stack)){var d=c.stack.split("\n",4)[3],e=c.message,e=e+Array(11-e.length).join(" ");b.stack_.push(e+d)}},ka=function(b,c){if(l.Promise.LONG_STACK_TRACES&&c&&l.isString(c.stack)&&b.stack_.length){for(var d=["Promise trace:"],e=b;e;e=e.parent_){for(var f=b.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==l.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
l.Promise.addUnhandledRejection_=function(b,c){0<l.Promise.UNHANDLED_REJECTION_DELAY?b.unhandledRejectionId_=l.global.setTimeout(function(){ka(b,c);l.Promise.handleRejection_.call(null,c)},l.Promise.UNHANDLED_REJECTION_DELAY):0==l.Promise.UNHANDLED_REJECTION_DELAY&&(b.hadUnhandledRejection_=!0,l.async.run(function(){b.hadUnhandledRejection_&&(ka(b,c),l.Promise.handleRejection_.call(null,c))}))};l.Promise.handleRejection_=l.async.throwException;
l.Promise.setUnhandledRejectionHandler=function(b){l.Promise.handleRejection_=b};l.Promise.CancellationError=function(b){l.debug.Error.call(this,b)};l.inherits(l.Promise.CancellationError,l.debug.Error);l.Promise.CancellationError.prototype.name="cancel";l.Promise.Resolver_=function(b,c,d){this.promise=b;this.resolve=c;this.reject=d};l.Timer=function(b,c){l.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||l.Timer.defaultTimerObject;this.boundTick_=l.bind(this.tick_,this);this.last_=l.now()};l.inherits(l.Timer,l.events.EventTarget);l.Timer.MAX_TIMEOUT_=2147483647;l.Timer.INVALID_TIMEOUT_ID_=-1;l.Timer.prototype.enabled=!1;l.Timer.defaultTimerObject=l.global;l.Timer.intervalScale=.8;l.Timer.prototype.timer_=null;
l.Timer.prototype.tick_=function(){if(this.enabled){var b=l.now()-this.last_;0<b&&b<this.interval_*l.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(l.Timer.TICK),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=l.now()))}};
l.Timer.prototype.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};l.Timer.prototype.disposeInternal=function(){l.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};l.Timer.TICK="tick";
l.Timer.callOnce=function(b,c,d){if(l.isFunction(b))d&&(b=l.bind(b,d));else if(b&&"function"==typeof b.handleEvent)b=l.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return Number(c)>l.Timer.MAX_TIMEOUT_?l.Timer.INVALID_TIMEOUT_ID_:l.Timer.defaultTimerObject.setTimeout(b,c||0)};l.Timer.clear=function(b){l.Timer.defaultTimerObject.clearTimeout(b)};
l.Timer.promise=function(b,c){var d=null;return ia(new l.Promise(function(e,f){d=l.Timer.callOnce(function(){e(c)},b);d==l.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(b){l.Timer.clear(d);throw b;})};l.net={};l.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
l.net.ErrorCode.getDebugMessage=function(b){switch(b){case l.net.ErrorCode.NO_ERROR:return"No Error";case l.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case l.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case l.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case l.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case l.net.ErrorCode.EXCEPTION:return"An exception occurred";case l.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
case l.net.ErrorCode.ABORT:return"Request was aborted";case l.net.ErrorCode.TIMEOUT:return"Request timed out";case l.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};l.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};l.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
l.net.HttpStatus.isSuccess=function(b){switch(b){case l.net.HttpStatus.OK:case l.net.HttpStatus.CREATED:case l.net.HttpStatus.ACCEPTED:case l.net.HttpStatus.NO_CONTENT:case l.net.HttpStatus.PARTIAL_CONTENT:case l.net.HttpStatus.NOT_MODIFIED:case l.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};l.net.XhrLike=function(){};l.net.XhrLike.prototype.open=function(){};l.net.XhrLike.prototype.send=function(){};l.net.XhrLike.prototype.abort=function(){};l.net.XhrLike.prototype.setRequestHeader=function(){};l.net.XmlHttpFactory=function(){};l.net.XmlHttpFactory.prototype.cachedOptions_=null;l.net.XmlHttpFactory.prototype.getOptions=function(){var b;(b=this.cachedOptions_)||(b={},la(this)&&(b[l.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,b[l.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),b=this.cachedOptions_=b);return b};l.net.WrapperXmlHttpFactory=function(b,c){this.xhrFactory_=b;this.optionsFactory_=c};l.inherits(l.net.WrapperXmlHttpFactory,l.net.XmlHttpFactory);l.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};l.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};l.net.XmlHttp=function(){return l.net.XmlHttp.factory_.createInstance()};l.net.XmlHttp.ASSUME_NATIVE_XHR=!1;l.net.XmlHttpDefines={};l.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;l.net.XmlHttp.getOptions=function(){return l.net.XmlHttp.factory_.getOptions()};l.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};l.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
l.net.XmlHttp.setFactory=function(b,c){l.net.XmlHttp.setGlobalFactory(new l.net.WrapperXmlHttpFactory(l.asserts.assert(b),l.asserts.assert(c)))};l.net.XmlHttp.setGlobalFactory=function(b){l.net.XmlHttp.factory_=b};l.net.DefaultXmlHttpFactory=function(){};l.inherits(l.net.DefaultXmlHttpFactory,l.net.XmlHttpFactory);l.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var b=la(this);return b?new ActiveXObject(b):new XMLHttpRequest};
var la=function(b){if(l.net.XmlHttp.ASSUME_NATIVE_XHR||l.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!b.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),b.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return b.ieProgId_};l.net.XmlHttp.setGlobalFactory(new l.net.DefaultXmlHttpFactory);l.net.XhrIo=function(b){l.events.EventTarget.call(this);this.headers=new l.structs.Map;this.xmlHttpFactory_=b||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=l.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};l.inherits(l.net.XhrIo,l.events.EventTarget);
l.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};l.net.XhrIo.prototype.logger_=l.log.getLogger("goog.net.XhrIo");l.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";l.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;l.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];l.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";l.net.XhrIo.XHR2_TIMEOUT_="timeout";l.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";l.net.XhrIo.sendInstances_=[];
l.net.XhrIo.send=function(b,c,d,e,f,g,h){var k=new l.net.XhrIo;l.net.XhrIo.sendInstances_.push(k);c&&k.listen(l.net.EventType.COMPLETE,c);k.listenOnce(l.net.EventType.READY,k.cleanupSend_);g&&(k.timeoutInterval_=Math.max(0,g));h&&(k.withCredentials_=h);k.send(b,d,e,f);return k};l.net.XhrIo.cleanup=function(){for(var b=l.net.XhrIo.sendInstances_;b.length;)b.pop().dispose()};l.net.XhrIo.protectEntryPoints=function(b){l.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b.protectEntryPoint(l.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};
l.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();l.array.remove(l.net.XhrIo.sendInstances_,this)};
l.net.XhrIo.prototype.send=function(b,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+b);c=c?c.toUpperCase():"GET";this.lastUri_=b;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():l.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():l.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=l.bind(this.onReadyStateChange_,
this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=l.bind(function(b){this.onProgressHandler_(b,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=l.bind(this.onProgressHandler_,this)));try{l.log.fine(this.logger_,W(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(b),!0),this.inOpen_=!1}catch(g){l.log.fine(this.logger_,W(this,"Error opening Xhr: "+g.message));ma(this,g);return}b=d||"";var f=this.headers.clone();e&&l.structs.forEach(e,function(b,c){f.set(c,
b)});e=l.array.find(f.getKeys(),l.net.XhrIo.isContentTypeHeader_);d=l.global.FormData&&b instanceof l.global.FormData;!l.array.contains(l.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(l.net.XhrIo.CONTENT_TYPE_HEADER,l.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(b,c){this.xhr_.setRequestHeader(c,b)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);l.object.containsKey(this.xhr_,"withCredentials")&&(this.xhr_.withCredentials=this.withCredentials_);try{na(this),0<this.timeoutInterval_&&
(this.useXhr2Timeout_=l.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),l.log.fine(this.logger_,W(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[l.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[l.net.XhrIo.XHR2_ON_TIMEOUT_]=l.bind(this.timeout_,this)):this.timeoutId_=l.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),l.log.fine(this.logger_,W(this,"Sending request")),this.inSend_=!0,this.xhr_.send(b),this.inSend_=
!1}catch(g){l.log.fine(this.logger_,W(this,"Send error: "+g.message)),ma(this,g)}};l.net.XhrIo.shouldUseXhr2Timeout_=function(b){return l.userAgent.IE&&l.userAgent.isVersionOrHigher(9)&&l.isNumber(b[l.net.XhrIo.XHR2_TIMEOUT_])&&l.isDef(b[l.net.XhrIo.XHR2_ON_TIMEOUT_])};l.net.XhrIo.isContentTypeHeader_=function(b){return l.string.caseInsensitiveEquals(b)};
l.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof l&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",l.log.fine(this.logger_,W(this,this.lastError_)),this.dispatchEvent(l.net.EventType.TIMEOUT),this.abort(l.net.ErrorCode.TIMEOUT))};var ma=function(b,c){b.active_=!1;b.xhr_&&(b.inAbort_=!0,b.xhr_.abort(),b.inAbort_=!1);b.lastError_=c;oa(b);X(b)},oa=function(b){b.errorDispatched_||(b.errorDispatched_=!0,b.dispatchEvent(l.net.EventType.COMPLETE),b.dispatchEvent(l.net.EventType.ERROR))};
l.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(l.log.fine(this.logger_,W(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(l.net.EventType.COMPLETE),this.dispatchEvent(l.net.EventType.ABORT),X(this))};l.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),X(this,!0));l.net.XhrIo.superClass_.disposeInternal.call(this)};
l.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)pa(this);else this.onReadyStateChangeEntryPoint_()};l.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){pa(this)};
var pa=function(b){if(b.active_&&"undefined"!=typeof l)if(b.xhrOptions_[l.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&Y(b)==l.net.XmlHttp.ReadyState.COMPLETE&&2==Z(b))l.log.fine(b.logger_,W(b,"Local request error detected and ignored"));else if(b.inSend_&&Y(b)==l.net.XmlHttp.ReadyState.COMPLETE)l.Timer.callOnce(b.onReadyStateChange_,0,b);else if(b.dispatchEvent(l.net.EventType.READY_STATE_CHANGE),Y(b)==l.net.XmlHttp.ReadyState.COMPLETE){l.log.fine(b.logger_,W(b,"Request complete"));b.active_=!1;
try{if(b.isSuccess())b.dispatchEvent(l.net.EventType.COMPLETE),b.dispatchEvent(l.net.EventType.SUCCESS);else{var c;try{c=Y(b)>l.net.XmlHttp.ReadyState.LOADED?b.xhr_.statusText:""}catch(d){l.log.fine(b.logger_,"Can not get status: "+d.message),c=""}b.lastError_=c+" ["+Z(b)+"]";oa(b)}}finally{X(b)}}};
l.net.XhrIo.prototype.onProgressHandler_=function(b,c){l.asserts.assert(b.type===l.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(l.net.XhrIo.buildProgressEvent_(b,l.net.EventType.PROGRESS));this.dispatchEvent(l.net.XhrIo.buildProgressEvent_(b,c?l.net.EventType.DOWNLOAD_PROGRESS:l.net.EventType.UPLOAD_PROGRESS))};l.net.XhrIo.buildProgressEvent_=function(b,c){return{type:c,lengthComputable:b.lengthComputable,loaded:b.loaded,total:b.total}};
var X=function(b,c){if(b.xhr_){na(b);var d=b.xhr_,e=b.xhrOptions_[l.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?l.nullFunction:null;b.xhr_=null;b.xhrOptions_=null;c||b.dispatchEvent(l.net.EventType.READY);try{d.onreadystatechange=e}catch(f){l.log.error(b.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},na=function(b){b.xhr_&&b.useXhr2Timeout_&&(b.xhr_[l.net.XhrIo.XHR2_ON_TIMEOUT_]=null);l.isNumber(b.timeoutId_)&&(l.Timer.clear(b.timeoutId_),b.timeoutId_=null)};
l.net.XhrIo.prototype.isSuccess=function(){var b=Z(this),c;if(!(c=l.net.HttpStatus.isSuccess(b))){if(b=0===b)b=l.uri.utils.getEffectiveScheme(String(this.lastUri_)),b=!l.net.XhrIo.HTTP_SCHEME_PATTERN.test(b);c=b}return c};var Y=function(b){return b.xhr_?b.xhr_.readyState:l.net.XmlHttp.ReadyState.UNINITIALIZED},Z=function(b){try{return Y(b)>l.net.XmlHttp.ReadyState.LOADED?b.xhr_.status:-1}catch(c){return-1}},W=function(b,c){return c+" ["+b.lastMethod_+" "+b.lastUri_+" "+Z(b)+"]"};
l.debug.entryPointRegistry.register(function(b){l.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b(l.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});l.craw.AppAuthenticator=function(){};l.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";l.craw.AppBackground=function(b){this.delegate_=b;chrome.app.runtime.onLaunched.addListener(l.bind(this.launchWindow_,this,this.delegate_.getDefaultUrl()))};l.craw.AppBackground.prototype.launchWindow_=function(b){null!==b&&chrome.app.window.create("/html/craw_window.html",{id:"",bounds:this.delegate_.getWindowBounds(b),frame:"chrome",hidden:!1},function(c){c.contentWindow.crawConfig_=new l.craw.WindowConfig(b,!0)})};window.onload=function(){new l.craw.AppBackground(l.craw.AppBackgroundDelegate.createImpl())};
