var a,COMPILED=true,goog=goog||{};goog.global=this;goog.DEBUG=true;goog.LOCALE="en";goog.evalWorksForGlobals_=null;goog.provide=function(b){if(!COMPILED){if(goog.getObjectByName(b)&&!goog.implicitNamespaces_[b])throw Error('Namespace "'+b+'" already declared.');for(var c=b;c=c.substring(0,c.lastIndexOf("."));)goog.implicitNamespaces_[c]=true}goog.exportPath_(b)};if(!COMPILED)goog.implicitNamespaces_={};
goog.exportPath_=function(b,c,d){b=b.split(".");d=d||goog.global;!(b[0]in d)&&d.execScript&&d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)if(!b.length&&goog.isDef(c))d[e]=c;else d=d[e]?d[e]:(d[e]={})};goog.getObjectByName=function(b,c){b=b.split(".");c=c||goog.global;for(var d;d=b.shift();)if(c[d])c=c[d];else return null;return c};goog.globalize=function(b,c){c=c||goog.global;for(var d in b)c[d]=b[d]};
goog.addDependency=function(b,c,d){if(!COMPILED){var e;b=b.replace(/\\/g,"/");for(var f=goog.dependencies_,g=0;e=c[g];g++){f.nameToPath[e]=b;b in f.pathToNames||(f.pathToNames[b]={});f.pathToNames[b][e]=true}for(e=0;c=d[e];e++){b in f.requires||(f.requires[b]={});f.requires[b][c]=true}}};
goog.require=function(b){if(!COMPILED)if(!goog.getObjectByName(b)){var c=goog.getPathFromDeps_(b);if(c){goog.included_[c]=true;goog.writeScripts_()}else{b="goog.require could not find: "+b;goog.global.console&&goog.global.console.error(b);throw Error(b);}}};goog.useStrictRequires=false;goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(b){return b};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};
goog.addSingletonGetter=function(b){b.getInstance=function(){return b.instance_||(b.instance_=new b)}};
if(!COMPILED){goog.included_={};goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}};goog.inHtmlDocument_=function(){var b=goog.global.document;return typeof b!="undefined"&&"write"in b};goog.findBasePath_=function(){if(goog.inHtmlDocument_()){var b=goog.global.document;if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else{b=b.getElementsByTagName("script");for(var c=b.length-1;c>=0;--c){var d=b[c].src,e=d.length;if(d.substr(e-7)=="base.js"){goog.basePath=
d.substr(0,e-7);return}}}}};goog.writeScriptTag_=function(b){if(goog.inHtmlDocument_()&&!goog.dependencies_.written[b]){goog.dependencies_.written[b]=true;goog.global.document.write('<script type="text/javascript" src="'+b+'"><\/script>')}};goog.writeScripts_=function(){function b(g){if(!(g in e.written)){if(!(g in e.visited)){e.visited[g]=true;if(g in e.requires)for(var h in e.requires[g])if(h in e.nameToPath)b(e.nameToPath[h]);else if(!goog.getObjectByName(h))throw Error("Undefined nameToPath for "+
h);}if(!(g in d)){d[g]=true;c.push(g)}}}var c=[],d={},e=goog.dependencies_;for(var f in goog.included_)e.written[f]||b(f);for(f=0;f<c.length;f++)if(c[f])goog.writeScriptTag_(goog.basePath+c[f]);else throw Error("Undefined script input");};goog.getPathFromDeps_=function(b){return b in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[b]:null};goog.findBasePath_();goog.global.CLOSURE_NO_DEPS||goog.writeScriptTag_(goog.basePath+"deps.js")}
goog.typeOf=function(b){var c=typeof b;if(c=="object")if(b){if(b instanceof Array||!(b instanceof Object)&&Object.prototype.toString.call(b)=="[object Array]"||typeof b.length=="number"&&typeof b.splice!="undefined"&&typeof b.propertyIsEnumerable!="undefined"&&!b.propertyIsEnumerable("splice"))return"array";if(!(b instanceof Object)&&(Object.prototype.toString.call(b)=="[object Function]"||typeof b.call!="undefined"&&typeof b.propertyIsEnumerable!="undefined"&&!b.propertyIsEnumerable("call")))return"function"}else return"null";
else if(c=="function"&&typeof b.call=="undefined")return"object";return c};goog.propertyIsEnumerableCustom_=function(b,c){if(c in b)for(var d in b)if(d==c&&Object.prototype.hasOwnProperty.call(b,c))return true;return false};goog.propertyIsEnumerable_=function(b,c){return b instanceof Object?Object.prototype.propertyIsEnumerable.call(b,c):goog.propertyIsEnumerableCustom_(b,c)};goog.isDef=function(b){return b!==undefined};goog.isNull=function(b){return b===null};
goog.isDefAndNotNull=function(b){return b!=null};goog.isArray=function(b){return goog.typeOf(b)=="array"};goog.isArrayLike=function(b){var c=goog.typeOf(b);return c=="array"||c=="object"&&typeof b.length=="number"};goog.isDateLike=function(b){return goog.isObject(b)&&typeof b.getFullYear=="function"};goog.isString=function(b){return typeof b=="string"};goog.isBoolean=function(b){return typeof b=="boolean"};goog.isNumber=function(b){return typeof b=="number"};
goog.isFunction=function(b){return goog.typeOf(b)=="function"};goog.isObject=function(b){b=goog.typeOf(b);return b=="object"||b=="array"||b=="function"};goog.getHashCode=function(b){if(b.hasOwnProperty&&b.hasOwnProperty(goog.HASH_CODE_PROPERTY_))return b[goog.HASH_CODE_PROPERTY_];b[goog.HASH_CODE_PROPERTY_]||(b[goog.HASH_CODE_PROPERTY_]=++goog.hashCodeCounter_);return b[goog.HASH_CODE_PROPERTY_]};goog.removeHashCode=function(b){"removeAttribute"in b&&b.removeAttribute(goog.HASH_CODE_PROPERTY_);try{delete b[goog.HASH_CODE_PROPERTY_]}catch(c){}};
goog.HASH_CODE_PROPERTY_="closure_hashCode_"+Math.floor(Math.random()*2147483648).toString(36);goog.hashCodeCounter_=0;goog.cloneObject=function(b){var c=goog.typeOf(b);if(c=="object"||c=="array"){if(b.clone)return b.clone.call(b);c=c=="array"?[]:{};for(var d in b)c[d]=goog.cloneObject(b[d]);return c}return b};
goog.bind=function(b,c){var d=c||goog.global;if(arguments.length>2){var e=Array.prototype.slice.call(arguments,2);return function(){var f=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(f,e);return b.apply(d,f)}}else return function(){return b.apply(d,arguments)}};goog.partial=function(b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=Array.prototype.slice.call(arguments);d.unshift.apply(d,c);return b.apply(this,d)}};
goog.mixin=function(b,c){for(var d in c)b[d]=c[d]};goog.now=Date.now||function(){return+new Date};
goog.globalEval=function(b){if(goog.global.execScript)goog.global.execScript(b,"JavaScript");else if(goog.global.eval){if(goog.evalWorksForGlobals_==null){goog.global.eval("var _et_ = 1;");if(typeof goog.global._et_!="undefined"){delete goog.global._et_;goog.evalWorksForGlobals_=true}else goog.evalWorksForGlobals_=false}if(goog.evalWorksForGlobals_)goog.global.eval(b);else{var c=goog.global.document,d=c.createElement("script");d.type="text/javascript";d.defer=false;d.appendChild(c.createTextNode(b));
c.body.appendChild(d);c.body.removeChild(d)}}else throw Error("goog.globalEval not available");};goog.typedef=true;goog.getCssName=function(b,c){b=b+(c?"-"+c:"");return goog.cssNameMapping_&&b in goog.cssNameMapping_?goog.cssNameMapping_[b]:b};goog.setCssNameMapping=function(b){goog.cssNameMapping_=b};goog.getMsg=function(b,c){c=c||{};for(var d in c)b=b.replace(new RegExp("\\{\\$"+d+"\\}","gi"),c[d]);return b};goog.exportSymbol=function(b,c,d){goog.exportPath_(b,c,d)};
goog.exportProperty=function(b,c,d){b[c]=d};goog.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b};goog.array={};goog.array.ArrayLike=goog.typedef;goog.array.peek=function(b){return b[b.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
goog.array.indexOf=goog.array.ARRAY_PROTOTYPE_.indexOf?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.indexOf.call(b,c,d)}:function(b,c,d){for(d=d==null?0:d<0?Math.max(0,b.length+d):d;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
goog.array.lastIndexOf=goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(b,c,d==null?b.length-1:d)}:function(b,c,d){d=d==null?b.length-1:d;if(d<0)d=Math.max(0,b.length+d);for(d=d;d>=0;d--)if(d in b&&b[d]===c)return d;return-1};
goog.array.forEach=goog.array.ARRAY_PROTOTYPE_.forEach?function(b,c,d){goog.array.ARRAY_PROTOTYPE_.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};goog.array.forEachRight=function(b,c,d){var e=b.length,f=goog.isString(b)?b.split(""):b;for(e=e-1;e>=0;--e)e in f&&c.call(d,f[e],e,b)};
goog.array.filter=goog.array.ARRAY_PROTOTYPE_.filter?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=goog.isString(b)?b.split(""):b,i=0;i<e;i++)if(i in h){var j=h[i];if(c.call(d,j,i,b))f[g++]=j}return f};
goog.array.map=goog.array.ARRAY_PROTOTYPE_.map?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=goog.isString(b)?b.split(""):b,i=0;i<e;i++)if(i in h)f[g++]=c.call(d,h[i],i,b);return f};goog.array.reduce=function(b,c,d,e){if(b.reduce)return e?b.reduce(goog.bind(c,e),d):b.reduce(c,d);var f=d;goog.array.forEach(b,function(g,h){f=c.call(e,f,g,h,b)});return f};
goog.array.reduceRight=function(b,c,d,e){if(b.reduceRight)return e?b.reduceRight(goog.bind(c,e),d):b.reduceRight(c,d);var f=d;goog.array.forEachRight(b,function(g,h){f=c.call(e,f,g,h,b)});return f};goog.array.some=goog.array.ARRAY_PROTOTYPE_.some?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return true;return false};
goog.array.every=goog.array.ARRAY_PROTOTYPE_.every?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return false;return true};goog.array.find=function(b,c,d){c=goog.array.findIndex(b,c,d);return c<0?null:goog.isString(b)?b.charAt(c):b[c]};
goog.array.findIndex=function(b,c,d){for(var e=b.length,f=goog.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};goog.array.findRight=function(b,c,d){c=goog.array.findIndexRight(b,c,d);return c<0?null:goog.isString(b)?b.charAt(c):b[c]};goog.array.findIndexRight=function(b,c,d){var e=b.length,f=goog.isString(b)?b.split(""):b;for(e=e-1;e>=0;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};goog.array.contains=function(b,c){return goog.array.indexOf(b,c)>=0};
goog.array.isEmpty=function(b){return b.length==0};goog.array.clear=function(b){if(!goog.isArray(b))for(var c=b.length-1;c>=0;c--)delete b[c];b.length=0};goog.array.insert=function(b,c){goog.array.contains(b,c)||b.push(c)};goog.array.insertAt=function(b,c,d){goog.array.splice(b,d,0,c)};goog.array.insertArrayAt=function(b,c,d){goog.partial(goog.array.splice,b,d,0).apply(null,c)};
goog.array.insertBefore=function(b,c,d){var e;arguments.length==2||(e=goog.array.indexOf(b,d))<0?b.push(c):goog.array.insertAt(b,c,e)};goog.array.remove=function(b,c){c=goog.array.indexOf(b,c);var d;if(d=c>=0)goog.array.removeAt(b,c);return d};goog.array.removeAt=function(b,c){return goog.array.ARRAY_PROTOTYPE_.splice.call(b,c,1).length==1};goog.array.removeIf=function(b,c,d){c=goog.array.findIndex(b,c,d);if(c>=0){goog.array.removeAt(b,c);return true}return false};
goog.array.clone=function(b){if(goog.isArray(b))return b.concat();else{for(var c=[],d=0,e=b.length;d<e;d++)c[d]=b[d];return c}};goog.array.toArray=function(b){if(goog.isArray(b))return b.concat();return goog.array.clone(b)};goog.array.extend=function(b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){d=goog.array.toArray(d);b.push.apply(b,d)}else b.push(d)}};goog.array.splice=function(b){return goog.array.ARRAY_PROTOTYPE_.splice.apply(b,goog.array.slice(arguments,1))};
goog.array.slice=function(b,c,d){return arguments.length<=2?goog.array.ARRAY_PROTOTYPE_.slice.call(b,c):goog.array.ARRAY_PROTOTYPE_.slice.call(b,c,d)};goog.array.removeDuplicates=function(b,c){c=c||b;for(var d={},e=0,f=0;f<b.length;){var g=b[f++],h=goog.isObject(g)?goog.getHashCode(g):g;if(!Object.prototype.hasOwnProperty.call(d,h)){d[h]=true;c[e++]=g}}c.length=e};
goog.array.binarySearch=function(b,c,d){var e=0,f=b.length-1;for(d=d||goog.array.defaultCompare;e<=f;){var g=e+f>>1,h=d(c,b[g]);if(h>0)e=g+1;else if(h<0)f=g-1;else return g}return-(e+1)};goog.array.sort=function(b,c){goog.array.ARRAY_PROTOTYPE_.sort.call(b,c||goog.array.defaultCompare)};
goog.array.stableSort=function(b,c){function d(g,h){return f(g.value,h.value)||g.index-h.index}for(var e=0;e<b.length;e++)b[e]={index:e,value:b[e]};var f=c||goog.array.defaultCompare;goog.array.sort(b,d);for(e=0;e<b.length;e++)b[e]=b[e].value};goog.array.sortObjectsByKey=function(b,c,d){var e=d||goog.array.defaultCompare;goog.array.sort(b,function(f,g){return e(f[c],g[c])})};
goog.array.equals=function(b,c,d){if(!goog.isArrayLike(b)||!goog.isArrayLike(c)||b.length!=c.length)return false;var e=b.length;d=d||goog.array.defaultCompareEquality;for(var f=0;f<e;f++)if(!d(b[f],c[f]))return false;return true};goog.array.compare=function(b,c,d){return goog.array.equals(b,c,d)};goog.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};goog.array.defaultCompareEquality=function(b,c){return b===c};
goog.array.binaryInsert=function(b,c,d){d=goog.array.binarySearch(b,c,d);if(d<0){goog.array.insertAt(b,c,-(d+1));return true}return false};goog.array.binaryRemove=function(b,c,d){c=goog.array.binarySearch(b,c,d);return c>=0?goog.array.removeAt(b,c):false};goog.array.bucket=function(b,c){for(var d={},e=0;e<b.length;e++){var f=b[e],g=c(f,e,b);if(goog.isDef(g))(d[g]||(d[g]=[])).push(f)}return d};goog.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};
goog.array.flatten=function(){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};goog.array.rotate=function(b,c){if(b.length){c%=b.length;if(c>0)goog.array.ARRAY_PROTOTYPE_.unshift.apply(b,b.splice(-c,c));else c<0&&goog.array.ARRAY_PROTOTYPE_.push.apply(b,b.splice(0,-c))}return b};goog.dom={};
goog.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",DD:"DD",DEL:"DEL",DFN:"DFN",DIR:"DIR",DIV:"DIV",DL:"DL",DT:"DT",EM:"EM",FIELDSET:"FIELDSET",FONT:"FONT",FORM:"FORM",FRAME:"FRAME",FRAMESET:"FRAMESET",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",
HEAD:"HEAD",HR:"HR",HTML:"HTML",I:"I",IFRAME:"IFRAME",IMG:"IMG",INPUT:"INPUT",INS:"INS",ISINDEX:"ISINDEX",KBD:"KBD",LABEL:"LABEL",LEGEND:"LEGEND",LI:"LI",LINK:"LINK",MAP:"MAP",MENU:"MENU",META:"META",NOFRAMES:"NOFRAMES",NOSCRIPT:"NOSCRIPT",OBJECT:"OBJECT",OL:"OL",OPTGROUP:"OPTGROUP",OPTION:"OPTION",P:"P",PARAM:"PARAM",PRE:"PRE",Q:"Q",S:"S",SAMP:"SAMP",SCRIPT:"SCRIPT",SELECT:"SELECT",SMALL:"SMALL",SPAN:"SPAN",STRIKE:"STRIKE",STRONG:"STRONG",STYLE:"STYLE",SUB:"SUB",SUP:"SUP",TABLE:"TABLE",TBODY:"TBODY",
TD:"TD",TEXTAREA:"TEXTAREA",TFOOT:"TFOOT",TH:"TH",THEAD:"THEAD",TITLE:"TITLE",TR:"TR",TT:"TT",U:"U",UL:"UL",VAR:"VAR"};goog.dom.classes={};goog.dom.classes.set=function(b,c){b.className=c};goog.dom.classes.get=function(b){return(b=b.className)&&typeof b.split=="function"?b.split(" "):[]};goog.dom.classes.add=function(b){var c=goog.dom.classes.get(b),d=goog.array.slice(arguments,1);d=goog.dom.classes.add_(c,d);b.className=c.join(" ");return d};
goog.dom.classes.remove=function(b){var c=goog.dom.classes.get(b),d=goog.array.slice(arguments,1);d=goog.dom.classes.remove_(c,d);b.className=c.join(" ");return d};goog.dom.classes.add_=function(b,c){for(var d=0,e=0;e<c.length;e++)if(!goog.array.contains(b,c[e])){b.push(c[e]);d++}return d==c.length};goog.dom.classes.remove_=function(b,c){for(var d=0,e=0;e<b.length;e++)if(goog.array.contains(c,b[e])){goog.array.splice(b,e--,1);d++}return d==c.length};
goog.dom.classes.swap=function(b,c,d){for(var e=goog.dom.classes.get(b),f=false,g=0;g<e.length;g++)if(e[g]==c){goog.array.splice(e,g--,1);f=true}if(f){e.push(d);b.className=e.join(" ")}return f};goog.dom.classes.addRemove=function(b,c,d){var e=goog.dom.classes.get(b);if(goog.isString(c))goog.array.remove(e,c);else goog.isArray(c)&&goog.dom.classes.remove_(e,c);if(goog.isString(d)&&!goog.array.contains(e,d))e.push(d);else goog.isArray(d)&&goog.dom.classes.add_(e,d);b.className=e.join(" ")};
goog.dom.classes.has=function(b,c){return goog.array.contains(goog.dom.classes.get(b),c)};goog.dom.classes.enable=function(b,c,d){d?goog.dom.classes.add(b,c):goog.dom.classes.remove(b,c)};goog.dom.classes.toggle=function(b,c){var d=!goog.dom.classes.has(b,c);goog.dom.classes.enable(b,c,d);return d};goog.math={};goog.math.Coordinate=function(b,c){this.x=goog.isDef(b)?b:0;this.y=goog.isDef(c)?c:0};goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)};
if(goog.DEBUG)goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"};goog.math.Coordinate.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.x==c.x&&b.y==c.y};goog.math.Coordinate.distance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};goog.math.Coordinate.squaredDistance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};goog.math.Coordinate.difference=function(b,c){return new goog.math.Coordinate(b.x-c.x,b.y-c.y)};
goog.math.Coordinate.sum=function(b,c){return new goog.math.Coordinate(b.x+c.x,b.y+c.y)};goog.math.Size=function(b,c){this.width=b;this.height=c};goog.math.Size.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.width==c.width&&b.height==c.height};goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)};if(goog.DEBUG)goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"};a=goog.math.Size.prototype;
a.getLongest=function(){return Math.max(this.width,this.height)};a.getShortest=function(){return Math.min(this.width,this.height)};a.area=function(){return this.width*this.height};a.aspectRatio=function(){return this.width/this.height};a.isEmpty=function(){return!this.area()};a.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};a.fitsInside=function(b){return this.width<=b.width&&this.height<=b.height};
a.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};a.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};a.scale=function(b){this.width*=b;this.height*=b;return this};a.scaleToFit=function(b){return this.scale(this.aspectRatio()>b.aspectRatio()?b.width/this.width:b.height/this.height)};goog.object={};goog.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};
goog.object.filter=function(b,c,d){var e={};for(var f in b)if(c.call(d,b[f],f,b))e[f]=b[f];return e};goog.object.map=function(b,c,d){var e={};for(var f in b)e[f]=c.call(d,b[f],f,b);return e};goog.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return true;return false};goog.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return false;return true};goog.object.getCount=function(b){var c=0;for(var d in b)c++;return c};goog.object.getAnyKey=function(b){for(var c in b)return c};
goog.object.getAnyValue=function(b){for(var c in b)return b[c]};goog.object.contains=function(b,c){return goog.object.containsValue(b,c)};goog.object.getValues=function(b){var c=[],d=0;for(var e in b)c[d++]=b[e];return c};goog.object.getKeys=function(b){var c=[],d=0;for(var e in b)c[d++]=e;return c};goog.object.containsKey=function(b,c){return c in b};goog.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return true;return false};
goog.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};goog.object.findValue=function(b,c,d){return(c=goog.object.findKey(b,c,d))&&b[c]};goog.object.isEmpty=function(b){for(var c in b)return false;return true};goog.object.clear=function(b){for(var c=goog.object.getKeys(b),d=c.length-1;d>=0;d--)goog.object.remove(b,c[d])};goog.object.remove=function(b,c){var d;if(d=c in b)delete b[c];return d};
goog.object.add=function(b,c,d){if(c in b)throw Error('The object already contains the key "'+c+'"');goog.object.set(b,c,d)};goog.object.get=function(b,c,d){if(c in b)return b[c];return d};goog.object.set=function(b,c,d){b[c]=d};goog.object.setIfUndefined=function(b,c,d){return c in b?b[c]:(b[c]=d)};goog.object.clone=function(b){var c={};for(var d in b)c[d]=b[d];return c};goog.object.transpose=function(b){var c={};for(var d in b)c[b[d]]=d;return c};
goog.object.PROTOTYPE_FIELDS_=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"];goog.object.extend=function(b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)b[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++){c=goog.object.PROTOTYPE_FIELDS_[f];if(Object.prototype.hasOwnProperty.call(d,c))b[c]=d[c]}}};
goog.object.create=function(){var b=arguments.length;if(b==1&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(){var b=arguments.length;if(b==1&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=true;return c};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};
goog.string.startsWith=function(b,c){return b.indexOf(c)==0};goog.string.endsWith=function(b,c){var d=b.length-c.length;return d>=0&&b.lastIndexOf(c,d)==d};goog.string.caseInsensitiveStartsWith=function(b,c){return goog.string.caseInsensitiveCompare(c,b.substr(0,c.length))==0};goog.string.caseInsensitiveEndsWith=function(b,c){return goog.string.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))==0};
goog.string.subs=function(b){for(var c=1;c<arguments.length;c++){var d=String(arguments[c]).replace(/\$/g,"$$$$");b=b.replace(/\%s/,d)}return b};goog.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(b){return/^[\s\xa0]*$/.test(b)};goog.string.isEmptySafe=function(b){return goog.string.isEmpty(goog.string.makeSafe(b))};goog.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};goog.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};
goog.string.isNumeric=function(b){return!/[^0-9]/.test(b)};goog.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};goog.string.isSpace=function(b){return b==" "};goog.string.isUnicodeChar=function(b){return b.length==1&&b>=" "&&b<="~"||b>="\u0080"&&b<="\ufffd"};goog.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};
goog.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};goog.string.trim=function(b){return b.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};goog.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};
goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;goog.string.numerateCompare=function(b,c){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=c.toLowerCase().match(goog.string.numerateCompareRegExp_),f=Math.min(d.length,e.length),g=0;g<f;g++){var h=d[g],i=e[g];if(h!=i){b=parseInt(h,10);if(!isNaN(b)){c=parseInt(i,10);if(!isNaN(c)&&b-c)return b-c}return h<i?-1:1}}if(d.length!=e.length)return d.length-e.length;return b<c?-1:1};
goog.string.encodeUriRegExp_=/^[a-zA-Z0-9\-_.!~*'()]*$/;goog.string.urlEncode=function(b){b=String(b);if(!goog.string.encodeUriRegExp_.test(b))return encodeURIComponent(b);return b};goog.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};goog.string.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
goog.string.htmlEscape=function(b,c){if(c)return b.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");else{if(!goog.string.allRe_.test(b))return b;if(b.indexOf("&")!=-1)b=b.replace(goog.string.amperRe_,"&amp;");if(b.indexOf("<")!=-1)b=b.replace(goog.string.ltRe_,"&lt;");if(b.indexOf(">")!=-1)b=b.replace(goog.string.gtRe_,"&gt;");if(b.indexOf('"')!=-1)b=b.replace(goog.string.quotRe_,"&quot;");return b}};
goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(b){if(goog.string.contains(b,"&"))return"document"in goog.global&&!goog.string.contains(b,"<")?goog.string.unescapeEntitiesUsingDom_(b):goog.string.unescapePureXmlEntities_(b);return b};
goog.string.unescapeEntitiesUsingDom_=function(b){var c=goog.global.document.createElement("a");c.innerHTML=b;c[goog.string.NORMALIZE_FN_]&&c[goog.string.NORMALIZE_FN_]();b=c.firstChild.nodeValue;c.innerHTML="";return b};goog.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if(d.charAt(0)=="#"){d=Number("0"+d.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return c}})};
goog.string.NORMALIZE_FN_="normalize";goog.string.whitespaceEscape=function(b,c){return goog.string.newLineToBr(b.replace(/  /g," &#160;"),c)};goog.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=d==1?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};goog.string.truncate=function(b,c,d){if(d)b=goog.string.unescapeEntities(b);if(b.length>c)b=b.substring(0,c-3)+"...";if(d)b=goog.string.htmlEscape(b);return b};
goog.string.truncateMiddle=function(b,c,d){if(d)b=goog.string.unescapeEntities(b);if(b.length>c){var e=Math.floor(c/2),f=b.length-e;e+=c%2;b=b.substring(0,e)+"..."+b.substring(f)}if(d)b=goog.string.htmlEscape(b);return b};goog.string.jsEscapeCache_={"\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\x0B",'"':'\\"',"'":"\\'","\\":"\\\\"};
goog.string.quote=function(b){b=String(b);if(b.quote)return b.quote();else{for(var c=['"'],d=0;d<b.length;d++)c[d+1]=goog.string.escapeChar(b.charAt(d));c.push('"');return c.join("")}};goog.string.escapeChar=function(b){if(b in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[b];var c=b,d=b.charCodeAt(0);if(d>31&&d<127)c=b;else{if(d<256){c="\\x";if(d<16||d>256)c+="0"}else{c="\\u";if(d<4096)c+="0"}c+=d.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[b]=c};
goog.string.toMap=function(b){for(var c={},d=0;d<b.length;d++)c[b.charAt(d)]=true;return c};goog.string.contains=function(b,c){return b.indexOf(c)!=-1};goog.string.removeAt=function(b,c,d){var e=b;if(c>=0&&c<b.length&&d>0)e=b.substr(0,c)+b.substr(c+d,b.length-c-d);return e};goog.string.remove=function(b,c){c=new RegExp(goog.string.regExpEscape(c),"");return b.replace(c,"")};goog.string.removeAll=function(b,c){c=new RegExp(goog.string.regExpEscape(c),"g");return b.replace(c,"")};
goog.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(b,c){return(new Array(c+1)).join(b)};goog.string.padNumber=function(b,c,d){b=goog.isDef(d)?b.toFixed(d):String(b);d=b.indexOf(".");if(d==-1)d=b.length;return goog.string.repeat("0",Math.max(0,c-d))+b};goog.string.makeSafe=function(b){return b==null?"":String(b)};goog.string.buildString=function(){return Array.prototype.join.call(arguments,"")};
goog.string.getRandomString=function(){return Math.floor(Math.random()*2147483648).toString(36)+(Math.floor(Math.random()*2147483648)^(new Date).getTime()).toString(36)};
goog.string.compareVersions=function(b,c){var d=0;b=goog.string.trim(String(b)).split(".");c=goog.string.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;d==0&&f<e;f++){var g=b[f]||"",h=c[f]||"",i=new RegExp("(\\d*)(\\D*)","g"),j=new RegExp("(\\d*)(\\D*)","g");do{var l=i.exec(g)||["","",""],k=j.exec(h)||["","",""];if(l[0].length==0&&k[0].length==0)break;d=l[1].length==0?0:parseInt(l[1],10);var n=k[1].length==0?0:parseInt(k[1],10);d=goog.string.compareElements_(d,n)||goog.string.compareElements_(l[2].length==
0,k[2].length==0)||goog.string.compareElements_(l[2],k[2])}while(d==0)}return d};goog.string.compareElements_=function(b,c){if(b<c)return-1;else if(b>c)return 1;return 0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d){c=31*c+b.charCodeAt(d);c%=goog.string.HASHCODE_MAX_}return c};goog.string.uniqueStringCounter_=goog.now();goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
goog.string.toNumber=function(b){var c=Number(b);if(c==0&&goog.string.isEmpty(b))return NaN;return c};goog.userAgent={};goog.userAgent.ASSUME_IE=false;goog.userAgent.ASSUME_GECKO=false;goog.userAgent.ASSUME_WEBKIT=false;goog.userAgent.ASSUME_MOBILE_WEBKIT=false;goog.userAgent.ASSUME_OPERA=false;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;
goog.userAgent.getUserAgentString=function(){return goog.global.navigator?goog.global.navigator.userAgent:null};goog.userAgent.getNavigator=function(){return goog.global.navigator};
goog.userAgent.init_=function(){goog.userAgent.detectedOpera_=false;goog.userAgent.detectedIe_=false;goog.userAgent.detectedWebkit_=false;goog.userAgent.detectedMobile_=false;goog.userAgent.detectedGecko_=false;var b;if(!goog.userAgent.BROWSER_KNOWN_&&(b=goog.userAgent.getUserAgentString())){var c=goog.userAgent.getNavigator();goog.userAgent.detectedOpera_=b.indexOf("Opera")==0;goog.userAgent.detectedIe_=!goog.userAgent.detectedOpera_&&b.indexOf("MSIE")!=-1;goog.userAgent.detectedWebkit_=!goog.userAgent.detectedOpera_&&
b.indexOf("WebKit")!=-1;goog.userAgent.detectedMobile_=goog.userAgent.detectedWebkit_&&b.indexOf("Mobile")!=-1;goog.userAgent.detectedGecko_=!goog.userAgent.detectedOpera_&&!goog.userAgent.detectedWebkit_&&c.product=="Gecko"}};goog.userAgent.BROWSER_KNOWN_||goog.userAgent.init_();goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.userAgent.detectedOpera_;goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.userAgent.detectedIe_;
goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.userAgent.detectedGecko_;goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.userAgent.detectedWebkit_;goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.detectedMobile_;goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var b=goog.userAgent.getNavigator();return b&&b.platform||""};
goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=false;goog.userAgent.ASSUME_WINDOWS=false;goog.userAgent.ASSUME_LINUX=false;goog.userAgent.ASSUME_X11=false;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11;
goog.userAgent.initPlatform_=function(){goog.userAgent.detectedMac_=goog.string.contains(goog.userAgent.PLATFORM,"Mac");goog.userAgent.detectedWindows_=goog.string.contains(goog.userAgent.PLATFORM,"Win");goog.userAgent.detectedLinux_=goog.string.contains(goog.userAgent.PLATFORM,"Linux");goog.userAgent.detectedX11_=!!goog.userAgent.getNavigator()&&goog.string.contains(goog.userAgent.getNavigator().appVersion||"","X11")};goog.userAgent.PLATFORM_KNOWN_||goog.userAgent.initPlatform_();
goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.userAgent.detectedMac_;goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.userAgent.detectedWindows_;goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.detectedLinux_;goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.detectedX11_;
goog.userAgent.determineVersion_=function(){var b="",c;if(goog.userAgent.OPERA&&goog.global.opera){b=goog.global.opera.version;b=typeof b=="function"?b():b}else{if(goog.userAgent.GECKO)c=/rv\:([^\);]+)(\)|;)/;else if(goog.userAgent.IE)c=/MSIE\s+([^\);]+)(\)|;)/;else if(goog.userAgent.WEBKIT)c=/WebKit\/(\S+)/;if(c)b=(b=c.exec(goog.userAgent.getUserAgentString()))?b[1]:""}return b};goog.userAgent.VERSION=goog.userAgent.determineVersion_();
goog.userAgent.compare=function(b,c){return goog.string.compareVersions(b,c)};goog.userAgent.isVersionCache_={};goog.userAgent.isVersion=function(b){return goog.userAgent.isVersionCache_[b]||(goog.userAgent.isVersionCache_[b]=goog.string.compareVersions(goog.userAgent.VERSION,b)>=0)};goog.dom.ASSUME_QUIRKS_MODE=false;goog.dom.ASSUME_STANDARDS_MODE=false;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;
goog.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};goog.dom.getDomHelper=function(b){return b?new goog.dom.DomHelper(goog.dom.getOwnerDocument(b)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};goog.dom.getDocument=function(){return document};goog.dom.getElement=function(b){return goog.isString(b)?document.getElementById(b):b};
goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagNameAndClass=function(b,c,d){return goog.dom.getElementsByTagNameAndClass_(document,b,c,d)};
goog.dom.getElementsByTagNameAndClass_=function(b,c,d,e){e=e||b;c=c&&c!="*"?c.toLowerCase():"";if(e.querySelectorAll&&(c||d)&&(!goog.userAgent.WEBKIT||goog.dom.isCss1CompatMode_(b)||goog.userAgent.isVersion("528")))return e.querySelectorAll(c+(d?"."+d:""));if(d&&e.getElementsByClassName){b=e.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)if(c==h.nodeName.toLowerCase())e[f++]=h;e.length=f;return e}else return b}b=e.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++){c=
h.className;if(typeof c.split=="function"&&goog.array.contains(c.split(" "),d))e[f++]=h}e.length=f;return e}else return b};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;goog.dom.setProperties=function(b,c){goog.object.forEach(c,function(d,e){if(e=="style")b.style.cssText=d;else if(e=="class")b.className=d;else if(e=="for")b.htmlFor=d;else if(e in goog.dom.DIRECT_ATTRIBUTE_MAP_)b.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[e],d);else b[e]=d})};
goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder",type:"type"};goog.dom.getViewportSize=function(b){return goog.dom.getViewportSize_(b||window)};
goog.dom.getViewportSize_=function(b){var c=b.document;if(goog.userAgent.WEBKIT&&!goog.userAgent.isVersion("500")&&!goog.userAgent.MOBILE){if(typeof b.innerHeight=="undefined")b=window;c=b.innerHeight;var d=b.document.documentElement.scrollHeight;if(b==b.top)if(d<c)c-=15;return new goog.math.Size(b.innerWidth,c)}b=goog.dom.isCss1CompatMode_(c)&&(!goog.userAgent.OPERA||goog.userAgent.OPERA&&goog.userAgent.isVersion("9.50"))?c.documentElement:c.body;return new goog.math.Size(b.clientWidth,b.clientHeight)};
goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeight_=function(b){var c=b.document,d=0;if(c){b=goog.dom.getViewportSize_(b).height;d=c.body;var e=c.documentElement;if(goog.dom.isCss1CompatMode_(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;if(e.clientHeight!=f){c=d.scrollHeight;f=d.offsetHeight}d=c>b?c>f?c:f:c<f?c:f}}return d};
goog.dom.getPageScroll=function(b){return goog.dom.getDomHelper((b||goog.global||window).document).getDocumentScroll()};goog.dom.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(document)};goog.dom.getDocumentScroll_=function(b){b=goog.dom.getDocumentScrollElement_(b);return new goog.math.Coordinate(b.scrollLeft,b.scrollTop)};goog.dom.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(document)};
goog.dom.getDocumentScrollElement_=function(b){return!goog.userAgent.WEBKIT&&goog.dom.isCss1CompatMode_(b)?b.documentElement:b.body};goog.dom.getWindow=function(b){return b?goog.dom.getWindow_(b):window};goog.dom.getWindow_=function(b){if(b.parentWindow)return b.parentWindow;if(goog.userAgent.WEBKIT&&!goog.userAgent.isVersion("500")&&!goog.userAgent.MOBILE){var c=b.createElement("script");c.innerHTML="document.parentWindow=window";var d=b.documentElement;d.appendChild(c);d.removeChild(c);return b.parentWindow}return b.defaultView};
goog.dom.createDom=function(){return goog.dom.createDom_(document,arguments)};
goog.dom.createDom_=function(b,c){var d=c[0],e=c[1];if(goog.userAgent.IE&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',goog.string.htmlEscape(e.name),'"');if(e.type){d.push(' type="',goog.string.htmlEscape(e.type),'"');e=goog.cloneObject(e);delete e.type}d.push(">");d=d.join("")}var f=b.createElement(d);if(e)if(goog.isString(e))f.className=e;else goog.dom.setProperties(f,e);if(c.length>2){function g(h){if(h)f.appendChild(goog.isString(h)?b.createTextNode(h):h)}for(e=2;e<c.length;e++){d=
c[e];goog.isArrayLike(d)&&!goog.dom.isNodeLike(d)?goog.array.forEach(goog.dom.isNodeList(d)?goog.array.clone(d):d,g):g(d)}}return f};goog.dom.$dom=goog.dom.createDom;goog.dom.createElement=function(b){return document.createElement(b)};goog.dom.createTextNode=function(b){return document.createTextNode(b)};goog.dom.htmlToDocumentFragment=function(b){return goog.dom.htmlToDocumentFragment_(document,b)};
goog.dom.htmlToDocumentFragment_=function(b,c){var d=b.createElement("div");d.innerHTML=c;if(d.childNodes.length==1)return d.firstChild;else{for(b=b.createDocumentFragment();d.firstChild;)b.appendChild(d.firstChild);return b}};goog.dom.getCompatMode=function(){return goog.dom.isCss1CompatMode()?"CSS1Compat":"BackCompat"};goog.dom.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(document)};
goog.dom.isCss1CompatMode_=function(b){if(goog.dom.COMPAT_MODE_KNOWN_)return goog.dom.ASSUME_STANDARDS_MODE;return b.compatMode=="CSS1Compat"};goog.dom.canHaveChildren=function(b){if(b.nodeType!=goog.dom.NodeType.ELEMENT)return false;if("canHaveChildren"in b)return b.canHaveChildren;switch(b.tagName){case goog.dom.TagName.APPLET:case goog.dom.TagName.AREA:case goog.dom.TagName.BR:case goog.dom.TagName.COL:case goog.dom.TagName.FRAME:case goog.dom.TagName.HR:case goog.dom.TagName.IMG:case goog.dom.TagName.INPUT:case goog.dom.TagName.IFRAME:case goog.dom.TagName.ISINDEX:case goog.dom.TagName.LINK:case goog.dom.TagName.NOFRAMES:case goog.dom.TagName.NOSCRIPT:case goog.dom.TagName.META:case goog.dom.TagName.OBJECT:case goog.dom.TagName.PARAM:case goog.dom.TagName.SCRIPT:case goog.dom.TagName.STYLE:return false}return true};
goog.dom.appendChild=function(b,c){b.appendChild(c)};goog.dom.removeChildren=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};goog.dom.insertSiblingBefore=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c)};goog.dom.insertSiblingAfter=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};goog.dom.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};goog.dom.replaceNode=function(b,c){var d=c.parentNode;d&&d.replaceChild(b,c)};
goog.dom.flattenElement=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=goog.dom.NodeType.DOCUMENT_FRAGMENT)if(b.removeNode)return b.removeNode(false);else{for(;c=b.firstChild;)d.insertBefore(c,b);return goog.dom.removeNode(b)}};goog.dom.getFirstElementChild=function(b){return goog.dom.getNextElementNode_(b.firstChild,true)};goog.dom.getLastElementChild=function(b){return goog.dom.getNextElementNode_(b.lastChild,false)};
goog.dom.getNextElementSibling=function(b){return goog.dom.getNextElementNode_(b.nextSibling,true)};goog.dom.getPreviousElementSibling=function(b){return goog.dom.getNextElementNode_(b.previousSibling,false)};goog.dom.getNextElementNode_=function(b,c){for(;b&&b.nodeType!=goog.dom.NodeType.ELEMENT;)b=c?b.nextSibling:b.previousSibling;return b};goog.dom.isNodeLike=function(b){return goog.isObject(b)&&b.nodeType>0};goog.dom.BAD_CONTAINS_WEBKIT_=goog.userAgent.WEBKIT&&goog.userAgent.isVersion("522");
goog.dom.contains=function(b,c){if(typeof b.contains!="undefined"&&!goog.dom.BAD_CONTAINS_WEBKIT_&&c.nodeType==goog.dom.NodeType.ELEMENT)return b==c||b.contains(c);if(typeof b.compareDocumentPosition!="undefined")return b==c||Boolean(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
goog.dom.compareNodeOrder=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==goog.dom.NodeType.ELEMENT,e=c.nodeType==goog.dom.NodeType.ELEMENT;if(d&&e)return b.sourceIndex-c.sourceIndex;else{var f=b.parentNode,g=c.parentNode;if(f==g)return goog.dom.compareSiblingOrder_(b,c);if(!d&&goog.dom.contains(f,c))return-1*goog.dom.compareParentsDescendantNodeIe_(b,c);if(!e&&
goog.dom.contains(g,b))return goog.dom.compareParentsDescendantNodeIe_(c,b);return(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}}e=goog.dom.getOwnerDocument(b);d=e.createRange();d.selectNode(b);d.collapse(true);b=e.createRange();b.selectNode(c);b.collapse(true);return d.compareBoundaryPoints(goog.global.Range.START_TO_END,b)};
goog.dom.compareParentsDescendantNodeIe_=function(b,c){var d=b.parentNode;if(d==c)return-1;for(c=c;c.parentNode!=d;)c=c.parentNode;return goog.dom.compareSiblingOrder_(c,b)};goog.dom.compareSiblingOrder_=function(b,c){for(c=c;c=c.previousSibling;)if(c==b)return-1;return 1};
goog.dom.findCommonAncestor=function(){var b,c=arguments.length;if(c){if(c==1)return arguments[0]}else return null;var d=[],e=Infinity;for(b=0;b<c;b++){for(var f=[],g=arguments[b];g;){f.unshift(g);g=g.parentNode}d.push(f);e=Math.min(e,f.length)}f=null;for(b=0;b<e;b++){g=d[0][b];for(var h=1;h<c;h++)if(g!=d[h][b])return f;f=g}return f};goog.dom.getOwnerDocument=function(b){return b.nodeType==goog.dom.NodeType.DOCUMENT?b:b.ownerDocument||b.document};
goog.dom.getFrameContentDocument=function(b){return goog.userAgent.WEBKIT?b.document||b.contentWindow.document:b.contentDocument||b.contentWindow.document};goog.dom.getFrameContentWindow=function(b){return b.contentWindow||goog.dom.getWindow_(goog.dom.getFrameContentDocument(b))};
goog.dom.setTextContent=function(b,c){if("textContent"in b)b.textContent=c;else if(b.firstChild&&b.firstChild.nodeType==goog.dom.NodeType.TEXT){for(;b.lastChild!=b.firstChild;)b.removeChild(b.lastChild);b.firstChild.data=c}else{goog.dom.removeChildren(b);var d=goog.dom.getOwnerDocument(b);b.appendChild(d.createTextNode(c))}};goog.dom.getOuterHtml=function(b){if("outerHTML"in b)return b.outerHTML;else{var c=goog.dom.getOwnerDocument(b).createElement("div");c.appendChild(b.cloneNode(true));return c.innerHTML}};
goog.dom.findNode=function(b,c){var d=[];return goog.dom.findNodes_(b,c,d,true)?d[0]:undefined};goog.dom.findNodes=function(b,c){var d=[];goog.dom.findNodes_(b,c,d,false);return d};goog.dom.findNodes_=function(b,c,d,e){if(b!=null)for(var f=0,g;g=b.childNodes[f];f++){if(c(g)){d.push(g);if(e)return true}if(goog.dom.findNodes_(g,c,d,e))return true}return false};goog.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};goog.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};
goog.dom.isFocusableTabIndex=function(b){var c=b.getAttributeNode("tabindex");if(c&&c.specified){b=b.tabIndex;return goog.isNumber(b)&&b>=0}return false};goog.dom.setFocusableTabIndex=function(b,c){if(c)b.tabIndex=0;else b.removeAttribute("tabIndex")};
goog.dom.getTextContent=function(b){if(goog.userAgent.IE&&"innerText"in b)b=goog.string.canonicalizeNewlines(b.innerText);else{var c=[];goog.dom.getTextContent_(b,c,true);b=c.join("")}b=b.replace(/\xAD/g,"");b=b.replace(/ +/g," ");if(b!=" ")b=b.replace(/^\s*/,"");return b};goog.dom.getRawTextContent=function(b){var c=[];goog.dom.getTextContent_(b,c,false);return c.join("")};
goog.dom.getTextContent_=function(b,c,d){if(!(b.nodeName in goog.dom.TAGS_TO_IGNORE_))if(b.nodeType==goog.dom.NodeType.TEXT)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)c.push(goog.dom.PREDEFINED_TAG_VALUES_[b.nodeName]);else for(b=b.firstChild;b;){goog.dom.getTextContent_(b,c,d);b=b.nextSibling}};goog.dom.getNodeTextLength=function(b){return goog.dom.getTextContent(b).length};
goog.dom.getNodeTextOffset=function(b,c){c=c||goog.dom.getOwnerDocument(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(goog.dom.getTextContent(e));b=b.parentNode}return goog.string.trimLeft(d.join("")).replace(/ +/g," ").length};
goog.dom.getNodeAtOffset=function(b,c,d){b=[b];for(var e=0,f;b.length>0&&e<c;){f=b.pop();if(!(f.nodeName in goog.dom.TAGS_TO_IGNORE_))if(f.nodeType==goog.dom.NodeType.TEXT){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)e+=goog.dom.PREDEFINED_TAG_VALUES_[f.nodeName].length;else for(g=f.childNodes.length-1;g>=0;g--)b.push(f.childNodes[g])}if(goog.isObject(d)){d.remainder=f?f.nodeValue.length+c-e-1:0;d.node=f}return f};
goog.dom.isNodeList=function(b){if(b&&typeof b.length=="number")if(goog.isObject(b))return typeof b.item=="function"||typeof b.item=="string";else if(goog.isFunction(b))return typeof b.item=="function";return false};goog.dom.getAncestorByTagNameAndClass=function(b,c,d){return goog.dom.getAncestor(b,function(e){return(!c||e.nodeName==c)&&(!d||goog.dom.classes.has(e,d))},true)};
goog.dom.getAncestor=function(b,c,d,e){if(!d)b=b.parentNode;d=e==null;for(var f=0;b&&(d||f<=e);){if(c(b))return b;b=b.parentNode;f++}return null};goog.dom.DomHelper=function(b){this.document_=b||goog.global.document||document};a=goog.dom.DomHelper.prototype;a.getDomHelper=goog.dom.getDomHelper;a.setDocument=function(b){this.document_=b};a.getDocument=function(){return this.document_};a.getElement=function(b){return goog.isString(b)?this.document_.getElementById(b):b};a.$=goog.dom.DomHelper.prototype.getElement;
a.getElementsByTagNameAndClass=function(b,c,d){return goog.dom.getElementsByTagNameAndClass_(this.document_,b,c,d)};a.$$=goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;a.setProperties=goog.dom.setProperties;a.getViewportSize=function(b){return goog.dom.getViewportSize(b||this.getWindow())};a.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(this.getWindow())};a.createDom=function(){return goog.dom.createDom_(this.document_,arguments)};a.$dom=goog.dom.DomHelper.prototype.createDom;
a.createElement=function(b){return this.document_.createElement(b)};a.createTextNode=function(b){return this.document_.createTextNode(b)};a.htmlToDocumentFragment=function(b){return goog.dom.htmlToDocumentFragment_(this.document_,b)};a.getCompatMode=function(){return this.isCss1CompatMode()?"CSS1Compat":"BackCompat"};a.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(this.document_)};a.getWindow=function(){return goog.dom.getWindow_(this.document_)};a.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(this.document_)};
a.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(this.document_)};a.appendChild=goog.dom.appendChild;a.removeChildren=goog.dom.removeChildren;a.insertSiblingBefore=goog.dom.insertSiblingBefore;a.insertSiblingAfter=goog.dom.insertSiblingAfter;a.removeNode=goog.dom.removeNode;a.replaceNode=goog.dom.replaceNode;a.flattenElement=goog.dom.flattenElement;a.getFirstElementChild=goog.dom.getFirstElementChild;a.getLastElementChild=goog.dom.getLastElementChild;a.getNextElementSibling=goog.dom.getNextElementSibling;
a.getPreviousElementSibling=goog.dom.getPreviousElementSibling;a.isNodeLike=goog.dom.isNodeLike;a.contains=goog.dom.contains;a.getOwnerDocument=goog.dom.getOwnerDocument;a.getFrameContentDocument=goog.dom.getFrameContentDocument;a.getFrameContentWindow=goog.dom.getFrameContentWindow;a.setTextContent=goog.dom.setTextContent;a.findNode=goog.dom.findNode;a.findNodes=goog.dom.findNodes;a.getTextContent=goog.dom.getTextContent;a.getNodeTextLength=goog.dom.getNodeTextLength;a.getNodeTextOffset=goog.dom.getNodeTextOffset;
a.getAncestorByTagNameAndClass=goog.dom.getAncestorByTagNameAndClass;a.getAncestor=goog.dom.getAncestor;goog.debug={};goog.debug.errorHandlerWeakDep={protectEntryPoint:function(b){return b}};goog.Disposable=function(){};a=goog.Disposable.prototype;a.disposed_=false;a.isDisposed=function(){return this.disposed_};a.getDisposed=goog.Disposable.prototype.isDisposed;a.dispose=function(){if(!this.disposed_){this.disposed_=true;this.disposeInternal()}};a.disposeInternal=function(){};
goog.dispose=function(b){b&&typeof b.dispose=="function"&&b.dispose()};goog.events={};goog.events.Event=function(b,c){goog.Disposable.call(this);this.type=b;this.currentTarget=this.target=c};goog.inherits(goog.events.Event,goog.Disposable);a=goog.events.Event.prototype;a.disposeInternal=function(){delete this.type;delete this.target;delete this.currentTarget};a.propagationStopped_=false;a.returnValue_=true;a.stopPropagation=function(){this.propagationStopped_=true};
a.preventDefault=function(){this.returnValue_=false};goog.events.BrowserEvent=function(b,c){b&&this.init(b,c)};goog.inherits(goog.events.BrowserEvent,goog.events.Event);goog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};goog.events.BrowserEvent.IEButtonMap_=[1,4,2];a=goog.events.BrowserEvent.prototype;a.target=null;a.relatedTarget=null;a.offsetX=0;a.offsetY=0;a.clientX=0;a.clientY=0;a.screenX=0;a.screenY=0;a.button=0;a.keyCode=0;a.charCode=0;a.ctrlKey=false;a.altKey=false;a.shiftKey=false;
a.metaKey=false;a.event_=null;
a.init=function(b,c){var d=this.type=b.type;this.target=b.target||b.srcElement;this.currentTarget=c;if(c=b.relatedTarget){if(goog.userAgent.GECKO)try{c=c.nodeName&&c}catch(e){}}else if(d=="mouseover")c=b.fromElement;else if(d=="mouseout")c=b.toElement;this.relatedTarget=c;this.offsetX=b.offsetX!==undefined?b.offsetX:b.layerX;this.offsetY=b.offsetY!==undefined?b.offsetY:b.layerY;this.clientX=b.clientX!==undefined?b.clientX:b.pageX;this.clientY=b.clientY!==undefined?b.clientY:b.pageY;this.screenX=b.screenX||
0;this.screenY=b.screenY||0;this.button=b.button;this.keyCode=b.keyCode||0;this.charCode=b.charCode||(d=="keypress"?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.event_=b;delete this.returnValue_;delete this.propagationStopped_};a.isButton=function(b){return goog.userAgent.IE?this.type=="click"?b==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap_[b]):this.event_.button==b};
a.stopPropagation=function(){this.propagationStopped_=true;if(this.event_.stopPropagation)this.event_.stopPropagation();else this.event_.cancelBubble=true};goog.events.BrowserEvent.IE7_SET_KEY_CODE_TO_PREVENT_DEFAULT_=goog.userAgent.IE&&!goog.userAgent.isVersion("8");
goog.events.BrowserEvent.prototype.preventDefault=function(){this.returnValue_=false;var b=this.event_;if(b.preventDefault)b.preventDefault();else{b.returnValue=false;if(goog.events.BrowserEvent.IE7_SET_KEY_CODE_TO_PREVENT_DEFAULT_)try{if(b.ctrlKey||b.keyCode>=112&&b.keyCode<=123)b.keyCode=-1}catch(c){}}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};
goog.events.BrowserEvent.prototype.disposeInternal=function(){goog.events.BrowserEvent.superClass_.disposeInternal.call(this);this.relatedTarget=this.currentTarget=this.target=this.event_=null};goog.events.EventWrapper=function(){};goog.events.EventWrapper.prototype.listen=function(){};goog.events.EventWrapper.prototype.unlisten=function(){};goog.events.Listener=function(){};goog.events.Listener.counter_=0;a=goog.events.Listener.prototype;a.key=0;a.removed=false;a.callOnce=false;
a.init=function(b,c,d,e,f,g){if(goog.isFunction(b))this.isFunctionListener_=true;else if(b&&b.handleEvent&&goog.isFunction(b.handleEvent))this.isFunctionListener_=false;else throw Error("Invalid listener argument");this.listener=b;this.proxy=c;this.src=d;this.type=e;this.capture=!!f;this.handler=g;this.callOnce=false;this.key=++goog.events.Listener.counter_;this.removed=false};
a.handleEvent=function(b){if(this.isFunctionListener_)return this.listener.call(this.handler||this.src,b);return this.listener.handleEvent.call(this.listener,b)};goog.structs={};goog.structs.SimplePool=function(b,c){goog.Disposable.call(this);this.maxCount_=c;this.freeQueue_=[];this.createInitial_(b)};goog.inherits(goog.structs.SimplePool,goog.Disposable);a=goog.structs.SimplePool.prototype;a.createObjectFn_=null;a.disposeObjectFn_=null;a.setCreateObjectFn=function(b){this.createObjectFn_=b};
a.setDisposeObjectFn=function(b){this.disposeObjectFn_=b};a.getObject=function(){if(this.freeQueue_.length)return this.freeQueue_.pop();return this.createObject()};a.releaseObject=function(b){this.freeQueue_.length<this.maxCount_?this.freeQueue_.push(b):this.disposeObject(b)};a.createInitial_=function(b){if(b>this.maxCount_)throw Error("[goog.structs.SimplePool] Initial cannot be greater than max");for(var c=0;c<b;c++)this.freeQueue_.push(this.createObject())};
a.createObject=function(){return this.createObjectFn_?this.createObjectFn_():{}};a.disposeObject=function(b){if(this.disposeObjectFn_)this.disposeObjectFn_(b);else if(goog.isFunction(b.dispose))b.dispose();else for(var c in b)delete b[c]};a.disposeInternal=function(){goog.structs.SimplePool.superClass_.disposeInternal.call(this);for(var b=this.freeQueue_;b.length;)this.disposeObject(b.pop());delete this.freeQueue_};goog.userAgent.jscript={};goog.userAgent.jscript.ASSUME_NO_JSCRIPT=false;
goog.userAgent.jscript.init_=function(){goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_="ScriptEngine"in goog.global&&goog.global.ScriptEngine()=="JScript";goog.userAgent.jscript.DETECTED_VERSION_=goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_?goog.global.ScriptEngineMajorVersion()+"."+goog.global.ScriptEngineMinorVersion()+"."+goog.global.ScriptEngineBuildVersion():"0"};goog.userAgent.jscript.ASSUME_NO_JSCRIPT||goog.userAgent.jscript.init_();
goog.userAgent.jscript.HAS_JSCRIPT=goog.userAgent.jscript.ASSUME_NO_JSCRIPT?false:goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_;goog.userAgent.jscript.VERSION=goog.userAgent.jscript.ASSUME_NO_JSCRIPT?"0":goog.userAgent.jscript.DETECTED_VERSION_;goog.userAgent.jscript.isVersion=function(b){return goog.string.compareVersions(goog.userAgent.jscript.VERSION,b)>=0};goog.events.pools={};
(function(){function b(){return{count_:0,remaining_:0}}function c(){return[]}function d(){var m=function(o){return h.call(m.src,m.key,o)};return m}function e(){return new goog.events.Listener}function f(){return new goog.events.BrowserEvent}var g=goog.userAgent.jscript.HAS_JSCRIPT&&!goog.userAgent.jscript.isVersion("5.7"),h;goog.events.pools.setProxyCallbackFunction=function(m){h=m};if(g){goog.events.pools.getObject=function(){return i.getObject()};goog.events.pools.releaseObject=function(m){i.releaseObject(m)};
goog.events.pools.getArray=function(){return j.getObject()};goog.events.pools.releaseArray=function(m){j.releaseObject(m)};goog.events.pools.getProxy=function(){return l.getObject()};goog.events.pools.releaseProxy=function(){l.releaseObject(d())};goog.events.pools.getListener=function(){return k.getObject()};goog.events.pools.releaseListener=function(m){k.releaseObject(m)};goog.events.pools.getEvent=function(){return n.getObject()};goog.events.pools.releaseEvent=function(m){n.releaseObject(m)};var i=
new goog.structs.SimplePool(0,600);i.setCreateObjectFn(b);var j=new goog.structs.SimplePool(0,600);j.setCreateObjectFn(c);var l=new goog.structs.SimplePool(0,600);l.setCreateObjectFn(d);var k=new goog.structs.SimplePool(0,600);k.setCreateObjectFn(e);var n=new goog.structs.SimplePool(0,600);n.setCreateObjectFn(f)}else{goog.events.pools.getObject=b;goog.events.pools.releaseObject=goog.nullFunction;goog.events.pools.getArray=c;goog.events.pools.releaseArray=goog.nullFunction;goog.events.pools.getProxy=
d;goog.events.pools.releaseProxy=goog.nullFunction;goog.events.pools.getListener=e;goog.events.pools.releaseListener=goog.nullFunction;goog.events.pools.getEvent=f;goog.events.pools.releaseEvent=goog.nullFunction}})();goog.events.listeners_={};goog.events.listenerTree_={};goog.events.sources_={};goog.events.onString_="on";goog.events.onStringMap_={};goog.events.keySeparator_="_";
goog.events.listen=function(b,c,d,e,f){if(c)if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.listen(b,c[g],d,e,f);return null}else{e=!!e;var h=goog.events.listenerTree_;c in h||(h[c]=goog.events.pools.getObject());h=h[c];if(!(e in h)){h[e]=goog.events.pools.getObject();h.count_++}h=h[e];var i=goog.getHashCode(b),j;h.remaining_++;if(h[i]){j=h[i];for(g=0;g<j.length;g++){h=j[g];if(h.listener==d&&h.handler==f){if(h.removed)break;return j[g].key}}}else{j=h[i]=goog.events.pools.getArray();h.count_++}g=
goog.events.pools.getProxy();g.src=b;h=goog.events.pools.getListener();h.init(d,g,b,c,e,f);d=h.key;g.key=d;j.push(h);goog.events.listeners_[d]=h;goog.events.sources_[i]||(goog.events.sources_[i]=goog.events.pools.getArray());goog.events.sources_[i].push(h);if(b.addEventListener){if(b==goog.global||!b.customEvent_)b.addEventListener(c,g,e)}else b.attachEvent(goog.events.getOnString_(c),g);return d}else throw Error("Invalid event type");};
goog.events.listenOnce=function(b,c,d,e,f){if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.listenOnce(b,c[g],d,e,f);return null}b=goog.events.listen(b,c,d,e,f);goog.events.listeners_[b].callOnce=true;return b};goog.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};
goog.events.unlisten=function(b,c,d,e,f){if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.unlisten(b,c[g],d,e,f);return null}e=!!e;b=goog.events.getListeners_(b,c,e);if(!b)return false;for(g=0;g<b.length;g++)if(b[g].listener==d&&b[g].capture==e&&b[g].handler==f)return goog.events.unlistenByKey(b[g].key);return false};
goog.events.unlistenByKey=function(b){if(!goog.events.listeners_[b])return false;var c=goog.events.listeners_[b];if(c.removed)return false;var d=c.src,e=c.type,f=c.proxy,g=c.capture;if(d.removeEventListener){if(d==goog.global||!d.customEvent_)d.removeEventListener(e,f,g)}else d.detachEvent&&d.detachEvent(goog.events.getOnString_(e),f);d=goog.getHashCode(d);f=goog.events.listenerTree_[e][g][d];if(goog.events.sources_[d]){var h=goog.events.sources_[d];goog.array.remove(h,c);h.length==0&&delete goog.events.sources_[d]}c.removed=
true;f.needsCleanup_=true;goog.events.cleanUp_(e,g,d,f);delete goog.events.listeners_[b];return true};goog.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};
goog.events.cleanUp_=function(b,c,d,e){if(!e.locked_)if(e.needsCleanup_){for(var f=0,g=0;f<e.length;f++)if(e[f].removed){var h=e[f].proxy;h.src=null;goog.events.pools.releaseProxy(h);goog.events.pools.releaseListener(e[f])}else{if(f!=g)e[g]=e[f];g++}e.length=g;e.needsCleanup_=false;if(g==0){goog.events.pools.releaseArray(e);delete goog.events.listenerTree_[b][c][d];goog.events.listenerTree_[b][c].count_--;if(goog.events.listenerTree_[b][c].count_==0){goog.events.pools.releaseObject(goog.events.listenerTree_[b][c]);
delete goog.events.listenerTree_[b][c];goog.events.listenerTree_[b].count_--}if(goog.events.listenerTree_[b].count_==0){goog.events.pools.releaseObject(goog.events.listenerTree_[b]);delete goog.events.listenerTree_[b]}}}};
goog.events.removeAll=function(b,c,d){var e=0,f=b==null,g=c==null,h=d==null;d=!!d;if(f)goog.object.forEach(goog.events.sources_,function(j){for(var l=j.length-1;l>=0;l--){var k=j[l];if((g||c==k.type)&&(h||d==k.capture)){goog.events.unlistenByKey(k.key);e++}}});else{b=goog.getHashCode(b);if(goog.events.sources_[b]){b=goog.events.sources_[b];for(f=b.length-1;f>=0;f--){var i=b[f];if((g||c==i.type)&&(h||d==i.capture)){goog.events.unlistenByKey(i.key);e++}}}}return e};
goog.events.getListeners=function(b,c,d){return goog.events.getListeners_(b,c,d)||[]};goog.events.getListeners_=function(b,c,d){var e=goog.events.listenerTree_;if(c in e){e=e[c];if(d in e){e=e[d];b=goog.getHashCode(b);if(e[b])return e[b]}}return null};goog.events.getListener=function(b,c,d,e,f){e=!!e;if(b=goog.events.getListeners_(b,c,e))for(c=0;c<b.length;c++)if(b[c].listener==d&&b[c].capture==e&&b[c].handler==f)return b[c];return null};
goog.events.hasListener=function(b,c,d){b=goog.getHashCode(b);var e=goog.events.sources_[b];if(e){var f=goog.isDef(c),g=goog.isDef(d);if(f&&g){e=goog.events.listenerTree_[c];return!!e&&!!e[d]&&b in e[d]}else return f||g?goog.array.some(e,function(h){return f&&h.type==c||g&&h.capture==d}):true}return false};goog.events.expose=function(b){var c=[];for(var 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")};
goog.events.EventType={CLICK:"click",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",SELECTSTART:"selectstart",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",SELECT:"select",SUBMIT:"submit",CONTEXTMENU:"contextmenu",DRAGSTART:"dragstart",ERROR:"error",HASHCHANGE:"hashchange",
HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload"};goog.events.getOnString_=function(b){if(b in goog.events.onStringMap_)return goog.events.onStringMap_[b];return goog.events.onStringMap_[b]=goog.events.onString_+b};goog.events.fireListeners=function(b,c,d,e){var f=goog.events.listenerTree_;if(c in f){f=f[c];if(d in f)return goog.events.fireListeners_(f[d],b,c,d,e)}return true};
goog.events.fireListeners_=function(b,c,d,e,f){var g=1;c=goog.getHashCode(c);if(b[c]){b.remaining_--;b=b[c];if(b.locked_)b.locked_++;else b.locked_=1;try{for(var h=b.length,i=0;i<h;i++){var j=b[i];if(j&&!j.removed)g&=goog.events.fireListener(j,f)!==false}}finally{b.locked_--;goog.events.cleanUp_(d,e,c,b)}}return Boolean(g)};goog.events.fireListener=function(b,c){c=b.handleEvent(c);b.callOnce&&goog.events.unlistenByKey(b.key);return c};goog.events.getTotalListenerCount=function(){return goog.object.getCount(goog.events.listeners_)};
goog.events.dispatchEvent=function(b,c){if(goog.isString(c))c=new goog.events.Event(c,b);else if(c instanceof goog.events.Event)c.target=c.target||b;else{var d=c;c=new goog.events.Event(c.type,b);goog.object.extend(c,d)}d=1;var e,f=c.type,g=goog.events.listenerTree_;if(!(f in g))return true;g=g[f];f=true in g;var h;if(f){e=[];for(h=b;h;h=h.getParentEventTarget())e.push(h);h=g[true];h.remaining_=h.count_;for(var i=e.length-1;!c.propagationStopped_&&i>=0&&h.remaining_;i--){c.currentTarget=e[i];d&=goog.events.fireListeners_(h,
e[i],c.type,true,c)&&c.returnValue_!=false}}if(false in g){h=g[false];h.remaining_=h.count_;if(f)for(i=0;!c.propagationStopped_&&i<e.length&&h.remaining_;i++){c.currentTarget=e[i];d&=goog.events.fireListeners_(h,e[i],c.type,false,c)&&c.returnValue_!=false}else for(b=b;!c.propagationStopped_&&b&&h.remaining_;b=b.getParentEventTarget()){c.currentTarget=b;d&=goog.events.fireListeners_(h,b,c.type,false,c)&&c.returnValue_!=false}}return Boolean(d)};
goog.events.protectBrowserEventEntryPoint=function(b,c){goog.events.handleBrowserEvent_=b.protectEntryPoint(goog.events.handleBrowserEvent_,c);goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_)};
goog.events.handleBrowserEvent_=function(b,c){if(!goog.events.listeners_[b])return true;b=goog.events.listeners_[b];var d=b.type,e=goog.events.listenerTree_;if(!(d in e))return true;e=e[d];var f,g;if(goog.userAgent.IE){f=c||goog.getObjectByName("window.event");c=true in e;var h=false in e;if(c){if(goog.events.isMarkedIeEvent_(f))return true;goog.events.markIeEvent_(f)}var i=goog.events.pools.getEvent();i.init(f,this);f=true;try{if(c){for(var j=goog.events.pools.getArray(),l=i.currentTarget;l;l=l.parentNode)j.push(l);
g=e[true];g.remaining_=g.count_;for(var k=j.length-1;!i.propagationStopped_&&k>=0&&g.remaining_;k--){i.currentTarget=j[k];f&=goog.events.fireListeners_(g,j[k],d,true,i)}if(h){g=e[false];g.remaining_=g.count_;for(k=0;!i.propagationStopped_&&k<j.length&&g.remaining_;k++){i.currentTarget=j[k];f&=goog.events.fireListeners_(g,j[k],d,false,i)}}}else f=goog.events.fireListener(b,i)}finally{if(j){j.length=0;goog.events.pools.releaseArray(j)}i.dispose();goog.events.pools.releaseEvent(i)}return f}g=new goog.events.BrowserEvent(c,
this);try{f=goog.events.fireListener(b,g)}finally{g.dispose()}return f};goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_);goog.events.markIeEvent_=function(b){var c=false;if(b.keyCode==0)try{b.keyCode=-1;return}catch(d){c=true}if(c||b.returnValue==undefined)b.returnValue=true};goog.events.isMarkedIeEvent_=function(b){return b.keyCode<0||b.returnValue!=undefined};goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(b){return b+"_"+goog.events.uniqueIdCounter_++};
goog.events.EventTarget=function(){goog.Disposable.call(this)};goog.inherits(goog.events.EventTarget,goog.Disposable);a=goog.events.EventTarget.prototype;a.customEvent_=true;a.parentEventTarget_=null;a.getParentEventTarget=function(){return this.parentEventTarget_};a.setParentEventTarget=function(b){this.parentEventTarget_=b};a.addEventListener=function(b,c,d,e){goog.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){goog.events.unlisten(this,b,c,d,e)};
a.dispatchEvent=function(b){return goog.events.dispatchEvent(this,b)};a.disposeInternal=function(){goog.events.EventTarget.superClass_.disposeInternal.call(this);goog.events.removeAll(this);this.parentEventTarget_=null};goog.ui={};
goog.ui.AutoComplete=function(b,c,d){goog.events.EventTarget.call(this);this.matcher_=b;this.selectionHandler_=d;this.renderer_=c;goog.events.listen(c,[goog.ui.AutoComplete.EventType.HILITE,goog.ui.AutoComplete.EventType.SELECT,goog.ui.AutoComplete.EventType.CANCEL_DISMISS,goog.ui.AutoComplete.EventType.DISMISS],this);this.token_=null;this.rows_=[];this.hiliteId_=-1;this.firstRowId_=0;this.dismissTimer_=this.target_=null};goog.inherits(goog.ui.AutoComplete,goog.events.EventTarget);
goog.ui.AutoComplete.prototype.maxMatches_=10;goog.ui.AutoComplete.prototype.autoHilite_=true;goog.ui.AutoComplete.prototype.allowFreeSelect_=false;goog.ui.AutoComplete.prototype.triggerSuggestionsOnUpdate_=false;goog.ui.AutoComplete.EventType={HILITE:"hilite",SELECT:"select",DISMISS:"dismiss",CANCEL_DISMISS:"canceldismiss",UPDATE:"update"};a=goog.ui.AutoComplete.prototype;
a.handleEvent=function(b){if(b.target==this.renderer_)switch(b.type){case goog.ui.AutoComplete.EventType.HILITE:this.hiliteId(b.row);break;case goog.ui.AutoComplete.EventType.SELECT:this.selectHilited();break;case goog.ui.AutoComplete.EventType.CANCEL_DISMISS:this.cancelDelayedDismiss();break;case goog.ui.AutoComplete.EventType.DISMISS:this.dismissOnDelay();break}};a.setMaxMatches=function(b){this.maxMatches_=b};a.setAutoHilite=function(b){this.autoHilite_=b};
a.setAllowFreeSelect=function(b){this.allowFreeSelect_=b};a.setTriggerSuggestionsOnUpdate=function(b){this.triggerSuggestionsOnUpdate_=b};a.setToken=function(b,c){if(this.token_!=b){this.token_=b;this.matcher_.requestMatchingRows(this.token_,this.maxMatches_,goog.bind(this.matchListener_,this),c);this.cancelDelayedDismiss()}};a.getTarget=function(){return this.target_};a.setTarget=function(b){this.target_=b};a.isOpen=function(){return this.renderer_.isVisible()};
a.hiliteNext=function(){if(this.hiliteId_>=this.firstRowId_&&this.hiliteId_<this.firstRowId_+this.rows_.length-1){this.hiliteId(this.hiliteId_+1);return true}else if(this.hiliteId_==-1){this.hiliteId(this.firstRowId_);return true}return false};a.hilitePrev=function(){if(this.hiliteId_>this.firstRowId_){this.hiliteId(this.hiliteId_-1);return true}else this.allowFreeSelect_&&this.hiliteId_==this.firstRowId_&&this.hiliteId(-1);return false};
a.hiliteId=function(b){this.hiliteId_=b;this.renderer_.hiliteId(b);return this.getIndexOfId(b)!=-1};
a.selectHilited=function(){var b=this.getIndexOfId(this.hiliteId_);if(b!=-1){b=this.rows_[b];var c=this.selectionHandler_.selectRow(b);this.dismiss();if(!c){this.dispatchEvent({type:goog.ui.AutoComplete.EventType.UPDATE,row:b});this.triggerSuggestionsOnUpdate_&&this.selectionHandler_.update(true)}return true}else{this.dismiss();this.dispatchEvent({type:goog.ui.AutoComplete.EventType.UPDATE,row:null});return false}};
a.dismiss=function(){this.hiliteId_=-1;this.token_=null;this.firstRowId_+=this.rows_.length;this.rows_=[];window.clearTimeout(this.dismissTimer_);this.dismissTimer_=null;this.renderer_.dismiss()};a.dismissOnDelay=function(){if(!this.dismissTimer_)this.dismissTimer_=window.setTimeout(goog.bind(this.dismiss,this),100)};a.cancelDelayedDismiss=function(){window.setTimeout(goog.bind(function(){if(this.dismissTimer_){window.clearTimeout(this.dismissTimer_);this.dismissTimer_=null}},this),10)};
a.disposeInternal=function(){goog.ui.AutoComplete.superClass_.disposeInternal.call(this);this.renderer_.dispose();this.selectionHandler_.dispose();this.matcher_=null};
a.matchListener_=function(b,c,d){if(this.token_==b){b=d?this.getIndexOfId(this.hiliteId_):null;this.firstRowId_+=this.rows_.length;this.rows_=c;d=[];for(var e=0;e<c.length;++e)d.push({id:this.getIdOfIndex_(e),data:c[e]});this.renderer_.renderRows(d,this.token_,this.target_);if(this.autoHilite_&&d.length!=0)this.hiliteId(b!=null?this.getIdOfIndex_(b):this.firstRowId_);else this.hiliteId_=-1}};a.getIndexOfId=function(b){b=b-this.firstRowId_;if(b<0||b>=this.rows_.length)return-1;return b};
a.getIdOfIndex_=function(b){return this.firstRowId_+b};a.attachInputs=function(){var b=this.selectionHandler_;b.attachInputs.apply(b,arguments)};a.detachInputs=function(){var b=this.selectionHandler_;b.detachInputs.apply(b,arguments)};goog.Timer=function(b,c){goog.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||goog.Timer.defaultTimerObject;this.boundTick_=goog.bind(this.tick_,this);this.last_=goog.now()};goog.inherits(goog.Timer,goog.events.EventTarget);
goog.Timer.MAX_TIMEOUT_=2147483647;goog.Timer.prototype.enabled=false;goog.Timer.defaultTimerObject=goog.global.window;goog.Timer.intervalScale=0.8;a=goog.Timer.prototype;a.timer_=null;a.getInterval=function(){return this.interval_};a.setInterval=function(b){this.interval_=b;if(this.timer_&&this.enabled){this.stop();this.start()}else this.timer_&&this.stop()};
a.tick_=function(){if(this.enabled){var b=goog.now()-this.last_;if(b>0&&b<this.interval_*goog.Timer.intervalScale)this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b);else{this.dispatchTick();if(this.enabled){this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_);this.last_=goog.now()}}}};a.dispatchTick=function(){this.dispatchEvent(goog.Timer.TICK)};
a.start=function(){this.enabled=true;if(!this.timer_){this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_);this.last_=goog.now()}};a.stop=function(){this.enabled=false;if(this.timer_){this.timerObject_.clearTimeout(this.timer_);this.timer_=null}};a.disposeInternal=function(){goog.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};goog.Timer.TICK="tick";
goog.Timer.callOnce=function(b,c,d){if(goog.isFunction(b)){if(d)b=goog.bind(b,d)}else if(b&&typeof b.handleEvent=="function")b=goog.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return c>goog.Timer.MAX_TIMEOUT_?-1:goog.Timer.defaultTimerObject.setTimeout(b,c||0)};goog.Timer.clear=function(b){goog.Timer.defaultTimerObject.clearTimeout(b)};goog.dom.a11y={};
goog.dom.a11y.State={ACTIVEDESCENDANT:"activedescendant",AUTOCOMPLETE:"autocomplete",CHECKED:"checked",DISABLED:"disabled",EXPANDED:"expanded",HASPOPUP:"haspopup",LABELLEDBY:"labelledby",LEVEL:"level",PRESSED:"pressed",SELECTED:"selected",VALUEMAX:"valuemax",VALUEMIN:"valuemin",VALUENOW:"valuenow"};
goog.dom.a11y.Role={BUTTON:"button",CHECKBOX:"checkbox",COMBOBOX:"combobox",DIALOG:"dialog",LINK:"link",LISTBOX:"listbox",MAIN:"main",MENU:"menu",MENUBAR:"menubar",MENU_ITEM:"menuitem",MENU_ITEM_CHECKBOX:"menuitemcheckbox",MENU_ITEM_RADIO:"menuitemradio",NAVIGATION:"navigation",OPTION:"option",GROUP:"group",SLIDER:"slider",TAB:"tab",TAB_LIST:"tablist",TAB_PANEL:"tabpanel",TOOLBAR:"toolbar"};
goog.dom.a11y.setRole=function(b,c){if(goog.userAgent.GECKO||goog.dom.a11y.noBrowserCheck_){b.setAttribute("role",c);b.roleName=c}};goog.dom.a11y.getRole=function(b){return b.roleName||""};goog.dom.a11y.setState=function(b,c,d){if(goog.userAgent.GECKO||goog.dom.a11y.noBrowserCheck_)b.setAttribute("aria-"+c,d)};goog.dom.a11y.getState=function(b,c){return b.getAttribute("aria-"+c)||""};goog.dom.a11y.getNoBrowserCheck=function(){return!!goog.dom.a11y.noBrowserCheck_};
goog.dom.a11y.setNoBrowserCheck=function(b){goog.dom.a11y.noBrowserCheck_=b};goog.dom.a11y.getActiveDescendant=function(b){var c=goog.dom.a11y.getState(b,goog.dom.a11y.State.ACTIVEDESCENDANT);return goog.dom.getOwnerDocument(b).getElementById(c)};goog.dom.a11y.setActiveDescendant=function(b,c){goog.dom.a11y.setState(b,goog.dom.a11y.State.ACTIVEDESCENDANT,c?c.id:"")};goog.dom.selection={};
goog.dom.selection.setStart=function(b,c){if(goog.dom.selection.useSelectionProperties_(b))b.selectionStart=c;else if(goog.userAgent.IE){var d=goog.dom.selection.getRangeIe_(b),e=d[0];if(e.inRange(d[1])){c=goog.dom.selection.canonicalizePositionIe_(b,c);e.collapse(true);e.move("character",c);e.select()}}};goog.dom.selection.getStart=function(b){return goog.dom.selection.getEndPoints_(b,true)[0]};
goog.dom.selection.getEndPointsTextareaIe_=function(b,c,d){c=c.duplicate();for(var e=b.text,f=e,g=c.text,h=g,i=false;!i;)if(b.compareEndPoints("StartToEnd",b)==0)i=true;else{b.moveEnd("character",-1);if(b.text==e)f+="\r\n";else i=true}if(d)return[f.length,-1];for(b=false;!b;)if(c.compareEndPoints("StartToEnd",c)==0)b=true;else{c.moveEnd("character",-1);if(c.text==g)h+="\r\n";else b=true}return[f.length,f.length+h.length]};
goog.dom.selection.getEndPoints=function(b){return goog.dom.selection.getEndPoints_(b,false)};
goog.dom.selection.getEndPoints_=function(b,c){var d=0,e=0;if(goog.dom.selection.useSelectionProperties_(b)){d=b.selectionStart;e=c?-1:b.selectionEnd}else if(goog.userAgent.IE){var f=goog.dom.selection.getRangeIe_(b),g=f[0];f=f[1];if(g.inRange(f)){g.setEndPoint("EndToStart",f);if(b.type=="textarea")return goog.dom.selection.getEndPointsTextareaIe_(g,f,c);d=g.text.length;e=c?-1:g.text.length+f.text.length}}return[d,e]};
goog.dom.selection.setEnd=function(b,c){if(goog.dom.selection.useSelectionProperties_(b))b.selectionEnd=c;else if(goog.userAgent.IE){var d=goog.dom.selection.getRangeIe_(b),e=d[1];if(d[0].inRange(e)){c=goog.dom.selection.canonicalizePositionIe_(b,c);b=goog.dom.selection.canonicalizePositionIe_(b,goog.dom.selection.getStart(b));e.collapse(true);e.moveEnd("character",c-b);e.select()}}};goog.dom.selection.getEnd=function(b){return goog.dom.selection.getEndPoints_(b,false)[1]};
goog.dom.selection.setCursorPosition=function(b,c){if(goog.dom.selection.useSelectionProperties_(b)){b.selectionStart=c;b.selectionEnd=c}else if(goog.userAgent.IE){c=goog.dom.selection.canonicalizePositionIe_(b,c);b=b.createTextRange();b.collapse(true);b.move("character",c);b.select()}};
goog.dom.selection.setText=function(b,c){if(goog.dom.selection.useSelectionProperties_(b)){var d=b.value,e=b.selectionStart,f=d.substr(0,e);d=d.substr(b.selectionEnd);b.value=f+c+d;b.selectionStart=e;b.selectionEnd=e+c.length}else if(goog.userAgent.IE){e=goog.dom.selection.getRangeIe_(b);b=e[1];if(e[0].inRange(b)){e=b.duplicate();b.text=c;b.setEndPoint("StartToStart",e);b.select()}}else throw Error("Cannot set the selection end");};
goog.dom.selection.getText=function(b){if(goog.dom.selection.useSelectionProperties_(b))return b.value.substring(b.selectionStart,b.selectionEnd);if(goog.userAgent.IE){var c=goog.dom.selection.getRangeIe_(b),d=c[1];if(c[0].inRange(d)){if(b.type=="textarea")return goog.dom.selection.getSelectionRangeText_(d)}else return"";return d.text}throw Error("Cannot get the selection text");};
goog.dom.selection.getSelectionRangeText_=function(b){b=b.duplicate();for(var c=b.text,d=c,e=false;!e;)if(b.compareEndPoints("StartToEnd",b)==0)e=true;else{b.moveEnd("character",-1);if(b.text==c)d+="\r\n";else e=true}return d};goog.dom.selection.getRangeIe_=function(b){var c=b.ownerDocument||b.document,d=c.selection.createRange();if(b.type=="textarea"){c=c.body.createTextRange();c.moveToElementText(b)}else c=b.createTextRange();return[c,d]};
goog.dom.selection.canonicalizePositionIe_=function(b,c){if(b.type=="textarea"){b=b.value.substring(0,c);c=goog.string.canonicalizeNewlines(b).length}return c};goog.dom.selection.useSelectionProperties_=function(b){try{return typeof b.selectionStart=="number"}catch(c){return false}};goog.events.EventHandler=function(b){this.handler_=b};goog.inherits(goog.events.EventHandler,goog.Disposable);goog.events.EventHandler.KEY_POOL_INITIAL_COUNT=0;goog.events.EventHandler.KEY_POOL_MAX_COUNT=100;
goog.events.EventHandler.keyPool_=new goog.structs.SimplePool(goog.events.EventHandler.KEY_POOL_INITIAL_COUNT,goog.events.EventHandler.KEY_POOL_MAX_COUNT);goog.events.EventHandler.keys_=null;goog.events.EventHandler.key_=null;a=goog.events.EventHandler.prototype;a.listen=function(b,c,d,e,f){if(goog.isArray(c))for(var g=0;g<c.length;g++)this.listen(b,c[g],d,e,f);else this.recordListenerKey_(goog.events.listen(b,c,d||this,e||false,f||this.handler_||this));return this};
a.listenOnce=function(b,c,d,e,f){if(goog.isArray(c))for(var g=0;g<c.length;g++)this.listenOnce(b,c[g],d,e,f);else this.recordListenerKey_(goog.events.listenOnce(b,c,d||this,e||false,f||this.handler_||this));return this};a.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f||this.handler_,this);return this};
a.recordListenerKey_=function(b){if(this.keys_)this.keys_[b]=true;else if(this.key_){this.keys_=goog.events.EventHandler.keyPool_.getObject();this.keys_[this.key_]=true;this.key_=null;this.keys_[b]=true}else this.key_=b};
a.unlisten=function(b,c,d,e,f){if(this.key_||this.keys_)if(goog.isArray(c))for(var g=0;g<c.length;g++)this.unlisten(b,c[g],d,e,f);else if(b=goog.events.getListener(b,c,d||this,e||false,f||this.handler_||this)){b=b.key;goog.events.unlistenByKey(b);if(this.keys_)goog.object.remove(this.keys_,b);else if(this.key_==b)this.key_=null}return this};a.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f||this.handler_,this);return this};
a.removeAll=function(){if(this.keys_){for(var b in this.keys_){goog.events.unlistenByKey(b);delete this.keys_[b]}goog.events.EventHandler.keyPool_.releaseObject(this.keys_);this.keys_=null}else this.key_&&goog.events.unlistenByKey(this.key_)};a.disposeInternal=function(){goog.events.EventHandler.superClass_.disposeInternal.call(this);this.removeAll()};a.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};
goog.events.KeyCodes={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,CONTEXT_MENU:93,NUM_ZERO:96,
NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229};
goog.events.KeyCodes.isTextModifyingKeyEvent=function(b){if(b.altKey&&!b.ctrlKey||b.metaKey||b.keyCode>=goog.events.KeyCodes.F1&&b.keyCode<=goog.events.KeyCodes.F12)return false;switch(b.keyCode){case goog.events.KeyCodes.ALT:case goog.events.KeyCodes.SHIFT:case goog.events.KeyCodes.CTRL:case goog.events.KeyCodes.PAUSE:case goog.events.KeyCodes.CAPS_LOCK:case goog.events.KeyCodes.ESC:case goog.events.KeyCodes.PAGE_UP:case goog.events.KeyCodes.PAGE_DOWN:case goog.events.KeyCodes.HOME:case goog.events.KeyCodes.END:case goog.events.KeyCodes.LEFT:case goog.events.KeyCodes.RIGHT:case goog.events.KeyCodes.UP:case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.INSERT:case goog.events.KeyCodes.NUMLOCK:case goog.events.KeyCodes.CONTEXT_MENU:case goog.events.KeyCodes.PRINT_SCREEN:return false;
default:return true}};goog.events.KeyCodes.firesKeyPressEvent=function(b,c,d,e,f){if(!goog.userAgent.IE&&!(goog.userAgent.WEBKIT&&goog.userAgent.isVersion("525")))return true;if(goog.userAgent.MAC&&f)return goog.events.KeyCodes.isCharacterKey(b);if(f&&!e)return false;if(goog.userAgent.IE&&!d&&(c==goog.events.KeyCodes.CTRL||c==goog.events.KeyCodes.ALT))return false;if(goog.userAgent.IE&&e&&c==b)return false;switch(b){case goog.events.KeyCodes.ENTER:return true;case goog.events.KeyCodes.ESC:return!goog.userAgent.WEBKIT}return goog.events.KeyCodes.isCharacterKey(b)};
goog.events.KeyCodes.isCharacterKey=function(b){if(b>=goog.events.KeyCodes.ZERO&&b<=goog.events.KeyCodes.NINE)return true;if(b>=goog.events.KeyCodes.NUM_ZERO&&b<=goog.events.KeyCodes.NUM_MULTIPLY)return true;if(b>=goog.events.KeyCodes.A&&b<=goog.events.KeyCodes.Z)return true;switch(b){case goog.events.KeyCodes.SPACE:case goog.events.KeyCodes.QUESTION_MARK:case goog.events.KeyCodes.NUM_PLUS:case goog.events.KeyCodes.NUM_MINUS:case goog.events.KeyCodes.NUM_PERIOD:case goog.events.KeyCodes.NUM_DIVISION:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:return true;
default:return false}};goog.events.KeyHandler=function(b){goog.events.EventTarget.call(this);b&&this.attach(b)};goog.inherits(goog.events.KeyHandler,goog.events.EventTarget);a=goog.events.KeyHandler.prototype;a.element_=null;a.keyPressKey_=null;a.keyDownKey_=null;a.keyUpKey_=null;a.lastKey_=-1;a.keyCode_=-1;goog.events.KeyHandler.EventType={KEY:"key"};
goog.events.KeyHandler.safariKey_={"3":goog.events.KeyCodes.ENTER,"12":goog.events.KeyCodes.NUMLOCK,"63232":goog.events.KeyCodes.UP,"63233":goog.events.KeyCodes.DOWN,"63234":goog.events.KeyCodes.LEFT,"63235":goog.events.KeyCodes.RIGHT,"63236":goog.events.KeyCodes.F1,"63237":goog.events.KeyCodes.F2,"63238":goog.events.KeyCodes.F3,"63239":goog.events.KeyCodes.F4,"63240":goog.events.KeyCodes.F5,"63241":goog.events.KeyCodes.F6,"63242":goog.events.KeyCodes.F7,"63243":goog.events.KeyCodes.F8,"63244":goog.events.KeyCodes.F9,
"63245":goog.events.KeyCodes.F10,"63246":goog.events.KeyCodes.F11,"63247":goog.events.KeyCodes.F12,"63248":goog.events.KeyCodes.PRINT_SCREEN,"63272":goog.events.KeyCodes.DELETE,"63273":goog.events.KeyCodes.HOME,"63275":goog.events.KeyCodes.END,"63276":goog.events.KeyCodes.PAGE_UP,"63277":goog.events.KeyCodes.PAGE_DOWN,"63289":goog.events.KeyCodes.NUMLOCK,"63302":goog.events.KeyCodes.INSERT};
goog.events.KeyHandler.keyIdentifier_={Up:goog.events.KeyCodes.UP,Down:goog.events.KeyCodes.DOWN,Left:goog.events.KeyCodes.LEFT,Right:goog.events.KeyCodes.RIGHT,Enter:goog.events.KeyCodes.ENTER,F1:goog.events.KeyCodes.F1,F2:goog.events.KeyCodes.F2,F3:goog.events.KeyCodes.F3,F4:goog.events.KeyCodes.F4,F5:goog.events.KeyCodes.F5,F6:goog.events.KeyCodes.F6,F7:goog.events.KeyCodes.F7,F8:goog.events.KeyCodes.F8,F9:goog.events.KeyCodes.F9,F10:goog.events.KeyCodes.F10,F11:goog.events.KeyCodes.F11,F12:goog.events.KeyCodes.F12,
"U+007F":goog.events.KeyCodes.DELETE,Home:goog.events.KeyCodes.HOME,End:goog.events.KeyCodes.END,PageUp:goog.events.KeyCodes.PAGE_UP,PageDown:goog.events.KeyCodes.PAGE_DOWN,Insert:goog.events.KeyCodes.INSERT};goog.events.KeyHandler.mozKeyCodeToKeyCodeMap_={61:187,59:186};goog.events.KeyHandler.USES_KEYDOWN_=goog.userAgent.IE||goog.userAgent.WEBKIT&&goog.userAgent.isVersion("525");a=goog.events.KeyHandler.prototype;
a.handleKeyDown_=function(b){if(goog.events.KeyHandler.USES_KEYDOWN_&&!goog.events.KeyCodes.firesKeyPressEvent(b.keyCode,this.lastKey_,b.shiftKey,b.ctrlKey,b.altKey))this.handleEvent(b);else this.keyCode_=goog.userAgent.GECKO&&b.keyCode in goog.events.KeyHandler.mozKeyCodeToKeyCodeMap_?goog.events.KeyHandler.mozKeyCodeToKeyCodeMap_[b.keyCode]:b.keyCode};a.handleKeyup_=function(){this.keyCode_=this.lastKey_=-1};
a.handleEvent=function(b){var c=b.getBrowserEvent(),d,e;if(goog.userAgent.IE&&b.type==goog.events.EventType.KEYPRESS){d=this.keyCode_;e=d!=goog.events.KeyCodes.ENTER&&d!=goog.events.KeyCodes.ESC?c.keyCode:0}else if(goog.userAgent.WEBKIT&&b.type==goog.events.EventType.KEYPRESS){d=this.keyCode_;e=c.charCode>=0&&c.charCode<63232&&goog.events.KeyCodes.isCharacterKey(d)?c.charCode:0}else if(goog.userAgent.OPERA){d=this.keyCode_;e=goog.events.KeyCodes.isCharacterKey(d)?c.keyCode:0}else{d=c.keyCode||this.keyCode_;
e=c.charCode||0;if(goog.userAgent.MAC&&e==goog.events.KeyCodes.QUESTION_MARK&&!d)d=goog.events.KeyCodes.SLASH}var f=d,g=c.keyIdentifier;if(d)if(d>=63232&&d in goog.events.KeyHandler.safariKey_)f=goog.events.KeyHandler.safariKey_[d];else{if(d==25&&b.shiftKey)f=9}else if(g&&g in goog.events.KeyHandler.keyIdentifier_)f=goog.events.KeyHandler.keyIdentifier_[g];b=f==this.lastKey_;this.lastKey_=f;c=new goog.events.KeyEvent(f,e,b,c);try{this.dispatchEvent(c)}finally{c.dispose()}};
a.attach=function(b){this.keyUpKey_&&this.detach();this.element_=b;this.keyPressKey_=goog.events.listen(this.element_,goog.events.EventType.KEYPRESS,this);this.keyDownKey_=goog.events.listen(this.element_,goog.events.EventType.KEYDOWN,this.handleKeyDown_,false,this);this.keyUpKey_=goog.events.listen(this.element_,goog.events.EventType.KEYUP,this.handleKeyup_,false,this)};
a.detach=function(){if(this.keyPressKey_){goog.events.unlistenByKey(this.keyPressKey_);goog.events.unlistenByKey(this.keyDownKey_);goog.events.unlistenByKey(this.keyUpKey_);this.keyUpKey_=this.keyDownKey_=this.keyPressKey_=null}this.element_=null;this.lastKey_=-1};a.disposeInternal=function(){goog.events.KeyHandler.superClass_.disposeInternal.call(this);this.detach()};
goog.events.KeyEvent=function(b,c,d,e){goog.events.BrowserEvent.call(this,e);this.type=goog.events.KeyHandler.EventType.KEY;this.keyCode=b;this.charCode=c;this.repeat=d};goog.inherits(goog.events.KeyEvent,goog.events.BrowserEvent);
goog.ui.AutoComplete.InputHandler=function(b,c,d,e){goog.Disposable.call(this);e=e||150;this.setSeparators(goog.isDefAndNotNull(b)?b:goog.ui.AutoComplete.InputHandler.STANDARD_LIST_SEPARATORS);this.literals_=c||"";this.preventDefaultOnTab_=this.multi_=d!=null?d:true;this.timer_=e>0?new goog.Timer(e):null;this.eh_=new goog.events.EventHandler(this);this.activateHandler_=new goog.events.EventHandler(this);this.keyHandler_=new goog.events.KeyHandler;this.lastKeyCode_=-1};
goog.inherits(goog.ui.AutoComplete.InputHandler,goog.Disposable);goog.ui.AutoComplete.InputHandler.STANDARD_LIST_SEPARATORS=",;";goog.ui.AutoComplete.InputHandler.QUOTE_LITERALS='"';a=goog.ui.AutoComplete.InputHandler.prototype;a.whitespaceWrapEntries_=true;a.generateNewTokenOnLiteral_=true;a.upsideDown_=false;a.separatorUpdates_=true;a.separatorSelects_=true;a.activeElement_=null;a.lastValue_="";a.waitingForIme_=false;a.rowJustSelected_=false;a.updateDuringTyping_=true;
a.attachAutoComplete=function(b){this.ac_=b};a.getAutoComplete=function(){return this.ac_};a.getActiveElement=function(){return this.activeElement_};a.attachInput=function(b){goog.dom.a11y.setState(b,"haspopup",true);this.eh_.listen(b,goog.events.EventType.FOCUS,this.onFocus_);this.eh_.listen(b,goog.events.EventType.BLUR,this.onBlur_);this.activeElement_||this.activateHandler_.listen(b,goog.events.EventType.KEYDOWN,this.onKeyDownOnInactiveElement_)};
a.detachInput=function(b){b==this.activeElement_&&this.onBlur_();this.eh_.unlisten(b,goog.events.EventType.FOCUS,this.onFocus_);this.eh_.unlisten(b,goog.events.EventType.BLUR,this.onBlur_);this.activeElement_||this.activateHandler_.unlisten(b,goog.events.EventType.KEYDOWN,this.onKeyDownOnInactiveElement_)};a.attachInputs=function(){for(var b=0;b<arguments.length;b++)this.attachInput(arguments[b])};a.detachInputs=function(){for(var b=0;b<arguments.length;b++)this.detachInput(arguments[b])};
a.selectRow=function(b,c){var d=this.ac_.getTarget();if(goog.isDef(c)?c:this.multi_){c=goog.dom.selection.getStart(d);c=this.getTokenIndex_(d.value,c);var e=this.splitInput_(d.value);b=b.toString();this.separatorCheck_.test(b)||(b=goog.string.trimRight(b)+this.defaultSeparator_);if(this.whitespaceWrapEntries_){if(c!=0&&!goog.string.isEmpty(e[c-1]))b=" "+b;if(c<e.length&&!goog.string.isEmpty(e[c+1]))b+=" "}if(b!=e[c]){e[c]=b;d.value=e.join("");for(var f=b=0;f<=c;f++)b+=e[f].length;d.focus();goog.dom.selection.setStart(d,
b);goog.dom.selection.setEnd(d,b)}}else d.value=b.toString();this.rowJustSelected_=true;return false};a.disposeInternal=function(){goog.ui.AutoComplete.InputHandler.superClass_.disposeInternal.call(this);this.eh_.dispose();delete this.eh_;this.activateHandler_.dispose();this.activateHandler_=null};
a.setSeparators=function(b){this.separators_=b;this.defaultSeparator_=this.separators_.substring(0,1);b=this.multi_?"[\\s"+this.separators_+"]+":"[\\s]+";this.trimmer_=new RegExp("^"+b+"|"+b+"$","g");this.separatorCheck_=new RegExp("\\s*["+this.separators_+"]$")};a.setUpsideDown=function(b){this.upsideDown_=b};a.setWhitespaceWrapEntries=function(b){this.whitespaceWrapEntries_=b};a.setGenerateNewTokenOnLiteral=function(b){this.generateNewTokenOnLiteral_=b};
a.setTrimmingRegExp=function(b){this.trimmer_=b};a.setPreventDefaultOnTab=function(b){this.preventDefaultOnTab_=b};a.setSeparatorCompletes=function(b){this.separatorSelects_=this.separatorUpdates_=b};a.setSeparatorSelects=function(b){this.separatorSelects_=b};a.getThrottleTime=function(){return this.timer_?this.timer_.getInterval():-1};a.setThrottleTime=function(b){if(b<0){this.timer_.dispose();this.timer_=null}else if(this.timer_)this.timer_.setInterval(b);else this.timer_=new goog.Timer(b)};
a.getUpdateDuringTyping=function(){return this.updateDuringTyping_};a.setUpdateDuringTyping=function(b){this.updateDuringTyping_=b};
a.handleKeyEvent=function(b){switch(b.keyCode){case goog.events.KeyCodes.DOWN:if(this.ac_.isOpen()){this.moveDown_();b.preventDefault();return true}else if(!this.multi_){this.update(true);b.preventDefault();return true}break;case goog.events.KeyCodes.UP:if(this.ac_.isOpen()){this.moveUp_();b.preventDefault();return true}break;case goog.events.KeyCodes.TAB:this.update();if(this.ac_.selectHilited()&&this.preventDefaultOnTab_){b.preventDefault();return true}break;case goog.events.KeyCodes.ENTER:this.update();
if(this.ac_.selectHilited()){b.preventDefault();return true}break;case goog.events.KeyCodes.ESC:if(this.ac_.isOpen()){this.ac_.dismiss();return true}break;case goog.events.KeyCodes.WIN_IME:if(!this.waitingForIme_){this.startWaitingForIme_();return true}break;default:if(this.timer_&&!this.updateDuringTyping_){this.timer_.stop();this.timer_.start()}}return this.handleSeparator_(b)};
a.handleSeparator_=function(b){var c=this.multi_&&b.charCode&&this.separators_.indexOf(String.fromCharCode(b.charCode))!=-1;this.separatorUpdates_&&c&&this.update();if(this.separatorSelects_&&c)if(this.ac_.selectHilited()){b.preventDefault();return true}return false};a.needKeyUpListener=function(){return false};a.handleKeyUp=function(){return false};
a.addKeyEvents_=function(){this.keyHandler_.attach(this.activeElement_);this.eh_.listen(this.keyHandler_,goog.events.KeyHandler.EventType.KEY,this.onKey_);this.needKeyUpListener()&&this.eh_.listen(this.activeElement_,goog.events.EventType.KEYUP,this.handleKeyUp);goog.userAgent.IE&&this.eh_.listen(this.activeElement_,goog.events.EventType.KEYPRESS,this.onIeKeyPress_)};
a.removeKeyEvents_=function(){this.eh_.unlisten(this.keyHandler_,goog.events.KeyHandler.EventType.KEY,this.onKey_);this.keyHandler_.detach();this.eh_.unlisten(this.activeElement_,goog.events.EventType.KEYUP,this.handleKeyUp);goog.userAgent.IE&&this.eh_.unlisten(this.activeElement_,goog.events.EventType.KEYPRESS,this.onIeKeyPress_);this.waitingForIme_&&this.stopWaitingForIme_()};
a.onFocus_=function(b){this.activateHandler_.removeAll();this.ac_&&this.ac_.cancelDelayedDismiss();if(b.target!=this.activeElement_){this.activeElement_=b.target||null;if(this.timer_){this.timer_.start();this.eh_.listen(this.timer_,goog.Timer.TICK,this.onTick_)}this.lastValue_=this.activeElement_.value;this.addKeyEvents_()}};
a.onBlur_=function(){if(this.activeElement_){this.removeKeyEvents_();this.activeElement_=null;if(this.timer_){this.timer_.stop();this.eh_.unlisten(this.timer_,goog.Timer.TICK,this.onTick_)}this.ac_&&this.ac_.dismissOnDelay()}};a.onTick_=function(){this.update()};a.onKeyDownOnInactiveElement_=function(b){this.onFocus_(b)};a.onKey_=function(b){this.lastKeyCode_=b.keyCode;this.ac_&&this.handleKeyEvent(b)};
a.onKeyPress_=function(){this.waitingForIme_&&this.lastKeyCode_!=goog.events.KeyCodes.WIN_IME&&this.stopWaitingForIme_()};a.onKeyUp_=function(b){if(this.waitingForIme_&&(b.keyCode==goog.events.KeyCodes.ENTER||b.keyCode==goog.events.KeyCodes.M&&b.ctrlKey))this.stopWaitingForIme_()};
a.startWaitingForIme_=function(){if(!this.waitingForIme_){this.eh_.listen(this.activeElement_,goog.events.EventType.KEYUP,this.onKeyUp_);this.eh_.listen(this.activeElement_,goog.events.EventType.KEYPRESS,this.onKeyPress_);this.waitingForIme_=true}};a.stopWaitingForIme_=function(){if(this.waitingForIme_){this.waitingForIme_=false;this.eh_.unlisten(this.activeElement_,goog.events.EventType.KEYPRESS,this.onKeyPress_);this.eh_.unlisten(this.activeElement_,goog.events.EventType.KEYUP,this.onKeyUp_)}};
a.onIeKeyPress_=function(b){this.handleSeparator_(b)};a.update=function(b){if(b||this.activeElement_&&this.activeElement_.value!=this.lastValue_){if(b||!this.rowJustSelected_){b=this.parseToken_();if(this.ac_){this.ac_.setTarget(this.activeElement_);this.ac_.setToken(b,this.activeElement_.value)}}this.lastValue_=this.activeElement_.value}this.rowJustSelected_=false};a.moveUp_=function(){return this.upsideDown_?this.ac_.hiliteNext():this.ac_.hilitePrev()};
a.moveDown_=function(){return this.upsideDown_?this.ac_.hilitePrev():this.ac_.hiliteNext()};a.parseToken_=function(){var b=goog.dom.selection.getStart(this.activeElement_),c=this.activeElement_.value;return this.trim_(this.splitInput_(c)[this.getTokenIndex_(c,b)])};a.trim_=function(b){return this.trimmer_?String(b).replace(this.trimmer_,""):b};a.getTokenIndex_=function(b,c){var d=this.splitInput_(b);if(c==b.length)return d.length-1;for(var e=b=0,f=0;e<d.length&&f<c;e++){f+=d[e].length;b=e}return b};
a.splitInput_=function(b){if(!this.multi_)return[b];b=String(b).split("");for(var c=[],d=[],e=0,f=false;e<b.length;e++)if(this.literals_&&this.literals_.indexOf(b[e])!=-1){if(this.generateNewTokenOnLiteral_&&!f){c.push(d.join(""));d.length=0}d.push(b[e]);f=!f}else if(!f&&this.separators_.indexOf(b[e])!=-1){d.push(b[e]);c.push(d.join(""));d.length=0}else d.push(b[e]);c.push(d.join(""));return c};
goog.structs.getCount=function(b){if(typeof b.getCount=="function")return b.getCount();if(goog.isArrayLike(b)||goog.isString(b))return b.length;return goog.object.getCount(b)};goog.structs.getValues=function(b){if(typeof b.getValues=="function")return b.getValues();if(goog.isString(b))return b.split("");if(goog.isArrayLike(b)){for(var c=[],d=b.length,e=0;e<d;e++)c.push(b[e]);return c}return goog.object.getValues(b)};
goog.structs.getKeys=function(b){if(typeof b.getKeys=="function")return b.getKeys();if(typeof b.getValues!="function"){if(goog.isArrayLike(b)||goog.isString(b)){var c=[];b=b.length;for(var d=0;d<b;d++)c.push(d);return c}return goog.object.getKeys(b)}};
goog.structs.contains=function(b,c){if(typeof b.contains=="function")return b.contains(c);if(typeof b.containsValue=="function")return b.containsValue(c);if(goog.isArrayLike(b)||goog.isString(b))return goog.array.contains(b,c);return goog.object.containsValue(b,c)};goog.structs.isEmpty=function(b){if(typeof b.isEmpty=="function")return b.isEmpty();if(goog.isArrayLike(b)||goog.isString(b))return goog.array.isEmpty(b);return goog.object.isEmpty(b)};
goog.structs.clear=function(b){if(typeof b.clear=="function")b.clear();else goog.isArrayLike(b)?goog.array.clear(b):goog.object.clear(b)};goog.structs.forEach=function(b,c,d){if(typeof b.forEach=="function")b.forEach(c,d);else if(goog.isArrayLike(b)||goog.isString(b))goog.array.forEach(b,c,d);else for(var e=goog.structs.getKeys(b),f=goog.structs.getValues(b),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],b)};
goog.structs.filter=function(b,c,d){if(typeof b.filter=="function")return b.filter(c,d);if(goog.isArrayLike(b)||goog.isString(b))return goog.array.filter(b,c,d);var e,f=goog.structs.getKeys(b),g=goog.structs.getValues(b),h=g.length;if(f){e={};for(var i=0;i<h;i++)if(c.call(d,g[i],f[i],b))e[f[i]]=g[i]}else{e=[];for(i=0;i<h;i++)c.call(d,g[i],undefined,b)&&e.push(g[i])}return e};
goog.structs.map=function(b,c,d){if(typeof b.map=="function")return b.map(c,d);if(goog.isArrayLike(b)||goog.isString(b))return goog.array.map(b,c,d);var e,f=goog.structs.getKeys(b),g=goog.structs.getValues(b),h=g.length;if(f){e={};for(var i=0;i<h;i++)e[f[i]]=c.call(d,g[i],f[i],b)}else{e=[];for(i=0;i<h;i++)e[i]=c.call(d,g[i],undefined,b)}return e};
goog.structs.some=function(b,c,d){if(typeof b.some=="function")return b.some(c,d);if(goog.isArrayLike(b)||goog.isString(b))return goog.array.some(b,c,d);for(var e=goog.structs.getKeys(b),f=goog.structs.getValues(b),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],b))return true;return false};
goog.structs.every=function(b,c,d){if(typeof b.every=="function")return b.every(c,d);if(goog.isArrayLike(b)||goog.isString(b))return goog.array.every(b,c,d);for(var e=goog.structs.getKeys(b),f=goog.structs.getValues(b),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],b))return false;return true};goog.iter={};goog.iter.Iterable=goog.typedef;goog.iter.StopIteration="StopIteration"in goog.global?goog.global.StopIteration:Error("StopIteration");goog.iter.Iterator=function(){};
goog.iter.Iterator.prototype.next=function(){throw goog.iter.StopIteration;};goog.iter.Iterator.prototype.__iterator__=function(){return this};goog.iter.toIterator=function(b){if(b instanceof goog.iter.Iterator)return b;if(typeof b.__iterator__=="function")return b.__iterator__(false);if(goog.isArrayLike(b)){var c=0,d=new goog.iter.Iterator;d.next=function(){for(;;){if(c>=b.length)throw goog.iter.StopIteration;if(c in b)return b[c++];else c++}};return d}throw Error("Not implemented");};
goog.iter.forEach=function(b,c,d){if(goog.isArrayLike(b))try{goog.array.forEach(b,c,d)}catch(e){if(e!==goog.iter.StopIteration)throw e;}else{b=goog.iter.toIterator(b);try{for(;;)c.call(d,b.next(),undefined,b)}catch(f){if(f!==goog.iter.StopIteration)throw f;}}};goog.iter.filter=function(b,c,d){b=goog.iter.toIterator(b);var e=new goog.iter.Iterator;e.next=function(){for(;;){var f=b.next();if(c.call(d,f,undefined,b))return f}};return e};
goog.iter.range=function(b,c,d){var e=0,f=b,g=d||1;if(arguments.length>1){e=b;f=c}if(g==0)throw Error("Range step argument must not be zero");var h=new goog.iter.Iterator;h.next=function(){if(g>0&&e>=f||g<0&&e<=f)throw goog.iter.StopIteration;var i=e;e+=g;return i};return h};goog.iter.join=function(b,c){return goog.iter.toArray(b).join(c)};
goog.iter.map=function(b,c,d){b=goog.iter.toIterator(b);var e=new goog.iter.Iterator;e.next=function(){for(;;){var f=b.next();return c.call(d,f,undefined,b)}};return e};goog.iter.reduce=function(b,c,d,e){var f=d;goog.iter.forEach(b,function(g){f=c.call(e,f,g)});return f};goog.iter.some=function(b,c,d){b=goog.iter.toIterator(b);try{for(;;)if(c.call(d,b.next(),undefined,b))return true}catch(e){if(e!==goog.iter.StopIteration)throw e;}return false};
goog.iter.every=function(b,c,d){b=goog.iter.toIterator(b);try{for(;;)if(!c.call(d,b.next(),undefined,b))return false}catch(e){if(e!==goog.iter.StopIteration)throw e;}return true};goog.iter.chain=function(){var b=arguments,c=b.length,d=0,e=new goog.iter.Iterator;e.next=function(){try{if(d>=c)throw goog.iter.StopIteration;return goog.iter.toIterator(b[d]).next()}catch(f){if(f!==goog.iter.StopIteration||d>=c)throw f;else{d++;return this.next()}}};return e};
goog.iter.dropWhile=function(b,c,d){b=goog.iter.toIterator(b);var e=new goog.iter.Iterator,f=true;e.next=function(){for(;;){var g=b.next();if(!(f&&c.call(d,g,undefined,b))){f=false;return g}}};return e};goog.iter.takeWhile=function(b,c,d){b=goog.iter.toIterator(b);var e=new goog.iter.Iterator,f=true;e.next=function(){for(;;)if(f){var g=b.next();if(c.call(d,g,undefined,b))return g;else f=false}else throw goog.iter.StopIteration;};return e};
goog.iter.toArray=function(b){if(goog.isArrayLike(b))return goog.array.toArray(b);b=goog.iter.toIterator(b);var c=[];goog.iter.forEach(b,function(d){c.push(d)});return c};
goog.iter.equals=function(b,c){b=goog.iter.toIterator(b);c=goog.iter.toIterator(c);var d,e;try{for(;;){d=e=false;var f=b.next();d=true;var g=c.next();e=true;if(f!=g)return false}}catch(h){if(h!==goog.iter.StopIteration)throw h;else{if(d&&!e)return false;if(!e)try{c.next();return false}catch(i){if(i!==goog.iter.StopIteration)throw i;return true}}}return false};goog.iter.nextOrValue=function(b,c){try{return goog.iter.toIterator(b).next()}catch(d){if(d!=goog.iter.StopIteration)throw d;return c}};
goog.structs.Map=function(b){this.map_={};this.keys_=[];var c=arguments.length;if(c>1){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else b&&this.addAll(b)};a=goog.structs.Map.prototype;a.count_=0;a.version_=0;a.getCount=function(){return this.count_};a.getValues=function(){this.cleanupKeysArray_();for(var b=[],c=0;c<this.keys_.length;c++)b.push(this.map_[this.keys_[c]]);return b};a.getKeys=function(){this.cleanupKeysArray_();return this.keys_.concat()};
a.containsKey=function(b){return goog.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(goog.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==b)return true}return false};a.equals=function(b,c){if(this===b)return true;if(this.count_!=b.getCount())return false;c=c||goog.structs.Map.defaultEquals;this.cleanupKeysArray_();for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),b.get(d)))return false;return true};
goog.structs.Map.defaultEquals=function(b,c){return b===c};a=goog.structs.Map.prototype;a.isEmpty=function(){return this.count_==0};a.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};a.remove=function(b){if(goog.structs.Map.hasKey_(this.map_,b)){delete this.map_[b];this.count_--;this.version_++;this.keys_.length>2*this.count_&&this.cleanupKeysArray_();return true}return false};
a.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var b=0,c=0;b<this.keys_.length;){var d=this.keys_[b];if(goog.structs.Map.hasKey_(this.map_,d))this.keys_[c++]=d;b++}this.keys_.length=c}if(this.count_!=this.keys_.length){var e={};for(c=b=0;b<this.keys_.length;){d=this.keys_[b];if(!goog.structs.Map.hasKey_(e,d)){this.keys_[c++]=d;e[d]=1}b++}this.keys_.length=c}};a.get=function(b,c){if(goog.structs.Map.hasKey_(this.map_,b))return this.map_[b];return c};
a.set=function(b,c){if(!goog.structs.Map.hasKey_(this.map_,b)){this.count_++;this.keys_.push(b);this.version_++}this.map_[b]=c};a.addAll=function(b){var c;if(b instanceof goog.structs.Map){c=b.getKeys();b=b.getValues()}else{c=goog.object.getKeys(b);b=goog.object.getValues(b)}for(var d=0;d<c.length;d++)this.set(c[d],b[d])};a.clone=function(){return new goog.structs.Map(this)};a.transpose=function(){for(var b=new goog.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];b.set(this.map_[d],d)}return b};
a.getKeyIterator=function(){return this.__iterator__(true)};a.getValueIterator=function(){return this.__iterator__(false)};a.__iterator__=function(b){this.cleanupKeysArray_();var c=0,d=this.keys_,e=this.map_,f=this.version_,g=this,h=new goog.iter.Iterator;h.next=function(){for(;;){if(f!=g.version_)throw Error("The map has changed since the iterator was created");if(c>=d.length)throw goog.iter.StopIteration;var i=d[c++];return b?i:e[i]}};return h};
goog.structs.Map.hasKey_=function(b,c){return Object.prototype.hasOwnProperty.call(b,c)};goog.structs.Map.getCount=function(b){return goog.structs.getCount(b)};goog.structs.Map.getValues=function(b){return goog.structs.getValues(b)};goog.structs.Map.getKeys=function(b){if(typeof b.getKeys=="function")return b.getKeys();var c=[];if(goog.isArrayLike(b))for(var d=0;d<b.length;d++)c.push(d);else return goog.object.getKeys(b);return c};
goog.structs.Map.containsKey=function(b,c){if(typeof b.containsKey=="function")return b.containsKey(c);if(goog.isArrayLike(b))return Number(c)<b.length;return goog.object.containsKey(b,c)};goog.structs.Map.containsValue=function(b,c){return goog.structs.contains(b,c)};goog.structs.Map.isEmpty=function(b){return goog.structs.isEmpty(b)};goog.structs.Map.clear=function(b){goog.structs.clear(b)};
goog.structs.Map.remove=function(b,c){if(typeof b.remove=="function")return b.remove(c);if(goog.isArrayLike(b))return goog.array.removeAt(b,Number(c));return goog.object.remove(b,c)};goog.structs.Map.add=function(b,c,d){if(typeof b.add=="function")b.add(c,d);else if(goog.structs.Map.containsKey(b,c))throw Error('The collection already contains the key "'+c+'"');else goog.structs.Map.set(b,c,d)};
goog.structs.Map.get=function(b,c,d){if(typeof b.get=="function")return b.get(c,d);if(goog.structs.Map.containsKey(b,c))return b[c];return d};goog.structs.Map.set=function(b,c,d){if(typeof b.set=="function")b.set(c,d);else b[c]=d};goog.asserts={};goog.asserts.assert=function(b,c){if(goog.DEBUG&&!b)throw Error("Assertion failed"+(c?": "+c:""));};goog.asserts.fail=function(b){if(goog.DEBUG)throw Error("Failure"+(b?": "+b:""));};
goog.asserts.assertNumber=function(b,c){goog.asserts.assert(goog.isNumber(b),c)};goog.asserts.assertString=function(b,c){goog.asserts.assert(goog.isString(b),c)};goog.asserts.assertFunction=function(b,c){goog.asserts.assert(goog.isFunction(b),c)};goog.asserts.assertObject=function(b,c){goog.asserts.assert(goog.isObject(b),c)};goog.asserts.assertInstanceof=function(b,c,d){goog.asserts.assert(b instanceof c,d)};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};
goog.uri.utils.buildFromEncodedParts=function(b,c,d,e,f,g,h){var i=[];b&&i.push(b,":");if(d){i.push("//");c&&i.push(c,"@");i.push(d);e&&i.push(":",e)}f&&i.push(f);g&&i.push("?",g);h&&i.push("#",h);return i.join("")};goog.uri.utils.splitRe_=/^(?:([^:\/?#]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(b){return b.match(goog.uri.utils.splitRe_)};
goog.uri.utils.decodeIfPossible_=function(b){return b&&decodeURIComponent(b)};goog.uri.utils.getComponentByIndex_=function(b,c){return goog.uri.utils.split(c)[b]||null};goog.uri.utils.getScheme=function(b){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,b)};goog.uri.utils.getUserInfoEncoded=function(b){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,b)};goog.uri.utils.getUserInfo=function(b){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(b))};
goog.uri.utils.getDomainEncoded=function(b){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,b)};goog.uri.utils.getDomain=function(b){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(b))};goog.uri.utils.getPort=function(b){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,b))||null};goog.uri.utils.getPathEncoded=function(b){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,b)};
goog.uri.utils.getPath=function(b){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(b))};goog.uri.utils.getQueryData=function(b){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,b)};goog.uri.utils.getFragmentEncoded=function(b){var c=b.indexOf("#");return c<0?null:b.substr(c+1)};goog.uri.utils.getFragment=function(b){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(b))};
goog.uri.utils.getHost=function(b){b=goog.uri.utils.split(b);return goog.uri.utils.buildFromEncodedParts(b[goog.uri.utils.ComponentIndex.SCHEME],b[goog.uri.utils.ComponentIndex.USER_INFO],b[goog.uri.utils.ComponentIndex.DOMAIN],b[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getPathAndAfter=function(b){b=goog.uri.utils.split(b);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,b[goog.uri.utils.ComponentIndex.PATH],b[goog.uri.utils.ComponentIndex.QUERY_DATA],b[goog.uri.utils.ComponentIndex.FRAGMENT])};
goog.uri.utils.removeFragment=function(b){var c=b.indexOf("#");return c<0?b:b.substr(0,c)};goog.uri.utils.haveSameDomain=function(b,c){b=goog.uri.utils.split(b);c=goog.uri.utils.split(c);return b[goog.uri.utils.ComponentIndex.DOMAIN]==c[goog.uri.utils.ComponentIndex.DOMAIN]&&b[goog.uri.utils.ComponentIndex.SCHEME]==c[goog.uri.utils.ComponentIndex.SCHEME]&&b[goog.uri.utils.ComponentIndex.PORT]==c[goog.uri.utils.ComponentIndex.PORT]};
goog.uri.utils.assertNoFragmentsOrQueries_=function(b){if(goog.DEBUG&&(b.indexOf("#")>=0||b.indexOf("?")>=0))throw Error("goog.uri.utils: Fragment or query identifiers are not supported: ["+b+"]");};goog.uri.utils.QueryValue=goog.typedef;goog.uri.utils.QueryArray=goog.typedef;goog.uri.utils.appendQueryData_=function(b){if(b[1]){var c=b[0],d=c.indexOf("#");if(d>=0){b.push(c.substr(d));b[0]=c=c.substr(0,d)}d=c.indexOf("?");if(d<0)b[1]="?";else if(d==c.length-1)b[1]=undefined}return b.join("")};
goog.uri.utils.appendKeyValuePairs_=function(b,c,d){if(goog.isArray(c)){c=c;for(var e=0;e<c.length;e++)d.push("&",b,"=",goog.string.urlEncode(c[e]))}else c!=null&&d.push("&",b,"=",goog.string.urlEncode(c))};goog.uri.utils.buildQueryDataBuffer_=function(b,c,d){goog.asserts.assert(Math.max(c.length-(d||0),0)%2==0,"goog.uri.utils: Key/value lists must be even in length.");for(d=d||0;d<c.length;d+=2)goog.uri.utils.appendKeyValuePairs_(c[d],c[d+1],b);return b};
goog.uri.utils.buildQueryData=function(b,c){b=goog.uri.utils.buildQueryDataBuffer_([],b,c);b[0]="";return b.join("")};goog.uri.utils.buildQueryDataBufferFromMap_=function(b,c){for(var d in c)goog.uri.utils.appendKeyValuePairs_(d,c[d],b);return b};goog.uri.utils.buildQueryDataFromMap=function(b){b=goog.uri.utils.buildQueryDataBufferFromMap_([],b);b[0]="";return b.join("")};
goog.uri.utils.appendParams=function(b){return goog.uri.utils.appendQueryData_(arguments.length==2?goog.uri.utils.buildQueryDataBuffer_([b],arguments[1],0):goog.uri.utils.buildQueryDataBuffer_([b],arguments,1))};goog.uri.utils.appendParamsFromMap=function(b,c){return goog.uri.utils.appendQueryData_(goog.uri.utils.buildQueryDataBufferFromMap_([b],c))};goog.uri.utils.appendParam=function(b,c,d){return goog.uri.utils.appendQueryData_([b,"&",c,"=",goog.string.urlEncode(d)])};
goog.uri.utils.findParam_=function(b,c,d,e){c=c;for(var f=d.length;(c=b.indexOf(d,c))>=0&&c<e;){var g=b.charCodeAt(c-1);if(g==goog.uri.utils.CharCode_.AMPERSAND||g==goog.uri.utils.CharCode_.QUESTION){g=b.charCodeAt(c+f);if(!g||g==goog.uri.utils.CharCode_.EQUAL||g==goog.uri.utils.CharCode_.AMPERSAND||g==goog.uri.utils.CharCode_.HASH)return c}c+=f+1}return-1};goog.uri.utils.hashOrEndRe_=/#|$/;
goog.uri.utils.hasParam=function(b,c){return goog.uri.utils.findParam_(b,0,c,b.search(goog.uri.utils.hashOrEndRe_))>=0};goog.uri.utils.getParamValue=function(b,c){var d=b.search(goog.uri.utils.hashOrEndRe_),e=goog.uri.utils.findParam_(b,0,c,d);if(e<0)return null;else{var f=b.indexOf("&",e);if(f<0||f>d)f=d;e+=c.length+1;return goog.string.urlDecode(b.substr(e,f-e))}};
goog.uri.utils.getParamValues=function(b,c){for(var d=b.search(goog.uri.utils.hashOrEndRe_),e=0,f,g=[];(f=goog.uri.utils.findParam_(b,e,c,d))>=0;){e=b.indexOf("&",f);if(e<0||e>d)e=d;f+=c.length+1;g.push(goog.string.urlDecode(b.substr(f,e-f)))}return g};goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;
goog.uri.utils.removeParam=function(b,c){for(var d=b.search(goog.uri.utils.hashOrEndRe_),e=0,f,g=[];(f=goog.uri.utils.findParam_(b,e,c,d))>=0;){g.push(b.substring(e,f));e=Math.min(b.indexOf("&",f)+1||d,d)}g.push(b.substr(e));return g.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(b,c,d){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(b,c),c,d)};
goog.uri.utils.appendPath=function(b,c){goog.uri.utils.assertNoFragmentsOrQueries_(b);if(goog.string.endsWith(b,"/"))b=b.substr(0,b.length-1);if(goog.string.startsWith(c,"/"))c=c.substr(1);return goog.string.buildString(b,"/",c)};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};goog.uri.utils.makeUnique=function(b){return goog.uri.utils.setParam(b,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};
goog.Uri=function(b,c){var d;if(b instanceof goog.Uri){this.setIgnoreCase(c==null?b.getIgnoreCase():c);this.setScheme(b.getScheme());this.setUserInfo(b.getUserInfo());this.setDomain(b.getDomain());this.setPort(b.getPort());this.setPath(b.getPath());this.setQueryData(b.getQueryData().clone());this.setFragment(b.getFragment())}else if(b&&(d=goog.uri.utils.split(String(b)))){this.setIgnoreCase(!!c);this.setScheme(d[goog.uri.utils.ComponentIndex.SCHEME]||"",true);this.setUserInfo(d[goog.uri.utils.ComponentIndex.USER_INFO]||
"",true);this.setDomain(d[goog.uri.utils.ComponentIndex.DOMAIN]||"",true);this.setPort(d[goog.uri.utils.ComponentIndex.PORT]);this.setPath(d[goog.uri.utils.ComponentIndex.PATH]||"",true);this.setQuery(d[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",true);this.setFragment(d[goog.uri.utils.ComponentIndex.FRAGMENT]||"",true)}else{this.setIgnoreCase(!!c);this.queryData_=new goog.Uri.QueryData(null,this,this.ignoreCase_)}};goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM;a=goog.Uri.prototype;
a.scheme_="";a.userInfo_="";a.domain_="";a.port_=null;a.path_="";a.fragment_="";a.isReadOnly_=false;a.ignoreCase_=false;
a.toString=function(){if(this.cachedToString_)return this.cachedToString_;var b=[];this.scheme_&&b.push(goog.Uri.encodeSpecialChars_(this.scheme_,goog.Uri.reDisallowedInSchemeOrUserInfo_),":");if(this.domain_){b.push("//");this.userInfo_&&b.push(goog.Uri.encodeSpecialChars_(this.userInfo_,goog.Uri.reDisallowedInSchemeOrUserInfo_),"@");b.push(goog.Uri.encodeString_(this.domain_));this.port_!=null&&b.push(":",String(this.getPort()))}this.path_&&b.push(goog.Uri.encodeSpecialChars_(this.path_,goog.Uri.reDisallowedInPath_));
var c=String(this.queryData_);c&&b.push("?",c);this.fragment_&&b.push("#",goog.Uri.encodeSpecialChars_(this.fragment_,goog.Uri.reDisallowedInFragment_));return this.cachedToString_=b.join("")};
a.resolve=function(b){var c=this.clone(),d=b.hasScheme();if(d)c.setScheme(b.getScheme());else d=b.hasUserInfo();if(d)c.setUserInfo(b.getUserInfo());else d=b.hasDomain();if(d)c.setDomain(b.getDomain());else d=b.hasPort();var e=b.getPath();if(d)c.setPort(b.getPort());else if(d=b.hasPath()){if(e.charAt(0)!="/")if(this.hasDomain()&&!this.hasPath())e="/"+e;else{var f=c.getPath().lastIndexOf("/");if(f!=-1)e=c.getPath().substr(0,f+1)+e}e=goog.Uri.removeDotSegments(e)}if(d)c.setPath(e);else d=b.hasQuery();
if(d)c.setQuery(b.getDecodedQuery());else d=b.hasFragment();d&&c.setFragment(b.getFragment());return c};a.clone=function(){return goog.Uri.create(this.scheme_,this.userInfo_,this.domain_,this.port_,this.path_,this.queryData_.clone(),this.fragment_,this.ignoreCase_)};a.getScheme=function(){return this.scheme_};a.setScheme=function(b,c){this.enforceReadOnly();delete this.cachedToString_;if(this.scheme_=c?goog.Uri.decodeOrEmpty_(b):b)this.scheme_=this.scheme_.replace(/:$/,"");return this};
a.hasScheme=function(){return!!this.scheme_};a.getUserInfo=function(){return this.userInfo_};a.setUserInfo=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.userInfo_=c?goog.Uri.decodeOrEmpty_(b):b;return this};a.hasUserInfo=function(){return!!this.userInfo_};a.getDomain=function(){return this.domain_};a.setDomain=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.domain_=c?goog.Uri.decodeOrEmpty_(b):b;return this};a.hasDomain=function(){return!!this.domain_};
a.getPort=function(){return this.port_};a.setPort=function(b){this.enforceReadOnly();delete this.cachedToString_;if(b){b=Number(b);if(isNaN(b)||b<0)throw Error("Bad port number "+b);this.port_=b}else this.port_=null;return this};a.hasPort=function(){return this.port_!=null};a.getPath=function(){return this.path_};a.setPath=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.path_=c?goog.Uri.decodeOrEmpty_(b):b;return this};a.hasPath=function(){return!!this.path_};
a.hasQuery=function(){return this.queryData_.toString()!==""};a.setQueryData=function(b,c){this.enforceReadOnly();delete this.cachedToString_;if(b instanceof goog.Uri.QueryData){this.queryData_=b;this.queryData_.uri_=this;this.queryData_.setIgnoreCase(this.ignoreCase_)}else{c||(b=goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInQuery_));this.queryData_=new goog.Uri.QueryData(b,this,this.ignoreCase_)}return this};a.setQuery=function(b,c){return this.setQueryData(b,c)};a.getEncodedQuery=function(){return this.queryData_.toString()};
a.getDecodedQuery=function(){return this.queryData_.toDecodedString()};a.getQueryData=function(){return this.queryData_};a.getQuery=function(){return this.getEncodedQuery()};a.setParameterValue=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.queryData_.set(b,c);return this};a.setParameterValues=function(b,c){this.enforceReadOnly();delete this.cachedToString_;goog.isArray(c)||(c=[String(c)]);this.queryData_.setValues(b,c);return this};a.getParameterValues=function(b){return this.queryData_.getValues(b)};
a.getParameterValue=function(b){return this.queryData_.get(b)};a.getFragment=function(){return this.fragment_};a.setFragment=function(b,c){this.enforceReadOnly();delete this.cachedToString_;this.fragment_=c?goog.Uri.decodeOrEmpty_(b):b;return this};a.hasFragment=function(){return!!this.fragment_};a.hasSameDomainAs=function(b){return(!this.hasDomain()&&!b.hasDomain()||this.getDomain()==b.getDomain())&&(!this.hasPort()&&!b.hasPort()||this.getPort()==b.getPort())};
a.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};a.removeParameter=function(b){this.enforceReadOnly();this.queryData_.remove(b);return this};a.setReadOnly=function(b){this.isReadOnly_=b};a.isReadOnly=function(){return this.isReadOnly_};a.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};a.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b)};
a.getIgnoreCase=function(){return this.ignoreCase_};goog.Uri.parse=function(b,c){return b instanceof goog.Uri?b.clone():new goog.Uri(b,c)};goog.Uri.create=function(b,c,d,e,f,g,h,i){i=new goog.Uri(null,i);b&&i.setScheme(b);c&&i.setUserInfo(c);d&&i.setDomain(d);e&&i.setPort(e);f&&i.setPath(f);g&&i.setQueryData(g);h&&i.setFragment(h);return i};goog.Uri.resolve=function(b,c){b instanceof goog.Uri||(b=goog.Uri.parse(b));c instanceof goog.Uri||(c=goog.Uri.parse(c));return b.resolve(c)};
goog.Uri.removeDotSegments=function(b){if(b==".."||b==".")return"";else if(!goog.string.contains(b,"./")&&!goog.string.contains(b,"/."))return b;else{var c=goog.string.startsWith(b,"/");b=b.split("/");for(var d=[],e=0;e<b.length;){var f=b[e++];if(f==".")c&&e==b.length&&d.push("");else if(f==".."){if(d.length>1||d.length==1&&d[0]!="")d.pop();c&&e==b.length&&d.push("")}else{d.push(f);c=true}}return d.join("/")}};goog.Uri.decodeOrEmpty_=function(b){return b?decodeURIComponent(b):""};
goog.Uri.encodeString_=function(b){if(goog.isString(b))return encodeURIComponent(b);return null};goog.Uri.encodeSpecialRegExp_=/^[a-zA-Z0-9\-_.!~*'():\/;?]*$/;goog.Uri.encodeSpecialChars_=function(b,c){var d=null;if(goog.isString(b)){d=b;goog.Uri.encodeSpecialRegExp_.test(d)||(d=encodeURI(b));if(d.search(c)>=0)d=d.replace(c,goog.Uri.encodeChar_)}return d};goog.Uri.encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15).toString(16)+(b&15).toString(16)};
goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInPath_=/[\#\?]/g;goog.Uri.reDisallowedInQuery_=/[\#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.haveSameDomain=function(b,c){b=goog.uri.utils.split(b);c=goog.uri.utils.split(c);return b[goog.uri.utils.ComponentIndex.DOMAIN]==c[goog.uri.utils.ComponentIndex.DOMAIN]&&b[goog.uri.utils.ComponentIndex.PORT]==c[goog.uri.utils.ComponentIndex.PORT]};
goog.Uri.QueryData=function(b,c,d){this.encodedQuery_=b||null;this.uri_=c||null;this.ignoreCase_=!!d};goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_){this.keyMap_=new goog.structs.Map;if(this.encodedQuery_)for(var b=this.encodedQuery_.split("&"),c=0;c<b.length;c++){var d=b[c].indexOf("="),e=null,f=null;if(d>=0){e=b[c].substring(0,d);f=b[c].substring(d+1)}else e=b[c];e=goog.string.urlDecode(e);e=this.getKeyName_(e);this.add(e,f?goog.string.urlDecode(f):"")}}};
goog.Uri.QueryData.createFromMap=function(b,c,d){var e=goog.structs.getKeys(b);if(typeof e=="undefined")throw Error("Keys are undefined");return goog.Uri.QueryData.createFromKeysValues(e,goog.structs.getValues(b),c,d)};goog.Uri.QueryData.createFromKeysValues=function(b,c,d,e){if(b.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new goog.Uri.QueryData(null,d,e);for(e=0;e<b.length;e++)d.add(b[e],c[e]);return d};goog.Uri.QueryData.prototype.keyMap_=null;
goog.Uri.QueryData.prototype.count_=null;goog.Uri.QueryData.decodedQuery_=null;a=goog.Uri.QueryData.prototype;a.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};a.add=function(b,c){this.ensureKeyMapInitialized_();this.invalidateCache_();b=this.getKeyName_(b);if(this.containsKey(b)){var d=this.keyMap_.get(b);goog.isArray(d)?d.push(c):this.keyMap_.set(b,[d,c])}else this.keyMap_.set(b,c);this.count_++;return this};
a.remove=function(b){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);if(this.keyMap_.containsKey(b)){this.invalidateCache_();var c=this.keyMap_.get(b);if(goog.isArray(c))this.count_-=c.length;else this.count_--;return this.keyMap_.remove(b)}return false};a.clear=function(){this.invalidateCache_();this.keyMap_&&this.keyMap_.clear();this.count_=0};a.isEmpty=function(){this.ensureKeyMapInitialized_();return this.count_==0};
a.containsKey=function(b){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);return this.keyMap_.containsKey(b)};a.containsValue=function(b){var c=this.getValues();return goog.array.contains(c,b)};a.getKeys=function(){this.ensureKeyMapInitialized_();for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++){var f=b[e];if(goog.isArray(f))for(var g=0;g<f.length;g++)d.push(c[e]);else d.push(c[e])}return d};
a.getValues=function(b){this.ensureKeyMapInitialized_();if(b){b=this.getKeyName_(b);if(this.containsKey(b)){var c=this.keyMap_.get(b);if(goog.isArray(c))return c;else{b=[];b.push(c)}}else b=[]}else{c=this.keyMap_.getValues();b=[];for(var d=0;d<c.length;d++){var e=c[d];goog.isArray(e)?goog.array.extend(b,e):b.push(e)}}return b};
a.set=function(b,c){this.ensureKeyMapInitialized_();this.invalidateCache_();b=this.getKeyName_(b);if(this.containsKey(b)){var d=this.keyMap_.get(b);if(goog.isArray(d))this.count_-=d.length;else this.count_--}this.keyMap_.set(b,c);this.count_++;return this};a.get=function(b,c){this.ensureKeyMapInitialized_();b=this.getKeyName_(b);if(this.containsKey(b)){b=this.keyMap_.get(b);return goog.isArray(b)?b[0]:b}else return c};
a.setValues=function(b,c){this.ensureKeyMapInitialized_();this.invalidateCache_();b=this.getKeyName_(b);if(this.containsKey(b)){var d=this.keyMap_.get(b);if(goog.isArray(d))this.count_-=d.length;else this.count_--}if(c.length>0){this.keyMap_.set(b,c);this.count_+=c.length}};
a.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=0,d=this.keyMap_.getKeys(),e=0;e<d.length;e++){var f=d[e],g=goog.string.urlEncode(f);f=this.keyMap_.get(f);if(goog.isArray(f))for(var h=0;h<f.length;h++){c>0&&b.push("&");b.push(g,"=",goog.string.urlEncode(f[h]));c++}else{c>0&&b.push("&");b.push(g,"=",goog.string.urlEncode(f));c++}}return this.encodedQuery_=b.join("")};
a.toDecodedString=function(){if(!this.decodedQuery_)this.decodedQuery_=goog.Uri.decodeOrEmpty_(this.toString());return this.decodedQuery_};a.invalidateCache_=function(){delete this.decodedQuery_;delete this.encodedQuery_;this.uri_&&delete this.uri_.cachedToString_};a.filterKeys=function(b){this.ensureKeyMapInitialized_();goog.structs.forEach(this.keyMap_,function(c,d){goog.array.contains(b,d)||this.remove(d)},this);return this};
a.clone=function(){var b=new goog.Uri.QueryData;if(this.decodedQuery_)b.decodedQuery_=this.decodedQuery_;if(this.encodedQuery_)b.encodedQuery_=this.encodedQuery_;if(this.keyMap_)b.keyMap_=this.keyMap_.clone();return b};a.getKeyName_=function(b){b=String(b);if(this.ignoreCase_)b=b.toLowerCase();return b};
a.setIgnoreCase=function(b){if(b&&!this.ignoreCase_){this.ensureKeyMapInitialized_();this.invalidateCache_();goog.structs.forEach(this.keyMap_,function(c,d){var e=d.toLowerCase();if(d!=e){this.remove(d);this.add(e,c)}},this)}this.ignoreCase_=b};a.extend=function(){for(var b=0;b<arguments.length;b++)goog.structs.forEach(arguments[b],function(c,d){this.add(d,c)},this)};goog.json={};
goog.json.isValid_=function(b){if(/^\s*$/.test(b))return false;return/^[\],:{}\s\u2028\u2029]*$/.test(b.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};goog.json.parse=function(b){b=String(b);if(goog.json.isValid_(b))try{return eval("("+b+")")}catch(c){}throw Error("Invalid JSON string: "+b);};
goog.json.unsafeParse=function(b){return eval("("+b+")")};goog.json.serialize=function(b){return(new goog.json.Serializer).serialize(b)};goog.json.Serializer=function(){};goog.json.Serializer.prototype.serialize=function(b){var c=[];this.serialize_(b,c);return c.join("")};
goog.json.Serializer.prototype.serialize_=function(b,c){switch(typeof b){case "string":this.serializeString_(b,c);break;case "number":this.serializeNumber_(b,c);break;case "boolean":c.push(b);break;case "undefined":c.push("null");break;case "object":if(b==null){c.push("null");break}if(goog.isArray(b)){this.serializeArray_(b,c);break}this.serializeObject_(b,c);break;case "function":break;default:throw Error("Unknown type: "+typeof b);}};
goog.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\u000b"};goog.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
goog.json.Serializer.prototype.serializeString_=function(b,c){c.push('"',b.replace(goog.json.Serializer.charsToReplace_,function(d){if(d in goog.json.Serializer.charToJsonCharCache_)return goog.json.Serializer.charToJsonCharCache_[d];var e=d.charCodeAt(0),f="\\u";if(e<16)f+="000";else if(e<256)f+="00";else if(e<4096)f+="0";return goog.json.Serializer.charToJsonCharCache_[d]=f+e.toString(16)}),'"')};goog.json.Serializer.prototype.serializeNumber_=function(b,c){c.push(isFinite(b)&&!isNaN(b)?b:"null")};
goog.json.Serializer.prototype.serializeArray_=function(b,c){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++){c.push(e);this.serialize_(b[f],c);e=","}c.push("]")};goog.json.Serializer.prototype.serializeObject_=function(b,c){c.push("{");var d="";for(var e in b)if(b.hasOwnProperty(e)){var f=b[e];if(typeof f!="function"){c.push(d);this.serializeString_(e,c);c.push(":");this.serialize_(f,c);d=","}}c.push("}")};goog.structs.Set=function(b){this.map_=new goog.structs.Map;b&&this.addAll(b)};
goog.structs.Set.getKey_=function(b){var c=typeof b;return c=="object"&&b||c=="function"?"o"+goog.getHashCode(b):c.substr(0,1)+b};a=goog.structs.Set.prototype;a.getCount=function(){return this.map_.getCount()};a.add=function(b){this.map_.set(goog.structs.Set.getKey_(b),b)};a.addAll=function(b){b=goog.structs.getValues(b);for(var c=b.length,d=0;d<c;d++)this.add(b[d])};a.removeAll=function(b){b=goog.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(goog.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(goog.structs.Set.getKey_(b))};a.containsAll=function(b){return goog.structs.every(b,this.contains,this)};a.intersection=function(b){var c=new goog.structs.Set;b=goog.structs.getValues(b);for(var d=0;d<b.length;d++){var e=b[d];this.contains(e)&&c.add(e)}return c};a.getValues=function(){return this.map_.getValues()};a.clone=function(){return new goog.structs.Set(this)};
a.equals=function(b){return this.getCount()==goog.structs.getCount(b)&&this.isSubsetOf(b)};a.isSubsetOf=function(b){var c=goog.structs.getCount(b);if(this.getCount()>c)return false;if(!(b instanceof goog.structs.Set)&&c>5)b=new goog.structs.Set(b);return goog.structs.every(this,function(d){return goog.structs.contains(b,d)})};a.__iterator__=function(){return this.map_.__iterator__(false)};
goog.debug.catchErrors=function(b,c,d){var e=b||goog.debug.LogManager.getRoot();b=d||goog.global;var f=b.onerror;b.onerror=function(g,h,i){f&&f(g,h,i);h=String(h).split(/[\/\\]/).pop();goog.isFunction(e)?e({message:g,fileName:h,line:i}):e.severe("Error: "+g+" ("+h+" @ Line: "+i+")");return Boolean(c)}};
goog.debug.expose=function(b,c){if(typeof b=="undefined")return"undefined";if(b==null)return"NULL";var d=[];for(var e in b)if(!(!c&&goog.isFunction(b[e]))){var f=e+" = ";try{f+=b[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
goog.debug.deepExpose=function(b,c){var d=new goog.structs.Set,e=[],f=function(g,h){var i=h+"  ",j=function(n){return n.replace(/\n/g,"\n"+h)};try{if(goog.isDef(g))if(goog.isNull(g))e.push("NULL");else if(goog.isString(g))e.push('"'+j(g)+'"');else if(goog.isFunction(g))e.push(j(String(g)));else if(goog.isObject(g))if(d.contains(g))e.push("*** reference loop detected ***");else{d.add(g);e.push("{");for(var l in g)if(!(!c&&goog.isFunction(g[l]))){e.push("\n");e.push(i);e.push(l+" = ");f(g[l],i)}e.push("\n"+
h+"}")}else e.push(g);else e.push("undefined")}catch(k){e.push("*** "+k+" ***")}};f(b,"");return e.join("")};goog.debug.exposeArray=function(b){for(var c=[],d=0;d<b.length;d++)goog.isArray(b[d])?c.push(goog.debug.exposeArray(b[d])):c.push(b[d]);return"[ "+c.join(", ")+" ]"};
goog.debug.exposeException=function(b,c){try{var d=goog.debug.normalizeErrorObject(b);return"Message: "+goog.string.htmlEscape(d.message)+'\nUrl: <a href="view-source:'+d.fileName+'" target="_new">'+d.fileName+"</a>\nLine: "+d.lineNumber+"\n\nBrowser stack:\n"+goog.string.htmlEscape(d.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+goog.string.htmlEscape(goog.debug.getStacktrace(c)+"-> ")}catch(e){return"Exception trying to expose exception! You win, we lose. "+e}};
goog.debug.normalizeErrorObject=function(b){var c=goog.getObjectByName("window.location.href");return typeof b=="string"?{message:b,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"}:!b.lineNumber||!b.fileName||!b.stack?{message:b.message,name:b.name,lineNumber:b.lineNumber||b.line||"Not available",fileName:b.fileName||b.filename||b.sourceURL||c,stack:b.stack||"Not available"}:b};
goog.debug.enhanceError=function(b,c){var d=typeof b=="string"?Error(b):b;if(!d.stack)d.stack=goog.debug.getStacktrace(arguments.callee.caller);if(c){for(var e=0;d["message"+e];)++e;d["message"+e]=String(c)}return d};
goog.debug.getStacktraceSimple=function(b){for(var c=[],d=arguments.callee.caller,e=0;d&&(!b||e<b);){c.push(goog.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=goog.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}b&&e>=b?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};goog.debug.MAX_STACK_DEPTH=50;
goog.debug.getStacktrace=function(b){return goog.debug.getStacktraceHelper_(b||arguments.callee.caller,[])};
goog.debug.getStacktraceHelper_=function(b,c){var d=[];if(goog.array.contains(c,b))d.push("[...circular reference...]");else if(b&&c.length<goog.debug.MAX_STACK_DEPTH){d.push(goog.debug.getFunctionName(b)+"(");for(var e=b.arguments,f=0;f<e.length;f++){f>0&&d.push(", ");var g;g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":g=g;break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=goog.debug.getFunctionName(g))?g:"[fn]";break;
case "undefined":default:g=typeof g;break}if(g.length>40)g=g.substr(0,40)+"...";d.push(g)}c.push(b);d.push(")\n");try{d.push(goog.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("")};goog.debug.getFunctionName=function(b){b=String(b);if(!goog.debug.fnNameCache_[b]){var c=/function ([^\(]+)/.exec(b);goog.debug.fnNameCache_[b]=c?c[1]:"[Anonymous]"}return goog.debug.fnNameCache_[b]};
goog.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]")};goog.debug.fnNameCache_={};goog.debug.LogRecord=function(b,c,d,e,f){this.sequenceNumber_=typeof f=="number"?f:goog.debug.LogRecord.nextSequenceNumber_++;this.time_=e||goog.now();this.level_=b;this.msg_=c;this.loggerName_=d};goog.debug.LogRecord.prototype.exception_=null;goog.debug.LogRecord.prototype.exceptionText_=null;
goog.debug.LogRecord.nextSequenceNumber_=0;a=goog.debug.LogRecord.prototype;a.getLoggerName=function(){return this.loggerName_};a.getException=function(){return this.exception_};a.setException=function(b){this.exception_=b};a.getExceptionText=function(){return this.exceptionText_};a.setExceptionText=function(b){this.exceptionText_=b};a.setLoggerName=function(b){this.loggerName_=b};a.getLevel=function(){return this.level_};a.setLevel=function(b){this.level_=b};a.getMessage=function(){return this.msg_};
a.setMessage=function(b){this.msg_=b};a.getMillis=function(){return this.time_};a.setMillis=function(b){this.time_=b};a.getSequenceNumber=function(){return this.sequenceNumber_};goog.debug.Logger=function(b){this.name_=b;this.parent_=null;this.children_={};this.handlers_=[]};goog.debug.Logger.prototype.level_=null;goog.debug.Logger.Level=function(b,c){this.name=b;this.value=c};goog.debug.Logger.Level.prototype.toString=function(){return this.name};
goog.debug.Logger.Level.OFF=new goog.debug.Logger.Level("OFF",Infinity);goog.debug.Logger.Level.SHOUT=new goog.debug.Logger.Level("SHOUT",1200);goog.debug.Logger.Level.SEVERE=new goog.debug.Logger.Level("SEVERE",1E3);goog.debug.Logger.Level.WARNING=new goog.debug.Logger.Level("WARNING",900);goog.debug.Logger.Level.INFO=new goog.debug.Logger.Level("INFO",800);goog.debug.Logger.Level.CONFIG=new goog.debug.Logger.Level("CONFIG",700);goog.debug.Logger.Level.FINE=new goog.debug.Logger.Level("FINE",500);
goog.debug.Logger.Level.FINER=new goog.debug.Logger.Level("FINER",400);goog.debug.Logger.Level.FINEST=new goog.debug.Logger.Level("FINEST",300);goog.debug.Logger.Level.ALL=new goog.debug.Logger.Level("ALL",0);
goog.debug.Logger.Level.PREDEFINED_LEVELS=[goog.debug.Logger.Level.OFF,goog.debug.Logger.Level.SHOUT,goog.debug.Logger.Level.SEVERE,goog.debug.Logger.Level.WARNING,goog.debug.Logger.Level.INFO,goog.debug.Logger.Level.CONFIG,goog.debug.Logger.Level.FINE,goog.debug.Logger.Level.FINER,goog.debug.Logger.Level.FINEST,goog.debug.Logger.Level.ALL];goog.debug.Logger.Level.predefinedLevelsCache_=null;
goog.debug.Logger.Level.createPredefinedLevelsCache_=function(){goog.debug.Logger.Level.predefinedLevelsCache_={};for(var b=0,c;c=goog.debug.Logger.Level.PREDEFINED_LEVELS[b];b++){goog.debug.Logger.Level.predefinedLevelsCache_[c.value]=c;goog.debug.Logger.Level.predefinedLevelsCache_[c.name]=c}};
goog.debug.Logger.Level.getPredefinedLevel=function(b){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();return goog.debug.Logger.Level.predefinedLevelsCache_[b]||null};
goog.debug.Logger.Level.getPredefinedLevelByValue=function(b){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();if(b in goog.debug.Logger.Level.predefinedLevelsCache_)return goog.debug.Logger.Level.predefinedLevelsCache_[b];for(var c=0;c<goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=goog.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=b)return d}return null};goog.debug.Logger.getLogger=function(b){return goog.debug.LogManager.getLogger(b)};
a=goog.debug.Logger.prototype;a.getName=function(){return this.name_};a.addHandler=function(b){this.handlers_.push(b)};a.removeHandler=function(b){return goog.array.remove(this.handlers_,b)};a.getParent=function(){return this.parent_};a.getChildren=function(){return this.children_};a.setLevel=function(b){this.level_=b};a.getLevel=function(){return this.level_};a.getEffectiveLevel=function(){if(this.level_)return this.level_;if(this.parent_)return this.parent_.getEffectiveLevel();return null};
a.isLoggable=function(b){if(this.level_)return b.value>=this.level_.value;if(this.parent_)return this.parent_.isLoggable(b);return false};a.log=function(b,c,d){this.isLoggable(b)&&this.logRecord(this.getLogRecord(b,c,d))};a.getLogRecord=function(b,c,d){var e=new goog.debug.LogRecord(b,String(c),this.name_);if(d){e.setException(d);e.setExceptionText(goog.debug.exposeException(d,arguments.callee.caller))}return e};a.shout=function(b,c){this.log(goog.debug.Logger.Level.SHOUT,b,c)};
a.severe=function(b,c){this.log(goog.debug.Logger.Level.SEVERE,b,c)};a.warning=function(b,c){this.log(goog.debug.Logger.Level.WARNING,b,c)};a.info=function(b,c){this.log(goog.debug.Logger.Level.INFO,b,c)};a.config=function(b,c){this.log(goog.debug.Logger.Level.CONFIG,b,c)};a.fine=function(b,c){this.log(goog.debug.Logger.Level.FINE,b,c)};a.finer=function(b,c){this.log(goog.debug.Logger.Level.FINER,b,c)};a.finest=function(b,c){this.log(goog.debug.Logger.Level.FINEST,b,c)};
a.logRecord=function(b){if(this.isLoggable(b.getLevel()))for(var c=this;c;){c.callPublish_(b);c=c.getParent()}};a.callPublish_=function(b){for(var c=0;c<this.handlers_.length;c++)this.handlers_[c](b)};a.setParent_=function(b){this.parent_=b};a.addChild_=function(b,c){this.children_[b]=c};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;
goog.debug.LogManager.initialize=function(){if(!goog.debug.LogManager.rootLogger_){goog.debug.LogManager.rootLogger_=new goog.debug.Logger("");goog.debug.LogManager.loggers_[""]=goog.debug.LogManager.rootLogger_;goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG)}};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};goog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};
goog.debug.LogManager.getLogger=function(b){goog.debug.LogManager.initialize();return b in goog.debug.LogManager.loggers_?goog.debug.LogManager.loggers_[b]:goog.debug.LogManager.createLogger_(b)};goog.debug.LogManager.createLogger_=function(b){var c=new goog.debug.Logger(b),d=b.split("."),e=d[d.length-1];d.length-=1;d=d.join(".");d=goog.debug.LogManager.getLogger(d);d.addChild_(e,c);c.setParent_(d);return goog.debug.LogManager.loggers_[b]=c};goog.net={};
goog.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};
goog.net.ErrorCode.getDebugMessage=function(b){switch(b){case goog.net.ErrorCode.NO_ERROR:return"No Error";case goog.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case goog.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case goog.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case goog.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case goog.net.ErrorCode.EXCEPTION:return"An exception occurred";case goog.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
case goog.net.ErrorCode.ABORT:return"Request was aborted";case goog.net.ErrorCode.TIMEOUT:return"Request timed out";case goog.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};goog.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata"};goog.net.XmlHttp=function(){return goog.net.XmlHttp.factory_()};
goog.net.XmlHttp.getOptions=function(){return goog.net.XmlHttp.cachedOptions_||(goog.net.XmlHttp.cachedOptions_=goog.net.XmlHttp.optionsFactory_())};goog.net.XmlHttp.factory_=null;goog.net.XmlHttp.optionsFactory_=null;goog.net.XmlHttp.cachedOptions_=null;goog.net.XmlHttp.setFactory=function(b,c){goog.net.XmlHttp.factory_=b;goog.net.XmlHttp.optionsFactory_=c;goog.net.XmlHttp.cachedOptions_=null};
goog.net.XmlHttp.defaultFactory_=function(){var b=goog.net.XmlHttp.getProgId_();return b?new ActiveXObject(b):new XMLHttpRequest};goog.net.XmlHttp.defaultOptionsFactory_=function(){var b={};if(goog.net.XmlHttp.getProgId_()){b[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=true;b[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=true}return b};goog.net.XmlHttp.setFactory(goog.net.XmlHttp.defaultFactory_,goog.net.XmlHttp.defaultOptionsFactory_);goog.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};
goog.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};goog.net.XmlHttp.ieProgId_=null;
goog.net.XmlHttp.getProgId_=function(){if(!goog.net.XmlHttp.ieProgId_&&typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){for(var b=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],c=0;c<b.length;c++){var d=b[c];try{new ActiveXObject(d);return goog.net.XmlHttp.ieProgId_=d}catch(e){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return goog.net.XmlHttp.ieProgId_};
goog.net.XhrMonitor_=function(){if(goog.userAgent.GECKO){this.contextsToXhr_={};this.xhrToContexts_={};this.stack_=[]}};goog.net.XhrMonitor_.getKey=function(b){return goog.isString(b)?b:goog.isObject(b)?goog.getHashCode(b):""};a=goog.net.XhrMonitor_.prototype;a.logger_=goog.debug.Logger.getLogger("goog.net.xhrMonitor");a.enabled_=goog.userAgent.GECKO;a.setEnabled=function(b){this.enabled_=goog.userAgent.GECKO&&b};
a.pushContext=function(b){if(this.enabled_){var c=goog.net.XhrMonitor_.getKey(b);this.logger_.finest("Pushing context: "+b+" ("+c+")");this.stack_.push(c)}};a.popContext=function(){if(this.enabled_){var b=this.stack_.pop();this.logger_.finest("Popping context: "+b);this.updateDependentContexts_(b)}};a.isContextSafe=function(b){if(!this.enabled_)return true;var c=this.contextsToXhr_[goog.net.XhrMonitor_.getKey(b)];this.logger_.fine("Context is safe : "+b+" - "+c);return!c};
a.markXhrOpen=function(b){if(this.enabled_){b=goog.getHashCode(b);this.logger_.fine("Opening XHR : "+b);for(var c=0;c<this.stack_.length;c++){var d=this.stack_[c];this.addToMap_(this.contextsToXhr_,d,b);this.addToMap_(this.xhrToContexts_,b,d)}}};a.markXhrClosed=function(b){if(this.enabled_){b=goog.getHashCode(b);this.logger_.fine("Closing XHR : "+b);delete this.xhrToContexts_[b];for(var c in this.contextsToXhr_){goog.array.remove(this.contextsToXhr_[c],b);this.contextsToXhr_[c].length==0&&delete this.contextsToXhr_[c]}}};
a.updateDependentContexts_=function(b){var c=this.xhrToContexts_[b],d=this.contextsToXhr_[b];if(c&&d){this.logger_.finest("Updating dependent contexts");goog.array.forEach(c,function(e){goog.array.forEach(d,function(f){this.addToMap_(this.contextsToXhr_,e,f);this.addToMap_(this.xhrToContexts_,f,e)},this)},this)}};a.addToMap_=function(b,c,d){b[c]||(b[c]=[]);goog.array.contains(b[c],d)||b[c].push(d)};goog.net.xhrMonitor=new goog.net.XhrMonitor_;
goog.net.XhrIo=function(){goog.events.EventTarget.call(this);this.headers=new goog.structs.Map};goog.inherits(goog.net.XhrIo,goog.events.EventTarget);goog.net.XhrIo.prototype.logger_=goog.debug.Logger.getLogger("goog.net.XhrIo");goog.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";goog.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";goog.net.XhrIo.sendInstances_=[];
goog.net.XhrIo.send=function(b,c,d,e,f,g){var h=new goog.net.XhrIo;goog.net.XhrIo.sendInstances_.push(h);c&&goog.events.listen(h,goog.net.EventType.COMPLETE,c);goog.events.listen(h,goog.net.EventType.READY,goog.partial(goog.net.XhrIo.cleanupSend_,h));g&&h.setTimeoutInterval(g);h.send(b,d,e,f)};goog.net.XhrIo.cleanup=function(){for(var b=goog.net.XhrIo.sendInstances_;b.length;)b.pop().dispose()};
goog.net.XhrIo.protectEntryPoints=function(b,c){goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b.protectEntryPoint(goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_,c)};goog.net.XhrIo.cleanupSend_=function(b){b.dispose();goog.array.remove(goog.net.XhrIo.sendInstances_,b)};a=goog.net.XhrIo.prototype;a.active_=false;a.xhr_=null;a.xhrOptions_=null;a.lastUri_="";a.lastMethod_="";a.lastErrorCode_=goog.net.ErrorCode.NO_ERROR;a.lastError_="";a.errorDispatched_=false;a.inSend_=false;
a.inOpen_=false;a.inAbort_=false;a.timeoutInterval_=0;a.timeoutId_=null;a.getTimeoutInterval=function(){return this.timeoutInterval_};a.setTimeoutInterval=function(b){this.timeoutInterval_=Math.max(0,b)};
a.send=function(b,c,d,e){if(this.active_)throw Error("[goog.net.XhrIo] Object is active with another request");c=c||"GET";this.lastUri_=b;this.lastError_="";this.lastErrorCode_=goog.net.ErrorCode.NO_ERROR;this.lastMethod_=c;this.errorDispatched_=false;this.active_=true;this.xhr_=new goog.net.XmlHttp;this.xhrOptions_=goog.net.XmlHttp.getOptions();goog.net.xhrMonitor.markXhrOpen(this.xhr_);this.xhr_.onreadystatechange=goog.bind(this.onReadyStateChange_,this);try{this.logger_.fine(this.formatMsg_("Opening Xhr"));
this.inOpen_=true;this.xhr_.open(c,b,true);this.inOpen_=false}catch(f){this.logger_.fine(this.formatMsg_("Error opening Xhr: "+f.message));this.error_(goog.net.ErrorCode.EXCEPTION,f);return}b=d||"";var g=this.headers.clone();e&&goog.structs.forEach(e,function(i,j){g.set(j,i)});c=="POST"&&!g.containsKey(goog.net.XhrIo.CONTENT_TYPE_HEADER)&&g.set(goog.net.XhrIo.CONTENT_TYPE_HEADER,goog.net.XhrIo.FORM_CONTENT_TYPE);goog.structs.forEach(g,function(i,j){this.xhr_.setRequestHeader(j,i)},this);try{if(this.timeoutId_){goog.Timer.defaultTimerObject.clearTimeout(this.timeoutId_);
this.timeoutId_=null}if(this.timeoutInterval_>0){this.logger_.fine(this.formatMsg_("Will abort after "+this.timeoutInterval_+"ms if incomplete"));this.timeoutId_=goog.Timer.defaultTimerObject.setTimeout(goog.bind(this.timeout_,this),this.timeoutInterval_)}this.logger_.fine(this.formatMsg_("Sending request"));this.inSend_=true;this.xhr_.send(b);this.inSend_=false}catch(h){this.logger_.fine(this.formatMsg_("Send error: "+h.message));this.error_(goog.net.ErrorCode.EXCEPTION,h)}};
a.dispatchEvent=function(b){if(this.xhr_){goog.net.xhrMonitor.pushContext(this.xhr_);try{return goog.net.XhrIo.superClass_.dispatchEvent.call(this,b)}finally{goog.net.xhrMonitor.popContext()}}else return goog.net.XhrIo.superClass_.dispatchEvent.call(this,b)};
a.timeout_=function(){if(typeof goog!="undefined")if(this.xhr_){this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting";this.lastErrorCode_=goog.net.ErrorCode.TIMEOUT;this.logger_.fine(this.formatMsg_(this.lastError_));this.dispatchEvent(goog.net.EventType.TIMEOUT);this.abort(goog.net.ErrorCode.TIMEOUT)}};a.error_=function(b,c){this.active_=false;if(this.xhr_){this.inAbort_=true;this.xhr_.abort();this.inAbort_=false}this.lastError_=c;this.lastErrorCode_=b;this.dispatchErrors_();this.cleanUpXhr_()};
a.dispatchErrors_=function(){if(!this.errorDispatched_){this.errorDispatched_=true;this.dispatchEvent(goog.net.EventType.COMPLETE);this.dispatchEvent(goog.net.EventType.ERROR)}};a.abort=function(b){if(this.xhr_){this.logger_.fine(this.formatMsg_("Aborting"));this.active_=false;this.inAbort_=true;this.xhr_.abort();this.inAbort_=false;this.lastErrorCode_=b||goog.net.ErrorCode.ABORT;this.dispatchEvent(goog.net.EventType.COMPLETE);this.dispatchEvent(goog.net.EventType.ABORT);this.cleanUpXhr_()}};
a.disposeInternal=function(){if(this.xhr_){if(this.active_){this.active_=false;this.inAbort_=true;this.xhr_.abort();this.inAbort_=false}this.cleanUpXhr_(true)}goog.net.XhrIo.superClass_.disposeInternal.call(this)};a.onReadyStateChange_=function(){!this.inOpen_&&!this.inSend_&&!this.inAbort_?this.onReadyStateChangeEntryPoint_():this.onReadyStateChangeHelper_()};a.onReadyStateChangeEntryPoint_=function(){this.onReadyStateChangeHelper_()};
a.onReadyStateChangeHelper_=function(){if(this.active_)if(typeof goog!="undefined")if(this.xhrOptions_[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&this.getReadyState()==goog.net.XmlHttp.ReadyState.COMPLETE&&this.getStatus()==2)this.logger_.fine(this.formatMsg_("Local request error detected and ignored"));else if(this.inSend_&&this.getReadyState()==goog.net.XmlHttp.ReadyState.COMPLETE)goog.Timer.defaultTimerObject.setTimeout(goog.bind(this.onReadyStateChange_,this),0);else{this.dispatchEvent(goog.net.EventType.READY_STATE_CHANGE);
if(this.isComplete()){this.logger_.fine(this.formatMsg_("Request complete"));this.active_=false;if(this.isSuccess()){this.dispatchEvent(goog.net.EventType.COMPLETE);this.dispatchEvent(goog.net.EventType.SUCCESS)}else{this.lastErrorCode_=goog.net.ErrorCode.HTTP_ERROR;this.lastError_=this.getStatusText()+" ["+this.getStatus()+"]";this.dispatchErrors_()}this.cleanUpXhr_()}}};
a.cleanUpXhr_=function(b){if(this.xhr_){var c=this.xhr_,d=this.xhrOptions_[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?goog.nullFunction:null;this.xhrOptions_=this.xhr_=null;if(this.timeoutId_){goog.Timer.defaultTimerObject.clearTimeout(this.timeoutId_);this.timeoutId_=null}if(!b){goog.net.xhrMonitor.pushContext(c);this.dispatchEvent(goog.net.EventType.READY);goog.net.xhrMonitor.popContext()}goog.net.xhrMonitor.markXhrClosed(c);try{c.onreadystatechange=d}catch(e){this.logger_.severe("Problem encountered resetting onreadystatechange: "+
e.message)}}};a.isActive=function(){return this.active_};a.isComplete=function(){return this.getReadyState()==goog.net.XmlHttp.ReadyState.COMPLETE};a.isSuccess=function(){switch(this.getStatus()){case 0:case 200:case 204:case 304:return true;default:return false}};a.getReadyState=function(){return this.xhr_?this.xhr_.readyState:goog.net.XmlHttp.ReadyState.UNINITIALIZED};
a.getStatus=function(){try{return this.getReadyState()>goog.net.XmlHttp.ReadyState.LOADED?this.xhr_.status:-1}catch(b){this.logger_.warning("Can not get status: "+b.message);return-1}};a.getStatusText=function(){try{return this.getReadyState()>goog.net.XmlHttp.ReadyState.LOADED?this.xhr_.statusText:""}catch(b){this.logger_.fine("Can not get status: "+b.message);return""}};a.getLastUri=function(){return String(this.lastUri_)};a.getResponseText=function(){return this.xhr_?this.xhr_.responseText:""};
a.getResponseXml=function(){return this.xhr_?this.xhr_.responseXML:null};a.getResponseJson=function(){return this.xhr_?goog.json.parse(this.xhr_.responseText):undefined};a.getResponseHeader=function(b){return this.xhr_&&this.isComplete()?this.xhr_.getResponseHeader(b):undefined};a.getLastErrorCode=function(){return this.lastErrorCode_};a.getLastError=function(){return goog.isString(this.lastError_)?this.lastError_:String(this.lastError_)};
a.formatMsg_=function(b){return b+" ["+this.lastMethod_+" "+this.lastUri_+" "+this.getStatus()+"]"};goog.ui.AutoComplete.RemoteArrayMatcher=function(b,c){this.url_=b;this.useSimilar_=!c;this.xhr_=new goog.net.XhrIo};goog.inherits(goog.ui.AutoComplete.RemoteArrayMatcher,goog.Disposable);a=goog.ui.AutoComplete.RemoteArrayMatcher.prototype;a.method_="GET";a.content_=undefined;a.headers_=null;a.lastListenerKey_=null;a.setMethod=function(b){this.method_=b};a.setContent=function(b){this.content_=b};
a.setHeaders=function(b){this.headers_=b};a.setTimeoutInterval=function(b){this.xhr_.setTimeoutInterval(b)};a.buildUrl=function(b,c,d,e){b=new goog.Uri(b);b.setParameterValue("token",c);b.setParameterValue("max_matches",String(d));b.setParameterValue("use_similar",String(Number(e)));return b.toString()};a.shouldRequestMatches=function(){return true};a.parseResponseText=function(b){var c=[];if(b)try{c=goog.json.unsafeParse(b)}catch(d){}return c};
a.xhrCallback=function(b,c,d){d=d.target.getResponseText();c(b,this.parseResponseText(d))};
a.requestMatchingRows=function(b,c,d,e){if(this.shouldRequestMatches(this.url_,b,c,this.useSimilar_,e))if(c=this.buildUrl(this.url_,b,c,this.useSimilar_,e)){b=goog.bind(this.xhrCallback,this,b,d);this.xhr_.isActive()&&this.xhr_.abort();this.lastListenerKey_&&goog.events.unlistenByKey(this.lastListenerKey_);this.lastListenerKey_=goog.events.listenOnce(this.xhr_,goog.net.EventType.SUCCESS,b);this.xhr_.send(c,this.method_,this.content_,this.headers_)}};
goog.math.Box=function(b,c,d,e){this.top=b;this.right=c;this.bottom=d;this.left=e};goog.math.Box.boundingBox=function(){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;c<arguments.length;c++){var d=arguments[c];b.top=Math.min(b.top,d.y);b.right=Math.max(b.right,d.x);b.bottom=Math.max(b.bottom,d.y);b.left=Math.min(b.left,d.x)}return b};goog.math.Box.prototype.clone=function(){return new goog.math.Box(this.top,this.right,this.bottom,this.left)};
if(goog.DEBUG)goog.math.Box.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"};goog.math.Box.prototype.contains=function(b){return goog.math.Box.contains(this,b)};goog.math.Box.prototype.expand=function(b,c,d,e){if(goog.isObject(b)){this.top-=b.top;this.right+=b.right;this.bottom+=b.bottom;this.left-=b.left}else{this.top-=b;this.right+=c;this.bottom+=d;this.left-=e}return this};
goog.math.Box.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.top==c.top&&b.right==c.right&&b.bottom==c.bottom&&b.left==c.left};goog.math.Box.contains=function(b,c){if(!b||!c)return false;if(c instanceof goog.math.Box)return c.left>=b.left&&c.right<=b.right&&c.top>=b.top&&c.bottom<=b.bottom;return c.x>=b.left&&c.x<=b.right&&c.y>=b.top&&c.y<=b.bottom};
goog.math.Box.distance=function(b,c){if(c.x>=b.left&&c.x<=b.right){if(c.y>=b.top&&c.y<=b.bottom)return 0;return c.y<b.top?b.top-c.y:c.y-b.bottom}if(c.y>=b.top&&c.y<=b.bottom)return c.x<b.left?b.left-c.x:c.x-b.right;return goog.math.Coordinate.distance(c,new goog.math.Coordinate(c.x<b.left?b.left:b.right,c.y<b.top?b.top:b.bottom))};goog.math.Rect=function(b,c,d,e){this.left=b;this.top=c;this.width=d;this.height=e};
goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)};goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)};goog.math.Rect.createFromBox=function(b){return new goog.math.Rect(b.left,b.top,b.right-b.left,b.bottom-b.top)};if(goog.DEBUG)goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"};
goog.math.Rect.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.left==c.left&&b.width==c.width&&b.top==c.top&&b.height==c.height};goog.math.Rect.prototype.intersection=function(b){var c=Math.max(this.left,b.left),d=Math.min(this.left+this.width,b.left+b.width);if(c<=d){var e=Math.max(this.top,b.top);b=Math.min(this.top+this.height,b.top+b.height);if(e<=b){this.left=c;this.top=e;this.width=d-c;this.height=b-e;return true}}return false};
goog.math.Rect.intersection=function(b,c){var d=Math.max(b.left,c.left),e=Math.min(b.left+b.width,c.left+c.width);if(d<=e){var f=Math.max(b.top,c.top);b=Math.min(b.top+b.height,c.top+c.height);if(f<=b)return new goog.math.Rect(d,f,e-d,b-f)}return null};goog.math.Rect.intersects=function(b,c){var d=Math.max(b.left,c.left),e=Math.min(b.left+b.width,c.left+c.width);if(d<=e){d=Math.max(b.top,c.top);b=Math.min(b.top+b.height,c.top+c.height);if(d<=b)return true}return false};
goog.math.Rect.prototype.intersects=function(b){return goog.math.Rect.intersects(this,b)};
goog.math.Rect.difference=function(b,c){var d=goog.math.Rect.intersection(b,c);if(!d||!d.height||!d.width)return[b.clone()];d=[];var e=b.top,f=b.height,g=b.left+b.width,h=b.top+b.height,i=c.left+c.width,j=c.top+c.height;if(c.top>b.top){d.push(new goog.math.Rect(b.left,b.top,b.width,c.top-b.top));e=c.top;f-=c.top-b.top}if(j<h){d.push(new goog.math.Rect(b.left,j,b.width,h-j));f=j-e}c.left>b.left&&d.push(new goog.math.Rect(b.left,e,c.left-b.left,f));i<g&&d.push(new goog.math.Rect(i,e,g-i,f));return d};
goog.math.Rect.prototype.difference=function(b){return goog.math.Rect.difference(this,b)};goog.math.Rect.prototype.boundingRect=function(b){var c=Math.max(this.left+this.width,b.left+b.width),d=Math.max(this.top+this.height,b.top+b.height);this.left=Math.min(this.left,b.left);this.top=Math.min(this.top,b.top);this.width=c-this.left;this.height=d-this.top};goog.math.Rect.boundingRect=function(b,c){if(!b||!c)return null;b=b.clone();b.boundingRect(c);return b};
goog.math.Rect.prototype.contains=function(b){return b instanceof goog.math.Rect?this.left<=b.left&&this.left+this.width>=b.left+b.width&&this.top<=b.top&&this.top+this.height>=b.top+b.height:b.x>=this.left&&b.x<=this.left+this.width&&b.y>=this.top&&b.y<=this.top+this.height};goog.math.Rect.prototype.getSize=function(){return new goog.math.Size(this.width,this.height)};goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=false;goog.userAgent.product.ASSUME_CAMINO=false;
goog.userAgent.product.ASSUME_IPHONE=false;goog.userAgent.product.ASSUME_ANDROID=false;goog.userAgent.product.ASSUME_CHROME=false;goog.userAgent.product.ASSUME_SAFARI=false;goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_CAMINO||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;
goog.userAgent.product.init_=function(){goog.userAgent.product.detectedFirefox_=false;goog.userAgent.product.detectedCamino_=false;goog.userAgent.product.detectedIphone_=false;goog.userAgent.product.detectedAndroid_=false;goog.userAgent.product.detectedChrome_=false;goog.userAgent.product.detectedSafari_=false;var b=goog.userAgent.getUserAgentString();if(b)if(b.indexOf("Firefox")!=-1)goog.userAgent.product.detectedFirefox_=true;else if(b.indexOf("Camino")!=-1)goog.userAgent.product.detectedCamino_=
true;else if(b.indexOf("iPhone")!=-1||b.indexOf("iPod")!=-1)goog.userAgent.product.detectedIphone_=true;else if(b.indexOf("Android")!=-1)goog.userAgent.product.detectedAndroid_=true;else if(b.indexOf("Chrome")!=-1)goog.userAgent.product.detectedChrome_=true;else if(b.indexOf("Safari")!=-1)goog.userAgent.product.detectedSafari_=true};goog.userAgent.product.PRODUCT_KNOWN_||goog.userAgent.product.init_();goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;
goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.userAgent.product.detectedFirefox_;goog.userAgent.product.CAMINO=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CAMINO:goog.userAgent.product.detectedCamino_;goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.detectedIphone_;
goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.userAgent.product.detectedAndroid_;goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.userAgent.product.detectedChrome_;goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.detectedSafari_;goog.style={};
goog.style.setStyle=function(b,c,d){goog.isString(c)?goog.style.setStyle_(b,d,c):goog.object.forEach(c,goog.partial(goog.style.setStyle_,b))};goog.style.setStyle_=function(b,c,d){b.style[goog.style.toCamelCase(d)]=c};goog.style.getStyle=function(b,c){return b.style[goog.style.toCamelCase(c)]};goog.style.getComputedStyle=function(b,c){var d=goog.dom.getOwnerDocument(b);if(d.defaultView&&d.defaultView.getComputedStyle)if(b=d.defaultView.getComputedStyle(b,""))return b[c];return null};
goog.style.getCascadedStyle=function(b,c){return b.currentStyle?b.currentStyle[c]:null};goog.style.getStyle_=function(b,c){return goog.style.getComputedStyle(b,c)||goog.style.getCascadedStyle(b,c)||b.style[c]};goog.style.getComputedPosition=function(b){return goog.style.getStyle_(b,"position")};goog.style.getBackgroundColor=function(b){return goog.style.getStyle_(b,"backgroundColor")};goog.style.getComputedOverflowX=function(b){return goog.style.getStyle_(b,"overflowX")};
goog.style.getComputedOverflowY=function(b){return goog.style.getStyle_(b,"overflowY")};goog.style.getComputedZIndex=function(b){return goog.style.getStyle_(b,"zIndex")};goog.style.getComputedTextAlign=function(b){return goog.style.getStyle_(b,"textAlign")};goog.style.getComputedCursor=function(b){return goog.style.getStyle_(b,"cursor")};
goog.style.setPosition=function(b,c,d){var e,f=goog.userAgent.GECKO&&(goog.userAgent.MAC||goog.userAgent.X11)&&goog.userAgent.isVersion("1.9");if(c instanceof goog.math.Coordinate){e=c.x;c=c.y}else{e=c;c=d}b.style.left=typeof e=="number"?(f?Math.round(e):e)+"px":e;b.style.top=typeof c=="number"?(f?Math.round(c):c)+"px":c};goog.style.getPosition=function(b){return new goog.math.Coordinate(b.offsetLeft,b.offsetTop)};
goog.style.getClientViewportElement=function(b){b=b?b.nodeType==goog.dom.NodeType.DOCUMENT?b:goog.dom.getOwnerDocument(b):goog.dom.getDocument();if(goog.userAgent.IE&&!goog.dom.getDomHelper(b).isCss1CompatMode())return b.body;return b.documentElement};goog.style.getBoundingClientRect_=function(b){var c=b.getBoundingClientRect();if(goog.userAgent.IE){b=b.ownerDocument;c.left-=b.documentElement.clientLeft+b.body.clientLeft;c.top-=b.documentElement.clientTop+b.body.clientTop}return c};
goog.style.getOffsetParent=function(b){if(goog.userAgent.IE)return b.offsetParent;var c=goog.dom.getOwnerDocument(b),d=goog.style.getStyle_(b,"position"),e=d=="fixed"||d=="absolute";for(b=b.parentNode;b&&b!=c;b=b.parentNode){d=goog.style.getStyle_(b,"position");e=e&&d=="static"&&b!=c.documentElement&&b!=c.body;if(!e&&(b.scrollWidth>b.clientWidth||b.scrollHeight>b.clientHeight||d=="fixed"||d=="absolute"))return b}return null};
goog.style.getVisibleRectForElement=function(b){var c=new goog.math.Box(0,Infinity,Infinity,0),d=goog.dom.getDomHelper(b),e=d.getDocumentScrollElement(),f;for(b=b;b=goog.style.getOffsetParent(b);)if((!goog.userAgent.IE||b.clientWidth!=0)&&(b.scrollWidth!=b.clientWidth||b.scrollHeight!=b.clientHeight)&&goog.style.getStyle_(b,"overflow")!="visible"){var g=goog.style.getPageOffset(b),h=goog.style.getClientLeftTop(b);g.x+=h.x;g.y+=h.y;c.top=Math.max(c.top,g.y);c.right=Math.min(c.right,g.x+b.clientWidth);
c.bottom=Math.min(c.bottom,g.y+b.clientHeight);c.left=Math.max(c.left,g.x);f=f||b!=e}b=e.scrollLeft;e=e.scrollTop;if(goog.userAgent.WEBKIT){c.left+=b;c.top+=e}else{c.left=Math.max(c.left,b);c.top=Math.max(c.top,e)}if(!f||goog.userAgent.WEBKIT){c.right+=b;c.bottom+=e}d=d.getViewportSize();c.right=Math.min(c.right,b+d.width);c.bottom=Math.min(c.bottom,e+d.height);return c.top>=0&&c.left>=0&&c.bottom>c.top&&c.right>c.left?c:null};
goog.style.scrollIntoContainerView=function(b,c,d){var e=goog.style.getPageOffset(b),f=goog.style.getPageOffset(c),g=goog.style.getBorderBox(c),h=e.x-f.x-g.left;e=e.y-f.y-g.top;f=c.clientWidth-b.offsetWidth;b=c.clientHeight-b.offsetHeight;if(d){c.scrollLeft+=h-f/2;c.scrollTop+=e-b/2}else{c.scrollLeft+=Math.min(h,Math.max(h-f,0));c.scrollTop+=Math.min(e,Math.max(e-b,0))}};
goog.style.getClientLeftTop=function(b){if(goog.userAgent.GECKO&&!goog.userAgent.isVersion("1.9")){var c=parseFloat(goog.style.getComputedStyle(b,"borderLeftWidth"));if(goog.style.isRightToLeft(b)){var d=b.offsetWidth-b.clientWidth-c-parseFloat(goog.style.getComputedStyle(b,"borderRightWidth"));c+=d}return new goog.math.Coordinate(c,parseFloat(goog.style.getComputedStyle(b,"borderTopWidth")))}return new goog.math.Coordinate(b.clientLeft,b.clientTop)};
goog.style.getPageOffset=function(b){var c,d=goog.dom.getOwnerDocument(b),e=goog.style.getStyle_(b,"position"),f=goog.userAgent.GECKO&&d.getBoxObjectFor&&!b.getBoundingClientRect&&e=="absolute"&&(c=d.getBoxObjectFor(b))&&(c.screenX<0||c.screenY<0),g=new goog.math.Coordinate(0,0),h=goog.style.getClientViewportElement(d);if(b==h)return g;if(b.getBoundingClientRect){c=goog.style.getBoundingClientRect_(b);b=goog.dom.getDomHelper(d).getDocumentScroll();g.x=c.left+b.x;g.y=c.top+b.y}else if(d.getBoxObjectFor&&
!f){c=d.getBoxObjectFor(b);b=d.getBoxObjectFor(h);g.x=c.screenX-b.screenX;g.y=c.screenY-b.screenY}else{c=b;do{g.x+=c.offsetLeft;g.y+=c.offsetTop;if(c!=b){g.x+=c.clientLeft||0;g.y+=c.clientTop||0}if(goog.userAgent.WEBKIT&&goog.style.getComputedPosition(c)=="fixed"){g.x+=d.body.scrollLeft;g.y+=d.body.scrollTop;break}c=c.offsetParent}while(c&&c!=b);if(goog.userAgent.OPERA||goog.userAgent.WEBKIT&&e=="absolute")g.y-=d.body.offsetTop;for(c=b;(c=goog.style.getOffsetParent(c))&&c!=d.body&&c!=h;){g.x-=c.scrollLeft;
if(!goog.userAgent.OPERA||c.tagName!="TR")g.y-=c.scrollTop}}return g};goog.style.getPageOffsetLeft=function(b){return goog.style.getPageOffset(b).x};goog.style.getPageOffsetTop=function(b){return goog.style.getPageOffset(b).y};
goog.style.getFramedPageOffset=function(b,c){var d=new goog.math.Coordinate(0,0),e=goog.dom.getWindow(goog.dom.getOwnerDocument(b));b=b;do{var f=e==c?goog.style.getPageOffset(b):goog.style.getClientPosition(b);d.x+=f.x;d.y+=f.y}while(e&&e!=c&&(b=e.frameElement)&&(e=e.parent));return d};
goog.style.translateRectForAnotherFrame=function(b,c,d){if(c.getDocument()!=d.getDocument()){var e=c.getDocument().body;d=goog.style.getFramedPageOffset(e,d.getWindow());d=goog.math.Coordinate.difference(d,goog.style.getPageOffset(e));if(goog.userAgent.IE&&!c.isCss1CompatMode())d=goog.math.Coordinate.difference(d,c.getDocumentScroll());b.left+=d.x;b.top+=d.y}};
goog.style.getRelativePosition=function(b,c){b=goog.style.getClientPosition(b);c=goog.style.getClientPosition(c);return new goog.math.Coordinate(b.x-c.x,b.y-c.y)};goog.style.getClientPosition=function(b){var c=new goog.math.Coordinate;if(b.nodeType==goog.dom.NodeType.ELEMENT)if(b.getBoundingClientRect){var d=goog.style.getBoundingClientRect_(b);c.x=d.left;c.y=d.top}else{d=goog.dom.getDomHelper(b).getDocumentScroll();b=goog.style.getPageOffset(b);c.x=b.x-d.x;c.y=b.y-d.y}else{c.x=b.clientX;c.y=b.clientY}return c};
goog.style.setPageOffset=function(b,c,d){var e=goog.style.getPageOffset(b);if(c instanceof goog.math.Coordinate){d=c.y;c=c.x}goog.style.setPosition(b,b.offsetLeft+(c-e.x),b.offsetTop+(d-e.y))};goog.style.setSize=function(b,c,d){if(c instanceof goog.math.Size){d=c.height;c=c.width}else{if(d==undefined)throw Error("missing height argument");d=d}b.style.width=typeof c=="number"?Math.round(c)+"px":c;b.style.height=typeof d=="number"?Math.round(d)+"px":d};
goog.style.getSize=function(b){var c=goog.userAgent.OPERA&&!goog.userAgent.isVersion("10");if(goog.style.getStyle_(b,"display")!="none")return c?new goog.math.Size(b.offsetWidth||b.clientWidth,b.offsetHeight||b.clientHeight):new goog.math.Size(b.offsetWidth,b.offsetHeight);var d=b.style,e=d.display,f=d.visibility,g=d.position;d.visibility="hidden";d.position="absolute";d.display="inline";if(c){c=b.offsetWidth||b.clientWidth;b=b.offsetHeight||b.clientHeight}else{c=b.offsetWidth;b=b.offsetHeight}d.display=
e;d.position=g;d.visibility=f;return new goog.math.Size(c,b)};goog.style.getBounds=function(b){var c=goog.style.getPageOffset(b);b=goog.style.getSize(b);return new goog.math.Rect(c.x,c.y,b.width,b.height)};goog.style.toCamelCaseCache_={};goog.style.toCamelCase=function(b){return goog.style.toCamelCaseCache_[b]||(goog.style.toCamelCaseCache_[b]=String(b).replace(/\-([a-z])/g,function(c,d){return d.toUpperCase()}))};goog.style.toSelectorCase=function(b){return b.replace(/([A-Z])/g,"-$1").toLowerCase()};
goog.style.getOpacity=function(b){var c=b.style;b="";if("opacity"in c)b=c.opacity;else if("MozOpacity"in c)b=c.MozOpacity;else if("filter"in c)if(c=c.filter.match(/alpha\(opacity=([\d.]+)\)/))b=String(c[1]/100);return b==""?b:Number(b)};goog.style.setOpacity=function(b,c){b=b.style;if("opacity"in b)b.opacity=c;else if("MozOpacity"in b)b.MozOpacity=c;else if("filter"in b)b.filter=c===""?"":"alpha(opacity="+c*100+")"};
goog.style.setTransparentBackgroundImage=function(b,c){b=b.style;if(goog.userAgent.IE&&!goog.userAgent.isVersion("8"))b.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+c+'", sizingMethod="crop")';else{b.backgroundImage="url("+c+")";b.backgroundPosition="top left";b.backgroundRepeat="no-repeat"}};goog.style.clearTransparentBackgroundImage=function(b){b=b.style;if("filter"in b)b.filter="";else b.backgroundImage="none"};goog.style.showElement=function(b,c){b.style.display=c?"":"none"};
goog.style.isElementShown=function(b){return b.style.display!="none"};goog.style.installStyles=function(b,c){c=goog.dom.getDomHelper(c);var d=null;if(goog.userAgent.IE){d=c.getDocument().createStyleSheet();goog.style.setStyles(d,b)}else{var e=c.getElementsByTagNameAndClass("head")[0];if(!e){d=c.getElementsByTagNameAndClass("body")[0];e=c.createDom("head");d.parentNode.insertBefore(e,d)}d=c.createDom("style");goog.style.setStyles(d,b);c.appendChild(e,d)}return d};
goog.style.uninstallStyles=function(b){goog.dom.removeNode(b.ownerNode||b.owningElement||b)};goog.style.setStyles=function(b,c){if(goog.userAgent.IE)b.cssText=c;else b[goog.userAgent.WEBKIT?"innerText":"innerHTML"]=c};goog.style.setPreWrap=function(b){b=b.style;if(goog.userAgent.IE&&!goog.userAgent.isVersion("8")){b.whiteSpace="pre";b.wordWrap="break-word"}else b.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":goog.userAgent.OPERA?"-o-pre-wrap":"pre-wrap"};
goog.style.setInlineBlock=function(b){b=b.style;b.position="relative";if(goog.userAgent.IE&&!goog.userAgent.isVersion("8")){b.zoom="1";b.display="inline"}else b.display=goog.userAgent.GECKO?goog.userAgent.isVersion("1.9a")?"inline-block":"-moz-inline-box":"inline-block"};goog.style.isRightToLeft=function(b){return"rtl"==goog.style.getStyle_(b,"direction")};goog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT?"WebkitUserSelect":null;
goog.style.isUnselectable=function(b){if(goog.style.unselectableStyle_)return b.style[goog.style.unselectableStyle_].toLowerCase()=="none";else if(goog.userAgent.IE||goog.userAgent.OPERA)return b.getAttribute("unselectable")=="on";return false};
goog.style.setUnselectable=function(b,c,d){d=!d?b.getElementsByTagName("*"):null;var e=goog.style.unselectableStyle_;if(e){c=c?"none":"";b.style[e]=c;if(d){b=0;for(var f;f=d[b];b++)f.style[e]=c}}else if(goog.userAgent.IE||goog.userAgent.OPERA){c=c?"on":"";b.setAttribute("unselectable",c);if(d)for(b=0;f=d[b];b++)f.setAttribute("unselectable",c)}};goog.style.getBorderBoxSize=function(b){return new goog.math.Size(b.offsetWidth,b.offsetHeight)};
goog.style.setBorderBoxSize=function(b,c){var d=goog.dom.getOwnerDocument(b),e=goog.dom.getDomHelper(d).isCss1CompatMode();if(goog.userAgent.IE&&(!e||!goog.userAgent.isVersion("8"))){d=b.style;if(e){e=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);d.pixelWidth=c.width-b.left-e.left-e.right-b.right;d.pixelHeight=c.height-b.top-e.top-e.bottom-b.bottom}else{d.pixelWidth=c.width;d.pixelHeight=c.height}}else goog.style.setBoxSizingSize_(b,c,"border-box")};
goog.style.getContentBoxSize=function(b){var c=goog.dom.getOwnerDocument(b),d=goog.userAgent.IE&&b.currentStyle;if(d&&goog.dom.getDomHelper(c).isCss1CompatMode()&&d.width!="auto"&&d.height!="auto"&&!d.boxSizing){c=goog.style.getIePixelValue_(b,d.width,"width","pixelWidth");b=goog.style.getIePixelValue_(b,d.height,"height","pixelHeight");return new goog.math.Size(c,b)}else{d=goog.style.getBorderBoxSize(b);c=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);return new goog.math.Size(d.width-
b.left-c.left-c.right-b.right,d.height-b.top-c.top-c.bottom-b.bottom)}};
goog.style.setContentBoxSize=function(b,c){var d=goog.dom.getOwnerDocument(b),e=goog.dom.getDomHelper(d).isCss1CompatMode();if(goog.userAgent.IE&&(!e||!goog.userAgent.isVersion("8"))){d=b.style;if(e){d.pixelWidth=c.width;d.pixelHeight=c.height}else{e=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);d.pixelWidth=c.width+b.left+e.left+e.right+b.right;d.pixelHeight=c.height+b.top+e.top+e.bottom+b.bottom}}else goog.style.setBoxSizingSize_(b,c,"content-box")};
goog.style.setBoxSizingSize_=function(b,c,d){b=b.style;if(goog.userAgent.GECKO)b.MozBoxSizing=d;else if(goog.userAgent.WEBKIT)b.WebkitBoxSizing=d;else if(goog.userAgent.OPERA&&!goog.userAgent.isVersion("9.50"))d?b.setProperty("box-sizing",d):b.removeProperty("box-sizing");else b.boxSizing=d;b.width=c.width+"px";b.height=c.height+"px"};
goog.style.getIePixelValue_=function(b,c,d,e){if(/^\d+px?$/.test(c))return parseInt(c,10);else{var f=b.style[d],g=b.runtimeStyle[d];b.runtimeStyle[d]=b.currentStyle[d];b.style[d]=c;c=b.style[e];b.style[d]=f;b.runtimeStyle[d]=g;return c}};goog.style.getIePixelDistance_=function(b,c){return goog.style.getIePixelValue_(b,goog.style.getCascadedStyle(b,c),"left","pixelLeft")};
goog.style.getBox_=function(b,c){if(goog.userAgent.IE){var d=goog.style.getIePixelDistance_(b,c+"Left"),e=goog.style.getIePixelDistance_(b,c+"Right"),f=goog.style.getIePixelDistance_(b,c+"Top");b=goog.style.getIePixelDistance_(b,c+"Bottom");return new goog.math.Box(f,e,b,d)}else{d=goog.style.getComputedStyle(b,c+"Left");e=goog.style.getComputedStyle(b,c+"Right");f=goog.style.getComputedStyle(b,c+"Top");b=goog.style.getComputedStyle(b,c+"Bottom");return new goog.math.Box(parseFloat(f),parseFloat(e),
parseFloat(b),parseFloat(d))}};goog.style.getPaddingBox=function(b){return goog.style.getBox_(b,"padding")};goog.style.getMarginBox=function(b){return goog.style.getBox_(b,"margin")};goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6};
goog.style.getIePixelBorder_=function(b,c){if(goog.style.getCascadedStyle(b,c+"Style")=="none")return 0;c=goog.style.getCascadedStyle(b,c+"Width");if(c in goog.style.ieBorderWidthKeywords_)return goog.style.ieBorderWidthKeywords_[c];return goog.style.getIePixelValue_(b,c,"left","pixelLeft")};
goog.style.getBorderBox=function(b){if(goog.userAgent.IE){var c=goog.style.getIePixelBorder_(b,"borderLeft"),d=goog.style.getIePixelBorder_(b,"borderRight"),e=goog.style.getIePixelBorder_(b,"borderTop");b=goog.style.getIePixelBorder_(b,"borderBottom");return new goog.math.Box(e,d,b,c)}else{c=goog.style.getComputedStyle(b,"borderLeftWidth");d=goog.style.getComputedStyle(b,"borderRightWidth");e=goog.style.getComputedStyle(b,"borderTopWidth");b=goog.style.getComputedStyle(b,"borderBottomWidth");return new goog.math.Box(parseFloat(e),
parseFloat(d),parseFloat(b),parseFloat(c))}};goog.style.getFontFamily=function(b){var c=goog.dom.getOwnerDocument(b),d="";if(c.createTextRange){d=c.body.createTextRange();d.moveToElementText(b);d=d.queryCommandValue("FontName")}if(!d){d=goog.style.getStyle_(b,"fontFamily");if(goog.userAgent.OPERA&&goog.userAgent.LINUX)d=d.replace(/ \[[^\]]*\]/,"")}b=d.split(",");if(b.length>1)d=b[0];return goog.string.stripQuotes(d,"\"'")};goog.style.lengthUnitRegex_=/[^\d]+$/;
goog.style.getLengthUnits=function(b){return(b=b.match(goog.style.lengthUnitRegex_))&&b[0]||null};goog.style.ABSOLUTE_CSS_LENGTH_UNITS_={cm:1,"in":1,mm:1,pc:1,pt:1};goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_={em:1,ex:1};
goog.style.getFontSize=function(b){var c=goog.style.getStyle_(b,"fontSize"),d=goog.style.getLengthUnits(c);if(c&&"px"==d)return parseInt(c,10);if(goog.userAgent.IE)if(d in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_)return goog.style.getIePixelValue_(b,c,"left","pixelLeft");else if(b.parentNode&&b.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&d in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_){b=b.parentNode;d=goog.style.getStyle_(b,"fontSize");return goog.style.getIePixelValue_(b,c==d?"1em":c,"left","pixelLeft")}d=
goog.dom.createDom("span",{style:"visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;"});goog.dom.appendChild(b,d);c=d.offsetHeight;goog.dom.removeNode(d);return c};goog.style.parseStyleAttribute=function(b){var c={};goog.array.forEach(b.split(/\s*;\s*/),function(d){d=d.split(/\s*:\s*/);if(d.length==2)c[goog.style.toCamelCase(d[0].toLowerCase())]=d[1]});return c};
goog.style.toStyleAttribute=function(b){var c=[];goog.object.forEach(b,function(d,e){c.push(goog.style.toSelectorCase(e),":",d,";")});return c.join("")};goog.style.setFloat=function(b,c){b.style[goog.userAgent.IE?"styleFloat":"cssFloat"]=c};goog.style.getFloat=function(b){return b.style[goog.userAgent.IE?"styleFloat":"cssFloat"]||""};
goog.ui.AutoComplete.Renderer=function(b,c,d,e){this.parent_=b||goog.dom.getDocument().body;this.dom_=goog.dom.getDomHelper(this.parent_);this.reposition_=!b;this.element_=null;this.token_="";this.rows_=[];this.startRenderingRows_=this.hilitedRow_=-1;this.visible_=false;this.className="ac-renderer";this.rowClassName="ac-row";this.legacyActiveClassName_="active";this.activeClassName="ac-active";this.highlightedClassName="ac-highlighted";this.customRenderer_=c||null;this.useStandardHighlighting_=e!=
null?e:true;this.rightAlign_=d!=null?d:false;this.keepAligned_=null;this.topAlign_=false};goog.inherits(goog.ui.AutoComplete.Renderer,goog.events.EventTarget);goog.ui.AutoComplete.Renderer.nextId_=0;goog.ui.AutoComplete.Renderer.DELAY_BEFORE_MOUSEOVER=300;a=goog.ui.AutoComplete.Renderer.prototype;a.setTopAlign=function(b){this.topAlign_=b};a.setUseStandardHighlighting=function(b){this.useStandardHighlighting_=b};
a.renderRows=function(b,c,d){this.token_=c;this.rows_=b;this.hilitedRow_=0;this.startRenderingRows_=goog.now();this.target_=d;this.rowDivs_=[];this.redraw()};a.dismiss=function(){this.target_&&goog.dom.a11y.setActiveDescendant(this.target_,null);if(this.visible_){this.visible_=false;goog.style.showElement(this.element_,false)}};a.show=function(){if(!this.visible_){this.visible_=true;goog.style.showElement(this.element_,true)}};a.isVisible=function(){return this.visible_};
a.hiliteRow=function(b){this.hiliteNone();this.hilitedRow_=b;if(b>=0&&b<this.element_.childNodes.length){b=this.rowDivs_[b];goog.dom.classes.add(b,this.activeClassName,this.legacyActiveClassName_);this.target_&&goog.dom.a11y.setActiveDescendant(this.target_,b);goog.style.scrollIntoContainerView(b,this.element_)}};a.hiliteNone=function(){this.hilitedRow_>=0&&goog.dom.classes.remove(this.rowDivs_[this.hilitedRow_],this.activeClassName,this.legacyActiveClassName_)};
a.hiliteId=function(b){if(b==-1)this.hiliteRow(-1);else for(var c=0;c<this.rows_.length;c++)if(this.rows_[c].id==b){this.hiliteRow(c);return}};a.setMenuClasses_=function(b){goog.dom.classes.add(b,this.className)};
a.maybeCreateElement_=function(){if(!this.element_){var b=this.dom_.createDom("div",{style:"display:none"});this.element_=b;this.setMenuClasses_(b);goog.dom.a11y.setRole(b,goog.dom.a11y.Role.LISTBOX);b.id="goog-acr-"+goog.ui.AutoComplete.Renderer.nextId_++;if(this.target_){goog.dom.a11y.setRole(this.target_,goog.dom.a11y.Role.COMBOBOX);goog.dom.a11y.setState(this.target_,goog.dom.a11y.State.AUTOCOMPLETE,"list");goog.dom.a11y.setState(this.target_,goog.dom.a11y.State.HASPOPUP,true)}this.dom_.appendChild(this.parent_,
b);goog.events.listen(b,goog.events.EventType.CLICK,this.handleClick_,false,this);goog.events.listen(b,goog.events.EventType.MOUSEDOWN,this.handleMouseDown_,false,this);goog.events.listen(this.dom_.getDocument(),goog.events.EventType.CLICK,this.handleDocumentClick_,false,this);goog.events.listen(b,goog.events.EventType.MOUSEOVER,this.handleMouseOver_,false,this)}};
a.redraw=function(){this.maybeCreateElement_();if(this.topAlign_)this.element_.style.visibility="hidden";this.rowDivs_.length=0;this.dom_.removeChildren(this.element_);if(this.customRenderer_&&this.customRenderer_.render)this.customRenderer_.render(this,this.element_,this.rows_,this.token_);else{var b=null;goog.iter.forEach(this.rows_,function(c){c=this.renderRowHtml(c,this.token_);this.topAlign_?this.element_.insertBefore(c,b):this.dom_.appendChild(this.element_,c);b=c},this)}if(this.rows_.length==
0)this.dismiss();else{this.show();this.preventMacScrollbarResurface_(this.element_);this.reposition();goog.style.setUnselectable(this.element_,true)}};
a.reposition=function(){if(this.target_&&this.reposition_){var b=goog.style.getPageOffset(this.target_),c=goog.style.getSize(this.target_),d=goog.style.getSize(goog.style.getClientViewportElement(this.target_)),e=goog.style.getSize(this.element_);b.y=this.topAlign_?b.y-e.height:b.y+c.height;if((this.rightAlign_||b.x+e.width>d.width)&&this.keepAligned_!="LEFT"){b.x=b.x+c.width-e.width;this.keepAligned_="RIGHT"}else this.keepAligned_="LEFT";goog.style.setPageOffset(this.element_,b);if(this.topAlign_)this.element_.style.visibility=
"visible"}};a.setAutoPosition=function(b){this.reposition_=b};
a.disposeInternal=function(){goog.ui.AutoComplete.Renderer.superClass_.disposeInternal.call(this);if(this.element_){goog.events.unlisten(this.element_,goog.events.EventType.CLICK,this.handleClick_,false,this);goog.events.unlisten(this.element_,goog.events.EventType.MOUSEDOWN,this.handleMouseDown_,false,this);goog.events.unlisten(this.dom_.getDocument(),goog.events.EventType.CLICK,this.handleDocumentClick_,false,this);goog.events.unlisten(this.element_,goog.events.EventType.MOUSEOVER,this.handleMouseOver_,
false,this);this.dom_.removeNode(this.element_);this.element_=null;this.visible_=false}delete this.parent_};a.preventMacScrollbarResurface_=function(b){if(goog.userAgent.GECKO&&goog.userAgent.MAC){b.style.width="";b.style.overflow="visible";b.style.width=b.offsetWidth;b.style.overflow="auto"}};a.renderRowContents_=function(b,c,d){d.innerHTML=goog.string.htmlEscape(b.data.toString())};
a.hiliteMatchingText_=function(b,c){if(b.nodeType==goog.dom.NodeType.TEXT){var d,e=null;if(goog.isArray(c)){d=c.length>0?c[0]:"";if(c.length>1)e=goog.array.slice(c,1)}else d=c;if(d.length!=0){var f=b.nodeValue;d=goog.string.regExpEscape(d);d=new RegExp("(.*?)(^|\\W+)("+d+")","gi");c=[];for(var g=0,h=d.exec(f);h;){c.push(h[1]);c.push(h[2]);c.push(h[3]);g=d.lastIndex;h=d.exec(f)}c.push(f.substring(g));if(c.length>1){b.nodeValue=c[0]+c[1];e=this.dom_.createElement("b");e.className=this.highlightedClassName;
this.dom_.appendChild(e,this.dom_.createTextNode(c[2]));e=b.parentNode.insertBefore(e,b.nextSibling);for(f=c.length-1;f>=3;f--)b.parentNode.insertBefore(this.dom_.createTextNode(c[f]),e.nextSibling)}else e&&this.hiliteMatchingText_(b,e)}}else for(b=b.firstChild;b;){e=b.nextSibling;this.hiliteMatchingText_(b,c);b=e}};
a.renderRowHtml=function(b,c){var d=this.dom_.createDom("div",{className:this.rowClassName,id:"goog-acri-"+goog.ui.AutoComplete.Renderer.nextId_++});goog.dom.a11y.setRole(d,goog.dom.a11y.Role.OPTION);this.customRenderer_&&this.customRenderer_.renderRow?this.customRenderer_.renderRow(b,c,d):this.renderRowContents_(b,c,d);c&&this.useStandardHighlighting_&&this.hiliteMatchingText_(d,c);goog.dom.classes.add(d,this.rowClassName);this.rowDivs_.push(d);return d};
a.getRowFromEventTarget_=function(b){for(;b&&b!=this.element_&&!goog.dom.classes.has(b,this.rowClassName);)b=b.parentNode;return b?goog.array.indexOf(this.rowDivs_,b):-1};a.handleClick_=function(b){var c=this.getRowFromEventTarget_(b.target);c>=0&&this.dispatchEvent({type:goog.ui.AutoComplete.EventType.SELECT,row:this.rows_[c].id});b.stopPropagation()};a.handleMouseDown_=function(b){this.dispatchEvent(goog.ui.AutoComplete.EventType.CANCEL_DISMISS);b.stopPropagation();b.preventDefault()};
a.handleDocumentClick_=function(){this.dispatchEvent(goog.ui.AutoComplete.EventType.DISMISS)};a.handleMouseOver_=function(b){b=this.getRowFromEventTarget_(b.target);if(b>=0)goog.now()-this.startRenderingRows_<goog.ui.AutoComplete.Renderer.DELAY_BEFORE_MOUSEOVER||this.dispatchEvent({type:goog.ui.AutoComplete.EventType.HILITE,row:this.rows_[b].id})};goog.ui.AutoComplete.Renderer.CustomRenderer=function(){};goog.ui.AutoComplete.Renderer.CustomRenderer.prototype.render=function(){};
goog.ui.AutoComplete.Renderer.CustomRenderer.prototype.renderRow=function(){};goog.ui.AutoComplete.Remote=function(b,c,d,e){this.matcher_=b=new goog.ui.AutoComplete.RemoteArrayMatcher(b,!e);e=new goog.ui.AutoComplete.Renderer;d=new goog.ui.AutoComplete.InputHandler(null,null,!!d,300);goog.ui.AutoComplete.call(this,b,e,d);d.attachAutoComplete(this);d.attachInputs(c)};goog.inherits(goog.ui.AutoComplete.Remote,goog.ui.AutoComplete);a=goog.ui.AutoComplete.Remote.prototype;
a.setUseStandardHighlighting=function(b){this.renderer_.setUseStandardHighlighting(b)};a.getInputHandler=function(){return this.selectionHandler_};a.setMethod=function(b){this.matcher_.setMethod(b)};a.setContent=function(b){this.matcher_.setContent(b)};a.setHeaders=function(b){this.matcher_.setHeaders(b)};a.setTimeoutInterval=function(b){this.matcher_.setTimeoutInterval(b)};goog.ui.AutoComplete.RichInputHandler=function(b,c,d,e){goog.ui.AutoComplete.InputHandler.call(this,b,c,d,e)};
goog.inherits(goog.ui.AutoComplete.RichInputHandler,goog.ui.AutoComplete.InputHandler);goog.ui.AutoComplete.RichInputHandler.prototype.selectRow=function(b){var c=goog.ui.AutoComplete.RichInputHandler.superClass_.selectRow.call(this,b);b.select(this.ac_.getTarget());return c};goog.ui.AutoComplete.RichRemoteArrayMatcher=function(b,c){goog.ui.AutoComplete.RemoteArrayMatcher.call(this,b,c);this.rowFilter_=null};goog.inherits(goog.ui.AutoComplete.RichRemoteArrayMatcher,goog.ui.AutoComplete.RemoteArrayMatcher);
goog.ui.AutoComplete.RichRemoteArrayMatcher.prototype.setRowFilter=function(b){this.rowFilter_=b};
goog.ui.AutoComplete.RichRemoteArrayMatcher.prototype.requestMatchingRows=function(b,c,d){var e=goog.bind(function(f,g){try{for(var h=[],i=0;i<g.length;i++)for(var j=goog.json.unsafeParse(g[i][0]),l=1;l<g[i].length;l++){var k=j(g[i][l]);h.push(k);if(typeof k.render=="undefined")k.render=function(m){m.innerHTML=k.toString()};if(typeof k.select=="undefined")k.select=function(m){m.value=k.toString()}}if(this.rowFilter_)h=this.rowFilter_(h);d(f,h)}catch(n){d(f,[])}},this);goog.ui.AutoComplete.RichRemoteArrayMatcher.superClass_.requestMatchingRows.call(this,
b,c,e)};goog.ui.AutoComplete.RichRemote=function(b,c,d,e){var f={};f.renderRow=function(g,h,i){return g.data.render(i,h)};this.renderer_=f=new goog.ui.AutoComplete.Renderer(null,f);this.matcher_=b=new goog.ui.AutoComplete.RichRemoteArrayMatcher(b,!e);d=new goog.ui.AutoComplete.RichInputHandler(null,null,!!d,300);goog.ui.AutoComplete.call(this,b,f,d);d.attachAutoComplete(this);d.attachInputs(c)};goog.inherits(goog.ui.AutoComplete.RichRemote,goog.ui.AutoComplete.Remote);
goog.ui.AutoComplete.RichRemote.prototype.setRowFilter=function(b){this.matcher_.setRowFilter(b)};goog.dom.iframe={};goog.dom.iframe.BLANK_SOURCE='javascript:""';goog.dom.iframe.createBlank=function(b){return b.createDom("iframe",{frameborder:0,style:"border: 0; vertical-align: bottom",src:goog.dom.iframe.BLANK_SOURCE})};
goog.events.FocusHandler=function(b){goog.events.EventTarget.call(this);this.element_=b;b=goog.userAgent.IE?"focusout":"blur";this.listenKeyIn_=goog.events.listen(this.element_,goog.userAgent.IE?"focusin":"focus",this,!goog.userAgent.IE);this.listenKeyOut_=goog.events.listen(this.element_,b,this,!goog.userAgent.IE)};goog.inherits(goog.events.FocusHandler,goog.events.EventTarget);goog.events.FocusHandler.EventType={FOCUSIN:"focusin",FOCUSOUT:"focusout"};
goog.events.FocusHandler.prototype.handleEvent=function(b){var c=b.getBrowserEvent();c=new goog.events.BrowserEvent(c);c.type=b.type=="focusin"||b.type=="focus"?goog.events.FocusHandler.EventType.FOCUSIN:goog.events.FocusHandler.EventType.FOCUSOUT;try{this.dispatchEvent(c)}finally{c.dispose()}};
goog.events.FocusHandler.prototype.disposeInternal=function(){goog.events.FocusHandler.superClass_.disposeInternal.call(this);goog.events.unlistenByKey(this.listenKeyIn_);goog.events.unlistenByKey(this.listenKeyOut_);delete this.element_};goog.fx={};
goog.fx.Dragger=function(b,c,d){this.target=b;this.handle=c||b;this.limits=d||new goog.math.Rect(NaN,NaN,NaN,NaN);this.document_=goog.dom.getOwnerDocument(b);this.eventHandler_=new goog.events.EventHandler(this);goog.events.listen(this.handle,goog.events.EventType.MOUSEDOWN,this.startDrag,false,this)};goog.inherits(goog.fx.Dragger,goog.events.EventTarget);goog.fx.Dragger.HAS_SET_CAPTURE_=goog.userAgent.IE||goog.userAgent.GECKO&&goog.userAgent.isVersion("1.9.3");
goog.fx.Dragger.EventType={START:"start",BEFOREDRAG:"beforedrag",DRAG:"drag",END:"end"};a=goog.fx.Dragger.prototype;a.screenX=0;a.screenY=0;a.startX=0;a.startY=0;a.deltaX=0;a.deltaY=0;a.enabled_=true;a.dragging_=false;a.hysteresisDistanceSquared_=0;a.mouseDownTime_=0;a.ieDragStartCancellingOn_=false;goog.fx.Dragger.cancelIeDragStart=function(b){b.preventDefault()};a=goog.fx.Dragger.prototype;a.setLimits=function(b){this.limits=b||new goog.math.Rect(NaN,NaN,NaN,NaN)};
a.setHysteresis=function(b){this.hysteresisDistanceSquared_=Math.pow(b,2)};a.getHysteresis=function(){return Math.sqrt(this.hysteresisDistanceSquared_)};a.setScrollTarget=function(b){this.scrollTarget_=b};a.setCancelIeDragStart=function(b){this.ieDragStartCancellingOn_=b};a.getEnabled=function(){return this.enabled_};a.setEnabled=function(b){this.enabled_=b};
a.disposeInternal=function(){goog.fx.Dragger.superClass_.disposeInternal.call(this);goog.events.unlisten(this.handle,goog.events.EventType.MOUSEDOWN,this.startDrag,false,this);this.eventHandler_.dispose();delete this.target;delete this.handle;delete this.eventHandler_};
a.startDrag=function(b){if(this.enabled_&&!this.dragging_&&(b.type!=goog.events.EventType.MOUSEDOWN||b.isButton(goog.events.BrowserEvent.MouseButton.LEFT))){if(this.hysteresisDistanceSquared_==0){this.initializeDrag_(b);if(this.dragging_)b.preventDefault();else return}else b.preventDefault();this.setupDragHandlers();this.screenX=this.startX=b.screenX;this.screenY=this.startY=b.screenY;this.deltaX=this.target.offsetLeft;this.deltaY=this.target.offsetTop;this.pageScroll=goog.dom.getDomHelper(this.document_).getDocumentScroll();
this.mouseDownTime_=goog.now()}};
a.setupDragHandlers=function(){var b=this.document_,c=b.documentElement;this.eventHandler_.listen(b,goog.events.EventType.MOUSEMOVE,this.mouseMoved_,true);this.eventHandler_.listen(b,goog.events.EventType.MOUSEUP,this.endDrag,true);if(goog.fx.Dragger.HAS_SET_CAPTURE_){c.setCapture(false);this.eventHandler_.listen(c,goog.events.EventType.LOSECAPTURE,this.endDrag)}else this.eventHandler_.listen(goog.dom.getWindow(b),goog.events.EventType.BLUR,this.endDrag);goog.userAgent.IE&&this.ieDragStartCancellingOn_&&
this.eventHandler_.listen(b,goog.events.EventType.DRAGSTART,goog.fx.Dragger.cancelIeDragStart);this.scrollTarget_&&this.eventHandler_.listen(this.scrollTarget_,goog.events.EventType.SCROLL,this.onScroll_,true)};a.initializeDrag_=function(b){if(this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.START,this,b.clientX,b.clientY,b))!==false)this.dragging_=true};
a.endDrag=function(b,c){this.eventHandler_.removeAll();goog.fx.Dragger.HAS_SET_CAPTURE_&&this.document_.releaseCapture();if(this.dragging_){this.dragging_=false;var d=this.limitX(this.deltaX),e=this.limitY(this.deltaY);this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.END,this,b.clientX,b.clientY,b,d,e,c))}};a.endDragCancel=function(b){this.endDrag(b,true)};
a.mouseMoved_=function(b){if(this.enabled_){var c=b.screenX-this.screenX,d=b.screenY-this.screenY;this.screenX=b.screenX;this.screenY=b.screenY;if(!this.dragging_){var e=this.startX-this.screenX,f=this.startY-this.screenY;if(e*e+f*f>this.hysteresisDistanceSquared_){this.initializeDrag_(b);if(!this.dragging_){this.endDrag(b);return}}}d=this.calculatePosition_(c,d);c=d.x;d=d.y;if(this.dragging_)if(this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.BEFOREDRAG,this,b.clientX,b.clientY,
b,c,d))!==false){this.doDrag(b,c,d,false);b.preventDefault()}}};a.calculatePosition_=function(b,c){var d=goog.dom.getDomHelper(this.document_).getDocumentScroll();b+=d.x-this.pageScroll.x;c+=d.y-this.pageScroll.y;this.pageScroll=d;this.deltaX+=b;this.deltaY+=c;b=this.limitX(this.deltaX);c=this.limitY(this.deltaY);return new goog.math.Coordinate(b,c)};
a.onScroll_=function(b){var c=this.calculatePosition_(0,0);b.clientX=this.pageScroll.x-this.screenX;b.clientY=this.pageScroll.x-this.screenY;this.doDrag(b,c.x,c.y,true)};a.doDrag=function(b,c,d){this.defaultAction(c,d);this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.DRAG,this,b.clientX,b.clientY,b,c,d))};a.limitX=function(b){var c=this.limits,d=!isNaN(c.left)?c.left:null;c=!isNaN(c.width)?c.width:0;return Math.min(d!=null?d+c:Infinity,Math.max(d!=null?d:-Infinity,b))};
a.limitY=function(b){var c=this.limits,d=!isNaN(c.top)?c.top:null;c=!isNaN(c.height)?c.height:0;return Math.min(d!=null?d+c:Infinity,Math.max(d!=null?d:-Infinity,b))};a.defaultAction=function(b,c){this.target.style.left=b+"px";this.target.style.top=c+"px"};goog.fx.DragEvent=function(b,c,d,e,f,g,h,i){goog.events.Event.call(this,b);this.clientX=d;this.clientY=e;this.browserEvent=f;this.left=goog.isDef(g)?g:c.deltaX;this.top=goog.isDef(h)?h:c.deltaY;this.dragger=c;this.dragCanceled=!!i};
goog.inherits(goog.fx.DragEvent,goog.events.Event);goog.ui.IdGenerator=function(){};goog.addSingletonGetter(goog.ui.IdGenerator);goog.ui.IdGenerator.prototype.nextId_=0;goog.ui.IdGenerator.prototype.getNextUniqueId=function(){return":"+(this.nextId_++).toString(36)};goog.ui.IdGenerator.instance=goog.ui.IdGenerator.getInstance();goog.ui.Component=function(b){goog.events.EventTarget.call(this);this.dom_=b||goog.dom.getDomHelper();this.rightToLeft_=goog.ui.Component.defaultRightToLeft_};
goog.inherits(goog.ui.Component,goog.events.EventTarget);goog.ui.Component.prototype.idGenerator_=goog.ui.IdGenerator.getInstance();goog.ui.Component.defaultRightToLeft_=null;
goog.ui.Component.EventType={BEFORE_SHOW:"beforeshow",SHOW:"show",HIDE:"hide",DISABLE:"disable",ENABLE:"enable",HIGHLIGHT:"highlight",UNHIGHLIGHT:"unhighlight",ACTIVATE:"activate",DEACTIVATE:"deactivate",SELECT:"select",UNSELECT:"unselect",CHECK:"check",UNCHECK:"uncheck",FOCUS:"focus",BLUR:"blur",OPEN:"open",CLOSE:"close",ENTER:"enter",LEAVE:"leave",ACTION:"action",CHANGE:"change"};
goog.ui.Component.Error={NOT_SUPPORTED:"Method not supported",DECORATE_INVALID:"Invalid element to decorate",ALREADY_RENDERED:"Component already rendered",PARENT_UNABLE_TO_BE_SET:"Unable to set parent component",CHILD_INDEX_OUT_OF_BOUNDS:"Child component index out of bounds",NOT_OUR_CHILD:"Child is not in parent component",NOT_IN_DOCUMENT:"Operation not supported while component is not in document",STATE_INVALID:"Invalid component state"};
goog.ui.Component.State={ALL:255,DISABLED:1,HOVER:2,ACTIVE:4,SELECTED:8,CHECKED:16,FOCUSED:32,OPENED:64};
goog.ui.Component.getStateTransitionEvent=function(b,c){switch(b){case goog.ui.Component.State.DISABLED:return c?goog.ui.Component.EventType.DISABLE:goog.ui.Component.EventType.ENABLE;case goog.ui.Component.State.HOVER:return c?goog.ui.Component.EventType.HIGHLIGHT:goog.ui.Component.EventType.UNHIGHLIGHT;case goog.ui.Component.State.ACTIVE:return c?goog.ui.Component.EventType.ACTIVATE:goog.ui.Component.EventType.DEACTIVATE;case goog.ui.Component.State.SELECTED:return c?goog.ui.Component.EventType.SELECT:
goog.ui.Component.EventType.UNSELECT;case goog.ui.Component.State.CHECKED:return c?goog.ui.Component.EventType.CHECK:goog.ui.Component.EventType.UNCHECK;case goog.ui.Component.State.FOCUSED:return c?goog.ui.Component.EventType.FOCUS:goog.ui.Component.EventType.BLUR;case goog.ui.Component.State.OPENED:return c?goog.ui.Component.EventType.OPEN:goog.ui.Component.EventType.CLOSE;default:}throw Error(goog.ui.Component.Error.STATE_INVALID);};
goog.ui.Component.setDefaultRightToLeft=function(b){goog.ui.Component.defaultRightToLeft_=b};a=goog.ui.Component.prototype;a.id_=null;a.dom_=null;a.inDocument_=false;a.element_=null;a.rightToLeft_=null;a.model_=null;a.parent_=null;a.children_=null;a.childIndex_=null;a.wasDecorated_=false;a.getId=function(){return this.id_||(this.id_=this.idGenerator_.getNextUniqueId())};
a.setId=function(b){if(this.parent_&&this.parent_.childIndex_){goog.object.remove(this.parent_.childIndex_,this.id_);goog.object.add(this.parent_.childIndex_,b,this)}this.id_=b};a.getElement=function(){return this.element_};a.setElementInternal=function(b){this.element_=b};a.getHandler=function(){return this.googUiComponentHandler_||(this.googUiComponentHandler_=new goog.events.EventHandler(this))};
a.setParent=function(b){if(this==b)throw Error(goog.ui.Component.Error.PARENT_UNABLE_TO_BE_SET);if(b&&this.parent_&&this.id_&&this.parent_.getChild(this.id_)&&this.parent_!=b)throw Error(goog.ui.Component.Error.PARENT_UNABLE_TO_BE_SET);this.parent_=b;goog.ui.Component.superClass_.setParentEventTarget.call(this,b)};a.getParent=function(){return this.parent_};
a.setParentEventTarget=function(b){if(this.parent_&&this.parent_!=b)throw Error(goog.ui.Component.Error.NOT_SUPPORTED);goog.ui.Component.superClass_.setParentEventTarget.call(this,b)};a.getDomHelper=function(){return this.dom_};a.isInDocument=function(){return this.inDocument_};a.createDom=function(){this.element_=this.dom_.createElement("div")};a.render=function(b){this.render_(b)};a.renderBefore=function(b){this.render_(b.parentNode,b)};
a.render_=function(b,c){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.element_||this.createDom();b?b.insertBefore(this.element_,c||null):this.dom_.getDocument().body.appendChild(this.element_);if(!this.parent_||this.parent_.isInDocument())this.enterDocument()};
a.decorate=function(b){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);else if(b&&this.canDecorate(b)){this.wasDecorated_=true;if(!this.dom_||this.dom_.getDocument()!=goog.dom.getOwnerDocument(b))this.dom_=goog.dom.getDomHelper(b);this.decorateInternal(b);this.enterDocument()}else throw Error(goog.ui.Component.Error.DECORATE_INVALID);};a.canDecorate=function(){return true};a.wasDecorated=function(){return this.wasDecorated_};a.decorateInternal=function(b){this.element_=b};
a.enterDocument=function(){this.inDocument_=true;this.forEachChild(function(b){!b.isInDocument()&&b.getElement()&&b.enterDocument()})};a.exitDocument=function(){this.forEachChild(function(b){b.isInDocument()&&b.exitDocument()});this.googUiComponentHandler_&&this.googUiComponentHandler_.removeAll();this.inDocument_=false};
a.disposeInternal=function(){goog.ui.Component.superClass_.disposeInternal.call(this);this.inDocument_&&this.exitDocument();if(this.googUiComponentHandler_){this.googUiComponentHandler_.dispose();delete this.googUiComponentHandler_}this.forEachChild(function(b){b.dispose()});!this.wasDecorated_&&this.element_&&goog.dom.removeNode(this.element_);this.parent_=this.model_=this.element_=this.childIndex_=this.children_=null};a.makeId=function(b){return this.getId()+"."+b};a.getModel=function(){return this.model_};
a.setModel=function(b){this.model_=b};a.getFragmentFromId=function(b){return b.substring(this.getId().length+1)};a.getElementByFragment=function(b){if(!this.inDocument_)throw Error(goog.ui.Component.Error.NOT_IN_DOCUMENT);return this.dom_.getElement(this.makeId(b))};a.addChild=function(b,c){this.addChildAt(b,this.getChildCount(),c)};
a.addChildAt=function(b,c,d){if(b.inDocument_&&(d||!this.inDocument_))throw Error(goog.ui.Component.Error.ALREADY_RENDERED);if(c<0||c>this.getChildCount())throw Error(goog.ui.Component.Error.CHILD_INDEX_OUT_OF_BOUNDS);if(!this.childIndex_||!this.children_){this.childIndex_={};this.children_=[]}if(b.getParent()==this){goog.object.set(this.childIndex_,b.getId(),b);goog.array.remove(this.children_,b)}else goog.object.add(this.childIndex_,b.getId(),b);b.setParent(this);goog.array.insertAt(this.children_,
b,c);if(b.inDocument_&&this.inDocument_&&b.getParent()==this){d=this.getContentElement();d.insertBefore(b.getElement(),d.childNodes[c+1]||null)}else if(d){this.element_||this.createDom();c=this.getChildAt(c+1);b.render_(this.getContentElement(),c?c.element_:null)}else this.inDocument_&&!b.inDocument_&&b.element_&&b.enterDocument()};a.getContentElement=function(){return this.element_};
a.isRightToLeft=function(){if(this.rightToLeft_==null)this.rightToLeft_=goog.style.isRightToLeft(this.inDocument_?this.element_:this.dom_.getDocument().body);return this.rightToLeft_};a.setRightToLeft=function(b){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.rightToLeft_=b};a.hasChildren=function(){return!!this.children_&&this.children_.length!=0};a.getChildCount=function(){return this.children_?this.children_.length:0};
a.getChildIds=function(){var b=[];this.forEachChild(function(c){b.push(c.getId())});return b};a.getChild=function(b){return this.childIndex_&&b?goog.object.get(this.childIndex_,b)||null:null};a.getChildAt=function(b){return this.children_?this.children_[b]||null:null};a.forEachChild=function(b,c){this.children_&&goog.array.forEach(this.children_,b,c)};a.indexOfChild=function(b){return this.children_&&b?goog.array.indexOf(this.children_,b):-1};
a.removeChild=function(b,c){if(b){var d=goog.isString(b)?b:b.getId();b=this.getChild(d);if(d&&b){goog.object.remove(this.childIndex_,d);goog.array.remove(this.children_,b);if(c){b.exitDocument();b.element_&&goog.dom.removeNode(b.element_)}b.setParent(null)}}if(!b)throw Error(goog.ui.Component.Error.NOT_OUR_CHILD);return b};a.removeChildAt=function(b,c){return this.removeChild(this.getChildAt(b),c)};a.removeChildren=function(b){for(;this.hasChildren();)this.removeChildAt(0,b)};
goog.ui.Dialog=function(b,c,d){goog.ui.Component.call(this,d);this.class_=b||"modal-dialog";this.useIframeMask_=!!c;this.buttons_=goog.ui.Dialog.ButtonSet.OK_CANCEL;this.focusHandler_=new goog.events.FocusHandler(this.getDomHelper().getDocument())};goog.inherits(goog.ui.Dialog,goog.ui.Component);a=goog.ui.Dialog.prototype;a.useIframeMask_=false;a.modal_=true;a.draggable_=true;a.backgroundElementOpacity_=0.3;a.title_="";a.content_="";a.buttons_=null;a.dragger_=null;a.visible_=false;
a.disposeOnHide_=false;a.bgEl_=null;a.bgIframeEl_=null;a.titleEl_=null;a.titleTextEl_=null;a.titleId_=null;a.titleCloseEl_=null;a.contentEl_=null;a.buttonEl_=null;a.setTitle=function(b){this.title_=b;this.titleTextEl_&&goog.dom.setTextContent(this.titleTextEl_,b)};a.getTitle=function(){return this.title_};a.setContent=function(b){this.content_=b;if(this.contentEl_)this.contentEl_.innerHTML=b};a.getContent=function(){return this.content_};
a.getContentElement=function(){this.contentEl_||this.render();return this.contentEl_};a.getTitleElement=function(){this.isInDocument()||this.render();return this.titleEl_};a.getTitleTextElement=function(){this.isInDocument()||this.render();return this.titleTextEl_};a.getTitleCloseElement=function(){this.isInDocument()||this.render();return this.titleCloseEl_};a.getButtonElement=function(){this.isInDocument()||this.render();return this.buttonEl_};
a.getDialogElement=function(){this.isInDocument()||this.render();return this.getElement()};a.getBackgroundElement=function(){this.isInDocument()||this.render();return this.bgEl_};a.getBackgroundElementOpacity=function(){return this.backgroundElementOpacity_};a.setBackgroundElementOpacity=function(b){this.backgroundElementOpacity_=b;this.bgEl_&&goog.style.setOpacity(this.bgEl_,this.backgroundElementOpacity_)};a.setModal=function(b){this.modal_=b;this.manageBackgroundDom_()};a.getModal=function(){return this.modal_};
a.getClass=function(){return this.class_};a.setDraggable=function(b){if((this.draggable_=b)&&!this.dragger_&&this.getElement())this.dragger_=this.createDraggableTitleDom_();else if(!this.draggable_&&this.dragger_){this.getElement()&&goog.dom.classes.remove(this.titleEl_,this.class_+"-title-draggable");this.dragger_.dispose();this.dragger_=null}};
a.createDraggableTitleDom_=function(){var b=new goog.fx.Dragger(this.getElement(),this.titleEl_);goog.dom.classes.add(this.titleEl_,this.class_+"-title-draggable");return b};a.getDraggable=function(){return this.draggable_};
a.createDom=function(){this.manageBackgroundDom_();var b=this.getDomHelper();this.setElementInternal(b.createDom("div",{className:this.class_,tabIndex:0},this.titleEl_=b.createDom("div",{className:this.class_+"-title",id:this.getId()},this.titleTextEl_=b.createDom("span",this.class_+"-title-text",this.title_),this.titleCloseEl_=b.createDom("span",this.class_+"-title-close")),this.contentEl_=b.createDom("div",this.class_+"-content"),this.buttonEl_=b.createDom("div",this.class_+"-buttons"),this.tabCatcherEl_=
b.createDom("span",{tabIndex:0})));this.titleId_=this.titleEl_.id;goog.dom.a11y.setRole(this.getElement(),"dialog");goog.dom.a11y.setState(this.getElement(),"labelledby",this.titleId_||"");if(this.content_)this.contentEl_.innerHTML=this.content_;goog.style.showElement(this.getElement(),false);this.buttons_&&this.buttons_.attachToElement(this.buttonEl_)};
a.manageBackgroundDom_=function(){if(this.useIframeMask_&&this.modal_&&!this.bgIframeEl_){this.bgIframeEl_=goog.dom.iframe.createBlank(this.getDomHelper());this.bgIframeEl_.className=this.class_+"-bg";goog.style.showElement(this.bgIframeEl_,false);goog.style.setOpacity(this.bgIframeEl_,0)}else if((!this.useIframeMask_||!this.modal_)&&this.bgIframeEl_){goog.dom.removeNode(this.bgIframeEl_);this.bgIframeEl_=null}if(this.modal_&&!this.bgEl_){this.bgEl_=this.getDomHelper().createDom("div",this.class_+
"-bg");goog.style.setOpacity(this.bgEl_,this.backgroundElementOpacity_);goog.style.showElement(this.bgEl_,false)}else if(!this.modal_&&this.bgEl_){goog.dom.removeNode(this.bgEl_);this.bgEl_=null}};a.render=function(b){if(this.isInDocument())throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.getElement()||this.createDom();b=b||this.getDomHelper().getDocument().body;this.renderBackground_(b);goog.ui.Dialog.superClass_.render.call(this,b)};
a.renderBackground_=function(b){this.bgIframeEl_&&b.appendChild(this.bgIframeEl_);this.bgEl_&&b.appendChild(this.bgEl_)};a.renderBefore=function(){throw Error(goog.ui.Component.Error.NOT_SUPPORTED);};a.canDecorate=function(b){return b&&b.tagName&&b.tagName=="DIV"&&goog.ui.Dialog.superClass_.canDecorate.call(this,b)};
a.decorateInternal=function(b){goog.ui.Dialog.superClass_.decorateInternal.call(this,b);goog.dom.classes.add(this.getElement(),this.class_);b=this.class_+"-content";if(this.contentEl_=goog.dom.$$(null,b,this.getElement())[0])this.content_=this.contentEl_.innerHTML;else{this.contentEl_=this.getDomHelper().createDom("div",b);if(this.content_)this.contentEl_.innerHTML=this.content_;this.getElement().appendChild(this.contentEl_)}b=this.class_+"-title";var c=this.class_+"-title-text",d=this.class_+"-title-close";
if(this.titleEl_=goog.dom.$$(null,b,this.getElement())[0]){this.titleTextEl_=goog.dom.$$(null,c,this.titleEl_)[0];this.titleCloseEl_=goog.dom.$$(null,d,this.titleEl_)[0]}else{this.titleEl_=this.getDomHelper().createDom("div",b);this.getElement().insertBefore(this.titleEl_,this.contentEl_)}if(this.titleTextEl_)this.title_=goog.dom.getTextContent(this.titleTextEl_);else{this.titleTextEl_=this.getDomHelper().createDom("span",c,this.title_);this.titleEl_.appendChild(this.titleTextEl_)}goog.dom.a11y.setState(this.getElement(),
"labelledby",this.titleId_||"");if(!this.titleCloseEl_){this.titleCloseEl_=this.getDomHelper().createDom("span",d);this.titleEl_.appendChild(this.titleCloseEl_)}b=this.class_+"-buttons";if(this.buttonEl_=goog.dom.$$(null,b,this.getElement())[0]){this.buttons_=new goog.ui.Dialog.ButtonSet(this.getDomHelper());this.buttons_.decorate(this.buttonEl_)}else{this.buttonEl_=this.getDomHelper().createDom("div",b);this.getElement().appendChild(this.buttonEl_);this.buttons_&&this.buttons_.attachToElement(this.buttonEl_)}this.manageBackgroundDom_();
this.renderBackground_(goog.dom.getOwnerDocument(this.getElement()).body);goog.style.showElement(this.getElement(),false)};
a.enterDocument=function(){goog.ui.Dialog.superClass_.enterDocument.call(this);if(this.draggable_&&!this.dragger_)this.dragger_=this.createDraggableTitleDom_();this.getHandler().listen(this.titleCloseEl_,goog.events.EventType.CLICK,this.onTitleCloseClick_).listen(this.focusHandler_,goog.events.FocusHandler.EventType.FOCUSIN,this.onFocus_);goog.dom.a11y.setRole(this.getElement(),"dialog");this.titleTextEl_.id!==""&&goog.dom.a11y.setState(this.getElement(),"labelledby",this.titleTextEl_.id)};
a.exitDocument=function(){this.isVisible()&&this.setVisible(false);if(this.dragger_){this.dragger_.dispose();this.dragger_=null}goog.ui.Dialog.superClass_.exitDocument.call(this)};
a.setVisible=function(b){if(b!=this.visible_){var c=this.getDomHelper().getDocument(),d=goog.dom.getWindow(c)||window;this.isInDocument()||this.render(c.body);if(b){this.resizeBackground_();this.reposition();this.getHandler().listen(this.getElement(),goog.events.EventType.KEYDOWN,this.onKeyDown_,true).listen(d,goog.events.EventType.RESIZE,this.onResize_,true)}else this.getHandler().unlisten(this.getElement(),goog.events.EventType.KEYDOWN,this.onKeyDown_,true).unlisten(d,goog.events.EventType.RESIZE,
this.onResize_,true);this.bgIframeEl_&&goog.style.showElement(this.bgIframeEl_,b);this.bgEl_&&goog.style.showElement(this.bgEl_,b);goog.style.showElement(this.getElement(),b);if(b){goog.userAgent.GECKO&&this.getElement().focus();if(this.getButtonSet())if(d=this.getButtonSet().getDefault())for(var e=this.buttonEl_.getElementsByTagName("button"),f=0,g;g=e[f];f++)if(g.name==d){try{if(goog.userAgent.WEBKIT||goog.userAgent.OPERA){var h=c.createElement("input");h.style.cssText="position:fixed;width:0;height:0";
this.getElement().appendChild(h);h.focus();this.getElement().removeChild(h)}g.focus()}catch(i){}break}}if(this.visible_=b)this.getHandler().listen(this.buttonEl_,goog.events.EventType.CLICK,this.onButtonClick_);else{this.getHandler().unlisten(this.buttonEl_,goog.events.EventType.CLICK,this.onButtonClick_);this.dispatchEvent(goog.ui.Dialog.EventType.AFTER_HIDE);this.disposeOnHide_&&this.dispose()}}};a.isVisible=function(){return this.visible_};
a.resizeBackground_=function(){this.bgIframeEl_&&goog.style.showElement(this.bgIframeEl_,false);this.bgEl_&&goog.style.showElement(this.bgEl_,false);var b=this.getDomHelper().getDocument(),c=goog.dom.getWindow(b)||window,d=goog.dom.getViewportSize(c);c=b.body.scrollWidth;b=Math.max(b.body.scrollHeight,d.height);if(this.bgIframeEl_){goog.style.showElement(this.bgIframeEl_,true);goog.style.setSize(this.bgIframeEl_,c,b)}if(this.bgEl_){goog.style.showElement(this.bgEl_,true);goog.style.setSize(this.bgEl_,
c,b)}if(this.draggable_){d=goog.style.getSize(this.getElement());this.dragger_.limits=new goog.math.Rect(0,0,c-d.width,b-d.height)}};
a.reposition=function(){var b=this.getDomHelper().getDocument(),c=goog.dom.getWindow(b)||window;if(goog.style.getComputedPosition(this.getElement())=="fixed")var d=b=0;else{d=this.getDomHelper().getDocumentScroll();b=d.x;d=d.y}var e=goog.style.getSize(this.getElement());c=goog.dom.getViewportSize(c);b=Math.max(b+c.width/2-e.width/2,0);d=Math.max(d+c.height/2-e.height/2,0);goog.style.setPosition(this.getElement(),b,d)};
a.onTitleCloseClick_=function(){var b=this.getButtonSet(),c=b&&b.getCancel();if(c){b=b.get(c);this.dispatchEvent(new goog.ui.Dialog.Event(c,b))&&this.setVisible(false)}else this.setVisible(false)};a.setDisposeOnHide=function(b){this.disposeOnHide_=b};a.getDisposeOnHide=function(){return this.disposeOnHide_};
a.disposeInternal=function(){goog.ui.Dialog.superClass_.disposeInternal.call(this);if(this.focusHandler_){this.focusHandler_.dispose();this.focusHandler_=null}if(this.bgEl_){goog.dom.removeNode(this.bgEl_);this.bgEl_=null}if(this.bgIframeEl_){goog.dom.removeNode(this.bgIframeEl_);this.bgIframeEl_=null}this.tabCatcherEl_=this.buttonEl_=this.titleCloseEl_=null};
a.setButtonSet=function(b){this.buttons_=b;if(this.buttonEl_)if(this.buttons_)this.buttons_.attachToElement(this.buttonEl_);else this.buttonEl_.innerHTML=""};a.getButtonSet=function(){return this.buttons_};a.onButtonClick_=function(b){if((b=this.findParentButton_(b.target))&&!b.disabled){b=b.name;var c=this.getButtonSet().get(b);this.dispatchEvent(new goog.ui.Dialog.Event(b,c))&&this.setVisible(false)}};
a.findParentButton_=function(b){for(b=b;b!=null&&b!=this.buttonEl_;){if(b.tagName=="BUTTON")return b;b=b.parentNode}return null};
a.onKeyDown_=function(b){var c=false,d=false,e=this.getButtonSet(),f=b.target;if(b.keyCode==goog.events.KeyCodes.ESC){var g=e&&e.getCancel();f=f.tagName=="SELECT"&&!f.disabled;if(g&&!f){d=true;c=e.get(g);c=this.dispatchEvent(new goog.ui.Dialog.Event(g,c))}else f||(c=true)}else if(b.keyCode==goog.events.KeyCodes.ENTER){if(f.tagName=="BUTTON")g=f.name;else if(e){var h=e.getDefault(),i=h&&e.getButton(h);f=(f.tagName=="TEXTAREA"||f.tagName=="SELECT")&&!f.disabled;if(i&&!i.disabled&&!f)g=h}if(g){d=true;
c=this.dispatchEvent(new goog.ui.Dialog.Event(g,String(e.get(g))))}}else if(b.keyCode==goog.events.KeyCodes.TAB&&b.shiftKey&&f==this.getElement())d=true;if(c||d){b.stopPropagation();b.preventDefault()}c&&this.setVisible(false)};a.onResize_=function(){this.resizeBackground_()};a.onFocus_=function(b){this.tabCatcherEl_==b.target&&goog.Timer.callOnce(this.focusElement_,0,this)};a.focusElement_=function(){goog.userAgent.IE&&this.getDomHelper().getDocument().body.focus();this.getElement().focus()};
goog.ui.Dialog.Event=function(b,c){this.type=goog.ui.Dialog.EventType.SELECT;this.key=b;this.caption=c};goog.inherits(goog.ui.Dialog.Event,goog.events.Event);goog.ui.Dialog.SELECT_EVENT="dialogselect";goog.ui.Dialog.EventType={SELECT:"dialogselect",AFTER_HIDE:"afterhide"};goog.ui.Dialog.ButtonSet=function(b){this.dom_=b||goog.dom.getDomHelper();goog.structs.Map.call(this)};goog.inherits(goog.ui.Dialog.ButtonSet,goog.structs.Map);a=goog.ui.Dialog.ButtonSet.prototype;a.class_="goog-buttonset";
a.defaultButton_=null;a.element_=null;a.cancelButton_=null;a.set=function(b,c,d,e){goog.structs.Map.prototype.set.call(this,b,c);if(d)this.defaultButton_=b;if(e)this.cancelButton_=b;return this};a.attachToElement=function(b){this.element_=b;this.render()};
a.render=function(){if(this.element_){this.element_.innerHTML="";var b=goog.dom.getDomHelper(this.element_);goog.structs.forEach(this,function(c,d){c=b.createDom("button",{name:d},c);if(d==this.defaultButton_)c.className=this.class_+"-default";this.element_.appendChild(c)},this)}};
a.decorate=function(b){if(!(!b||b.nodeType!=goog.dom.NodeType.ELEMENT)){this.element_=b;b=this.element_.getElementsByTagName("button");for(var c=0,d,e,f;d=b[c];c++){e=d.name||d.id;f=goog.dom.getTextContent(d)||d.value;if(e){var g=c==0;this.set(e,f,g,d.name==goog.ui.Dialog.DefaultButtonKeys.CANCEL);g&&goog.dom.classes.add(d,this.class_+"-default")}}}};a.setDefault=function(b){this.defaultButton_=b};a.getDefault=function(){return this.defaultButton_};a.setCancel=function(b){this.cancelButton_=b};
a.getCancel=function(){return this.cancelButton_};a.getButton=function(b){for(var c=this.getAllButtons(),d=0,e;e=c[d];d++)if(e.name==b||e.id==b)return e;return null};a.getAllButtons=function(){return this.element_.getElementsByTagName(goog.dom.TagName.BUTTON)};goog.ui.Dialog.DefaultButtonKeys={OK:"ok",CANCEL:"cancel",YES:"yes",NO:"no",SAVE:"save",CONTINUE:"continue"};
(function(){var b=goog.getMsg("OK"),c=goog.getMsg("Cancel"),d=goog.getMsg("Yes"),e=goog.getMsg("No"),f=goog.getMsg("Save"),g=goog.getMsg("Continue");goog.ui.Dialog.ButtonSet.OK=(new goog.ui.Dialog.ButtonSet).set(goog.ui.Dialog.DefaultButtonKeys.OK,b,true);goog.ui.Dialog.ButtonSet.OK_CANCEL=(new goog.ui.Dialog.ButtonSet).set(goog.ui.Dialog.DefaultButtonKeys.OK,b,true).set(goog.ui.Dialog.DefaultButtonKeys.CANCEL,c,false,true);goog.ui.Dialog.ButtonSet.YES_NO=(new goog.ui.Dialog.ButtonSet).set(goog.ui.Dialog.DefaultButtonKeys.YES,
d,true).set(goog.ui.Dialog.DefaultButtonKeys.NO,e,false,true);goog.ui.Dialog.ButtonSet.YES_NO_CANCEL=(new goog.ui.Dialog.ButtonSet).set(goog.ui.Dialog.DefaultButtonKeys.YES,d).set(goog.ui.Dialog.DefaultButtonKeys.NO,e,true).set(goog.ui.Dialog.DefaultButtonKeys.CANCEL,c,false,true);goog.ui.Dialog.ButtonSet.CONTINUE_SAVE_CANCEL=(new goog.ui.Dialog.ButtonSet).set(goog.ui.Dialog.DefaultButtonKeys.CONTINUE,g).set(goog.ui.Dialog.DefaultButtonKeys.SAVE,f).set(goog.ui.Dialog.DefaultButtonKeys.CANCEL,c,true,
true)})();
