/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var b,k=k||{};k.scope={};k.createTemplateTagFirstArg=function(a){return a.raw=a};k.createTemplateTagFirstArgWithRaw=function(a,c){a.raw=c;return a};k.arrayIteratorImpl=function(a){var c=0;return function(){return c=f}},"es6"); k.polyfill("String.prototype.startsWith",function(a){return a?a:function(c,d){var e=k.checkStringArgs(this,c,"startsWith");c+="";var f=e.length,g=c.length;d=Math.max(0,Math.min(d|0,e.length));for(var h=0;h=g}},"es6"); k.polyfill("String.prototype.repeat",function(a){return a?a:function(c){var d=k.checkStringArgs(this,null,"repeat");if(0>c||1342177279>>=1)d+=d;return e}},"es6");k.polyfill("String.prototype.trimLeft",function(a){function c(){return this.replace(/^[\s\xa0]+/,"")}return a||c},"es_2019");k.initSymbol=function(){}; k.polyfill("Symbol",function(a){if(a)return a;var c=function(f,g){this.$jscomp$symbol$id_=f;k.defineProperty(this,"description",{configurable:!0,writable:!0,value:g})};c.prototype.toString=function(){return this.$jscomp$symbol$id_};var d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new c("jscomp_symbol_"+(f||"")+"_"+d++,f)};return e},"es6"); k.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var c="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),d=0;d>>0);m.uidCounter_=0;m.cloneObject=function(a){var c=m.typeOf(a);if("object"==c||"array"==c){if("function"===typeof a.clone)return a.clone();c="array"==c?[]:{};for(var d in a)c[d]=m.cloneObject(a[d]);return c}return a};m.bindNative_=function(a,c,d){return a.call.apply(a.bind,arguments)}; m.bindJs_=function(a,c,d){if(!a)throw Error();if(2").replace(/'/g,"'").replace(/"/g,'"').replace(/&/g,"&"));c&&(a=a.replace(/\{\$([^}]+)}/g,function(e,f){return null!=c&&f in c?c[f]:e}));return a};m.getMsgWithFallback=function(a){return a};m.exportSymbol=function(a,c,d){m.exportPath_(a,c,!0,d)}; m.exportProperty=function(a,c,d){a[c]=d};m.inherits=function(a,c){function d(){}d.prototype=c.prototype;a.superClass_=c.prototype;a.prototype=new d;a.prototype.constructor=a;a.base=function(e,f,g){for(var h=Array(arguments.length-2),l=2;ld?Math.max(0,a.length+d):d;if("string"===typeof a)return"string"!==typeof c||1!=c.length?-1:a.indexOf(c,d);for(;dd&&(d=Math.max(0,a.length+d));if("string"===typeof a)return"string"!==typeof c||1!=c.length?-1:a.lastIndexOf(c,d);for(;0<=d;d--)if(d in a&&a[d]===c)return d;return-1};m.array.lastIndexOf=ca; var w=m.NATIVE_ARRAY_PROTOTYPES&&(u||Array.prototype.forEach)?function(a,c,d){m.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,c,d)}:function(a,c,d){for(var e=a.length,f="string"===typeof a?a.split(""):a,g=0;gc?null:"string"===typeof a?a.charAt(c):a[c]}m.array.find=ja; function ka(a,c,d){for(var e=a.length,f="string"===typeof a?a.split(""):a,g=0;gc?null:"string"===typeof a?a.charAt(c):a[c]};function la(a,c,d){var e=a.length,f="string"===typeof a?a.split(""):a;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,a))return e;return-1}m.array.findIndexRight=la;function y(a,c){return 0<=ba(a,c)}m.array.contains=y; function z(a){return 0==a.length}m.array.isEmpty=z;function ma(a){if(!Array.isArray(a))for(var c=a.length-1;0<=c;c--)delete a[c];a.length=0}m.array.clear=ma;m.array.insert=function(a,c){y(a,c)||a.push(c)};function na(a,c,d){oa(a,d,0,c)}m.array.insertAt=na;m.array.insertArrayAt=function(a,c,d){m.partial(oa,a,d,0).apply(null,c)};m.array.insertBefore=function(a,c,d){var e;2==arguments.length||0>(e=ba(a,d))?a.push(c):na(a,c,e)};function pa(a,c){c=ba(a,c);var d;(d=0<=c)&&A(a,c);return d} m.array.remove=pa;m.array.removeLast=function(a,c){c=ca(a,c);return 0<=c?(A(a,c),!0):!1};function A(a,c){m.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,c,1).length}m.array.removeAt=A;m.array.removeIf=function(a,c,d){c=ka(a,c,d);return 0<=c?(A(a,c),!0):!1};m.array.removeAllIf=function(a,c,d){var e=0;da(a,function(f,g){c.call(d,f,g,a)&&A(a,g)&&e++});return e};function B(a){return Array.prototype.concat.apply([],arguments)}m.array.concat=B; m.array.join=function(a){return Array.prototype.concat.apply([],arguments)};function C(a){var c=a.length;if(0=arguments.length?Array.prototype.slice.call(a,c):Array.prototype.slice.call(a,c,d)}m.array.slice=D; function qa(a,c,d){c=c||a;var e=function(n){return m.isObject(n)?"o"+m.getUid(n):(typeof n).charAt(0)+n};d=d||e;e={};for(var f=0,g=0;g>>1);var p=d?c.call(f,a[n],n,a):c(e,a[n]);0c?1:ad?(na(a,c,-(d+1)),!0):!1};m.array.binaryRemove=function(a,c,d){c=ra(a,c,d);return 0<=c?A(a,c):!1}; m.array.bucket=function(a,c,d){for(var e={},f=0;fd*(g-f))return[];if(0g;a+=d)e.push(a);return e}m.array.range=xa;function ya(a,c){for(var d=[],e=0;ec&&Array.prototype.push.apply(a,a.splice(0,-c)));return a}; m.array.moveItem=function(a,c,d){m.asserts.assert(0<=c&&c":"
")}; m.string.internal.htmlEscape=function(a,c){if(c)a=a.replace(m.string.internal.AMP_RE_,"&").replace(m.string.internal.LT_RE_,"<").replace(m.string.internal.GT_RE_,">").replace(m.string.internal.QUOT_RE_,""").replace(m.string.internal.SINGLE_QUOTE_RE_,"'").replace(m.string.internal.NULL_RE_,"�");else{if(!m.string.internal.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(m.string.internal.AMP_RE_,"&"));-1!=a.indexOf("<")&&(a=a.replace(m.string.internal.LT_RE_,"<")); -1!=a.indexOf(">")&&(a=a.replace(m.string.internal.GT_RE_,">"));-1!=a.indexOf('"')&&(a=a.replace(m.string.internal.QUOT_RE_,"""));-1!=a.indexOf("'")&&(a=a.replace(m.string.internal.SINGLE_QUOTE_RE_,"'"));-1!=a.indexOf("\x00")&&(a=a.replace(m.string.internal.NULL_RE_,"�"))}return a};m.string.internal.AMP_RE_=/&/g;m.string.internal.LT_RE_=//g;m.string.internal.QUOT_RE_=/"/g;m.string.internal.SINGLE_QUOTE_RE_=/'/g;m.string.internal.NULL_RE_=/\x00/g; m.string.internal.ALL_RE_=/[\x00&<>"']/;m.string.internal.whitespaceEscape=function(a){return m.string.internal.newLineToBr(a.replace(/ /g,"  "),void 0)};m.string.internal.contains=function(a,c){return-1!=a.indexOf(c)};m.string.internal.caseInsensitiveContains=function(a,c){return m.string.internal.contains(a.toLowerCase(),c.toLowerCase())}; m.string.internal.compareVersions=function(a,c){var d=0;a=m.string.internal.trim(String(a)).split(".");c=m.string.internal.trim(String(c)).split(".");for(var e=Math.max(a.length,c.length),f=0;0==d&&fc?1:0};m.labs={};m.labs.userAgent={};m.labs.userAgent.util={};m.labs.userAgent.util.getNativeUserAgentString_=function(){var a=m.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};m.labs.userAgent.util.getNavigator_=function(){return m.global.navigator};m.labs.userAgent.util.userAgent_=m.labs.userAgent.util.getNativeUserAgentString_();m.labs.userAgent.util.setUserAgent=function(a){m.labs.userAgent.util.userAgent_=a||m.labs.userAgent.util.getNativeUserAgentString_()}; m.labs.userAgent.util.getUserAgent=function(){return m.labs.userAgent.util.userAgent_};m.labs.userAgent.util.matchUserAgent=function(a){return m.string.internal.contains(m.labs.userAgent.util.getUserAgent(),a)};m.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){return m.string.internal.caseInsensitiveContains(m.labs.userAgent.util.getUserAgent(),a)}; m.labs.userAgent.util.extractVersionTuples=function(a){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(a);)d.push([e[1],e[2],e[3]||void 0]);return d};m.object={};m.object.forEach=function(a,c,d){for(var e in a)c.call(d,a[e],e,a)};m.object.filter=function(a,c,d){var e={},f;for(f in a)c.call(d,a[f],f,a)&&(e[f]=a[f]);return e};m.object.map=function(a,c,d){var e={},f;for(f in a)e[f]=c.call(d,a[f],f,a);return e};m.object.some=function(a,c,d){for(var e in a)if(c.call(d,a[e],e,a))return!0;return!1};m.object.every=function(a,c,d){for(var e in a)if(!c.call(d,a[e],e,a))return!1;return!0};m.object.getCount=function(a){var c=0,d;for(d in a)c++;return c}; m.object.getAnyKey=function(a){for(var c in a)return c};m.object.getAnyValue=function(a){for(var c in a)return a[c]};m.object.contains=function(a,c){return m.object.containsValue(a,c)};m.object.getValues=function(a){var c=[],d=0,e;for(e in a)c[d++]=a[e];return c};m.object.getKeys=function(a){var c=[],d=0,e;for(e in a)c[d++]=e;return c};m.object.getValueByKeys=function(a,c){var d=m.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d"}else return void 0===a?"undefined":null===a?"null":typeof a}; m.dom.asserts.getWindow_=function(a){try{var c=a&&a.ownerDocument,d=c&&(c.defaultView||c.parentWindow);d=d||m.global;if(d.Element&&d.Location)return d}catch(e){}return null};m.functions={};m.functions.constant=function(a){return function(){return a}};m.functions.FALSE=function(){return!1};m.functions.TRUE=function(){return!0};m.functions.NULL=function(){return null};m.functions.UNDEFINED=function(){};m.functions.EMPTY=m.functions.UNDEFINED;m.functions.identity=function(a){return a};m.functions.error=function(a){return function(){throw Error(a);}};m.functions.fail=function(){}; m.functions.lock=function(a,c){c=c||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,c))}};m.functions.nth=function(a){return function(){return arguments[a]}};m.functions.partialRight=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var e=this;e===m.global&&(e=void 0);var f=Array.prototype.slice.call(arguments);f.push.apply(f,d);return a.apply(e,f)}};m.functions.withReturnValue=function(a,c){return m.functions.sequence(a,m.functions.constant(c))}; m.functions.equalTo=function(a,c){return function(d){return c?a==d:a===d}};m.functions.compose=function(a,c){var d=arguments,e=d.length;return function(){var f;e&&(f=d[e-1].apply(this,arguments));for(var g=e-2;0<=g;g--)f=d[g].call(this,f);return f}};m.functions.sequence=function(a){var c=arguments,d=c.length;return function(){for(var e,f=0;fa?m.i18n.bidi.Dir.RTL:m.i18n.bidi.Dir.NEUTRAL:null==a?null:a?m.i18n.bidi.Dir.RTL:m.i18n.bidi.Dir.LTR};m.i18n.bidi.ltrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0900-\u1fff\u200e\u2c00-\ud801\ud804-\ud839\ud83c-\udbff\uf900-\ufb1c\ufe00-\ufe6f\ufefd-\uffff"; m.i18n.bidi.rtlChars_="\u0591-\u06ef\u06fa-\u08ff\u200f\ud802-\ud803\ud83a-\ud83b\ufb1d-\ufdff\ufe70-\ufefc";m.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;m.i18n.bidi.stripHtmlIfNeeded_=function(a,c){return c?a.replace(m.i18n.bidi.htmlSkipReg_,""):a};m.i18n.bidi.rtlCharReg_=new RegExp("["+m.i18n.bidi.rtlChars_+"]");m.i18n.bidi.ltrCharReg_=new RegExp("["+m.i18n.bidi.ltrChars_+"]");m.i18n.bidi.hasAnyRtl=function(a,c){return m.i18n.bidi.rtlCharReg_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,c))}; m.i18n.bidi.hasRtlChar=m.i18n.bidi.hasAnyRtl;m.i18n.bidi.hasAnyLtr=function(a){return m.i18n.bidi.ltrCharReg_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,void 0))};m.i18n.bidi.ltrRe_=new RegExp("^["+m.i18n.bidi.ltrChars_+"]");m.i18n.bidi.rtlRe_=new RegExp("^["+m.i18n.bidi.rtlChars_+"]");m.i18n.bidi.isRtlChar=function(a){return m.i18n.bidi.rtlRe_.test(a)};m.i18n.bidi.isLtrChar=function(a){return m.i18n.bidi.ltrRe_.test(a)};m.i18n.bidi.isNeutralChar=function(a){return!m.i18n.bidi.isLtrChar(a)&&!m.i18n.bidi.isRtlChar(a)}; m.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+m.i18n.bidi.rtlChars_+"]*["+m.i18n.bidi.ltrChars_+"]");m.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+m.i18n.bidi.ltrChars_+"]*["+m.i18n.bidi.rtlChars_+"]");m.i18n.bidi.startsWithRtl=function(a,c){return m.i18n.bidi.rtlDirCheckRe_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,c))};m.i18n.bidi.isRtlText=m.i18n.bidi.startsWithRtl;m.i18n.bidi.startsWithLtr=function(a,c){return m.i18n.bidi.ltrDirCheckRe_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,c))}; m.i18n.bidi.isLtrText=m.i18n.bidi.startsWithLtr;m.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;m.i18n.bidi.isNeutralText=function(a,c){a=m.i18n.bidi.stripHtmlIfNeeded_(a,c);return m.i18n.bidi.isRequiredLtrRe_.test(a)||!m.i18n.bidi.hasAnyLtr(a)&&!m.i18n.bidi.hasAnyRtl(a)};m.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+m.i18n.bidi.ltrChars_+"][^"+m.i18n.bidi.rtlChars_+"]*$");m.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+m.i18n.bidi.rtlChars_+"][^"+m.i18n.bidi.ltrChars_+"]*$"); m.i18n.bidi.endsWithLtr=function(a,c){return m.i18n.bidi.ltrExitDirCheckRe_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,c))};m.i18n.bidi.isLtrExitText=m.i18n.bidi.endsWithLtr;m.i18n.bidi.endsWithRtl=function(a,c){return m.i18n.bidi.rtlExitDirCheckRe_.test(m.i18n.bidi.stripHtmlIfNeeded_(a,c))};m.i18n.bidi.isRtlExitText=m.i18n.bidi.endsWithRtl;m.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i; m.i18n.bidi.isRtlLanguage=function(a){return m.i18n.bidi.rtlLocalesRe_.test(a)};m.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;m.i18n.bidi.guardBracketInText=function(a,c){c=(void 0===c?m.i18n.bidi.hasAnyRtl(a):c)?m.i18n.bidi.Format.RLM:m.i18n.bidi.Format.LRM;return a.replace(m.i18n.bidi.bracketGuardTextRe_,c+"$&"+c)};m.i18n.bidi.enforceRtlInHtml=function(a){return"<"==a.charAt(0)?a.replace(/<\w+/,"$& dir=rtl"):"\n"+a+""}; m.i18n.bidi.enforceRtlInText=function(a){return m.i18n.bidi.Format.RLE+a+m.i18n.bidi.Format.PDF};m.i18n.bidi.enforceLtrInHtml=function(a){return"<"==a.charAt(0)?a.replace(/<\w+/,"$& dir=ltr"):"\n"+a+""};m.i18n.bidi.enforceLtrInText=function(a){return m.i18n.bidi.Format.LRE+a+m.i18n.bidi.Format.PDF};m.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;m.i18n.bidi.leftRe_=/left/gi;m.i18n.bidi.rightRe_=/right/gi;m.i18n.bidi.tempRe_=/%%%%/g; m.i18n.bidi.mirrorCSS=function(a){return a.replace(m.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(m.i18n.bidi.leftRe_,"%%%%").replace(m.i18n.bidi.rightRe_,m.i18n.bidi.LEFT).replace(m.i18n.bidi.tempRe_,m.i18n.bidi.RIGHT)};m.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;m.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;m.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(m.i18n.bidi.doubleQuoteSubstituteRe_,"$1\u05f4").replace(m.i18n.bidi.singleQuoteSubstituteRe_,"$1\u05f3")}; m.i18n.bidi.wordSeparatorRe_=/\s+/;m.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;m.i18n.bidi.rtlDetectionThreshold_=.4; m.i18n.bidi.estimateDirection=function(a,c){var d=0,e=0,f=!1;a=m.i18n.bidi.stripHtmlIfNeeded_(a,c).split(m.i18n.bidi.wordSeparatorRe_);for(c=0;cm.i18n.bidi.rtlDetectionThreshold_?m.i18n.bidi.Dir.RTL:m.i18n.bidi.Dir.LTR}; m.i18n.bidi.detectRtlDirectionality=function(a,c){return m.i18n.bidi.estimateDirection(a,c)==m.i18n.bidi.Dir.RTL};m.i18n.bidi.setElementDirAndAlign=function(a,c){a&&(c=m.i18n.bidi.toDir(c))&&(a.style.textAlign=c==m.i18n.bidi.Dir.RTL?m.i18n.bidi.RIGHT:m.i18n.bidi.LEFT,a.dir=c==m.i18n.bidi.Dir.RTL?"rtl":"ltr")}; m.i18n.bidi.setElementDirByTextDirectionality=function(a,c){switch(m.i18n.bidi.estimateDirection(c)){case m.i18n.bidi.Dir.LTR:"ltr"!==a.dir&&(a.dir="ltr");break;case m.i18n.bidi.Dir.RTL:"rtl"!==a.dir&&(a.dir="rtl");break;default:a.removeAttribute("dir")}};m.i18n.bidi.DirectionalString=function(){};m.html.TrustedResourceUrl=function(a,c){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=c===m.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_?a:""};b=m.html.TrustedResourceUrl.prototype;b.implementsGoogStringTypedString=!0;b.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()};b.implementsGoogI18nBidiDirectionalString=!0;b.getDirection=function(){return m.i18n.bidi.Dir.LTR}; b.toString=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+""};m.html.TrustedResourceUrl.unwrap=function(a){return m.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString()}; m.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(a){if(a instanceof m.html.TrustedResourceUrl&&a.constructor===m.html.TrustedResourceUrl)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;m.asserts.fail("expected object of type TrustedResourceUrl, got '"+a+"' of type "+m.typeOf(a));return"type_error:TrustedResourceUrl"}; m.html.TrustedResourceUrl.format=function(a,c){var d=m.string.Const.unwrap(a);if(!m.html.TrustedResourceUrl.BASE_URL_.test(d))throw Error("Invalid TrustedResourceUrl format: "+d);a=d.replace(m.html.TrustedResourceUrl.FORMAT_MARKER_,function(e,f){if(!Object.prototype.hasOwnProperty.call(c,f))throw Error('Found marker, "'+f+'", in format string, "'+d+'", but no valid label mapping found in args: '+JSON.stringify(c));e=c[f];return e instanceof m.string.Const?m.string.Const.unwrap(e):encodeURIComponent(String(e))}); return m.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};m.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;m.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;m.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/; m.html.TrustedResourceUrl.formatWithParams=function(a,c,d,e){a=m.html.TrustedResourceUrl.format(a,c);a=m.html.TrustedResourceUrl.unwrap(a);a=m.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(a);c=a[3]||"";return m.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a[1]+m.html.TrustedResourceUrl.stringifyParams_("?",a[2]||"",d)+m.html.TrustedResourceUrl.stringifyParams_("#",c,e))};m.html.TrustedResourceUrl.fromConstant=function(a){return m.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(m.string.Const.unwrap(a))}; m.html.TrustedResourceUrl.fromConstants=function(a){for(var c="",d=0;da.length?"&":"")+encodeURIComponent(e)+"="+encodeURIComponent(String(h)))}}return c};m.html.SafeUrl=function(a,c){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=c===m.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_?a:""};m.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";b=m.html.SafeUrl.prototype;b.implementsGoogStringTypedString=!0;b.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()};b.implementsGoogI18nBidiDirectionalString=!0;b.getDirection=function(){return m.i18n.bidi.Dir.LTR};b.toString=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()}; m.html.SafeUrl.unwrap=function(a){if(a instanceof m.html.SafeUrl&&a.constructor===m.html.SafeUrl)return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;m.asserts.fail("expected object of type SafeUrl, got '"+a+"' of type "+m.typeOf(a));return"type_error:SafeUrl"};m.html.SafeUrl.fromConstant=function(a){return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(m.string.Const.unwrap(a))};m.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i; m.html.SafeUrl.isSafeMimeType=function(a){return m.html.SAFE_MIME_TYPE_PATTERN_.test(a)};m.html.SafeUrl.fromBlob=function(a){a=m.html.SafeUrl.isSafeMimeType(a.type)?m.fs.url.createObjectUrl(a):m.html.SafeUrl.INNOCUOUS_STRING;return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};m.html.SafeUrl.revokeObjectUrl=function(a){a=a.getTypedStringValue();a!==m.html.SafeUrl.INNOCUOUS_STRING&&m.fs.url.revokeObjectUrl(a)}; m.html.SafeUrl.fromMediaSource=function(a){m.asserts.assert("MediaSource"in m.global,"No support for MediaSource");a=a instanceof MediaSource?m.fs.url.createObjectUrl(a):m.html.SafeUrl.INNOCUOUS_STRING;return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};m.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\/]+=*$/i; m.html.SafeUrl.tryFromDataUrl=function(a){a=String(a);a=a.replace(/(%0A|%0D)/g,"");var c=a.match(m.html.DATA_URL_PATTERN_);return c&&m.html.SafeUrl.isSafeMimeType(c[1])?m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a):null};m.html.SafeUrl.fromDataUrl=function(a){return m.html.SafeUrl.tryFromDataUrl(a)||m.html.SafeUrl.INNOCUOUS_URL};m.html.SafeUrl.fromTelUrl=function(a){m.string.internal.caseInsensitiveStartsWith(a,"tel:")||(a=m.html.SafeUrl.INNOCUOUS_STRING);return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; m.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;m.html.SafeUrl.fromSipUrl=function(a){m.html.SIP_URL_PATTERN_.test(decodeURIComponent(a))||(a=m.html.SafeUrl.INNOCUOUS_STRING);return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};m.html.SafeUrl.fromFacebookMessengerUrl=function(a){m.string.internal.caseInsensitiveStartsWith(a,"fb-messenger://share")||(a=m.html.SafeUrl.INNOCUOUS_STRING);return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; m.html.SafeUrl.fromWhatsAppUrl=function(a){m.string.internal.caseInsensitiveStartsWith(a,"whatsapp://send")||(a=m.html.SafeUrl.INNOCUOUS_STRING);return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};m.html.SafeUrl.fromSmsUrl=function(a){m.string.internal.caseInsensitiveStartsWith(a,"sms:")&&m.html.SafeUrl.isSmsUrlBodyValid_(a)||(a=m.html.SafeUrl.INNOCUOUS_STRING);return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; m.html.SafeUrl.isSmsUrlBodyValid_=function(a){var c=a.indexOf("#");0.":"");if(a.toUpperCase()in m.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(m.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+a+"> is not allowed for SafeHtml.":"");}; m.html.SafeHtml.createIframe=function(a,c,d,e){a&&m.html.TrustedResourceUrl.unwrap(a);var f={};f.src=a||null;f.srcdoc=c&&m.html.SafeHtml.unwrap(c);a=m.html.SafeHtml.combineAttributes(f,{sandbox:""},d);return m.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,e)}; m.html.SafeHtml.createSandboxIframe=function(a,c,d,e){if(!m.html.SafeHtml.canUseSandboxIframe())throw Error(m.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var f={};f.src=a?m.html.SafeUrl.unwrap(m.html.SafeUrl.sanitize(a)):null;f.srcdoc=c||null;f.sandbox="";a=m.html.SafeHtml.combineAttributes(f,{},d);return m.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,e)}; m.html.SafeHtml.canUseSandboxIframe=function(){return m.global.HTMLIFrameElement&&"sandbox"in m.global.HTMLIFrameElement.prototype};m.html.SafeHtml.createScriptSrc=function(a,c){m.html.TrustedResourceUrl.unwrap(a);a=m.html.SafeHtml.combineAttributes({src:a},{},c);return m.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",a)}; m.html.SafeHtml.createScript=function(a,c){for(var d in c)if(Object.prototype.hasOwnProperty.call(c,d)){var e=d.toLowerCase();if("language"==e||"src"==e||"text"==e||"type"==e)throw Error(m.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+e+'" attribute':"");}d="";a=B(a);for(e=0;e does not allow content."),f+=">"):(e=m.html.SafeHtml.concat(d),f+=">"+m.html.SafeHtml.unwrap(e)+"",e=e.getDirection());(a=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(a)?m.i18n.bidi.Dir.NEUTRAL:null);return m.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(f, e)};m.html.SafeHtml.stringifyAttributes=function(a,c){var d="";if(c)for(var e in c)if(Object.prototype.hasOwnProperty.call(c,e)){if(!m.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error(m.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+e+'".':"");var f=c[e];null!=f&&(d+=" "+m.html.SafeHtml.getAttrNameAndValue_(a,e,f))}return d}; m.html.SafeHtml.combineAttributes=function(a,c,d){var e={},f;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(m.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=a[f]);for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(m.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=c[f]);if(d)for(f in d)if(Object.prototype.hasOwnProperty.call(d,f)){var g=f.toLowerCase();if(g in a)throw Error(m.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+g+'" attribute, got "'+f+'" with value "'+ d[f]+'"':"");g in c&&delete e[g];e[f]=d[f]}return e};m.html.SafeHtml.DOCTYPE_HTML=m.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",m.i18n.bidi.Dir.NEUTRAL);m.html.SafeHtml.EMPTY=new m.html.SafeHtml(m.global.trustedTypes&&m.global.trustedTypes.emptyHTML||"",m.i18n.bidi.Dir.NEUTRAL,m.html.SafeHtml.CONSTRUCTOR_TOKEN_PRIVATE_);m.html.SafeHtml.BR=m.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
",m.i18n.bidi.Dir.NEUTRAL);m.html.uncheckedconversions={};m.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return m.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,null)}; m.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return Ba(c)}; m.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return m.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)}; m.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return new I(c,H)}; m.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return m.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)}; m.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(a,c){m.asserts.assertString(m.string.Const.unwrap(a),"must provide justification");m.asserts.assert(!m.string.internal.isEmptyOrWhitespace(m.string.Const.unwrap(a)),"must provide non-empty justification");return m.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};m.dom.safe={};m.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};m.dom.safe.insertAdjacentHtml=function(a,c,d){a.insertAdjacentHTML(c,m.html.SafeHtml.unwrapTrustedHTML(d))};m.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0}; m.dom.safe.isInnerHtmlCleanupRecursive_=m.functions.cacheReturnValue(function(){if(m.DEBUG&&"undefined"===typeof document)return!1;var a=document.createElement("div"),c=document.createElement("div");c.appendChild(document.createElement("div"));a.appendChild(c);if(m.DEBUG&&!a.firstChild)return!1;c=a.firstChild.firstChild;a.innerHTML=m.html.SafeHtml.unwrapTrustedHTML(m.html.SafeHtml.EMPTY);return!c.parentElement}); m.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,c){if(m.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=m.html.SafeHtml.unwrapTrustedHTML(c)};m.dom.safe.setInnerHtml=function(a,c){if(m.asserts.ENABLE_ASSERTS&&a.tagName&&m.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[a.tagName.toUpperCase()])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+a.tagName+".");m.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a,c)}; m.dom.safe.setInnerHtmlFromConstant=function(a,c){m.dom.safe.setInnerHtml(a,m.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(m.string.Const.from("Constant HTML to be immediatelly used."),m.string.Const.unwrap(c)))};m.dom.safe.setOuterHtml=function(a,c){a.outerHTML=m.html.SafeHtml.unwrapTrustedHTML(c)};m.dom.safe.setFormElementAction=function(a,c){c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);m.dom.asserts.assertIsHTMLFormElement(a).action=m.html.SafeUrl.unwrap(c)}; m.dom.safe.setButtonFormAction=function(a,c){c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);m.dom.asserts.assertIsHTMLButtonElement(a).formAction=m.html.SafeUrl.unwrap(c)};m.dom.safe.setInputFormAction=function(a,c){c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);m.dom.asserts.assertIsHTMLInputElement(a).formAction=m.html.SafeUrl.unwrap(c)};m.dom.safe.setStyle=function(a,c){a.style.cssText=m.html.SafeStyle.unwrap(c)}; m.dom.safe.documentWrite=function(a,c){a.write(m.html.SafeHtml.unwrapTrustedHTML(c))};m.dom.safe.setAnchorHref=function(a,c){m.dom.asserts.assertIsHTMLAnchorElement(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);a.href=m.html.SafeUrl.unwrap(c)};m.dom.safe.setImageSrc=function(a,c){m.dom.asserts.assertIsHTMLImageElement(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:image\//i.test(c));a.src=m.html.SafeUrl.unwrap(c)}; m.dom.safe.setAudioSrc=function(a,c){m.dom.asserts.assertIsHTMLAudioElement(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:audio\//i.test(c));a.src=m.html.SafeUrl.unwrap(c)};m.dom.safe.setVideoSrc=function(a,c){m.dom.asserts.assertIsHTMLVideoElement(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c,/^data:video\//i.test(c));a.src=m.html.SafeUrl.unwrap(c)}; m.dom.safe.setEmbedSrc=function(a,c){m.dom.asserts.assertIsHTMLEmbedElement(a);a.src=m.html.TrustedResourceUrl.unwrapTrustedScriptURL(c)};m.dom.safe.setFrameSrc=function(a,c){m.dom.asserts.assertIsHTMLFrameElement(a);a.src=m.html.TrustedResourceUrl.unwrap(c)};m.dom.safe.setIframeSrc=function(a,c){m.dom.asserts.assertIsHTMLIFrameElement(a);a.src=m.html.TrustedResourceUrl.unwrap(c)};m.dom.safe.setIframeSrcdoc=function(a,c){m.dom.asserts.assertIsHTMLIFrameElement(a);a.srcdoc=m.html.SafeHtml.unwrapTrustedHTML(c)}; m.dom.safe.setLinkHrefAndRel=function(a,c,d){m.dom.asserts.assertIsHTMLLinkElement(a);a.rel=d;m.string.internal.caseInsensitiveContains(d,"stylesheet")?(m.asserts.assert(c instanceof m.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),a.href=m.html.TrustedResourceUrl.unwrap(c)):a.href=c instanceof m.html.TrustedResourceUrl?m.html.TrustedResourceUrl.unwrap(c):c instanceof m.html.SafeUrl?m.html.SafeUrl.unwrap(c):m.html.SafeUrl.unwrap(m.html.SafeUrl.sanitizeAssertUnchanged(c))}; m.dom.safe.setObjectData=function(a,c){m.dom.asserts.assertIsHTMLObjectElement(a);a.data=m.html.TrustedResourceUrl.unwrapTrustedScriptURL(c)};m.dom.safe.setScriptSrc=function(a,c){m.dom.asserts.assertIsHTMLScriptElement(a);a.src=m.html.TrustedResourceUrl.unwrapTrustedScriptURL(c);m.dom.safe.setNonceForScriptElement_(a)};m.dom.safe.setScriptContent=function(a,c){m.dom.asserts.assertIsHTMLScriptElement(a);a.textContent=Ca(c);m.dom.safe.setNonceForScriptElement_(a)}; m.dom.safe.setNonceForScriptElement_=function(a){var c=m.getScriptNonce(a.ownerDocument&&a.ownerDocument.defaultView);c&&a.setAttribute("nonce",c)};m.dom.safe.setLocationHref=function(a,c){m.dom.asserts.assertIsLocation(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);a.href=m.html.SafeUrl.unwrap(c)};m.dom.safe.assignLocation=function(a,c){m.dom.asserts.assertIsLocation(a);c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);a.assign(m.html.SafeUrl.unwrap(c))}; m.dom.safe.replaceLocation=function(a,c){c=c instanceof m.html.SafeUrl?c:m.html.SafeUrl.sanitizeAssertUnchanged(c);a.replace(m.html.SafeUrl.unwrap(c))};m.dom.safe.openInWindow=function(a,c,d,e,f){a=a instanceof m.html.SafeUrl?a:m.html.SafeUrl.sanitizeAssertUnchanged(a);c=c||m.global;d=d instanceof m.string.Const?m.string.Const.unwrap(d):d||"";return void 0!==e||void 0!==f?c.open(m.html.SafeUrl.unwrap(a),d,e,f):c.open(m.html.SafeUrl.unwrap(a),d)}; m.dom.safe.parseFromStringHtml=function(a,c){return m.dom.safe.parseFromString(a,c,"text/html")};m.dom.safe.parseFromString=function(a,c,d){return a.parseFromString(m.html.SafeHtml.unwrapTrustedHTML(c),d)}; m.dom.safe.createImageFromBlob=function(a){if(!/^image\/.*/g.test(a.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var c=m.global.URL.createObjectURL(a);a=new m.global.Image;a.onload=function(){m.global.URL.revokeObjectURL(c)};m.dom.safe.setImageSrc(a,m.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(m.string.Const.from("Image blob URL."),c));return a};m.dom.safe.createContextualFragment=function(a,c){return a.createContextualFragment(m.html.SafeHtml.unwrapTrustedHTML(c))};m.string.DETECT_DOUBLE_ESCAPING=!1;m.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;m.string.Unicode={NBSP:"\u00a0"};m.string.startsWith=m.string.internal.startsWith;m.string.endsWith=m.string.internal.endsWith;m.string.caseInsensitiveStartsWith=m.string.internal.caseInsensitiveStartsWith;m.string.caseInsensitiveEndsWith=m.string.internal.caseInsensitiveEndsWith;m.string.caseInsensitiveEquals=m.string.internal.caseInsensitiveEquals; m.string.subs=function(a,c){for(var d=a.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1=a||"\u0080"<=a&&"\ufffd">=a}; m.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};m.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};m.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};m.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};m.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};m.string.trim=m.string.internal.trim; m.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};m.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};m.string.caseInsensitiveCompare=m.string.internal.caseInsensitiveCompare; m.string.numberAwareCompare_=function(a,c,d){if(a==c)return 0;if(!a)return-1;if(!c)return 1;for(var e=a.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h",""":'"'};var e=c?c.createElement("div"):m.global.document.createElement("div");return a.replace(m.string.HTML_ENTITY_PATTERN_,function(f,g){var h=d[f];if(h)return h;"#"==g.charAt(0)&&(g=Number("0"+g.substr(1)),isNaN(g)||(h=String.fromCharCode(g)));h||(m.dom.safe.setInnerHtml(e,m.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(m.string.Const.from("Single HTML entity."),f+" ")),h=e.firstChild.nodeValue.slice(0, -1));return d[f]=h})};m.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?c:String.fromCharCode(d)}})};m.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;m.string.whitespaceEscape=function(a){return m.string.newLineToBr(a.replace(/ /g,"  "),void 0)}; m.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+m.string.Unicode.NBSP)};m.string.stripQuotes=function(a,c){for(var d=c.length,e=0;ec&&(a=a.substring(0,c-3)+"...");d&&(a=m.string.htmlEscape(a));return a}; m.string.truncateMiddle=function(a,c,d,e){d&&(a=m.string.unescapeEntities(a));e&&a.length>c?(e>c&&(e=c),a=a.substring(0,c-e)+"..."+a.substring(a.length-e)):a.length>c&&(e=Math.floor(c/2),a=a.substring(0,e+c%2)+"..."+a.substring(a.length-e));d&&(a=m.string.htmlEscape(a));return a};m.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"};m.string.jsEscapeCache_={"'":"\\'"}; m.string.quote=function(a){a=String(a);for(var c=['"'],d=0;df?e:m.string.escapeChar(e))}c.push('"');return c.join("")};m.string.escapeString=function(a){for(var c=[],d=0;dc)var d=a;else{if(256>c){if(d="\\x",16>c||256c&&(d+="0");d+=c.toString(16).toUpperCase()}return m.string.jsEscapeCache_[a]=d};m.string.contains=m.string.internal.contains;m.string.caseInsensitiveContains=m.string.internal.caseInsensitiveContains; m.string.countOf=function(a,c){return a&&c?a.split(c).length-1:0};m.string.removeAt=function(a,c,d){var e=a;0<=c&&c>>0;return c};m.string.uniqueStringCounter_=2147483648*Math.random()|0; m.string.createUniqueString=function(){return"goog_"+m.string.uniqueStringCounter_++};m.string.toNumber=function(a){var c=Number(a);return 0==c&&m.string.isEmptyOrWhitespace(a)?NaN:c};m.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};m.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};m.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(c,d){return d.toUpperCase()})}; m.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};m.string.toTitleCase=function(a,c){c="string"===typeof c?m.string.regExpEscape(c):"\\s";return a.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(d,e,f){return e+f.toUpperCase()})};m.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()}; m.string.parseInt=function(a){isFinite(a)&&(a=String(a));return"string"===typeof a?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};m.string.splitLimit=function(a,c,d){a=a.split(c);for(var e=[];0d&&(d=f)}return-1==d?a:a.slice(d+1)}; m.string.editDistance=function(a,c){var d=[],e=[];if(a==c)return 0;if(!a.length||!c.length)return Math.max(a.length,c.length);for(var f=0;fparseFloat(a))?String(c):a}; m.userAgent.getVersionRegexResult_=function(){var a=m.userAgent.getUserAgentString();if(m.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(m.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(m.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(m.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(m.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};m.userAgent.getDocumentMode_=function(){var a=m.global.document;return a?a.documentMode:void 0};m.userAgent.VERSION=m.userAgent.determineVersion_(); m.userAgent.compare=function(a,c){return m.string.compareVersions(a,c)};m.userAgent.isVersionOrHigherCache_={};m.userAgent.isVersionOrHigher=function(a){return m.userAgent.ASSUME_ANY_VERSION||m.reflect.cache(m.userAgent.isVersionOrHigherCache_,a,function(){return 0<=m.string.compareVersions(m.userAgent.VERSION,a)})};m.userAgent.isVersion=m.userAgent.isVersionOrHigher;m.userAgent.isDocumentModeOrHigher=function(a){return Number(m.userAgent.DOCUMENT_MODE)>=a};m.userAgent.isDocumentMode=m.userAgent.isDocumentModeOrHigher; var Da;if(m.global.document&&m.userAgent.IE){var Ea=m.userAgent.getDocumentMode_();Da=Ea?Ea:parseInt(m.userAgent.VERSION,10)||void 0}else Da=void 0;m.userAgent.DOCUMENT_MODE=Da;m.debug.LOGGING_ENABLED=m.DEBUG;m.debug.FORCE_SLOPPY_STACKS=!1;m.debug.CHECK_FOR_THROWN_EVENT=!1;m.debug.catchErrors=function(a,c,d){d=d||m.global;var e=d.onerror,f=!!c;m.userAgent.WEBKIT&&!m.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(g,h,l,n,p){e&&e(g,h,l,n,p);a({message:g,fileName:h,line:l,lineNumber:l,col:n,error:p});return f}}; m.debug.expose=function(a,c){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var d=[],e;for(e in a)if(c||"function"!==typeof a[e]){var f=e+" = ";try{f+=a[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")}; m.debug.deepExpose=function(a,c){var d=[],e=[],f={},g=function(h,l){var n=l+" ";try{if(void 0===h)d.push("undefined");else if(null===h)d.push("NULL");else if("string"===typeof h)d.push('"'+h.replace(/\n/g,"\n"+l)+'"');else if("function"===typeof h)d.push(String(h).replace(/\n/g,"\n"+l));else if(m.isObject(h)){m.hasUid(h)||e.push(h);var p=m.getUid(h);if(f[p])d.push("*** reference loop detected (id="+p+") ***");else{f[p]=!0;d.push("{");for(var v in h)if(c||"function"!==typeof h[v])d.push("\n"),d.push(n), d.push(v+" = "),g(h[v],n);d.push("\n"+l+"}");delete f[p]}}else d.push(h)}catch(W){d.push("*** "+W+" ***")}};g(a,"");for(a=0;a=m.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}a&&e>=a?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")}; m.debug.MAX_STACK_DEPTH=50;m.debug.getNativeStackTrace_=function(a){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,a),String(c.stack);try{throw c;}catch(d){c=d}return(a=c.stack)?String(a):null};m.debug.getStacktrace=function(a){var c;m.debug.FORCE_SLOPPY_STACKS||(c=m.debug.getNativeStackTrace_(a||m.debug.getStacktrace));c||(c=m.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return c}; m.debug.getStacktraceHelper_=function(a,c){var d=[];if(y(c,a))d.push("[...circular reference...]");else if(a&&c.length=a.keyCode)a.keyCode=-1}catch(c){}};m.events.BrowserEvent.getPointerType_=function(a){return"string"===typeof a.pointerType?a.pointerType:m.events.BrowserEvent.IE_POINTER_TYPE_MAP[a.pointerType]||""};m.events.Listenable=function(){};m.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);m.events.Listenable.addImplementation=function(a){a.prototype[m.events.Listenable.IMPLEMENTED_BY_PROP]=!0};m.events.Listenable.isImplementedBy=function(a){return!(!a||!a[m.events.Listenable.IMPLEMENTED_BY_PROP])};b=m.events.Listenable.prototype;b.listen=function(){};b.listenOnce=function(){};b.unlisten=function(){};b.unlistenByKey=function(){};b.dispatchEvent=function(){}; b.removeAllListeners=function(){};b.getParentEventTarget=function(){};b.fireListeners=function(){};b.getListeners=function(){};b.getListener=function(){};b.hasListener=function(){};m.events.ListenableKey=function(){};m.events.ListenableKey.counter_=0;m.events.ListenableKey.reserveKey=function(){return++m.events.ListenableKey.counter_};m.events.Listener=function(a,c,d,e,f){this.listener=a;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=m.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};m.events.Listener.ENABLE_MONITORING=!1;var Ha=function(a){a.removed=!0;a.listener=null;a.proxy=null;a.src=null;a.handler=null};m.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};m.events.ListenerMap.prototype.add=function(a,c,d,e,f){var g=a.toString();a=this.listeners[g];a||(a=this.listeners[g]=[],this.typeCount_++);var h=m.events.ListenerMap.findListenerIndex_(a,c,e,f);-1a.keyCode||void 0!=a.returnValue};m.events.uniqueIdCounter_=0; m.events.getUniqueId=function(a){return a+"_"+m.events.uniqueIdCounter_++};m.events.getListenerMap_=function(a){a=a[m.events.LISTENER_MAP_PROP_];return a instanceof m.events.ListenerMap?a:null};m.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0); m.events.wrapListener=function(a){m.asserts.assert(a,"Listener can not be null.");if("function"===typeof a)return a;m.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[m.events.LISTENER_WRAPPER_PROP_]||(a[m.events.LISTENER_WRAPPER_PROP_]=function(c){return a.handleEvent(c)});return a[m.events.LISTENER_WRAPPER_PROP_]};m.debug.entryPointRegistry.register(function(a){m.events.handleBrowserEvent_=a(m.events.handleBrowserEvent_)});m.events.EventHandler=function(a){m.Disposable.call(this);this.handler_=a;this.keys_={}};m.inherits(m.events.EventHandler,m.Disposable);m.events.EventHandler.typeArray_=[];m.events.EventHandler.prototype.listen=function(a,c,d,e){return this.listen_(a,c,d,e)}; m.events.EventHandler.prototype.listen_=function(a,c,d,e,f){Array.isArray(c)||(c&&(m.events.EventHandler.typeArray_[0]=c.toString()),c=m.events.EventHandler.typeArray_);for(var g=0;ga*c?a+c:a};m.math.lerp=function(a,c,d){return a+d*(c-a)};m.math.nearlyEquals=function(a,c,d){return Math.abs(a-c)<=(d||1E-6)};m.math.standardAngle=function(a){return m.math.modulo(a,360)}; m.math.standardAngleInRadians=function(a){return m.math.modulo(a,2*Math.PI)};m.math.toRadians=function(a){return a*Math.PI/180};m.math.toDegrees=function(a){return 180*a/Math.PI};m.math.angleDx=function(a,c){return c*Math.cos(m.math.toRadians(a))};m.math.angleDy=function(a,c){return c*Math.sin(m.math.toRadians(a))};m.math.angle=function(a,c,d,e){return m.math.standardAngle(m.math.toDegrees(Math.atan2(e-c,d-a)))}; m.math.angleDifference=function(a,c){a=m.math.standardAngle(c)-m.math.standardAngle(a);180=a&&(a=360+a);return a};m.math.sign=function(a){return 0a?-1:a}; m.math.longestCommonSubsequence=function(a,c,d,e){d=d||function(v,W){return v==W};e=e||function(v){return a[v]};for(var f=a.length,g=c.length,h=[],l=0;lh[l][n-1]?l--:n--;return p}; m.math.sum=function(a){return fa(arguments,function(c,d){return c+d},0)};m.math.average=function(a){return m.math.sum.apply(null,arguments)/arguments.length};m.math.sampleVariance=function(a){var c=arguments.length;if(2>c)return 0;var d=m.math.average.apply(null,arguments);return m.math.sum.apply(null,x(arguments,function(e){return Math.pow(e-d,2)}))/(c-1)};m.math.standardDeviation=function(a){return Math.sqrt(m.math.sampleVariance.apply(null,arguments))}; m.math.isInt=function(a){return isFinite(a)&&0==a%1};m.math.isFiniteNumber=function(a){return isFinite(a)};m.math.isNegativeZero=function(a){return 0==a&&0>1/a};m.math.log10Floor=function(a){if(0a?1:0)}return 0==a?-Infinity:NaN};m.math.safeFloor=function(a,c){m.asserts.assert(void 0===c||0=a.length)throw m.iter.StopIteration;if(c in a)return a[c++];c++}};return d}throw Error("Not implemented");}; m.iter.forEach=function(a,c,d){if(m.isArrayLike(a))try{w(a,c,d)}catch(e){if(e!==m.iter.StopIteration)throw e;}else{a=m.iter.toIterator(a);try{for(;;)c.call(d,a.next(),void 0,a)}catch(e){if(e!==m.iter.StopIteration)throw e;}}};m.iter.filter=function(a,c,d){var e=m.iter.toIterator(a);a=new m.iter.Iterator;a.next=function(){for(;;){var f=e.next();if(c.call(d,f,void 0,e))return f}};return a};m.iter.filterFalse=function(a,c,d){return m.iter.filter(a,m.functions.not(c),d)}; m.iter.range=function(a,c,d){var e=0,f=a,g=d||1;1=f||0>g&&e<=f)throw m.iter.StopIteration;var l=e;e+=g;return l};return h};m.iter.join=function(a,c){return m.iter.toArray(a).join(c)};m.iter.map=function(a,c,d){var e=m.iter.toIterator(a);a=new m.iter.Iterator;a.next=function(){var f=e.next();return c.call(d,f,void 0,e)};return a}; m.iter.reduce=function(a,c,d,e){var f=d;m.iter.forEach(a,function(g){f=c.call(e,f,g)});return f};m.iter.some=function(a,c,d){a=m.iter.toIterator(a);try{for(;;)if(c.call(d,a.next(),void 0,a))return!0}catch(e){if(e!==m.iter.StopIteration)throw e;}return!1};m.iter.every=function(a,c,d){a=m.iter.toIterator(a);try{for(;;)if(!c.call(d,a.next(),void 0,a))return!1}catch(e){if(e!==m.iter.StopIteration)throw e;}return!0};m.iter.chain=function(a){return m.iter.chainFromIterable(arguments)}; m.iter.chainFromIterable=function(a){var c=m.iter.toIterator(a);a=new m.iter.Iterator;var d=null;a.next=function(){for(;;){if(null==d){var e=c.next();d=m.iter.toIterator(e)}try{return d.next()}catch(f){if(f!==m.iter.StopIteration)throw f;d=null}}};return a};m.iter.dropWhile=function(a,c,d){var e=m.iter.toIterator(a);a=new m.iter.Iterator;var f=!0;a.next=function(){for(;;){var g=e.next();if(!f||!c.call(d,g,void 0,e))return f=!1,g}};return a}; m.iter.takeWhile=function(a,c,d){var e=m.iter.toIterator(a);a=new m.iter.Iterator;a.next=function(){var f=e.next();if(c.call(d,f,void 0,e))return f;throw m.iter.StopIteration;};return a};m.iter.toArray=function(a){if(m.isArrayLike(a))return C(a);a=m.iter.toIterator(a);var c=[];m.iter.forEach(a,function(d){c.push(d)});return c};m.iter.equals=function(a,c){a=m.iter.zipLongest({},a,c);var d=wa;return m.iter.every(a,function(e){return d(e[0],e[1])})}; m.iter.nextOrValue=function(a){try{m.iter.toIterator(a).next()}catch(c){if(c!=m.iter.StopIteration)throw c;}};m.iter.product=function(a){if(ha(arguments,function(f){return!f.length})||!arguments.length)return new m.iter.Iterator;var c=new m.iter.Iterator,d=arguments,e=ya(0,d.length);c.next=function(){if(e){for(var f=x(e,function(h,l){return d[l][h]}),g=e.length-1;0<=g;g--){m.asserts.assert(e);if(e[g]=c),a=m.iter.limit(a,d-c));return a};m.iter.hasDuplicates_=function(a){var c=[];qa(a,c);return a.length!=c.length};m.iter.permutations=function(a,c){a=m.iter.toArray(a);c=m.iter.product.apply(void 0,ya(a,"number"===typeof c?c:a.length));return m.iter.filter(c,function(d){return!m.iter.hasDuplicates_(d)})}; m.iter.combinations=function(a,c){function d(g){return e[g]}var e=m.iter.toArray(a);a=m.iter.range(e.length);c=m.iter.permutations(a,c);var f=m.iter.filter(c,function(g){return va(g)});c=new m.iter.Iterator;c.next=function(){return x(f.next(),d)};return c}; m.iter.combinationsWithReplacement=function(a,c){function d(g){return e[g]}var e=m.iter.toArray(a);a=xa(e.length);c=m.iter.product.apply(void 0,ya(a,c));var f=m.iter.filter(c,function(g){return va(g)});c=new m.iter.Iterator;c.next=function(){return x(f.next(),d)};return c};m.structs={};m.structs.Map=function(a,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(12*this.count_&&K(this),!0):!1}; var K=function(a){if(a.count_!=a.keys_.length){for(var c=0,d=0;c=e.keys_.length)throw m.iter.StopIteration;var g=e.keys_[c++];return a?g:e.map_[g]};return f};m.structs.Map.hasKey_=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)};m.structs.LinkedMap=function(a){this.maxCount_=a||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new m.structs.Map;this.head_=new m.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var Ma=function(a,c){(c=a.map_.get(c))&&a.cache_&&(c.remove(),La(a,c));return c};b=m.structs.LinkedMap.prototype;b.get=function(a,c){return(a=Ma(this,a))?a.value:c}; b.set=function(a,c){var d=Ma(this,a);d?d.value=c:(d=new m.structs.LinkedMap.Node_(a,c),this.map_.set(a,d),La(this,d))};b.peek=function(){return this.head_.next.value};b.shift=function(){return Na(this,this.head_.next)};b.pop=function(){return Na(this,this.head_.prev)};b.remove=function(a){return(a=this.map_.get(a))?(this.removeNode(a),!0):!1};b.removeNode=function(a){a.remove();this.map_.remove(a.key)};b.getCount=function(){return this.map_.getCount()};b.isEmpty=function(){return this.map_.isEmpty()}; b.getKeys=function(){return this.map(function(a,c){return c})};b.getValues=function(){return this.map(function(a){return a})};b.contains=function(a){return this.some(function(c){return c==a})};b.containsKey=function(a){return this.map_.containsKey(a)};b.clear=function(){Oa(this,0)};b.forEach=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)a.call(c,d.value,d.key,this)};b.map=function(a,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(a.call(c,e.value,e.key,this));return d}; b.some=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(a.call(c,d.value,d.key,this))return!0;return!1};b.every=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!a.call(c,d.value,d.key,this))return!1;return!0}; var La=function(a,c){a.cache_?(c.next=a.head_.next,c.prev=a.head_,a.head_.next=c,c.next.prev=c):(c.prev=a.head_.prev,c.next=a.head_,a.head_.prev=c,c.prev.next=c);null!=a.maxCount_&&Oa(a,a.maxCount_)},Oa=function(a,c){for(;a.getCount()>c;){var d=a.cache_?a.head_.prev:a.head_.next;a.removeNode(d);a.evictionCallback_&&a.evictionCallback_(d.key,d.value)}},Na=function(a,c){a.head_!=c&&a.removeNode(c);return c.value};m.structs.LinkedMap.Node_=function(a,c){this.key=a;this.value=c}; m.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};var L={},M=function(a,c){m.events.EventTarget.call(this);this.timeout_=a||36E5;this.cache_=new m.structs.LinkedMap(c||100)};k.inherits(M,m.events.EventTarget);M.prototype.get=function(a){return(a=this.cache_.get(a))&&Date.now()-a.timeStamp_<=this.timeout_?a.licenses_:null};M.prototype.remove=function(a){this.cache_.remove(a)};M.Entry=function(a){this.timeStamp_=Date.now();this.licenses_=a};L.LicensesCache=M;m.structs.getCount=function(a){return a.getCount&&"function"==typeof a.getCount?a.getCount():m.isArrayLike(a)||"string"===typeof a?a.length:m.object.getCount(a)};m.structs.getValues=function(a){if(a.getValues&&"function"==typeof a.getValues)return a.getValues();if("string"===typeof a)return a.split("");if(m.isArrayLike(a)){for(var c=[],d=a.length,e=0;ea?null:(void 0).substr(a+1)};m.uri.utils.setFragmentEncoded=function(a,c){return m.uri.utils.removeFragment(a)+(c?"#"+c:"")};m.uri.utils.getFragment=function(){return m.uri.utils.decodeIfPossible_(m.uri.utils.getFragmentEncoded())}; m.uri.utils.getHost=function(a){a=m.uri.utils.split(a);return m.uri.utils.buildFromEncodedParts(a[m.uri.utils.ComponentIndex.SCHEME],a[m.uri.utils.ComponentIndex.USER_INFO],a[m.uri.utils.ComponentIndex.DOMAIN],a[m.uri.utils.ComponentIndex.PORT])};m.uri.utils.getOrigin=function(a){a=m.uri.utils.split(a);return m.uri.utils.buildFromEncodedParts(a[m.uri.utils.ComponentIndex.SCHEME],null,a[m.uri.utils.ComponentIndex.DOMAIN],a[m.uri.utils.ComponentIndex.PORT])}; m.uri.utils.getPathAndAfter=function(a){a=m.uri.utils.split(a);return m.uri.utils.buildFromEncodedParts(null,null,null,null,a[m.uri.utils.ComponentIndex.PATH],a[m.uri.utils.ComponentIndex.QUERY_DATA],a[m.uri.utils.ComponentIndex.FRAGMENT])};m.uri.utils.removeFragment=function(a){var c=a.indexOf("#");return 0>c?a:a.substr(0,c)}; m.uri.utils.haveSameDomain=function(a,c){a=m.uri.utils.split(a);c=m.uri.utils.split(c);return a[m.uri.utils.ComponentIndex.DOMAIN]==c[m.uri.utils.ComponentIndex.DOMAIN]&&a[m.uri.utils.ComponentIndex.SCHEME]==c[m.uri.utils.ComponentIndex.SCHEME]&&a[m.uri.utils.ComponentIndex.PORT]==c[m.uri.utils.ComponentIndex.PORT]};m.uri.utils.assertNoFragmentsOrQueries_=function(a){m.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)}; m.uri.utils.parseQueryData=function(a,c){if(a){a=a.split("&");for(var d=0;dc&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);return[a.substr(0,d),e,a.substr(c)]};m.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]}; m.uri.utils.appendQueryData_=function(a,c){return c?a?a+"&"+c:c:a};m.uri.utils.appendQueryDataToUri_=function(a,c){if(!c)return a;a=m.uri.utils.splitQueryData_(a);a[1]=m.uri.utils.appendQueryData_(a[1],c);return m.uri.utils.joinQueryData_(a)};m.uri.utils.appendKeyValuePairs_=function(a,c,d){m.asserts.assertString(a);if(Array.isArray(c)){m.asserts.assertArray(c);for(var e=0;ee)return null;var f=a.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return m.string.urlDecode(a.substr(e,f-e))};m.uri.utils.getParamValues=function(a,c){for(var d=a.search(m.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=m.uri.utils.findParam_(a,e,c,d));){e=a.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(m.string.urlDecode(a.substr(f,e-f)))}return g}; m.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;m.uri.utils.removeParam=function(a,c){for(var d=a.search(m.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=m.uri.utils.findParam_(a,e,c,d));)g.push(a.substring(e,f)),e=Math.min(a.indexOf("&",f)+1||d,d);g.push(a.substr(e));return g.join("").replace(m.uri.utils.trailingQueryPunctuationRe_,"$1")}; m.uri.utils.setParam=function(a){var c=m.uri.utils.StandardQueryParam.RANDOM,d=m.string.getRandomString();return m.uri.utils.appendParam(m.uri.utils.removeParam(a,c),c,d)};m.uri.utils.setParamsFromMap=function(a,c){a=m.uri.utils.splitQueryData_(a);var d=a[1],e=[];d&&d.split("&").forEach(function(f){var g=f.indexOf("=");c.hasOwnProperty(0<=g?f.substr(0,g):f)||e.push(f)});a[1]=m.uri.utils.appendQueryData_(e.join("&"),m.uri.utils.buildQueryDataFromMap(c));return m.uri.utils.joinQueryData_(a)}; m.uri.utils.appendPath=function(a,c){m.uri.utils.assertNoFragmentsOrQueries_(a);m.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));m.string.startsWith(c,"/")&&(c=c.substr(1));return""+a+"/"+c};m.uri.utils.setPath=function(a,c){m.string.startsWith(c,"/");m.uri.utils.split(a)};m.uri.utils.StandardQueryParam={RANDOM:"zx"};m.uri.utils.makeUnique=function(a){return m.uri.utils.setParam(a)};m.Uri=function(a,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;a instanceof m.Uri?(this.ignoreCase_=void 0!==c?c:a.ignoreCase_,Pa(this,a.getScheme()),Qa(this,a.getUserInfo()),Ra(this,a.getDomain()),Sa(this,a.getPort()),this.setPath(a.getPath()),N(this,a.getQueryData().clone()),Ta(this,a.getFragment())):a&&(d=m.uri.utils.split(String(a)))?(this.ignoreCase_=!!c,Pa(this,d[m.uri.utils.ComponentIndex.SCHEME]||"",!0), Qa(this,d[m.uri.utils.ComponentIndex.USER_INFO]||"",!0),Ra(this,d[m.uri.utils.ComponentIndex.DOMAIN]||"",!0),Sa(this,d[m.uri.utils.ComponentIndex.PORT]),this.setPath(d[m.uri.utils.ComponentIndex.PATH]||"",!0),N(this,d[m.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),Ta(this,d[m.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new m.Uri.QueryData(null,this.ignoreCase_))};m.Uri.RANDOM_PARAM=m.uri.utils.StandardQueryParam.RANDOM; m.Uri.prototype.toString=function(){var a=[],c=this.getScheme();c&&a.push(m.Uri.encodeSpecialChars_(c,m.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)a.push("//"),(c=this.getUserInfo())&&a.push(m.Uri.encodeSpecialChars_(c,m.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(m.Uri.removeDoubleEncoding_(m.string.urlEncode(d))),d=this.getPort(),null!=d&&a.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&a.push("/"),a.push(m.Uri.encodeSpecialChars_(d, "/"==d.charAt(0)?m.Uri.reDisallowedInAbsolutePath_:m.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&a.push("?",d);(d=this.getFragment())&&a.push("#",m.Uri.encodeSpecialChars_(d,m.Uri.reDisallowedInFragment_));return a.join("")}; m.Uri.prototype.resolve=function(a){var c=this.clone(),d=!!a.scheme_;d?Pa(c,a.getScheme()):d=!!a.userInfo_;d?Qa(c,a.getUserInfo()):d=!!a.domain_;d?Ra(c,a.getDomain()):d=null!=a.port_;var e=a.getPath();if(d)Sa(c,a.getPort());else if(d=!!a.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=m.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==a.queryData_.toString();d?N(c,a.getQueryData().clone()):d=!!a.fragment_; d&&Ta(c,a.getFragment());return c};m.Uri.prototype.clone=function(){return new m.Uri(this)};m.Uri.prototype.getScheme=function(){return this.scheme_};var Pa=function(a,c,d){O(a);a.scheme_=d?m.Uri.decodeOrEmpty_(c,!0):c;a.scheme_&&(a.scheme_=a.scheme_.replace(/:$/,""))};m.Uri.prototype.getUserInfo=function(){return this.userInfo_};var Qa=function(a,c,d){O(a);a.userInfo_=d?m.Uri.decodeOrEmpty_(c):c};m.Uri.prototype.getDomain=function(){return this.domain_}; var Ra=function(a,c,d){O(a);a.domain_=d?m.Uri.decodeOrEmpty_(c,!0):c};m.Uri.prototype.getPort=function(){return this.port_};var Sa=function(a,c){O(a);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);a.port_=c}else a.port_=null};m.Uri.prototype.getPath=function(){return this.path_};m.Uri.prototype.setPath=function(a,c){O(this);this.path_=c?m.Uri.decodeOrEmpty_(a,!0):a}; var N=function(a,c,d){O(a);c instanceof m.Uri.QueryData?(a.queryData_=c,a.queryData_.setIgnoreCase(a.ignoreCase_)):(d||(c=m.Uri.encodeSpecialChars_(c,m.Uri.reDisallowedInQuery_)),a.queryData_=new m.Uri.QueryData(c,a.ignoreCase_))};m.Uri.prototype.getQueryData=function(){return this.queryData_};m.Uri.prototype.getQuery=function(){return this.queryData_.toString()};var P=function(a,c,d){O(a);a.queryData_.set(c,d)};m.Uri.prototype.getFragment=function(){return this.fragment_}; var Ta=function(a,c,d){O(a);a.fragment_=d?m.Uri.decodeOrEmpty_(c):c};m.Uri.prototype.makeUnique=function(){O(this);P(this,m.Uri.RANDOM_PARAM,m.string.getRandomString());return this};m.Uri.prototype.removeParameter=function(a){O(this);this.queryData_.remove(a);return this};var O=function(a){if(a.isReadOnly_)throw Error("Tried to modify a read-only Uri");};m.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a)}; m.Uri.parse=function(a,c){return a instanceof m.Uri?a.clone():new m.Uri(a,c)};m.Uri.create=function(a,c,d,e,f,g,h,l){l=new m.Uri(null,l);a&&Pa(l,a);c&&Qa(l,c);d&&Ra(l,d);e&&Sa(l,e);f&&l.setPath(f);g&&N(l,g);h&&Ta(l,h);return l};m.Uri.resolve=function(a,c){a instanceof m.Uri||(a=m.Uri.parse(a));c instanceof m.Uri||(c=m.Uri.parse(c));return a.resolve(c)}; m.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(m.string.contains(a,"./")||m.string.contains(a,"/.")){var c=m.string.startsWith(a,"/");a=a.split("/");for(var d=[],e=0;e>4&15).toString(16)+(a&15).toString(16)};m.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};m.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;m.Uri.reDisallowedInRelativePath_=/[#\?:]/g;m.Uri.reDisallowedInAbsolutePath_=/[#\?]/g; m.Uri.reDisallowedInQuery_=/[#\?@]/g;m.Uri.reDisallowedInFragment_=/#/g;m.Uri.haveSameDomain=function(a,c){a=m.uri.utils.split(a);c=m.uri.utils.split(c);return a[m.uri.utils.ComponentIndex.DOMAIN]==c[m.uri.utils.ComponentIndex.DOMAIN]&&a[m.uri.utils.ComponentIndex.PORT]==c[m.uri.utils.ComponentIndex.PORT]};m.Uri.QueryData=function(a,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c}; var Q=function(a){a.keyMap_||(a.keyMap_=new m.structs.Map,a.count_=0,a.encodedQuery_&&m.uri.utils.parseQueryData(a.encodedQuery_,function(c,d){a.add(m.string.urlDecode(c),d)}))};m.Uri.QueryData.createFromMap=function(a,c){var d=m.structs.getKeys(a);if("undefined"==typeof d)throw Error("Keys are undefined");c=new m.Uri.QueryData(null,c);a=m.structs.getValues(a);for(var e=0;ea?c>f?c:f:c");d=d.join("")}d=m.dom.createElement_(a,d);e&&("string"===typeof e?d.className=e:Array.isArray(e)?d.className=e.join(" "):m.dom.setProperties(d,e));2a};m.dom.nativelySupportsFocus_=function(a){return a.tagName==m.dom.TagName.A&&a.hasAttribute("href")||a.tagName==m.dom.TagName.INPUT||a.tagName==m.dom.TagName.TEXTAREA||a.tagName==m.dom.TagName.SELECT||a.tagName==m.dom.TagName.BUTTON}; m.dom.hasNonZeroBoundingRect_=function(a){a="function"!==typeof a.getBoundingClientRect||m.userAgent.IE&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect();return null!=a&&0\x3c/script>