// Copyright 2016 The Closure Library Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS-IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // NOTE: This is a generated file. Do not edit. // clang-format off /** @fileoverview @nocompile */ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=false;$jscomp.ASSUME_NO_NATIVE_MAP=false;$jscomp.ASSUME_NO_NATIVE_SET=false;$jscomp.defineProperty=$jscomp.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(target,property,descriptor){descriptor=descriptor;if(target==Array.prototype||target==Object.prototype)return;target[property]=descriptor.value}; $jscomp.getGlobal=function(maybeGlobal){return typeof window!="undefined"&&window===maybeGlobal?maybeGlobal:typeof global!="undefined"&&global!=null?global:maybeGlobal};$jscomp.global=$jscomp.getGlobal(this); $jscomp.polyfill=function(target,polyfill,fromLang,toLang){if(!polyfill)return;var obj=$jscomp.global;var split=target.split(".");for(var i=0;istart)if(--opt_end in this)this[--target]= this[opt_end];else delete this[target]}return this};return polyfill},"es6","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};if(!$jscomp.global["Symbol"])$jscomp.global["Symbol"]=$jscomp.Symbol};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(opt_description){return $jscomp.SYMBOL_PREFIX+(opt_description||"")+$jscomp.symbolCounter_++}; $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var symbolIterator=$jscomp.global["Symbol"].iterator;if(!symbolIterator)symbolIterator=$jscomp.global["Symbol"].iterator=$jscomp.global["Symbol"]("iterator");if(typeof Array.prototype[symbolIterator]!="function")$jscomp.defineProperty(Array.prototype,symbolIterator,{configurable:true,writable:true,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}}; $jscomp.arrayIterator=function(array){var index=0;return $jscomp.iteratorPrototype(function(){if(indexlength)opt_end=length;opt_end=Number(opt_end);if(opt_end<0)opt_end=Math.max(0,length+opt_end);for(var i=Number(opt_start||0);i-.25){var y=x;var d=1;var z=x;var zPrev=0;var s=1;while(zPrev!=z){y*=x;s*=-1;z=(zPrev=z)+s*y/++d}return z}return Math.log(1+x)};return polyfill},"es6","es3");$jscomp.polyfill("Math.atanh",function(orig){if(orig)return orig;var log1p=Math.log1p;var polyfill=function(x){x=Number(x);return(log1p(x)-log1p(-x))/2};return polyfill},"es6","es3"); $jscomp.polyfill("Math.cbrt",function(orig){if(orig)return orig;var polyfill=function(x){if(x===0)return x;x=Number(x);var y=Math.pow(Math.abs(x),1/3);return x<0?-y:y};return polyfill},"es6","es3"); $jscomp.polyfill("Math.clz32",function(orig){if(orig)return orig;var polyfill=function(x){x=Number(x)>>>0;if(x===0)return 32;var result=0;if((x&4294901760)===0){x<<=16;result+=16}if((x&4278190080)===0){x<<=8;result+=8}if((x&4026531840)===0){x<<=4;result+=4}if((x&3221225472)===0){x<<=2;result+=2}if((x&2147483648)===0)result++;return result};return polyfill},"es6","es3"); $jscomp.polyfill("Math.cosh",function(orig){if(orig)return orig;var exp=Math.exp;var polyfill=function(x){x=Number(x);return(exp(x)+exp(-x))/2};return polyfill},"es6","es3");$jscomp.polyfill("Math.expm1",function(orig){if(orig)return orig;var polyfill=function(x){x=Number(x);if(x<.25&&x>-.25){var y=x;var d=1;var z=x;var zPrev=0;while(zPrev!=z){y*=x/++d;z=(zPrev=z)+y}return z}return Math.exp(x)-1};return polyfill},"es6","es3"); $jscomp.polyfill("Math.hypot",function(orig){if(orig)return orig;var polyfill=function(x,y,var_args){x=Number(x);y=Number(y);var i,z,sum;var max=Math.max(Math.abs(x),Math.abs(y));for(i=2;i1E100||max<1E-100){x=x/max;y=y/max;sum=x*x+y*y;for(i=2;i>>16&65535;var al=a&65535;var bh=b>>>16&65535;var bl=b&65535;var lh=ah*bl+al*bh<<16>>>0;return al*bl+lh|0};return polyfill},"es6","es3");$jscomp.polyfill("Math.log10",function(orig){if(orig)return orig;var polyfill=function(x){return Math.log(x)/Math.LN10};return polyfill},"es6","es3"); $jscomp.polyfill("Math.log2",function(orig){if(orig)return orig;var polyfill=function(x){return Math.log(x)/Math.LN2};return polyfill},"es6","es3");$jscomp.polyfill("Math.sign",function(orig){if(orig)return orig;var polyfill=function(x){x=Number(x);return x===0||isNaN(x)?x:x>0?1:-1};return polyfill},"es6","es3");$jscomp.polyfill("Math.sinh",function(orig){if(orig)return orig;var exp=Math.exp;var polyfill=function(x){x=Number(x);if(x===0)return x;return(exp(x)-exp(-x))/2};return polyfill},"es6","es3"); $jscomp.polyfill("Math.tanh",function(orig){if(orig)return orig;var polyfill=function(x){x=Number(x);if(x===0)return x;var y=Math.exp(-2*Math.abs(x));var z=(1-y)/(1+y);return x<0?-z:z};return polyfill},"es6","es3");$jscomp.polyfill("Math.trunc",function(orig){if(orig)return orig;var polyfill=function(x){x=Number(x);if(isNaN(x)||x===Infinity||x===-Infinity||x===0)return x;var y=Math.floor(Math.abs(x));return x<0?-y:y};return polyfill},"es6","es3"); $jscomp.polyfill("Number.EPSILON",function(orig){return Math.pow(2,-52)},"es6","es3");$jscomp.polyfill("Number.MAX_SAFE_INTEGER",function(){return 9007199254740991},"es6","es3");$jscomp.polyfill("Number.MIN_SAFE_INTEGER",function(){return-9007199254740991},"es6","es3");$jscomp.polyfill("Number.isFinite",function(orig){if(orig)return orig;var polyfill=function(x){if(typeof x!=="number")return false;return!isNaN(x)&&x!==Infinity&&x!==-Infinity};return polyfill},"es6","es3"); $jscomp.polyfill("Number.isInteger",function(orig){if(orig)return orig;var polyfill=function(x){if(!Number.isFinite(x))return false;return x===Math.floor(x)};return polyfill},"es6","es3");$jscomp.polyfill("Number.isNaN",function(orig){if(orig)return orig;var polyfill=function(x){return typeof x==="number"&&isNaN(x)};return polyfill},"es6","es3"); $jscomp.polyfill("Number.isSafeInteger",function(orig){if(orig)return orig;var polyfill=function(x){return Number.isInteger(x)&&Math.abs(x)<=Number.MAX_SAFE_INTEGER};return polyfill},"es6","es3");$jscomp.polyfill("Object.assign",function(orig){if(orig)return orig;var polyfill=function(target,var_args){for(var i=1;i3?opt_receiver:target,value);return true}else if(property.writable&&!Object.isFrozen(target)){target[propertyKey]=value;return true}return false};return polyfill},"es6", "es5");$jscomp.polyfill("Reflect.setPrototypeOf",function(orig){if(orig)return orig;if(typeof"".__proto__!="object")return null;var polyfill=function(target,proto){try{target.__proto__=proto;return target.__proto__===proto}catch(err){return false}};return polyfill},"es6","es5"); $jscomp.polyfill("Set",function(NativeSet){var isConformant=!$jscomp.ASSUME_NO_NATIVE_SET&&function(){if(!NativeSet||!NativeSet.prototype.entries||typeof Object.seal!="function")return false;try{NativeSet=NativeSet;var value=Object.seal({x:4});var set=new NativeSet($jscomp.makeIterator([value]));if(!set.has(value)||set.size!=1||set.add(value)!=set||set.size!=1||set.add({x:4})!=set||set.size!=2)return false;var iter=set.entries();var item=iter.next();if(item.done||item.value[0]!=value||item.value[1]!= value)return false;item=iter.next();if(item.done||item.value[0]==value||item.value[0].x!=4||item.value[1]!=item.value[0])return false;return iter.next().done}catch(err){return false}}();if(isConformant)return NativeSet;$jscomp.initSymbol();$jscomp.initSymbolIterator();var PolyfillSet=function(opt_iterable){this.map_=new Map;if(opt_iterable){var iter=$jscomp.makeIterator(opt_iterable);var entry;while(!(entry=iter.next()).done){var item=entry.value;this.add(item)}}this.size=this.map_.size};PolyfillSet.prototype.add= function(value){this.map_.set(value,value);this.size=this.map_.size;return this};PolyfillSet.prototype["delete"]=function(value){var result=this.map_["delete"](value);this.size=this.map_.size;return result};PolyfillSet.prototype.clear=function(){this.map_.clear();this.size=0};PolyfillSet.prototype.has=function(value){return this.map_.has(value)};PolyfillSet.prototype.entries=function(){return this.map_.entries()};PolyfillSet.prototype.values=function(){return this.map_.values()};PolyfillSet.prototype.keys= PolyfillSet.prototype.values;PolyfillSet.prototype[Symbol.iterator]=PolyfillSet.prototype.values;PolyfillSet.prototype.forEach=function(callback,opt_thisArg){var set=this;this.map_.forEach(function(value){return callback.call(opt_thisArg,value,value,set)})};return PolyfillSet},"es6","es3"); $jscomp.checkStringArgs=function(thisArg,arg,func){if(thisArg==null)throw new TypeError("The 'this' value for String.prototype."+func+" must not be null or undefined");if(arg instanceof RegExp)throw new TypeError("First argument to String.prototype."+func+" must not be a regular expression");return thisArg+""}; $jscomp.polyfill("String.prototype.codePointAt",function(orig){if(orig)return orig;var polyfill=function(position){var string=$jscomp.checkStringArgs(this,null,"codePointAt");var size=string.length;position=Number(position)||0;if(!(position>=0&&position56319||position+1===size)return first;var second=string.charCodeAt(position+1);if(second<56320||second>57343)return first;return(first-55296)*1024+ second+9216};return polyfill},"es6","es3");$jscomp.polyfill("String.prototype.endsWith",function(orig){if(orig)return orig;var polyfill=function(searchString,opt_position){var string=$jscomp.checkStringArgs(this,searchString,"endsWith");searchString=searchString+"";if(opt_position===void 0)opt_position=string.length;var i=Math.max(0,Math.min(opt_position|0,string.length));var j=searchString.length;while(j>0&&i>0)if(string[--i]!=searchString[--j])return false;return j<=0};return polyfill},"es6","es3"); $jscomp.polyfill("String.fromCodePoint",function(orig){if(orig)return orig;var polyfill=function(var_args){var result="";for(var i=0;i1114111||code!==Math.floor(code))throw new RangeError("invalid_code_point "+code);if(code<=65535)result+=String.fromCharCode(code);else{code-=65536;result+=String.fromCharCode(code>>>10&1023|55296);result+=String.fromCharCode(code&1023|56320)}}return result};return polyfill},"es6","es3"); $jscomp.polyfill("String.prototype.includes",function(orig){if(orig)return orig;var polyfill=function(searchString,opt_position){var string=$jscomp.checkStringArgs(this,searchString,"includes");return string.indexOf(searchString,opt_position||0)!==-1};return polyfill},"es6","es3"); $jscomp.polyfill("String.prototype.repeat",function(orig){if(orig)return orig;var polyfill=function(copies){var string=$jscomp.checkStringArgs(this,null,"repeat");if(copies<0||copies>1342177279)throw new RangeError("Invalid count value");copies=copies|0;var result="";while(copies){if(copies&1)result+=string;if(copies>>>=1)string+=string}return result};return polyfill},"es6","es3"); $jscomp.stringPadding=function(padString,padLength){var padding=padString!==undefined?String(padString):" ";if(!(padLength>0)||!padding)return"";var repeats=Math.ceil(padLength/padding.length);return padding.repeat(repeats).substring(0,padLength)}; $jscomp.polyfill("String.prototype.padEnd",function(orig){if(orig)return orig;var padEnd=function(targetLength,opt_padString){var string=$jscomp.checkStringArgs(this,null,"padStart");var padLength=targetLength-string.length;return string+$jscomp.stringPadding(opt_padString,padLength)};return padEnd},"es8","es3"); $jscomp.polyfill("String.prototype.padStart",function(orig){if(orig)return orig;var padStart=function(targetLength,opt_padString){var string=$jscomp.checkStringArgs(this,null,"padStart");var padLength=targetLength-string.length;return $jscomp.stringPadding(opt_padString,padLength)+string};return padStart},"es8","es3"); $jscomp.polyfill("String.prototype.startsWith",function(orig){if(orig)return orig;var polyfill=function(searchString,opt_position){var string=$jscomp.checkStringArgs(this,searchString,"startsWith");searchString=searchString+"";var strLen=string.length;var searchLen=searchString.length;var i=Math.max(0,Math.min(opt_position|0,string.length));var j=0;while(j=searchLen};return polyfill},"es6","es3"); $jscomp.arrayFromIterator=function(iterator){var i;var arr=[];while(!(i=iterator.next()).done)arr.push(i.value);return arr};$jscomp.arrayFromIterable=function(iterable){if(iterable instanceof Array)return iterable;else return $jscomp.arrayFromIterator($jscomp.makeIterator(iterable))}; $jscomp.inherits=function(childCtor,parentCtor){function tempCtor(){}tempCtor.prototype=parentCtor.prototype;childCtor.superClass_=parentCtor.prototype;childCtor.prototype=new tempCtor;childCtor.prototype.constructor=childCtor;for(var p in parentCtor)if(Object.defineProperties){var descriptor=Object.getOwnPropertyDescriptor(parentCtor,p);if(descriptor)Object.defineProperty(childCtor,p,descriptor)}else childCtor[p]=parentCtor[p]}; $jscomp.polyfill("WeakSet",function(NativeWeakSet){function isConformant(){if(!NativeWeakSet||!Object.seal)return false;try{var x=Object.seal({});var y=Object.seal({});var set=new NativeWeakSet([x]);if(!set.has(x)||set.has(y))return false;set["delete"](x);set.add(y);return!set.has(x)&&set.has(y)}catch(err){return false}}if(isConformant())return NativeWeakSet;var PolyfillWeakSet=function(opt_iterable){this.map_=new WeakMap;if(opt_iterable){$jscomp.initSymbol();$jscomp.initSymbolIterator();var iter= $jscomp.makeIterator(opt_iterable);var entry;while(!(entry=iter.next()).done){var item=entry.value;this.add(item)}}};PolyfillWeakSet.prototype.add=function(elem){this.map_.set(elem,true);return this};PolyfillWeakSet.prototype.has=function(elem){return this.map_.has(elem)};PolyfillWeakSet.prototype["delete"]=function(elem){return this.map_["delete"](elem)};return PolyfillWeakSet},"es6","es3"); (function(global,jscomp){if(global["$jscomp"])for(var key in global["$jscomp"])jscomp[key]=global["$jscomp"][key];global["$jscomp"]=jscomp})(window,$jscomp);(function(){var $wnd={"Error":{}};var $doc={},$moduleName,$moduleBase;function fW(){}function aW(){}function lb(){}function wb(){}function tc(){}function zc(){}function Od(){}function Ax(){}function VA(){}function IB(){}function QB(){}function _B(){}function qC(){}function TC(){}function bD(){}function iD(){}function eY(){}function e0(){}function Q0(){}function Q8(){}function C8(){}function C7(){}function $4(){}function $fb(){}function Eab(){}function abb(){}function Wbb(){}function Xbb(){}function nhb(){} function rhb(){}function dmb(){}function gmb(){}function jmb(){}function Bmb(){}function dnb(){}function pnb(){}function Hnb(){}function Mnb(){}function uob(){}function gpb(){}function rpb(){}function Vpb(){}function kwb(){}function rwb(){}function Uwb(){}function Yzb(){}function JHb(){}function LHb(){}function SNb(){}function k0b(){}function y0b(){}function m1b(){}function K3b(){}function P3b(){}function V3b(){}function $3b(){}function b4b(){}function h4b(){}function fgc(){}function Euc(){}function EDc(){} function HDc(){}function KDc(){}function NDc(){}function evc(){}function nvc(){}function vvc(){}function vBc(){}function pBc(){}function tBc(){}function Lxc(){}function Pxc(){}function uCc(){}function iEc(){}function oEc(){}function EEc(){}function pdc(a){}function shb(a){}function wpb(a){}function osb(a){be(a)}function orb(){fqc()}function tq(){this.a=0}function Iw(){this.a=8}function Kw(){this.a=8}function oc(a){this.a=a}function Xe(a){this.a=a}function nf(a){this.a=a}function hh(a){this.a=a}function Cj(a){this.a= a}function Vl(a){this.a=a}function Zl(a){this.a=a}function pm(a){this.a=a}function Tm(a){this.a=a}function Ip(a){this.a=a}function hr(a){this.a=a}function Pr(a){this.a=a}function $s(a){this.a=a}function Gu(a){this.a=a}function gw(a){this.a=a}function uw(a){this.a=a}function dx(a){this.a=a}function hx(a){this.a=a}function Ex(a){this.a=a}function _y(a){this.a=a}function dz(a){this.a=a}function qz(a){this.a=a}function yz(a){this.a=a}function Bz(a){this.a=a}function iz(a){this.b=a}function bt(a){this.b= a}function Iv(a){this.b=a}function aB(a){this.e=a}function DB(a){this.a=a}function PB(a){this.c=a}function P_(a){this.a=a}function WX(a){this.a=a}function tY(a){this.a=a}function B0(a){this.a=a}function U2(a){this.a=a}function d3(a){this.a=a}function f3(a){this.a=a}function h3(a){this.a=a}function j3(a){this.a=a}function l3(a){this.a=a}function N5(a){this.a=a}function Q7(a){this.a=a}function X7(a){this.a=a}function V7(a){this.b=a}function wW(a){this.e=a}function k8(a){this.a=a}function m8(a){this.a= a}function T8(a){this.a=a}function Z8(a){this.a=a}function D9(a){this.a=a}function s2(a,b){a.d=b}function u2(a,b){a.o=b}function v2(a,b){a.s=b}function w2(a,b){a.J=b}function a4(a,b){a.Vb=b}function aEb(a,b){a.Y=b}function hrb(a,b){a.c=b}function TMb(a,b){a.c=b}function TDb(a,b){a.I=b}function VDb(a,b){a.N=b}function XDb(a,b){a.Q=b}function YDb(a,b){a.R=b}function ZDb(a,b){a.S=b}function Z3b(a,b){a.d=b}function UMb(a,b){a.d=b}function j1b(a,b){a.n=b}function k1b(a,b){a.p=b}function C3b(a,b){a.f=b} function G3b(a,b){a.g=b}function I3b(a,b){a.j=b}function X3b(a,b){a.b=b}function Y3b(a,b){a.c=b}function O6b(a,b){a.c=b}function N6b(a,b){a.k=b}function W6b(a,b){a.k=b}function R6b(a,b){a.g=b}function S6b(a,b){a.i=b}function V6b(a,b){a.j=b}function tjc(a,b){a.a=b}function bEc(a,b){a.b=b}function $Hb(){this.a=1}function $cb(a){this.a=a}function Cab(a){this.a=a}function Oab(a){this.a=a}function Geb(a){this.a=a}function Jeb(a){this.a=a}function rgb(a){this.a=a}function Egb(a){this.a=a}function Gjb(a){this.a= a}function mmb(a){this.a=a}function pmb(a){this.a=a}function vmb(a){this.a=a}function ymb(a){this.a=a}function isb(a){this.a=a}function pvb(a){this.a=a}function gEb(a){this.a=a}function DEb(a){this.a=a}function xFb(a){this.a=a}function RGb(a){this.a=a}function EHb(a){this.a=a}function VLb(a){this.a=a}function l2b(a){this.a=a}function C7b(a){this.a=a}function F7b(a){this.a=a}function Y7b(a){this.a=a}function _7b(a){this.a=a}function WUb(a){this.d=a}function nZb(a){this.j=a}function L3b(a){this.c=a} function Jfc(a){this.d=a}function jgc(a){this.b=a}function Ijc(a){this.b=a}function Hmc(a){this.a=a}function bnc(a){this.a=a}function $nc(a){this.a=a}function poc(a){this.a=a}function iqc(a){this.a=a}function Hqc(a){this.a=a}function Wqc(a){this.d=a}function mrc(a){this.a=a}function trc(a){this.a=a}function xrc(a){this.a=a}function Crc(a){this.a=a}function Zrc(a){this.a=a}function nsc(a){this.a=a}function tsc(a){this.a=a}function isc(a){this.b=a}function Rtc(a){this.c=a}function Cvc(a){this.a=a}function Mvc(a){this.a= a}function Tvc(a){this.b=a}function hwc(a){this.b=a}function Lwc(a){this.d=a}function oxc(a){this.a=a}function sxc(a){this.a=a}function Txc(a){this.a=a}function yyc(a){this.a=a}function pzc(a){this.a=a}function FAc(a){this.a=a}function EBc(a){this.a=a}function bDc(a){this.a=a}function GEc(a){this.a=a}function Qd(a){return!a}function Fk(a){a.c=a.d.d}function f_(a){a.d=new ezc}function Yb(a){this.a=be(a)}function Vc(a){this.a=be(a)}function Nm(a){this.a=be(a)}function Lj(a){this.b=be(a)}function Aq(a){this.b= be(a)}function rv(a){this.a=be(a)}function wv(a){this.a=be(a)}function xw(a){this.a=be(a)}function Ww(a){this.a=be(a)}function gW(){iW();gxb()}function usb(){ssb(this)}function vsb(){ssb(this)}function Rsc(){xsc(this)}function wqc(){uqc(this)}function utc(){htc(this)}function rC(){mA.call(this)}function L$(a,b){b&&a.vg()}function h_(a,b){G$(a.c,b)}function m1(a,b){jtc(a.c,b)}function n2(a,b){qtc(a.c,b)}function u3(a,b){jtc(a.d,b)}function v3(a,b){jtc(a.e,b)}function V3(a,b){z5(a.yd,b)}function dab(a){a.g= new utc}function Khb(a){a.d=new ezc}function Jqb(a){a.e=new oAc}function fr(){this.a=new utc}function Ur(){this.a=new utc}function nr(){this.b=new utc}function gu(){this.b=new ezc}function TA(){this.a=new oAc}function Qn(a){En();this.a=a}function wr(a){En();this.a=a}function Br(a){En();this.a=a}function Wr(a){_n();this.a=a}function Qv(a){_n();this.a=a}function y7(a){t7();this.a=a}function m9(a){c9();this.a=a}function YC(a){XC();WC.Cf(a)}function fqc(){fqc=aW;FEc()}function chb(){rC.call(this)}function n0b(){rC.call(this)} function Mmc(){rC.call(this)}function Xnc(){rC.call(this)}function Eoc(){rC.call(this)}function Qpc(){rC.call(this)}function $xc(){rC.call(this)}function yBc(){rC.call(this)}function Rmc(){mA.call(this)}function xEc(a,b){a.length=b}function Ht(a,b){a.e=b;b.b=a}function bC(a,b){return a[b]}function goc(a){return a&-a}function ac(a){return a<=127}function YDc(a,b){jtc(a.a,b)}function fib(a,b){jzc(a.q,b)}function pxb(){oxb();new mnb}function g6(){this.a=new mzc}function r8(){this.a=new mzc}function lc(){lc= aW;kc=new mc}function sc(){sc=aW;rc=new tc}function xc(){xc=aW;wc=new zc}function Dc(){Dc=aW;Cc=new Ec}function _b(){_b=aW;$b=new bc}function ub(){ub=aW;tb=new wb}function un(){un=aW;tn=new vn}function tt(){tt=aW;st=new ut}function zx(){zx=aW;yx=new Ax}function xC(){xC=aW;wC=new lb}function QC(){QC=aW;PC=new TC}function hs(){hs=aW;So();zx()}function Lmb(){this.a=new mzc}function yGb(){this.a=new utc}function W0b(){this.c=new Kpc}function mzc(){this.a=new ezc}function mDc(){this.a=new ezc}function TDc(){this.a= new ezc}function $Cc(){this.a=new XBc}function ezc(){wqc.call(this)}function xzc(){wqc.call(this)}function c4b(){b4b.call(this)}function e4b(){b4b.call(this)}function g4b(){e4b.call(this)}function pi(a){ci.call(this,a)}function am(a){ci.call(this,a)}function vm(a){pi.call(this,a)}function vA(a){nA.call(this,a)}function wA(a){vA.call(this,a)}function dC(a){vA.call(this,a)}function sC(a){vA.call(this,a)}function sx(a){Aq.call(this,a)}function Ox(a){vp.call(this,a)}function _q(a){Vp.call(this,a)}function Kq(a){am.call(this, a)}function zt(a){am.call(this,a)}function Hv(a){wv.call(this,a)}function Uab(a){Tab();this.a=a}function Abb(a){rbb();this.a=a}function Mrb(a){Krb();this.b=a}function $Ab(a){be(a);this.e=a}function jpb(a){this.a=a;Zbb()}function ipb(a,b){dkb(a.a,b,a)}function H6b(a,b){G6b(a.e,a,b)}function n_(a,b){G$(a.c,G_(b))}function nc(a,b){return b==a.a}function dEb(a,b){return b===a}function Xoc(a,b){return a===b}function se(a,b){return a.f-b.f}function nB(a){return a.bb?a:b}function Coc(a,b){return ab&&b=65&&a<=90}function Rz(a,b){return a.g[b%a.d]}function l4(a,b){ue.call(this,a,b)}function r4(a,b){ue.call(this,a,b)}function w4(a,b){ue.call(this,a,b)}function C4(a,b){ue.call(this,a,b)}function K4(a,b){ue.call(this,a,b)}function Y4(a,b){ue.call(this,a,b)}function d5(a,b){ue.call(this,a,b)}function l5(a, b){ue.call(this,a,b)}function r5(a,b){ue.call(this,a,b)}function l7(a,b){ue.call(this,a,b)}function Z2(a,b){this.b=a;this.a=b}function r9(a,b){this.b=a;this.a=b}function B8(a,b){this.e=a;this.a=b}function h8(a,b){this.a=a;this.b=b}function p8(a,b){this.a=a;this.b=b}function s6(a,b){this.a=a;this.b=b}function q2(a,b){m2(a,v1(b));Z1(a)}function qgb(a,b){return up(a.a,b)}function nyb(a){return a.c?a.c:a.e}function tzb(a){return a.g?a.g:a.d}function EDb(a){return a.K?a.K:a.a}function LDb(a){return a.V? a.V:a.q}function ODb(a){return a.Y?a.Y:a.G}function PDb(a){return a.Z?a.Z:a.t}function vqc(a){return a.d.c+a.e.c}function Bjc(a,b){return a.b.Xd(b)}function Svc(a,b){return a.b.Pd(b)}function Hwc(a,b){return nb(a.d,b)}function Zmb(a,b,c){ekb(a.b,a,b,c)}function I0b(a,b,c){Epc(a.c,b,0,c)}function eKb(a,b,c){O6b(a,c.c-b.c)}function wEc(a,b,c){a.splice(b,c)}function fzc(a){xqc.call(this,a,0)}function XBc(){YBc.call(this,null)}function Lq(){Kq.call(this,new ezc)}function Nq(){sl.call(this,new ezc)}function ow(){mw.call(this, "KEY",0)}function Px(a){So();wp.call(this,a)}function Sx(a){Rx();Vp.call(this,a)}function azc(a){this.c=a;Zyc(this)}function mab(a,b){this.b=a;this.a=b}function Gab(a,b){this.a=a;this.b=b}function Iab(a,b){this.a=a;this.b=b}function Lab(a,b){this.b=a;this.a=b}function qdb(a,b){this.a=a;this.b=b}function odb(a,b){ue.call(this,a,b)}function Adb(a,b){ue.call(this,a,b)}function ehb(a,b){tC.call(this,a,b)}function cfb(a,b){this.b=a;this.a=b}function smb(a){this.b=a;this.a=oFc}function Umb(a,b){this.b= a;this.a=b}function $mb(a,b){this.b=a;this.a=b}function bnb(a,b){this.b=a;this.a=b}function Lnb(a,b){this.j=a;this.i=b}function sob(a,b){this.b=a;this.a=b}function epb(a,b){ue.call(this,a,b)}function gf(a,b){return mf(a.c,a,b)}function yib(a,b){return jAc(a.j,b)}function Oqb(a,b){return kAc(a.e,b)}function KB(a,b){return b.b+a.c.i.b}function Jb(a){return a>=97&&a<=122}function oHb(a){he(a.f);return a.j}function opb(a,b){npb();return a[b]}function $qb(a,b){ue.call(this,a,b)}function wrb(a,b){ue.call(this, a,b)}function Frb(a,b){ue.call(this,a,b)}function Cvb(a,b){ue.call(this,a,b)}function Cwb(a,b){ue.call(this,a,b)}function hzb(a,b){ue.call(this,a,b)}function Hrb(){Frb.call(this,GLc,0)}function yDb(a,b){ue.call(this,a,b)}function pDb(a,b){this.b=a;this.a=b}function pwb(a,b){this.b=a;this.a=b}function qrb(a,b){this.b=a;this.a=b}function ADb(a,b){this.b=a;this.a=b}function Npb(a,b){this.a=a;this.b=b}function PGb(a,b){ue.call(this,a,b)}function XHb(a,b){ue.call(this,a,b)}function hJb(a,b){ue.call(this, a,b)}function qJb(a,b){ue.call(this,a,b)}function $Eb(a,b){return qHb(a.a,b)}function UAb(a){return TAb(a,a.e.i)}function FDb(a){return a.L?a.L:a.bb}function MDb(a){return a.W?a.W:a.bb}function QDb(a){return a.$?a.$:a.bb}function aNb(a,b){this.a=a;this.b=b}function fOb(a,b){this.a=a;this.b=b}function cOb(a,b){this.c=a;this.b=b}function GQb(a,b){this.c=a;this.b=b}function eYb(a,b){this.p=a;this.o=b}function DYb(a,b){ue.call(this,a,b)}function DNb(a,b){ue.call(this,a,b)}function fNb(a,b){ue.call(this, a,b)}function UUb(a,b){ue.call(this,a,b)}function tZb(a,b){ue.call(this,a,b)}function I_b(a,b){ue.call(this,a,b)}function p4b(a,b){ue.call(this,a,b)}function v4b(a,b){return b3b(a.a,b)}function g1b(a){return a>=48&&a<=57}function Obc(a,b){return Shc(a.w,b)}function ubc(a,b){ue.call(this,a,b)}function Tfc(a,b){ue.call(this,a,b)}function r0b(a,b){this.b=a;this.a=b}function O5b(a,b){this.a=a;this.b=b}function z7b(a,b){this.c=a;this.b=b}function Gkc(a,b){this.b=a;this.a=b}function Ahc(a,b){ue.call(this, a,b)}function llc(a,b){ue.call(this,a,b)}function nlc(){llc.call(this,LIc,0)}function rlc(){llc.call(this,MIc,1)}function vlc(){llc.call(this,_Lc,2)}function fmc(a){gmc.call(this,a,30)}function NC(a){$wnd.clearTimeout(a)}function ssb(a){a.a=HV(Date.now())}function Vw(a,b){a.a.ue().remove(b)}function kic(a,b){return Shc(a.e,b)}function Dmc(a,b){return Soc(a.a,b)}function Gmc(a,b){return lpc(a.a,b)}function hqc(a,b){return jqc(a.a,b)}function Avc(a,b){return kqc(a.a,b)}function Mkc(a,b){return Gpc(b, a.a)}function _pc(a,b){ue.call(this,a,b)}function Qmc(a,b){oA.call(this,a,b)}function Znc(a,b){tC.call(this,a,b)}function Iyc(a,b){this.b=a;this.a=b}function Nrc(a,b){this.d=a;this.e=b}function NCc(a,b){ue.call(this,a,b)}function jAc(a,b){return kqc(a.c,b)}function Wzc(a,b){return a.a.get(b)}function LAc(a){return a.b!=a.c.a.b}function gEc(a){return SDc(UDc(),a)}function dE(a){return typeof a===kFc}function eE(a){return typeof a===lFc}function hE(a){return typeof a===nFc}function iE(a){return a== null?null:a}function Li(a){return!a?null:a.de()}function rg(a,b){return a.be().ee(b)}function Ao(a,b){return a.Ze().Pd(b)}function xf(a,b){return a.Vd().Xd(b)}function lpc(a,b){return a.substr(b)}function lec(a,b){he(!a.sj());a.p=b}function ogc(a,b,c,d){hq(a.a,b,c,d)}function uEc(a,b,c){a.splice(b,0,c)}function pPb(){pPb=aW;oPb=xe(nPb())}function wn(){this.c=(ub(),ub(),tb)}function aY(){this.d=new aDc(new eY)}function J0(){throw BV(new Rpc(hIc));}function K0(){throw BV(new Rpc(hIc));}function L0(){throw BV(new Rpc(hIc)); }function IV(a){return typeof a===lFc}function oB(a){return Soc(a.a,a.b++)}function ZHb(a,b){return b+"#"+a.a++}function ksb(a,b){a.b=nsb(b,a.a,a.b)}function fKb(a,b){hKb(a,b.b.b,b.b.a)}function gVb(a,b,c,d){aOb(a.c,b,c,d)}function ONb(a){PNb.call(this,a,0,0)}function rnb(a){Z2.call(this,a,true)}function G3(a){H3.call(this,a,false)}function n8b(a,b){g7b.call(this,a,b)}function Irb(){Frb.call(this,"V3",1)}function Gmb(a){this.b=a;this.a=true}function q6b(a){return!!a.b&&!a.b.d}function OVb(a){return NVb(a)&& a!=42}function Cpc(a,b){return a.a+=""+b,a}function Dpc(a,b){a.a+=""+b;return a}function Fpc(a,b){a.a+=""+b;return a}function Gpc(a,b){a.a+=""+b;return a}function MNb(a,b){a.q[a.r++]=b;--a.b}function x2(a,b){b>1?a.P=1:a.P=b}function WAc(a,b){XAc(a,b,a.a,a.a.a)}function pf(a,b){return Ob(a.a,a.e,b)}function tD(a){return uD(a.l,a.m,a.h)}function jy(a){return new qy(a.a,a.b)}function $oc(a,b){return a.indexOf(b)}function Uzc(){Qzc();return new Pzc}function gzc(a){uqc(this);Ci(this,a)}function Mpc(a){Hmc.call(this, eW(a))}function Ehb(){Fhb.call(this,new Lhb)}function yrb(){wrb.call(this,"ALL",0)}function qw(){mw.call(this,"VALUE",1)}function Fwb(){Fwb=aW;Ewb=new Vc("/")}function JEb(){JEb=aW;IEb=pEc("\\d+")}function PW(a){v6b(a)||YX(YGc+a.j,a)}function vcb(a,b){zvc(a.a,b)&&b.aj(a)}function X6(a,b){rqc(V6,a,b);return b}function dHb(a,b){Gpc(b,a.A);return b}function ZEb(a){he(!a.a.f);return a.a}function lob(a){this.b=a;this.a=a.b.a}function rY(a){this.a=new vq;this.b=a}function An(a){this.a=a;wn.call(this)}function eab(){dab(this); this.a=false}function Ubc(a){Vbc.call(this,a,null)}function i6b(a){return a.b?a.b.f:null}function Tqc(a){return a.b>>12}function Tbc(a){return cE(a,52)?a:null}function Qcc(a){Jbc();Ubc.call(this,a)}function kdc(a){Jbc();jdc.call(this,a)}function gjc(a){Jbc();jdc.call(this,a)}function ojc(a){Jbc();jdc.call(this,a)}function Ikc(a){Jbc();jdc.call(this,a)}function umc(a){Jbc();jdc.call(this,a)}function Ric(a){Jbc();Bic.call(this,a)}function $ic(a){Jbc();Ric.call(this,a)}function RCc(){NCc.call(this,"Head",1)}function WCc(){NCc.call(this,"Tail",3)}function Re(){Je.call(this, "IS_NULL",2)}function xsc(a){a.a=mD(kT,KFc,1,8,5,1)}function htc(a){a.a=mD(kT,KFc,1,0,5,1)}function ZDc(a,b){_Dc(a,(ADc(),wDc),b)}function dEc(a,b){_Dc(a,(ADc(),yDc),b)}function eEc(a,b){_Dc(a,(ADc(),zDc),b)}function ds(a,b){_n();Zr.call(this,a,b)}function Kr(a,b){_n();this.a=a;this.b=b}function qB(a){this.a=a;this.c=a.length}function Nk(a){this.a=a;Ik.call(this,a)}function k$(){j$();l$.call(this,new Q0)}function u5(a,b){sC.call(this,X0b(a,b))}function QA(a,b){var c;c=cC(b);PA(a,c)}function Sr(a, b){be(b);Tq(a,b);return a}function a6(a){V5();W5(this);$5(this,a)}function ci(a){Ud(a.size()==0);this.c=a}function Fhb(a){this.a=new Rsc;this.b=a}function Jmb(a){this.b=a;this.a=new mzc}function svb(a){this.b=a;this.a=new utc}function lw(){lw=aW;jw=new ow;kw=new qw}function l6(a,b){return a.b.contains(b)}function RJb(a,b){return BPb(a.a.c.a,b)}function uHb(a,b){return zHb(a.A,b,a.v)}function tHb(a){return zHb(a.A,CJc,a.v)}function hSb(a,b){return new r0b(b,a.g)}function uD(a,b,c){return{l:a,m:b,h:c}} function _nc(a,b){return ab?1:0}function ABc(a){return a!=null?rb(a):0}function dyc(a){return a<10?"0"+a:""+a}function $yc(a){return a.a=wFc&&a<=56319}function inc(a){return a>=zFc&&a<=57343}function Vnc(a){return Xoc(lFc,typeof a)}function Soc(a,b){return a.charCodeAt(b)}function nEc(a,b){return new mEc(a.a,b)}function cE(a,b){return a!=null&&_D(a,b)}function vpc(a){return a==null?qFc:eW(a)}function apc(a){return Xoc(nFc,typeof a)}function wpc(a){return xpc(a, 0,a.length)}function stc(a,b){muc(a.a,a.a.length,b)}function jFb(a,b){JEb();return a.a==b.a}function BV(a){return a.backingJsObject}function dr(a,b){jtc(a.a,be(b));return a}function Qr(a,b){return jtc(a.a,be(b)),a}function Rr(a,b){jtc(a.a,be(b));return a}function Fkc(a){this.c=new ezc;this.d=a}function Rf(a){a.b.clear();a.d.b.clear()}function hA(a){a.g=mD(mT,KFc,138,0,0,1)}function TCc(){NCc.call(this,"Range",2)}function Ue(){Je.call(this,"NOT_NULL",3)}function ut(){ue.call(this,"INSTANCE",0)}function p6(a){j6(); o6.call(this,null,a)}function Ts(a){return a.Hd()?a.Id():null}function Xv(a,b){return new ew(a.Od(),b)}function vib(a,b){return a.d.contains(b)}function Wjb(a,b,c){a.g=b;a.o=c;a.d=null}function Svb(a,b,c){Qvb.call(this,a,b,c)}function Yvb(a,b,c){Qvb.call(this,a,b,c)}function GEb(a,b,c){Pyb.call(this,a,b,c)}function brb(){$qb.call(this,"REGION",1)}function KRb(a){HRb();return!!up(iRb,a)}function LRb(a){HRb();return!!up(hRb,a)}function pUb(a,b){return fVb(a.j,0).c==b}function BPb(a,b){return a.a.contains(b)} function eVb(a){fVb(a,0);return ZAc(a.b)}function TRb(a){this.b=a;this.a=URb(a.a)}function f1b(a){this.a=a;this.c=a.length}function D0b(a){sC.call(this,"Width:"+a)}function Ud(a){if(!a)throw BV(new chb);}function he(a){if(!a)throw BV(new Xnc);}function iu(a){if(!a)throw BV(new yBc);}function A2(a,b,c,d){t3(new X2(a,b,d,c))}function _3(a,b){he(b!=(V4(),U4));a.Ub=b}function Qvc(a,b){return a.b.contains(b)}function fxc(a,b){return a.b.contains(b)}function f3b(a){return!!a.d&&T3b(a.d,3)}function e3b(a){return!!a.d&& T3b(a.d,2)}function g3b(a){return!!a.d&&T3b(a.d,5)}function h3b(a){return!!a.d&&T3b(a.d,4)}function i3b(a){return!!a.d&&T3b(a.d,0)}function j3b(a){return!!a.d&&T3b(a.d,6)}function m3b(a){return!!a.d&&T3b(a.d,1)}function _oc(a,b,c){return a.indexOf(b,c)}function bpc(a,b){return a.lastIndexOf(b)}function Tc(a,b){return Rc(a,new Kpc,b).a}function mf(a,b,c){return new qf(b,c,a.a)}function ef(a,b){be(b);return new sf(a,b)}function Ys(a,b){be(b);return new ft(a,b)}function yf(a,b,c){return a.Vd().put(b, c)}function mAc(a,b){if(a.a){AAc(b);zAc(b)}}function Sj(a,b){this.a=a;Lj.call(this,b)}function Eq(a,b){this.a=a;Aq.call(this,b)}function ft(a,b){this.a=b;Aq.call(this,a)}function ew(a,b){this.a=b;Aq.call(this,a)}function Ez(a,b){this.a=a;Aq.call(this,b)}function lz(a){this.a=a;iz.call(this,a.a)}function qs(a){nr.call(this);this.a=be(a)}function mA(){hA(this);iA(this);this.uf()}function Gk(a){a.b.Jd();--a.d.f.d;dk(a.d)}function Gw(a){zm(2,qGc);return new Rw(a)}function Hw(a){zm(2,qGc);return new Tw(a)} function y1(a,b){be(a.L);return E5(a.$,b)}function Jlb(a){qkb();return Qyc(ikb,a.j)}function FA(a){EA();return a<128?DA[a]:-1}function DD(a){return a.l+a.m*NGc+a.h*OGc}function Nc(){Nc=aW;Mc=hoc(31);Lc=new Oc}function Vmc(){Vmc=aW;Tmc=false;Umc=true}function ddb(a){var b;for(b=a.j;b;b=b.j);}function _ab(a,b){Yab();this.a=a;this.b=b}function F3(a,b){E3.call(this,a,a.Ng(),b)}function $Xb(a,b){_Xb.call(this,a,b,null)}function Arb(){wrb.call(this,"SYMBOLS",1)}function wwb(){ue.call(this,"RELATIVE",0)} function p7(){l7.call(this,"MULTILINE",2)}function Npc(a){Hmc.call(this,(SEc(a),a))}function IUb(a,b,c){aOb(a.c,ZUb(a.j),b,c)}function dAb(a,b,c){lAc(a.f,b,c);return a}function bAb(a,b){he(!a.d);a.d=b;return a}function hAb(a,b){he(!a.j);a.j=b;return a}function iAb(a,b){he(!a.k);a.k=b;return a}function cZb(a,b){a.k=b;return new bZb(a)}function V1b(a){return i2b((tbc(),uac),a)}function Bvc(a,b){return sqc(a.a,b)!=null}function Qyc(a,b){return!!b&&a.b[b.f]==b}function X5b(a,b){W5b(a,b,a.b?a.b.f:null)} function Yxc(a,b){b.$modCount=a.$modCount}function Axc(a){Lwc.call(this,a);this.a=a}function zwc(a){hwc.call(this,a);this.a=a}function lwc(a){Tvc.call(this,a);this.a=a}function Dxc(a){cxc.call(this,a);this.a=a}function _Cc(a){$Cc.call(this);Xc(this,a)}function TAc(a){pzc.call(this,new pAc(a))}function Vsc(a){if(!a)throw BV(new $xc);}function QEc(a){if(!a)throw BV(new yBc);}function WEc(a){if(!a)throw BV(new Xnc);}function LEc(a){if(!a)throw BV(new chb);}function $Ec(b,c,d){try{b[c]=d}catch(a){}}function Ek(a, b,c,d){tk.call(this,a,b,c,d)}function kpc(a,b,c){return a.substr(b,c-b)}function mpc(a,b,c){return a.substr(b,c-b)}function Xh(a,b){return a.c.containsKey(b)}function aFc(a){return a.$H||(a.$H=++_Ec)}function te(a){return a.e!=null?a.e:""+a.f}function _C(a){XC();return parseInt(a)||-1}function ay(a){var b;return En(),b=a,Mp(b)}function $ab(a){Yab();_ab.call(this,a,Xab)}function rCc(a){this.a=a;isc.call(this,a)}function _A(a,b){this.i=a;this.a=new qB(b)}function Ic(a,b){this.a=be(a);this.b=be(b)}function Fm(a, b){this.a=be(a);this.b=be(b)}function Ah(a,b){fe(b,a);this.d=a;this.c=b}function xdc(a){Ubc.call(this,a);pdc(this)}function Vsb(){rnb.call(this,"convertEs6")}function r7(){l7.call(this,"SOURCELESS",3)}function o7(){l7.call(this,"SINGLELINE",1)}function BAc(a){CAc.call(this,a,null,null)}function Kxc(a){Jxc();return a==Gxc?null:a}function _2b(a){return!!(!a.d?null:a.d.a)}function MJb(a,b){return NJb(a,KJb(a,b.b))}function Vtc(a,b){return Xtc(a,a.length,b)}function Wtc(a,b){return Ytc(a,a.length,b)} function Voc(a){return wpc(IEc(a,a.length))}function hxb(){return(new Date).getTime()}function zEb(){zEb=aW;yEb=new DEb(new ezc)}function hAc(a){a.b=new BAc(a);a.c=new ezc}function Sm(a,b){var c;c=a.a;a.a=b;return c}function dc(a,b){Ud(b>=a);this.b=a;this.a=b}function oh(a){this.a=a;this.b=Uf(this.a.d)}function sl(a){this.a=be(a);this.b=rx(this)}function Cn(a,b){this.a=b;Ah.call(this,a,0)}function Jk(a,b){this.d=a;Fk(this);this.b=b}function Uk(a,b,c){fk.call(this,a,b,c,null)}function H3(a,b){F3.call(this, new jhb(a),b)}function vq(){$f.call(this,new oAc,new ezc)}function Le(){Je.call(this,"ALWAYS_TRUE",0)}function WBb(a,b){$Ab.call(this,a);this.a=b}function d6(a,b){this.a=a;this.c=b;this.b=0}function q3(){this.c=new Kpc;this.d=new mzc}function rnc(a){if(a.p!=null)return;Hnc(a)}function x$(a){if(a)return a.d;return null}function e1(a){if(a)return a.d;return null}function AEb(a){zEb();return BEb(yEb,"_",a)}function yFb(a,b){wFb();return vFb[a.a|b.a]}function zFb(a,b){wFb();return vFb[a.a&b.a]}function oUb(a, b,c){return fVb(a.j,b).c==c}function Jpb(a,b){return se(Z3(a.a.L),b)>=0}function EPb(a,b){return new HPb($x(a.a,b))}function XFb(a,b){return eFb(a,b)||eFb(b,a)}function Rvc(a,b){return a.b.containsAll(b)}function lrc(a,b){return a.a.containsKey(b)}function Pyc(a,b){return cE(b,13)&&Qyc(a,b)}function Ryc(a,b){return cE(b,13)&&Syc(a,b)}function kzc(a,b){return a.a.containsKey(b)}function Qsc(a){return a.c-a.b&a.a.length-1}function INb(a){return a.g==a.d?a.c+a.a:a.a}function aE(a){return String.fromCharCode(a)} function gE(a,b){return a&&b&&a instanceof b}function K$(a,b){a.ng();b&&a.vg();a.r=false}function D3(a,b){Ud(!b||!a.g||a.g==b);a.g=b}function Hc(a,b){return a.a.Ld(b)||a.b.Ld(b)}function tpc(a){return hE(a)?a.length:a.wj()}function SGb(a){this.a=(_n(),new By(be(a)))}function _xc(a){this.a=new $wnd.Date(QV(a))}function Gl(a){this.e=a;this.c=a.a.Wd().Od()}function Ug(a){this.b=a;this.a=this.b.b.Wd()}function o8b(a,b){e7b.call(this,a);this.a=b}function wm(){vm.call(this,new ezc);this.a=3}function xBc(){sC.call(this, "no key found")}function Oe(){Je.call(this,"ALWAYS_FALSE",1)}function vn(){jn.call(this,(So(),So(),Ro),0)}function Hjc(){yjc();Ijc.call(this,new XBc)}function eFc(){eFc=aW;bFc=new lb;dFc=new lb}function z1(a){!a.L&&T1(a,new d4);return a.k}function b6b(a){be(a.e);C6b(a.e,a);return a}function meb(a,b,c){return TCb(a.q,b,null,c)}function j2(a,b,c){c.b=a;return kDc(a.B,b,c)}function HC(a,b,c){return a.apply(b,c);var d}function zo(a,b){return a.Ze().getAtIndex(b)}function ao(a,b){return new br(a,a.size(), b)}function TJb(a,b){return $5b(new e7b(b),a.t)}function ki(a){return cE(a,51)?a.Qd():a.Od()}function ot(a){this.a=(it(),ht);this.d=be(a)}function jhb(a){this.a=new l2b(a.b);this.c=a}function wcb(a){this.b=a;this.a=_uc(new xzc)}function TYb(a){eYb.call(this,(H_b(),w$b),a)}function FYb(a){eYb.call(this,(H_b(),j$b),a)}function GYb(a){eYb.call(this,(H_b(),k$b),a)}function HYb(a){eYb.call(this,(H_b(),i$b),a)}function PYb(a){eYb.call(this,(H_b(),s$b),a)}function JZb(a){eYb.call(this,(H_b(),V$b),a)}function NZb(a){eYb.call(this, (H_b(),$$b),a)}function OZb(a){eYb.call(this,(H_b(),_$b),a)}function R_b(a){eYb.call(this,(H_b(),m_b),a)}function W_b(a){eYb.call(this,(H_b(),r_b),a)}function z0b(a){sC.call(this,"codePoint:"+a)}function mgc(a){jgc.call(this,a);this.a=null}function pgc(a){jgc.call(this,a);this.a=null}function lzc(a,b){return a.a.remove(b)!=null}function alc(a){return a.d.size()-a.e.size()}function ZCc(a,b){return a.a.remove(b)!=null}function tEc(a,b){return yEc(new Array(b),a)}function cpc(a,b,c){return a.lastIndexOf(b, c)}function Uc(a){be(a);return cE(a,391)?a:eW(a)}function Wc(a,b,c){be(c);return new Gd(c,a,b)}function D4b(a,b){a.e=true;return A2b(a.a,b)}function Src(a,b){var c;c=b;return!!a.Lj(c)}function Grc(a,b){var c;c=a.e;a.e=b;return c}function Nzc(a,b){var c;c=a[zNc];c.call(a,b)}function Ozc(a,b){var c;c=a[zNc];c.call(a,b)}function sX(a,b){zX((tbc(),kac),b);NX(a,b.b)}function D3b(a,b){if(!n3b(a))return;a.b.i=b}function Xmc(a,b){Vmc();return a==b?0:a?1:-1}function lf(a){be(a);return new jf(new nf(a))}function vp(a){So(); this.d=(Wuc(),new Lwc(a))}function Vp(a){En();this.b=(Wuc(),new cxc(a))}function En(){En=aW;new Qn((Wuc(),Wuc(),Uuc))}function bk(a){a.b?bk(a.b):a.f.c.put(a.e,a.d)}function iAc(a){uqc(a.c);a.b.b=a.b;a.b.a=a.b}function lC(a){return new kC(a.d,a.c,a.a,a.b)}function wf(a,b){return a.Vd().containsKey(b)}function yq(a,b,c){this.a=a;eh.call(this,b,c)}function br(a,b,c){this.a=a;Ah.call(this,b,c)}function vY(a,b,c){this.a=a;this.c=b;this.b=c}function _6(a,b,c){this.b=a;this.c=b;this.a=c}function Gd(a,b, c){this.b=a;this.a=b;this.c=c}function xz(a,b,c){this.b=a;this.a=b;this.c=c}function GB(a,b,c){this.j=a;this.b=b;this.a=c}function DW(a,b,c){ue.call(this,a,b);this.a=c}function kx(a,b){pi.call(this,a);this.a=be(b)}function mx(a,b){am.call(this,a);this.a=be(b)}function Cpb(a){Apb();this.a=a;this.b=new ezc}function vrb(){vrb=aW;trb=new yrb;urb=new Arb}function Erb(){Erb=aW;Crb=new Hrb;Drb=new Irb}function Zqb(){Zqb=aW;Xqb=new arb;Yqb=new brb}function HHb(){HHb=aW;GHb=new JHb;FHb=new LHb}function Krb(){Krb= aW;Jrb=gEc((rnc(aN),aN.p))}function HPb(a){var b;this.a=(En(),b=a,Mp(b))}function OUb(a){this.b=a;this.a=(_n(),new fr)}function C0b(a){sC.call(this,"Precision: "+a)}function tsb(a){return OV(HV(Date.now()),a.a)}function $6(a,b){return cE(b,5)&&Xoc(b.b,a.b)}function y1b(a,b){return s1b((tbc(),b9b),a,b)}function M1b(a,b){return s1b((tbc(),U9b),a,b)}function o1b(a,b){return s1b((tbc(),s8b),a,b)}function p1b(a,b){return s1b((tbc(),t8b),a,b)}function O1b(a,b){return s1b((tbc(),gac),a,b)}function X1b(a, b){return s1b((tbc(),Cac),a,b)}function b2b(a,b){return s1b((tbc(),Tac),a,b)}function c2b(a,b){return s1b((tbc(),Uac),a,b)}function f2b(a,b){return s1b((tbc(),$ac),a,b)}function d2b(a){return new e8b((tbc(),Xac),a)}function CPb(a,b){return new HPb($x(a.a,b.a))}function APb(a,b){return a.a.containsAll(b.a)}function _Ub(a,b){return b>=0&&b0){zpc(a.i,10);++a.k;a.n=0}}function To(a){if(a.e)return a.e;return a.e=a.$e()}function Uo(a){if(a.f)return a.f;return a.f=a._e()}function Xo(a){if(a.g)return a.g;return a.g=a.af()}function yo(a,b){return b!=null&&a.Ze().contains(b)}function Yz(a,b){return RV(FV(CV(KV(a.b.a,b),7),8))}function GD(a,b){return uD(a.l&b.l,a.m&b.m,a.h&b.h)}function SD(a,b){return uD(a.l^b.l,a.m^b.m,a.h^b.h)}function Sz(a,b){return ac((_b(),$b,b))&&a.e[b]!=-1}function duc(a,b,c){var d;for(d= 0;d0?1:0}function IAb(a){return(a.Lh()&504)!=0||_yb(a.Jh())}function zn(a){return new ot(new Cn(a.a.length,a.a))}function C1(a){return!!a.G&&a.I.a.length>1?a.G:null}function fEc(a){this.c=a;this.e=true;this.a=new utc}function YBc(a){this.b=null;this.a=(Jxc(),!a?Gxc:a)}function wtc(a){htc(this);vEc(this.a,0,a.toArray())}function $r(a,b){_n();Zr.call(this,a,xo(new xuc(b)))}function TEc(a,b){if(a==null)throw BV(new Goc(b));}function xkb(a,b,c){qkb();return $kb(a,new ymb(b),c)}function zlb(a, b,c){qkb();return $kb(a,new vmb(b),c)}function lgb(a,b){return b==a.c?a:new mgb(a.a,b,a.b)}function tab(a,b){Vd(zab(b),b);a.e=true;dkb(a.c,b,a)}function Zf(a,b,c,d){a.d.b.remove(c);a.d.b.put(d,b)}function uzb(a,b){he(!a.n.isEmpty());return Czb(a,b)}function zX(a,b){b.j!=a&&YX(WGc+a+" but was "+b.j,b)}function Wk(a,b,c){this.a=a;fk.call(this,a,b,c,null)}function Wub(a){Pub();Rub.call(this,lJc,null,a,null)}function gwb(a,b,c){ewb.call(this,a,b,(uwb(),twb),c)}function lxb(){aY.call(this);this.a=q7((k7(), false))}function _cc(a,b,c){Jbc();adc.call(this,a,b,c,false)}function VJb(a,b,c,d){return $5b(new i7b(b,c,d),a.t)}function Agb(a,b,c){return c?"{"+Dgb(a,c.a)+"} "+b:b}function kqc(a,b){return hE(b)?pqc(a,b):!!Ezc(a.d,b)}function Xkc(a){return a.d.Ye(a.e.size(),a.d.size())}function uqc(a){a.d=new Hzc(a);a.e=new Zzc(a);Zxc(a)}function Ofc(a){this.b=new e7b((tbc(),Eac));this.a=a}function Qtc(a){WEc(a.b!=-1);ptc(a.c,a.a=a.b);a.b=-1}function cKb(a,b){a.i&&a.d.oh(xLc,a.r,b.b.b+1,b.b.a)}function A3(a,b){!a.i&& (a.i=dwb(a.b.H,b));return a.i}function lyc(a,b,c){var d;d=a.b[b];a.b[b]=c;return d}function Msc(a){var b;b=Isc(a);QEc(b!=null);return b}function Nsc(a){var b;b=Jsc(a);QEc(b!=null);return b}function q7(a){var b;b=(sW(),new uhb);b.d=a;return b}function KA(a){var b;b=(a&1)==1;a=a>>1;return b?-a:a}function NBb(a){if((a&24)!=0)return a|8|16;return a}function Sbc(a){if(cE(a,90))return a.n;return false}function be(a){if(a==null)throw BV(new Eoc);return a}function B1(a,b){if(!b)return null;return jDc(a.B, b)}function yt(){tt();return pD(kD(MG,1),PFc,324,0,[st])}function jrb(a,b){drb();return new prb((new orb,a),b)}function hib(a,b){var c;he(!a.r);a.u=(En(),c=b,Mp(c))}function U3b(a,b){var c;c=(Vd(b>=0,YNc),1<a?8:a)<<1)}function Oc(){Yb.call(this,"CharMatcher.whitespace()")} function Or(){Pr.call(this,Qw(Gw((zm(8,oGc),new Kw))))}function _n(){_n=aW;En();$n=new Mx((Wuc(),Wuc(),Uuc))}function Rx(){Rx=aW;En();Qx=new Sx((Wuc(),Wuc(),Vuc))}function Tf(a){var b;b=a.c;return!b?a.c=new Ug(a):b}function Uf(a){var b;b=a.e;return!b?a.e=new hh(a):b}function _x(a){if(cE(a,315))return a;return new Ay(a)}function vv(a,b){var c;c=a.a.size();fe(b,c);return c-b}function sdc(a){var b;b=new $Cc;zjc(a.ij(),b);return b}function ohb(a){this.b=new utc;this.c=new utc;this.a=a}function dob(a){this.f= a;this.d=new utc;this.c=new mzc}function edb(a,b){this.b=a;this.j=b;this.p=(ndb(),ldb)}function ghb(a,b,c){dhb.call(this,a);this.b=b;this.a=c}function f8b(a,b,c,d){f7b.call(this,a,c,d);d8b(this,b)}function ewb(a,b,c,d){fwb.call(this,null,a,b,c,d,null)}function nec(a,b,c,d,e){Jbc();oec.call(this,a,b,c,d,e)}function nqc(a,b){return hE(b)?oqc(a,b):Li(Ezc(a.d,b))}function XUb(a,b,c){return new GQb(b,SRb(a.e.b,c,a.d))}function vr(a,b){return Fn(To(a.a)).getAtIndex(b).ce()}function Wf(a,b){return a.b.containsKey(b)? Xf(a,b):null}function ypc(a,b){return a.a+=String.fromCharCode(b),a}function zpc(a,b){a.a+=String.fromCharCode(b);return a}function Fmc(a,b){Emc(a,b,b+1,String.fromCharCode(32))}function Suc(a,b){var c;c=b+1;c>a.length&&(a.length=c)}function Dsc(a){var b;b=a.a[a.b];QEc(b!=null);return b}function pl(a){var b;b=a.a.Wd().Od();return new xl(a,b)}function B2(a,b){!a.L&&T1(a,new d4);return C2(a,b,true)}function Ieb(a,b){jzc(a.a.a,b);jzc(a.a.i,b);return null}function Dgb(a,b){var c;c=new Kpc;ygb(a,c,b); return c.a}function SEc(a){if(a==null)throw BV(new Eoc);return a}function bBc(){this.a=new pBc;this.c=new pBc;aBc(this)}function Md(a){this.b=new Od;this.c=this.b;this.a=be(a)}function $t(a){this.c=a;this.b=this.c.a;this.a=this.c.e}function is(a,b){hs();vp.call(this,a);this.a=b;this.c=a}function m6(a){j6();this.a=null;this.b=(En(),new Ey(a))}function dA(){cA.call(this,new Tz("base16()",npc(DFc)))}function rtb(){rnb.call(this,"Es6RewriteArrowFunction")}function ltb(){rnb.call(this,"Es6RewriteDestructuring")} function IQb(a,b){GQb.call(this,(YXb(),GWb),a);this.a=b}function gYb(a,b){eYb.call(this,(H_b(),UZb),a);this.a=b}function hYb(a,b){eYb.call(this,(H_b(),VZb),a);this.a=b}function iYb(a,b){eYb.call(this,(H_b(),WZb),a);this.a=b}function jYb(a,b){eYb.call(this,(H_b(),XZb),a);this.a=b}function kYb(a,b){eYb.call(this,(H_b(),YZb),a);this.a=b}function lYb(a,b){eYb.call(this,(H_b(),ZZb),a);this.a=b}function mYb(a,b){eYb.call(this,(H_b(),$Zb),a);this.a=b}function oYb(a,b){eYb.call(this,(H_b(),a$b),a);this.a= b}function pYb(a,b){eYb.call(this,(H_b(),b$b),a);this.a=b}function vYb(a,b){eYb.call(this,(H_b(),h$b),a);this.a=b}function OYb(a,b){eYb.call(this,(H_b(),r$b),a);this.a=b}function QYb(a,b){eYb.call(this,(H_b(),t$b),a);this.a=b}function XYb(a,b){eYb.call(this,(H_b(),A$b),a);this.a=b}function YYb(a,b){eYb.call(this,(H_b(),B$b),a);this.a=b}function aZb(a,b){eYb.call(this,(H_b(),C$b),a);this.a=b}function wZb(a,b){eYb.call(this,(H_b(),I$b),a);this.a=b}function yZb(a,b){eYb.call(this,(H_b(),K$b),a);this.a= b}function FZb(a,b){eYb.call(this,(H_b(),R$b),a);this.a=b}function LZb(a,b){eYb.call(this,(H_b(),Y$b),a);this.a=b}function PZb(a,b){eYb.call(this,(H_b(),a_b),a);this.a=b}function QZb(a,b){eYb.call(this,(H_b(),b_b),a);this.a=b}function RZb(a,b){eYb.call(this,(H_b(),c_b),a);this.a=b}function TZb(a,b){eYb.call(this,(H_b(),e_b),a);this.a=b}function M_b(a,b){eYb.call(this,(H_b(),h_b),a);this.a=b}function N_b(a,b){eYb.call(this,(H_b(),i_b),a);this.a=b}function O_b(a,b){eYb.call(this,(H_b(),j_b),a);this.a= b}function Q_b(a,b){eYb.call(this,(H_b(),l_b),a);this.a=b}function U_b(a,b){eYb.call(this,(H_b(),p_b),a);this.a=b}function V_b(a,b){eYb.call(this,(H_b(),q_b),a);this.a=b}function X_b(a,b){eYb.call(this,(H_b(),s_b),a);this.a=b}function $_b(a,b){eYb.call(this,(H_b(),w_b),a);this.a=b}function __b(a,b){eYb.call(this,(H_b(),x_b),a);this.a=b}function c0b(a,b){eYb.call(this,(H_b(),z_b),a);this.a=b}function g0b(a,b){eYb.call(this,(H_b(),D_b),a);this.a=b}function Ljc(a,b){ydc.call(this,a,null);Kjc(this,be(b))} function OAc(a){this.c=a;this.b=a.a.b.a;Yxc(a.a.c,this)}function Vbc(a,b){this.w=a;this.A=!b?Mhc(a,null,null):b}function Pd(a,b){return iE(a)===iE(b)||a!=null&&nb(a,b)}function xCc(a,b){return NBc(a.c,a.f,b,a.b,a.a,a.e,a.d)}function lDc(a,b,c){return iDc(a,b)?jDc(a,b):kDc(a,b,c)}function $Gb(a,b){he(!a.f);zHb(a.A,CJc,a.v)||jzc(a.o,b)}function iyc(a){Zc(a.a);a.b=mD(kT,KFc,1,a.b.length,5,1)}function qDb(a){if(a.b)return null;return d6b(a.c,a.a)}function qlb(a){qkb();return a.j==(tbc(),K9b)||a.j==J9b} function mlb(a){qkb();return a.j==(tbc(),D9b)||a.j==C9b}function nw(){lw();return pD(kD(iH,1),PFc,196,0,[jw,kw])}function So(){So=aW;Ro=new Px(pD(kD(SU,1),iGc,50,0,[]))}function Tx(a){Vp.call(this,a);this.a=(Wuc(),new Dxc(a))}function Jt(a,b,c,d){Vq.call(this,a,b);this.d=c;this.a=d}function Z_(a,b,c,d){R_.call(this,c,d);this.a=a;this.c=b}function kC(a,b,c,d){this.d=a;this.c=b;this.a=c;this.b=d}function kf(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d}function eC(a,b,c,d){this.c=a;this.d=b;this.b=c; this.a=d}function X2(a,b,c,d){this.a=a;this.b=b;this.d=c;this.c=d}function uqb(a,b,c,d,e){o2(a.a,rqb(a,b,c,d,e,(lZ(),iZ)))}function vqb(a,b,c,d,e){o2(a.a,rqb(a,b,c,d,e,(lZ(),kZ)))}function uv(a,b){var c;c=a.a.size();ae(b,c);return c-1-b}function J9(a,b){var c;c=new eab;dkb(a.a,b,c);return c.d}function jAb(a,b){be(b);he(a.n.isEmpty());a.n=b;return a}function Uyb(a,b){return b.mi()?tAb(a.a,new Kpc,b).a:a.A}function rpc(a){return String.fromCharCode.apply(null,a)}function ZJb(a,b){return $5b(new e8b((tbc(), Xac),b),a.t)}function WJb(a,b,c,d,e){return $5b(new j7b(b,c,d,e),a.t)}function kJb(a,b,c,d){jJb.call(this,a,(pJb(),oJb),b,c,d)}function G5(a){F5.call(this,(_n(),be(a),io(new xuc(a))))}function mnb(){Z2.call(this,"garbageCollectChecks",true)}function TVb(a,b){this.c=a;this.a=b;this.b=new TRb(this)}function nMb(a,b){a.o=!a.o?JNb(a.j):fMb(a);return a.o==b}function Hk(a){ck(a.d);if(a.d.d!=a.c)throw BV(new $xc);}function fnc(a){var b;b=a-10;return(b<0?48+a:97+b)&yFc}function _1b(a){he(P1b(a));return new g7b((tbc(), Oac),a)}function g2b(a){he(P1b(a));return new g7b((tbc(),fbc),a)}function k2b(a){he(P1b(a));return new g7b((tbc(),sbc),a)}function vwb(){uwb();return pD(kD(MN,1),PFc,274,0,[twb])}function H0(){F0();return pD(kD(yJ,1),PFc,278,0,[D0,E0])}function x4(){v4();return pD(kD(OJ,1),PFc,267,0,[t4,u4])}function bvc(a){Wuc();return!a?(Jxc(),Jxc(),Ixc):a.Re()}function qqc(a,b,c){return hE(b)?rqc(a,b,c):Fzc(a.d,b,c)}function Tdc(a,b,c,d){return ycc(a,b,c,d)||a.d.Ti(b,c,d)}function Dhc(a,b,c){return Cfc(Gfc(Ffc(new Jfc(a), c),b))}function kyc(a,b){return Ryc(a.a,b)?lyc(a,b.f,null):null}function zBc(a,b){return iE(a)===iE(b)||a!=null&&nb(a,b)}function ZXb(a){return a.a==null?(HRb(),up(iRb,a)).b:a.a}function Gwc(a){!a.b&&(a.b=new ixc(a.d.Wd()));return a.b}function Jhc(a,b){var c;c=new Ofc(a);Kfc(c,b);return c.b}function Y6(a,b){var c;c=new n6(a,b);rqc(V6,a,c);return c}function Z6(a,b){var c;c=new o6(a,b);rqc(V6,a,c);return c}function Yk(a){var b;b=a.c;!b&&(a.c=b=new Vl(a));return b}function Zk(a){var b;b=a.d;!b&&(a.d= b=new Zl(a));return b}function Zc(a){var b;for(b=a.Od();b.Hd();){b.Id();b.Jd()}}function dtc(a){this.d=a;this.a=this.d.b;this.b=this.d.c}function O_(a){this.c=new d4;this.a=new P_(this);this.f=a}function p0b(a,b,c,d){this.d=a;this.c=b;this.b=c;this.a=d}function IRb(a,b,c,d){ue.call(this,a,b);this.b=c;this.a=d}function CQb(a,b,c,d){ue.call(this,a,b);this.a=c;this.b=d}function ujc(a,b,c,d){this.c=a;this.e=b;this.b=c;this.d=d}function fab(a,b){dab(this);this.e=a;this.f=b;this.a=true}function Ooc(a,b, c){this.a=JGc;this.d=a;this.b=b;this.c=c}function Emc(a,b,c,d){a.a=mpc(a.a,0,b)+(""+d)+lpc(a.a,c)}function aOb(a,b,c,d){var e;a.d=true;e=X0b(c,d);a.ni(b,e)}function WDc(a,b,c,d){var e;e=new VDc(b,c);e.c=d;XDc(a,e)}function X0b(a,b){var c;c=new W0b;H0b(c,a,b);return c.c.a}function M5b(a){if(!a)return new K5b(true);return L5b(a)}function ce(a,b){if(a==null)throw BV(new Goc(b));return a}function joc(a,b){while(b-- >0)a=a<<1|(a<0?1:0);return a}function tqc(a,b){return b==null?Gzc(a.d,null):Yzc(a.e,b)} function ZUb(a){return $Ub(a,a.b.b==0?a.d:fVb(a,0).b.b.c)}function Bt(a){var b;return b=a.g,!b?a.g=new Sj(a,a.c):b}function XC(){XC=aW;var a,b;b=!aD();a=new iD;WC=b?new bD:a}function klc(){klc=aW;hlc=new nlc;ilc=new rlc;jlc=new vlc}function Jxc(){Jxc=aW;Gxc=new Lxc;Hxc=new Lxc;Ixc=new Pxc}function v4(){v4=aW;t4=new w4(KIc,0);u4=new w4("CUSTOM",1)}function jA(a,b){a.backingJsObject=b;b!=null&&$Ec(b,yGc,a)}function _Dc(a,b,c){b.Ej()>=($Dc(a),800)&&WDc(a,b,c,null)}function Lgb(a,b,c,d,e,f){return new Ggb(a, null,b,c,e,d,f)}function Xob(a,b,c){var d;_ob.call(this,a,b,(d=c,tbc(),d))}function Yob(a,b,c){var d;_ob.call(this,a,b,(d=c,tbc(),d))}function Zob(a,b,c){var d;_ob.call(this,a,b,(d=c,tbc(),d))}function whb(a,b){wW.call(this,a);shb(this);be(a);this.a=b}function Msb(){Z2.call(this,"rewriteAsyncFunctions",true)}function MC(a){GC();$wnd.setTimeout(function(){throw a;},0)}function Z3(a){if(a.Vb==(V4(),U4))return a.Ub;return a.Vb}function d0(a,b){if(b||Z3(a)==(V4(),P4))return 1;return 0}function C3(a){if(!a.a|| !a.a.Rg())return;a.a.Rg().c=true}function nyc(a){this.a=Oyc(a.a);this.b=rEc(a.b,a.b.length)}function oyc(a){this.a=Oyc(a.a);this.b=rEc(a.b,a.b.length)}function aBc(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0}function _1(a){a.P=0;t5(a.L);k2(a);a.P=.02;a2(a);a.P=.15}function UDb(a,b){he(!a.K);be(b);a.K=b;a.L=Us(b.Oh().Od())}function $3(a,b){return APb(X4(a.Ub),b)&&!APb(X4(Z3(a)),b)}function GPb(a,b){return new HPb(Vx(a.a,(En(),new Ey(b))))}function Z5b(a){return!a.b?(Wuc(),Wuc(),Vuc):new Y7b(a.b)} function Hs(a){if(a)return a.isEmpty();return!a.Od().Hd()}function dk(a){a.b?dk(a.b):a.d.isEmpty()&&a.f.c.remove(a.e)}function or(a){this.b=(zm(a,"initialArraySize"),new vtc(a))}function Qu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1}function pEc(a){var b;b=new oEc;b.a=new RegExp(a);return b}function Onb(a){var b;b=new Mnb;g_(new A_(b),a,4);return b}function Ie(){Ie=aW;Fe=new Le;Ee=new Oe;Ge=new Re;He=new Ue}function hFc(){if(cFc==256){bFc=dFc;dFc=new lb;cFc=0}++cFc}function C1b(a){ie(P1b(a), a);return new g7b((tbc(),z9b),a)}function iy(a){return Np(new Rtc(Tr(Tr(new Ur,a.a),a.b).a))}function b4(a){return YEc(vb((Vmc(),W4(Z3(a))?true:false)))}function TV(a,b){return EV(SD(IV(a)?PV(a):a,IV(b)?PV(b):b))}function rW(){pW();return pD(kD(aJ,1),PFc,217,0,[mW,oW,nW])}function KW(){IW();return pD(kD(eJ,1),PFc,228,0,[GW,HW,FW])}function nZ(){lZ();return pD(kD(mJ,1),PFc,223,0,[iZ,kZ,jZ])}function D4(){B4();return pD(kD(PJ,1),PFc,220,0,[y4,z4,A4])}function s4(){q4();return pD(kD(NJ,1),PFc,219,0, [o4,p4,n4])}function s5(){q5();return pD(kD(VJ,1),PFc,222,0,[o5,n5,p5])}function e5(){c5();return pD(kD(TJ,1),PFc,221,0,[_4,b5,a5])}function Qlb(a){qkb();return a.j==(tbc(),E9b)&&h6b(a,60)==0}function alb(a){qkb();Ud(a.j==(tbc(),hbc));return e6b(a)==3}function Jjb(a){while(!!a&&a.j!=(tbc(),Rac))a=a.e;return a}function d6b(a,b){var c;c=a.b;while(b>0){c=c.d;--b}return c}function e6b(a){var b,c;b=0;for(c=a.b;c;c=c.d)++b;return b}function Ipc(a,b){a.a=mpc(a.a,0,b)+""+lpc(a.a,b+1);return a}function rzb(a){he(!(a== a.a.v||a==a.a.g));return a.i.size()}function $qc(a){QEc(a.b>0);return a.a.getAtIndex(a.c=--a.b)}function qHb(a,b){he(b.g==0);return a==b||!!a.p&&$Eb(a.p,b)}function x0b(a,b){u0b();var c;c=w0b(a);++c.a;c.b=CV(c.b,b)}function pqc(a,b){return b==null?!!Ezc(a.d,null):Vzc(a.e,b)}function Mbc(a,b){return cE(b,24)&&Lbc(a,b,0,new mgc(true))}function dvc(a){Wuc();return cE(a,80)?new zxc(a):new lwc(a)}function Sw(a){return new mx(new fzc(Yv(a.a.a)),new Ow(a.b))}function pMb(a,b){return $5b(new f7b(b,a.j.g, INb(a.j)),a.n)}function dkb(a,b,c){var d;d=new ckb(a,c,new $ab(a));Yjb(d,b)}function JB(a,b){var c,d;d=b.b;c=b.a;return d!=0?c:c+a.c.i.a}function lA(a,b){var c;c=tnc(a.Qj);return b==null?c:c+": "+b}function Ei(a,b){return b===a?"(this Map)":b==null?qFc:eW(b)}function fpb(){dpb();return pD(kD(zM,1),PFc,275,0,[cpb,bpb])}function _qb(){Zqb();return pD(kD(RM,1),PFc,189,0,[Xqb,Yqb])}function xrb(){vrb();return pD(kD(YM,1),PFc,194,0,[trb,urb])}function Grb(){Erb();return pD(kD(_M,1),PFc,193,0,[Crb,Drb])} function Djc(a){if(!a.a)return _n(),_n(),$n;return a.a.ej()}function kHb(a,b){if(a.g!=0)return mHb(a,b);return lHb(a,b)}function Gqc(a,b){if(cE(b,50))return zi(a.a,b);return false}function Kwc(a){!a.e&&(a.e=new Tvc(a.d.values()));return a.e}function Iwc(a){!a.c&&(a.c=new cxc(a.d.keySet()));return a.c}function Ljb(a){var b;b=Qsc(a.n)+Qsc(a.k);he(b>0);return b-1}function o1(a){var b;if(a.L.wc){b=x1(a);Xoc(b,a.F)||(a.F=b)}}function hxc(a,b){var c;for(c=0;c=0,YNc),1<=a.d)throw BV(new yBc);return a.le(a.c++)}function Ouc(a){if(a<0)throw BV(new Nmc("bitIndex < 0: "+a));}function tVb(a){while(JVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0))aVb(a)}function dX(a){var b;zX((tbc(),y9b),a);for(b=a.b;b;b=b.d)cX(b)}function kX(a){var b;zX((tbc(),S9b),a);for(b=a.b;b;b=b.d)jX(b)}function Ss(a){var b; while(true){b=a.Id();if(!a.Hd())return b}}function A5(a,b){var c,d;for(d=b.Od();d.Hd();){c=d.Id();z5(a,c)}}function Dzc(a,b){var c;c=a.a.get(b);return c==null?new Array:c}function kob(a){var b;b=a.b.e>a.a;a.a=a.b.b.a;++a.b.b.a;return b}function Zpb(a){bgb();this.b=a;egb.call(this,a.a);this.a=new SAc}function zC(a){xC();vC.call(this,a);this.a="";this.b=a;this.a=""}function xtb(){rnb.call(this,"Es6SplitVariableDeclarations")}function otb(){rnb.call(this,"Es6RenameVariablesInParamLists")}function Ysb(){rnb.call(this, "Es6RewriteBlockScopedDeclaration")}function Psb(){rnb.call(this,"es6ConvertSuperConstructorCalls")}function Dvb(){Bvb();return pD(kD(CN,1),PFc,227,0,[Avb,zvb,yvb])}function Dwb(){Bwb();return pD(kD(NN,1),PFc,226,0,[ywb,zwb,Awb])}function izb(){gzb();return pD(kD(ZN,1),PFc,258,0,[ezb,dzb,fzb])}function QGb(){OGb();return pD(kD(yO,1),PFc,256,0,[LGb,MGb,NGb])}function YHb(){WHb();return pD(kD(FO,1),PFc,257,0,[UHb,THb,VHb])}function gNb(){eNb();return pD(kD(QO,1),PFc,251,0,[cNb,dNb,bNb])}function zDb(){xDb(); return pD(kD(kO,1),PFc,234,0,[vDb,uDb,wDb])}function rJb(){pJb();return pD(kD(JO,1),PFc,230,0,[oJb,mJb,nJb])}function VUb(){TUb();return pD(kD(gP,1),PFc,243,0,[SUb,RUb,QUb])}function Ufc(){Sfc();return pD(kD(cS,1),PFc,239,0,[Rfc,Pfc,Qfc])}function vgc(){tgc();return pD(kD(jS,1),PFc,237,0,[qgc,rgc,sgc])}function mlc(){klc();return pD(kD(JS,1),PFc,161,0,[hlc,ilc,jlc])}function plb(a){qkb();return a.j==(tbc(),S8b)&&!!a.e&&a.e.j==E9b}function aVb(a){if(!_Ub(a,a.d))return 0;return Soc(a.e.a,a.d++)}function h6b(a, b){var c;c=w6b(a,b);if(!c)return 0;return c.yi()}function QV(a){var b;if(IV(a)){b=a;return b==-0?0:b}return PD(a)}function cj(a,b){var c;c=b.ce();return new Vq(c,ai(a.b,c,b.de()))}function ekb(a,b,c,d){var e;e=new ckb(a,b,new $ab(a));bkb(e,c,d)}function Dkc(a,b,c,d){a.b=false;rqc(a.c,b,new Gkc(c,d));return a}function Sqb(a,b){he(b.d==a);he(kAc(a.e,b.b).Ad(b));nAc(a.e,b.b)}function C0(a,b){Zd(t6b(a),fIc,a);Zd(t6b(b),fIc,b);k6b(a);k6b(b)}function k_(a,b){he(b.j==(tbc(),S8b));a.c.qg();i_(a,b.b);a.c.sg()} function M$(a){if(a.r){a.mg(";");a.Cg();a.vg();a.r=false}a.s=true}function B3(a){if(!a.a||!a.a.Rg())return false;return a.a.Rg().c}function vW(a,b){if(!a.d)return b;return(CW(),xW).a+(""+b)+AW.a}function I3(a,b){return Np(new Rtc(Tr(Tr((En(),new Ur),a),b).a))}function cBb(a){sAb();return IBb(a.a,2,(En(),new Ey(a)),null,pAb)}function Mx(a){_n();this.a=(Wuc(),cE(a,80)?new zxc(a):new lwc(a))}function spb(a){be(a);this.a=a;this.b=new Rsc;ysc(this.b,new xpb)}function DGb(a,b,c,d){Ud(!!b);this.c=a;this.d= b;this.b=c;this.a=d}function GUb(a,b,c,d){!b?aOb(a.c,ZUb(a.j),c,d):aOb(a.c,b.b.b,c,d)}function hVb(a,b,c){gVb(a,$Ub(a,a.b.b==0?a.d:fVb(a,0).b.b.c),b,c)}function Eub(a,b,c){Gpc(Gpc(Gpc(Gpc((a.a+="@",a),b)," {"),c),"}")}function cic(a,b,c){Jbc();_ec.call(this,a,yJc,b,c,null,true,true)}function Smc(a){Qmc.call(this,a==null?qFc:eW(a),cE(a,41)?a:null)}function Epc(a,b,c,d){a.a+=""+mpc(b==null?qFc:eW(b),c,d);return a}function Gbb(a,b){var c;c=Sbb(b);if(c)return Qbb(a,c,b);return 0}function eSb(a,b){if(fVb(a.j, 0).c==b)return aSb(a,b);return null}function XNb(a,b,c){var d;ZNb();d=VNb;return new jJb(d,b,WNb,a,c)}function ysc(a,b){SEc(b);a.b=a.b-1&a.a.length-1;a.a[a.b]=b;Csc(a)}function zsc(a,b){SEc(b);a.a[a.c]=b;a.c=a.c+1&a.a.length-1;Csc(a)}function Ptc(a){QEc(a.a=b)throw BV(new Nmc(Rd(a,b)));return a}function ge(a, b,c){if(a<0||bc)throw BV(new Nmc(Td(a,b,c)));}function Xxc(a,b){if(b.$modCount!=a.$modCount)throw BV(new $xc);}function aEc(a,b,c){$Dc(a);WDc(a,b,"Failed to parse sourcemap",c)}function gpc(a,b,c){c=upc(c);return a.replace(new RegExp(b,"g"),c)}function jDb(a,b,c,d,e){if(!b)return null;return kDb(a,b.a,c,d,e)}function OJb(a,b){if(!iKb(b))return null;return NJb(a,KJb(a,b.o))}function oMb(a,b,c){a.o=!a.o?JNb(a.j):fMb(a);return a.o==b||a.o==c}function Kkb(a){qkb();Vd(a.j==(tbc(),E9b),a);return a.b? a.b.f:null}function Vqb(a){Vd(a.j==(tbc(),Pac)||a.j==Rac,a);return new Uqb(a)}function fVb(a,b){while(a.b.b<=b)VAc(a.b,oVb(a));return vu(a.b,b)}function qVb(a){while(RVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)>=0)aVb(a)}function xVb(a){while(SVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)>=0)aVb(a)}function CGb(a){return a.a==(OGb(),NGb)?a:new DGb(a.c,a.d,a.b,NGb)}function EW(){CW();return pD(kD(cJ,1),PFc,174,0,[yW,BW,zW,xW,AW])}function L4(){J4();return pD(kD(QJ,1),PFc,168,0,[F4,I4,G4,H4,E4])}function m5(){k5();return pD(kD(UJ, 1),PFc,167,0,[f5,i5,g5,j5,h5])}function F0(){F0=aW;D0=new G0("INHERITS",0);E0=new G0("MIXIN",1)}function v0b(){u0b();this.a="Parse Program";this.b=HV(Date.now())}function qYb(a,b,c){eYb.call(this,(H_b(),c$b),a);this.b=b;this.a=c}function tYb(a,b,c){eYb.call(this,(H_b(),f$b),a);this.b=b;this.a=c}function RYb(a,b,c){eYb.call(this,(H_b(),u$b),a);this.b=b;this.a=c}function UYb(a,b,c){eYb.call(this,(H_b(),x$b),a);this.b=b;this.a=c}function WYb(a,b,c){eYb.call(this,(H_b(),z$b),a);this.b=b;this.a=c}function BZb(a, b,c){eYb.call(this,(H_b(),N$b),a);this.b=b;this.a=c}function CZb(a,b,c){eYb.call(this,(H_b(),O$b),a);this.b=b;this.a=c}function GZb(a,b,c){eYb.call(this,(H_b(),S$b),a);this.b=b;this.a=c}function HZb(a,b,c){eYb.call(this,(H_b(),T$b),a);this.b=b;this.a=c}function KZb(a,b,c){eYb.call(this,(H_b(),X$b),a);this.b=b;this.a=c}function MZb(a,b,c){eYb.call(this,(H_b(),Z$b),a);this.b=b;this.a=c}function SZb(a,b,c){eYb.call(this,(H_b(),d_b),a);this.b=b;this.a=c}function S_b(a,b,c){eYb.call(this,(H_b(),n_b),a); this.b=b;this.a=c}function K_b(a,b,c){eYb.call(this,(H_b(),f_b),a);this.b=b;this.a=c}function T_b(a,b,c){eYb.call(this,(H_b(),o_b),a);this.b=b;this.a=c}function L_b(a,b,c){eYb.call(this,(H_b(),g_b),a);this.a=b;this.b=c}function Z_b(a,b,c){eYb.call(this,(H_b(),v_b),a);this.a=b;this.b=c}function SYb(a,b,c){eYb.call(this,(H_b(),v$b),a);this.a=b;this.b=c}function sYb(a,b,c){eYb.call(this,(H_b(),e$b),a);this.a=b;this.b=c}function IYb(a,b,c){eYb.call(this,(H_b(),l$b),a);this.a=b;this.b=c}function vZb(a, b,c){eYb.call(this,(H_b(),H$b),a);this.a=b;this.b=c}function EZb(a,b,c){eYb.call(this,(H_b(),Q$b),a);this.a=b;this.b=c}function a0b(a,b,c){eYb.call(this,(H_b(),u_b),a);this.a=b;this.b=c}function e0b(a,b,c){eYb.call(this,(H_b(),C_b),a);this.a=b;this.b=c}function b0b(a,b,c){eYb.call(this,(H_b(),y_b),a);this.b=b;this.a=c}function h0b(a,b,c){eYb.call(this,(H_b(),E_b),a);this.b=b;this.a=c}function i0b(a,b,c){eYb.call(this,(H_b(),F_b),a);this.b=b;this.a=c}function j0b(a,b,c){eYb.call(this,(H_b(),G_b),a); this.b=b;this.a=c}function frc(a,b,c){VEc(b,c,a.size());this.c=a;this.a=b;this.b=c-b}function Fjc(a,b,c){var d;d=a.b.Xd(b);!!d&&tjc(c,d.a);a.b.put(b,c)}function VBc(a,b){var c;c=1-b;a.a[c]=WBc(a.a[c],c);return WBc(a,b)}function QRb(a,b){var c;c=Wtc(a.a,b);if(c>=0)return c;return-c-2}function J2b(a,b){if(!a.b||!a.b.e)return null;return kAc(a.b.e,b)}function X2b(a,b){if(!a.b||!a.b.j)return null;return kAc(a.b.j,b)}function T2b(a,b){if(!a.d||!a.d.n)return null;return kAc(a.d.n,b)}function tkc(a,b,c, d,e){if(a.a)return false;return kec(a,b,c,d,e)}function inb(a,b,c){var d;d=c.e;he(!!d);he(o6b(d,b));ekb(a.b,a,b,c)}function KC(a,b,c){var d;d=IC();try{return HC(a,b,c)}finally{LC(d)}}function fX(a,b,c){BPb(a.a.s,b)||YX("AST should not contain "+b,c)}function Enb(a,b,c){ysc(a.f,new Lnb(b,c));Xoc(b,uIc)||(a.d.a=false)}function OLb(a,b){return!b?YJb(a.a,(tbc(),mac),KMc):pLb(a,b,false)}function wMb(a,b){return b==(CNb(),vNb)?pMb(a,(tbc(),Jac)):vMb(a,b)}function tyb(a,b){return new vyb(a.a,a.f,a.d,a.g, a.i,a.c,b,a.j,a.b)}function HUb(a,b,c){!b?aOb(a.c,ZUb(a.j),NNc,c):aOb(a.c,b.o.b,NNc,c)}function iVb(a,b,c){bOb(a.c,$Ub(a,a.b.b==0?a.d:fVb(a,0).b.b.c),b,c)}function RRb(a,b){var c;c=QRb(a,b);return new p0b(a.b,b,c,b-a.a[c])}function s1b(a,b,c){ie(P1b(b),b);ie(P1b(c),c);return new i7b(a,b,c)}function Z0b(a){if(a.b>=a.c)throw BV(e1b(a));return Soc(a.a,a.b++)}function b3b(a,b){if(!a.d||!a.d.n)return false;return jAc(a.d.n,b)}function k3b(a,b){if(!a.d.q)return false;return ntc(a.d.q,b,0)!=-1}function j6b(a, b){var c;c=w6b(a,b);if(!c)return null;return c.Ai()}function t1b(a){var b;he(Q1b(a));b=new g7b((tbc(),S8b),a);return b}function Vqc(a){WEc(a.c!=-1);a.d.removeAtIndex(a.c);a.b=a.c;a.c=-1}function Vfc(a,b,c){nec.call(this,a,null,null,c,b.A);be(b);this.a=b}function mCc(a){nCc.call(this,a,(MCc(),ICc),null,false,null,false)}function hCc(a){iCc.call(this,a,(MCc(),ICc),null,false,null,false)}function Mpb(a){Hpb();Npb.call(this,a,Upb(ppb("js/polyfills.txt")))}function uhb(){sW();wW.call(this,null);shb(this); this.a=(Zqb(),Xqb)}function Jzc(a){this.e=a;this.b=this.e.a.entries();this.a=new Array}function q6(a){j6();kqc(i6,a)||qqc(i6,a,new m6(a));return nqc(i6,a)}function gcc(a,b){Jbc();return!a||!b?a==b:Lbc(a,b,0,new mgc(true))}function bi(a,b,c,d){return cE(c,80)?new Ek(a,b,c,d):new tk(a,b,c,d)}function $k(a,b){var c;return c=cE(b,162)?Yk(b):b,Yk(a).removeAll(c)}function YW(a,b){var c;zX((tbc(),Pac),b);for(c=b.b;c;c=c.d)KX(a,c)}function BX(a,b){var c;zX((tbc(),zac),b);for(c=b.b;c;c=c.d)CX(a,c)}function aX(a, b){var c;zX((tbc(),r9b),b);for(c=b.b;c;c=c.d)DX(a,c)}function nX(a,b){var c;zX((tbc(),$9b),b);for(c=b.b;c;c=c.d)mX(a,c)}function xX(a,b){switch(b.j.f){case 29:tX(b);break;case 26:hX(a,b)}}function m2(a,b){if(h6b(b,94)!=0)return;I6b(b,a.a);++a.a;ksb(a.b,b)}function EB(a){ypc(a.b,34);NB(new PB(a.j),a);ypc(a.b,59);ypc(a.b,34)}function Y1b(a){he(a.j==(tbc(),mac)||a.j==Mac);return new g7b(Eac,a)}function hic(a,b){var c,d;c=b.c;d=c.aj(a);if(d!=c)return d;return b}function $0b(a){while(g1b(a.bb)throw BV(new Nmc(Sd(a,b,NFc)));return a}function io(a){_n();var b;if(cE(a,71)){b=a;return b.Ue()}return go(a)}function gBc(a){QEc(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c}function Uqc(a){QEc(a.b< a.d.size());return a.d.getAtIndex(a.c=a.b++)}function V2b(a){if(!a.d||!a.d.q)return _n(),_n(),$n;return io(a.d.q)}function $2b(a){if(!a.d||!a.d.s)return So(),So(),Ro;return _o(a.d.s)}function n3b(a){if(!a.c)return false;!a.b&&(a.b=new P3b);return true}function b7b(a,b){var c;a7b(a,b);for(c=a.b;c;c=c.d)b7b(c,b);return a}function d7b(a,b){var c;c7b(a,b);for(c=a.b;c;c=c.d)d7b(c,b);return a}function w6b(a,b){var c;c=a.g;while(!!c&&b!=c.Bi())c=c.zi();return c}function rdc(a,b,c,d){var e;e=a.qj(b,c,false, d);Zhc(a.w,b,a);return e}function Thc(a,b){var c;c=oqc(a.n,b);if(c)return c;return oqc(a.i,b)}function Oyc(a){var b;b=rEc(a.b,a.b.length);return new Tyc(a.a,b,a.c)}function Jbb(a,b){var c,d;d=Sbb(b);he(!!d);c=d.e;Kbb(a,d,b);q2(a.a,c)}function o6(a,b){j6();var c;this.a=a;this.b=(En(),c=new xuc(b),Mp(c))}function mEc(a,b){this.d=a;this.c=b;this.e=null;this.b=false;this.a=0}function rBb(a,b){sAb();return 0==a.Lh()||0==b.Lh()||0!=JBb(a,b).Lh()}function uZb(){sZb();return pD(kD(cQ,1),PFc,204,0,[pZb,qZb, rZb,oZb])}function QCc(){MCc();return pD(kD(dV,1),PFc,145,0,[ICc,JCc,KCc,LCc])}function Fs(a,b){var c;be(a);return Rs((c=a.a.Wd().Od(),new trc(c)),b)}function Zs(a){var b;be(a);if(cE(a,109)){b=a;return b}return new $s(a)}function w_(a,b){if(b.j==(tbc(),Y8b))return w_(a,b.b);return _lb(b.j)}function v_(a,b){if(j6b(b,78)){G$(a.c,":");a.c.Bg();a.Gg(j6b(b,78),4)}}function e2(a){if(a.L.ad){E2(a);$3(a.L,(zPb(),sPb))&&D2(a)}else p1(a)}function PEc(a){if(a<0)throw BV(new Doc("Negative array size: "+a));} function zyb(a,b){if(!a)return b;else if(!b)return a;return FBb(a,b)}function Ayb(a,b){if(!a)return b;else if(!b)return a;return JBb(a,b)}function Byb(a){var b;b=new nAb(a);hAb(b,a.G);iAb(b,a.G);return lAb(b)}function U7(a,b){var c;a.a=false;c=new X7(a);dkb(a.b.a,b,c);return a.a}function eu(a,b){var c;c=dvc(iv(new Xu(a,b)));Os(new Xu(a,b));return c}function lZ(){lZ=aW;iZ=new mZ(SGc,0);kZ=new mZ(TGc,1);jZ=new mZ(UGc,2)}function dpb(){dpb=aW;cpb=new epb(UGc,0);bpb=new epb("ALL_UNQUOTED",1)}function sAb(){sAb= aW;qAb=(En(),Rx(),Qx);pAb=(null,Qx);rAb=new Vc("|")}function ADc(){ADc=aW;wDc=new EDc;xDc=new HDc;yDc=new KDc;zDc=new NDc}function o0b(a){if(!a.d)return"";return Gs(ef(lf(new oc(47)),a.d.c))}function K2b(a){if(!a.d||!a.d.e)return _n(),_n(),$n;return dvc(a.d.e)}function M2b(a){if(!a.d||!a.d.f)return _n(),_n(),$n;return dvc(a.d.f)}function W2b(a){if(!a.d||!a.d.r)return _n(),_n(),$n;return dvc(a.d.r)}function VEb(a){he(a.a.f);if(!a.a.p)return null;return aFb(a.a.p,a.b)}function DSb(a){if(oUb(a,0,(YXb(), yXb)))return $Tb(a);return CSb(a,1)}function sDb(a){if(a.b)return a.b.Id();++a.a;return d6b(a.c,a.a).ri()}function _yc(a){QEc(a.a=0&&(a[b]|0)==0;--b);return b}function TSb(a){var b;aSb(a,(YXb(),dXb));b=CSb(a,1);aSb(a,iWb);return b}function cvc(a){Wuc();var b;b=new nzc(1);b.a.put(a, b);return new cxc(b)}function hpc(a,b,c){var d;c=upc(c);d=new RegExp(b);return a.replace(d,c)}function XAc(a,b,c,d){var e;e=new pBc;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b}function Hbb(a,b,c,d){if(!b||b==c)return;Hbb(a,b.d,c,d);Ibb(a,b.b,c,d)}function vVb(a){while(dnc(_Ub(a,a.d)?Soc(a.e.a,a.d):0,16)>=0)aVb(a)}function LC(a){a&&SC((QC(),PC));--DC;if(a)if(FC!=-1){NC(FC);FC=-1}}function Fb(a){a.i=3;a.g=of(a);if(a.i!=2){a.i=0;return true}return false}function iA(a){if(a.j){a.backingJsObject!==xGc&&a.uf();a.g= null}return a}function mr(a,b){var c,d;for(d=b.Od();d.Hd();){c=d.Id();a.kf(c)}return a}function Xu(a,b){var c;this.f=a;this.b=b;c=nqc(a.b,b);this.c=!c?null:c.b}function qy(a,b){this.c=a;this.d=b;this.a=this.c.Od();this.b=this.d.Od()}function _zc(a){this.d=a;this.b=this.d.a.entries();this.a=this.b.next()}function PUb(a,b){this.c=a==3;this.a=!(a==0||a==1);this.b=b;this.d=a==0}function oAc(){ezc.call(this);hAc(this);this.b.b=this.b;this.b.a=this.b}function XA(a,b){b.a.length==0?jtc(a.i.c,null):jtc(a.i.c, b);++a.b;a.c=0}function oob(a,b){var c;nob(a,b);for(c=b.b;c;c=c.d){he(c.e==b);oob(a,c)}}function XW(a,b,c){var d;zX((tbc(),_8b),b);for(d=b.b;d;d=d.d)WW(a,d,c)}function teb(a,b,c){var d;jzc(a.a,b);d=j6b(c,51);!!d&&d.zh()&&jzc(a.i,b)}function Nbb(a,b,c){return b.j==(tbc(),mac)&&(glb(b,a.d)||kzc(c,b.ri()))}function ylb(a){qkb();return!!a&&(a.j==(tbc(),nbc)||a.j==eac||a.j==d9b)}function EYb(){CYb();return pD(kD(DP,1),PFc,183,0,[xYb,AYb,zYb,BYb,yYb])}function q4b(){o4b();return pD(kD(FR,1),PFc,179,0,[l4b, k4b,m4b,n4b,j4b])}function tqb(a){a=qEc(a);return pEc(gpc(a,"\\{\\d+\\}","\\\\E.*\\\\Q"))}function CC(){if(Date.now)return Date.now();return(new Date).getTime()}function nt(a){if(mt(a)){a.c=a.a;return a.a.Id()}else throw BV(new yBc);}function r4b(a,b){if(z2b(a.a,b)){a.e=true;return true}else return false}function t4b(a,b){if(D2b(a.a,b)){a.e=true;return true}else return false}function S4b(a,b){if(B2b(a.a,b)){a.e=true;return true}else return false}function J4b(a,b){if(q3b(a.a,b)){a.e=true;return true}else return false} function w5b(a,b){if(F3b(a.a,b)){a.e=true;return true}else return false}function s5b(a,b){if(E2b(a.a,b)){a.e=true;return true}else return false}function x5b(a,b){if(v2b(a.a,b)){a.e=true;return true}else return false}function F5b(a,b){if(G2b(a.a,b)){a.e=true;return true}else return false}function a5b(a){if(!g3b(a.a)){v3b(a.a);a.e=true;return true}return false}function b5b(a){if(!h3b(a.a)){w3b(a.a);a.e=true;return true}return false}function $4b(a){if(!e3b(a.a)){t3b(a.a);a.e=true;return true}return false} function _4b(a){if(!f3b(a.a)){u3b(a.a);a.e=true;return true}return false}function Hh(a){a.f=3;a.e=a.me();if(a.f!=2){a.f=0;return true}return false}function nAc(a,b){var c;c=sqc(a.c,b);if(c){AAc(c);return c.e}return null}function otc(a,b,c){for(;c>=0;--c)if(zBc(b,a.a[c]))return c;return-1}function rtc(a,b,c){var d;d=(REc(b,a.a.length),a.a[b]);a.a[b]=c;return d}function Ztc(a,b){var c,d;c=(d=a.slice(0,b),qD(d,a));c.length=b;return c}function Qz(a,b){var c;if(cE(b,261)){c=b;return _tc(a.c,c.c)}return false} function $A(a,b){if(nB(a.a)&&pB(a.a)==b){oB(a.a);return true}return false}function OEb(a){if(a.b.d.d.isEmpty())return a.a.c;return uzb(a.a.c,a.b)}function r2(a){if(a.d){he(a.d.j==(tbc(),Rac)||a.d.j==E9b);m2(a,a.d)}Z1(a)}function Ns(a){if(a<0)throw BV(new Nmc(pGc+a+") must not be negative"));}function t2(a,b){ce(b,"the error manager cannot be null");a.k=new isb(b)}function XEb(a,b){var c;c=hHb(a.a,b);if(!c)return null;return TAb(c,a.b)}function H1b(a,b){he(P1b(a));he(b.j==(tbc(),Xac));return new i7b(K9b, a,b)}function K1b(a,b){he(P1b(a));he(b.j==(tbc(),S8b));return new i7b(O9b,a,b)}function j2b(a,b){he(b.j==(tbc(),S8b));he(P1b(a));return new i7b(qbc,a,b)}function Vlb(a){qkb();return a7b((ie(P1b(a),a),new g7b((tbc(),z9b),a)),a)}function zHb(a,b,c){var d;return!!c&&(d=j6b(c,51),!!d&&d.zh())&&Xoc(a,b)}function Mh(a,b,c){var d;be(c);d=c;return!d.isEmpty()&&Yh(a,b).addAll(d)}function znc(a,b,c){var d;d=xnc(a);Lnc(a,d);d.i=c?8:0;d.f=b;d.e=c;return d}function Zx(a,b){var c;c=false;while(b.Hd())c=c|a.remove(b.Id()); return c}function $7b(a){var b;if(!a.a)throw BV(new yBc);b=a.a;a.a=a.a.d;return b}function sD(a){var b,c,d;b=a&KGc;c=a>>22&KGc;d=a<0?LGc:0;return uD(b,c,d)}function Toc(a,b){var c,d;c=(SEc(a),a);d=(SEc(b),b);return c==d?0:c 0"));return a}function gqc(){throw BV(new Rpc("FileSystems.getDefault not implemented"));}function FEc(){FEc=aW;new JEc;new HEc("ISO-LATIN-1");new HEc("ISO-8859-1")}function U3(){U3=aW;npc("ABCDEFGHIJKLMNOPQRSTUVWXYZ$");npc("_$");T3=new $4}function Y1(a){a.L.pd!= (k5(),h5)&&!!a.X&&Enb(a.X,uIc,true);return new vsb}function ZA(a){var b;if(!nB(a.a))return true;b=pB(a.a);return b==59||b==44}function zbb(a,b){var c;if(!b.b){c=T1b(b.ri());c7b(c,b);U5b(b,c);q2(a.a,c)}}function fLb(a,b){var c;c=TJb(a.a,(tbc(),z9b));U5b(c,jKb(a.a,b.a));return c}function Ilb(a){qkb();return a.j==(tbc(),Pac)||a.j==Rac||a.j==S8b||a.j==kac}function Qub(a){if(!a.c)return false;return h6b(a.c,65)!=0||h6b(a.c,43)!=0}function W4(a){switch(a.f){case 0:case 1:return false;default:return true}} function $5b(a,b){ie(!a.g,"Node has existing properties.");a.g=b.g;return a}function D6b(a){var b,c;c=a.b;for(b=a.b;b;b=b.d)b.e=null;a.b=null;return c}function L6b(a){var b;b=F6b(a,a.g,67);b!=a.g&&(a.g=b);a.g=new J7b(67,1,a.g)}function Q6b(a){var b;b=F6b(a,a.g,37);b!=a.g&&(a.g=b);a.g=new J7b(37,1,a.g)}function X6b(a){var b;b=F6b(a,a.g,30);b!=a.g&&(a.g=b);a.g=new J7b(30,1,a.g)}function Cjc(a){var b;if(!a.a)return null;b=a.a.fj();return!b?null:b.ij()}function Rrc(a,b){var c,d;c=b.ce();d=a.Lj(c);return!!d&& zBc(d.de(),b.de())}function r1b(a,b){ie(v6b(a),a);ie(P1b(b),b);return new i7b((tbc(),z8b),a,b)}function z1b(a,b){ie(P1b(a),a);ie(P1b(b),b);return new i7b((tbc(),c9b),a,b)}function DBc(a,b){var c;c=qgb(a.a,b);if(c==null)throw BV(new xBc);return c}function Nfc(a,b){var c;c=new e8b((tbc(),mac),"");c.k=b;U5b(a.b,c);return c}function Rbb(a,b,c,d){be(a);be(b);be(c);this.a=a;this.c=b;this.b=c;this.d=d}function fk(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d}function xpb(){wpb(this);this.d= (ub(),ub(),tb);this.e=this;this.c=(null,tb)}function vtc(a){htc(this);MEc(a>=0,"Initial capacity must not be negative")}function Y9(a){be(a);this.a=a;this.c=new utc;this.b=new utc;this.f=new l3(a)}function Ocb(a,b,c){this.f=new utc;this.g=new ezc;this.a=a;this.c=b;this.i=c}function $X(a,b,c){YCc(a.d,new cY(c,b))&&(b==(lZ(),iZ)?++a.c:b==kZ&&++a.e)}function BB(a,b,c){c||(a.a+=",\n",a);a.a+='"';a.a+=""+b;a.a+='"';a.a+=":"}function XEc(a,b,c){if(a<0||b>c||bb)throw BV(new Nmc("Index: "+a+", Size: "+b));}function me(a,b,c){if(!a)throw BV(new Ync(re(b,pD(kD(kT,1),KFc,1,5,[c]))));}function Zd(a,b,c){if(!a)throw BV(new dhb(re(b,pD(kD(kT,1),KFc,1,5,[c]))));}function mD(a,b,c,d,e,f){var g;g=nD(e,d);e!=10&&pD(kD(a,f),b,c,e,g);return g}function $1b(a,b){he(a.j==(tbc(),Yac));he(!a.b);he(P1b(b));V5b(a,b);return a}function GX(a,b){var c;b.j==(tbc(),p9b)?(c=e6b(b),0!=c&&YX(VGc+c,b)):eX(a,b)}function M9(a,b,c,d){var e;b.j==c&&d.add(b);for(e=b.b;e;e= e.d)M9(a,e,c,d)}function Vcc(a,b,c,d){if(!Lbc(a.b,b.b,c,d))return false;return Wcc(a,b,c,d)}function q5b(a,b,c){if(C2b(a.a,b,c)){a.e=true;return true}else return false}function z5b(a,b,c){if(F2b(a.a,b,c)){a.e=true;return true}else return false}function C5b(a,b,c){if(x2b(a.a,b,c)){a.e=true;return true}else return false}function y2b(a,b){if(V2b(a).isEmpty()){H3b(a,b,rFc);return true}return false}function MBb(a,b){sAb();if(!a)return b;else if(!b)return a;return FBb(a,b)}function YEb(a){var b;he(a.a.f); return b=Li(Bi(a.a.D,zHc,false)),!b?null:b.b}function BJb(){yJb();return pD(kD(KO,1),PFc,144,0,[sJb,tJb,uJb,vJb,wJb,xJb])}function pdb(){ndb();return pD(kD(gL,1),PFc,160,0,[hdb,kdb,idb,jdb,mdb,ldb])}function Hhc(a,b){return Nhc(a,pD(kD(nS,1),MLc,24,0,[b,Shc(a,(zhc(),Sgc))]))}function lp(a,b){return new Px(pD(kD(SU,1),iGc,50,0,[(ym(a,b),new Vq(a,b))]))}function SBc(a,b){var c;c=new uCc;c.c=true;c.d=b.de();return TBc(a,b.ce(),c)}function Z1(a){var b,c;for(c=new Rtc(a.c);c.a=b)throw BV(new Nmc("Index: "+a+", Size: "+b));}function adb(a,b){var c;!a.k&&(a.k=new utc);c=new edb(b,a);jtc(a.k,c);return c}function qD(a,b){lD(b)!=10&&pD(pb(b),b.Rj,b.__elementTypeId$,lD(b),a);return a}function Iyb(a){var b;b=new SAc;Xc(b,a.C.keySet());Xc(b,new mrc(a.D));return b}function Gkb(a){qkb();while(!!a&&!(a.j==(tbc(),Rac)||a.j==E9b))a= a.e;return a}function PLb(a,b){var c;c=YJb(a.a,(tbc(),aac),b.a);hKb(c,b.b.b,b.b.a);return c}function N0(a){return a.j==(tbc(),z8b)&&y6b(a.b,kIc)&&(a.b?a.b.f:null).j==ebc}function w4b(a){return a.e&&((a.a.a&4096)!=0||(a.a.a&sIc)!=0||(a.a.a&tIc)!=0)}function fE(a){return a!=null&&(typeof a===jFc||typeof a===mFc)&&!(a.Sj===fW)}function U1(a,b){a.$=new G5(pD(kD(EN,1),KFc,187,0,[new asb((W6(),_o(V6))),b]))}function Z4(){V4();return pD(kD(RJ,1),PFc,124,0,[M4,N4,O4,Q4,P4,R4,S4,T4,U4])}function pW(){pW=aW; mW=new qW("NONE",0);oW=new qW("OTI",1);nW=new qW("NTI",2)}function q5(){q5=aW;o5=new r5(UGc,0);n5=new r5("CHECK",1);p5=new r5("STRIP",2)}function MCc(){MCc=aW;ICc=new NCc("All",0);JCc=new RCc;KCc=new TCc;LCc=new WCc}function pcb(a){this.c=new wcb(this);this.a=a;this.b=!a.o?new SAc:new UAc(a.o)}function ZLb(a,b,c){a.b.ph("Missing type declaration.",!a.g?null:a.g.Og(),b,c)}function o3b(a,b){if(b.d){!a.d&&(a.d=new V3b);a.d.o|=(!b.d?null:moc(b.d.o)).a}}function kDc(a,b,c){if(b==null||c==null)throw BV(new Eoc); return qqc(a.a,b,c)}function Rbc(a,b,c){var d;d=c?new mgc(true):new mgc(false);return Lbc(a,b,0,d)}function SMb(a,b,c,d,e){var f,g;if(d){g=a.j.g;f=INb(a.j);A4b(a.e,d,b,c,g,f,e)}}function u8(a,b){while(iE(be(a.e))!==iE(b))a=be((qkb(),Hkb(a.e,pkb)));return a}function Kx(a,b){var c,d,e;e=0;for(d=a.Od();d.Hd();){c=d.Id();b[e++]=c}return b}function Oq(a){var b;a=a>2?a:2;b=eoc(a);if(a>b){b<<=1;return b>0?b:nGc}return b}function Eb(a){var b;if(!Db(a))throw BV(new yBc);a.i=1;b=a.g;a.g=null;return b}function Gh(a){var b; if(!Fh(a))throw BV(new yBc);a.f=1;b=a.e;a.e=null;return b}function S1b(a){var b;he(a.j==(tbc(),E9b));b=new e8b(hac,oJc);U5b(b,a);return b}function a7b(a,b){B6b(a,40,j6b(b,40));U6b(a,j6b(b,51));a.i=b.i;a.c=b.c;return a}function G5b(a,b){if(!a.a.j){a.e=true;I3b(a.a,b);return true}else return false}function RVb(a){switch(a){case 48:return 0;case 49:return 1;default:return-1}}function $rb(a){if(a.length<=100)return a;return mpc(a,_rb(a,0),_rb(a,97))+JHc}function qzb(a){Ud(!(a==a.a.v||a==a.a.g));return a.j? oFc:a.i.size()+a.e.size()}function Zv(a,b){if(!cE(b,50))return false;return a.contains((be(b),new gw(b)))}function jv(a){return cE(a,118)?bo(a):cE(a,172)?a.a:cE(a,80)?new Hv(a):new wv(a)}function _uc(a){Wuc();MEc(a.d.c+a.e.c==0,"map is not empty");return new Cvc(a)}function uC(a){hA(this);this.f=!a?null:lA(a,a.tf());this.e=a;iA(this);this.uf()}function W8(a){this.e=a;this.c=new oAc;this.b=new Ct;this.a=new Lq;this.d=new Ct}function lPb(a,b,c,d,e,f){ue.call(this,a,b);this.d=c;this.c=d;this.b=e;this.a= f}function Mhb(a,b,c){Khb(this);this.e=false;this.g=a;b?this.f=this:this.f=c.f}function FEb(a,b){!!b&&(a.a=b.Lh()==2&&b.Oh().size()==1?Us(b.Oh().Od()).d:null)}function kuc(a,b,c,d){var e;d=(Jxc(),!d?Gxc:d);e=a.slice(b,c);luc(e,a,b,c,-b,d)}function $d(a,b,c,d){if(!a)throw BV(new dhb(re(b,pD(kD(kT,1),KFc,1,5,[c,d]))));}function oe(a,b,c,d){if(!a)throw BV(new Ync(re(b,pD(kD(kT,1),KFc,1,5,[c,d]))));}function JOb(a,b){a.a.ph(NMc+r8b(jNc,pD(kD(kT,1),KFc,1,5,[b])),a.b.Og(),a.d,a.c)}function KOb(a,b){a.a.ph(NMc+ r8b(bNc,pD(kD(kT,1),KFc,1,5,[b])),a.b.Og(),a.d,a.c)}function LOb(a,b){a.a.ph(NMc+r8b(eNc,pD(kD(kT,1),KFc,1,5,[b])),a.b.Og(),a.d,a.c)}function MOb(a,b){a.a.ph(NMc+r8b(iNc,pD(kD(kT,1),KFc,1,5,[b])),a.b.Og(),a.d,a.c)}function Bdb(){zdb();return pD(kD(iL,1),PFc,146,0,[xdb,ydb,wdb,sdb,vdb,tdb,udb])}function Nvb(){Lvb();return pD(kD(DN,1),PFc,142,0,[Gvb,Hvb,Ivb,Evb,Jvb,Kvb,Fvb])}function Zwb(){Zwb=aW;Ywb=new $wb("","",(_n(),_n(),$n),(null,$n),(So(),So(),Ro))}function q4(){q4=aW;o4=new r4(UGc,0);p4=new r4("ON", 1);n4=new r4("AGGRESSIVE",2)}function XD(){XD=aW;TD=uD(KGc,KGc,524287);UD=uD(0,0,MGc);VD=sD(1);sD(2);WD=sD(0)}function Oqc(a){var b;Xxc(a.e,a);QEc(a.b);a.c=a.a;b=a.a.Id();a.b=Nqc(a);return b}function npc(a){var b,c;c=a.length;b=mD(lE,uFc,47,c,15,1);Zoc(a,0,c,b,0);return b}function ntc(a,b,c){for(;c0)return oFc;if(DV(a,rFc)<0)return rFc;return RV(a)}function PD(a){if(HD(a,(XD(),WD))<0)return-DD(KD(a));return a.l+a.m*NGc+ a.h*OGc}function QHb(a){he(a.a!=(WHb(),VHb));if(a.a==THb)return null;a.a=THb;return a.c}function Syb(a){he(a.d!=(gzb(),fzb));if(a.d==dzb)return null;a.d=dzb;return a.e}function sab(a){var b;he(a.j==(tbc(),kac));b=a.e;be(a.e);C6b(a.e,a);Y5b(b,D6b(a))}function Yfb(a,b,c){be(a);Ud(a.j==(tbc(),K9b)||Blb(a));this.a=a;this.c=b;this.b=c}function BHb(a,b,c,d,e){e==(wFb(),sFb)&&(e=uFb);return new xHb(a,b,c,d,1,e,false)}function CHb(a,b,c,d,e){e==(wFb(),sFb)&&(e=uFb);return new xHb(a,b,c,d,2,e,false)}function Wd(a, b,c){if(!a)throw BV(new dhb(re(b,pD(kD(kT,1),KFc,1,5,[nnc(c)]))));}function Xd(a,b,c){if(!a)throw BV(new dhb(re(b,pD(kD(kT,1),KFc,1,5,[moc(c)]))));}function je(a,b,c){if(!a)throw BV(new Ync(re(b,pD(kD(kT,1),KFc,1,5,[moc(c)]))));}function E7b(a){var b;if(!a.a.a)throw BV(new yBc);b=a.a.a;a.a.a=a.a.a.e;return b}function kSb(a){var b;b=null;pUb(a,(YXb(),jWb))&&(b=(aSb(a,jWb),cUb(a)));return b}function Vjb(a){var b;b=a.f;he(!!b&&(qkb(),b.j==(tbc(),Rac)||b.j==E9b));p2(a.c,b)}function $Rb(a,b){var c,d;for(d= b.b.Od();d.Hd();){c=d.Id();!c.b&&mSb(a,b.a,c.c)}}function EAc(a,b){var c;if(DAc(a,b)){c=b.ce();nAc(a.a,c);return true}return false}function Uq(a,b){var c,d;be(b);for(d=b.Od();d.Hd();){c=d.Id();a.gf(be(c))}return a}function loc(a,b){var c;if(b==10||b<2||b>36)return""+a;return c=a,c.toString(b)}function Mp(a){En();var b;if(cE(a,134)&&!cE(a,246)){b=a;return b}return Np(a.Od())}function M1(a){if(!a.k)return pD(kD(xL,1),hHc,65,0,[]);return _X(a.k.a,(lZ(),kZ))}function A1(a){if(!a.k)return pD(kD(xL,1), hHc,65,0,[]);return _X(a.k.a,(lZ(),iZ))}function NEc(a,b){if(!a)throw BV(new dhb(ZEc("Enum constant undefined: %s",b)));}function IVb(a,b,c,d){this.b=new bBc;this.c=a;this.a=b;this.e=c;this.d=d;this.f=0}function Vb(){this.a=npc("0123456789_.");this.a.sort(bW(Euc.prototype.Nj,Euc,[]))}function $ob(){_ob.call(this,"REGISTER_BOOLEAN",0,"goog.tweak.registerBoolean")}function oib(a,b){var c;Ud(b.indexOf(".")==-1);c=kib(a,b,false);return!c?null:c.c}function rib(a,b){var c;he(b.indexOf(".")==-1);c=kib(a, b,false);return!c?null:c.e}function Cib(a,b){Ud(b.indexOf(".")==-1);return!uib(a,b,false)&&!!a.r&&Dib(a.r,b)}function SCb(a,b,c,d){if(!b)return null;return dDb(a,(QJc&b.a)==VJc?b.i:null,c,d)}function U4b(a){if((a.a.a&8)!=0)return false;else{a.a.a|=8;a.e=true;return true}}function Twb(a,b){var c;c=_nc(b.length,a.length);if(c!=0)return c;return Toc(a,b)}function Cfb(a,b){var c;c=Dfb(a,b);if(!c||PAb(c,(jeb(),Kdb)))return null;return c}function zLb(a,b){var c;c=TJb(a.a,(tbc(),Oac));!!b.a&&U5b(c,jKb(a.a, b.a));return c}function b1b(a,b){var c,d;c=Z0b(a);b.b=c;if(c==116||c==84){d=Z0b(a);b.c=d}return b}function g6b(a,b){var c,d;d=a.b;c=0;while(d){if(b==d)return c;d=d.d;++c}return-1}function nTb(a){var b,c;c=fVb(a.j,0).b.b;b=bSb(a);return new yZb(new r0b(c,a.g),b)}function xTb(a){var b,c;c=fVb(a.j,0).b.b;b=oSb(a);return new FZb(new r0b(c,a.g),b)}function lgc(a,b,c,d){var e;e=nqc(a.a,b);!e&&(e=new xzc);Fzc(e.d,c,d);qqc(a.a,b,e)}function z4b(a,b,c,d,e,f){var g;if(a.b){g=new e4b;g.d=b;a4b(g,c,d,e,f);X3b(a.b, g)}}function RC(a){var b,c;if(a.a){c=null;do{b=a.a;a.a=null;c=VC(b,c)}while(a.a);a.a=c}}function SC(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=VC(b,c)}while(a.b);a.b=c}}function Ls(a,b){var c;be(a);be(b);c=false;while(b.Hd())c=c|a.add(b.Id());return c}function De(a,b){var c;SEc(b);c=a[":"+b];NEc(!!c,pD(kD(kT,1),KFc,1,5,[b]));return c}function I8(a,b,c){var d;d=c;while(d.e.j==(tbc(),_9b))d=d.e;T5b(d.e,b,d);q2(a.a,b)}function cmb(a,b,c){qkb();var d;b.Uf(a);if(c.Kd(a))for(d=a.b;d;d=d.d)cmb(d,b,c)} function $Lb(a,b,c,d){a.b.ph(r8b(b,pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),c,d)}function tMb(a,b,c,d,e,f){var g;f?g=PMb(a,b):g=MMb(a,b);SMb(a,c,d,g,e);return g}function eAb(a){if(a.j);else a.e.a.length==0?jtc(a.i,a.a.G):jtc(a.e,a.a.G);return a}function amc(a){if(!a.j){a.j=emc(a);!a.j&&(a.j=new Llc(a.i,io(bmc(a))))}return a.j}function F4b(a){if((a.a.a&37)!=0)return false;else{a.a.a|=1;a.e=true;return true}}function T4b(a){if((a.a.a&32)!=0)return false;else{a.a.a|=32;a.e=true;return true}}function o5b(a){if((a.a.a& 64)!=0)return false;else{a.a.a|=64;a.e=true;return true}}function RNb(a){if((a&57296)!=0)return false;return a==10||a==13||a==8232||a==8233}function lD(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}function Cfc(a){return new _ec(a.d,null,new adc(a.d,a.c,a.e,false),a.g,a.f,a.a,a.b)}function opc(a,b){return b==(sBc(),sBc(),rBc)?a.toLocaleLowerCase():a.toLowerCase()}function Mzb(a){return!a?null:a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()).d:null}function c6b(a){var b,c;for(b=a.b;b;){c= b.d;b.e=null;b.d=null;b.f=null;b=c}a.b=null}function LB(a,b){var c,d,e,f;e=a.a.b;f=b.e.b;c=a.a.a;d=b.e.a;return e==f&&c>=d||e>f}function Syc(a,b){if(!!b&&a.b[b.f]==b){a.b[b.f]=null;--a.c;return true}return false}function x3(a,b){var c;c=a.a.Mg(b);if(c){he(c.j==(tbc(),Rac));be(j6b(c,53))}return c}function QSb(a,b){var c;c=(_n(),new fr);while(sUb(a))dr(c,PSb(a,b));return io(c.a)}function pib(a,b){var c,d;d=(c=jib(a,new SGb(b),false),!c?null:c.a);he(!!d);return d}function Kgb(a,b,c){var d;return new Hgb(!a? null:(d=j6b(a,51),!d?null:d.Og()),a,b,c)}function Qjb(a,b,c){var d;return new Hgb(!a?null:(d=j6b(a,51),!d?null:d.Og()),a,b,c)}function Rlb(a,b){qkb();var c;a.j==(tbc(),E9b)&&b.Pf(a);for(c=a.b;c;c=c.d)Rlb(c,b)}function Slb(a,b){qkb();var c;a.j==(tbc(),E9b)&&b.Of(a);for(c=a.b;c;c=c.d)Slb(c,b)}function Plb(a){qkb();switch(a.f){case 63:case 64:return true;default:return false}}function Zyc(a){var b;++a.a;for(b=a.c.a.length;a.a>>b%31&1)==1}function b6(a,b){var c;for(c=0;c= 0);if(Lsc(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1}function p3(a){return a.c.a.length>BGc.length&&Xoc(BGc,Gmc(a.c,a.c.a.length-BGc.length))}function ixb(a){gxb();typeof console!==GJc&&typeof console.log!==GJc&&console.log(a)}function YV(a,b){typeof window===jFc&&typeof window["$gwt"]===jFc&&(window["$gwt"][a]=b)}function A0b(a,b){sC.call(this,"ConvertionType = "+String.fromCharCode(a)+" class = "+b)}function d8b(a,b){if(null==b)throw BV(new dhb("StringNode: str is null"));a.a=(SEc(b), b)}function de(a,b,c){if(a==null)throw BV(new Goc(re(b,pD(kD(kT,1),KFc,1,5,[c]))));return a}function SJb(a,b,c,d){b.p==(H_b(),e_b)&&(c.a&QJc)==VJc&&(d=UJb(a,(tbc(),Y8b),d));return d}function rx(a){var b,c,d;d=0;for(c=Zk(a).Od();c.Hd();){b=c.Id();d=CV(d,El(b))}return BA(d)}function ioc(a){var b,c;if(a==0)return 32;else{c=0;for(b=1;(b&a)==0;b<<=1)++c;return c}}function Uzb(a,b){var c;if(!a)return b;if(!b)return a;c=JBb(a,b);return 0==c.Lh()?null:c}function rkb(a){var b;for(b=a.b.d;b;b=b.d)if(!Akb(b, (Ie(),Ee)))return false;return true}function PJb(a,b){if(b.d!=a.g){a.g=b.d;(a.g.a&sIc)!=0&&(a.c=true);return true}return false}function Fh(a){he(a.f!=3);switch(a.f){case 2:return false;case 0:return true}return Hh(a)}function Db(a){he(a.i!=3);switch(a.i){case 0:return true;case 2:return false}return Fb(a)}function lAb(a){he(!a.c);he(vqc(a.f.c)==0);return wyb(a.a,a.i,a.e,a.j,a.k,a.d,a.g,a.n,a.b)}function LNb(a){var b;b=HNb(a);if(b==47)return true;else{a.q[a.r++]=b;--a.b;return false}}function z2b(a, b){if(!n3b(a))return true;!a.b.a&&(a.b.a=new utc);jtc(a.b.a,b);return true}function A2b(a,b){if(!n3b(a))return true;if(a.b.b!=null)return false;a.b.b=b;return true}function D2b(a,b){if(!n3b(a))return true;!a.b.g&&(a.b.g=new utc);jtc(a.b.g,b);return true}function E2b(a,b){if(!n3b(a))return true;if(a.b.f!=null)return false;a.b.f=b;return true}function G2b(a,b){if(!n3b(a))return true;if(a.b.k!=null)return false;a.b.k=b;return true}function pob(a,b,c){if(a.a)oob(a,c);else{!!b&&dkb(a.b,b,new uob);!!c&& dkb(a.b,c,new uob)}}function Vnb(a,b,c){var d;if(a.j){d="AST hashCode after "+b+": "+gFc(B2(a.b,c));n1(a.b,d)}}function A4b(a,b,c,d,e,f,g){var h;if(a.b){h=new h4b;h.d=b;h.a=g;a4b(h,c,d,e,f);Z3b(a.b,h)}}function qMb(a,b,c,d){var e;e=$5b(new f8b((tbc(),Xac),b,c,d),a.n);O6b(e,b.length);return e}function Nbc(a,b){var c;if(cE(b,147)){c=b.b;if(!!c&&c.Oi())return Nbc(a,c)}return b.kj()}function jyb(){jyb=aW;iyb=new _6("JSC_USELESS_BLOCK",(lZ(),jZ),new iqc("Useless block."))}function BZ(){BZ=aW;AZ=new _6("JSC_USELESS_CODE", (lZ(),kZ),new iqc("Suspicious code. {0}"))}function KZ(){KZ=aW;JZ=new _6("JSC_UNREACHABLE_CODE",(lZ(),kZ),new iqc("unreachable code"))}function gxb(){gxb=aW;fxb=new p6(pD(kD(eK,1),KFc,5,0,[new _6(pKc,(lZ(),iZ),new iqc(""))]))}function pgb(){pgb=aW;ngb=pEc("^(\\w+(\\.\\w+)*)\\s*[:= ]");ogb=pEc("^\\s*(.*?)(\\\\?)$")}function E3(a,b,c){this.e=new utc;this.d=new utc;this.a=a;this.f=b;!!a.Rg()&&hrb(a.Rg(),c)}function R_(a,b){this.i=new Lpc;he(!!b);this.o=a<=0?oFc:a;this.j=false;this.p=b;this.g=null}function Y_(a){if(a.n> 0){a.e=a.i.a.length;a.f=a.b;zpc(a.i,10);a.n=0;++a.k;a.b=a.i.a.length}}function tKb(a){if(a>=48&&a<=49)return a-48;throw BV(new Ync(HMc+String.fromCharCode(a)));}function yKb(a){if(a>=48&&a<=55)return a-48;throw BV(new Ync(HMc+String.fromCharCode(a)));}function E4b(a){if((a.a.a&262144)!=0)return false;else{a.a.a|=262144;a.e=true;return true}}function zAb(a){var b;b=a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()):null;return!b?null:b.b}function mUb(a){var b,c;c=fVb(a.j,0).b.b;b=lUb(a,1);fSb(a);return new g0b(new r0b(c, a.g),b)}function S9(a){var b,c;c=E6b(a.d);b=E6b(a.d);if(xlb(b)){a.d=b;T9(a,c.ri())}else V5b(a.j,b)}function gc(a,b){var c;c=Vtc(a.c,b);if(c>=0)return true;else{c=~c-1;return c>=0&&b<=a.b[c]}}function M5(a,b,c){var d;d=b.Vg()-c.Vg();if(d!=0)return d;return nqc(a.a,c).a-nqc(a.a,b).a}function r_(a,b){var c;G$(a.c,"{");for(c=b.b;c;c=c.d){c!=b.b&&a.c.zg();a.Gg(c,4)}G$(a.c,"}")}function Ubb(a,b){var c,d,e;e=a;for(c=a,d=c.e;d!=b;c=d,d=c.e)Vbb(d)&&c!=d.b&&(e=d);return e}function Ycb(a,b){var c,d,e;e=w1(a.a.a); d=e.bg(b);if(d)return true;c=e.cg(b);return c!=null}function WBc(a,b){var c,d;c=1-b;d=a.a[c];a.a[c]=d.a[b];d.a[b]=a;a.b=true;d.b=false;return d}function zgb(a,b,c){var d;d=new Kpc;d.a+="@";d.a+=b;d.a+=" {";ygb(a,d,c);d.a+="}";return d.a}function mTb(a){var b;b=(_n(),new fr);while(!pUb(a,(YXb(),tWb)))dr(b,VTb(a));return io(b.a)}function L5b(a){var b;b=t2b(a,false);b.j==(o4b(),j4b)&&(b.j=null);return new J5b(b,a.c,true)}function F1b(a,b,c){he(a.j==(tbc(),mac));he(b.j==Eac);he(c.j==S8b);return new j7b(E9b, a,b,c)}function Kh(a,b,c){var d,e;d=(e=a.f,!e?a.f=new dj(a,a.c):e).Xd(b);return!!d&&d.contains(c)}function cib(a,b,c){Ud(b.length!=0);Ud(b.indexOf(".")==-1);Ud(!uib(a,b,false));lAc(a.j,b,c)}function bMb(a,b,c,d){a.b.ph(NMc+r8b(b,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),c,d)}function ee(a,b,c,d){if(a==null)throw BV(new Goc(re(b,pD(kD(kT,1),KFc,1,5,[c,d]))));return a}function $lb(a){qkb();var b;b=Zlb(a);if(b==null)throw BV(new Pmc("Unknown op "+a));return b}function s1(a){var b;b=new $nb(a,a.X); a.L._==(k4(),g4)&&Ynb(b,a.R);a.L.q&&(b.j=true);return b}function Xx(a){var b,c,d;b=0;for(d=a.Od();d.Hd();){c=d.Id();b+=c!=null?rb(c):0;b=~~b}return b}function rX(a){var b;b=false;b=!!a.b;b||YX("Expected at least 1 children, but was "+e6b(a),a)}function AA(a){if(!a)throw BV(new Lmc("mode was UNNECESSARY, but rounding was necessary"));}function $bb(){throw BV(new Rpc("FunctionInformationMap.Entry.newBuilder not implemented"));}function hyb(){hyb=aW;gyb=new _6("JSC_UNUSED_LABEL",(lZ(),jZ),new iqc("Unused label {0}."))} function B4(){B4=aW;y4=new C4(UGc,0);z4=new C4("USE_GLOBAL_TEMP",1);A4=new C4("USE_IIFE",2)}function Abc(){Abc=aW;ybc=new $wnd.RegExp("^[a-zA-Z_$][\\w$]*$");zbc=new $wnd.RegExp("\\s")}function Mu(a){this.e=a;this.d=new nzc(Yv(Lh(this.e).size()));this.c=this.e.a;this.b=this.e.c}function Ujb(a,b,c,d){var e,f;e=new Hgb(!b?null:(f=j6b(b,51),!f?null:f.Og()),b,c,d);o2(a.c,e)}function bDb(a,b,c,d){var e;e=cDb(a,b,c,d);return e.Lh()==34&&e.Oh().size()==1?QAb(e,a.a.j):e}function M6b(a,b){var c;c=F6b(a,a.g, 29);c!=a.g&&(a.g=c);!!b&&(a.g=new T7b(29,b,a.g));return a}function xBb(a){var b,c;for(c=a.Od();c.Hd();){b=c.Id();if(b==b.a.M)return false}return true}function $yb(a){var b,c;for(c=a.Od();c.Hd();){b=c.Id();if(HAb(b.a))return true}return false}function _yb(a){var b,c;for(c=a.Od();c.Hd();){b=c.Id();if(IAb(b.a))return true}return false}function $kc(a,b){var c,d;for(d=a.d.Od();d.Hd();){c=d.Id();if(c==b)return true}return false}function Xc(a,b){var c,d,e;SEc(b);c=false;for(e=b.Od();e.Hd();){d=e.Id();c= c|a.add(d)}return c}function Tq(a,b){var c,d,e,f;be(b);for(d=b,e=0,f=d.length;e2)&&YX(_Gc+c,a);for(b=a.b;b;b=b.d)tX(b)}function jX(a){var b,c;zX((tbc(),R9b),a);c=e6b(a);(c<1||c>2)&&YX(_Gc+c,a);for(b=a.b;b;b=b.d)tX(b)}function IX(a){var b,c;zX((tbc(),Lac),a);c=e6b(a);(c<1||c>2)&&YX(_Gc+c,a);for(b=a.b;b;b=b.d)OX(b)}function P6b(a,b){var c;c=m7b(a.i);c==-1&&(c=0);a.i=b<0||c<0?-1:(c&-4096)!=0?b<<12|PGc:b<<12|c&PGc}function xhb(a,b){var c;c=new Kpc;if(a!=null){c.a+=""+a;if(b>0){c.a+= ":";c.a+=b}c.a+=": "}return c.a}function Yzc(a,b){var c;c=a.a.get(b);if(c===undefined)++a.d;else{Ozc(a.a,b);--a.c;Zxc(a.b)}return c}function Dbc(a,b){var c;!!b&&(c=F6b(a,a.g,78),c!=a.g&&(a.g=c),!!b&&(a.g=new T7b(78,b,a.g)));return a}function QLb(a,b,c){var d,e,f;d=TJb(a.a,b);for(f=c.Od();f.Hd();){e=f.Id();U5b(d,jKb(a.a,e))}return d}function FD(a,b){var c,d,e;c=a.l+b.l;d=a.m+b.m+(c>>22);e=a.h+b.h+(d>>22);return uD(c&KGc,d&KGc,e&LGc)}function OD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+ (d>>22);return uD(c&KGc,d&KGc,e&LGc)}function BEc(a,b){var c=!b&&console.groupCollapsed||console.group||console.log;c.call(console,a)}function B2b(a,b){a.a|=4096;if(!n3b(a))return true;if(a.b.c!=null)return false;a.b.c=b;return true}function r2b(a){var b;if(!n3b(a))return null;!a.b.d&&(a.b.d=new utc);b=new $3b;jtc(a.b.d,b);return b}function tA(a){var b;if(a!=null){b=a[yGc];if(b)return b}return gE(a,TypeError)?new Foc(a):new vC(a)}function rSb(a){var b,c;c=fVb(a.j,0).b.b;aSb(a,(YXb(),oWb));b=sSb(a); return new gYb(new r0b(c,a.g),b)}function Dqb(a,b,c){YW(a.a,b);YW(a.a,c);Gqb(a,b,c);Eqb(a,c);lW(a.b._)&&jvb(new kvb(a.b),b,c);Fqb(a,b)}function dGb(a,b,c){if(Bi(a,c,false))return Li(Bi(a,c,false));else if(b)return WEb(b,c);return null}function g5b(a,b){if(!((a.a.a&IKc)!=0||a3b(a.a))&&A3b(a.a,b)){a.e=true;return true}else return false}function bw(b,c){be(b);try{return b.Xd(c)}catch(a){a=AV(a);if(cE(a,69))return null;else throw BV(a);}}function Asc(a,b){if(b==null)return false;while(a.a!=a.b)if(nb(b, btc(a)))return true;return false}function Nqc(a){if(a.a.Hd())return true;if(a.a!=a.d)return false;a.a=new Jzc(a.e.d);return a.a.Hd()}function A3b(a,b){var c;!a.d&&(a.d=new V3b);if(a.d.k)return false;a.d.k=(En(),c=b,Mp(c));return true}function F3b(a,b){var c;!a.d&&(a.d=new V3b);if(a.d.p)return false;a.d.p=(En(),c=b,Mp(c));return true}function Pb(a,b){var c;for(c=b.length-1;c>=0;c--)if(!Hc(a,b.charCodeAt(c)))return false;return true}function Oec(a){var b,c;c=a.b.a;if(c){b=c.b?c.b.f:null;if(!b||h6b(b, 30)==0)return e6b(c)}return oFc}function $Dc(a){var b,c;if(a.b)return a.b;c=a.d;while(c){b=c.b;if(b)return b;c=c.d}return ADc(),xDc}function nnc(a){var b;if(a<128){b=(pnc(),onc)[a];!b&&(b=onc[a]=new bnc(a));return b}return new bnc(a)}function ynb(a){var b;he(a.j==(tbc(),Rac));b=j6b(a,51);if(cE(b,191))return erb(b),b.d.length;return 0}function jEc(a){a.e=hW(a.d,lpc(a.c,a.a));a.b=true;if(a.e){a.a+=a.e[0].length;return true}return false}function NRb(a){HRb();switch(a){case dIc:case cIc:case EHc:case bIc:return true; default:return false}}function aSb(a,b){var c;c=oSb(a);if(c.c!=b){GUb(a,c,GNc,pD(kD(kT,1),KFc,1,5,[b]));return null}return c}function Ykb(a){qkb();var b,c;c=null;while(c==null&&!!a){c=(b=j6b(a,51),!b?null:b.Og());a=a.e}return c}function Ygb(a){var b,c,d,e,f;f=new ezc;for(c=a.a,d=0,e=c.length;d=0,"Negative initial capacity");MEc(b>=0,"Non-positive load factor");uqc(this)}function Wnc(a,b){if(ab)return 1;if(a==b)return 0;return isNaN(a)?isNaN(b)?0:1:-1}function $v(a,b){var c;if(a===b)return true;else if(cE(b,49)){c=b;return Wx(To(a),c.Wd())}return false}function qtc(a,b){var c;c=ntc(a,b,0);if(c==-1)return false;REc(c, a.a.length);wEc(a.a,c,1);return true}function Isc(a){var b;b=a.a[a.b];if(b==null)return null;a.a[a.b]=null;a.b=a.b+1&a.a.length-1;return b}function Zmc(a){if(Xoc(typeof a,nFc))return true;return a!=null&&a.$implements__java_lang_CharSequence}function jMb(a,b,c,d){if(b==(CNb(),mNb)||b==oNb||b==nNb)return new aNb("",b);return iMb(a,b,c,true,d)}function Reb(a,b){if(b.j==(tbc(),mac)&&Xoc(b.ri(),kIc)&&xib(a.a)){eib(a.b.k,b);return true}return false}function hHb(a,b){var c;c=kHb(a,b);if(!c)return null; else if(!c.b&&!!a.p)return XEb(a.p,b);return c.b}function Rjb(a,b){var c;!b&&!!a.i&&a.i.rh(a);c=Isc(a.k);!c&&(c=Msc(a.n).d);qkb();Qyc(hkb,c.j)&&Msc(a.b)}function hKb(a,b,c){var d,e;if(n7b(a.i)==-1){e=b.b+1;P6b(a,e);d=b.a;a.i=s7b(n7b(a.i),d);O6b(a,c.c-b.c)}}function oq(a,b,c){var d,e;return b!=null&&c!=null&&(e=bw((d=a.c,!d?a.c=new dz(a):d),b),!!e&&aw(e,c))}function wB(a,b,c,d){var e,f;he(b>=0);he(c>=0);a.f=new LA(b,c);e=new TA;f=cC(d);PA(e,f);SA(e,new DB(a))}function mqc(a,b,c){var d,e;for(e=c.Od();e.Hd();){d= e.Id();if(a.Fj(b,d.de()))return true}return false}function Yuc(a){Wuc();var b,c,d;d=0;for(c=a.Od();c.Hd();){b=c.Id();d=d+(b!=null?rb(b):0);d=d|0}return d}function $Tb(a){var b,c;c=fVb(a.j,0).b.b;aSb(a,(YXb(),yXb));b=CSb(a,1);return new Q_b(new r0b(c,a.g),b)}function ff(a,b){var c,d;be(b);c=mf(a.c,a,b);d=new utc;while(Db(c))jtc(d,Eb(c));return Wuc(),new zxc(d)}function KD(a){var b,c,d;b=~a.l+1&KGc;c=~a.m+(b==0?1:0)&KGc;d=~a.h+(b==0&&c==0?1:0)&LGc;return uD(b,c,d)}function DX(a,b){var c;zX((tbc(),Yac), b);EX(b);c=e6b(b);(c<0||c>1)&&YX(aHc+c,b);!!b.b&&!b.b.d&&eX(a,b.b)}function k6(a,b){var c,d;for(d=b.b.Od();d.Hd();){c=d.Id();if(!a.b.contains(c))return false}return true}function aab(a){var b,c;b=C1b(new O7b(a));c=F6b(b,b.g,66);c!=b.g&&(b.g=c);b.g=new J7b(66,1,b.g);return b}function TUb(){TUb=aW;SUb=new UUb("NORMAL",0);RUb=new UUb("GENERATOR",1);QUb=new UUb("ASYNCHRONOUS",2)}function OGb(){OGb=aW;LGb=new PGb("CONSTANT",0);MGb=new PGb("OPTIONAL",1);NGb=new PGb("REQUIRED",2)}function Apb(){Apb=aW;zpb= new _6("JSC_JSON_UNEXPECTED_TOKEN",(lZ(),iZ),new iqc("Unexpected JSON token"))}function rZ(){rZ=aW;qZ=new _6("JSC_MISSING_PROVIDE",(lZ(),kZ),new iqc("missing goog.provide(''{0}'')"))}function KVb(a){return LVb(a)||($mc==null&&($mc=new RegExp("\\d")),$mc.test(String.fromCharCode(a)))}function ppb(a){npb();var b;b=opb(mpb,a);if(b!=null)return b;throw BV(new sC("Resource not found: "+a));}function eoc(a){var b;if(a<0)return rFc;else if(a==0)return 0;else{for(b=nGc;(b&a)==0;b>>=1);return b}}function El(a){var b, c;b=a.b.de();if(!b||b.a==0){c=a.a.a.a.Xd(a.b.ce());if(c)return c.a}return!b?0:b.a}function myb(a,b){var c;c=a.f.size();return ba.size()?Vs(a.Od(),b):Zx(a,b.Od())}function bBb(a,b){sAb();return IBb(a.a,2,(En(),new Ey(oGb(a.a,b,null,a,null,a.c,(wFb(),uFb)))),null,pAb)}function fq(a,b,c){var d,e;return!b||c==null?null:(e=bw((d=a.c,!d?a.c=new dz(a):d),b),!e?null:bw(e,c))}function cw(b, c){be(b);try{return b.remove(c)}catch(a){a=AV(a);if(cE(a,69))return null;else throw BV(a);}}function Qwb(a,b,c,d){Lwb();Qvb.call(this,a,b,d);this.a=Rwb(a);!c?this.b=(So(),So(),Ro):this.b=Mwb(c)}function jJb(a,b,c,d,e){var f;this.a=lJb(a);this.d=b;this.b=0;this.f=(En(),f=c,Mp(f));this.c=d;this.e=e}function yab(a){qab();this.d=new oAc;this.g=new ezc;this.b=new mzc;this.j=new mzc;this.a=new mzc;this.c=a}function vC(a){hA(this);iA(this);this.backingJsObject=a;a!=null&&$Ec(a,yGc,this);this.f=a==null?qFc: eW(a)}function _Gb(a,b){he(!a.f);he(!a.p);if(qHb(b.a,a))return false;a.p=b;$Gb((he(!b.a.f),b.a),a);return true}function NJb(a,b){var c;if(b){c=JJb(a,b);jzc(a.n,b);if(!PJb(a,c))return bKb(a,b.a,u4b(c.e))}return null}function BD(a){var b,c;c=hoc(a.h);if(c==32){b=hoc(a.m);return b==32?hoc(a.l)+32:b+20-10}else return c-12}function ETb(a){var b;b=(_n(),new fr);while(!pUb(a,(YXb(),gWb))&&!pUb(a,tWb))dr(b,VTb(a));return io(b.a)}function sib(a){var b,c;b=(qkb(),c=Dkb(a.t),!c?null:j6b(c,29));return a.t.j== (tbc(),E9b)&&!!b&&(b.a&2)!=0}function oDb(a,b){MCb();var c,d;if(!a)return false;d=T2b(a,b);c=!d?null:d.a;return!!c&&c.j==(tbc(),o9b)}function h2b(a,b){var c;he(a.j==(tbc(),S8b));he(b.j==Z8b);c=c7b(new g7b(S8b,b),b);return new i7b(hbc,a,c)}function udc(a,b){var c;for(c=a;c;c=c.fj()){c.$i();if(Lbc(c,b,0,new mgc(true)))return true}return false}function Alc(a){var b,c;for(b=0;b=vqc(a.d.n.c))return null;return Fs(new mrc(a.d.n),b)}function qyb(a,b){var c;if(b.a.q.isEmpty())return a;c=pyb(a,b.b);c.g=null; he(!c.d);c.d=null;return lAb(c)}function Psc(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;a.a[b]=a.a[d];b=d}a.a[a.b]=null;a.b=a.b+1&c}function Osc(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;a.a[b]=a.a[d];b=d}a.a[a.c]=null}function ltc(a,b){var c,d;c=b.toArray();d=c.length;if(d==0)return false;vEc(a.a,a.a.length,c);return true}function Xuc(a,b){Wuc();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;e0&&b0){a.k+=c;a.n=b.length-bpc(b,spc(10))}}function Chb(a,b){var c,d,e;for(d=new dtc(a.a);d.a!= d.b;){c=btc(d);e=c.vh(b);if(e!=null)return e}return null}function Fgb(a,b,c){switch(b.f){case 0:return thb(c,a,false);case 1:return thb(c,a,true);default:return null}}function u6b(a){switch(a.j.f){case 29:return a.ri().length!=0;case 26:return u6b(a.b);default:return false}}function bKb(a,b,c){if(!!c&&(c.a&QJc)!=0){a.i=true;Xoc(DPb(a.e),"ts")&&a.d.oh(xLc,a.r,b.b.b+1,b.b.a)}return c}function ZKb(a,b){var c,d,e;e=TJb(a.a,(tbc(),S8b));for(d=b.a.Od();d.Hd();){c=d.Id();U5b(e,jKb(a.a,c))}return e}function $f(a, b){he(!this.b);he(!this.d);Ud(vqc(a.c)==0);Ud(b.d.c+b.e.c==0);Ud(true);this.b=a;this.d=this._d(b)}function Bic(a){Jbc();_ec.call(this,a,null,new _cc(a,null,null),null,null,true,true);this.b.b=this;this.k=this}function vnc(){this.k=qnc++;this.p=null;this.n=null;this.j=null;this.d=null;this.b=null;this.o=null;this.a=null}function SEb(a){return!a.a.q.isEmpty()&&!a.b.d.d.isEmpty()?oGb(a.a.u,a,null,null,null,false,a.a.i):DAb(a.a.r)}function REb(a){return!a.a.q.isEmpty()&&!a.b.d.d.isEmpty()?cBb(oGb(a.a.u, a,null,null,null,false,a.a.i)):a.a.r}function pb(a){return hE(a)?pT:eE(a)?XS:dE(a)?US:bE(a)?a.Qj:oD(a)?a.Qj:a.Qj||Array.isArray(a)&&kD(UI,1)||UI}function Z$(a){return a==95||a==36||(_mc==null&&(_mc=new RegExp(FFc,"i")),_mc.test(String.fromCharCode(a)))}function E9(a,b){return J1b(b2b(a,(me($oc(GJc,spc(46))==-1,qHc,GJc),new e8b((tbc(),mac),GJc))),b,_5b(a,false))}function tz(a,b){var c;if(b===a)return true;else if(cE(b,567)){c=b;return oj(a.Ne(),c.Ne())}else return false}function iOb(a){var b,c,d,e; for(c=nPb(),d=0,e=c.length;d 127)return false}return true}function H4b(a,b){if(!!b&&(a.a.a&37)==0&&(a.a.a&4)==0&&B5b(a,b)){a.a.a|=4;a.e=true;return true}else return false}function wKb(a){switch(a.j.f){case 72:case 73:case 101:case 70:case 71:case 67:return true;default:return false}}function t7(){t7=aW;s7=new _6(iJc,(lZ(),iZ),new iqc("Calls to super cannot be used outside of a constructor."))}function txb(){txb=aW;sxb=new _6("JSC_DUPLICATE_CASE",(lZ(),kZ),new iqc("Duplicate case in a switch statement."))}function J4(){J4=aW; F4=new K4(LIc,0);I4=new K4(MIc,1);G4=new K4(UGc,2);H4=new K4("ON",3);E4=new K4("AUTO",4)}function k4(){k4=aW;h4=new l4(UGc,0);i4=new l4("START",1);j4=new l4("START_AND_END",2);g4=new l4("EVERY_PASS",3)}function myc(a){var b;this.a=(b=a.e&&a.e(),new Tyc(b,tEc(b,b.length),0));this.b=mD(kT,KFc,1,this.a.a.length,5,1)}function g9(a,b){var c,d,e;e=Pkb(b);d=(qkb(),Hkb(b,new mmb((tbc(),E9b))));if(!d)return;c=new r9(a,e);dkb(a.a,d,c)}function Zhc(a,b,c){var d;d=oqc(a.o,b);if(!d){d=new gmc(a,3E3);rqc(a.o,b, d)}_lc(d,c,false);Chc(a,b,c);tqc(a.e,b)}function x9(a,b,c,d){!!d&&d.j==(tbc(),l9b)&&(d=d.e);switch(c.j.f){case 93:y9(a,b,c,d);break;case 94:B9(a,b,c,d)}}function NCb(a,b){if(b.b){ie(b.b.j==(tbc(),S8b),b);jzc(a.i,Kgb(b,FCb,pD(kD(pT,1),tFc,2,6,["","0",""+e6b(b.b)])))}}function gLb(a,b){var c;c=WJb(a.a,(tbc(),B9b),TLb(a,b.d,b),TLb(a,b.b,b),TLb(a,b.c,b));U5b(c,kKb(a.a,b.a));return c}function BSb(a,b,c){var d,e;zsc(a.e,c);pUb(a,(YXb(),bXb))?d=hTb(a):d=CSb(a,b);e=Jsc(a.e);QEc(e!=null);return d}function cTb(a, b,c){var d,e;aSb(a,(YXb(),KWb));e=pSb(a,1);aSb(a,hWb);d=YTb(a);return new ZYb(new r0b(b,a.g),c,e,d)}function f9(a,b){o2(a.a,Kgb(b,(rbb(),pbb),pD(kD(pT,1),tFc,2,6,["Computed property with non-qualified-name key"])))}function nY(a,b){if(h6b(b,94)!=0)throw BV(new Ync(a+"existing scope is improperly marked as deleted:\n"+_6b(b)));}function Op(a){En();be(a);switch(a.length){case 0:return Rx(),Qx;case 1:return new Ey(a[0]);default:return Pp(a)}}function l5b(a){if(!((a.a.a&IKc)!=0||a3b(a.a))&&(a.a.a&IKc)== 0){a.a.a|=IKc;a.e=true;return true}else return false}function PHb(a,b){var c,d;if(!a)return false;for(d=a.Od();d.Hd();){c=d.Id();if(c.Fh(b))return true}return false}function _c(a,b){var c,d,e;SEc(b);c=false;for(d=a.Od();d.Hd();){e=d.Id();if(b.contains(e)){d.Jd();c=true}}return c}function ad(a,b){var c,d,e;SEc(b);c=false;for(d=a.Od();d.Hd();){e=d.Id();if(!b.contains(e)){d.Jd();c=true}}return c}function Czc(a,b,c){var d,e,f,g;for(e=c,f=0,g=e.length;f=d||b>>=5;b>0&&(c|=32);ypc(a,(HA(),vGc.charCodeAt(c)))}while(b>0)}function gMb(a,b){do{if(b==(CNb(),oNb)||b==mNb||b==nNb){a.i=(eNb(),cNb);return b}b=!a.o?JNb(a.j):fMb(a)}while(true)}function dTb(a,b,c){var d,e;gSb(a,"of");e=pSb(a,1);aSb(a,(YXb(),hWb));d=YTb(a); return new $Yb(new r0b(b,a.g),c,e,d)}function Mz(b,c){var d;try{return Nz(b,c)}catch(a){a=AV(a);if(cE(a,301)){d=a;throw BV(new fhb(d));}else throw BV(a);}}function L0b(a){if(eE(a.a))throw BV(new sC("Double.toHexString is outside the GWT subset"));else throw BV(G0b(a));}function Fmb(a,b){if(a.a)throw BV(new Ync("Normalize constraints violated:\nDuplicate VAR declaration"));q2(a.b,b)}function YX(a,b){throw BV(new Ync(a+". Reference node:\n"+_6b(b)+"\n Parent node:\n"+(b.e?_6b(b.e):" no parent "))); }function VKb(a,b){var c,d,e,f;f=TJb(a.a,(tbc(),w8b));for(e=b.a.Od();e.Hd();){d=e.Id();c=jKb(a.a,d);U5b(f,c)}return f}function x1b(a,b){var c,d;c=i2b((tbc(),Y8b),a);d=F6b(c,c.g,29);d!=c.g&&(c.g=d);!!b&&(c.g=new T7b(29,b,c.g));return c}function jqc(a,b){var c,d;for(c=0;c-129&&a<128){b=a+128;c=(ooc(),noc)[b];!c&&(c=noc[b]=new $nc(a));return c}return new $nc(a)}function bob(a){var b,c;for(c=new Rtc(a.d);c.a=0;c--)if(a.d.getAtIndex(c)==b)return c;return-1}function Qqb(a,b,c){var d; d=a;while(true){if(jAc(d.e,b))return true;if(plb(d.d)||!!d.c&&c){d=d.c;continue}return false}}function M8(a,b,c){H8();var d,e,f;e=j6b(a,29);if(!e){e=j6b(b,29);f=F6b(b,b.g,29);f!=b.g&&(b.g=f)}d=M5b(e);M6b(c,u4b(d))}function rrb(a,b){var c;b.length!=0&&j6b(a,40)==null&&(c=F6b(a,a.g,40),c!=a.g&&(a.g=c),b!=null&&(a.g=new T7b(40,b,a.g)))}function Udc(a,b){var c;c=a.d.Di(b);return c.Ni()||c.Li()||c.Mi()||Shc(c.w,(zhc(),Ogc))==c?null:new Vdc(a.w,c,a.b,a.a)}function Ymc(a,b){Vmc();return hE(a)?Toc(a,b):eE(a)? Wnc((SEc(a),a),(SEc(b),b)):dE(a)?Xmc((SEc(a),a),(SEc(b),b)):a.Td(b)}function ZMb(a){YLb();var b,c;b=new kJb(new mzc,new mzc,(yJb(),sJb),1);c=new YMb(new ONb(a),a,0,null,b,new SNb);return c}function a6b(a,b,c){var d;S6b(b,a.i);O6b(b,a.c);W6b(b,a.k);R6b(b,a.g);if(c){d=j6b(a,29);!!d&&M6b(a,t2b(d,true))}return b}function Fbc(a,b){var c,d,e;if(Hs(b))return a;c=new n8b((tbc(),Dac),a);for(e=b.Od();e.Hd();){d=e.Id();U5b(c,d)}return c}function Ukc(a,b){var c;if(a.isEmpty())return b;if(b.isEmpty())return a; c=(_n(),new fr);Uq(c,a);Uq(c,b);return io(c.a)}function ar(a){En();switch(a.c){case 0:return Rx(),Qx;case 1:return new Ey(Us(new azc(a)));default:return new _q(a)}}function Up(a){En();switch(a.size()){case 0:return Rx(),Qx;case 1:return new Ey(a.Od().Id());default:return new Sx(a)}}function cYb(a){var b;b=a;while(b.p==(H_b(),e_b))b=b.a;switch(b.p.f){case 59:case 61:return true;default:return false}}function Zkc(a){var b,c,d,e;if(a.c!=null)for(c=a.c,d=0,e=c.length;db&&d.Pe(a[f-1],a[f])>0;--f){g=a[f];a[f]=a[f-1];a[f-1]=g}}function $wb(a,b,c,d,e){Zwb();this.e=a;this.b=b;this.c=c?io(c):(_n(),_n(),$n);this.d=d?io(d):(_n(),_n(),$n);this.a=_o(e)}function dsb(a){this.a=new l2b(a);this.c=new irb(a);this.b=new e7b((tbc(),Rac));B6b(this.b,53,this.a);U6b(this.b,this.c)}function egb(a){this.g=Sw(Hw((zm(8,oGc),new Iw)));this.e=new Nq;this.f= Qw(Gw((zm(8,oGc),new Iw)));this.d=new Rsc;this.c=a}function TGb(a){if(!a||!t6b(a))return null;return a.j==(tbc(),mac)?new SGb(a.ri()):new RGb(ho(ef(lf(new oc(46)),k6b(a))))}function NFb(a,b){var c;c=GFb(a,b);return!!c&&(b.a.size()==1||PAb(c.d,(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size())))))}function mLb(a,b){var c;c=TJb(a.a,(tbc(),O9b));U5b(c,jKb(a.a,b.a));U5b(c,kKb(a.a,b.c));!!b.b&&U5b(c,kKb(a.a,b.b));return c}function LLb(a,b){var c,d,e;e=(_n(),new fr);for(d=b.a.Od();d.Hd();){c=d.Id();dr(e,jKb(a.a, c))}return IJb(a.a,Gbc(io(e.a)))}function hOb(a,b){var c,d;P6b(b,n7b(b.i)+a.d);for(d=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();d.Hd();){c=d.Id();hOb(a,c)}}function ck(a){var b;if(a.b){ck(a.b);if(a.b.d!=a.c)throw BV(new $xc);}else if(a.d.isEmpty()){b=a.f.c.Xd(a.e);!!b&&(a.d=b)}}function Py(a){if(!!(!a.a||a.a.isEmpty()&&jAc(a.c.a,a.b)?a.a=kAc(a.c.a,a.b):a.a)&&a.a.isEmpty()){nAc(a.c.a,a.b);a.a=null}}function s3b(a,b){!a.d&&(a.d=new V3b);!a.d.d&&(a.d.d=new mzc);if(kzc(a.d.d,b))return false;else{jzc(a.d.d, b);return true}}function Pqb(a,b){var c,d;c=a;while(c){d=kAc(c.e,b);if(d)return d;if(Xoc(lJc,b)&&Qlb(c.d))return Lqb(c);c=c.c}return null}function Xgb(a,b,c){if(c==b||c!=b&&Huc(a.c[c.c],b.c))return b;else if(b!=c&&Huc(a.c[b.c],c.c))return c;return Wgb(a,b,c)}function zEc(b,c){function d(a){if(!a||a.length==0)return"";return"\t"+a.join("\n\t")}return c&&(c.stack||d(b[IGc]))}function eW(a){var b;if(Array.isArray(a)&&a.Sj===fW)return tnc(pb(a))+"@"+(b=rb(a)>>>0,b.toString(16));return a.toString()}function Zeb(a, b){var c,d,e;he(b.j==(tbc(),mac)||b.j==K9b);c=(qkb(),d=Dkb(b),!d?null:j6b(d,29));e=Vkb(b);Teb(a,e,b,c,false)}function ELb(a,b){var c,d,e;e=UJb(a.a,(tbc(),abc),jKb(a.a,b.b));for(d=b.a.Od();d.Hd();){c=d.Id();U5b(e,jKb(a.a,c))}return e}function Vec(a){var b,c,d;b=(En(),new Ur);for(d=a.A.d.Od();d.Hd();){c=d.Id();Rr(b,Mkc(c,new Kpc).a)}return Np(new Rtc(b.a))}function G2(a){var b,c;for(c=new Rtc(a);c.ac&&(b[c]=null);return b}function Kqb(a, b,c,d){var e;he(b!=null&&b.length!=0);he(kAc(a.e,b)==null);e=new Rub(b,c,a,(vqc(a.e.c),d));lAc(a.e,b,e);return e}function u2b(a,b,c){!a.d&&(a.d=new V3b);!a.d.n&&(a.d.n=new oAc);if(jAc(a.d.n,c))return false;else{lAc(a.d.n,c,b);return true}}function A5b(a,b){if(!!b&&!((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)){w2b(a.a,b);a.e=true;return true}return false}function c1b(a,b){var c;Z0b(a);c=a.b=48&&c<=57){j1b(b,_0b(a));return b1b(a,b)}else throw BV(e1b(a));}function xAb(a, b){if(oFc==a.Lh())return a.e.G;he(!a.Oh().isEmpty()||!a.Jh().isEmpty());return MBb(NHb(a.Oh(),b),NHb(a.Jh(),b))}function Luc(a,b){var c,d;if(a==b)return;Suc(a.a,b.a.length-1);for(c=0;c0)return;a.O=null}function ZTb(a){var b; b=(_n(),new fr);while(oUb(a,0,(YXb(),EWb))||CUb(a)||pUb(a,QWb)||oUb(a,0,eWb))dr(b,YTb(a));return io(b.a)}function _Tb(a){var b;b=(_n(),new fr);while(oUb(a,0,(YXb(),EWb))||CUb(a)||pUb(a,QWb)||oUb(a,0,eWb))dr(b,YTb(a));return io(b.a)}function IJb(a,b){var c,d;!!b.g||$5b(b,a.t);for(d=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();d.Hd();){c=d.Id();IJb(a,c)}return b}function u1b(a){var b,c,d,e,f,g;c=(b=new e7b((tbc(),S8b)),b);for(e=a,f=0,g=e.length;fc)throw BV(new Nmc(xOc+a+yOc+b+", size: "+c));if(a>b)throw BV(new dhb(xOc+a+" > toIndex: "+b));}function so(a){_n();var b,c,d;for(c=0,d=a.length;c0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit= 64;return true}return zGc in new Error}function wAb(a){var b;he(a.Lh()==2&&a.Oh().size()==1);b=OEb(a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()).d:null);return BDb(a.e,b)}function UEb(a){var b,c,d;he(a.a.f);d=(En(),new Ur);for(c=iHb(a.a).Od();c.Hd();){b=c.Id();Rr(d,aFb(b,a.b))}return Np(new Rtc(d.a))}function TEb(a){var b,c,d;d=(En(),new Ur);for(c=iHb(a.a).Od();c.Hd();){b=c.Id();sHb(b.a)&&Rr(d,aFb(b,a.b))}return Np(new Rtc(d.a))}function wGb(a,b){var c,d,e;c=(En(),new Ur);for(e=a.Od();e.Hd();){d=e.Id(); Rr(c,UFb(d,b,null,false,false))}return Np(new Rtc(c.a))}function j8(a,b,c){var d,e;for(e=c.Od();e.Hd();){d=e.Id();d.j==(tbc(),Xac)&&i8(a,b,d);j8(a,b,!d.b?(Wuc(),Wuc(),Vuc):new Y7b(d.b))}}function Myc(a,b){var c,d,e,f,g;c=(d=(e=snc((f=a.Qj,g=f.f,g==YS?f:g)),new Tyc(e,tEc(e,e.length),0)),Nyc(d,a),d);Xuc(c,b);return c}function TTb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=XTb(a);while(AUb(a,b)){d=oSb(a);e=XTb(a);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function q1b(a){var b,c,d,e,f;b=new e7b((tbc(),w8b)); for(d=a,e=0,f=d.length;e=0,"numberToAdvance must be nonnegative");for(d=0;d0)return true;c=Fsc(a.d);if(!c.c)return false;while(!!c&&!!c.a){Zh(a.g,c.a,b);c=c.b}return true}function nib(a,b){var c;c=oib(a,b.a.getAtIndex(0));return!c||b.a.size()==1?c:Lyb(c,(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size()))))}function IC(){var a;if(DC!=0){a=CC();if(a-EC>2E3){EC=a;FC=$wnd.setTimeout(OC, 10)}}if(DC++==0){RC((QC(),PC));return true}return false}function p5b(a,b,c){if(!((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)&&u2b(a.a,c,b)){a.e=true;return true}else return false}function lX(a){var b,c,d;zX((tbc(),Z9b),a);for(b=a.b;b;b=b.d){zX(nac,b);c=vbc(b.j);c!=-1&&(d=e6b(b),c!=d&&YX(WGc+c+XGc+d,b));tX(b.b)}}function IA(a){var b,c,d,e,f,g;f=0;g=0;do{b=Soc(a.a,a.b++);d=(HA(),e=GA[b],e);c=(d&32)!=0;d&=31;f=f+(d<>1);g=a[f];if(gc)d=f-1;else return f}return-e-1}function Ytc(a,b,c){var d,e,f,g;e=0;d=b-1;while(e<=d){f=e+(d-e>>1);g=a[f];if(gc)d=f-1;else return f}return-e-1}function LBc(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Pe(b,f.d);if(c&&d==0)return f;if(d>=0)f=f.a[1];else{e=f;f=f.a[0]}}return e}function mMb(a,b){var c,d;d=false;while(true){c=GNb(a.j);if(c==32)continue;else if(c==b){d=true;break}else break}MNb(a.j,c);return d}function sLb(a,b){var c,d, e;e=UJb(a.a,(tbc(),sac),jKb(a.a,b.b));if(b.a)for(d=b.a.a.Od();d.Hd();){c=d.Id();U5b(e,jKb(a.a,c))}return e}function OHb(a,b){var c,d,e,f;if(!a)return null;c=null;for(e=a.Od();e.Hd();){d=e.Id();if(d.Fh(b)){f=d.Eh(b);c=!c?f:FBb(c,f)}}return c}function $kb(a,b,c){var d;if(b.Kd(a))return true;if(!c.Kd(a))return false;for(d=a.b;d;d=d.d)if($kb(d,b,c))return true;return false}function oj(a,b){var c;if(b===a)return true;if(!cE(b,29))return false;c=b;if(c.size()!=a.size())return false;return a.containsAll(c)} function wib(a,b){var c,d;Ud(b.indexOf(".")==-1);he(a.g);c=kib(a,b,false);if(!c||!c.a||!c.d)return false;return d=DAb(c.d),!!d&&!!d.e}function xGb(a,b){var c,d,e;c=false;for(d=0;d0&&DV(a,128)<0){b=RV(a)+128;c=(Aoc(),zoc)[b];!c&&(c=zoc[b]=new poc(a));return c}return new poc(a)} function _0b(a){var b;b=0;while(a.b0)return $0b(a)}return RV(b)}function XSb(a){var b,c,d;d=fVb(a.j,0).b.b;aSb(a,(YXb(),uWb));c=bSb(a);aSb(a,bXb);b=YSb(a);aSb(a,gWb);return new UYb(new r0b(d,a.g),c,b)}function MSb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;b&&aSb(a,(YXb(),WWb));c=lSb(a);d=gTb(a,1);e=kSb(a);return new rYb(new r0b(f,a.g),b,c,d,e)}function eLb(a,b){var c,d,e;e=pLb(a,b.b,true);V6b(e,(tbc(),mac));d=UJb(a.a,x9b,e);if(b.a){c= pLb(a,b.a,true);V6b(c,mac);U5b(d,c)}return d}function iY(a,b,c){var d,e;(b.j==(tbc(),Pac)||(qkb(),b.j==Rac||b.j==E9b))&&Vf(a.a,b,c,false);d=b.b;e=c.b;while(d){iY(a,d,e);d=d.d;e=e.d}}function d2(a,b,c){var d,e;!a.L&&T1(a,new d4);d=(drb(),new prb((new orb,b),c));_n();new By(be(d));return e=new G3(d),j2(a,e.f,e),x3(e,a)}function Qec(a){var b;if(!a.g)return a.t.b.keySet();else{b=(En(),new Ur);jtc(b.a,be(zHc));Tr(b,a.t.b.keySet());return Np(new Rtc(b.a))}}function OEc(a,b){if(0>a)throw BV(new dhb("fromIndex: 0 > toIndex: "+ a));if(a>b)throw BV(new Omc("fromIndex: 0, toIndex: "+a+wOc+b));}function f2(a){var b;he(c4(a.L));b=(!a.N&&(a.N=new pxb),new utc);if(b.a.length==0)return;a.O=s1(a);Unb(a.O,b);Xnb(a.O,a.r,a.C);a.O=null}function Wkb(a){qkb();var b;for(b=a;true;b=b.b){if(b.j==(tbc(),mac)||b.j==ebc||b.j==_ac)return b;me(b.j==K9b,"Not a getprop node: ",b)}}function vyb(a,b,c,d,e,f,g,h,i){Ud(!e||0!=e.Lh());be(a);this.a=a;this.f=b;this.d=c;this.g=d;this.i=e;this.c=f;this.e=g;this.j=h;this.b=i}function _3b(a,b){if(!a&&!b)return true; if(!a&&!!b||!!a&&!b)return false;return f4b(a.a,b.a)&&d4b(a.c,b.c)&&f4b(a.b,b.b)&&i4b(a.d,b.d)}function GFb(a,b){var c,d;d=b.a.getAtIndex(0);c=Li(Bi(a.g,d,false));if(c)return c;if(a.e){c=Kyb(a.e,d);if(c)return c}return WEb(a.d,d)}function sHb(a){var b,c;if(zHb(a.A,FKc,a.v))return true;if(a.d)for(c=a.d.Od();c.Hd();){b=c.Id();if(sHb(b.a))return true}return false}function F_(b){var c;if(I_(b))try{c=Snc(b);if(JV(c,{l:0,m:0,h:512}))return QV(c)}catch(a){a=AV(a);if(!cE(a,96))throw BV(a);}return NaN}function t6b(a){switch(a.j.f){case 29:return a.ri().length!= 0;case 33:case 99:return true;case 26:return t6b(a.b);default:return false}}function ttc(a,b){var c,d;d=a.a.length;b.lengthd&&(b[d]=null);return b}function wuc(a,b){var c,d;d=a.a.length;b.lengthd&&(b[d]=null);return b}function Lsc(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;Vsc(c=f){Osc(a,b);return-1}else{Psc(a,b);return 1}}function GBb(a,b){var c, d,e,f,g;e=a.b;for(g=(d=(new mrc(b.a)).a.Wd().Od(),new trc(d));g.a.Hd();){f=(c=g.a.Id(),c.ce());e=FBb(e,f)}return e}function t2b(a,b){var c;c=new K3b;c.d=!a.d?null:Q3b(a.d,b);c.b=a.b;c.j=a.j;c.a=a.a;c.i=N3b(a.i,b);c.g=N3b(a.g,b);c.c=a.c;c.f=a.f;return c}function ZRb(a,b){var c;c=(_n(),new fr);dr(c,b?b.a:"");while(pUb(a,(YXb(),iXb))){aSb(a,iXb);b=bSb(a);if(!b)break;dr(c,b.a)}return io(c.a)}function RCb(a,b,c){var d,e,f;f=c.size();if(f==b)return c;d=(_n(),new fr);for(e=0;e=0;d=Muc(b,d-1))e[d]+=1}return e}function T2(a){var b,c,d,e;e=Y1(a.a);try{b=new q3;if(a.a.C){c=0;for(d= a.a.C.b;d;d=d.d)A2(a.a,b,c++,d)}return b.c.a}finally{y2(a.a,e,uIc)}}function Fjb(a,b){var c,d;d=(c=j6b(b.e,51),!c?null:c.Og());if(d!=null&&Xoc(d.substr(0,11)," [synthetic")||(sAb(),false))return;o2(a.a,b)}function Yoc(a,b){SEc(a);if(b==null)return false;if(Xoc(a,b))return true;return a.length==b.length&&Xoc(a.toLowerCase(),b.toLowerCase())}function Tp(a,b,c,d,e,f,g){En();var h,i;i=g.length+6;h=new vtc(i);Xuc(h,pD(kD(kT,1),KFc,1,5,[a,b,c,d,e,f]));Xuc(h,g);return Np(new Rtc(h))}function VX(a,b){var c; qkb();!!b&&(b.j==(tbc(),nbc)||b.j==eac||b.j==d9b)?uX(a,b.j,b):b.j==(tbc(),p9b)?(c=e6b(b),0!=c&&YX(VGc+c,b)):eX(a,b)}function vlb(a){var b;b=a.e;if(b.j==(tbc(),Aac)||b.j==x8b||b.j==Yac&&b.e.j==Aac){if(a.j==Yac&&!!a.b)return false;return true}return false}function Oy(a){var b,c;c=!a.a||a.a.isEmpty()&&jAc(a.c.a,a.b)?a.a=kAc(a.c.a,a.b):a.a;if(!c)return tt(),st;b=c.Wd().Od();return new Xy(a,b)}function Bnb(a){var b,c,d;for(d=Z5b(a.n).Od();d.Hd();){b=d.Id();a.k+=1;a.j+=ynb(b)}for(c=Z5b(a.u).Od();c.Hd();){b= c.Id();a.v+=1;a.t+=ynb(b)}}function K_(a){if(!a.f)throw BV(new Ync("Cannot build without root node being specified"));return J_(a.f,d0(a.c,a.d),a.c,a.g,a.i,a.b,a.a)}function gAb(a,b){if(a.e.a.length!=0||!!a.j)throw BV(new oAb("Cannot add required formal after optional or rest args"));jtc(a.i,b);return a}function ai(a,b,c){return cE(c,211)?new Vk(a,b,c):cE(c,128)?new Uk(a,b,c):cE(c,29)?new Wk(a,b,c):cE(c,51)?bi(a,b,c,null):new fk(a,b,c,null)}function o3(a,b){var c,d;Gpc(a.c,b);c=-1;d=c;while((c=_oc(b, spc(10),c+1))>=0){++a.b;d=c}d==-1?a.a+=b.length:a.a=b.length-(d+1);return a}function MTb(a,b){var c,d,e;e=fVb(a.j,0).b.b;c=NTb(a,b);if(pUb(a,(YXb(),vWb))){aSb(a,vWb);d=CSb(a,1);c=new RYb(new r0b(e,a.g),c,d)}return c}function Ylb(a,b){qkb();var c,d;c=(me($oc(a,spc(46))==-1,qHc,a),new e8b((tbc(),mac),a));if(b){U5b(c,b);a7b(c,b)}d=a7b(B1b(c,nbc),c);return d}function Okb(a){qkb();var b;Vd(!!a&&(a.j==(tbc(),nbc)||a.j==eac||a.j==d9b)||a.j==(tbc(),Eac)||a.j==(tbc(),Z8b),a);b=new utc;Nkb(a,b);return b}function Yjb(b, c){var d;try{Pjb(b,c);b.e=c;Sjb(b,c);Zjb(b,c,null);Rjb(b,false)}catch(a){a=AV(a);if(cE(a,43)){d=a;Xjb(b,d)}else throw BV(a);}}function vu(b,c){var d;d=b.Rd(c);try{return d.Id()}catch(a){a=AV(a);if(cE(a,77))throw BV(new Nmc("Can't get element "+c));else throw BV(a);}}function lnc(a,b,c){LEc(a>=0&&a<=FGc);if(a>=vFc){b[c++]=wFc+(a-vFc>>10&xFc)&yFc;b[c]=zFc+(a-vFc&xFc)&yFc;return 2}else{b[c]=a&yFc;return 1}}function MRb(a){HRb();switch(a.f){case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:return true; default:return false}}function JVb(a){switch(a){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return true;default:return false}}function Tlb(a){switch(a){case 5:case 1:case 3:case 2:return false;case 6:case 4:case 0:return true;default:throw BV(new Ync("unexpected"));}}function wUb(a){var b;b=fVb(a.j,0);switch(b.c.f){case 18:case 2:case 49:case 65:case 54:case 47:return true;default:return HRb(),!!JRb(b.c)}}function V0b(a,b){b.a=b.a.substr(0,0)+"("+b.a.substr(1); if(a.b.k){k1b(a.b,a.b.p-1);b=J0b(a,b,1);b.a+=")"}else{b.a+=")";b=J0b(a,b,0)}return b}function Lhc(a,b,c){var d,e,f;d=new Ofc(a);f=c.length-1;for(e=0;e<=f;e++)b&&e==f?Mfc(d,c[e]):Lfc(d,pD(kD(nS,1),MLc,24,0,[c[e]]));return d.b}function NHb(a,b){var c,d,e,f;if(!a)return null;d=null;for(f=a.Od();f.Hd();){e=f.Id();if(e.Fh(b)){c=e.Dh(b);!!c&&(d=!d?c:FBb(d,c))}}return d}function wLb(a,b){var c,d,e,f;e=(_n(),new fr);for(d=b.a.Od();d.Hd();){c=d.Id();dr(e,jKb(a.a,c))}f=jKb(a.a,b.b);return IJb(a.a,Fbc(f,io(e.a)))} function GGb(a,b){var c,d,e;d=a.b;e=b.b;!d||!e?c=null:vAb(d,e)?c=d:c=null;return new DGb(a.c==b.c?a.c:null,FBb(a.d,b.d),c,HGb(a.a,b.a))}function ne(a,b,c){if(!a)throw BV(new Ync(re('Bad binary operator "%s": expected 2 arguments but got %s',pD(kD(kT,1),KFc,1,5,[b,moc(c)]))));}function Lyb(a,b){var c,d;d=b.a.getAtIndex(0);c=a.C.Xd(d);return!c||b.a.size()==1?c:Lyb(c,(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size()))))}function STb(a){var b,c;b=fVb(a.j,0).b.b;if(pUb(a,(YXb(),bXb))){aSb(a,bXb);c=new M_b(new r0b(b, a.g),vTb(a));aSb(a,gWb)}else c=gUb(a);return c}function KMb(a,b){var c;c=LMb(a,b);if(c)if(nMb(a,(CNb(),uNb))){!a.o?JNb(a.j):fMb(a);VMb(a);b=!a.o?JNb(a.j):fMb(a);return QMb(a,b,c)}return c}function _kc(a,b,c){var d,e,f;f=c-b.size();if(f>0){d=(_n(),new fr);Uq(d,b);for(e=0;e=a.b>>1){d=a.c;for(c=a.b;c>b;--c)d=d.b}else{d=a.a.a;for(c=0;c=a.length)throw BV(new E0b(mpc(c.a,c.d,c.b)));if(b==-2)return d;return a[b]}function z5(a,b){var c;if(cE(b,215)){c=b;c.a&&(a.a=c.a);A5(a,new wtc(new bDc(c.c.a.Jj())))}else{++a.d; qqc(a.e,b,moc(a.d));ZCc(a.c,b);YCc(a.c,b)}}function zub(a,b,c,d,e){var f;f=b.getAtIndex(c);if(c>=d){if(e>4&yFc}return xpc(c,0,c.length)}function pX(a){var b,c;zX((tbc(),aac),a);a.ri()==null&&YX(bHc,a);a.ri().length==0&&YX(cHc,a);c=vbc(a.j);c!=-1&&(b=e6b(a),c!=b&&YX(WGc+c+XGc+b,a))}function tX(a){var b,c;zX((tbc(),mac),a);a.ri()==null&&YX(bHc,a);a.ri().length==0&&YX(cHc,a);c=vbc(a.j);c!=-1&& (b=e6b(a),c!=b&&YX(WGc+c+XGc+b,a))}function v9(a,b,c){var d,e,f;d=(qkb(),e=Dkb(b),!e?null:j6b(e,29));!!d&&R2b(d,c)!=null?f=R2b(d,c):f=YJc+a.b++;he((Abc(),ybc.test(f)));return f}function seb(a,b){var c,d,e;return d=(qkb(),e=Dkb(b),!e?null:j6b(e,29)),!!d&&(d.a&1)!=0&&(d.a&2)==0||(c=j6b(b,51),!(!!c&&c.zh())&&flb(a.f,web(b)))}function mHb(a,b){var c,d,e;he(a.g!=0);e=jHb(a,b);if(e)return e;if(a.d)for(d=a.d.Od();d.Hd();){c=d.Id();e=WEb(c,b);if(e)return e}return null}function gOb(a,b,c){var d;d=(Zd(b.j== (tbc(),V8b),aNc,b),e6b(b)-1);if(dc.b){JOb(a,c.d);return false}return true}function Dlc(a,b){var c,d,e;d=new fmc(a.w);for(c=0;cd?8:d)<<1;if(a.b!=0){b=tEc(a.a,c);Bsc(a,b,d);a.a=b;a.b=0}else xEc(a.a,c);a.c=d}function kEc(a,b){if(a.b)if(!a.e)throw BV(new Ync("regex did not match"));else return a.e[b];else throw BV(new Ync("regex not executed yet")); }function KEc(a){switch(typeof a){case nFc:return gFc(a);case lFc:return jE(a);case kFc:return Vmc(),a?1231:1237;default:return a==null?0:aFc(a)}}function rb(a){return hE(a)?gFc(a):eE(a)?jE((SEc(a),a)):dE(a)?(SEc(a),a)?1231:1237:bE(a)?a.Cd():oD(a)?aFc(a):!!a&&!!a.hashCode?a.hashCode():aFc(a)}function le(a,b,c){if(!a)throw BV(new Ync(re("Bad GETELEM node: Expected 2 children but got %s. For node: %s",pD(kD(kT,1),KFc,1,5,[moc(b),c]))));}function Cbb(a,b){rbb();return t1(a,"es6/util/"+opc("makeIterator", (sBc(),qBc)),false),v1b(Xlb(a,"$jscomp.makeIterator"),pD(kD(TR,1),rHc,7,0,[b]))}function akb(a,b,c,d){be(c);Pjb(a,b);if(Kjb(a)!=d){a.e=b;he(!!a.e);ysc(a.n,d);Tjb(a,d.d);!!a.i&&a.i.qh(a);Zjb(a,b,c);Rjb(a,false)}else Zjb(a,b,c)}function glb(a,b){qkb();var c;if(h6b(a,43)!=0)return true;if(a.j!=(tbc(),mac)||!b)return false;c=Pqb(b,a.ri());return!!c&&(Qub(c)||c.Ah()==d9b)}function lJb(a){var b,c,d;b=(So(),new nr);mr(b,To((gJb(),fJb)));for(d=a.Od();d.Hd();){c=d.Id();c.length!=0&&!tp(fJb,c)&&kr(b,c,GIb)}return fp(b.b)} function Gbc(a){var b,c,d;Vd(!Hs(a),"union must have at least one option");b=new m8b((tbc(),lbc));for(d=a.Od();d.Hd();){c=d.Id();U5b(b,c)}return b}function rKb(a,b){var c;if(b.j==(tbc(),Oac)){c=b;while(c=c.e)if(c.j==E9b)return;a.d.oh("return must be inside function",a.r,n7b(b.i),m7b(b.i))}}function QKb(a,b){if(xbc(b.ri())){a.a.e=FPb(a.a.e,pD(kD($O,1),PFc,26,0,[(BQb(),hQb)]));a.a.a.c==(yJb(),sJb)&&a.a.d.ph(wLc,a.a.r,n7b(b.i),m7b(b.i))}}function LTb(a,b){a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),XPb)])); switch(fVb(a.j,0).c.f){case 49:return zSb(a,b);case 45:default:return HTb(a,b)}}function DVb(a,b){var c,d,e;d=a.d;while(_Ub(a,a.d)&&!MVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0))aVb(a);c=SRb(a.e.b,d,a.d);e=mpc(a.e.a,d,a.d);NUb(a.a,b,c,e)}function ym(a,b){if(a==null)throw BV(new Goc("null key in entry: null="+b));else if(b==null)throw BV(new Goc("null value in entry: "+a+"=null"));}function Fnb(a,b,c){var d;d=Msc(a.f);he(Xoc(b,d.j));jtc(a.w,d);d.n=c;d.a=0;d.k=1;a.d.a&&(d.d=1);Xoc(b,vIc)?Dnb(a,d):a.d.a&&a.D!=(k5(), j5)&&Cnb(a,d)}function _Eb(a,b){var c,d,e;e=a.a.q;he(b.size()==e.size());d=new oAc;for(c=0;c0&&z4b(a.e,c,d,b,d,b+c.length);return new aNb(c,!a.o?JNb(a.j):fMb(a))}function N0b(a,b){var c,d,e;d=a.b.n;e=eW(a.a);if(e.indexOf(".")!=-1){c=$oc(e,spc(46));c+d=0&&a<=FGc);return a>= vFc?pD(kD(lE,1),uFc,47,15,[wFc+(a-vFc>>10&xFc)&yFc,zFc+(a-vFc&xFc)&yFc]):pD(kD(lE,1),uFc,47,15,[a&yFc])}function gFc(a){eFc();var b,c,d;c=":"+a;d=dFc[c];if(d!=null)return jE((SEc(d),d));d=bFc[c];b=d==null?fFc(a):jE((SEc(d),d));hFc();dFc[c]=b;return b}function nb(a,b){return hE(a)?Xoc(a,b):eE(a)?(SEc(a),a===b):dE(a)?(SEc(a),a===b):bE(a)?a.Ad(b):oD(a)?a===b:!!a&&!!a.equals?a.equals(b):iE(a)===iE(b)}function o_(a,b){var c,d,e;d=b.ri();e=h6b(b,54)!=0;if(e)h_(a,t_(a,b.ri(),e));else{c=oqc(a.d,d);if(c== null){c=t_(a,b.ri(),e);rqc(a.d,d,c)}G$(a.c,c)}}function zTb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=yTb(a,b);while(pUb(a,(YXb(),eXb))){d=aSb(a,eXb);e=yTb(a,b);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function yTb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=JSb(a,b);while(pUb(a,(YXb(),WVb))){d=aSb(a,WVb);e=JSb(a,b);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function ISb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=ZSb(a,b);while(pUb(a,(YXb(),UVb))){d=aSb(a,UVb);e=ZSb(a,b);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function JSb(a, b){var c,d,e,f;f=fVb(a.j,0).b.b;c=KSb(a,b);while(pUb(a,(YXb(),ZVb))){d=aSb(a,ZVb);e=KSb(a,b);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function KSb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=ISb(a,b);while(pUb(a,(YXb(),aWb))){d=aSb(a,aWb);e=ISb(a,b);c=new nYb(new r0b(f,a.g),c,d,e)}return c}function t5b(a,b){if(!!b&&!U2b(a.a)&&!((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)){H3b(a.a,b,nGc);a.e=true;return true}else return false}function Qs(a,b){var c,d;while(a.Hd()){if(!b.Hd())return false;c=a.Id(); d=b.Id();if(!(iE(c)===iE(d)||c!=null&&nb(c,d)))return false}return!b.Hd()}function i8(a,b,c){var d,e,f;f=c.ri();d=Kjb(b);while(d){e=pq(a.a,d.d,f);if(e!=null){c.wi(e);Vjb(b);return}else if(Qqb(d,f,false))return;else d=d.c}}function n9(a,b,c){var d,e;d=h6b(a,58)!=0?b:c;d=_5b(d,false);if(a.j==(tbc(),c9b))return G1b(d,E6b(a));else{e=a.b.b;return b7b(H1b(d,d2b(a.ri())),e)}}function oxb(){oxb=aW;new _6("JSC_CANNOT_USE_PROTOTYPE_AND_VAR",(lZ(),iZ),new iqc("Rename prototypes and inline variables cannot be used together."))} function Ppc(a,b,c){var d,e;TEc(a,"src");TEc(b,"dest");pb(a);pb(b);e=a.length;d=b.length;if(c<0||c>e||c>d)throw BV(new Mmc);c>0&&sEc(a,0,b,0,c,true)}function xB(a){var b,c,d,e,f;NB(new PB(a),new QB);c=0;f=0;for(e=new Rtc(a.e);e.ab?f:b}}return f+a.i.b}function JFb(a){var b,c,d,e;for(e=(c=(new mrc(a.g)).a.Wd().Od(),new trc(c));e.a.Hd();){d=(b=e.a.Id(),b.ce());if(!Xoc(d,zHc))return true}return!!a.e}function Fib(a,b){var c,d,e,f;for(d=(f=(new mrc(a.i.a)).a.Wd().Od(), new trc(f));d.a.Hd();){c=(e=d.a.Id(),e.ce());c.d==(gzb(),fzb)||lDb(b,c,a)}a.i=null}function vX(a,b,c){var d,e;fX(a,(BQb(),mQb),b);zX((tbc(),oac),b);e=vbc(b.j);e!=-1&&(d=e6b(b),e!=d&&YX(WGc+e+XGc+d,b));xX(a,b.b);wX(a,b.b?b.b.f:null,c)}function Bbb(a,b){return t1(a,"es6/util/"+opc("arrayFromIterable",(sBc(),qBc)),false),v1b(Xlb(a,"$jscomp.arrayFromIterable"),pD(kD(TR,1),rHc,7,0,[b]))}function Jzb(a,b,c,d,e,f,g,h,i,j,k){be(a);this.a=a;this.i=b;this.e=c;this.j=d;this.k=e;this.d=f;this.g=g;this.f=h;this.n= i;this.c=j;this.b=k;mzb(this)}function DFb(a,b){var c;if(b==null)return false;if(a===b)return true;Ud(cE(b,149));c=b;return zBc(a.b,c.b)&&zBc(a.e,c.e)&&zBc(a.d,c.d)&&zBc(a.g,c.g)}function YGb(a,b,c){he(!a.f);if(!!Bi(a.b,b,false)||!!Bi(a.k,b,false))return;a.i==(wFb(),uFb)&&(a.n=BEb(a.n,b,new DGb(null,!c?a.u.G:c,c,(OGb(),NGb))))}function JKb(a){var b,c;Ud(a.j==(tbc(),Rac));if(!a.b)return false;c=a.b;if(c.j!=z9b)return false;b=c.b;if(b.j!=V8b)return false;return y6b(b.b,xHc)}function $Mb(a){var b,c; c=0;while(c0&&(Dmc(b,b.a.length-1)!=10||d==0)&&(b.a+=" ",b)}function LVb(a){switch(a){case 36:case 95:return true;default:return a==629||(anc==null&&(anc=new RegExp(GFc,"i")),anc.test(String.fromCharCode(a)))}}function Llc(a,b){Jbc();var c,d,e;Ubc.call(this,a);this.b=b;e=new fmc(a);for(d= b.Od();d.Hd();){c=d.Id();_lc(e,c,true)}this.a=bmc(e);this.c=this.b.Cd()}function ndb(){ndb=aW;hdb=new odb(BKc,0);kdb=new odb("OBJECTLIT",1);idb=new odb(CKc,2);jdb=new odb("GET",3);mdb=new odb("SET",4);ldb=new odb("OTHER",5)}function Vhb(a,b){if(b.length==0)return b;b.indexOf(uKc)!=-1&&(b=mpc(b,0,b.lastIndexOf(uKc)));a.a.gg(b)&&(b="JSCompiler_"+b);return b+uKc+a.d+a.f.Ed()}function nsb(a,b,c){var d;d=Li(Ezc(b.d,a));if(c==d)return d;if(d){d.b.a=d.a;d.a.b=d.b;d.a=null}else{d=new osb(a);Fzc(b.d,a,d)}d.b= c;c.a=d;c=d;return d}function rl(a,b,c){var d,e;zm(c,"count");if(c==0){d=a.a.remove(b);e=ul(d,c)}else{d=a.a.Xd(b);e=ul(d,c);!d&&a.a.put(b,new Tm(c))}a.b=CV(a.b,c-e);return e}function MKb(a,b,c){var d;if(c){bKb(a.a,c.o,j6b(b,29));d=(SKb(a,c,(BQb(),AQb)),jKb(a.a,c));d.j==(tbc(),Xac)&&(d=IJb(a.a,new o8b(Xac,d.ri())));K6b(b,d)}}function PNb(a,b,c){this.o=mD(lE,uFc,47,128,15,1);this.q=mD(mE,EGc,47,3,15,1);be(a);this.g=b;this.k=a;this.j=a.length;this.i=this.b=0;this.d=b;this.c=c}function Kfc(a,b){var c, d,e,f,g;c=i6b(a.b);if(!!c&&h6b(c,30)!=0)return false;for(e=b,f=0,g=e.length;fa.g?Shc(a.i,(zhc(),vhc)):b>1?null:b==1?mtc(a.a,0):Shc(a.i,(zhc(),Rgc))}function epc(a,b,c){var d,e,f,g;d=(e=b>>>0,e.toString(16));f="\\u"+lpc("0000",d.length)+d;g=String.fromCharCode(c);return a.replace(new RegExp(f,"g"),g)}function qpc(a){var b,c,d;c=a.length;d=0;while(dd&&a.charCodeAt(b-1)<=32)--b;return d>0||b57)return false}return d==1||a.charCodeAt(0)!=48}function $nb(a,b){Tnb();var c;this.b=a;this.d=a.C;this.q=b;this.i=new utc;this.c=false;this.e=0;this.r=a.L.vd;c=a.L.ec;c>0&&c<=100?this.g=c:this.g=100}function Oyb(a){var b,c;if(!a.B){be(a.u);for(c=a.C.values().Od();c.Hd();){b=c.Id();if(a.w)return null;a.w=true;Oyb(b);a.w=false}a.B=be(a.Ch())}return a.B}function kTb(a){var b,c,d,e;d=fVb(a.j,0).b.b;e=null;if(vUb(a)){b= gTb(a,0);aSb(a,(YXb(),XVb));c=cUb(a);e=new vZb(new r0b(d,a.g),b,c)}else e=ASb(a);return e}function _6b(b){var c,d;try{d=new Kpc;y7b(b,0,d);return d.a}catch(a){a=AV(a);if(cE(a,101)){c=a;throw BV(new sC("Should not happen\n"+c));}else throw BV(a);}}function wu(b,c){var d,e;d=b.Rd(c);try{e=d.Id();d.Jd();return e}catch(a){a=AV(a);if(cE(a,77))throw BV(new Nmc("Can't remove element "+c));else throw BV(a);}}function upc(a){var b;b=0;while(0<=(b=a.indexOf("\\",b)))a.charCodeAt(b+1)==36?a=a.substr(0,b)+"$"+ lpc(a,++b):a=a.substr(0,b)+(""+lpc(a,++b));return a}function cA(a){var b;Zz.call(this,a,null);this.a=mD(lE,uFc,47,512,15,1);Ud(a.c.length==16);for(b=0;b<256;++b){this.a[b]=a.c[b>>>4];this.a[b|256]=a.c[b&15]}}function u1(a,b){var c,d,e,f,g,h;for(e=(g=b.a.Wd().Od(),new Crc(g));e.a.Hd();){d=(c=e.a.Id(),c.de());d.b=a;h=x3(d,a);if(!h)continue;f=new yab(a);rab(f,h)}}function h2(a,b){var c,d,e;for(d=new Rtc(b);d.a' unexpected",pD(kD(kT,1),KFc,1,5,[]));e=b}return e}function jnc(a){return String.fromCharCode(a).toLocaleUpperCase().charCodeAt(0)==a&&(anc==null&&(anc=new RegExp(GFc,"i")),anc.test(String.fromCharCode(a)))}function v8(a,b){var c,d,e;e=F6b(b,b.g,85);e!=b.g&&(b.g=e);b.g= new J7b(85,1,b.g);for(d=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();d.Hd();){c=d.Id();v8(a,c)}}function rqb(a,b,c,d,e,f){var g;g=sqb(a,b);if(g)return new Ggb(c,null,d,e,g,null,pD(kD(pT,1),tFc,2,6,[b]));return Lgb(c,d,e,f,jqb,pD(kD(pT,1),tFc,2,6,[b]))}function dwb(a,b){var c;return new pwb(a,iwb((Fwb(),c=fpc(fpc(fpc(fpc(fpc(epc(epc(b,58,45),92,47)," ",HJc),"[",IJc),"]",JJc),"<",KJc),">",LJc),Gwb(c)),a.d))}function ZNb(){var a;if(VNb)return;a=FBc(_Mc);VNb=YNb(DBc(a,"jsdoc.annotations"));WNb=YNb(DBc(a, "jsdoc.suppressions"));YNb(DBc(a,"compiler.reserved.vars"))}function ED(a,b){var c,d,e;e=a.h-b.h;if(e<0)return false;c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0)return false;a.l=c&KGc;a.m=d&KGc;a.h=e&LGc;return true}function rab(a,b){var c,d;if(zab(b))return true;c=new Eab;dkb(a.c,b,c);if(c.a)return false;d=a7b(new e7b((tbc(),kac)),b);X5b(d,D6b(b));U5b(b,d);return true}function Z4b(a){if((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc||(a.a.a&2)!=0||d3b(a.a)||(a.a.a&MKc)!=0)return false;a.a.a|= 512;a.e=true;return true}function adc(a,b,c,d){Jbc();Ubc.call(this,a);this.a=!b?Lhc(a,true,pD(kD(nS,1),MLc,24,0,[Obc(this,(zhc(),vhc))])):b;this.b=!c?Obc(this,(zhc(),vhc)):c;this.c=d}function NBc(a,b,c,d,e,f,g){var h,i;if(b.Oj()&&(i=a.a.Pe(c,d),i<0||!e&&i==0))return false;if(b.Pj()&&(h=a.a.Pe(c,f),h>0||!g&&h==0))return false;return true}function pe(a,b,c,d){if(!a)throw BV(new Ync(re("Trying to update property %s on type %s, but sub-property %s does not exist",pD(kD(kT,1),KFc,1,5,[b,c,d]))));}function Pz(a, b){var c;if(b>127||a.e[b]==-1)throw BV(new wA("Unrecognized character: "+(gc((lc(),kc),b)?(c=b>>>0,"0x"+c.toString(16)):nnc(b))));return a.e[b]}function ZC(a){var b,c,d,e;b="YC";c="sA";e=Coc(a.length,5);for(d=e-1;d>=0;d--)if(Xoc(a[d].d,b)||Xoc(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}return a}function V5(){V5=aW;T5=npc("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$");U5=npc("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789$")}function dlb(a){qkb();if(a.j==(tbc(),mac))switch(a.e.j.f){case 100:case 88:case 78:return true; case 96:return a.e.b==a;case 65:return elb(a.e)}return false}function x4b(a,b,c,d){var e,f;e=r2b(a.a);if(e){f=new g4b;Vd(b.charCodeAt(0)!=32&&Soc(b,b.length-1)!=32,ZNc);f.d=b;a4b(f,c,d,c,d+b.length);e.a=f;a.e=true}a.b=e}function Nt(a){var b,c,d,e,f;if(Pq(a.f,a.b.length)){d=mD(NG,iGc,241,a.b.length*2,0,1);a.b=d;e=d.length-1;for(c=a.a;c!=a;c=c.lf()){f=c;b=f.d&e;f.a=d[b];d[b]=f}}}function o$(a,b,c){var d,e,f;e=null;qkb();if(b.j==(tbc(),z9b)&&b.b.j==V8b){d=a.b;if(!!d&&d.j==K9b&&z6b(d,c,c.length)){f=d.d; !!f&&f.j==Xac&&(e=f.ri())}}return e}function G_(a){var b,c,d;if(ulb(a))return a;d=new Kpc;for(c=0;c31&&b<127?(d.a+=String.fromCharCode(b),d):iC(d,b)}return d.a}function $7(){$7=aW;Z7=new _6("JSC_MISSING_ES6_EXTERNS",(lZ(),iZ),new iqc("Missing externs definition for Symbol. Did you forget to include the ES6 externs?"))}function oeb(a,b,c){var d;while(XEb(b,c)){Ud(b.a.f);Ud(b.a.g==0);if(fq(a.o,b.a,c)!=null){d=fq(a.o,b.a,c);return b.a.q.isEmpty()?d:Xfb(d,b)}b=VEb(b)}return null} function Aeb(a){jeb();var b,c,d;if(a.j!=(tbc(),mac)&&a.j!=K9b)return false;b=(qkb(),c=Dkb(a),!c?null:j6b(c,29));d=Vkb(a);return!!b&&(b.a&2)!=0&&!!d&&d.j==V8b}function fGb(a,b){var c,d,e,f;for(f=(d=(new mrc(a.g)).a.Wd().Od(),new trc(d));f.a.Hd();){e=(c=f.a.Id(),c.ce());if(!NFb(b,new SGb(e)))return false}return true}function wdc(a){var b,c,d;if(a.u){b=a.fj();if(!b||b.nj()){a.u=false;for(d=a.ej().Od();d.Hd();){c=d.Id();if(c.di()){a.u=true;break}}}else a.u=b.di()}return a.u}function ox(a,b){var c,d,e; if(b.isEmpty())return false;if(cE(b,162)){e=b;for(d=Zk(e).Od();d.Hd();){c=d.Id();ml(a,c.b.ce(),El(c))}}else Ls(a,b.Od());return true}function Sec(a){var b;if(!a.g){b=a.kj();b==null?Yec(a,Qhc(a.w,(zhc(),vhc)),null):Wec(a,new nec(a.w,a.kj()+PJc,Qhc(a.w,(zhc(),chc)),a.q,null),null)}return a.g.e}function Mfc(a,b){var c;c=i6b(a.b);if(!!c&&h6b(c,30)!=0)return false;b.Ni()||b.Li()||b.Mi()||Shc(b.w,(zhc(),Ogc))==b||(b=Khc(a.a,b));X6b(Nfc(a,b));return true}function vfb(a,b){var c,d;c=j6b(b,51);if(!!c&&c.zh())return false; d=Vkb(b);if(!d){Fjb(a.c.t,Kgb(b,(jeb(),Ldb),pD(kD(pT,1),tFc,2,6,[])));return true}return false}function bd(a){var b,c,d;d=new HBc("[","]");for(c=a.Od();c.Hd();){b=c.Id();GBc(d,b===a?IFc:b==null?qFc:eW(b))}return!d.a?d.c:d.e.length==0?d.a.a:d.a.a+(""+d.e)}function FV(a,b){var c;if(IV(a)&&IV(b)){c=a/b;if(QGc=d)return-1;e=(a.a[c]|0)&oFc<=d)return-1; e=a.a[c]|0}return c*31+ioc(e)}function fpc(a,b,c){var d,e;d=gpc(b,"([/\\\\\\.\\*\\+\\?\\|\\(\\)\\[\\]\\{\\}$^])","\\\\$1");e=gpc(gpc((SEc(c),c),sFc,"\\\\\\\\"),"\\$","\\\\$");return gpc(a,d,e)}function zi(a,b){var c,d,e;c=b.ce();e=b.de();d=a.Xd(c);if(!(iE(e)===iE(d)||e!=null&&nb(e,d)))return false;if(d==null&&!a.containsKey(c))return false;return true}function M0(a){var b,c,d;b=a.b;if((z6b(b,iIc,iIc.length)||z6b(b,jIc,jIc.length))&&e6b(a)==3){c=b.d;d=c.d;if(t6b(c)&&t6b(d))return new C0((F0(),c),d)}return null} function drb(){drb=aW;crb=new _6("JSC_DUPLICATE_ZIP_CONTENTS",(lZ(),kZ),new iqc("Two zip entries containing the same relative path.\nEntry 1: {0}\nEntry 2: {1}"))}function S5(){S5=aW;R5=new _6("JSC_CONSTANT_REASSIGNED_VALUE_ERROR",(lZ(),kZ),new iqc("constant {0} assigned a value more than once.\nOriginal definition at {1}"))}function kDb(a,b,c,d,e){var f;if(!b)return null;switch(b.j.f){case 144:c=(xDb(),uDb);b=b.b;break;case 142:c=(xDb(),wDb);b=b.b}f=cDb(a,b,d,e);return new ADb(f,c)}function EFb(a, b){var c;c=GFb(a,b);if(!c)return null;else if(b.a.size()==1)return c.b?c.b:null;return xAb(c.d,(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size()))))}function zib(a,b){var c;if(!b)return false;c=b.a.getAtIndex(0);return Bib(a,c)&&(b.a.size()==1||!!Lyb(oib(a,c),(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size())))))}function Y4b(a){if(!((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)&&!d3b(a.a)&&(a.a.a&2)==0){a.a.a|=512;a.a.a|=jJc;a.e=true;return true}else return false}function Np(a){En();var b,c;if(!a.Hd())return Rx(), Qx;c=a.Id();if(!a.Hd())return new Ey(c);b=new SAc;jzc(b,be(c));do jzc(b,be(a.Id()));while(a.Hd());return Up(b)}function HD(a,b){var c,d,e,f,g,h,i,j;i=a.h>>19;j=b.h>>19;if(i!=j)return j-i;e=a.h;h=b.h;if(e!=h)return e-h;d=a.m;g=b.m;if(d!=g)return d-g;c=a.l;f=b.l;return c-f}function Gqb(a,b,c){var d,e;d=new Xbb;m1(a.b,d);pob(new sob(a.b,true),null,c);if(lW(a.b._)){Emb(new Gmb(a.b),b,c);if(a.b._==1){e=new jnb(a.b);inb(e,b,c)}}n2(a.b,d)}function aTb(a){var b,c,d;d=fVb(a.j,0).b.b;c=cSb(a);b=null;if(oUb(a, 0,(YXb(),GWb))&&Xoc(fVb(a.j,0).a,"as")){gSb(a,"as");b=cSb(a)}return new WYb(new r0b(d,a.g),c,b)}function m6b(a){var b,c,d,e;b=0;for(e=a.g;e;e=e.zi())++b;c=mD(mE,EGc,47,b,15,1);for(d=a.g;d;d=d.zi()){--b;c[b]=d.Bi()}c.sort(bW(Euc.prototype.Nj,Euc,[]));return c}function dnc(a,b){if(b<2||b>36)return-1;if(a>=48&&a<48+(b<10?b:10))return a-48;if(a>=97&&a=65&&a0){a.k+=d;a.n=b.length-bpc(b,spc(10))}}function G1(a,b){var c,d,e,f;for(d=Z5b(a.C).Od();d.Hd();){e=d.Id();f=j6b(e,51);if((!f?null:f.Og())!=null&&Woc((c=j6b(e,51),!c?null:c.Og()),b))return e}return null}function iGb(a,b,c){var d,e,f,g,h;for(f=a.Od();f.Hd();){e=f.Id();d=false;for(h=b.Od();h.Hd();){g=h.Id();if(MFb(e,g,c)){d=true;break}}if(!d)return false}return true}function _Hb(a,b){var c,d;if(a.indexOf("#")!=-1)return b.contains(a)?a:null;for(d=b.Od();d.Hd();){c= d.Id();if(Xoc(a,mpc(c,0,$oc(c,spc(35)))))return c}return null}function rHb(a,b){var c,d;he(b.g!=0);if(a==b)return true;else if(!a.d)return false;else{for(d=a.d.Od();d.Hd();){c=d.Id();if(rHb(c.a,b))return true}return false}}function J8(a,b,c){var d,e;while(!!b.b&&!!b.b.d){d=b.b?b.b.f:null;e=a7b(B1b(b6b(d),(tbc(),nbc)),b);N8(b,c,d,e);S5b(c,e,b);q2(a.a,c)}N8(b,c,b.b,b);V6b(b,(tbc(),nbc))}function A1b(a,b,c){if(a.j==(tbc(),mac))he(!a.b);else{he(a.j==x8b||a.j==Aac);a=new g7b(l9b,a)}me(P1b(b),"%s can't be an expression", b);U5b(a,b);return new g7b(c,a)}function I1b(a,b,c){var d,e,f,g,h;he(P1b(a));he(b.j==(tbc(),Xac));h=new i7b(K9b,a,b);for(e=c,f=0,g=e.length;f0)return}}function USb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;c=zTb(a,b);if(pUb(a,(YXb(),qXb))){aSb(a, qXb);d=CSb(a,b);aSb(a,jWb);e=CSb(a,b);return new NYb(new r0b(f,a.g),c,d,e)}return c}function v2b(a,b){!a.d&&(a.d=new V3b);if(l3b(a,b)||(a.a&QJc)==rFc)return false;if(!a.d.q)a.d.q=new utc;else if(ntc(a.d.q,b,0)!=-1)return false;jtc(a.d.q,b);return true}function Iuc(a){var b,c,d,e;d=Ruc(a.a);b=-2128831035^d;for(c=0;c<=d;c++){e=a.a[c]|0;b=b*qOc&-1^e&255;b=b*qOc&-1^e>>>8&255;b=b*qOc&-1^e>>>16&255;b=b*qOc&-1^e>>>24}return b}function Yh(a,b){var c;c=a.c.Xd(b);!c&&(c=a.Ae(b));return cE(c,211)?new Vk(a,b, c):cE(c,128)?new Uk(a,b,c):cE(c,29)?new Wk(a,b,c):cE(c,51)?bi(a,b,c,null):new fk(a,b,c,null)}function As(a,b){var c,d;be(a);if(!b.Hd())return be(a),vs==a?us:new Tx(new aDc(a));c=new aDc(a);while(b.Hd()){d=b.Id();be(d);c.a.put(d,(Vmc(),Tmc))==null}return new Tx(c)}function Rs(a,b){var c,d;Ns(b);d=Ms(a,b);if(!a.a.Hd())throw BV(new Nmc(pGc+b+") must be less than the number of elements that remained ("+d+")"));return c=a.a.Id(),c.ce()}function X_(a){var b;if(a.n>a.o)if(a.d>a.b&&a.d>24;for(a=0;a<=26;a++){c[65+a]=10+a<<24>>24;c[97+a]=10+a<<24>>24}DA=c}function CW(){CW=aW;yW=new DW(SGc,0,"\u001b[31m");BW=new DW(TGc,1,"\u001b[35m");zW=new DW("NO_COLOR",2,"\u001b[39m");xW=new DW("BOLD",3,"\u001b[1m");AW=new DW("UNBOLD",4,"\u001b[0m")}function SW(a,b){var c,d,e;zX((tbc(),Z8b),b);e=vbc(b.j);e!=-1&&(d=e6b(b),e!=d&&YX(WGc+e+XGc+d,b));c=b.b;c.j==mac?tX(c):c.j==x8b?NW(a,Z8b,c):FX(a,Z8b,c);QW(a,b.b?b.b.f:null)}function H7(a){var b,c,d, e;b=k6b(Pkb(a));c=be((qkb(),Hkb(a,pkb)));for(d=c.d;d;d=d.d){e=G7(d,b);if(e!=null)return e}throw BV(new Ync("$jscomp.inherits() call not found."));}function Fqb(a,b){var c;c=a.b.o;if(!c)return;ocb(new pcb(a.b),b);if(!Wx(a.b.o,c)){o2(a.b,new Ggb(null,null,-1,-1,Aqb,null,pD(kD(pT,1),tFc,2,6,[])));throw BV(new Ync(BLc));}}function Uqb(a){Jqb(this);Vd((qkb(),zkb(a)||a.j==(tbc(),E9b)||a.j==(tbc(),kac)||a.j==(tbc(),Pac)&&!a.e||a.j==(tbc(),Rac)||a.j==(tbc(),Pac)),a);this.c=null;this.d=a;this.b=0}function wSb(a){var b, c,d;b=lUb(a,0);for(d=b.b.Od();d.Hd();){c=d.Id();!!c.b&&IUb(a,"Ambient variable declaration may not have initializer",pD(kD(kT,1),KFc,1,5,[]))}return b}function W5b(a,b,c){var d,e,f;if(!b)return;Ud(!c||c.e==a);be(b.f);if(!c){Y5b(a,b);return}for(d=b;d;d=d.d){Ud(!d.e);d.e=a}e=b.f;f=c.d;e.d=f;!f?a.b.f=e:f.f=e;c.d=b;b.f=c}function cSb(a){var b;b=oSb(a);if(b.c==(YXb(),GWb))return b;else{HRb();if(JRb(b.c))return new IQb(b.b,JRb(b.c).b);else GUb(a,b,GNc,pD(kD(kT,1),KFc,1,5,[GWb]))}return null}function zlc(a, b,c,d){var e,f,g;g=Blc(b);if(c==0&&Blc(a).size()!=g.size())return false;for(e=0;e=97&&b<=122&&(c[d]=b&95&yFc)}return xpc(c,0,c.length)}return a}function Lb(a){var b, c,d,e;e=a.length;for(d=0;d=65&&b<=90&&(c[d]=(b^32)&yFc)}return xpc(c,0,c.length)}return a}function z2(a,b){var c,d,e;d="INTERNAL COMPILER ERROR.\nPlease report this problem.\n\n"+a;c=new tC(d,b);!!b&&kA(c,(b.g==null&&(b.g=(XC(),e=WC.Df(b),ZC(e))),b.g));throw BV(c);}function qeb(a,b){switch(b){case kFc:return a.d.a;case lFc:return a.d.q;case nFc:return a.d.t;case qFc:return a.d.j;case GJc:case $Hc:return a.d.B;default:return qib(a.k,b)}} function hlb(a){qkb();switch(a.j.f){case 72:case 73:case 101:case 71:case 70:case 77:case 66:case 83:case 44:case 78:case 67:case 68:case 69:return true;default:return false}}function ofb(a,b,c){var d,e;Ud(b.j==(tbc(),K9b));if(!t6b(b))return false;e=b.b;if(!yib(c,k6b(e)))return false;return d=jib(a.a,TGb(e),false),!!(!d?null:cE(d.c,73)?d.c:null)}function bkb(b,c,d){var e,f;try{e=c.e;be(e);Pjb(b,e);b.e=e;Sjb(b,e);Zjb(b,c,e);he(d.e==e);Zjb(b,d,e);Rjb(b,false)}catch(a){a=AV(a);if(cE(a,43)){f=a;Xjb(b, f)}else throw BV(a);}}function kyb(a,b,c,d,e){this.d=a;this.e=b;this.c=c;this.a=d;this.b=e;!!this.d&&he(!this.e);!!this.e&&he(!this.d&&!this.c&&!this.a);!!this.c&&he(!this.e);!!this.a&&he(!this.e)}function lLb(a,b){var c,d,e,f,g;f=TJb(a.a,(tbc(),I9b));for(e=new OAc(new FAc(b.a));e.b!=e.c.a.b;){d=MAc(e);g=YJb(a.a,H9b,d.d.a);c=d.e;!!c&&U5b(g,jKb(a.a,c));U5b(f,g)}return f}function dMb(a,b){var c,d;for(d=new Rtc(b);d.aa.length||e+f>d.length)return false;g=a.substr(c,f);h=d.substr(e,f);return b?Yoc(g,h):Xoc(g,h)}function EX(b){if(b.ti())try{b.ri()}catch(a){a=AV(a);if(cE(a,21))YX("getString failed for"+b.j,b);else throw BV(a);}else{b.ri()==null&&YX(bHc,b);b.ri().length==0&&YX(cHc,b)}}function v1(a){if(a.j==(tbc(),Rac))return a;a=Gkb(a.e);if(!a)throw BV(new Ync("An enclosing scope is required for change reports but node "+ a+" doesn't have one."));return a}function Wlb(a,b){var c,d;c=(me($oc(b,spc(46))==-1,qHc,b),new e8b((tbc(),mac),b));O6b(c,b.length);w1(a).eg(b)&&(d=F6b(c,c.g,43),d!=c.g&&(c.g=d),c.g=new J7b(43,1,c.g));return c}function Wyb(a,b,c){var d,e,f,g;f=a.Jh();if(!f)return true;g=b.Jh();for(e=f.Od();e.Hd();){d=e.Id();if(!!g&&g.contains(d))continue;if(!JAb(d.a,b,c))return false}return true}function yVb(a){aVb(a);if(MVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)){hVb(a,"New line not allowed in regular expression literal", pD(kD(kT,1),KFc,1,5,[]));return false}aVb(a);return true}function E5b(a){if((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc||d3b(a.a)||(a.a.a&SJc)!=0||(a.a.a&NGc)!=0||(a.a.a&RJc)!=0)return false;a.a.a|=RJc;a.e=true;return true}function Bib(a,b){var c,d,e;Ud(b.indexOf(".")==-1);c=kib(a,b,false);if(!c)return false;e=c.d;return!!c.c||!!e&&(d=e.Lh()==2&&e.Oh().size()==1?Us(e.Oh().Od()):null,!!d&&!!d.e)}function PEb(a){var b,c,d,e;if(uHb(a.a,FKc))return up(a.b,a.a.q.getAtIndex(0));d=a.a.u.b;for(c= TEb(a).Od();c.Hd();){b=c.Id();e=PEb(b);!!e&&(d=FBb(d,e))}return 0==d.Lh()?null:d}function bTb(a){var b,c;b=(_n(),new fr);aSb(a,(YXb(),bXb));while(c=fVb(a.j,0).c,GWb==c||(HRb(),HRb(),!!up(iRb,c))){dr(b,aTb(a));pUb(a,gWb)||aSb(a,kWb)}aSb(a,gWb);return io(b.a)}function rTb(a){var b,c;b=(_n(),new fr);aSb(a,(YXb(),bXb));while(c=fVb(a.j,0).c,GWb==c||(HRb(),HRb(),!!up(iRb,c))){dr(b,qTb(a));pUb(a,gWb)||aSb(a,kWb)}aSb(a,gWb);return io(b.a)}function hv(a,b){var c;if(b==null)for(c=a.size()-1;c>=0;c--){if(a.getAtIndex(c)== null)return c}else for(c=a.size()-1;c>=0;c--)if(nb(b,a.getAtIndex(c)))return c;return-1}function s_(a,b){var c,d;d=b.ri();if(!b.ti()&&!(a.i&&xbc(d))&&(Abc(),ybc.test(d))&&ulb(d))G$(a.c,d);else{c=F_(d);isNaN(c)?o_(a,b):a.c.lg(c,b)}if(b.b){G$(a.c,":");l_(a,b.b,1,4)}}function rUb(a){switch(fVb(a.j,0).c.f){case 82:case 85:case 86:case 95:case 87:case 83:case 84:case 88:case 89:case 90:case 91:case 93:case 92:return true;default:return false}}function k6b(a){var b,c;switch(a.j.f){case 29:c=a.ri();return c.length== 0?null:c;case 26:b=l6b(a,0);return b?b.a:null;case 33:return SHc;case 99:return THc;default:return null}}function UA(a,b,c,d){var e,f;while(true){f=((d-c)/2|0)+c;e=(REc(f,a.a.length),a.a[f]).vf()-b;if(e==0)return f;else if(e<0){c=f+1;if(c>d)return d}else{d=f-1;if(d=vFc){b=wFc+(a-vFc>>10&xFc)&yFc;c=zFc+(a-vFc&xFc)&yFc;return String.fromCharCode(b)+(""+String.fromCharCode(c))}else return String.fromCharCode(a& yFc)}function Tkb(a){qkb();var b;if(a.j!=(tbc(),K9b))return null;if(Xoc((a.b?a.b.f:null).ri(),zHc))return a.b;b=a.b;if(b.j==K9b&&Xoc((b.b?b.b.f:null).ri(),zHc))return b.b;return null}function W1b(a){var b,c,d,e,f;b=new e7b((tbc(),zac));for(d=a,e=0,f=d.length;e0,eGc,c);d=a.a.Xd(b);if(!d)return 0;g=d.a;if(g>c)f=c;else{f=g;a.a.remove(b)}d.a+=-f;a.b=OV(a.b,f);return g}function AX(b){var c,d;zX((tbc(),xac),b);d=vbc(b.j);d!=-1&&(c=e6b(b),d!=c&&YX(WGc+d+XGc+c,b));try{b.qi()}catch(a){a=AV(a);if(cE(a,21))YX("Invalid NUMBER node.",b);else throw BV(a);}}function OX(b){var c,d;zX((tbc(),Xac),b);d=vbc(b.j);d!=-1&&(c=e6b(b),d!=c&&YX(WGc+d+XGc+c,b));try{b.ri()}catch(a){a= AV(a);if(cE(a,21))YX("Invalid STRING node.",b);else throw BV(a);}}function PX(a,b){var c,d;zX((tbc(),abc),b);rX(b);eX(a,b.b);d=0;for(c=b.b.d;c;c=c.d){QX(a,b.b?b.b.f:null);c.j==i9b&&++d}d>1&&YX("Expected at most 1 'default' in switch but was "+d,b)}function C5(a,b){var c,d,e,f;for(f=(d=(new nsc(a.c.a)).a.Wd().b.Kj(),new tsc(d));f.a.Hd();){e=(c=f.a.Id(),c.ce());if(e.Tg(b))return true;else if(e.Sg(b))return false}return false}function cHb(a,b,c,d){var e;he(!a.f);e=Li(Bi(a.k,b,false));if(!!e&&!!e.b)return; !!e&&(d=FBb(e.d,d));a.k=BEb(a.k,b,new DGb(c,d,null,(OGb(),NGb)));!!Bi(a.n,b,false)&&(a.n=CEb(a.n,b))}function nOb(a,b){var c;b.j==(tbc(),uac)?c=mOb(a,b.b):c=mOb(a,b.b)&&mOb(a,b.b.d);if(!c){a.a.ph(NMc+r8b(eNc,pD(kD(kT,1),KFc,1,5,[kFc])),a.b.Og(),a.d,a.c);return false}return true}function GVb(a){while(_Ub(a,a.d))switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 96:return;case 92:FVb(a);break;case 36:if((_Ub(a,a.d+1)?Soc(a.e.a,a.d+1):0)==123)return;default:aVb(a)}}function E2(a){var b,c;c=(a.L.pd!=(k5(),h5)&& !!a.X&&Enb(a.X,zIc,true),new vsb);try{!a.N&&(a.N=new pxb);Wuc();lvc()}finally{b=OV(HV(Date.now()),c.a);a.L.pd!=h5&&!!a.X&&Fnb(a.X,zIc,b)}}function K8(a){var b,c,d,e;if(a.b.a.size()!=0)for(d=(e=(new mrc(a.b.a)).a.Wd().Od(),new trc(e));d.a.Hd();){c=(b=d.a.Id(),b.ce());c.j==(tbc(),d9b)&&J8(a,c,c.e);V6b(c,nbc);q2(a.a,c)}}function sfb(a,b){var c;if(Aeb(b)){ffb(a,(qkb(),c=Dkb(b),!c?null:j6b(c,29)),k6b(b),b.d,null,a.a);return}if(Beb(b)){ffb(a,(qkb(),c=Dkb(b),!c?null:j6b(c,29)),k6b(b),b,null,a.a);return}} function H3b(a,b,c){if((a.a&QJc)!=0)throw BV(new Ync("API tried to add two incompatible type tags. This should have been blocked and emitted a warning."));a.a=a.a&1073741823|c;a.i=b}function B4b(a){if(!((a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)&&!d3b(a.a)&&(a.a.a&MKc)==0&&(a.a.a&32)==0&&a.a.j!=(o4b(),l4b)){a.a.a|=MKc;a.e=true;return true}return false}function fp(a){So();var b,c,d;d=a.a.length;switch(d){case 0:return Ro;case 1:b=Us(new Rtc(a));return lp(b.ce(),b.de());default:c=ttc(a,mD(SU, iGc,50,a.a.length,0,1));return new Px(c)}}function _v(a){var b,c;if(a.a.c==0)return So(),So(),Ro;else{for(c=new Eyc((new yyc(a)).a);$yc(c.a);){b=(c.b=_yc(c.a),new Iyc(c.c,c.b));be(b.a);be(b.b.b[b.a.f])}return $q(new oyc(a))}}function Wx(b,c){var d;if(b===c)return true;if(cE(c,29)){d=c;try{return b.size()==d.size()&&b.containsAll(d)}catch(a){a=AV(a);if(cE(a,69))return false;else throw BV(a);}}return false}function Gnb(a,b,c){this.d=new gpb;this.f=new Rsc;this.w=new utc;Vd(c!=(k5(),h5),"PerformanceTracker can't work without tracer data."); this.H=HV(Date.now());this.n=a;this.u=b;this.D=c}function Xec(a,b,c){if(b.mj()||a.q||!!b.hj()){if(!!a.g&&(a.Xh()||a.f==(Sfc(),Qfc))&&Mbc(b,(me(a.Xh()||a.f==(Sfc(),Qfc),lOc,a),Tbc(a.k))))return;b=new mec(a.w,a.kj()+PJc,b)}Wec(a,b,c)}function d8(a,b,c,d){var e,f,g,h;for(f=YAc(a.a,0);f.b!=f.d.c;){e=gBc(f);if(c!=e.a&&x6b(c,e.a)){h=Pqb(Kjb(b),c.ri());if(!!h&&h.c==e.a){g=a7b(T1b(e.b),c);G6b(d,c,g);q2(a.b.b,g);return}}}}function t9(a,b,c,d,e){this.g=a;this.d=W1b(pD(kD(TR,1),rHc,7,0,[]));this.e=W1b(pD(kD(TR, 1),rHc,7,0,[]));this.j=new oAc;this.i=new oAc;this.b=new oAc;this.f=b;this.a=c;this.c=d;this.k=e}function Dhb(a,b,c,d){var e,f,g;e=Chb(a,c.ri());if(e!=null){f=Fsc(a.a);f.wh()&&(g=F6b(c,c.g,43),g!=c.g&&(c.g=g));c.wi(e);Vjb(b);d.j==(tbc(),E9b)&&(qkb(),d.j==E9b&&jlb(d.e))&&q2(b.c,d)}}function flb(a,b){qkb();var c;c=b.e;if(c.j==(tbc(),K9b)&&b==(c.b?c.b.f:null))return a.fg(b.ri());else if(Blb(b))return a.fg(b.ri());else if(b.j==mac)return a.eg(b.ri());return false}function Vmb(a,b){var c,d,e,f;d=a.b;c= d.pi(false);f=a7b(B1b(c,(tbc(),nbc)),a);d.wi("");m2(b,v1(d));Z1(b);e=a.e;if(e.j==_9b)G6b(e,a,f);else{C6b(e,a);V5b(e,f)}m2(b,v1(f));Z1(b);V5b(c,a)}function Dnb(a,b){var c,d;Bnb(a);if(a.D==(k5(),j5))return;b.c=a.q=a.b=(qkb(),ykb(a.u));if(!(a.D==i5||a.D==f5))return;c=Onb((d=a.u,a.D==f5,d));b.o=a.r=a.e=c.b;a.D==f5&&(b.g=a.s=a.o=0)}function Lpb(a,b,c){var d,e,f,g,h;h=b.b;while(!!h&&h!=c){g=h.d;qkb();if(h.j==(tbc(),z9b)&&h.b.j==V8b){d=h.b;e=d.b;if(z6b(e,uLc,uLc.length)){f=LPb(e.d.d.d.ri());Kpb(a,f)&&bmb(b, h)}}h=g}}function oTb(a){var b,c,d,e;e=fVb(a.j,0).b.b;aSb(a,(YXb(),HWb));aSb(a,cXb);b=pSb(a,1);aSb(a,hWb);d=YTb(a);c=null;if(pUb(a,sWb)){aSb(a,sWb);c=YTb(a)}return new zZb(new r0b(e,a.g),b,d,c)}function iTb(a){var b,c,d;d=fVb(a.j,0).b.b;aSb(a,(HRb(),aRb).a);c=!!eSb(a,(YXb(),zXb));b=jZb(new nZb((sZb(),pZb)),bSb(a));jTb(a,b,c?(TUb(),RUb):(TUb(),SUb));return cZb(b,new r0b(d,a.g))}function Pbb(a,b,c){var d;if(b.j==(tbc(),z8b)){d=b.b;switch(d.j.f){case 29:return true;case 26:return!Obb(a,d.b,c);case 27:return!Obb(a, d.b,c)&&!Obb(a,d.b?d.b.f:null,c)}}return false}function Jsb(){Jsb=aW;Gsb=new Msb;Fsb=new ctb;zsb=new ftb;Csb=new itb;Dsb=new ltb;Asb=new otb;Bsb=new rtb;new utb;Esb=new xtb;ysb=new Psb;xsb=new Ssb;wsb=new Vsb;Hsb=new Ysb;Isb=new _sb}function EAb(a,b){if(0==a.Lh()||oFc==a.Lh()||512==a.Lh())return a.e.G;oe(!a.Oh().isEmpty()||!a.Jh().isEmpty(),"Can't getProp %s of type %s",b,a);return MBb(OHb(a.Oh(),b),OHb(a.Jh(),b))}function QEb(a){var b,c,d,e,f;if(uHb(a.a,FKc))return up(a.b,a.a.q.getAtIndex(1));e= a.a.u.u;b=false;for(d=TEb(a).Od();d.Hd();){c=d.Id();f=QEb(c);if(f){b=true;e=JBb(e,f)}}return b?e:null}function hLb(a,b){var c,d,e,f;f=TJb(a.a,(tbc(),Eac));if(FKb(a,b.a))for(d=b.a.Od();d.Hd();){c=d.Id();e=lKb(a.a,c);he(e.j==mac||e.j==Mac||e.j==x8b||e.j==Aac||e.j==j9b);U5b(f,e)}return f}function zOb(a,b,c){var d;for(d=0;d=0){f=b.substr(0,c);e=Scb(a,f);d=adb(e,b.substr(c+1))}else{d=new edb(b,null);jtc(a.a.f,d)}rqc(a.a.g,b,d)}return d}function xub(a,b){var c,d,e,f;if(!b)return null; d=b.e;c=null;if(d.j==(tbc(),z8b)){e=d.b;if(Flb(e)){f=Thc(a.b,k6b(e.b.b));c=f?f.Hh():null}}else d.j==$8b&&(c=d.k.ii());return c?c.Kh():null}function Jlc(a){var b,c,d,e;e=new fmc(a.w);for(d=a.b.Od();d.Hd();){b=d.Id();_lc(e,b,false)}a.b=bmc(e);e=new fmc(a.w);for(c=a.b.Od();c.Hd();){b=c.Id();_lc(e,b,true)}a.a=bmc(e);a.c=a.b.Cd()}function UBc(a,b,c,d){var e,f;f=b;e=f.d==null||a.a.Pe(c.d,f.d)>0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Pe(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null; c.a[1]=null}function Vf(a,b,c,d){var e,f;a.Yd(b);a.Zd(c);e=a.b.containsKey(b);if(e&&Pd(c,a.b.Xd(b)))return c;d?Wf(a.d,c):Zd(!wf(a.d,c),TFc,c);f=a.b.put(b,c);e&&a.d.b.remove(f);a.d.b.put(c,b);return f}function D5(a,b){var c,d,e,f;for(f=(d=(new nsc(a.c.a)).a.Wd().b.Kj(),new tsc(d));f.a.Hd();){e=(c=f.a.Id(),c.ce());switch(e.Ug(b)){case 0:return 0;case 1:return 1;case 2:continue}}return 2}function PMb(a,b){var c;if(b==(CNb(),rNb)){VMb(a);c=OMb(a,!a.o?JNb(a.j):fMb(a));if(c){VMb(a);nMb(a,xNb)?!a.o?JNb(a.j): fMb(a):(bMb(a,RMc,a.j.g,INb(a.j)),null)}return c}else return OMb(a,b)}function dw(a){var b,c,d,e;e=zpc((zm(a.size(),"size"),new Lpc),123);d=true;for(c=To(a).Od();c.Hd();){b=c.Id();d||(e.a+=HFc,e);d=false;Fpc(zpc(Fpc(e,b.ce()),61),b.de())}return(e.a+="}",e).a}function NW(a,b,c){var d,e;fX(a,(BQb(),XPb),c);zX((tbc(),x8b),c);for(d=c.b;d;d=d.d)d==(c.b?c.b.f:null)&&ylb(c.e)?eX(a,d):d.j==Mac?JX(a,b,d):d.j==p9b?(e=e6b(d),0!=e&&YX(VGc+e,d)):oX(a,b,d)}function y3(a){!a.c&&(a.c=w3(a));if(a.e.a.length!=0||a.d.a.length!= 0){a.c=new $wb(a.f.a,a.f.a,I3(a.c.c,a.d),I3(a.c.d,a.e),a.c.a);a.e.a=mD(kT,KFc,1,0,5,1);a.d.a=mD(kT,KFc,1,0,5,1)}return a.c}function J7(a,b){var c;switch(b){case sJc:case "EvalError":case tJc:case uJc:case vJc:case "TypeError":case "URIError":return c=Pqb(Kjb(a),b),!(!!c&&!(!c.a||B3(c.a)));default:return false}}function olb(a){qkb();if(a.j!=(tbc(),K9b))return false;if(a.j==K9b&&z6b(a,tHc,tHc.length)||a.j==K9b&&z6b(a,uHc,uHc.length))return true;return a.b.j==E9b&&Xoc((a.b?a.b.f:null).ri(),"bind")}function zGb(a, b,c){switch(a.a.f){case 0:return zpc(tAb(a.d,b,c),94);case 2:return tAb(a.d,b,c);case 1:return zpc(tAb(a.d,b,c),61);default:throw BV(new sC("Unknown Attribute value "+a.a));}}function BTb(a,b,c,d,e,f){var g;g=gZb(lZb(fZb(iZb(dZb(kZb(hZb(mZb(jZb(new nZb((sZb(),rZb)),c),d),e),false),f),lSb(a)),gTb(a,1)),kSb(a)),new TYb(new r0b(b,a.g)));return cZb(g,new r0b(b,a.g))}function _tc(a,b){var c;if(iE(a)===iE(b))return true;if(a==null||b==null)return false;if(a.length!=b.length)return false;for(c=0;ca.g.b,b||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)?fSb(a):aSb(a,kWb))}return io(c.a)}function zkb(a){qkb();var b;switch(a.j.f){case 82:b=a.e;return!!b&&!(b.j==(tbc(),X8b)||b.j==i9b)&&b.j!=(tbc(),Z8b);case 72:case 73:case 101:case 67:case 96:return true; default:return false}}function JAb(a,b,c){var d,e,f;if(a==b)return true;f=b;return e=a.Oh(),e.size()==1&&Us(e.Od()).c||(d=f.Oh(),d.size()==1&&Us(d.Od()).c)?a.e.T?rBb(uAb(a),uAb(f)):KAb(uAb(a),uAb(f),c):KAb(a,f,c)}function puc(a){var b,c,d,e,f;if(a==null)return qFc;f=new HBc("[","]");for(c=a,d=0,e=c.length;d=a.a.length)return Juc(a)-1;d=(a.a[c]|0)&oFc>>>31-b%31-1;while(d==0){if(--c<0)return-1;d=a.a[c]|0}return c*31+(32-hoc(d))-1}function wp(a){var b,c,d,e,f,g,h;b=new oAc;for(d=a,e=0,f=d.length;e>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<0,eGc,c);d=a.a.Xd(b);if(!d){g=0;a.a.put(b,new Tm(c))}else{g=d.a;f=CV(g,c);Yd(DV(f,oFc)<=0,f);d.a+=c}a.b=CV(a.b,c);return g}function mFb(a,b){JEb();if(!a||!b)return null;if(eFb(a,b))return b;if(eFb(b,a))return a;if(a.a==b.a)return a.a.q.isEmpty()?a:new iFb(nFb(a,b),a.a);he(!vHb(a.a,b.a)&&!vHb(b.a,a.a));return null} function mKb(a,b){var c,d,e,f;f=$Jb(a,b);c=$5b(new e8b((tbc(),Xac),""+f),a.t);d=NJb(a,KJb(a,b.b));!!d&&(e=F6b(c,c.g,29),e!=c.g&&(c.g=e),!!d&&(c.g=new T7b(29,d,c.g)),c);hKb(c,b.b.b,b.b.a);return c}function FB(a,b,c){var d,e,f,g;JA(a.b,c-a.c);a.c=c;if(b){e=vB(a.j,b.d);JA(a.b,e-a.g);a.g=e;g=b.c.b;f=b.c.a;JA(a.b,g-a.i);a.i=g;JA(a.b,f-a.f);a.f=f;if(b.b!=null){d=uB(a.j,b.b);JA(a.b,d-a.e);a.e=d}}}function yC(a){var b;if(a.c==null){b=iE(a.b)===iE(wC)?null:a.b;a.d=b==null?qFc:fE(b)?b==null?null:b.name:hE(b)? GGc:tnc(pb(b));a.a=a.a+": "+(fE(b)?b==null?null:b.message:b+"");a.c="("+a.d+") "+a.a}}function XAb(a){var b,c,d;if(a.Oh().isEmpty()){he(!a.Jh().isEmpty());return a}b=(En(),new Ur);for(d=a.Oh().Od();d.Hd();){c=d.Id();Rr(b,TFb(c))}return IBb(a.e,a.Lh(),Np(new Rtc(b.a)),a.Vh(),a.Jh())}function AHb(a){var b;if(!a)return false;if(a.j==(tbc(),E9b))return true;b=a.e;if(a.j==V8b)return b.j==mac||b.j==z8b;if(a.j==mac)return b.j==nbc&&!a.b;if(a.j==K9b)return b.j==z9b;return false}function iKb(a){var b;switch(a.p.f){case 6:case 20:case 67:return false; case 49:case 43:case 42:case 46:case 55:case 45:b=uKb(a);if(b.p==(H_b(),e_b))return false;return true;default:return true}}function P0b(a){var b,c;if(a.a==null)return a.b.k=false,J0b(a,qFc,0);b=null;if(cE(a.a,158))b=new _xc(a.a.a);else if(cE(a.a,287))b=a.a;else throw BV(G0b(a));c=new Kpc;c.a+=""+b;return J0b(a,c,0)}function URb(a){var b,c,d;d=new utc;jtc(d,moc(0));for(c=0;c=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0)Vu(this)}this.b=b;this.a=null}function ND(a,b){var c,d,e,f;b&=63;c=a.h&LGc;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b- 22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return uD(d&KGc,e&KGc,f&LGc)}function Ikb(a,b){qkb();var c,d;he(a.j==(tbc(),zac));for(d=(!a.b?(Wuc(),Wuc(),Vuc):new Y7b(a.b)).Od();d.Hd();){c=d.Id();if(c.j==c9b&&c.b.si(b,false,true,false,false))return c.b?c.b.f:null}return null}function xzb(a,b){var c,d;he(a.c||b.c);if(a==a.a.v||a==a.a.g||b==b.a.v||b==b.a.g)return true;d=Coc(a.i.size(),b.i.size());for(c=0;cc)return Sd(a,c,"start index");if(b< 0||b>c)return Sd(b,c,"end index");return re("end index (%s) must not be less than start index (%s)",pD(kD(kT,1),KFc,1,5,[moc(b),moc(a)]))}function tfb(a,b,c,d,e){var f,g,h;f=(qkb(),g=Dkb(d),!g?null:j6b(g,29));h=hHb(b,c);if(!!jHb(b,c)&&!!h&&!Ifb(f,e,h)){Fjb(a.c.t,Kgb(d,(jeb(),ceb),pD(kD(pT,1),tFc,2,6,[c,"type "+b])));return true}return false}function Hpb(){Hpb=aW;Gpb=new _6("JSC_INSUFFICIENT_OUTPUT_VERSION",(lZ(),jZ),new iqc("Built-in ''{0}'' not supported in output version {1}"));Fpb=(En(),Pp(pD(kD(kT, 1),KFc,1,5,["goog.global.","window."])))}function l_(a,b,c,d){var e;if(d==3&&b.j==(tbc(),U9b)||(qkb(),Nlb(b.j)&&(e=b.e,!!e&&e.j==(tbc(),v9b)&&e.b==b)||b.j==(tbc(),zac)&&h6b(b.e,60)!=0||w_(a,b)=0;d--){i=mtc(a.b,d);for(e=i.size()-1;e>=0;e--){f=i.getAtIndex(e);if(b!=f&&Huc(a.c[b.c],f.c)&&c!=f&&Huc(a.c[c.c],f.c))return f}}return null}function AJb(a){yJb();var b,c,d,e;for(c=pD(kD(KO,1),PFc,144,0,[sJb,tJb,uJb,vJb,wJb,xJb]),d=0,e=c.length;d=c?new LA(f+1,e-c):a;else if(f==b)return new LA(f-1,e+c);else if(f>b)throw BV(new Ync("Cannot undo line cut on a previous line."));else return a}function gib(a,b,c){var d,e;if(b.j==(tbc(),mac)){he(!a.n.containsKey(b.ri()));a.n.put(b.ri(),c)}else{he(!tib(a,b));e=TGb(b);d=oib(a,e.a.getAtIndex(0));Fyb(d,(Ud(e.a.size()!= 1),new RGb(e.a.Ye(1,e.a.size()))),c)}}function Hib(a,b){var c,d,e,f,g;be(b);g=(d=(qkb(),e=Dkb(a.t),!e?null:j6b(e,29)),!d?(So(),So(),Ro):$2b(d));if(g.isEmpty())a.c=b;else{f=g.keySet();a.c=ryb(b,f)}c=j6b(a.t,51);!!c&&c.zh()&&W6b(a.t,BDb(a.a,syb(b)))}function dKb(a,b){var c,d,e;e=u4b(a.f);!!e&&(d=F6b(b,b.g,29),d!=b.g&&(b.g=d),!!e&&(b.g=new T7b(29,e,b.g)),b);if(a.g){if(!!j6b(b,29)&&O2b(j6b(b,29))!=null){c=L5b(a.g);d5b(c,O2b(j6b(b,29)));a.g=u4b(c)}M6b(b,a.g)}}function HMb(a,b){var c,d;d=pMb(a,(tbc(),cac)); c=zMb(a,b);if(!c)return bMb(a,UMc,a.j.g,INb(a.j)),null;VMb(a);if(!nMb(a,(CNb(),xNb)))return bMb(a,RMc,a.j.g,INb(a.j)),null;!a.o?JNb(a.j):fMb(a);U5b(d,c);return d}function DPb(a){if(APb(qPb,a))return"es3";if(APb(rPb,a))return"es5";if(APb(tPb,a))return"es6";if(APb(vPb,a))return"es7";if(APb(xPb,a))return"es8";if(APb(yPb,a))return"ts";throw BV(new Ync(a.a.Dd()));}function l6b(a,b){var c,d,e;e=(a.b?a.b.f:null).ri();b+=1+e.length;if(a.b.j==(tbc(),K9b)){c=l6b(a.b,b);if(!c)return null}else{d=k6b(a.b);if(d== null)return null;c=new Lpc;c.a+=""+d}Gpc((c.a+=".",c),e);return c}function luc(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){iuc(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);luc(b,a,i,j,-e,f);luc(b,a,j,h,-e,f);if(f.Pe(a[j-1],a[j])<=0){while(ca.a.Ej())return;c=(d=a.a.Ej(),d>=1E3?"error":d>=900?"warn":d>=800?"info":"log");CEc(c,a.b);!!a.c&&DEc(b,c,a.c,"Exception: ",true)}function fdb(a){var b;if(a.a){b=a.a.e;if(!b)return null;switch(b.j.f){case 65:case 47:case 96:return j6b(b,29);case 76:case 100:case 88:return a.a== b.b?j6b(b,29):j6b(a.a,29);case 43:return j6b(a.a,29)}}return null}function Afb(a,b){var c,d;he(b.j==(tbc(),Cac)||b.j==t8b);c=Dfb(a,b.b);if(!c)return null;d=Dfb(a,b.b.d);if(!d)return null;if(vAb(c,d))return c;if(b.j==t8b)return FBb(RAb(c,a.c.d.f),d);return FBb(RAb(c,a.c.d.A),d)}function pKb(a,b){var c,d;if(b.j==(tbc(),_9b)){c=b.b;for(d=b.e;!!d&&d.j!=E9b;d=d.e)if(d.j==_9b&&Xoc(d.b.ri(),c.ri())){a.d.oh(X0b('Duplicate label "%s"',pD(kD(kT,1),KFc,1,5,[c.ri()])),a.r,n7b(b.i),m7b(b.i));break}}}function DMb(a){var b, c,d,e,f;VMb(a);e=!a.o?JNb(a.j):fMb(a);c=a.j.g;d=INb(a.j);f=FMb(a,e);SMb(a,c,d,f,e==(CNb(),rNb));b=!f?null:new O5b(f,!a.g?null:a.g.Og());if(b){B5b(a.e,b);a.e.a.e=true;return u4b(a.e)}return null}function jY(a){var b,c;c=Ykb(a);switch(a.j.f){case 85:return"SCRIPT: "+c;case 65:b=Qkb(a);b==null&&(b="anonymous@"+n7b(a.i)+":"+m7b(a.i));return"FUNCTION: in "+c;default:throw BV(new Ync("unexpected Node type"));}}function slb(a){qkb();var b;switch(a.j.f){case 31:case 30:case 32:case 35:case 34:return true; case 92:case 19:case 79:case 22:return slb(a.b);case 29:b=a.ri();return Xoc(GJc,b)||Xoc(hLc,b)||Xoc("NaN",b)}return false}function eUb(a,b,c){var d,e;aSb(a,(YXb(),aXb));++a.j.f;e=(_n(),new fr);d=cUb(a);jtc(e.a,be(d));while(pUb(a,kWb)){aSb(a,kWb);d=cUb(a);!!d&&(jtc(e.a,be(d)),e)}aSb(a,fWb);--a.j.f;return new SZb(new r0b(b,a.g),c,io(e.a))}function r8b(b,c){var d,e,f;sBc();f=(CBc(),FBc(eOc));try{d=DBc(f,b)}catch(a){a=AV(a);if(cE(a,349))throw BV(new sC("no message resource found for message property "+ b));else throw BV(a);}e=new iqc(d);return jqc(e.a,c)}function tuc(a){var b,c,d,e,f;if(a==null)return qFc;f=new HBc("[","]");for(c=a,d=0,e=c.length;da.g.b;if(b||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb))return;IUb(a,"Semi-colon expected",pD(kD(kT,1),KFc,1,5,[]))}function qTb(a){var b,c,d;d=fVb(a.j,0).b.b;c=cSb(a);b=null;if(oUb(a,0,(YXb(),GWb))&&Xoc(fVb(a.j, 0).a,"as")){gSb(a,"as");b=bSb(a)}else LRb(c.a)&&GUb(a,null,GNc,pD(kD(kT,1),KFc,1,5,["as"]));return new BZb(new r0b(d,a.g),c,b)}function Zh(a,b,c){var d;d=a.c.Xd(b);if(!d){d=a.Ae(b);if(d.add(c)){++a.d;a.c.put(b,d);return true}else throw BV(new Smc("New Collection violated the Collection spec"));}else if(d.add(c)){++a.d;return true}else return false}function EQb(){BQb();return pD(kD($O,1),PFc,26,0,[ZPb,dQb,hQb,tQb,vQb,yQb,OPb,QPb,oQb,SPb,TPb,_Pb,aQb,bQb,iQb,jQb,rQb,NPb,sQb,uQb,wQb,xQb,VPb,XPb,nQb,qQb, WPb,lQb,$Pb,PPb,MPb,RPb,UPb,YPb,cQb,eQb,fQb,gQb,kQb,mQb,pQb,zQb,AQb])}function HFb(a){var b,c,d,e;e=IFb(a,new SGb(oJc));if(!!e&&(d=e.Lh()==2&&e.Oh().size()==1?Us(e.Oh().Od()):null,!!(!d?null:d.b))){b=(c=e.Lh()==2&&e.Oh().size()==1?Us(e.Oh().Od()):null,!c?null:c.b);if(b.d)return b}return null}function g7b(a,b){Vd(!b.e,"new child has existing parent");Vd(!b.d,"new child has existing next sibling");Vd(!b.f,"new child has existing previous sibling");this.j=a;this.e=null;this.b=b;b.d=null;b.f=this.b;b.e= this;this.i=-1}function Ipb(a,b){var c,d,e,f,g,h,i;i=new Zpb(a);dkb(a.a,b,i);if(i.a.a.size()!=0){d=null;for(f=(g=(new mrc(i.a.a)).a.Wd().Od(),new trc(g));f.a.Hd();){e=(c=f.a.Id(),c.ce());d=t1(a.a,e,false)}if(d){h=d.e;Lpb(a,h,d.d);q2(a.a,h)}}}function lvb(a,b){var c,d,e;c=(me($oc(b,spc(46))==-1,qHc,b),new e8b((tbc(),mac),b));w1(a).eg(b)&&(d=F6b(c,c.g,43),d!=c.g&&(c.g=d),c.g=new J7b(43,1,c.g));e=B1b(c,nbc);U5b(x3((!a.U&&(a.U=X1(a,rIc,0)),a.U),a),e);m2(a,v1(e));Z1(a)}function Gzb(a){var b,c,d;b=new nAb(a.a); if(!a.g){gAb(b,a.a.G);return b}c=CAb(a.g);if(!!c&&!c.a.q.isEmpty()&&c.b.d.d.isEmpty()){jAb(b,c.a.q);d=bFb(c);gAb(b,cBb(oGb(d.a.u,d,null,null,null,false,d.a.i)))}else gAb(b,a.g);return b}function YAb(a,b,c){var d,e,f;Ud(!!c);if(oFc==a.Lh()||0==a.Lh()||a.Oh().isEmpty())return a;d=(En(),new Ur);for(f=a.Oh().Od();f.Hd();){e=f.Id();Rr(d,UFb(e,b,c,false,false))}return IBb(a.e,a.Lh(),Np(new Rtc(d.a)),a.Vh(),a.Jh())}function Neb(a,b,c){var d,e;e=null;if(!c||c.j!=(tbc(),mac)||c.e.j==(tbc(),z8b)){e=JKc+Y5(a.b.j); lAc(a.b.b,b,e)}else if(uib(a.a,c.ri(),false)){d=c.ri();he(d.indexOf(".")==-1);e=JKc+Y5(a.b.j);lAc(a.b.b,b,e)}else e=c.ri();return e}function Qeb(a,b){var c,d,e;if(!t6b(b))return false;d=TGb(b);he(!zib(a.a,d));c=jib(a.a,d,false);if(!(!c?null:c.a))return false;b.j==(tbc(),K9b)&&Peb(!b.e?null:b.e.e);b.j==mac?e=pib(a.a,b.ri()).r:e=a.a;aib(e,b);return true}function sSb(a){var b;switch(fVb(a.j,0).c.f){case 14:b=tSb(a);fSb(a);break;case 29:b=OSb(a,false,true);break;case 31:b=XSb(a);break;case 110:case 111:b= DTb(a,true);break;default:case 25:case 38:case 30:b=wSb(a);fSb(a)}return b}function yCc(a,b,c){this.c=a;switch(b.f){case 2:if(a.a.Pe(null,c)<0)throw BV(new dhb("subMap: null less than "+c));break;case 1:a.a.Pe(null,null);break;case 3:a.a.Pe(c,c)}this.f=b;this.b=c;this.a=true;this.e=null;this.d=false}function dW(a,b){var c=$wnd;if(a==="")return c;var d=a.split(".");!(d[0]in c)&&c.execScript&&c.execScript("var "+d[0]);if(b){var e=b.prototype.Qj;e.g=b}for(var f;d.length&&(f=d.shift());)c=c[f]=c[f]|| !d.length&&b||{};return c}function px(a,b){var c,d,e;if(b===a)return true;if(cE(b,162)){e=b;if(BA(a.b)!=BA(e.b)||Zk(a).size()!=Zk(e).size())return false;for(d=Zk(e).Od();d.Hd();){c=d.Id();if(ol(a,c.b.ce())!=El(c))return false}return true}return false}function HX(a,b){var c;zX((tbc(),Eac),b);for(c=b.b;c;c=c.d)if(c.j==Mac){!!c.d&&YX("Rest parameters must come after all other parameters.",c);JX(a,Eac,c)}else c.j==j9b?$W(a,Eac,c):c.j==mac?tX(c):c.j==x8b?NW(a,Eac,c):FX(a,Eac,c)}function X4(a){switch(a.f){case 0:return zPb(), qPb;case 1:case 2:return zPb(),rPb;case 3:return zPb(),tPb;case 5:return zPb(),vPb;case 6:case 7:return zPb(),xPb;case 4:return zPb(),yPb;case 8:throw BV(new Xnc);}throw BV(new Xnc);}function Y5(a){var b,c,d;do{c=a.d;b=a.b;if(c.length==0){d=b%a.a.length;c=String.fromCharCode(a.a[d].a);b=b/a.a.length|0}while(b>0){--b;d=b%a.c.length;c+=aE(a.c[d].a);b=b/a.c.length|0}++a.b}while(xbc(c)||a.f.contains(c));return c}function X9(a,b,c){var d;d=K1b(c2b((me($oc(kKc,spc(46))==-1,qHc,kKc),new e8b((tbc(),mac), kKc)),(me($oc(GJc,spc(46))==-1,qHc,GJc),new e8b(mac,GJc))),t1b(g2b((me($oc(kKc,spc(46))==-1,qHc,kKc),new e8b(mac,kKc)))));S5b(c,d,b);Vjb(a)}function Lvb(){Lvb=aW;Gvb=new Mvb("MAX",0,1);Hvb=new Mvb("MIN",1,100);Ivb=new Mvb("STRICT",2,100);Evb=new Mvb(GLc,3,50);Jvb=new Mvb("SUPPRESS_BY_WHITELIST",4,40);Kvb=new Mvb("SUPPRESS_DOC",5,20);Fvb=new Mvb("FILTER_BY_PATH",6,1)}function oGb(a,b,c,d,e,f,g){be(b);if(!c)c=(zEb(),zEb(),yEb);else if(YFb(c)||!(!d||d!=d.a.c))return a.M;!!d&&!Bi(c,zHc,false)&&(!e||!Kyb(e, zHc))&&(c=BEb(c,zHc,new DGb(null,d.a.G,null,(OGb(),NGb))));return new VFb(a,b,c,d,e,f,g)}function Fec(a,b,c,d){var e,f,g,h;for(h=b.t.b.keySet().Od();h.Hd();){g=h.Id();if(!(a.Ni()||a.Li()||a.Mi()||Phc(a.w,(zhc(),Ogc))==a||wdc(a)||!!a.lj(g)))return false;e=a.jj(g);f=tdc(b,g);if(!e.Ti(f,c,d))return false}return true}function FX(a,b,c){var d,e;fX(a,(BQb(),XPb),c);zX((tbc(),Aac),c);for(d=c.b;d;d=d.d)d==(c.b?c.b.f:null)&&ylb(c.e)?eX(a,d):d.j==Yac?(zX(Yac,d),EX(d),e=e6b(d),(e<0||e>1)&&YX(aHc+e,d),!!d.b&& !d.b.d&&oX(a,b,d.b),undefined):oX(a,b,d)}function Nyb(a,b){var c,d;if(b.a.size()==1){c=b.a.getAtIndex(0);d=a}else{c=Gs(b.a);d=Lyb(a,(Ud(b.a.size()!=1),new RGb(b.a.Ye(0,b.a.size()-1))));if(!d)return false}return d.C.containsKey(c)||d.F.containsKey(c)||!!Bi(d.D,c,false)}function Fzb(a){var b,c,d,e;if(a==a.a.v||a==a.a.g||a==a.a.s||a.c)return a.a.s;b=Gzb(a);for(e=a.i.Od();e.Hd();){c=e.Id();gAb(b,c)}for(d=a.e.Od();d.Hd();){c=d.Id();cAb(b,c)}hAb(b,a.j);iAb(b,a.k);kAb(b,a.n);_zb(b,a.b);return mAb(b)}function nGb(a){var b, c,d,e,f;d=a;for(c=new Pqc((new Hqc(a.a)).a);c.b;){b=Oqc(c);f=b.de().d;e=f.Lh()==2&&f.Oh().size()==1?Us(f.Oh().Od()):null;!!e&&!dFb(e.d)&&!e.c&&(d=BEb(d,b.ce(),new DGb(null,XAb(f),null,(OGb(),NGb))))}return d}function TKb(a){var b,c,d,e;c=null;while(IKb(a.b)){b=E6b(a).b.ri();!c&&(c=new Ur);jtc(c.a,be(b))}if(c){e=Np(new Rtc(c.a));e.size()==1&&e.contains(DHc)&&(e=(HJb(),GJb));d=F6b(a,a.g,48);d!=a.g&&(a.g=d);!!e&&(a.g=new T7b(48,e,a.g))}}function hoc(a){var b,c,d;if(a<0)return 0;else if(a==0)return 32; else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-4096;b=d>>16&4;c+=b;a<<=b;d=a-IKc;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}function m_(a,b,c,d,e){var f,g;f=e==2;f&&G$(a.c,"(");h_(a,h6b(b,61)!=0?eIc:mFc);if(h6b(b,59)!=0){G$(a.c,"*");c.ri().length==0||a.c.Bg()}a.Gg(c,4);g=j6b(c,81);!!g&&a.Gg(g,4);a.Gg(c.d,4);v_(a,b);a.Gg(d,4);a.c.ug(e==0);f&&G$(a.c,")")}function zdb(){zdb=aW;xdb=new Adb("SET_FROM_GLOBAL",0);ydb=new Adb("SET_FROM_LOCAL",1);wdb=new Adb("PROTOTYPE_GET", 2);sdb=new Adb("ALIASING_GET",3);vdb=new Adb("DIRECT_GET",4);tdb=new Adb("CALL_GET",5);udb=new Adb("DELETE_PROP",6)}function RAb(a,b){var c,d,e,f;f=SAb(a,b);if(0==f.Lh()&&(d=a.Oh(),d.size()==1&&Us(d.Od()).c||(e=b.Oh(),e.size()==1&&Us(e.Od()).c))){f=SAb(uAb(a),uAb(b));if(0!=f.Lh())return a}return c=f.Oh(),c.size()==1&&Us(c.Od()).c?qGb(f,a.e):f}function tSb(a){var b,c,d,e;e=fVb(a.j,0).b.b;aSb(a,(HRb(),aRb).a);c=!!eSb(a,(YXb(),zXb));d=bSb(a);return b=gZb(lZb(fZb(iZb(hZb(jZb(new nZb((sZb(),pZb)),d),c), lSb(a)),gTb(a,1)),kSb(a)),new TYb(new r0b(e,a.g))),cZb(b,new r0b(e,a.g))}function pSb(a,b){var c,d,e;e=fVb(a.j,0).b.b;d=CSb(a,b);if(pUb(a,(YXb(),kWb))&&!oUb(a,1,yXb)){c=(_n(),new fr);jtc(c.a,be(d));while(pUb(a,kWb)&&!oUb(a,1,yXb)){aSb(a,kWb);dr(c,CSb(a,b))}return new vYb(new r0b(e,a.g),io(c.a))}return d}function XDc(a,b){var c,d,e,f,g,h,i;for(d=ttc(a.a,mD(iV,uOc,279,a.a.a.length,0,1)),f=0,h=d.length;fh6b(c,56)){if(sY(b,c))throw BV(new Ync(a+"unchanged scope marked as changed: "+jY(b)));}else if(!sY(b,c))throw BV(new Ync(a+"changed scope not marked as changed: "+jY(b)));}function J_(a,b,c,d,e,f,g){var h,i,j;he(!!c.cd);j=b==0?new Z_(f,c.pc,c.Xb,c.cd):new i0(c.Xb,c.cd);h=b==2?new Cub(j,g.a.c,g.a.e):new B_(j,g.a.c);d&&G$(h.c,"/** @externs */\n");e&&G$(h.c,"'use strict';");h.Gg(a,4);j.tg();i=j.i.a;return i}function Tab(){Tab=aW; Rab=new _6(iJc,(lZ(),iZ),new iqc("super() not allowed except in the constructor of a subclass"));Sab=new _6("JSC_INVALID_SUPER_CALL_WITH_SUGGESTION",iZ,new iqc("super() not allowed here. Did you mean super.{0}?"))}function Ulb(a,b){qkb();var c,d,e,f,g,h,i;d=!(a.j==(tbc(),K9b)||a.j==J9b);c=v1b(a,pD(kD(TR,1),rHc,7,0,[]));i=F6b(c,c.g,50);i!=c.g&&(c.g=i);(d?1:0)!=0&&(c.g=new J7b(50,d?1:0,c.g));for(f=b,g=0,h=f.length;g0&(a&a-1)==0);case 1:case 3:return 31-hoc(a);case 0:case 2:return 32-hoc(a-1);case 5:case 4:case 6:d=hoc(a);c=-1257966797>>>d;e=31-d;return e+(~~(c-a)>>>31);default:throw BV(new Rmc);}}function SX(a,b){var c,d,e;zX((tbc(),hbc),b);d=e6b(b);(d<2||d>3)&&YX(fHc+d,b);QW(a,b.b);e=false;c=b.b.d;zX(S8b,c);qX(c); if(c.b){SW(a,c.b);e=true}if(e6b(b)==3){QW(a,b.b?b.b.f:null);e=true}e||YX("Missing catch or finally for try statement.",b)}function Jib(a){var b,c,d,e,f,g,h;if(!a.r)return;f=a.r;e=a.q;while(f.t.j==(tbc(),E9b)){b=false;for(h=(d=(new mrc(e.a)).a.Wd().Od(),new trc(d));h.a.Hd();){g=(c=h.a.Id(),c.ce());if(!uib(f,g,false)){b=true;jzc(f.q,g)}}if(!b)break;e=f.q;f=f.r}}function Gzc(a,b){var c,d,e,f,g;f=b==null?0:a.b.Gj(b);d=(c=a.a.get(f),c==null?new Array:c);for(g=0;g>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?LGc:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?LGc:0;f=d?KGc:0;e=c>>b-44}return uD(e&KGc,f&KGc,g&LGc)}function c5b(a,b){if((a.a.a&2)!=0||d3b(a.a)||(a.a.a&MKc)!=0||Q2b(a.a)>0||(a.a.a&QJc)==nGc||_2b(a.a)||L2b(a.a)>0||N2b(a.a)!=null||!!a.a.g||(a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc|| (a.a.a&QJc)==yKc)return false;else{x3b(a.a,b);a.e=true;return true}}function x6b(a,b){if(!b||b.j!=a.j)return false;switch(a.j.f){case 29:return a.ri().length!=0&&Xoc(a.ri(),b.ri());case 33:case 99:return true;case 26:return Xoc((a.b?a.b.f:null).ri(),(b.b?b.b.f:null).ri())&&x6b(a.b,b.b);default:return false}}function _hc(){new SAc;this.o=new ezc;this.k=new mzc;this.b=new mzc;this.c=new oAc;this.e=new ezc;new Ct;new wm;new wm;this.n=new ezc;this.d=new blc(this,(_n(),_n(),$n),(null,$n));this.j=mD(nS, MLc,24,Bhc().length,0,1);this.i=new ezc;$hc(this)}function uib(a,b,c){be(b);he(b.indexOf(".")==-1);if(jAc(a.o,b)||a.f.contains(b)||a.k.containsKey(b)||jAc(a.j,b)||Xoc(SHc,b)||a.e.containsKey(b)||a.n.containsKey(b))return true;if(c)return a.u.contains(b)||!!a.c&&oyb(a.c,b)!=null;return false}function jvb(a,b,c){var d,e,f,g,h,i,j;f=ivb(a);if(!a.c){h=new ckb(a.a,new pvb(a),f);Yjb(h,b)}g=new ckb(a.a,a,f);bkb(g,b,c);for(j=(e=(new mrc(a.e.a)).a.Wd().Od(),new trc(e));j.a.Hd();){i=(d=j.a.Id(),d.ce());lvb(a.a, i);lzc(a.e,i)}!!a.b&&rvb(a.b)}function ASb(a){var b,c,d;c=fVb(a.j,0).b.b;d=KTb(a);while(b=fVb(a.j,0).b.b.b>a.g.b,!(b||oUb(a,0,(YXb(),vXb))||oUb(a,0,(YXb(),gWb))||oUb(a,0,(YXb(),tWb)))&&oUb(a,0,(YXb(),dXb))){aSb(a,(YXb(),dXb));aSb(a,iWb);d=new kYb(new r0b(c,a.g),d)}return d}function _gb(a){var b,c,d,e,f,g,h;b=mD(XT,KFc,283,a.a.length,0,1);for(f=0;f0||(a.a.a&QJc)==nGc||_2b(a.a)||L2b(a.a)>0||N2b(a.a)!=null||!!a.a.g||(a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)&&y2b(a.a,b)){a.e=true;return true}return false}function y$(a){var b,c,d;c=null;if(a.j==(tbc(),K9b))c=(a.b?a.b.f:null).ri();else if(a.j==mac){d=a.ri();b=bpc(d,spc(36));b!=-1&&(c=d.substr(b+1))}if(c!=null)if(Xoc(c,"inherits"))return F0(),D0;else if(Xoc(c,"mixin"))return F0(),E0;return null}function Dxb(){Dxb=aW;Bxb=new _6("JSC_INTERFACE_FUNCTION_NOT_EMPTY", (lZ(),jZ),new iqc("interface functions must have an empty body"));Cxb=new _6("JSC_INTERFACE_SHOULD_NOT_TAKE_ARGS",jZ,new iqc("Interface functions should not take any arguments"))}function FFb(a){var b,c,d,e,f,g;if(!uHb(a.d.a,KKc))return null;for(f=(d=(new xrc(a.g)).a.Wd().Od(),new Crc(d));f.a.Hd();){e=(c=f.a.Id(),c.de());g=e.d;if(g.Lh()==4&&g.Jh().size()==1){b=Us(g.Jh().Od());return DFb(a,DAb(Oyb(b)))?b:null}}return null}function Tfb(a,b,c){var d,e,f;Ud(b.j==(tbc(),K9b));e=b.e;d=e.j==z8b?e.b?e.b.f: null:null;if(!c){!!d&&d.j==E9b&&Lfb(a,d,null);return}!!d&&d.j==E9b&&(f=F6b(e,e.g,76),f!=e.g&&(e.g=f),e.g=new J7b(76,1,e.g));ufb(a,c,d);pfb(a,c,(b.b?b.b.f:null).ri(),b,d)}function frb(b,c){var d,e;erb(b);if(c>b.d.length)return null;c<1&&(c=1);e=b.d[c-1];d="";try{d=b.a}catch(a){a=AV(a);if(cE(a,101))return null;else throw BV(a);}return _oc(d,spc(10),e)==-1?e>=d.length?null:mpc(d,e,d.length):mpc(d,e,_oc(d,spc(10),e))}function WEb(a,b){var c,d;if(uHb(a.a,wJc)&&lEc(nEc(IEb,b))){if(a.b.d.d.isEmpty())return new DGb(null, a.a.u.G,null,(OGb(),NGb));he(a.b.d.d.size()==1);c=Us(Xo(a.b).Od());return new DGb(null,c,null,(OGb(),NGb))}d=kHb(a.a,b);return!d?null:BGb(d,a.b)}function PRb(){HRb();return pD(kD(bP,1),PFc,40,0,[KQb,LQb,MQb,PQb,QQb,SQb,TQb,UQb,VQb,$Qb,_Qb,aRb,bRb,eRb,fRb,mRb,sRb,vRb,wRb,xRb,zRb,BRb,CRb,DRb,ERb,FRb,NQb,OQb,WQb,XQb,YQb,dRb,uRb,cRb,gRb,jRb,oRb,pRb,qRb,rRb,tRb,GRb,nRb,yRb,ZQb,RQb,ARb,kRb,lRb])}function L1(a){switch(a.J.f){case 0:return a.L.ud?(!a.T&&(a.T=new veb(a,a.t)),a.T):(!a.Y&&(a.Y=new _hc),a.Y); case 1:return!a.Y&&(a.Y=new _hc),a.Y;case 2:return!a.T&&(a.T=new veb(a,a.t)),a.T;default:throw BV(new sC("Unhandled typechecker "+a.J));}}function HLb(a,b){var c,d,e,f,g;g=UJb(a.a,(tbc(),hbc),kKb(a.a,b.a));c=TJb(a.a,S8b);f=false;d=b.b;if(d){n7b(c.i)==-1&&hKb(c,d.o.b,d.o.a);f=true;U5b(c,jKb(a.a,d))}U5b(g,c);e=b.c;!!e&&U5b(g,kKb(a.a,e));!f&&!!e&&n7b(c.i)==-1&&hKb(c,e.o.b,e.o.a);return g}function VW(a,b,c){var d,e,f,g,h,i;fX(a,(BQb(),SPb),b);zX((tbc(),$8b),b);g=vbc(b.j);g!=-1&&(e=e6b(b),g!=e&&YX(WGc+ g+XGc+e,b));h=b.b;h.j==p9b?(f=e6b(h),0!=f&&YX(VGc+f,h)):tX(h);i=h.d;i.j==p9b?(d=e6b(i),0!=d&&YX(VGc+d,i)):eX(a,i);XW(a,b.b?b.b.f:null,c)}function i4b(a,b){if(!a&&!b)return true;if(!a&&!!b||!!a&&!b)return false;if(a.d==null&&b.d!=null||a.d!=null&&b.d==null)return false;return(a.d==null&&b.d==null||a.d.si(b.d,false,true,false,false))&&a.f==b.f&&a.e==b.e&&a.c==b.c&&a.b==b.b&&a.a==b.a}function E1(a,b){switch(b.f){case 0:return yJb(),sJb;case 1:case 2:return yJb(),tJb;case 3:return yJb(),uJb;case 4:return yJb(), xJb;case 5:return yJb(),vJb;case 6:case 7:return yJb(),wJb;default:throw BV(new Ync("Unexpected language mode: "+a.L.Ub));}}function ugb(){ugb=aW;tgb=new _6("JSC_IMPLICITLY_NULLABLE_JSDOC",(lZ(),jZ),new iqc("Name {0} in JSDoc is implicitly nullable, and is discouraged by the style guide.\nPlease add a '!' to make it non-nullable, or a '?' to make it explicitly nullable."))}function clb(a){qkb();switch(a.f){case 61:case 62:case 1:case 2:case 3:case 4:case 5:case 36:case 37:case 6:case 8:case 7:case 9:case 41:case 40:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:return true; default:return false}}function Pwb(a,b,c){var d,e,f;f="/".length;Xoc(c.substr(c.length-f,f),"/")&&(c=mpc(c,0,c.length-1));for(d=0;d0){e.a+=".";f=mD(lE,uFc,47,a.b.n,15,1);duc(f,f.length,48);e.a+=xpc(f,0,f.length)}e.a+="E+00";c=eW(a.a);Gpc(b,epc(c,69,101));if(a.b.i&&a.b.n==0){d=b.a.indexOf("e");b.a=mpc(b.a,0,d)+"."+lpc(b.a,d)}}function jib(a,b,c){var d,e; if(b.a.size()==1)return kib(a,b.a.getAtIndex(0),c);e=oib(a,b.a.getAtIndex(0));if(!e)return Eib(a,Tc(new Vc("."),b.a.Od()));d=Jyb(e,(Ud(b.a.size()!=1),new RGb(b.a.Ye(1,b.a.size()))));return d?d:Eib(a,Tc(new Vc("."),b.a.Od()))}function LAb(a){if(0==a.Lh()||-1==a.Lh()||oFc==a.Lh()||a.Lh()==64||a.Lh()==128||a.Lh()==32||a.Lh()==256||(a.Lh()&-25)==0&&(a.Lh()&24)!=0||a.Lh()==1||a.Lh()==4&&a.Jh().size()==1||512==a.Lh()||WJc==a.Lh())return false;return!(a.Lh()==2&&a.Oh().size()==1)}function N4b(a,b){if(!!b&& !((a.a.a&2)!=0||d3b(a.a)||(a.a.a&MKc)!=0||Q2b(a.a)>0||(a.a.a&QJc)==nGc||_2b(a.a)||L2b(a.a)>0||N2b(a.a)!=null||!!a.a.g||(a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)){H3b(a.a,b,yKc);a.e=true;return true}else return false}function B5b(a,b){if(!!b&&!((a.a.a&2)!=0||d3b(a.a)||(a.a.a&MKc)!=0||Q2b(a.a)>0||(a.a.a&QJc)==nGc||_2b(a.a)||L2b(a.a)>0||N2b(a.a)!=null||!!a.a.g||(a.a.a&QJc)==VJc||(a.a.a&QJc)==rFc||(a.a.a&QJc)==yKc)){H3b(a.a,b,VJc);a.e=true;return true}else return false}function xfb(a,b,c){var d, e,f;if(b.e.j==(tbc(),Sac)){f=c.i;!!f&&oFc!=f.Lh()&&256!=f.Lh()&&Fjb(a.c.t,Kgb(b,(jeb(),deb),pD(kD(pT,1),tFc,2,6,[])))}d=c.f.size()+c.d.size();e=e6b(b.b.d);!c.g&&e!=d&&Fjb(a.c.t,Kgb(b,(jeb(),ieb),pD(kD(pT,1),tFc,2,6,[""+d,""+e])))}function Ksb(a,b,c){Jsb();var d,e,f,g,h,i,j,k;if(APb(X4(a.L.Ub),(zPb(),sPb)))for(j=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();j.Hd();){i=j.Id();h=j6b(i,89);if(!!h&&!APb(rPb,h))for(e=c,f=0,g=e.length;f",LJc),Gwb(c));cwb();if(Xoc(b.substr(0,2),BIc)||Xoc(b.substr(0,3),NLc)){e=a;d=e.lastIndexOf("/");f=Gwb(e.substr(0,d+1)+(""+f))}return f} function mDb(a,b,c){var d,e;ie(!!b,"getTypedef should only be called when we know that the typedef is defined");if(b.a==(WHb(),VHb))return;e=QHb(b);if(!e){jzc(a.i,Kgb((he(b.a==THb),b.c).a,qCb,pD(kD(pT,1),tFc,2,6,[])));d=a.a.G}else d=dDb(a,e,c,null);RHb(b,d)}function k7b(a,b,c,d,e){Ud(!b.e);Ud(!b.d);Ud(!b.f);Ud(!c.e);Ud(!c.d);Ud(!c.f);Ud(!d.e);Ud(!d.d);Ud(!d.f);Ud(!e.e);Ud(!e.d);Ud(!e.f);this.j=a;this.e=null;this.b=b;b.d=c;b.f=e;b.e=this;c.d=d;c.f=b;c.e=this;d.d=e;d.f=c;d.e=this;e.d=null;e.f=d;e.e= this;this.i=-1}function ev(a,b){var c,d,e;if(iE(b)===iE(be(a)))return true;if(!cE(b,51))return false;d=b;e=a.size();if(e!=d.size())return false;if(cE(d,80)){for(c=0;c>>, objs <<<%s>>>, typeVar <<<%s>>>, enums <<<%s>>>", pD(kD(kT,1),KFc,1,5,[moc(b),c,d,e]))));}function IOb(a,b){var c,d;if(!gOb(a,b,(kPb(),iPb)))return false;d=(Zd(b.j==(tbc(),V8b),aNc,b),e6b(b)-1);for(c=0;c=0?a.c=new vtc(a.b):a.c=new utc;Ci(a.a,b.a);WA(new _A(a,b.d))}function lOb(a){var b,c,d,e;c=new kJb(new mzc,new mzc,(yJb(),uJb),1);e=_Nb(a.b,a.f,c,a.a);b=e.a;if(b.j!=(tbc(),Rac)||b.b.j!=z9b){a.a.ph(NMc+r8b(cNc,pD(kD(kT,1),KFc,1,5,[dNc])),a.b.Og(),a.d,a.c);return false}d=b.b.b;if(!FOb(a,d))return false;hOb(a,d);a.e=d;return true}function CD(a){var b,c,d;c=a.l;if((c&c-1)!=0)return-1;d=a.m;if((d&d-1)!=0)return-1;b=a.h;if((b&b-1)!=0)return-1;if(b== 0&&d==0&&c==0)return-1;if(b==0&&d==0&&c!=0)return ioc(c);if(b==0&&d!=0&&c==0)return ioc(d)+22;if(b!=0&&d==0&&c==0)return ioc(b)+44;return-1}function LX(a){var b,c,d;zX((tbc(),Vac),a);c=vbc(a.j);c!=-1&&(b=e6b(a),c!=b&&YX(WGc+c+XGc+b,a));d=a.e;switch(d.j.f){case 28:case 23:a==d.b&&YX("SPREAD node is not callable.",a);break;case 42:break;default:YX("SPREAD node should not be the child of a "+d.j+" node.",a)}}function NLb(a,b){var c,d,e,f;switch(b.a.f){case 30:PKb(a,b,(BQb(),VPb));e=(tbc(),d9b);break; case 38:PKb(a,b,(BQb(),iQb));e=(tbc(),eac);break;case 25:e=(tbc(),nbc);break;default:throw BV(new Xnc);}f=TJb(a.a,e);for(d=b.b.Od();d.Hd();){c=d.Id();U5b(f,lKb(a.a,c))}return f}function ukb(a,b,c){qkb();var d;switch(a.j.f){case 102:case 28:case 23:return true;case 29:return!glb(a,c)&&!b.contains(a.ri());case 26:case 27:return true;case 65:he(a.j==(tbc(),E9b)&&!Jlb(a.e));return false}for(d=a.b;d;d=d.d)if(ukb(d,b,c))return true;return false}function $xb(){$xb=aW;Yxb=new _6("JSC_PRIMITIVE_OBJECT",(lZ(), kZ),new iqc("Explicit creation of a {0} object."));Zxb=new _6("JSC_PRIMITIVE_OBJECT_DECLARATION",kZ,new iqc("Declaration of {0} object instead of primitive type."));En();Pp(pD(kD(kT,1),KFc,1,5,[xJc,zJc,GGc]))}function MAb(a){if(oFc==a.b||-1==a.b)return true;if((a.b&2)!=0&&be(a.c).isEmpty())return false;if((a.b&2)==0&&!be(a.c).isEmpty())return false;if((a.b&4)!=0&&be(a.a).isEmpty())return false;if((a.b&4)==0&&!be(a.a).isEmpty())return false;return(a.b&1)!=0==(a.d!=null)}function FSb(a){var b,c;c=fVb(a.j, 0).b.b;a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),PPb)]));gSb(a,IHc);aSb(a,(YXb(),EWb));if(pUb(a,zXb)){IUb(a,JNc,pD(kD(kT,1),KFc,1,5,[]));aSb(a,zXb)}b=eZb(jZb(new nZb((sZb(),pZb)),bSb(a)));jTb(a,b,(TUb(),QUb));return cZb(b,new r0b(c,a.g))}function a4b(a,b,c,d,e){if(b>d)throw BV(new Ync("Recorded bad position information\nstart-line: "+b+BGc+"end-line: "+d));else if(b==d&&c>=e)throw BV(new Ync("Recorded bad position information\nline: "+b+BGc+"start-char: "+c+BGc+"end-char: "+e));a.f=b;a.e=c;a.c=d;a.b= e}function mfb(a,b){var c,d,e;d=(qkb(),e=Dkb(b),!e?null:j6b(e,29));if(!!d&&(d.a&QJc)==VJc&&(c=(d.a&QJc)==VJc&&((QJc&d.a)==VJc?d.i:null).a.j==(tbc(),E9b),!(c||(d.a&QJc)==nGc||!!d.g||Q2b(d)>0||(d.a&2)!=0||(d.a&IKc)!=0&&(d.a&QJc)!=VJc)))return false;return Aib(a.a,b)||Mlb(b)}function bhb(a){var b,c;new xzc;this.a=mD(AL,KFc,302,a.a.length,0,1);for(c=0;c=0,"Invalid module index: %s",c);b.c=c;this.a[c]=b}this.b= Zgb(this);this.c=_gb(this);$gb(this)}function bzb(a,b){var c,d,e,f,g;g=false;for(f=a.Od();f.Hd();){d=f.Id();if(JAb(d.a,b,new EHb((zEb(),zEb(),yEb)))){g=true;break}}if(!g)return a;c=(En(),new Ur);for(e=a.Od();e.Hd();){d=e.Id();JAb(d.a,b,new EHb((zEb(),zEb(),yEb)))||(jtc(c.a,be(d)),c)}return Np(new Rtc(c.a))}function QCb(a,b,c,d,e,f,g,h){var i,j;i=h||c.j!=(tbc(),E9b)?null:j6b(c.b,29);j=!b?null:(QJc&b.a)==nGc?b.i:null;if(d.j==(tbc(),Sac)&&!j)iAb(g,a.a.B);else if(i){iAb(g,SCb(a,i,f,e));!!j&&jzc(a.i,Kgb(c, JCb,pD(kD(pT,1),tFc,2,6,["the return type"])))}else iAb(g,dDb(a,j,f,e))}function _Db(a,b){var c;c=b.s;a.O=b;a.bb=DAb(b.r);a.U=oGb(a,c,(zEb(),zEb(),yEb),null,null,true,(wFb(),uFb));a.ab=cBb(a.bb);cBb(oGb(a,c,(null,yEb),null,null,false,tFb));cBb(oGb(a,c,(null,yEb),null,null,false,sFb));a.M=new VFb(a,!a.O?null:a.O.s,be(a.d),null,null,false,uFb)}function Q3(a,b,c){var d,e,f,g;switch(b.j.f){case 28:e=a.a._f(b,c);e&&QBc(a.b,EHc,pHc);g=a.a.$f(b,c);g!=null&&jtc(a.d,g);f=a.a.Zf(b,c);f!=null&&jtc(a.c,f);return; default:if(!!c&&c.j!=(tbc(),z9b)&&(qkb(),!(c.j==(tbc(),Rac)||c.j==kac)))return}for(d=b.b;d;d=d.d)Q3(a,d,b)}function V4(){V4=aW;M4=new Y4(NIc,0);N4=new Y4(OIc,1);O4=new Y4("ECMASCRIPT5_STRICT",2);Q4=new Y4("ECMASCRIPT_2015",3);P4=new Y4("ECMASCRIPT6_TYPED",4);R4=new Y4("ECMASCRIPT_2016",5);S4=new Y4("ECMASCRIPT_2017",6);T4=new Y4("ECMASCRIPT_NEXT",7);U4=new Y4("NO_TRANSPILE",8)}function Tcb(a,b){var c,d,e;if(!b)return ndb(),ldb;switch(b.j.f){case 96:return ndb(),hdb;case 43:return ndb(),kdb;case 65:return ndb(), idb;case 61:return Tcb(a,b.b?b.b.f:null);case 60:c=b.b.d;d=Tcb(a,c);if(d!=(ndb(),ldb))return d;e=c.d;return Tcb(a,e)}return ndb(),ldb}function FMb(a,b){var c,d;c=false;if(b==(CNb(),lNb)){b=!a.o?JNb(a.j):fMb(a);if(b==xNb){a.o=b;return XMb(a,(tbc(),o9b),new e7b(p9b))}c=true}d=KMb(a,b);if(d){VMb(a);if(c)d=XMb(a,(tbc(),o9b),d);else if(nMb(a,pNb)){!a.o?JNb(a.j):fMb(a);VMb(a);d=XMb(a,(tbc(),u9b),d)}}return d}function gfb(a,b){var c,d,e,f,g,h,i;Ud(a.j==(tbc(),E9b));Ud(a.e.j==V8b);if(!b)return null;d=yAb(b); if(!d||(g=Mzb(d.d),!!g&&g.a.g==0)||(f=Mzb(d.d),!!f&&f.a.g!=0))return null;c=Dzb(d);h=e6b(a.b.d);i=c.f.size()+c.d.size();e=!!c.g;if(e&&h<=i+1||!e&&h<=i)return c;return null}function Aub(a,b){var c,d,e;c=(qkb(),d=Dkb(b),!d?null:j6b(d,29));if(!c&&b.j!=(tbc(),E9b))return"";e=b.k;return!e?"":e.$h()?yub(a,b):e.Yh()?"/** @enum {"+tAb(e.ji().Ih(),new Kpc,(HHb(),FHb)).a+"} */\n":!e.di()&&!e.Wh()&&!e.ei()&&!e.bi()?"/** @type {"+b.k.ki()+"} */\n":""}function ufb(a,b,c){var d;if(b.g!=0&&!!c){d=a.c.f.ag();c.j== (tbc(),E9b)&&(qkb(),!(c.j==E9b&&!Jlb(c.e)&&llb(c.b?c.b.f:null)))?Fjb(a.c.t,Kgb(c,(jeb(),Vdb),pD(kD(pT,1),tFc,2,6,[]))):c.j!=E9b&&!(d!=null&&z6b(c,d,d.length))&&Fjb(a.c.t,Kgb(c,(jeb(),Xdb),pD(kD(pT,1),tFc,2,6,[])))}}function wgb(){wgb=aW;vgb=new _6("JSC_J2CL_REFERENCE_EQUALITY",(lZ(),kZ),new iqc("Reference equality may not be used with the specified type: {0}"));So();new Px(pD(kD(SU,1),iGc,50,0,[(ym(QKc,RKc),new Vq(QKc,RKc)),(ym(SKc,TKc),new Vq(SKc,TKc)),(ym(UKc,VKc),new Vq(UKc,VKc))]))}function Tzb(a, b,c,d,e,f,g,h,i,j,k){var l;!b&&(b=(_n(),_n(),$n));!c&&(c=(_n(),_n(),$n));!h&&(h=(So(),So(),Ro));!i&&(i=(_n(),_n(),$n));if(d)for(l=c.size()-1;l>=0;l--)if(vAb(d,c.getAtIndex(l)))c.removeAtIndex(l);else break;return new Jzb(a,io(b),io(c),d,e,f,g,_o(h),i,j,k)}function WFb(a,b,c,d,e){var f,g,h;h=d.d;f=a?new DGb(d.c,RAb(d.d,e.d),d.b,IGb(d.a,e.a)):new DGb(d.c==e.c?d.c:null,JBb(d.d,e.d),null,IGb(d.a,e.a));g=f.d;if(0==g.Lh())return g.e.d;if(oFc!=g.Lh()&&JAb(g,h,new EHb((zEb(),zEb(),yEb)))&&!vAb(g,h))return BEb(b, c,f);return CEb(b,c)}function fTb(a,b,c){var d,e,f;!c&&(c=new OZb(hSb(a,fVb(a.j,0).b.b)));aSb(a,(YXb(),vXb));pUb(a,vXb)?e=new OZb(hSb(a,fVb(a.j,0).b.b)):e=pSb(a,1);aSb(a,vXb);pUb(a,hWb)?f=new OZb(hSb(a,fVb(a.j,0).b.b)):f=pSb(a,1);aSb(a,hWb);d=YTb(a);return new _Yb(new r0b(b,a.g),c,e,f,d)}function _ec(a,b,c,d,e,f,g){Jbc();nec.call(this,a,b,Shc(a,(zhc(),Kgc)),g,e);this.d=(_n(),_n(),$n);this.c=(null,$n);this.s=true;Ud(true);be(c);this.i=null;if(f){this.f=(Sfc(),Pfc);this.k=d?d:new Vfc(a,this,g)}else{this.f= (Sfc(),Rfc);this.k=d?d:Shc(a,vhc)}this.b=c;this.e=false}function yLb(a,b){var c,d,e,f,g,h,i,j,k;i=b.a;f=ZJb(a.a,(j=i.a,k=bpc(j,spc(47)),j.substr(1,k-1)));hKb(f,i.b.b,i.b.a);g=UJb(a.a,(tbc(),Lac),f);h=i.a;e=bpc(h,spc(47));c="";e=0x7fffffffffffffff)return XD(),TD;e=false;if(a<0){e=true;a=-a}d=0;if(a>=OGc){d=jE(a/OGc);a-=d*OGc}c=0;if(a>=NGc){c=jE(a/NGc);a-=c*NGc}b=jE(a);f=uD(b,c,d);e&&AD(f);return f}function x1(a){var b,c,d,e,f,g,h;f=a.L.pb;if(f.a.a.isEmpty())return t3(new U2(a));else{b=new Kpc;for(e=Zs(new hwc(f.a.b.Od()));e.Hd();){d=e.Id();g=G1(a,d);h=g?(c=j6b(g,51),"// "+(!c?null:c.Og())+BGc+(!a.L&&T1(a,new d4),C2(a,g,true))):"File '"+d+"' not found";b.a+=h}return b.a}}function ilb(a,b){qkb();switch(a.j.f){case 71:return a.b== b;case 44:return a.b==b||(a.b?a.b.f:null)==b;case 72:case 73:case 101:case 70:case 83:case 77:case 78:return(a.b?a.b.f:null)==b;case 66:case 67:case 68:return a.b!=b;case 69:return true;default:he(hlb(a));return false}}function rfb(a,b){var c,d,e;d=(qkb(),e=Dkb(b),!e?null:j6b(e,29));if(!!d&&(c=(d.a&QJc)==VJc&&((QJc&d.a)==VJc?d.i:null).a.j==(tbc(),E9b),c||(d.a&QJc)==nGc||!!d.g||Q2b(d)>0||(d.a&2)!=0||(d.a&IKc)!=0&&(d.a&QJc)!=VJc))return null;if(seb(a.c,b)&&!vfb(a,b))return lfb(a,b);return null}function kGb(a, b,c,d){var e,f,g,h,i,j;f=(zEb(),zEb(),yEb);for(h=jy($x(new mrc(a),new mrc(b)));Fh(h);){g=Gh(h);i=dGb(a,c,g);j=dGb(b,d,g);e=null;!i?e=j.a==(OGb(),MGb)?j:new DGb(j.c,j.d,j.b,MGb):!j?e=i.a==(OGb(),MGb)?i:new DGb(i.c,i.d,i.b,MGb):e=GGb(i,j);f=BEb(f,g,e)}return f}function $ec(a,b,c){var d,e,f,g,h;e=null;if(Wcc(a.b,b.b,0,new mgc(true)))e=a.b.a;else return null;f=c?a.b.b.Ei(b.b.b):a.b.b.Di(b.b.b);h=null;if(gcc(a.k,b.k))h=a.k;else{d=c?a.k.Ei(b.k):a.k.Di(b.k);h=d}g=a.b.c||b.b.c;return new _ec(a.w,null,new adc(a.w, e,f,g),h,null,false,false)}function Bhc(){zhc();return pD(kD(kS,1),PFc,32,0,[ygc,xgc,Bgc,Agc,zgc,Cgc,Egc,Dgc,Fgc,Ggc,Hgc,Igc,Jgc,Kgc,Lgc,Sgc,Ygc,Vgc,Ugc,chc,$gc,bhc,dhc,ehc,fhc,ghc,ihc,hhc,khc,jhc,lhc,nhc,ohc,rhc,shc,vhc,whc,xhc,yhc,phc,mhc,Zgc,wgc,Rgc,Pgc,Qgc,Mgc,thc,uhc,Ogc,Ngc,Tgc,_gc,ahc,Xgc,Wgc,qhc])}function Kpb(a,b){switch(DPb(b)){case "ts":return Jpb(a,(V4(),P4));case "es8":return Jpb(a,(V4(),S4));case "es7":return Jpb(a,(V4(),R4));case "es6":case "es6-impl":return Jpb(a,(V4(),Q4));case "es5":return Jpb(a, (V4(),N4));case "es3":return Jpb(a,(V4(),M4));default:return false}}function HKb(a,b,c,d){var e,f;v6b(d)||a.a.d.oh(X0b("Invalid %s %s operand.",pD(kD(kT,1),KFc,1,5,[c?"postfix":"prefix",b==(tbc(),V9b)?"increment":"decrement"])),a.a.r,n7b(d.i),m7b(d.i));e=UJb(a.a,b,d);f=F6b(e,e.g,32);f!=e.g&&(e.g=f);(c?1:0)!=0&&(e.g=new J7b(32,c?1:0,e.g));return e}function xSb(a){var b,c;c=fVb(a.j,0).b.b;b=(_n(),new fr);aSb(a,(YXb(),cXb));while(oUb(a,0,yXb)||uUb(a)){dr(b,DSb(a));if(!pUb(a,hWb)){aSb(a,kWb);pUb(a,hWb)&& IUb(a,"Invalid trailing comma in arguments list",pD(kD(kT,1),KFc,1,5,[]))}}aSb(a,hWb);return new hYb(new r0b(c,a.g),io(b.a))}function NB(a,b){var c,d,e,f,g,h,i;g=new Rsc;for(d=new Rtc(a.c.e);d.a=vFc&& a<=FGc){c=(LEc(a>=0&&a<=FGc),a>=vFc?pD(kD(lE,1),uFc,47,15,[wFc+(a-vFc>>10&xFc)&yFc,zFc+(a-vFc&xFc)&yFc]):pD(kD(lE,1),uFc,47,15,[a&yFc]));hC(c[0],b);hC(c[1],b);return}ypc(ypc(ypc(ypc((b.a+="\\u",b),fC[a>>>12&15]),fC[a>>>8&15]),fC[a>>>4&15]),fC[a&15])}function B5(a,b){var c,d,e,f,g,h,i;j:for(i=b.b.Od();i.Hd();){h=i.Id();g=(j6(),kqc(i6,h)||qqc(i6,h,new m6(h)),nqc(i6,h));for(f=(d=(new nsc(a.c.a)).a.Wd().b.Kj(),new tsc(d));f.a.Hd();){e=(c=f.a.Id(),c.ce());if(e.Sg(g))continue j;else if(e.Tg(g))return false}return false}return true} function Bab(a,b,c){var d,e,f,g;e=(b.b?b.b.f:null).ri();c.e.j==(tbc(),d9b)||o2(a.a.c,Kgb(c.e,(qab(),oab),pD(kD(pT,1),tFc,2,6,[])));if(c.j==Aac)for(d=c.b;d;d=d.d)!!d.b||U5b(d,a7b(T1b(d.ri()),d));f=b7b(Xlb(a.a.c,e),b);G6b(c,b,f);g=c.e;T5b(g.e,b7b((ie(P1b(b),b),new g7b(z9b,b)),b),g)}function peb(a,b,c){var d,e,f,g;Ud(b.a.f);Ud(b.a.g!=0||tHb(b.a));if(!XEb(b,c))return En(),Rx(),Qx;else if(pq(a.o,b.a,c)!=null){f=pq(a.o,b.a,c);return En(),new Ey(b.a.q.isEmpty()?f:Xfb(f,b))}g=(En(),new Ur);for(e=UEb(b).Od();e.Hd();){d= e.Id();Tr(g,peb(a,d,c))}return Np(new Rtc(g.a))}function Eeb(a){jeb();var b,c;qkb();if(a.j==(tbc(),z9b)&&a.b.j==z8b&&Deb(a.b.b)&&t6b(a.b.b))return true;if(a.j==zac){c=a.e;if(c.j==z8b&&c.e.j==z9b&&c.b.j==K9b&&Xoc(i6b(c.b).ri(),zHc))return true;b=j6b(a,29);return!!b&&(!b.d?null:b.d.g)!=null&&Woc(!b.d?null:b.d.g,zHc)}return false}function Dzb(a){var b,c,d,e;if(a==a.a.s)return Byb(a.a);me(!a.c,"Loose function: %s",a);b=new nAb(a.a);!a.n.isEmpty()&&jAb(b,a.n);for(e=a.i.Od();e.Hd();){c=e.Id();gAb(b,c)}for(d= a.e.Od();d.Hd();){c=d.Id();cAb(b,c)}hAb(b,a.j);iAb(b,a.k);bAb(b,a.d);fAb(b,a.g);_zb(b,a.b);return lAb(b)}function Lz(){Lz=aW;Kz=new gA("base64()",vGc,nnc(61));new gA("base64Url()","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",nnc(61));new $z("base32()","ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",nnc(61));new $z("base32Hex()","0123456789ABCDEFGHIJKLMNOPQRSTUV",nnc(61));new dA}function h9(a){var b,c,d,e,f;d=j6b(a,29);if(d){c=a.j==(tbc(),L9b)||h6b(a,73)!=0;if(c&&!!((QJc&d.a)==nGc?d.i:null))return(QJc& d.a)==nGc?d.i:null;else{e=S2b(d);if(e.size()==1){f=T2b(d,Us(S2b(d).Od()));if(f)return f}}}return new O5b(new e7b((tbc(),Jac)),(b=j6b(a,51),!b?null:b.Og()))}function Ekb(a){qkb();var b,c;c=a.e;b=a.j==(tbc(),E9b)&&jlb(a.e);if(b)return a.b;else if(c.j==mac)return c;else if(c.j==z8b)return c.b;else if(Blb(c))return c;else if(c.j==N9b&&c.b!=a||c.j==Cac||c.j==t8b||c.j==b9b&&c.b!=a)return Ekb(c);else if(c.j==Y8b)return Ekb(c);return null}function Vzb(a,b){var c;if(!a)return null;c=a.Lh()==2&&a.Oh().size()== 1?Us(a.Oh().Od()).d:null;if(!c)return TAb(a,b);if(c.a.q.isEmpty())return!c.a.q.isEmpty()&&!c.b.d.d.isEmpty()?cBb(oGb(c.a.u,c,null,null,null,false,c.a.i)):c.a.r;if(b.isEmpty())return a;return cBb(_Fb(aFb(c,b)))}function i2(b,c){var d,e,f,g;f=new Cpb(b);for(e=c.Od();e.Hd();){d=e.Id();if(!Woc(d.a.Rg().b,".json"))continue;d.b=b;try{grb(d.a.Rg(),"("+d.a.Rg().a+")")}catch(a){a=AV(a);if(cE(a,101))continue;else throw BV(a);}g=x3(d,b);if(!g)continue;he(g.j==(tbc(),Rac));dkb(f.a,g,f)}return _o(f.b)}function gTb(a, b){var c,d,e;d=fVb(a.j,0).b.b;aSb(a,(YXb(),cXb));e=(_n(),new fr);while(yUb(a,b)){dr(e,JTb(a,b));if(!pUb(a,hWb)){c=aSb(a,kWb);pUb(a,hWb)&&GUb(a,c,"Invalid trailing comma in formal parameter list",pD(kD(kT,1),KFc,1,5,[]))}}aSb(a,hWb);return new aZb(new r0b(d,a.g),io(e.a))}function Ceb(a,b){jeb();var c,d,e,f,g;g=a.e;return a.j==(tbc(),K9b)&&a.b.j==ebc&&(g.j==z8b&&nb(g.b,a)||g.j==z9b)&&(d=(qkb(),f=Dkb(b.t),!f?null:j6b(f,29)),b.t.j==E9b&&!!d&&(d.a&2)!=0||(c=(e=Dkb(b.t),!e?null:j6b(e,29)),b.t.j==E9b&&!!c&& ((c.a&512)!=0||(c.a&jJc)!=0))||(Ud(!!b.t),Elb(b.t)))}function iJb(){gJb();return pD(kD(IO,1),PFc,30,0,[FIb,aIb,bIb,cIb,dIb,eIb,TIb,fIb,gIb,hIb,iIb,jIb,kIb,nIb,oIb,lIb,mIb,pIb,qIb,rIb,sIb,tIb,uIb,vIb,wIb,xIb,yIb,zIb,AIb,BIb,CIb,DIb,EIb,HIb,IIb,JIb,KIb,GIb,LIb,MIb,NIb,OIb,PIb,QIb,RIb,SIb,UIb,VIb,WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb])}function T0b(a){var b,c,d;if(!cE(a.a,218))return null;c=a.a;b=Tnc(c);d=null;if(isNaN(b))d="NaN";else if(b==Infinity)a.b.d?d="+Infinity":a.b.j?d=" Infinity":d=hLc; else if(b==-Infinity)a.b.g?d="(Infinity)":d="-Infinity";else return null;a.b.n=-1;a.b.k=false;return J0b(a,d,0)}function bX(a,b,c){var d;zX((tbc(),w9b),b);if(h6b(b,64)!=0){d=e6b(b);2!=d&&YX($Gc+d,b);zX(p9b,b.b);OX(b.b.d)}else if(h6b(b,63)!=0){d=e6b(b);1!=d&&YX(ZGc+d,b);eX(a,b.b)}else{d=e6b(b);(d<1||d>2)&&YX(_Gc+d,b);b.b.j==y9b?dX(b.b):MX(a,b.b,c);!!b.b&&!!b.b.d&&b.b.d==(b.b?b.b.f:null)&&OX(b.b.d)}}function zeb(a){var b,c,d;if(!a||!a.c)return false;c=(qkb(),d=Dkb(a.a),!d?null:j6b(d,29));if(!c)return true; return((c.a&64)!=0||(c.a&WJc)!=0)&&(b=(c.a&QJc)==VJc&&((QJc&c.a)==VJc?c.i:null).a.j==(tbc(),E9b),!(b||(c.a&QJc)==nGc||!!c.g||Q2b(c)>0||(c.a&2)!=0||(c.a&IKc)!=0&&(c.a&QJc)!=VJc))}function kxb(){l1();new ezc;this.v=new oAc;this.B=new mDc;this.S=new mDc;this.w=new mDc;new mDc;this.g=new Kpc;this.i=new k$;this.t=new mzc;this.J=(pW(),mW);this.K=(qqb(),new wqb(this));this.b=new msb;this.j=new msb;this.R=new b3;this.Q=new gpb;this.c=new utc;So();new SAc;m1(this,this.Q)}function vOb(a,b){if(!gOb(a,b,(kPb(), _Ob)))return false;if((Zd(b.j==(tbc(),V8b),aNc,b),d6b(b,1)).j!=Xac){a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,["property name"])),a.b.Og(),a.d,a.c);LOb(a,_Ob.d);return false}if(!FOb(a,(Zd(b.j==V8b,aNc,b),d6b(b,2)))){LOb(a,_Ob.d);return false}return true}function Ld(a){var b,c,d,e,f,g,h;f=a.d;d="";c=zpc(Gpc(new Lpc,a.a),123);for(h=a.b.b;h;h=h.b){g=h.c;if(!f||g!=null){c.a+=d;d=HFc;h.a!=null&&zpc(Gpc(c,h.a),61);if(g!=null&&(pb(g).i&4)!=0){e=pD(kD(kT,1),KFc,1,5,[g]);b=$tc(e,new mzc);Epc(c,b,1,b.length-1)}else c.a+= ""+g}}return(c.a+="}",c).a}function iX(a,b){var c,d,e;fX(a,(BQb(),lQb),b);zX((tbc(),Q9b),b);d=vbc(b.j);d!=-1&&(c=e6b(b),d!=c&&YX(WGc+d+XGc+c,b));b.b.j==mac?tX(b.b):zX(p9b,b.b);e=b.b.d;switch(e.j.f){case 105:kX(e);break;case 107:e.ri()==null&&YX(bHc,e);e.ri().length==0&&YX(cHc,e);break;default:zX(p9b,e)}OX(d6b(b,2))}function iwb(a,b){cwb();var c,d,e,f;e=a;!Xoc(e.substr(0,"/".length),"/")&&!(Xoc(e.substr(0,BIc.length),BIc)||Xoc(e.substr(0,NLc.length),NLc))&&(e="/"+e);for(d=b.Od();d.Hd();){c=d.Id(); if(Xoc(e.substr(0,c.length),c)){f=lpc(e,c.length);if(Xoc(f.substr(0,1),"/"))return f.substr(1)}}return a}function tTb(a){var b,c,d,e,f,g;e=fVb(a.j,0).b.b;aSb(a,(YXb(),MWb));d=bSb(a);c=lSb(a);f=(_n(),new fr);if(pUb(a,AWb)){aSb(a,AWb);g=cUb(a);jtc(f.a,be(g));while(pUb(a,kWb)){aSb(a,kWb);g=cUb(a);!!g&&(jtc(f.a,be(g)),f)}}aSb(a,bXb);b=vTb(a);aSb(a,gWb);return new DZb(new r0b(e,a.g),d,c,io(f.a),b)}function Pp(a){En();var b,c,d,e,f,g;g=new SAc;Xuc(g,a);for(c=(f=(new mrc(g.a)).a.Wd().Od(),new trc(f));c.a.Hd();){b= (d=c.a.Id(),d.ce());be(b)}switch(g.a.size()){case 0:return Rx(),Qx;case 1:return new Ey((e=(new mrc(g.a)).a.Wd().Od(),d=(new trc(e)).a.Id(),d.ce()));default:return new Sx(g)}}function _7(a,b,c){var d;d=b.b.j==(tbc(),p9b);qkb();if(b.j==$8b&&jlb(b.e)||d&&c.j==mac||d&&c.j==z8b&&t6b(c.b)&&c.e.j==z9b)return false;if(vkb(b,false,null)||Gbb(a.c,b)!=1){o2(a.b,Kgb(b,(rbb(),pbb),pD(kD(pT,1),tFc,2,6,["class expression that cannot be extracted"])));return false}return true}function P9(a){var b,c;if(a.d.b){c= K9(a,E6b(a.d).ri());if(!c){o2(a.a,Kgb(a.d,(rbb(),qbb),pD(kD(pT,1),tFc,2,6,["Breaking to a label that is not a loop"])));return}b=c.a}else b=mtc(a.c,0).a;U5b(a.e,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b((tbc(),mac),cKc)),new O7b(b))));U5b(a.e,_9())}function tLb(a,b){var c,d;if(!b)return YJb(a.a,(tbc(),mac),KMc);else if(b.c==(YXb(),GWb))d=pLb(a,b,true);else if(b.c==_Wb){d=mKb(a.a,b);c=F6b(d,d.g,36);c!=d.g&&(d.g=c);d.g=new J7b(36,1,d.g)}else{d=ALb(a,b);c=F6b(d,d.g,36);c!=d.g&&(d.g=c);d.g=new J7b(36, 1,d.g)}he(d.j==(tbc(),Xac));return d}function mc(){hc.call(this,npc("\x00\u007f\u00ad\u0600\u061c\u06dd\u070f\u1680\u180e\u2000\u2028\u205f\u2066\u2067\u2068\u2069\u206a\u3000\ud800\ufeff\ufff9\ufffa"),npc(" \u00a0\u00ad\u0604\u061c\u06dd\u070f\u1680\u180e\u200f\u202f\u2064\u2066\u2067\u2068\u2069\u206f\u3000\uf8ff\ufeff\ufff9\ufffb"))}function XKb(a,b){var c,d,e,f,g,h;h=TJb(a.a,(tbc(),Rac));for(d=b.b.Od();d.Hd();){c=d.Id();U5b(h,jKb(a.a,c))}TKb(h);e=JKb(h);if(e||BPb(a.a.e,(BQb(),lQb))){f=TJb(a.a, kac);n7b(f.i)==-1&&hKb(f,b.o.b,b.o.a);X5b(f,D6b(h));U5b(h,f);e&&(g=F6b(h,h.g,87),g!=h.g&&(h.g=g),h.g=new J7b(87,1,h.g))}return h}function nUb(a,b){var c,d,e,f;f=fVb(a.j,0).b.b;aSb(a,(YXb(),XXb));d=false;c=null;e=fVb(a.j,0).b.b.b>a.g.b;if(!(e||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb))){d=!!eSb(a,zXb);uUb(a)?c=CSb(a,b):d&&IUb(a,"yield* requires an expression",pD(kD(kT,1),KFc,1,5,[]))}return new j0b(new r0b(f,a.g),d,c)}function y4b(a,b,c,d,e){var f,g,h,i;if(a.b){h=new g4b;Vd(b.charCodeAt(0)!=32&&Soc(b, b.length-1)!=32,ZNc);h.d=b;a4b(h,d,e,d,e+b.length);g=new c4b;f=new f8b((tbc(),mac),b,d,e);O6b(f,b.length);i=F6b(f,f.g,51);i!=f.g&&(f.g=i);!!c&&(f.g=new T7b(51,c,f.g));g.d=f;a4b(g,d,e,d,e+b.length);Y3b(a.b,g)}}function Hlb(a){switch(a.f){case 13:case 3:case 20:case 1:case 2:case 46:case 16:case 4:case 18:case 9:case 27:case 26:case 8:case 41:case 7:case 10:case 6:case 17:case 15:case 5:case 19:case 11:case 36:case 37:case 14:case 25:case 79:case 21:case 22:case 12:return true;default:return false}} function Rwb(a){var b,c,d,e,f,g,h,i;g=new aDc(new Uwb);for(d=a.Od();d.Hd();){c=d.Id();e=ipc(c,"/node_modules/",0);f="";for(b=0;ba.g.b,!(c||oUb(a,0,(YXb(),vXb))||oUb(a,0,(YXb(),gWb))||oUb(a,0,(YXb(),tWb))))){e=oSb(a);return new d0b(new r0b(f,a.g),e,1,b)}else return b}} function dLb(a,b){var c,d,e;PKb(a,b,(BQb(),lQb));c=null;if(b.e)he(!b.a&&!b.b);else if(b.a){he(!b.b);c=jKb(a.a,b.a)}else c=QLb(a,(tbc(),y9b),b.b);!c&&(c=TJb(a.a,(tbc(),p9b)));n7b(c.i)==-1&&hKb(c,b.o.b,b.o.a);d=UJb(a.a,(tbc(),w9b),c);if(b.c){e=ALb(a,b.c);U5b(d,e)}A6b(d,64,b.e);A6b(d,63,b.d);return d}function mSb(a,b,c){if(b==(YXb(),lWb)){a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),VPb)]));IUb(a,"const variables must have an initializer",pD(kD(kT,1),KFc,1,5,[]))}else if(cYb(c)){a.d=FPb(a.d,pD(kD($O,1), PFc,26,0,[(BQb(),XPb)]));IUb(a,"destructuring must have an initializer",pD(kD(kT,1),KFc,1,5,[]))}}function sOb(a,b){var c,d,e;if(!gOb(a,b,(kPb(),gPb)))return false;e=(Zd(b.j==(tbc(),V8b),aNc,b),d6b(b,1));if(e.j!=Xac){a.a.ph(NMc+r8b(cNc,pD(kD(kT,1),KFc,1,5,["native type"])),a.b.Og(),a.d,a.c);LOb(a,gPb.d);return false}d=(YLb(),c=ZMb(e.ri()),KMb(c,!c.o?JNb(c.j):fMb(c)));b6b(e);U5b(b,d);return true}function YTb(a){var b;if(oUb(a,0,(YXb(),GWb))&&Xoc(fVb(a.j,0).a,IHc)&&(b=fVb(a.j,1).b.b.b>fVb(a.j,0).b.a.b, !(b||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&oUb(a,1,EWb))return FSb(a);if(oUb(a,0,EWb))return iTb(a);if(oUb(a,0,eWb))return OSb(a,false,false);if(pUb(a,QWb))return mUb(a);return aUb(a)}function blc(a,b,c){var d,e,f,g,h,i,j;be(b);be(c);Ud(c.size()<=b.size());this.b=a;this.d=b;this.e=c;g=new flc(a,this);f=this.e.size();e=this.d.size();h=mD(nS,MLc,24,e,0,1);for(d=0;d=a.c.a.length)return null;he(b>=0);he(c>=0);if(mtc(a.c,b)==null)return OA(a,b);d=mtc(a.c,b);he(d.a.length!=0);if((REc(0,d.a.length),d.a[0]).vf()>c)return OA(a,b);e=UA(d,c,0,d.a.length-1);je(e>=0,"unexpected:%s",e);return NA(a,(REc(e,d.a.length),d.a[e]))}function Oeb(a,b){var c,d,e,f;f=Vkb(b);if(!f||!t6b(f))return false;d=(qkb(),e=Dkb(b),!e?null:j6b(e,29));return!d?(c=j6b(b,51),(!!c&&c.zh()||b.j==(tbc(),K9b)&&Xoc((b.b?b.b.f:null).ri(),LHc)&&Aib(a.a,b.b))&&(b.e.j==(tbc(), nbc)||b.j!=mac)&&Aib(a.a,f)):(d.a&2)!=0||(d.a&512)!=0||(d.a&jJc)!=0||(d.a&1)!=0}function xOb(a,b){var c,d;if(b.j==(tbc(),zac))for(d=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();d.Hd();){c=d.Id();if(c.b){if(!FOb(a,c.b))return false}else{a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,["property, missing type"])),a.b.Og(),a.d,a.c);return false}}else if(!FOb(a,b))return false;return true}function OBc(a,b,c,d){var e,f;if(!b)return c;else{e=a.a.Pe(c.d,b.d);if(e==0){d.d=Grc(b,c.e);d.b=true;return b}f=e<0?0:1;b.a[f]= OBc(a,b.a[f],c,d);if(PBc(b.a[f]))if(PBc(b.a[1-f])){b.b=true;b.a[0].b=false;b.a[1].b=false}else PBc(b.a[f].a[f])?b=WBc(b,1-f):PBc(b.a[f].a[1-f])&&(b=VBc(b,1-f))}return b}function ySb(a){var b,c,d;c=fVb(a.j,0).b.b;b=(_n(),new fr);aSb(a,(YXb(),dXb));d=null;while(pUb(a,kWb)||pUb(a,yXb)||uUb(a)){d=null;pUb(a,kWb)?dr(b,new OZb(hSb(a,fVb(a.j,0).b.b))):pUb(a,yXb)?dr(b,$Tb(a)):dr(b,CSb(a,1));pUb(a,iWb)||(d=aSb(a,kWb))}aSb(a,iWb);nSb(a,d);return new iYb(new r0b(c,a.g),io(b.a))}function $Sb(a){var b,c,d,e;e= fVb(a.j,0).b.b;b=iUb(a);if(pUb(a,(YXb(),BXb))){b.p==(H_b(),y_b)&&IUb(a,"Unary operator '%s' requires parentheses before '**'",pD(kD(kT,1),KFc,1,5,[b.b]));a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),$Pb)]));c=oSb(a);d=$Sb(a);return new nYb(new r0b(e,a.g),b,c,d)}else return b}function efb(a,b,c,d){var e,f,g;if(!Xoc(Gs(b.a),zHc)){Fjb(a.c.t,Kgb(d,(jeb(),Zdb),pD(kD(pT,1),tFc,2,6,[c])));return null}g=(Ud(b.a.size()!=1),new RGb(b.a.Ye(0,b.a.size()-1)));f=(e=jib(a.a,g,false),!e?null:cE(e.c,73)?e.c:null);(!f|| f.g!=0)&&Fjb(a.c.t,Kgb(d,(jeb(),Zdb),pD(kD(pT,1),tFc,2,6,[c])));return f}function Lsb(a,b,c){Jsb();var d,e,f,g,h,i,j,k,l;if($3(a.L,(zPb(),sPb)))for(k=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();k.Hd();){j=k.Id();h=j6b(j,89);if(!!h&&!APb(rPb,h))for(e=c,f=0,g=e.length;f127)continue;if(RNb(b)){a.e=b;b=10}}a.a==-1&&(a.a=a.i-a.f-a.r-1);return b}}function v0(b){var c,d,e,f,g;if(b.j!=(tbc(),xac))return null;g=Xkb(b);if(!cE(g,191))return null;e=g;try{f=e.a}catch(a){a=AV(a);if(cE(a,101))return null;else throw BV(a);}try{d=n6b(b)}catch(a$0){a$0=AV(a$0);if(cE(a$0,42))return null;else throw BV(a$0);}c=d+b.c;if(d<0||c>f.length)return null;return f.substr(d,c-d)}function mzb(a){var b, c,d;if(a==a.a.v||a==a.a.g||a==a.a.s)return;de(a.i,"null required formals for function: %s",a);for(d=a.i.Od();d.Hd();){b=d.Id();be(b);he(a.c||0!=b.Lh())}de(a.e,"null optional formals for function: %s",a);for(c=a.e.Od();c.Hd();){b=c.Id();be(b);he(0!=b.Lh())}he(!a.j||0!=a.j.Lh());be(a.k)}function HJb(){HJb=aW;GJb=(En(),new Ey(DHc));CJb=GJb;EJb=Tp(OHc,cJc,aIc,KHc,PHc,NHc,pD(kD(pT,1),tFc,2,6,[THc]));FJb=Tp(OHc,cJc,aIc,KHc,PHc,NHc,pD(kD(pT,1),tFc,2,6,[THc,QHc,_Hc,"let",AMc,BMc,CMc,DMc,EMc,"yield"]));DJb= pEc("(/|(\n[ \t]*))\\*[ \t]*@[a-zA-Z]+[ \t\n{]");new kJb((Rx(),Qx),(null,Qx),(yJb(),xJb),0)}function NKb(a,b){a.a.e=FPb(a.a.e,pD(kD($O,1),PFc,26,0,[(BQb(),dQb)]));if(a.a.a.c==(yJb(),sJb)){a.a.d.oh("getters are not supported in older versions of JavaScript. If you are targeting newer versions of JavaScript, set the appropriate language_in option.",a.a.r,(HJb(),b.o.b.b+1),0);return true}return false}function OKb(a,b){a.a.e=FPb(a.a.e,pD(kD($O,1),PFc,26,0,[(BQb(),tQb)]));if(a.a.a.c==(yJb(),sJb)){a.a.d.oh("setters are not supported in older versions of JavaScript. If you are targeting newer versions of JavaScript, set the appropriate language_in option.", a.a.r,(HJb(),b.o.b.b+1),0);return true}return false}function zMb(a,b){var c,d,e,f,g;d=pMb(a,(tbc(),bac));f=new mzc;do{c=yMb(a,b);if(!c)return null;e=c.j==Yac?c.ri():c.b.ri();g=f.a.put(e,f);g==null?U5b(d,c):cMb(a,e,a.j.g,INb(a.j));VMb(a);if(!nMb(a,(CNb(),kNb)))break;!a.o?JNb(a.j):fMb(a);VMb(a);if(nMb(a,xNb))break;b=!a.o?JNb(a.j):fMb(a)}while(true);return d}function Iib(a,b,c,d){var e;this.o=new oAc;this.b=new SAc;this.d=new SAc;this.q=new SAc;this.j=new oAc;this.u=(En(),Rx(),Qx);this.n=new oAc;this.k= new oAc;this.i=new SAc;be(d);if(!b){this.p=null;this.e=new oAc}else{e=a.b.ri();this.p=e.length==0?null:e;this.e=(So(),So(),Ro)}this.t=a;this.r=b;this.f=c;this.a=d}function hwb(a){var b,c,d,e,f;b=(_n(),new fr);for(e=Zs(a.Ze().Od());e.Hd();){d=e.Id();f=(Fwb(),c=fpc(fpc(fpc(fpc(fpc(epc(epc(d,58,45),92,47)," ",HJc),"[",IJc),"]",JJc),"<",KJc),">",LJc),Gwb(c));!Xoc(f.substr(0,1),"/")&&!(Xoc(f.substr(0,2),BIc)||Xoc(f.substr(0,3),NLc))&&(f="/"+f);jtc(b.a,be(f))}return io(b.a)}function Yec(a,b,c){var d,e, f,g,h;f=!a.g?null:a.g.e;g=!!f;a.g=new ujc(zHc,b,true,!c?a.i:c);b.oj(a);!!f&&f.oj(null);if(a.Xh()||a.f==(Sfc(),Qfc)){h=Uec(a);!!h&&(!h.j&&(h.j=new utc),jtc(h.j,a));if(a.f==(Sfc(),Qfc))for(e=Zs(new hwc(a.c.a.b.Od()));e.Hd();){d=e.Id();!!d.dj()&&Hec(d.dj(),a)}}g&&Lec(a);return true}function RKb(a,b){var c,d;c=b.a;d=false;if(xbc(c)){a.a.e=FPb(a.a.e,pD(kD($O,1),PFc,26,0,[(BQb(),ZPb)]));d=a.a.a.c==(yJb(),sJb)}if(!!a.a.o&&a.a.o.contains(c)){a.a.e=FPb(a.a.e,pD(kD($O,1),PFc,26,0,[(BQb(),hQb)]));d=a.a.a.c== (yJb(),sJb)}d&&a.a.d.oh("identifier is a reserved word",a.a.r,(HJb(),b.b.b.b+1),b.b.b.a)}function BFb(a,b,c,d){var e,f,g,h,i,j;for(i=c.Od();i.Hd();){g=i.Id();j=new SGb(g);if(!hGb(GFb(a,j),GFb(b,j),d))return false}if(b.e)for(h=(f=(new mrc(Iyb(b.e).a)).a.Wd().Od(),new trc(f));h.a.Hd();){g=(e=h.a.Id(),e.ce());if(!c.contains(g)){j=new SGb(g);if(!hGb(GFb(a,j),GFb(b,j),d))return false}}return true}function gic(a,b){var c,d,e,f,g,h,i,j;if(!a.g||b.Oi()||cE(b,147)||!b.Yi())return b;if(Avc(a.f,b))return b; zvc(a.f,b);f=false;e=new Fkc(a.e);for(i=b.gj().Od();i.Hd();){h=i.Id();j=(g=b.lj(h),!g?null:g.d);d=b.jj(h);c=d.aj(a);d!=c&&(f=true);e.b=false;rqc(e.c,h,new Gkc(c,j))}Bvc(a.f,b);if(f)return Ekc(e);return b}function Pzb(a,b){var c,d,e;if(!a||!b)return null;c=!a?null:a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()).d:null;d=!b?null:b.Lh()==2&&b.Oh().size()==1?Us(b.Oh().Od()).d:null;if(!!c&&!!d){e=mFb(c,d);if(e)return!e.a.q.isEmpty()&&!e.b.d.d.isEmpty()?cBb(oGb(e.a.u,e,null,null,null,false,e.a.i)):e.a.r}return FBb(a, b)}function TAb(a,b){var c,d,e,f;if(-1==a.Lh()||oFc==a.Lh()||a.Oh().isEmpty()&&a.Vh()==null||b.isEmpty())return a;c=(En(),new Ur);for(f=a.Oh().Od();f.Hd();){e=f.Id();Rr(c,QFb(e,b))}d=IBb(a.e,a.Lh()&-2,Np(new Rtc(c.a)),null,a.Jh());(a.Lh()&1)!=0&&(d=FBb(d,b.containsKey(a.Vh())?b.Xd(a.Vh()):dBb(a.e,a.Vh())));return d}function e4(a){var b,c,d,e,f;d=(So(),new nr);for(c=new Pqc((new Hqc(a)).a);c.b;){b=Oqc(c);e=b.ce();f=b.de();if(dE(f))kr(d,e,(qkb(),(SEc(f),f)?new e7b((tbc(),gbc)):new e7b((tbc(),A9b)))); else if(cE(f,132))kr(d,e,new O7b(f.a));else if(eE(f))kr(d,e,new O7b((SEc(f),f)));else{he(hE(f));kr(d,e,d2b(f))}}return fp(d.b)}function Nmb(a,b,c){var d,e,f,g,h;he(b.j==(tbc(),mac)||b.j==Xac||b.j==Yac||b.j==L9b||b.j==Sac);e=Blb(b);f=e||c.j==K9b&&(c.b?c.b.f:null)==b;if(b.j==mac||f){d=h6b(b,43)!=0;if(!d&&flb(w1(a.b),b)){if(a.a){g=b.ri();throw BV(new Ync(lLc+g+BGc+" parent:"+_6b(b.e)));}h=F6b(b,b.g,43);h!=b.g&&(b.g=h);b.g=new J7b(43,1,b.g)}}}function Q3b(a,b){var c,d,e;e=new V3b;e.a=N3b(a.a,b);e.e= R3b(a.e,b);e.f=R3b(a.f,b);e.n=S3b(a.n,b);e.r=R3b(a.r,b);e.q=!a.q?null:new wtc(a.q);e.d=!a.d?null:new ozc(a.d);e.s=!a.s?null:new qAc(a.s);e.c=a.c;e.j=a.j;e.b=a.b;e.i=a.i;e.p=!a.p?null:(En(),d=a.p,Mp(d));e.k=!a.k?null:(En(),c=a.k,Mp(c));e.g=a.g;e.o=a.o;return e}function rbb(){rbb=aW;pbb=new _6(pKc,(lZ(),iZ),new iqc("This code cannot be converted from ES6. {0}"));qbb=new _6("JSC_CANNOT_CONVERT_YET",iZ,new iqc("ES6 transpilation of ''{0}'' is not yet implemented."));obb=new _6("BAD_REST_PARAMETER_ANNOTATION", kZ,new iqc('Missing "..." in type annotation for rest parameter.'))}function aib(a,b){var c,d,e,f;if(b.j==(tbc(),mac)){f=b.ri();Ud(uib(a,f,false));he(!a.k.containsKey(f));e=be(kAc(a.j,f));a.k.put(f,new jzb(a.a,f,e,b))}else{Ud(!Aib(a,b));d=TGb(b);c=oib(a,d.a.getAtIndex(0));e=Jyb(c,d).a;Dyb(c,(Ud(d.a.size()!=1),new RGb(d.a.Ye(1,d.a.size()))),new jzb(a.a,Tc(new Vc("."),d.a.Od()),e,b))}}function TFb(a){var b,c,d,e,f,g;if(a==a.a.bb)return a.a.U;if(a.c||!tHb(a.d.a)&&!uHb(a.d.a,yJc)||!!a.e)return a;b=!a.b? null:Izb(a.b);c=(zEb(),zEb(),yEb);for(g=new Pqc((new Hqc(a.g.a)).a);g.b;){f=Oqc(g);d=f.ce();e=f.de();c=BEb(c,d,e.a==(OGb(),NGb)?e:new DGb(e.c,e.d,e.b,NGb))}return new VFb(a.a,a.d,c,b,null,true,a.f)}function xnb(a){var b,c,d;if(a.I)return;a.i=HV(Date.now());Anb(a);for(c=To(a.I).Od();c.Hd();){b=c.Id();d=b.de();a.F=RV(CV(a.F,d.n));a.C=Boc(a.C,d.a);a.G+=d.k;a.c+=d.d;if(!d.i){a.B+=d.k;a.A+=d.d}a.a+=d.b;a.g+=d.e;a.p+=d.f}he(a.D==(k5(),j5)||a.q==a.a+a.b);he(!(a.D==i5||a.D==f5)||a.r==a.g+a.e);he(a.D!=f5|| a.s==a.p+a.o)}function Jyb(a,b){var c,d,e,f,g;f=b.a.size()==1?a:Lyb(a,(Ud(b.a.size()!=1),new RGb(b.a.Ye(0,b.a.size()-1))));if(!f)return null;c=Gs(b.a);if(!(f.C.containsKey(c)||f.F.containsKey(c)||!!Bi(f.D,c,false)))return null;d=f.C.Xd(c);g=cE(d,209)?d.a:null;return new kyb((e=Li(Bi(f.D,c,false)),!e?null:e.b),f.F.Xd(c),d,g,false)}function QX(a,b){var c,d,e,f;switch(b.j.f){case 68:zX((tbc(),X8b),b);c=vbc(b.j);c!=-1&&(d=e6b(b),c!=d&&YX(WGc+c+XGc+d,b));eX(a,b.b);QW(a,b.b?b.b.f:null);return;case 69:zX((tbc(), i9b),b);e=vbc(b.j);e!=-1&&(f=e6b(b),e!=f&&YX(WGc+e+XGc+f,b));QW(a,b.b?b.b.f:null);return;default:YX("Expected switch member but was "+b.j,b)}}function FAb(a){var b,c;he(a.Lh()==2&&a.Oh().size()==1);c=YEb(a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()).d:null);if(vAb(a,c)){me((b=a.Lh()==2&&a.Oh().size()==1?Us(a.Oh().Od()):null,!!b&&tHb(b.d.a)&&!!HFb(b)),"Failed to reach Object.prototype in prototype chain, unexpected self-link found at %s",a);return null}return c}function dVb(a,b,c){var d,e;d=a.d;GVb(a); !_Ub(a,a.d)&&gVb(a,RRb(a.e.b,d),ONc,pD(kD(kT,1),KFc,1,5,[]));e=mpc(a.e.a,d,a.d);switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 96:aVb(a);return new XRb(b,e,SRb(a.e.b,d-1,a.d));case 36:aVb(a);aVb(a);return new XRb(c,e,SRb(a.e.b,d-1,a.d));default:return new XRb(b,e,SRb(a.e.b,d-1,a.d))}}function jVb(a,b){switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 101:case 69:aVb(a);switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 43:case 45:aVb(a)}JVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)||hVb(a,"Exponent part must contain at least one digit", pD(kD(kT,1),KFc,1,5,[]));tVb(a)}return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d))}function I$(a,b,c){var d,e;M$(a);d=b.charCodeAt(0);e=a.yg();(d==43||d==45)&&e==d?a.mg(" "):(anc==null&&(anc=new RegExp(GFc,"i")),anc.test(String.fromCharCode(d))&&(e==95||e==36||(_mc==null&&(_mc=new RegExp(FFc,"i")),_mc.test(String.fromCharCode(e))))?a.mg(" "):(e==45&&d==62||e==60&&d==33)&&a.mg(" "));a.pg(b,c);c&&a.Ag()}function Xbc(a){var b,c,d,e,f,g,h;if(a.Mi())return Obc(a,(zhc(),Qgc));else if(a._i()){h= a._i();g=false;c=Alc(h);for(f=0;f=0){++g;f=_oc(d,spc(46),f+1)}}if(!!c&&Blb(b))return true;for(e=0;e>19!=0)return"-"+RD(KD(a));c=a;d="";while(!(c.l==0&&c.m==0&&c.h==0)){e=sD(1E9);c=vD(c,e,true);b=""+QD(rD);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length; for(;f>0;f--)b="0"+b}d=b+d}return d}function qdc(a,b,c,d){var e,f,g,h,i,j,k;a.$i();k=kgc(d,a,b);if(k)return k.a;i=sdc(a);j=sdc(b);if(!oj(j,i)){lgc(d,a,b,(tgc(),rgc));return false}for(h=(f=(new nsc(i.a)).a.Wd().b.Kj(),new tsc(f));h.a.Hd();){g=(e=h.a.Id(),e.ce());if(!Lbc(b.jj(g),a.jj(g),c,d)){lgc(d,a,b,(tgc(),rgc));return false}}lgc(d,a,b,(tgc(),qgc));return true}function nbb(a,b){var c,d,e,f,g;g=e6b(b);if(g==0)H6b(b,new e8b((tbc(),Xac),'""'));else{e=E6b(b);he(e.j==(tbc(),Xac));if(g==1)G6b(b.e,b,e); else{c=o1b(e,E6b(E6b(b)));for(f=2;fn&&Epc(a.c,b,n,m);h=m;if(h0&&(a.charCodeAt(0)==45||a.charCodeAt(0)==43)?1:0;for(b=e;boFc)throw BV(new Noc(pFc+a+'"'));return f}function nFb(a,b){var c,d,e,f,g;he(a.a==b.a); c=(So(),new nr);if(uHb(a.a,FKc)){d=a.a.q.getAtIndex(0);kr(c,d,JBb(PEb(a),PEb(b)));e=a.a.q.getAtIndex(1);kr(c,e,FBb(QEb(a),QEb(b)));return fp(c.b)}if(a.b.d.d.isEmpty()||b.b.d.d.isEmpty())return null,Ro;for(g=Uo(a.b).Od();g.Hd();){f=g.Id();kr(c,f,FBb(up(a.b,f),up(b.b,f)))}return fp(c.b)}function CFb(a,b,c){var d,e,f,g,h,i,j;f=PEb(b);if(64!=f.Lh()&&128!=f.Lh()&&oFc!=f.Lh())return(new Hqc(a.g.a)).a.size()==0;j=QEb(b);for(e=new Pqc((new Hqc(a.g.a)).a);e.b;){d=Oqc(e);g=d.ce();h=d.de().d;if(64==f.Lh()&& (i=CA(g),!(!i||MV(i.a,RV(i.a))?null:moc(RV(i.a)))))return false;if(!JAb(QAb(h,a.a.B),j,c))return false}return true}function JJb(a,b){var c,d,e,f,g,h,i,j;d=b.c;f=b.a.b.b+1;c=b.a.b.a;g=b.a.b.c;e=new YMb(new PNb(d.substr(3),f,c+3),d,g,a.q,a.a,a.d);TMb(e,a.f);UMb(e,a.g);b.b==(CYb(),yYb)&&b.c.length>0?(e.i=(eNb(),cNb),VMb(e),h=!e.o?JNb(e.j):fMb(e),i=iMb(e,h,0,false,true),j=" "+i.a,e.c?s4b(e.c,j):e.e.d?D4b(e.e,j):D4b(e.e,""),undefined):sMb(e);return e}function rLb(a,b){var c,d,e,f,g;e=b.a;if(e.size()== 1){c=YJb(a.a,(tbc(),mac),e.getAtIndex(0));n7b(c.i)==-1&&hKb(c,b.o.b,b.o.a);return c}else{f=e.We();d=T1b(f.Id());n7b(d.i)==-1&&hKb(d,b.o.b,b.o.a);while(f.Hd()){g=YJb(a.a,(tbc(),Xac),f.Id());n7b(g.i)==-1&&hKb(g,b.o.b,b.o.a);d=VJb(a.a,K9b,d,g);n7b(d.i)==-1&&hKb(d,b.o.b,b.o.a)}return d}}function uUb(a){switch(fVb(a.j,0).c.f){case 76:case 29:case 9:case 99:case 14:case 2:case 108:case 109:case 110:case 111:case 64:case 69:case 18:case 97:case 100:case 45:case 47:case 49:case 63:case 68:case 94:case 95:case 101:case 107:case 104:case 35:case 21:case 77:case 98:case 24:case 26:case 44:return true; default:return false}}function dib(a,b,c){var d,e,f,g;cE(c,163)&&jzc(a.i,c);if(b.j==(tbc(),mac)){g=b.ri();me(!a.k.containsKey(g),"Namespace %s already defined.",g);a.k.put(g,c);d=j6b(b,51);!!d&&d.zh()&&!a.e.containsKey(g)&&a.e.put(b.ri(),null)}else{he(!tib(a,b));e=TGb(b);f=oib(a,e.a.getAtIndex(0));Dyb(f,(Ud(e.a.size()!=1),new RGb(e.a.Ye(1,e.a.size()))),c)}}function I0(a,b,c){var d,e,f,g,h,i;if(a.j!=(tbc(),V8b))return null;d=a.b;if(t6b(d))if(z6b(d,gIc,gIc.length)){e=d.d;if(!e)return null;i=e1(e);e1(i); return new B0(i)}if(d.j==K9b&&Xoc((d.b?d.b.f:null).ri(),"bind")){g=d.b;h=cE(g.k,24)?g.k:null;f=null;c&&!!h&&(f=h.Ui().Xi());if(!!f||b||g.j==E9b){i=d.d;e1(i);return new B0(i)}}return null}function jfb(a,b,c,d){var e,f,g,h,i,j,k,l;g=b.b;$d(!c.n.isEmpty(),"Expected generic type for %s but found %s",g,c);k=null;if(g.j==(tbc(),K9b)&&t6b(g.b)){i=g.b;j=TGb(i);h=jib(a.a,j,false);!!h&&(k=h.d)}f=(_n(),new fr);for(e=b.b.d;e;e=e.d){l=Dfb(a,e);if(!l)if(d&&e.j!=E9b)return null;else l=a.c.d.b;jtc(f.a,be(l))}return vzb(c, k,io(f.a))}function Eqb(a,b){var c,d,e;if(a.b.k.a.c>0)return null;d=B2(a.b,b);c=d2(a.b,"",d);if(a.b.k.a.c>0){o2(a.b,new Ggb(null,null,-1,-1,zqb,null,pD(kD(pT,1),tFc,2,6,[$rb(d)])));throw BV(new Ync(BLc));}e=B2(a.b,c);if(!Xoc(d,e)){o2(a.b,new Ggb(null,null,-1,-1,Bqb,null,pD(kD(pT,1),tFc,2,6,[d,e])));throw BV(new Ync(BLc));}return c}function Bhb(a,b,c,d,e){var f,g,h;h=c.e;if(e&&h.j==(tbc(),E9b)&&c!=h.b)return;qkb();if(c.j==(tbc(),mac)&&c.e.j==nbc)d.sh(c.ri(),true);else if(dlb(c))Mjb(b)== Hkb(c,okb)?d.sh(c.ri(),false):Mjb(b).j==E9b&&Hkb(c,okb)==Kkb(Mjb(b))&&d.sh(c.ri(),false);else if(c.j==E9b&&jlb(c.e)){g=c.b;d.sh(g.ri(),true)}for(f=c.b;f;f=f.d)Bhb(a,b,f,d,true)}function mvb(a,b){hvb();var c,d,e,f,g,h;ie(a.j==(tbc(),mac)||a.j==Mac||a.j==Yac,a);f=a.e;e=!b.c?null:b.c.e;if(a.e.j==nbc&&(c=j6b(a,51),!!c&&c.zh())&&Alb(a))return true;d=j6b(f,29);if(!!d&&(h=!d.d?null:d.d.p,!h?(Wuc(),Wuc(),Vuc):h).contains(dJc))return true;d=j6b(e,29);return!!d&&(g=!d.d?null:d.d.p,!g?(Wuc(),Wuc(),Vuc):g).contains(dJc)} function lGb(a,b){var c,d,e,f,g,h;c=(zEb(),zEb(),yEb);for(h=new Pqc((new Hqc(a.a)).a);h.b;){f=Oqc(h);d=f.ce();!!Bi(b,d,false)||(c=BEb(c,d,CGb(f.de())))}for(g=new Pqc((new Hqc(b.a)).a);g.b;){f=Oqc(g);d=f.ce();e=f.de();Bi(a,d,false)?c=BEb(c,d,CGb(GGb(Li(Bi(a,d,false)),e))):c=BEb(c,d,e.a==(OGb(),NGb)?e:new DGb(e.c,e.d,e.b,NGb))}return c}function CKb(a,b,c,d,e){var j;HJb();var f,g,h,i;h=new sKb(c,b,d,e,a.a);i=UKb(h.u,a);n7b(i.i)==-1&&hKb(i,a.o.b,a.o.a);if(a.a)for(g=a.a.Od();g.Hd();){f=g.Id();(f.b==(CYb(), zYb)||f.b==yYb)&&!kzc(h.n,f)?(j=JJb(h,f),jzc(h.n,f),PJb(h,j),undefined):f.b==xYb&&jEc(nEc(DJb,f.c))&&h.d.ph(ALc,h.r,f.a.b.b+1,f.a.b.a)}dKb(h,i);nKb(h,i);h.p=i;return h}function R1(a){var b,c,d,e,f;(new Hqc(a.B.a)).a.clear();for(e=new Rtc(a.p);e.a",LJc),Gwb(c));cwb();if(Xoc(b.substr(0,2),BIc)||Xoc(b.substr(0,3),NLc)){e=a.a;d=e.lastIndexOf("/");f=Gwb(e.substr(0,d+1)+(""+f))}return new pwb(a.b,iwb(f,a.b.d))}function i1b(a, b){var c;c=false;switch(b){case 43:c=a.d;a.d=true;break;case 44:c=a.e;a.e=true;break;case 45:c=a.f;a.f=true;break;case 40:c=a.g;a.g=true;break;case 35:c=a.i;a.i=true;break;case 32:c=a.j;a.j=true;break;case 48:c=a.k;a.k=true;break;default:return false}if(c)throw BV(new sC(""+b));!a.o&&(a.o=new Lpc);zpc(a.o,b&yFc);return true}function cu(a,b,c,d){var e,f,g;g=new Ru(b,c);if(!a.a){a.a=a.e=g;qqc(a.b,b,new Qu(g));++a.c}else if(!d){a.e.b=g;g.d=a.e;a.e=g;e=nqc(a.b,b);if(!e){qqc(a.b,b,e=new Qu(g));++a.c}else{++e.a; f=e.c;f.c=g;g.e=f;e.c=g}}else{e=nqc(a.b,b);++e.a;g.d=d.d;g.e=d.e;g.b=d;g.c=d;!d.e?nqc(a.b,b).b=g:d.e.c=g;!d.d?a.a=g:d.d.b=g;d.d=g;d.e=g}++a.d;return g}function l$(a){var b;this.b=a;this.a=Tp("goog.isDef","goog.isNull","goog.isDefAndNotNull","goog.isString","goog.isNumber","goog.isBoolean",pD(kD(pT,1),tFc,2,6,["goog.isFunction","goog.isArray","goog.isArrayLike","goog.isObject"]));b=(En(),new Ur);Sr(b,pD(kD(pT,1),tFc,2,6,["superClass_","instance_",sHc]));Tr(b,(_n(),_n(),$n));Np(new Rtc(b.a))}function qab(){qab= aW;oab=new _6("JSC_LHS_OF_GOOG_REQUIRE_MUST_BE_CONST",(lZ(),iZ),new iqc("The left side of a goog.require() must use ''const'' (not ''let'' or ''var'')"));pab=new _6("JSC_NAMESPACE_IMPORT_CANNOT_USE_STAR",iZ,new iqc("Namespace imports ('goog:some.Namespace') cannot use import * as. Did you mean to import {0} from ''{1}'';?"))}function lSb(a){var b,c,d,e,f;if(!pUb(a,(YXb(),aXb)))return null;d=fVb(a.j,0).b.b;aSb(a,aXb);++a.j.f;f=new oAc;do{c=bSb(a);b=null;if(pUb(a,AWb)){aSb(a,AWb);b=cUb(a)}lAc(f,c,b); pUb(a,kWb)&&aSb(a,kWb)}while(e=fVb(a.j,0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),e)||!a.b.b&&MRb(e));aSb(a,fWb);--a.j.f;return new wZb(new r0b(d,a.g),f)}function wkc(a,b,c){Jbc();var d,e,f,g;mec.call(this,a,null,null);this.a=false;this.s=true;for(g=Zs(new hwc((d=b.b,!d?b.b=zs(b.a,Iwc(b.c)):d).b.b.Od()));g.Hd();){f=g.Id();e=f==null?null:bw(b.d,f);if(!e)throw BV(new Ync("RecordProperty associated with a property should not be null!"));c?rdc(this,f,e.b,e.a):tkc(this,f,e.b,false,e.a)}this.a= true}function aC(a){var b,c;c=a.offset.line;b=a.offset.column;if(a.map!=null&&a.url!=null)throw BV(new dC("Invalid map format: section may not have both 'map' and 'url'"));else if(a.url!=null)return new eC(0,a.url,c,b);else if(a.map!=null)return new eC(1,vpc(a.map),c,b);throw BV(new dC("Invalid map format: section must have either 'map' or 'url'"));}function KAb(a,b,c){var d,e;if(oFc==a.Lh()||oFc==b.Lh()||-1==b.Lh())return true;if(512==a.Lh())return 0!=OAb(b).Lh();if(WJc==a.Lh())return 0!=NAb(b).Lh(); if(!Wyb(a,b,c))return false;d=a.Lh()&-5;if((d|b.Lh())!=b.Lh())return false;if(a.Vh()!=null&&!Xoc(a.Vh(),b.Vh()))return false;if(a.Oh().isEmpty())return true;e=iGb(a.Oh(),b.Oh(),c);return e}function q_(a,b,c,d){var e,f,g,h;h=b;if(!d&&b.j!=(tbc(),S8b))throw BV(new Pmc("Missing BLOCK child."));if(b.j==(tbc(),S8b)){f=E_(b,2);if(f==0){if(a.c.Eg()){J$(a.c);K$(a.c,a.c.rg(b,c==0))}else a.c.xg(true);return}if(f==1){g=D_(b);e=a.c.Eg();if(e||H_(g)){J$(a.c);a.Gg(g,0);a.c.Cg();K$(a.c,a.c.rg(b,c==0));return}else h= g}}h.j==p9b?a.c.xg(true):a.Gg(h,c)}function SA(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;j=false;k=null;n=null;l=null;m=null;i=a.c.a.length;for(f=0;f1&&i[0].length==0;b&&--c;for(f=i,g=0,h=f.length;g0){--j;--c;d[j]=null}else if(!b){d[j]=e;++j}continue}d[j]=e;++j;++c}if(b&&j==1)return"/";return Tc(Ewb,new Wqc(new xuc((PEc(j),Ztc(d,j)))))}function Qzb(a,b){var c,d,e,f,g,h;Ud(a.c||b.c);c=new nAb(a.a);g= Coc((he(!(a==a.a.v||a==a.a.g)),a.i.size()),(he(!(b==b.a.v||b==b.a.g)),b.i.size()));for(e=0;e=10)return null;b=-c;while(d=10||JV(b,{l:3355444,m:838860,h:996147}))return null;b=KV(b,10);if(JV(b,CV(DGc,c)))return null;b=OV(b,c)}return e?yoc(b):GV(b,DGc)?null:yoc(LV(b))}function wlb(a, b){var c,d,e;switch(a.j.f){case 92:return wlb(a.b,b);case 42:for(d=a.b;d;d=d.d)if(d.j!=(tbc(),p9b)&&!wlb(d,b))return false;return true;case 38:for(e=a.b;e;e=e.d)if(!wlb(e,b))return false;return true;case 43:for(c=a.b;c;c=c.d)if(!wlb(c.b,b))return false;return true;case 65:return b&&!(a.j==(tbc(),E9b)&&jlb(a.e));default:return slb(a)}}function QMb(a,b,c){var d,e,f;f=pMb(a,(tbc(),Fac));!!c&&U5b(f,c);d=null;do{if(d){VMb(a);b=!a.o?JNb(a.j):fMb(a);he(b==(CNb(),uNb));VMb(a);b=!a.o?JNb(a.j):fMb(a)}d=LMb(a, b);if(!d)return null;U5b(f,d)}while(nMb(a,(CNb(),uNb)));if(!c){VMb(a);if(!nMb(a,yNb))return bMb(a,VMc,a.j.g,INb(a.j)),null;!a.o?JNb(a.j):fMb(a)}if(!!f.b&&!f.b.d){e=f.b;C6b(f,e);return e}return f}function WTb(a,b){var c,d,e,f,g,h;gSb(a,"set");if(zUb(a,0)){f=dSb(a);aSb(a,(YXb(),cXb));d=bSb(a);h=kSb(a);aSb(a,hWb);g=kSb(a);!!g&&GUb(a,fVb(a.j,0),"setter should not have any returns",pD(kD(kT,1),KFc,1,5,[]));c=hTb(a);return new P_b(hSb(a,b.d),f,b.c,d,h,c)}else{e=TSb(a);aSb(a,(YXb(),cXb));d=bSb(a);kSb(a); aSb(a,hWb);c=hTb(a);return new MYb(hSb(a,b.d),e,b.c,d,c)}}function oX(a,b,c){var d,e;if(c.j==(tbc(),mac)){c.ri()==null&&YX(bHc,c);c.ri().length==0&&YX(cHc,c);qX(c);!!c.b&&eX(a,c.b)}else c.j==x8b?NW(a,b,c):c.j==Aac?FX(a,b,c):c.j==j9b?$W(a,b,c):c.j==c9b?(zX(c9b,c),d=vbc(c.j),d!=-1&&(e=e6b(c),d!=e&&YX(WGc+d+XGc+e,c)),eX(a,c.b),(c.b?c.b.f:null).j==j9b?$W(a,b,c.b?c.b.f:null):eX(a,c.b?c.b.f:null),undefined):YX(dHc+b+" node",c)}function sY(a,b){var c,d,e,f;if(!a||!b)return!a&&!b;if(!a.si(b,false,false,false, true))return false;if(e6b(a)!=e6b(b))return false;e=a.b;c=b.b;while(!!e&&!!c){if(e.j==(tbc(),E9b)||e.j==Rac){if(c.j!=e.j)return false;if(e.j==E9b&&(qkb(),e.j==E9b&&jlb(e.e))){f=e.b.ri();d=c.b.ri();if(!Xoc(f,d))return false}}else if(!sY(e,c))return false;e=e.d;c=c.d}return true}function GSb(a){var b,c,d;c=fVb(a.j,0).b.b;a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),PPb)]));gSb(a,IHc);aSb(a,(YXb(),EWb));if(pUb(a,zXb)){IUb(a,JNc,pD(kD(kT,1),KFc,1,5,[]));aSb(a,zXb)}b=eZb(jZb(new nZb((sZb(),qZb)),(d=fVb(a.j, 0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),d)||!a.b.b&&MRb(d)?cSb(a):null)));jTb(a,b,(TUb(),QUb));return cZb(b,new r0b(c,a.g))}function f7(){f7=aW;d7=new _6("JSC_INVALIDATION",(lZ(),jZ),new iqc("Property disambiguator skipping all instances of property {0} because of type {1} node {2}. {3}"));e7=new _6("JSC_INVALIDATION_TYPE",jZ,new iqc("Property disambiguator skipping instances of property {0} on type {1}. {2}"));new _6("JSC_INVALID_RENAME_FUNCTION",iZ,new iqc("{0} call is invalid: {1}"))} function cwb(){cwb=aW;new _6("JSC_MODULE_CONFLICT",(lZ(),kZ),new iqc("File has both goog.module and ES6 modules: {0}"));awb=new _6("JSC_JS_MODULE_LOAD_WARNING",kZ,new iqc('Failed to load module "{0}"'));_vb=new _6("JSC_INVALID_MODULE_PATH",kZ,new iqc('Invalid module path "{0}" for resolution mode "{1}"'));bwb=new kwb;$vb=new gwb((_n(),_n(),$n),(null,$n),(Bwb(),zwb))}function iUb(a){var b,c,d,e,f;d=fVb(a.j,0).b.b;if(DUb(a)){c=oSb(a);b=iUb(a);return new b0b(new r0b(d,a.g),c,b)}else return oUb(a,0,(YXb(), GWb))&&Xoc(fVb(a.j,0).a,"await")?(e=fVb(a.j,0).b.b,(Esc(a.e)||iE(Hsc(a.e))!==iE((TUb(),QUb)))&&IUb(a,"'await' used in a non-async function context",pD(kD(kT,1),KFc,1,5,[])),gSb(a,"await"),f=iUb(a),new mYb(new r0b(e,a.g),f)):jUb(a)}function c9(){c9=aW;b9=new _6("JSC_DYNAMIC_EXTENDS_TYPE",(lZ(),iZ),new iqc("The class in an extends clause must be a qualified name."));_8=new _6("CLASS_REASSIGNMENT",iZ,new iqc("Class names defined inside a function cannot be reassigned."));a9=new _6("CONFLICTING_GETTER_SETTER_TYPE", iZ,new iqc("The types of the getter and setter for property ''{0}'' do not match."))}function ZCb(a,b,c,d,e,f){var g,h,i;if(!(!b.d?null:b.d.a))return null;if((b.a&2)==0){jzc(a.i,Kgb(d,ACb,pD(kD(pT,1),tFc,2,6,[c])));return null}g=(!b.d?null:b.d.a).a;h=cDb(a,g,f,e);i=h.Lh()==2&&h.Oh().size()==1?Us(h.Oh().Od()).d:null;if(!!i&&i.a.g==0)return i;if(!i)return YCb(a,g,c,d,h,f);else{he(i.a.g!=0);jzc(a.i,Kgb(d,sCb,pD(kD(pT,1),tFc,2,6,[oJc,c])))}return null}function wVb(a){var b,c,d,e;c=a.d;aVb(a);aVb(a);while(_Ub(a, a.d)&&((_Ub(a,a.d)?Soc(a.e.a,a.d):0)!=42||(_Ub(a,a.d+1)?Soc(a.e.a,a.d+1):0)!=47))aVb(a);if(_Ub(a,a.d)){aVb(a);aVb(a);d=(CYb(),xYb);a.d-c>4&&(Soc(a.e.a,c+2)==42?d=zYb:Soc(a.e.a,c+2)==33&&(d=yYb));b=SRb(a.e.b,c,a.d);e=mpc(a.e.a,c,a.d);NUb(a.a,d,b,e)}else hVb(a,"unterminated comment",pD(kD(kT,1),KFc,1,5,[]))}function GNb(a){var b;if(a.r!=0){++a.b;--a.r;a.a==-1&&(a.a=a.i-a.f-a.r-1);return a.q[a.r]}for(;;){if(a.i==a.j){a.a==-1&&(a.a=a.i-a.f-a.r-1);return-1}++a.b;b=Soc(a.k,a.i++);if(a.e>=0){if(a.e==13&& b==10){a.e=10;continue}a.e=-1;a.f=a.i-1;++a.g}if(b<=127){if(b==10||b==13){a.e=b;b=10}}else{Abc();if(b>127)continue;if(RNb(b)){a.e=b;b=10}}a.a==-1&&(a.a=a.i-a.f-a.r-1);return b}}function YA(a,b,c){var d;switch(c){case 1:d=new aB(b[0]+a.c);a.c=d.e;return d;case 4:d=new gB(b[0]+a.c,b[1]+a.f,b[2]+a.g,b[3]+a.e);a.c=d.e;a.f=d.yf();a.g=d.zf();a.e=d.xf();return d;case 5:d=new lB(b[0]+a.c,b[1]+a.f,b[2]+a.g,b[3]+a.e,b[4]+a.d);a.c=d.e;a.f=d.yf();a.g=d.zf();a.e=d.xf();a.d=d.wf();return d;default:throw BV(new Ync("Unexpected number of values for entry:"+ c));}}function VAb(a,b,c,d,e){var f,g,h,i,j;Zd(!LAb(b),"Expected non-union type but found: %s",b);if(b.Lh()==4&&b.Jh().size()==1){f=b.Lh()==4&&b.Jh().size()==1?Ryb(Us(b.Jh().Od())):null;return VAb(a,f,c,d,e)}if(b.Lh()==2&&b.Oh().size()==1){g=b.Lh()==2&&b.Oh().size()==1?Us(b.Oh().Od()):null;h=false;for(j=a.Oh().Od();j.Hd();){i=j.Id();SFb(i,g,c,d,e)&&(h=true)}return h}return false}function Rcb(a,b){var c,d,e,f,g,h;h=b.e;he(h.j==(tbc(),zac));c=h.e;if(!c)return null;d=c.e;switch(c.j.f){case 29:if(!d|| (qkb(),!(!!d&&(d.j==nbc||d.j==eac||d.j==d9b))))return null;g=c.ri();break;case 47:f=c.b;g=k6b(f);break;case 91:if(!!d&&d.j==zac)g=Rcb(a,c);else return null;break;default:return null}if(g!=null){e=b.ri();Abc();if(ybc.test(e))return g+"."+e}return null}function Seb(a,b,c){var d;switch(b){case yJc:VDb(a.b.d,c);break;case CJc:{_Db(a.b.d,c);d=new xHb(a.b.d,c.v,KKc,(_n(),_n(),$n),0,(wFb(),uFb),false);_Gb(d,c.s);ZDb(a.b.d,d);break}case zJc:$Db(a.b.d,c.r);break;case GGc:bEb(a.b.d,c.r);break;case xJc:UDb(a.b.d, c.r);break;case AJc:aEb(a.b.d,c.r);break;case wJc:TDb(a.b.d,c);break;case FKc:YDb(a.b.d,c);break;case LKc:XDb(a.b.d,c)}}function Nkb(a,b){var c;switch(a.j.f){case 76:case 88:case 100:case 94:case 93:case 45:for(c=a.b;c;c=c.d)Nkb(c,b);return;case 95:case 118:case 78:case 112:Nkb(a.b,b);return;case 114:Nkb(a.b?a.b.f:null,b);return;case 91:if(a.b)Nkb(a.b?a.b.f:null,b);else{he(tlb(a));b.add(a)}break;case 29:b.add(a);break;default:me(a.j==(tbc(),p9b),"Invalid node in lhs of declaration: %s",a)}}function aFb(a, b){var c,d,e,f,g,h,i;if(b.isEmpty())return a;if(a.a.q.isEmpty())return a.a.s;c=(So(),new nr);if(a.b.d.d.isEmpty()){i=a.a.q;for(e=i.Od();e.Hd();){d=e.Id();b.containsKey(d)&&kr(c,d,b.Xd(d))}h=fp(c.b);if(h.d.d.isEmpty())return a;if(h.d.d.size()=0&&b<=FGc))throw BV(new z0b(b));c=b=0&&b<=FGc),b>=vFc?pD(kD(lE,1),uFc,47,15,[wFc+(b-vFc>>10&xFc)& yFc,zFc+(b-vFc&xFc)&yFc]):pD(kD(lE,1),uFc,47,15,[b&yFc])));return J0b(a,c,0)}else throw BV(G0b(a));}function z6b(a,b,c){var d,e,f;f=cpc(b,spc(46),c-1)+1;switch(a.j.f){case 29:case 98:d=a.ri();return f==0&&d.length!=0&&d.length==c&&Xoc(b.substr(0,d.length),d);case 33:return f==0&&4==c&&Xoc(b.substr(0,4),SHc);case 99:return f==0&&5==c&&Xoc(b.substr(0,5),THc);case 26:e=(a.b?a.b.f:null).ri();return f>1&&e.length==c-f&&dpc(e,false,0,b,f,c-f)&&z6b(a.b,b,f-1);default:return false}}function bUb(a,b){var c, d,e,f,g;e=!b?fVb(a.j,0).b.b:b.o.b;f=oSb(a);c=(_n(),new fr);dr(c,new U_b(f.b,f));if(f.c==(YXb(),ZWb))return new T_b(new r0b(e,a.g),b,io(c.a));d=pSb(a,1);dr(c,new V_b(d.o,d));while(!a.c.d){f=(g=cVb(a.j),a.g=g.b.a,g);if(f.c==yWb||f.c==tWb)break;dr(c,new U_b(f.b,f));if(f.c==JXb)break;d=pSb(a,1);dr(c,new V_b(d.o,d))}return new T_b(new r0b(e,a.g),b,io(c.a))}function Skb(a){qkb();switch(a.j.f){case 48:return tbc(),Q8b;case 49:return tbc(),R8b;case 50:return tbc(),O8b;case 51:return tbc(),fac;case 52:return tbc(), Qac;case 53:return tbc(),mbc;case 54:return tbc(),s8b;case 55:return tbc(),$ac;case 56:return tbc(),lac;case 59:return tbc(),v9b;case 57:return tbc(),m9b;case 58:return tbc(),jac}throw BV(new dhb("Not an assignment op:"+a));}function eA(a,b,c){var d,e,f;be(b);c=(!a.c?(Dc(),Cc):new oc(a.c.a)).Md(c);if(!Rz(a.b,c.length))throw BV(new wA("Invalid input length "+c.length));d=0;for(f=0;f>>16<<24>>24;if(f>>8&255)<<24>>24;if(f>24}}}return d}function mX(a,b){var c,d,e,f,g,h,i;switch(b.j.f){case 98:h=vbc(b.j);h!=-1&&(d=e6b(b),h!=d&&YX(WGc+h+XGc+d,b));gX(a,b.b,true);break;case 156:e=e6b(b);0!=e&&YX(VGc+e,b);break;case 157:i=vbc(b.j);i!=-1&&(f=e6b(b),i!=f&&YX(WGc+i+XGc+f,b));TW(b.b);break;case 158:g=vbc(b.j);g!=-1&&(c=e6b(b),g!=c&&YX(WGc+g+XGc+c,b));break;default:YX("Interface contained member of invalid type "+b.j,b)}}function xA(a,b,c){var d, e,f,g,h,i;be(c);if(b==0)throw BV(new Lmc("/ by zero"));f=a/b|0;h=a-b*f;if(h==0)return f;i=1|(a^b)>>31;switch(c.f){case 7:AA(h==0);case 1:g=false;break;case 0:g=true;break;case 2:g=i>0;break;case 3:g=i<0;break;case 6:case 5:case 4:d=h<0?-h:h;e=d-((b<0?-b:b)-d);e==0?g=c==($pc(),Xpc)||c==Wpc&(f&1)!=0:g=e>0;break;default:throw BV(new Rmc);}return g?f+i:f}function yD(a,b,c,d,e,f){var g,h,i,j,k,l,m;j=BD(b)-BD(a);g=LD(b,j);i=uD(0,0,0);while(j>=0){h=ED(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&AD(i);if(f)if(d){rD=KD(a);e&&(rD=OD(rD,(XD(),VD)))}else rD=uD(a.l,a.m,a.h);return i}function $Cb(a,b,c,d){var e,f,g;g=b.ri();switch(g){case kFc:NCb(a,b);return a.a.a;case qFc:NCb(a,b);return a.a.j;case lFc:NCb(a,b);return a.a.q;case nFc:NCb(a,b);return a.a.t;case GJc:case $Hc:NCb(a,b);return a.a.B;case yJc:NCb(a,b);return iDb(a,SDb(a.a));case CJc:{if(b.b){e= a.a.R;if(!e)return a.a.G;f=_Cb(a,e,b,c,d)}else f=a.a.ab;return FBb(a.a.j,f)}default:return hDb(a,g,b,c,d)}}function of(a){var b,c,d,e;c=a.c;while(a.c!=-1){e=c;d=pf(a,a.c);if(d==-1){b=a.e.length;a.c=-1}else{b=d;a.c=d+1}if(a.c==c){++a.c;a.c>a.e.length&&(a.c=-1);continue}while(ee&&a.f.Ld(Soc(a.e,b-1)))--b;if(a.d&&e==b){c=a.c;continue}if(a.b==1){b=a.e.length;a.c=-1;while(b>e&&a.f.Ld(Soc(a.e,b-1)))--b}else--a.b;return ppc(kpc(a.e,e,b))}return a.i=2,null}function lib(a, b){var c,d,e;Ud(b.indexOf(".")==-1);if(Xoc(SHc,b)){d=a.c;if(!(!!d&&!!(d.c?d.c:d.e)))return null;return nyb(a.c)}c=mib(a,b,false);if(c){if(c.d){me(0!=c.d.Lh(),"%s was bottom",b);return c.d}e=c.a;if(e){ee(e.c,"decl=%s, funScope=%s",c,e);return BDb(a.a,syb(e.c))}he(!c.c);return null}if(Xoc(b,a.p)&&!wib(a.r,b))return BDb(a.a,syb(a.c));if(a.r)return lib(a.r,b);return null}function Zec(a,b,c){var d,e,f,g,h,i;be(b);if(Lbc(a,b,0,new mgc(true)))return a;if(a.f==(Sfc(),Rfc)&&b.f==Rfc&&!Ycc(a.b)&&!Ycc(b.b)){f= a.Si(b);g=b.Si(a);if(f&&!g)return c?b:a;else if(g&&!f)return c?a:b;i=$ec(a,b,c);if(i)return i}d=Shc(a.w,(zhc(),Kgc));if(Lbc(d,b,0,new mgc(true)))return c?b:a;else if(Lbc(d,a,0,new mgc(true)))return c?a:b;e=Shc(a.w,thc);h=Shc(a.w,Ogc);return c?e:h}function ipc(a,b,c){var d,e,f,g,h,i,j,k;d=new RegExp(b,"g");j=mD(pT,tFc,2,0,6,1);e=0;k=a;g=null;while(true){i=d.exec(k);if(i==null||k==""||e==c-1&&c>0){j[e]=k;break}else{h=i.index;j[e]=k.substr(0,h);k=mpc(k,h+i[0].length,k.length);d.lastIndex=0;if(g==k){j[e]= k.substr(0,1);k=k.substr(1)}g=k;++e}}if(c==0&&a.length>0){f=j.length;while(f>0&&j[f-1]=="")--f;f=48&&c<=57){d=_0b(a);if((a.bd-1?0:d-1}else if(c==48)a.b=e;else return d1b(a,b,d)}else if(c==60){b.a=-2;Z0b(a)}while(i1b(b,a.b=48&&c<=57?d1b(a,b,_0b(a)):c==46?c1b(a,b):b1b(a,b)}function COb(a,b){var c, d;d=(Zd(b.j==(tbc(),V8b),aNc,b),b.b.ri());c=mPb(Mb(d));switch(c.f){case 19:return AOb(a,b);case 22:return IOb(a,b);case 11:return gOb(a,b,(kPb(),ZOb));case 0:return gOb(a,b,(kPb(),OOb));case 23:return gOb(a,b,(kPb(),jPb));case 14:return wOb(a,b);case 18:return BOb(a,b);case 17:return yOb(a,b);case 20:return sOb(a,b);default:throw BV(new Ync("Invalid type expression"));}}function scb(a,b){var c,d,e,f,g,h,i,j;for(i=(g=b.b.a,g?!g.b?(Wuc(),Wuc(),Vuc):new Y7b(g.b):(Wuc(),Wuc(),Vuc)).Od();i.Hd();){h=i.Id(); vcb(a,cE(h.k,24)?h.k:null)}vcb(a,b.b.b);if(b.f==(Sfc(),Qfc))for(d=Zs(new hwc(b.c.a.b.Od()));d.Hd();){c=d.Id();zvc(a.a,c)&&c.aj(a)}if(b.Xh()){for(f=Zs(new hwc(b.d.a.b.Od()));f.Hd();){e=f.Id();zvc(a.a,e)&&e.aj(a)}j=Sec(b).fj();!!j&&zvc(a.a,j)&&j.aj(a)}return a.b.b}function iib(a){var b,c,d,e,f,g,h,i;de(a.c,"No declared type for scope: %s",a.t);a.u=(En(),Rx(),Qx);for(c=a.k.Wd().Od();c.Hd();){b=c.Id();d=b.ce();e=b.de();if(cE(e,297)){jzc(a.b,d);f=e;FEb(f,a.e.Xd(d));g=Oyb(f)}else g=Oyb(e);a.e.containsKey(d)? a.e.put(d,g):lAc(a.o,d,g)}for(i=a.n.keySet().Od();i.Hd();){h=i.Id();lAc(a.o,h,a.a.B)}Jib(a);a.s=a.k;a.k=(So(),So(),Ro);a.n=(null,Ro);a.d=(null,Qx);a.g=true}function Xxb(){Xxb=aW;Vxb=new _6("JSC_NULLABLE_RETURN",(lZ(),jZ),new iqc("This function''s return type is nullable, but it always returns a non-null value. Consider making the return type non-nullable."));Wxb=new _6("JSC_NULLABLE_RETURN_WITH_NAME",jZ,new iqc('The return type of the function "{0}" is nullable, but it always returns a non-null value. Consider making the return type non-nullable.'))} function yfb(a,b){var c,d,e,f,g,h,i,j;c=j6b(b,29);d=!c.d?null:c.d.g;be(d);e=d.indexOf(".")!=-1?new RGb(ho(ef(lf(new oc(46)),d))):new SGb(d);if(zib(a.a,e))zfb(a,e,d,b);else{j=efb(a,e,d,b);if(j)for(h=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();h.Hd();){g=h.Id();f=Rkb(g);pfb(a,j,f,g,g.b)}else for(h=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();h.Hd();){g=h.Id();i=g.b;i.j==(tbc(),E9b)&&Lfb(a,i,null)}}}function clc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;o=b.d;l=c.d;for(f=0;f 0){if(!b6(a.a,"".charCodeAt(0))){b=mD(lE,uFc,47,a.a.length,15,1);for(c=0;c0||t3(new j3(a));if(a.k.a.c<=0){ie(!!a.A&&!a.A.isEmpty(),nIc);he(a.k.a.c<=0);he(true);t3(new d3(a));a.k.a.c>0||(ie(!!a.A&&!a.A.isEmpty(),nIc),he(a.k.a.c<=0),he(true),t3(new f3(a)),undefined);t3(new h3(a))}}finally{e=(a.L.pd!=(k5(),h5)&&!!a.X&&Enb(a.X,oIc,true),new vsb); ZX(a.k.a);f=OV(HV(Date.now()),e.a);a.L.pd!=h5&&!!a.X&&Fnb(a.X,oIc,f)}return F1(a)}function k9(a,b,c){var d,e,f,g,h,i,j,k;j=n9(b,Xlb(a.a,c.f),Xlb(a.a,c.f+PJc));h=b6b(b.b?b.b.f:null);d=r1b(j,h);d7b(d,b);f=j6b(b,29);if(h6b(b,58)!=0&&amb(d.b?d.b.f:null)){g=M5b(f);y5b(g,new O5b(new g7b((tbc(),N8b),new e7b(Jac)),(e=j6b(b,51),!e?null:e.Og())));f=u4b(g)}!!f&&(k=F6b(d,d.g,29),k!=d.g&&(d.g=k),!!f&&(d.g=new T7b(29,f,d.g)),d);i=(qkb(),a7b((ie(P1b(d),d),new g7b((tbc(),z9b),d)),d));S5b(c.g.e,i,c.g);c.g=i}function Dkb(a){qkb(); var b,c;if(a.j==(tbc(),z9b))return Dkb(a.b);b=j6b(a,29);if(!b){c=a.e;if(!c||a.j==z9b)return null;if(c.j==mac)return Dkb(c);else if(c.j==z8b)return Dkb(c);else if(Blb(c))return c;else if((c.j==E9b||c.j==$8b)&&a==c.b)return Dkb(c);else if(!!c&&(c.j==nbc||c.j==eac||c.j==d9b)&&!!c.b&&!c.b.d)return c;else if(c.j==N9b&&c.b!=a||c.j==Cac||c.j==t8b||c.j==b9b&&c.b!=a)return Dkb(c)}return a}function Qfb(a,b){var c,d,e,f,g;teb(a.c,(b.b?b.b.f:null).ri(),b);if(Ceb(b,a.a))Rfb(a,b);else if(Deb(b)){Ud(b.j==(tbc(), K9b));d=Tkb(b);e=TGb(d);f=(g=jib(a.a,e,false),!g?null:cE(g.c,73)?g.c:null);!!f&&!tib(a.a,d)&&Fjb(a.c.t,Kgb(b,(jeb(),Ndb),pD(kD(pT,1),tFc,2,6,[])));Tfb(a,b,f)}else if(Dlb(b)){c=F6b(b,b.g,76);c!=b.g&&(b.g=c);b.g=new J7b(76,1,b.g);Sfb(a,b)}else ofb(a,b,a.a)?Kfb(a,b):Aib(a.a,b.b)?Mfb(a,b):Pfb(a,b)}function Czb(a,b){var c,d,e,f,g,h,i,j;if(b.isEmpty())return a;c=new nAb(a.a);for(h=a.i.Od();h.Hd();){g=h.Id();gAb(c,TAb(g,b))}for(e=a.e.Od();e.Hd();){d=e.Id();cAb(c,TAb(d,b))}!!a.j&&hAb(c,TAb(a.j,b));iAb(c, TAb(a.k,b));a.c&&(c.c=true,c);bAb(c,Vzb(a.d,b));if(a.g){f=Mzb(a.g);!!f&&!f.a.q.isEmpty()&&f.b.d.d.isEmpty()?fAb(c,a.g):fAb(c,Vzb(a.g,b))}for(j=a.f.bf().Od();j.Hd();){i=j.Id();dAb(c,i,a.f.Xd(i))}return mAb(c)}function rB(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p;if(b==null||d.b<0)return;h=e;g=f;if(a.f.b!=0||a.f.a!=0){o=a.f.b;p=a.f.a;i=a.f.a;e.b>0&&(p=0);f.b>0&&(i=0);h=new LA(e.b+o,e.a+p);g=new LA(f.b+o,f.a+i)}l=new IB;l.d=b;l.c=d;l.b=c;l.e=h;l.a=g;if(a.b){k=a.b.e.b;j=a.b.e.a;n=l.e.b;m=l.e.a;qe(n>k||n== k&&m>=j,"Incorrect source mappings order, previous : (%s,%s)\nnew : (%s,%s)",moc(k),moc(j),moc(n),moc(m))}a.b=l;jtc(a.e,l)}function RTb(a){var b,c,d,e,f,g;f=fVb(a.j,0).b.b;e=dSb(a);b=eSb(a,(YXb(),jWb));if(!b)if(e.c!=GWb)GUb(a,fVb(a.j,0),GNc,pD(kD(kT,1),KFc,1,5,[jWb]));else if(LRb(e.a)&&!NRb(e.a))GUb(a,e,"Cannot use keyword in short object literal",pD(kD(kT,1),KFc,1,5,[]));else if(oUb(a,0,vWb)){d=new yZb(new r0b(f,a.g),e);aSb(a,vWb);c=CSb(a,1);return new RYb(new r0b(f,a.g),d,c)}g=!b?null:CSb(a,1); return new L_b(new r0b(f,a.g),e,g)}function Xlb(a,b){qkb();var c,d,e,f,g,h,i,j;c=$oc(b,spc(46));if(c==-1)return Wlb(a,b);f=b.substr(0,c);Xoc(SHc,f)?e=new e7b((tbc(),ebc)):Xoc(THc,f)?e=new e7b((tbc(),_ac)):e=Wlb(a,f);do{j=c+1;c=_oc(b,spc(46),j);g=c==-1?b.substr(j):b.substr(j,c-j);h=new e8b((tbc(),Xac),g);O6b(h,g.length);w1(a).fg(g)&&(i=F6b(h,h.g,43),i!=h.g&&(h.g=i),h.g=new J7b(43,1,h.g));d=e.c+1+g.length;e=H1b(e,h);e.c=d}while(c!=-1);return e}function _o(a){So();var b,c,d,e,f,g,h,i,j;if(cE(a,159)&& !cE(a,341)){g=a;return g}else if(cE(a,236)){f=a;for(e=new Eyc((new yyc(f)).a);$yc(e.a);){d=(e.b=_yc(e.a),new Iyc(e.c,e.b));be(d.a);be(d.b.b[d.a.f])}i=$q(new nyc(f));return i}j=a.size();switch(j){case 0:return Ro;case 1:d=Us(a.Wd().Od());return lp(d.ce(),d.de());default:h=new oAc;for(c=a.Wd().Od();c.Hd();){b=c.Id();lAc(h,be(b.ce()),be(b.de()))}return new Ox(h)}}function Zgb(a){var b,c,d,e,f,g,h;h=new utc;for(g=0;gd+1?e:d+1}Xd(e>=0,"invalid depth: %s",e);f.b=e;e==h.a.length&&jtc(h,new utc);(REc(e,h.a.length),h.a[e]).add(f)}return h}function WMb(a,b){switch(b.f){case 13:return"@"+a.j.n;case 19:return"!";case 11:return",";case 12:return":";case 3:return">";case 5:return"[";case 7:return"{";case 9:return"(";case 2:return"<";case 17:return"?";case 14:return"|";case 6:return"]"; case 8:return"}";case 10:return")";case 15:return"*";case 18:return JHc;case 20:return"=";case 4:return a.j.n;default:throw BV(new Ync(b.e!=null?b.e:""+b.f));}}function i7b(a,b,c){Vd(!b.e,"first new child has existing parent");Vd(!b.d,"first new child has existing next sibling");Vd(!b.f,"first new child has existing previous sibling");Vd(!c.e,"second new child has existing parent");Vd(!c.d,"second new child has existing next sibling");Vd(!c.f,"second new child has existing previous sibling");this.j= a;this.e=null;this.b=b;b.d=c;b.f=c;b.e=this;c.d=null;c.f=b;c.e=this;this.i=-1}function OMb(a,b){var c,d,e,f,g;if(b!=(CNb(),BNb))return bMb(a,UMc,a.j.g,INb(a.j)),null;f=a.j.n;d=a.j.g;c=INb(a.j);while(nMb(a,oNb)&&Soc(f,f.length-1)==46){VMb(a);if(nMb(a,BNb)){!a.o?JNb(a.j):fMb(a);f+=a.j.n}}g=qMb(a,f,d,c);if(nMb(a,qNb)){!a.o?JNb(a.j):fMb(a);VMb(a);e=NMb(a,f,!a.o?JNb(a.j):fMb(a));if(e){V5b(g,e);VMb(a);if(!nMb(a,wNb))return bMb(a,"msg.jsdoc.missing.gt",a.j.g,INb(a.j)),null;!a.o?JNb(a.j):fMb(a)}}return g} function JBb(a,b){sAb();var c,d,e,f,g;g=LBb(a,b);if(0==g.Lh()&&(d=a.Oh(),d.size()==1&&Us(d.Od()).c||(e=b.Oh(),e.size()==1&&Us(e.Od()).c))){g=LBb(uAb(a),uAb(b));if(0!=g.Lh()){f=a.Oh();if(f.size()==1&&Us(f.Od()).c){oe((c=b.Oh(),!(c.size()==1&&Us(c.Od()).c)),"Two loose types %s and %s that meet to bottom, meet to non-bottom after autoboxing.",tAb(a,new Kpc,(HHb(),GHb)).a,tAb(b,new Kpc,GHb).a);return b}else return a}}return g}function BOb(a,b){var c;if(!gOb(a,b,(kPb(),ePb)))return false;if(!FOb(a,(Zd(b.j== (tbc(),V8b),aNc,b),d6b(b,1)))){LOb(a,ePb.d);return false}if((Zd(b.j==V8b,aNc,b),d6b(b,2)).j!=xac){a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,[NFc])),a.b.Og(),a.d,a.c);LOb(a,ePb.d);return false}c=(Zd(b.j==V8b,aNc,b),d6b(b,2)).qi();if(c<0||c%1!=0){a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,[NFc])),a.b.Og(),a.d,a.c);LOb(a,ePb.d);return false}return true}function jwb(a,b){var c,d,e,f,g,h;h=(En(),new Ur);e=new mzc;for(g=Ys(a.a.Od(),a.b);g.b.Hd();){f=et(g,g.b.Id());c=(Fwb(),d=fpc(fpc(fpc(fpc(fpc(epc(epc(f,58,45), 92,47)," ",HJc),"[",IJc),"]",JJc),"<",KJc),">",LJc),Gwb(d));if(!jzc(e,iwb(c,b)))throw BV(new dhb("Duplicate module path after resolving: "+f));!Xoc(c.substr(0,1),"/")&&!(Xoc(c.substr(0,2),BIc)||Xoc(c.substr(0,3),NLc))&&(c="/"+c);jtc(h.a,be(c))}return Np(new Rtc(h.a))}function _Nb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;i=new TVb(a.Og(),b);j=c.b==1;e=new cOb(d,j);f=$Nb(c);k=new LUb(f,e,i);n=(o=new v0b,p=fVb(k.j,0).b.b,q=mTb(k),aSb(k,(YXb(),tWb)),x0b(o.a,OV(HV(Date.now()),o.b)),new K_b(new r0b(p,k.g), q,io(k.a.a.a)));m=null;_n();h=k.d;if(!e.d||j){g=CKb(n,a,b,c,d);m=g.p;h=CPb(h,g.e);l=F6b(m,m.g,89);l!=m.g&&(m.g=l);!!h&&(m.g=new T7b(89,h,m.g));c.d!=(pJb(),oJb)&&io(k.a.a.a)}return new fOb(m,k.f)}function LBb(a,b){var c,d;if(-1==a.Lh())return b;if(-1==b.Lh())return a;if(oFc==a.Lh())return b;if(oFc==b.Lh())return a;if(0==a.Lh()||0==b.Lh())return a.e.b;if(512==a.Lh())return OAb(b);if(WJc==a.Lh())return NAb(b);if(512==b.Lh())return OAb(a);if(WJc==b.Lh())return NAb(a);c=a.Lh()&b.Lh();if(a.Vh()==b.Vh())d= a.Vh();else{d=null;c=c&-2}return KBb(a.e,c,a.Lh()|b.Lh(),tGb(false,a.Oh(),b.Oh()),d,a.Oh(),b.Oh(),a.Jh(),b.Jh())}function J_b(){H_b();return pD(kD(DQ,1),PFc,19,0,[f_b,G$b,a$b,D_b,B_b,w$b,A$b,L$b,v$b,E_b,D$b,F$b,C_b,r$b,b$b,j_b,F_b,e$b,t$b,n_b,Q$b,s_b,f$b,t_b,s$b,r_b,K$b,R$b,WZb,a_b,i$b,k$b,j$b,J$b,k_b,g_b,l$b,m$b,o$b,p$b,V$b,h$b,_Zb,q$b,y_b,A_b,S$b,Z$b,VZb,c$b,g$b,P$b,X$b,Y$b,x$b,T$b,e_b,B$b,m_b,XZb,ZZb,b_b,C$b,l_b,_$b,i_b,W$b,y$b,z$b,M$b,N$b,E$b,G_b,u$b,o_b,p_b,q_b,w_b,x_b,u_b,c_b,d_b,YZb,h_b,z_b, H$b,I$b,U$b,n$b,v_b,UZb,O$b,d$b,$$b,$Zb])}function Wcb(a,b,c,d,e){var f,g,h,i,j,k,l,m;if(Zcb(a,b,c,d))return;i=Scb(a,d);i.p=e;j=new qdb(b,(h=(zdb(),xdb),++a.a.b,h));bdb(i,j);if(c.j==(tbc(),z8b)&&c.e.j!=z9b){f=new qdb(b,(g=sdb,++a.a.b,g));bdb(i,f);Ud((j.b==sdb||f.b==sdb)&&(j.b==xdb||j.b==ydb||f.b==xdb||f.b==ydb))}else(k=Vkb(b),l=(qkb(),m=Dkb(b),!m?null:j6b(m,29)),!!l&&!!k&&((l.a&2)!=0&&k.j==E9b||((l.a&512)!=0||(l.a&jJc)!=0)&&k.j==E9b||(l.a&QJc)==yKc&&k.j==zac))&&ddb(i)}function _eb(a,b){var c,d,e, f;b.j==(tbc(),K9b)&&Peb(b.e);if(tib(a.a,b)){b.j==K9b&&Vkb(b).j!=Cac&&Fjb(a.b.t,Kgb(b,(jeb(),ceb),pD(kD(pT,1),tFc,2,6,[(b.b?b.b.f:null).ri(),k6b(b.b)])));return}eib(a.a,b);d=Vkb(b);d.j==Cac&&(d=d.b?d.b.f:null);me(d.j==zac,"Expected object literal, found %s",d);for(f=(!d.b?(Wuc(),Wuc(),Vuc):new Y7b(d.b)).Od();f.Hd();){e=f.Id();if(Oeb(a,e)){c=H1b(_5b(b,false),d2b(e.ri()));r1b(c,_5b(e.b,false));Veb(a,c)}}}function GAb(a){var b,c,d,e,f,g,h,i,j,k;if(!LAb(a))return _n(),new By(be(a));b=(En(),new Ur);k=pD(kD(nO, 1),KFc,127,0,[a.e.a,a.e.q,a.e.t,a.e.B,a.e.j]);for(h=k,i=0,j=h.length;im&&jzc(a.i,Kgb(c,FCb,pD(kD(pT,1),tFc,2,6,[" for type "+n.a.A,""+m,""+i])));j=RCb(a,l.size(),j);h= _Eb(n,j);return iDb(a,cBb(oGb(h.a.u,h,null,null,null,false,h.a.i)))}return iDb(a,cBb(_Fb(_Eb(n,j))))}function Zjb(a,b,c){var d,e,f,g,h;d=b.j;if(d==(tbc(),Rac)){Ojb(a,b,c);return}else if(d==E9b){Njb(a,b,c);return}a.e=b;if(!a.a.Vf(a,b,c))return;d==E9b?_jb(a,b,c):d==$8b?(e=b.b,f=(qkb(),b.j==$8b&&!Jlb(b.e)),f||Zjb(a,e,b),a.e=b,Sjb(a,b),f&&Zjb(a,e,b),g=b.b.d,h=g.d,Zjb(a,g,b),Zjb(a,h,b),Rjb(a,false),undefined):d==kac?(Sjb(a,b),$jb(a,b),Rjb(a,false),undefined):a.p&&zkb(b)?(Sjb(a,b),$jb(a,b),Rjb(a,false), undefined):$jb(a,b);a.e=b;a.a.Wf(a,b,c)}function bVb(a){var b;a.d=a.b.b==0?a.d:fVb(a,0).b.b.c;aBc(a.b);b=a.d;aVb(a);if(!zVb(a))return new XRb((YXb(),rXb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d));if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)!=47){hVb(a,"Expected '/' in regular expression literal",pD(kD(kT,1),KFc,1,5,[]));return new XRb((YXb(),rXb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d))}aVb(a);while(KVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0))aVb(a);return new XRb((YXb(),rXb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d))}function g2(a){var b, c;a.L.Cc&&(ZDc(k1,"Recording function information"),he(!a.f),a.e=wIc,a.f=(a.L.pd!=(k5(),h5)&&!!a.X&&Enb(a.X,wIc,true),new vsb),undefined,b=new jpb((c=a,!a.N&&(a.N=new pxb),c)),ipb(b,a.C),null.Tj(),ie(!!a.f,"Tracer should not be null at the end of a pass."),y2(a,a.f,a.e),o1(a),a.e=null,a.f=null,a.L._==(k4(),g4)&&Dqb(new Hqb(a),a.r,a.C),undefined,undefined);a.L._==(k4(),j4)&&Dqb(new Hqb(a),a.r,a.C);a.P=1;!!a.X&&znb(a.X)}function uZ(){uZ=aW;tZ=new _6("JSC_REGEXP_REFERENCE",(lZ(),kZ),new iqc("References to the global RegExp object prevents optimization of regular expressions.")); sZ=new _6("JSC_MALFORMED_REGEXP",kZ,new iqc("Malformed Regular Expression: {0}"));Tp("$1","$2","$3","$4","$5","$6",pD(kD(pT,1),tFc,2,6,["$7","$8","$9","$_","$input","input","lastMatch","lastParen","leftContext","rightContext","global","ignoreCase","lastIndex","multiline","source"]))}function D2(a){var b,c,d,e,f;e=(a.L.pd!=(k5(),h5)&&!!a.X&&Enb(a.X,yIc,true),new vsb);try{for(c=(!a.N&&(a.N=new pxb),new Rtc((f=new utc,Jsb(),jtc(f,Gsb),Jsb(),jtc(f,Fsb),jtc(f,xsb),jtc(f,Bsb),jtc(f,Asb),jtc(f,Esb),jtc(f, Dsb),undefined,Jsb(),jtc(f,zsb),jtc(f,Csb),jtc(f,wsb),jtc(f,Hsb),jtc(f,Isb),undefined,Jsb(),jtc(f,ysb),f)));c.a=0){d=dl&&(b.a+=wpc(mD(lE,uFc,47,d-l,15,1))),undefined):b=hE(b)?b.substr(0,d-0):b.xj(0, d)}k>0&&(k=Boc(tpc(b),k));if(d>=k)return b;e=32;a.b.k?a.b.b==100?e=48:e=48:j=0;f=mD(lE,uFc,47,k-d,15,1);duc(f,f.length,e);g=a.b.f;i=cE(b,20)?b:new Mpc(b);g?(i.a+=xpc(f,0,f.length),i):Jpc(i,j,xpc(f,0,f.length));return i}function zZ(){zZ=aW;lf(new oc(46));new Vc(String.fromCharCode(46));yZ=new _6("JSC_MISSING_REQUIRE_WARNING",(lZ(),jZ),new iqc(mHc));wZ=new _6("JSC_MISSING_REQUIRE_FOR_GOOG_SCOPE",jZ,new iqc(mHc));xZ=new _6("JSC_MISSING_REQUIRE_STRICT_WARNING",jZ,new iqc(mHc));vZ=new _6("JSC_EXTRA_REQUIRE_WARNING", jZ,new iqc("extra require: ''{0}''"));En();Pp(pD(kD(kT,1),KFc,1,5,["goog.testing.asserts","goog.testing.jsunit","goog.testing.JsTdTestCaseAdapter"]))}function HBb(a,b){switch(b){case 0:return a.b;case 8:return a.w;case 16:return a.e;case 32:return a.j;case 64:return a.q;case 128:return a.t;case 256:return a.B;case 512:return a.A;case WJc:return a.f;case oFc:return a.G;case -1:return a.u;case 24:return a.a;case 192:return a.r;case 280:return a.C;case 320:return a.D;case 384:return a.F;case 288:return a.p; case 56:return a.k;case 96:return a.n;case 160:return a.o;default:return new WBb(a,b)}}function Efb(a,b){var c,d,e,f,g,h,i;if(t6b(b)){c=jib(a.a,TGb(b),false);if(!c){i=Dfb(a,b);if(i)return g=i.Lh()==2&&i.Oh().size()==1?Us(i.Oh().Od()):null,!g?null:g.b}else if(cE(c.c,73)?c.c:null)return(cE(c.c,73)?c.c:null).c;else if(c.a){d=c.a.c;if(d)return syb(d)}else if(c.c){e=c.c;if(cE(e,209)){d=e.a.c;return syb(be(d))}}else if(c.d)return zAb(c.d)}h=Dfb(a,b);return!h?null:(f=h.Lh()==2&&h.Oh().size()==1?Us(h.Oh().Od()): null,!f?null:f.b)}function rGb(a,b){var c,d,e,f,g,h,i,j,k;f=a.d;g=b.d;oe(eFb(f,g)||eFb(g,f),"Unrelated nominal types %s and %s",f,g);if(a==a.a.bb||b==b.a.M)return b;else if(b==b.a.bb||a==a.a.M)return a;c=a.a;j=oFb(f,g);d=Rzb(a.b,b.b);if(!(!d||d!=d.a.c))return c.M;e=a.c&&b.c||!!d&&d.c;if(uHb(j.a,yJc)&&!d){d=!a.b?b.b:a.b;e=d.c}e?i=lGb(a.g,b.g):i=sGb(c,false,j,a.g,b.g);if(i==c.d)return c.M;h=zFb(a.f,b.f);k=zBc(a.e,b.e)?a.e:null;return new VFb(c,j,i,d,k,e,h)}function Bzb(a,b){var c,d,e,f,g,h,i,j,k;if(b.isEmpty()|| a==a.a.v||a==a.a.g)return a;if(!dEb(a.a.i,b))for(i=a.n.Od();i.Hd();){h=i.Id();he(!b.containsKey(h))}c=new nAb(a.a);for(g=a.i.Od();g.Hd();){f=g.Id();gAb(c,TAb(f,b))}for(e=a.e.Od();e.Hd();){d=e.Id();cAb(c,TAb(d,b))}!!a.j&&hAb(c,TAb(a.j,b));iAb(c,TAb(a.k,b));a.c&&(c.c=true,c);bAb(c,Vzb(a.d,b));fAb(c,Vzb(a.g,b));for(k=a.f.bf().Od();k.Hd();){j=k.Id();dAb(c,j,a.f.Xd(j))}jAb(c,a.n);return mAb(c)}function H$(a,b){var c,d,e,f,g,h;f=a.yg();e=b==0&&1/b<0;(b<0||e)&&f==45&&G$(a," ");if(e)G$(a,"-0");else if(QV(HV(b))== b){g=HV(b);d=g;c=0;if($wnd.Math.abs(b)>=100)while(GV(KV(FV(d,10),HV($wnd.Math.pow(10,c+1))),g)){d=FV(d,10);++c}if(c>2)G$(a,SV(d)+"E"+c);else{h=DV(g,0)<0?LV(g):g;DV(h,1E12)>0&&woc(h,4).length+2<(""+SV(h)).length?G$(a,(DV(g,0)<0?"-":"")+"0x"+woc(h,4)):G$(a,""+SV(g))}}else G$(a,hpc(fpc(""+b,".0E","E"),"^(-?)0\\.","$1."))}function Cbc(a,b,c,d,e){var f,g,h,i,j,k,l;g=new n8b((tbc(),F9b),a);be(b);be(c);for(j=new OAc(new FAc(b));j.b!=j.c.a.b;){h=MAc(j);f=T1b(h.d);U5b(g,Dbc(f,h.e))}for(i=new OAc(new FAc(c));i.b!= i.c.a.b;){h=MAc(i);f=T1b(h.d);l=F6b(f,f.g,80);l!=f.g&&(f.g=l);f.g=new J7b(80,1,f.g);U5b(g,Dbc(f,h.e))}if(d!=null){k=new g7b(Mac,(me($oc(d,spc(46))==-1,qHc,d),new e8b(mac,d)));U5b(g,(!!e&&(l=F6b(k,k.g,78),l!=k.g&&(k.g=l),!!e&&(k.g=new T7b(78,e,k.g))),k))}return g}function lUb(a,b){var c,d,e;d=fVb(a.j,0).b.b;e=fVb(a.j,0).c;switch(e.f){case 30:a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),VPb)]));aSb(a,e);break;case 38:a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),iQb)]));aSb(a,e);break;case 25:aSb(a,e);break; default:GUb(a,fVb(a.j,0),"expected declaration",pD(kD(kT,1),KFc,1,5,[]));return null}c=(_n(),new fr);dr(c,kUb(a,e,b));while(pUb(a,(YXb(),kWb))){aSb(a,kWb);dr(c,kUb(a,e,b))}return new e0b(new r0b(d,a.g),e,io(c.a))}function ILb(a,b){var c,d;if(b.a.size()==1){c=b.a.getAtIndex(0);switch(c){case "any":d=IJb(a.a,new m8b((tbc(),v8b)));break;case lFc:d=IJb(a.a,new m8b((tbc(),yac)));break;case kFc:d=IJb(a.a,new m8b((tbc(),T8b)));break;case nFc:d=IJb(a.a,new m8b((tbc(),Zac)));break;case $Hc:d=IJb(a.a,new m8b((tbc(), pbc)));break;case GJc:d=IJb(a.a,new m8b((tbc(),kbc)));break;default:d=IJb(a.a,Ebc(b.a))}}else d=IJb(a.a,Ebc(b.a));n7b(d.i)==-1&&hKb(d,b.o.b,b.o.a);return d}function WW(a,b,c){var d,e,f,g,h,i,j,k;switch(b.j.f){case 98:case 86:case 87:i=vbc(b.j);i!=-1&&(e=e6b(b),i!=e&&YX(WGc+i+XGc+e,b));k=b.b;c?gX(a,k,true):gX(a,k,false);break;case 156:f=e6b(b);0!=f&&YX(VGc+f,b);break;case 114:ZW(a,b);break;case 157:j=vbc(b.j);j!=-1&&(g=e6b(b),j!=g&&YX(WGc+j+XGc+g,b));UW(b.b);break;case 158:h=vbc(b.j);h!=-1&&(d=e6b(b), h!=d&&YX(WGc+h+XGc+d,b));break;case 80:break;default:YX("Class contained member of invalid type "+b.j,b)}}function gX(a,b,c){var d,e,f,g,h,i,j,k;zX((tbc(),E9b),b);f=vbc(b.j);f!=-1&&(e=e6b(b),f!=e&&YX(WGc+f+XGc+e,b));HX(a,b.b.d);g=b.b;d=b.b?b.b.f:null;if(h6b(b,60)!=0){fX(a,(BQb(),OPb),b);zX(mac,g);g.ri()==null&&YX(bHc,g);g.ri().length==0||YX("Expected empty string.",g);h=vbc(g.j);h!=-1&&(i=e6b(g),h!=i&&YX(WGc+h+XGc+i,g));d.j==S8b?QW(a,d):eX(a,d)}else{zX(mac,g);g.ri()==null&&YX(bHc,g);j=vbc(g.j);j!= -1&&(k=e6b(g),j!=k&&YX(WGc+j+XGc+k,g));c?zX(p9b,d):QW(a,d)}}function OSb(a,b,c){var d,e,f,g,h,i,j,k;h=fVb(a.j,0).b.b;aSb(a,(YXb(),eWb));g=null;(!b||(k=fVb(a.j,0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),k)||!a.b.b&&MRb(k)))&&(g=bSb(a));e=lSb(a);i=null;if(pUb(a,AWb)){aSb(a,AWb);i=pSb(a,1)}f=(_n(),new fr);if(a.b.c&&pUb(a,IWb)){aSb(a,IWb);j=cUb(a);jtc(f.a,be(j));while(pUb(a,kWb)){aSb(a,kWb);j=cUb(a);!!j&&(jtc(f.a,be(j)),f)}}aSb(a,bXb);d=QSb(a,c);aSb(a,gWb);return new uYb(new r0b(h,a.g), g,e,i,io(f.a),d)}function Qcb(a,b){var c,d,e;e=a;for(d=new F7b(new C7b(be(a.e)));d.a.a;){c=E7b(d);switch(c.j.f){case 41:case 84:case 76:case 100:case 88:case 66:case 70:case 72:case 73:case 25:case 79:case 19:case 20:case 21:case 22:return zdb(),vdb;case 60:if(c.b==e)return zdb(),vdb;break;case 47:if(!y6b(c.b,b))return zdb(),sdb;break;case 29:if(!Xoc(b,c.ri()))return zdb(),sdb;break;case 28:if(c.b!=e)return zdb(),sdb;break;case 24:return zdb(),udb}e=c}return zdb(),sdb}function R9(a){var b,c,d,e,f, g,h,i,j,k;b=E6b(a.d);h=E6b(a.d);g=!!a.d.b;i=I9++;j=K1b(i2b((tbc(),uac),b),u1b(pD(kD(TR,1),rHc,7,0,[C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(i))),_9()])));k=F6b(j,j.g,67);k!=j.g&&(j.g=k);j.g=new J7b(67,1,j.g);f=aab(i);V5b(a.j,j);S5b(a.j,h,j);S5b(a.j,f,h);if(g){c=E6b(a.d);d=I9++;e=aab(d);U5b(h,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(d))));U5b(h,_9());S5b(a.j,c,f);S5b(a.j,e,c)}}function PSb(a,b){var c,d;if(pUb(a,(YXb(),vXb)))return WSb(a);else{d= new WUb(fVb(a.j,0).b.b);d.b=b;d.a=jSb(a);d.c=!!eSb(a,DXb);return oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,"get")&&(zUb(a,1)||fVb(a.j,1).c==dXb)?lTb(a,d):oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,"set")&&(zUb(a,1)||fVb(a.j,1).c==dXb)?WTb(a,d):oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,IHc)&&(c=fVb(a.j,1).b.b.b>fVb(a.j,0).b.a.b,!(c||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&(zUb(a,1)||fVb(a.j,1).c==dXb)?HSb(a,d):RSb(a,d)}}function t8(a,b){var c,d,e,f,g;f=b.e;if(b.c){e=(me($oc(MJc,spc(46))==-1,qHc,MJc),new e8b((tbc(),mac),MJc));c= A1b(e,(me($oc(lJc,spc(46))==-1,qHc,lJc),new e8b(mac,lJc)),d9b);d=new K5b(false);B5b(d,new O5b(new g7b(N8b,new e8b(Xac,"Arguments")),""));M6b(c,u4b(d));d7b(c,f);V5b(f,c);q2(a.a,c)}if(b.d){e=(me($oc(NJc,spc(46))==-1,qHc,NJc),new e8b((tbc(),mac),NJc));g=A1b(e,new e7b(ebc),d9b);d7b(g,f);v8(a,g);!b.b?V5b(f,g):S5b(f,g,b.b);q2(a.a,g)}}function Ucb(a,b,c,d){var e,f,g;if(Zcb(a,b,c,d))return;switch(c.j.f){case 84:case 66:case 41:case 25:case 79:case 19:case 20:case 21:case 22:g=(zdb(), vdb);break;case 28:b==c.b?g=(zdb(),tdb):Ycb(a,c)?g=(zdb(),vdb):g=(zdb(),sdb);break;case 23:g=b==c.b?(zdb(),vdb):(zdb(),sdb);break;case 61:case 62:g=Qcb(c,d);break;case 60:b!=c.b?g=Qcb(c,d):g=(zdb(),vdb);break;case 24:g=(zdb(),udb);break;default:g=(zdb(),sdb)}f=Scb(a,d);bdb(f,new qdb(b,(e=g,++a.a.b,e)))}function Cqb(){Cqb=aW;zqb=new _6("JSC_CANNOT_PARSE_GENERATED_CODE",(lZ(),iZ),new iqc("Internal compiler error. Cannot parse generated code: {0}"));Bqb=new _6("JSC_GENERATED_BAD_CODE",iZ,new iqc("Internal compiler error. Generated bad code.----------------------------------------\nExpected:\n{0}\n----------------------------------------\nActual:\n{1}")); Aqb=new _6("JSC_EXTERN_PROPERTIES_CHANGED",iZ,new iqc("Internal compiler error. Extern properties modified."))}function Z2b(a){var b,c,d,e,f,g,h,i,j;e=new utc;!!a.i&&jtc(e,a.i.a);!!a.g&&jtc(e,a.g.a);if(a.d){!!a.d.a&&jtc(e,a.d.a.a);if(a.d.e)for(d=new Rtc(a.d.e);d.a=0||c.d!=null||c.g!=null||c.e!=null)throw BV(new dC("Invalid map format"));g=new yB;for(k= c.f.Od();k.Hd();){j=k.Id();h=j.d;j.c==0&&(h=null);if(h==null)throw BV(new dC("Unable to retrieve: "+j.d));wB(g,j.b,j.a,h)}i=new Kpc;try{tB(g,i,c.b)}catch(a){a=AV(a);if(cE(a,101)){e=a;throw BV(new uC(e));}else throw BV(a);}QA(b,i.a)}catch(a$1){a$1=AV(a$1);if(cE(a$1,101)){f=a$1;throw BV(new dC("IO exception: "+f));}else throw BV(a$1);}}function Veb(a,b){var c,d,e,f,g,h;if(tib(a.a,b))return;g=Vkb(b);h=TGb(g);c=(qkb(),d=Dkb(b),!d?null:j6b(d,29));e=nib(a.a,h);if(!!c&&((c.a&2)!=0||(c.a&512)!=0||(c.a&jJc)!= 0)){f=cE(e,73)?e:null;if((c.a&2)!=0&&(!f||f.g!=0)){Fjb(a.b.t,Kgb(g,(jeb(),Rdb),pD(kD(pT,1),tFc,2,6,[Tc(new Vc("."),h.a.Od())])));return}if(((c.a&512)!=0||(c.a&jJc)!=0)&&(!f||f.g==0)){Fjb(a.b.t,Kgb(g,(jeb(),Sdb),pD(kD(pT,1),tFc,2,6,[Tc(new Vc("."),h.a.Od())])));return}}if(e){A6b(b.e,76,true);dib(a.a,b,e)}}function lDb(a,b,c){var d,e,f;ie(!!b,"getEnum should only be called when we know that the enum is defined");if(b.d==(gzb(),fzb))return;f=Syb(b);if(!f){jzc(a.i,Kgb((he(b.d==dzb),b.e).a,qCb,pD(kD(pT, 1),tFc,2,6,[])));d=a.a.G}else{e=a.c;d=dDb(a,f,c,null);if(a.c>e){jzc(a.i,Kgb(f.a,xCb,pD(kD(pT,1),tFc,2,6,[])));d=a.a.G;a.c=e}else if(-1==d.Lh()){jzc(a.i,Kgb(f.a,vCb,pD(kD(pT,1),tFc,2,6,[])));d=a.a.G}else if(LAb(d)){jzc(a.i,Kgb(f.a,wCb,pD(kD(pT,1),tFc,2,6,[])));d=a.a.G}}Tyb(b,d)}function xgb(a,b,c){var d,e,f,g,h,i,j;f=false;b.a+="function(";d=c.b;if(d.j==(tbc(),sac)){b.a+="new:";ygb(a,b,d.b);f=true}else if(d.j==ebc){b.a+="this:";ygb(a,b,d.b);f=true}else if(d.j==p9b){b.a+=")";return}else if(d.j!=Eac){b.a+= "):";ygb(a,b,d);return}i=null;d.j==Eac?i=d:d.d.j==Eac&&(i=d.d);if(i){e=true;for(h=(!i.b?(Wuc(),Wuc(),Vuc):new Y7b(i.b)).Od();h.Hd();){g=h.Id();(!e||f)&&(b.a+=",",b);ygb(a,b,g);e=false}}b.a+=")";j=c.b?c.b.f:null;if(j.j!=p9b){b.a+=":";ygb(a,b,j)}}function ifb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;n=c.e;m=n.j==(tbc(),V8b)?n.b:n;if(olb(m)&&(qkb(),!(m.j==K9b&&z6b(m,uHc,uHc.length)))){g=m.e;f=a.c.f.Yf(g,true,false);o=!f.a?null:Cfb(a,f.a);if(!o)return null;e=WCb(a.c.q,null,b,c,null,null,d).a;return new vyb(e.a, e.f,e.d,e.g,e.i,e.c,o,e.j,e.b)}if(n.j==V8b&&c!=n.b){i=n.b;k=Cfb(a,i);j=!k?null:yAb(k);if(j){if(!j.n.isEmpty()){j=jfb(a,n,j,false);if(!j)return null}l=g6b(n,c)-1;h=ozb(j,l);p=gfb(c,h);if(p)return p}}return null}function Z6b(a,b,c,d,e){var f,g,h,i,j,k;Fpc(b,a.j);if(cE(a,8)){b.a+=" ";Gpc(b,a.ri())}else if(a.j==(tbc(),E9b)){b.a+=" ";!a.b||a.b.j!=mac?(b.a+="",b):Gpc(b,a.b.ri())}else if(a.j==xac){b.a+=" ";Apc(b,a.qi())}if(c){h=n7b(a.i);if(h!=-1){b.a+=" ";b.a+=h}if(a.c!=0){b.a+=" [length: ";Bpc(b, a.c);b.a+="]"}}if(d){g=m6b(a);for(f=0;f2;g=0;for(i=(f=(new nsc(j.a)).a.Wd().b.Kj(),new tsc(f));i.a.Hd();){h=(e=i.a.Id(),e.ce());g>0&&(b.a+=",",b);k?(b.a+="\n ",b):g>0&&(b.a+= " ",b);Gpc((b.a+=""+h,b),": ");Kbc(a.jj(h),b,c);++g;if(!c&&g==10){b.a+=", ...";break}}k&&(b.a+=BGc,b);b.a+="}";a.s=true;return b}function AOb(a,b){var c,d,e;if(!gOb(a,b,(kPb(),fPb)))return false;e=(Zd(b.j==(tbc(),V8b),aNc,b),e6b(b)-1);c=(Zd(b.j==V8b,aNc,b),d6b(b,1));if(c.j!=mac&&c.j!=Xac){a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,["type name or type variable"])),a.b.Og(),a.d,a.c);a.a.ph(NMc+r8b(eNc,pD(kD(kT,1),KFc,1,5,[lNc])),a.b.Og(),a.d,a.c);return false}for(d=1;d%s) from this (%s)",b,f,up(a.b,f),a);e=up(a.b,f);d=up(b.b,f);c=a.a.u;if(c.J&&uHb(a.a,wJc)){e=QAb(e,c.p);d=QAb(d,c.p);if(!JAb(e,d,new EHb((zEb(),zEb(),yEb)))&&!JAb(d,e,new EHb((null,yEb))))return false}else if(!JAb(e,d,new EHb((zEb(),zEb(),yEb))))return false}return true}function S0b(a){var b,c,d,e;d=0;c=new Kpc;b=a.b.b;if(cE(a.a,158))e=a.a.a;else if(cE(a.a,132))e=a.a.a;else throw BV(G0b(a));if(a.b.i)if(b==111){c.a+= "0";d+=1}else{c.a+="0x";d+=2}if(100==b){a.b.e?Fpc(c,a.a):(c.a+=SV(e),c);if(DV(e,0)<0)if(a.b.g)return V0b(a,c);else a.b.k&&++d;else if(a.b.d){Jpc(c,0,String.fromCharCode(43));d+=1}else if(a.b.j){Jpc(c,0,String.fromCharCode(32));d+=1}}else{cE(a.a,132)&&(e=EV(GD(IV(e)?PV(e):e,IV(XNc)?PV(XNc):XNc)));111==b?Gpc(c,woc(e,3)):Gpc(c,woc(e,4))}return J0b(a,c,d)}function i9(a,b){var c,d,e,f,g,h,i,j,k;(b.a.a&RJc)==0&&(b.a.a&SJc)==0&&(b.a.a&NGc)==0&&v5b(b);if(a){(f=!a.d?null:a.d.p,!f?(Wuc(),Wuc(),Vuc):f).isEmpty()|| w5b(b,(e=!a.d?null:a.d.p,!e?(Wuc(),Wuc(),Vuc):e));for(d=S2b(a).Od();d.Hd();){c=d.Id();p5b(b,c,T2b(a,c));q5b(b,c,J2b(a,c))}for(j=W2b(a).Od();j.Hd();){i=j.Id();A5b(b,i);z5b(b,i,X2b(a,i))}k=a.j;!!k&&k!=(o4b(),j4b)&&G5b(b,k);(a.a&256)!=0&&I4b(b);(!a.d?null:a.d.b)!=null&&H2b(b.a)==null&&J4b(b,!a.d?null:a.d.b);o3b(b.a,a);for(h=V2b(a).Od();h.Hd();){g=h.Id();x5b(b,g)}}}function Ofb(a,b,c){var d,e,f,g,h,i;e=j6b(b,29);!!e&&(!e.d?null:e.d.g)!=null&&jzc(a.b,b);g=c.j==(tbc(),z8b)?c.b:c;if(Alb(g)&&Aib(a.a,g))for(i= (!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();i.Hd();){h=i.Id();teb(a.c,h.ri(),h);Nfb(a,h,g,h.ri())}else if(!nlb(g)&&!Dlb(g))for(i=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();i.Hd();){h=i.Id();teb(a.c,h.ri(),h);!!j6b(h,29)&&lAc(a.c.g,h,meb(a.c,j6b(h,29),a.a));jeb();d=(qkb(),f=Dkb(h),!f?null:j6b(f,29));!!d&&(d.a&1)!=0&&(d.a&2)==0&&Fjb(a.c.t,Kgb(h,_db,pD(kD(pT,1),tFc,2,6,[])))}}function zSb(a,b){var c,d,e,f,g,h;a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),XPb)]));f=fVb(a.j,0).b.b;d=(_n(),new fr);aSb(a,(YXb(), dXb));while(pUb(a,kWb)||uUb(a)||oUb(a,0,yXb))if(pUb(a,kWb)){aSb(a,kWb);dr(d,new OZb(hSb(a,fVb(a.j,0).b.b)))}else{c=(pUb(a,yXb)?e=(a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[NPb])),g=fVb(a.j,0).b.b,aSb(a,yXb),h=UTb(a,b),new lYb(new r0b(g,a.g),h)):e=MTb(a,b),e);jtc(d.a,be(c));if(c.p==(H_b(),ZZb))break;else if(pUb(a,kWb))aSb(a,kWb);else break}aSb(a,iWb);return new jYb(new r0b(f,a.g),io(d.a))}function Upb(a){Rpb();var b,c,d,e,f,g,h;d=new Or;f=(So(),new nr);for(c=rf(ef(df(lf(new oc(10))),a));Db(c);){b=Eb(c);h= ff(df(lf(new oc(32))),qpc(b));if(h.b.size()==1&&h.a.getAtIndex(0).length==0)continue;else if(h.b.size()<3)throw BV(new dhb("Invalid table: too few tokens on line: "+b));g=h.a.getAtIndex(0);e=new Ppb(LPb(h.a.getAtIndex(1)),LPb(h.a.getAtIndex(2)),h.b.size()>3?h.a.getAtIndex(3):"");g.indexOf(zKc)!=-1?Nr(d,gpc(g,".*\\.prototype\\.",""),e):(jtc(f.b,(ym(g,e),new Vq(g,e))),f)}return new Tpb(ln(d.a),fp(f.b))}function sGb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;be(c);g=d;for(n=new Pqc((new Hqc(d.a)).a);n.b;){l=Oqc(n); i=l.ce();h=WEb(c,i);if(h){g=WFb(b,g,i,h,l.de());if(g==a.d)return a.d}}for(m=new Pqc((new Hqc(e.a)).a);m.b;){l=Oqc(m);i=l.ce();k=l.de();if(Bi(d,i,false)){j=Li(Bi(d,i,false));if(AGb(j,k))continue;f=b?new DGb(j.c,RAb(j.d,k.d),j.b,IGb(j.a,k.a)):new DGb(j.c==k.c?j.c:null,JBb(j.d,k.d),null,IGb(j.a,k.a))}else f=k;h=WEb(c,i);if(h){g=WFb(b,g,i,h,f);if(g==a.d)return a.d}else{if(0==f.d.Lh())return a.d;g=BEb(g,i,f)}}return g}function QVb(b){var c,d,e,f;while(b.indexOf("\\")!=-1){e=$oc(b,spc(92));try{if(b.charCodeAt(e+ 1)!=117)return null;if(b.charCodeAt(e+2)!=123){d=e+6;f=b.substr(e+2,d-(e+2))}else{d=e+3;while(dnc(b.charCodeAt(d),16)>=0)++d;if(b.charCodeAt(d)!=125)return null;f=b.substr(e+3,d-(e+3));++d}c=Rnc(f)&yFc;if(!(LVb(c)||($mc==null&&($mc=new RegExp("\\d")),$mc.test(String.fromCharCode(c)))))return null;b=b.substr(0,e)+String.fromCharCode(c)+b.substr(d)}catch(a){a=AV(a);if(cE(a,96)||cE(a,310))return null;else throw BV(a);}}return b}function fyb(){fyb=aW;eyb=new _6("JSC_REQUIRES_NOT_SORTED",(lZ(),kZ),new iqc("goog.require() statements are not sorted. (Fix with go/fixjs) The correct order is:\n\n{0}\n")); dyb=new _6("JSC_PROVIDES_NOT_SORTED",kZ,new iqc("goog.provide() statements are not sorted. (Fix with go/fixjs) The correct order is:\n\n{0}\n"));cyb=new _6("JSC_PROVIDES_AFTER_REQUIRES",kZ,new iqc("goog.provide() statements should be before goog.require() statements."));byb=new _6("JSC_DUPLICATE_REQUIRE",kZ,new iqc("''{0}'' required more than once."))}function K7(a,b){var c;switch(b){case wJc:case "ArrayBuffer":case xJc:case "DataView":case "Date":case "Float32Array":case yJc:case "Generator":case "GeneratorFunction":case "Int16Array":case "Int32Array":case "Int8Array":case "InternalError":case "Map":case zJc:case "Promise":case "Proxy":case AJc:case "Set":case GGc:case BJc:case "TypedArray":case "Uint16Array":case "Uint32Array":case "Uint8Array":case "Uint8ClampedArray":case "WeakMap":case "WeakSet":return c= Pqb(Kjb(a),b),!(!!c&&!(!c.a||B3(c.a)));default:return false}}function kgb(a,b,c,d){var e;e=d==c.b;switch(c.j.f){case 92:return a;case 46:return d==(c.b?c.b.f:null)?a:a.c?a:new mgb(a.a,true,a.b);case 60:case 62:return e?new mgb(c,true,a.a?a:null):a;case 61:return e?new mgb(c,false,a.a?a:null):a;case 66:return e?new mgb(c,true,a.a?a:null):igb;case 41:case 47:return e==a.c?a:new mgb(a.a,e,a.b);case 25:case 19:case 4:case 5:case 36:case 37:return a.c?a:new mgb(a.a,true,a.b);case 28:return lgb(a,!e&&fgb(b, c));case 81:return igb;default:return qkb(),Jlb(c.e)?igb:a.c?new mgb(a.a,false,a.b):a}}function VBb(a,b,c){var d,e,f,g,h,i,j,k,l,m;be(c);l=new SAc;for(h=a.se(b).Od();h.Hd();){g=h.Id();if(oFc==c.Lh()){l.a.put(g,l);continue}if(oFc==g.Lh()){c=null;break}f=c.Oh();if(f.size()==1&&Us(f.Od()).c){c=null;break}else{e=g.Oh();if(e.size()==1&&Us(e.Od()).c){l.a.put(g,l);continue}}m=UBb(c,g);if(m){l.a.put(g,l);c=m}else if(JAb(g,c,new EHb((zEb(),zEb(),yEb))))l.a.put(g,l);else if(JAb(c,g,new EHb((null,yEb)))){c= null;break}}for(k=(i=(new mrc(l.a)).a.Wd().Od(),new trc(i));k.a.Hd();){j=(d=k.a.Id(),d.ce());a.we(b,j)}!!c&&a.ve(b,c)}function OFb(a,b){var c,d,e,f,g,h;he(XFb(a.d,b.d));if(a==a.a.bb&&b.f.a==0)return b;if(a.e)return PFb(a,b);tHb(a.d.a)&&b.d.a.g==2?g=a.d:g=oFb(a.d,b.d);if(!uHb(g.a,yJc)&&!tHb(g.a)&&!uHb(g.a,KKc)){he(!a.b&&!b.b);f=sGb(a.a,true,g,a.g,b.g);if(RDb(a.a,f))return a.a.M;return new VFb(a.a,g,f,null,a.e,false,a.f)}h=a.b;c=a.c;if(uHb(g.a,yJc)&&!a.b){h=b.b;c=b.b.c}c&&uHb(g.a,KKc)&&(g=NDb(a.a)); e=sGb(a.a,true,g,a.g,b.g);if(RDb(a.a,e))return a.a.M;d=!h?null:zzb(h,b.b);if(!(!d||d!=d.a.c))return a.a.M;return new VFb(a.a,g,e,d,a.e,c,a.f)}function xHb(a,b,c,d,e,f,g){var h,i,j,k;Pyb.call(this,a,c,b);this.b=(zEb(),zEb(),yEb);this.k=(null,yEb);this.n=(null,yEb);this.o=new SAc;be(f);me(AHb(b),"Invalid defsite %s",b);!d&&(d=(_n(),_n(),$n));this.q=d;this.g=!!b&&(i=j6b(b,51),!!i&&i.zh())&&Xoc(c,FKc)?2:e;this.i=!!b&&(j=j6b(b,51),!!j&&j.zh())&&Xoc(c,FKc)?(wFb(),uFb):f;this.e=g;this.s=new iFb((So(),So(), Ro),this);!!b&&(h=j6b(b,51),!!h&&h.zh())&&Xoc(c,yJc)?k=$Fb(this.u.v,this.s):k=_Fb(this.s);this.r=(sAb(),IBb(k.a,2,(En(),new Ey(k)),null,pAb));this.t=FBb(this.u.j,this.r)}function Wvb(a){var b,c,d,e,f,g,h,i,j,k,l,m;for(l=new Rtc(a.f);l.a",LJc),Gwb(b)))),j);for(f=j.Pg().Od();f.Hd();){e=f.Id(); rqc(a.b,e,j)}}for(m=new Rtc(a.f);m.a0&&!p3(a.b)&&o3(a.b,BGc);he(a.d.j==(tbc(),Rac));c=a.a.L.Jb;f=j6b(a.d,53).a;k=(d=j6b(a.d,51),!d?null:d.Og());he(k!=null);he(k.length!=0);c=gpc(gpc(c,"%name%",(f+"").replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1")),"%num%",""+a.c);o3(o3(a.b,c),BGc)}if(j6b(a.d,29)){i=O2b(j6b(a.d,29));i!=null&&n3(a.b,i)&&o3(o3(o3(a.b,"/*\n"),i),"*/\n")}b=C2(a.a,a.d,a.c==0);if(b.length!=0){o3(a.b,b);h=b.length;g=b.charCodeAt(h-1);j=h>=2?b.charCodeAt(h-2):0;e=g==59||g==10&&j==59;e||o3(a.b,";")}return null}function CNb(){CNb=aW;nNb=new DNb("EOF",0);oNb=new DNb("EOL",1);qNb=new DNb("LEFT_ANGLE",2);wNb=new DNb("RIGHT_ANGLE",3);BNb=new DNb(YLc,4);tNb=new DNb("LEFT_SQUARE",5);zNb=new DNb("RIGHT_SQUARE",6);rNb=new DNb("LEFT_CURLY", 7);xNb=new DNb("RIGHT_CURLY",8);sNb=new DNb("LEFT_PAREN",9);yNb=new DNb("RIGHT_PAREN",10);kNb=new DNb("COMMA",11);jNb=new DNb("COLON",12);hNb=new DNb($Mc,13);uNb=new DNb("PIPE",14);ANb=new DNb("STAR",15);mNb=new DNb("EOC",16);vNb=new DNb("QMARK",17);lNb=new DNb("ELLIPSIS",18);iNb=new DNb("BANG",19);pNb=new DNb("EQUALS",20)}function e9(a,b,c){var d,e,f,g,h,i;for(h=new OAc(new FAc(b.j));h.b!=h.c.a.b;){f=MAc(h);e=f.d;d=H1b(Xlb(a.a,b.f+PJc),new e8b((tbc(),Xac),e));M6b(d,f.e);d=d7b((ie(P1b(d),d),new g7b(z9b, d)),b.c);S5b(c.e,d,c);c=d}for(i=new OAc(new FAc(b.b));i.b!=i.c.a.b;){f=MAc(i);e=f.d;d=H1b(Xlb(a.a,b.f),new e8b((tbc(),Xac),e));M6b(d,f.e);d=d7b((ie(P1b(d),d),new g7b(z9b,d)),b.c);S5b(c.e,d,c);c=d}for(g=new OAc(new FAc(b.i));g.b!=g.c.a.b;){f=MAc(g);e=f.d;d=G1b(Xlb(a.a,b.f+PJc),Xlb(a.a,e));M6b(d,f.e);d=d7b((ie(P1b(d),d),new g7b((tbc(),z9b),d)),b.c);S5b(c.e,d,c);c=d}}function fob(b,c,d){var e,f;if(!APb(b.a.Lg(),b.c.b.s)){ZDc((Tnb(),Snb),"Skipping pass "+b.b+"\nfactory features: "+b.a.Lg()+"\ncompiler features: "+ b.c.b.s);return}ZDc((Tnb(),Snb),"Running pass "+b.b);!!b.c.p&&(b.c.a=kY(new rY(b.c.b),b.c.d));!!b.c.q&&Enb(b.c.q,b.b,b.a.a);b.d=new usb;b.a.Kg(b.c.b).Qf(c,d);o1(b.c.b);try{if(!b.c.n)x2(b.c.b,-1);else{b.c.k+=b.c.o;x2(b.c.b,b.c.k)}f=tsb(b.d);!!b.c.q&&Fnb(b.c.q,b.b,f);Vnb(b.c,b.b,d);Wnb(b.c,b.b,c,d)}catch(a){a=AV(a);if(cE(a,17)){e=a;throw BV(new tC("Sanity check failed for "+b.b,e));}else throw BV(a);}}function SAb(a,b){var c,d,e,f;if(-1==b.Lh()||oFc==b.Lh()||a==b)return a;if(512==b.Lh())return OAb(a); if(512==a.Lh()){f=OAb(b);return!f.Oh().isEmpty()||$yb(f.Jh())?XAb(f):f}if(WJc==b.Lh())return NAb(a);if(WJc==a.Lh())return NAb(b);if(-1==a.Lh())return b;if(oFc==a.Lh()){e=b.Lh()==2&&b.Oh().size()==1?Us(b.Oh().Od()).d:null;return!!e&&tHb(e.a)?XAb(b):b}c=a.Lh()&b.Lh();if(a.Vh()==b.Vh())d=a.Vh();else if(a.Vh()!=null&&b.Vh()==null)return b;else{d=null;c&=-2}return KBb(a.e,c,a.Lh()|b.Lh(),tGb(true,a.Oh(),b.Oh()),d,a.Oh(),b.Oh(),a.Jh(),b.Jh())}function uTb(a){var b,c,d,e,f,g,h,i;h=fVb(a.j,0).b.b;e=!!eSb(a, (YXb(),zXb));g=null;i=fVb(a.j,0).c;if(i==WWb)return MSb(a,true);else if(i==GWb||(HRb(),HRb(),!!up(iRb,i)))g=cSb(a);else if(i==dXb)return sTb(a);else if(i==aXb||i==cXb)return MSb(a,false);f=false;if(pUb(a,qXb)){aSb(a,qXb);f=true}if(pUb(a,cXb)||pUb(a,aXb)){d=(b=gZb(lZb(fZb(iZb(dZb(kZb(hZb(mZb(jZb(new nZb((sZb(),rZb)),g),false),e),f),null),lSb(a)),gTb(a,1)),kSb(a)),new TYb(new r0b(h,a.g))),cZb(b,new r0b(h,a.g)));return d}else{c=kSb(a);return new IZb(new r0b(h,a.g),g,false,f,null,c)}}function WCb(b,c, d,e,f,g,h){var i,j,k,l,m,n,o;i=new nAb(b.a);!!g&&fAb(i,g.r);try{if(!!c&&!!((QJc&c.a)==VJc?c.i:null)){n=SCb(b,c,h,!g?(_n(),_n(),$n):g.q);if(oFc==n.Lh()||-1==n.Lh())return b.e;l=yAb(n);if(l){o=(m=n.Lh()==2&&n.Oh().size()==1?Us(n.Oh().Od()):null,(!m?null:m.b)?null:n);k=Dzb(l);!!g&&!(l.g?l.g:l.d)&&(k=tyb(k,g.r));return new pDb(o,k)}else{jzc(b.i,Kgb(e,BCb,pD(kD(pT,1),tFc,2,6,[])));c=null}}j=VCb(b,c,d,e,f,g,h,i);return new pDb(null,j)}catch(a){a=AV(a);if(cE(a,253)){jzc(b.i,Kgb(e,LCb,pD(kD(pT,1),tFc,2,6, [])));return b.e}else throw BV(a);}}function HSb(a,b){var c,d,e,f,g,h;a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),PPb)]));gSb(a,IHc);h=fVb(a.j,0).c;if((YXb(),GWb)==h||(HRb(),!!up(iRb,h))){f=cSb(a);c=dZb(jZb(mZb(eZb(new nZb((sZb(),rZb))),b.c),f),b.a);if(b.b){gZb(lZb(fZb(iZb(c,lSb(a)),gTb(a,1)),kSb(a)),new TYb(hSb(a,b.d)));fSb(a)}else jTb(a,c,(TUb(),QUb));return cZb(c,hSb(a,f.b.b))}else if(a.b.c&&oUb(a,0,dXb)&&oUb(a,1,GWb)&&oUb(a,2,jWb)){e=sTb(a);fSb(a);return e}else{g=TSb(a);c=mZb(eZb(new nZb((sZb(), qZb))),b.c);jTb(a,c,(TUb(),QUb));d=cZb(c,hSb(a,g.o.b));return new LYb(hSb(a,g.o.b),b.a,g,d)}}function Ukb(a){var b;switch(a.j.f){case 116:if(!!a.b&&!a.b.d)return klc(),a.b.ri().length!=0?ilc:hlc;break;case 31:return klc(),a.ri().length>0?ilc:hlc;case 30:return klc(),a.qi()!=0?ilc:hlc;case 19:return Ukb(a.b?a.b.f:null).uj();case 32:case 34:return klc(),hlc;case 79:if(!vkb(a.b,false,null))return klc(),hlc;break;case 29:b=a.ri();if(Xoc(GJc,b)||Xoc("NaN",b))return klc(),hlc;else if(Xoc(hLc,b))return klc(), ilc;break;case 35:case 38:return klc(),ilc;case 65:case 96:case 23:case 42:case 43:if(!vkb(a,false,null))return klc(),ilc}return klc(),jlc}function JD(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;c=a.l&8191;d=a.l>>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+= c*k;G+=d*k}l!=0&&(G+=c*l);n=B&KGc;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&PGc)<<8;u=v+w+A;p+=m>>22;m&=KGc;u+=p>>22;p&=KGc;u&=LGc;return uD(m,p,u)}function CMb(a,b){var c,d;c=LMc;if(b==(CNb(),rNb)){if(nMb(a,BNb)){d=a.j.n;!WLb.contains(d)&&!v4b(a.e,d)&&aMb(a,"msg.jsdoc.idgen.unknown",d,a.j.g,INb(a.j));c=d;b=!a.o?JNb(a.j):fMb(a)}else{$Lb(a,WMc,a.j.g,INb(a.j));return b}nMb(a,xNb)?b=!a.o?JNb(a.j):fMb(a):$Lb(a,WMc,a.j.g,INb(a.j))}switch(c){case LMc:V4b(a.e)|| $Lb(a,XMc,a.j.g,INb(a.j));break;case MMc:E4b(a.e)||$Lb(a,XMc,a.j.g,INb(a.j));break;case "stable":u5b(a.e)||$Lb(a,XMc,a.j.g,INb(a.j));break;case "xid":I5b(a.e)||$Lb(a,XMc,a.j.g,INb(a.j));break;case "mapped":e5b(a.e)||$Lb(a,XMc,a.j.g,INb(a.j))}return b}function Mec(a,b){var c,d,e,f,g,h,i,j,k;g=!b;d=Hfc(Gfc(new Jfc(a.w),b?a.b.b:(c=Hfc(Gfc(new Jfc(a.w),a.b.b),a.A.d),new _ec(c.d,null,new adc(c.d,c.c,c.e,false),c.g,c.f,c.a,c.b))),a.A.d);h=a.b.a;if(h){i=_5b(h,false);k=new e8b((tbc(),mac),"thisType");N6b(k, Ihc(a.w,Qbc(a.k)?Shc(a.w,(zhc(),vhc)):a.k));V5b(i,k);if(g)for(e=k.d;e;e=e.d){j=F6b(e,e.g,37);j!=e.g&&(e.g=j);e.g=new J7b(37,1,e.g)}else if(b){f=k.d;(!f||h6b(f,37)!=0||h6b(f,30)!=0)&&(j=F6b(k,k.g,37),j!=k.g&&(k.g=j),k.g=new J7b(37,1,k.g))}d.c=i}return new _ec(d.d,null,new adc(d.d,d.c,d.e,false),d.g,d.f,d.a,d.b)}function vzb(a,b,c){var d,e,f,g,h,i,j,k;he(!a.n.isEmpty());if(c.size()<(he(!(a==a.a.v||a==a.a.g)),a.i.size())||c.size()>(Ud(!(a==a.a.v||a==a.a.g)),a.j?oFc:a.i.size()+a.e.size()))return null; h=new Ct;if(!!b&&!WAb(a.g?a.g:a.d,b,a.n,h,new EHb((zEb(),zEb(),yEb))))return null;for(f=0,g=c.size();f1)return null;else k.isEmpty()?kr(e,i,a.a.G):kr(e,i,Us(k.Od()))}return Czb(a,fp(e.b))}function FKb(a,b){var c,d,e,f,g,h;f=false;c=true;for(d=0;d1&&o2(b,new Ggb(null,null,-1,-1,i1,null,pD(kD(pT,1),tFc,2,6,[(REc(0,d.a.length),d.a[0]).e])));G2(d);b.p=V1(c);b.I=d;try{b.G=new bhb(d)}catch(a){a=AV(a);if(cE(a,303)){f=a;o2(b, new Ggb(null,null,-1,-1,j1,null,pD(kD(pT,1),tFc,2,6,[f.b.e,f.a.e])));return}else throw BV(a);}b.A=H2(d);new nDc(b.A.size());Ci(b.w,b.L.Lb);R1(b);b.C=a2b(pD(kD(TR,1),rHc,7,0,[]));b.r=a2b(pD(kD(TR,1),rHc,7,0,[]));b.n=a2b(pD(kD(TR,1),rHc,7,0,[b.r,b.C]))}function KDb(a,b){switch(b.f){case 42:return a.u;case 43:return a.b;case 35:return a.G;case 38:return a.B;case 15:return a.j;case 2:return a.a;case 30:return a.t;case 16:return a.q;case 54:return FBb(a.r,a.a);case 26:return a.Y?a.Y:a.G;case 0:return DDb(a, a.G);case 19:return a.ab;case 20:return BDb(a,OEb(!a.O?null:a.O.s));case 56:return a.A;case 44:return cBb(a.M);case 14:return oHb(HDb(a).a);case 13:return BDb(a,a.s);case 12:return Oyb(a.N);case 21:case 39:return YEb(CAb(a.ab));case 46:return a.P?a.P:a.G;default:throw BV(new sC("Native type "+(b.e!=null?b.e:""+b.f)+" not found"));}}function vD(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0)throw BV(new Lmc("divide by zero"));if(a.l==0&&a.m==0&&a.h==0){c&&(rD=uD(0,0,0));return uD(0,0,0)}if(b.h== MGc&&b.m==0&&b.l==0)return wD(a,c);i=false;if(b.h>>19!=0){b=KD(b);i=!i}g=CD(b);f=false;e=false;d=false;if(a.h==MGc&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=tD((XD(),TD));d=true;i=!i}else{h=MD(a,g);i&&AD(h);c&&(rD=uD(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=KD(a);d=true;i=!i}if(g!=-1)return xD(a,g,i,f,c);if(HD(a,b)<0){c&&(f?rD=KD(a):rD=uD(a.l,a.m,a.h));return uD(0,0,0)}return yD(d?a:uD(a.l,a.m,a.h),b,i,f,e,c)}function eD(a,b){var c,d,e,f,g,h,i,j,k;j="";if(b.length==0)return a.Ef(JGc,HGc,-1, -1);k=qpc(b);Xoc(k.substr(0,3),"at ")&&(k=k.substr(3));k=k.replace(/\[.*?\]/g,"");g=k.indexOf("(");if(g==-1){g=k.indexOf("@");if(g==-1){j=k;k=""}else{j=qpc(k.substr(g+1));k=qpc(k.substr(0,g))}}else{c=k.indexOf(")",g);j=k.substr(g+1,c-(g+1));k=qpc(k.substr(0,g))}g=$oc(k,spc(46));g!=-1&&(k=k.substr(g+1));(k.length==0||Xoc(k,"Anonymous function"))&&(k=HGc);h=bpc(j,spc(58));e=cpc(j,spc(58),h-1);i=-1;d=-1;f=JGc;if(h!=-1&&e!=-1){f=j.substr(0,e);i=_C(j.substr(e+1,h-(e+1)));d=_C(j.substr(h+1))}return a.Ef(f, k,i,d)}function Mbb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;k=b.e;g=blb(k)&&k.j!=(tbc(),z8b)&&k.b==b;e=null;if(g&&(qkb(),b.j==(tbc(),K9b)||b.j==J9b))for(i=(!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();i.Hd();){h=i.Id();if(h.j!=(tbc(),Xac)&&!Nbb(a,h,a.b)){d=Mbb(a,h,c);!e&&(e=d)}}n=(q=a.e+"_const"+uKc+(""+a.c.a.Z++),jzc(a.b,q),q);l=a7b((me($oc(n,spc(46))==-1,qHc,n),new e8b((tbc(),mac),n)),b);if(g){he(b.j==mac||(qkb(),b.j==K9b||b.j==J9b));j=c7b(new e7b(Skb(k)),k);m=k.b?k.b.f:null;V6b(k,z8b);G6b(k,m,j);V5b(j, l);U5b(j,m);o=_5b(b,false)}else{G6b(k,b,l);o=b}p=Ylb(n,o);f=c.e;T5b(f,p,c);!e&&(e=p);return e}function VY(){VY=aW;RY=new _6("JSC_EVENTFUL_OBJECT_NOT_DISPOSED",(lZ(),iZ),new iqc("eventful object created should be\n * registered as disposable, or\n * explicitly disposed of"));SY=new _6("JSC_EVENTFUL_OBJECT_PURELY_LOCAL",iZ,new iqc("a purely local eventful object cannot be disposed of later"));TY=new _6("JSC_OVERWRITE_PRIVATE_EVENTFUL_OBJECT",iZ,new iqc("private eventful object overwritten in subclass cannot be properly disposed of")); UY=new _6("JSC_UNLISTEN_WITH_ANONBOUND",iZ,new iqc("an unlisten call with an anonymous or bound function does not result in the event being unlisted to"))}function rxb(){rxb=aW;Tp("goog.object.forEach","goog.object.filter","goog.object.map","goog.object.some","goog.object.every","goog.object.getCount",pD(kD(pT,1),tFc,2,6,["goog.object.getAnyKey","goog.object.getAnyValue","goog.object.contains","goog.object.getValues","goog.object.getKeys","goog.object.findKey","goog.object.findValue","goog.object.isEmpty", "goog.object.clear","goog.object.remove","goog.object.equals","goog.object.clone","goog.object.transpose"]));qxb=new _6("JSC_ARRAY_PASSED_TO_GOOG_OBJECT",(lZ(),kZ),new iqc("{0} expects an object, not an array. Did you mean to use goog.array?"))}function VSb(a){var b,c,d;if(fVb(a.j,1).c==(YXb(),DWb))return SSb(a,cXb,hWb);d=fVb(a.j,0).b.b;aSb(a,cXb);if(pUb(a,hWb)){aSb(a,hWb);if(pUb(a,XVb))return new aZb(new r0b(d,a.g),(_n(),_n(),$n));else{IUb(a,KNc,pD(kD(kT,1),KFc,1,5,[]));return new JZb(new r0b(d, a.g))}}if(pUb(a,yXb)){b=(_n(),new By(be(JTb(a,0))));aSb(a,hWb);if(pUb(a,XVb))return new aZb(new r0b(d,a.g),b);else{IUb(a,KNc,pD(kD(kT,1),KFc,1,5,[]));return new JZb(new r0b(d,a.g))}}c=pSb(a,1);if(pUb(a,kWb)){aSb(a,kWb);c=new vYb(new r0b(d,a.g),(_n(),new Mx(so(pD(kD(kT,1),KFc,1,5,[c,JTb(a,0)])))))}aSb(a,hWb);return new TZb(new r0b(d,a.g),c)}function HZ(){HZ=aW;GZ=new _6("JSC_SUSPICIOUS_SEMICOLON",(lZ(),kZ),new iqc("If this if/for/while really shouldn''t have a body, use '{}'"));CZ=new _6("JSC_SUSPICIOUS_NAN", kZ,new iqc("Comparison against NaN is always false. Did you mean isNaN()?"));EZ=new _6("JSC_SUSPICIOUS_IN",kZ,new iqc('Use of the "in" keyword on non-object types throws an exception.'));DZ=new _6("JSC_SUSPICIOUS_INSTANCEOF_LEFT",kZ,new iqc('"instanceof" with left non-object operand is always false.'));FZ=new _6("JSC_SUSPICIOUS_NEGATED_LEFT_OPERAND_OF_IN_OPERATOR",kZ,new iqc("Suspicious negated left operand of 'in' operator."))}function AFb(a,b,c){var d,e,f,g,h;if(HFb(a))return Gpc(Fpc(b,tzb(HFb(a))), PJc);if(!JFb(a)){if(a.b)return lzb(a.b,b,c);return KEb(a.d,b,c)}!Xoc(a.d.a.A,yJc)&&!Xoc(a.d.a.A,CJc)&&!Xoc(a.d.a.A,KKc)?KEb(a.d,b,c):(a.f.a&1)!=0?(b.a+="struct",b):(a.f.a&2)!=0?(b.a+="dict",b):!!a.e&&Fpc(b,a.e);if(a.b){b.a+="<|";lzb(a.b,b,c);b.a+="|>"}if(!a.e||(new Hqc(a.g.a)).a.size()!=0){b.a+="{";f=true;for(h=(e=(new nsc((new _Cc(new mrc(a.g))).a)).a.Wd().b.Kj(),new tsc(e));h.a.Hd();){g=(d=h.a.Id(),d.ce());f?f=false:(b.a+=HFc,b);b.a+=""+g;b.a+=": ";zGb(Li(Bi(a.g,g,false)),b,c)}b.a+="}"}a.c&&(b.a+= " (loose)",b);return b}function mOb(a,b){var c;if(b.j==(tbc(),t8b)||b.j==Cac||b.j==uac)return nOb(a,b);if(b.j!=V8b){a.a.ph(NMc+r8b(cNc,pD(kD(kT,1),KFc,1,5,[kFc])),a.b.Og(),a.d,a.c);return false}if(!jOb((Zd(b.j==V8b,aNc,b),b.b.ri()))){a.a.ph(NMc+r8b(bNc,pD(kD(kT,1),KFc,1,5,["boolean predicate"])),a.b.Og(),a.d,a.c);return false}c=mPb(Mb((Zd(b.j==V8b,aNc,b),b.b.ri())));if(!gOb(a,b,c))return false;switch(c.a){case 3:return EOb(a,b,(Zd(b.j==V8b,aNc,b),e6b(b)-1));case 2:return zOb(a,b,(Zd(b.j==V8b,aNc, b),e6b(b)-1));case 4:return HOb(a,b,(Zd(b.j==V8b,aNc,b),e6b(b)-1));default:throw BV(new Ync("Invalid boolean expression"));}}function mbb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;n=b.b?b.b.f:null;k=lbb(n);f=kbb(n);i=new O5b((YLb(),j=ZMb("!ITemplateArray"),KMb(j,!j.o?JNb(j.j):fMb(j))),"");h=new K5b(false);B5b(h,i);m=x1b(f,u4b(h));d=T1b("$jscomp$templatelit$"+(""+(new l3(a.c)).a.Z++));o=d7b(A1b(d,m,(tbc(),nbc)),b);l=(qkb(),Hkb(b,new mmb(Rac)));V5b(l,o);q2(a.c,o);g=d7b(C1b(r1b(H1b(a6b(d, new e8b(d.j,d.a),false),new e8b(Xac,"raw")),k)),b);S5b(l,g,o);c=v1b(E6b(b),pD(kD(TR,1),rHc,7,0,[a6b(d,new e8b(d.j,d.a),false)]));for(e=n.b;e;e=e.d)e.j==Xac||U5b(c,E6b(e));d7b(c,n);A6b(c,50,c.b.j!=K9b);G6b(b.e,b,c);Vjb(a)}function vGb(a,b){var c,d,e,f,g,h,i,j,k,l;if(a.c)return DFb(a,b)?a:null;if(b.c)return null;if(!zBc(a.e,b.e))return null;if(a==a.a.bb)return b==b.a.bb?a:null;else if(b==b.a.bb)return null;else if(a==a.a.M)return b==b.a.M?a:null;else if(b==b.a.M)return null;f=qFb(a.d,b.d);if(!f)return null; d=null;if(!!a.b||!!b.b){d=Xzb(a.b,b.b);if(!d)return null}e=(zEb(),zEb(),yEb);for(l=(g=(new mrc(a.g)).a.Wd().Od(),new trc(g));l.a.Hd();){k=(c=l.a.Id(),c.ce());i=Li(Bi(a.g,k,false));j=Li(Bi(b.g,k,false));if(!j)return null;h=KGb(i,j);if(!h)return null;e=BEb(e,k,h)}return oGb(a.a,f,e,d,a.e,false,yFb(a.f,b.f))}function lzb(a,b,c){var d,e;if(a==a.a.g)return b.a+=TLc,b;else if(a==a.a.v)return b.a+=ULc,b;else if(a==a.a.s)return Gpc(Gpc(b,c.mi()?"!":""),yJc);if(!a.n.isEmpty()){b.a+="<";Gpc(b,Tc(new Vc(","), Em(new Fm(a.n,new Yzb))));b.a+=">"}b.a+="function(";if(a.d){b.a+="new:";Fpc(b,a.d);b.a+=","}else if(a.g){b.a+="this:";Fpc(b,a.g);b.a+=","}for(e=0;e0||(e.a&2)!=0||(e.a&IKc)!=0&&(e.a&QJc)!=VJc)))&&(h=nib(a.a, TGb(b.b)),i=neb(a.b,i6b(b.e)),j=pib(a.a,i),k=new SGb((b.b?b.b.f:null).ri()),Nyb(h,k)||Dyb(h,k,new jzb(a.b.d,k6b(b),j,b)),undefined)}function ESb(a,b){var c,d,e,f,g,h,i;i=fVb(a.j,0).b.b;a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),OPb),PPb]));gSb(a,IHc);g=fVb(a.j,0).b.b.b>a.g.b;(g||oUb(a,0,(YXb(),vXb))||oUb(a,0,(YXb(),gWb))||oUb(a,0,(YXb(),tWb)))&&IUb(a,"No newline allowed between `async` and arrow function parameter list",pD(kD(kT,1),KFc,1,5,[]));d=null;if(pUb(a,(YXb(),cXb)))d=gTb(a,0);else{h=nTb(a); d=new aZb(h.o,(_n(),new By(be(h))))}f=fVb(a.j,0).b.b.b>a.g.b;(f||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb))&&IUb(a,HNc,pD(kD(kT,1),KFc,1,5,[]));aSb(a,XVb);c=BSb(a,b,(TUb(),QUb));e=gZb(fZb(eZb(new nZb((sZb(),oZb))),d),c);return cZb(e,new r0b(i,a.g))}function Lbc(a,b,c,d){var e,f;if(a==b)return true;if(a.Mi()&&b.Mi())return true;f=a.di();e=b.di();if(f||e)if(c==2)return true;else if(c==1)return f&&e;else if(f&&e&&a.Oi()^b.Oi())return false;if(!!a._i()&&!!b._i())return zlc(a._i(),b._i(),c,d);if(!!a.Xi()&& !!b.Xi())return Kec(a.Xi(),b.Xi(),c,d);if(!Tkc(a.Fi(),b.Fi(),c,d,0))return false;if(d.b&&a.Ri()&&b.Ri())return qdc(cE(a,52)?a:null,cE(b,52)?b:null,c,d);if(a.Oi()&&b.Oi())return Xoc(Nbc(a,cE(a,52)?a:null),Nbc(a,cE(b,52)?b:null));if(!!a.Zi()&&!!b.Zi())return false;if(cE(a,147))return Lbc(a.c,b,c,d);if(cE(b,147))return Lbc(a,b.c,c,d);return false}function mGb(a,b){var c,d,e,f,g,h,i,j,k,l;if(a.isEmpty())return b;else if(b.isEmpty())return a;l=new wtc(a);ltc(l,b);for(d=0;d=2&&(a.charCodeAt(c-1)==45&&a.charCodeAt(c-2)==45||a.charCodeAt(c-1)==93&&a.charCodeAt(c-2)==93)?(d.a+="\\u003e",d):(d.a+=String.fromCharCode(b),d);break;case 60:dpc(a,true,c+1,"/script",0,7)?(d.a+="\\u003c",d):dpc(a,false,c+1,"!--",0,3)?(d.a+="\\u003c",d):(d.a+=String.fromCharCode(b),d);break;default:b>31&&b<=127?(d.a+= String.fromCharCode(b),d):iC(d,b)}}d.a+='"';return d.a}function iSb(a,b){var c,d,e,f,g,h,i;if(b.p==(H_b(),K$b)){f=b.a;return Xoc(f.a,IHc)&&(h=fVb(a.j,0).b.b.b>a.g.b,!(h||oUb(a,0,(YXb(),vXb))||oUb(a,0,(YXb(),gWb))||oUb(a,0,(YXb(),tWb))))&&(i=fVb(a.j,0).c,Qyc(Myc((YXb(),GWb),pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),i)||!a.b.b&&MRb(i))&&(g=fVb(a.j,1).b.b.b>fVb(a.j,0).b.a.b,!(g||oUb(a,1,(YXb(),vXb))||oUb(a,1,(YXb(),gWb))||oUb(a,1,(YXb(),tWb))))&&oUb(a,1,(YXb(),XVb))}else if(b.p==c$b){d=b;e=d.b;c=d.a; return e.p==K$b&&Xoc(e.a.a,IHc)&&e.o.a.b==c.o.b.b&&(g=fVb(a.j,0).b.b.b>a.g.b,!(g||oUb(a,0,(YXb(),vXb))||oUb(a,0,(YXb(),gWb))||oUb(a,0,(YXb(),tWb))))&&pUb(a,(YXb(),XVb))}else return false}function I7(a,b){var c,d,e,f,g,h,i,j,k;if(!a.c)return false;i=Mcb(a.c,b);if(!i)return false;d=i.d;if(!d)for(k=(!i.n?(_n(),_n(),$n):i.n).Od();k.Hd();){j=k.Id();(j.b==(zdb(),xdb)||j.b==ydb)&&(d=j)}if(!d)return false;f=d.a;g=j6b(f,51);if(!!g&&g.zh())return false;c=f.e;e=null;if(c.j==(tbc(),E9b))e=c;else{qkb();if(!!c&& (c.j==nbc||c.j==eac||c.j==d9b)&&f.j==mac)if(f.b)e=be(f.b);else return false;else if(c.j==z8b&&c.b==f)e=be(c.b.d);else if(c.j==zac&&!!f.b&&!f.b.d)e=be(f.b);else throw BV(new Ync("Unexpected declaration format:\n"+_6b(c)));}if(e.j==E9b){h=be(d6b(e,2));return!U7(new V7(a),h)}else return t6b(e)&&I7(a,k6b(e))}function kfb(a,b,c,d){var e,f,g,h,i,j;i=Vkb(c);j=new $fb;e=null;!!i&&i.j==(tbc(),E9b)&&(e=Lfb(a,i,d).c);if(!!b&&(b.a&QJc)==VJc)j.a=meb(a.c,b,a.a);else if(!!b&&(h=(b.a&QJc)==VJc&&((QJc&b.a)==VJc?b.i: null).a.j==(tbc(),E9b),h||(b.a&QJc)==nGc||!!b.g||Q2b(b)>0||(b.a&2)!=0||(b.a&IKc)!=0&&(b.a&QJc)!=VJc)&&(!i||i.j!=(tbc(),E9b))){he(c.j==(tbc(),K9b));e=ffb(a,b,(c.b?c.b.f:null).ri(),c,null,a.a);j.a=BDb(a.c.d,syb(e))}else if(!!i&&i.j==(tbc(),E9b)){f=BDb(a.c.d,syb(e));!!b&&(g=(b.a&QJc)==VJc&&((QJc&b.a)==VJc?b.i:null).a.j==(tbc(),E9b),g||(b.a&QJc)==nGc||!!b.g||Q2b(b)>0||(b.a&2)!=0||(b.a&IKc)!=0&&(b.a&QJc)!=VJc)||Ckb(i)?j.a=f:j.b=f}return j}function P1b(a){switch(a.j.f){case 65:case 96:return true;case 13:case 62:case 42:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 59:case 57:case 58:case 103:case 3:case 1:case 20:case 2:case 28:case 92:case 46:case 64:case 24:case 16:case 4:case 18:case 34:case 9:case 26:case 27:case 8:case 60:case 40:case 63:case 41:case 7:case 10:case 6:case 17:case 15:case 29:case 5:case 22:case 23:case 19:case 30:case 32:case 43:case 61:case 21:case 38:case 11:case 36:case 37:case 113:case 31:case 14:case 99:case 116:case 115:case 33:case 25:case 35:case 12:case 79:case 102:return true; default:return false}}function IEc(a,b){var c,d,e,f,g,h,i,j,k;e=0;for(i=0;ib)throw BV(new Nmc(vOc));}f=mD(lE,uFc,47,e,15,1);k=0;g=0;for(h=0;h 0){c=a[h++];if((c&192)!=128)throw BV(new dhb("Invalid UTF8 sequence at "+(h-1)+", byte="+(j=c>>>0,j.toString(16))));d=d<<6|c&63}k+=lnc(d,f,k)}return f}function C9(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;h=null;e=d.b?d.b.f:null;g=0;o=null;for(p=c.b;p;p=o,g++){o=p.d;if(p.j==(tbc(),j9b)){j=j6b(p,29);l=E6b(p);f=E6b(p);i=false;l.j==mac&&(f.j==mac?i=Xoc(GJc,f.ri()):f.j==obc&&(i=slb(f.b)));if(i)m=_5b(l,false);else{m=l.j==mac?l:T1b(v9(a,d,g));k=_5b(l,false);s=E9(_5b(m,false),f);n=l.j==mac?C1b(r1b(k,s)): A1b(k,s,nbc);d7b(n,p);S5b(e,n,h);h=n}G6b(c,p,m);r=F6b(m,m.g,37);r!=m.g&&(m.g=r);m.g=new J7b(37,1,m.g);q=F6b(m,m.g,29);q!=m.g&&(m.g=q);!!j&&(m.g=new T7b(29,j,m.g));Vjb(b)}else if(p.j==Aac||p.j==x8b){h=w9(d,h,p,v9(a,d,g));Vjb(b)}else if(p.j==Mac&&r6b(p.b)){h=w9(d,h,p.b,v9(a,d,g));Vjb(b)}}}function MFb(a,b,c){var d,e,f,g,h;if(b==b.a.bb)return true;if(a.c||b.c)return LFb(a,b,c);h=a.d;f=b.d;e=true;if(f.a.g==2){if(MEb(f,Li(Bi(c.a,h,false))))return true;c=(Ud(f.a.g!=0),new EHb(BEb(c.a,h,f)));eFb(h,f)||(e= false);if(sHb(h.a)&&sHb(f.a)&&(he(sHb(h.a)&&sHb(f.a)),!(JAb(PEb(f),PEb(h),new EHb((zEb(),zEb(),yEb)))&&JAb(QEb(h),QEb(f),new EHb((null,yEb))))))return false;if((tHb(h.a)||uHb(h.a,KKc))&&uHb(f.a,FKc))return CFb(a,f,c)}else if(!eFb(h,f))return false;if(e)g=new mrc(b.g);else{g=gHb(f.a);if(!g)return false}if(!BFb(a,b,g,c))return false;if(!b.b)return true;else if(!a.b)return false;d=yzb(a.b,b.b,true,c,null);return d}function Kfb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;Ud(b.j==(tbc(),K9b));sfb(a,b);if(mfb(a, b))return;d=k6b(b.b);e=TGb(b.b);he(yib(a.a,d));c=(f=jib(a.a,e,false),!f?null:cE(f.c,73)?f.c:null);m=(b.b?b.b.f:null).ri();j=(qkb(),k=Dkb(b),!k?null:j6b(k,29));o=meb(a.c,j,a.a);i=seb(a.c,b);if(!!o||i){n=(l=Li(Bi(c.D,m,false)),!l?null:l.b);if(Myb(c,m)&&!!n&&!Ifb(j,o,n)){Fjb(a.c.t,Kgb(b,(jeb(),ceb),pD(kD(pT,1),tFc,2,6,[m,"type "+c])));return}!o&&(o=rfb(a,b));he(!c.f);Eyb(c,m,b,o,i);q=F6b(b,b.g,76);q!=b.g&&(b.g=q);b.g=new J7b(76,1,b.g);i&&(p=F6b(b,b.g,77),p!=b.g&&(b.g=p),b.g=new J7b(77,1,b.g))}else{g= null;h=Vkb(b);!!h&&(g=Cfb(a,h));!g&&(g=a.c.d.G);bHb(c,m,b,g)}}function Gfb(a,b,c){var d,e,f,g,h,i,j,k;if(b.j==(tbc(),K9b)&&Xoc((b.b?b.b.f:null).ri(),zHc))return Hfb(a,b.b,c);i=new SGb(c);k=null;if(t6b(b)){j=TGb(b);d=jib(a.a,j,false);if(d){e=cE(d.c,163)?d.c:null;if(!!e&&e.c.contains(c))return he(e.d==(gzb(),fzb)),e.a;g=d.c;if(g)return ueb(a.c,Jyb(g,i));k=d.d}}!k&&(k=Dfb(a,b));if(!k)return null;(k.Lh()==64||k.Lh()==128||k.Lh()==32||k.Lh()==256||(k.Lh()&-25)==0&&(k.Lh()&24)!=0)&&(k=uAb(k));f=(h=k.Lh()== 2&&k.Oh().size()==1?Us(k.Oh().Od()):null,!h?null:h.b);if(!!f&&Xoc(c,pJc))return BDb(a.c.d,Fzb(f));else if(!!f&&Xoc(c,kJc))return BDb(a.c.d,Ezb(f));if(PHb(k.Oh(),i)||PHb(k.Jh(),i))return EAb(k,i);return null}function bmb(a,b){qkb();var c,d;if(a.j==(tbc(),hbc)&&e6b(a)==3&&b==(a.b?a.b.f:null))_kb((Ud(a.j==hbc),a.b.d))?C6b(a,b):c6b(b);else if(b.j==Z8b){d=!b.e?null:b.e.e;he((Ud(d.j==hbc),e6b(d)==3));b6b(b)}else{c=b.e;if(c.j==hbc&&c.b.d==b){d=b.e;he((Ud(d.j==hbc),e6b(d)==3));c6b(b)}else if(b.j==S8b)c6b(b); else if(a.j==Pac||a.j==Rac||a.j==S8b||a.j==kac||b.j==X8b||b.j==i9b)C6b(a,b);else if(!!a&&(a.j==nbc||a.j==eac||a.j==d9b)||a.j==z9b)if(!!a.b&&!!a.b.d)C6b(a,b);else{C6b(a,b);bmb(a.e,a)}else if(a.j==_9b&&b==(a.b?a.b.f:null)){C6b(a,b);bmb(a.e,a)}else if(a.j==B9b)G6b(a,b,new e7b(p9b));else throw BV(new Ync("Invalid attempt to remove node: "+b+" of "+a));}}function Tz(b,c){var d,e,f,g,h,i,j;this.f=be(b);this.c=be(c);try{this.a=yA(c.length,($pc(),Ypc))}catch(a){a=AV(a);if(cE(a,195)){f=a;throw BV(new ehb("Illegal alphabet length "+ c.length,f));}else throw BV(a);}g=Coc(8,goc(this.a));try{this.d=8/g|0;this.b=this.a/g|0}catch(a$2){a$2=AV(a$2);if(cE(a$2,195)){f=a$2;throw BV(new ehb("Illegal alphabet "+xpc(c,0,c.length),f));}else throw BV(a$2);}e=mD(kE,wGc,47,128,15,1);cuc(e,e.length);for(i=0;i>24}this.e=e;j=mD(yV,{978:1,3:1},47,this.d,16,1);for(h=0;ha.g.b,(h||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb))&&IUb(a,HNc,pD(kD(kT,1),KFc,1,5,[])),aSb(a,XVb),i=BSb(a,b,(TUb(),SUb)),j=gZb(fZb(new nZb((sZb(),oZb)),g),i),cZb(j,hSb(a,g.o.b)));if(rUb(a)){c=JUb(a,c);dYb(c)|| IUb(a,INc,pD(kD(kT,1),KFc,1,5,[]));d=oSb(a);CXb==d.c&&(a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),$Pb)])));e=CSb(a,b);return new nYb(new r0b(f,a.g),c,d,e)}return c}function $tc(a,b){var c,d,e,f,g,h,i,j,k,l;if(a==null)return qFc;i=b.a.put(a,b);if(i!=null)return"[...]";c=new HBc("[","]");for(e=a,f=0,g=e.length;f=14&&k<=16)))if(b.a.containsKey(d)){!c.a?c.a=new Npc(c.d):Gpc(c.a,c.b);Dpc(c.a,"[...]")}else{h=(d==null||Array.isArray(d)&& (l=lD(d),!(l>=14&&l<=16)),d);j=new ozc(b);GBc(c,$tc(h,j))}else cE(d,978)?GBc(c,vuc(d)):cE(d,389)?GBc(c,ouc(d)):cE(d,87)?GBc(c,puc(d)):cE(d,987)?GBc(c,uuc(d)):cE(d,120)?GBc(c,suc(d)):cE(d,566)?GBc(c,tuc(d)):cE(d,988)?GBc(c,ruc(d)):cE(d,989)&&GBc(c,quc(d));else GBc(c,d==null?qFc:eW(d))}return!c.a?c.c:c.e.length==0?c.a.a:c.a.a+(""+c.e)}function TBc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.b)return false;g=null;m=null;i=new tCc(null,null);e=1;i.a[1]=a.b;l=i;while(l.a[e]){j=e;h=m;m=l;l=l.a[e];d=a.a.Pe(b, l.d);e=d<0?0:1;d==0&&(!c.c||zBc(l.e,c.d))&&(g=l);if(!(!!l&&l.b)&&!PBc(l.a[e]))if(PBc(l.a[1-e]))m=m.a[j]=WBc(l,e);else if(!PBc(l.a[1-e])){n=m.a[1-j];if(n)if(!PBc(n.a[1-j])&&!PBc(n.a[j])){m.b=false;n.b=true;l.b=true}else{f=h.a[1]==m?1:0;PBc(n.a[j])?h.a[f]=VBc(m,j):PBc(n.a[1-j])&&(h.a[f]=WBc(m,j));l.b=h.a[f].b=true;h.a[f].a[0].b=false;h.a[f].a[1].b=false}}}if(g){c.b=true;c.d=g.e;if(l!=g){k=new tCc(l.d,l.e);UBc(a,i,g,k);m==g&&(m=k)}m.a[m.a[1]==l?1:0]=l.a[!l.a[0]?1:0];--a.c}a.b=i.a[1];!!a.b&&(a.b.b=false); return c.b}function Xzb(a,b){var c,d,e,f,g,h,i,j,k;he(!!a||!!b);if(!a||!b)return null;a.n.isEmpty()||(a=wzb(a));b.n.isEmpty()||(b=wzb(b));he(!a.c&&!b.c);if(nzb(a,b))return a;d=a.i;e=b.i;if(d.size()!=e.size())return null;c=new nAb(a.a);i=d.size();for(g=0;gfVb(a.j,0).b.a.b,!(c||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&oUb(a,1,GWb)&&oUb(a,2,vWb))return dUb(a);if(oUb(a,0,oWb)&&(d=fVb(a.j,1).b.b.b>fVb(a.j,0).b.a.b,!(d||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&(oUb(a,1,TXb)||oUb(a,1,QWb)|| oUb(a,1,lWb)||oUb(a,1,EWb)||oUb(a,1,eWb)||oUb(a,1,uWb)||oUb(a,1,UWb)||oUb(a,1,VWb)))return rSb(a);if((oUb(a,0,UWb)||oUb(a,0,VWb))&&(b=fVb(a.j,1).b.b.b>fVb(a.j,0).b.a.b,!(b||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&oUb(a,1,GWb))return DTb(a,false);return YTb(a)}function AMb(a,b){var c,d,e,f,g,h,i,j;if(b!=(CNb(),sNb)){a.o=b;return bMb(a,"msg.jsdoc.missing.lp",a.j.g,INb(a.j)),null}d=pMb(a,(tbc(),E9b));h=null;VMb(a);if(!nMb(a,yNb)){b=!a.o?JNb(a.j):fMb(a);e=true;if(b==BNb){j=a.j.n;g=Xoc(SHc,j);f=Xoc("new", j);if(g||f){if(nMb(a,jNb)){!a.o?JNb(a.j):fMb(a);VMb(a);c=XMb(a,g?ebc:sac,wMb(a,!a.o?JNb(a.j):fMb(a)));if(!c)return null;V5b(d,c)}else return bMb(a,"msg.jsdoc.missing.colon",a.j.g,INb(a.j)),null;if(nMb(a,kNb)){!a.o?JNb(a.j):fMb(a);VMb(a);b=!a.o?JNb(a.j):fMb(a)}else e=false}}if(e){h=GMb(a,b);if(!h)return null}}!!h&&U5b(d,h);VMb(a);if(!nMb(a,yNb))return bMb(a,VMc,a.j.g,INb(a.j)),null;VMb(a);!a.o?JNb(a.j):fMb(a);i=IMb(a);if(!i)return null;else U5b(d,i);return d}function OTb(a){var b,c,d,e,f,g;switch(fVb(a.j, 0).c.f){case 29:return OSb(a,true,false);case 35:return b=fVb(a.j,0).b.b,aSb(a,(YXb(),FXb)),new R_b(new r0b(b,a.g));case 21:return c=fVb(a.j,0).b.b,aSb(a,(YXb(),KXb)),new W_b(new r0b(c,a.g));case 2:case 108:case 109:case 110:case 111:return nTb(a);case 100:case 101:case 98:case 99:case 97:return xTb(a);case 107:case 104:return bUb(a,null);case 49:return fVb(a.j,1).c==(YXb(),DWb)?SSb(a,dXb,iWb):ySb(a);case 45:return GTb(a);case 47:return VSb(a);case 94:case 95:return d=fVb(a.j,0).b.b,e=(g=bVb(a.j), a.g=g.b.a,g),new FZb(new r0b(d,a.g),e);default:return f=fVb(a.j,0).b.b,oSb(a),IUb(a,"primary expression expected",pD(kD(kT,1),KFc,1,5,[])),new JZb(new r0b(f,a.g))}}function Kab(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(c.j==(tbc(),Xac)){l=c.ri();cwb();if(l.indexOf("/")!=-1){i=bpc(l,spc(47));f=_oc(l,spc(46),i);j=null;f==-1?f=l.length:j=l.substr(f);k=l.substr(0,f);n=nwb(z3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d)),k,(g=j6b(c,51),!g?null:g.Og()),n7b(c.i),m7b(c.i));!n&&(n=owb(z3((!b.d&&!!b.g&&(b.d=B1(b.c, b.g)),b.d)),k));h=Iwb(n.a);c.wi(j==null?h:h+j)}else{q=ff(cf(lf(new oc(46))),l);d=q.a.getAtIndex(0);o="";q.b.size()==2&&(o="."+q.a.getAtIndex(1));r=Pqb(Kjb(b),d);if(!!r&&!r.d.c)c.wi(d+"$$"+a.a+o);else if(!r&&pqc(a.b.g,d)){m=oqc(a.b.g,d);m.b.length==0?c.wi(m.a+o):c.wi(d+"$$"+m.a+o)}p=F6b(c,c.g,40);p!=c.g&&(c.g=p);l!=null&&(c.g=new T7b(40,l,c.g))}}for(e=c.b;e;e=e.d)Kab(a,b,e);Vjb(b)}function UBb(a,b){sAb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;be(a);be(b);if(oFc==a.Lh()||(k=a.Oh(),k.size()==1&&Us(k.Od()).c))return b; else if(oFc==b.Lh()||(j=b.Oh(),j.size()==1&&Us(j.Od()).c))return a;else if(-1==a.Lh()&&-1==b.Lh())return a.e.u;else if(-1==a.Lh()||-1==b.Lh())return null;if(!Wx(a.Jh(),b.Jh()))return null;e=a.Jh();l=NBb(a.Lh());m=NBb(b.Lh());if(l!=m||a.Vh()!=b.Vh())return null;if((l&2)==0)return a;if(a.Oh().size()!=b.Oh().size())return null;q=new UAc(b.Oh());p=new SAc;for(g=a.Oh().Od();g.Hd();){f=g.Id();o=f;c=false;for(i=b.Oh().Od();i.Hd();){h=i.Id();n=vGb(o,h);if(n){c=true;q.a.remove(h)!=null;o=n}}if(!c)return null; p.a.put(o,p)}if(q.a.size()!=0)return null;return IBb(a.e,l,(En(),d=p,Mp(d)),a.Vh(),e)}function eHb(a){var b,c,d,e,f,g,h,i,j,k,l,m;me(!a.f,"Raw type already frozen: %s",a.v);de(a.c,"Null constructor function for raw type: %s",a.v);!a.d&&(a.d=(En(),Rx(),Qx));if(a.g!=0)for(e=new Pqc((new Hqc(a.k.a)).a);e.b;){d=Oqc(e);k=d.de();!!k.b||(a.k=BEb(a.k,d.ce(),new DGb(k.c,a.u.G,a.u.G,(OGb(),NGb))))}for(j=(h=(new mrc(a.n)).a.Wd().Od(),new trc(h));j.a.Hd();){i=(d=j.a.Id(),d.ce());if(!!a.p&&gFb(a.p,i)){a.n=CEb(a.n, i);continue}for(g=a.d.Od();g.Hd();){f=g.Id();!!kHb(f.a,i)&&(a.n=CEb(a.n,i))}}l=a.p;if(!l){b=ce(NDb(a.u),"Missing externs for the builtin Object type");l=b}!l.a.q.isEmpty()&&(l=(m=l.a.s,aFb(m,l.a.u.i)));c=BDb(a.u,a.c);a.j=cBb(oGb(a.u,l,BEb(a.k,oJc,new DGb(null,c,c,(OGb(),NGb))),null,null,false,(wFb(),uFb)));WGb(a,a.j);a.f=true}function iMb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;f=new Kpc;o=-1;n=-1;if(d){NNb(a.j);o=a.j.g;n=INb(a.j)+1;k=lMb(a);c!=0&&(k=qpc(k));f.a+=""+k;a.i=(eNb(),cNb);b=!a.o?JNb(a.j):fMb(a)}i= false;l=-1;do switch(b.f){case 15:if(i){l=INb(a.j)+1;i=false}else{rMb(a,f,l,c);l=-1;f.a+="*"}b=!a.o?JNb(a.j):fMb(a);while(b==(CNb(),ANb)){if(l!=-1){rMb(a,f,l,c);l=-1}f.a+="*";b=!a.o?JNb(a.j):fMb(a)}continue;case 1:c!=2&&(f.a+=BGc,f);i=true;l=0;b=!a.o?JNb(a.j):fMb(a);continue;default:i=false;a.i=(eNb(),cNb);j=b==(CNb(),mNb);if(!j){rMb(a,f,l,c);l=-1}if(b==mNb||b==nNb||b==hNb&&!e){m=f.a;c!=0&&(m=qpc(m));if(d&&m.length!=0){h=a.j.g;g=INb(a.j);z4b(a.e,m,o,n,h,g)}return new aNb(m,b)}Gpc(f,WMb(a,b));k=lMb(a); c!=0&&(k=$Mb(k));f.a+=""+k;b=!a.o?JNb(a.j):fMb(a)}while(true)}function T9(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(a.d.j==(tbc(),qbc)){k=E6b(a.d);e=E6b(a.d);m=new e7b(p9b);l=new e7b(p9b)}else if(a.d.j==B9b){m=E6b(a.d);m.j==z8b&&(m=(ie(P1b(m),m),new g7b(z9b,m)));k=E6b(a.d);l=E6b(a.d);e=E6b(a.d)}else{he(a.d.j==n9b);m=new e7b(p9b);l=r1b((me($oc(hKc,spc(46))==-1,qHc,hKc),new e8b(mac,hKc)),new e7b(A9b));e=E6b(a.d);k=E6b(a.d)}if(k.j==S8b){o=E6b(k);g=E6b(k)}else{o=(d=new e7b(S8b),d);g=k}n=I9++;j=n;if(l.j!= p9b){j=I9++;i=aab(j);U5b(e,i);U5b(e,l.j==S8b?l:(ie(P1b(l),l),new g7b(z9b,l)))}itc(a.c,0,new nab(I9,j,b));c=aab(n);h=K1b(g.j==p9b?new e7b(gbc):g,e);p=C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(n)));f=_9();V5b(a.j,h);o.j==p9b||V5b(a.j,o);V5b(a.j,c);m.j==p9b||V5b(a.j,m);U5b(e,p);U5b(e,f)}function u7(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;n=b.b.d;f=b.b?b.b.f:null;if(n.j==(tbc(),p9b)){j=F1b((me($oc("",spc(46))==-1,qHc,""),new e8b(mac,"")),new e7b(Eac),(c=new e7b(S8b),c));p2(a.a,j);m= S1b(j)}else{if(!t6b(n))return;d=(c=new e7b(S8b),c);i=j6b(b,51);if(!(!!i&&i.zh())&&(e=(qkb(),l=Dkb(b),!l?null:j6b(l,29)),!(!!e&&((e.a&512)!=0||(e.a&jJc)!=0)))){h=C1b(v1b(H1b(new e7b(_ac),new e8b(Xac,kJc)),pD(kD(TR,1),rHc,7,0,[new e7b(ebc),(me($oc(lJc,spc(46))==-1,qHc,lJc),new e8b(mac,lJc))])));V5b(d,h)}g=F1b((me($oc("",spc(46))==-1,qHc,""),new e8b(mac,"")),Y1b((me($oc(mJc,spc(46))==-1,qHc,mJc),new e8b(mac,mJc))),d);p2(a.a,g);m=S1b(g);k=new K5b(false);p5b(k,mJc,new O5b(new g7b(o9b,new e7b(Jac)),"")); M6b(m,u4b(k))}d7b(m,b);V5b(f,m);q2(a.a,m)}function ahb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;t=new Xvb(c);f=(v=new SAc,Ygb(a),Xc(v,c),v);d=Uvb(t,c,b.b);g=new gu;for(j=(q=(new mrc(f.a)).a.Wd().Od(),new trc(q));j.a.Hd();){h=(e=j.a.Id(),e.ce());l=h.g;be(l);cu(g,l,h,null)}for(n=new Wqc(new xuc(a.a));n.b0){b=a.charCodeAt(0);if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0)throw BV(new Noc(pFc+j+'"'));while(a.length>0&&a.charCodeAt(0)==48){a=a.substr(1);--f}if(f>(Moc(),Koc)[10])throw BV(new Noc(pFc+j+'"'));for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-= d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c)c=false;else{if(DV(l,h)<0)throw BV(new Noc(pFc+j+'"'));l=KV(l,k)}l=OV(l,d)}if(DV(l,0)>0)throw BV(new Noc(pFc+j+'"'));if(!i){l=LV(l);if(DV(l,0)<0)throw BV(new Noc(pFc+j+'"'));}return l}function ygb(a,b,c){var d,e,f,g,h,i,j;if(a.a&&j6b(c,40)!=null){Gpc(b,j6b(c,40));return}if(c.j==(tbc(),N8b)){b.a+="!";ygb(a,b,c.b)}else if(c.j==u9b){ygb(a,b,c.b);b.a+="="}else if(c.j==Fac){b.a+="(";g=c.b?c.b.f:null;for(d=c.b;d;d=d.d){ygb(a,b,d); d!=g&&(b.a+="|",b)}b.a+=")"}else if(c.j==o9b){b.a+=JHc;!!c.b&&c.b.j!=p9b&&ygb(a,b,c.b)}else if(c.j==Wac)b.a+="*";else if(c.j==Jac){b.a+="?";!!c.b&&ygb(a,b,c.b)}else if(c.j==E9b)xgb(a,b,c);else if(c.j==cac){b.a+="{";i=c.b;h=i.b?i.b.f:null;for(e=i.b;e;e=e.d){if(e.b){Gpc(Gpc(b,e.b.ri()),":");ygb(a,b,e.b?e.b.f:null)}else Gpc(b,e.ri());e!=h&&(b.a+=",",b)}b.a+="}"}else if(c.j==obc)b.a+=$Hc;else if(c.b){Gpc(Gpc(b,c.ri()),"<");d=c.b;f=d.b?d.b.f:null;for(j=d.b;j;j=j.d){ygb(a,b,j);j!=f&&(b.a+=",",b)}b.a+=">"}else Gpc(b, c.ri())}function Hzb(a,b,c,d,e){var f,g,h,i,j;me(a.n.isEmpty(),"Non-empty type parameters %s",a.n);he(a==a.a.g||a.f.isEmpty());he(a!=a.a.v);if(a==a.a.g||b==b.a.v||b==b.a.g||b.c)return true;!b.n.isEmpty()&&(b=wzb(b));if(!(a.i.isEmpty()&&a.e.isEmpty()&&!!a.j&&oFc==a.j.Lh())){if(b.i.size()>a.i.size())return false;g=a.i.size()+a.e.size();for(f=0;ffVb(a.j,0).b.a.b,!(c||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&oUb(a,1,EWb)?e=GSb(a):oUb(a,0,EWb)?e=(g=fVb(a.j,0).b.b,aSb(a,(HRb(),aRb).a),h=!!eSb(a,zXb),i=jZb(new nZb((sZb(),qZb)),(j=fVb(a.j,0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),j)||!a.b.b&&MRb(j)?cSb(a):null)),jTb(a,i,h?(TUb(),RUb):(TUb(),SUb)),cZb(i,new r0b(g,a.g))):e=OTb(a);while(oUb(a, 0,dXb)||oUb(a,0,iXb)||oUb(a,0,ZWb)||oUb(a,0,HXb))switch(fVb(a.j,0).c.f){case 49:aSb(a,dXb);d=pSb(a,1);aSb(a,iWb);e=new HZb(new r0b(f,a.g),e,d);break;case 51:aSb(a,iXb);b=cSb(a);e=new GZb(new r0b(f,a.g),e,b);break;case 107:case 104:e=bUb(a,e);break;default:throw BV(new sC(MNc));}return e}function Rzb(a,b){var c,d,e,f,g,h,i,j,k;if(!a||!b)return null;else if(b==b.a.v||b==b.a.g||nzb(a,b))return a;else if(a==a.a.v||a==a.a.g)return b;if(a.c||b.c)return Qzb(a,b);if(!a.n.isEmpty()&&yzb(a,b,true,new EHb((zEb(), zEb(),yEb)),null))return a;else if(!b.n.isEmpty()&&yzb(b,a,true,new EHb((zEb(),zEb(),yEb)),null))return b;!a.n.isEmpty()&&(a=wzb(a));!b.n.isEmpty()&&(b=wzb(b));d=a.a;c=new nAb(d);h=Coc(a.i.size(),b.i.size());for(f=0;f0)&&++g;c==123&&(d=true);if(c==125||g>=6&&!d){d=false;g=0}zpc(i,aVb(a));c=_Ub(a,a.d)?Soc(a.e.a,a.d):0}h=i.a;if(e){h=QVb(h);if(h==null){gVb(a, $Ub(a,a.d),"Invalid escape sequence",pD(kD(kT,1),KFc,1,5,[]));return XUb(a,(YXb(),yWb),b)}}f=h.charCodeAt(0);if(!LVb(f)){gVb(a,RRb(a.e.b,b),"Character '%c' (U+%04X) is not a valid identifier start char",pD(kD(kT,1),KFc,1,5,[nnc(f),moc(f)]));return XUb(a,(YXb(),yWb),b)}HRb();if(up(hRb,h))return new GQb(up(hRb,h).a,SRb(a.e.b,b,a.d));return new IQb(SRb(a.e.b,b,a.d),(SEc(h),h))}function JTb(a,b){var c,d,e,f,g,h,i;e=fVb(a.j,0).b.b;d=null;if(pUb(a,(YXb(),yXb)))d=(a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(), sQb)])),i=fVb(a.j,0).b.b,aSb(a,yXb),new N_b(new r0b(i,a.g),UTb(a,0)));else{f=fVb(a.j,0).c;if(Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),f)||!a.b.b&&MRb(f)){d=nTb(a);if(pUb(a,qXb)){aSb(a,qXb);d=new RZb(new r0b(e,a.g),d)}}else if(b!=2&&(oUb(a,0,dXb)||oUb(a,0,bXb)))d=LTb(a,0);else throw BV(new Ync("parseParameterCalled() without confirming a parameter exists."));}g=null;h=null;if(pUb(a,jWb)){if(oUb(a,1,EXb)){aSb(a,jWb);g=xTb(a)}else g=(aSb(a,jWb),cUb(a));h=hSb(a,fVb(a.j,0).b.b)}if(b==0&&d.p!= (H_b(),i_b)&&pUb(a,vWb)){a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),WPb)]));aSb(a,vWb);c=CSb(a,1);d=new RYb(new r0b(e,a.g),d,c)}!!g&&(d=new a0b(h,d,g));return d}function yzb(a,b,c,d,e){var f,g,h,i,j,k,l;if(b==b.a.v||b==b.a.g||b==b.a.s||a==a.a.s)return true;if(a==a.a.v||a==a.a.g)return false;he(!a.c&&!b.c);if(!a.n.isEmpty()){if(nzb(a,b))return true;return yzb(wzb(a),b,c,d,e)}if(!(b.i.isEmpty()&&b.e.isEmpty()&&!!b.j&&oFc==b.j.Lh())){if(a.i.size()>b.i.size())return false;j=b.i.size()+b.e.size();for(h= 0;h2){a.a.ph(NMc+r8b(jNc,pD(kD(kT,1),KFc,1,5, [gNc])),a.b.Og(),a.d,a.c);LOb(a,(c=XOb.d,Zd(b.j==V8b,aNc,b),d6b(b,2),c));return false}f=(Zd(e.j==E9b,hNc,e),d6b(e,2));if(!FOb(a,f)){a.a.ph(NMc+r8b(eNc,pD(kD(kT,1),KFc,1,5,[kNc])),a.b.Og(),a.d,a.c);return false}return true}function rOb(a,b){var c,d,e,f,g;if(!gOb(a,b,(kPb(),YOb)))return false;if(!FOb(a,(Zd(b.j==(tbc(),V8b),aNc,b),d6b(b,1)))){LOb(a,(c=YOb.d,Zd(b.j==V8b,aNc,b),d6b(b,1),c));return false}if((Zd(b.j==V8b,aNc,b),d6b(b,2)).j!=E9b){KOb(a,(d=gNc,Zd(b.j==V8b,aNc,b),d6b(b,2),d));LOb(a,(c=YOb.d, Zd(b.j==V8b,aNc,b),d6b(b,2),c));return false}e=(Zd(b.j==V8b,aNc,b),d6b(b,2));g=(Zd(e.j==E9b,hNc,e),e6b(e.b.d));if(g<1){a.a.ph(NMc+r8b(iNc,pD(kD(kT,1),KFc,1,5,[gNc])),a.b.Og(),a.d,a.c);LOb(a,(c=YOb.d,Zd(b.j==V8b,aNc,b),d6b(b,2),c));return false}if(g>1){a.a.ph(NMc+r8b(jNc,pD(kD(kT,1),KFc,1,5,[gNc])),a.b.Og(),a.d,a.c);LOb(a,(c=YOb.d,Zd(b.j==V8b,aNc,b),d6b(b,2),c));return false}f=(Zd(e.j==E9b,hNc,e),d6b(e,2));if(!FOb(a,f)){a.a.ph(NMc+r8b(eNc,pD(kD(kT,1),KFc,1,5,[kNc])),a.b.Og(),a.d,a.c);return false}return true} function Ozb(a,b){var c,d,e,f,g,h,i,j,k;if(!a)return b;else if(!b||nzb(a,b))return a;else if(a==a.a.s||b==b.a.s)return a.a.s;else if(a==a.a.v||a==a.a.g||b==b.a.v||b==b.a.g)return a.a.v;if(a.c||b.c)return Qzb(a,b);if(!a.n.isEmpty()&&yzb(b,a,true,new EHb((zEb(),zEb(),yEb)),null))return a;else if(!b.n.isEmpty()&&yzb(a,b,true,new EHb((zEb(),zEb(),yEb)),null))return b;!a.n.isEmpty()&&(a=wzb(a));!b.n.isEmpty()&&(b=wzb(b));d=a.a;c=new nAb(d);g=Boc(a.i.size(),b.i.size());for(f=0;ffVb(a.j,0).b.a.b,!(c||oUb(a,1,vXb)||oUb(a,1,gWb)||oUb(a,1,tWb)))&&(zUb(a,1)||fVb(a.j,1).c==dXb)?HSb(a,new WUb(fVb(a.j,0).b.b)):fVb(a.j,1).c==cXb?RSb(a,new WUb(fVb(a.j,0).b.b)):RTb(a);else if(f==dXb){e=fVb(a.j,0).b.b;d=TSb(a);if(pUb(a,jWb)){aSb(a,jWb);g=CSb(a,1);return new IYb(new r0b(e,a.g),d,g)}else{b=new nZb((sZb(),qZb));jTb(a,b,(TUb(),SUb));g=cZb(b, new r0b(e,a.g));return new LYb(new r0b(e,a.g),null,d,g)}}else throw BV(new sC(MNc));}function Nfb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;Vd(b.j==(tbc(),K9b)||b.j==Yac||b.j==L9b||b.j==Sac,b);Ud(Aib(a.a,c));b.j==L9b?d=(sAb(),NKc+d):b.j==Sac&&(d=(sAb(),OKc+d));if(b.j==Yac&&Aib(a.a,b.b))return;f=(e=jib(a.a,TGb(c),false),!e?null:cE(e.c,163)?e.c:null);if(!!f&&f.c.contains(d))return;k=nib(a.a,TGb(c));i=(qkb(),j=Dkb(b),!j?null:j6b(j,29));p=kfb(a,i,b,null);n=p.a;o=p.b;h=seb(a.c,b);if(!!n||h){m=(l=Li(Bi(k.D, d,false)),!l?null:l.b);if(!!Lyb(k,new SGb(d))||Myb(k,d)&&!!m&&!Ifb(i,n,m)){Fjb(a.c.t,Kgb(b,(jeb(),ceb),pD(kD(pT,1),tFc,2,6,[d,"namespace "+k])));A6b(b.e,76,true);return}!n&&(n=rfb(a,b));Eyb(k,d,b,n,h);r=F6b(b,b.g,76);r!=b.g&&(b.g=r);b.g=new J7b(76,1,b.g);b.j==K9b&&h&&(q=F6b(b,b.g,77),q!=b.g&&(b.g=q),b.g=new J7b(77,1,b.g))}else if(o)Gyb(k,d,b,o);else{g=Vkb(b);s=!g?null:Cfb(a,g);!s&&(s=a.c.d.G);Gyb(k,d,b,s)}}function FVb(a){var b,c,d;aVb(a);if(!_Ub(a,a.d)){hVb(a,"Unterminated string literal escape sequence", pD(kD(kT,1),KFc,1,5,[]));return false}if(MVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)){c=aVb(a);c==13&&(_Ub(a,a.d)?Soc(a.e.a,a.d):0)==10&&aVb(a);return true}d=aVb(a);switch(d){case 39:case 34:case 96:case 92:case 98:case 102:case 110:case 114:case 116:case 118:case 48:return true;case 120:return uVb(a)&&uVb(a);case 117:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==123){aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==125){hVb(a,"Empty unicode escape",pD(kD(kT,1),KFc,1,5,[]));return false}b=true;while((_Ub(a,a.d)?Soc(a.e.a,a.d): 0)!=125&&b)b=b&&uVb(a);aVb(a);return b}else return uVb(a)&&uVb(a)&&uVb(a)&&uVb(a);default:if(d==47);else if(d==36);else iVb(a,"Unnecessary escape: '\\%s' is equivalent to just '%s'",pD(kD(kT,1),KFc,1,5,[nnc(d),nnc(d)]));return true}}function Teb(a,b,c,d,e){var f,g,h,i,j,k,l,m;he(!c||t6b(c));if(!d)return;if((d.a&2)!=0||(d.a&512)!=0||(d.a&jJc)!=0){if(!c){Fjb(a.b.t,Kgb(b,(jeb(),Fdb),pD(kD(pT,1),tFc,2,6,[])));c=T1b(JKc+Y5(a.b.j));a7b(c,b)}i=k6b(c);f=(_n(),new fr);for(l=V2b(d).Od();l.Hd();){k=l.Id();dr(f, ZHb(a.b.s,k))}m=io(f.a);h=(d.a&NGc)!=0?(wFb(),tFb):(d.a&SJc)!=0?(wFb(),sFb):(wFb(),uFb);if((d.a&2)!=0)j=new xHb(a.b.d,b,i,m,0,h,(d.a&MKc)!=0);else if((d.a&jJc)!=0)j=CHb(a.b.d,b,i,m,h);else{he((d.a&512)!=0||(d.a&jJc)!=0);j=BHb(a.b.d,b,i,m,h)}lAc(a.b.n,b,j);if(e)return;g=c.b;if(c.j==(tbc(),mac)||Aib(a.a,g)||Qeb(a,g)||Reb(a,g)){c.j==K9b?b.j==E9b?A6b(b.e,76,true):A6b(b.e.b,76,true):!a.a.r&&Seb(a,i,j);dib(a.a,c,j)}}else(d.a&NGc)!=0&&Fjb(a.b.t,Kgb(b,(jeb(),eeb),pD(kD(pT,1),tFc,2,6,[])));(d.a&SJc)!=0&&(d.a& 2)==0&&Fjb(a.b.t,Kgb(b,(jeb(),Odb),pD(kD(pT,1),tFc,2,6,[])))}function Kbb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;k=Ubb(c,b);h=(qkb(),vkb(k,false,a.a));e=Tbb(k);p=new Wbb;p.b=h;p.a=e;for(g=null,d=k,m=d.e;m!=b;g=d,d=m,m=d.e){n=m.j;he(!Vbb(m)||d==m.b);if(n==(tbc(),z8b))if(Pbb(a,m,p.b));else{i=m.b;q=i.j;if(i!=d){he(i.j==K9b||i.j==J9b);q==J9b&&Ibb(a,i.b?i.b.f:null,null,p);Ibb(a,i.b,null,p)}}else if(n==V8b&&qlb(m.b)){f=m.b;Ibb(a,f.d,d,p);if(Obb(a,f,p.b)&&f.b!=g){ie(false,"Object method calls can not be decomposed."); p.b=true;o=(Ud(m.j==V8b),r=m.b,Ud(r.j==K9b||r.j==J9b),s=Mbb(a,r,p.a),p.a=s,t=s.b.b,Ud(t.j==K9b||t.j==J9b),u=Mbb(a,t.b,p.a),p.a=u,v=u.b,w=s.b,A=a7b(v1b(H1b(w.pi(false),new e8b(Xac,pJc)),pD(kD(TR,1),rHc,7,0,[v.pi(false)])),m),E6b(m),!!m.b&&X5b(A,D6b(m)),B=m.e,G6b(B,m,A),A);m=o}}else n==zac?Hbb(a,m.b,d,p):Ibb(a,m.b,d,p)}if(k==c);else{l=k.e;j=l.j!=(tbc(),z9b);Lbb(a,k,e,j)}}function wqb(a){qqb();this.a=a;this.b=(So(),kr(new nr,pEc(yLc),mqb)).jf(tqb('Duplicate parameter name "{0}"'),_pb).jf(pEc("Unnecessary escape:.*"), oqb).jf(pEc("^invalid param name.*"),eqb).jf(tqb(r8b(zLc,pD(kD(kT,1),KFc,1,5,[]))),$pb).jf(pEc("^"+qEc(ALc)),fqb).jf(pEc("^Keywords and reserved words are not allowed as unquoted property.*"),cqb).jf(pEc("^Too many template parameters"),lqb).jf(pEc(".*Type annotations should have curly braces.*"),gqb).jf(pEc("Missing type declaration\\."),hqb).jf(pEc(".*Unknown type.*"),pqb).jf(pEc("^Bad type annotation.*"),nqb).jf(pEc("Too deep recursion while parsing"),kqb).jf(pEc("^Octal .*literal.*"),dqb).jf(pEc("^this language feature is only supported for ECMASCRIPT6 mode.*"), aqb).jf(pEc("^type syntax is only supported in ES6 typed mode.*"),bqb).jf(pEc("^Can only have JSDoc or inline type.*"),iqb).hf()}function _lc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b.Ni())return a;a.e=a.e||b.Hi();a.c=a.c||b.ei();i=cE(b,207);a.f=a.f||i;i&&(a.b=a.b&&b.Ii());if(!a.e&&!a.f)if(b._i()){n=b._i();d=Blc(n);for(h=0;ha.g)return a;if(!!b.Xi()&&a.d!=-1){k=mtc(a.a,a.d).Xi();m=Zec(b.Xi(),k,true);rtc(a.a,a.d,m);a.j=null;return a}f= 0;j=new Rtc(a.a);while(j.a=b.length)return{done:true};var a=b[d++];return{value:[a,c.get(a)],done:false}}}};if(!Rzc()){e.prototype.createObject= function(){return{}};e.prototype.get=function(a){return this.obj[":"+a]};e.prototype.set=function(a,b){this.obj[":"+a]=b};e.prototype[zNc]=function(a){delete this.obj[":"+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj)b.charCodeAt(0)==58&&a.push(b.substring(1));return a}}return e}function RSb(a,b){var c,d,e,f,g,h,i,j,k,l;h=!!eSb(a,(YXb(),zXb));l=fVb(a.j,0).c;if(GWb==l||(HRb(),HRb(),!!up(iRb,l))){k=null;j=cSb(a);LRb(j.a)&&(a.d=FPb(a.d,pD(kD($O,1),PFc,26,0,[(BQb(),hQb)])))}else{if(a.b.c&& oUb(a,0,dXb)&&oUb(a,1,GWb)&&oUb(a,2,jWb)){g=sTb(a);fSb(a);return g}k=TSb(a);j=null}if(!a.b.c||pUb(a,cXb)||pUb(a,aXb)){if(!k){i=(sZb(),rZb);c=b.a}else{i=(sZb(),qZb);c=null}if(b.b){f=BTb(a,b.d,j,b.c,h,b.a);fSb(a)}else{d=dZb(mZb(jZb(new nZb(i),j),b.c),c);jTb(a,d,h?(TUb(),RUb):(TUb(),SUb));f=cZb(d,hSb(a,b.d))}return i==(sZb(),rZb)?f:new LYb(hSb(a,b.d),b.a,k,f)}else{h&&IUb(a,"Member variable cannot be prefixed by '*' (generator function)",pD(kD(kT,1),KFc,1,5,[]));e=kSb(a);pUb(a,vWb)&&IUb(a,"Member variable initializers ('=') are not supported", pD(kD(kT,1),KFc,1,5,[]));fSb(a);return!k?new IZb(hSb(a,b.d),j,b.c,false,b.a,e):new KYb(hSb(a,b.d),k,b.c,b.a,e)}}function leb(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;l=XEb(c,d);if(!l)return;if(c.a.g!=0){k=peb(a,c,d);if(Aeb(Ekb(b.v)))for(h=k.Od();h.Hd();){g=h.Id();!!kHb(b,d)||hq(a.o,b,d,g)}}else{p=be(oeb(a,c,d));k=(En(),new Ey(p))}if(c.a.g!=0&&b.g==0&&!Aeb(Ekb(b.v))&&!kHb(b,d)){Fjb(a.t,Kgb(k.Od().Id().a,Wdb,pD(kD(pT,1),tFc,2,6,[d,KEb(c,new Kpc,(HHb(),GHb)).a,dHb(b,new Kpc).a])));return}m=pq(a.o,b, d);n=!m?null:hHb(b,d);if(!!m&&c.a.g==0&&!!n&&!!yAb(n)&&(o=kHb(c.a,d),!!o&&o.a==(OGb(),LGb))){Fjb(a.t,Kgb(m.a,Idb,pD(kD(pT,1),tFc,2,6,[d])));return}if(!n&&c.a.g!=0)Zh(f,d,l);else if(!!n&&!zeb(m)&&!(q=yAb(n),r=yAb(l),!q?JAb(n,l,new EHb((zEb(),zEb(),yEb))):!!r&&yzb(q,r,false,new EHb((zEb(),zEb(),yEb)),null)))Fjb(a.t,Kgb(m.a,Ydb,pD(kD(pT,1),tFc,2,6,[d,tAb(l,new Kpc,(HHb(),GHb)).a,tAb(n,new Kpc,GHb).a])));else if(!!n&&!!m.c)for(j=k.Od();j.Hd();){i=j.Id();!!i.c&&Zh(e,d,i.c)}}function Zlb(a){qkb();switch(a.f){case 1:return"|"; case 61:return"||";case 2:return"^";case 62:return"&&";case 3:return"&";case 36:return"===";case 4:return"==";case 19:return"!";case 5:return"!=";case 37:return"!==";case 10:return"<<";case 40:return"in";case 7:return"<=";case 6:return"<";case 12:return">>>";case 11:return">>";case 9:return">=";case 8:return">";case 15:return"*";case 16:return"/";case 17:return"%";case 18:return"**";case 20:return"~";case 13:case 21:return"+";case 14:case 22:return"-";case 47:return"=";case 48:return"|=";case 49:return"^="; case 50:return"&=";case 51:return"<<=";case 52:return">>=";case 53:return">>>=";case 54:return"+=";case 55:return"-=";case 56:return"*=";case 59:return"**=";case 57:return"/=";case 58:return"%=";case 79:return $Hc;case 25:return iLc;case 41:return jLc;default:return null}}function _Sb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;l=fVb(a.j,0).b.b;f=false;g=false;h=false;k=true;aSb(a,(YXb(),zWb));c=null;d=null;switch(fVb(a.j,0).c.f){case 65:g=true;n=eVb(a.j);a.g=n.b.a;break;case 14:c=b?tSb(a):iTb(a);k=b;break; case 29:c=OSb(a,false,b);k=false;break;case 37:c=tTb(a);k=false;break;case 31:c=XSb(a);k=false;break;case 110:case 111:c=DTb(a,b);k=false;break;case 109:c=rSb(a);k=false;break;case 8:f=true;m=eVb(a.j);a.g=m.b.a;c=pSb(a,1);k=false;break;case 45:h=true;d=bTb(a);break;case 108:c=dUb(a);break;default:case 25:case 38:case 30:c=b?wSb(a):lUb(a,1)}j=null;if(g||h&&oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,MHc)){gSb(a,MHc);j=aSb(a,EXb)}else if(h)for(p=d.Od();p.Hd();){o=p.Id();e=o.b;LRb(e.a)&&GUb(a,e,LNc,pD(kD(kT,1),KFc, 1,5,[e.a]))}(k||(i=fVb(a.j,0).b.b.b>a.g.b,i||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)))&&fSb(a);return new VYb(new r0b(l,a.g),f,g,c,d,j)}function xbb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;Ud(b.j==(tbc(),zac));k=new utc;d=b.b;while(d)if(h6b(d,73)!=0||h6b(d,74)!=0){o2(a.a,Kgb(d,qbb,pD(kD(pT,1),tFc,2,6,["computed getter/setter in an object literal"])));return}else if(d.j==L9b||d.j==Sac)d=d.d;else{f=d.d;C6b(b,d);k.add(d);d=f}g="$jscomp$compprop"+(""+(new l3(a.a)).a.Z++);k=cE(k,118)?bo(k):cE(k,172)?k.a: cE(k,80)?new Hv(k):new wv(k);l=(me($oc(g,spc(46))==-1,qHc,g),new e8b(mac,g));for(i=k.Od();i.Hd();){h=i.Id();if(h.j==c9b){j=E6b(h);p=E6b(h);l=y1b(r1b(G1b((me($oc(g,spc(46))==-1,qHc,g),new e8b(mac,g)),j),p),l)}else{if(!h.b){e=c7b(T1b(h.ri()),h);U5b(h,e)}o=E6b(h);V6b(h,Xac);n=h.ti()?J9b:K9b;c=new i7b(n,(me($oc(g,spc(46))==-1,qHc,g),new e8b(mac,g)),h);l=y1b(r1b(c,o),l)}}m=b;while(qkb(),!Jlb(m.e))m=m.e;d7b(l,b);G6b(b.e,b,l);q=A1b((me($oc(g,spc(46))==-1,qHc,g),new e8b(mac,g)),b,nbc);d7b(q,m);T5b(m.e,q, m);q2(a.a,q)}function cEb(a){var b,c,d;c=_Ab(this);this.a=be(kAc(c,"BOOLEAN"));this.b=be(kAc(c,"BOTTOM"));this.e=be(kAc(c,VLc));this.f=be(kAc(c,"FALSY"));this.j=be(kAc(c,WLc));this.q=be(kAc(c,XLc));this.t=be(kAc(c,YLc));this.u=be(kAc(c,"TOP"));be(kAc(c,ZLc));this.w=be(kAc(c,"TRUE_TYPE"));this.A=be(kAc(c,$Lc));this.B=be(kAc(c,"UNDEFINED"));this.G=be(kAc(c,_Lc));this.C=be(kAc(c,aMc));this.D=be(kAc(c,bMc));this.F=be(kAc(c,cMc));this.k=be(kAc(c,dMc));this.n=be(kAc(c,eMc));this.o=be(kAc(c,fMc));this.p= be(kAc(c,gMc));this.r=be(kAc(c,hMc));b=(d=new oAc,lAc(d,jMc,Tzb(this,null,null,this.G,this.G,null,null,null,null,true,false)),lAc(d,kMc,Tzb(this,null,null,null,this.b,null,null,null,null,false,false)),lAc(d,ULc,new Kzb(this,false)),lAc(d,TLc,new Kzb(this,true)),d);this.s=be(kAc(b,jMc));this.c=be(kAc(b,kMc));this.v=be(kAc(b,ULc));this.g=be(kAc(b,TLc));this.d=AEb(new DGb(null,this.b,this.b,(OGb(),NGb)));this.H=a;this.T=a;this.J=a;this.i=new gEb(this)}function hZ(){hZ=aW;gZ=new _6("JSC_MISPLACED_MSG_ANNOTATION", (lZ(),jZ),new iqc("Misplaced message annotation. @desc, @hidden, and @meaning annotations should onlybe on message nodes."));fZ=new _6("JSC_MISPLACED_ANNOTATION",kZ,new iqc("Misplaced {0} annotation. {1}"));_Y=new _6("JSC_ANNOTATION_DEPRECATED",kZ,new iqc("The {0} annotation is deprecated. {1}"));cZ=new _6("JSC_DISALLOWED_MEMBER_JSDOC",kZ,new iqc("Class level JSDocs (@interface, @extends, etc.) are not allowed on class members"));aZ=new _6("JSC_ARROW_FUNCTION_AS_CONSTRUCTOR",iZ,new iqc("Arrow functions cannot be used as constructors")); bZ=new _6("JSC_DEFAULT_PARAM_MUST_BE_MARKED_OPTIONAL",iZ,new iqc("Inline JSDoc on default parameters must be marked as optional"));eZ=new _6("JSC_INVALID_NO_SIDE_EFFECT_ANNOTATION",iZ,new iqc("@nosideeffects may only appear in externs files."));dZ=new _6("JSC_INVALID_MODIFIES_ANNOTATION",iZ,new iqc("@modifies may only appear in externs files."))}function iW(){var a,b,c;b=$doc.compatMode;a=pD(kD(pT,1),tFc,2,6,[RGc]);for(c=0;cMake sure your application's host HTML page has a Standards Mode (document.compatMode=' CSS1Compat') doctype,
e.g. by using <!doctype html> at the start of your application's HTML page.

To continue using this unsupported rendering mode and risk layout problems, suppress this message by adding
the following line to your*.gwt.xml module file:
  <extend-configuration-property name=\"document.compatMode\" value=\""+ b+'"/>':"Your *.gwt.xml module configuration prohibits the use of the current document rendering mode (document.compatMode=' "+b+"').
Modify your application's host HTML page doctype, or update your custom "+"'document.compatMode' configuration property settings."}function Lbb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;n=b.e;q=a.e+uKc+(""+a.c.a.Z++);i=b.b;p=i.d;m=b.b?b.b.f:null;c6b(b);g=null;s=a7b((f=new e7b((tbc(),S8b)),f),b);h=a7b((e=new e7b(S8b),e),b);switch(b.j.f){case 60:g=i;V5b(s,Vlb(d? b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),p),p):p));V5b(h,Vlb(d?b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),m),m):m));break;case 62:g=d?b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),i),i):i;V5b(s,Vlb(d?b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),m),m):m));break;case 61:g=d?b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),i),i):i;V5b(h,Vlb(d?b7b(r1b((me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q)),m),m):m));break;default:throw BV(new Ync(vKc));}h.b?k=(he(P1b(g)), he(s.j==S8b),he(h.j==S8b),new j7b(O9b,g,s,h)):k=K1b(g,s);c7b(k,b);if(d){r=d7b(Ylb(q,null),b);l=c.e;T5b(l,r,c);S5b(l,k,r);o=(me($oc(q,spc(46))==-1,qHc,q),new e8b(mac,q));G6b(n,b,o)}else{Ud(n.j==z9b);j=n.e;G6b(j,n,k)}return k}function VCb(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t;r=(_n(),new fr);q=(null,$n);k=d.e;i=false;if(b){if(e)er(r,e.q);else for(p=V2b(b).Od();p.Hd();){n=p.Id();dr(r,ZHb(a.d,n))}for(o=$2b(b).bf().Od();o.Hd();){n=o.Id();dr(r,ZHb(a.d,n))}q=io(r.a);if(!q.isEmpty())if(k.j==(tbc(), Sac)||k.j==L9b){i=true;b=null;jzc(a.i,Kgb(d,ICb,pD(kD(pT,1),tFc,2,6,[])))}else jAb(h,q)}if(f){er(r,f.q);q=io(r.a)}OCb(a,b,d,q,g,h,i);QCb(a,b,d,k,q,g,h,i);if(!b)return lAb(h);l=ZCb(a,b,c,d,q,g);j=XCb(a,b,g,q,true);if(!e&&((b.a&2)!=0||(b.a&512)!=0||(b.a&jJc)!=0))return lAb(h);else(b.a&2)!=0?fDb(a,c,d,e,l,j,h):(b.a&512)!=0||(b.a&jJc)!=0?(j.isEmpty()||jzc(a.i,Kgb(d,tCb,pD(kD(pT,1),tFc,2,6,[c]))),s=XCb(a,b,g,q,false),t=XGb(e,s.isEmpty()?new Ey(NDb(a.a)):s),t||jzc(a.i,Kgb(d,ECb,pD(kD(pT,1),tFc,2,6,[dHb(e, new Kpc).a]))),bAb(h,e.r),undefined):j.isEmpty()||jzc(a.i,Kgb(d,DCb,pD(kD(pT,1),tFc,2,6,[c])));if(b.g){m=b.g.a;he(m.j==(tbc(),N8b));fAb(h,bDb(a,m.b,g,q))}(b.a&2)!=0||_zb(h,(b.a&MKc)!=0);return lAb(h)}function wab(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;Vd(d.j==(tbc(),kac),d);j=(c.b?c.b.f:null).ri();k=Xoc(j.substr(0,5),"goog:");if(k)l=j.substr(5);else{m=nwb(z3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d)),j,(g=j6b(c,51),!g?null:g.Og()),n7b(c.i),m7b(c.i));!m&&(m=owb(z3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d)),j)); l=Iwb(m.a)}for(f=(!c.b?(Wuc(),Wuc(),Vuc):new Y7b(c.b)).Od();f.Hd();){e=f.Id();if(e.j==p9b||e.j==Xac)continue;else if(e.j==mac){n=k?"":LHc;rqc(a.g,e.ri(),new Gab(l,n))}else if(e.j==S9b)for(i=(!e.b?(Wuc(),Wuc(),Vuc):new Y7b(e.b)).Od();i.Hd();){h=i.Id();o=h.b.ri();!!h.b&&!!h.b.d&&h.b.d==(h.b?h.b.f:null)?rqc(a.g,(h.b?h.b.f:null).ri(),new Gab(l,o)):rqc(a.g,o,new Gab(l,o))}else{me(e.j==T9b,"Expected an IMPORT_STAR node, but was: %s",e);k&&o2(a.c,Qjb(c,pab,pD(kD(pT,1),tFc,2,6,[e.ri(),l])));rqc(a.g,e.ri(), new Gab(l,""))}}if(jzc(a.a,l)){p=C1b(v1b(Xlb(a.c,yHc),pD(kD(TR,1),rHc,7,0,[new e8b(Xac,l)])));d7b(p,c);S5b(d,p,a.f);a.f=p;v3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d),l)}C6b(d,c);Vjb(b)}function Mkb(a){qkb();var b,c,d;switch(a.j.f){case 92:return Mkb(a.b);case 47:case 46:return Mkb(a.b?a.b.f:null);case 62:case 61:return skb(Mkb(a.b),Mkb(a.b?a.b.f:null));case 60:return skb(Mkb(a.b.d),Mkb(a.b?a.b.f:null));case 13:{c=Mkb(a.b?a.b.f:null);if(c==4)return 4;b=Mkb(a.b);if(b==4)return 4;if(b==6||c==6)return 0; if(!Tlb(b)&&!Tlb(c))return 3;return 0}case 54:{c=Mkb(a.b?a.b.f:null);if(c==4)return 4;return 0}case 29:d=a.ri();if(Xoc(d,GJc))return 2;if(Xoc(d,"NaN"))return 3;if(Xoc(d,hLc))return 3;return 0;case 48:case 49:case 50:case 51:case 52:case 53:case 55:case 56:case 59:case 57:case 58:case 20:case 1:case 2:case 3:case 10:case 11:case 12:case 14:case 15:case 17:case 16:case 18:case 63:case 64:case 21:case 22:case 30:return 3;case 35:case 34:case 4:case 5:case 36:case 37:case 6:case 8:case 7:case 9:case 40:case 41:case 19:case 24:return 5; case 25:case 31:return 4;case 32:return 1;case 79:return 2;case 65:case 23:case 42:case 43:case 38:return 6;default:return 0}}function Dfb(a,b){var c,d,e,f,g,h,i,j,k,l;switch(b.j.f){case 38:return ODb(a.c.d);case 92:return kAc(a.c.c,b);case 42:{if(!b.b)return CDb(a.c.d);d=b.b;c=Dfb(a,d);if(!c)return null;while(d=d.d)if(!vAb(c,Dfb(a,d)))return null;return DDb(a.c.d,c)}case 35:case 34:return a.c.d.a;case 33:return lib(a.a,SHc);case 29:return ueb(a.c,kib(a.a,b.ri(),false));case 43:{g=GDb(a.c.d);for(i= (!b.b?(Wuc(),Wuc(),Vuc):new Y7b(b.b)).Od();i.Hd();){h=i.Id();j=Dfb(a,h.b);if(!j)return null;g=YAb(g,new SGb(Rkb(h)),j)}return g}case 26:return Gfb(a,b.b,(b.b?b.b.f:null).ri());case 27:return Ffb(a,b);case 46:case 47:return Dfb(a,b.b?b.b.f:null);case 28:case 23:return Bfb(a,b);case 62:case 61:return Afb(a,b);case 60:{f=Dfb(a,b.b.d);k=Dfb(a,b.b?b.b.f:null);return!f||!k?null:FBb(f,k)}case 65:{l=pib(a.a,neb(a.c,b));e=l.c;return!e?null:BDb(a.c.d,syb(e))}default:switch(Mkb(b)){case 1:return a.c.d.j;case 2:return a.c.d.B; case 3:return a.c.d.q;case 4:return a.c.d.t;case 5:return a.c.d.a;default:return null}}}function kPb(){kPb=aW;OOb=new lPb("ALL",0,"all",0,0,0);POb=new lPb("COND",1,"cond",3,3,1);QOb=new lPb("EQ",2,"eq",2,2,3);SOb=new lPb("ISCTOR",3,"isCtor",1,1,3);TOb=new lPb("ISDEFINED",4,"isDefined",1,1,4);UOb=new lPb("ISRECORD",5,"isRecord",1,1,3);VOb=new lPb("ISTEMPLATIZED",6,"isTemplatized",1,1,3);WOb=new lPb("ISUNKNOWN",7,"isUnknown",1,1,3);ROb=new lPb(mNc,8,"instanceOf",1,1,1);YOb=new lPb("MAPUNION",9,"mapunion", 2,2,1);XOb=new lPb("MAPRECORD",10,"maprecord",2,2,1);ZOb=new lPb("NONE",11,"none",0,0,0);$Ob=new lPb("PRINTTYPE",12,"printType",2,2,1);_Ob=new lPb("PROPTYPE",13,"propType",2,2,1);aPb=new lPb("RAWTYPEOF",14,"rawTypeOf",1,1,0);dPb=new lPb("SUB",15,"sub",2,2,3);cPb=new lPb("STREQ",16,"streq",2,2,2);bPb=new lPb("RECORD",17,"record",1,oFc,0);ePb=new lPb("TEMPLATETYPEOF",18,"templateTypeOf",2,2,0);fPb=new lPb(zMc,19,cIc,2,oFc,0);gPb=new lPb("TYPEEXPR",20,"typeExpr",1,1,0);hPb=new lPb("TYPEOFVAR",21,"typeOfVar", 1,1,1);iPb=new lPb("UNION",22,"union",2,oFc,0);jPb=new lPb(_Lc,23,nNc,0,0,0)}function y_(a,b,c,d,e,f,g,h){var i,j,k;k=new Lpc;for(j=0;j=2&&(b.charCodeAt(j-1)==45&&b.charCodeAt(j-2)==45||b.charCodeAt(j-1)==93&&b.charCodeAt(j-2)==93)?(k.a+="\\x3e",k):(k.a+=String.fromCharCode(i),k);break;case 60:if(!a.j&&!h){k.a+="\\x3c";break}dpc(b,true,j+1,"/script",0,7)?(k.a+="\\x3c",k):dpc(b,false,j+1,"!--",0,3)?(k.a+="\\x3c",k):(k.a+=String.fromCharCode(i), k);break;default:i>31&&i<127?(k.a+=String.fromCharCode(i),k):iC(k,i)}}return k.a}function pfb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;l=null;m=null;o=null;j=(qkb(),k=Dkb(d),!k?null:j6b(k,29));if(!!e&&e.j==(tbc(),E9b)){l=Lfb(a,e,b);m=l.c;d.j==(tbc(),L9b)?c=(sAb(),NKc+c):d.j==Sac&&(c=(sAb(),OKc+c))}else!!j&&(g=(j.a&QJc)==VJc&&((QJc&j.a)==VJc?j.i:null).a.j==(tbc(),E9b),g||(j.a&QJc)==nGc||!!j.g||Q2b(j)>0||(j.a&2)!=0||(j.a&IKc)!=0&&(j.a&QJc)!=VJc)&&d.j!=(tbc(),Yac)&&(m=ffb(a,j,c,d,b,a.a));!!j&&(j.a&QJc)== VJc?o=TCb(a.c.q,j,b,a.a):!!m&&(o=BDb(a.c.d,syb(m)));if(d.j==(tbc(),L9b)){f=(n=o.Lh()==2&&o.Oh().size()==1?Us(o.Oh().Od()):null,!n?null:n.b);!!f&&(o=f.k)}hq(a.c.o,b,c,new Yfb(d,m,l));!!m&&m.b&&!b.e&&(b.g==0?Fjb(a.c.t,Kgb(d,(jeb(),Cdb),pD(kD(pT,1),tFc,2,6,[b.A]))):b.g!=0&&Fjb(a.c.t,Kgb(d,(jeb(),Ddb),pD(kD(pT,1),tFc,2,6,[]))));i=seb(a.c,d);if(!!o||i){if(tfb(a,b,c,d,o))return;!o&&(o=rfb(a,d));ZGb(b,c,d,o,i);if(d.j==K9b){q=F6b(d,d.g,76);q!=d.g&&(d.g=q);d.g=new J7b(76,1,d.g);i&&(p=F6b(d,d.g,77),p!=d.g&& (d.g=p),d.g=new J7b(77,1,d.g))}}else{h=null;!!e&&(h=Cfb(a,e));!h&&(h=a.c.d.G);cHb(b,c,d,h)}}function tAb(a,b,c){var d,e,f,g,h,i,j,k,l;switch(a.Lh()){case 0:return b.a+="bottom",b;case -1:return b.a+="*",b;case oFc:return b.a+="?",b;default:l=a.Lh();g=true;for(k=1;k!=512;k<<=1)if((l&k)!=0){g||(b.a+="|",b);g=false;switch(k){case 8:case 16:b.a+=(l&24)==24?kFc:k==8?WHc:VHc;l&=-25;continue;case 32:b.a+=qFc;l&=-33;continue;case 64:b.a+=lFc;l&=-65;continue;case 128:b.a+=nFc;l&=-129;continue;case 256:b.a+= GJc;l&=-257;continue;case 1:Gpc(b,IHb(a.Vh()));l&=-2;continue;case 2:{if(a.Oh().size()==1)AFb(Us(a.Oh().Od()),b,c);else{j=new $Cc;for(i=a.Oh().Od();i.Hd();){h=i.Id();YCc(j,AFb(h,new Kpc,c).a)}Rc(rAb,b,(f=(new nsc(j.a)).a.Wd().b.Kj(),new tsc(f)))}l&=-3;continue}case 4:{if(a.Jh().size()==1)Gpc(b,Uyb(Us(a.Jh().Od()),c));else{j=new $Cc;for(e=a.Jh().Od();e.Hd();){d=e.Id();YCc(j,c.mi()?tAb(d.a,new Kpc,c).a:d.A)}Rc(rAb,b,(f=(new nsc(j.a)).a.Wd().b.Kj(),new tsc(f)))}l&=-5;continue}default:throw BV(new Smc("Impossible: "+ k));}}return l==0?b:l==512?(b.a+="truthy",b):l==WJc?(b.a+="falsy",b):Bpc((b.a+="Unrecognized type: ",b),l)}}function l1(){l1=aW;kW();j1=new _6("JSC_MODULE_DEPENDENCY_ERROR",(lZ(),iZ),new iqc("Bad dependency: {0} -> {1}. Modules must be listed in dependency order."));new _6(lIc,iZ,new iqc('required entry point "{0}" never provided'));new _6(lIc,iZ,new iqc('unknown module "{0}" specified in entry point spec'));new _6("JSC_INCONSISTENT_MODULE_DEFINITIONS",iZ,new iqc("Serialized module definitions are not consistent with the module definitions supplied in the command line")); new _6(mIc,iZ,new iqc("Exceeded max number of optimization iterations: {0}"));new _6(mIc,iZ,new iqc("Exceeded max number of code motion iterations: {0}"));k1=SDc(UDc(),"com.google.javascript.jscomp");new Vc(Cmc);h1=new _6("JSC_EMPTY_MODULE_LIST_ERROR",iZ,new iqc("At least one module must be provided"));i1=new _6("JSC_EMPTY_ROOT_MODULE_ERROR",iZ,new iqc("Root module ''{0}'' must contain at least one source code input"));g1=new _6("JSC_DUPLICATE_INPUT",iZ,new iqc("Duplicate input: {0}"));f1=new _6("JSC_DUPLICATE_EXTERN_INPUT", iZ,new iqc("Duplicate extern input: {0}"))}function AKb(a){HJb();switch(a.f){case 74:return tbc(),Q8b;case 75:return tbc(),R8b;case 73:return tbc(),O8b;case 59:return tbc(),t9b;case 60:return tbc(),qac;case 54:return tbc(),gac;case 56:return tbc(),dac;case 55:return tbc(),M9b;case 57:return tbc(),G9b;case 70:return tbc(),fac;case 71:return tbc(),Qac;case 72:return tbc(),mbc;case 63:return tbc(),s8b;case 64:return tbc(),$ac;case 65:return tbc(),lac;case 94:return tbc(),m9b;case 67:return tbc(),jac; case 66:return tbc(),v9b;case 61:return tbc(),Tac;case 62:return tbc(),Uac;case 16:return tbc(),U9b;case 17:return tbc(),X9b;case 53:return tbc(),b9b;case 82:return tbc(),z8b;case 92:return tbc(),C8b;case 93:return tbc(),D8b;case 91:return tbc(),B8b;case 88:return tbc(),G8b;case 89:return tbc(),J8b;case 90:return tbc(),L8b;case 83:return tbc(),A8b;case 84:return tbc(),K8b;case 85:return tbc(),I8b;case 86:return tbc(),F8b;case 95:return tbc(),E8b;case 87:return tbc(),H8b;case 79:return tbc(),Cac;case 78:return tbc(), t8b;default:throw BV(new Ync(!a?qFc:a.a==null?(HRb(),up(iRb,a)).b:a.a));}}function eTb(a){var b,c,d,e;d=fVb(a.j,0).b.b;aSb(a,(YXb(),DWb));aSb(a,cXb);if(FUb(a)){e=lUb(a,0);if(pUb(a,KWb)){e.b.size()>1&&IUb(a,"for-in statement may not have more than one variable declaration",pD(kD(kT,1),KFc,1,5,[]));b=e.b.getAtIndex(0);!!b.b&&(a.b.a?IUb(a,"for-in statement may not have initializer",pD(kD(kT,1),KFc,1,5,[])):bOb(a.c,b.o.b,"for-in statement should not have initializer",pD(kD(kT,1),KFc,1,5,[])));return cTb(a, d,e)}else if(oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,"of")){e.b.size()>1&&IUb(a,"for-of statement may not have more than one variable declaration",pD(kD(kT,1),KFc,1,5,[]));b=e.b.getAtIndex(0);!!b.b&&IUb(a,"for-of statement may not have initializer",pD(kD(kT,1),KFc,1,5,[]));return dTb(a,d,e)}else{$Rb(a,e);return fTb(a,d,e)}}if(pUb(a,vXb))return fTb(a,d,null);c=pSb(a,0);if(pUb(a,KWb)||pUb(a,vWb)||oUb(a,0,GWb)&&Xoc(fVb(a.j,0).a,"of")){c=JUb(a,c);dYb(c)||IUb(a,INc,pD(kD(kT,1),KFc,1,5,[]))}if(pUb(a,KWb)||oUb(a, 0,GWb)&&Xoc(fVb(a.j,0).a,"of"))if(c.p!=(H_b(),_Zb)&&c.p!=h$b)return pUb(a,KWb)?cTb(a,d,c):dTb(a,d,c);return fTb(a,d,c)}function hvb(){hvb=aW;dvb=new _6("JSC_UNDEFINED_VARIABLE",(lZ(),iZ),new iqc("variable {0} is undeclared"));gvb=new _6("JSC_VIOLATED_MODULE_DEPENDENCY",iZ,new iqc("module {0} cannot reference {2}, defined in module {1}, since {1} loads after {0}"));_ub=new _6("JSC_MISSING_MODULE_DEPENDENCY",kZ,new iqc("missing module dependency; module {0} should depend on module {1} because it references {2}")); bvb=new _6("JSC_STRICT_MODULE_DEPENDENCY",jZ,new iqc(kHc));avb=new _6("JSC_NAME_REFERENCE_IN_EXTERNS",kZ,new iqc("accessing name {0} in externs has no effect. Perhaps you forgot to add a var keyword?"));cvb=new _6("JSC_UNDEFINED_EXTERN_VAR_ERROR",kZ,new iqc("name {0} is not defined in the externs."));fvb=new _6("JSC_VAR_MULTIPLY_DECLARED_ERROR",iZ,new iqc("Variable {0} declared more than once. First occurence: {1}"));evb=new _6("JSC_VAR_ARGUMENTS_SHADOWED_ERROR",iZ,new iqc('Shadowing "arguments" is not allowed')); $ub=new _6("JSC_LET_CONST_CLASS_MULTIPLY_DECLARED_ERROR",iZ,new iqc("Duplicate let / const / class declaration in the same scope is not allowed."))}function Pcb(a,b,c){var d,e,f,g,h,i,j,k,l;g=c.e;e=false;i=(ndb(),ldb);switch(c.j.f){case 86:case 87:case 91:case 98:f=null;g.j==(tbc(),zac)?f=Rcb(a,c):g.j==_8b&&(f=(j=c.e,he(j.j==_8b),k=(qkb(),l=Pkb(j.e),!l?null:k6b(l)),k==null?null:k+"."+c.ri()));if(f==null)return;e=true;switch(c.j.f){case 98:case 91:i=Tcb(a,c.b);break;case 86:i=jdb;break;case 87:i=mdb; break;default:throw BV(new Ync("unexpected:"+c));}break;case 29:switch(g.j.f){case 76:case 100:case 88:e=true;h=c.b;i=!h?ldb:Tcb(a,h);break;case 47:if(g.b==c){e=true;i=Tcb(a,c.d)}break;case 26:return;case 65:d=g.e;if(!d||(qkb(),g.j==(tbc(),E9b)&&!Jlb(g.e)))return;e=true;i=idb;break;case 78:case 63:case 64:e=true;i=ldb;break;case 96:e=true;i=hdb;break;default:if(blb(g)&&g.b==c){e=true;i=ldb}}f=c.ri();break;case 26:if(g)switch(g.j.f){case 47:if(g.b==c){e=true;i=Tcb(a,c.d)}break;case 63:case 64:e=true; i=ldb;break;case 26:return;default:if(blb(g)&&g.b==c){e=true;i=ldb}}if(!t6b(c))return;f=k6b(c);break;default:return}if(!Ncb(a.a,f,b))return;b=Mqb(b);e?!b.c?Wcb(a,c,g,f,i):Xcb(a,c,g,f):Ucb(a,c,g,f)}function _lb(a){qkb();switch(a.f){case 46:return 0;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 59:case 57:case 58:case 47:return 1;case 102:return 2;case 60:return 3;case 61:return 4;case 62:return 5;case 1:return 6;case 2:return 7;case 3:return 8;case 4:case 5:case 36:case 37:return 9; case 6:case 8:case 7:case 9:case 41:case 40:return 10;case 10:case 11:case 12:return 11;case 14:case 13:return 12;case 15:case 17:case 16:return 13;case 18:return 14;case 103:case 23:case 24:case 25:case 79:case 19:case 20:case 21:case 22:return 15;case 63:case 64:return 16;case 28:case 27:case 26:case 42:case 93:case 118:case 95:case 80:case 34:case 65:case 96:case 148:case 29:case 32:case 30:case 43:case 94:case 38:case 112:case 113:case 31:case 91:case 156:case 157:case 158:case 33:case 99:case 35:case 115:case 116:case 125:return 17; case 123:return 18;case 134:case 124:return 19;case 120:case 122:case 121:case 126:case 132:case 127:case 130:case 133:case 135:return 20;case 92:return 21;default:throw BV(new Ync("Unknown precedence for "+a));}}function Akb(a,b){var c,d,e,f;switch(a.j.f){case 92:return Akb(a.b,b);case 47:return slb(a.b?a.b.f:null)||b.Kd(a)&&Akb(a.b?a.b.f:null,b);case 46:return Akb(a.b?a.b.f:null,b);case 62:case 61:return Akb(a.b,b)&&Akb(a.b?a.b.f:null,b);case 60:return Akb(a.b.d,b)&&Akb(a.b?a.b.f:null,b);case 63:case 64:return true; case 33:return b.Kd(a);case 29:return slb(a)||b.Kd(a);case 27:case 26:return b.Kd(a);case 28:return ie(a.j==(tbc(),V8b),a),(h6b(a,42)&16)>0||Klb(a)||b.Kd(a);case 23:return ie(a.j==(tbc(),sac),a),(h6b(a,42)&15&13)==13||b.Kd(a);case 65:case 38:case 80:return true;case 42:for(d=(!a.b?(Wuc(),Wuc(),Vuc):new Y7b(a.b)).Od();d.Hd();){c=d.Id();if(!Akb(c,b))return false}return true;case 43:for(f=(!a.b?(Wuc(),Wuc(),Vuc):new Y7b(a.b)).Od();f.Hd();){e=f.Id();me(e.j==(tbc(),L9b)||e.j==Sac||e.j==Yac||e.j==c9b,"Unexpected obj literal key:", e);if(e.j==L9b||e.j==Sac)continue;if(e.j==c9b&&!Akb(e.b.d,b))return false;if(e.j==Yac&&!Akb(e.b,b))return false}return true;case 24:case 40:return true;default:if(blb(a)||Hlb(a.j)||slb(a))return true;throw BV(new Ync("Unexpected expression node"+a+"\n parent:"+a.e));}}function tbb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;Ud(b.j==(tbc(),V8b)||b.j==w8b||b.j==sac);k=new utc;h=null;e=b.j==w8b?null:E6b(b);g=E6b(b);while(g){if(g.j==Vac){if(h){k.a[k.a.length]=h;h=null}jtc(k,Bbb(a.a,E6b(g)))}else{!h&&(h=q1b(pD(kD(TR, 1),rHc,7,0,[])));U5b(h,g)}g=E6b(b)}!!h&&(k.a[k.a.length]=h,true);n=null;i=b.j==sac?q1b(pD(kD(TR,1),rHc,7,0,[new e7b(vac)])):q1b(pD(kD(TR,1),rHc,7,0,[]));l=v1b(H1b(i,new e8b(Xac,"concat")),ttc(k,mD(TR,rHc,7,0,0,1)));if(b.j==w8b)n=l;else if(b.j==V8b){qkb();if(vkb(e,false,null)&&e.j==K9b){o=b;while(!Jlb(o.e))o=o.e;j=T1b("$jscomp$spread$args"+(""+(new l3(a.a)).a.Z++));m=B1b(_5b(j,false),nbc);d7b(m,o);T5b(o.e,m,o);V5b(e,r1b(_5b(j,false),E6b(e)));n=v1b(H1b(e,new e8b(Xac,kJc)),pD(kD(TR,1),rHc,7,0,[j,l]))}else{f= e.j==K9b?_5b(e.b,false):new e7b(vac);n=v1b(H1b(e,new e8b(Xac,kJc)),pD(kD(TR,1),rHc,7,0,[f,l]))}}else{Z3(a.a.L)==(V4(),M4)&&o2(a.a,Kgb(b,pbb,pD(kD(pT,1),tFc,2,6,['"..." passed to a constructor (consider using --language_out=ES5)'])));d=Xlb(a.a,"Function.prototype.bind.apply");n=U1b(v1b(d,pD(kD(TR,1),rHc,7,0,[e,l])),pD(kD(TR,1),rHc,7,0,[]))}d7b(n,b);G6b(c,b,n);q2(a.a,n)}function iLb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;g=b.j==(sZb(),pZb);i=b.j==rZb;e=b.j==oZb;f=b.e;h=b.f;j=b.c.p==(H_b(),w$b); h&&PKb(a,b,(BQb(),bQb));i&&PKb(a,b,(BQb(),jQb));e&&PKb(a,b,(BQb(),OPb));f&&PKb(a,b,(BQb(),PPb));l=b.k;if(l)m=(s=LJb(a.a,l.b),RKb(a,l),t=YJb(a.a,(tbc(),mac),l.a),!!s&&(u=F6b(t,t.g,29),u!=t.g&&(t.g=u),!!s&&(t.g=new T7b(29,s,t.g)),t),hKb(t,l.b.b,l.b.a),t);else{if(g||i){a.a.d.oh("unnamed function statement",a.a.r,(HJb(),b.o.b.b+1),b.o.b.a);m=YJb(a.a,(tbc(),mac),"__missing_name__")}else m=YJb(a.a,(tbc(),mac),"");n7b(m.i)==-1&&hKb(m,b.o.b,b.o.a)}n=TJb(a.a,(tbc(),E9b));i&&m.wi("");U5b(n,m);LKb(a,n.b,b.d); U5b(n,jKb(a.a,b.b));MKb(a,n,b.n);d=jKb(a.a,b.c);if(!e&&!j&&d.j!=S8b){he(a.a.a.b==1);d=(c=new e7b(S8b),c)}TKb(d);U5b(n,d);p=F6b(n,n.g,59);p!=n.g&&(n.g=p);(h?1:0)!=0&&(n.g=new J7b(59,h?1:0,n.g));q=F6b(n,n.g,60);q!=n.g&&(n.g=q);(e?1:0)!=0&&(n.g=new J7b(60,e?1:0,n.g));r=F6b(n,n.g,61);r!=n.g&&(n.g=r);(f?1:0)!=0&&(n.g=new J7b(61,f?1:0,n.g));A6b(n,80,b.g);if(b.j==rZb){n7b(n.i)==-1&&hKb(n,b.o.b,b.o.a);k=YJb(a.a,hac,l.a);U5b(k,n);T6b(k,b.i);KKb(k,b.a);K6b(n,j6b(n,78));o=k}else o=n;return o}function t5(a){if(a.v!= (lZ(),jZ)&&!a.u)throw BV(new u5("Cannot check use of goog.getCssName because of empty blacklist.",pD(kD(kT,1),KFc,1,5,[])));if(a.Mc&&!a.Lc)throw BV(new u5("remove_unused_prototype_props_in_externs requires remove_unused_prototype_props to be turned on.",pD(kD(kT,1),KFc,1,5,[])));if(!a.Cb&&a._b!=-1)throw BV(new u5("max_function_size_after_inlining has no effect if inlining is disabled.",pD(kD(kT,1),KFc,1,5,[])));if(a.ud){a.t=jZ;if(a.r!=(q4(),o4))throw BV(new u5("check_eventful_object_disposal is not supported with the new type inference.", pD(kD(kT,1),KFc,1,5,[])));}if(a.V){if(!APb(X4(Z3(a)),(zPb(),rPb)))throw BV(new u5("Dart requires --language_out=ES5 or higher.",pD(kD(kT,1),KFc,1,5,[])));a.f=false;a.cb=false}if(a.Mc&&a.ib)throw BV(new u5("remove_unused_prototype_props_in_externs and export_local_property_definitions cannot be used together.",pD(kD(kT,1),KFc,1,5,[])));if((V4(),P4)==a.Ub){npb();if(opb(mpb,"/javascript/tools/jscompiler/allow-type-syntax.txt")==null)throw BV(new u5("type syntax is not yet generally available, please contact jscomp-team@", pD(kD(kT,1),KFc,1,5,[])));}}function mVb(a,b){switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 98:case 66:aVb(a);RVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)>=0||hVb(a,"Binary Integer Literal must contain at least one digit",pD(kD(kT,1),KFc,1,5,[]));qVb(a);return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d));case 111:case 79:aVb(a);SVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0)>=0||hVb(a,"Octal Integer Literal must contain at least one digit",pD(kD(kT,1),KFc,1,5,[]));xVb(a);((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==56||(_Ub(a,a.d)? Soc(a.e.a,a.d):0)==57)&&hVb(a,GMc,pD(kD(kT,1),KFc,1,5,[]));return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d));case 120:case 88:aVb(a);dnc(_Ub(a,a.d)?Soc(a.e.a,a.d):0,16)>=0||hVb(a,"Hex Integer Literal must contain at least one digit",pD(kD(kT,1),KFc,1,5,[]));vVb(a);return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d));case 101:case 69:return jVb(a,b);case 46:return kVb(a,b);case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:tVb(a);if((_Ub(a,a.d)?Soc(a.e.a, a.d):0)==46){aVb(a);tVb(a)}return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d));default:return new XRb((YXb(),_Wb),mpc(a.e.a,b,a.d),SRb(a.e.b,b,a.d))}}function ubb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;u=E6b(b);n=E6b(b);d=E6b(b);t=j6b(u,29);l=T1b("$jscomp$iter$"+(""+(new l3(a.a)).a.Z++));r=F6b(l,l.g,85);r!=l.g&&(l.g=r);l.g=new J7b(85,1,l.g);h=v1b(H1b(_5b(l,false),new e8b((tbc(),Xac),ZJc)),pD(kD(TR,1),rHc,7,0,[]));if(u.j==mac){f=mac;v=k6b(u)}else{me((qkb(),!!u&&(u.j==nbc||u.j== eac||u.j==d9b)),"Expected var, let, or const. Got %s",u);f=u.j;v=k6b(u.b)}m=(me($oc(qKc+v,spc(46))==-1,qHc,qKc+v),new e8b(mac,qKc+v));s=F6b(m,m.g,85);s!=m.g&&(m.g=s);m.g=new J7b(85,1,m.g);j=A1b(_5b(l,false),Cbb(a.a,n),nbc);k=_5b(m,false);V5b(k,_5b(h,false));U5b(j,k);e=V1b(H1b(_5b(m,false),new e8b(Xac,dKc)));i=r1b(_5b(m,false),_5b(h,false));if(f==mac){g=r1b(a7b((me($oc(v,spc(46))==-1,qHc,v),new e8b(mac,v)),u),H1b(_5b(m,false),new e8b(Xac,$Jc)));q=F6b(g,g.g,29);q!=g.g&&(g.g=q);!!t&&(g.g=new T7b(29, t,g.g));g=(ie(P1b(g),g),new g7b(z9b,g))}else{g=new g7b(f,a7b((me($oc(v,spc(46))==-1,qHc,v),new e8b(mac,v)),u.b));U5b(g.b,H1b(_5b(m,false),new e8b(Xac,$Jc)));q=F6b(g,g.g,29);q!=g.g&&(g.g=q);!!t&&(g.g=new T7b(29,t,g.g))}o=a7b(u1b(pD(kD(TR,1),rHc,7,0,[g,d])),d);p=E1b(j,e,i,o);d7b(p,b);G6b(c,b,p);q2(a.a,p)}function vkb(a,b,c){qkb();var d,e,f,g,h,i;switch(a.j.f){case 39:case 102:return true;case 43:if(b)return true;for(h=a.b;h;h=h.d)for(f=h.b;f;f=f.d)if(vkb(f,b,c))return true;return false;case 42:case 38:if(b)return true; break;case 76:case 29:if(a.b)return true;break;case 65:return b||!(a.j==(tbc(),E9b)&&!Jlb(a.e));case 96:return b||a.j==(tbc(),$8b)&&jlb(a.e)||vkb(a.b.d,b,c)||vkb(a.b?a.b.f:null,b,c);case 97:for(i=a.b;i;i=i.d)if(i.j==(tbc(),c9b)&&vkb(i.b,b,c))return true;return false;case 23:if(b)return true;if(!wkb(a))break;return true;case 28:if(!Bkb(a,c))break;return true;case 115:return Bkb(a,c);case 92:case 62:case 82:case 81:case 84:case 60:case 66:case 40:case 45:case 30:case 61:case 33:case 35:case 34:case 32:case 31:case 91:case 67:case 117:case 44:case 80:case 116:break; default:if(Hlb(a.j))break;if(blb(a)){d=a.b;if(d.j==(tbc(),mac))return true;if(vkb(a.b,b,c)||vkb(a.b?a.b.f:null,b,c))return true;if(d.j==K9b||d.j==J9b){g=d.b;if(Akb(g,(Ie(),Ee)))return false;while(g.j==K9b||g.j==J9b)g=g.b;return!wlb(g,true)}else return!wlb(d,true)}return true}for(e=a.b;e;e=e.d)if(vkb(e,b,c))return true;return false}function xab(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;sab(c.b);F$(b,c);Vd(a.i==1,"Es6RewriteModules supports only one invocation per CompilerInput / script node");dkb(a.c, c,new Cab(a));o=Iwb(z3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d)).a);for(g=new OAc(new FAc(a.d));g.b!=g.c.a.b;){f=MAc(g);h=f.d;s=f.e.a;p=f.e.b;k=H1b((me($oc(o,spc(46))==-1,qHc,o),new e8b((tbc(),mac),o)),new e8b(Xac,h));if(kzc(a.j,h)){e=new K5b(true);r=new O5b(new e8b(Xac,h),(j=j6b(c,51),!j?null:j.Og()));D5b(e,r);m=u4b(e);q=F6b(k,k.g,29);q!=k.g&&(k.g=q);!!m&&(k.g=new T7b(29,m,k.g));i=d7b((ie(P1b(k),k),new g7b(z9b,k)),p);U5b(c,i)}else{d=r1b(k,Xlb(a.c,s));i=d7b((ie(P1b(d),d),new g7b(z9b,d)),p);if(kzc(a.b, h)){e=new K5b(true);F4b(e);m=u4b(e);q=F6b(d,d.g,29);q!=d.g&&(d.g=q);!!m&&(d.g=new T7b(29,m,d.g))}U5b(c,i)}}dkb(a.c,c,new Lab(a,o));if(vqc(a.d.c)!=0||a.e){l=C1b(v1b(Xlb(a.c,wHc),pD(kD(TR,1),rHc,7,0,[new e8b((tbc(),Xac),o)])));V5b(c,d7b(l,c));u3((!b.d&&!!b.g&&(b.d=B1(b.c,b.g)),b.d),o)}n=!j6b(c,29)?new K5b(false):L5b(j6b(c,29));n.e&&((n.a.a&4096)!=0||(n.a.a&sIc)!=0||(n.a.a&tIc)!=0)||S4b(n,"");w5b(n,(En(),Pp(pD(kD(kT,1),KFc,1,5,[eJc,fJc]))));M6b(c,u4b(n));iAc(a.d);Vjb(b)}function vbc(a){tbc();switch(a.f){case 137:case 42:case 143:case 82:case 81:case 74:case 28:case 147:case 88:case 75:case 89:case 142:case 140:case 144:case 72:case 66:case 145:case 146:case 23:case 43:case 45:case 138:case 141:case 38:case 0:case 85:case 139:case 91:case 67:case 116:case 44:case 76:case 102:return-1; case 80:case 34:case 107:case 90:case 156:case 29:case 32:case 30:case 31:case 33:case 35:return 0;case 20:case 158:case 92:case 64:case 69:case 24:case 84:case 86:case 63:case 157:case 98:case 130:case 22:case 19:case 21:case 112:case 87:case 113:case 117:case 39:case 25:case 154:case 79:return 1;case 13:case 62:case 47:case 54:case 50:case 48:case 49:case 57:case 51:case 58:case 56:case 59:case 52:case 55:case 53:case 3:case 1:case 2:case 68:case 78:case 46:case 114:case 118:case 16:case 71:case 151:case 4:case 18:case 9:case 27:case 26:case 8:case 40:case 41:case 83:case 7:case 10:case 6:case 17:case 15:case 159:case 5:case 61:case 11:case 36:case 37:case 14:case 115:case 12:case 70:case 77:return 2; case 96:case 101:case 65:case 60:case 104:case 148:return 3;default:throw BV(new Ync("No arity defined for "+a));}}function Bkb(a,b){var c,d,e,f;ie(a.j==(tbc(),V8b)||a.j==bbc,a);if((h6b(a,42)&15)==15)return false;if((h6b(a,42)&15&11)==11&&rkb(a))return false;c=a.b;if(c.j==mac){e=c.ri();if(fkb.contains(e))return false}else if(c.j==K9b){if(!!a.b&&!a.b.d&&lkb.contains((c.b?c.b.f:null).ri()))return false;if((h6b(a,42)&15&13)==13&&Akb(c.b,(Ie(),Ee)))return false;if(c.b.j==mac&&t6b(c)&&Xoc(c.b.ri(),"Math"))switch((c.b? c.b.f:null).ri()){case "abs":case "acos":case "acosh":case "asin":case "asinh":case "atan":case "atanh":case "atan2":case "cbrt":case "ceil":case "cos":case "cosh":case "exp":case "expm1":case "floor":case "hypot":case "log":case "log10":case "log1p":case "log2":case "max":case "min":case "pow":case "round":case "sign":case "sin":case "sinh":case "sqrt":case "tan":case "tanh":case "trunc":return false;case "random":return!(!!a.b&&!a.b.d)}if(!!b&&!b.Lf())if(c.b.j==Lac&&mkb.contains((c.b?c.b.f:null).ri()))return false; else if(Llb(c.b,b)){d=(c.b?c.b.f:null).ri();f=c.d;if(f)if(f.j==Xac){if(nkb.contains(d))return false}else if(f.j==Lac)if(Xoc("replace",d))return f.d.j!=Xac;else if(nkb.contains(d))return false}}return true}function Nob(){Nob=aW;var a,b,c,d;new Ic(new Ic(new dc(97,122),new dc(65,90)),new Vb);Mob=new _6("JSC_UNKNOWN_TWEAK_WARNING",(lZ(),kZ),new iqc("no tweak registered with ID {0}"));new _6("JSC_TWEAK_MULTIPLY_REGISTERED_ERROR",iZ,new iqc("Tweak {0} has already been registered."));new _6("JSC_NON_LITERAL_TWEAK_ID_ERROR", iZ,new iqc("tweak ID must be a string literal"));Job=new _6("JSC_INVALID_TWEAK_DEFAULT_VALUE_WARNING",kZ,new iqc("tweak {0} registered with {1} must have a default value that is a literal of type {2}"));new _6("JSC_NON_GLOBAL_TWEAK_INIT_ERROR",iZ,new iqc("tweak declaration {0} must occur in the global scope"));new _6("JSC_TWEAK_OVERRIDE_AFTER_REGISTERED_ERROR",iZ,new iqc("Cannot override the default value of tweak {0} after it has been registered"));Lob=new _6("JSC_TWEAK_WRONG_GETTER_TYPE_WARNING", kZ,new iqc("tweak getter function {0} used for tweak registered using {1}"));new _6("JSC_INVALID_TWEAK_ID_ERROR",iZ,new iqc("tweak ID contains illegal characters. Only letters, numbers, _ and . are allowed"));Kob=new ezc;for(b=(Wob(),pD(kD(yM,1),PFc,106,0,[Tob,Uob,Vob,Sob,Pob,Oob,Qob,Rob])),c=0,d=b.length;c0)return null;U5b(a.r,k)}if($3(a.L,(zPb(),tPb))){a.H=new fwb(a,a.L.bc,a.A,(uwb(),twb),a.L.ac,null);a.L.ac==(Bwb(),Awb)&&(a.H=new fwb(a,a.L.bc,a.A,twb,a.L.ac,i2(a,a.A)));BPb(X4(a.L.Ub),(BQb(),lQb))&&b2(a,a.A);h=new ezc;for(f=a.A.Od();f.Hd();){c=f.Id();if(I3(c.c?c.c.c:(_n(), _n(),$n),c.d).isEmpty()){j=dwb(a.H,c.a.Rg().b);rqc(h,Iwb(j.a),c)}}i=new ezc;for(g=a.A.Od();g.Hd();){c=g.Id();for(m=I3(c.c?c.c.d:(_n(),_n(),$n),c.e).Od();m.Hd();){l=m.Id();(l==null?!!Ezc(h.d,null):Vzc(h.e,l))&&!(l==null?!!Ezc(i.d,null):Vzc(i.e,l))&&rqc(i,l,l==null?Li(Ezc(h.d,null)):Wzc(h.e,l))}}i.d.c+i.e.c==0||u1(a,new xrc(i));$3(a.L,tPb)&&h2(a,b2(a,a.A))}else a.H=(cwb(),$vb);$1(a);if(a.k.a.c>0)return null;for(d=a.A.Od();d.Hd();){c=d.Id();k=x3(c,a);if(!k)continue;if(b){Dqb(new Hqb(a),a.r,a.C);if(a.k.a.c> 0)return null}if(a.L.kb){o=new qrb(c.f.a,a.L._!=h4);p=new ckb(a,o,new $ab(a));Yjb(p,k)}U5b(a.C,k)}if(a.k.a.c>0)return null;return a.n}finally{o1(a);n=OV(HV(Date.now()),q.a);a.L.pd!=h5&&!!a.X&&Fnb(a.X,vIc,n)}}function h1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;c=false;e=false;f=true;g=false;i=false;j=false;l=false;h=true;k=true;d=true;switch(a.b){case 99:case 67:case 116:case 84:h=false;break;case 103:case 71:c=e=g=j=l=true;break;case 102:c=e=g=i=j=true;l=true;break;case 101:case 69:c=g=i=j=l=true;break;case 97:case 65:c= i=j=l=true;break;case 100:c=e=g=j=l=true;h=false;break;case 111:case 120:case 88:i=l=true;b==null&&(c=g=j=true);h=false;break;case 110:f=false;d=h=k=false;break;case 37:d=false;h=false;break;case 115:case 83:case 98:case 66:case 104:case 72:break;default:throw BV(new sC("unknownFormatConversionException"));}m=null;!c&&a.d?m="+":!e&&a.e?m=",":!f&&a.f?m="-":!g&&a.g?m="(":!i&&a.i?m="#":!j&&a.j?m=" ":!l&&a.k&&(m="0");if(m!=null)if(a.b==110)throw BV(new sC("IllegalFormatFlagsException:"+m));else throw BV(new sC("FormatFlagsConversionMismatchException:"+ m+","+aE(a.b)));if((a.f||a.k)&&a.p==-1)throw BV(new F0b("-"+aE(a.b)));if(!d&&a.a!=-1)throw BV(new B0b(a.o?a.o.a:""));if(!h&&a.n!=-1)throw BV(new C0b(a.n));if(!k&&a.p!=-1)throw BV(new D0b(a.p));if(a.d&&a.j)throw BV(new B0b("the '+' and ' ' flags are incompatible"));if(a.f&&a.k)throw BV(new B0b("the '-' and '0' flags are incompatible"));}function $Jb(a,b){var c,d,e,f,g,h,i,j;j=b.a;g=b.b;f=j.length;he(f>0);he(j.charCodeAt(0)!=45&&j.charCodeAt(0)!=43);if(j.charCodeAt(0)==46)return YEc(Qnc("0"+j));else if(j.charCodeAt(0)== 48&&f>1)switch(j.charCodeAt(1)){case 46:case 101:case 69:return YEc(Qnc(j));case 98:case 66:{a.e=FPb(a.e,pD(kD($O,1),PFc,26,0,[(BQb(),QPb)]));RJb(a,QPb)||a.d.ph("Binary integer literals are not supported in this language mode.",a.r,b.b.b.b+1,b.b.b.a);i=0;d=1;while(++d=48&&e<=55)h=h*8+yKb(e);else{a.d.oh(GMc,a.r,g.b.b+1,g.b.a);return 0}}a.d.ph(FMc,a.r,g.b.b+1,g.b.a);return h;case 56:case 57:a.d.oh(GMc,a.r,g.b.b+1,g.b.a);return 0;default:throw BV(new Ync("Unexpected character in number literal: "+aE(j.charCodeAt(1)))); }else return YEc(Qnc(j))}function JNb(a){var b,c,d,e;a.p=0;for(;;){for(;;){a.a=-1;b=GNb(a);if(b==-1)return CNb(),nNb;else if(b==10)return CNb(),oNb;else{Abc();if(!(b<=127?b==32||b==9||b==12||b==11:b==160))break}}switch(b){case 64:do{b=GNb(a);if(b<=90?65<=b:97<=b&&b<=122)FNb(a,b);else{a.q[a.r++]=b;--a.b;a.n=(e=xpc(a.o,0,a.p),SEc(e),e);a.p=0;return CNb(),hNb}}while(true);case 42:return LNb(a)?(CNb(),mNb):(CNb(),ANb);case 44:return CNb(),kNb;case 62:return CNb(),wNb;case 40:return CNb(),sNb;case 41:return CNb(), yNb;case 123:return CNb(),rNb;case 125:return CNb(),xNb;case 91:return CNb(),tNb;case 93:return CNb(),zNb;case 63:return CNb(),vNb;case 33:return CNb(),iNb;case 58:return CNb(),jNb;case 61:return CNb(),pNb;case 124:return CNb(),uNb;case 60:return CNb(),qNb;case 46:b=GNb(a);if(b==60)return CNb(),qNb;else{if(b==46){b=GNb(a);if(b==46)return CNb(),lNb;else FNb(a,46)}a.q[a.r++]=b;b=46}default:{c=b;FNb(a,b);d=GNb(a);if(QNb(d)){do{c=d;d=GNb(a);if(c==46&&d==60){a.q[a.r++]=d;--a.b;a.q[a.r++]=c;--a.b;a.n=(e= xpc(a.o,0,a.p),SEc(e),e);a.p=0;return CNb(),BNb}else if(QNb(d))FNb(a,c);else{a.q[a.r++]=d;--a.b;FNb(a,c);a.n=(e=xpc(a.o,0,a.p),SEc(e),e);a.p=0;return CNb(),BNb}}while(true)}else{a.q[a.r++]=d;--a.b;a.n=(e=xpc(a.o,0,a.p),SEc(e),e);a.p=0;return CNb(),BNb}}}}}function znb(a){var b,c,d,e,f,g;xnb(a);e=new utc;ltc(e,To(a.I));Wuc();stc(e,new Hnb);Sc(new Vc(BGc),"\nTOTAL:","Start time(ms): "+SV(a.H),pD(kD(kT,1),KFc,1,5,["End time(ms): "+SV(a.i),"Wall time(ms): "+SV(OV(a.i,a.H)),"Passes runtime(ms): "+a.F, "Max mem usage (measured after each pass)(MB): "+a.C,"#Runs: "+a.G,"#Changing runs: "+a.c,"#Loopable runs: "+a.B,"#Changing loopable runs: "+a.A,"Estimated AST reduction(#nodes): "+a.a,"Estimated Reduction(bytes): "+a.g,"Estimated GzReduction(bytes): "+a.p,"Estimated AST size(#nodes): "+a.b,"Estimated Size(bytes): "+a.e,"Estimated GzSize(bytes): "+a.o]));Sc(new Vc(BGc),"\n\nInputs:","JS lines: "+a.t,pD(kD(kT,1),KFc,1,5,["JS sources: "+a.v,"Extern lines: "+a.j,"Extern sources: "+a.k+"\n\n"])); for(c=new Rtc(e);c.a1)&&YX(aHc+m,b);!!b.b&&eX(a,b.b);return;case 103:fX(a,(BQb(),PPb),b);zX((tbc(),M8b),b);n=(qkb(),Hkb(b,new mmb(E9b)));(!n||h6b(n,61)==0)&&YX("'await' expression is not within an async function", b);return;default:YX("Expected expression but was "+b.j,b)}}function _Jb(a,b,c){var d,e,f,g,h,i,j,k,l;l=b.a;c&&(l=gpc(l,"\r\n?",BGc));k=c?0:1;e=$oc(l,spc(92));if(e==-1)return c?l:mpc(l,1,l.length-1);j=new Kpc;while(e!=-1){e-k>0&&(j.a+=""+mpc(l==null?qFc:(SEc(l),l),k,e),j);e+=1;d=l.charCodeAt(e);switch(d){case 39:case 34:case 92:j.a+=String.fromCharCode(d);break;case 98:j.a+="\b";break;case 102:j.a+="\f";break;case 110:j.a+=BGc;break;case 114:j.a+="\r";break;case 116:j.a+="\t";break;case 118:j.a+= "\x0B";break;case 10:a.e=FPb(a.e,pD(kD($O,1),PFc,26,0,[(BQb(),vQb)]));APb(a.a.c.a,(zPb(),rPb))?a.d.ph("String continuations are not recommended. See https://google.github.io/styleguide/javascriptguide.xml?showone=Multiline_string_literals#Multiline_string_literals",a.r,b.b.b.b+1,b.b.b.a):a.d.oh("String continuations are not supported in this language mode.",a.r,b.b.b.b+1,b.b.b.a);break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:h=l.charCodeAt(e+1);if(a.a.e==0)if(d==48&&!(h>=48&& h<=55));else a.d.ph("Octal literals in strings are not supported in this language mode.",a.r,b.b.b.b+1,b.b.b.a);if(h>=48&&h<=55){i=l.charCodeAt(e+2);if(i>=48&&i<=55){zpc(j,64*yKb(d)+8*yKb(h)+yKb(i)&yFc);e+=2}else{zpc(j,8*yKb(d)+yKb(h)&yFc);e+=1}}else zpc(j,yKb(d)&yFc);break;case 120:zpc(j,vKb(l.charCodeAt(e+1))*16+vKb(l.charCodeAt(e+2))&yFc);e+=2;break;case 117:if(l.charCodeAt(e+1)!=123){f=e+5;g=l.substr(e+1,f-(e+1))}else{f=e+2;while(dnc(l.charCodeAt(f),16)>=0)++f;g=l.substr(e+2,f-(e+2));++f}Hpc(j, knc(Rnc(g)));e=f-1;break;default:j.a+=String.fromCharCode(d)}k=e+1;e=_oc(l,spc(92),k)}Epc(j,l,k,c?l.length:l.length-1);return j.a}function Sxb(){Sxb=aW;Jxb=new _6("JSC_INVALID_SUPPRESS",(lZ(),jZ),new iqc("@suppress annotation not allowed here. See https://github.com/google/closure-compiler/wiki/@suppress-annotations"));Gxb=new _6("JSC_CONSTRUCTOR_DISALLOWED_JSDOC",jZ,new iqc("Visibility annotations on constructors are not supported.\nPlease mark the visibility on the class instead."));Fxb=new _6("JSC_CLASS_DISALLOWED_JSDOC", jZ,new iqc("@constructor annotations are redundant on classes."));Kxb=new _6("JSC_MISSING_JSDOC",jZ,new iqc("Function must have JSDoc."));Lxb=new _6("JSC_MISSING_PARAMETER_JSDOC",jZ,new iqc("Parameter must have JSDoc."));Nxb=new _6("JSC_MIXED_PARAM_JSDOC_STYLES",jZ,new iqc("Functions may not use both @param annotations and inline JSDoc"));Mxb=new _6("JSC_MISSING_RETURN_JSDOC",jZ,new iqc("Function with non-trivial return must have @return JSDoc or inline return JSDoc."));Oxb=new _6("JSC_MUST_BE_PRIVATE", jZ,new iqc("Property {0} must be marked @private"));Pxb=new _6("JSC_MUST_HAVE_TRAILING_UNDERSCORE",jZ,new iqc("Private property {0} should end with ''_''"));Qxb=new _6("JSC_OPTIONAL_PARAM_NOT_MARKED_OPTIONAL",jZ,new iqc("Parameter {0} is optional so its type must end with ="));Rxb=new _6("JSC_WRONG_NUMBER_OF_PARAMS",jZ,new iqc("Wrong number of @param annotations"));Ixb=new _6("JSC_INCORRECT_PARAM_NAME",jZ,new iqc("Incorrect param name. Are your @param annotations in the wrong order?"));Hxb=new _6("JSC_EXTERNS_FILES_SHOULD_BE_ANNOTATED", jZ,new iqc("Externs files should be annotated with @externs in the @fileoverview block."));Exb=new p6(pD(kD(eK,1),KFc,5,0,[Jxb,Fxb,Gxb,Kxb,Lxb,Nxb,Mxb,Oxb,Pxb,Qxb,Rxb,Ixb,Hxb]))}function HRb(){HRb=aW;var a,b,c,d,e,f;KQb=new IRb("BREAK",0,"break",(YXb(),_Vb));LQb=new IRb("CASE",1,"case",cWb);MQb=new IRb(wNc,2,"catch",dWb);PQb=new IRb(xNc,3,XHc,mWb);QQb=new IRb(yNc,4,ZHc,nWb);SQb=new IRb(GLc,5,LHc,pWb);TQb=new IRb("DELETE",6,zNc,qWb);UQb=new IRb("DO",7,"do",rWb);VQb=new IRb("ELSE",8,"else",sWb);$Qb= new IRb(ANc,9,FHc,CWb);_Qb=new IRb("FOR",10,"for",DWb);aRb=new IRb(CKc,11,mFc,EWb);bRb=new IRb("IF",12,"if",HWb);eRb=new IRb("IN",13,"in",KWb);fRb=new IRb(mNc,14,jLc,LWb);mRb=new IRb("NEW",15,"new",WWb);sRb=new IRb(xMc,16,GHc,sXb);vRb=new IRb(BNc,17,"switch",GXb);wRb=new IRb(yMc,18,SHc,KXb);xRb=new IRb("THROW",19,"throw",LXb);zRb=new IRb("TRY",20,"try",OXb);BRb=new IRb(CNc,21,iLc,QXb);CRb=new IRb("VAR",22,"var",TXb);DRb=new IRb("VOID",23,$Hc,UXb);ERb=new IRb("WHILE",24,RHc,VXb);FRb=new IRb("WITH", 25,"with",WXb);NQb=new IRb(BKc,26,OHc,eWb);OQb=new IRb("CONST",27,cJc,lWb);WQb=new IRb(oMc,28,aIc,uWb);XQb=new IRb(qMc,29,KHc,zWb);YQb=new IRb(pMc,30,PHc,AWb);dRb=new IRb(DNc,31,NHc,JWb);uRb=new IRb(oNc,32,THc,FXb);cRb=new IRb(rMc,33,QHc,IWb);gRb=new IRb(sMc,34,_Hc,MWb);jRb=new IRb("LET",35,"let",QWb);oRb=new IRb(tMc,36,AMc,fXb);pRb=new IRb(uMc,37,BMc,nXb);qRb=new IRb(vMc,38,CMc,oXb);rRb=new IRb(wMc,39,DMc,pXb);tRb=new IRb("STATIC",40,EMc,DXb);GRb=new IRb("YIELD",41,"yield",XXb);nRb=new IRb(WLc,42, qFc,$Wb);yRb=new IRb(MIc,43,WHc,NXb);ZQb=new IRb(LIc,44,VHc,BWb);RQb=new IRb(ENc,45,dIc,oWb);ARb=new IRb(zMc,46,cIc,PXb);kRb=new IRb("MODULE",47,EHc,UWb);lRb=new IRb(FNc,48,bIc,VWb);a=(So(),new nr);b=new myc(lP);for(d=PRb(),e=0,f=d.length;e} */ ({", " next: function(arg) { return $jscomp$generator$impl(arg, undefined); },"," throw: function(arg) { return $jscomp$generator$impl(undefined, arg); },"," return: function(arg) { throw Error('Not yet implemented'); },"," });"," $jscomp.initSymbolIterator();"," /** @this {!Generator} */"," iterator[Symbol.iterator] = function() { return this; };"," return iterator;","}"]))).b));++I9;a.j=b.b?b.b.f:null;G6b(b,a.j,i);Slb(i,a.a);o=F6b(b,b.g,59);o!=b.g&&(b.g=o);g=M5b(j6b(b,29));w5b(g,(En(), new Ey(bJc)));j=u4b(g);n=F6b(b,b.g,29);n!=b.g&&(b.g=n);!!j&&(b.g=new T7b(29,j,b.g));U5b(a.j,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b((tbc(),mac),cKc)),new O7b(-1))));a.e=i6b(L9(a,i,X8b));a.i=i.b;qkb();zlb(a.j,fKc,(Ie(),Fe))&&S5b(a.i.e,A1b((me($oc(fKc,spc(46))==-1,qHc,fKc),new e8b(mac,fKc)),(me($oc(lJc,spc(46))==-1,qHc,lJc),new e8b(mac,lJc)),nbc),a.i);zlb(a.j,gKc,Fe)&&S5b(a.i.e,A1b((me($oc(gKc,spc(46))==-1,qHc,gKc),new e8b(mac,gKc)),new e7b(ebc),nbc),a.i);while(a.j.b){a.d=E6b(a.j);d=N9(a); if(d){if(h6b(a.d,66)!=0)h=jE(a.d.b.qi());else{h=I9;++I9}m=a.e.e;k=w1b(new O7b(h),(f=new e7b(S8b),f));a.e=k.b?k.b.f:null;if(m.j==hbc){m=!m.e?null:m.e.e;if(a.b.a.length!=0){l=h2b((e=new e7b(S8b),e),_5b(mtc(a.b,0).a,false));U5b(k.b?k.b.f:null,l);a.e=i6b(k.b?k.b.f:null).b}}S5b(m.e,k,m)}}d7b(c,c);q2(a.a,i)}function NY(){NY=aW;GY=new _6("JSC_DEPRECATED_VAR",(lZ(),jZ),new iqc("Variable {0} has been deprecated."));HY=new _6("JSC_DEPRECATED_VAR_REASON",jZ,new iqc("Variable {0} has been deprecated: {1}")); IY=new _6("JSC_DEPRECATED_PROP",jZ,new iqc("Property {0} of type {1} has been deprecated."));JY=new _6("JSC_DEPRECATED_PROP_REASON",jZ,new iqc("Property {0} of type {1} has been deprecated: {2}"));EY=new _6("JSC_DEPRECATED_CLASS",jZ,new iqc("Class {0} has been deprecated."));FY=new _6("JSC_DEPRECATED_CLASS_REASON",jZ,new iqc("Class {0} has been deprecated: {1}"));xY=new _6("JSC_BAD_PACKAGE_PROPERTY_ACCESS",iZ,new iqc("Access to package-private property {0} of {1} not allowed here."));yY=new _6("JSC_BAD_PRIVATE_GLOBAL_ACCESS", iZ,new iqc("Access to private variable {0} not allowed outside file {1}."));zY=new _6("JSC_BAD_PRIVATE_PROPERTY_ACCESS",kZ,new iqc("Access to private property {0} of {1} not allowed here."));AY=new _6("JSC_BAD_PROTECTED_PROPERTY_ACCESS",kZ,new iqc("Access to protected property {0} of {1} not allowed here."));new _6("JSC_BAD_PROPERTY_OVERRIDE_IN_FILE_WITH_FILEOVERVIEW_VISIBILITY",iZ,new iqc("Overridden property {0} in file with fileoverview visibility {1} must explicitly redeclare superclass visibility")); LY=new _6("JSC_PRIVATE_OVERRIDE",kZ,new iqc("Overriding private property of {0}."));KY=new _6("JSC_EXTEND_FINAL_CLASS",iZ,new iqc("{0} is not allowed to extend final class {1}."));MY=new _6("JSC_VISIBILITY_MISMATCH",kZ,new iqc("Overriding {0} property of {1} with {2} property."));CY=new _6("JSC_CONSTANT_PROPERTY_REASSIGNED_VALUE",kZ,new iqc("constant property {0} assigned a value more than once"));BY=new _6("JSC_CONSTANT_PROPERTY_DELETED",kZ,new iqc("constant property {0} cannot be deleted"));DY= new _6("JSC_CONVENTION_MISMATCH",kZ,new iqc("Declared access conflicts with access convention."))}function V8(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O;if(vqc(a.c.c)==0)return;for(p=(C=(new mrc(a.c)).a.Wd().Od(),new trc(C));p.a.Hd();){o=(g=p.a.Id(),g.ce());r=kAc(a.c,o);u=W1b(pD(kD(TR,1),rHc,7,0,[]));for(O=(D=(new mrc(r.b.a)).a.Wd().Od(),new trc(D));O.a.Hd();){M=(f=O.a.Id(),f.ce());U5b(u,e2b(M.b,H1b(T1b(r.a),d2b(M.b))))}L=r1b(T1b(r.a),u);t=b7b(A1b(T1b(r.a),W1b(pD(kD(TR, 1),rHc,7,0,[])),(tbc(),nbc)),o);I8(a.e,t,o);if(o.j==B9b){n=o.b;G6b(o,n,new e7b(p9b));if(n.j!=p9b){qkb();!!n&&(n.j==nbc||n.j==eac||n.j==d9b)||(n=a7b((ie(P1b(n),n),new g7b(z9b,n)),n));I8(a.e,n,o)}m=d6b(o,2);if(m.j==p9b)G6b(o,m,d7b(L,o));else{F=new e7b(p9b);G6b(o,m,F);G6b(o,F,d7b(s1b(b9b,L,m),o))}}else o.j==n9b?U5b(o.b,d7b((ie(P1b(L),L),new g7b(z9b,L)),o)):U5b(o.b?o.b.f:null,d7b((ie(P1b(L),L),new g7b(z9b,L)),o));q2(a.e.a,o);for(N=(B=(new mrc(r.b.a)).a.Wd().Od(),new trc(B));N.a.Hd();){M=(f=N.a.Id(),f.ce()); for(H=Yh(a.d,M).Od();H.Hd();){G=H.Id();qkb();if((o.j==D9b||o.j==C9b)&&o.b==G.e)V5b(o.b?o.b.f:null,d7b(C1b(r1b(H1b(T1b(r.a),d2b(M.b)),M.c.pi(false))),G));else{if(ylb(G.e)){e=G.e;j=e.e;J8(a.e,e,j);e=G.e;if(G.b){q=G.pi(false);b=r1b(q,E6b(G));M8(e,G,e);N8(e,j,G,e);M6b(b,j6b(e,29));I=d7b((ie(P1b(b),b),new g7b(z9b,b)),e);G6b(j,e,I);G=q}else C6b(j,e);lzc(a.e.b,e);q2(a.e.a,j)}G.e.j==V8b&&G.e.b==G&&A6b(G.e,50,false);d=Gkb(G);H6b(G,d7b(H1b(T1b(r.a),d2b(M.b)),G));!!d&&p2(a.e.a,d)}}}}for(i=Bt(a.b).Od();i.Hd();){h= i.Id();K=new e7b((tbc(),Oac));A=Yh(a.b,h);v=mD(TR,rHc,7,A.size(),0,1);w=mD(TR,rHc,7,A.size(),0,1);k=0;for(s=A.Od();s.Hd();){r=s.Id();v[k]=T1b(r.a);w[k]=T1b(r.a);++k}l=F1b((me($oc("",spc(46))==-1,qHc,""),new e8b(mac,"")),Z1b(v),t1b(K));p2(a.e.a,l);c=v1b(l,w);J=F6b(c,c.g,50);J!=c.g&&(c.g=J);c.g=new J7b(50,1,c.g);qkb();h.j==E9b&&jlb(h.e)?I=d7b(A1b(T1b(h.b.ri()),c,nbc),h):I=d7b(c,h);G6b(h.e,h,I);V5b(K,h);q2(a.e.a,I)}}function j9(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;g9(a,c);s=u9(c,d);if(!s|| s.f==null)throw BV(new Ync("Can only convert classes that are declarations or the right hand side of a simple assignment: "+c));if(s.k.j!=(tbc(),p9b)&&!t6b(s.k)){o2(a.a,Kgb(s.k,b9,pD(kD(pT,1),tFc,2,6,[])));return}me((qkb(),Jlb(s.g.e)),"insertion point must be a statement: %s",s.g);g=null;h=null;f=c.b?c.b.f:null;for(r=(!f.b?(Wuc(),Wuc(),Vuc):new Y7b(f.b)).Od();r.Hd();){q=r.Id();if(q.j==c9b&&(h6b(q,73)!=0||h6b(q,74)!=0)||q.j==L9b||q.j==Sac)l9(a,q,s);else if(q.j==hac&&Xoc(q.ri(),oJc)){h=j6b(q,29);g= b6b(q.b);s.a||G6b(g,g.b,s.c.pi(false))}else if(q.j==p9b);else{me(q.j==hac||q.j==c9b,"Unexpected class member:",q);me(h6b(q,75)==0,"Member variables should have been transpiled earlier:",q);k9(a,q,s)}}if(s.e.b){t1(a.a,TJc,false);j=C1b(v1b(Xlb(a.a,UJc),pD(kD(TR,1),rHc,7,0,[Xlb(a.a,s.f+PJc),s.e])));d7b(j,c);S5b(s.g.e,j,s.g);s.g=j}if(s.d.b){t1(a.a,TJc,false);j=C1b(v1b(Xlb(a.a,UJc),pD(kD(TR,1),rHc,7,0,[Xlb(a.a,s.f),s.d])));d7b(j,c);S5b(s.g.e,j,s.g);s.g=j}be(g);e=(p=Dkb(c),!p?null:j6b(p,29));t=M5b(e);G4b(t); k=Hkb(c,pkb);if(s.k.j!=p9b){v=k6b(s.k);if(d3b(t.a))Q4b(t,new O5b(new g7b(N8b,new e8b(Xac,v)),(l=j6b(s.k,51),!l?null:l.Og())));else{m=j6b(c,51);if(!(!!m&&m.zh())){n=v1b(Xlb(a.a,iIc),pD(kD(TR,1),rHc,7,0,[Xlb(a.a,s.f),Xlb(a.a,v)]));o=(ie(P1b(n),n),new g7b(z9b,n));t1(a.a,"es6/util/inherits",false);d7b(o,s.k);S5b(k.e,o,k)}C4b(t,new O5b(new g7b(N8b,new e8b(Xac,v)),(l=j6b(s.k,51),!l?null:l.Og())))}}e9(a,s,k);i9(h,t);if(Jlb(c.e)){g.b.wi("");i=A1b(s.c.pi(false),g,eac);d7b(i,c);G6b(d,c,i)}else G6b(d,c,g);Rlb(c, a.a);if(Jlb(g.e))M6b(g,u4b(t));else if(d.j==mac){w=d.e;M6b(w,u4b(t))}else if(g.e.j==mac){w=!g.e?null:g.e.e;M6b(w,u4b(t))}else if(d.j==z8b)M6b(d,u4b(t));else throw BV(new Ync("Unexpected parent node "+d));u=F6b(g,g.g,92);u!=g.g&&(g.g=u);g.g=new J7b(92,1,g.g);Vjb(b)}function keb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,N;if(b.f)return;F=b.p;n=(N=new SAc,Xc(N,new mrc(b.b)),Xc(N,new mrc(b.k)),N);!!F&&!F.a.f&&keb(a,(he(!F.a.f),F.a));for(I=(!b.d?(En(),Rx(),Qx):b.d).Od();I.Hd();){G= I.Id();G.a.f||keb(a,(he(!G.a.f),G.a))}w=new Ct;A=new Ct;if(F){he(F.a.f);for(r=fHb(F.a).Od();r.Hd();){p=r.Id();F.a.e&&pHb(F.a,p)&&!b.e&&!jHb(b,p)&&Fjb(a.t,Kgb(b.v,Edb,pD(kD(pT,1),tFc,2,6,[p,F.a.A])));n.a.remove(p)!=null;leb(a,b,F,p,w,A)}}for(H=(!b.d?(En(),Rx(),Qx):b.d).Od();H.Hd();){G=H.Id();he(G.a.f);for(r=gHb(G.a).Od();r.Hd();){p=r.Id();n.a.remove(p)!=null;leb(a,b,G,p,w,A)}}for(s=(C=w.g,!C?w.g=new Sj(w,w.c):C).Od();s.Hd();){p=s.Id();m=Yh(w,p);he(!m.isEmpty());l=pq(a.o,b,p);J=yyb(m);k=l.c;e=zeb(l); if(!J){J=m.Od().Id();Fjb(a.t,Kgb(l.a,feb,pD(kD(pT,1),tFc,2,6,[b.A,p,eW(m)])))}else e&&(k.g?oFc:k.f.size()+k.d.size())>(J.g?oFc:J.f.size()+J.d.size())&&Fjb(a.t,Kgb(l.a,Ydb,pD(kD(pT,1),tFc,2,6,[p,lzb(syb(J),new Kpc,(HHb(),GHb)).a,lzb(syb(k),new Kpc,GHb).a])));K=uyb(k,J,e);l.c=K;!!l.b&&Hib(l.b,K);Zh(A,p,BDb(a.d,syb(K)))}M:for(t=(B=A.g,!B?A.g=new Sj(A,A.c):B).Od();t.Hd();){p=t.Id();c=Yh(A,p);he(!c.isEmpty());D=a.d.u;for(g=c.Od();g.Hd();){f=g.Id();D=JBb(D,f);if(0==D.Lh()){Fjb(a.t,Kgb(b.v,feb,pD(kD(pT, 1),tFc,2,6,[b.A,p,eW(c)])));continue M}else D=f}ZGb(b,p,null,D,false)}if(!zHb(b.A,FKc,b.v)&&sHb(b)){L=b.r;!AAb(L)?Fjb(a.t,Kgb(b.v,feb,pD(kD(pT,1),tFc,2,6,[b.A,GKc,"the keys K have types that can't be joined."]))):!BAb(L)&&Fjb(a.t,Kgb(b.v,feb,pD(kD(pT,1),tFc,2,6,[b.A,GKc,"the values V should have a common subtype."])))}for(q=(o=(new mrc(n.a)).a.Wd().Od(),new trc(o));q.a.Hd();){p=(d=q.a.Id(),d.ce());u=pq(a.o,b,p);he(!!u||Xoc(b.A,HKc));if(u){v=u.a;h=(qkb(),i=Dkb(v),!i?null:j6b(i,29));!!h&&(h.a&64)!= 0&&Fjb(a.t,Kgb(v,geb,pD(kD(pT,1),tFc,2,6,[p,b.A])))}}eHb(b);if(zHb(b.A,CJc,b.v)){j=JDb(a.d);j.a.f||eHb((he(!j.a.f),j.a))}}function L7(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;d=c.a;q=c.b;if(q.a.length==0)return;h=j6b(d,51);if(!!h&&h.zh())for(o=new Rtc(q);o.a3)&&YX(fHc+s,b);eX(a,b.b);QW(a,b.b.d);e6b(b)==3&&QW(a,b.b?b.b.f:null);return;case 76:case 100:case 88:uX(a,b.j, b);return;case 84:zX((tbc(),z9b),b);t=vbc(b.j);t!=-1&&(u=e6b(b),t!=u&&YX(WGc+t+XGc+u,b));eX(a,b.b);return;case 0:zX((tbc(),Oac),b);qX(b);!!b.b&&eX(a,b.b);return;case 39:zX((tbc(),fbc),b);v=vbc(b.j);v!=-1&&(w=e6b(b),v!=w&&YX(WGc+v+XGc+w,b));eX(a,b.b);return;case 44:SX(a,b);return;case 74:zX((tbc(),U8b),b);qX(b);!!b.b&&pX(b.b);return;case 75:zX((tbc(),e9b),b);qX(b);!!b.b&&pX(b.b);return;case 80:case 89:d=e6b(b);0!=d&&YX(VGc+d,b);return;case 96:VW(a,b,c);tX(b.b);return;case 104:iX(a,b);return;case 108:bX(a, b,c);return;case 148:fX(a,(BQb(),gQb),b);zX((tbc(),Y9b),b);A=vbc(b.j);A!=-1&&(B=e6b(b),A!=B&&YX(WGc+A+XGc+B,b));C=b.b;tX(C);D=C.d;D.j==p9b?(F=e6b(D),0!=F&&YX(VGc+F,D)):lX(D);nX(a,b.b?b.b.f:null);return;case 151:_W(a,b);return;case 154:TX(a,b);return;case 155:fX(a,(BQb(),MPb),b);zX((tbc(),h9b),b);LW(a,b.b);return;case 159:vX(a,b,c);return;default:YX("Expected statement but was "+b.j+".",b)}}function N9(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.d.j==(tbc(),nbc)){W9(a);return false}else if(h6b(a.d,66)!= 0){a.c.a.length!=0&&mtc(a.c,0).a==a.d.b.qi()&&ptc(a.c,0);a.b.a.length!=0&&mtc(a.b,0).b==a.d.b.qi()&&ptc(a.b,0);return true}else if(a.d.j==E9b){S5b(a.i.e,a.d,a.i);return false}else if(a.d.j==S8b){O9(a);return false}else if(J9(a,a.d))switch(a.d.j.f){case 70:case 71:case 72:T9(a,null);return false;case 73:b=E6b(a.d);c=E6b(a.d);d=E6b(a.d);e=""+a.f.a.Z++;f=(me($oc(_Jc+e,spc(46))==-1,qHc,_Jc+e),new e8b(mac,_Jc+e));g=(me($oc(aKc+e,spc(46))==-1,qHc,aKc+e),new e8b(mac,aKc+e));h=(me($oc(bKc+e,spc(46))==-1, qHc,bKc+e),new e8b(mac,bKc+e));b.j==nbc&&(b=E6b(b));V5b(d,K1b(V1b(M1b(_5b(b,false),_5b(h,false))),t1b(new e7b(e9b))));V5b(d,A1b(_5b(b,false),G1b(_5b(f,false),_5b(g,false)),nbc));S5b(a.i.e,B1b(_5b(f,false),nbc),a.i);S5b(a.i.e,B1b(_5b(g,false),nbc),a.i);S5b(a.i.e,B1b(_5b(h,false),nbc),a.i);i=C1b(r1b(_5b(f,false),q1b(pD(kD(TR,1),rHc,7,0,[]))));j=C1b(r1b(_5b(h,false),c));k=D1b(_5b(b,false),h,t1b(C1b(v1b(H1b(_5b(f,false),new e8b(Xac,"push")),pD(kD(TR,1),rHc,7,0,[b])))));l=E1b(r1b(_5b(g,false),new O7b(0)), O1b(_5b(g,false),H1b(f,new e8b(Xac,"length"))),N1b(g,true),d);U5b(a.e,i);U5b(a.e,j);U5b(a.e,k);V5b(a.j,l);return false;case 83:S9(a);return false;case 67:U9(a);return false;case 66:if(h6b(a.d,67)==0){R9(a);return false}break;case 44:V9(a);return false;case 84:if(a.d.b.j==sbc){U5b(a.e,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(I9))));m=a.d.b;n=m.b?E6b(m):(me($oc(GJc,spc(46))==-1,qHc,GJc),new e8b(mac,GJc));U5b(a.e,_1b(W1b(pD(kD(TR,1),rHc,7,0,[$1b(new e8b(Yac,$Jc),n),$1b(new e8b(Yac, dKc),new e7b(A9b))]))));return true}break;case 0:U5b(a.e,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(-1))));U5b(a.e,_1b($9(a.d.b?E6b(a.d):(me($oc(GJc,spc(46))==-1,qHc,GJc),new e8b(mac,GJc)))));return false;case 75:he(mtc(a.c,0).b!=-1);a.d.b?o=K9(a,E6b(a.d).ri()).b:o=mtc(a.c,0).b;U5b(a.e,C1b(r1b((me($oc(cKc,spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(o))));U5b(a.e,_9());return false;case 74:if(h6b(a.d,67)==0){P9(a);return false}break;case 39:U5b(a.e,C1b(r1b((me($oc(cKc, spc(46))==-1,qHc,cKc),new e8b(mac,cKc)),new O7b(-1))));U5b(a.e,a.d);return false;default:throw BV(new sC("Untranslatable control-exiting statement in generator function: "+a.d.j));}U5b(a.e,a.d);return false}function Bgb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;g=false;k=new utc;k.a[k.a.length]="/**";(b.a&WJc)!=0?(k.a[k.a.length]="@export",true):!!b.j&&b.j!=(o4b(),j4b)&&jtc(k,"@"+te(b.j).toLowerCase());(b.a&MKc)!=0&&(k.a[k.a.length]="@abstract",true);(!b.d?null:b.d.g)!=null&&jtc(k,"@lends {"+(!b.d? null:b.d.g)+"}");(b.a&37)!=0&&(b.a&4)==0&&(b.a&32)==0&&(k.a[k.a.length]="@const",true);(b.a&32)!=0&&(k.a[k.a.length]="@final",true);d=!b.d?null:b.d.c;d!=null&&(k.a[k.a.length]="@desc "+d+BGc,true);(b.a&SJc)!=0&&(k.a[k.a.length]="@dict",true);(b.a&NGc)!=0&&(k.a[k.a.length]="@struct",true);(b.a&RJc)!=0&&(k.a[k.a.length]="@unrestricted ",true);(b.a&2)!=0&&(k.a[k.a.length]="@constructor",true);((b.a&512)!=0||(b.a&jJc)!=0)&&(b.a&jJc)==0&&(k.a[k.a.length]="@interface",true);((b.a&512)!=0||(b.a&jJc)!=0)&& (b.a&jJc)!=0&&(k.a[k.a.length]="@record",true);if(!b.d?null:b.d.a){g=true;s=Cgb((!b.d?null:b.d.a).a);jtc(k,zgb(a,PHc,s))}for(r=K2b(b).Od();r.Hd();){p=r.Id();g=true;s=Cgb(p.a);jtc(k,zgb(a,PHc,s))}for(q=M2b(b).Od();q.Hd();){p=q.Id();g=true;s=Cgb(p.a);jtc(k,zgb(a,QHc,s))}if(b.g){g=true;s=Cgb(b.g.a);jtc(k,zgb(a,SHc,s))}if(Q2b(b)>0){g=true;for(i=S2b(b).Od();i.Hd();){h=i.Id();jtc(k,"@param "+Agb(a,h,T2b(b,h)))}}if((b.a&QJc)==nGc){g=true;jtc(k,zgb(a,GHc,((QJc&b.a)==nGc?b.i:null).a))}W2b(b).isEmpty()||jtc(k, zgb(a,WKc,W2b(b).getAtIndex(0).a));j=V2b(b);if(!j.isEmpty()){jtc(k,XKc+Tc(new Vc(String.fromCharCode(44)),j.Od()));g=true}t=$2b(b);if(!t.isEmpty()){g=true;for(f=To(t).Od();f.Hd();){e=f.Id();h=e.ce();o=K_(new O_(e.de()));k.a[k.a.length]=XKc+h+" := "+o+" =:"}}(b.a&64)!=0&&(k.a[k.a.length]="@override",true);(b.a&QJc)==VJc&&(b.a&4)==0&&(b.e?jtc(k,Dgb(a,((QJc&b.a)==VJc?b.i:null).a)):jtc(k,zgb(a,cIc,((QJc&b.a)==VJc?b.i:null).a)));(b.a&4)!=0&&jtc(k,zgb(a,"define",((QJc&b.a)==VJc?b.i:null).a));(b.a&QJc)== rFc&&jtc(k,zgb(a,YKc,((QJc&b.a)==rFc?b.i:null).a));(b.a&QJc)==yKc&&jtc(k,zgb(a,aIc,((QJc&b.a)==yKc?b.i:null).a));(b.a&8192)!=0&&(k.a[k.a.length]="@implicitCast",true);n=(m=!b.d?null:b.d.p,!m?(Wuc(),Wuc(),Vuc):m);if(!n.isEmpty()){c=n.Pd(mD(pT,tFc,2,0,6,1));nuc(c,(zx(),yx));jtc(k,"@suppress {"+Tc(new Vc(String.fromCharCode(44)),new Wqc(new xuc(c)))+"}");g=true}if((b.a&256)!=0){jtc(k,"@deprecated "+(!b.d?null:b.d.b));g=true}k.a[k.a.length]="*/";l=new Kpc;g?Rc(new Vc("\n "),l,new Rtc(k)):Rc(new Vc(" "), l,new Rtc(k));l.a+=g?BGc:" ";return l.a}function aUb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T;switch(fVb(a.j,0).c.f){case 45:return LSb(a);case 30:case 25:return mUb(a);case 52:return WSb(a);case 15:return oTb(a);case 10:return c=fVb(a.j,0).b.b,aSb(a,(YXb(),rWb)),d=YTb(a),aSb(a,VXb),aSb(a,cXb),e=pSb(a,1),aSb(a,hWb),pUb(a,vXb)&&aSb(a,vXb),new SYb(new r0b(c,a.g),d,e);case 27:return f=fVb(a.j,0).b.b,aSb(a,(YXb(),VXb)),aSb(a,cXb),g=pSb(a,1),aSb(a,hWb),h= YTb(a),new h0b(new r0b(f,a.g),g,h);case 13:return eTb(a);case 6:return i=fVb(a.j,0).b.b,aSb(a,(YXb(),mWb)),j=null,k=fVb(a.j,0).b.b.b>a.g.b,k||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)||(j=(l=fVb(a.j,0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),l)||!a.b.b&&MRb(l)?cSb(a):null)),fSb(a),new OYb(new r0b(i,a.g),j);case 3:return m=fVb(a.j,0).b.b,aSb(a,(YXb(),_Vb)),n=null,o=fVb(a.j,0).b.b.b>a.g.b,o||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)||(n=(p=fVb(a.j,0).c,Qyc(Myc(GWb,pD(kD(lP,1),PFc,14,0, [PXb,oWb,UWb,VWb])),p)||!a.b.b&&MRb(p)?cSb(a):null)),fSb(a),new pYb(new r0b(m,a.g),n);case 19:return q=fVb(a.j,0).b.b,aSb(a,(YXb(),sXb)),r=null,s=fVb(a.j,0).b.b.b>a.g.b,s||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)||(r=pSb(a,1)),fSb(a),new O_b(new r0b(q,a.g),r);case 28:return t=fVb(a.j,0).b.b,aSb(a,(YXb(),WXb)),aSb(a,cXb),u=pSb(a,1),aSb(a,hWb),v=YTb(a),new i0b(new r0b(t,a.g),u,v);case 20:return w=fVb(a.j,0).b.b,aSb(a,(YXb(),GXb)),aSb(a,cXb),A=pSb(a,1),aSb(a,hWb),aSb(a,bXb),B=NSb(a),aSb(a,gWb),new S_b(new r0b(w, a.g),A,B);case 22:return C=fVb(a.j,0).b.b,aSb(a,(YXb(),LXb)),D=null,F=fVb(a.j,0).b.b.b>a.g.b,F||oUb(a,0,vXb)||oUb(a,0,gWb)||oUb(a,0,tWb)?IUb(a,"semicolon/newline not allowed after 'throw'",pD(kD(kT,1),KFc,1,5,[])):D=pSb(a,1),fSb(a),new X_b(new r0b(C,a.g),D);case 23:return G=fVb(a.j,0).b.b,aSb(a,(YXb(),OXb)),H=LSb(a),I=null,pUb(a,dWb)&&(I=(P=fVb(a.j,0).b.b,aSb(a,dWb),aSb(a,cXb),oUb(a,0,dXb)||oUb(a,0,bXb)?Q=LTb(a,0):Q=nTb(a),aSb(a,hWb),R=LSb(a),new tYb(new r0b(P,a.g),Q,R))),J=null,pUb(a,CWb)&&(J=(S= fVb(a.j,0).b.b,aSb(a,CWb),T=LSb(a),new YYb(new r0b(S,a.g),T))),!I&&!J&&IUb(a,"'catch' or 'finally' expected.",pD(kD(kT,1),KFc,1,5,[])),new Y_b(new r0b(G,a.g),H,I,J);case 7:return K=fVb(a.j,0).b.b,aSb(a,(YXb(),nWb)),fSb(a),new PYb(new r0b(K,a.g));default:{b=fVb(a.j,0).c;if((Qyc(Myc((YXb(),GWb),pD(kD(lP,1),PFc,14,0,[PXb,oWb,UWb,VWb])),b)||!a.b.b&&MRb(b))&&oUb(a,1,jWb))return L=fVb(a.j,0).b.b,M=bSb(a),aSb(a,jWb),new EZb(new r0b(L,a.g),M,YTb(a))}return N=fVb(a.j,0).b.b,O=pSb(a,1),fSb(a),new XYb(new r0b(N, a.g),O)}}function MCb(){MCb=aW;FCb=new _6("JSC_NTI_INVALID_GENERICS_INSTANTIATION",(lZ(),kZ),new iqc("Invalid generics instantiation{0}.\nExpected {1} type argument(s), but found {2}"));zCb=new _6("JSC_NTI_EXTENDS_NON_OBJECT",kZ,new iqc("{0} extends non-object type {1}.\n"));ACb=new _6("JSC_NTI_EXTENDS_NOT_ON_CTOR_OR_INTERF",kZ,new iqc("@extends used without @constructor or @interface for {0}.\n"));ECb=new _6("JSC_NTI_INHERITANCE_CYCLE",kZ,new iqc("Cycle detected in inheritance chain of type {0}")); uCb=new _6("JSC_NTI_DICT_IMPLEMENTS_INTERF",kZ,new iqc("Class {0} is a dict. Dicts can't implement interfaces"));DCb=new _6("JSC_NTI_IMPLEMENTS_WITHOUT_CONSTRUCTOR",kZ,new iqc(wKc));sCb=new _6("JSC_NTI_CONFLICTING_EXTENDED_TYPE",kZ,new iqc(JLc));tCb=new _6("JSC_NTI_CONFLICTING_IMPLEMENTED_TYPE",kZ,new iqc(KLc));KCb=new _6("JSC_NTI_UNION_IS_UNINHABITABLE",kZ,new iqc("Union of {0} with {1} would create an impossible type"));HCb=new _6("JSC_NTI_NEW_EXPECTS_OBJECT_OR_TYPEVAR",kZ,new iqc('The "new:" annotation only accepts object types and type variables; found {0}')); oCb=new _6("JSC_NTI_BAD_ARRAY_TYPE_SYNTAX",kZ,new iqc("The [] type syntax is not supported. Please use Array instead"));pCb=new _6("JSC_NTI_CANNOT_MAKE_TYPEVAR_NON_NULL",kZ,new iqc("Cannot use ! to restrict type variable type.\nPrefer to make type argument non-nullable and add null explicitly where needed (e.g. through ?T or T|null)"));qCb=new _6("JSC_NTI_CIRCULAR_TYPEDEF_ENUM",kZ,new iqc("Circular typedefs/enums are not allowed"));xCb=new _6("JSC_NTI_ENUM_WITH_TYPEVARS",kZ,new iqc("An enum type cannot include type variables")); vCb=new _6("JSC_NTI_ENUM_IS_TOP",kZ,new iqc("An enum type cannot be *. Use ? if you do not want the elements checked"));wCb=new _6("JSC_NTI_ENUM_IS_UNION",kZ,new iqc("An enum type cannot be a union type"));LCb=new _6("JSC_NTI_WRONG_PARAMETER_ORDER",kZ,new iqc("Wrong parameter order: required parameters are first, then optional, then varargs"));CCb=new _6("JSC_NTI_IMPLEMENTS_NON_INTERFACE",kZ,new iqc("Cannot implement non-interface {0}"));yCb=new _6("JSC_NTI_EXTENDS_NON_INTERFACE",kZ,new iqc("Cannot extend non-interface {0}")); BCb=new _6("JSC_NTI_FUNCTION_WITH_NONFUNC_JSDOC",kZ,new iqc("The function is annotated with a non-function jsdoc. Ignoring jsdoc"));ICb=new _6("JSC_NTI_TEMPLATED_GETTER_SETTER",kZ,new iqc("@template can't be used with getters/setters"));JCb=new _6("JSC_NTI_TWO_JSDOCS",kZ,new iqc("Found two JsDoc comments for {0}"));rCb=new p6(pD(kD(eK,1),KFc,5,0,[oCb,qCb,sCb,tCb,yCb,zCb,ACb,CCb,DCb,ECb,HCb,ICb,JCb,LCb]));GCb=new p6(pD(kD(eK,1),KFc,5,0,[pCb,uCb,vCb,wCb,xCb,BCb,FCb,KCb]))}function E$(){E$=aW;new _6("JSC_GOOG_MODULE_INVALID_MODULE_NAMESPACE", (lZ(),iZ),new iqc("goog.module parameter must be string literals"));new _6("JSC_GOOG_MODULE_INVALID_PROVIDE_NAMESPACE",iZ,new iqc("goog.provide parameter must be a string literal."));new _6("JSC_GOOG_MODULE_INVALID_REQUIRE_NAMESPACE",iZ,new iqc("goog.require parameter must be a string literal."));new _6("JSC_GOOG_MODULE_INVALID_FORWARD_DECLARE_NAMESPACE",iZ,new iqc("goog.forwardDeclare parameter must be a string literal."));new _6("JSC_GOOG_MODULE_INVALID_GET_NAMESPACE",iZ,new iqc("goog.module.get parameter must be a string literal.")); new _6("JSC_GOOG_MODULE_INVALID_PROVIDE_CALL",iZ,new iqc("goog.provide can not be called in goog.module."));new _6("JSC_GOOG_MODULE_INVALID_GET_CALL_SCOPE",iZ,new iqc("goog.module.get can not be called in global scope."));new _6("JSC_GOOG_MODULE_INVALID_GET_ALIAS",iZ,new iqc("goog.module.get should not be aliased."));new _6("JSC_GOOG_MODULE_INVALID_EXPORT_COMPUTED_PROPERTY",iZ,new iqc("Computed properties are not yet supported in goog.module exports."));C$=new _6("JSC_USELESS_USE_STRICT_DIRECTIVE", jZ,new iqc("'use strict' is unnecessary in goog.module files."));new _6("JSC_DUPLICATE_MODULE",iZ,new iqc("Duplicate module: {0}"));new _6("JSC_DUPLICATE_NAMESPACE",iZ,new iqc("Duplicate namespace: {0}"));B$=new _6("JSC_MISSING_MODULE_OR_PROVIDE",iZ,new iqc('Required namespace "{0}" never defined.'));A$=new _6(CHc,iZ,new iqc('Required namespace "{0}" not provided yet.'));new _6("JSC_IMPORT_INLINING_SHADOWS_VAR",iZ,new iqc('Inlining of reference to import "{1}" shadows var "{0}".'));new _6("JSC_QUALIFIED_REFERENCE_TO_GOOG_MODULE", iZ,new iqc("Fully qualified reference to name ''{0}'' provided by a goog.module.\nEither use short import syntax or convert module to use goog.module.declareLegacyNamespace."));new _6("JSC_ILLEGAL_DESTRUCTURING_DEFAULT_EXPORT",iZ,new iqc("Destructuring import only allowed for importing module with named exports.\nSee https://github.com/google/closure-compiler/wiki/goog.module-style"));new _6("JSC_ILLEGAL_DESTRUCTURING_NOT_EXPORTED",iZ,new iqc('Destructuring import reference to name "{0}" was not exported in module {1}')); D$=(En(),new Ey(DHc));H1b((me($oc(pHc,spc(46))==-1,qHc,pHc),new e8b((tbc(),mac),pHc)),new e8b(Xac,"forwardDeclare"));H1b((me($oc(pHc,spc(46))==-1,qHc,pHc),new e8b(mac,pHc)),new e8b(Xac,"loadModule"));z$=H1b((me($oc(pHc,spc(46))==-1,qHc,pHc),new e8b(mac,pHc)),new e8b(Xac,EHc));H1b(z$,new e8b(Xac,"declareLegacyNamespace"));H1b(_5b(z$,false),new e8b(Xac,"get"));H1b((me($oc(pHc,spc(46))==-1,qHc,pHc),new e8b(mac,pHc)),new e8b(Xac,"provide"));H1b((me($oc(pHc,spc(46))==-1,qHc,pHc),new e8b(mac,pHc)),new e8b(Xac, "require"))}function gJb(){gJb=aW;FIb=new hJb("NG_INJECT",0);aIb=new hJb("ABSTRACT",1);bIb=new hJb("AUTHOR",2);cIb=new hJb("CONSISTENTIDGENERATOR",3);dIb=new hJb("CONSTANT",4);eIb=new hJb(nMc,5);TIb=new hJb("RECORD",6);fIb=new hJb("DEFINE",7);gIb=new hJb("DEPRECATED",8);hIb=new hJb("DESC",9);iIb=new hJb("DICT",10);jIb=new hJb("DISPOSES",11);kIb=new hJb(oMc,12);nIb=new hJb(pMc,13);oIb=new hJb("EXTERNS",14);lIb=new hJb(qMc,15);mIb=new hJb("EXPOSE",16);pIb=new hJb("FILE_OVERVIEW",17);qIb=new hJb("FINAL", 18);rIb=new hJb("HIDDEN",19);sIb=new hJb("IDGENERATOR",20);tIb=new hJb(rMc,21);uIb=new hJb("IMPLICIT_CAST",22);vIb=new hJb("INHERIT_DOC",23);wIb=new hJb(sMc,24);xIb=new hJb("JAGGER_INJECT",25);yIb=new hJb("JAGGER_MODULE",26);zIb=new hJb("JAGGER_PROVIDE",27);AIb=new hJb("JAGGER_PROVIDE_PROMISE",28);BIb=new hJb("LENDS",29);CIb=new hJb("LICENSE",30);DIb=new hJb("MEANING",31);EIb=new hJb("MODIFIES",32);HIb=new hJb("NO_ALIAS",33);IIb=new hJb("NO_COLLAPSE",34);JIb=new hJb("NO_COMPILE",35);KIb=new hJb("NO_SIDE_EFFECTS", 36);GIb=new hJb("NOT_IMPLEMENTED",37);LIb=new hJb("OVERRIDE",38);MIb=new hJb(tMc,39);NIb=new hJb("PARAM",40);OIb=new hJb("POLYMER_BEHAVIOR",41);PIb=new hJb("PRESERVE",42);QIb=new hJb(uMc,43);RIb=new hJb(vMc,44);SIb=new hJb(wMc,45);UIb=new hJb(xMc,46);VIb=new hJb("SEE",47);WIb=new hJb("STABLEIDGENERATOR",48);XIb=new hJb("STRUCT",49);YIb=new hJb("SUPPRESS",50);ZIb=new hJb("TEMPLATE",51);$Ib=new hJb(yMc,52);_Ib=new hJb("THROWS",53);aJb=new hJb(zMc,54);bJb=new hJb("TYPEDEF",55);cJb=new hJb("UNRESTRICTED", 56);dJb=new hJb("VERSION",57);eJb=new hJb("WIZACTION",58);fJb=kr(new nr,"ngInject",FIb).jf("abstract",aIb).jf("argument",NIb).jf("author",bIb).jf("consistentIdGenerator",cIb).jf(cJc,dIb).jf("constant",dIb).jf(oJc,eIb).jf("copyright",CIb).jf("define",fIb).jf($Ic,gIb).jf("desc",hIb).jf("dict",iIb).jf("disposes",jIb).jf(aIc,kIb).jf(KHc,lIb).jf("expose",mIb).jf(PHc,nIb).jf("externs",oIb).jf("fileoverview",pIb).jf("final",qIb).jf("hidden",rIb).jf("idGenerator",sIb).jf(QHc,tIb).jf("implicitCast",uIb).jf("inheritDoc", vIb).jf(_Hc,wIb).jf("record",TIb).jf("jaggerInject",xIb).jf("jaggerModule",yIb).jf("jaggerProvidePromise",AIb).jf("jaggerProvide",zIb).jf("lends",BIb).jf("license",CIb).jf("meaning",DIb).jf("modifies",EIb).jf("noalias",HIb).jf("nocollapse",IIb).jf("nocompile",JIb).jf("nosideeffects",KIb).jf("override",LIb).jf("owner",bIb).jf(AMc,MIb).jf("param",NIb).jf("polymerBehavior",OIb).jf("preserve",PIb).jf(BMc,QIb).jf(CMc,RIb).jf(DMc,SIb).jf(GHc,UIb).jf("returns",UIb).jf("see",VIb).jf("stableIdGenerator",WIb).jf("struct", XIb).jf("suppress",YIb).jf("template",ZIb).jf(SHc,$Ib).jf(WKc,_Ib).jf(cIc,aJb).jf(YKc,bJb).jf("unrestricted",cJb).jf("version",dJb).jf("wizaction",eJb).hf()}function Cob(){Cob=aW;new _6("JSC_NULL_ARGUMENT_ERROR",(lZ(),iZ),new iqc('method "{0}" called without an argument'));new _6("JSC_EXPECTED_OBJECTLIT_ERROR",iZ,new iqc('method "{0}" expected an object literal argument'));new _6("JSC_EXPECTED_STRING_ERROR",iZ,new iqc('method "{0}" expected an object string argument'));new _6("JSC_INVALID_ARGUMENT_ERROR", iZ,new iqc('method "{0}" called with invalid argument'));new _6("JSC_INVALID_CSS_NAME_MAP_STYLE_ERROR",iZ,new iqc("Invalid CSS name map style {0}"));new _6("JSC_TOO_MANY_ARGUMENTS_ERROR",iZ,new iqc('method "{0}" called with more than one argument'));new _6("JSC_DUPLICATE_NAMESPACE_ERROR",iZ,new iqc('namespace "{0}" cannot be provided twice'));new _6("JSC_WEAK_NAMESPACE_TYPE",kZ,new iqc("Provided symbol declared with type Object. This is rarely useful. For more information see https://github.com/google/closure-compiler/wiki/A-word-about-the-type-Object")); new _6("JSC_CLASS_NAMESPACE_ERROR",iZ,new iqc("\"{0}\" cannot be both provided and declared as a class. Try var {0} = class '{'...'}'"));new _6("JSC_FUNCTION_NAMESPACE_ERROR",iZ,new iqc('"{0}" cannot be both provided and declared as a function'));Aob=new _6("JSC_MISSING_PROVIDE_ERROR",iZ,new iqc('required "{0}" namespace never provided'));zob=new _6(CHc,iZ,new iqc('required "{0}" namespace not provided yet'));yob=new _6("JSC_INVALID_PROVIDE_ERROR",iZ,new iqc('"{0}" is not a valid {1} qualified name')); new _6("JSC_INVALID_DEFINE_NAME_ERROR",iZ,new iqc('"{0}" is not a valid JS identifier name'));new _6("JSC_INVALID_MISSING_DEFINE_ANNOTATION",iZ,new iqc("Missing @define annotation"));new _6("JSC_XMODULE_REQUIRE_ERROR",kZ,new iqc('namespace "{0}" is required in module {2} but provided in module {1}. Is module {2} missing a dependency on module {1}?'));xob=new _6("JSC_INVALID_CLOSURE_CALL_ERROR",iZ,new iqc("Closure dependency methods(goog.provide, goog.require, etc) must be called at file scope.")); new _6("JSC_NON_STRING_PASSED_TO_SET_CSS_NAME_MAPPING_ERROR",iZ,new iqc("goog.setCssNameMapping only takes an object literal with string values"));new _6("INVALID_CSS_RENAMING_MAP",kZ,new iqc("Invalid entries in css renaming map: {0}"));new _6(oLc,iZ,new iqc("incorrect use of goog.base: {0}"));new _6(oLc,iZ,new iqc("incorrect use of {0}.base: {1}"));new _6("JSC_CLOSURE_DEFINES_ERROR",iZ,new iqc("Invalid CLOSURE_DEFINES definition"));new _6("JSC_INVALID_FORWARD_DECLARE",iZ,new iqc("Malformed goog.forwardDeclaration")); Bob=new _6("JSC_USE_OF_GOOG_BASE",jZ,new iqc("goog.base is not compatible with ES5 strict mode.\nPlease use an alternative.\nFor EcmaScript classes use the super keyword, for traditional Closure classes\nuse the class specific base method instead. For example, for the constructor MyClass:\n MyClass.base(this, 'constructor')"))}function VZ(){VZ=aW;new _6(nHc,(lZ(),iZ),new iqc("@export has no effect here"));NZ=new _6(nHc,iZ,new iqc("@export is not allowed here in a non-legacy goog.module. Consider using goog.exportSymbol instead.")); OZ=new _6("JSC_GOOG_MODULE_IN_NON_MODULE",iZ,new iqc("goog.module() call must be the first statement in a module."));new _6("JSC_GOOG_MODULE_REFERENCES_THIS",iZ,new iqc("The body of a goog.module cannot reference 'this'."));new _6("JSC_GOOG_MODULE_USES_THROW",iZ,new iqc("The body of a goog.module cannot use 'throw'."));new _6("JSC_GOOG_MODULE_USES_GOOG_MODULE_GET",iZ,new iqc("It's illegal to use a 'goog.module.get' at the module top-level. Did you mean to use goog.require instead?"));new _6("JSC_DUPLICATE_NAME_SHORT_REQUIRE", iZ,new iqc("Found multiple goog.require statements importing identifier ''{0}''."));new _6("JSC_INVALID_DESTRUCTURING_REQUIRE",iZ,new iqc("Destructuring goog.require must be a simple object pattern."));new _6("JSC_INVALID_DESTRUCTURING_FORWARD_DECLARE",iZ,new iqc("Cannot destructure a forward-declared type"));SZ=new _6("JSC_LET_GOOG_REQUIRE",jZ,new iqc("Module imports must be constant. Please use 'const' instead of 'let'."));new _6("JSC_MULTIPLE_MODULES_IN_FILE",iZ,new iqc("There should only be a single goog.module() statement per file.")); new _6("JSC_MODULE_AND_PROVIDES",iZ,new iqc("A file using goog.module() may not also use goog.provide() statements."));new _6("JSC_ONE_REQUIRE_PER_DECLARATION",iZ,new iqc("There may only be one goog.require() per var/let/const declaration."));PZ=new _6("JSC_INCORRECT_SHORTNAME_CAPITALIZATION",jZ,new iqc("The capitalization of short name {0} is incorrect; it should be {1}."));new _6("JSC_EXPORT_NOT_A_MODULE_LEVEL_STATEMENT",iZ,new iqc("Exports must be a statement at the top-level of a module"));new _6("JSC_EXPORT_REPEATED_ERROR", iZ,new iqc("Name cannot be exported multiple times. Previous export on line {0}."));new _6("JSC_REFERENCE_TO_MODULE_GLOBAL_NAME",iZ,new iqc("References to the global name of a module are not allowed. Perhaps you meant exports?"));TZ=new _6("JSC_REFERENCE_TO_FULLY_QUALIFIED_IMPORT_NAME",jZ,new iqc("Reference to fully qualified import name ''{0}''. Imports in goog.module should use the return value of goog.require instead."));UZ=new _6("JSC_REFERENCE_TO_SHORT_IMPORT_BY_LONG_NAME_INCLUDING_SHORT_NAME", jZ,new iqc("Reference to fully qualified import name ''{0}''. Please use the short name ''{1}'' instead."));QZ=new _6("JSC_JSDOC_REFERENCE_TO_FULLY_QUALIFIED_IMPORT_NAME",jZ,new iqc("Reference to fully qualified import name ''{0}'' in JSDoc. Imports in goog.module should use the return value of goog.require instead."));RZ=new _6("JSC_JSDOC_REFERENCE_TO_SHORT_IMPORT_BY_LONG_NAME_INCLUDING_SHORT_NAME",jZ,new iqc("Reference to fully qualified import name ''{0}'' in JSDoc. Please use the short name ''{1}'' instead.")); new _6("JSC_REQUIRE_NOT_AT_TOP_LEVEL",iZ,new iqc("goog.require() must be called at file scope."))}function xbc(a){var b,c,d,e;d=false;e=a;f:{b=null;g:switch(e.length){case 2:c=e.charCodeAt(1);if(c==102){if(e.charCodeAt(0)==105){d=true;break f}}else if(c==110){if(e.charCodeAt(0)==105){d=true;break f}}else if(c==111)if(e.charCodeAt(0)==100){d=true;break f}break g;case 3:switch(e.charCodeAt(0)){case 102:if(e.charCodeAt(2)==114&&e.charCodeAt(1)==111){d=true;break f}break g;case 105:if(e.charCodeAt(2)== 116&&e.charCodeAt(1)==110){d=true;break f}break g;case 110:if(e.charCodeAt(2)==119&&e.charCodeAt(1)==101){d=true;break f}break g;case 116:if(e.charCodeAt(2)==121&&e.charCodeAt(1)==114){d=true;break f}break g;case 118:if(e.charCodeAt(2)==114&&e.charCodeAt(1)==97){d=true;break f}break g}break g;case 4:switch(e.charCodeAt(0)){case 98:b="byte";d=true;break g;case 99:c=e.charCodeAt(3);if(c==101){if(e.charCodeAt(2)==115&&e.charCodeAt(1)==97){d=true;break f}}else if(c==114)if(e.charCodeAt(2)==97&&e.charCodeAt(1)== 104){d=true;break f}break g;case 101:c=e.charCodeAt(3);if(c==101){if(e.charCodeAt(2)==115&&e.charCodeAt(1)==108){d=true;break f}}else if(c==109)if(e.charCodeAt(2)==117&&e.charCodeAt(1)==110){d=true;break f}break g;case 103:b="goto";d=true;break g;case 108:b="long";d=true;break g;case 110:b=qFc;d=true;break g;case 116:c=e.charCodeAt(3);if(c==101){if(e.charCodeAt(2)==117&&e.charCodeAt(1)==114){d=true;break f}}else if(c==115)if(e.charCodeAt(2)==105&&e.charCodeAt(1)==104){d=true;break f}break g;case 118:b= $Hc;d=true;break g;case 119:b="with";d=true;break g}break g;case 5:switch(e.charCodeAt(2)){case 97:b=OHc;d=true;break g;case 101:b="break";d=true;break g;case 105:b=RHc;d=true;break g;case 108:b=VHc;d=true;break g;case 110:c=e.charCodeAt(0);if(c==99){b=cJc;d=true}else if(c==102){b="final";d=true}break g;case 111:c=e.charCodeAt(0);if(c==102){b="float";d=true}else if(c==115){b="short";d=true}break g;case 112:b=THc;d=true;break g;case 114:b="throw";d=true;break g;case 116:b="catch";d=true;break g}break g; case 6:switch(e.charCodeAt(1)){case 97:b="native";d=true;break g;case 101:c=e.charCodeAt(0);if(c==100){b=zNc;d=true}else if(c==114){b=GHc;d=true}break g;case 104:b=WKc;d=true;break g;case 109:b=NHc;d=true;break g;case 111:b="double";d=true;break g;case 116:b=EMc;d=true;break g;case 117:b=DMc;d=true;break g;case 119:b="switch";d=true;break g;case 120:b=KHc;d=true;break g;case 121:b=iLc;d=true;break g}break g;case 7:switch(e.charCodeAt(1)){case 97:b=AMc;d=true;break g;case 101:b=LHc;d=true;break g; case 105:b=FHc;d=true;break g;case 111:b=kFc;d=true;break g;case 114:b=BMc;d=true;break g;case 120:b=PHc;d=true;break g}break g;case 8:switch(e.charCodeAt(0)){case 97:b="abstract";d=true;break g;case 99:b=XHc;d=true;break g;case 100:b=ZHc;d=true;break g;case 102:b=mFc;d=true;break g;case 118:b="volatile";d=true;break g}break g;case 9:c=e.charCodeAt(0);if(c==105){b=_Hc;d=true}else if(c==112){b=CMc;d=true}else if(c==116){b="transient";d=true}break g;case 10:c=e.charCodeAt(1);if(c==109){b=QHc;d=true}else if(c== 110){b=jLc;d=true}break g;case 12:b="synchronized";d=true;break g}if(b!=null&&b!=e&&!Xoc(b,e))return false}return d}function H_b(){H_b=aW;f_b=new I_b("PROGRAM",0);G$b=new I_b("FUNCTION_DECLARATION",1);a$b=new I_b("BLOCK",2);D_b=new I_b("VARIABLE_STATEMENT",3);B_b=new I_b("VARIABLE_DECLARATION",4);w$b=new I_b("EMPTY_STATEMENT",5);A$b=new I_b("EXPRESSION_STATEMENT",6);L$b=new I_b("IF_STATEMENT",7);v$b=new I_b("DO_WHILE_STATEMENT",8);E_b=new I_b("WHILE_STATEMENT",9);D$b=new I_b("FOR_IN_STATEMENT",10); F$b=new I_b("FOR_STATEMENT",11);C_b=new I_b("VARIABLE_DECLARATION_LIST",12);r$b=new I_b("CONTINUE_STATEMENT",13);b$b=new I_b("BREAK_STATEMENT",14);j_b=new I_b("RETURN_STATEMENT",15);F_b=new I_b("WITH_STATEMENT",16);e$b=new I_b("CASE_CLAUSE",17);t$b=new I_b("DEFAULT_CLAUSE",18);n_b=new I_b("SWITCH_STATEMENT",19);Q$b=new I_b("LABELLED_STATEMENT",20);s_b=new I_b("THROW_STATEMENT",21);f$b=new I_b(wNc,22);t_b=new I_b("TRY_STATEMENT",23);s$b=new I_b("DEBUGGER_STATEMENT",24);r_b=new I_b("THIS_EXPRESSION", 25);K$b=new I_b("IDENTIFIER_EXPRESSION",26);R$b=new I_b("LITERAL_EXPRESSION",27);WZb=new I_b("ARRAY_LITERAL_EXPRESSION",28);a_b=new I_b("OBJECT_LITERAL_EXPRESSION",29);i$b=new I_b("COMPREHENSION",30);k$b=new I_b("COMPREHENSION_IF",31);j$b=new I_b("COMPREHENSION_FOR",32);J$b=new I_b("GET_ACCESSOR",33);k_b=new I_b("SET_ACCESSOR",34);g_b=new I_b("PROPERTY_NAME_ASSIGNMENT",35);l$b=new I_b("COMPUTED_PROPERTY_DEFINITION",36);m$b=new I_b("COMPUTED_PROPERTY_GETTER",37);o$b=new I_b("COMPUTED_PROPERTY_METHOD", 38);p$b=new I_b("COMPUTED_PROPERTY_SETTER",39);V$b=new I_b("MISSING_PRIMARY_EXPRESSION",40);h$b=new I_b("COMMA_EXPRESSION",41);_Zb=new I_b("BINARY_OPERATOR",42);q$b=new I_b("CONDITIONAL_EXPRESSION",43);y_b=new I_b("UNARY_EXPRESSION",44);A_b=new I_b("UPDATE_EXPRESSION",45);S$b=new I_b("MEMBER_EXPRESSION",46);Z$b=new I_b("NEW_EXPRESSION",47);VZb=new I_b("ARGUMENT_LIST",48);c$b=new I_b("CALL_EXPRESSION",49);g$b=new I_b("CLASS_DECLARATION",50);P$b=new I_b("INTERFACE_DECLARATION",51);X$b=new I_b(tNc,52); Y$b=new I_b("NAMESPACE_NAME",53);x$b=new I_b("ENUM_DECLARATION",54);T$b=new I_b("MEMBER_LOOKUP_EXPRESSION",55);e_b=new I_b("PAREN_EXPRESSION",56);B$b=new I_b(ANc,57);m_b=new I_b("SUPER_EXPRESSION",58);XZb=new I_b(QNc,59);ZZb=new I_b("ASSIGNMENT_REST_ELEMENT",60);b_b=new I_b(RNc,61);C$b=new I_b("FORMAL_PARAMETER_LIST",62);l_b=new I_b("SPREAD_EXPRESSION",63);_$b=new I_b(WLc,64);i_b=new I_b("REST_PARAMETER",65);W$b=new I_b("MODULE_IMPORT",66);y$b=new I_b("EXPORT_DECLARATION",67);z$b=new I_b("EXPORT_SPECIFIER", 68);M$b=new I_b("IMPORT_DECLARATION",69);N$b=new I_b("IMPORT_SPECIFIER",70);E$b=new I_b("FOR_OF_STATEMENT",71);G_b=new I_b("YIELD_EXPRESSION",72);u$b=new I_b("DEFAULT_PARAMETER",73);o_b=new I_b("TEMPLATE_LITERAL_EXPRESSION",74);p_b=new I_b("TEMPLATE_LITERAL_PORTION",75);q_b=new I_b("TEMPLATE_SUBSTITUTION",76);w_b=new I_b("TYPE_NAME",77);x_b=new I_b("TYPE_QUERY",78);u_b=new I_b("TYPED_PARAMETER",79);c_b=new I_b(uNc,80);d_b=new I_b("PARAMETERIZED_TYPE_TREE",81);YZb=new I_b(SNc,82);h_b=new I_b(TNc,83); z_b=new I_b(UNc,84);H$b=new I_b(VNc,85);I$b=new I_b(WNc,86);U$b=new I_b("MEMBER_VARIABLE",87);n$b=new I_b("COMPUTED_PROPERTY_MEMBER_VARIABLE",88);v_b=new I_b(vNc,89);UZb=new I_b(qNc,90);O$b=new I_b(sNc,91);d$b=new I_b(rNc,92);$$b=new I_b("NEW_TARGET_EXPRESSION",93);$Zb=new I_b("AWAIT_EXPRESSION",94)}function YXb(){YXb=aW;tWb=new _Xb("END_OF_FILE",0,"End of File");yWb=new _Xb(SGc,1,"error");GWb=new _Xb("IDENTIFIER",2,"identifier");_Vb=new $Xb("BREAK",3);cWb=new $Xb("CASE",4);dWb=new $Xb(wNc,5);mWb= new $Xb(xNc,6);nWb=new $Xb(yNc,7);pWb=new $Xb(GLc,8);qWb=new $Xb("DELETE",9);rWb=new $Xb("DO",10);sWb=new $Xb("ELSE",11);CWb=new $Xb(ANc,12);DWb=new $Xb("FOR",13);EWb=new $Xb(CKc,14);HWb=new $Xb("IF",15);KWb=new $Xb("IN",16);LWb=new $Xb(mNc,17);WWb=new $Xb("NEW",18);sXb=new $Xb(xMc,19);GXb=new $Xb(BNc,20);KXb=new $Xb(yMc,21);LXb=new $Xb("THROW",22);OXb=new $Xb("TRY",23);QXb=new $Xb(CNc,24);TXb=new $Xb("VAR",25);UXb=new $Xb("VOID",26);VXb=new $Xb("WHILE",27);WXb=new $Xb("WITH",28);eWb=new $Xb(BKc, 29);lWb=new $Xb("CONST",30);uWb=new $Xb(oMc,31);zWb=new $Xb(qMc,32);AWb=new $Xb(pMc,33);JWb=new $Xb(DNc,34);FXb=new $Xb(oNc,35);IWb=new $Xb(rMc,36);MWb=new $Xb(sMc,37);QWb=new $Xb("LET",38);fXb=new $Xb(tMc,39);nXb=new $Xb(uMc,40);oXb=new $Xb(vMc,41);pXb=new $Xb(wMc,42);DXb=new $Xb("STATIC",43);XXb=new $Xb("YIELD",44);bXb=new _Xb("OPEN_CURLY",45,"{");gWb=new _Xb("CLOSE_CURLY",46,"}");cXb=new _Xb("OPEN_PAREN",47,"(");hWb=new _Xb("CLOSE_PAREN",48,")");dXb=new _Xb("OPEN_SQUARE",49,"[");iWb=new _Xb("CLOSE_SQUARE", 50,"]");iXb=new _Xb("PERIOD",51,".");vXb=new _Xb("SEMI_COLON",52,";");kWb=new _Xb("COMMA",53,",");aXb=new _Xb("OPEN_ANGLE",54,"<");fWb=new _Xb("CLOSE_ANGLE",55,">");PWb=new _Xb("LESS_EQUAL",56,"<=");FWb=new _Xb("GREATER_EQUAL",57,">=");XVb=new _Xb("ARROW",58,"=>");wWb=new _Xb("EQUAL_EQUAL",59,"==");XWb=new _Xb("NOT_EQUAL",60,"!=");xWb=new _Xb("EQUAL_EQUAL_EQUAL",61,"===");YWb=new _Xb("NOT_EQUAL_EQUAL",62,"!==");jXb=new _Xb("PLUS",63,"+");RWb=new _Xb("MINUS",64,"-");zXb=new _Xb("STAR",65,"*");BXb= new _Xb("STAR_STAR",66,"**");gXb=new _Xb("PERCENT",67,"%");lXb=new _Xb("PLUS_PLUS",68,"++");TWb=new _Xb("MINUS_MINUS",69,"--");NWb=new _Xb("LEFT_SHIFT",70,"<<");tXb=new _Xb("RIGHT_SHIFT",71,">>");RXb=new _Xb("UNSIGNED_RIGHT_SHIFT",72,">>>");UVb=new _Xb("AMPERSAND",73,"&");ZVb=new _Xb("BAR",74,"|");aWb=new _Xb("CARET",75,"^");YVb=new _Xb("BANG",76,"!");MXb=new _Xb("TILDE",77,"~");WVb=new _Xb("AND",78,"&&");eXb=new _Xb("OR",79,"||");qXb=new _Xb("QUESTION",80,"?");jWb=new _Xb("COLON",81,":");vWb=new _Xb("EQUAL", 82,"=");kXb=new _Xb("PLUS_EQUAL",83,"+=");SWb=new _Xb("MINUS_EQUAL",84,"-=");AXb=new _Xb("STAR_EQUAL",85,"*=");CXb=new _Xb("STAR_STAR_EQUAL",86,"**=");hXb=new _Xb("PERCENT_EQUAL",87,"%=");OWb=new _Xb("LEFT_SHIFT_EQUAL",88,"<<=");uXb=new _Xb("RIGHT_SHIFT_EQUAL",89,">>=");SXb=new _Xb("UNSIGNED_RIGHT_SHIFT_EQUAL",90,">>>=");VVb=new _Xb("AMPERSAND_EQUAL",91,"&=");$Vb=new _Xb("BAR_EQUAL",92,"|=");bWb=new _Xb("CARET_EQUAL",93,"^=");wXb=new _Xb("SLASH",94,"/");xXb=new _Xb("SLASH_EQUAL",95,"/=");mXb=new _Xb("POUND", 96,"#");$Wb=new $Xb(WLc,97);NXb=new $Xb(MIc,98);BWb=new $Xb(LIc,99);_Wb=new _Xb(XLc,100,"number literal");EXb=new _Xb(YLc,101,"string literal");rXb=new _Xb("REGULAR_EXPRESSION",102,"regular expression literal");yXb=new _Xb("SPREAD",103,JHc);HXb=new _Xb("TEMPLATE_HEAD",104,"template head");IXb=new _Xb("TEMPLATE_MIDDLE",105,"template middle");JXb=new _Xb("TEMPLATE_TAIL",106,"template tail");ZWb=new _Xb("NO_SUBSTITUTION_TEMPLATE",107,"no substitution template");PXb=new $Xb(zMc,108);oWb=new $Xb(ENc,109); UWb=new $Xb("MODULE",110);VWb=new $Xb(FNc,111)}function oVb(a){var b,c;sVb(a);b=a.d;if(!_Ub(a,a.d))return XUb(a,(YXb(),tWb),b);c=aVb(a);switch(c){case 123:return XUb(a,(YXb(),bXb),b);case 125:return XUb(a,(YXb(),gWb),b);case 40:return XUb(a,(YXb(),cXb),b);case 41:return XUb(a,(YXb(),hWb),b);case 91:return XUb(a,(YXb(),dXb),b);case 93:return XUb(a,(YXb(),iWb),b);case 46:if(JVb(_Ub(a,a.d)?Soc(a.e.a,a.d):0))return tVb(a),jVb(a,b);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==46&&(_Ub(a,a.d+1)?Soc(a.e.a,a.d+1):0)== 46){aVb(a);aVb(a);return XUb(a,(YXb(),yXb),b)}return XUb(a,(YXb(),iXb),b);case 59:return XUb(a,(YXb(),vXb),b);case 44:return XUb(a,(YXb(),kWb),b);case 126:return XUb(a,(YXb(),MXb),b);case 63:return XUb(a,(YXb(),qXb),b);case 58:return XUb(a,(YXb(),jWb),b);case 60:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 60:aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),OWb),b)}return XUb(a,(YXb(),NWb),b);case 61:aVb(a);return XUb(a,(YXb(),PWb),b);default:return XUb(a,(YXb(),aXb),b)}case 62:if(a.f> 0)return XUb(a,(YXb(),fWb),b);switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 62:aVb(a);switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 61:aVb(a);return XUb(a,(YXb(),uXb),b);case 62:aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),SXb),b)}return XUb(a,(YXb(),RXb),b);default:return XUb(a,(YXb(),tXb),b)}case 61:aVb(a);return XUb(a,(YXb(),FWb),b);default:return XUb(a,(YXb(),fWb),b)}case 61:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 61:aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a, (YXb(),xWb),b)}return XUb(a,(YXb(),wWb),b);case 62:aVb(a);return XUb(a,(YXb(),XVb),b);default:return XUb(a,(YXb(),vWb),b)}case 33:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),YWb),b)}return XUb(a,(YXb(),XWb),b)}return XUb(a,(YXb(),YVb),b);case 42:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),AXb),b)}else if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==42){aVb(a);if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),CXb), b)}else return XUb(a,(YXb(),BXb),b)}return XUb(a,(YXb(),zXb),b);case 37:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),hXb),b)}return XUb(a,(YXb(),gXb),b);case 94:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),bWb),b)}return XUb(a,(YXb(),aWb),b);case 47:if((_Ub(a,a.d)?Soc(a.e.a,a.d):0)==61){aVb(a);return XUb(a,(YXb(),xXb),b)}return XUb(a,(YXb(),wXb),b);case 43:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 43:aVb(a);return XUb(a,(YXb(),lXb),b);case 61:aVb(a);return XUb(a, (YXb(),kXb),b);default:return XUb(a,(YXb(),jXb),b)}case 45:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 45:aVb(a);return XUb(a,(YXb(),TWb),b);case 61:aVb(a);return XUb(a,(YXb(),SWb),b);default:return XUb(a,(YXb(),RWb),b)}case 38:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 38:aVb(a);return XUb(a,(YXb(),WVb),b);case 61:aVb(a);return XUb(a,(YXb(),VVb),b);default:return XUb(a,(YXb(),UVb),b)}case 124:switch(_Ub(a,a.d)?Soc(a.e.a,a.d):0){case 124:aVb(a);return XUb(a,(YXb(),eXb),b);case 61:aVb(a);return XUb(a,(YXb(), $Vb),b);default:return XUb(a,(YXb(),ZVb),b)}case 35:return XUb(a,(YXb(),mXb),b);case 48:return mVb(a,b);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return tVb(a),kVb(a,b);case 34:case 39:return nVb(a,b,c);case 96:return!_Ub(a,a.d)&&gVb(a,RRb(a.e.b,b),ONc,pD(kD(kT,1),KFc,1,5,[])),dVb(a,(YXb(),ZWb),HXb);default:return lVb(a,b,c)}}function Uhc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb;g=new kdc(a); Yhc(a,(zhc(),Bgc),g);w=new gjc(a);Yhc(a,Sgc,w);G=new ojc(a);Yhc(a,Ygc,G);V=new Ikc(a);Yhc(a,lhc,V);db=new hmc(a,false);Yhc(a,vhc,db);hb=new hmc(a,true);Yhc(a,Cgc,hb);gb=new umc(a);Yhc(a,yhc,gb);b=new Qcc(a);Yhc(a,wgc,b);a.g=new Nkc(a,"IObject#KEY1");a.f=new Nkc(a,"IObject#VALUE");a.a=new Nkc(a,"T");Z=new nec(a,null,null,true,null);Yhc(a,phc,Z);I=new _ec(a,CJc,new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[b])),null),null,Mhc(a,(_n(),new Mx(so(pD(kD(kT,1),KFc,1,5,[a.g,a.f])))),null),true,true);I.b.b=(me(I.f== (Sfc(),Pfc)||I.f==Qfc,lOc,I),Tbc(I.k));Wec(I,Z,null);Yhc(a,$gc,I);M=(me(I.f==Pfc||I.f==Qfc,lOc,I),Tbc(I.k));Yhc(a,chc,M);L=Sec(I);Yhc(a,bhc,L);n=new _ec(a,yJc,new _cc(a,Lhc(a,true,pD(kD(nS,1),MLc,24,0,[b])),db),null,null,true,true);Xec(n,M,null);Yhc(a,Jgc,n);o=Sec(n);Yhc(a,Lgc,o);v=new Ric(a);Yhc(a,Rgc,v);t=new Bic(a);Yhc(a,Pgc,t);u=new $ic(a);Yhc(a,Qgc,u);c=new _ec(a,wJc,new _cc(a,Lhc(a,true,pD(kD(nS,1),MLc,24,0,[b])),null),null,Vkc(Mhc(a,new By(be(a.a)),null),Mhc(a,new By(be(a.f)),new By(be(a.a)))), true,true);c.b.b=(me(c.f==Pfc||c.f==Qfc,lOc,c),Tbc(c.k));Sec(c);Yhc(a,xgc,c);d=(me(c.f==Pfc||c.f==Qfc,lOc,c),Tbc(c.k));Yhc(a,ygc,d);e=new _ec(a,xJc,new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[b])),g),null,null,true,true);Sec(e);Yhc(a,zgc,e);f=(me(e.f==Pfc||e.f==Qfc,lOc,e),Tbc(e.k));Yhc(a,Agc,f);h=new _ec(a,"Date",new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[db,db,db,db,db,db,db])),V),null,null,true,true);Sec(h);Yhc(a,Dgc,h);i=(me(h.f==Pfc||h.f==Qfc,lOc,h),Tbc(h.k));Yhc(a,Egc,i);j=new Bfc(a,sJc);Yhc(a,Fgc,j);k= (me(j.f==Pfc||j.f==Qfc,lOc,j),Tbc(j.k));Yhc(a,Ggc,k);l=new Bfc(a,"EvalError");Xec(l,k,null);Yhc(a,Hgc,l);m=(me(l.f==Pfc||l.f==Qfc,lOc,l),Tbc(l.k));Yhc(a,Igc,m);N=new Bfc(a,tJc);Xec(N,k,null);Yhc(a,dhc,N);O=(me(N.f==Pfc||N.f==Qfc,lOc,N),Tbc(N.k));Yhc(a,ehc,O);P=new Bfc(a,uJc);Xec(P,k,null);Yhc(a,fhc,P);Q=(me(P.f==Pfc||P.f==Qfc,lOc,P),Tbc(P.k));Yhc(a,ghc,Q);X=new Bfc(a,vJc);Xec(X,k,null);Yhc(a,nhc,X);Y=(me(X.f==Pfc||X.f==Qfc,lOc,X),Tbc(X.k));Yhc(a,ohc,Y);$=new Bfc(a,"TypeError");Xec($,k,null);Yhc(a, rhc,$);ab=(me($.f==Pfc||$.f==Qfc,lOc,$),Tbc($.k));Yhc(a,shc,ab);eb=new Bfc(a,"URIError");Xec(eb,k,null);Yhc(a,whc,eb);fb=(me(eb.f==Pfc||eb.f==Qfc,lOc,eb),Tbc(eb.k));Yhc(a,xhc,fb);B=new _ec(a,zJc,new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[b])),G),null,null,true,true);Sec(B);Yhc(a,Ugc,B);C=(me(B.f==Pfc||B.f==Qfc,lOc,B),Tbc(B.k));Yhc(a,Vgc,C);R=new _ec(a,AJc,new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[b,b])),null),null,null,true,true);R.b.b=(me(R.f==Pfc||R.f==Qfc,lOc,R),Tbc(R.k));Sec(R);Yhc(a,hhc,R);S=(me(R.f== Pfc||R.f==Qfc,lOc,R),Tbc(R.k));Yhc(a,ihc,S);T=new _ec(a,GGc,new _cc(a,Jhc(a,pD(kD(nS,1),MLc,24,0,[b])),V),null,null,true,true);Sec(T);Yhc(a,jhc,T);U=(me(T.f==Pfc||T.f==Qfc,lOc,T),Tbc(T.k));Yhc(a,khc,U);A=Nhc(a,pD(kD(nS,1),MLc,24,0,[w,gb]));Yhc(a,Tgc,A);J=Nhc(a,pD(kD(nS,1),MLc,24,0,[M,G,V]));Yhc(a,_gc,J);K=Nhc(a,pD(kD(nS,1),MLc,24,0,[M,G,V,g]));Yhc(a,ahc,K);F=Nhc(a,pD(kD(nS,1),MLc,24,0,[G,V,g]));Yhc(a,Xgc,F);D=Nhc(a,pD(kD(nS,1),MLc,24,0,[G,V]));Yhc(a,Wgc,D);W=Nhc(a,pD(kD(nS,1),MLc,24,0,[U,V]));Yhc(a, mhc,W);H=Nhc(a,pD(kD(nS,1),MLc,24,0,[C,G]));Yhc(a,Zgc,H);cb=Ehc(a,db,pD(kD(nS,1),MLc,24,0,[db]));Yhc(a,uhc,cb);bb=new cic(a,new _cc(a,Lhc(a,true,pD(kD(nS,1),MLc,24,0,[db])),db),db);Yhc(a,thc,bb);Yhc(a,Kgc,bb);n.k=bb;he(!(!!bb.g||!bb.u));bb.p=o;s=Ghc(a,v,pD(kD(nS,1),MLc,24,0,[b]));Yhc(a,Ogc,s);q=new _ec(a,"global this",new _cc(a,Lhc(a,false,pD(kD(nS,1),MLc,24,0,[b])),G),null,null,true,true);p=(me(q.f==Pfc||q.f==Qfc,lOc,q),Tbc(q.k));Yhc(a,Mgc,p);r=Ghc(a,b,pD(kD(nS,1),MLc,24,0,[v]));Yhc(a,Ngc,r);Zhc(a, zHc,I)}function jub(){jub=aW;new _6("JSC_INTERNAL_ERROR_UNEXPECTED_TOKEN",(lZ(),iZ),new iqc("Internal Error: TypeCheck doesn''t know how to handle {0}"));Itb=new _6("JSC_DETERMINISTIC_TEST",kZ,new iqc("condition always evaluates to {2}\nleft : {0}\nright: {1}"));Utb=new _6("JSC_INEXISTENT_ENUM_ELEMENT",kZ,new iqc("element {0} does not exist on this enum"));Vtb=new _6(ILc,kZ,new iqc(bLc));eub=new _6("JSC_POSSIBLE_INEXISTENT_PROPERTY",jZ,new iqc(bLc));Wtb=new _6(ILc,jZ,new iqc("Property {0} never defined on {1}. Did you mean {2}?")); cub=new _6("JSC_NOT_A_CONSTRUCTOR",kZ,new iqc("cannot instantiate non-constructor"));Xtb=new _6("JSC_INSTANTIATE_ABSTRACT_CLASS",kZ,new iqc("cannot instantiate abstract class"));Etb=new _6("JSC_BAD_TYPE_FOR_BIT_OPERATION",kZ,new iqc("operator {0} cannot be applied to {1}"));dub=new _6("JSC_NOT_FUNCTION_TYPE",kZ,new iqc("{0} expressions are not callable"));Htb=new _6("JSC_CONSTRUCTOR_NOT_CALLABLE",kZ,new iqc($Kc));Btb=new _6("JSC_ABSTRACT_SUPER_METHOD_NOT_CALLABLE",kZ,new iqc(fLc));Mtb=new _6("JSC_FUNCTION_MASKS_VARIABLE", kZ,new iqc("function {0} masks variable (IE bug)"));aub=new _6("JSC_MULTIPLE_VAR_DEF",kZ,new iqc("declaration of multiple variables with shared type information"));Jtb=new _6("JSC_ENUM_DUP",iZ,new iqc("enum element {0} already defined"));$tb=new _6("JSC_INVALID_INTERFACE_MEMBER_DECLARATION",kZ,new iqc("interface members can only be empty property declarations, empty functions{0}"));Ytb=new _6("JSC_INTERFACE_METHOD_NOT_EMPTY",kZ,new iqc(EKc));Ftb=new _6("JSC_CONFLICTING_EXTENDED_TYPE",kZ,new iqc(JLc)); Ktb=new _6("JSC_ES5_CLASS_EXTENDING_ES6_CLASS",kZ,new iqc("ES5 class {0} cannot extend ES6 class {1}"));new _6("JSC_INTERFACE_EXTENDS_LOOP",kZ,new iqc("extends loop involving {0}, loop: {1}"));Gtb=new _6("JSC_CONFLICTING_IMPLEMENTED_TYPE",kZ,new iqc(KLc));Dtb=new _6("JSC_IMPLEMENTS_NON_INTERFACE",kZ,new iqc("can only implement interfaces"));Otb=new _6("JSC_HIDDEN_SUPERCLASS_PROPERTY",jZ,new iqc("property {0} already defined on superclass {1}; use @override to override it"));Ntb=new _6("JSC_HIDDEN_INTERFACE_PROPERTY", jZ,new iqc("property {0} already defined on interface {1}; use @override to override it"));Ptb=new _6("JSC_HIDDEN_SUPERCLASS_PROPERTY_MISMATCH",kZ,new iqc("mismatch of the {0} property type and the type of the property it overrides from superclass {1}\noriginal: {2}\noverride: {3}"));gub=new _6("JSC_UNKNOWN_OVERRIDE",kZ,new iqc("property {0} not defined on any superclass of {1}"));Ztb=new _6("JSC_INTERFACE_METHOD_OVERRIDE",kZ,new iqc("property {0} is already defined by the {1} extended interface")); fub=new _6("JSC_UNKNOWN_EXPR_TYPE",jZ,new iqc("could not determine the type of this expression"));hub=new _6("JSC_UNRESOLVED_TYPE",kZ,new iqc("could not resolve the name {0} to a type"));iub=new _6("JSC_WRONG_ARGUMENT_COUNT",kZ,new iqc(cLc));Qtb=new _6("JSC_ILLEGAL_IMPLICIT_CAST",kZ,new iqc("Illegal annotation on {0}. @implicitCast may only be used in externs."));Ttb=new _6("JSC_INCOMPATIBLE_EXTENDED_PROPERTY_TYPE",kZ,new iqc("Interface {0} has a property {1} with incompatible types in its super interfaces {2} and {3}")); Ltb=new _6("JSC_EXPECTED_THIS_TYPE",kZ,new iqc('"{0}" must be called with a "this" type'));_tb=new _6("JSC_IN_USED_WITH_STRUCT",kZ,new iqc(aLc));Stb=new _6("JSC_ILLEGAL_PROPERTY_CREATION",kZ,new iqc("Cannot add a property to a struct instance after it is constructed. (If you already declared the property, make sure to give it a type.)"));Rtb=new _6("JSC_ILLEGAL_OBJLIT_KEY",kZ,new iqc(_Kc));bub=new _6("JSC_NON_STRINGIFIABLE_OBJECT_KEY",kZ,new iqc('Object type "{0}" contains non-stringifiable key and it may lead to an error. Please use ES6 Map instead or implement your own Map structure.')); Atb=new _6("JSC_ABSTRACT_METHOD_IN_CONCRETE_CLASS",kZ,new iqc("Abstract methods can only appear in abstract classes. Please declare the class as @abstract"));Ctb=new p6(pD(kD(eK,1),KFc,5,0,[Itb,Utb,Vtb,eub,Wtb,cub,Xtb,Etb,dub,Htb,Mtb,aub,Jtb,$tb,Ytb,Ftb,Gtb,Dtb,Ptb,gub,Ztb,hub,iub,Qtb,Ttb,Ltb,_tb,Stb,Rtb,bub,Atb,Btb,Ktb,(qqb(),nqb),pqb,(Nub(),Mub),Kub,Gub,Jub,(ncb(),kcb)]))}function tbc(){tbc=aW;Oac=new ubc(xMc,0);Q8b=new ubc("BITOR",1);R8b=new ubc("BITXOR",2);O8b=new ubc("BITAND",3);t9b=new ubc("EQ", 4);qac=new ubc("NE",5);gac=new ubc("LT",6);dac=new ubc("LE",7);M9b=new ubc("GT",8);G9b=new ubc("GE",9);fac=new ubc("LSH",10);Qac=new ubc("RSH",11);mbc=new ubc("URSH",12);s8b=new ubc("ADD",13);$ac=new ubc("SUB",14);lac=new ubc("MUL",15);m9b=new ubc("DIV",16);jac=new ubc("MOD",17);v9b=new ubc("EXPONENT",18);uac=new ubc("NOT",19);P8b=new ubc("BITNOT",20);Iac=new ubc("POS",21);rac=new ubc("NEG",22);sac=new ubc("NEW",23);k9b=new ubc("DELPROP",24);ibc=new ubc(CNc,25);K9b=new ubc("GETPROP",26);J9b=new ubc("GETELEM", 27);V8b=new ubc("CALL",28);mac=new ubc("NAME",29);xac=new ubc(XLc,30);Xac=new ubc(YLc,31);vac=new ubc(WLc,32);ebc=new ubc(yMc,33);A9b=new ubc(LIc,34);gbc=new ubc(MIc,35);Tac=new ubc("SHEQ",36);Uac=new ubc("SHNE",37);Lac=new ubc("REGEXP",38);fbc=new ubc("THROW",39);U9b=new ubc("IN",40);X9b=new ubc(mNc,41);w8b=new ubc("ARRAYLIT",42);zac=new ubc("OBJECTLIT",43);hbc=new ubc("TRY",44);Eac=new ubc("PARAM_LIST",45);b9b=new ubc("COMMA",46);z8b=new ubc("ASSIGN",47);C8b=new ubc("ASSIGN_BITOR",48);D8b=new ubc("ASSIGN_BITXOR", 49);B8b=new ubc("ASSIGN_BITAND",50);G8b=new ubc("ASSIGN_LSH",51);J8b=new ubc("ASSIGN_RSH",52);L8b=new ubc("ASSIGN_URSH",53);A8b=new ubc("ASSIGN_ADD",54);K8b=new ubc("ASSIGN_SUB",55);I8b=new ubc("ASSIGN_MUL",56);E8b=new ubc("ASSIGN_DIV",57);H8b=new ubc("ASSIGN_MOD",58);F8b=new ubc("ASSIGN_EXPONENT",59);N9b=new ubc("HOOK",60);Cac=new ubc("OR",61);t8b=new ubc("AND",62);V9b=new ubc("INC",63);g9b=new ubc("DEC",64);E9b=new ubc(CKc,65);O9b=new ubc("IF",66);abc=new ubc(BNc,67);X8b=new ubc("CASE",68);i9b= new ubc("DEFAULT_CASE",69);qbc=new ubc("WHILE",70);n9b=new ubc("DO",71);B9b=new ubc("FOR",72);C9b=new ubc("FOR_IN",73);U8b=new ubc("BREAK",74);e9b=new ubc(xNc,75);nbc=new ubc("VAR",76);rbc=new ubc("WITH",77);Z8b=new ubc(wNc,78);obc=new ubc("VOID",79);p9b=new ubc("EMPTY",80);Pac=new ubc("ROOT",81);S8b=new ubc("BLOCK",82);_9b=new ubc("LABEL",83);z9b=new ubc("EXPR_RESULT",84);Rac=new ubc("SCRIPT",85);L9b=new ubc("GETTER_DEF",86);Sac=new ubc("SETTER_DEF",87);d9b=new ubc("CONST",88);f9b=new ubc(yNc,89); aac=new ubc("LABEL_NAME",90);Yac=new ubc("STRING_KEY",91);Y8b=new ubc("CAST",92);x8b=new ubc(QNc,93);Aac=new ubc(RNc,94);l9b=new ubc("DESTRUCTURING_LHS",95);$8b=new ubc(BKc,96);_8b=new ubc("CLASS_MEMBERS",97);hac=new ubc("MEMBER_FUNCTION_DEF",98);_ac=new ubc(oNc,99);eac=new ubc("LET",100);D9b=new ubc("FOR_OF",101);sbc=new ubc("YIELD",102);M8b=new ubc("AWAIT",103);Q9b=new ubc(DNc,104);S9b=new ubc("IMPORT_SPECS",105);R9b=new ubc("IMPORT_SPEC",106);T9b=new ubc("IMPORT_STAR",107);w9b=new ubc(qMc,108); y9b=new ubc("EXPORT_SPECS",109);x9b=new ubc("EXPORT_SPEC",110);kac=new ubc("MODULE_BODY",111);Mac=new ubc("REST",112);Vac=new ubc("SPREAD",113);c9b=new ubc("COMPUTED_PROP",114);bbc=new ubc("TAGGED_TEMPLATELIT",115);cbc=new ubc("TEMPLATELIT",116);dbc=new ubc("TEMPLATELIT_SUB",117);j9b=new ubc("DEFAULT_VALUE",118);tac=new ubc(pNc,119);Zac=new ubc(fOc,120);T8b=new ubc(gOc,121);yac=new ubc(hOc,122);F9b=new ubc(VNc,123);Dac=new ubc("PARAMETERIZED_TYPE",124);lbc=new ubc(UNc,125);v8b=new ubc("ANY_TYPE", 126);wac=new ubc("NULLABLE_TYPE",127);pbc=new ubc("VOID_TYPE",128);Nac=new ubc("REST_PARAMETER_TYPE",129);nac=new ubc("NAMED_TYPE",130);Bac=new ubc(uNc,131);Kac=new ubc(TNc,132);kbc=new ubc("UNDEFINED_TYPE",133);y8b=new ubc(SNc,134);H9b=new ubc("GENERIC_TYPE",135);I9b=new ubc(WNc,136);u8b=new ubc($Mc,137);Fac=new ubc("PIPE",138);Wac=new ubc("STAR",139);s9b=new ubc("EOC",140);Jac=new ubc("QMARK",141);o9b=new ubc("ELLIPSIS",142);N8b=new ubc("BANG",143);u9b=new ubc("EQUALS",144);bac=new ubc("LB",145); cac=new ubc("LC",146);a9b=new ubc("COLON",147);Y9b=new ubc(sMc,148);Z9b=new ubc("INTERFACE_EXTENDS",149);$9b=new ubc("INTERFACE_MEMBERS",150);q9b=new ubc(oMc,151);r9b=new ubc("ENUM_MEMBERS",152);P9b=new ubc(rMc,153);jbc=new ubc(vNc,154);h9b=new ubc(ENc,155);iac=new ubc("MEMBER_VARIABLE_DEF",156);W9b=new ubc(sNc,157);W8b=new ubc(rNc,158);oac=new ubc(FNc,159);pac=new ubc("NAMESPACE_ELEMENTS",160);Gac=new ubc("PLACEHOLDER1",161);Hac=new ubc("PLACEHOLDER2",162)}function jeb(){jeb=aW;Pdb=new _6("JSC_NTI_DUPLICATE_JSDOC", (lZ(),kZ),new iqc("Found two JsDoc comments for variable: {0}.\n"));ceb=new _6("JSC_NTI_REDECLARED_PROPERTY",kZ,new iqc("Found two declarations for property {0} on {1}.\n"));Ydb=new _6("JSC_NTI_INVALID_PROP_OVERRIDE",kZ,new iqc("Invalid redeclaration of property {0}.\ninherited type : {1}\noverriding type : {2}\n"));Ndb=new _6("JSC_NTI_CTOR_IN_DIFFERENT_SCOPE",kZ,new iqc("Modifying the prototype is only allowed if the constructor is in the same scope\n"));heb=new _6("JSC_NTI_UNRECOGNIZED_TYPE_NAME", kZ,new iqc("Type annotation references non-existent type {0}."));eeb=new _6("JSC_NTI_STRUCT_WITHOUT_CTOR_OR_INTERF",kZ,new iqc("@struct used without @constructor, @interface, or @record."));Odb=new _6("JSC_NTI_DICT_WITHOUT_CTOR",kZ,new iqc("@dict used without @constructor."));Rdb=new _6("JSC_NTI_EXPECTED_CONSTRUCTOR",kZ,new iqc("Expected constructor name but found {0}."));Sdb=new _6("JSC_NTI_EXPECTED_INTERFACE",kZ,new iqc("Expected interface name but found {0}."));Udb=new _6("JSC_NTI_INEXISTENT_PARAM", kZ,new iqc(xKc));Ldb=new _6("JSC_NTI_CONST_WITHOUT_INITIALIZER",kZ,new iqc("Constants must be initialized when they are defined."));Mdb=new _6("JSC_NTI_COULD_NOT_INFER_CONST_TYPE",kZ,new iqc("All constants must be typed. The compiler could not infer the type of constant {0}. Please use an explicit type annotation. For more information, see:\nhttps://github.com/google/closure-compiler/wiki/Using-NTI-(new-type-inference)#warnings-about-uninferred-constants"));_db=new _6("JSC_NTI_MISPLACED_CONST_ANNOTATION", kZ,new iqc("This property cannot be @const. The @const annotation is only allowed for properties of namespaces, prototype properties, static properties of constructors, and properties of the form this.prop declared inside constructors and prototype methods."));Idb=new _6("JSC_NTI_CANNOT_OVERRIDE_FINAL_METHOD",kZ,new iqc("Final method {0} cannot be overriden."));Hdb=new _6("JSC_NTI_CANNOT_INIT_TYPEDEF",kZ,new iqc("A typedef variable represents a type name; it cannot be assigned a value."));Fdb=new _6("JSC_NTI_ANONYMOUS_NOMINAL_TYPE", kZ,new iqc("Must specify a name when defining a class or interface."));$db=new _6("JSC_NTI_MALFORMED_ENUM",kZ,new iqc("An enum must be initialized to a non-empty object literal."));Qdb=new _6("JSC_NTI_DUPLICATE_PROP_IN_ENUM",kZ,new iqc("Property {0} appears twice in the enum declaration."));Zdb=new _6("JSC_NTI_LENDS_ON_BAD_TYPE",kZ,new iqc("May only lend properties to namespaces, constructors and their prototypes. Found {0}."));Tdb=new _6("JSC_NTI_FUNCTION_CONSTRUCTOR_NOT_DEFINED",iZ,new iqc("You must provide externs that define the built-in Function constructor.")); Xdb=new _6("JSC_NTI_INVALID_INTERFACE_PROP_INITIALIZER",kZ,new iqc("Invalid initialization of interface property."));deb=new _6("JSC_NTI_SETTER_WITH_RETURN",kZ,new iqc("Cannot declare a return type on a setter."));ieb=new _6("JSC_NTI_WRONG_PARAMETER_COUNT",kZ,new iqc("Function definition does not have the declared number of parameters.\nExpected: {0}\nFound: {1}"));Gdb=new _6("JSC_NTI_CANNOT_ADD_PROPERTIES_TO_TYPEDEF",kZ,new iqc("A typedef should only be used in type annotations, not as a value. Adding properties to typedefs is not allowed.")); feb=new _6("JSC_NTI_SUPER_INTERFACES_HAVE_INCOMPATIBLE_PROPERTIES",kZ,new iqc("Interface {0} has a property {1} with incompatible types in its super interfaces: {2}"));beb=new _6("JSC_NTI_ONE_TYPE_FOR_MANY_VARS",kZ,new iqc("Having one type annotation for multiple variables is not allowed."));geb=new _6("JSC_NTI_UNKNOWN_OVERRIDE",kZ,new iqc("property {0} not defined on any supertype of {1}"));Wdb=new _6("JSC_NTI_INTERFACE_METHOD_NOT_IMPLEMENTED",kZ,new iqc(DKc));Vdb=new _6("JSC_NTI_INTERFACE_METHOD_NOT_EMPTY", kZ,new iqc(EKc));Cdb=new _6("JSC_NTI_ABSTRACT_METHOD_IN_CONCRETE_CLASS",kZ,new iqc("Abstract methods can only appear in abstract classes. Please declare class {0} as @abstract"));Ddb=new _6("JSC_NTI_ABSTRACT_METHOD_IN_INTERFACE",kZ,new iqc("Abstract methods cannot appear in interfaces"));Edb=new _6("JSC_NTI_ABSTRACT_METHOD_NOT_IMPLEMENTED_IN_CONCRETE_CLASS",kZ,new iqc("Abstract method {0} from superclass {1} not implemented"));Jdb=new p6(pD(kD(eK,1),KFc,5,0,[Cdb,Idb,Odb,Qdb,Rdb,Sdb,Tdb,Udb,Wdb,Vdb, Xdb,Ydb,Zdb,beb,ceb,eeb,feb,geb,heb,ieb]));aeb=new p6(pD(kD(eK,1),KFc,5,0,[Ddb,Edb,Fdb,Gdb,Hdb,Ldb,Mdb,Ndb,Pdb,$db,_db,deb]));Kdb=new SGb("jscomp$infer$const$property")}function W6(){W6=aW;S6=new _6("JSC_UNUSED",(lZ(),kZ),new iqc(RIc));Tp(SIc,TIc,UIc,VIc,WIc,XIc,pD(kD(pT,1),tFc,2,6,[YIc,ZIc]));V6=new ezc;Z6("commonJsModuleLoad",pD(kD(eK,1),KFc,5,0,[(Fob(),Dob),Eob]));G6=Z6("globalThis",pD(kD(eK,1),KFc,5,0,[($Y(),ZY)]));Z6($Ic,pD(kD(eK,1),KFc,5,0,[(NY(),GY),HY,IY,JY,EY,FY]));Z6("underscore",pD(kD(eK, 1),KFc,5,0,[(Sxb(),Oxb),Pxb]));U6=Z6("visibility",pD(kD(eK,1),KFc,5,0,[yY,zY,xY,AY,KY,LY,MY,DY]));X6("accessControls",U6);Z6("nonStandardJsDocs",pD(kD(eK,1),KFc,5,0,[(qqb(),$pb),eqb,fqb]));Z6("invalidCasts",pD(kD(eK,1),KFc,5,0,[(wub(),rub),(Ejb(),hjb)]));X6(_Ic,new o6(_Ic,pD(kD(eK,1),KFc,5,0,[S6])));X6(aJc,new o6(aJc,pD(kD(eK,1),KFc,5,0,[S6])));Z6("strictModuleDepCheck",pD(kD(eK,1),KFc,5,0,[(hvb(),bvb),(YY(),WY)]));Z6("violatedModuleDep",pD(kD(eK,1),KFc,5,0,[gvb]));Z6("externsValidation",pD(kD(eK, 1),KFc,5,0,[avb,cvb]));Z6("ambiguousFunctionDecl",pD(kD(eK,1),KFc,5,0,[(Zrb(),Rrb)]));Z6("unknownDefines",pD(kD(eK,1),KFc,5,0,[(Iob(),Hob)]));Z6("tweakValidation",pD(kD(eK,1),KFc,5,0,[(Nob(),Job),Lob,Mob]));Z6("missingOverride",pD(kD(eK,1),KFc,5,0,[(jub(),Ntb),Otb]));H6=Z6("missingProperties",pD(kD(eK,1),KFc,5,0,[Vtb,Wtb,eub,fjb,vjb]));Z6("j2clChecks",pD(kD(eK,1),KFc,5,0,[(wgb(),vgb)]));Z6("missingReturn",pD(kD(eK,1),KFc,5,0,[(pZ(),oZ)]));Z6("internetExplorerChecks",pD(kD(eK,1),KFc,5,0,[mqb]));R6= Z6("undefinedVars",pD(kD(eK,1),KFc,5,0,[dvb]));Q6=Z6("undefinedNames",pD(kD(eK,1),KFc,5,0,[XY]));Z6("checkDebuggerStatement",pD(kD(eK,1),KFc,5,0,[(QY(),PY)]));Z6("checkRegExp",pD(kD(eK,1),KFc,5,0,[(uZ(),tZ),sZ]));M6=Y6("oldCheckTypes",pD(kD(dK,1),KFc,54,0,[lub,Ctb]));K6=Y6(XIc,pD(kD(dK,1),KFc,54,0,[(MCb(),rCb),(jeb(),Jdb),Tib]));L6=Y6(YIc,pD(kD(dK,1),KFc,54,0,[GCb,aeb,qjb]));J6=Y6(WIc,pD(kD(dK,1),KFc,54,0,[K6,L6]));A6=Y6(CIc,pD(kD(dK,1),KFc,54,0,[M6,J6]));Z6("newCheckTypesAllChecks",pD(kD(eK,1),KFc, 5,0,[ujb]));Z6("newCheckTypesClosureClean",pD(kD(eK,1),KFc,5,0,[sCb,tCb,uCb,zCb,ACb,DCb,ECb,KCb,Cdb,Fdb,Hdb,Idb,Ldb,Ndb,Odb,Pdb,Qdb,Rdb,Sdb,Udb,Wdb,Zdb,$db,_db,beb,eeb,feb,geb,heb,Mib,Oib,Rib,Xib,Uib,Yib,$ib,bjb,njb,jjb,kjb,mjb,ojb,zjb,Cjb]));Z6("tooManyTypeParams",pD(kD(eK,1),KFc,5,0,[lqb]));Z6("checkEventfulObjectDisposal",pD(kD(eK,1),KFc,5,0,[(VY(),RY),SY,TY,UY]));N6=Z6(VIc,pD(kD(eK,1),KFc,5,0,[fub]));O6=Z6(SIc,pD(kD(eK,1),KFc,5,0,[fub,Ajb]));B6=Z6("checkVars",pD(kD(eK,1),KFc,5,0,[dvb,fvb,(xvb(), uvb),vvb]));Z6(bJc,pD(kD(eK,1),KFc,5,0,[(BZ(),AZ),(KZ(),JZ)]));Z6(cJc,pD(kD(eK,1),KFc,5,0,[BY,CY,(S5(),R5),Xib,Wib,Vib]));y6=Z6("accessControlsConst",pD(kD(eK,1),KFc,5,0,[BY,CY]));Z6("constantProperty",pD(kD(eK,1),KFc,5,0,[BY,CY,Wib,Vib]));Z6("typeInvalidation",pD(kD(eK,1),KFc,5,0,[(f7(),d7),e7]));C6=Z6(dJc,pD(kD(eK,1),KFc,5,0,[fvb,mub,nub,vvb,ceb]));Z6("es3",pD(kD(eK,1),KFc,5,0,[cqb,mqb]));F6=Z6("es5StrictUncommon",pD(kD(eK,1),KFc,5,0,[dqb,_pb,Yrb,Vrb,Urb,Qrb,Nrb,Srb,Trb,Rrb]));E6=Z6("es5StrictReflection", pD(kD(eK,1),KFc,5,0,[Orb,Prb,Xrb,Wrb]));D6=Y6("es5Strict",pD(kD(dK,1),KFc,54,0,[F6,E6]));I6=Z6(eJc,pD(kD(eK,1),KFc,5,0,[(rZ(),qZ),(E$(),B$)]));Z6(fJc,pD(kD(eK,1),KFc,5,0,[(zZ(),yZ)]));Y6(ZIc,pD(kD(dK,1),KFc,54,0,[O6,Q6,R6,I6,q6((ncb(),gcb)),q6((Cob(),Aob)),H6,C6,q6(Gob),q6(($7(),Z7))]));P6=Z6("strictMissingRequire",pD(kD(eK,1),KFc,5,0,[yZ,wZ,xZ]));Z6("legacyGoogScopeRequire",pD(kD(eK,1),KFc,5,0,[wZ,vZ]));Z6("extraRequire",pD(kD(eK,1),KFc,5,0,[vZ]));Z6("misplacedTypeAnnotation",pD(kD(eK,1),KFc,5,0, [(hZ(),aZ),bZ,cZ,eZ,dZ,fZ,gZ]));Z6("suspiciousCode",pD(kD(eK,1),KFc,5,0,[(txb(),sxb),(HZ(),GZ),CZ,EZ,DZ,FZ,Itb,Dob]));Z6("functionParams",pD(kD(eK,1),KFc,5,0,[ecb,fcb]));Z6("deprecatedAnnotations",pD(kD(eK,1),KFc,5,0,[_Y]));T6=Z6("unusedPrivateMembers",pD(kD(eK,1),KFc,5,0,[(MZ(),LZ)]));Z6("unusedLocalVariables",pD(kD(eK,1),KFc,5,0,[wvb]));Y6("lintChecks",pD(kD(dK,1),KFc,54,0,[Exb,new p6(pD(kD(eK,1),KFc,5,0,[(vxb(),uxb),(Axb(),wxb),xxb,yxb,zxb,(Dxb(),Bxb),Cxb,(Uxb(),Txb),($xb(),Yxb),Zxb,(ayb(),_xb), (fyb(),byb),eyb,dyb,cyb,(hyb(),gyb),(jyb(),iyb),(VZ(),OZ),PZ,SZ,QZ,RZ,TZ,UZ,C$,oqb,gqb,hqb]))]));Z6("strictModuleChecks",pD(kD(eK,1),KFc,5,0,[NZ,SZ,QZ,RZ,TZ,UZ]));z6=Z6(UIc,pD(kD(eK,1),KFc,5,0,[(rxb(),qxb),(Xxb(),Vxb),Wxb,(ugb(),tgb),lqb]));Y6(TIc,pD(kD(dK,1),KFc,54,0,[z6,T6]));Z6("useOfGoogBase",pD(kD(eK,1),KFc,5,0,[Bob]));Z6("closureDepMethodUsageChecks",pD(kD(eK,1),KFc,5,0,[xob]));Z6("transitionalSuspiciousCodeWarnings",pD(kD(eK,1),KFc,5,0,[(wnb(),unb),vnb,tnb]));Z6("lateProvide",pD(kD(eK,1),KFc, 5,0,[zob,A$]));Z6("missingPolyfill",pD(kD(eK,1),KFc,5,0,[(Hpb(),Gpb)]));Z6("invalidProvide",pD(kD(eK,1),KFc,5,0,[yob]));Z6("es6Typed",pD(kD(eK,1),KFc,5,0,[iqb]));Z6("duplicateZipContents",pD(kD(eK,1),KFc,5,0,[(drb(),crb)]));X6(gJc,new o6(gJc,pD(kD(eK,1),KFc,5,0,[S6])))}function Ejb(){Ejb=aW;pjb=new _6("JSC_NTI_MISTYPED_ASSIGN_RHS",(lZ(),kZ),new iqc("The right side in the assignment is not a subtype of the left side.\n{0}"));ljb=new _6("JSC_NTI_INVALID_OPERAND_TYPE",kZ,new iqc("Invalid type(s) for operator {0}.\n{1}")); yjb=new _6("JSC_NTI_RETURN_NONDECLARED_TYPE",kZ,new iqc("Returned type does not match declared return type.\n{0}"));jjb=new _6("JSC_NTI_INVALID_INFERRED_RETURN_TYPE",kZ,new iqc("Function called in context that expects incompatible type.\n{0}"));gjb=new _6("JSC_NTI_INVALID_ARGUMENT_TYPE",kZ,new iqc("Invalid type for parameter {0} of function {1}.\n{2}"));Yib=new _6("JSC_NTI_CROSS_SCOPE_GOTCHA",kZ,new iqc("Variable {0} typed inconsistently across scopes.\nIn outer scope : {1}\nIn inner scope : {2}\n")); vjb=new _6("JSC_NTI_POSSIBLY_INEXISTENT_PROPERTY",kZ,new iqc("Property {0} may not be present on {1}."));wjb=new _6("JSC_NTI_PROPERTY_ACCESS_ON_NONOBJECT",kZ,new iqc("Cannot access property {0} of non-object type {1}."));tjb=new _6("JSC_NTI_NOT_UNIQUE_INSTANTIATION",kZ,new iqc("When instantiating a polymorphic function, you can only specify one type for each type variable.\n Found {0} types for type variable {1}: {2},\n when instantiating type: {3}"));ijb=new _6("JSC_NTI_INVALID_INDEX_TYPE",kZ,new iqc("Invalid type for index.\n{0}")); Pib=new _6("JSC_NTI_BOTTOM_INDEX_TYPE",kZ,new iqc("This IObject {0} cannot be accessed with a valid type.\n Usually the result of a bad union type.\n"));kjb=new _6("JSC_NTI_INVALID_OBJLIT_PROPERTY_TYPE",kZ,new iqc("Invalid type for object-literal property.\n{0}"));Zib=new _6("JSC_NTI_FORIN_EXPECTS_OBJECT",kZ,new iqc("For/in expects an object, found type {0}."));$ib=new _6("JSC_NTI_FORIN_EXPECTS_STRING_KEY",kZ,new iqc("For/in creates string keys, but variable has declared type {1}."));Xib=new _6("JSC_NTI_CONST_REASSIGNED", kZ,new iqc("Cannot change the value of a constant."));Wib=new _6("JSC_NTI_CONST_PROPERTY_REASSIGNED",kZ,new iqc("Cannot change the value of a constant property."));Vib=new _6("JSC_NTI_CONSTANT_PROPERTY_DELETED",kZ,new iqc("Constant property {0} cannot be deleted"));rjb=new _6("JSC_NTI_NOT_A_CONSTRUCTOR",kZ,new iqc("Expected a constructor but found type {0}."));Sib=new _6("JSC_NTI_CANNOT_INSTANTIATE_ABSTRACT_CLASS",kZ,new iqc("Cannot instantiate abstract class {0}."));new _6("JSC_UNDEFINED_SUPER_CLASS", kZ,new iqc("Undefined super class for {0}."));Oib=new _6("JSC_NTI_ASSERT_FALSE",kZ,new iqc("Assertion is always false. Please use a throw or fail() instead."));zjb=new _6("JSC_NTI_UNKNOWN_ASSERTION_TYPE",kZ,new iqc("Assert with unknown asserted type."));mjb=new _6("JSC_NTI_INVALID_THIS_TYPE_IN_BIND",kZ,new iqc("Invalid type for the first argument to bind.\n{0}"));Rib=new _6("JSC_NTI_CANNOT_BIND_CTOR",kZ,new iqc("We do not support using .bind on constructor functions."));ajb=new _6("JSC_NTI_GOOG_BIND_EXPECTS_FUNCTION", kZ,new iqc("The first argument to goog.bind/goog.partial must be a function, found: {0}"));Qib=new _6("JSC_NTI_BOTTOM_PROP",kZ,new iqc("Property {0} of {1} cannot have a valid type.Maybe the result of a union of incompatible types?"));hjb=new _6("JSC_NTI_INVALID_CAST",kZ,new iqc("invalid cast - the types do not have a common subtype\nfrom: {0}\nto : {1}"));_ib=new _6("JSC_NTI_USED_GLOBAL_THIS",kZ,new iqc("Dangerous use of the global THIS object"));ojb=new _6("JSC_NTI_MISSING_RETURN_STATEMENT",kZ, new iqc(lHc));Uib=new _6("JSC_NTI_CONSTRUCTOR_NOT_CALLABLE",kZ,new iqc($Kc));bjb=new _6("JSC_NTI_ILLEGAL_OBJLIT_KEY",kZ,new iqc(_Kc));djb=new _6("JSC_NTI_ILLEGAL_PROPERTY_CREATION",kZ,new iqc("Cannot add property {0} to a struct instance after it is constructed."));njb=new _6("JSC_NTI_IN_USED_WITH_STRUCT",kZ,new iqc(aLc));Nib=new _6("JSC_NTI_ADDING_PROPERTY_TO_NON_OBJECT",kZ,new iqc("Cannot create property {0} on non-object type {1}."));fjb=new _6("JSC_NTI_INEXISTENT_PROPERTY",kZ,new iqc(bLc));sjb= new _6("JSC_NTI_NOT_FUNCTION_TYPE",kZ,new iqc("Cannot call non-function type {0}"));Djb=new _6("JSC_NTI_WRONG_ARGUMENT_COUNT",kZ,new iqc(cLc));cjb=new _6("JSC_NTI_ILLEGAL_PROPERTY_ACCESS",kZ,new iqc(dLc));Cjb=new _6("JSC_NTI_UNKNOWN_TYPEOF_VALUE",kZ,new iqc(eLc));Bjb=new _6("JSC_NTI_UNKNOWN_NAMESPACE_PROPERTY",kZ,new iqc("Cannot determine the type of namespace property {0}. Maybe a prefix of the property name has been redefined?"));ejb=new _6("JSC_INCOMPATIBLE_STRICT_COMPARISON",kZ,new iqc("Cannot perform strict equality / inequality comparisons on incompatible types:\nleft : {0}\nright: {1}")); Mib=new _6("JSC_NTI_ABSTRACT_SUPER_METHOD_NOT_CALLABLE",kZ,new iqc(fLc));xjb=new _6("JSC_NTI_REFLECT_CONSTRUCTOR_EXPECTED",kZ,new iqc(gLc));ujb=new _6("JSC_NTI_NULLABLE_DEREFERENCE",jZ,new iqc("Attempt to use nullable type {0}."));Ajb=new _6("JSC_NTI_UNKNOWN_EXPR_TYPE",jZ,new iqc("This {0} expression has the unknown type."));Tib=new p6(pD(kD(eK,1),KFc,5,0,[Mib,Rib,Sib,Vib,Wib,Xib,xjb,Uib,$ib,_ib,ajb,bjb,cjb,djb,njb,fjb,gjb,hjb,ijb,kjb,ojb,pjb,rjb,sjb,vjb,yjb,zjb,Cjb,Djb]));qjb=new p6(pD(kD(eK,1), KFc,5,0,[Nib,Oib,Pib,Qib,Yib,Zib,ejb,jjb,ljb,mjb,tjb,wjb,Bjb]))}function UKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb;switch(b.p.f){case 42:return(b.b.c==(YXb(),BXb)||b.b.c==CXb)&&PKb(a,b,(BQb(),$Pb)),QJb(a.a,b.c.o)?VJb(a.a,AKb(b.b.c),jKb(a.a,b.a),jKb(a.a,b.c)):YKb(a,b);case 28:return VKb(a,b);case 74:return FLb(a,b);case 75:return GLb(a,b.a);case 76:return UJb(a.a,(tbc(),dbc),jKb(a.a,b.a));case 44:return KLb(a, b);case 2:return ZKb(a,b);case 14:return $Kb(a,b);case 49:return jLb(a,b);case 17:return CLb(a,b);case 18:return DLb(a,b);case 22:return VJb(a.a,(tbc(),Z8b),jKb(a.a,b.b),kKb(a.a,b.a));case 13:return bLb(a,b);case 8:return VJb(a.a,(tbc(),n9b),kKb(a.a,b.a),jKb(a.a,b.b));case 5:return TJb((d=a,b,d).a,(tbc(),p9b));case 6:return fLb(a,b);case 24:return TJb((e=a,b,e).a,(tbc(),f9b));case 25:return TJb((f=a,b,f).a,(tbc(),ebc));case 11:return gLb(a,b);case 10:return h=jKb(a.a,b.c),i=(En(),Pp(pD(kD(kT,1),KFc, 1,5,[(tbc(),w8b),zac]))),i.contains(h.j)&&a.a.d.oh("Invalid LHS for a for-in loop",a.a.r,(HJb(),b.c.o.b.b+1),b.c.o.b.a),WJb(a.a,C9b,h,jKb(a.a,b.b),kKb(a.a,b.a));case 1:return iLb(a,b);case 55:return VJb(a.a,(tbc(),J9b),jKb(a.a,b.b),jKb(a.a,b.a));case 46:return j=jKb(a.a,b.b),k=b.a,l=tLb(a,k),!l.ti()&&!a.a.c&&QKb(a,l),VJb(a.a,(tbc(),K9b),j,l);case 43:return WJb(a.a,(tbc(),N9b),jKb(a.a,b.a),jKb(a.a,b.b),jKb(a.a,b.c));case 7:return mLb(a,b);case 20:return VJb(a.a,(tbc(),_9b),PLb(a,b.a),jKb(a.a,b.b)); case 56:return GKb(a,b),jKb(a.a,b.a);case 26:return pLb(a,b.a,false);case 47:return sLb(a,b);case 29:return uLb(a,b);case 36:return PKb(a,b,(BQb(),TPb)),VJb(a.a,(tbc(),c9b),jKb(a.a,b.a),jKb(a.a,b.b));case 37:return PKb(a,b,(BQb(),TPb)),m=jKb(a.a,b.c),n=jKb(a.a,b.a),o=F1b((me($oc("",spc(46))==-1,qHc,""),new e8b((tbc(),mac),"")),new e7b(Eac),n),d7b(o,n),p=VJb(a.a,c9b,m,o),q=F6b(p,p.g,73),q!=p.g&&(p.g=q),p.g=new J7b(73,1,p.g),A6b(p,58,b.b),p;case 88:return PKb(a,b,(BQb(),TPb)),SKb(a,b,TPb),r=UJb(a.a, (tbc(),c9b),jKb(a.a,b.d)),MKb(a,r,b.b),s=F6b(r,r.g,75),s!=r.g&&(r.g=s),r.g=new J7b(75,1,r.g),B6b(r,84,b.a),T6b(r,b.c),KKb(r,b.a),r;case 38:return PKb(a,b,(BQb(),TPb)),t=VJb(a.a,(tbc(),c9b),jKb(a.a,b.c),jKb(a.a,b.b)),u=F6b(t,t.g,72),u!=t.g&&(t.g=u),t.g=new J7b(72,1,t.g),b.b.i&&(v=F6b(t,t.g,58),v!=t.g&&(t.g=v),t.g=new J7b(58,1,t.g)),KKb(t,b.a),t;case 39:return PKb(a,b,(BQb(),TPb)),w=jKb(a.a,b.d),A=jKb(a.a,b.a),B=Y1b(OLb(a,b.c)),C=F1b((me($oc("",spc(46))==-1,qHc,""),new e8b((tbc(),mac),"")),B,A),d7b(C, A),D=VJb(a.a,c9b,w,C),F=F6b(D,D.g,74),F!=D.g&&(D.g=F),D.g=new J7b(74,1,D.g),A6b(D,58,b.b),D;case 15:return zLb(a,b);case 45:return G=EKb(b.b.c),H=jKb(a.a,b.a),HKb(a,G,b.c==1,H);case 0:return XKb(a,b);case 27:return oLb(a,b);case 19:return ELb(a,b);case 21:return UJb(a.a,(tbc(),fbc),jKb(a.a,b.a));case 23:return HLb(a,b);case 3:return UKb(a.a.u,b.a);case 12:return NLb(a,b);case 4:return MLb(a,b);case 9:return VJb(a.a,(tbc(),qbc),jKb(a.a,b.b),kKb(a.a,b.a));case 16:return VJb(a.a,(tbc(),rbc),jKb(a.a, b.b),kKb(a.a,b.a));case 41:return aLb(a,b);case 64:return TJb((g=a,b,g).a,(tbc(),p9b));case 57:return kKb(a.a,b.a);case 40:return YJb((c=a,b,c).a,(tbc(),mac),KMc);case 35:return I=tLb(a,b.a),V6b(I,(tbc(),Yac)),!!b.b&&V5b(I,jKb(a.a,b.b)),I;case 33:return J=tLb(a,b.c),V6b(J,(tbc(),L9b)),K=jKb(a.a,b.a),L=YJb(a.a,mac,""),gKb(L,b.a),M=TJb(a.a,Eac),gKb(M,b.a),N=WJb(a.a,E9b,L,M,K),gKb(N,b.a),V5b(J,N),MKb(a,N,b.d),T6b(J,b.b),J;case 34:return O=tLb(a,b.d),V6b(O,(tbc(),Sac)),P=jKb(a.a,b.a),Q=YJb(a.a,mac,""), fKb(Q,b.d),R=UJb(a.a,Eac,OLb(a,b.c)),fKb(R,b.c),MKb(a,R.b,b.e),S=WJb(a.a,E9b,Q,R,P),gKb(S,b.a),V5b(O,S),T6b(O,b.b),O;case 62:return hLb(a,b);case 50:return _Kb(a,b);case 58:return PKb(a,b,(BQb(),wQb)),TJb(a.a,(tbc(),_ac));case 93:return PKb(a,b,(BQb(),nQb)),TJb(a.a,(tbc(),tac));case 72:return T=TJb(a.a,(tbc(),sbc)),!!b.a&&U5b(T,jKb(a.a,b.a)),Y6b(T,b.b),T;case 94:return PKb(a,b,(BQb(),PPb)),U=TJb(a.a,(tbc(),M8b)),U5b(U,jKb(a.a,b.a)),U;case 71:return PKb(a,b,(BQb(),aQb)),V=jKb(a.a,b.c),W=(En(),Pp(pD(kD(kT, 1),KFc,1,5,[(tbc(),w8b),zac]))),W.contains(V.j)&&a.a.d.oh("Invalid LHS for a for-of loop",a.a.r,(HJb(),b.c.o.b.b+1),b.c.o.b.a),WJb(a.a,D9b,V,jKb(a.a,b.b),kKb(a.a,b.a));case 67:return dLb(a,b);case 68:return eLb(a,b);case 69:return PKb(a,b,(BQb(),lQb)),X=SLb(a,b.a,b),Y=b.d?YJb(a.a,(tbc(),T9b),b.d.a):RLb(a,(tbc(),S9b),b.b),n7b(Y.i)==-1&&hKb(Y,b.o.b,b.o.a),Z=ALb(a,b.c),WJb(a.a,(tbc(),Q9b),X,Y,Z);case 70:return $=pLb(a,b.b,true),V6b($,(tbc(),mac)),ab=UJb(a.a,R9b,$),!!b.a&&U5b(ab,pLb(a,b.a,false)),ab; case 59:return WKb(a,b);case 61:return vLb(a,b);case 60:return UJb(a.a,(tbc(),Mac),lKb(a.a,b.a));case 32:case 31:case 30:return a.a.d.oh("unsupported language feature: array/generator comprehensions",a.a.r,(HJb(),b.o.b.b+1),b.o.b.a),YJb(a.a,(tbc(),mac),KMc);case 73:return PKb(a,b,(BQb(),WPb)),VJb(a.a,(tbc(),j9b),jKb(a.a,b.b),jKb(a.a,b.a));case 65:return PKb(a,b,(BQb(),sQb)),bb=lKb(a.a,b.a),(bb.j==(tbc(),Aac)||bb.j==x8b)&&PKb(a,b.a,XPb),UJb(a.a,Mac,bb);case 63:return PKb(a,b,(BQb(),uQb)),UJb(a.a,(tbc(), Vac),jKb(a.a,b.a));case 77:return ILb(a,b);case 79:return cb=jKb(a.a,b.a),MKb(a,cb,b.b),cb;case 80:return SKb(a,b,(BQb(),pQb)),db=jKb(a.a,b.a),eb=F6b(db,db.g,80),eb!=db.g&&(db.g=eb),db.g=new J7b(80,1,db.g),db;case 81:return wLb(a,b);case 82:return IJb(a.a,Bbc(jKb(a.a,b.a)));case 83:return xLb(a,b);case 84:return LLb(a,b);case 85:return kLb(a,b);case 78:return JLb(a,b);case 86:return lLb(a,b);case 87:return fb=YJb(a.a,(tbc(),iac),b.e.a),MKb(a,fb,b.b),T6b(fb,b.d),A6b(fb,80,b.c),KKb(fb,b.a),fb;case 51:return nLb(a, b);case 54:return cLb(a,b);case 89:return SKb(a,b,(BQb(),zQb)),gb=YJb(a.a,(tbc(),jbc),b.a.a),V5b(gb,jKb(a.a,b.b)),gb;case 90:return SKb(a,b,(BQb(),MPb)),UJb(a.a,(tbc(),h9b),jKb(a.a,b.a));case 52:return qLb(a,b);case 91:return SKb(a,b,(BQb(),fQb)),hb=jKb(a.a,b.b),ib=j6b(hb,78),ib.j!=(tbc(),yac)&&ib.j!=Zac&&a.a.d.oh("Index signature parameter type must be 'string' or 'number'",a.a.r,(HJb(),b.b.o.b.b+1),b.b.o.b.a),jb=UJb(a.a,W9b,hb),MKb(a,jb,b.a),jb;case 92:return SKb(a,b,b.c?(BQb(),UPb):(BQb(),RPb)), kb=UJb(a.a,(tbc(),W8b),jKb(a.a,b.a)),MKb(a,kb,b.d),LKb(a,kb,b.b),A6b(kb,83,b.c),kb}return a.a.d.oh("Unsupported syntax: "+b.p,a.a.r,(HJb(),b.o.b.b+1),0),TJb(a.a,(tbc(),p9b))}function g_(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb;if(a.g&&!!j6b(b,29)){G=Bgb(a.e,j6b(b,29));Xoc(G,"/** */ ")||G$(a.c,G)}bb=b.j;N=Zlb(bb);p=e6b(b);t=b.b;H=b.b?b.b.f:null;if(N!=null&&t!=H){ne(p==2,N,p);O=w_(a,b);X=c==3?3:4;K=c==2&&t.j==(tbc(),Aac); b.j==(tbc(),z8b)&&K&&G$(a.c,"(");if(blb(b)||bb==v9b){l_(a,t,O+1,c);I$(a.c,N,true);l_(a,H,O,X)}else z_(a,b,bb,N,c,X,O,O+1);b.j==z8b&&K&&G$(a.c,")");return}a.c.Fg(b);switch(bb.f){case 44:{he(t.d.j==(tbc(),S8b)&&!p6b(t.d));he(p>=2&&p<=3);G$(a.c,"try");a.Gg(t,4);n=t.d.b;!!n&&a.Gg(n,4);if(p==3){a.c.Bg();G$(a.c,FHc);a.Gg(H,4)}break}case 78:he(p==2);a.c.Bg();G$(a.c,"catch");a.c.Bg();G$(a.c,"(");a.Gg(t,4);G$(a.c,")");a.Gg(H,4);break;case 39:he(p==1);G$(a.c,"throw");a.c.Bg();a.Gg(t,4);a.c.xg(true);break;case 0:G$(a.c, GHc);if(p==1){a.c.Bg();a.Gg(t,4)}else he(p==0);a.c.xg(false);break;case 76:G$(a.c,"var ");p_(a,t,false,c==3?3:4,",");(!b.e||(qkb(),Jlb(b.e)))&&a.c.xg(false);break;case 88:G$(a.c,"const ");p_(a,t,false,c==3?3:4,",");(!b.e||(qkb(),Jlb(b.e)))&&a.c.xg(false);break;case 100:G$(a.c,"let ");p_(a,t,false,c==3?3:4,",");(!b.e||(qkb(),Jlb(b.e)))&&a.c.xg(false);break;case 90:he(b.ri().length!=0);n_(a,b.ri());break;case 95:a.Gg(t,4);if(t!=H){he(p==2);I$(a.c,"=",true);a.Gg(H,4)}break;case 29:a.k&&j6b(b,40)!=null? n_(a,j6b(b,40)):n_(a,b.ri());h6b(b,80)!=0&&G$(a.c,"?");v_(a,b);if(!!t&&t.j!=(tbc(),p9b)){he(p==1);I$(a.c,"=",true);t.j==(tbc(),b9b)||t.j==Y8b&&t.b.j==b9b?l_(a,t,_lb(z8b),4):l_(a,t,0,c==3?3:4)}break;case 42:G$(a.c,"[");j_(a,t);G$(a.c,"]");break;case 93:G$(a.c,"[");j_(a,t);G$(a.c,"]");v_(a,b);break;case 45:G$(a.c,"(");p_(a,t,true,4,",");G$(a.c,")");break;case 118:a.Gg(t,4);v_(a,b);I$(a.c,"=",true);a.Gg(t.d,4);break;case 46:he(p==2);z_(a,b,(tbc(),b9b),",",c,c==3?3:4,0,0);break;case 30:he(p==0);a.c.lg(b.qi(), b);break;case 25:case 79:case 19:case 20:case 21:{he(p==1);I$(a.c,$lb(bb),false);l_(a,t,_lb(bb),4);break}case 22:{he(p==1);if(b.b.j==(tbc(),xac))a.c.lg(-b.b.qi(),b.b);else{I$(a.c,$lb(bb),false);l_(a,t,_lb(bb),4)}break}case 60:{he(p==3);O=_lb(bb);X=c==3?3:4;l_(a,t,O+1,c);I$(a.c,"?",true);l_(a,t.d,1,X);I$(a.c,":",true);l_(a,H,1,X);break}case 38:if(t.j!=(tbc(),Xac)||H.j!=Xac)throw BV(new Pmc("Expected children to be strings"));V="/"+y_(a,t.ri(),'"',"'","`","\\",false,true)+"/";if(p==2)h_(a,V+H.ri()); else{he(p==1);G$(a.c,V)}break;case 65:{if(b.Qj!=TR)throw BV(new Pmc(HHc));he(p==3);h6b(b,60)!=0?(he(t.ri().length==0),cb=(db=b.e,!!db&&(qkb(),clb(db.j)||Nlb(db.j)||Plb(db.j)||db.j==(tbc(),bbc)||db.j==(tbc(),K9b)||(db.j==(tbc(),J9b)||db.j==V8b||db.j==N9b)&&(eb=b.e,!!eb&&b==eb.b))),cb&&G$(a.c,"("),fb=j6b(t,81),!!fb&&a.Gg(fb,4),h6b(b,61)!=0&&G$(a.c,IHc),a.Gg(t.d,4),v_(a,b),I$(a.c,"=>",true),H.j==(tbc(),S8b)?a.Gg(H,4):l_(a,H,_lb(b9b)+1,c),a.c.ug(c==0),cb&&G$(a.c,")"),undefined):m_(a,b,t,H,c);break}case 112:G$(a.c, JHc);a.Gg(t,4);v_(a,b);break;case 113:G$(a.c,JHc);a.Gg(b.b,4);break;case 108:G$(a.c,KHc);h6b(b,63)!=0&&G$(a.c,LHc);if(h6b(b,64)!=0){G$(a.c,"*");he(!!t&&t.j==(tbc(),p9b))}else a.Gg(t,4);if(p==2){G$(a.c,MHc);a.Gg(H,4)}x_(a,t,c);break;case 104:G$(a.c,NHc);Y=t.d;if(t.j!=(tbc(),p9b)){a.Gg(t,4);Y.j==p9b||a.c.zg()}Y.j==p9b||a.Gg(Y,4);(t.j!=p9b||Y.j!=p9b)&&G$(a.c,MHc);a.Gg(H,4);a.c.xg(false);break;case 109:case 105:G$(a.c,"{");for(j=t;j;j=j.d){j!=t&&a.c.zg();a.Gg(j,4)}G$(a.c,"}");break;case 110:case 106:a.Gg(t, 4);if(t!=H){G$(a.c,"as");a.Gg(H,4)}break;case 107:G$(a.c,"*");G$(a.c,"as");h_(a,b.ri());break;case 96:{he(p==3);q=c==2;q&&G$(a.c,"(");J=t;Z=t.d;I=H;G$(a.c,OHc);J.j==(tbc(),p9b)||a.Gg(J,4);A=j6b(t,81);!!A&&a.Gg(A,4);if(Z.j!=p9b){G$(a.c,PHc);a.Gg(Z,4)}D=j6b(b,82);if(D){G$(a.c,QHc);o=D.b;a.Gg(o,4);while(o=o.d){G$(a.c,",");a.c.Bg();a.Gg(o,4)}}a.Gg(I,4);L$(a.c,c==0);q&&G$(a.c,")")}break;case 97:case 150:case 160:J$(a.c);for(k=t;k;k=k.d){a.Gg(k,4);x_(a,k,c);a.c.vg()}K$(a.c,false);break;case 152:J$(a.c); for(l=t;l;l=l.d){a.Gg(l,4);!!l.d&&G$(a.c,",");a.c.vg()}K$(a.c,false);break;case 86:case 87:case 98:case 156:{he(b.e.j==(tbc(),zac)||b.e.j==_8b||b.e.j==$9b||b.e.j==Kac||b.e.j==W9b);e=j6b(b,84);!!e&&h_(a,(e.e!=null?e.e:""+e.f).toLowerCase()+" ");h6b(b,58)!=0&&G$(a.c,"static ");if(b.j!=iac&&h6b(b.b,59)!=0){he(bb==hac);G$(a.c,"*")}b.j==hac&&h6b(b.b,61)!=0&&G$(a.c,"async ");switch(bb.f){case 86:he(!t.b.d.b);G$(a.c,"get ");break;case 87:he(q6b(t.b.d));G$(a.c,"set ")}J=b.ri();if(b.j==iac){h_(a,b.ri());h6b(b, 80)!=0&&G$(a.c,"?");v_(a,b)}else{he(p==1);he(t.j==E9b);he(t.b.ri().length==0);u=t;P=u.b.d;h=u.b?u.b.f:null;if(!b.ti()&&(Abc(),ybc.test(J))&&ulb(J)){G$(a.c,J);u_(a,u.b)}else{r=F_(J);isNaN(r)?o_(a,b):a.c.lg(r,b)}h6b(u,80)!=0&&G$(a.c,"?");a.Gg(P,4);v_(a,u);a.Gg(h,4)}break}case 85:case 111:case 82:case 81:{if(b.Qj!=TR)throw BV(new Pmc(HHc));U=b.j==(tbc(),S8b)&&h6b(b,38)==0;U&&J$(a.c);T=bb==Rac||bb==S8b&&!U&&b.e.j==Rac;for(m=t;m;m=m.d){a.Gg(m,0);(m.j==E9b||m.j==$8b)&&a.c.Cg();T&&a.c.Dg()}U&&K$(a.c,a.c.rg(b, c==0));break}case 72:he(p==4);G$(a.c,"for");a.c.Bg();G$(a.c,"(");qkb();!!t&&(t.j==(tbc(),nbc)||t.j==eac||t.j==d9b)?a.Gg(t,3):l_(a,t,0,3);G$(a.c,";");t.d.j==(tbc(),p9b)||a.c.Bg();a.Gg(t.d,4);G$(a.c,";");t.d.d.j==p9b||a.c.Bg();a.Gg(t.d.d,4);G$(a.c,")");q_(a,H,c==1?1:4,false);break;case 73:he(p==3);G$(a.c,"for");a.c.Bg();G$(a.c,"(");a.Gg(t,4);G$(a.c,"in");a.Gg(t.d,4);G$(a.c,")");q_(a,H,c==1?1:4,false);break;case 101:he(p==3);G$(a.c,"for");a.c.Bg();G$(a.c,"(");a.Gg(t,4);G$(a.c,"of");a.Gg(t.d,4);G$(a.c, ")");q_(a,H,c==1?1:4,false);break;case 71:he(p==2);G$(a.c,"do");q_(a,t,4,false);a.c.Bg();G$(a.c,RHc);a.c.Bg();G$(a.c,"(");a.Gg(H,4);G$(a.c,")");a.c.xg(false);break;case 70:he(p==2);G$(a.c,RHc);a.c.Bg();G$(a.c,"(");a.Gg(t,4);G$(a.c,")");q_(a,H,c==1?1:4,false);break;case 80:he(p==0);break;case 26:{if(a.k&&j6b(b,40)!=null){y6b(b.b,"$jscomp.scope")&&b.e.j==(tbc(),z8b)&&G$(a.c,"var ");n_(a,j6b(b,40));break}je(p==2,"Bad GETPROP: expected 2 children, but got %s",p);ie(H.j==(tbc(),Xac),"Bad GETPROP: RHS should be STRING"); K=t.j==xac;K&&G$(a.c,"(");l_(a,t,_lb(bb),c);K&&G$(a.c,")");if(a.i&&xbc(H.ri())){G$(a.c,"[");a.Gg(H,4);G$(a.c,"]")}else{G$(a.c,".");n_(a,H.ri())}break}case 27:le(p==2,p,b);l_(a,t,_lb(bb),c);G$(a.c,"[");a.Gg(t.d,4);G$(a.c,"]");break;case 77:he(p==2);G$(a.c,"with(");a.Gg(t,4);G$(a.c,")");q_(a,H,c==1?1:4,false);break;case 63:case 64:{he(p==1);M=bb==(tbc(),V9b)?"++":"--";R=h6b(b,32)!=0;if(R){l_(a,t,_lb(bb),c);I$(a.c,M,false)}else{I$(a.c,M,false);a.Gg(t,4)}break}case 28:if(t.j==(tbc(),mac)&&Xoc("eval", t.ri())&&h6b(t,49)==0||h6b(b,50)!=0&&(qkb(),t.j==K9b||t.j==J9b)){G$(a.c,"(0,");l_(a,t,_lb(b9b),4);G$(a.c,")")}else l_(a,t,_lb(bb),c);g=t.d;G$(a.c,"(");p_(a,g,true,4,",");G$(a.c,")");break;case 66:he(p==2||p==3);B=p==3;f=c==1&&!B;f&&J$(a.c);G$(a.c,"if");a.c.Bg();G$(a.c,"(");a.Gg(t,4);G$(a.c,")");if(B){q_(a,t.d,1,false);a.c.Bg();G$(a.c,"else");q_(a,H,c==1?1:4,false)}else q_(a,t.d,4,false);f&&K$(a.c,false);break;case 32:he(p==0);G$(a.c,qFc);break;case 33:he(p==0);G$(a.c,SHc);break;case 99:he(p==0);G$(a.c, THc);break;case 119:he(p==0);G$(a.c,UHc);break;case 102:G$(a.c,"yield");if(h6b(b,62)!=0){be(t);G$(a.c,"*")}if(t){a.c.Bg();l_(a,t,_lb(bb),4)}break;case 103:G$(a.c,"await ");l_(a,t,_lb(bb),4);break;case 34:he(p==0);G$(a.c,VHc);break;case 35:he(p==0);G$(a.c,WHc);break;case 75:he(p<=1);G$(a.c,XHc);if(p==1){if(t.j!=(tbc(),aac))throw BV(new Pmc(YHc));G$(a.c," ");a.Gg(t,4)}a.c.xg(false);break;case 89:he(p==0);G$(a.c,ZHc);a.c.xg(false);break;case 74:he(p<=1);G$(a.c,"break");if(p==1){if(t.j!=(tbc(),aac))throw BV(new Pmc(YHc)); G$(a.c," ");a.Gg(t,4)}a.c.xg(false);break;case 84:he(p==1);a.Gg(t,2);a.c.xg(false);break;case 23:G$(a.c,"new ");S=_lb(bb);xkb(t,(tbc(),V8b),(qkb(),jkb))&&(S=_lb(t.j)+1);l_(a,t,S,4);L=t.d;if(L){G$(a.c,"(");p_(a,L,true,4,",");G$(a.c,")")}break;case 91:s_(a,b);break;case 31:ie(p==0,"A string may not have children");o_(a,b);break;case 24:he(p==1);G$(a.c,"delete ");a.Gg(t,4);break;case 43:{K=c==2;K&&G$(a.c,"(");G$(a.c,"{");for(m=t;m;m=m.d){m!=t&&a.c.zg();he(m.j==(tbc(),c9b)||m.j==L9b||m.j==Sac||m.j==Yac|| m.j==hac);a.Gg(m,4)}G$(a.c,"}");K&&G$(a.c,")");break}case 114:d=j6b(b,84);!!d&&h_(a,(d.e!=null?d.e:""+d.f).toLowerCase()+" ");h6b(b,58)!=0&&G$(a.c,"static ");h6b(b,73)!=0?G$(a.c,"get "):h6b(b,74)!=0?G$(a.c,"set "):h6b(H,59)!=0?G$(a.c,"*"):h6b(H,61)!=0&&G$(a.c,IHc);G$(a.c,"[");a.Gg(t,4);G$(a.c,"]");v_(a,b);if(h6b(b,72)!=0||h6b(b,73)!=0||h6b(b,74)!=0){v=t.d;Q=v.b.d;h=v.b?v.b.f:null;a.Gg(Q,4);a.Gg(h,4)}else{F=b.e.j==(tbc(),_8b);C=t.d;if(C){ie(!F,"initializers should only exist in object literals, not classes"); I$(a.c,":",false);a.Gg(C,4)}else ie(h6b(b,75)!=0,b)}break;case 94:r_(a,b);v_(a,b);break;case 67:G$(a.c,"switch(");a.Gg(t,4);G$(a.c,")");J$(a.c);i_(a,t.d);K$(a.c,c==0);break;case 68:he(p==2);G$(a.c,"case ");a.Gg(t,4);k_(a,H);break;case 69:he(p==1);G$(a.c,LHc);k_(a,t);break;case 83:he(p==2);if(t.j!=(tbc(),aac))throw BV(new Pmc(YHc));a.Gg(t,4);G$(a.c,":");H.j==S8b||a.c.Bg();q_(a,H,c==1?1:4,true);break;case 92:a.g&&G$(a.c,"(");a.Gg(t,4);a.g&&G$(a.c,")");break;case 115:a.Gg(t,2);a.Gg(t.d,4);break;case 116:G$(a.c, "`");for(i=t;i;i=i.d)if(i.j==(tbc(),Xac))h_(a,y_(a,i.ri(),'"',"'","\\`",sFc,false,false));else{a.c.mg("${");a.Gg(i.b,2);G$(a.c,"}")}G$(a.c,"`");break;case 120:G$(a.c,nFc);break;case 121:G$(a.c,kFc);break;case 122:G$(a.c,lFc);break;case 126:G$(a.c,"any");break;case 128:G$(a.c,$Hc);break;case 130:a.Gg(t,4);break;case 134:l_(a,t,_lb((tbc(),y8b)),c);G$(a.c,"[]");break;case 123:W=t;G$(a.c,"(");p_(a,t.d,true,4,",");G$(a.c,")");I$(a.c,"=>",true);a.Gg(W,4);break;case 125:p_(a,t,true,4,"|");break;case 132:G$(a.c, "{");p_(a,t,false,4,",");G$(a.c,"}");break;case 124:a.Gg(t,4);G$(a.c,"<");p_(a,t.d,true,4,",");G$(a.c,">");break;case 136:G$(a.c,"<");p_(a,t,false,0,",");G$(a.c,">");break;case 135:n_(a,b.ri());if(b.b){G$(a.c,PHc);a.c.Bg();a.Gg(b.b,4)}break;case 148:{he(p==3);J=t;ab=t.d;I=H;G$(a.c,_Hc);a.Gg(J,4);A=j6b(J,81);!!A&&a.Gg(A,4);if(ab.j!=(tbc(),p9b)){G$(a.c,PHc);$=ab.b;a.Gg($,4);while($=$.d){G$(a.c,",");a.c.Bg();a.Gg($,4)}}a.Gg(I,4)}break;case 151:{he(p==2);J=t;I=H;G$(a.c,aIc);a.Gg(J,4);a.Gg(I,4);break}case 159:{he(p== 2);J=t;s=H;G$(a.c,bIc);a.Gg(J,4);a.Gg(s,4);break}case 154:G$(a.c,cIc);h_(a,b.ri());I$(a.c,"=",true);a.Gg(H,4);a.c.xg(true);break;case 155:G$(a.c,dIc);a.Gg(t,4);x_(a,b,c);break;case 157:G$(a.c,"[");a.Gg(t,4);G$(a.c,"]");v_(a,b);a.c.xg(true);break;case 158:h6b(b,83)!=0&&G$(a.c,"new ");w=j6b(b,81);!!w&&a.Gg(w,4);a.Gg(t,4);v_(a,b);a.c.xg(true);break;default:throw BV(new sC("Unknown type "+bb+BGc+_6b(b)));}a.c.wg(b)}function uMb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L, M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb;u=a.j.g;i=INb(a.j);e=a.j.n;d=up(a.a,e);if(!d||e.length==0)aMb(a,zLc,e,a.j.g,INb(a.j));else{x4b(a.e,e,u,i);switch(d.f){case 0:i3b(a.e.a)?$Lb(a,"msg.jsdoc.nginject.extra",a.j.g,INb(a.j)):h5b(a.e);return hMb(a,!a.o?JNb(a.j):fMb(a));case 25:e3b(a.e.a)?$Lb(a,"msg.jsdoc.jaggerInject.extra",a.j.g,INb(a.j)):$4b(a.e);return hMb(a,!a.o?JNb(a.j):fMb(a));case 26:f3b(a.e.a)?$Lb(a,"msg.jsdoc.jaggerModule.extra",a.j.g,INb(a.j)):_4b(a.e);return hMb(a,!a.o?JNb(a.j): fMb(a));case 27:g3b(a.e.a)?$Lb(a,"msg.jsdoc.jaggerProvide.extra",a.j.g,INb(a.j)):a5b(a.e);return hMb(a,!a.o?JNb(a.j):fMb(a));case 28:h3b(a.e.a)?$Lb(a,"msg.jsdoc.jaggerProvidePromise.extra",a.j.g,INb(a.j)):b5b(a.e);return hMb(a,!a.o?JNb(a.j):fMb(a));case 1:B4b(a.e)||bMb(a,PMc,a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 2:if(a.e.d){g=kMb(a);f=g.a;f.length==0?$Lb(a,"msg.jsdoc.authormissing",a.j.g,INb(a.j)):r4b(a.e,f);b=g.b}else b=hMb(a,!a.o?JNb(a.j):fMb(a));return b;case 3:E4b(a.e)||$Lb(a, "msg.jsdoc.consistidgen",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 56:E5b(a.e)||bMb(a,PMc,a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 49:v5b(a.e)||bMb(a,PMc,a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 10:L4b(a.e)||bMb(a,PMc,a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 5:G4b(a.e)||(d3b(a.e.a)?bMb(a,QMc,a.j.g,INb(a.j)):bMb(a,PMc,a.j.g,INb(a.j)));return hMb(a,!a.o?JNb(a.j):fMb(a));case 6:Y4b(a.e)||bMb(a,"msg.jsdoc.record",a.j.g,INb(a.j));return hMb(a, !a.o?JNb(a.j):fMb(a));case 8:I4b(a.e)||$Lb(a,"msg.jsdoc.deprecated",a.j.g,INb(a.j));J=jMb(a,b,a.f?0:2,false);I=J.a;I.length>0&&J4b(a.e,I);b=J.b;return b;case 24:Z4b(a.e)||((a.e.a.a&2)!=0?bMb(a,QMc,a.j.g,INb(a.j)):bMb(a,PMc,a.j.g,INb(a.j)));return hMb(a,!a.o?JNb(a.j):fMb(a));case 9:if(I2b(a.e.a)!=null){$Lb(a,"msg.jsdoc.desc.extra",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a))}else{k=jMb(a,b,a.f?0:2,false);j=k.a;K4b(a.e,j);b=k.b;return b}case 17:l="";if(a.e.d&&!mMb(a,64)){m=jMb(a,b,a.f?0:1,false); l=m.a;b=m.b}else b=hMb(a,!a.o?JNb(a.j):fMb(a));S4b(a.e,l)||$Lb(a,"msg.jsdoc.fileoverview.extra",a.j.g,INb(a.j));return b;case 30:case 42:H=jMb(a,b,0,true);G=H.a;G.length>0&&!!a.c&&s4b(a.c,G);b=H.b;return b;case 12:b=!a.o?JNb(a.j):fMb(a);u=a.j.g;i=INb(a.j);W=null;if(b!=(CNb(),oNb)&&b!=mNb){$=tMb(a,b,a.j.g,INb(a.j),b==rNb,false);if(!!$&&$.j==(tbc(),Xac)){X=$.ri();!Xoc(X,lFc)&&!Xoc(X,nFc)&&!Xoc(X,kFc)&&($=XMb(a,(tbc(),N8b),$))}W=!$?null:new O5b($,!a.g?null:a.g.Og())}else a.o=b;!W&&(W=eMb(a,qMb(a,lFc, a.j.g,INb(a.j))));N4b(a.e,W)||a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);return hMb(a,!a.o?JNb(a.j):fMb(a));case 16:P4b(a.e)||$Lb(a,"msg.jsdoc.expose",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 14:R4b(a.e)||$Lb(a,"msg.jsdoc.externs",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 13:case 21:VMb(a);b=!a.o?JNb(a.j):fMb(a);u=a.j.g;i=INb(a.j);v=false;if(b==(CNb(),rNb)){b=!a.o?JNb(a.j):fMb(a);v=true}if(b==BNb){$=tMb(a,b,u,i,v,true);u=a.j.g;i=INb(a.j);$= XMb(a,(tbc(),N8b),$);W=!$?null:new O5b($,!a.g?null:a.g.Og());if(d==(gJb(),nIb))jtc(c,new _Mb(W,a.j.g,INb(a.j)));else{he(d==tIb);W4b(a.e,W)||a.b.ph(NMc+r8b("msg.jsdoc.implements.duplicate",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i)}b=!a.o?JNb(a.j):fMb(a);v?b!=xNb?bMb(a,RMc,a.j.g,INb(a.j)):b=!a.o?JNb(a.j):fMb(a):b!=oNb&&b!=nNb&&b!=mNb&&bMb(a,"msg.end.annotation.expected",a.j.g,INb(a.j))}else a.b.ph(NMc+r8b("msg.no.type.name",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);b=hMb(a,b); return b;case 19:U4b(a.e)||$Lb(a,"msg.jsdoc.hidden",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 29:VMb(a);v=false;if(nMb(a,(CNb(),rNb))){b=!a.o?JNb(a.j):fMb(a);v=true}if(nMb(a,BNb)){b=!a.o?JNb(a.j):fMb(a);c5b(a.e,a.j.n)||bMb(a,"msg.jsdoc.lends.incompatible",a.j.g,INb(a.j))}else bMb(a,"msg.jsdoc.lends.missing",a.j.g,INb(a.j));v&&!nMb(a,xNb)&&bMb(a,RMc,a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 31:A=jMb(a,b,a.f?0:2,false);w=A.a;b=A.b;f5b(a.e,w)||$Lb(a,"msg.jsdoc.meaning.extra", a.j.g,INb(a.j));return b;case 33:i5b(a.e)||$Lb(a,"msg.jsdoc.noalias",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 35:k5b(a.e)||$Lb(a,"msg.jsdoc.nocompile",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 34:j5b(a.e)||$Lb(a,"msg.jsdoc.nocollapse",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 37:return hMb(a,!a.o?JNb(a.j):fMb(a));case 23:case 38:o5b(a.e)||bMb(a,"msg.jsdoc.override",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 41:j3b(a.e.a)?$Lb(a,"msg.jsdoc.polymerBehavior.extra", a.j.g,INb(a.j)):r5b(a.e);return hMb(a,!a.o?JNb(a.j):fMb(a));case 53:{VMb(a);b=!a.o?JNb(a.j):fMb(a);u=a.j.g;i=INb(a.j);W=null;if(b==(CNb(),rNb)){W=eMb(a,tMb(a,b,a.j.g,INb(a.j),b==rNb,false));if(!W)return hMb(a,!a.o?JNb(a.j):fMb(a))}b=fMb(a);A5b(a.e,W);r=mMb(a,64);if(a.e.d&&!r){k=jMb(a,b,a.f?0:2,false);j=k.a;j.length>0&&z5b(a.e,W,j);b=k.b}else b=hMb(a,!a.o?JNb(a.j):fMb(a));return b}case 40:VMb(a);b=!a.o?JNb(a.j):fMb(a);u=a.j.g;i=INb(a.j);W=null;o=false;if(b==(CNb(),rNb)){W=eMb(a,(Ud(b==rNb),eb=a.j.g, fb=INb(a.j),gb=(Ud(b==rNb),VMb(a),hb=FMb(a,!a.o?JNb(a.j):fMb(a)),!!hb&&(nMb(a,xNb)?!a.o?JNb(a.j):fMb(a):(bMb(a,RMc,a.j.g,INb(a.j)),null)),hb),SMb(a,eb,fb,gb,true),gb));if(!W)return hMb(a,!a.o?JNb(a.j):fMb(a));VMb(a);b=!a.o?JNb(a.j):fMb(a);u=a.j.g;i=INb(a.j);o=true}B=null;s=tNb==b;s&&(b=!a.o?JNb(a.j):fMb(a));if(BNb!=b)a.b.ph(NMc+r8b("msg.missing.variable.name",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);else{o||ZLb(a,a.j.g,INb(a.j));B=a.j.n;if(s){b=!a.o?JNb(a.j):fMb(a);if(pNb==b){b=!a.o?JNb(a.j): fMb(a);BNb==b&&(b=!a.o?JNb(a.j):fMb(a))}zNb!=b?(bMb(a,"msg.jsdoc.missing.rb",a.j.g,INb(a.j)),null):!!W&&(W=W.a.j==(tbc(),u9b)||W.a.j==o9b?W:new O5b(new g7b(u9b,W.a),W.b))}Abc();if(ybc.test(B))p5b(a.e,B,W)||(v4b(a.e,B)?a.b.ph(NMc+r8b("msg.dup.variable.name",pD(kD(kT,1),KFc,1,5,[B]))+OMc,!a.g?null:a.g.Og(),u,i):a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[B]))+OMc,!a.g?null:a.g.Og(),u,i));else{a.b.ph(r8b("msg.invalid.variable.name",pD(kD(kT,1),KFc,1,5,[B])),!a.g?null:a.g.Og(),u,i);B=null}}if(B==null){b= hMb(a,b);return b}y4b(a.e,B,a.g,u,i);if(a.e.d&&b!=hNb){F=jMb(a,b,a.f?0:2,false);D=F.a;D.length>0&&q5b(a.e,B,D);b=F.b}else b!=mNb&&b!=nNb&&(b=hMb(a,!a.o?JNb(a.j):fMb(a)));return b;case 36:l5b(a.e)||$Lb(a,"msg.jsdoc.nosideeffects",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 32:b=EMb(a,!a.o?JNb(a.j):fMb(a));return b;case 22:X4b(a.e)||bMb(a,"msg.jsdoc.implicitcast",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 47:if(a.e.d){L=kMb(a);K=L.a;K.length==0?$Lb(a,"msg.jsdoc.seemissing", a.j.g,INb(a.j)):t4b(a.e,K);b=L.b}else b=hMb(a,!a.o?JNb(a.j):fMb(a));return b;case 48:u5b(a.e)||$Lb(a,"msg.jsdoc.stableidgen",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 50:b=JMb(a,!a.o?JNb(a.j):fMb(a));return b;case 51:{Q=a.j.g;O=INb(a.j);P=jMb(a,b,1,false);S=P.a;ab="";t=false;bb=true;if(S.indexOf(":=")!=-1){V=S.indexOf(":=");R=S.substr(0,V);if(S.indexOf("=:")!=-1){t=true;T=S.indexOf("=:");ab=qpc(S.substr(V+2,T-(V+2)))}else{bb=false;a.b.ph(NMc+r8b("msg.jsdoc.typetransformation.missing.delimiter", pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O)}}else S.indexOf(BGc)!=-1?R=mpc(S,0,$oc(S,spc(10))):R=S;C=ff(hf(lf(new oc(44)),(Nc(),Lc)),R);if(C.b.size()==1&&C.a.getAtIndex(0).length==0)a.b.ph(NMc+r8b("msg.jsdoc.templatemissing",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O);else for(Y=new hwc(C.b.Od());Y.b.Hd();){X=Y.b.Id();X.length!=0&&yc((xc(),wc,X.charCodeAt(0)))&&Pb(new Ic((sc(),rc),new oc(95)),X)?t||x5b(a.e,X)||a.b.ph(NMc+r8b(SMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q, O):a.b.ph(NMc+r8b("msg.jsdoc.template.invalid.type.name",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O)}if(t){C.b.size()>1&&a.b.ph(NMc+r8b("msg.jsdoc.typetransformation.with.multiple.names",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O);if(ab.length==0){bb=false;a.b.ph(NMc+r8b("msg.jsdoc.typetransformation.expression.missing",pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O)}if(bb){U=new NOb(ab,a.g,a.b,Q,O);lOb(U)&&!C5b(a.e,C.a.getAtIndex(0),U.e)&&a.b.ph(NMc+r8b(SMc,pD(kD(kT,1),KFc, 1,5,[]))+OMc,!a.g?null:a.g.Og(),Q,O)}}b=P.b;return b}case 20:b=CMb(a,!a.o?JNb(a.j):fMb(a));return b;case 58:H5b(a.e)||$Lb(a,"msg.jsdoc.wizaction",a.j.g,INb(a.j));return hMb(a,!a.o?JNb(a.j):fMb(a));case 11:{P=kMb(a);C=ff(hf(lf(new oc(44)),(Nc(),Lc)),P.a);C.a.isEmpty()||C.a.getAtIndex(0).length==0?bMb(a,"msg.jsdoc.disposeparameter.missing",a.j.g,INb(a.j)):M4b(a.e,C)||bMb(a,"msg.jsdoc.disposeparameter.error",a.j.g,INb(a.j));b=P.b;return b}case 57:db=kMb(a);cb=db.a;cb.length==0?$Lb(a,"msg.jsdoc.versionmissing", a.j.g,INb(a.j)):F5b(a.e,cb)||$Lb(a,"msg.jsdoc.extraversion",a.j.g,INb(a.j));b=db.b;return b;case 4:case 18:case 7:case 15:case 46:case 39:case 43:case 44:case 45:case 52:case 54:case 55:u=a.j.g;i=INb(a.j);Z=null;p=mMb(a,123);q=d==(gJb(),MIb)||d==QIb||d==RIb||d==SIb||d==dIb||d==qIb||d==lIb;h=q||d==UIb;W=null;d==UIb&&!p&&ZLb(a,a.j.g,INb(a.j));if(p||!h){VMb(a);b=!a.o?JNb(a.j):fMb(a);Z=tMb(a,b,a.j.g,INb(a.j),b==(CNb(),rNb),false);d==$Ib&&(Z=XMb(a,(tbc(),N8b),Z));W=!Z?null:new O5b(Z,!a.g?null:a.g.Og())}n= !W&&!h;if(!n){(!!W&&q||d==aJb)&&!B5b(a.e,W)&&a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);r=mMb(a,64);switch(d.f){case 4:F4b(a.e)||$Lb(a,"msg.jsdoc.const",a.j.g,INb(a.j));break;case 18:T4b(a.e)||bMb(a,"msg.jsdoc.final",a.j.g,INb(a.j));break;case 7:H4b(a.e,W)||a.b.ph(r8b("msg.jsdoc.define",pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 15:O4b(a.e)?G5b(a.e,(o4b(),n4b))||a.b.ph(r8b(TMc,pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i):a.b.ph(r8b("msg.jsdoc.export", pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 43:G5b(a.e,(o4b(),l4b))||a.b.ph(r8b(TMc,pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 39:G5b(a.e,(o4b(),k4b))||a.b.ph(r8b(TMc,pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 44:G5b(a.e,(o4b(),m4b))||a.b.ph(r8b(TMc,pD(kD(kT,1),KFc,1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 45:G5b(a.e,(o4b(),n4b))||a.b.ph(r8b(TMc,pD(kD(kT,1),KFc, 1,5,[])),!a.g?null:a.g.Og(),u,i);if(!r)return RMb(a,b);break;case 46:!W&&(W=eMb(a,pMb(a,(tbc(),Jac))));if(!t5b(a.e,W)){a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);break}if(a.e.d&&!r){N=jMb(a,b,a.f?0:2,false);M=N.a;M.length>0&&s5b(a.e,M);b=N.b}else b=hMb(a,!a.o?JNb(a.j):fMb(a));return b;case 52:y5b(a.e,W)||a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u,i);break;case 55:D5b(a.e,W)||a.b.ph(NMc+r8b(PMc,pD(kD(kT,1),KFc,1,5,[]))+OMc,!a.g?null:a.g.Og(),u, i)}}return hMb(a,!a.o?JNb(a.j):fMb(a))}}return!a.o?JNb(a.j):fMb(a)}function qpb(){var a;a=new Kpc;a.a+='{"externs/es3.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview ECMAScript 3 Built-Ins. This include common extensions so this\\n * is actually ES3+Reality.\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n * @author nicksantos@google.com (Nick Santos)\\n * @author arv@google.com (Erik Arvidsson)\\n * @author johnlenz@google.com (John Lenz)\\n */\\n\\n\\n// START ES6 RETROFIT CODE\\n// symbol, Symbol and Symbol.iterator are actually ES6 types but some\\n// Some types require them to be part of their definition (such as Array).\\n\\n\\n// TODO(johnlenz): symbol should be a primitive type.\\n/** @typedef {?} */\\nvar symbol;\\n\\n/**\\n * @param {string=} opt_description\\n * @return {symbol}\\n */\\nfunction Symbol(opt_description) {}\\n\\n\\n/**\\n * @param {string} sym\\n * @return {symbol|undefined}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for\\n */\\nSymbol.for;\\n\\n\\n/**\\n * @param {symbol} sym\\n * @return {string|undefined}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/keyFor\\n */\\nSymbol.keyFor;\\n\\n\\n// Well known symbols\\n\\n/** @const {symbol} */\\nSymbol.iterator;\\n\\n/** @const {symbol} */\\nSymbol.toStringTag;\\n\\n/** @const {symbol} */\\nSymbol.unscopables;\\n\\n\\n/**\\n * @record\\n * @template VALUE\\n */\\nfunction IIterableResult() {};\\n\\n/** @type {boolean} */\\nIIterableResult.prototype.done;\\n\\n/** @type {VALUE} */\\nIIterableResult.prototype.value;\\n\\n\\n\\n/**\\n * @interface\\n * @template VALUE\\n */\\nfunction Iterable() {}\\n\\n// TODO(johnlenz): remove the suppression when the compiler understands\\n// \\"symbol\\" natively\\n/**\\n * @return {Iterator}\\n * @suppress {externsValidation}\\n */\\nIterable.prototype[Symbol.iterator] = function() {};\\n\\n\\n\\n/**\\n * @interface\\n * @template VALUE\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol\\n */\\nfunction Iterator() {}\\n\\n/**\\n * @param {VALUE=} value\\n * @return {!IIterableResult}\\n */\\nIterator.prototype.next;\\n\\n\\n/**\\n * Use this to indicate a type is both an Iterator and an Iterable.\\n * @interface\\n * @extends {Iterator}\\n * @extends {Iterable}\\n * @template T\\n */\\nfunction IteratorIterable() {}\\n\\n// END ES6 RETROFIT CODE\\n\\n\\n/**\\n * @interface\\n * @template KEY1, VALUE1\\n */\\nfunction IObject() {}\\n\\n/**\\n * @record\\n * @extends {IObject}\\n * @template VALUE2\\n */\\nfunction IArrayLike() {}\\n\\n/** @type {number} */\\nIArrayLike.prototype.length;\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments\\n */\\nfunction Arguments() {}\\n\\n/**\\n * @type {Function}\\n * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/callee\\n */\\nArguments.prototype.callee;\\n\\n/**\\n * Use the non-standard {@see Function.prototype.caller} property of a function\\n * object instead.\\n * @type {Function}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/caller\\n * @deprecated\\n */\\nArguments.prototype.caller;\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments/length\\n */\\nArguments.prototype.length;\\n\\n/**\\n * Not actually a global variable, but we need it in order for the current type\\n * checker to typecheck the \\"arguments\\" variable in a function correctly.\\n * TODO(tbreisacher): When the old type checker is gone, delete this and add\\n * an \'arguments\' variable of type Array in the d8 externs.\\n *\\n * @type {!Arguments}\\n * @see http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Functions_and_function_scope/arguments\\n */\\nvar arguments;\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity\\n * @const\\n */\\nvar Infinity;\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN\\n * @const\\n */\\nvar NaN;\\n\\n/**\\n * @type {undefined}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined\\n * @const\\n */\\nvar undefined;\\n\\n/**\\n * @param {string} uri\\n * @return {string}\\n * @throws {URIError} when used wrongly.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI\\n */\\nfunction decodeURI(uri) {}\\n\\n/**\\n * @param {string} uri\\n * @return {string}\\n * @throws {URIError} when used wrongly.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent\\n */\\nfunction decodeURIComponent(uri) {}\\n\\n/**\\n * @param {string} uri\\n * @return {string}\\n * @throws {URIError} if one attempts to encode a surrogate which is not part of\\n * a high-low pair.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI\\n */\\nfunction encodeURI(uri) {}\\n\\n/**\\n * @param {string} uri\\n * @return {string}\\n * @throws {URIError} if one attempts to encode a surrogate which is not part of\\n * a high-low pair.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\\n */\\nfunction encodeURIComponent(uri) {}\\n\\n/**\\n * Should only be used in browsers where encode/decodeURIComponent\\n * are not present, as the latter handle fancy Unicode characters.\\n * @param {string} str\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions\\n */\\nfunction escape(str) {}\\n\\n/**\\n * Should only be used in browsers where encode/decodeURIComponent\\n * are not present, as the latter handle fancy Unicode characters.\\n * @param {string} str\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions\\n */\\nfunction unescape(str) {}\\n\\n/**\\n * @param {*} num\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite\\n */\\nfunction isFinite(num) {}\\n\\n/**\\n * @param {*} num\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN\\n */\\nfunction isNaN(num) {}\\n\\n/**\\n * @param {*} num\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat\\n */\\nfunction parseFloat(num) {}\\n\\n/**\\n * Parse an integer. Use of {@code parseInt} without {@code base} is strictly\\n * banned in Google. If you really want to parse octal or hex based on the\\n * leader, then pass {@code undefined} as the base.\\n *\\n * @param {*} num\\n * @param {number|undefined} base\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt\\n */\\nfunction parseInt(num, base) {}\\n\\n/**\\n * @param {string} code\\n * @return {*}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval\\n */\\nfunction eval(code) {}\\n\\n\\n\\n/**\\n * @constructor\\n * @param {*=} opt_value\\n * @return {!Object}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\\n */\\nfunction Object(opt_value) {}\\n\\n/**\\n * The constructor of the current object.\\n * @type {Function}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor\\n */\\nObject.prototype.constructor = function() {};\\n\\n/**\\n * Binds an object\'s property to a function to be called when that property is\\n * looked up.\\n * Mozilla-only.\\n *\\n * @param {string} sprop\\n * @param {Function} fun\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineGetter\\n * @return {undefined}\\n */\\nObject.prototype.__defineGetter__ = function(sprop, fun) {};\\n\\n/**\\n * Binds an object\'s property to a function to be called when an attempt is made\\n * to set that property.\\n * Mozilla-only.\\n *\\n * @param {string} sprop\\n * @param {Function} fun\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineSetter\\n * @return {undefined}\\n */\\nObject.prototype.__defineSetter__ = function(sprop, fun) {};\\n\\n/**\\n * Returns whether the object has a property with the specified name.\\n *\\n * @param {*} propertyName Implicitly cast to a string.\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty\\n */\\nObject.prototype.hasOwnProperty = function(propertyName) {};\\n\\n/**\\n * Returns whether an object exists in another object\'s prototype chain.\\n *\\n * @param {Object} other\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf\\n */\\nObject.prototype.isPrototypeOf = function(other) {};\\n\\n/**\\n * Return the function bound as a getter to the specified property.\\n * Mozilla-only.\\n *\\n * @param {string} sprop a string containing the name of the property whose\\n * getter should be returned\\n * @return {Function}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/lookupGetter\\n */\\nObject.prototype.__lookupGetter__ = function(sprop) {};\\n\\n/**\\n * Return the function bound as a setter to the specified property.\\n * Mozilla-only.\\n *\\n * @param {string} sprop a string containing the name of the property whose\\n * setter should be returned.\\n * @return {Function}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/lookupSetter\\n */\\nObject.prototype.__lookupSetter__ = function(sprop) {};\\n\\n/**\\n * Executes a function when a non-existent method is called on an object.\\n * Mozilla-only.\\n *\\n * @param {Function} fun\\n * @return {*}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod\\n */\\nObject.prototype.__noSuchMethod__ = function(fun) {};\\n\\n/**\\n * Points to an object\'s context. For top-level objects, this is the e.g. window.\\n * Mozilla-only.\\n *\\n * @type {Object}\\n * @deprecated\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/parent\\n */\\nObject.prototype.__parent__;\\n\\n/**\\n * Points to the object which was used as prototype when the object was instantiated.\\n * Mozilla-only.\\n *\\n * Will be null on Object.prototype.\\n *\\n * @type {Object}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto\\n */\\nObject.prototype.__proto__;\\n\\n/**\\n * Determine whether the specified property in an object can be enumerated by a\\n * for..in loop, with the exception of properties inherited through the\\n * prototype chain.\\n *\\n * @param {string} propertyName\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable\\n */\\nObject.prototype.propertyIsEnumerable = function(propertyName) {};\\n\\n/**\\n * Returns a localized string representing the object.\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString\\n */\\nObject.prototype.toLocaleString = function() {};\\n\\n/**\\n * Returns a string representing the source code of the object.\\n * Mozilla-only.\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource\\n */\\nObject.prototype.toSource = function() {};\\n\\n/**\\n * Returns a string representing the object.\\n * @this {*}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString\\n */\\nObject.prototype.toString = function() {};\\n\\n/**\\n * Removes a watchpoint set with the {@see Object.prototype.watch} method.\\n * Mozilla-only.\\n * @param {string} prop The name of a property of the object.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/unwatch\\n * @return {undefined}\\n */\\nObject.prototype.unwatch = function(prop) {};\\n\\n/**\\n * Returns the object\'s {@code this} value.\\n * @return {*}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf\\n */\\nObject.prototype.valueOf = function() {};\\n\\n/**\\n * Sets a watchpoint method.\\n * Mozilla-only.\\n * @param {string} prop The name of a property of the object.\\n * @param {Function} handler A function to call.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch\\n * @return {undefined}\\n */\\nObject.prototype.watch = function(prop, handler) {};\\n\\n\\n/**\\n * @constructor\\n * @param {...*} var_args\\n * @throws {Error}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function\\n */\\nfunction Function(var_args) {}\\n\\n/**\\n * @param {...*} var_args\\n * @return {*}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call\\n */\\nFunction.prototype.call = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {*}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply\\n */\\nFunction.prototype.apply = function(var_args) {};\\n\\nFunction.prototype.arguments;\\n\\n/**\\n * @type {number}\\n * @deprecated\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity\\n */\\nFunction.prototype.arity;\\n\\n/**\\n * Nonstandard; Mozilla and JScript only.\\n * @type {Function}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller\\n */\\nFunction.prototype.caller;\\n\\n/**\\n * Nonstandard.\\n * @type {?}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName\\n */\\nFunction.prototype.displayName;\\n\\n/**\\n * Expected number of arguments.\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length\\n */\\nFunction.prototype.length;\\n\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name\\n */\\nFunction.prototype.name;\\n\\n/**\\n * @this {Function}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nFunction.prototype.toString = function() {};\\n\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @param {...*} var_args\\n * @return {!Array}\\n * @nosideeffects\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array\\n */\\nfunction Array(var_args) {}\\n\\n/**\\n * @return {Iterator}\\n * @suppress {externsValidation}\\n */\\nArray.prototype[Symbol.iterator] = function() {};\\n\\n// Functions:\\n\\n/**\\n * Returns a new array comprised of this array joined with other array(s)\\n * and/or value(s).\\n *\\n * @param {...*} var_args\\n * @return {!Array}\\n * @this {*}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat\\n */\\nArray.prototype.concat = function(var_args) {};\\n\\n/**\\n * Joins all elements of an array i'; a.a+="nto a string.\\n *\\n * @param {*=} opt_separator Specifies a string to separate each element of the\\n * array. The separator is converted to a string if necessary. If omitted,\\n * the array elements are separated with a comma.\\n * @return {string}\\n * @this {IArrayLike|string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join\\n */\\nArray.prototype.join = function(opt_separator) {};\\n\\n/**\\n * Removes the last element from an array and returns that element.\\n *\\n * @return {T}\\n * @this {IArrayLike}\\n * @modifies {this}\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop\\n */\\nArray.prototype.pop = function() {};\\n\\n/**\\n * Mutates an array by appending the given elements and returning the new\\n * length of the array.\\n *\\n * @param {...T} var_args\\n * @return {number} The new length of the array.\\n * @this {IArrayLike}\\n * @template T\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push\\n */\\nArray.prototype.push = function(var_args) {};\\n\\n/**\\n * Transposes the elements of an array in place: the first array element becomes the\\n * last and the last becomes the first. The mutated array is also returned.\\n *\\n * @return {THIS} A reference to the original modified array.\\n * @this {THIS}\\n * @template THIS\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse\\n */\\nArray.prototype.reverse = function() {};\\n\\n/**\\n * Removes the first element from an array and returns that element. This\\n * method changes the length of the array.\\n *\\n * @this {IArrayLike}\\n * @modifies {this}\\n * @return {T}\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift\\n */\\nArray.prototype.shift = function() {};\\n\\n/**\\n * Extracts a section of an array and returns a new array.\\n *\\n * @param {*=} opt_begin Zero-based index at which to begin extraction. A\\n * non-number type will be auto-cast by the browser to a number.\\n * @param {*=} opt_end Zero-based index at which to end extraction. slice\\n * extracts up to but not including end.\\n * @return {!Array}\\n * @this {IArrayLike|string}\\n * @template T\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice\\n */\\nArray.prototype.slice = function(opt_begin, opt_end) {};\\n\\n/**\\n * Sorts the elements of an array in place.\\n *\\n * @param {function(T,T):number=} opt_compareFunction Specifies a function that\\n * defines the sort order.\\n * @this {IArrayLike}\\n * @template T\\n * @modifies {this}\\n * @return {!Array}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\\n */\\nArray.prototype.sort = function(opt_compareFunction) {};\\n\\n/**\\n * Changes the content of an array, adding new elements while removing old\\n * elements.\\n *\\n * @param {*=} opt_index Index at which to start changing the array. If negative,\\n * will begin that many elements from the end. A non-number type will be\\n * auto-cast by the browser to a number.\\n * @param {*=} opt_howMany An integer indicating the number of old array elements\\n * to remove.\\n * @param {...T} var_args\\n * @return {!Array}\\n * @this {IArrayLike}\\n * @modifies {this}\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice\\n */\\nArray.prototype.splice = function(opt_index, opt_howMany, var_args) {};\\n\\n/**\\n * @return {string}\\n * @this {Object}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource\\n */\\nArray.prototype.toSource;\\n\\n/**\\n * @this {Array}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nArray.prototype.toString = function() {};\\n\\n/**\\n * Adds one or more elements to the beginning of an array and returns the new\\n * length of the array.\\n *\\n * @param {...*} var_args\\n * @return {number} The new length of the array\\n * @this {IArrayLike}\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift\\n */\\nArray.prototype.unshift = function(var_args) {};\\n\\n/**\\n * Apply a function simultaneously against two values of the array (from\\n * left-to-right) as to reduce it to a single value.\\n *\\n * @param {?function(?, T, number, !Array) : R} callback\\n * @param {*=} opt_initialValue\\n * @return {R}\\n * @this {IArrayLike|string}\\n * @template T,R\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce\\n */\\nArray.prototype.reduce = function(callback, opt_initialValue) {};\\n\\n/**\\n * Apply a function simultaneously against two values of the array (from\\n * right-to-left) as to reduce it to a single value.\\n *\\n * @param {?function(?, T, number, !Array) : R} callback\\n * @param {*=} opt_initialValue\\n * @return {R}\\n * @this {IArrayLike|string}\\n * @template T,R\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight\\n */\\nArray.prototype.reduceRight = function(callback, opt_initialValue) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {?function(this:S, T, number, !Array): ?} callback\\n * @param {S=} opt_thisobj\\n * @return {boolean}\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every\\n */\\nArray.prototype.every = function(callback, opt_thisobj) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {?function(this:S, T, number, !Array): ?} callback\\n * @param {S=} opt_thisobj\\n * @return {!Array}\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter\\n */\\nArray.prototype.filter = function(callback, opt_thisobj) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {?function(this:S, T, number, !Array): ?} callback\\n * @param {S=} opt_thisobj\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\\n * @return {undefined}\\n */\\nArray.prototype.forEach = function(callback, opt_thisobj) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {T} obj\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @this {IArrayLike|string}\\n * @nosideeffects\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf\\n */\\nArray.prototype.indexOf = function(obj, opt_fromIndex) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {T} obj\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @this {IArrayLike|string}\\n * @nosideeffects\\n * @template T\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf\\n */\\nArray.prototype.lastIndexOf = function(obj, opt_fromIndex) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {?function(this:S, T, number, !Array): R} callback\\n * @param {S=} opt_thisobj\\n * @return {!Array}\\n * @this {IArrayLike|string}\\n * @template T,S,R\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map\\n */\\nArray.prototype.map = function(callback, opt_thisobj) {};\\n\\n/**\\n * Available in ECMAScript 5, Mozilla 1.6+.\\n * @param {?function(this:S, T, number, !Array): ?} callback\\n * @param {S=} opt_thisobj\\n * @return {boolean}\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some\\n */\\nArray.prototype.some = function(callback, opt_thisobj) {};\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/index\\n */\\nArray.prototype.index;\\n\\n/**\\n * @type {?string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/input\\n */\\nArray.prototype.input;\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length\\n */\\nArray.prototype.length;\\n\\n/**\\n * @param {IArrayLike} arr\\n * @param {?function(this:S, T, number, ?) : ?} callback\\n * @param {S=} opt_context\\n * @return {boolean}\\n * @template T,S\\n */\\nArray.every = function(arr, callback, opt_context) {};\\n\\n/**\\n * @param {IArrayLike} arr\\n * @param {?function(this:S, T, number, ?) : ?} callback\\n * @param {S=} opt_context\\n * @return {!Array}\\n * @template T,S\\n */\\nArray.filter = function(arr, callback, opt_context) {};\\n\\n/**\\n * @param {IArrayLike} arr\\n * @param {?function(this:S, T, number, ?) : ?} callback\\n * @param {S=} opt_context\\n * @template T,S\\n * @return {undefined}\\n */\\nArray.forEach = function(arr, callback, opt_context) {};\\n\\n/**\\n * Mozilla 1.6+ only.\\n * @param {IArrayLike} arr\\n * @param {T} obj\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @template T\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf\\n */\\nArray.indexOf = function(arr, obj, opt_fromIndex) {};\\n\\n/**\\n * Mozilla 1.6+ only.\\n * @param {IArrayLike} arr\\n * @param {T} obj\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @template T\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf\\n */\\nArray.lastIndexOf = function(arr, obj, opt_fromIndex) {};\\n\\n/**\\n * @param {IArrayLike} arr\\n * @param {?function(this:S, T, number, !Array): R} callback\\n * @param {S=} opt_context\\n * @return {!Array}\\n * @template T,S,R\\n */\\nArray.map = function(arr, callback, opt_context) {};\\n\\n/**\\n * @param {IArrayLike} arr\\n * @param {?function(this:S, T, number, ?) : ?} callback\\n * @param {S=} opt_context\\n * @return {boolean}\\n * @template T,S\\n */\\nArray.some = function(arr, callback, opt_context) {};\\n\\n/**\\n * Introduced in 1.8.5.\\n * @param {*} arr\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\\n */\\nArray.isArray = function(arr) {};\\n\\n/**\\n * @constructor\\n * @param {*=} opt_value\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean\\n */\\nfunction Boolean(opt_value) {}\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toSource\\n * @override\\n */\\nBoolean.prototype.toSource = function() {};\\n\\n/**\\n * @this {boolean|Boolean}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nBoolean.prototype.toString = function() {};\\n\\n/**\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/valueOf\\n * @override\\n */\\nBoolean.prototype.valueOf = function() {};\\n\\n/**\\n * @constructor\\n * @param {*=} opt_value\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number\\n */\\nfunction Number(opt_value) {}\\n\\n/**\\n * @this {Number|number}\\n * @param {number=} opt_fractionDigits\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential\\n */\\nNumber.prototype.toExponential = function(opt_fractionDigits) {};\\n\\n/**\\n * @this {Number|number}\\n * @param {*=} opt_digits\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed\\n */\\nNumber.prototype.toFixed = function(opt_digits) {};\\n\\n/**\\n * @this {Number|number}\\n * @param {number=} opt_precision\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision\\n */\\nNumber.prototype.toPrecision = function(opt_precision) {};\\n\\n/**\\n * Returns a string representing the number.\\n * @this {Number|number}\\n * @param {(number|Number)=} opt_radix An optional radix.\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString\\n * @override\\n */\\nNumber.prototype.toString = function(opt_radix) {};\\n\\n// Properties.\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE\\n */\\nNumber.MAX_VALUE;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE\\n */\\nNumber.MIN_VALUE;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN\\n */\\nNumber.NaN;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY\\n */\\nNumber.NEGATIVE_INFINITY;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY\\n */\\nNumber.POSITIVE_INFINITY;\\n\\n\\n/**\\n * @const\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math\\n */\\nvar Math = {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/abs\\n */\\nMath.abs = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acos\\n */\\nMath.acos = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asin\\n */\\nMath.asin = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan\\n */\\nMath.atan = function(x) {};\\n\\n/**\\n * @param {?} y\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2\\n */\\nMath.atan2 = function(y, x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil\\n */\\nMath.ceil = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cos\\n */\\nMath.cos = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/exp\\n */\\nMath.exp = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor\\n */\\nMath.floor = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log\\n */\\nMath.log = function(x) {};\\n\\n/**\\n * @param {...?} var_args\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max\\n */\\nMath.max = function(var_args) {};\\n\\n/**\\n * @param {...?} var_args\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min\\n */\\nMath.min = function(var_args) {};\\n\\n/**\\n * @param {?} x\\n * @param {?} y\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow\\n */\\nMath.pow = function(x, y) {};\\n\\n/**\\n * @return {number}\\n * @nosidee"; a.a+="ffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random\\n */\\nMath.random = function() {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round\\n */\\nMath.round = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin\\n */\\nMath.sin = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt\\n */\\nMath.sqrt = function(x) {};\\n\\n/**\\n * @param {?} x\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tan\\n */\\nMath.tan = function(x) {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/toSource\\n */\\nMath.toSource = function() {};\\n\\n// Properties:\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/E\\n */\\nMath.E;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2\\n */\\nMath.LN2;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10\\n */\\nMath.LN10;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E\\n */\\nMath.LOG2E;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E\\n */\\nMath.LOG10E;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI\\n */\\nMath.PI;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2\\n */\\nMath.SQRT1_2;\\n\\n/**\\n * @const {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2\\n */\\nMath.SQRT2;\\n\\n\\n/**\\n * @param {?=} opt_yr_num\\n * @param {?=} opt_mo_num\\n * @param {?=} opt_day_num\\n * @param {?=} opt_hr_num\\n * @param {?=} opt_min_num\\n * @param {?=} opt_sec_num\\n * @param {?=} opt_ms_num\\n * @constructor\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date\\n */\\nfunction Date(opt_yr_num, opt_mo_num, opt_day_num, opt_hr_num, opt_min_num,\\n opt_sec_num, opt_ms_num) {}\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now\\n */\\nDate.now = function() {};\\n\\n/**\\n * Parses a string representation of a date, and returns the number\\n * of milliseconds since January 1, 1970, 00:00:00, local time.\\n * @param {*} date\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\\n */\\nDate.parse = function(date) {};\\n\\n/**\\n * @param {number} year\\n * @param {number} month\\n * @param {number=} opt_date\\n * @param {number=} opt_hours\\n * @param {number=} opt_minute\\n * @param {number=} opt_second\\n * @param {number=} opt_ms\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC\\n */\\nDate.UTC = function(year, month,\\n opt_date, opt_hours, opt_minute, opt_second, opt_ms) {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate\\n */\\nDate.prototype.getDate = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay\\n */\\nDate.prototype.getDay = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth\\n */\\nDate.prototype.getMonth = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear\\n */\\nDate.prototype.getFullYear = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear\\n */\\nDate.prototype.getYear = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours\\n */\\nDate.prototype.getHours = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes\\n */\\nDate.prototype.getMinutes = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds\\n */\\nDate.prototype.getSeconds = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds\\n */\\nDate.prototype.getMilliseconds = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime\\n */\\nDate.prototype.getTime = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\\n */\\nDate.prototype.getTimezoneOffset = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate\\n */\\nDate.prototype.getUTCDate = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay\\n */\\nDate.prototype.getUTCDay = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth\\n */\\nDate.prototype.getUTCMonth = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear\\n */\\nDate.prototype.getUTCFullYear = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours\\n */\\nDate.prototype.getUTCHours = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes\\n */\\nDate.prototype.getUTCMinutes = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds\\n */\\nDate.prototype.getUTCSeconds = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds\\n */\\nDate.prototype.getUTCMilliseconds = function() {};\\n\\n/**\\n * Sets the day of the month for a specified date according to local time.\\n *\\n * @param {number} dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate\\n * @return {number}\\n */\\nDate.prototype.setDate = function(dayValue) {};\\n\\n/**\\n * Set the month for a specified date according to local time.\\n *\\n * @param {number} monthValue\\n * @param {number=} opt_dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMonth\\n * @return {number}\\n */\\nDate.prototype.setMonth = function(monthValue, opt_dayValue) {};\\n\\n/**\\n * Sets the full year for a specified date according to local time.\\n *\\n * @param {number} yearValue\\n * @param {number=} opt_monthValue\\n * @param {number=} opt_dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear\\n * @return {number}\\n */\\nDate.prototype.setFullYear =\\n function(yearValue, opt_monthValue, opt_dayValue) {};\\n\\n/**\\n * Sets the year for a specified date according to local time.\\n *\\n * @param {number} yearValue\\n * @deprecated\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear\\n * @return {number}\\n */\\nDate.prototype.setYear = function(yearValue) {};\\n\\n/**\\n * Sets the hours for a specified date according to local time.\\n *\\n * @param {number} hoursValue\\n * @param {number=} opt_minutesValue\\n * @param {number=} opt_secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours\\n * @return {number}\\n */\\nDate.prototype.setHours = function(hoursValue, opt_minutesValue,\\n opt_secondsValue, opt_msValue) {};\\n\\n/**\\n * Sets the minutes for a specified date according to local time.\\n *\\n * @param {number} minutesValue\\n * @param {number=} opt_secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMinutes\\n * @return {number}\\n */\\nDate.prototype.setMinutes =\\n function(minutesValue, opt_secondsValue, opt_msValue) {};\\n\\n/**\\n * Sets the seconds for a specified date according to local time.\\n *\\n * @param {number} secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setSeconds\\n * @return {number}\\n */\\nDate.prototype.setSeconds = function(secondsValue, opt_msValue) {};\\n\\n/**\\n * Sets the milliseconds for a specified date according to local time.\\n *\\n * @param {number} millisecondsValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds\\n * @return {number}\\n */\\nDate.prototype.setMilliseconds = function(millisecondsValue) {};\\n\\n/**\\n * Sets the Date object to the time represented by a number of milliseconds\\n * since January 1, 1970, 00:00:00 UTC.\\n *\\n * @param {number} timeValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime\\n * @return {number}\\n */\\nDate.prototype.setTime = function(timeValue) {};\\n\\n/**\\n * Sets the day of the month for a specified date according to universal time.\\n *\\n * @param {number} dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate\\n * @return {number}\\n */\\nDate.prototype.setUTCDate = function(dayValue) {};\\n\\n/**\\n * Sets the month for a specified date according to universal time.\\n *\\n * @param {number} monthValue\\n * @param {number=} opt_dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth\\n * @return {number}\\n */\\nDate.prototype.setUTCMonth = function(monthValue, opt_dayValue) {};\\n\\n/**\\n * Sets the full year for a specified date according to universal time.\\n *\\n * @param {number} yearValue\\n * @param {number=} opt_monthValue\\n * @param {number=} opt_dayValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear\\n * @return {number}\\n */\\nDate.prototype.setUTCFullYear = function(yearValue, opt_monthValue,\\n opt_dayValue) {};\\n\\n/**\\n * Sets the hour for a specified date according to universal time.\\n *\\n * @param {number} hoursValue\\n * @param {number=} opt_minutesValue\\n * @param {number=} opt_secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours\\n * @return {number}\\n */\\nDate.prototype.setUTCHours = function(hoursValue, opt_minutesValue,\\n opt_secondsValue, opt_msValue) {};\\n\\n/**\\n * Sets the minutes for a specified date according to universal time.\\n *\\n * @param {number} minutesValue\\n * @param {number=} opt_secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes\\n * @return {number}\\n */\\nDate.prototype.setUTCMinutes = function(minutesValue, opt_secondsValue,\\n opt_msValue) {};\\n\\n\\n/**\\n * Sets the seconds for a specified date according to universal time.\\n *\\n * @param {number} secondsValue\\n * @param {number=} opt_msValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds\\n * @return {number}\\n */\\nDate.prototype.setUTCSeconds = function(secondsValue, opt_msValue) {};\\n\\n/**\\n * Sets the milliseconds for a specified date according to universal time.\\n *\\n * @param {number} millisecondsValue\\n * @modifies {this}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds\\n * @return {number}\\n */\\nDate.prototype.setUTCMilliseconds = function(millisecondsValue) {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toSource\\n * @override\\n */\\nDate.prototype.toSource = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString\\n */\\nDate.prototype.toDateString = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toGMTString\\n */\\nDate.prototype.toGMTString = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString\\n */\\nDate.prototype.toTimeString = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString\\n */\\nDate.prototype.toUTCString = function() {};\\n\\n/**\\n * @param {(string|Array)=} opt_locales\\n * @param {Object=} opt_options\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString\\n */\\nDate.prototype.toLocaleDateString = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {string} formatString\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat\\n */\\nDate.prototype.toLocaleFormat = function(formatString) {};\\n\\n/**\\n * @param {string|Array=} opt_locales\\n * @param {Object=} opt_options\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString\\n * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.3.1\\n * @override\\n */\\nDate.prototype.toLocaleString = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {(string|Array)=} opt_locales\\n * @param {Object=} opt_options\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString\\n */\\nDate.prototype.toLocaleTimeString = function(opt_locales, opt_options) {};\\n\\n/**\\n * @this {Date}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nDate.prototype.toString = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org"; a.a+="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf\\n */\\nDate.prototype.valueOf;\\n\\n/**\\n * @constructor\\n * @param {*=} opt_str\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String\\n */\\nfunction String(opt_str) {}\\n\\n/**\\n * @param {...number} var_args\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode\\n */\\nString.fromCharCode = function(var_args) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/anchor\\n */\\nString.prototype.anchor = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/big\\n */\\nString.prototype.big = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/blink\\n */\\nString.prototype.blink = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/bold\\n */\\nString.prototype.bold = function() {};\\n\\n/**\\n * Returns the specified character from a string.\\n *\\n * @this {String|string}\\n * @param {number} index\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt\\n */\\nString.prototype.charAt = function(index) {};\\n\\n/**\\n * Returns a number indicating the Unicode value of the character at the given\\n * index.\\n *\\n * @this {String|string}\\n * @param {number=} opt_index\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\\n */\\nString.prototype.charCodeAt = function(opt_index) {};\\n\\n/**\\n * Combines the text of two or more strings and returns a new string.\\n *\\n * @this {String|string}\\n * @param {...*} var_args\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat\\n */\\nString.prototype.concat = function(var_args) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fixed\\n */\\nString.prototype.fixed = function() {};\\n\\n/**\\n * @this {String|string}\\n * @param {string} color\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontcolor\\n */\\nString.prototype.fontcolor = function(color) {};\\n\\n/**\\n * @this {String|string}\\n * @param {number} size\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontsize\\n */\\nString.prototype.fontsize = function(size) {};\\n\\n/**\\n * Returns the index within the calling String object of the first occurrence\\n * of the specified value, starting the search at fromIndex, returns -1 if the\\n * value is not found.\\n *\\n * @this {String|string}\\n * @param {string|null} searchValue\\n * @param {(number|null)=} opt_fromIndex\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf\\n */\\nString.prototype.indexOf = function(searchValue, opt_fromIndex) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/italics\\n */\\nString.prototype.italics = function() {};\\n\\n/**\\n * Returns the index within the calling String object of the last occurrence of\\n * the specified value, or -1 if not found. The calling string is searched\\n * backward, starting at fromIndex.\\n *\\n * @this {String|string}\\n * @param {string|null} searchValue\\n * @param {(number|null)=} opt_fromIndex\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf\\n */\\nString.prototype.lastIndexOf = function(searchValue, opt_fromIndex) {};\\n\\n/**\\n * @this {String|string}\\n * @param {string} hrefAttribute\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/link\\n */\\nString.prototype.link = function(hrefAttribute) {};\\n\\n/**\\n * Returns a number indicating whether a reference string comes before or after\\n * or is the same as the given string in sort order.\\n *\\n * @this {*}\\n * @param {?string} compareString\\n * @param {string|Array=} locales\\n * @param {Object=} options\\n * @return {number}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/String/localeCompare\\n * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.1.1\\n */\\nString.prototype.localeCompare = function(compareString, locales, options) {};\\n\\n/**\\n * Used to retrieve the matches when matching a string against a regular\\n * expression.\\n *\\n * @this {String|string}\\n * @param {*} regexp\\n * @return {Array} This should really return an Array with a few\\n * special properties, but we do not have a good way to model this in\\n * our type system. Also see Regexp.prototype.exec.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match\\n */\\nString.prototype.match = function(regexp) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/quote\\n */\\nString.prototype.quote = function() {};\\n\\n/**\\n * Finds a match between a regular expression and a string, and replaces the\\n * matched substring with a new substring.\\n *\\n * This may have side-effects if the replacement function has side-effects.\\n *\\n * @this {String|string}\\n * @param {RegExp|string} regex\\n * @param {string|Function} str\\n * @param {string=} opt_flags\\n * @return {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace\\n */\\nString.prototype.replace = function(regex, str, opt_flags) {};\\n\\n/**\\n * Executes the search for a match between a regular expression and this String\\n * object.\\n *\\n * @this {String|string}\\n * @param {RegExp|string} regexp\\n * @return {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search\\n */\\nString.prototype.search = function(regexp) {};\\n\\n/**\\n * @this {String|string}\\n * @param {number} begin\\n * @param {number=} opt_end\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice\\n */\\nString.prototype.slice = function(begin, opt_end) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/small\\n */\\nString.prototype.small = function() {};\\n\\n/**\\n * @this {String|string}\\n * @param {*=} opt_separator\\n * @param {number=} opt_limit\\n * @return {!Array}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split\\n */\\nString.prototype.split = function(opt_separator, opt_limit) {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/strike\\n */\\nString.prototype.strike = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/sub\\n */\\nString.prototype.sub = function() {};\\n\\n/**\\n * @this {String|string}\\n * @param {number} start\\n * @param {number=} opt_length\\n * @return {string} The specified substring.\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr\\n */\\nString.prototype.substr = function(start, opt_length) {};\\n\\n/**\\n * @this {String|string}\\n * @param {number} start\\n * @param {number=} opt_end\\n * @return {string} The specified substring.\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring\\n */\\nString.prototype.substring = function(start, opt_end) {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/sup\\n */\\nString.prototype.sup = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase\\n */\\nString.prototype.toLocaleUpperCase = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase\\n */\\nString.prototype.toLocaleLowerCase = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase\\n */\\nString.prototype.toLowerCase = function() {};\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase\\n */\\nString.prototype.toUpperCase = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toSource\\n * @override\\n */\\nString.prototype.toSource = function() {};\\n\\n/**\\n * @this {string|String}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nString.prototype.toString = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/valueOf\\n */\\nString.prototype.valueOf;\\n\\n/**\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length\\n */\\nString.prototype.length;\\n\\n/**\\n * @constructor\\n * @param {*=} opt_pattern\\n * @param {*=} opt_flags\\n * @return {!RegExp}\\n * @throws {SyntaxError} if opt_pattern is an invalid pattern.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nfunction RegExp(opt_pattern, opt_flags) {}\\n\\n/**\\n * @param {*} pattern\\n * @param {*=} opt_flags\\n * @return {void}\\n * @modifies {this}\\n * @deprecated\\n * @see http://msdn.microsoft.com/en-us/library/x9cswe0z(v=VS.85).aspx\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile\\n */\\nRegExp.prototype.compile = function(pattern, opt_flags) {};\\n\\n/**\\n * @param {*} str The string to search.\\n * @return {Array} This should really return an Array with a few\\n * special properties, but we do not have a good way to model this in\\n * our type system. Also see String.prototype.match.\\n * @see http://msdn.microsoft.com/en-us/library/z908hy33(VS.85).aspx\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec\\n */\\nRegExp.prototype.exec = function(str) {};\\n\\n/**\\n * @param {*} str The string to search.\\n * @return {boolean} Whether the string was matched.\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test\\n */\\nRegExp.prototype.test = function(str) {};\\n\\n/**\\n * @this {RegExp}\\n * @return {string}\\n * @nosideeffects\\n * @override\\n */\\nRegExp.prototype.toString = function() {};\\n\\n// Constructor properties:\\n\\n/**\\n * The string against which the last regexp was matched.\\n * @type {string}\\n * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_input.html\\n */\\nRegExp.input;\\n\\n/**\\n * The last matched characters.\\n * @type {string}\\n * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_lastMatch.html\\n */\\nRegExp.lastMatch;\\n\\n/**\\n * The last matched parenthesized substring, if any.\\n * @type {string}\\n * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_lastParen.html\\n */\\nRegExp.lastParen;\\n\\n/**\\n * The substring of the input up to the characters most recently matched.\\n * @type {string}\\n * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_leftContext.html\\n */\\nRegExp.leftContext;\\n\\n/**\\n * The substring of the input after the characters most recently matched.\\n * @type {string}\\n * @see http://www.devguru.com/Technologies/Ecmascript/Quickref/regexp_rightContext.html\\n */\\nRegExp.rightContext;\\n\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$1;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$2;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$3;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$4;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$5;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$6;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$7;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$8;\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\\n */\\nRegExp.$9;\\n\\n// Prototype properties:\\n\\n/**\\n * Whether to test the regular expression against all possible matches\\n * in a string, or only against the first.\\n * @type {boolean}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global\\n */\\nRegExp.prototype.global;\\n\\n/**\\n * Whether to ignore case while attempting a match in a string.\\n * @type {boolean}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase\\n */\\nRegExp.prototype.ignoreCase;\\n\\n/**\\n * The index at which to start the next match.\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex\\n */\\nRegExp.prototype.lastIndex;\\n\\n/**\\n * Whether or not to search in strings across multiple lines.\\n * @type {boolean}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline\\n */\\nRegExp.prototype.multiline;\\n\\n/**\\n * The text of the pattern.\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source\\n */\\nRegExp.prototype.source;\\n\\n\\n/**\\n * @constructor\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!Error}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\\n */\\nfunction Error(opt_message, opt_file, opt_line) {}\\n\\n\\n/**\\n * Chrome/v8 specific, altering the maximum depth of the stack trace\\n * (10 by default).\\n * @type {number}\\n * @see http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\\n */\\nError.stackTraceLimit;\\n\\n\\n/**\\n * Chrome/v8 specific, adds a stack trace to the error object. The optional\\n * constructorOpt parameter allows you to pass in a function value. When\\n * collecting the stack trace all frames above the topmost call to this\\n * function, including that call, will be left out of the stack trac"; a.a+='e.\\n * @param {Object} error The object to add the stack trace to.\\n * @param {Function=} opt_constructor A function in the stack trace\\n * @see http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\\n * @return {undefined}\\n */\\nError.captureStackTrace = function(error, opt_constructor){};\\n\\n\\n/**\\n * IE-only.\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/2w6a45b5.aspx\\n */\\nError.prototype.description;\\n\\n\\n/**\\n * Mozilla-only.\\n * @type {number}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/lineNumber\\n */\\nError.prototype.lineNumber;\\n\\n/**\\n * Mozilla-only\\n * @type {string}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName\\n */\\nError.prototype.fileName;\\n\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name\\n */\\nError.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/message\\n */\\nError.prototype.message;\\n\\n/**\\n * Doesn\'t seem to exist, but closure/debug.js references it.\\n */\\nError.prototype.sourceURL;\\n\\n/** @type {string} */\\nError.prototype.stack;\\n\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!EvalError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError\\n */\\nfunction EvalError(opt_message, opt_file, opt_line) {}\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!RangeError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError\\n */\\nfunction RangeError(opt_message, opt_file, opt_line) {}\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!ReferenceError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError\\n */\\nfunction ReferenceError(opt_message, opt_file, opt_line) {}\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!SyntaxError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError\\n */\\nfunction SyntaxError(opt_message, opt_file, opt_line) {}\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!TypeError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError\\n */\\nfunction TypeError(opt_message, opt_file, opt_line) {}\\n\\n/**\\n * @constructor\\n * @extends {Error}\\n * @param {*=} opt_message\\n * @param {*=} opt_file\\n * @param {*=} opt_line\\n * @return {!URIError}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError\\n */\\nfunction URIError(opt_message, opt_file, opt_line) {}\\n\\n\\n// JScript extensions.\\n// @see http://msdn.microsoft.com/en-us/library/894hfyb4(VS.80).aspx\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/7sw4ddf8.aspx\\n * @type {function(new:?, string, string=)}\\n */\\nfunction ActiveXObject(progId, opt_location) {}\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see http://msdn.microsoft.com/en-us/library/9k34bww2(VS.80).aspx\\n */\\nfunction ScriptEngine() {}\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://msdn.microsoft.com/en-us/library/yf25ky07(VS.80).aspx\\n */\\nfunction ScriptEngineMajorVersion() {}\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://msdn.microsoft.com/en-us/library/wx3812cz(VS.80).aspx\\n */\\nfunction ScriptEngineMinorVersion() {}\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n * @see http://msdn.microsoft.com/en-us/library/e98hsk2f(VS.80).aspx\\n */\\nfunction ScriptEngineBuildVersion() {}\\n","externs/es5.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for ECMAScript 5.\\n * @see https://es5.github.io/\\n * @externs\\n * @author djlee@google.com (DJ Lee)\\n */\\n\\n\\n/**\\n * @param {Object|undefined} selfObj Specifies the object to which |this| should\\n * point when the function is run. If the value is null or undefined, it\\n * will default to the global object.\\n * @param {...*} var_args Additional arguments that are partially\\n * applied to fn.\\n * @return {!Function} A partially-applied form of the Function on which\\n * bind() was invoked as a method.\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind\\n */\\nFunction.prototype.bind = function(selfObj, var_args) {};\\n\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim\\n */\\nString.prototype.trim = function() {};\\n\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft\\n */\\nString.prototype.trimLeft = function() {};\\n\\n\\n/**\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight\\n */\\nString.prototype.trimRight = function() {};\\n\\n\\n/**\\n * A object property descriptor used by Object.create, Object.defineProperty,\\n * Object.defineProperties, Object.getOwnPropertyDescriptor.\\n *\\n * Note: not a real constructor.\\n * @constructor\\n * @template THIS\\n */\\nfunction ObjectPropertyDescriptor() {}\\n\\n/** @type {*} */\\nObjectPropertyDescriptor.prototype.value;\\n\\n/** @type {(function(this: THIS):?)|undefined} */\\nObjectPropertyDescriptor.prototype.get;\\n\\n/** @type {(function(this: THIS, ?):void)|undefined} */\\nObjectPropertyDescriptor.prototype.set;\\n\\n/** @type {boolean|undefined} */\\nObjectPropertyDescriptor.prototype.writable;\\n\\n/** @type {boolean|undefined} */\\nObjectPropertyDescriptor.prototype.enumerable;\\n\\n/** @type {boolean|undefined} */\\nObjectPropertyDescriptor.prototype.configurable;\\n\\n\\n/**\\n * @param {Object} proto\\n * @param {Object=} opt_properties A map of ObjectPropertyDescriptors.\\n * @return {!Object}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create\\n */\\nObject.create = function(proto, opt_properties) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @param {string} prop\\n * @param {!Object} descriptor A ObjectPropertyDescriptor.\\n * @return {!Object}\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty\\n */\\nObject.defineProperty = function(obj, prop, descriptor) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @param {!Object} props A map of ObjectPropertyDescriptors.\\n * @return {!Object}\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties\\n */\\nObject.defineProperties = function(obj, props) {};\\n\\n\\n/**\\n * @param {T} obj\\n * @param {string} prop\\n * @return {!ObjectPropertyDescriptor|undefined}\\n * @nosideeffects\\n * @template T\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\\n */\\nObject.getOwnPropertyDescriptor = function(obj, prop) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {!Array}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys\\n */\\nObject.keys = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {!Array}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames\\n */\\nObject.getOwnPropertyNames = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {Object}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf\\n */\\nObject.getPrototypeOf = function(obj) {};\\n\\n\\n/**\\n * @param {T} obj\\n * @return {T}\\n * @template T\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions\\n */\\nObject.preventExtensions = function(obj) {};\\n\\n\\n/**\\n * @param {T} obj\\n * @return {T}\\n * @template T\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal\\n */\\nObject.seal = function(obj) {};\\n\\n\\n/**\\n * @param {T} obj\\n * @return {T}\\n * @template T\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze\\n */\\nObject.freeze = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible\\n */\\nObject.isExtensible = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed\\n */\\nObject.isSealed = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen\\n */\\nObject.isFrozen = function(obj) {};\\n\\n\\n/**\\n * @param {string=} opt_key The JSON key for this object.\\n * @return {*} The serializable representation of this object. Note that this\\n * need not be a string. See http://goo.gl/PEUvs.\\n * @see https://es5.github.io/#x15.12.3\\n */\\nObject.prototype.toJSON = function(opt_key) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString\\n * @return {string}\\n */\\nDate.prototype.toISOString = function() {};\\n\\n\\n/**\\n * @param {*=} opt_ignoredKey\\n * @return {string}\\n * @override\\n */\\nDate.prototype.toJSON = function(opt_ignoredKey) {};\\n\\n\\n/**\\n * A fake type to model the JSON object.\\n * @constructor\\n */\\nfunction JSONType() {}\\n\\n\\n/**\\n * @param {string} jsonStr The string to parse.\\n * @param {(function(string, *) : *)=} opt_reviver\\n * @return {*} The JSON object.\\n * @throws {Error}\\n */\\nJSONType.prototype.parse = function(jsonStr, opt_reviver) {};\\n\\n\\n/**\\n * @param {*} jsonObj Input object.\\n * @param {(Array|(function(string, *) : *)|null)=} opt_replacer\\n * @param {(number|string)=} opt_space\\n * @return {string} JSON string which represents jsonObj.\\n * @throws {Error}\\n */\\nJSONType.prototype.stringify = function(jsonObj, opt_replacer, opt_space) {};\\n\\n\\n/**\\n * @type {!JSONType}\\n * @suppress {duplicate}\\n */\\nvar JSON;\\n","externs/es6.js":"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for ECMAScript 6 and later.\\n * @see https://tc39.github.io/ecma262/\\n * @see https://www.khronos.org/registry/typedarray/specs/latest/\\n * @externs\\n */\\n\\n\\n\\n/**\\n * @constructor\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator\\n * @implements {IteratorIterable}\\n * @template VALUE\\n */\\nfunction Generator() {}\\n\\n/**\\n * @param {?=} opt_value\\n * @return {!IIterableResult}\\n * @override\\n */\\nGenerator.prototype.next = function(opt_value) {};\\n\\n/**\\n * @param {VALUE} value\\n * @return {!IIterableResult}\\n */\\nGenerator.prototype.return = function(value) {};\\n\\n/**\\n * @param {?} exception\\n * @return {!IIterableResult}\\n */\\nGenerator.prototype.throw = function(exception) {};\\n\\n\\n// TODO(johnlenz): Array and Arguments should be Iterable.\\n\\n\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.log10 = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.log2 = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.log1p = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.expm1 = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.cosh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.sinh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.tanh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.acosh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.asinh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.atanh = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.trunc = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.sign = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n */\\nMath.cbrt = function(value) {};\\n\\n/**\\n * @param {number} value1\\n * @param {...number} var_args\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot\\n */\\nMath.hypot = function(value1, var_args) {};\\n\\n/**\\n * @param {number} value1\\n * @param {number} value2\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\\n */\\nMath.imul = function(value1, value2) {};\\n\\n/**\\n * @param {number} value\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\\n */\\nMath.clz32 = function(value) {};\\n\\n\\n/**\\n * @param {*} a\\n * @param {*} b\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\\n */\\nObject.is;\\n\\n\\n/**\\n * Returns a language-sensitive string representation of this number.\\n * @param {(string|!Array)=} opt_locales\\n * @param {Object=} opt_options\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\\n * @see http://www.ecma-international.org/ecma-402/1.0/#sec-13.2.1\\n * @override\\n */\\nNumber.prototype.toLocaleString = function(opt_locales, opt_options) {};\\n\\n\\n/**\\n * Pads the end of the string so that it reaches the given length.\\n * NOTE: this is an ES2017 (ES8) extern.\\n *\\n * @param {number} targetLength The target length.\\n * @param {string=} opt_padString The string to pad with.\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd\\n */\\nString.prototype.padEnd = function(targetLength, opt_padString) {};\\n\\n/**\\n * Pads the start of the string so that it reaches the given length.\\n * NOTE: this is an ES2017 (ES8) extern.\\n *\\n * @param {number} t'; a.a+="argetLength The target length.\\n * @param {string=} opt_padString The string to pad with.\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\\n */\\nString.prototype.padStart = function(targetLength, opt_padString) {};\\n\\n/**\\n * Repeats the string the given number of times.\\n *\\n * @param {number} count The number of times the string is repeated.\\n * @this {String|string}\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\\n */\\nString.prototype.repeat = function(count) {};\\n\\n/**\\n * @constructor\\n * @extends {Array}\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-gettemplateobject\\n */\\nvar ITemplateArray = function() {};\\n\\n/**\\n * @type {!Array}\\n */\\nITemplateArray.prototype.raw;\\n\\n/**\\n * @param {!ITemplateArray} template\\n * @param {...*} var_args Substitution values.\\n * @return {string}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw\\n */\\nString.raw = function(template, var_args) {};\\n\\n\\n/**\\n * @param {number} codePoint\\n * @param {...number} var_args Additional codepoints\\n * @return {string}\\n */\\nString.fromCodePoint = function(codePoint, var_args) {};\\n\\n\\n/**\\n * @param {number} index\\n * @return {number}\\n * @nosideeffects\\n */\\nString.prototype.codePointAt = function(index) {};\\n\\n\\n/**\\n * @param {string=} opt_form\\n * @return {string}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\\n */\\nString.prototype.normalize = function(opt_form) {};\\n\\n\\n/**\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\\n */\\nString.prototype.startsWith = function(searchString, opt_position) {};\\n\\n/**\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\\n */\\nString.prototype.endsWith = function(searchString, opt_position) {};\\n\\n/**\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\\n */\\nString.prototype.includes = function(searchString, opt_position) {};\\n\\n\\n/**\\n * @see http://dev.w3.org/html5/postmsg/\\n * @interface\\n */\\nfunction Transferable() {}\\n\\n/**\\n * @param {number} length The length in bytes\\n * @constructor\\n * @noalias\\n * @throws {Error}\\n * @implements {Transferable}\\n */\\nfunction ArrayBuffer(length) {}\\n\\n/** @type {number} */\\nArrayBuffer.prototype.byteLength;\\n\\n/**\\n * @param {number} begin\\n * @param {number=} opt_end\\n * @return {!ArrayBuffer}\\n * @nosideeffects\\n */\\nArrayBuffer.prototype.slice = function(begin, opt_end) {};\\n\\n/**\\n * @param {*} arg\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView\\n */\\nArrayBuffer.isView = function(arg) {};\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction ArrayBufferView() {}\\n\\n/** @type {!ArrayBuffer} */\\nArrayBufferView.prototype.buffer;\\n\\n/** @type {number} */\\nArrayBufferView.prototype.byteOffset;\\n\\n/** @type {number} */\\nArrayBufferView.prototype.byteLength;\\n\\n\\n/**\\n * @typedef {!ArrayBuffer|!ArrayBufferView}\\n */\\nvar BufferSource;\\n\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @extends {ArrayBufferView}\\n */\\nfunction TypedArray() {};\\n\\n/** @const {number} */\\nTypedArray.prototype.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {number} target\\n * @param {number} start\\n * @param {number=} opt_end\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin\\n */\\nTypedArray.prototype.copyWithin = function(target, start, opt_end) {};\\n\\n/**\\n * @return {!IteratorIterable>}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries\\n */\\nTypedArray.prototype.entries = function() {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : ?} callback\\n * @param {S=} opt_thisArg\\n * @return {boolean}\\n * @template S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/every\\n */\\nTypedArray.prototype.every = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {number} value\\n * @param {number=} opt_begin\\n * @param {number=} opt_end\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/fill\\n */\\nTypedArray.prototype.fill = function(value, opt_begin, opt_end) {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : boolean} callback\\n * @param {S=} opt_thisArg\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS,S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter\\n */\\nTypedArray.prototype.filter = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : boolean} callback\\n * @param {S=} opt_thisArg\\n * @return {(number|undefined)}\\n * @template S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/find\\n */\\nTypedArray.prototype.find = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : boolean} callback\\n * @param {S=} opt_thisArg\\n * @return {number}\\n * @template S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex\\n */\\nTypedArray.prototype.findIndex = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : ?} callback\\n * @param {S=} opt_thisArg\\n * @return {undefined}\\n * @template S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach\\n */\\nTypedArray.prototype.forEach = function(callback, opt_thisArg) {};\\n\\n/**\\n * NOTE: this is an ES2016 (ES7) extern.\\n * @param {number} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes\\n */\\nTypedArray.prototype.includes = function(searchElement, opt_fromIndex) {};\\n\\n/**\\n * @param {number} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf\\n */\\nTypedArray.prototype.indexOf = function(searchElement, opt_fromIndex) {};\\n\\n/**\\n * @param {string=} opt_separator\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join\\n */\\nTypedArray.prototype.join = function(opt_separator) {};\\n\\n/**\\n * @return {!IteratorIterable}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/keys\\n */\\nTypedArray.prototype.keys = function() {};\\n\\n/**\\n * @param {number} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf\\n */\\nTypedArray.prototype.lastIndexOf = function(searchElement, opt_fromIndex) {};\\n\\n/** @type {number} */\\nTypedArray.prototype.length;\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : number} callback\\n * @param {S=} opt_thisArg\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS,S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map\\n */\\nTypedArray.prototype.map = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {function((number|INIT|RET), number, number, !TypedArray) : RET} callback\\n * @param {INIT=} opt_initialValue\\n * @return {RET}\\n * @template INIT,RET\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce\\n */\\nTypedArray.prototype.reduce = function(callback, opt_initialValue) {};\\n\\n/**\\n * @param {function((number|INIT|RET), number, number, !TypedArray) : RET} callback\\n * @param {INIT=} opt_initialValue\\n * @return {RET}\\n * @template INIT,RET\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight\\n */\\nTypedArray.prototype.reduceRight = function(callback, opt_initialValue) {};\\n\\n/**\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reverse\\n */\\nTypedArray.prototype.reverse = function() {};\\n\\n/**\\n * @param {!ArrayBufferView|!Array} array\\n * @param {number=} opt_offset\\n * @return {undefined}\\n * @throws {!RangeError}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set\\n */\\nTypedArray.prototype.set = function(array, opt_offset) {};\\n\\n/**\\n * @param {number=} opt_begin\\n * @param {number=} opt_end\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice\\n */\\nTypedArray.prototype.slice = function(opt_begin, opt_end) {};\\n\\n/**\\n * @param {function(this:S, number, number, !TypedArray) : boolean} callback\\n * @param {S=} opt_thisArg\\n * @return {boolean}\\n * @template S\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some\\n */\\nTypedArray.prototype.some = function(callback, opt_thisArg) {};\\n\\n/**\\n * @param {(function(number, number) : number)=} opt_compareFunction\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/sort\\n */\\nTypedArray.prototype.sort = function(opt_compareFunction) {};\\n\\n/**\\n * @param {number} begin\\n * @param {number=} opt_end\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray\\n */\\nTypedArray.prototype.subarray = function(begin, opt_end) {};\\n\\n/**\\n * @return {!IteratorIterable}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/values\\n */\\nTypedArray.prototype.values = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toLocaleString\\n * @override\\n */\\nTypedArray.prototype.toLocaleString = function() {};\\n\\n/**\\n * @return {string}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toString\\n * @override\\n */\\nTypedArray.prototype.toString = function() {};\\n\\n/** @override */\\nTypedArray.prototype[Symbol.iterator] = function() {};\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments} If the user passes a backing array, then indexed\\n * accesses will modify the backing array. JSCompiler does not model\\n * this well. In other words, if you have:\\n * \\n * var x = new ArrayBuffer(1);\\n * var y = new Int8Array(x);\\n * y[0] = 2;\\n * \\n * JSCompiler will not recognize that the last assignment modifies x.\\n * We workaround this by marking all these arrays as @modifies {arguments},\\n * to introduce the possibility that x aliases y.\\n */\\nfunction Int8Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nInt8Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Int8Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nInt8Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Int8Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nInt8Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Uint8Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nUint8Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Uint8Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nUint8Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Uint8Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nUint8Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Uint8ClampedArray(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nUint8ClampedArray.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Uint8ClampedArray}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nUint8ClampedArray.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Uint8ClampedArray}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nUint8ClampedArray.of = function(var_args) {};\\n\\n\\n/**\\n * @typedef {Uint8ClampedArray}\\n * @deprecated CanvasPixelArray has been replaced by Uint8ClampedArray\\n * in the latest spec.\\n * @see http://www.w3.org/TR/2dcontext/#imagedata\\n */\\nvar CanvasPixelArray;\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Int16Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nInt16Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Int16Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nInt16Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Int16Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nInt16Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @c"; a.a+="onstructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Uint16Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nUint16Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Uint16Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nUint16Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Uint16Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nUint16Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Int32Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nInt32Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Int32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nInt32Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Int32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nInt32Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Uint32Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nUint32Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Uint32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nUint32Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Uint32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nUint32Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Float32Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nFloat32Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Float32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nFloat32Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Float32Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nFloat32Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {number|ArrayBufferView|Array|ArrayBuffer} length or array\\n * or buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_length\\n * @constructor\\n * @extends {TypedArray}\\n * @noalias\\n * @throws {Error}\\n * @modifies {arguments}\\n */\\nfunction Float64Array(length, opt_byteOffset, opt_length) {}\\n\\n/** @const {number} */\\nFloat64Array.BYTES_PER_ELEMENT;\\n\\n/**\\n * @param {!Array} source\\n * @param {function(this:S, number): number=} opt_mapFn\\n * @param {S=} opt_this\\n * @template S\\n * @return {!Float64Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from\\n */\\nFloat64Array.from = function(source, opt_mapFn, opt_this) {};\\n\\n/**\\n * @param {...number} var_args\\n * @return {!Float64Array}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of\\n */\\nFloat64Array.of = function(var_args) {};\\n\\n\\n/**\\n * @param {ArrayBuffer} buffer\\n * @param {number=} opt_byteOffset\\n * @param {number=} opt_byteLength\\n * @constructor\\n * @extends {ArrayBufferView}\\n * @noalias\\n * @throws {Error}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays/DataView\\n */\\nfunction DataView(buffer, opt_byteOffset, opt_byteLength) {}\\n\\n/**\\n * @param {number} byteOffset\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getInt8 = function(byteOffset) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getUint8 = function(byteOffset) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getInt16 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getUint16 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getInt32 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getUint32 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getFloat32 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {boolean=} opt_littleEndian\\n * @return {number}\\n * @throws {Error}\\n */\\nDataView.prototype.getFloat64 = function(byteOffset, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setInt8 = function(byteOffset, value) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setUint8 = function(byteOffset, value) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setInt16 = function(byteOffset, value, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setUint16 = function(byteOffset, value, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setInt32 = function(byteOffset, value, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setUint32 = function(byteOffset, value, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setFloat32 = function(\\n byteOffset, value, opt_littleEndian) {};\\n\\n/**\\n * @param {number} byteOffset\\n * @param {number} value\\n * @param {boolean=} opt_littleEndian\\n * @throws {Error}\\n * @return {undefined}\\n */\\nDataView.prototype.setFloat64 = function(\\n byteOffset, value, opt_littleEndian) {};\\n\\n\\n/**\\n * @see https://github.com/promises-aplus/promises-spec\\n * @typedef {{then: ?}}\\n */\\nvar Thenable;\\n\\n\\n/**\\n * This is not an official DOM interface. It is used to add generic typing\\n * and respective type inference where available.\\n * {@see goog.Thenable} inherits from this making all promises\\n * interoperate.\\n * @interface\\n * @template TYPE\\n */\\nfunction IThenable() {}\\n\\n\\n/**\\n * @param {?(function(TYPE):VALUE)=} opt_onFulfilled\\n * @param {?(function(*): *)=} opt_onRejected\\n * @return {RESULT}\\n * @template VALUE\\n *\\n * When a Promise (or thenable) is returned from the fulfilled callback,\\n * the result is the payload of that promise, not the promise itself.\\n *\\n * @template RESULT := type('IThenable',\\n * cond(isUnknown(VALUE), unknown(),\\n * mapunion(VALUE, (V) =>\\n * cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),\\n * templateTypeOf(V, 0),\\n * cond(sub(V, 'Thenable'),\\n * unknown(),\\n * V)))))\\n * =:\\n */\\nIThenable.prototype.then = function(opt_onFulfilled, opt_onRejected) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\\n * @param {function(\\n * function((TYPE|IThenable|Thenable|null)=),\\n * function(*=))} resolver\\n * @constructor\\n * @implements {IThenable}\\n * @template TYPE\\n */\\nfunction Promise(resolver) {}\\n\\n\\n/**\\n * @param {VALUE=} opt_value\\n * @return {RESULT}\\n * @template VALUE\\n * @template RESULT := type('Promise',\\n * cond(isUnknown(VALUE), unknown(),\\n * mapunion(VALUE, (V) =>\\n * cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),\\n * templateTypeOf(V, 0),\\n * cond(sub(V, 'Thenable'),\\n * unknown(),\\n * V)))))\\n * =:\\n */\\nPromise.resolve = function(opt_value) {};\\n\\n\\n/**\\n * @param {*=} opt_error\\n * @return {!Promise}\\n */\\nPromise.reject = function(opt_error) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\\n * @param {!Iterable} iterable\\n * @return {!Promise>}\\n * @template VALUE\\n * @template RESULT := mapunion(VALUE, (V) =>\\n * cond(isUnknown(V),\\n * unknown(),\\n * cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),\\n * templateTypeOf(V, 0),\\n * cond(sub(V, 'Thenable'), unknown(), V))))\\n * =:\\n */\\nPromise.all = function(iterable) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\\n * @param {!Iterable} iterable\\n * @return {!Promise}\\n * @template VALUE\\n * @template RESULT := mapunion(VALUE, (V) =>\\n * cond(isUnknown(V),\\n * unknown(),\\n * cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),\\n * templateTypeOf(V, 0),\\n * cond(sub(V, 'Thenable'), unknown(), V))))\\n * =:\\n */\\nPromise.race = function(iterable) {};\\n\\n\\n/**\\n * @param {?(function(this:void, TYPE):VALUE)=} opt_onFulfilled\\n * @param {?(function(this:void, *): *)=} opt_onRejected\\n * @return {RESULT}\\n * @template VALUE\\n *\\n * When a Promise (or thenable) is returned from the fulfilled callback,\\n * the result is the payload of that promise, not the promise itself.\\n *\\n * @template RESULT := type('Promise',\\n * cond(isUnknown(VALUE), unknown(),\\n * mapunion(VALUE, (V) =>\\n * cond(isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),\\n * templateTypeOf(V, 0),\\n * cond(sub(V, 'Thenable'),\\n * unknown(),\\n * V)))))\\n * =:\\n * @override\\n */\\nPromise.prototype.then = function(opt_onFulfilled, opt_onRejected) {};\\n\\n\\n/**\\n * @param {function(*): RESULT} onRejected\\n * @return {!Promise}\\n * @template RESULT\\n */\\nPromise.prototype.catch = function(onRejected) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\\n * @param {...T} var_args\\n * @return {!Array}\\n * @template T\\n */\\nArray.of = function(var_args) {};\\n\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from\\n * @param {string|!IArrayLike|!Iterable} arrayLike\\n * @param {function(this:S, (string|T), number): R=} opt_mapFn\\n * @param {S=} opt_this\\n * @return {!Array}\\n * @template T,S,R\\n */\\nArray.from = function(arrayLike, opt_mapFn, opt_this) {};\\n\\n\\n/** @return {!IteratorIterable} */\\nArray.prototype.keys;\\n\\n\\n/**\\n * @return {!IteratorIterable>} Iterator of [key, value] pairs.\\n */\\nArray.prototype.entries;\\n\\n\\n/**\\n * @param {!function(this:S, T, number, !Array): boolean} predicate\\n * @param {S=} opt_this\\n * @return {T|undefined}\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.find\\n */\\nArray.prototype.find = function(predicate, opt_this) {};\\n\\n\\n/**\\n * @param {!function(this:S, T, number, !Array): boolean} predicate\\n * @param {S=} opt_this\\n * @return {number}\\n * @this {IArrayLike|string}\\n * @template T,S\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.findindex\\n */\\nArray.prototype.findIndex = function(predicate, opt_this) {};\\n\\n\\n/**\\n * @param {T} value\\n * @param {number=} opt_begin\\n * @param {number=} opt_end\\n * @return {!IArrayLike}\\n * @this {!IArrayLike|string}\\n * @template T\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.fill\\n */\\nArray.prototype.fill = function(value, opt_begin, opt_end) {};\\n\\n\\n/**\\n * @param {number} target\\n * @param {number} start\\n * @param {number=} opt_end\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.copywithin\\n * @template T\\n * @return {!IArrayLike}\\n */\\nArray.prototype.copyWithin = function(target, start, opt_end) {};\\n\\n\\n/**\\n * NOTE: this is an ES2016 (ES7) extern.\\n * @param {T} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {boolean}\\n * @this {!IArrayLike|string}\\n * @template T\\n * @see https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n */\\nArray.prototype.includes = function(searchElement, opt_fromIndex) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @return {!Array}\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-object.getownpropertysymbols\\n */\\nObject.getOwnPropertySymbols = function(obj) {};\\n\\n\\n/**\\n * @param {!Object} obj\\n * @param {?} proto\\n * @return {!Object}\\n * @see http://www.ecma-international.org/ecma-262/6.0/#sec-object.setprototypeof\\n */\\nObject.setPrototypeOf = function(obj, proto) {};\\n\\n\\n/**\\n * @const {number}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON\\n */\\nNumber.EPSILON;\\n\\n/**\\n * @const {number}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER\\n */\\nNumber.MIN_SAFE_INTEGER;\\n\\n/**\\n * @const {number}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER\\n */\\nNumber.MAX_SAFE_INTEGER;\\n\\n\\n\\n/**\\n * Parse an integer. Use of {@code parseInt} without {@code base} is strictly\\n * banned in Google. If you really want to parse octal or hex based on the\\n * leader, then pass {@code undefined} as the base.\\n *\\n * @param {string} string\\n * @param {number|undefined} radix\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt\\n */\\nNumber.parseInt = function(string, radix) {};\\n\\n/**\\n * @param {string} string\\n * @return {number}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat\\n */\\nNumber.parseFloat = function(string) {};\\n\\n/**\\n * @param {number} value\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN\\n */\\nNumber.isNaN = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {bo"; a.a+='olean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite\\n */\\nNumber.isFinite = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\\n */\\nNumber.isInteger = function(value) {};\\n\\n/**\\n * @param {number} value\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger\\n */\\nNumber.isSafeInteger = function(value) {};\\n\\n\\n\\n/**\\n * @param {!Object} target\\n * @param {...Object} var_args\\n * @return {!Object}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\\n */\\nObject.assign = function(target, var_args) {};\\n\\n/**\\n * TODO(dbeam): find a better place for ES2017 externs like this one.\\n * NOTE: this is an ES2017 (ES8) extern.\\n * @param {!Object} obj\\n * @return {!Array} values\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\\n * @throws {Error}\\n * @template T\\n */\\nObject.values = function(obj) {};\\n\\n/**\\n * NOTE: this is an ES2017 (ES8) extern.\\n * @param {!Object} obj\\n * @return {!Array>} entries\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\\n * @throws {Error}\\n * @template T\\n */\\nObject.entries = function(obj) {};\\n\\n/**\\n * NOTE: this is an ES2017 (ES8) extern.\\n * @param {!Object} obj\\n * @return {!Object} descriptors\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors\\n * @throws {Error}\\n * @template T\\n */\\nObject.getOwnPropertyDescriptors = function(obj) {};\\n\\n\\n\\n/**\\n * @const\\n * @see http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect\\n */\\nvar Reflect = {};\\n\\n/**\\n * @param {function(this: THIS, ...?): RESULT} target\\n * @param {THIS} thisArg\\n * @param {!Array} argList\\n * @return {RESULT}\\n * @template THIS, RESULT\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply\\n */\\nReflect.apply = function(target, thisArg, argList) {};\\n\\n/**\\n * @param {function(new: ?, ...?)} target\\n * @param {!Array} argList\\n * @param {function(new: TARGET, ...?)=} opt_newTarget\\n * @return {TARGET}\\n * @template TARGET\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct\\n */\\nReflect.construct = function(target, argList, opt_newTarget) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @param {!Object} attributes\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty\\n */\\nReflect.defineProperty = function(target, propertyKey, attributes) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty\\n */\\nReflect.deleteProperty = function(target, propertyKey) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @param {!Object=} opt_receiver\\n * @return {*}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get\\n */\\nReflect.get = function(target, propertyKey, opt_receiver) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @return {?ObjectPropertyDescriptor}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor\\n */\\nReflect.getOwnPropertyDescriptor = function(target, propertyKey) {};\\n\\n/**\\n * @param {!Object} target\\n * @return {?Object}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf\\n */\\nReflect.getPrototypeOf = function(target) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has\\n */\\nReflect.has = function(target, propertyKey) {};\\n\\n/**\\n * @param {!Object} target\\n * @return {boolean}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible\\n */\\nReflect.isExtensible = function(target) {};\\n\\n/**\\n * @param {!Object} target\\n * @return {!Array<(string|symbol)>}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys\\n */\\nReflect.ownKeys = function(target) {};\\n\\n/**\\n * @param {!Object} target\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions\\n */\\nReflect.preventExtensions = function(target) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @param {*} value\\n * @param {!Object=} opt_receiver\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set\\n */\\nReflect.set = function(target, propertyKey, value, opt_receiver) {};\\n\\n/**\\n * @param {!Object} target\\n * @param {?Object} proto\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf\\n */\\nReflect.setPrototypeOf = function(target, proto) {};\\n","externs/es6_collections.js":"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for ECMAScript 6.\\n * @see http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts\\n * @externs\\n */\\n\\n// TODO(johnlenz): Use Tuples for the Map and Set iterators where appropriate.\\n\\n/**\\n * @constructor @struct\\n * @param {Iterable>|!Array>=} opt_iterable\\n * @implements {Iterable>}\\n * @template KEY, VALUE\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map\\n */\\nfunction Map(opt_iterable) {}\\n\\n/** @return {void} */\\nMap.prototype.clear;\\n\\n/**\\n * @param {KEY} key\\n * @return {boolean}\\n */\\nMap.prototype.delete;\\n\\n/**\\n * @return {!IteratorIterable>}\\n * @nosideeffects\\n */\\nMap.prototype.entries;\\n\\n/**\\n * @param {function(this:THIS, VALUE, KEY, MAP)} callback\\n * @param {THIS=} opt_thisArg\\n * @this {MAP}\\n * @template MAP,THIS\\n */\\nMap.prototype.forEach;\\n\\n/**\\n * @param {KEY} key\\n * @return {VALUE}\\n * @nosideeffects\\n */\\nMap.prototype.get;\\n\\n/**\\n * @param {KEY} key\\n * @return {boolean}\\n * @nosideeffects\\n */\\nMap.prototype.has;\\n\\n/**\\n * @return {!IteratorIterable}\\n */\\nMap.prototype.keys;\\n\\n/**\\n * @param {KEY} key\\n * @param {VALUE} value\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n */\\nMap.prototype.set;\\n\\n/**\\n * @type {number}\\n * (readonly)\\n */\\nMap.prototype.size;\\n\\n/**\\n * @return {!IteratorIterable}\\n * @nosideeffects\\n */\\nMap.prototype.values;\\n\\n/**\\n * @return {!Iterator>}\\n */\\nMap.prototype[Symbol.iterator] = function() {};\\n\\n\\n/**\\n * @constructor @struct\\n * @param {Iterable>|!Array>=} opt_iterable\\n * @template KEY, VALUE\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap\\n */\\nfunction WeakMap(opt_iterable) {}\\n\\n/** @return {void} */\\nWeakMap.prototype.clear;\\n\\n/**\\n * @param {KEY} key\\n * @return {boolean}\\n */\\nWeakMap.prototype.delete;\\n\\n/**\\n * @param {KEY} key\\n * @return {VALUE}\\n * @nosideeffects\\n */\\nWeakMap.prototype.get;\\n\\n/**\\n * @param {KEY} key\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWeakMap.prototype.has;\\n\\n/**\\n * @param {KEY} key\\n * @param {VALUE} value\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n */\\nWeakMap.prototype.set;\\n\\n\\n\\n/**\\n * @constructor @struct\\n * @param {Iterable|Array=} opt_iterable\\n * @implements {Iterable}\\n * @template VALUE\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\\n */\\nfunction Set(opt_iterable) {}\\n\\n/**\\n * @param {VALUE} value\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n */\\nSet.prototype.add;\\n\\n/**\\n * @return {void}\\n */\\nSet.prototype.clear;\\n\\n/**\\n * @param {VALUE} value\\n * @return {boolean}\\n */\\nSet.prototype.delete;\\n\\n/**\\n * @return {!IteratorIterable>} Where each array has two entries:\\n * [value, value]\\n * @nosideeffects\\n */\\nSet.prototype.entries;\\n\\n/**\\n * @param {function(this: THIS, VALUE, VALUE, SET)} callback\\n * @param {THIS=} opt_thisArg\\n * @this {SET}\\n * @template SET,THIS\\n */\\nSet.prototype.forEach;\\n\\n/**\\n * @param {VALUE} value\\n * @return {boolean}\\n * @nosideeffects\\n */\\nSet.prototype.has;\\n\\n/**\\n * @type {number} (readonly)\\n */\\nSet.prototype.size;\\n\\n/**\\n * @return {!IteratorIterable}\\n * @nosideeffects\\n */\\nSet.prototype.keys;\\n\\n/**\\n * @return {!IteratorIterable}\\n * @nosideeffects\\n */\\nSet.prototype.values;\\n\\n/**\\n * @return {!Iterator}\\n */\\nSet.prototype[Symbol.iterator] = function() {};\\n\\n\\n\\n/**\\n * @constructor @struct\\n * @param {Iterable|Array=} opt_iterable\\n * @template VALUE\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\\n */\\nfunction WeakSet(opt_iterable) {}\\n\\n/**\\n * @param {VALUE} value\\n * @return {THIS}\\n * @this {THIS}\\n * @template THIS\\n */\\nWeakSet.prototype.add;\\n\\n/**\\n * @return {void}\\n */\\nWeakSet.prototype.clear;\\n\\n/**\\n * @param {VALUE} value\\n * @return {boolean}\\n */\\nWeakSet.prototype.delete;\\n\\n/**\\n * @param {VALUE} value\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWeakSet.prototype.has;\\n","externs/intl.js":"/*\\n * Copyright 2013 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for the JS Internationalization API as defined in\\n * http://www.ecma-international.org/ecma-402/1.0/\\n *\\n * @externs\\n */\\n\\n/** @const */\\nvar Intl = {};\\n\\n/**\\n * NOTE: this API is not from ecma402 and is subject to change.\\n * @param {string|Array=} opt_locales\\n * @param {{type: (string|undefined)}=}\\n * opt_options\\n * @constructor\\n */\\nIntl.v8BreakIterator = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {string} text\\n * @return {undefined}\\n */\\nIntl.v8BreakIterator.prototype.adoptText = function(text) {};\\n\\n/**\\n * @return {string}\\n */\\nIntl.v8BreakIterator.prototype.breakType = function() {};\\n\\n/**\\n * @return {number}\\n */\\nIntl.v8BreakIterator.prototype.current = function() {};\\n\\n/**\\n * @return {number}\\n */\\nIntl.v8BreakIterator.prototype.first = function() {};\\n\\n/**\\n * @return {number}\\n */\\nIntl.v8BreakIterator.prototype.next = function() {};\\n\\n/**\\n * @constructor\\n * @param {string|Array=} opt_locales\\n * @param {{usage: (string|undefined), localeMatcher: (string|undefined),\\n * sensitivity: (string|undefined), ignorePunctuation: (boolean|undefined),\\n * numeric: (boolean|undefined), caseFirst: (string|undefined)}=}\\n * opt_options\\n */\\nIntl.Collator = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {Array} locales\\n * @param {{localeMatcher: (string|undefined)}=} opt_options\\n * @return {Array}\\n */\\nIntl.Collator.supportedLocalesOf = function(locales, opt_options) {};\\n\\n/**\\n * @param {string} arg1\\n * @param {string} arg2\\n * @return {number}\\n */\\nIntl.Collator.prototype.compare = function(arg1, arg2) {};\\n\\n/**\\n * @return {{locale: string, usage: string, sensitivity: string,\\n * ignorePunctuation: boolean, collation: string, numeric: boolean,\\n * caseFirst: string}}\\n */\\nIntl.Collator.prototype.resolvedOptions = function() {};\\n\\n/**\\n * @constructor\\n * @param {string|Array=} opt_locales\\n * @param {{localeMatcher: (string|undefined), useGrouping: (boolean|undefined),\\n * numberingSystem: (string|undefined), style: (string|undefined),\\n * currency: (string|undefined), currencyDisplay: (string|undefined),\\n * minimumIntegerDigits: (number|undefined),\\n * minimumFractionDigits: (number|undefined),\\n * maximumFractionDigits: (number|undefined),\\n * minimumSignificantDigits: (number|undefined),\\n * maximumSignificantDigits: (number|undefined)}=}\\n * opt_options\\n */\\nIntl.NumberFormat = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {Array} locales\\n * @param {{localeMatcher: (string|undefined)}=} opt_options\\n * @return {Array}\\n */\\nIntl.NumberFormat.supportedLocalesOf = function(locales, opt_options) {};\\n\\n/**\\n * @param {number} num\\n * @return {string}\\n */\\nIntl.NumberFormat.prototype.format = function(num) {};\\n\\n/**\\n * @return {{locale: string, numberingSystem: string, style: string,\\n * currency: (string|undefined), currencyDisplay: (string|undefined),\\n * minimumIntegerDigits: number, minimumFractionDigits: number,\\n * maximumFractionDigits: number, minimumSignificantDigits: number,\\n * maximumSignificantDigits: number, useGrouping: boolean}}\\n */\\nIntl.NumberFormat.prototype.resolvedOptions = function() {};\\n\\n/**\\n * @constructor\\n * @param {string|Array=} opt_locales\\n * @param {{localeMatcher: (string|undefined),\\n * formatMatcher: (string|undefined), calendar: (string|undefined),\\n * numberingSystem: (string|undefined), tz: (string|undefined),\\n * weekday: (string|undefined), era: (string|undefined),\\n * year: (string|undefined), month: (string|undefined),\\n * day: (string|undefined), hour: (string|undefined),\\n * minute: (string|undefined), second: (string|undefined),\\n * timeZoneName: (string|undefined), hour12: (boolean|undefined)}=}\\n * opt_options\\n */\\nIntl.DateTimeFormat = function(opt_locales, opt_options) {};\\n\\n/**\\n * @param {Array} locales\\n * @param {{localeMatcher: string}=} opt_options\\n * @return {Array}\\n */\\nIntl.DateTimeFormat.supportedLocalesOf = function(locales, opt_options) {};\\n\\n/**\\n * @param {(!Date|number)=} date\\n * @return {string}\\n */\\nIntl.DateTimeFormat.prototype.format = function(date) {};\\n\\n/**\\n * @return {{locale: string, calendar: string, numberingSystem: string,\\n * timeZone: (string|undefined), weekday: (string|undefined),\\n * era: (string|undefined), year: (string|undefined),\\n * month: (string|undefined), day: (string|undefined),\\n * hour: (string|undefined), minute: (string|undefined),\\n * second: (string|undefined), timeZoneName: (string|undefined),\\n * hour12: (boolean|undefined)}}\\n */\\nIntl.DateTimeFormat.prototype.resolvedOptions = function() {};\\n","externs/w3c_event.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\'; a.a+='n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s event specification.\\n * The whole file has been fully type annotated.\\n * Created from\\n * http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n\\n/**\\n * @interface\\n * @see https://dom.spec.whatwg.org/#interface-eventtarget\\n */\\nfunction EventTarget() {}\\n\\n/**\\n * @param {string} type\\n * @param {EventListener|function(!Event):(boolean|undefined)} listener\\n * @param {(boolean|!AddEventListenerOptions)=} opt_options\\n * @return {undefined}\\n * @see https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener\\n */\\nEventTarget.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/**\\n * @param {string} type\\n * @param {EventListener|function(!Event):(boolean|undefined)} listener\\n * @param {(boolean|!EventListenerOptions)=} opt_options\\n * @return {undefined}\\n * @see https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener\\n */\\nEventTarget.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/**\\n * @param {!Event} evt\\n * @return {boolean}\\n * @see https://dom.spec.whatwg.org/#dom-eventtarget-dispatchevent\\n */\\nEventTarget.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @interface\\n */\\nfunction EventListener() {}\\n\\n/**\\n * @param {!Event} evt\\n * @return {undefined}\\n */\\nEventListener.prototype.handleEvent = function(evt) {};\\n\\n// The EventInit interface and the parameters to the Event constructor are part\\n// of DOM Level 3 (suggested) and the DOM \\"Living Standard\\" (mandated). They are\\n// included here as externs cannot be redefined. The same applies to other\\n// *EventInit interfaces and *Event constructors throughout this file. See:\\n// http://www.w3.org/TR/DOM-Level-3-Events/#event-initializers\\n// http://dom.spec.whatwg.org/#constructing-events\\n// https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#event-constructors\\n\\n/**\\n * @record\\n * @see https://dom.spec.whatwg.org/#dictdef-eventinit\\n */\\nfunction EventInit() {}\\n\\n/** @type {(undefined|boolean)} */\\nEventInit.prototype.bubbles;\\n\\n/** @type {(undefined|boolean)} */\\nEventInit.prototype.cancelable;\\n\\n/** @type {(undefined|boolean)} */\\nEventInit.prototype.composed;\\n\\n\\n/**\\n * @constructor\\n * @param {string} type\\n * @param {EventInit=} opt_eventInitDict\\n */\\nfunction Event(type, opt_eventInitDict) {}\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html\\n */\\nEvent.CAPTURING_PHASE;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html\\n */\\nEvent.AT_TARGET;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html\\n */\\nEvent.BUBBLING_PHASE;\\n\\n/** @type {string} */\\nEvent.prototype.type;\\n\\n/** @type {EventTarget} */\\nEvent.prototype.target;\\n\\n/** @type {EventTarget} */\\nEvent.prototype.currentTarget;\\n\\n/** @type {number} */\\nEvent.prototype.eventPhase;\\n\\n/** @type {boolean} */\\nEvent.prototype.bubbles;\\n\\n/** @type {boolean} */\\nEvent.prototype.cancelable;\\n\\n/** @type {number} */\\nEvent.prototype.timeStamp;\\n\\n/**\\n * Present for events spawned in browsers that support shadow dom.\\n * @type {Array|undefined}\\n */\\nEvent.prototype.path;\\n\\n/**\\n * Present for events spawned in browsers that support shadow dom.\\n * @type {function():Array|undefined}\\n * @see https://www.w3.org/TR/shadow-dom/#widl-Event-deepPath\\n */\\nEvent.prototype.deepPath;\\n\\n/**\\n * @return {undefined}\\n */\\nEvent.prototype.stopPropagation = function() {};\\n\\n/**\\n * @return {undefined}\\n */\\nEvent.prototype.preventDefault = function() {};\\n\\n/**\\n * @param {string} eventTypeArg\\n * @param {boolean=} canBubbleArg\\n * @param {boolean=} cancelableArg\\n * @return {undefined}\\n */\\nEvent.prototype.initEvent = function(eventTypeArg, canBubbleArg, cancelableArg) {};\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://dom.spec.whatwg.org/#dictdef-customeventinit\\n */\\nfunction CustomEventInit() {}\\n\\n/** @type {(*|undefined)} */\\nCustomEventInit.prototype.detail;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @param {string} type\\n * @param {CustomEventInit=} opt_eventInitDict\\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-CustomEvent\\n */\\nfunction CustomEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * @param {string} eventType\\n * @param {boolean} bubbles\\n * @param {boolean} cancelable\\n * @param {*} detail\\n * @return {undefined}\\n */\\nCustomEvent.prototype.initCustomEvent = function(\\n eventType, bubbles, cancelable, detail) {};\\n\\n/**\\n * @type {*}\\n */\\nCustomEvent.prototype.detail;\\n\\n/**\\n * @interface\\n */\\nfunction DocumentEvent() {}\\n\\n/**\\n * @param {string} eventType\\n * @return {!Event}\\n */\\nDocumentEvent.prototype.createEvent = function(eventType) {};\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://w3c.github.io/uievents/#idl-uieventinit\\n */\\nfunction UIEventInit() {}\\n\\n/** @type {undefined|?Window} */\\nUIEventInit.prototype.view;\\n\\n/** @type {undefined|number} */\\nUIEventInit.prototype.detail;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @param {string} type\\n * @param {UIEventInit=} opt_eventInitDict\\n */\\nfunction UIEvent(type, opt_eventInitDict) {}\\n\\n/** @type {number} */\\nUIEvent.prototype.detail;\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {Window} viewArg\\n * @param {number} detailArg\\n * @return {undefined}\\n */\\nUIEvent.prototype.initUIEvent = function(typeArg, canBubbleArg, cancelableArg,\\n viewArg, detailArg) {};\\n\\n/**\\n * @record\\n * @extends {UIEventInit}\\n * @see https://w3c.github.io/uievents/#dictdef-eventmodifierinit\\n */\\nfunction EventModifierInit() {}\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.ctrlKey;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.shiftKey;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.altKey;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.metaKey;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierAltGraph;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierCapsLock;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierFn;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierFnLock;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierHyper;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierNumLock;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierScrollLock;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierSuper;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierSymbol;\\n\\n/** @type {undefined|boolean} */\\nEventModifierInit.prototype.modifierSymbolLock;\\n\\n/**\\n * @record\\n * @extends {EventModifierInit}\\n * @see https://w3c.github.io/uievents/#idl-mouseeventinit\\n */\\nfunction MouseEventInit() {}\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.screenX;\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.screenY;\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.clientX;\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.clientY;\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.button;\\n\\n/** @type {undefined|number} */\\nMouseEventInit.prototype.buttons;\\n\\n/** @type {undefined|?EventTarget} */\\nMouseEventInit.prototype.relatedTarget;\\n\\n/**\\n * @constructor\\n * @extends {UIEvent}\\n * @param {string} type\\n * @param {MouseEventInit=} opt_eventInitDict\\n */\\nfunction MouseEvent(type, opt_eventInitDict) {}\\n\\n/** @type {number} */\\nMouseEvent.prototype.screenX;\\n\\n/** @type {number} */\\nMouseEvent.prototype.screenY;\\n\\n/** @type {number} */\\nMouseEvent.prototype.clientX;\\n\\n/** @type {number} */\\nMouseEvent.prototype.clientY;\\n\\n/** @type {boolean} */\\nMouseEvent.prototype.ctrlKey;\\n\\n/** @type {boolean} */\\nMouseEvent.prototype.shiftKey;\\n\\n/** @type {boolean} */\\nMouseEvent.prototype.altKey;\\n\\n/** @type {boolean} */\\nMouseEvent.prototype.metaKey;\\n\\n/** @type {number} */\\nMouseEvent.prototype.button;\\n\\n/** @type {EventTarget} */\\nMouseEvent.prototype.relatedTarget;\\n\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction MutationEvent() {}\\n\\n/** @type {Node} */\\nMutationEvent.prototype.relatedNode;\\n\\n/** @type {string} */\\nMutationEvent.prototype.prevValue;\\n\\n/** @type {string} */\\nMutationEvent.prototype.newValue;\\n\\n/** @type {string} */\\nMutationEvent.prototype.attrName;\\n\\n/** @type {number} */\\nMutationEvent.prototype.attrChange;\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {Node} relatedNodeArg\\n * @param {string} prevValueArg\\n * @param {string} newValueArg\\n * @param {string} attrNameArg\\n * @param {number} attrChangeArg\\n * @return {undefined}\\n */\\nMutationEvent.prototype.initMutationEvent = function(typeArg, canBubbleArg, cancelableArg, relatedNodeArg, prevValueArg, newValueArg, attrNameArg, attrChangeArg) {};\\n\\n\\n// DOM3\\n/**\\n * @record\\n * @extends {EventModifierInit}\\n * @see https://w3c.github.io/uievents/#idl-keyboardeventinit\\n */\\nfunction KeyboardEventInit() {}\\n\\n/** @type {undefined|string} */\\nKeyboardEventInit.prototype.key;\\n\\n/** @type {undefined|string} */\\nKeyboardEventInit.prototype.code;\\n\\n/** @type {undefined|number} */\\nKeyboardEventInit.prototype.location;\\n\\n/** @type {undefined|boolean} */\\nKeyboardEventInit.prototype.repeat;\\n\\n/** @type {undefined|boolean} */\\nKeyboardEventInit.prototype.isComposing;\\n\\n/** @type {undefined|string} */\\nKeyboardEventInit.prototype.char;\\n\\n/** @type {undefined|string} */\\nKeyboardEventInit.prototype.locale;\\n\\n/**\\n * @constructor\\n * @extends {UIEvent}\\n * @param {string} type\\n * @param {KeyboardEventInit=} opt_eventInitDict\\n */\\nfunction KeyboardEvent(type, opt_eventInitDict) {}\\n\\n/** @type {string} */\\nKeyboardEvent.prototype.keyIdentifier;\\n\\n/** @type {boolean} */\\nKeyboardEvent.prototype.ctrlKey;\\n\\n/** @type {boolean} */\\nKeyboardEvent.prototype.shiftKey;\\n\\n/** @type {boolean} */\\nKeyboardEvent.prototype.altKey;\\n\\n/** @type {boolean} */\\nKeyboardEvent.prototype.metaKey;\\n\\n/**\\n * @param {string} keyIdentifierArg\\n * @return {boolean}\\n */\\nKeyboardEvent.prototype.getModifierState = function(keyIdentifierArg) {};\\n\\n/**\\n * @record\\n * @extends {UIEventInit}\\n * @see https://w3c.github.io/uievents/#idl-focuseventinit\\n */\\nfunction FocusEventInit() {}\\n\\n/** @type {undefined|?EventTarget} */\\nFocusEventInit.prototype.relatedTarget;\\n\\n\\n/**\\n * The FocusEvent interface provides specific contextual information associated\\n * with Focus events.\\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent\\n *\\n * @constructor\\n * @extends {UIEvent}\\n * @param {string} type\\n * @param {FocusEventInit=} opt_eventInitDict\\n */\\nfunction FocusEvent(type, opt_eventInitDict) {}\\n\\n/** @type {EventTarget} */\\nFocusEvent.prototype.relatedTarget;\\n\\n\\n/**\\n * See https://dom.spec.whatwg.org/#dictdef-eventlisteneroptions\\n * @record\\n */\\nvar EventListenerOptions = function() {};\\n\\n/** @type {boolean|undefined} */\\nEventListenerOptions.prototype.capture;\\n\\n/**\\n * See https://dom.spec.whatwg.org/#dictdef-addeventlisteneroptions\\n * @record\\n * @extends {EventListenerOptions}\\n */\\nvar AddEventListenerOptions = function() {};\\n\\n/** @type {boolean|undefined} */\\nAddEventListenerOptions.prototype.passive;\\n\\n/** @type {boolean|undefined} */\\nAddEventListenerOptions.prototype.once;\\n\\n/**\\n * @record\\n * @extends {UIEventInit}\\n * @see https://w3c.github.io/uievents/#idl-inputeventinit\\n * @see https://w3c.github.io/input-events/#interface-InputEvent\\n */\\nfunction InputEventInit() {}\\n\\n/** @type {undefined|?string} */\\nInputEventInit.prototype.data;\\n\\n/** @type {undefined|boolean} */\\nInputEventInit.prototype.isComposing;\\n\\n/** @type {undefined|string} */\\nInputEventInit.prototype.inputType;\\n\\n/** @type {undefined|?DataTransfer} */\\nInputEventInit.prototype.dataTransfer;\\n\\n\\n// TODO(charleyroy): Add getTargetRanges() once a consensus has been made\\n// regarding how to structure these values. See\\n// https://github.com/w3c/input-events/issues/38.\\n/**\\n * @constructor\\n * @extends {UIEvent}\\n * @param {string} type\\n * @param {InputEventInit=} opt_eventInitDict\\n * @see https://www.w3.org/TR/uievents/#interface-inputevent\\n * @see https://w3c.github.io/input-events/#interface-InputEvent\\n */\\nfunction InputEvent(type, opt_eventInitDict) {}\\n\\n/** @type {string} */\\nInputEvent.prototype.data;\\n\\n/** @type {boolean} */\\nInputEvent.prototype.isComposed;\\n\\n/** @type {string} */\\nInputEvent.prototype.inputType;\\n\\n/** @type {?DataTransfer} */\\nInputEvent.prototype.dataTransfer;\\n","externs/w3c_event3.js":"/*\\n * Copyright 2010 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s event Level 3 specification.\\n * This file depends on w3c_event.js.\\n * The whole file has been partially type annotated.\\n * Created from\\n * http://www.w3.org/TR/DOM-Level-3-Events/#ecma-script-binding-ecma-binding\\n *\\n * @externs\\n * @author ericdingle@google.com (Eric Dingle)\\n */\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {Window} viewArg\\n * @param {string} keyIdentifierArg\\n * @param {number} keyLocationArg\\n * @param {string} modifiersList\\n * @return {undefined}\\n */\\nKeyboardEvent.prototype.initKeyboardEvent = function(typeArg, canBubbleArg, cancelableArg, viewArg, keyIdentifierArg, keyLocationArg, modifiersList) {};\\n\\n/** @type {string} */\\nKeyboardEvent.prototype.char;\\n\\n/** @type {string} */\\nKeyboardEvent.prototype.code;\\n\\n/** @type {string} */\\nKeyboardEvent.prototype.key;\\n\\n/** @type {number} */\\nKeyboardEvent.prototype.location;\\n\\n/** @type {boolean} */\\nKeyboardEvent.prototype.repeat;\\n\\n/** @type {string} */\\nKeyboardEvent.prototype.locale;\\n\\n/** @type {number} */\\nMouseEvent.prototype.buttons;\\n\\n/**\\n * @param {string} keyIdentifierArg\\n * @return {boolean}\\n */\\nMouseEvent.prototype.getModifierState = function(keyIdentifierArg) {};\\n\\n/** @type {boolean} */\\nEvent.prototype.defaultPrevented;\\n\\n/** @type {string} */\\nEvent.prototype.namespaceURI;\\n\\n/** @return {undefined} */\\nEvent.prototype.stopImmediatePropagation = function() {};\\n","externs/gecko_event.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over\\n * W3C\'s event specification by Gecko. This file depends on\\n * w3c_event.js.\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n// TODO: Almost all of '; a.a+='it has not been annotated with types.\\n\\n/** @type {number} */ Event.prototype.HORIZONTAL_AXIS;\\n/** @type {number} */ Event.prototype.VERTICAL_AXIS;\\n/** @type {boolean} */ Event.prototype.altKey;\\n/** @type {number} */ Event.prototype.axis;\\n/** @type {number} */ Event.prototype.button;\\n/** @type {boolean} */ Event.prototype.cancelBubble;\\n/** @type {number} */ Event.prototype.charCode;\\n/** @type {number} */ Event.prototype.clientX;\\n/** @type {number} */ Event.prototype.clientY;\\n/** @type {boolean} */ Event.prototype.ctrlKey;\\n/** @type {EventTarget} */ Event.prototype.explicitOriginalTarget;\\n/** @type {boolean} */ Event.prototype.isChar;\\n/** @type {boolean} */ Event.prototype.isTrusted;\\n/** @type {number} */ Event.prototype.keyCode;\\n/** @type {number} */ Event.prototype.layerX;\\n/** @type {number} */ Event.prototype.layerY;\\n/** @type {boolean} */ Event.prototype.metaKey;\\n/** @type {EventTarget} */ Event.prototype.originalTarget;\\n/** @type {number} */ Event.prototype.pageX;\\n/** @type {number} */ Event.prototype.pageY;\\n/** @type {EventTarget|undefined} */ Event.prototype.relatedTarget;\\n/** @type {number} */ Event.prototype.screenX;\\n/** @type {number} */ Event.prototype.screenY;\\n/** @type {boolean} */ Event.prototype.shiftKey;\\n/** @type {Window} */ Event.prototype.view;\\n/** @type {number} */ Event.prototype.which;\\n\\n/** @constructor */ function nsIDOMPageTransitionEvent() {}\\n/** @type {boolean} */ nsIDOMPageTransitionEvent.prototype.persisted;\\n\\n//Methods\\nEvent.prototype.initKeyEvent;\\nEvent.prototype.initMouseEvent;\\nEvent.prototype.initUIEvent;\\nEvent.prototype.initMessageEvent;\\nEvent.prototype.preventBubble;\\nEvent.prototype.preventCapture;\\n","externs/ie_event.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over the\\n * W3C\'s event specification by IE in JScript. This file depends on\\n * w3c_event.js.\\n *\\n * @see http://msdn.microsoft.com/en-us/library/ms535863.aspx\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n/** @type {string} */\\nEvent.prototype.Abstract;\\n\\n/** @type {boolean} */\\nEvent.prototype.altLeft;\\n\\n/** @type {string} */\\nEvent.prototype.Banner;\\n\\n/**\\n * A ClipboardData on IE, but a DataTransfer on WebKit.\\n * @see http://msdn.microsoft.com/en-us/library/ms535220.aspx\\n * @type {(ClipboardData|undefined)}\\n */\\nEvent.prototype.clipboardData;\\n\\n/** @type {boolean} */\\nEvent.prototype.contentOverflow;\\n\\n/** @type {boolean} */\\nEvent.prototype.ctrlLeft;\\n\\n/** @type {string} */\\nEvent.prototype.dataFld;\\n\\nEvent.prototype.domain;\\n\\n/** @type {Element} */\\nEvent.prototype.fromElement;\\n\\n/** @type {string} */\\nEvent.prototype.MoreInfo;\\n\\n/** @type {string} */\\nEvent.prototype.nextPage;\\n\\n/** @type {number} */\\nEvent.prototype.offsetX;\\n\\n/** @type {number} */\\nEvent.prototype.offsetY;\\n\\n/** @type {string} */\\nEvent.prototype.propertyName;\\n\\n/** @type {string} */\\nEvent.prototype.qualifier;\\n\\n/** @type {number} */\\nEvent.prototype.reason;\\n\\n/** @type {Object<*>} */\\nEvent.prototype.recordset;\\n\\n/** @type {boolean} */\\nEvent.prototype.repeat;\\n\\n/** @type {(boolean|string|undefined)} */\\nEvent.prototype.returnValue;\\n\\n/** @type {string} */\\nEvent.prototype.saveType;\\n\\nEvent.prototype.scheme;\\n\\n/** @type {boolean} */\\nEvent.prototype.shiftLeft;\\n\\n/** @type {Window} */\\nEvent.prototype.source;\\n\\n/** @type {Element} */\\nEvent.prototype.srcElement;\\n\\nEvent.prototype.srcFilter;\\n\\n/** @type {string} */\\nEvent.prototype.srcUrn;\\n\\n/** @type {Element} */\\nEvent.prototype.toElement;\\n\\nEvent.prototype.userName;\\n\\n/** @type {number} */\\nEvent.prototype.wheelDelta;\\n\\n/** @type {number} */\\nEvent.prototype.x;\\n\\n/** @type {number} */\\nEvent.prototype.y;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441257.aspx\\n */\\nfunction MSPointerPoint() {}\\n\\n/** @type {number} */\\nMSPointerPoint.prototype.pointerId;\\n\\n/** @type {number} */\\nMSPointerPoint.prototype.pointerType;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441233.aspx\\n */\\nfunction MSPointerEvent() {}\\n\\n/** @type {number} */\\nMSPointerEvent.MSPOINTER_TYPE_MOUSE;\\n\\n/** @type {number} */\\nMSPointerEvent.MSPOINTER_TYPE_PEN;\\n\\n/** @type {number} */\\nMSPointerEvent.MSPOINTER_TYPE_TOUCH;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.height;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.hwTimestamp;\\n\\n/** @type {boolean} */\\nMSPointerEvent.prototype.isPrimary;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.pointerId;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.pointerType;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.pressure;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.rotation;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.tiltX;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.tiltY;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.timeStamp;\\n\\n/** @type {number} */\\nMSPointerEvent.prototype.width;\\n\\n/**\\n * @param {number} pointerId\\n * @return {undefined}\\n */\\nMSPointerEvent.prototype.msReleasePointerCapture;\\n\\n/**\\n * @param {number} pointerId\\n * @return {undefined}\\n */\\nMSPointerEvent.prototype.msSetPointerCapture;\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {Window} viewArg\\n * @param {number} detailArg\\n * @param {number} screenXArg\\n * @param {number} screenYArg\\n * @param {number} clientXArg\\n * @param {number} clientYArg\\n * @param {boolean} ctrlKeyArg\\n * @param {boolean} altKeyArg\\n * @param {boolean} shiftKeyArg\\n * @param {boolean} metaKeyArg\\n * @param {number} buttonArg\\n * @param {Element} relatedTargetArg\\n * @param {number} offsetXArg\\n * @param {number} offsetYArg\\n * @param {number} widthArg\\n * @param {number} heightArg\\n * @param {number} pressure\\n * @param {number} rotation\\n * @param {number} tiltX\\n * @param {number} tiltY\\n * @param {number} pointerIdArg\\n * @param {number} pointerType\\n * @param {number} hwTimestampArg\\n * @param {boolean} isPrimary\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441246.aspx\\n */\\nMSPointerEvent.prototype.initPointerEvent;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/ie/hh968249(v=vs.85).aspx\\n */\\nfunction MSGesture() {}\\n\\n/**\\n * @type {Element}\\n */\\nMSGesture.prototype.target;\\n\\n/**\\n * @param {number} pointerId\\n * @return {undefined}\\n */\\nMSGesture.prototype.addPointer = function(pointerId) {};\\n\\nMSGesture.prototype.stop = function() {};\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @see http://msdn.microsoft.com/en-us/library/ie/hh772076(v=vs.85).aspx\\n */\\nfunction MSGestureEvent() {}\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.expansion;\\n\\n/** @type {!MSGesture} */\\nMSGestureEvent.prototype.gestureObject;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.hwTimestamp;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.rotation;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.scale;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.translationX;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.translationY;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.velocityAngular;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.velocityExpansion;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.velocityX;\\n\\n/** @type {number} */\\nMSGestureEvent.prototype.velocityY;\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {Window} viewArg\\n * @param {number} detailArg\\n * @param {number} screenXArg\\n * @param {number} screenYArg\\n * @param {number} clientXArg\\n * @param {number} clientYArg\\n * @param {number} offsetXArg\\n * @param {number} offsetYArg\\n * @param {number} translationXArg\\n * @param {number} translationYArg\\n * @param {number} scaleArg\\n * @param {number} expansionArg\\n * @param {number} rotationArg\\n * @param {number} velocityXArg\\n * @param {number} velocityYArg\\n * @param {number} velocityExpansionArg\\n * @param {number} velocityAngularArg\\n * @param {number} hwTimestampArg\\n * @param {EventTarget} relatedTargetArg\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441187.aspx\\n */\\nMSGestureEvent.prototype.initGestureEvent;\\n","externs/webkit_event.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over W3C\'s\\n * event specification by WebKit. This file depends on w3c_event.js.\\n * All the provided definitions have been type annotated\\n *\\n * @externs\\n * @author djlee@google.com (DJ Lee)\\n */\\n\\n/** @type {number} */\\nEvent.prototype.wheelDeltaX;\\n\\n/** @type {number} */\\nEvent.prototype.wheelDeltaY;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @see http://developer.apple.com/library/safari/documentation/AudioVideo/Reference/WebKitAnimationEventClassReference/WebKitAnimationEvent/WebKitAnimationEvent.html\\n */\\nfunction WebKitAnimationEvent() {}\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nWebKitAnimationEvent.prototype.animationName;\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nWebKitAnimationEvent.prototype.elapsedTime;","externs/w3c_device_sensor_event.js":"/*\\n * Copyright 2013 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s device orientation and device motion\\n * events specification.\\n * This file depends on w3c_event.js.\\n * The whole file has been partially type annotated.\\n * Created from http://dev.w3.org/geo/api/spec-source-orientation.\\n *\\n * @externs\\n * @author lukaszbk@google.com (Lukasz Bieniasz-Krzywiec)\\n */\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction DeviceOrientationEvent() {}\\n\\n/** @type {?number} */\\nDeviceOrientationEvent.prototype.alpha;\\n\\n/** @type {?number} */\\nDeviceOrientationEvent.prototype.beta;\\n\\n/** @type {?number} */\\nDeviceOrientationEvent.prototype.gamma;\\n\\n/** @type {boolean} */\\nDeviceOrientationEvent.prototype.absolute;\\n\\n/**\\n * @type {?number}\\n * @see https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html#//apple_ref/javascript/instp/DeviceOrientationEvent/webkitCompassAccuracy\\n */\\nDeviceOrientationEvent.prototype.webkitCompassAccuracy;\\n\\n/**\\n * @type {?number}\\n * @see https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html#//apple_ref/javascript/instp/DeviceOrientationEvent/webkitCompassHeading\\n */\\nDeviceOrientationEvent.prototype.webkitCompassHeading;\\n\\n/**\\n * @constructor\\n */\\nfunction DeviceAcceleration() {}\\n\\n/** @type {?number} */\\nDeviceAcceleration.prototype.x;\\n\\n/** @type {?number} */\\nDeviceAcceleration.prototype.y;\\n\\n/** @type {?number} */\\nDeviceAcceleration.prototype.z;\\n\\n/**\\n * @constructor\\n */\\nfunction DeviceRotationRate() {}\\n\\n/** @type {?number} */\\nDeviceRotationRate.prototype.alpha;\\n\\n/** @type {?number} */\\nDeviceRotationRate.prototype.beta;\\n\\n/** @type {?number} */\\nDeviceRotationRate.prototype.gamma;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction DeviceMotionEvent() {}\\n\\n/** @type {?DeviceAcceleration} */\\nDeviceMotionEvent.prototype.acceleration;\\n\\n/** @type {?DeviceAcceleration} */\\nDeviceMotionEvent.prototype.accelerationIncludingGravity;\\n\\n/** @type {?DeviceRotationRate} */\\nDeviceMotionEvent.prototype.rotationRate;\\n\\n/** @type {?number} */\\nDeviceMotionEvent.prototype.interval;\\n","externs/w3c_dom1.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s DOM Level 1 specification.\\n * The whole file has been fully type annotated. Created from\\n * http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n */\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-17189187\\n */\\nfunction DOMException() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.INDEX_SIZE_ERR = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.DOMSTRING_SIZE_ERR = 2;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.HIERARCHY_REQUEST_ERR = 3;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.WRONG_DOCUMENT_ERR = 4;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.INVALID_CHARACTER_ERR = 5;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.NO_DATA_ALLOWED_ERR = 6;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.NO_MODIFICATION_ALLOWED_ERR = 7;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.NOT_FOUND_ERR = 8;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.NOT_SUPPORTED_ERR = 9;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nDOMException.INUSE_ATTRIBUTE_ERR = 10;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-258A00AF\\n */\\nfunction ExceptionCode() {}\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-102161490\\n */\\nfuncti'; a.a+="on DOMImplementation() {}\\n\\n/**\\n * @param {string} feature\\n * @param {string} version\\n * @return {boolean}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-5CED94D7\\n * @nosideeffects\\n */\\nDOMImplementation.prototype.hasFeature = function(feature, version) {};\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nfunction Node() {}\\n\\n/** @override */\\nNode.prototype.addEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nNode.prototype.removeEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nNode.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @type {NamedNodeMap}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-attributes\\n */\\nNode.prototype.attributes;\\n\\n/**\\n * @type {!NodeList}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-childNodes\\n */\\nNode.prototype.childNodes;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-firstChild\\n */\\nNode.prototype.firstChild;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-lastChild\\n */\\nNode.prototype.lastChild;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-nextSibling\\n */\\nNode.prototype.nextSibling;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-nodeName\\n */\\nNode.prototype.nodeName;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-nodeValue\\n */\\nNode.prototype.nodeValue;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-nodeType\\n */\\nNode.prototype.nodeType;\\n\\n/**\\n * @type {Document}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-ownerDocument\\n */\\nNode.prototype.ownerDocument;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-parentNode\\n */\\nNode.prototype.parentNode;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-previousSibling\\n */\\nNode.prototype.previousSibling;\\n\\n/**\\n * @param {Node} newChild\\n * @return {!Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-appendChild\\n */\\nNode.prototype.appendChild = function(newChild) {};\\n\\n/**\\n * @param {boolean} deep\\n * @return {!Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-cloneNode\\n * @nosideeffects\\n */\\nNode.prototype.cloneNode = function(deep) {};\\n\\n/**\\n * @return {boolean}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-hasChildNodes\\n * @nosideeffects\\n */\\nNode.prototype.hasChildNodes = function() {};\\n\\n/**\\n * @param {Node} newChild\\n * @param {Node} refChild\\n * @return {!Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-insertBefore\\n */\\nNode.prototype.insertBefore = function(newChild, refChild) {};\\n\\n/**\\n * @param {Node} oldChild\\n * @return {!Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-removeChild\\n */\\nNode.prototype.removeChild = function(oldChild) {};\\n\\n/**\\n * @param {Node} newChild\\n * @param {Node} oldChild\\n * @return {!Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-replaceChild\\n */\\nNode.prototype.replaceChild = function(newChild, oldChild) {};\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.ATTRIBUTE_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.CDATA_SECTION_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.COMMENT_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.DOCUMENT_FRAGMENT_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.DOCUMENT_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.DOCUMENT_TYPE_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.ELEMENT_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.ENTITY_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.ENTITY_REFERENCE_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.PROCESSING_INSTRUCTION_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.TEXT_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.XPATH_NAMESPACE_NODE;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247\\n */\\nNode.NOTATION_NODE;\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-B63ED1A3\\n */\\nfunction DocumentFragment() {}\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#i-Document\\n */\\nfunction Document() {}\\n\\n/**\\n * @type {DocumentType}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-doctype\\n */\\nDocument.prototype.doctype;\\n\\n/**\\n * @type {!Element}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-documentElement\\n */\\nDocument.prototype.documentElement;\\n\\n/**\\n * @type {DOMImplementation}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-implementation\\n */\\nDocument.prototype.implementation;\\n\\n/**\\n * @param {string} name\\n * @return {!Attr}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createAttribute\\n * @nosideeffects\\n */\\nDocument.prototype.createAttribute = function(name) {};\\n\\n/**\\n * @param {string} data\\n * @return {!Comment}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createComment\\n * @nosideeffects\\n */\\nDocument.prototype.createComment = function(data) {};\\n\\n/**\\n * @param {string} data\\n * @return {!CDATASection}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createCDATASection\\n * @nosideeffects\\n */\\nDocument.prototype.createCDATASection = function(data) {};\\n\\n/**\\n * @return {!DocumentFragment}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createDocumentFragment\\n * @nosideeffects\\n */\\nDocument.prototype.createDocumentFragment = function() {};\\n\\n/**\\n * Create a DOM element.\\n *\\n * Web components introduced the second parameter as a way of extending existing\\n * tags (e.g. document.createElement('button', 'fancy-button')).\\n *\\n * @param {string} tagName\\n * @param {string=} opt_typeExtension\\n * @return {!Element}\\n * @nosideeffects\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createElement\\n * @see http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-instantiate\\n */\\nDocument.prototype.createElement = function(tagName, opt_typeExtension) {};\\n\\n/**\\n * @param {string} name\\n * @return {!EntityReference}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createEntityReference\\n * @nosideeffects\\n */\\nDocument.prototype.createEntityReference = function(name) {};\\n\\n/**\\n * @param {string} target\\n * @param {string} data\\n * @return {!ProcessingInstruction}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createProcessingInstruction\\n * @nosideeffects\\n */\\nDocument.prototype.createProcessingInstruction = function(target, data) {};\\n\\n/**\\n * @param {number|string} data\\n * @return {!Text}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-createTextNode\\n * @nosideeffects\\n */\\nDocument.prototype.createTextNode = function(data) {};\\n\\n/**\\n * @param {string} tagname\\n * @return {!NodeList}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-A6C9094\\n * @nosideeffects\\n */\\nDocument.prototype.getElementsByTagName = function(tagname) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @template T\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-536297177\\n */\\nfunction NodeList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-203510337\\n */\\nNodeList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {T|null}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-844377136\\n */\\nNodeList.prototype.item = function(index) {};\\n\\n/**\\n * @param {?function(this:S, T, number, !NodeList): ?} callback\\n * @param {S=} opt_thisobj\\n * @this {NodeList}\\n * @template T,S\\n * @return {undefined}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach\\n */\\nNodeList.prototype.forEach = function(callback, opt_thisobj) {};\\n\\n/**\\n * @constructor\\n * @implements {IObject<(string|number), T>}\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @template T\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1780488922\\n */\\nfunction NamedNodeMap() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-6D0FB19E\\n */\\nNamedNodeMap.prototype.length;\\n\\n/**\\n * @param {string} name\\n * @return {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1074577549\\n * @nosideeffects\\n */\\nNamedNodeMap.prototype.getNamedItem = function(name) {};\\n\\n/**\\n * @param {number} index\\n * @return {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-349467F9\\n * @nosideeffects\\n */\\nNamedNodeMap.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} name\\n * @return {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-D58B193\\n */\\nNamedNodeMap.prototype.removeNamedItem = function(name) {};\\n\\n/**\\n * @param {Node} arg\\n * @return {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1025163788\\n */\\nNamedNodeMap.prototype.setNamedItem = function(arg) {};\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-FF21A306\\n */\\nfunction CharacterData() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-72AB8359\\n */\\nCharacterData.prototype.data;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-7D61178C\\n */\\nCharacterData.prototype.length;\\n\\n/**\\n * @param {string} arg\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-32791A2F\\n */\\nCharacterData.prototype.appendData = function(arg) {};\\n\\n/**\\n * @param {number} offset\\n * @param {number} count\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-7C603781\\n */\\nCharacterData.prototype.deleteData = function(offset, count) {};\\n\\n/**\\n * @param {number} offset\\n * @param {string} arg\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-3EDB695F\\n */\\nCharacterData.prototype.insertData = function(offset, arg) {};\\n\\n/**\\n * @param {number} offset\\n * @param {number} count\\n * @param {string} arg\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-E5CBA7FB\\n */\\nCharacterData.prototype.replaceData = function(offset, count, arg) {};\\n\\n/**\\n * @param {number} offset\\n * @param {number} count\\n * @return {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-6531BCCF\\n * @nosideeffects\\n */\\nCharacterData.prototype.substringData = function(offset, count) {};\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-637646024\\n */\\nfunction Attr() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1112119403\\n */\\nAttr.prototype.name;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-862529273\\n */\\nAttr.prototype.specified;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-221662474\\n */\\nAttr.prototype.value;\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-745549614\\n */\\nfunction Element() {}\\n\\n/**\\n * An Element always contains a non-null NamedNodeMap containing the attributes\\n * of this node.\\n * @type {!NamedNodeMap}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-attributes\\n */\\nElement.prototype.attributes;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#attribute-tagName\\n */\\nElement.prototype.tagName;\\n\\n/**\\n * @implicitCast\\n * @type {?}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/className\\n * We type it as ? even though it is a string, because some SVG elements have\\n * className that is an object, which isn't a subtype of string.\\n * Alternative: TypeScript types this as string and types className on\\n * SVGElement as ?.\\n */\\nElement.prototype.className;\\n\\n/**\\n * @param {string} name\\n * @param {number?=} opt_flags\\n * @return {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-getAttribute\\n * @see http://msdn.microsoft.com/en-us/library/ms536429(VS.85).aspx\\n * @nosideeffects\\n */\\nElement.prototype.getAttribute = function(name, opt_flags) {};\\n\\n/**\\n * @param {string} name\\n * @return {Attr}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-getAttributeNode\\n * @nosideeffects\\n */\\nElement.prototype.getAttributeNode = function(name) {};\\n\\n/**\\n * @param {string} tagname\\n * @return {!NodeList}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1938918D\\n * @nosideeffects\\n */\\nElement.prototype.getElementsByTagName = function(tagname) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-removeAttribute\\n */\\nElement.prototype.removeAttribute = function(name) {};\\n\\n/**\\n * @param {Attr} oldAttr\\n * @return {?Attr}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-removeAttributeNode\\n */\\nElement.prototype.removeAttributeNode = function(oldAttr) {};\\n\\n/**\\n * @param {string} name\\n * @param {string|number|boolean} value Values are converted to strings with\\n * ToString, so we accept number and boolean since both convert easily to\\n * strings.\\n * @return {undefined}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-setAttribute\\n */\\nE"; a.a+='lement.prototype.setAttribute = function(name, value) {};\\n\\n/**\\n * @param {Attr} newAttr\\n * @return {?Attr}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#method-setAttributeNode\\n */\\nElement.prototype.setAttributeNode = function(newAttr) {};\\n\\n// Event handlers\\n// The DOM level 3 spec has a good index of these\\n// http://www.w3.org/TR/DOM-Level-3-Events/#event-types\\n\\n/** @type {?function (Event)} */ Element.prototype.onabort;\\n/** @type {?function (Event)} */ Element.prototype.onbeforeinput;\\n/** @type {?function (Event)} */ Element.prototype.onbeforeunload;\\n/** @type {?function (Event)} */ Element.prototype.onblur;\\n/** @type {?function (Event)} */ Element.prototype.onchange;\\n/** @type {?function (Event)} */ Element.prototype.onclick;\\n/** @type {?function (Event)} */ Element.prototype.oncompositionstart;\\n/** @type {?function (Event)} */ Element.prototype.oncompositionupdate;\\n/** @type {?function (Event)} */ Element.prototype.oncompositionend;\\n/** @type {?function (Event)} */ Element.prototype.oncontextmenu;\\n/** @type {?function (Event)} */ Element.prototype.oncopy;\\n/** @type {?function (Event)} */ Element.prototype.oncut;\\n/** @type {?function (Event)} */ Element.prototype.ondblclick;\\n/** @type {?function (Event)} */ Element.prototype.onerror;\\n/** @type {?function (Event)} */ Element.prototype.onfocus;\\n/** @type {?function (Event)} */ Element.prototype.onfocusin;\\n/** @type {?function (Event)} */ Element.prototype.onfocusout;\\n/** @type {?function (Event)} */ Element.prototype.oninput;\\n/** @type {?function (Event)} */ Element.prototype.onkeydown;\\n/** @type {?function (Event)} */ Element.prototype.onkeypress;\\n/** @type {?function (Event)} */ Element.prototype.onkeyup;\\n/** @type {?function (Event)} */ Element.prototype.onload;\\n/** @type {?function (Event)} */ Element.prototype.onunload;\\n/** @type {?function (Event)} */ Element.prototype.onmousedown;\\n/** @type {?function (Event)} */ Element.prototype.onmousemove;\\n/** @type {?function (Event)} */ Element.prototype.onmouseout;\\n/** @type {?function (Event)} */ Element.prototype.onmouseover;\\n/** @type {?function (Event)} */ Element.prototype.onmouseup;\\n/** @type {?function (Event)} */ Element.prototype.onmousewheel;\\n/** @type {?function (Event)} */ Element.prototype.onpaste;\\n/** @type {?function (Event)} */ Element.prototype.onreset;\\n/** @type {?function (Event)} */ Element.prototype.onresize;\\n/** @type {?function (Event)} */ Element.prototype.onscroll;\\n/** @type {?function (Event)} */ Element.prototype.onselect;\\n/** @type {?function (Event=)} */ Element.prototype.onsubmit;\\n/** @type {?function (Event)} */ Element.prototype.ontextinput;\\n/** @type {?function (Event)} */ Element.prototype.onwheel;\\n\\n/**\\n * @constructor\\n * @extends {CharacterData}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1312295772\\n */\\nfunction Text() {}\\n\\n/**\\n * @param {number} offset\\n * @return {Text}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-38853C1D\\n */\\nText.prototype.splitText = function(offset) {};\\n\\n/**\\n * @constructor\\n * @extends {CharacterData}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1728279322\\n */\\nfunction Comment() {}\\n\\n/**\\n * @constructor\\n * @extends {Text}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-667469212\\n */\\nfunction CDATASection() {}\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-412266927\\n */\\nfunction DocumentType() {}\\n\\n/**\\n * @type {NamedNodeMap}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1788794630\\n */\\nDocumentType.prototype.entities;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1844763134\\n */\\nDocumentType.prototype.name;\\n\\n/**\\n * @type {NamedNodeMap}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-D46829EF\\n */\\nDocumentType.prototype.notations;\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-5431D1B9\\n */\\nfunction Notation() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-54F2B4D0\\n */\\nNotation.prototype.publicId;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-E8AAB1D0\\n */\\nNotation.prototype.systemId;\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-527DCFF2\\n */\\nfunction Entity() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-D7303025\\n */\\nEntity.prototype.publicId;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-D7C29F3E\\n */\\nEntity.prototype.systemId;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-6ABAEB38\\n */\\nEntity.prototype.notationName;\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-11C98490\\n */\\nfunction EntityReference() {}\\n\\n/**\\n * @constructor\\n * @extends {Node}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1004215813\\n */\\nfunction ProcessingInstruction() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-837822393\\n */\\nProcessingInstruction.prototype.data;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1478689192\\n */\\nProcessingInstruction.prototype.target;\\n\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction Window() {}\\nWindow.prototype.Window;\\n\\n/** @override */\\nWindow.prototype.addEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWindow.prototype.removeEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWindow.prototype.dispatchEvent = function(evt) {};\\n\\n/** @type {?function (Event)} */ Window.prototype.onabort;\\n/** @type {?function (Event)} */ Window.prototype.onbeforeunload;\\n/** @type {?function (Event)} */ Window.prototype.onblur;\\n/** @type {?function (Event)} */ Window.prototype.onchange;\\n/** @type {?function (Event)} */ Window.prototype.onclick;\\n/** @type {?function (Event)} */ Window.prototype.onclose;\\n/** @type {?function (Event)} */ Window.prototype.oncontextmenu;\\n/** @type {?function (Event)} */ Window.prototype.ondblclick;\\n/** @type {?function (Event)} */ Window.prototype.ondragdrop;\\n// onerror has a special signature.\\n// See https://developer.mozilla.org/en/DOM/window.onerror\\n// and http://msdn.microsoft.com/en-us/library/cc197053(VS.85).aspx\\n/** @type {?function (string, string, number)} */\\nWindow.prototype.onerror;\\n/** @type {?function (Event)} */ Window.prototype.onfocus;\\n/** @type {?function (Event)} */ Window.prototype.onhashchange;\\n/** @type {?function (Event)} */ Window.prototype.onkeydown;\\n/** @type {?function (Event)} */ Window.prototype.onkeypress;\\n/** @type {?function (Event)} */ Window.prototype.onkeyup;\\n/** @type {?function (Event)} */ Window.prototype.onload;\\n/** @type {?function (Event)} */ Window.prototype.onmousedown;\\n/** @type {?function (Event)} */ Window.prototype.onmousemove;\\n/** @type {?function (Event)} */ Window.prototype.onmouseout;\\n/** @type {?function (Event)} */ Window.prototype.onmouseover;\\n/** @type {?function (Event)} */ Window.prototype.onmouseup;\\n/** @type {?function (Event)} */ Window.prototype.onmousewheel;\\n/** @type {?function (Event)} */ Window.prototype.onpaint;\\n/** @type {?function (Event)} */ Window.prototype.onpopstate;\\n/** @type {?function (Event)} */ Window.prototype.onreset;\\n/** @type {?function (Event)} */ Window.prototype.onresize;\\n/** @type {?function (Event)} */ Window.prototype.onscroll;\\n/** @type {?function (Event)} */ Window.prototype.onselect;\\n/** @type {?function (Event=)} */ Window.prototype.onsubmit;\\n/** @type {?function (Event)} */ Window.prototype.onunload;\\n/** @type {?function (Event)} */ Window.prototype.onwheel;\\n","externs/w3c_dom2.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s DOM Level 2 specification.\\n * This file depends on w3c_dom1.js.\\n * The whole file has been fully type annotated.\\n * Created from\\n * http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\\n *\\n * @externs\\n */\\n\\n/**\\n * @param {string} s id.\\n * @return {Element}\\n * @nosideeffects\\n * @see https://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#ID-getElBId\\n */\\nDocument.prototype.getElementById = function(s) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} qualifiedName\\n * @param {string=} opt_typeExtension\\n * @return {!Element}\\n * @see https://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#ID-DocCrElNS\\n */\\nDocument.prototype.createElementNS =\\n function(namespaceURI, qualifiedName, opt_typeExtension) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} qualifiedName\\n * @return {!Attr}\\n * @see https://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#ID-DocCrElNS\\n */\\nDocument.prototype.createAttributeNS =\\n function(namespaceURI, qualifiedName) {};\\n\\n/**\\n * @param {string} namespace\\n * @param {string} name\\n * @return {!NodeList}\\n * @nosideeffects\\n * @see https://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#ID-getElBTNNS\\n */\\nDocument.prototype.getElementsByTagNameNS = function(namespace, name) {};\\n\\n/**\\n * @param {Node} externalNode\\n * @param {boolean} deep\\n * @return {Node}\\n * @see https://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#Core-Document-importNode\\n */\\nDocument.prototype.importNode = function(externalNode, deep) {};\\n\\n/**\\n * @constructor\\n * @implements {IObject<(string|number),T>}\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @template T\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75708506\\n */\\nfunction HTMLCollection() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40057551\\n */\\nHTMLCollection.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {T|null}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-33262535\\n * @nosideeffects\\n */\\nHTMLCollection.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} name\\n * @return {T|null}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-21069976\\n * @nosideeffects\\n */\\nHTMLCollection.prototype.namedItem = function(name) {};\\n\\n/**\\n * @constructor\\n * @implements {IObject<(string|number),HTMLOptionElement>}\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-2-HTML/html.html#HTMLOptionsCollection\\n */\\nfunction HTMLOptionsCollection() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-HTML/html.html#HTMLOptionsCollection-length\\n */\\nHTMLOptionsCollection.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {Node}\\n * @see http://www.w3.org/TR/DOM-Level-2-HTML/html.html#HTMLOptionsCollection-item\\n * @nosideeffects\\n */\\nHTMLOptionsCollection.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @extends {Document}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-26809268\\n */\\nfunction HTMLDocument() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-18446827\\n */\\nHTMLDocument.prototype.title;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-95229140\\n */\\nHTMLDocument.prototype.referrer;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-2250147\\n */\\nHTMLDocument.prototype.domain;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-46183437\\n */\\nHTMLDocument.prototype.URL;\\n\\n/**\\n * @type {!HTMLBodyElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-56360201\\n */\\nHTMLDocument.prototype.body;\\n\\n/**\\n * @type {!HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-90379117\\n */\\nHTMLDocument.prototype.images;\\n\\n/**\\n * @type {!HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85113862\\n */\\nHTMLDocument.prototype.applets;\\n\\n/**\\n * @type {!HTMLCollection<(!HTMLAnchorElement|!HTMLAreaElement)>}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-7068919\\n */\\nHTMLDocument.prototype.links;\\n\\n/**\\n * @type {!HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-1689064\\n */\\nHTMLDocument.prototype.forms;\\n\\n/**\\n * @type {!HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-7577272\\n */\\nHTMLDocument.prototype.anchors;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8747038\\n */\\nHTMLDocument.prototype.cookie;\\n\\n/**\\n * @param {string=} opt_mimeType\\n * @param {string=} opt_replace\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-72161170\\n * Even though official spec says \\"no parameters\\" some old browsers might take\\n * optional parameters: https://msdn.microsoft.com/en-us/library/ms536652(v=vs.85).aspx\\n * @override\\n */\\nHTMLDocument.prototype.open = function(opt_mimeType, opt_replace) {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-98948567\\n * @override\\n */\\nHTMLDocument.prototype.close = function() {};\\n\\n/**\\n * @param {string} text\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75233634\\n * @override\\n */\\nHTMLDocument.prototype.write = function(text) {};\\n\\n/**\\n * @param {string} text\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-35318390\\n * @override\\n */\\nHTMLDocument.prototype.writeln = function(text) {};\\n\\n/**\\n * @param {string} elementName\\n * @return {!NodeList}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-71555259\\n * @nosideeffects\\n */\\nHTMLDocument.prototype.getElementsByName = function(elementName) {};\\n\\n/**\\n * @param {Node} root\\n * @param {number=} whatToShow\\n * @param {NodeFilter=} filter\\n * @param {boolean=} entityReferenceExpansion\\n * @return {!NodeIterator}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-Document\\n * @nosideeffects\\n */\\nHTMLDocument.prototype.createNodeIterator = function(\\n root, whatToShow, filter, entityReferenceExpansion) {};\\n\\n/**\\n * @param {Node} root\\n * @param {number=} whatToShow\\n * @param {NodeFilter=} filter\\n * @param {boolean=} entityReferenceExpansion\\n * @return {!TreeWalker}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-Document\\n * @nosideeffects\\n */\\nHTMLDocument.prototype.createTreeWalker = function(\\n root, whatToShow, filter, entityReferenceExpansion) {};\\n\\n\\n/** @typedef {{\\n createNodeIterator: function(Node, number=, NodeFilter=, boolean=) : NodeIterator,\\n createTreeWalker: function(Node, number=, NodeFilter=, boolean=) : TreeWalker\\n}} */\\nvar TraversalDocument;\\n\\n/**\\n * @interface'; a.a+="\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeFilter\\n*/\\nfunction NodeFilter() {}\\n\\n/* Constants for whatToShow */\\n/** @const {number} */ NodeFilter.SHOW_ALL;\\n/** @const {number} */ NodeFilter.SHOW_ATTRIBUTE;\\n/** @const {number} */ NodeFilter.SHOW_CDATA_SECTION;\\n/** @const {number} */ NodeFilter.SHOW_COMMENT;\\n/** @const {number} */ NodeFilter.SHOW_DOCUMENT;\\n/** @const {number} */ NodeFilter.SHOW_DOCUMENT_FRAGMENT;\\n/** @const {number} */ NodeFilter.SHOW_DOCUMENT_TYPE;\\n/** @const {number} */ NodeFilter.SHOW_ELEMENT;\\n/** @const {number} */ NodeFilter.SHOW_ENTITY;\\n/** @const {number} */ NodeFilter.SHOW_ENTITY_REFERENCE;\\n/** @const {number} */ NodeFilter.SHOW_NOTATION;\\n/** @const {number} */ NodeFilter.SHOW_PROCESSING_INSTRUCTION;\\n/** @const {number} */ NodeFilter.SHOW_TEXT;\\n\\n/* Consants for acceptNode */\\n/** @const {number} */ NodeFilter.FILTER_ACCEPT;\\n/** @const {number} */ NodeFilter.FILTER_REJECT;\\n/** @const {number} */ NodeFilter.FILTER_SKIP;\\n\\n/**\\n * @param {Node} n\\n * @return {number} Any of NodeFilter.FILTER_* constants.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeFilter-acceptNode\\n*/\\nNodeFilter.prototype.acceptNode = function(n) {};\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeIterator\\n*/\\nfunction NodeIterator() {}\\n\\n/**\\n * Detach and invalidate the NodeIterator.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeIterator-detach\\n * @return {undefined}\\n */\\nNodeIterator.prototype.detach = function() {};\\n\\n/**\\n * @return {Node} Next node in the set.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeIterator-nextNode\\n */\\nNodeIterator.prototype.nextNode = function() {};\\n\\n/**\\n * @return {Node} Previous node in the set.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeIterator-previousNode\\n */\\nNodeIterator.prototype.previousNode = function() {};\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker\\n*/\\nfunction TreeWalker() {}\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-firstChild\\n */\\nTreeWalker.prototype.firstChild = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null..\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-lastChild\\n */\\nTreeWalker.prototype.lastChild = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-nextNode\\n */\\nTreeWalker.prototype.nextNode = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-nextSibling\\n */\\nTreeWalker.prototype.nextSibling = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-parentNode\\n */\\nTreeWalker.prototype.parentNode = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-previousNode\\n */\\nTreeWalker.prototype.previousNode = function() {};\\n\\n/**\\n * @return {?Node} The new Node or null.\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker-previousSibling\\n */\\nTreeWalker.prototype.previousSibling = function() {};\\n\\n/**\\n * @type {Node}\\n */\\nTreeWalker.prototype.root;\\n\\n/**\\n * @type {number}\\n */\\nTreeWalker.prototype.whatToShow;\\n\\n/**\\n * @type {NodeFilter}\\n */\\nTreeWalker.prototype.filter;\\n\\n/**\\n * @type {boolean}\\n */\\nTreeWalker.prototype.expandEntityReference;\\n\\n/**\\n * @type {Node}\\n */\\nTreeWalker.prototype.currentNode;\\n\\n/**\\n * @constructor\\n * @extends {Element}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58190037\\n */\\nfunction HTMLElement() {}\\n\\n/**\\n * @implicitCast\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-63534901\\n */\\nHTMLElement.prototype.id;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-78276800\\n */\\nHTMLElement.prototype.title;\\n\\n/**\\n * @type {!CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ElementCSSInlineStyle\\n */\\nHTMLElement.prototype.style;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59132807\\n */\\nHTMLElement.prototype.lang;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-52460740\\n */\\nHTMLElement.prototype.dir;\\n\\n/**\\n * @implicitCast\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-95362176\\n */\\nHTMLElement.prototype.className;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40676705\\n */\\nHTMLElement.prototype.tabIndex;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-33759296\\n */\\nfunction HTMLHtmlElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-9383775\\n */\\nHTMLHtmlElement.prototype.version;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77253168\\n */\\nfunction HTMLHeadElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96921909\\n */\\nHTMLHeadElement.prototype.profile;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @implements {LinkStyle}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-35143001\\n */\\nfunction HTMLLinkElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87355129\\n */\\nHTMLLinkElement.prototype.disabled;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-63954491\\n */\\nHTMLLinkElement.prototype.charset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-33532588\\n */\\nHTMLLinkElement.prototype.href;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85145682\\n */\\nHTMLLinkElement.prototype.hreflang;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75813125\\n */\\nHTMLLinkElement.prototype.media;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-41369587\\n */\\nHTMLLinkElement.prototype.rel;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40715461\\n */\\nHTMLLinkElement.prototype.rev;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-84183095\\n */\\nHTMLLinkElement.prototype.target;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32498296\\n */\\nHTMLLinkElement.prototype.type;\\n\\n/** @type {StyleSheet} */\\nHTMLLinkElement.prototype.sheet;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79243169\\n */\\nfunction HTMLTitleElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77500413\\n */\\nHTMLTitleElement.prototype.text;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-37041454\\n */\\nfunction HTMLMetaElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87670826\\n */\\nHTMLMetaElement.prototype.content;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77289449\\n */\\nHTMLMetaElement.prototype.httpEquiv;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-31037081\\n */\\nHTMLMetaElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-35993789\\n */\\nHTMLMetaElement.prototype.scheme;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-73629039\\n */\\nfunction HTMLBaseElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-65382887\\n */\\nHTMLBaseElement.prototype.href;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-73844298\\n */\\nHTMLBaseElement.prototype.target;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85283003\\n */\\nfunction HTMLIsIndexElement() {}\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87069980\\n */\\nHTMLIsIndexElement.prototype.form;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-33589862\\n */\\nHTMLIsIndexElement.prototype.prompt;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @implements {LinkStyle}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-16428977\\n */\\nfunction HTMLStyleElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-51162010\\n */\\nHTMLStyleElement.prototype.disabled;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76412738\\n */\\nHTMLStyleElement.prototype.media;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22472002\\n */\\nHTMLStyleElement.prototype.type;\\n\\n/** @type {StyleSheet} */\\nHTMLStyleElement.prototype.sheet;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-62018039\\n */\\nfunction HTMLBodyElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59424581\\n */\\nHTMLBodyElement.prototype.aLink;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-37574810\\n */\\nHTMLBodyElement.prototype.background;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-24940084\\n */\\nHTMLBodyElement.prototype.bgColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-7662206\\n */\\nHTMLBodyElement.prototype.link;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-73714763\\n */\\nHTMLBodyElement.prototype.text;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-83224305\\n */\\nHTMLBodyElement.prototype.vLink;\\n\\n/**\\n * @constructor\\n * @extends {HTMLCollection}\\n * @implements {IObject)>}\\n * @implements {IArrayLike}\\n * @template T\\n * @see https://html.spec.whatwg.org/multipage/infrastructure.html#the-htmlformcontrolscollection-interface\\n */\\nfunction HTMLFormControlsCollection() {}\\n\\n/**\\n * @param {string} name\\n * @return {T|RadioNodeList|null}\\n * @see https://html.spec.whatwg.org/multipage/infrastructure.html#dom-htmlformcontrolscollection-nameditem\\n * @nosideeffects\\n * @override\\n * @suppress {newCheckTypes}\\n */\\nHTMLFormControlsCollection.prototype.namedItem = function(name) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40002357\\n */\\nfunction HTMLFormElement() {}\\n\\n/**\\n * @type {HTMLFormControlsCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76728479\\n */\\nHTMLFormElement.prototype.elements;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#HTML-HTMLFormElement-length\\n */\\nHTMLFormElement.prototype.length;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22051454\\n */\\nHTMLFormElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-19661795\\n */\\nHTMLFormElement.prototype.acceptCharset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-74049184\\n */\\nHTMLFormElement.prototype.action;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-84227810\\n */\\nHTMLFormElement.prototype.enctype;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-82545539\\n */\\nHTMLFormElement.prototype.method;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6512890\\n */\\nHTMLFormElement.prototype.target;\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76767676\\n */\\nHTMLFormElement.prototype.submit = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76767677\\n */\\nHTMLFormElement.prototype.reset = function() {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-94282980\\n */\\nfunction HTMLSelectElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58783172\\n */\\nHTMLSelectElement.prototype.type;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85676760\\n */\\nHTMLSelectElement.prototype.selectedIndex;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59351919\\n */\\nHTMLSelectElement.prototype.value;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-5933486\\n */\\nHTMLSelectElement.prototype.length;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-20489458\\n */\\nHTMLSelectElement.prototype.form;\\n\\n/**\\n * @type {!HTMLOptionsCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-30606413\\n */\\nHTMLSelectElement.prototype.options;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79102918\\n */\\nHTMLSelectElement.prototype.disabled;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-13246613\\n */\\nHTMLSelectElement.prototype.multiple;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-41636323\\n */\\nHTMLSelectElement.prototype.name;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-18293826\\n */\\nHTMLSelectElement.prototype.size;\\n\\n/**\\n * @param {HTMLElement} element\\n * @param {HTMLElement=} opt_before\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-14493106\\n */\\nHTMLSelectElement.prototype.add = function(element, opt_before) {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-28216144\\n * @override\\n */\\nHTMLSelectElement.prototype.blur = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32130014\\n * @override\\n */\\nHTMLSelectElement.prototype.focus = function() {};\\n\\n/**\\n * @param {number=} opt_index\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-33404570\\n * @override\\n */\\nHTMLSelectElement.prototype.remove = function(opt_index) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-38450247\\n */\\nfunction HTMLOptGroupElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/htm"; a.a+="l.html#ID-15518803\\n */\\nHTMLOptGroupElement.prototype.disabled;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-95806054\\n */\\nHTMLOptGroupElement.prototype.label;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70901257\\n */\\nfunction HTMLOptionElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-37770574\\n */\\nHTMLOptionElement.prototype.defaultSelected;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-23482473\\n */\\nHTMLOptionElement.prototype.disabled;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-17116503\\n */\\nHTMLOptionElement.prototype.form;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-14038413\\n */\\nHTMLOptionElement.prototype.index;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40736115\\n */\\nHTMLOptionElement.prototype.label;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70874476\\n */\\nHTMLOptionElement.prototype.selected;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-48154426\\n */\\nHTMLOptionElement.prototype.text;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6185554\\n */\\nHTMLOptionElement.prototype.value;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6043025\\n */\\nfunction HTMLInputElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-15328520\\n */\\nHTMLInputElement.prototype.accept;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59914154\\n */\\nHTMLInputElement.prototype.accessKey;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96991182\\n */\\nHTMLInputElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-92701314\\n */\\nHTMLInputElement.prototype.alt;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-30233917\\n */\\nHTMLInputElement.prototype.checked;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-20509171\\n */\\nHTMLInputElement.prototype.defaultChecked;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-26091157\\n */\\nHTMLInputElement.prototype.defaultValue;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-50886781\\n */\\nHTMLInputElement.prototype.disabled;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-63239895\\n */\\nHTMLInputElement.prototype.form;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-54719353\\n */\\nHTMLInputElement.prototype.maxLength;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-89658498\\n */\\nHTMLInputElement.prototype.name;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88461592\\n */\\nHTMLInputElement.prototype.readOnly;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79659438\\n */\\nHTMLInputElement.prototype.size;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-97320704\\n */\\nHTMLInputElement.prototype.src;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-62176355\\n */\\nHTMLInputElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-62883744\\n */\\nHTMLInputElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32463706\\n */\\nHTMLInputElement.prototype.useMap;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-49531485\\n */\\nHTMLInputElement.prototype.value;\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-26838235\\n * @override\\n */\\nHTMLInputElement.prototype.blur = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-2651361\\n * @override\\n */\\nHTMLInputElement.prototype.click = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-65996295\\n * @override\\n */\\nHTMLInputElement.prototype.focus = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-34677168\\n */\\nHTMLInputElement.prototype.select = function() {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-24874179\\n */\\nfunction HTMLTextAreaElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-93102991\\n */\\nHTMLTextAreaElement.prototype.accessKey;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-51387225\\n */\\nHTMLTextAreaElement.prototype.cols;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-36152213\\n */\\nHTMLTextAreaElement.prototype.defaultValue;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-98725443\\n */\\nHTMLTextAreaElement.prototype.disabled;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-18911464\\n */\\nHTMLTextAreaElement.prototype.form;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70715578\\n */\\nHTMLTextAreaElement.prototype.name;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39131423\\n */\\nHTMLTextAreaElement.prototype.readOnly;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-46975887\\n */\\nHTMLTextAreaElement.prototype.rows;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-60363303\\n */\\nHTMLTextAreaElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#HTML-HTMLTextAreaElement-type\\n */\\nHTMLTextAreaElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70715579\\n */\\nHTMLTextAreaElement.prototype.value;\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6750689\\n * @override\\n */\\nHTMLTextAreaElement.prototype.blur = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39055426\\n * @override\\n */\\nHTMLTextAreaElement.prototype.focus = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-48880622\\n */\\nHTMLTextAreaElement.prototype.select = function() {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-34812697\\n */\\nfunction HTMLButtonElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-73169431\\n */\\nHTMLButtonElement.prototype.accessKey;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-92757155\\n */\\nHTMLButtonElement.prototype.disabled;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-71254493\\n */\\nHTMLButtonElement.prototype.form;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11029910\\n */\\nHTMLButtonElement.prototype.name;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39190908\\n */\\nHTMLButtonElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-27430092\\n */\\nHTMLButtonElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-72856782\\n */\\nHTMLButtonElement.prototype.value;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-13691394\\n */\\nfunction HTMLLabelElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-43589892\\n */\\nHTMLLabelElement.prototype.accessKey;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32480901\\n */\\nHTMLLabelElement.prototype.form;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96509813\\n */\\nHTMLLabelElement.prototype.htmlFor;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-7365882\\n */\\nfunction HTMLFieldSetElement() {}\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75392630\\n */\\nHTMLFieldSetElement.prototype.form;\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/forms.html#attr-fieldset-disabled\\n */\\nHTMLFieldSetElement.prototype.disabled;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-21482039\\n */\\nfunction HTMLLegendElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11297832\\n */\\nHTMLLegendElement.prototype.accessKey;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79538067\\n */\\nHTMLLegendElement.prototype.align;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-29594519\\n */\\nHTMLLegendElement.prototype.form;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-86834457\\n */\\nfunction HTMLUListElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39864178\\n */\\nHTMLUListElement.prototype.compact;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96874670\\n */\\nHTMLUListElement.prototype.type;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58056027\\n */\\nfunction HTMLOListElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76448506\\n */\\nHTMLOListElement.prototype.compact;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-14793325\\n */\\nHTMLOListElement.prototype.start;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40971103\\n */\\nHTMLOListElement.prototype.type;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-52368974\\n */\\nfunction HTMLDListElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-21738539\\n */\\nHTMLDListElement.prototype.compact;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-71600284\\n */\\nfunction HTMLDirectoryElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75317739\\n */\\nHTMLDirectoryElement.prototype.compact;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-72509186\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#the-menu-element\\n */\\nfunction HTMLMenuElement() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-68436464\\n */\\nHTMLMenuElement.prototype.compact;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-74680021\\n */\\nfunction HTMLLIElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-52387668\\n */\\nHTMLLIElement.prototype.type;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-45496263\\n */\\nHTMLLIElement.prototype.value;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22445964\\n */\\nfunction HTMLDivElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70908791\\n */\\nHTMLDivElement.prototype.align;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-84675076\\n */\\nfunction HTMLParagraphElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-53465507\\n */\\nHTMLParagraphElement.prototype.align;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-43345119\\n */\\nfunction HTMLHeadingElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6796462\\n */\\nHTMLHeadingElement.prototype.align;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70319763\\n */\\nfunction HTMLQuoteElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-53895598\\n */\\nHTMLQuoteElement.prototype.cite;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11383425\\n */\\nfunction HTMLPreElement() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-13894083\\n */\\nHTMLPreElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-56836063\\n */\\nfunction HTMLBRElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-82703081\\n */\\nHTMLBRElement.prototype.clear;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32774408\\n */\\nfunction HTMLBaseFontElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87502302\\n */\\nHTMLBaseFontElement.prototype.color;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88128969\\n */\\nHTMLBaseFontElement.prototype.face;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-38930424\\n */\\nHTMLBaseFontElement.prototype.size;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-43943847\\n */\\nfunction HTMLFontElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-53532975\\n */\\nHTMLFontElement.prototype.color;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-55715655\\n */\\nHTMLFontElement.prototype.face;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-90127284\\n */\\nHTMLFontElement.prototype.size;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-2000051"; a.a+="0/html.html#ID-68228811\\n */\\nfunction HTMLHRElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-15235012\\n */\\nHTMLHRElement.prototype.align;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79813978\\n */\\nHTMLHRElement.prototype.noShade;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77612587\\n */\\nHTMLHRElement.prototype.size;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87744198\\n */\\nHTMLHRElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79359609\\n */\\nfunction HTMLModElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75101708\\n */\\nHTMLModElement.prototype.cite;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88432678\\n */\\nHTMLModElement.prototype.dateTime;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-48250443\\n */\\nfunction HTMLAnchorElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-89647724\\n */\\nHTMLAnchorElement.prototype.accessKey;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67619266\\n */\\nHTMLAnchorElement.prototype.charset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-92079539\\n */\\nHTMLAnchorElement.prototype.coords;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88517319\\n */\\nHTMLAnchorElement.prototype.href;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87358513\\n */\\nHTMLAnchorElement.prototype.hreflang;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-32783304\\n */\\nHTMLAnchorElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-3815891\\n */\\nHTMLAnchorElement.prototype.rel;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58259771\\n */\\nHTMLAnchorElement.prototype.rev;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-49899808\\n */\\nHTMLAnchorElement.prototype.shape;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-41586466\\n */\\nHTMLAnchorElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6414197\\n */\\nHTMLAnchorElement.prototype.target;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-63938221\\n */\\nHTMLAnchorElement.prototype.type;\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-65068939\\n * @override\\n */\\nHTMLAnchorElement.prototype.blur = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-47150313\\n * @override\\n */\\nHTMLAnchorElement.prototype.focus = function() {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-17701901\\n */\\nfunction HTMLImageElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-3211094\\n */\\nHTMLImageElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-95636861\\n */\\nHTMLImageElement.prototype.alt;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-136671\\n */\\nHTMLImageElement.prototype.border;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-91561496\\n */\\nHTMLImageElement.prototype.height;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-53675471\\n */\\nHTMLImageElement.prototype.hspace;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58983880\\n */\\nHTMLImageElement.prototype.isMap;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77376969\\n */\\nHTMLImageElement.prototype.longDesc;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-91256910\\n */\\nHTMLImageElement.prototype.lowSrc;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-47534097\\n */\\nHTMLImageElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-87762984\\n */\\nHTMLImageElement.prototype.src;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-35981181\\n */\\nHTMLImageElement.prototype.useMap;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85374897\\n */\\nHTMLImageElement.prototype.vspace;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-13839076\\n */\\nHTMLImageElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-9893177\\n */\\nfunction HTMLObjectElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-16962097\\n */\\nHTMLObjectElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-47783837\\n */\\nHTMLObjectElement.prototype.archive;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-82818419\\n */\\nHTMLObjectElement.prototype.border;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75241146\\n */\\nHTMLObjectElement.prototype.code;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-25709136\\n */\\nHTMLObjectElement.prototype.codeBase;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-19945008\\n */\\nHTMLObjectElement.prototype.codeType;\\n\\n/**\\n * @type {Document}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-38538621\\n */\\nHTMLObjectElement.prototype.contentDocument;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-81766986\\n */\\nHTMLObjectElement.prototype.data;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-942770\\n */\\nHTMLObjectElement.prototype.declare;\\n\\n/**\\n * @type {HTMLFormElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-46094773\\n */\\nHTMLObjectElement.prototype.form;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88925838\\n */\\nHTMLObjectElement.prototype.height;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-17085376\\n */\\nHTMLObjectElement.prototype.hspace;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-20110362\\n */\\nHTMLObjectElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-25039673\\n */\\nHTMLObjectElement.prototype.standby;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-27083787\\n */\\nHTMLObjectElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-91665621\\n */\\nHTMLObjectElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6649772\\n */\\nHTMLObjectElement.prototype.useMap;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8682483\\n */\\nHTMLObjectElement.prototype.vspace;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-38538620\\n */\\nHTMLObjectElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-64077273\\n */\\nfunction HTMLParamElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59871447\\n */\\nHTMLParamElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-18179888\\n */\\nHTMLParamElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77971357\\n */\\nHTMLParamElement.prototype.value;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-23931872\\n */\\nHTMLParamElement.prototype.valueType;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-31006348\\n */\\nfunction HTMLAppletElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8049912\\n */\\nHTMLAppletElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58610064\\n */\\nHTMLAppletElement.prototype.alt;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-14476360\\n */\\nHTMLAppletElement.prototype.archive;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-61509645\\n */\\nHTMLAppletElement.prototype.code;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6581160\\n */\\nHTMLAppletElement.prototype.codeBase;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-90184867\\n */\\nHTMLAppletElement.prototype.height;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-1567197\\n */\\nHTMLAppletElement.prototype.hspace;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39843695\\n */\\nHTMLAppletElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-93681523\\n */\\nHTMLAppletElement.prototype.object;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22637173\\n */\\nHTMLAppletElement.prototype.vspace;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-16526327\\n */\\nHTMLAppletElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-94109203\\n */\\nfunction HTMLMapElement() {}\\n\\n/**\\n * @type {HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-71838730\\n */\\nHTMLMapElement.prototype.areas;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-52696514\\n */\\nHTMLMapElement.prototype.name;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-26019118\\n */\\nfunction HTMLAreaElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-57944457\\n */\\nHTMLAreaElement.prototype.accessKey;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-39775416\\n */\\nHTMLAreaElement.prototype.alt;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-66021476\\n */\\nHTMLAreaElement.prototype.coords;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-34672936\\n */\\nHTMLAreaElement.prototype.href;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-61826871\\n */\\nHTMLAreaElement.prototype.noHref;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-85683271\\n */\\nHTMLAreaElement.prototype.shape;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8722121\\n */\\nHTMLAreaElement.prototype.tabIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-46054682\\n */\\nHTMLAreaElement.prototype.target;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-81598695\\n */\\nfunction HTMLScriptElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-35305677\\n */\\nHTMLScriptElement.prototype.charset;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-93788534\\n */\\nHTMLScriptElement.prototype.defer;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-56700403\\n */\\nHTMLScriptElement.prototype.event;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-66979266\\n */\\nHTMLScriptElement.prototype.htmlFor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-75147231\\n */\\nHTMLScriptElement.prototype.src;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-46872999\\n */\\nHTMLScriptElement.prototype.text;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-30534818\\n */\\nHTMLScriptElement.prototype.type;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-64060425\\n */\\nfunction HTMLTableElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-23180977\\n */\\nHTMLTableElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-83532985\\n */\\nHTMLTableElement.prototype.bgColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-50969400\\n */\\nHTMLTableElement.prototype.border;\\n\\n/**\\n * @type {HTMLTableCaptionElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-14594520\\n */\\nHTMLTableElement.prototype.caption;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-59162158\\n */\\nHTMLTableElement.prototype.cellPadding;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-68907883\\n */\\nHTMLTableElement.prototype.cellSpacing;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-64808476\\n */\\nHTMLTableElement.prototype.frame;\\n\\n/**\\n * @type {HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6156016\\n */\\nHTMLTableElement.prototype.rows;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-26347553\\n */\\nHTMLTableElement.prototype.rules;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-44998528\\n */\\nHTMLTableElement.prototype.summary;\\n\\n/**\\n * @type {HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-63206416\\n */\\nHTMLTableElement.prototype.tBodies;\\n\\n/**\\n * @type {HTMLTableSectionElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-64197097\\n */\\nHTMLTableElement.prototype.tFoot;\\n\\n/**\\n * @type {HTMLTableSectionElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-9530944\\n */"; a.a+='\\nHTMLTableElement.prototype.tHead;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-77447361\\n */\\nHTMLTableElement.prototype.width;\\n\\n/**\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96920263\\n */\\nHTMLTableElement.prototype.createCaption = function() {};\\n\\n/**\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8453710\\n */\\nHTMLTableElement.prototype.createTFoot = function() {};\\n\\n/**\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70313345\\n */\\nHTMLTableElement.prototype.createTHead = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22930071\\n */\\nHTMLTableElement.prototype.deleteCaption = function() {};\\n\\n/**\\n * @param {number} index\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-13114938\\n */\\nHTMLTableElement.prototype.deleteRow = function(index) {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-78363258\\n */\\nHTMLTableElement.prototype.deleteTFoot = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-38310198\\n */\\nHTMLTableElement.prototype.deleteTHead = function() {};\\n\\n/**\\n * @param {number=} opt_index\\n * @return {HTMLElement}\\n * @see https://www.w3.org/TR/html5/tabular-data.html#htmltableelement\\n */\\nHTMLTableElement.prototype.insertRow = function(opt_index) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-12035137\\n */\\nfunction HTMLTableCaptionElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79875068\\n */\\nHTMLTableCaptionElement.prototype.align;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-84150186\\n */\\nfunction HTMLTableColElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-31128447\\n */\\nHTMLTableColElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-9447412\\n */\\nHTMLTableColElement.prototype.ch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-57779225\\n */\\nHTMLTableColElement.prototype.chOff;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96511335\\n */\\nHTMLTableColElement.prototype.span;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-83291710\\n */\\nHTMLTableColElement.prototype.vAlign;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-25196799\\n */\\nHTMLTableColElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67417573\\n */\\nfunction HTMLTableSectionElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-40530119\\n */\\nHTMLTableSectionElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-83470012\\n */\\nHTMLTableSectionElement.prototype.ch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-53459732\\n */\\nHTMLTableSectionElement.prototype.chOff;\\n\\n/**\\n * @type {HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-52092650\\n */\\nHTMLTableSectionElement.prototype.rows;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-4379116\\n */\\nHTMLTableSectionElement.prototype.vAlign;\\n\\n/**\\n * @param {number} index\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-5625626\\n */\\nHTMLTableSectionElement.prototype.deleteRow = function(index) {};\\n\\n/**\\n * @param {number=} opt_index\\n * @return {HTMLElement}\\n * @see https://www.w3.org/TR/html5/tabular-data.html#htmltablesectionelement\\n */\\nHTMLTableSectionElement.prototype.insertRow = function(opt_index) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-6986576\\n */\\nfunction HTMLTableRowElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-74098257\\n */\\nHTMLTableRowElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-18161327\\n */\\nHTMLTableRowElement.prototype.bgColor;\\n\\n/**\\n * @type {HTMLCollection}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67349879\\n */\\nHTMLTableRowElement.prototype.cells;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-16230502\\n */\\nHTMLTableRowElement.prototype.ch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-68207461\\n */\\nHTMLTableRowElement.prototype.chOff;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67347567\\n */\\nHTMLTableRowElement.prototype.rowIndex;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-79105901\\n */\\nHTMLTableRowElement.prototype.sectionRowIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-90000058\\n */\\nHTMLTableRowElement.prototype.vAlign;\\n\\n/**\\n * @param {number} index\\n * @return {undefined}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11738598\\n */\\nHTMLTableRowElement.prototype.deleteCell = function(index) {};\\n\\n/**\\n * @param {number} index\\n * @return {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-68927016\\n */\\nHTMLTableRowElement.prototype.insertCell = function(index) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-82915075\\n */\\nfunction HTMLTableCellElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-74444037\\n */\\nHTMLTableCellElement.prototype.abbr;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-98433879\\n */\\nHTMLTableCellElement.prototype.align;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-76554418\\n */\\nHTMLTableCellElement.prototype.axis;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-88135431\\n */\\nHTMLTableCellElement.prototype.bgColor;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-80748363\\n */\\nHTMLTableCellElement.prototype.cellIndex;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-30914780\\n */\\nHTMLTableCellElement.prototype.ch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-20144310\\n */\\nHTMLTableCellElement.prototype.chOff;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-84645244\\n */\\nHTMLTableCellElement.prototype.colSpan;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-89104817\\n */\\nHTMLTableCellElement.prototype.headers;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-83679212\\n */\\nHTMLTableCellElement.prototype.height;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-62922045\\n */\\nHTMLTableCellElement.prototype.noWrap;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-48237625\\n */\\nHTMLTableCellElement.prototype.rowSpan;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-36139952\\n */\\nHTMLTableCellElement.prototype.scope;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-58284221\\n */\\nHTMLTableCellElement.prototype.vAlign;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-27480795\\n */\\nHTMLTableCellElement.prototype.width;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-43829095\\n */\\nfunction HTMLFrameSetElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-98869594\\n */\\nHTMLFrameSetElement.prototype.cols;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-19739247\\n */\\nHTMLFrameSetElement.prototype.rows;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-97790553\\n */\\nfunction HTMLFrameElement() {}\\n\\n/**\\n * @type {Document}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-78799536\\n */\\nHTMLFrameElement.prototype.contentDocument;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11858633\\n */\\nHTMLFrameElement.prototype.frameBorder;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-7836998\\n */\\nHTMLFrameElement.prototype.longDesc;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-55569778\\n */\\nHTMLFrameElement.prototype.marginHeight;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-8369969\\n */\\nHTMLFrameElement.prototype.marginWidth;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-91128709\\n */\\nHTMLFrameElement.prototype.name;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-80766578\\n */\\nHTMLFrameElement.prototype.noResize;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-45411424\\n */\\nHTMLFrameElement.prototype.scrolling;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-78799535\\n */\\nHTMLFrameElement.prototype.src;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-50708718\\n */\\nfunction HTMLIFrameElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-11309947\\n */\\nHTMLIFrameElement.prototype.align;\\n\\n/**\\n * @type {Document}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67133006\\n */\\nHTMLIFrameElement.prototype.contentDocument;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-22463410\\n */\\nHTMLIFrameElement.prototype.frameBorder;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-1678118\\n */\\nHTMLIFrameElement.prototype.height;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-70472105\\n */\\nHTMLIFrameElement.prototype.longDesc;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-91371294\\n */\\nHTMLIFrameElement.prototype.marginHeight;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-66486595\\n */\\nHTMLIFrameElement.prototype.marginWidth;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-96819659\\n */\\nHTMLIFrameElement.prototype.name;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-36369822\\n */\\nHTMLIFrameElement.prototype.scrolling;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-43933957\\n */\\nHTMLIFrameElement.prototype.src;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/html.html#ID-67133005\\n */\\nHTMLIFrameElement.prototype.width;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-258A00AF\\n */\\nDOMException.INVALID_STATE_ERR = 11;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-258A00AF\\n */\\nDOMException.SYNTAX_ERR = 12;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-258A00AF\\n */\\nDOMException.INVALID_MODIFICATION_ERR = 13;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-258A00AF\\n */\\nDOMException.NAMESPACE_ERR = 14;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-258A00AF\\n */\\nDOMException.INVALID_ACCESS_ERR = 15;\\n","externs/w3c_dom3.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s DOM Level 3 specification.\\n * This file depends on w3c_dom2.js.\\n * The whole file has been fully type annotated.\\n * Created from\\n * http://www.w3.org/TR/DOM-Level-3-Core/ecma-script-binding.html\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n */\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-258A00AF\\n */\\nDOMException.prototype.code;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-258A00AF\\n */\\nDOMException.VALIDATION_ERR = 16;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-258A00AF\\n */\\nDOMException.TYPE_MISMATCH_ERR = 17;\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList\\n */\\nfunction DOMStringList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList-length\\n */\\nDOMStringList.prototype.length;\\n\\n/**\\n * @param {string} str\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList-contains\\n * @nosideeffects\\n */\\nDOMStringList.prototype.contains = function(str) {};\\n\\n/**\\n * @param {number} index\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList-item\\n * @nosideeffects\\n */\\nDOMStringList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList\\n */\\nfunction NameList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList-length\\n */\\nNameList.prototype.length;\\n\\n/**\\n * @param {string} str\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList-contains\\n * @nosideeffects\\n */\\nNameList.prototype.contains = function(str) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} name\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList-containsNS\\n * @nosideeffects\\n */\\nNameList.prototype.containsNS = function(namespaceURI, name) {};\\n\\n/**\\n * @param {number} index\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList-getName\\n * @nosideef'; a.a+="fects\\n */\\nNameList.prototype.getName = function(index) {};\\n\\n/**\\n * @param {number} index\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#NameList-getNamespaceURI\\n * @nosideeffects\\n */\\nNameList.prototype.getNamespaceURI = function(index) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMImplementationList\\n */\\nfunction DOMImplementationList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMImplementationList-length\\n */\\nDOMImplementationList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {DOMImplementation}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMImplementationList-item\\n * @nosideeffects\\n */\\nDOMImplementationList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMImplementationSource\\n */\\nfunction DOMImplementationSource() {}\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} publicId\\n * @param {DocumentType} doctype\\n * @return {Document}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-DOM-createDocument\\n * @nosideeffects\\n */\\nDOMImplementation.prototype.createDocument = function(namespaceURI, publicId, doctype) {};\\n\\n/**\\n * @param {string} qualifiedName\\n * @param {string} publicId\\n * @param {string} systemId\\n * @return {DocumentType}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-DOM-createDocType\\n * @nosideeffects\\n */\\nDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {};\\n\\n/**\\n * @param {string} features\\n * @return {DOMImplementation}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-getDOMImpl\\n * @nosideeffects\\n */\\nDOMImplementationSource.prototype.getDOMImplementation = function(features) {};\\n\\n/**\\n * @param {string} features\\n * @return {DOMImplementationList}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-getDOMImpls\\n * @nosideeffects\\n */\\nDOMImplementationSource.prototype.getDOMImplementationList = function(features) {};\\n\\n/**\\n * @param {string} feature\\n * @param {string} version\\n * @return {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMImplementation3-getFeature\\n * @nosideeffects\\n */\\nDOMImplementation.prototype.getFeature = function(feature, version) {};\\n\\n/**\\n * @param {Node} externalNode\\n * @return {Node}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-adoptNode\\n */\\nDocument.prototype.adoptNode = function(externalNode) {};\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-documentURI\\n */\\nDocument.prototype.documentURI;\\n\\n/**\\n * @type {DOMConfiguration}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-domConfig\\n */\\nDocument.prototype.domConfig;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-inputEncoding\\n */\\nDocument.prototype.inputEncoding;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-strictErrorChecking\\n */\\nDocument.prototype.strictErrorChecking;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-encoding\\n */\\nDocument.prototype.xmlEncoding;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-standalone\\n */\\nDocument.prototype.xmlStandalone;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-version\\n */\\nDocument.prototype.xmlVersion;\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-normalizeDocument\\n */\\nDocument.prototype.normalizeDocument = function() {};\\n\\n/**\\n * @param {Node} n\\n * @param {?string} namespaceURI\\n * @param {string} qualifiedName\\n * @return {Node}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-renameNode\\n */\\nDocument.prototype.renameNode = function(n, namespaceURI, qualifiedName) {};\\n\\n/**\\n * @type {?string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-baseURI\\n */\\nNode.prototype.baseURI;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSLocalN\\n */\\nNode.prototype.localName;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSname\\n */\\nNode.prototype.namespaceURI;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix\\n */\\nNode.prototype.prefix;\\n\\n/**\\n * @type {string}\\n * @implicitCast\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent\\n */\\nNode.prototype.textContent;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_DISCONNECTED\\n */\\nNode.DOCUMENT_POSITION_DISCONNECTED = 0x01;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_PRECEDING\\n */\\nNode.DOCUMENT_POSITION_PRECEDING = 0x02;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_FOLLOWING\\n */\\nNode.DOCUMENT_POSITION_FOLLOWING = 0x04;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_CONTAINS\\n */\\nNode.DOCUMENT_POSITION_CONTAINS = 0x08;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_CONTAINED_BY\\n */\\nNode.DOCUMENT_POSITION_CONTAINED_BY = 0x10;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node-DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\\n */\\nNode.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;\\n\\n/**\\n * @param {Node} other\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-compareDocumentPosition\\n * @nosideeffects\\n */\\nNode.prototype.compareDocumentPosition = function(other) {};\\n\\n/**\\n * @param {string} feature\\n * @param {string} version\\n * @return {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-getFeature\\n * @nosideeffects\\n */\\nNode.prototype.getFeature = function(feature, version) {};\\n\\n/**\\n * @param {string} key\\n * @return {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-getUserData\\n * @nosideeffects\\n */\\nNode.prototype.getUserData = function(key) {};\\n\\n/**\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeHasAttrs\\n * @nosideeffects\\n */\\nNode.prototype.hasAttributes = function() {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace\\n * @nosideeffects\\n */\\nNode.prototype.isDefaultNamespace = function(namespaceURI) {};\\n\\n/**\\n * @param {Node} arg\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isEqualNode\\n * @nosideeffects\\n */\\nNode.prototype.isEqualNode = function(arg) {};\\n\\n/**\\n * @param {Node} other\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isSameNode\\n * @nosideeffects\\n */\\nNode.prototype.isSameNode = function(other) {};\\n\\n/**\\n * @param {string} feature\\n * @param {string} version\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-Node-supports\\n * @nosideeffects\\n */\\nNode.prototype.isSupported = function(feature, version) {};\\n\\n/**\\n * @param {string} prefix\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI\\n * @nosideeffects\\n */\\nNode.prototype.lookupNamespaceURI = function(prefix) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\\n * @nosideeffects\\n */\\nNode.prototype.lookupPrefix = function(namespaceURI) {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-normalize\\n */\\nNode.prototype.normalize = function() {};\\n\\n/**\\n * @param {Object} key\\n * @param {Object} data\\n * @param {UserDataHandler} handler\\n * @return {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-setUserData'\\n */\\nNode.prototype.setUserData = function(key, data, handler) {};\\n\\n/**\\n * @param {string} query\\n * @return {?Element}\\n * @see http://www.w3.org/TR/selectors-api/#queryselector\\n * @nosideeffects\\n */\\nNode.prototype.querySelector = function(query) {};\\n\\n/**\\n * @param {string} query\\n * @return {!NodeList}\\n * @see http://www.w3.org/TR/selectors-api/#queryselectorall\\n * @nosideeffects\\n */\\nNode.prototype.querySelectorAll = function(query) {};\\n\\n/**\\n * @type {Element}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Attr-ownerElement\\n */\\nAttr.prototype.ownerElement;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Attr-isId\\n */\\nAttr.prototype.isId;\\n\\n/**\\n * @type {TypeInfo}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Attr-schemaTypeInfo\\n */\\nAttr.prototype.schemaTypeInfo;\\n\\n/**\\n * @type {TypeInfo}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Element-schemaTypeInfo\\n */\\nElement.prototype.schemaTypeInfo;\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @return {Attr}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElGetAtNodeNS\\n * @nosideeffects\\n */\\nElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElGetAttrNS\\n * @nosideeffects\\n */\\nElement.prototype.getAttributeNS = function(namespaceURI, localName) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @return {!NodeList}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-A6C90942\\n * @nosideeffects\\n */\\nElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {};\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElHasAttr\\n * @nosideeffects\\n */\\nElement.prototype.hasAttribute = function(name) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElHasAttrNS\\n * @nosideeffects\\n */\\nElement.prototype.hasAttributeNS = function(namespaceURI, localName) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElRemAtNS\\n */\\nElement.prototype.removeAttributeNS = function(namespaceURI, localName) {};\\n\\n/**\\n * @param {Attr} newAttr\\n * @return {Attr}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElSetAtNodeNS\\n */\\nElement.prototype.setAttributeNodeNS = function(newAttr) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} qualifiedName\\n * @param {string|number|boolean} value Values are converted to strings with\\n * ToString, so we accept number and boolean since both convert easily to\\n * strings.\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElSetAttrNS\\n */\\nElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) {};\\n\\n/**\\n * @param {string} name\\n * @param {boolean} isId\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElSetIdAttr\\n */\\nElement.prototype.setIdAttribute = function(name, isId) {};\\n\\n/**\\n * @param {Attr} idAttr\\n * @param {boolean} isId\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElSetIdAttrNode\\n */\\nElement.prototype.setIdAttributeNode = function(idAttr, isId) {};\\n\\n/**\\n * @param {?string} namespaceURI\\n * @param {string} localName\\n * @param {boolean} isId\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ElSetIdAttrNS\\n */\\nElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) {};\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Text3-wholeText\\n */\\nText.prototype.wholeText;\\n\\n/**\\n * @param {string} newText\\n * @return {Text}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Text3-replaceWholeText\\n */\\nText.prototype.replaceWholeText = function(newText) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo\\n */\\nfunction TypeInfo() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-DERIVATION_EXTENSION\\n */\\nTypeInfo.prototype.DERIVATION_EXTENSION;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-DERIVATION_LIST\\n */\\nTypeInfo.prototype.DERIVATION_LIST;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-DERIVATION_RESTRICTION\\n */\\nTypeInfo.prototype.DERIVATION_RESTRICTION;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-DERIVATION_UNION\\n */\\nTypeInfo.prototype.DERIVATION_UNION;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-typeName\\n */\\nTypeInfo.prototype.typeName;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-typeNamespace\\n */\\nTypeInfo.prototype.typeNamespace;\\n\\n/**\\n * @param {string} typeNamespaceArg\\n * @param {string} typeNameArg\\n * @param {number} derivationMethod\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#TypeInfo-isDerivedFrom\\n * @nosideeffects\\n */\\nTypeInfo.prototype.isDerivedFrom = function(typeNamespaceArg, typeNameArg, derivationMethod) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler\\n */\\nfunction UserDataHandler() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler-CLONED\\n */\\nUserDataHandler.prototype.NODE_CLONED = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler-IMPORTED\\n */\\nUserDataHandler.prototype.NODE_IMPORTED = 2;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler-DELETED\\n */\\nUserDataHandler.prototype.NODE_DELETED = 3;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler-RENAMED\\n */\\nUserDataHandler.prototype.NODE_RENAMED = 4;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#UserDataHandler-ADOPTED\\n */\\nUserDataHandler.prototype.NODE_ADOPTED = 5;\\n\\n/**\\n * @param {number} operation\\n * @param {string} key\\n * @param {*=} opt_data\\n * @param {?Node=} opt_src\\n * @param {?Node=} opt_dst\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-handleUserDataEvent\\n */\\nUserDataHandler.prototype.handle = function(operation, key, opt_data,\\n opt_src, opt_dst) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-Interfaces-DOMError\\n */\\nfunction DOMError() {}\\n\\n/**\\n * @type {DOMLocator}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-location\\n */\\nDOMError.prototype.location;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-message\\n */\\nDOMError.prototype.message;\\n\\n/**\\n * @type {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-relatedData\\n */\\nDOMError.prototype.relatedData;\\n\\n/**\\n * @type {Object}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-relatedException\\n */\\nDOMError.prototype.relatedException;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-severity-warning\\n */\\nDOMError.SEVERITY_WARNING = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-severity-error\\n */\\nDOMError.SEVERITY_ERROR = 2;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-severity-fatal-error\\n */\\nDOMError.SEVERITY_FATAL_ERROR = 3;\\n\\n/**\\n * @type {n"; a.a+='umber}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-severity\\n */\\nDOMError.prototype.severity;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-DOMError-type\\n */\\nDOMError.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/dom/#domerror\\n */\\nDOMError.prototype.name;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ERROR-Interfaces-DOMErrorHandler\\n */\\nfunction DOMErrorHandler() {}\\n\\n/**\\n * @param {DOMError} error\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-ERRORS-DOMErrorHandler-handleError\\n */\\nDOMErrorHandler.prototype.handleError = function(error) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Interfaces-DOMLocator\\n */\\nfunction DOMLocator() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-byteOffset\\n */\\nDOMLocator.prototype.byteOffset;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-column-number\\n */\\nDOMLocator.prototype.columnNumber;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-line-number\\n */\\nDOMLocator.prototype.lineNumber;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-node\\n */\\nDOMLocator.prototype.relatedNode;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-uri\\n */\\nDOMLocator.prototype.uri;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMLocator-utf16Offset\\n */\\nDOMLocator.prototype.utf16Offset;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration\\n */\\nfunction DOMConfiguration() {}\\n\\n/**\\n * @type {DOMStringList}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration-parameterNames\\n */\\nDOMConfiguration.prototype.parameterNames;\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration-canSetParameter\\n * @nosideeffects\\n */\\nDOMConfiguration.prototype.canSetParameter = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {*}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration-getParameter\\n * @nosideeffects\\n */\\nDOMConfiguration.prototype.getParameter = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @param {*} value\\n * @return {*}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration-property\\n */\\nDOMConfiguration.prototype.setParameter = function(name, value) {};\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-Core-DocType-internalSubset\\n */\\nDocumentType.prototype.internalSubset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-Core-DocType-publicId\\n */\\nDocumentType.prototype.publicId;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-Core-DocType-systemId\\n */\\nDocumentType.prototype.systemId;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Entity3-inputEncoding\\n */\\nEntity.prototype.inputEncoding;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Entity3-encoding\\n */\\nEntity.prototype.xmlEncoding;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-3-Core/core.html#Entity3-version\\n */\\nEntity.prototype.xmlVersion;\\n","externs/w3c_dom4.js":"/*\\n * Copyright 2016 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s DOM4 specification. This file depends on\\n * w3c_dom3.js. The whole file has been fully type annotated. Created from\\n * https://www.w3.org/TR/domcore/.\\n *\\n * @externs\\n * @author zhoumotongxue008@gmail.com (Michael Zhou)\\n */\\n\\n/**\\n * @typedef {?(DocumentType|Element|CharacterData)}\\n * @see https://www.w3.org/TR/domcore/#interface-childnode\\n */\\nvar ChildNode;\\n\\n/**\\n * @return {undefined}\\n * @see https://www.w3.org/TR/domcore/#dom-childnode-remove\\n */\\nDocumentType.prototype.remove = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://www.w3.org/TR/domcore/#dom-childnode-remove\\n */\\nElement.prototype.remove = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://www.w3.org/TR/domcore/#dom-childnode-remove\\n */\\nCharacterData.prototype.remove = function() {};\\n","externs/gecko_dom.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over\\n * W3C\'s DOM specification by Gecko. This file depends on\\n * w3c_dom2.js.\\n *\\n * When a non-standard extension appears in both Gecko and IE, we put\\n * it in gecko_dom.js\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n// TODO: Almost all of it has not been annotated with types.\\n\\n// Gecko DOM;\\n\\n/**\\n * Mozilla only???\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLSpanElement() {}\\n\\n/**\\n * @see https://developer.mozilla.org/en/Components_object\\n */\\nWindow.prototype.Components;\\n\\n/**\\n * @type {Window}\\n * @see https://developer.mozilla.org/en/DOM/window.content\\n */\\nWindow.prototype.content;\\n\\n/**\\n * @type {boolean}\\n * @see https://developer.mozilla.org/en/DOM/window.closed\\n */\\nWindow.prototype.closed;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.controllers */\\nWindow.prototype.controllers;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.crypto */\\nWindow.prototype.crypto;\\n\\n/**\\n * Gets/sets the status bar text for the given window.\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/window.defaultStatus\\n */\\nWindow.prototype.defaultStatus;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.dialogArguments */\\nWindow.prototype.dialogArguments;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.directories */\\nWindow.prototype.directories;\\n\\n/**\\n * @type {HTMLObjectElement|HTMLIFrameElement|null}\\n * @see https://developer.mozilla.org/en/DOM/window.frameElement\\n */\\nWindow.prototype.frameElement;\\n\\n/**\\n * Allows lookup of frames by index or by name.\\n * @type {?Object}\\n * @see https://developer.mozilla.org/en/DOM/window.frames\\n */\\nWindow.prototype.frames;\\n\\n/**\\n * @type {boolean}\\n * @see https://developer.mozilla.org/en/DOM/window.fullScreen\\n */\\nWindow.prototype.fullScreen;\\n\\n/**\\n * @return {!Promise}\\n * @see http://www.w3.org/TR/battery-status/\\n */\\nNavigator.prototype.getBattery = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/Storage#globalStorage\\n */\\nWindow.prototype.globalStorage;\\n\\n/**\\n * @type {!History}\\n * @suppress {duplicate}\\n * @see https://developer.mozilla.org/en/DOM/window.history\\n */\\nvar history;\\n\\n/**\\n * Returns the number of frames (either frame or iframe elements) in the\\n * window.\\n *\\n * @type {number}\\n * @see https://developer.mozilla.org/en/DOM/window.length\\n */\\nWindow.prototype.length;\\n\\n/**\\n * Location has an exception in the DeclaredGlobalExternsOnWindow pass\\n * so we have to manually include it:\\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/DeclaredGlobalExternsOnWindow.java#L116\\n *\\n * @type {!Location}\\n * @implicitCast\\n * @see https://developer.mozilla.org/en/DOM/window.location\\n */\\nWindow.prototype.location;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.locationbar\\n */\\nWindow.prototype.locationbar;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.menubar\\n */\\nWindow.prototype.menubar;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/window.name\\n */\\nWindow.prototype.name;\\n\\n/**\\n * @type {Navigator}\\n * @see https://developer.mozilla.org/en/DOM/window.navigator\\n */\\nWindow.prototype.navigator;\\n\\n/**\\n * @type {?Window}\\n * @see https://developer.mozilla.org/en/DOM/window.opener\\n */\\nWindow.prototype.opener;\\n\\n/**\\n * @type {!Window}\\n * @see https://developer.mozilla.org/en/DOM/window.parent\\n */\\nWindow.prototype.parent;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.personalbar */\\nWindow.prototype.personalbar;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.pkcs11 */\\nWindow.prototype.pkcs11;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window */\\nWindow.prototype.returnValue;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.scrollbars */\\nWindow.prototype.scrollbars;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.scrollMaxX\\n */\\nWindow.prototype.scrollMaxX;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.scrollMaxY\\n */\\nWindow.prototype.scrollMaxY;\\n\\n/**\\n * @type {!Window}\\n * @see https://developer.mozilla.org/en/DOM/window.self\\n */\\nWindow.prototype.self;\\n\\n/** @see https://developer.mozilla.org/en/DOM/Storage#sessionStorage */\\nWindow.prototype.sessionStorage;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.sidebar */\\nWindow.prototype.sidebar;\\n\\n/**\\n * @type {?string}\\n * @see https://developer.mozilla.org/en/DOM/window.status\\n */\\nWindow.prototype.status;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.statusbar */\\nWindow.prototype.statusbar;\\n\\n/** @see https://developer.mozilla.org/en/DOM/window.toolbar */\\nWindow.prototype.toolbar;\\n\\n/**\\n * @type {!Window}\\n * @see https://developer.mozilla.org/en/DOM/window.self\\n */\\nWindow.prototype.top;\\n\\n/**\\n * @type {!Window}\\n * @see https://developer.mozilla.org/en/DOM/window.self\\n */\\nWindow.prototype.window;\\n\\n/**\\n * @param {*} message\\n * @see https://developer.mozilla.org/en/DOM/window.alert\\n * @return {undefined}\\n */\\nWindow.prototype.alert = function(message) {};\\n\\n/**\\n * Decodes a string of data which has been encoded using base-64 encoding.\\n *\\n * @param {string} encodedData\\n * @return {string}\\n * @see https://developer.mozilla.org/en/DOM/window.atob\\n * @nosideeffects\\n */\\nfunction atob(encodedData) {}\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.back\\n * @return {undefined}\\n */\\nWindow.prototype.back = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.blur\\n * @return {undefined}\\n */\\nWindow.prototype.blur = function() {};\\n\\n/**\\n * @param {string} stringToEncode\\n * @return {string}\\n * @see https://developer.mozilla.org/en/DOM/window.btoa\\n * @nosideeffects\\n */\\nfunction btoa(stringToEncode) {}\\n\\n/** @deprecated */\\nWindow.prototype.captureEvents;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.close\\n * @return {undefined}\\n */\\nWindow.prototype.close = function() {};\\n\\n/**@see https://developer.mozilla.org/en/DOM/window.find */\\nWindow.prototype.find;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.focus\\n * @return {undefined}\\n */\\nWindow.prototype.focus = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.forward\\n * @return {undefined}\\n */\\nWindow.prototype.forward = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.getAttention\\n * @return {undefined}\\n */\\nWindow.prototype.getAttention = function() {};\\n\\n/**\\n * @return {Selection}\\n * @see https://developer.mozilla.org/en/DOM/window.getSelection\\n * @nosideeffects\\n */\\nWindow.prototype.getSelection = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/window.home\\n * @return {undefined}\\n */\\nWindow.prototype.home = function() {};\\n\\nWindow.prototype.openDialog;\\nWindow.prototype.releaseEvents;\\nWindow.prototype.scrollByLines;\\nWindow.prototype.scrollByPages;\\n\\n/**\\n * @param {string} uri\\n * @param {?=} opt_arguments\\n * @param {string=} opt_options\\n * @see https://developer.mozilla.org/en/DOM/window.showModalDialog\\n */\\nWindow.prototype.showModalDialog;\\n\\nWindow.prototype.sizeToContent;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536769(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.stop = function() {};\\n\\nWindow.prototype.updateCommands;\\n\\n// properties of Document\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.alinkColor\\n * @type {string}\\n */\\nDocument.prototype.alinkColor;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.anchors\\n * @type {HTMLCollection}\\n */\\nDocument.prototype.anchors;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.applets\\n * @type {HTMLCollection}\\n */\\nDocument.prototype.applets;\\n/** @type {boolean} */ Document.prototype.async;\\n/** @type {string?} */ Document.prototype.baseURI;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.bgColor\\n * @type {string}\\n */\\nDocument.prototype.bgColor;\\n\\n/** @type {HTMLBodyElement} */ Document.prototype.body;\\nDocument.prototype.characterSet;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.compatMode\\n * @type {string}\\n */\\nDocument.prototype.compatMode;\\n\\nDocument.prototype.contentType;\\n/** @type {string} */ Document.prototype.cookie;\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/defaultView\\n * @type {?Window}\\n */\\nDocument.prototype.defaultView;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.designMode\\n * @type {string}\\n */\\nDocument.prototype.designMode;\\n\\nDocument.prototype.documentURIObject;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.domain\\n * @type {string}\\n */\\nDocument.prototype.domain;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.embeds\\n * @type {HTMLCollection}\\n */\\nDocument.prototype.embeds;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.fgColor\\n * @type {string}\\n */\\nDocument.prototype.fgColor;\\n\\n/** @type {Element} */ Document.prototype.firstChild;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.forms\\n * @type {HTMLCollection}\\n */\\nDocument.prototype.forms;\\n\\n/** @type {number} */\\nDocument.prototype.height;\\n\\n/** @type {HTMLCollection} */\\nDocument.prototype.images;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/document.lastModified\\n */\\nDocument.prototype.lastModified;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/document.linkColor\\n */\\nDocument.prototype.linkColor;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.links\\n * @type {HTMLCollection<(!HTMLAreaElement|!HTMLAnchorElement)>}\\n */\\nDocument.prototype.links;\\n\\n/**\\n * @type {!Location}\\n * @implicitCast\\n */\\nDocument.prototype.location;\\n\\nDocument.prototype.namespaceURI;\\nDocument.prototype.nodePrincipal;\\nDocument.prototype.plugins;\\nDocument.prototype.popupNode;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/document.referrer\\n */\\nDocument.prototype.referrer;\\n\\n/**\\n * @type {StyleSheetList}\\n * @see https://developer.mozilla.org/en/DOM/document.styleSheets\\n */\\nDocument.prototype.styleSheets;\\n\\n/** @type {?string} */ Document.prototype.title;\\nDocument.prototype.tooltipNode;\\n/** @type {string} */ Document.prototype.URL;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/DOM/document.vlinkColor\\n */\\nDocument.prototype.vlin'; a.a+="kColor;\\n\\n/** @type {number} */ Document.prototype.width;\\n\\n// Methods of Document\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.clear\\n * @return {undefined}\\n */\\nDocument.prototype.clear = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.close\\n */\\nDocument.prototype.close;\\n\\n/**\\n * @param {string} type\\n * @return {Event}\\n */\\nDocument.prototype.createEvent = function(type) {};\\nDocument.prototype.createNSResolver;\\n/** @return {Range} */ Document.prototype.createRange = function() {};\\nDocument.prototype.createTreeWalker;\\n\\nDocument.prototype.evaluate;\\n\\n/**\\n * @param {string} commandName\\n * @param {?boolean=} opt_showUi\\n * @param {*=} opt_value\\n * @see https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing_Commands\\n */\\nDocument.prototype.execCommand;\\n\\n/**\\n * @param {string} name\\n * @return {!NodeList}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en/DOM/document.getElementsByClassName\\n */\\nDocument.prototype.getElementsByClassName = function(name) {};\\n\\n/**\\n * @param {string} uri\\n * @return {undefined}\\n */\\nDocument.prototype.load = function(uri) {};\\nDocument.prototype.loadOverlay;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.open\\n */\\nDocument.prototype.open;\\n\\n/**\\n * @see https://developer.mozilla.org/en/Midas\\n * @see http://msdn.microsoft.com/en-us/library/ms536676(VS.85).aspx\\n */\\nDocument.prototype.queryCommandEnabled;\\n\\n/**\\n * @see https://developer.mozilla.org/en/Midas\\n * @see http://msdn.microsoft.com/en-us/library/ms536678(VS.85).aspx\\n */\\nDocument.prototype.queryCommandIndeterm;\\n\\n/**\\n * @see https://developer.mozilla.org/en/Midas\\n * @see http://msdn.microsoft.com/en-us/library/ms536679(VS.85).aspx\\n */\\nDocument.prototype.queryCommandState;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.queryCommandSupported\\n * @see http://msdn.microsoft.com/en-us/library/ms536681(VS.85).aspx\\n * @param {string} command\\n * @return {?} Implementation-specific.\\n */\\nDocument.prototype.queryCommandSupported;\\n\\n/**\\n * @see https://developer.mozilla.org/en/Midas\\n * @see http://msdn.microsoft.com/en-us/library/ms536683(VS.85).aspx\\n */\\nDocument.prototype.queryCommandValue;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.write\\n * @param {string} text\\n * @return {undefined}\\n */\\nDocument.prototype.write = function(text) {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/document.writeln\\n * @param {string} text\\n * @return {undefined}\\n */\\nDocument.prototype.writeln = function(text) {};\\n\\nDocument.prototype.ononline;\\nDocument.prototype.onoffline;\\n\\n// XUL\\n/**\\n * @see http://developer.mozilla.org/en/DOM/document.getBoxObjectFor\\n * @return {BoxObject}\\n * @nosideeffects\\n */\\nDocument.prototype.getBoxObjectFor = function(element) {};\\n\\n// From:\\n// http://lxr.mozilla.org/mozilla1.8/source/dom/public/idl/range/nsIDOMNSRange.idl\\n\\n/**\\n * @param {string} tag\\n * @return {DocumentFragment}\\n */\\nRange.prototype.createContextualFragment;\\n\\n/**\\n * @param {Node} parent\\n * @param {number} offset\\n * @return {boolean}\\n * @nosideeffects\\n */\\nRange.prototype.isPointInRange;\\n\\n/**\\n * @param {Node} parent\\n * @param {number} offset\\n * @return {number}\\n * @nosideeffects\\n */\\nRange.prototype.comparePoint;\\n\\n/**\\n * @param {Node} n\\n * @return {boolean}\\n * @nosideeffects\\n */\\nRange.prototype.intersectsNode;\\n\\n/**\\n * @param {Node} n\\n * @return {number}\\n * @nosideeffects\\n */\\nRange.prototype.compareNode;\\n\\n\\n/** @constructor */\\nfunction Selection() {}\\n\\n/**\\n * @type {Node}\\n * @see https://developer.mozilla.org/en/DOM/Selection/anchorNode\\n */\\nSelection.prototype.anchorNode;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/en/DOM/Selection/anchorOffset\\n */\\nSelection.prototype.anchorOffset;\\n\\n/**\\n * @type {Node}\\n * @see https://developer.mozilla.org/en/DOM/Selection/focusNode\\n */\\nSelection.prototype.focusNode;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/en/DOM/Selection/focusOffset\\n */\\nSelection.prototype.focusOffset;\\n\\n/**\\n * @type {boolean}\\n * @see https://developer.mozilla.org/en/DOM/Selection/isCollapsed\\n */\\nSelection.prototype.isCollapsed;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/en/DOM/Selection/rangeCount\\n */\\nSelection.prototype.rangeCount;\\n\\n/**\\n * @param {Range} range\\n * @return {undefined}\\n * @see https://developer.mozilla.org/en/DOM/Selection/addRange\\n */\\nSelection.prototype.addRange = function(range) {};\\n\\n/**\\n * @param {number} index\\n * @return {Range}\\n * @see https://developer.mozilla.org/en/DOM/Selection/getRangeAt\\n * @nosideeffects\\n */\\nSelection.prototype.getRangeAt = function(index) {};\\n\\n/**\\n * @param {Node} node\\n * @param {number} index\\n * @return {undefined}\\n * @see https://developer.mozilla.org/en/DOM/Selection/collapse\\n */\\nSelection.prototype.collapse = function(node, index) {};\\n\\n/**\\n * @return {undefined}\\n * @see https://developer.mozilla.org/en/DOM/Selection/collapseToEnd\\n */\\nSelection.prototype.collapseToEnd = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://developer.mozilla.org/en/DOM/Selection/collapseToStart\\n */\\nSelection.prototype.collapseToStart = function() {};\\n\\n/**\\n * @param {Node} node\\n * @param {boolean} partlyContained\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en/DOM/Selection/containsNode\\n * @nosideeffects\\n */\\nSelection.prototype.containsNode = function(node, partlyContained) {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/Selection/deleteFromDocument\\n * @return {undefined}\\n */\\nSelection.prototype.deleteFromDocument = function() {};\\n\\n/**\\n * @param {Node} parentNode\\n * @param {number} offset\\n * @see https://developer.mozilla.org/en/DOM/Selection/extend\\n * @return {undefined}\\n */\\nSelection.prototype.extend = function(parentNode, offset) {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/Selection/removeAllRanges\\n * @return {undefined}\\n */\\nSelection.prototype.removeAllRanges = function() {};\\n\\n/**\\n * @param {Range} range\\n * @see https://developer.mozilla.org/en/DOM/Selection/removeRange\\n * @return {undefined}\\n */\\nSelection.prototype.removeRange = function(range) {};\\n\\n/**\\n * @param {Node} parentNode\\n * @see https://developer.mozilla.org/en/DOM/Selection/selectAllChildren\\n */\\nSelection.prototype.selectAllChildren;\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/Selection/selectionLanguageChange\\n */\\nSelection.prototype.selectionLanguageChange;\\n\\n/**\\n * @type {!NodeList}\\n * @see https://developer.mozilla.org/en/DOM/element.children\\n */\\nElement.prototype.children;\\n\\n/**\\n * Firebug sets this property on elements it is inserting into the DOM.\\n * @type {boolean}\\n */\\nElement.prototype.firebugIgnore;\\n\\n/**\\n * Note: According to the spec, id is actually defined on HTMLElement and\\n * SVGElement, rather than Element. Deliberately ignore this so that saying\\n * Element.id is allowed.\\n * @type {string}\\n * @implicitCast\\n */\\nElement.prototype.id;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Parsing/#widl-Element-innerHTML\\n * @implicitCast\\n */\\nElement.prototype.innerHTML;\\n\\n/**\\n * Note: According to the spec, name is defined on specific types of\\n * HTMLElements, rather than on Node, Element, or HTMLElement directly.\\n * Ignore this.\\n * @type {string}\\n */\\nElement.prototype.name;\\n\\nElement.prototype.nodePrincipal;\\n\\n/**\\n * @type {!CSSStyleDeclaration}\\n * This belongs on HTMLElement rather than Element, but that\\n * breaks a lot.\\n * TODO(rdcronin): Remove this declaration once the breakage is fixed.\\n */\\nElement.prototype.style;\\n\\n/**\\n * @override\\n * @return {!Element}\\n */\\nElement.prototype.cloneNode = function(deep) {};\\n\\n/** @return {undefined} */\\nElement.prototype.blur = function() {};\\n\\n/** @return {undefined} */\\nElement.prototype.click = function() {};\\n\\n/** @return {undefined} */\\nElement.prototype.focus = function() {};\\n\\n/** @type {number} */\\nHTMLInputElement.prototype.selectionStart;\\n\\n/** @type {number} */\\nHTMLInputElement.prototype.selectionEnd;\\n\\n/**\\n * @param {number} selectionStart\\n * @param {number} selectionEnd\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange\\n * @return {undefined}\\n */\\nHTMLInputElement.prototype.setSelectionRange =\\n function(selectionStart, selectionEnd) {};\\n\\n/** @type {number} */\\nHTMLTextAreaElement.prototype.selectionStart;\\n\\n/** @type {number} */\\nHTMLTextAreaElement.prototype.selectionEnd;\\n\\n/**\\n * @param {number} selectionStart\\n * @param {number} selectionEnd\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange\\n * @return {undefined}\\n */\\nHTMLTextAreaElement.prototype.setSelectionRange =\\n function(selectionStart, selectionEnd) {};\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.buildID\\n */\\nNavigator.prototype.buildID;\\n\\n/**\\n * @type {!Array|undefined}\\n * @see https://developer.mozilla.org/en/Navigator.languages\\n */\\nNavigator.prototype.languages;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.oscpu\\n */\\nNavigator.prototype.oscpu;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.productSub\\n */\\nNavigator.prototype.productSub;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.securityPolicy\\n */\\nNavigator.prototype.securityPolicy;\\n\\n/**\\n * @param {string} url\\n * @param {ArrayBufferView|Blob|string|FormData=} opt_data\\n * @return {boolean}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon\\n */\\nNavigator.prototype.sendBeacon = function(url, opt_data) {};\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.vendor\\n */\\nNavigator.prototype.vendor;\\n\\n/**\\n * @type {string}\\n * @see https://developer.mozilla.org/en/Navigator.vendorSub\\n */\\nNavigator.prototype.vendorSub;\\n\\n\\n/** @constructor */\\nfunction BoxObject() {}\\n\\n/** @type {Element} */\\nBoxObject.prototype.element;\\n\\n/** @type {number} */\\nBoxObject.prototype.screenX;\\n\\n/** @type {number} */\\nBoxObject.prototype.screenY;\\n\\n/** @type {number} */\\nBoxObject.prototype.x;\\n\\n/** @type {number} */\\nBoxObject.prototype.y;\\n\\n/** @type {number} */\\nBoxObject.prototype.width;\\n\\n\\n/**\\n * @param {Element} element\\n * @param {?string=} pseudoElt\\n * @return {?CSSStyleDeclaration}\\n * @nosideeffects\\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\\n */\\nfunction getComputedStyle(element, pseudoElt) {}\\n\",\"externs/ie_dom.js\":\"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over the\\n * W3C's DOM specification by IE in JScript. This file depends on\\n * w3c_dom2.js. The whole file has NOT been fully type annotated.\\n *\\n * When a non-standard extension appears in both Gecko and IE, we put\\n * it in gecko_dom.js\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n */\\n\\n// TODO(nicksantos): Rewrite all the DOM interfaces as interfaces, instead\\n// of kludging them as an inheritance hierarchy.\\n\\n/**\\n * @constructor\\n * @extends {Document}\\n * @see http://msdn.microsoft.com/en-us/library/ms757878(VS.85).aspx\\n */\\nfunction XMLDOMDocument() {}\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms761398(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.async;\\n\\n/**\\n * @type {!Function}\\n * @see http://msdn.microsoft.com/en-us/library/ms762647(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.ondataavailable;\\n\\n/**\\n * @type {!Function}\\n * @see http://msdn.microsoft.com/en-us/library/ms764640(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.onreadystatechange;\\n\\n/**\\n * @type {!Function}\\n * @see http://msdn.microsoft.com/en-us/library/ms753795(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.ontransformnode;\\n\\n/**\\n * @type {Object}\\n * @see http://msdn.microsoft.com/en-us/library/ms756041(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.parseError;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms761353(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.preserveWhiteSpace;\\n\\n/**\\n * @type {number}\\n * @see http://msdn.microsoft.com/en-us/library/ms753702(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.readyState;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms762283(VS.85).aspx\\n * @type {boolean}\\n */\\nXMLDOMDocument.prototype.resolveExternals;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms760290(v=vs.85).aspx\\n * @param {string} name\\n * @param {*} value\\n * @return {undefined}\\n */\\nXMLDOMDocument.prototype.setProperty = function(name, value) {};\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms767669(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.url;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms762791(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.validateOnParse;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms763830(VS.85).aspx\\n * @return {undefined}\\n */\\nXMLDOMDocument.prototype.abort = function() {};\\n\\n/**\\n * @param {*} type\\n * @param {string} name\\n * @param {string} namespaceURI\\n * @return {Node}\\n * @see http://msdn.microsoft.com/en-us/library/ms757901(VS.85).aspx\\n * @nosideeffects\\n */\\nXMLDOMDocument.prototype.createNode = function(type, name, namespaceURI) {};\\n\\n/**\\n * @param {string} xmlSource\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/ms762722(VS.85).aspx\\n * @override\\n */\\nXMLDOMDocument.prototype.load = function(xmlSource) {};\\n\\n/**\\n * @param {string} xmlString\\n * @return {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms754585(VS.85).aspx\\n * @override\\n */\\nXMLDOMDocument.prototype.loadXML = function(xmlString) {};\\n\\n/**\\n * @param {string} id\\n * @return {Node}\\n * @see http://msdn.microsoft.com/en-us/library/ms766397(VS.85).aspx\\n */\\nXMLDOMDocument.prototype.nodeFromID = function(id) {};\\n\\n//==============================================================================\\n// XMLNode methods and properties\\n// In a real DOM hierarchy, XMLDOMDocument inherits from XMLNode and Document.\\n// Since we can't express that in our type system, we put XMLNode properties\\n// on Node.\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms767570(VS.85).aspx\\n */\\nNode.prototype.baseName;\\n\\n/**\\n * @type {?string}\\n * @see http://msdn.microsoft.com/en-us/library/ms762763(VS.85).aspx\\n */\\nNode.prototype.dataType;\\n\\n/**\\n * @type {Node}\\n * @see http://msdn.microsoft.com/en-us/library/ms764733(VS.85).aspx\\n */\\nNode.prototype.definition;\\n\\n/**\\n * IE5 used document instead of ownerDocument.\\n * Old versions of WebKit used document instead of contentDocument.\\n * @type {Document}\\n */\\nNode.prototype.document;\\n\\n\\n/**\\n * Inserts the given HTML text into the element at the location.\\n * @param {string} sWhere Where to insert the HTML text, one of 'beforeBegin',\\n * 'afterBegin', 'beforeEnd', 'afterEnd'.\\n * @param {string} sText HTML text to insert.\\n * @see http://msdn.microsoft.com/en-us/library/ms536452(VS.85).aspx\\n * @return {undefined}\\n */\\nNode.prototype.insertAdjacentHTML = function(sWhere, sText) {};\\n\\n\\n/**\\n * @type {*}\\n * @see http://msdn.microsoft.com/en-us/library/ms762308(VS.85).aspx\\n */\\nNode.prototype.nodeTypedValue;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms757895(VS.85).aspx\\n */\\nNode.prototype.nodeTypeString;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms762237(VS.85).aspx\\n */\\nNode.prototype.parsed;\\n\\n/**\\n * @"; a.a+="type {Element}\\n * @see http://msdn.microsoft.com/en-us/library/ms534327(VS.85).aspx\\n */\\nNode.prototype.parentElement;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms753816(VS.85).aspx\\n */\\nNode.prototype.specified;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms762687(VS.85).aspx\\n */\\nNode.prototype.text;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms755989(VS.85).aspx\\n */\\nNode.prototype.xml;\\n\\n/**\\n * @param {string} expression An XPath expression.\\n * @return {!NodeList}\\n * @see http://msdn.microsoft.com/en-us/library/ms754523(VS.85).aspx\\n * @nosideeffects\\n */\\nNode.prototype.selectNodes = function(expression) {};\\n\\n/**\\n * @param {string} expression An XPath expression.\\n * @return {Node}\\n * @see http://msdn.microsoft.com/en-us/library/ms757846(VS.85).aspx\\n * @nosideeffects\\n */\\nNode.prototype.selectSingleNode = function(expression) {};\\n\\n/**\\n * @param {Node} stylesheet XSLT stylesheet.\\n * @return {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms761399(VS.85).aspx\\n * @nosideeffects\\n */\\nNode.prototype.transformNode = function(stylesheet) {};\\n\\n/**\\n * @param {Node} stylesheet XSLT stylesheet.\\n * @param {Object} outputObject\\n * @see http://msdn.microsoft.com/en-us/library/ms766561(VS.85).aspx\\n * @return {Object}\\n */\\nNode.prototype.transformNodeToObject =\\n function(stylesheet, outputObject) {};\\n\\n//==============================================================================\\n// Node methods\\n\\n/**\\n * @param {boolean=} opt_bRemoveChildren Whether to remove the entire sub-tree.\\n * Defaults to false.\\n * @return {Node} The object that was removed.\\n * @see http://msdn.microsoft.com/en-us/library/ms536708(VS.85).aspx\\n */\\nNode.prototype.removeNode = function(opt_bRemoveChildren) {};\\n\\n/**\\n * @constructor\\n */\\nfunction ClipboardData() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535220(VS.85).aspx\\n * @param {string=} opt_type Type of clipboard data to clear. 'Text' or\\n * 'URL' or 'File' or 'HTML' or 'Image'.\\n * @return {undefined}\\n */\\nClipboardData.prototype.clearData = function(opt_type) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535220(VS.85).aspx\\n * @param {string} type Type of clipboard data to set ('Text' or 'URL').\\n * @param {string} data Data to set\\n * @return {boolean} Whether the data were set correctly.\\n */\\nClipboardData.prototype.setData = function(type, data) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535220(VS.85).aspx\\n * @param {string} type Type of clipboard data to get ('Text' or 'URL').\\n * @return {string} The current data\\n */\\nClipboardData.prototype.getData = function(type) { };\\n\\n/**\\n * @type {!Window}\\n * @see https://developer.mozilla.org/en/DOM/window\\n */\\nvar window;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535220(VS.85).aspx\\n * @type {ClipboardData}\\n */\\nWindow.prototype.clipboardData;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533724(VS.85).aspx\\n */\\nWindow.prototype.dialogHeight;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533725(VS.85).aspx\\n */\\nWindow.prototype.dialogLeft;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533726(VS.85).aspx\\n */\\nWindow.prototype.dialogTop;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533727(VS.85).aspx\\n */\\nWindow.prototype.dialogWidth;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535863(VS.85).aspx\\n */\\nWindow.prototype.event;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/cc197012(VS.85).aspx\\n */\\nWindow.prototype.maxConnectionsPer1_0Server;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/cc197013(VS.85).aspx\\n */\\nWindow.prototype.maxConnectionsPerServer;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534198(VS.85).aspx\\n */\\nWindow.prototype.offscreenBuffering;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534389(VS.85).aspx\\n * @type {number|undefined}\\n */\\nWindow.prototype.screenLeft;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534389(VS.85).aspx\\n * @type {number|undefined}\\n */\\nWindow.prototype.screenTop;\\n\\n// Functions\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/ms536343(VS.85).aspx\\n */\\nWindow.prototype.attachEvent;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536392(VS.85).aspx\\n */\\nWindow.prototype.createPopup;\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/ms536411(VS.85).aspx\\n */\\nWindow.prototype.detachEvent;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536420(VS.85).aspx\\n */\\nWindow.prototype.execScript;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536425(VS.85).aspx\\n */\\nWindow.prototype.focus;\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @see http://msdn.microsoft.com/en-us/library/ms536618(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.moveBy = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @see http://msdn.microsoft.com/en-us/library/ms536626(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.moveTo = function(x, y) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536638(VS.85).aspx\\n */\\nWindow.prototype.navigate;\\n\\n/**\\n * @param {*=} opt_url\\n * @param {string=} opt_windowName\\n * @param {string=} opt_windowFeatures\\n * @param {boolean=} opt_replace\\n * @return {Window}\\n * @see http://msdn.microsoft.com/en-us/library/ms536651(VS.85).aspx\\n */\\nWindow.prototype.open = function(opt_url, opt_windowName, opt_windowFeatures,\\n opt_replace) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536672(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.print = function() {};\\n\\n/**\\n * @param {number} width\\n * @param {number} height\\n * @see http://msdn.microsoft.com/en-us/library/ms536722(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.resizeBy = function(width, height) {};\\n\\n/**\\n * @param {number} width\\n * @param {number} height\\n * @see http://msdn.microsoft.com/en-us/library/ms536723(VS.85).aspx\\n * @return {undefined}\\n */\\nWindow.prototype.resizeTo = function(width, height) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536738(VS.85).aspx\\n */\\nWindow.prototype.setActive;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536758(VS.85).aspx\\n */\\nWindow.prototype.showHelp;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx\\n */\\nWindow.prototype.showModelessDialog;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535246%28v=vs.85%29.aspx\\n * @const {!Object}\\n */\\nWindow.prototype.external;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535864(VS.85).aspx\\n * @param {number|string} delta The number of entries to go back, or\\n * the URL to which to go back. (URL form is supported only in IE)\\n * @return {undefined}\\n */\\nHistory.prototype.go = function(delta) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535864(VS.85).aspx\\n * @param {number=} opt_distance The number of entries to go back\\n * (Mozilla doesn't support distance -- use #go instead)\\n * @return {undefined}\\n */\\nHistory.prototype.back = function(opt_distance) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535864(VS.85).aspx\\n * @type {number}\\n */\\nHistory.prototype.length;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535864(VS.85).aspx\\n * @return {undefined}\\n */\\nHistory.prototype.forward = function() {};\\n\\n/**\\n * @type {boolean}\\n * @implicitCast\\n * @see http://msdn.microsoft.com/en-us/library/ie/ms533072(v=vs.85).aspx\\n */\\nHTMLFrameElement.prototype.allowTransparency;\\n\\n/**\\n * @type {Window}\\n * @see http://msdn.microsoft.com/en-us/library/ms533692(VS.85).aspx\\n */\\nHTMLFrameElement.prototype.contentWindow;\\n\\n/**\\n * @type {boolean}\\n * @implicitCast\\n * @see http://msdn.microsoft.com/en-us/library/ie/ms533072(v=vs.85).aspx\\n */\\nHTMLIFrameElement.prototype.allowTransparency;\\n\\n/**\\n * @type {Window}\\n * @see http://msdn.microsoft.com/en-us/library/ms533692(VS.85).aspx\\n */\\nHTMLIFrameElement.prototype.contentWindow;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536385(VS.85).aspx\\n */\\nHTMLBodyElement.prototype.createControlRange;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx\\n */\\nHTMLScriptElement.prototype.readyState;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx\\n */\\nHTMLIFrameElement.prototype.readyState;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx\\n */\\nHTMLImageElement.prototype.readyState;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx\\n */\\nHTMLObjectElement.prototype.readyState;\\n\\n\\n/**\\n * @constructor\\n */\\nfunction ControlRange() {}\\n\\nControlRange.prototype.add;\\nControlRange.prototype.addElement;\\nControlRange.prototype.execCommand;\\nControlRange.prototype.item;\\nControlRange.prototype.queryCommandEnabled;\\nControlRange.prototype.queryCommandIndeterm;\\nControlRange.prototype.queryCommandState;\\nControlRange.prototype.queryCommandSupported;\\nControlRange.prototype.queryCommandValue;\\nControlRange.prototype.remove;\\nControlRange.prototype.scrollIntoView;\\nControlRange.prototype.select;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/ms535872.aspx\\n */\\nfunction TextRange() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533538(VS.85).aspx\\n */\\nTextRange.prototype.boundingHeight;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533539(VS.85).aspx\\n */\\nTextRange.prototype.boundingLeft;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533540(VS.85).aspx\\n */\\nTextRange.prototype.boundingTop;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533541(VS.85).aspx\\n */\\nTextRange.prototype.boundingWidth;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533874(VS.85).aspx\\n */\\nTextRange.prototype.htmlText;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534200(VS.85).aspx\\n */\\nTextRange.prototype.offsetLeft;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534303(VS.85).aspx\\n */\\nTextRange.prototype.offsetTop;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534676(VS.85).aspx\\n */\\nTextRange.prototype.text;\\n\\n/**\\n * @param {boolean=} opt_toStart\\n * @see http://msdn.microsoft.com/en-us/library/ms536371(VS.85).aspx\\n */\\nTextRange.prototype.collapse;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536373(VS.85).aspx\\n */\\nTextRange.prototype.compareEndPoints;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536416(VS.85).aspx\\n */\\nTextRange.prototype.duplicate;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536419(VS.85).aspx\\n */\\nTextRange.prototype.execCommand;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536421(VS.85).aspx\\n */\\nTextRange.prototype.expand;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536422(VS.85).aspx\\n */\\nTextRange.prototype.findText;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536432(VS.85).aspx\\n */\\nTextRange.prototype.getBookmark;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536433(VS.85).aspx\\n */\\nTextRange.prototype.getBoundingClientRect;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536435(VS.85).aspx\\n */\\nTextRange.prototype.getClientRects;\\n\\n/**\\n * @param {TextRange|ControlRange} range\\n * @return {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms536450(VS.85).aspx\\n */\\nTextRange.prototype.inRange;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536458(VS.85).aspx\\n */\\nTextRange.prototype.isEqual;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536616(VS.85).aspx\\n */\\nTextRange.prototype.move;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536620(VS.85).aspx\\n */\\nTextRange.prototype.moveEnd;\\n\\n/**\\n * @param {string} unit\\n * @param {number=} opt_count\\n * @see http://msdn.microsoft.com/en-us/library/ms536623(VS.85).aspx\\n */\\nTextRange.prototype.moveStart;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536628(VS.85).aspx\\n */\\nTextRange.prototype.moveToBookmark;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536630(VS.85).aspx\\n */\\nTextRange.prototype.moveToElementText;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536632(VS.85).aspx\\n */\\nTextRange.prototype.moveToPoint;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536654(VS.85).aspx\\n * @return {?Element}\\n */\\nTextRange.prototype.parentElement;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536656(VS.85).aspx\\n */\\nTextRange.prototype.pasteHTML;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536676(VS.85).aspx\\n */\\nTextRange.prototype.queryCommandEnabled;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536678(VS.85).aspx\\n */\\nTextRange.prototype.queryCommandIndeterm;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536679(VS.85).aspx\\n */\\nTextRange.prototype.queryCommandState;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536681(VS.85).aspx\\n */\\nTextRange.prototype.queryCommandSupported;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536683(VS.85).aspx\\n */\\nTextRange.prototype.queryCommandValue;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536730(VS.85).aspx\\n */\\nTextRange.prototype.scrollIntoView;\\n\\n/**\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/ms536735(VS.85).aspx\\n */\\nTextRange.prototype.select = function() {};\\n\\n/**\\n * @param {string} how\\n * @param {TextRange|ControlRange} sourceRange\\n * @see http://msdn.microsoft.com/en-us/library/ms536745(VS.85).aspx\\n */\\nTextRange.prototype.setEndPoint;\\n\\n/**\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/ms536418(VS.85).aspx\\n */\\nSelection.prototype.clear = function() {};\\n\\n/**\\n * @return {TextRange|ControlRange}\\n * @see http://msdn.microsoft.com/en-us/library/ms536394(VS.85).aspx\\n */\\nSelection.prototype.createRange = function() {};\\n\\n/**\\n * @return {Array}\\n * @see http://msdn.microsoft.com/en-us/library/ms536396(VS.85).aspx\\n */\\nSelection.prototype.createRangeCollection = function() {};\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/ms537447(VS.85).aspx\\n */\\nfunction controlRange() {}\\n\\n\\nDocument.prototype.loadXML;\\n\\n\\n// http://msdn.microsoft.com/en-us/library/ms531073(VS.85).aspx\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533065(VS.85).aspx\\n */\\nDocument.prototype.activeElement;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533553(VS.85).aspx\\n */\\nDocument.prototype.charset;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533693(VS.85).aspx\\n */\\nDocument.prototype.cookie;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533714(VS.85).aspx\\n */\\nDocument.prototype.defaultCharset;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533731(VS.85).aspx\\n */\\nDocument.prototype.dir;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/cc196988(VS.85).aspx\\n */\\nDocument.prototype.documentMode;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533747(VS.85).aspx\\n */\\nDocument.prototype.expando;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533750(VS.85).aspx\\n */\\nDocument.prototype.fileCreatedDate;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533751(VS.85).aspx\\n */\\nDocument.prototype.fileModifiedDate;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533752(VS.85).aspx\\n */\\nDocument.prototype.fileSize;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534331(VS.85).aspx\\n * @type {?Window}\\n */\\nDocument.prototype.parentWindow;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534353(VS.85).aspx\\n */\\nDocument.prototype.protocol;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534359(VS.85).aspx\\n */\\nHTMLDocument.prototype.readyState;\\n\\n/**\\n * @type {Selection}\\n * @see http://msdn.microsoft.com/en-us/library/ms535869(VS.85).a"; a.a+='spx\\n */\\nDocument.prototype.selection;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534704(VS.85).aspx\\n */\\nDocument.prototype.uniqueID;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534709(VS.85).aspx\\n */\\nDocument.prototype.URLUnencoded;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535155(VS.85).aspx\\n */\\nDocument.prototype.XMLDocument;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535163(VS.85).aspx\\n */\\nDocument.prototype.XSLDocument;\\n\\n// functions\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/ms536343(VS.85).aspx\\n */\\nDocument.prototype.attachEvent;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536390(VS.85).aspx\\n */\\nDocument.prototype.createEventObject;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms531194(VS.85).aspx\\n */\\nDocument.prototype.createStyleSheet;\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/ms536411(VS.85).aspx\\n */\\nDocument.prototype.detachEvent;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536425(VS.85).aspx\\n */\\nDocument.prototype.focus;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536447(VS.85).aspx\\n * @return {boolean}\\n */\\nDocument.prototype.hasFocus = function() {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536614(VS.85).aspx\\n */\\nDocument.prototype.mergeAttributes;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536685(VS.85).aspx\\n */\\nDocument.prototype.recalc;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536689(VS.85).aspx\\n */\\nDocument.prototype.releaseCapture;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536738(VS.85).aspx\\n */\\nDocument.prototype.setActive;\\n\\n\\n// collections\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537434(VS.85).aspx\\n */\\nDocument.prototype.all;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537445(VS.85).aspx\\n */\\nDocument.prototype.childNodes;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537459(VS.85).aspx\\n */\\nDocument.prototype.frames;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537470(VS.85).aspx\\n */\\nDocument.prototype.namespaces;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537487(VS.85).aspx\\n * @type {!HTMLCollection}\\n */\\nDocument.prototype.scripts;\\n\\n/**\\n * @param {string} sUrl\\n * @return {number}\\n * @see http://msdn.microsoft.com/en-us/library/ms535922(VS.85).aspx\\n */\\nElement.prototype.addBehavior = function(sUrl) {};\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/mm536343(v=vs.85).aspx\\n */\\nElement.prototype.attachEvent;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms533546(VS.85).aspx\\n */\\nElement.prototype.canHaveChildren;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms533559(v=vs.85).aspx\\n */\\nElement.prototype.classid;\\n\\n/**\\n * @param {number} iCoordX Integer that specifies the client window coordinate\\n * of x.\\n * @param {number} iCoordY Integer that specifies the client window coordinate\\n * of y.\\n * @return {string} The component of an element located at the specified\\n * coordinates.\\n * @see http://msdn.microsoft.com/en-us/library/ms536375(VS.85).aspx\\n * @nosideeffects\\n */\\nElement.prototype.componentFromPoint = function(iCoordX, iCoordY) {};\\n\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms533690(VS.85).aspx\\n */\\nElement.prototype.contentEditable;\\n\\n/**\\n * @return {TextRange}\\n * @see http://msdn.microsoft.com/en-us/library/ms536401(VS.85).aspx\\n */\\nElement.prototype.createTextRange;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms535231(VS.85).aspx\\n * @type {?CSSStyleDeclaration}\\n */\\nElement.prototype.currentStyle;\\n\\n/**\\n * @param {string} event\\n * @param {Function} handler\\n * @see http://msdn.microsoft.com/en-us/library/ie/ms536411(v=vs.85).aspx\\n */\\nElement.prototype.detachEvent;\\n\\n/**\\n * @param {string=} opt_action\\n * @see http://msdn.microsoft.com/en-us/library/ms536414%28VS.85%29.aspx\\n * @return {undefined}\\n */\\nElement.prototype.doScroll = function(opt_action) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536423(VS.85).aspx\\n */\\nElement.prototype.fireEvent;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms533783(VS.85).aspx\\n */\\nElement.prototype.hideFocus;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533899.aspx\\n */\\nElement.prototype.innerText;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537838(VS.85).aspx\\n */\\nElement.prototype.isContentEditable;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms531395(v=vs.85).aspx\\n * NOTE: Left untyped to avoid conflict with subclasses.\\n */\\nElement.prototype.load;\\n\\n/**\\n * @param {number} pointerId Id of the pointer that is assign to the element.\\n * @see http://msdn.microsoft.com/en-us/library/ie/hh771882(v=vs.85).aspx\\n * @return {undefined}\\n */\\nElement.prototype.msSetPointerCapture = function(pointerId) {};\\n\\n/**\\n * @param {number} pointerId\\n * @see http://msdn.microsoft.com/en-us/library/ie/hh771880.aspx\\n * @return {undefined}\\n */\\nElement.prototype.msReleasePointerCapture = function(pointerId) {};\\n\\n/**\\n * @type {?function(Event)}\\n * @see http://msdn.microsoft.com/en-us/library/ms536903(v=vs.85).aspx\\n */\\nElement.prototype.onbeforedeactivate;\\n\\n/**\\n * @type {?function(Event)}\\n * @see http://msdn.microsoft.com/en-us/library/ms536945(VS.85).aspx\\n */\\nElement.prototype.onmouseenter;\\n\\n/**\\n * @type {?function(Event)}\\n * @see http://msdn.microsoft.com/en-us/library/ms536946(VS.85).aspx\\n */\\nElement.prototype.onmouseleave;\\n\\n/**\\n * @type {?function(Event)}\\n * @see http://msdn.microsoft.com/en-us/library/ms536969(VS.85).aspx\\n */\\nElement.prototype.onselectstart;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/aa752326(VS.85).aspx\\n */\\nElement.prototype.outerHTML;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536689(VS.85).aspx\\n * @return {undefined}\\n */\\nElement.prototype.releaseCapture = function() {};\\n\\n/**\\n * @param {number} iID\\n * @return {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms536700(VS.85).aspx\\n */\\nElement.prototype.removeBehavior = function(iID) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/aa703996(VS.85).aspx\\n */\\nElement.prototype.runtimeStyle;\\n\\n/**\\n * @param {string} sStoreName The arbitrary name assigned to a persistent object\\n * in a UserData store.\\n * @see http://msdn.microsoft.com/en-us/library/ms531403(v=vs.85).aspx\\n * @return {undefined}\\n */\\nElement.prototype.save = function(sStoreName) {};\\n\\n/**\\n * @param {boolean=} opt_bContainerCapture Events originating in a container are\\n * captured by the container. Defaults to true.\\n * @see http://msdn.microsoft.com/en-us/library/ms536742(VS.85).aspx\\n * @return {undefined}\\n */\\nElement.prototype.setCapture = function(opt_bContainerCapture) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534635(VS.85).aspx\\n */\\nElement.prototype.sourceIndex;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms537840.aspx\\n */\\nElement.prototype.unselectable;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/aa752462(v=vs.85).aspx\\n */\\nfunction HTMLFiltersCollection() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/aa752463(v=vs.85).aspx\\n * @type {number}\\n */\\nHTMLFiltersCollection.prototype.length;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms537452(v=vs.85).aspx\\n * @type {HTMLFiltersCollection}\\n */\\nElement.prototype.filters;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/ms532853(v=vs.85).aspx\\n */\\nfunction HTMLFilter() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms532954(v=vs.85).aspx\\n * @return {undefined}\\n */\\nHTMLFilter.prototype.apply = function() {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLFilter}\\n * @see http://msdn.microsoft.com/en-us/library/ms532967(v=vs.85).aspx\\n */\\nfunction AlphaFilter() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms532910(v=vs.85).aspx\\n * @type {number}\\n */\\nAlphaFilter.prototype.Opacity;\\n\\n/**\\n * @constructor\\n * @extends {HTMLFilter}\\n * @see http://msdn.microsoft.com/en-us/library/ms532969(v=vs.85).aspx\\n */\\nfunction AlphaImageLoaderFilter() {}\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms532920(v=vs.85).aspx\\n * @type {string}\\n */\\nAlphaImageLoaderFilter.prototype.sizingMethod;\\n\\n/**\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/ms535866(VS.85).aspx\\n */\\nfunction Location() {}\\n\\n/**\\n * @see http://trac.webkit.org/changeset/113945\\n * @type {DOMStringList}\\n */\\nLocation.prototype.ancestorOrigins;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533775(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.hash;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533784(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.host;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533785(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.hostname;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms533867(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.href;\\n\\n/**\\n * @see https://docs.google.com/document/view?id=1r_VTFKApVOaNIkocrg0z-t7lZgzisTuGTXkdzAk4gLU&hl=en\\n * @type {string}\\n */\\nLocation.prototype.origin;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534332(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.pathname;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534342(VS.85).aspx\\n */\\nLocation.prototype.port;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534353(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.protocol;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms534620(VS.85).aspx\\n * @type {string}\\n */\\nLocation.prototype.search;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ms536342(VS.85).aspx\\n * @param {string} url\\n * @return {undefined}\\n */\\nLocation.prototype.assign = function(url) {};\\n\\n/**\\n * @param {boolean=} opt_forceReload If true, reloads the page from\\n * the server. Defaults to false.\\n * @see http://msdn.microsoft.com/en-us/library/ms536691(VS.85).aspx\\n * @return {undefined}\\n */\\nLocation.prototype.reload = function(opt_forceReload) {};\\n\\n/**\\n * @param {string} url\\n * @see http://msdn.microsoft.com/en-us/library/ms536712(VS.85).aspx\\n * @return {undefined}\\n */\\nLocation.prototype.replace = function(url) {};\\n\\n\\n// For IE, returns an object representing key-value pairs for all the global\\n// variables prefixed with str, e.g. test*\\n\\n/** @param {*=} opt_str\\n */\\nfunction RuntimeObject(opt_str) {}\\n\\n\\n/**\\n * @type {StyleSheet}\\n * @see http://msdn.microsoft.com/en-us/library/dd347030(VS.85).aspx\\n */\\nHTMLStyleElement.prototype.styleSheet;\\n\\n\\n/**\\n * IE implements Cross Origin Resource Sharing (cross-domain XMLHttpRequests)\\n * via the XDomainRequest object.\\n *\\n * @constructor\\n * @see http://msdn.microsoft.com/en-us/library/cc288060(v=vs.85).aspx\\n * @see http://www.w3.org/TR/cors/\\n */\\nfunction XDomainRequest() {}\\n\\n/**\\n * Aborts the request.\\n * @see http://msdn.microsoft.com/en-us/library/cc288129(v=vs.85).aspx\\n * @return {undefined}\\n */\\nXDomainRequest.prototype.abort = function() {};\\n\\n/**\\n * Sets the method and URL for the request.\\n * @param {string} bstrMethod Either \\"GET\\" or \\"POST\\"\\n * @param {string} bstrUrl The target URL\\n * @see http://msdn.microsoft.com/en-us/library/cc288168(v=vs.85).aspx\\n * @return {undefined}\\n */\\nXDomainRequest.prototype.open = function(bstrMethod, bstrUrl) {};\\n\\n/**\\n * Sends the request.\\n * @param {string=} varBody The POST body to send to the server. If omitted,\\n * the behavior is identical to sending an empty string.\\n * @see http://msdn.microsoft.com/en-us/library/cc288207(v=vs.85).aspx\\n * @return {undefined}\\n */\\nXDomainRequest.prototype.send = function(varBody) {};\\n\\n/**\\n * Called if the request could not be completed. Note that error information is\\n * not available.\\n * @see http://msdn.microsoft.com/en-us/library/ms536930%28v=VS.85%29.aspx\\n * @type {?function()}\\n */\\nXDomainRequest.prototype.onerror;\\n\\n/**\\n * Called when the response has finished.\\n * @see http://msdn.microsoft.com/en-us/library/ms536942%28v=VS.85%29.aspx\\n * @type {?function()}\\n */\\nXDomainRequest.prototype.onload;\\n\\n/**\\n * Called every time part of the response has been received.\\n * @see http://msdn.microsoft.com/en-us/library/cc197058%28v=VS.85%29.aspx\\n * @type {?function()}\\n */\\nXDomainRequest.prototype.onprogress;\\n\\n/**\\n * Called if the timeout period has elapsed.\\n * @see http://msdn.microsoft.com/en-us/library/cc197061%28v=VS.85%29.aspx\\n * @type {?function()}\\n */\\nXDomainRequest.prototype.ontimeout;\\n\\n/**\\n * The current response body.\\n * @see http://msdn.microsoft.com/en-us/library/cc287956%28v=VS.85%29.aspx\\n * @type {string}\\n */\\nXDomainRequest.prototype.responseText;\\n\\n/**\\n * The timeout (in milliseconds) for the request.\\n * @type {number}\\n */\\nXDomainRequest.prototype.timeout;\\n\\n/**\\n * The Content-Type of the response, or an empty string.\\n * @type {string}\\n */\\nXDomainRequest.prototype.contentType;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms533542(v=vs.85).aspx\\n */\\nNavigator.prototype.browserLanguage;\\n\\n/**\\n * @type {number}\\n * @see https://msdn.microsoft.com/en-us/library/ie/hh772144(v=vs.85).aspx\\n */\\nNavigator.prototype.msMaxTouchPoints;\\n\\n/**\\n * @type {boolean}\\n * @see http://blogs.msdn.com/b/ie/archive/2011/09/20/touch-input-for-ie10-and-metro-style-apps.aspx\\n */\\nNavigator.prototype.msPointerEnabled;\\n\\n/**\\n * @param {(!File|!Blob)} blob\\n * @param {string=} opt_defaultName\\n * @return {boolean}\\n * @see https://msdn.microsoft.com/en-us/library/hh772331(v=vs.85).aspx\\n */\\nNavigator.prototype.msSaveBlob = function(blob, opt_defaultName) {};\\n\\n/**\\n * @param {(!File|!Blob)} blob\\n * @param {string=} opt_defaultName\\n * @return {boolean}\\n * @see https://msdn.microsoft.com/en-us/library/hh772332(v=vs.85).aspx\\n */\\nNavigator.prototype.msSaveOrOpenBlob = function(blob, opt_defaultName) {};\\n\\n/**\\n * @type {number}\\n * @see http://msdn.microsoft.com/en-us/library/ms533721(v=vs.85).aspx\\n */\\nScreen.prototype.deviceXDPI;\\n\\n/**\\n * @type {number}\\n * @see http://msdn.microsoft.com/en-us/library/ms534128%28v=vs.85%29.aspx\\n */\\nScreen.prototype.logicalXDPI;\\n\\n/**\\n * @type {number}\\n * @see http://msdn.microsoft.com/en-us/library/ms534130%28v=vs.85%29.aspx\\n */\\nScreen.prototype.logicalYDPI;\\n","externs/webkit_dom.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over W3C\'s DOM\\n * specification by WebKit. This file depends on w3c_dom2.js.\\n * All the provided definitions has been type annotated\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n\\n/**\\n * @param {boolean=} opt_center\\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=403510\\n * @return {undefined}\\n */\\nElement.prototype.scrollIntoViewIfNeeded = function(opt_center) {};\\n\\n/**\\n * @constructor\\n * @see https://cs.chromium.org/search/?q=%22interface+MemoryInfo%22+file:idl+file:WebKit+package:chromium&type=cs\\n */\\nfunction MemoryInfo() {};\\n\\n/** @type {number} */\\nMemoryInfo.prototype.totalJSHeapSize;\\n\\n/** @type {number} */\\nMemoryInfo.prototype.usedJSHeapSize;\\n\\n/** @type {number} */\\nMemoryInfo.prototype.jsHeapSizeLimit;\\n\\n/**\\n * @constructor\\n * @see http://trac.webki'; a.a+='t.org/browser/trunk/Source/WebCore/inspector/ScriptProfileNode.idl\\n */\\nfunction ScriptProfileNode() {};\\n\\n/** @type {string} */\\nScriptProfileNode.prototype.functionName;\\n\\n/** @type {string} */\\nScriptProfileNode.prototype.url;\\n\\n/** @type {number} */\\nScriptProfileNode.prototype.lineNumber;\\n\\n/** @type {number} */\\nScriptProfileNode.prototype.totalTime;\\n\\n/** @type {number} */\\nScriptProfileNode.prototype.selfTime;\\n\\n/** @type {number} */\\nScriptProfileNode.prototype.numberOfCalls;\\n\\n/** @type {Array} */\\nScriptProfileNode.prototype.children;\\n\\n/** @type {boolean} */\\nScriptProfileNode.prototype.visible;\\n\\n/** @type {number} */\\nScriptProfileNode.prototype.callUID;\\n\\n/**\\n * @constructor\\n * @see http://trac.webkit.org/browser/trunk/Source/WebCore/inspector/ScriptProfile.idl\\n */\\nfunction ScriptProfile() {};\\n\\n/** @type {string} */\\nScriptProfile.prototype.title;\\n\\n/** @type {number} */\\nScriptProfile.prototype.uid;\\n\\n/** @type {ScriptProfileNode} */\\nScriptProfile.prototype.head;\\n\\n/**\\n * @constructor\\n * @see https://console.spec.whatwg.org/\\n */\\nfunction Console() {};\\n\\n/**\\n * @param {*} condition\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.assert = function(condition, var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.error = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.info = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.log = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.warn = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.debug = function(var_args) {};\\n\\n/**\\n * @param {*} value\\n * @return {undefined}\\n */\\nConsole.prototype.dir = function(value) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.dirxml = function(var_args) {};\\n\\n/**\\n * @param {!Object} data\\n * @param {*=} opt_columns\\n * @return {undefined}\\n */\\nConsole.prototype.table = function(data, opt_columns) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.trace = function(var_args) {};\\n\\n/**\\n * @param {*} value\\n * @return {undefined}\\n */\\nConsole.prototype.count = function(value) {};\\n\\n/**\\n * @param {*} value\\n * @return {undefined}\\n */\\nConsole.prototype.markTimeline = function(value) {};\\n\\n/**\\n * @param {string=} opt_title\\n * @return {undefined}\\n */\\nConsole.prototype.profile = function(opt_title) {};\\n\\n/** @type {Array} */\\nConsole.prototype.profiles;\\n\\n/**\\n * @param {string=} opt_title\\n * @return {undefined}\\n */\\nConsole.prototype.profileEnd = function(opt_title) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n */\\nConsole.prototype.time = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n */\\nConsole.prototype.timeEnd = function(name) {};\\n\\n/**\\n * @param {*} value\\n * @return {undefined}\\n */\\nConsole.prototype.timeStamp = function(value) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.group = function(var_args) {};\\n\\n/**\\n * @param {...*} var_args\\n * @return {undefined}\\n */\\nConsole.prototype.groupCollapsed = function(var_args) {};\\n\\nConsole.prototype.groupEnd = function() {};\\n\\nConsole.prototype.clear = function() {};\\n\\n/** @type {MemoryInfo} */\\nConsole.prototype.memory;\\n\\n/** @type {!Console} */\\nWindow.prototype.console;\\n\\n/**\\n * @type {!Console}\\n * @suppress {duplicate}\\n */\\nvar console;\\n\\n/**\\n * @type {number}\\n * @see http://developer.android.com/reference/android/webkit/WebView.html\\n */\\nWindow.prototype.devicePixelRatio;\\n\\n/** @type {Node} */\\nSelection.prototype.baseNode;\\n\\n/** @type {number} */\\nSelection.prototype.baseOffset;\\n\\n/** @type {Node} */\\nSelection.prototype.extentNode;\\n\\n/** @type {number} */\\nSelection.prototype.extentOffset;\\n\\n/** @type {string} */\\nSelection.prototype.type;\\n\\n/**\\n * @return {undefined}\\n */\\nSelection.prototype.empty = function() {};\\n\\n/**\\n * @param {Node} baseNode\\n * @param {number} baseOffset\\n * @param {Node} extentNode\\n * @param {number} extentOffset\\n * @return {undefined}\\n */\\nSelection.prototype.setBaseAndExtent =\\n function(baseNode, baseOffset, extentNode, extentOffset) {};\\n\\n/**\\n * @param {string} alter\\n * @param {string} direction\\n * @param {string} granularity\\n * @return {undefined}\\n */\\nSelection.prototype.modify = function(alter, direction, granularity) {};\\n\\n/**\\n * @param {Element} element\\n * @param {string} pseudoElement\\n * @param {boolean=} opt_authorOnly\\n * @return {CSSRuleList}\\n * @nosideeffects\\n */\\nViewCSS.prototype.getMatchedCSSRules =\\n function(element, pseudoElement, opt_authorOnly) {};\\n\\n/**\\n * @param {string} contextId\\n * @param {string} name\\n * @param {number} width\\n * @param {number} height\\n * @nosideeffects\\n * @return {undefined}\\n */\\nDocument.prototype.getCSSCanvasContext =\\n function(contextId, name, width, height) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {?Range}\\n * @nosideeffects\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/caretRangeFromPoint\\n */\\nDocument.prototype.caretRangeFromPoint = function(x, y) {};\\n","externs/w3c_css.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s CSS specification\\n * The whole file has been fully type annotated.\\n * http://www.w3.org/TR/DOM-Level-2-Style/css.html\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n *\\n * TODO(nicksantos): When there are no more occurrences of w3c_range.js and\\n * gecko_dom.js being included directly in BUILD files, bug dbeam to split the\\n * bottom part of this file into a separate externs.\\n */\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet\\n */\\nfunction StyleSheet() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-type\\n */\\nStyleSheet.prototype.type;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-disabled\\n */\\nStyleSheet.prototype.disabled;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-owner\\n */\\nStyleSheet.prototype.ownerNode;\\n\\n/**\\n * @type {StyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-parentStyleSheet\\n */\\nStyleSheet.prototype.parentStyleSheet;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-href\\n */\\nStyleSheet.prototype.href;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-title\\n */\\nStyleSheet.prototype.title;\\n\\n/**\\n * @type {MediaList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-media\\n */\\nStyleSheet.prototype.media;\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheetList\\n */\\nfunction StyleSheetList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheetList-length\\n */\\nStyleSheetList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {StyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheetList-item\\n */\\nStyleSheetList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList\\n */\\nfunction MediaList() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList-mediaText\\n */\\nMediaList.prototype.mediaText;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList-length\\n */\\nMediaList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-MediaList-item\\n */\\nMediaList.prototype.item = function(index) {};\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-LinkStyle\\n */\\nfunction LinkStyle() {}\\n\\n/**\\n * @type {StyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-LinkStyle-sheet\\n */\\nLinkStyle.prototype.sheet;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-DocumentStyle\\n */\\nfunction DocumentStyle() {}\\n\\n/**\\n * @type {StyleSheetList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-DocumentStyle-styleSheets\\n */\\nDocumentStyle.prototype.styleSheets;\\n\\n/**\\n * @constructor\\n * @extends {StyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet\\n */\\nfunction CSSStyleSheet() {}\\n\\n/**\\n * @type {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-ownerRule\\n */\\nCSSStyleSheet.prototype.ownerRule;\\n\\n/**\\n * @type {CSSRuleList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-cssRules\\n */\\nCSSStyleSheet.prototype.cssRules;\\n\\n/**\\n * @param {string} rule\\n * @param {number} index\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule\\n */\\nCSSStyleSheet.prototype.insertRule = function(rule, index) {};\\n\\n/**\\n * @param {number} index\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule\\n * @return {undefined}\\n */\\nCSSStyleSheet.prototype.deleteRule = function(index) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList\\n */\\nfunction CSSRuleList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList-length\\n */\\nCSSRuleList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList-item\\n */\\nCSSRuleList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\\n */\\nfunction CSSRule() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-cssText\\n */\\nCSSRule.prototype.cssText;\\n\\n/**\\n * @type {CSSStyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-sheet\\n */\\nCSSRule.prototype.parentStyleSheet;\\n\\n/**\\n * @type {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-parentRule\\n */\\nCSSRule.prototype.parentRule;\\n\\n/**\\n * @type {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule\\n */\\nCSSRule.prototype.style;\\n\\n/**\\n * Indicates that the rule is a {@see CSSUnknownRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.UNKNOWN_RULE = 0;\\n\\n/**\\n * Indicates that the rule is a {@see CSSStyleRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.STYLE_RULE = 1;\\n\\n/**\\n * Indicates that the rule is a {@see CSSCharsetRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.CHARSET_RULE = 2;\\n\\n/**\\n * Indicates that the rule is a {@see CSSImportRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.IMPORT_RULE = 3;\\n\\n/**\\n * Indicates that the rule is a {@see CSSMediaRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.MEDIA_RULE = 4;\\n\\n/**\\n * Indicates that the rule is a {@see CSSFontFaceRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.FONT_FACE_RULE = 5;\\n\\n/**\\n * Indicates that the rule is a {@see CSSPageRule}.\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule-ruleType\\n */\\nCSSRule.PAGE_RULE = 6;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule\\n */\\nfunction CSSStyleRule() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule-selectorText\\n */\\nCSSStyleRule.prototype.selectorText;\\n\\n/**\\n * @type {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule-style\\n */\\nCSSStyleRule.prototype.style;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\\n */\\nfunction CSSMediaRule() {}\\n\\n/**\\n * @type {MediaList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-mediaTypes\\n */\\nCSSMediaRule.prototype.media;\\n\\n/**\\n * @type {CSSRuleList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-cssRules\\n */\\nCSSMediaRule.prototype.cssRules;\\n\\n/**\\n * @param {string} rule\\n * @param {number} index\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-insertRule\\n */\\nCSSMediaRule.prototype.insertRule = function(rule, index) {};\\n\\n/**\\n * @param {number} index\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-deleteRule\\n * @return {undefined}\\n */\\nCSSMediaRule.prototype.deleteRule = function(index) {};\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSFontFaceRule\\n */\\nfunction CSSFontFaceRule() {}\\n\\n/**\\n * @type {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSFontFaceRule-style\\n */\\nCSSFontFaceRule.prototype.style;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPageRule\\n */\\nfunction CSSPageRule() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPageRule-name\\n */\\nCSSPageRule.prototype.selectorText;\\n\\n/**\\n * @type {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPageRule-style\\n */\\nCSSPageRule.prototype.style;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule\\n */\\nfunction CSSImportRule() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule-href\\n */\\nCSSImportRule.prototype.href;\\n\\n/**\\n * @type {MediaList}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule-media\\n */\\nCSSImportRule.prototype.media;\\n\\n/**\\n * @type {CSSStyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule-styleSheet\\n */\\nCSSImportRule.prototype.styleSheet;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSCharsetRule\\n */\\nfunction CSSCharsetRule() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSCharsetRule-encoding\\n */\\nCSSCharsetRule.prototype.encoding;\\n\\n/**\\n * @constructor\\n * @extends {CSSRule}\\n * @see http://www.w3.org'; a.a+="/TR/DOM-Level-2-Style/css.html#CSS-CSSUnknownRule\\n */\\nfunction CSSUnknownRule() {}\\n\\n/**\\n * @constructor\\n * @extends {CSSProperties}\\n * @implements {IObject<(string|number), string>}\\n * @implements {IArrayLike}\\n * @implements {Iterable}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration\\n */\\nfunction CSSStyleDeclaration() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-cssText\\n */\\nCSSStyleDeclaration.prototype.cssText;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-length\\n */\\nCSSStyleDeclaration.prototype.length;\\n\\n/**\\n * @type {CSSRule}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-parentRule\\n */\\nCSSStyleDeclaration.prototype.parentRule;\\n\\n/**\\n * @param {string} propertyName\\n * @return {CSSValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyCSSValue\\n */\\nCSSStyleDeclaration.prototype.getPropertyCSSValue = function(propertyName) {};\\n\\n/**\\n * @param {string} propertyName\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyPriority\\n */\\nCSSStyleDeclaration.prototype.getPropertyPriority = function(propertyName) {};\\n\\n/**\\n * @param {string} propertyName\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue\\n */\\nCSSStyleDeclaration.prototype.getPropertyValue = function(propertyName) {};\\n\\n/**\\n * @param {number} index\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-item\\n */\\nCSSStyleDeclaration.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} propertyName\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty\\n */\\nCSSStyleDeclaration.prototype.removeProperty = function(propertyName) {};\\n\\n/**\\n * @param {string} propertyName\\n * @param {string} value\\n * @param {string=} opt_priority\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty\\n */\\nCSSStyleDeclaration.prototype.setProperty = function(propertyName, value, opt_priority) {};\\n\\n// IE-specific\\n\\n/**\\n * @param {string} name\\n * @param {number=} opt_flags\\n * @return {string|number|boolean|null}\\n * @see http://msdn.microsoft.com/en-us/library/ms536429(VS.85).aspx\\n */\\nCSSStyleDeclaration.prototype.getAttribute = function(name, opt_flags) {};\\n\\n/**\\n * @param {string} name\\n * @return {string|number|boolean|null}\\n * @see http://msdn.microsoft.com/en-us/library/aa358797(VS.85).aspx\\n */\\nCSSStyleDeclaration.prototype.getExpression = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @param {number=} opt_flags\\n * @return {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/ms536696(VS.85).aspx\\n */\\nCSSStyleDeclaration.prototype.removeAttribute =\\n function(name, opt_flags) {};\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/aa358798(VS.85).aspx\\n */\\nCSSStyleDeclaration.prototype.removeExpression = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @param {*} value\\n * @param {number=} opt_flags\\n * @see http://msdn.microsoft.com/en-us/library/ms536739(VS.85).aspx\\n * @return {undefined}\\n */\\nCSSStyleDeclaration.prototype.setAttribute = function(name, value, opt_flags) {};\\n\\n/**\\n * @param {string} name\\n * @param {string} expr\\n * @param {string=} opt_language\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/ms531196(VS.85).aspx\\n */\\nCSSStyleDeclaration.prototype.setExpression =\\n function(name, expr, opt_language) {};\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\\n */\\nfunction CSSValue() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-cssText\\n */\\nCSSValue.prototype.cssText;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-cssValueType\\n */\\nCSSValue.prototype.cssValueType;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-types\\n */\\nCSSValue.CSS_INHERIT = 0;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-types\\n */\\nCSSValue.CSS_PRIMITIVE_VALUE = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-types\\n */\\nCSSValue.CSS_VALUE_LIST = 2;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue-types\\n */\\nCSSValue.CSS_CUSTOM = 3;\\n\\n/**\\n * @constructor\\n * @extends {CSSValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nfunction CSSPrimitiveValue() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.prototype.primitiveType;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_UNKNOWN = 0;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_NUMBER = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_PERCENTAGE = 2;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_EMS = 3;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_EXS = 4;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_PX = 5;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_CM = 6;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_MM = 7;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_IN = 8;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_PT = 9;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_PC = 10;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_DEG = 11;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_RAD = 12;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_GRAD = 13;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_MS = 14;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_S = 15;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_HZ = 16;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_KHZ = 17;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_DIMENSION = 18;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_STRING = 19;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_URI = 20;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_IDENT = 21;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_ATTR = 22;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_COUNTER = 23;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_RECT = 24;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue\\n */\\nCSSPrimitiveValue.CSS_RGBCOLOR = 25;\\n\\n/**\\n * @return {Counter}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-getCounterValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR}\\n */\\nCSSPrimitiveValue.prototype.getCounterValue = function() {};\\n\\n/**\\n * @param {number} unitType\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-getFloatValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR}\\n */\\nCSSPrimitiveValue.prototype.getFloatValue = function(unitType) {};\\n\\n/**\\n * @return {RGBColor}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-getRGBColorValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR}\\n */\\nCSSPrimitiveValue.prototype.getRGBColorValue = function() {};\\n\\n/**\\n * @return {Rect}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-getRectValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR}\\n */\\nCSSPrimitiveValue.prototype.getRectValue = function() {};\\n\\n/**\\n * @return {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-getStringValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR}\\n */\\nCSSPrimitiveValue.prototype.getStringValue = function() {};\\n\\n/**\\n * @param {number} unitType\\n * @param {number} floatValue\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-setFloatValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR},\\n * {@see DomException.NO_MODIFICATION_ALLOWED_ERR}\\n */\\nCSSPrimitiveValue.prototype.setFloatValue = function(unitType, floatValue) {};\\n\\n/**\\n * @param {number} stringType\\n * @param {string} stringValue\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-setStringValue\\n * @throws DOMException {@see DomException.INVALID_ACCESS_ERR},\\n * {@see DomException.NO_MODIFICATION_ALLOWED_ERR}\\n */\\nCSSPrimitiveValue.prototype.setStringValue = function(stringType, stringValue) {};\\n\\n/**\\n * @constructor\\n * @extends {CSSValue}\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValueList\\n */\\nfunction CSSValueList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValueList-length\\n */\\nCSSValueList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {CSSValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValueList-item\\n */\\nCSSValueList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor\\n */\\nfunction RGBColor() {}\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor-red\\n */\\nRGBColor.prototype.red;\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor-green\\n */\\nRGBColor.prototype.green;\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-RGBColor-blue\\n */\\nRGBColor.prototype.blue;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Rect\\n */\\nfunction Rect() {}\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Rect-top\\n */\\nRect.prototype.top;\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Rect-right\\n */\\nRect.prototype.right;\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Rect-bottom\\n */\\nRect.prototype.bottom;\\n\\n/**\\n * @type {CSSPrimitiveValue}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Rect-left\\n */\\nRect.prototype.left;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Counter\\n */\\nfunction Counter() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Counter-identifier\\n */\\nCounter.prototype.identifier;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Counter-listStyle\\n */\\nCounter.prototype.listStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-Counter-separator\\n */\\nCounter.prototype.separator;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ViewCSS\\n */\\nfunction ViewCSS() {}\\n\\n/**\\n * @param {Element} elt\\n * @param {?string=} opt_pseudoElt This argument is required according to the\\n * CSS2 specification, but optional in all major browsers. See the note at\\n * https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle\\n * @return {?CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSview-getComputedStyle\\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\\n */\\nViewCSS.prototype.getComputedStyle = function(elt, opt_pseudoElt) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-DocumentCSS\\n */\\nfunction DocumentCSS() {}\\n\\n/**\\n * @param {Element} elt\\n * @param {string} pseudoElt\\n * @return {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-DocumentCSS-getOverrideStyle\\n */\\nDocumentCSS.prototype.getOverrideStyle = function(elt, pseudoElt) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-DOMImplementationCSS\\n */\\nfunction DOMImplementationCSS() {}\\n\\n/**\\n * @param {string} title\\n * @param {string} media\\n * @return {CSSStyleSheet}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-DOMImplementationCSS-createCSSStyleSheet\\n * @throws DOMException {@see DomException.SYNTAX_ERR}\\n */\\nDOMImplementationCSS.prototype.createCSSStyleSheet = function(title, media) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ElementCSSInlineStyle\\n */\\nfunction ElementCSSInlineStyle() {}\\n\\n/**\\n * @type {CSSStyleDeclaration}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ElementCSSInlineStyle-style\\n */\\nElementCSSInlineStyle.prototype.style;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties\\n */\\nfunction CSSProperties() {}\\n\\n// CSS 2 properties\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-azimuth\\n */\\nCSSProperties.prototype.azimuth;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-background\\n */\\nCSSProperties.prototype.background;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-backgroundAttachment\\n */\\nCSSProperties.prototype.backgroundAttachment;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-backgroundColor\\n */\\nCSSProperties.prototype.backgroundColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-backgroundImage\\n */\\nCSSProperties.prototype.backgroundImage;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-backgroundPosition\\n */\\nCSSProperties.prototype.backgroundPosition;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-backgroundRepeat\\n */\\nCSSProperties.prototype.backgroundRep"; a.a+="eat;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-background/#the-background-size\\n */\\nCSSProperties.prototype.backgroundSize;\\n\\n/**\\n * @implicitCast\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-border\\n */\\nCSSProperties.prototype.border;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderCollapse\\n */\\nCSSProperties.prototype.borderCollapse;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderColor\\n */\\nCSSProperties.prototype.borderColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderSpacing\\n */\\nCSSProperties.prototype.borderSpacing;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue-borderStyle\\n */\\nCSSProperties.prototype.borderStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderTop\\n */\\nCSSProperties.prototype.borderTop;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderRight\\n */\\nCSSProperties.prototype.borderRight;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderBottom\\n */\\nCSSProperties.prototype.borderBottom;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderLeft\\n */\\nCSSProperties.prototype.borderLeft;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderTopColor\\n */\\nCSSProperties.prototype.borderTopColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderRightColor\\n */\\nCSSProperties.prototype.borderRightColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderBottomColor\\n */\\nCSSProperties.prototype.borderBottomColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderLeftColor\\n */\\nCSSProperties.prototype.borderLeftColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderTopStyle\\n */\\nCSSProperties.prototype.borderTopStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderRightStyle\\n */\\nCSSProperties.prototype.borderRightStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderBottomStyle\\n */\\nCSSProperties.prototype.borderBottomStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderLeftStyle\\n */\\nCSSProperties.prototype.borderLeftStyle;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderTopWidth\\n */\\nCSSProperties.prototype.borderTopWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderRightWidth\\n */\\nCSSProperties.prototype.borderRightWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderBottomWidth\\n */\\nCSSProperties.prototype.borderBottomWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderLeftWidth\\n */\\nCSSProperties.prototype.borderLeftWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-borderWidth\\n */\\nCSSProperties.prototype.borderWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-radius\\n */\\nCSSProperties.prototype.borderRadius;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-radius\\n */\\nCSSProperties.prototype.borderBottomLeftRadius;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-radius\\n */\\nCSSProperties.prototype.borderBottomRightRadius;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-radius\\n */\\nCSSProperties.prototype.borderTopLeftRadius;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-radius\\n */\\nCSSProperties.prototype.borderTopRightRadius;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image-source\\n */\\nCSSProperties.prototype.borderImageSource;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image-slice\\n */\\nCSSProperties.prototype.borderImageSlice;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image-width\\n */\\nCSSProperties.prototype.borderImageWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image-outset\\n */\\nCSSProperties.prototype.borderImageOutset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image-repeat\\n */\\nCSSProperties.prototype.borderImageRepeat;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-background/#the-border-image\\n */\\nCSSProperties.prototype.borderImage;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-bottom\\n */\\nCSSProperties.prototype.bottom;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-captionSide\\n */\\nCSSProperties.prototype.captionSide;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-clear\\n */\\nCSSProperties.prototype.clear;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-clip\\n */\\nCSSProperties.prototype.clip;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-color\\n */\\nCSSProperties.prototype.color;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-content\\n */\\nCSSProperties.prototype.content;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-counterIncrement\\n */\\nCSSProperties.prototype.counterIncrement;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-counterReset\\n */\\nCSSProperties.prototype.counterReset;\\n\\n/**\\n * This is not an official part of the W3C spec. In practice, this is a settable\\n * property that works cross-browser. It is used in goog.dom.setProperties() and\\n * needs to be extern'd so the --disambiguate_properties JS compiler pass works.\\n * @type {string}\\n */\\nCSSProperties.prototype.cssText;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-cue\\n */\\nCSSProperties.prototype.cue;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-cueAfter\\n */\\nCSSProperties.prototype.cueAfter;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-cueBefore\\n */\\nCSSProperties.prototype.cueBefore;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-cursor\\n */\\nCSSProperties.prototype.cursor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-direction\\n */\\nCSSProperties.prototype.direction;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-display\\n */\\nCSSProperties.prototype.display;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-elevation\\n */\\nCSSProperties.prototype.elevation;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-emptyCells\\n */\\nCSSProperties.prototype.emptyCells;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-cssFloat\\n */\\nCSSProperties.prototype.cssFloat;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-font\\n */\\nCSSProperties.prototype.font;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontFamily\\n */\\nCSSProperties.prototype.fontFamily;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontSize\\n */\\nCSSProperties.prototype.fontSize;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontSizeAdjust\\n */\\nCSSProperties.prototype.fontSizeAdjust;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontStretch\\n */\\nCSSProperties.prototype.fontStretch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontStyle\\n */\\nCSSProperties.prototype.fontStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontVariant\\n */\\nCSSProperties.prototype.fontVariant;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-fontWeight\\n */\\nCSSProperties.prototype.fontWeight;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-height\\n */\\nCSSProperties.prototype.height;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-left\\n */\\nCSSProperties.prototype.left;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-letterSpacing\\n */\\nCSSProperties.prototype.letterSpacing;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-lineHeight\\n */\\nCSSProperties.prototype.lineHeight;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-listStyle\\n */\\nCSSProperties.prototype.listStyle;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-listStyleImage\\n */\\nCSSProperties.prototype.listStyleImage;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-listStylePosition\\n */\\nCSSProperties.prototype.listStylePosition;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-listStyleType\\n */\\nCSSProperties.prototype.listStyleType;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-margin\\n */\\nCSSProperties.prototype.margin;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-marginTop\\n */\\nCSSProperties.prototype.marginTop;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-marginRight\\n */\\nCSSProperties.prototype.marginRight;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-marginBottom\\n */\\nCSSProperties.prototype.marginBottom;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-marginLeft\\n */\\nCSSProperties.prototype.marginLeft;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-markerOffset\\n */\\nCSSProperties.prototype.markerOffset;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-marks\\n */\\nCSSProperties.prototype.marks;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-maxHeight\\n */\\nCSSProperties.prototype.maxHeight;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-maxWidth\\n */\\nCSSProperties.prototype.maxWidth;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-minHeight\\n */\\nCSSProperties.prototype.minHeight;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-minWidth\\n */\\nCSSProperties.prototype.minWidth;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-orphans\\n */\\nCSSProperties.prototype.orphans;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-outline\\n */\\nCSSProperties.prototype.outline;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-outlineColor\\n */\\nCSSProperties.prototype.outlineColor;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-outlineStyle\\n */\\nCSSProperties.prototype.outlineStyle;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-outlineWidth\\n */\\nCSSProperties.prototype.outlineWidth;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-overflow\\n */\\nCSSProperties.prototype.overflow;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-padding\\n */\\nCSSProperties.prototype.padding;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-paddingTop\\n */\\nCSSProperties.prototype.paddingTop;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-paddingRight\\n */\\nCSSProperties.prototype.paddingRight;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-paddingBottom\\n */\\nCSSProperties.prototype.paddingBottom;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-paddingLeft\\n */\\nCSSProperties.prototype.paddingLeft;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-page\\n */\\nCSSProperties.prototype.page;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pageBreakAfter\\n */\\nCSSProperties.prototype.pageBreakAfter;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pageBreakBefore\\n */\\nCSSProperties.prototype.pageBreakBefore;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pageBreakInside\\n */\\nCSSProperties.prototype.pageBreakInside;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pause\\n */\\nCSSProperties.prototype.pause;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pauseAfter\\n */\\nCSSProperties.prototype.pauseAfter;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pauseBefore\\n */\\nCSSProperties.prototype.pauseBefore;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pitch\\n */\\nCSSProperties.prototype.pitch;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-pitchRange\\n */\\nCSSProperties.prototype.pitchRange;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-playDuring\\n */\\nCSSProperties.prototype.playDuring;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-position\\n */\\nCSSProperties.prototype.position;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-quotes\\n */\\nCSSProperties.prototype.quotes;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-ui/#resize\\n */\\nCSSProperties.prototype.resize;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-richness\\n */\\nCSSProperties.prototype.richness;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-ri"; a.a+="ght\\n */\\nCSSProperties.prototype.right;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-size\\n */\\nCSSProperties.prototype.size;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-speak\\n */\\nCSSProperties.prototype.speak;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-speakHeader\\n */\\nCSSProperties.prototype.speakHeader;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-speakNumeral\\n */\\nCSSProperties.prototype.speakNumeral;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-speakPunctuation\\n */\\nCSSProperties.prototype.speakPunctuation;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-speechRate\\n */\\nCSSProperties.prototype.speechRate;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-stress\\n */\\nCSSProperties.prototype.stress;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-tableLayout\\n */\\nCSSProperties.prototype.tableLayout;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-textAlign\\n */\\nCSSProperties.prototype.textAlign;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-textDecoration\\n */\\nCSSProperties.prototype.textDecoration;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-textIndent\\n */\\nCSSProperties.prototype.textIndent;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-textShadow\\n */\\nCSSProperties.prototype.textShadow;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-textTransform\\n */\\nCSSProperties.prototype.textTransform;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-top\\n */\\nCSSProperties.prototype.top;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-unicodeBidi\\n */\\nCSSProperties.prototype.unicodeBidi;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-verticalAlign\\n */\\nCSSProperties.prototype.verticalAlign;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-visibility\\n */\\nCSSProperties.prototype.visibility;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-voiceFamily\\n */\\nCSSProperties.prototype.voiceFamily;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-volume\\n */\\nCSSProperties.prototype.volume;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-whiteSpace\\n */\\nCSSProperties.prototype.whiteSpace;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-widows\\n */\\nCSSProperties.prototype.widows;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-width\\n */\\nCSSProperties.prototype.width;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-wordSpacing\\n */\\nCSSProperties.prototype.wordSpacing;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-wordWrap\\n */\\nCSSProperties.prototype.wordWrap;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSProperties-zIndex\\n */\\nCSSProperties.prototype.zIndex;\\n\\n// CSS 3 properties\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-background/#box-shadow\\n */\\nCSSProperties.prototype.boxShadow;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-ui/#box-sizing\\n */\\nCSSProperties.prototype.boxSizing;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-color/#transparency\\n */\\nCSSProperties.prototype.opacity;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-ui/#text-overflow\\n */\\nCSSProperties.prototype.textOverflow;\\n\\n// CSS 3 transforms\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#backface-visibility-property\\n */\\nCSSProperties.prototype.backfaceVisibility;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#perspective\\n */\\nCSSProperties.prototype.perspective;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#perspective-origin\\n */\\nCSSProperties.prototype.perspectiveOrigin;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#effects\\n */\\nCSSProperties.prototype.transform;\\n\\n/**\\n * @type {string|number}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#transform-origin\\n */\\nCSSProperties.prototype.transformOrigin;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-2d-transforms/#transform-style\\n */\\nCSSProperties.prototype.transformStyle;\\n\\n// CSS 3 transitions\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-transitions/#transition\\n */\\nCSSProperties.prototype.transition;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-transitions/#transition-delay\\n */\\nCSSProperties.prototype.transitionDelay;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-transitions/#transition-duration\\n */\\nCSSProperties.prototype.transitionDuration;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-transitions/#transition-property-property\\n */\\nCSSProperties.prototype.transitionProperty;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css3-transitions/#transition-timing-function\\n */\\nCSSProperties.prototype.transitionTimingFunction;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty\\n */\\nCSSProperties.prototype.pointerEvents;\\n\\n\\n// CSS Flexbox 1\\n\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#align-content-property\\n */\\nCSSProperties.prototype.alignContent;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#align-items-property\\n */\\nCSSProperties.prototype.alignItems;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#align-items-property\\n */\\nCSSProperties.prototype.alignSelf;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-property\\n */\\nCSSProperties.prototype.flex;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-basis-property\\n */\\nCSSProperties.prototype.flexBasis;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-direction-property\\n */\\nCSSProperties.prototype.flexDirection;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-flow-property\\n */\\nCSSProperties.prototype.flexFlow;\\n\\n/**\\n * @type {number}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-grow-property\\n */\\nCSSProperties.prototype.flexGrow;\\n\\n/**\\n * @type {number}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-shrink-property\\n */\\nCSSProperties.prototype.flexShrink;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#flex-wrap-property\\n */\\nCSSProperties.prototype.flexWrap;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/css-flexbox-1/#justify-content-property\\n */\\nCSSProperties.prototype.justifyContent;\\n\\n/**\\n * @type {number}\\n * @see https://www.w3.org/TR/css-flexbox-1/#order-property\\n */\\nCSSProperties.prototype.order;\\n\\n// Externs for CSS Will Change Module Level 1\\n// http://www.w3.org/TR/css-will-change/\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/css-will-change-1/#will-change\\n */\\nCSSProperties.prototype.willChange;\\n\\n\\n/**\\n * TODO(dbeam): Put this in separate file named w3c_cssom.js.\\n * Externs for the CSSOM View Module.\\n * @see http://www.w3.org/TR/cssom-view/\\n */\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface\\n\\n/**\\n * @param {string} media_query_list\\n * @return {MediaQueryList}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-matchmedia\\n */\\nWindow.prototype.matchMedia = function(media_query_list) {};\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-innerwidth\\n */\\nWindow.prototype.innerWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-innerheight\\n */\\nWindow.prototype.innerHeight;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-scrollx\\n */\\nWindow.prototype.scrollX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-pagexoffset\\n */\\nWindow.prototype.pageXOffset;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-scrolly\\n */\\nWindow.prototype.scrollY;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-pageyoffset\\n */\\nWindow.prototype.pageYOffset;\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-scroll\\n * @return {undefined}\\n */\\nWindow.prototype.scroll = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-scrollto\\n * @return {undefined}\\n */\\nWindow.prototype.scrollTo = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-scrollby\\n * @return {undefined}\\n */\\nWindow.prototype.scrollBy = function(x, y) {};\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-screenx\\n */\\nWindow.prototype.screenX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-screeny\\n */\\nWindow.prototype.screenY;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-outerwidth\\n */\\nWindow.prototype.outerWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-window-outerheight\\n */\\nWindow.prototype.outerHeight;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/cssom-view/#mediaquerylist\\n */\\nfunction MediaQueryList() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mediaquerylist-media\\n */\\nMediaQueryList.prototype.media;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mediaquerylist-matches\\n */\\nMediaQueryList.prototype.matches;\\n\\n/**\\n * @param {MediaQueryListListener} listener\\n * @see http://www.w3.org/TR/cssom-view/#dom-mediaquerylist-addlistener\\n * @return {undefined}\\n */\\nMediaQueryList.prototype.addListener = function(listener) {};\\n\\n/**\\n * @param {MediaQueryListListener} listener\\n * @see http://www.w3.org/TR/cssom-view/#dom-mediaquerylist-removelistener\\n * @return {undefined}\\n */\\nMediaQueryList.prototype.removeListener = function(listener) {};\\n\\n/**\\n * @typedef {(function(!MediaQueryList) : void)}\\n * @see http://www.w3.org/TR/cssom-view/#mediaquerylistlistener\\n */\\nvar MediaQueryListListener;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/cssom-view/#screen\\n */\\nfunction Screen() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-availwidth\\n */\\nScreen.prototype.availWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-availheight\\n */\\nScreen.prototype.availHeight;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-width\\n */\\nScreen.prototype.width;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-height\\n */\\nScreen.prototype.height;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-colordepth\\n */\\nScreen.prototype.colorDepth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-screen-pixeldepth\\n */\\nScreen.prototype.pixelDepth;\\n\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-document-interface\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {?Element}\\n * @see http://www.w3.org/TR/cssom-view/#dom-document-elementfrompoint\\n */\\nDocument.prototype.elementFromPoint = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {CaretPosition}\\n * @see http://www.w3.org/TR/cssom-view/#dom-document-caretpositionfrompoint\\n */\\nDocument.prototype.caretPositionFromPoint = function(x, y) {};\\n\\n/**\\n * @type {Element}\\n * @see http://dev.w3.org/csswg/cssom-view/#dom-document-scrollingelement\\n */\\nDocument.prototype.scrollingElement;\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/cssom-view/#caretposition\\n */\\nfunction CaretPosition() {}\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/cssom-view/#dom-caretposition-offsetnode\\n */\\nCaretPosition.prototype.offsetNode;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-caretposition-offset\\n */\\nCaretPosition.prototype.offset;\\n\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-element-interface\\n\\n/**\\n * @return {!ClientRectList}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-getclientrects\\n */\\nElement.prototype.getClientRects = function() {};\\n\\n/**\\n * @return {!ClientRect}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect\\n */\\nElement.prototype.getBoundingClientRect = function() {};\\n\\n/**\\n * @param {(boolean|{behavior: string, block: string})=} opt_top\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-scrollintoview\\n * @return {undefined}\\n */\\nElement.prototype.scrollIntoView = function(opt_top) {};\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-scrolltop\\n */\\nElement.prototype.scrollTop;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-scrollleft\\n */\\nElement.prototype.scrollLeft;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth\\n */\\nElement.prototype.scrollWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-scrollheight\\n */\\nElement.prototype.scrollHeight;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-clienttop\\n */\\nElement.prototype.clientTop;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-clientleft\\n */\\nElement.prototype.clientLeft;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-clientwidth\\n */\\nElement.prototype.clientWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-element-clientheight\\n */\\nElement.prototype.clientHeight;\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface\\n\\n/**\\n * @type {Element}\\n * @see http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetparent\\n */\\nHTMLElement.prototype.offsetParent;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsettop\\n */\\nHTMLElement.prototype.offsetTop;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetleft\\n */\\nHTMLElement.prototype.offsetLeft;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetwidth\\n */\\nHTMLElement.prototype.offsetWidth;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-htmlelement-offsetheight\\n */\\nHTMLElement.prototype.offsetHeight;\\n\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-range-interface\\n\\n/**\\n * @return {!ClientRectList}\\n * @see http://www.w3.org/TR/cssom-view/#dom-range-getclientrects\\n */\\nRange.prototype.getClientRects = function() {};\\n\\n/**\\n * @return {!ClientRect}\\n * @see http://www.w3.org/TR/cssom-view/#dom-range-getboundingclientrect\\n */\\nRange.prototype.getBoundingClientRect = function() {};\\n\\n\\n// http://www.w3.org/TR/cssom-view/#extensions-to-the-mouseevent-interface\\n\\n// MouseEvent: screen{X,Y} and client{X,Y} are in DOM Level 2/3 Event as well,\\n// so it seems like a specification issue. I've emailed www-style@w3.org in\\n// hopes of resolving the conflict, but in the mean time they can live here\\n// (http://lists.w3.org/Archives/Public/www-style/2012May/0039.html).\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-screenx\\n */\\n/"; a.a+='/MouseEvent.prototype.screenX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-screeny\\n */\\n//MouseEvent.prototype.screenY;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-pagex\\n */\\nMouseEvent.prototype.pageX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-pagey\\n */\\nMouseEvent.prototype.pageY;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-clientx\\n */\\n//MouseEvent.prototype.clientX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-clienty\\n */\\n//MouseEvent.prototype.clientY;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-x\\n */\\nMouseEvent.prototype.x;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-y\\n */\\nMouseEvent.prototype.y;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-offsetx\\n */\\nMouseEvent.prototype.offsetX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-mouseevent-offsety\\n */\\nMouseEvent.prototype.offsetY;\\n\\n\\n// http://www.w3.org/TR/cssom-view/#rectangles\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/cssom-view/#the-clientrectlist-interface\\n * @implements {IArrayLike}\\n */\\nfunction ClientRectList() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrectlist-length\\n */\\nClientRectList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {ClientRect}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrectlist-item\\n */\\nClientRectList.prototype.item = function(index) {};\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/cssom-view/#the-clientrect-interface\\n */\\nfunction ClientRect() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-top\\n */\\nClientRect.prototype.top;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-right\\n */\\nClientRect.prototype.right;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-bottom\\n */\\nClientRect.prototype.bottom;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-left\\n */\\nClientRect.prototype.left;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-width\\n */\\nClientRect.prototype.width;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/cssom-view/#dom-clientrect-height\\n */\\nClientRect.prototype.height;\\n\\n/**\\n * @constructor\\n * http://www.w3.org/TR/css3-conditional/#CSS-interface\\n */\\nfunction CSSInterface() {}\\n\\n/**\\n * @param {string} ident\\n * @return {string}\\n * @see http://www.w3.org/TR/cssom/#the-css.escape()-method\\n * @throws DOMException {@see DOMException.INVALID_CHARACTER_ERR}\\n */\\nCSSInterface.prototype.escape = function(ident) {};\\n\\n/**\\n * @param {string} property\\n * @param {string=} opt_value\\n * @return {boolean}\\n */\\nCSSInterface.prototype.supports = function(property, opt_value) {};\\n\\n/**\\n * TODO(nicksantos): This suppress tag probably isn\'t needed, and\\n * should be removed.\\n * @suppress {duplicate}\\n * @type {CSSInterface}\\n */\\nvar CSS;\\n\\n/** @type {CSSInterface} */\\nWindow.prototype.CSS;\\n\\n// http://dev.w3.org/csswg/css-font-loading/\\n\\n/**\\n * Set of possible string values: \'error\', \'loaded\', \'loading\', \'unloaded\'.\\n * @typedef {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#enumdef-fontfaceloadstatus\\n */\\nvar FontFaceLoadStatus;\\n\\n/**\\n * @typedef {{\\n * style: (string|undefined),\\n * weight: (string|undefined),\\n * stretch: (string|undefined),\\n * unicodeRange: (string|undefined),\\n * variant: (string|undefined),\\n * featureSettings: (string|undefined)\\n * }}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dictdef-fontfacedescriptors\\n */\\nvar FontFaceDescriptors;\\n\\n/**\\n * @constructor\\n * @param {string} fontFamily\\n * @param {(string|ArrayBuffer|ArrayBufferView)} source\\n * @param {!FontFaceDescriptors=} opt_descriptors\\n * @see http://dev.w3.org/csswg/css-font-loading/#font-face-constructor\\n */\\nfunction FontFace(fontFamily, source, opt_descriptors) {}\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-family\\n */\\nFontFace.prototype.family;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-style\\n */\\nFontFace.prototype.style;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-weight\\n */\\nFontFace.prototype.weight;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-stretch\\n */\\nFontFace.prototype.stretch;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-unicoderange\\n */\\nFontFace.prototype.unicodeRange;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-variant\\n */\\nFontFace.prototype.variant;\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-featuresettings\\n */\\nFontFace.prototype.featureSettings;\\n\\n/**\\n * @type {FontFaceLoadStatus}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontface-status\\n */\\nFontFace.prototype.status;\\n\\n/**\\n * @return {!Promise}\\n * @see http://dev.w3.org/csswg/css-font-loading/#font-face-load\\n */\\nFontFace.prototype.load = function() {};\\n\\n/**\\n * Set of possible string values: \'loaded\', \'loading\'.\\n * @typedef {string}\\n * @see http://dev.w3.org/csswg/css-font-loading/#enumdef-fontfacesetloadstatus\\n */\\nvar FontFaceSetLoadStatus;\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n * @see http://dev.w3.org/csswg/css-font-loading/#FontFaceSet-interface\\n */\\nfunction FontFaceSet() {}\\n\\n// Event handlers\\n// http://dev.w3.org/csswg/css-font-loading/#FontFaceSet-events\\n\\n/** @type {?function (Event)} */ FontFaceSet.prototype.onloading;\\n/** @type {?function (Event)} */ FontFaceSet.prototype.onloadingdone;\\n/** @type {?function (Event)} */ FontFaceSet.prototype.onloadingerror;\\n\\n/**\\n * @param {!FontFace} value\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-add\\n * @return {undefined}\\n */\\nFontFaceSet.prototype.add = function(value) {};\\n\\n/**\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-clear\\n * @return {undefined}\\n */\\nFontFaceSet.prototype.clear = function() {};\\n\\n/**\\n * @param {!FontFace} value\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-delete\\n * @return {undefined}\\n */\\nFontFaceSet.prototype.delete = function(value) {};\\n\\n/**\\n * @param {!FontFace} font\\n * @return {boolean}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-has\\n */\\nFontFaceSet.prototype.has = function(font) {};\\n\\n/**\\n * @param {function(!FontFace, number, !FontFaceSet)} cb\\n * @param {Object|undefined=} opt_selfObj\\n * see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-foreach\\n * @return {undefined}\\n */\\nFontFaceSet.prototype.forEach = function(cb, opt_selfObj) {};\\n\\n/**\\n * @param {string} font\\n * @param {string=} opt_text\\n * @return {!Promise>}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-load\\n */\\nFontFaceSet.prototype.load = function(font, opt_text) {};\\n\\n/**\\n * @param {string} font\\n * @param {string=} opt_text\\n * @return {boolean}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-check\\n */\\nFontFaceSet.prototype.check = function(font, opt_text) {};\\n\\n/**\\n * @type {!Promise}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-ready\\n */\\nFontFaceSet.prototype.ready;\\n\\n/**\\n * @type {FontFaceSetLoadStatus}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfaceset-status\\n */\\nFontFaceSet.prototype.status;\\n","externs/gecko_css.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for Gecko\'s custom CSS properties. Copied from:\\n * http://mxr.mozilla.org/mozilla2.0/source/dom/interfaces/css/nsIDOMCSS2Properties.idl\\n *\\n * @externs\\n * @author nicksantos@google.com (Nick Santos)\\n */\\n\\n\\n/** @type {string} */ CSSProperties.prototype.MozAppearance;\\n/** @type {string} */ CSSProperties.prototype.MozBackfaceVisibility;\\n/** @type {string} */ CSSProperties.prototype.MozBackgroundClip;\\n/** @type {string} */ CSSProperties.prototype.MozBackgroundInlinePolicy;\\n/** @type {string} */ CSSProperties.prototype.MozBackgroundOrigin;\\n/** @type {string} */ CSSProperties.prototype.MozBinding;\\n/** @type {string} */ CSSProperties.prototype.MozBorderBottomColors;\\n/** @type {string} */ CSSProperties.prototype.MozBorderEnd;\\n/** @type {string} */ CSSProperties.prototype.MozBorderEndColor;\\n/** @type {string} */ CSSProperties.prototype.MozBorderEndStyle;\\n/** @type {string} */ CSSProperties.prototype.MozBorderEndWidth;\\n/** @type {string} */ CSSProperties.prototype.MozBorderImage;\\n/** @type {string} */ CSSProperties.prototype.MozBorderLeftColors;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRadius;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRadiusTopleft;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRadiusTopright;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRadiusBottomleft;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRadiusBottomright;\\n/** @type {string} */ CSSProperties.prototype.MozBorderRightColors;\\n/** @type {string} */ CSSProperties.prototype.MozBorderStart;\\n/** @type {string} */ CSSProperties.prototype.MozBorderStartColor;\\n/** @type {string} */ CSSProperties.prototype.MozBorderStartStyle;\\n/** @type {string} */ CSSProperties.prototype.MozBorderStartWidth;\\n/** @type {string} */ CSSProperties.prototype.MozBorderTopColors;\\n/** @type {string} */ CSSProperties.prototype.MozBoxAlign;\\n/** @type {string} */ CSSProperties.prototype.MozBoxDirection;\\n/** @type {string} */ CSSProperties.prototype.MozBoxFlex;\\n/** @type {string} */ CSSProperties.prototype.MozBoxOrdinalGroup;\\n/** @type {string} */ CSSProperties.prototype.MozBoxOrient;\\n/** @type {string} */ CSSProperties.prototype.MozBoxPack;\\n/** @type {string} */ CSSProperties.prototype.MozBoxSizing;\\n/** @type {string} */ CSSProperties.prototype.MozBoxShadow;\\n/** @type {string} */ CSSProperties.prototype.MozColumnCount;\\n/** @type {string} */ CSSProperties.prototype.MozColumnGap;\\n/** @type {string} */ CSSProperties.prototype.MozColumnRule;\\n/** @type {string} */ CSSProperties.prototype.MozColumnRuleColor;\\n/** @type {string} */ CSSProperties.prototype.MozColumnRuleStyle;\\n/** @type {string} */ CSSProperties.prototype.MozColumnRuleWidth;\\n/** @type {string} */ CSSProperties.prototype.MozColumnWidth;\\n/** @type {string} */ CSSProperties.prototype.MozFloatEdge;\\n/** @type {string} */ CSSProperties.prototype.MozFontFeatureSettings;\\n/** @type {string} */ CSSProperties.prototype.MozFontLanguageOverride;\\n/** @type {string} */ CSSProperties.prototype.MozForceBrokenImageIcon;\\n/** @type {string} */ CSSProperties.prototype.MozImageRegion;\\n/** @type {string} */ CSSProperties.prototype.MozMarginEnd;\\n/** @type {string} */ CSSProperties.prototype.MozMarginStart;\\n/** @type {number|string} */ CSSProperties.prototype.MozOpacity;\\n/** @type {string} */ CSSProperties.prototype.MozOutline;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineColor;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineOffset;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineRadius;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineRadiusBottomleft;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineRadiusBottomright;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineRadiusTopleft;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineRadiusTopright;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineStyle;\\n/** @type {string} */ CSSProperties.prototype.MozOutlineWidth;\\n/** @type {string} */ CSSProperties.prototype.MozPaddingEnd;\\n/** @type {string} */ CSSProperties.prototype.MozPaddingStart;\\n/** @type {string} */ CSSProperties.prototype.MozPerspective;\\n/** @type {string} */ CSSProperties.prototype.MozStackSizing;\\n/** @type {string} */ CSSProperties.prototype.MozTabSize;\\n/** @type {string} */ CSSProperties.prototype.MozTransform;\\n/** @type {string} */ CSSProperties.prototype.MozTransformOrigin;\\n/** @type {string} */ CSSProperties.prototype.MozTransition;\\n/** @type {string} */ CSSProperties.prototype.MozTransitionDelay;\\n/** @type {string} */ CSSProperties.prototype.MozTransitionDuration;\\n/** @type {string} */ CSSProperties.prototype.MozTransitionProperty;\\n/** @type {string} */ CSSProperties.prototype.MozTransitionTimingFunction;\\n/** @type {string} */ CSSProperties.prototype.MozUserFocus;\\n/** @type {string} */ CSSProperties.prototype.MozUserInput;\\n/** @type {string} */ CSSProperties.prototype.MozUserModify;\\n/** @type {string} */ CSSProperties.prototype.MozUserSelect;\\n/** @type {string} */ CSSProperties.prototype.MozWindowShadow;\\n\\n\\n// These are non-standard Gecko CSSOM properties on Window.prototype.screen.\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.screen.availTop\\n */\\nScreen.prototype.availTop;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.screen.availLeft\\n */\\nScreen.prototype.availLeft;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.screen.left\\n */\\nScreen.prototype.left;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/window.screen.top\\n */\\nScreen.prototype.top;\\n","externs/ie_css.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for IE\'s custom CSS properties, as defined here:\\n * http://msdn.microsoft.com/en-us/library/aa768661(VS.85).aspx\\n *\\n * This page is also useful for the IDL definitions:\\n * http://source.winehq.org/source/include/mshtml.idl\\n *\\n * @externs\\n * @author nicksantos@google.com\\n */\\n\\n/** @type {Element} */\\nStyleSheet.prototype.owningElement;\\n\\n/** @type {boolean} */\\nStyleSheet.prototype.readOnly;\\n\\n/** @type {StyleSheetList} */\\nStyleSheet.prototype.imports;\\n\\n/** @type {string} */\\nStyleSheet.prototype.id;\\n\\n/**\\n * @param {string} bstrURL\\n * @param {number} lIndex\\n * @return {number}\\n */\\nStyleSheet.prototype.addImport;\\n\\n/**\\n * @param {string} bstrSelector\\n * @param {string} bstrStyle\\n * @param {number=} opt_iIndex\\n * @return {number}\\n * @see http://msdn.microsoft.com/en-us/library/aa358796%28v=vs.85%29.aspx\\n */\\nStyleSheet.prototype.addRule;\\n\\n/**\\n * @param {number} lIndex\\n */\\nStyleSheet.prototype.removeImport;\\n\\n/**\\n * @param {number} lIndex\\n */\\nStyleSheet.prototype.removeRule;\\n\\n/** @type {string} */\\nStyleSheet.prototype.cssText;\\n\\n/** @type {CSSRuleList} */\\nStyleSheet.prototype.rules;\\n\\n// StyleSheet methods\\n\\n/**\\n * @param {string} propName\\n * @return {string}\\n * @see http://msdn.microsoft.com/en-us/library/aa358797(VS.85).aspx\\n */\\nStyleSheet.prototype.getExpression;\\n\\n/**\\n * @param {string} name\\n * @param {string} expression\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/ms531196(VS.85).aspx\\n */\\nStyleSheet.proto'; a.a+='type.setExpression;\\n\\n/**\\n * @param {string} expression\\n * @return {undefined}\\n * @see http://msdn.microsoft.com/en-us/library/aa358798(VS.85).aspx\\n */\\nStyleSheet.prototype.removeExpression;\\n\\n// IE-only CSS style names.\\n\\n/** @type {string} */ CSSProperties.prototype.backgroundPositionX;\\n\\n/** @type {string} */ CSSProperties.prototype.backgroundPositionY;\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ie/ms531081(v=vs.85).aspx\\n * NOTE: Left untyped to avoid conflict with caller.\\n */\\nCSSProperties.prototype.behavior;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms533883.aspx\\n */\\nCSSProperties.prototype.imeMode;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms534176(VS.85).aspx\\n */\\nCSSProperties.prototype.msInterpolationMode;\\n\\n/** @type {string} */ CSSProperties.prototype.overflowX;\\n\\n/** @type {string} */ CSSProperties.prototype.overflowY;\\n\\n/** @type {number} */ CSSProperties.prototype.pixelWidth;\\n\\n/** @type {number} */ CSSProperties.prototype.pixelHeight;\\n\\n/** @type {number} */ CSSProperties.prototype.pixelLeft;\\n\\n/** @type {number} */ CSSProperties.prototype.pixelTop;\\n\\n/** @type {string} */ CSSProperties.prototype.styleFloat;\\n\\n/**\\n * @type {string|number}\\n * @see http://msdn.microsoft.com/en-us/library/ms535169(VS.85).aspx\\n */\\nCSSProperties.prototype.zoom;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/ms535153(VS.85).aspx\\n */\\nCSSProperties.prototype.writingMode;\\n\\n/**\\n * IE-specific extensions.\\n * @see http://blogs.msdn.com/b/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx\\n */\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsAccelerator;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsBackgroundPositionX;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsBackgroundPositionY;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsBehavior;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsBlockProgression;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsFilter;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsImeMode;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLayoutGrid;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLayoutGridChar;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLayoutGridLine;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLayoutGridMode;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLayoutGridType;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLineBreak;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsLineGridMode;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsInterpolationMode;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsOverflowX;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsOverflowY;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbar3dlightColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarArrowColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarBaseColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarDarkshadowColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarFaceColor;\\n\\nCSSProperties.prototype.MsScrollbarHighlightColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarShadowColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsScrollbarTrackColor;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextAlignLast;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextAutospace;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextJustify;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextKashidaSpace;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextOverflow;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsTextUnderlinePosition;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsWordBreak;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsWordWrap;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsWritingMode;\\n\\n/** @type {string} */\\nCSSProperties.prototype.MsZoom;\\n\\n// See: http://msdn.microsoft.com/en-us/library/windows/apps/Hh702466.aspx\\n\\n/** @type {string} */\\nCSSProperties.prototype.msContentZooming;\\n\\n/** @type {string} */\\nCSSProperties.prototype.msTouchAction;\\n\\n/** @type {string} */\\nCSSProperties.prototype.msTransform;\\n\\n/** @type {string} */\\nCSSProperties.prototype.msTransition;\\n","externs/webkit_css.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for WebKit\'s custom CSS properties. Copied from:\\n * {@link\\n * http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSPropertyNames.in}\\n *\\n * If you make changes to this file, notice that every property appears\\n * twice: once as an uppercase name and once as a lowercase name.\\n * WebKit allows both. The uppercase version is preferred.\\n *\\n * @externs\\n * @author nicksantos@google.com (Nick Santos)\\n * @author mastepien@google.com (Marek Stepien)\\n */\\n\\n/** @type {string} */ CSSProperties.prototype.WebkitAlignContent;\\n/** @type {string} */ CSSProperties.prototype.WebkitAlignItems;\\n/** @type {string} */ CSSProperties.prototype.WebkitAlignSelf;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimation;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationDelay;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationDirection;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationDuration;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationFillMode;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationIterationCount;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationName;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationPlayState;\\n/** @type {string} */ CSSProperties.prototype.WebkitAnimationTimingFunction;\\n/** @type {string} */ CSSProperties.prototype.WebkitAppearance;\\n/** @type {string} */ CSSProperties.prototype.WebkitAppRegion;\\n/** @type {string} */ CSSProperties.prototype.WebkitAspectRatio;\\n/** @type {string} */ CSSProperties.prototype.WebkitBackfaceVisibility;\\n/** @type {string} */ CSSProperties.prototype.WebkitBackgroundClip;\\n/** @type {string} */ CSSProperties.prototype.WebkitBackgroundComposite;\\n/** @type {string} */ CSSProperties.prototype.WebkitBackgroundOrigin;\\n/** @type {string} */ CSSProperties.prototype.WebkitBackgroundSize;\\n/** @type {string} */ CSSProperties.prototype.WebkitBinding;\\n/** @type {string} */ CSSProperties.prototype.WebkitBlendMode;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderAfter;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderAfterWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBeforeWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBottomLeftRadius;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderBottomRightRadius;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderEnd;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderEndColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderEndStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderEndWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderFit;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderHorizontalSpacing;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderImage;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderRadius;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderStart;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderStartColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderStartStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderStartWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderTopLeftRadius;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderTopRightRadius;\\n/** @type {string} */ CSSProperties.prototype.WebkitBorderVerticalSpacing;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxAlign;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxDecorationBreak;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxDirection;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxFlex;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxFlexGroup;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxLines;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxOrdinalGroup;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxOrient;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxPack;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxReflect;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxShadow;\\n/** @type {string} */ CSSProperties.prototype.WebkitBoxSizing;\\n/** @type {string} */ CSSProperties.prototype.WebkitColorCorrection;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnAxis;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakAfter;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnBreakInside;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnCount;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnGap;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnProgression;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnRule;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnRuleWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumns;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnSpan;\\n/** @type {string} */ CSSProperties.prototype.WebkitColumnWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitDashboardRegion;\\n/** @type {string} */ CSSProperties.prototype.WebkitFilter;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlex;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexBasis;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexDirection;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexFlow;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexGrow;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexShrink;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlexWrap;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlowFrom;\\n/** @type {string} */ CSSProperties.prototype.WebkitFlowInto;\\n/** @type {string} */ CSSProperties.prototype.WebkitFontSizeDelta;\\n/** @type {string} */ CSSProperties.prototype.WebkitFontSmoothing;\\n/** @type {string} */ CSSProperties.prototype.WebkitGridColumn;\\n/** @type {string} */ CSSProperties.prototype.WebkitGridColumns;\\n/** @type {string} */ CSSProperties.prototype.WebkitGridRow;\\n/** @type {string} */ CSSProperties.prototype.WebkitGridRows;\\n/** @type {string} */ CSSProperties.prototype.WebkitHighlight;\\n/** @type {string} */ CSSProperties.prototype.WebkitHyphenateCharacter;\\n/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitAfter;\\n/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitHyphenateLimitLines;\\n/** @type {string} */ CSSProperties.prototype.WebkitHyphens;\\n/** @type {string} */ CSSProperties.prototype.WebkitJustifyContent;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineAlign;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineBoxContain;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineBreak;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineClamp;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineGrid;\\n/** @type {string} */ CSSProperties.prototype.WebkitLineSnap;\\n/** @type {string} */ CSSProperties.prototype.WebkitLocale;\\n/** @type {string} */ CSSProperties.prototype.WebkitLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.WebkitLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginAfter;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginAfterCollapse;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginBeforeCollapse;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginBottomCollapse;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginCollapse;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginEnd;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginStart;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarginTopCollapse;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarquee;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarqueeDirection;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarqueeIncrement;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarqueeRepetition;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarqueeSpeed;\\n/** @type {string} */ CSSProperties.prototype.WebkitMarqueeStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitMask;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskAttachment;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImage;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageOutset;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageRepeat;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageSlice;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageSource;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskBoxImageWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskClip;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskComposite;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskImage;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskOrigin;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskPosition;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskPositionX;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskPositionY;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeat;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeatX;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskRepeatY;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaskSize;\\n/** @type {string} */\\nCSSProperties.prototype.WebkitMatchNearestMailBlockquoteColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaxLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.WebkitMaxLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitMinLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.WebkitMinLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitNbspMode;\\n/** @type {string} */ CSSProperties.prototype.WebkitOrder;\\n/** @type {string} */ CSSProperties.prototype.WebkitOverflowScrolling;\\n/** @type {string} */ CSSProperties.prototype.WebkitPaddingAfter;\\n/** @type {string} */ CSSProperties.prototype.WebkitPaddingBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitPaddingEnd;\\n/** @type {string} */ CSSProperties.prototype.WebkitPaddingStart;\\n/** @type {string} */ CSSProperties.prototype.WebkitPerspective;\\n/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOrigin;\\n/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOriginX;\\n/** @type {string} */ CSSProperties.prototype.WebkitPerspectiveOriginY;\\n/** @type {string} */ CSSProperties.prototype.WebkitPrintColorAdjust;\\n/** @type {string} */ CSSProperties.prototype.WebkitRegionBreakAfter;\\n/** @type {string} */ CSSProperties.proto'; a.a+="type.WebkitRegionBreakBefore;\\n/** @type {string} */ CSSProperties.prototype.WebkitRegionBreakInside;\\n/** @type {string} */ CSSProperties.prototype.WebkitRegionOverflow;\\n/** @type {string} */ CSSProperties.prototype.WebkitRtlOrdering;\\n/** @type {string} */ CSSProperties.prototype.WebkitRubyPosition;\\n/** @type {string} */ CSSProperties.prototype.WebkitShapeInside;\\n/** @type {string} */ CSSProperties.prototype.WebkitShapeMargin;\\n/** @type {string} */ CSSProperties.prototype.WebkitShapeOutside;\\n/** @type {string} */ CSSProperties.prototype.WebkitShapePadding;\\n/** @type {string} */ CSSProperties.prototype.WebkitTapHighlightColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextAlignLast;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextCombine;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationLine;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationsInEffect;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextDecorationStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasis;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisPosition;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextEmphasisStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextFillColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextOrientation;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextSecurity;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextSizeAdjust;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextStroke;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextStrokeColor;\\n/** @type {string} */ CSSProperties.prototype.WebkitTextStrokeWidth;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransform;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransformOrigin;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginX;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginY;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransformOriginZ;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransformStyle;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransition;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransitionDelay;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransitionDuration;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransitionProperty;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransitionRepeatCount;\\n/** @type {string} */ CSSProperties.prototype.WebkitTransitionTimingFunction;\\n/** @type {string} */ CSSProperties.prototype.WebkitUserDrag;\\n/** @type {string} */ CSSProperties.prototype.WebkitUserModify;\\n/** @type {string} */ CSSProperties.prototype.WebkitUserSelect;\\n/** @type {string} */ CSSProperties.prototype.WebkitWrap;\\n/** @type {string} */ CSSProperties.prototype.WebkitWrapFlow;\\n/** @type {string} */ CSSProperties.prototype.WebkitWrapThrough;\\n/** @type {string} */ CSSProperties.prototype.WebkitWritingMode;\\n\\n// WebKit also adds bindings for the lowercase versions of these properties.\\n// The uppercase version is preferred.\\n\\n/** @type {string} */ CSSProperties.prototype.webkitAlignContent;\\n/** @type {string} */ CSSProperties.prototype.webkitAlignItems;\\n/** @type {string} */ CSSProperties.prototype.webkitAlignSelf;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimation;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationDelay;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationDirection;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationDuration;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationFillMode;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationIterationCount;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationName;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationPlayState;\\n/** @type {string} */ CSSProperties.prototype.webkitAnimationTimingFunction;\\n/** @type {string} */ CSSProperties.prototype.webkitAppearance;\\n/** @type {string} */ CSSProperties.prototype.webkitAppRegion;\\n/** @type {string} */ CSSProperties.prototype.webkitAspectRatio;\\n/** @type {string} */ CSSProperties.prototype.webkitBackfaceVisibility;\\n/** @type {string} */ CSSProperties.prototype.webkitBackgroundClip;\\n/** @type {string} */ CSSProperties.prototype.webkitBackgroundComposite;\\n/** @type {string} */ CSSProperties.prototype.webkitBackgroundOrigin;\\n/** @type {string} */ CSSProperties.prototype.webkitBackgroundSize;\\n/** @type {string} */ CSSProperties.prototype.webkitBinding;\\n/** @type {string} */ CSSProperties.prototype.webkitBlendMode;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderAfterColor;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderAfterStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderAfterWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeColor;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBeforeWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBottomLeftRadius;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderBottomRightRadius;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderEnd;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderEndColor;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderEndStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderEndWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderFit;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderHorizontalSpacing;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderImage;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderRadius;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderStart;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderStartColor;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderStartStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderStartWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderTopLeftRadius;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderTopRightRadius;\\n/** @type {string} */ CSSProperties.prototype.webkitBorderVerticalSpacing;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxAlign;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxDecorationBreak;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxDirection;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxFlex;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxFlexGroup;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxLines;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxOrdinalGroup;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxOrient;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxPack;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxReflect;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxShadow;\\n/** @type {string} */ CSSProperties.prototype.webkitBoxSizing;\\n/** @type {string} */ CSSProperties.prototype.webkitColorCorrection;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnAxis;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnBreakAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnBreakBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnBreakInside;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnCount;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnGap;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnProgression;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnRule;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnRuleColor;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnRuleStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnRuleWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitColumns;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnSpan;\\n/** @type {string} */ CSSProperties.prototype.webkitColumnWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitDashboardRegion;\\n/** @type {string} */ CSSProperties.prototype.webkitFilter;\\n/** @type {string} */ CSSProperties.prototype.webkitFlex;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexBasis;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexDirection;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexFlow;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexGrow;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexShrink;\\n/** @type {string} */ CSSProperties.prototype.webkitFlexWrap;\\n/** @type {string} */ CSSProperties.prototype.webkitFlowFrom;\\n/** @type {string} */ CSSProperties.prototype.webkitFlowInto;\\n/** @type {string} */ CSSProperties.prototype.webkitFontSizeDelta;\\n/** @type {string} */ CSSProperties.prototype.webkitFontSmoothing;\\n/** @type {string} */ CSSProperties.prototype.webkitGridColumn;\\n/** @type {string} */ CSSProperties.prototype.webkitGridColumns;\\n/** @type {string} */ CSSProperties.prototype.webkitGridRow;\\n/** @type {string} */ CSSProperties.prototype.webkitGridRows;\\n/** @type {string} */ CSSProperties.prototype.webkitHighlight;\\n/** @type {string} */ CSSProperties.prototype.webkitHyphenateCharacter;\\n/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitHyphenateLimitLines;\\n/** @type {string} */ CSSProperties.prototype.webkitHyphens;\\n/** @type {string} */ CSSProperties.prototype.webkitJustifyContent;\\n/** @type {string} */ CSSProperties.prototype.webkitLineAlign;\\n/** @type {string} */ CSSProperties.prototype.webkitLineBoxContain;\\n/** @type {string} */ CSSProperties.prototype.webkitLineBreak;\\n/** @type {string} */ CSSProperties.prototype.webkitLineClamp;\\n/** @type {string} */ CSSProperties.prototype.webkitLineGrid;\\n/** @type {string} */ CSSProperties.prototype.webkitLineSnap;\\n/** @type {string} */ CSSProperties.prototype.webkitLocale;\\n/** @type {string} */ CSSProperties.prototype.webkitLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.webkitLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginAfterCollapse;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginBeforeCollapse;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginBottomCollapse;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginCollapse;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginEnd;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginStart;\\n/** @type {string} */ CSSProperties.prototype.webkitMarginTopCollapse;\\n/** @type {string} */ CSSProperties.prototype.webkitMarquee;\\n/** @type {string} */ CSSProperties.prototype.webkitMarqueeDirection;\\n/** @type {string} */ CSSProperties.prototype.webkitMarqueeIncrement;\\n/** @type {string} */ CSSProperties.prototype.webkitMarqueeRepetition;\\n/** @type {string} */ CSSProperties.prototype.webkitMarqueeSpeed;\\n/** @type {string} */ CSSProperties.prototype.webkitMarqueeStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitMask;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskAttachment;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImage;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageOutset;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageRepeat;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageSlice;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageSource;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskBoxImageWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskClip;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskComposite;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskImage;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskOrigin;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskPosition;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskPositionX;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskPositionY;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskRepeat;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskRepeatX;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskRepeatY;\\n/** @type {string} */ CSSProperties.prototype.webkitMaskSize;\\n/** @type {string} */\\nCSSProperties.prototype.webkitMatchNearestMailBlockquoteColor;\\n/** @type {string} */ CSSProperties.prototype.webkitMaxLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.webkitMaxLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitMinLogicalHeight;\\n/** @type {string} */ CSSProperties.prototype.webkitMinLogicalWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitNbspMode;\\n/** @type {string} */ CSSProperties.prototype.webkitOrder;\\n/** @type {string} */ CSSProperties.prototype.webkitOverflowScrolling;\\n/** @type {string} */ CSSProperties.prototype.webkitPaddingAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitPaddingBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitPaddingEnd;\\n/** @type {string} */ CSSProperties.prototype.webkitPaddingStart;\\n/** @type {string} */ CSSProperties.prototype.webkitPerspective;\\n/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOrigin;\\n/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOriginX;\\n/** @type {string} */ CSSProperties.prototype.webkitPerspectiveOriginY;\\n/** @type {string} */ CSSProperties.prototype.webkitPrintColorAdjust;\\n/** @type {string} */ CSSProperties.prototype.webkitRegionBreakAfter;\\n/** @type {string} */ CSSProperties.prototype.webkitRegionBreakBefore;\\n/** @type {string} */ CSSProperties.prototype.webkitRegionBreakInside;\\n/** @type {string} */ CSSProperties.prototype.webkitRegionOverflow;\\n/** @type {string} */ CSSProperties.prototype.webkitRtlOrdering;\\n/** @type {string} */ CSSProperties.prototype.webkitRubyPosition;\\n/** @type {string} */ CSSProperties.prototype.webkitShapeInside;\\n/** @type {string} */ CSSProperties.prototype.webkitShapeMargin;\\n/** @type {string} */ CSSProperties.prototype.webkitShapeOutside;\\n/** @type {string} */ CSSProperties.prototype.webkitShapePadding;\\n/** @type {string} */ CSSProperties.prototype.webkitTapHighlightColor;\\n/** @type {string} */ CSSProperties.prototype.webkitTextAlignLast;\\n/** @type {string} */ CSSProperties.prototype.webkitTextCombine;\\n/** @type {string} */ CSSProperties.prototype.webkitTextDecorationLine;\\n/** @type {string} */ CSSProperties.prototype.webkitTextDecorationsInEffect;\\n/** @type {string} */ CSSProperties.prototype.webkitTextDecorationStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitTextEmphasis;\\n/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisColor;\\n/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisPosition;\\n/** @type {string} */ CSSProperties.prototype.webkitTextEmphasisStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitTextFillColor;\\n/** @type {string} */ CSSProperties.prototype.webkitTextOrientation;\\n/** @type {string} */ CSSProperties.prototype.webkitTextSecurity;\\n/** @type {string} */ CSSProperties.prototype.webkitTextSizeAdjust;\\n/** @type {string} */ CSSProperties.prototype.webkitTextStroke;\\n/** @type {string} */ CSSProperties.prototype.webkitTextStrokeColor;\\n/** @type {string} */ CSSProperties.prototype.webkitTextStrokeWidth;\\n/** @type {string} */ CSSProperties.prototype.webkitTransform;\\n/** @type {string} */ CSSProperties.prototype.webkitTransformOrigin;\\n/** @type {string} */ CSSProperties.prototype.webkitTransformOriginX;\\n/** @type {string} */ CSSProperties.prototype.webkitTransformOriginY;\\n/** @type {string} */ CSSProperties.prototype.webkitTransformOriginZ;\\n/** @type {string} */ CSSProperties.prototype.webkitTransformStyle;\\n/** @type {string} */ CSSProperties.prototype.webkitTransition;\\n/** @type {string} */ CSSProperties.prototype.webkitTransitionDelay;\\n/"; a.a+='** @type {string} */ CSSProperties.prototype.webkitTransitionDuration;\\n/** @type {string} */ CSSProperties.prototype.webkitTransitionProperty;\\n/** @type {string} */ CSSProperties.prototype.webkitTransitionRepeatCount;\\n/** @type {string} */ CSSProperties.prototype.webkitTransitionTimingFunction;\\n/** @type {string} */ CSSProperties.prototype.webkitUserDrag;\\n/** @type {string} */ CSSProperties.prototype.webkitUserModify;\\n/** @type {string} */ CSSProperties.prototype.webkitUserSelect;\\n/** @type {string} */ CSSProperties.prototype.webkitWrap;\\n/** @type {string} */ CSSProperties.prototype.webkitWrapFlow;\\n/** @type {string} */ CSSProperties.prototype.webkitWrapThrough;\\n/** @type {string} */ CSSProperties.prototype.webkitWritingMode;\\n\\n/**\\n * @constructor\\n * @param {number} x\\n * @param {number} y\\n */\\nfunction WebKitPoint(x, y) {}\\n\\n/** @type {number} */\\nWebKitPoint.prototype.x;\\n\\n/** @type {number} */\\nWebKitPoint.prototype.y;\\n","externs/google.js":"/*\\n * Copyright 2010 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Declaration of the type level google namespace.\\n * @externs\\n * @author nicksantos@google.com (Nick Santos)\\n */\\n\\n/**\\n * Suppresses the compiler warning when multiple externs files declare the\\n * google namespace.\\n * @suppress {duplicate}\\n * @noalias\\n */\\n// TODO(nicksantos): Consolidate to one google namespace declaration.\\nvar google = {};\\n","externs/deprecated.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview JavaScript Built-Ins that are not part of any specifications\\n * but are still needed in some project\'s build.\\n * @externs\\n */\\n\\nvar opera = {};\\n\\nopera.postError;\\n\\n/** @nosideeffects */\\nopera.version = function() {};\\n\\n/** @constructor */\\nfunction XSLTProcessor() {}\\n\\n/**\\n * @constructor\\n * @extends {HTMLOptionElement}\\n * @param {*=} opt_text\\n * @param {*=} opt_value\\n * @param {*=} opt_defaultSelected\\n * @param {*=} opt_selected\\n */\\nfunction Option(opt_text, opt_value, opt_defaultSelected, opt_selected) {}\\n\\n\\n// The \\"methods\\" object is a place to hang arbitrary external\\n// properties. It is a throwback to pre-typed days, and should\\n// not be used for any new definitions; it exists only to bridge\\n// the gap between the old way and the new way.\\nvar methods = {};\\n","externs/fileapi.js":"/*\\n * Copyright 2010 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for objects in the File API, File Writer API, and\\n * File System API. Details of the API are at:\\n * http://www.w3.org/TR/FileAPI/\\n * http://www.w3.org/TR/file-writer-api/\\n * http://www.w3.org/TR/file-system-api/\\n *\\n * @externs\\n * @author dbk@google.com (David Barrett-Kahn)\\n * @author mpd@google.com (Michael Davidson)\\n */\\n\\n\\n/**\\n * @see http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob\\n * @param {Array=} opt_blobParts\\n * @param {Object=} opt_options\\n * @constructor\\n * @nosideeffects\\n */\\nfunction Blob(opt_blobParts, opt_options) {}\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-size\\n * @type {number}\\n */\\nBlob.prototype.size;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-type\\n * @type {string}\\n */\\nBlob.prototype.type;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-slice\\n * @param {number=} start\\n * @param {number=} length\\n * @param {string=} opt_contentType\\n * @return {!Blob}\\n * @nosideeffects\\n */\\nBlob.prototype.slice = function(start, length, opt_contentType) {};\\n\\n/**\\n * This replaces Blob.slice in Chrome since WebKit revision 84005.\\n * @see http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/0222.html\\n * @param {number=} start\\n * @param {number=} end\\n * @param {string=} opt_contentType\\n * @return {!Blob}\\n * @nosideeffects\\n */\\nBlob.prototype.webkitSlice = function(start, end, opt_contentType) {};\\n\\n/**\\n * This replaces Blob.slice in Firefox.\\n * @see http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/0222.html\\n * @param {number=} start\\n * @param {number=} end\\n * @param {string=} opt_contentType\\n * @return {!Blob}\\n * @nosideeffects\\n */\\nBlob.prototype.mozSlice = function(start, end, opt_contentType) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#the-blobbuilder-interface\\n * @constructor\\n */\\nfunction BlobBuilder() {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append0\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append1\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append2\\n * @param {string|Blob|ArrayBuffer} data\\n * @param {string=} endings\\n * @return {undefined}\\n */\\nBlobBuilder.prototype.append = function(data, endings) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-getBlob\\n * @param {string=} contentType\\n * @return {!Blob}\\n */\\nBlobBuilder.prototype.getBlob = function(contentType) {};\\n\\n/**\\n * This has replaced BlobBuilder in Chrome since WebKit revision 84008.\\n * @see http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/0222.html\\n * @constructor\\n */\\nfunction WebKitBlobBuilder() {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append0\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append1\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-append2\\n * @param {string|Blob|ArrayBuffer} data\\n * @param {string=} endings\\n * @return {undefined}\\n */\\nWebKitBlobBuilder.prototype.append = function(data, endings) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-BlobBuilder-getBlob\\n * @param {string=} contentType\\n * @return {!Blob}\\n */\\nWebKitBlobBuilder.prototype.getBlob = function(contentType) {};\\n\\n\\n/**\\n * @record\\n * @see https://dev.w3.org/2009/dap/file-system/file-dir-sys.html#the-flags-dictionary\\n */\\nfunction FileSystemFlags() {};\\n\\n/** @type {(undefined|boolean)} */\\nFileSystemFlags.prototype.create;\\n\\n/** @type {(undefined|boolean)} */\\nFileSystemFlags.prototype.exclusive;\\n\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#the-directoryentry-interface\\n * @constructor\\n * @extends {Entry}\\n */\\nfunction DirectoryEntry() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-createReader\\n * @return {!DirectoryReader}\\n */\\nDirectoryEntry.prototype.createReader = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-getFile\\n * @param {string} path\\n * @param {!FileSystemFlags=} options\\n * @param {function(!FileEntry)=} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nDirectoryEntry.prototype.getFile = function(path, options, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-getDirectory\\n * @param {string} path\\n * @param {!FileSystemFlags=} options\\n * @param {function(!DirectoryEntry)=} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nDirectoryEntry.prototype.getDirectory = function(path, options, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-removeRecursively\\n * @param {function()} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nDirectoryEntry.prototype.removeRecursively = function(successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#the-directoryreader-interface\\n * @constructor\\n */\\nfunction DirectoryReader() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryReader-readEntries\\n * @param {function(!Array)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nDirectoryReader.prototype.readEntries = function(successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#the-entry-interface\\n * @constructor\\n */\\nfunction Entry() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-isFile\\n * @type {boolean}\\n */\\nEntry.prototype.isFile;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-isDirectory\\n * @type {boolean}\\n */\\nEntry.prototype.isDirectory;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-name\\n * @type {string}\\n */\\nEntry.prototype.name;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-fullPath\\n * @type {string}\\n */\\nEntry.prototype.fullPath;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-filesystem\\n * @type {!FileSystem}\\n */\\nEntry.prototype.filesystem;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-moveTo\\n * @param {!DirectoryEntry} parent\\n * @param {string=} newName\\n * @param {function(!Entry)=} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nEntry.prototype.moveTo = function(parent, newName, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-copyTo\\n * @param {!DirectoryEntry} parent\\n * @param {string=} newName\\n * @param {function(!Entry)=} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nEntry.prototype.copyTo = function(parent, newName, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-toURL\\n * @param {string=} mimeType\\n * @return {string}\\n */\\nEntry.prototype.toURL = function(mimeType) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-remove\\n * @param {function()} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nEntry.prototype.remove = function(successCallback, errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-getMetadata\\n * @param {function(!Metadata)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nEntry.prototype.getMetadata = function(successCallback, errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Entry-getParent\\n * @param {function(!Entry)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nEntry.prototype.getParent = function(successCallback, errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-file\\n * @param {!Array=} opt_contents\\n * @param {string=} opt_name\\n * @param {{type: (string|undefined), lastModified: (number|undefined)}=}\\n * opt_properties\\n * @constructor\\n * @extends {Blob}\\n */\\nfunction File(opt_contents, opt_name, opt_properties) {}\\n\\n/**\\n * Chrome uses this instead of name.\\n * @deprecated Use name instead.\\n * @type {string}\\n */\\nFile.prototype.fileName;\\n\\n/**\\n * Chrome uses this instead of size.\\n * @deprecated Use size instead.\\n * @type {string}\\n */\\nFile.prototype.fileSize;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-name\\n * @type {string}\\n */\\nFile.prototype.name;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-lastModifiedDate\\n * @type {Date}\\n */\\nFile.prototype.lastModifiedDate;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-lastModified\\n * @type {number}\\n */\\nFile.prototype.lastModified;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#the-fileentry-interface\\n * @constructor\\n * @extends {Entry}\\n */\\nfunction FileEntry() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileEntry-createWriter\\n * @param {function(!FileWriter)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nFileEntry.prototype.createWriter = function(successCallback, errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileEntry-file\\n * @param {function(!File)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nFileEntry.prototype.file = function(successCallback, errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#FileErrorInterface\\n * @constructor\\n * @extends {DOMError}\\n */\\nfunction FileError() {}\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-NOT_FOUND_ERR\\n * @type {number}\\n */\\nFileError.prototype.NOT_FOUND_ERR = 1;\\n\\n/** @type {number} */\\nFileError.NOT_FOUND_ERR = 1;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-SECURITY_ERR\\n * @type {number}\\n */\\nFileError.prototype.SECURITY_ERR = 2;\\n\\n/** @type {number} */\\nFileError.SECURITY_ERR = 2;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-ABORT_ERR\\n * @type {number}\\n */\\nFileError.prototype.ABORT_ERR = 3;\\n\\n/** @type {number} */\\nFileError.ABORT_ERR = 3;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-NOT_READABLE_ERR\\n * @type {number}\\n */\\nFileError.prototype.NOT_READABLE_ERR = 4;\\n\\n/** @type {number} */\\nFileError.NOT_READABLE_ERR = 4;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-ENCODING_ERR\\n * @type {number}\\n */\\nFileError.prototype.ENCODING_ERR = 5;\\n\\n/** @type {number} */\\nFileError.ENCODING_ERR = 5;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileError-NO_MODIFICATION_ALLOWED_ERR\\n * @type {number}\\n */\\nFileError.prototype.NO_MODIFICATION_ALLOWED_ERR = 6;\\n\\n/** @type {number} */\\nFileError.NO_MODIFICATION_ALLOWED_ERR = 6;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileException-INVALID_STATE_ERR\\n * @type {number}\\n */\\nFileError.prototype.INVALID_STATE_ERR = 7;\\n\\n/** @type {number} */\\nFileError.INVALID_STATE_ERR = 7;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileException-SYNTAX_ERR\\n * @type {number}\\n */\\nFileError.prototype.SYNTAX_ERR = 8;\\n\\n/** @type {number} */\\nFileError.SYNTAX_ERR = 8;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileError-INVALID_MODIFICATION_ERR\\n * @type {number}\\n */\\nFileError.prototype.INVALID_MODIFICATION_ERR = 9;\\n\\n/** @type {number} */\\nFileError.INVALID_MODIFICATION_ERR = 9;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileError-QUOTA_EXCEEDED_ERR\\n * @type {number}\\n */\\nFileError.prototype.QUOTA_EXCEEDED_ERR = 10;\\n\\n/** @type {number} */\\nFileError.QUOTA_EXCEEDED_ERR = 10;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileException-TYPE_MISMATCH_ERR\\n * @type {number}\\n */\\nFileError.prototype.TYPE_MISMATCH_ERR = 11;\\n\\n/** @type {number} */\\nFileError.TYPE_MISMATCH_ERR = 11;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileException-PATH_EXISTS_ERR\\n * @type {number}\\n */\\nFileError.prototype.PATH_EXISTS_ERR = 12;\\n\\n/** @type {number} */\\nFileError.PATH_EXISTS_ERR = 12;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-code-exception\\n * @type {number}\\n * @deprecated Use the \'name\' or \'messa'; a.a+='ge\' attributes of DOMError rather than\\n * \'code\'\\n */\\nFileError.prototype.code;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-filereader\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction FileReader() {}\\n\\n/** @override */\\nFileReader.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/** @override */\\nFileReader.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nFileReader.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-readAsArrayBuffer\\n * @param {!Blob} blob\\n * @return {undefined}\\n */\\nFileReader.prototype.readAsArrayBuffer = function(blob) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-readAsBinaryStringAsync\\n * @param {!Blob} blob\\n * @return {undefined}\\n */\\nFileReader.prototype.readAsBinaryString = function(blob) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-readAsText\\n * @param {!Blob} blob\\n * @param {string=} encoding\\n * @return {undefined}\\n */\\nFileReader.prototype.readAsText = function(blob, encoding) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-readAsDataURL\\n * @param {!Blob} blob\\n * @return {undefined}\\n */\\nFileReader.prototype.readAsDataURL = function(blob) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-abort\\n * @return {undefined}\\n */\\nFileReader.prototype.abort = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-empty\\n * @type {number}\\n */\\nFileReader.prototype.EMPTY = 0;\\n\\n/** @type {number} */\\nFileReader.EMPTY = 0;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-loading\\n * @type {number}\\n */\\nFileReader.prototype.LOADING = 1;\\n\\n/** @type {number} */\\nFileReader.LOADING = 1;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-done\\n * @type {number}\\n */\\nFileReader.prototype.DONE = 2;\\n\\n/** @type {number} */\\nFileReader.DONE = 2;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-readystate\\n * @type {number}\\n */\\nFileReader.prototype.readyState;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-result\\n * @type {string|Blob|ArrayBuffer}\\n */\\nFileReader.prototype.result;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-error\\n * @type {FileError}\\n */\\nFileReader.prototype.error;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onloadstart\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onloadstart;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onprogress\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onprogress;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onload\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onload;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onabort\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onabort;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onerror\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onerror;\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-onloadend\\n * @type {?function(!ProgressEvent)}\\n */\\nFileReader.prototype.onloadend;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#idl-def-FileSaver\\n * @constructor\\n */\\nfunction FileSaver() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-abort\\n * @return {undefined}\\n */\\nFileSaver.prototype.abort = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-INIT\\n * @type {number}\\n */\\nFileSaver.prototype.INIT = 0;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-WRITING\\n * @type {number}\\n */\\nFileSaver.prototype.WRITING = 1;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-DONE\\n * @type {number}\\n */\\nFileSaver.prototype.DONE = 2;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-readyState\\n * @type {number}\\n */\\nFileSaver.prototype.readyState;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-error\\n * @type {FileError}\\n */\\nFileSaver.prototype.error;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwritestart\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onwritestart;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onprogress\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onprogress;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwrite\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onwrite;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onabort\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onabort;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onerror\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onerror;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwriteend\\n * @type {?function(!ProgressEvent)}\\n */\\nFileSaver.prototype.onwriteend;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#the-filesystem-interface\\n * @constructor\\n */\\nfunction FileSystem() {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileSystem-name\\n * @type {string}\\n */\\nFileSystem.prototype.name;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-FileSystem-root\\n * @type {!DirectoryEntry}\\n */\\nFileSystem.prototype.root;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#idl-def-FileWriter\\n * @constructor\\n * @extends {FileSaver}\\n */\\nfunction FileWriter() {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-position\\n * @type {number}\\n */\\nFileWriter.prototype.position;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-length\\n * @type {number}\\n */\\nFileWriter.prototype.length;\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-write\\n * @param {!Blob} blob\\n * @return {undefined}\\n */\\nFileWriter.prototype.write = function(blob) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-seek\\n * @param {number} offset\\n * @return {undefined}\\n */\\nFileWriter.prototype.seek = function(offset) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-truncate\\n * @param {number} size\\n * @return {undefined}\\n */\\nFileWriter.prototype.truncate = function(size) {};\\n\\n/**\\n * LocalFileSystem interface, implemented by Window and WorkerGlobalScope.\\n * @see http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem\\n * @constructor\\n */\\nfunction LocalFileSystem() {}\\n\\n/**\\n * Metadata interface.\\n * @see http://www.w3.org/TR/file-system-api/#idl-def-Metadata\\n * @constructor\\n */\\nfunction Metadata() {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Metadata-modificationTime\\n * @type {!Date}\\n */\\nMetadata.prototype.modificationTime;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-Metadata-size\\n * @type {number}\\n */\\nMetadata.prototype.size;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-TEMPORARY\\n * @type {number}\\n*/\\nWindow.prototype.TEMPORARY = 0;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-PERSISTENT\\n * @type {number}\\n*/\\nWindow.prototype.PERSISTENT = 1;\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-requestFileSystem\\n * @param {number} type\\n * @param {number} size\\n * @param {function(!FileSystem)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nfunction requestFileSystem(type, size, successCallback, errorCallback) {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-requestFileSystem\\n * @param {number} type\\n * @param {number} size\\n * @param {function(!FileSystem)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nWindow.prototype.requestFileSystem = function(type, size, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURI\\n * @param {string} uri\\n * @param {function(!Entry)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nfunction resolveLocalFileSystemURI(uri, successCallback, errorCallback) {}\\n\\n/**\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURI\\n * @param {string} uri\\n * @param {function(!Entry)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nWindow.prototype.resolveLocalFileSystemURI = function(uri, successCallback,\\n errorCallback) {}\\n\\n/**\\n * This has replaced requestFileSystem in Chrome since WebKit revision 84224.\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-requestFileSystem\\n * @param {number} type\\n * @param {number} size\\n * @param {function(!FileSystem)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nfunction webkitRequestFileSystem(type, size, successCallback, errorCallback) {}\\n\\n/**\\n * This has replaced requestFileSystem in Chrome since WebKit revision 84224.\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-requestFileSystem\\n * @param {number} type\\n * @param {number} size\\n * @param {function(!FileSystem)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nWindow.prototype.webkitRequestFileSystem = function(type, size, successCallback,\\n errorCallback) {};\\n\\n/**\\n * This has replaced resolveLocalFileSystemURI in Chrome since WebKit revision\\n * 84224.\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURI\\n * @param {string} uri\\n * @param {function(!Entry)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nfunction webkitResolveLocalFileSystemURI(uri, successCallback, errorCallback) {}\\n\\n/**\\n * This has replaced resolveLocalFileSystemURI in Chrome since WebKit revision\\n * 84224.\\n * @see http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURI\\n * @param {string} uri\\n * @param {function(!Entry)} successCallback\\n * @param {function(!FileError)=} errorCallback\\n * @return {undefined}\\n */\\nWindow.prototype.webkitResolveLocalFileSystemURI = function(uri, successCallback,\\n errorCallback) {}\\n\\n// WindowBlobURIMethods interface, implemented by Window and WorkerGlobalScope.\\n// There are three APIs for this: the old specced API, the new specced API, and\\n// the webkit-prefixed API.\\n// @see http://www.w3.org/TR/FileAPI/#creating-revoking\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-createObjectURL\\n * @param {!Object} obj\\n * @return {string}\\n */\\nfunction createObjectURL(obj) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-createObjectURL\\n * @param {!Object} obj\\n * @return {string}\\n */\\nWindow.prototype.createObjectURL = function(obj) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-revokeObjectURL\\n * @param {string} url\\n * @return {undefined}\\n */\\nfunction revokeObjectURL(url) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-revokeObjectURL\\n * @param {string} url\\n * @return {undefined}\\n */\\nWindow.prototype.revokeObjectURL = function(url) {};\\n\\n/**\\n * This has been replaced by URL in Chrome since WebKit revision 75739.\\n * @constructor\\n * @param {string} urlString\\n * @param {string=} opt_base\\n */\\nfunction webkitURL(urlString, opt_base) {}\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-createObjectURL\\n * @param {!Object} obj\\n * @return {string}\\n */\\nwebkitURL.createObjectURL = function(obj) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-revokeObjectURL\\n * @param {string} url\\n * @return {undefined}\\n */\\nwebkitURL.revokeObjectURL = function(url) {};\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage\\n * @constructor\\n */\\nfunction StorageInfo() {}\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage\\n * @type {number}\\n * */\\nStorageInfo.prototype.TEMPORARY = 0;\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage\\n * @type {number}\\n */\\nStorageInfo.prototype.PERSISTENT = 1;\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage#requestQuota\\n * @param {number} type\\n * @param {number} size\\n * @param {function(number)} successCallback\\n * @param {function(!DOMException)=} errorCallback\\n * @return {undefined}\\n */\\nStorageInfo.prototype.requestQuota = function(type, size, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage#queryUsageAndQuota\\n * @param {number} type\\n * @param {function(number, number)} successCallback\\n * @param {function(!DOMException)=} errorCallback\\n * @return {undefined}\\n */\\nStorageInfo.prototype.queryUsageAndQuota = function(type, successCallback,\\n errorCallback) {};\\n\\n/**\\n * @see https://developers.google.com/chrome/whitepapers/storage\\n * @type {!StorageInfo}\\n */\\nWindow.prototype.webkitStorageInfo;\\n\\n/**\\n * @see https://dvcs.w3.org/hg/quota/raw-file/tip/Overview.html#storagequota-interface.\\n * @constructor\\n */\\nfunction StorageQuota() {}\\n\\n/**\\n * @param {number} size\\n * @param {function(number)=} opt_successCallback\\n * @param {function(!DOMException)=} opt_errorCallback\\n * @return {undefined}\\n */\\nStorageQuota.prototype.requestQuota = function(size, opt_successCallback,\\n opt_errorCallback) {};\\n\\n/**\\n * @param {function(number, number)} successCallback\\n * @param {function(!DOMException)=} opt_errorCallback\\n * @return {undefined}\\n */\\nStorageQuota.prototype.queryUsageAndQuota = function(successCallback,\\n opt_errorCallback) {};\\n\\n\\n/**\\n * @type {!StorageQuota}\\n * @see https://developer.chrome.com/apps/offline_storage\\n */\\nNavigator.prototype.webkitPersistentStorage;\\n\\n/**\\n * @type {!StorageQuota}\\n * @see https://developer.chrome.com/apps/offline_storage\\n */\\nNavigator.prototype.webkitTemporaryStorage;\\n","externs/flash.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for all the Flash Object JavaScript methods. This\\n * file depends on w3c_dom2.js.\\n * Created from\\n * http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html\\n *\\n * @externs\\n * @author ajp@google.com (Andy Perelson)\\n */\\n\\n\\n// Standard Methods.\\n\\n/**\\n * Call a Flash function exported by ExternalInterface.\\n * @param {string} xmlString The XML string passed to Flash. The outer element\\n * should be {@code }. A sample invocation string:\\n * {@code \\n * test}\\n * @return {string} The serialized return value from Flash that you can eval.\\n */\\nHTMLObjectElement.prototype.CallFunction = function(xmlString) {};\\n\\n/**\\n * Returns the value of the Flash variable specified by varName or null if the\\n * variable does not exist.\\n * @param {string} varName The variable name.\\n * @return {string?} The variable value.\\n */\\nHTMLObjectElement.prototype.GetVariable = function(varName) {};\\n\\n/**\\n * Activates the frame number specified by {@code frameNumber} in the current\\n * movie.\\n * @param {number} frameNumber A non-negative integer frame number.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.GotoFrame = function(frameNumber) {};\\n\\n/**\\n * @return {boolean} Whether the movie is currently playing.\\n */\\nHTMLObjectElement.prototype.IsPlaying = function() {};\\n\\n/**\\n * Loads the movie identified by {@code url} to the layer specified by {@code\\n * layerNumber}.\\n * @param {number} layerNumber The layer number.\\n * @param {string} url The movie URL.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.LoadMovie = function(layerNumber, url) {};\\n\\n/**\\n * Pans a zoomed-in movie to th'; a.a+='e coordinates specified by x and y. Use mode to\\n * specify whether the values for x and y are pixels or a percent of the window.\\n * When mode is 0, the coordinates are pixels; when mode is 1, the coordinates\\n * are percent of the window.\\n * @param {number} x The x-coordinate.\\n * @param {number} y The y-coordinate.\\n * @param {number} mode The mode.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.Pan = function(x, y, mode) {};\\n\\n/**\\n * @return {number} The percent of the Flash Player movie that has streamed\\n * into the browser so far; Possible values are from 0 to 100.\\n */\\nHTMLObjectElement.prototype.PercentLoaded = function() {};\\n\\n/**\\n * Starts playing the movie.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.Play = function() {};\\n\\n/**\\n * Goes to the first frame.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.Rewind = function() {};\\n\\n/**\\n * Sets the value of the flash variable.\\n * @param {string} variableName The variable name.\\n * @param {string} value The value.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.SetVariable = function(variableName, value) {};\\n\\n/**\\n * Zooms in on a rectangular area of the movie. The units of the coordinates\\n * are in twips (1440 units per inch).\\n * @param {number} left The left coordinate.\\n * @param {number} top The top coordinate.\\n * @param {number} right The right coordinate.\\n * @param {number} bottom The bottom coordinate.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.SetZoomRect = function(left, top, right, bottom) {};\\n\\n/**\\n * Stops playing the movie.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.StopPlay = function() {};\\n\\n/**\\n * @return {number} The total number of frames in the movie.\\n */\\nHTMLObjectElement.prototype.TotalFrames = function() {};\\n\\n/**\\n * Zooms the view by a relative scale factor.\\n * @param {number} percent The percentage scale factor, should be an integer.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.Zoom = function(percent) {};\\n\\n\\n// TellTarget Methods.\\n\\n/**\\n * Executes the action in the timeline specified by {@code target} in the\\n * specified frame.\\n * @param {string} target The timeline.\\n * @param {number} frameNumber The frame number.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TCallFrame = function(target, frameNumber) {};\\n\\n/**\\n * Executes the action in the timeline specified by {@code target} in the\\n * specified frame.\\n * @param {string} target The timeline.\\n * @param {string} label The frame label.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TCallLabel = function(target, label) {};\\n\\n/**\\n * Returns the number of the current frame for the specified timeline.\\n * @param {string} target The timeline.\\n * @return {number} The number of the current frame.\\n */\\nHTMLObjectElement.prototype.TCurentFrame = function(target) {};\\n\\n/**\\n * Returns the label of the current frame for the specified timeline.\\n * @param {string} target The timeline.\\n * @return {string} The label of the current frame, empty string if no\\n * current frame.\\n */\\nHTMLObjectElement.prototype.TCurrentLabel = function(target) {};\\n\\n/**\\n * Returns a string indicating the value of the property in the\\n * specified timeline.\\n * @param {string} target The timeline.\\n * @param {number} property The integer corresponding to the desired property.\\n * @return {string} The value of the property.\\n */\\nHTMLObjectElement.prototype.TGetProperty = function(target, property) {};\\n\\n/**\\n * Returns a number indicating the value of the property in the specified\\n * timeline.\\n * @param {string} target The timeline.\\n * @param {number} property The integer corresponding to the desired property.\\n * @return {number} A number indicating the value of the property.\\n */\\nHTMLObjectElement.prototype.TGetPropertyAsNumber = function(target, property) {};\\n\\n/**\\n * Goes to the specified frame number in the specified timeline.\\n * @param {string} target The timeline.\\n * @param {number} frameNumber The frame number.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TGotoFrame = function(target, frameNumber) {};\\n\\n/**\\n * Goes to the specified frame label in the specified timeline.\\n * @param {string} target The timeline.\\n * @param {string} label The framelabel.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TGotoLabel = function(target, label) {};\\n\\n/**\\n * Plays the specified timeline.\\n * @param {number} target The timeline.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TPlay = function(target) {};\\n\\n/**\\n * Sets the value of the property in the specified timeline.\\n * @param {number} target The timeline.\\n * @param {number} property The integer corresponding to the desired property.\\n * @param {string|number} value The value.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TSetProperty = function(target, property, value) {};\\n\\n/**\\n * Stops the specified timeline.\\n * @param {number} target The timeline.\\n * @return {undefined}\\n */\\nHTMLObjectElement.prototype.TStopPlay = function(target) {};\\n","externs/gecko_xml.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for all the extensions over some of the\\n * W3C\'s XML specifications by Gecko. This file depends on\\n * w3c_xml.js. The whole file has been fully type annotated.\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n/**\\n * XMLSerializer can be used to convert DOM subtree or DOM document into text.\\n * XMLSerializer is available to unprivileged scripts.\\n *\\n * XMLSerializer is mainly useful for applications and extensions based on\\n * Mozilla platform. While it\'s available to web pages, it\'s not part of any\\n * standard and level of support in other browsers is unknown.\\n *\\n * @constructor\\n */\\nfunction XMLSerializer() {}\\n\\n/**\\n * Returns the serialized subtree in the form of a string\\n * @param {Node} subtree\\n * @return {string}\\n */\\nXMLSerializer.prototype.serializeToString = function(subtree) {};\\n\\n/**\\n * The subtree rooted by the specified element is serialized to a byte stream\\n * using the character set specified.\\n *\\n * @param {Node} subtree\\n * @return {Object}\\n */\\nXMLSerializer.prototype.serializeToStream = function(subtree) {};\\n\\n/**\\n * DOMParser is mainly useful for applications and extensions based on Mozilla\\n * platform. While it\'s available to web pages, it\'s not part of any standard and\\n * level of support in other browsers is unknown.\\n *\\n * @constructor\\n */\\nfunction DOMParser() {}\\n\\n/**\\n * The string passed in is parsed into a DOM document.\\n *\\n * Example:\\n * var parser = new DOMParser();\\n * var doc = parser.parseFromString(aStr, \\"text/xml\\");\\n *\\n * @param {string} src The UTF16 string to be parsed.\\n * @param {string} type The content type of the string.\\n * @return {Document}\\n */\\nDOMParser.prototype.parseFromString = function(src, type) {};\\n","externs/html5.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for all the extensions over the\\n * W3C\'s DOM3 specification in HTML5. This file depends on\\n * w3c_dom3.js. The whole file has been fully type annotated.\\n *\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/index.html\\n * @see http://dev.w3.org/html5/spec/Overview.html\\n *\\n * This also includes Typed Array definitions from\\n * http://www.khronos.org/registry/typedarray/specs/latest/\\n *\\n * This relies on w3c_event.js being included first.\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n */\\n\\n/** @type {?HTMLSlotElement} */\\nNode.prototype.assignedSlot;\\n\\n/**\\n * Note: In IE, the contains() method only exists on Elements, not Nodes.\\n * Therefore, it is recommended that you use the Conformance framework to\\n * prevent calling this on Nodes which are not Elements.\\n * @see https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\\n *\\n * @param {Node} n The node to check\\n * @return {boolean} If \'n\' is this Node, or is contained within this Node.\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node.contains\\n * @nosideeffects\\n */\\nNode.prototype.contains = function(n) {};\\n\\n/** @type {boolean} */\\nNode.prototype.isConnected;\\n\\n/**\\n * @constructor\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#the-canvas-element\\n * @extends {HTMLElement}\\n */\\nfunction HTMLCanvasElement() {}\\n\\n/** @type {number} */\\nHTMLCanvasElement.prototype.width;\\n\\n/** @type {number} */\\nHTMLCanvasElement.prototype.height;\\n\\n/**\\n * @see https://www.w3.org/TR/html5/scripting-1.html#dom-canvas-toblob\\n * @param {function(!Blob)} callback\\n * @param {string=} opt_type\\n * @param {...*} var_args\\n * @throws {Error}\\n */\\nHTMLCanvasElement.prototype.toBlob = function(callback, opt_type, var_args) {};\\n\\n/**\\n * @param {string=} opt_type\\n * @param {...*} var_args\\n * @return {string}\\n * @throws {Error}\\n */\\nHTMLCanvasElement.prototype.toDataURL = function(opt_type, var_args) {};\\n\\n/**\\n * @param {string} contextId\\n * @param {Object=} opt_args\\n * @return {Object}\\n */\\nHTMLCanvasElement.prototype.getContext = function(contextId, opt_args) {};\\n\\n/**\\n * @see https://www.w3.org/TR/mediacapture-fromelement/\\n * @param {number=} opt_framerate\\n * @return {!MediaStream}\\n * @throws {Error}\\n * */\\nHTMLCanvasElement.prototype.captureStream = function(opt_framerate) {};\\n\\n/**\\n * @typedef {HTMLImageElement|HTMLVideoElement|HTMLCanvasElement}\\n */\\nvar CanvasImageSource;\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/2dcontext/#canvaspathmethods\\n */\\nfunction CanvasPathMethods() {}\\n\\n/**\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.closePath = function() {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.moveTo = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.lineTo = function(x, y) {};\\n\\n/**\\n * @param {number} cpx\\n * @param {number} cpy\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {};\\n\\n/**\\n * @param {number} cp1x\\n * @param {number} cp1y\\n * @param {number} cp2x\\n * @param {number} cp2y\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.bezierCurveTo = function(\\n cp1x, cp1y, cp2x, cp2y, x, y) {};\\n\\n/**\\n * @param {number} x1\\n * @param {number} y1\\n * @param {number} x2\\n * @param {number} y2\\n * @param {number} radius\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.arcTo = function(x1, y1, x2, y2, radius) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.rect = function(x, y, w, h) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} radius\\n * @param {number} startAngle\\n * @param {number} endAngle\\n * @param {boolean=} opt_anticlockwise\\n * @return {undefined}\\n */\\nCanvasPathMethods.prototype.arc = function(\\n x, y, radius, startAngle, endAngle, opt_anticlockwise) {};\\n\\n/**\\n * @constructor\\n * @implements {CanvasPathMethods}\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#path2d-objects\\n */\\nfunction Path2D() {}\\n\\n/**\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.closePath = function() {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.moveTo = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.lineTo = function(x, y) {};\\n\\n/**\\n * @param {number} cpx\\n * @param {number} cpy\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {};\\n\\n/**\\n * @param {number} cp1x\\n * @param {number} cp1y\\n * @param {number} cp2x\\n * @param {number} cp2y\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.bezierCurveTo = function(\\n cp1x, cp1y, cp2x, cp2y, x, y) {};\\n\\n/**\\n * @param {number} x1\\n * @param {number} y1\\n * @param {number} x2\\n * @param {number} y2\\n * @param {number} radius\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.rect = function(x, y, w, h) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} radius\\n * @param {number} startAngle\\n * @param {number} endAngle\\n * @param {boolean=} optAnticlockwise\\n * @return {undefined}\\n * @override\\n */\\nPath2D.prototype.arc = function(\\n x, y, radius, startAngle, endAngle, optAnticlockwise) {};\\n\\n/**\\n * @param {Path2D} path\\n * @return {undefined}\\n */\\nPath2D.prototype.addPath = function(path) {};\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/2dcontext/#canvasdrawingstyles\\n */\\nfunction CanvasDrawingStyles() {}\\n\\n/** @type {number} */\\nCanvasDrawingStyles.prototype.lineWidth;\\n\\n/** @type {string} */\\nCanvasDrawingStyles.prototype.lineCap;\\n\\n/** @type {string} */\\nCanvasDrawingStyles.prototype.lineJoin;\\n\\n/** @type {number} */\\nCanvasDrawingStyles.prototype.miterLimit;\\n\\n/**\\n * @param {Array} segments\\n * @return {undefined}\\n */\\nCanvasDrawingStyles.prototype.setLineDash;\\n\\n/**\\n * @return {!Array}\\n */\\nCanvasDrawingStyles.prototype.getLineDash;\\n\\n/** @type {string} */\\nCanvasDrawingStyles.prototype.font;\\n\\n/** @type {string} */\\nCanvasDrawingStyles.prototype.textAlign;\\n\\n/** @type {string} */\\nCanvasDrawingStyles.prototype.textBaseline;\\n\\n/**\\n * @constructor\\n * @implements {CanvasDrawingStyles}\\n * @implements {CanvasPathMethods}\\n * @see http://www.w3.org/TR/2dcontext/#canvasrenderingcontext2d\\n */\\nfunction CanvasRenderingContext2D() {}\\n\\n/** @const {!HTMLCanvasElement} */\\nCanvasRenderingContext2D.prototype.canvas;\\n\\n/**\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.save = function() {};\\n\\n/**\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.restore = function() {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.scale = function(x, y) {};\\n\\n/**\\n * @param {number} angle\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.rotate = function(angle) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.translate = function(x, y) {};\\n\\n/**\\n * @param {number} m11\\n * @param {number} m12\\n * @param {number} m21\\n * @param {number} m22\\n * @param {number} dx\\n * @param {number} dy\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.transform = function(\\n m11, m12, m21, m22, dx, dy) {};\\n\\n/**\\n * @param {number} m11\\n * @param {number} m12\\n * @param {number} m21\\n * @param {number} m22\\n * @param {numbe'; a.a+="r} dx\\n * @param {number} dy\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.setTransform = function(\\n m11, m12, m21, m22, dx, dy) {};\\n\\n/**\\n * @param {number} x0\\n * @param {number} y0\\n * @param {number} x1\\n * @param {number} y1\\n * @return {!CanvasGradient}\\n * @throws {Error}\\n */\\nCanvasRenderingContext2D.prototype.createLinearGradient = function(\\n x0, y0, x1, y1) {};\\n\\n/**\\n * @param {number} x0\\n * @param {number} y0\\n * @param {number} r0\\n * @param {number} x1\\n * @param {number} y1\\n * @param {number} r1\\n * @return {!CanvasGradient}\\n * @throws {Error}\\n */\\nCanvasRenderingContext2D.prototype.createRadialGradient = function(\\n x0, y0, r0, x1, y1, r1) {};\\n\\n/**\\n * @param {CanvasImageSource} image\\n * @param {string} repetition\\n * @return {?CanvasPattern}\\n * @throws {Error}\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#dom-context-2d-createpattern\\n */\\nCanvasRenderingContext2D.prototype.createPattern = function(\\n image, repetition) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.clearRect = function(x, y, w, h) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.fillRect = function(x, y, w, h) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.strokeRect = function(x, y, w, h) {};\\n\\n/**\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.beginPath = function() {};\\n\\n/**\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.closePath = function() {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.moveTo = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.lineTo = function(x, y) {};\\n\\n/**\\n * @param {number} cpx\\n * @param {number} cpy\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.quadraticCurveTo = function(\\n cpx, cpy, x, y) {};\\n\\n/**\\n * @param {number} cp1x\\n * @param {number} cp1y\\n * @param {number} cp2x\\n * @param {number} cp2y\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.bezierCurveTo = function(\\n cp1x, cp1y, cp2x, cp2y, x, y) {};\\n\\n/**\\n * @param {number} x1\\n * @param {number} y1\\n * @param {number} x2\\n * @param {number} y2\\n * @param {number} radius\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} w\\n * @param {number} h\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.rect = function(x, y, w, h) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} radius\\n * @param {number} startAngle\\n * @param {number} endAngle\\n * @param {boolean=} opt_anticlockwise\\n * @return {undefined}\\n * @override\\n */\\nCanvasRenderingContext2D.prototype.arc = function(\\n x, y, radius, startAngle, endAngle, opt_anticlockwise) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} radiusX\\n * @param {number} radiusY\\n * @param {number} rotation\\n * @param {number} startAngle\\n * @param {number} endAngle\\n * @param {boolean=} opt_anticlockwise\\n * @return {undefined}\\n * @see http://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/ellipse\\n */\\nCanvasRenderingContext2D.prototype.ellipse = function(\\n x, y, radiusX, radiusY, rotation, startAngle, endAngle, opt_anticlockwise) {\\n};\\n\\n/**\\n * @param {Path2D|string=} optFillRuleOrPath\\n * @param {string=} optFillRule\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.fill = function(optFillRuleOrPath, optFillRule) {};\\n\\n/**\\n * @param {Path2D=} optStroke\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.stroke = function(optStroke) {};\\n\\n/**\\n * @param {Element} element\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.drawFocusIfNeeded = function(element) {};\\n\\n/**\\n * @param {Path2D|string=} optFillRuleOrPath\\n * @param {string=} optFillRule\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.clip = function(optFillRuleOrPath, optFillRule) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {boolean}\\n * @nosideeffects\\n * @see http://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInStroke\\n */\\nCanvasRenderingContext2D.prototype.isPointInStroke = function(x, y) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {string=} opt_fillRule\\n * @return {boolean}\\n * @nosideeffects\\n */\\nCanvasRenderingContext2D.prototype.isPointInPath = function(\\n x, y, opt_fillRule) {};\\n\\n/**\\n * @param {string} text\\n * @param {number} x\\n * @param {number} y\\n * @param {number=} opt_maxWidth\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.fillText = function(\\n text, x, y, opt_maxWidth) {};\\n\\n/**\\n * @param {string} text\\n * @param {number} x\\n * @param {number} y\\n * @param {number=} opt_maxWidth\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.strokeText = function(\\n text, x, y, opt_maxWidth) {};\\n\\n/**\\n * @param {string} text\\n * @return {!TextMetrics}\\n * @nosideeffects\\n */\\nCanvasRenderingContext2D.prototype.measureText = function(text) {};\\n\\n/**\\n * @param {CanvasImageSource} image\\n * @param {number} dx Destination x coordinate.\\n * @param {number} dy Destination y coordinate.\\n * @param {number=} opt_dw Destination box width. Defaults to the image width.\\n * @param {number=} opt_dh Destination box height.\\n * Defaults to the image height.\\n * @param {number=} opt_sx Source box x coordinate. Used to select a portion of\\n * the source image to draw. Defaults to 0.\\n * @param {number=} opt_sy Source box y coordinate. Used to select a portion of\\n * the source image to draw. Defaults to 0.\\n * @param {number=} opt_sw Source box width. Used to select a portion of\\n * the source image to draw. Defaults to the full image width.\\n * @param {number=} opt_sh Source box height. Used to select a portion of\\n * the source image to draw. Defaults to the full image height.\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.drawImage = function(\\n image, dx, dy, opt_dw, opt_dh, opt_sx, opt_sy, opt_sw, opt_sh) {};\\n\\n/**\\n * @param {number} sw\\n * @param {number} sh\\n * @return {!ImageData}\\n * @throws {Error}\\n * @nosideeffects\\n */\\nCanvasRenderingContext2D.prototype.createImageData = function(sw, sh) {};\\n\\n/**\\n * @param {number} sx\\n * @param {number} sy\\n * @param {number} sw\\n * @param {number} sh\\n * @return {!ImageData}\\n * @throws {Error}\\n */\\nCanvasRenderingContext2D.prototype.getImageData = function(sx, sy, sw, sh) {};\\n\\n/**\\n * @param {ImageData} imagedata\\n * @param {number} dx\\n * @param {number} dy\\n * @param {number=} opt_dirtyX\\n * @param {number=} opt_dirtyY\\n * @param {number=} opt_dirtyWidth\\n * @param {number=} opt_dirtyHeight\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.putImageData = function(imagedata, dx, dy,\\n opt_dirtyX, opt_dirtyY, opt_dirtyWidth, opt_dirtyHeight) {};\\n\\n/**\\n * Note: WebKit only\\n * @param {number|string=} opt_a\\n * @param {number=} opt_b\\n * @param {number=} opt_c\\n * @param {number=} opt_d\\n * @param {number=} opt_e\\n * @see http://developer.apple.com/library/safari/#documentation/appleapplications/reference/WebKitDOMRef/CanvasRenderingContext2D_idl/Classes/CanvasRenderingContext2D/index.html\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.setFillColor;\\n\\n/**\\n * Note: WebKit only\\n * @param {number|string=} opt_a\\n * @param {number=} opt_b\\n * @param {number=} opt_c\\n * @param {number=} opt_d\\n * @param {number=} opt_e\\n * @see http://developer.apple.com/library/safari/#documentation/appleapplications/reference/WebKitDOMRef/CanvasRenderingContext2D_idl/Classes/CanvasRenderingContext2D/index.html\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.setStrokeColor;\\n\\n/**\\n * @return {!Array}\\n */\\nCanvasRenderingContext2D.prototype.getLineDash;\\n\\n/**\\n * @param {Array} segments\\n * @return {undefined}\\n */\\nCanvasRenderingContext2D.prototype.setLineDash;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.fillColor;\\n\\n/**\\n * @type {string|!CanvasGradient|!CanvasPattern}\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#fill-and-stroke-styles:dom-context-2d-fillstyle\\n * @implicitCast\\n */\\nCanvasRenderingContext2D.prototype.fillStyle;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.font;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.globalAlpha;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.globalCompositeOperation;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.lineWidth;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.lineCap;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.lineJoin;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.miterLimit;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.shadowBlur;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.shadowColor;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.shadowOffsetX;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.shadowOffsetY;\\n\\n/**\\n * @type {string|!CanvasGradient|!CanvasPattern}\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#fill-and-stroke-styles:dom-context-2d-strokestyle\\n * @implicitCast\\n */\\nCanvasRenderingContext2D.prototype.strokeStyle;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.strokeColor;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.textAlign;\\n\\n/** @type {string} */\\nCanvasRenderingContext2D.prototype.textBaseline;\\n\\n/** @type {number} */\\nCanvasRenderingContext2D.prototype.lineDashOffset;\\n\\n/**\\n * @constructor\\n */\\nfunction CanvasGradient() {}\\n\\n/**\\n * @param {number} offset\\n * @param {string} color\\n * @return {undefined}\\n */\\nCanvasGradient.prototype.addColorStop = function(offset, color) {};\\n\\n/**\\n * @constructor\\n */\\nfunction CanvasPattern() {}\\n\\n/**\\n * @constructor\\n */\\nfunction TextMetrics() {}\\n\\n/** @const {number} */\\nTextMetrics.prototype.width;\\n\\n/**\\n * @param {Uint8ClampedArray|number} dataOrWidth In the first form, this is the\\n * array of pixel data. In the second form, this is the image width.\\n * @param {number} widthOrHeight In the first form, this is the image width. In\\n * the second form, this is the image height.\\n * @param {number=} opt_height In the first form, this is the optional image\\n * height. The second form omits this argument.\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#imagedata\\n * @constructor\\n */\\nfunction ImageData(dataOrWidth, widthOrHeight, opt_height) {}\\n\\n/** @const {Uint8ClampedArray} */\\nImageData.prototype.data;\\n\\n/** @const {number} */\\nImageData.prototype.width;\\n\\n/** @const {number} */\\nImageData.prototype.height;\\n\\n/**\\n * @see https://www.w3.org/TR/html51/webappapis.html#webappapis-images\\n * @interface\\n */\\nfunction ImageBitmap() {}\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nImageBitmap.prototype.width;\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nImageBitmap.prototype.height;\\n\\n/**\\n * @constructor\\n */\\nfunction ClientInformation() {}\\n\\n/** @type {boolean} */\\nClientInformation.prototype.onLine;\\n\\n/**\\n * @param {string} protocol\\n * @param {string} uri\\n * @param {string} title\\n * @return {undefined}\\n */\\nClientInformation.prototype.registerProtocolHandler = function(\\n protocol, uri, title) {};\\n\\n/**\\n * @param {string} mimeType\\n * @param {string} uri\\n * @param {string} title\\n * @return {undefined}\\n */\\nClientInformation.prototype.registerContentHandler = function(\\n mimeType, uri, title) {};\\n\\n// HTML5 Database objects\\n/**\\n * @constructor\\n */\\nfunction Database() {}\\n\\n/**\\n * @type {string}\\n */\\nDatabase.prototype.version;\\n\\n/**\\n * @param {function(!SQLTransaction) : void} callback\\n * @param {(function(!SQLError) : void)=} opt_errorCallback\\n * @param {Function=} opt_Callback\\n * @return {undefined}\\n */\\nDatabase.prototype.transaction = function(\\n callback, opt_errorCallback, opt_Callback) {};\\n\\n/**\\n * @param {function(!SQLTransaction) : void} callback\\n * @param {(function(!SQLError) : void)=} opt_errorCallback\\n * @param {Function=} opt_Callback\\n * @return {undefined}\\n */\\nDatabase.prototype.readTransaction = function(\\n callback, opt_errorCallback, opt_Callback) {};\\n\\n/**\\n * @param {string} oldVersion\\n * @param {string} newVersion\\n * @param {function(!SQLTransaction) : void} callback\\n * @param {function(!SQLError) : void} errorCallback\\n * @param {Function} successCallback\\n * @return {undefined}\\n */\\nDatabase.prototype.changeVersion = function(\\n oldVersion, newVersion, callback, errorCallback, successCallback) {};\\n\\n/**\\n * @interface\\n */\\nfunction DatabaseCallback() {}\\n\\n/**\\n * @param {!Database} db\\n * @return {undefined}\\n */\\nDatabaseCallback.prototype.handleEvent = function(db) {};\\n\\n/**\\n * @constructor\\n */\\nfunction SQLError() {}\\n\\n/**\\n * @type {number}\\n */\\nSQLError.prototype.code;\\n\\n/**\\n * @type {string}\\n */\\nSQLError.prototype.message;\\n\\n/**\\n * @constructor\\n */\\nfunction SQLTransaction() {}\\n\\n/**\\n * @param {string} sqlStatement\\n * @param {Array<*>=} opt_queryArgs\\n * @param {SQLStatementCallback=} opt_callback\\n * @param {(function(!SQLTransaction, !SQLError) : (boolean|void))=}\\n * opt_errorCallback\\n * @return {undefined}\\n */\\nSQLTransaction.prototype.executeSql = function(\\n sqlStatement, opt_queryArgs, opt_callback, opt_errorCallback) {};\\n\\n/**\\n * @typedef {(function(!SQLTransaction, !SQLResultSet) : void)}\\n */\\nvar SQLStatementCallback;\\n\\n/**\\n * @constructor\\n */\\nfunction SQLResultSet() {}\\n\\n/**\\n * @type {number}\\n */\\nSQLResultSet.prototype.insertId;\\n\\n/**\\n * @type {number}\\n */\\nSQLResultSet.prototype.rowsAffected;\\n\\n/**\\n * @type {!SQLResultSetRowList}\\n */\\nSQLResultSet.prototype.rows;\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see http://www.w3.org/TR/webdatabase/#sqlresultsetrowlist\\n */\\nfunction SQLResultSetRowList() {}\\n\\n/**\\n * @type {number}\\n */\\nSQLResultSetRowList.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {Object}\\n * @nosideeffects\\n */\\nSQLResultSetRowList.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} name\\n * @param {string} version\\n * @param {string} description\\n * @param {number} size\\n * @param {(DatabaseCallback|function(Database))=} opt_callback\\n * @return {!Database}\\n */\\nfunction openDatabase(name, version, description, size, opt_callback) {}\\n\\n/**\\n * @param {string} name\\n * @param {string} version\\n * @param {string} description\\n * @param {number} size\\n * @param {(DatabaseCallback|function(Database))=} opt_callback\\n * @return {!Database}\\n */\\nWindow.prototype.openDatabase =\\n function(name, version, description, size, opt_callback) {};\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/embedded-content-0.html#dom-img-complete\\n */\\nHTMLImageElement.prototype.complete;\\n\\n/**\\n * @type {number}\\n * @see https://www.w3.org/TR/html5/embedded-content-0.html#dom-img-naturalwidth\\n */\\nHTMLImageElement.prototype.naturalWidth;\\n\\n/**\\n * @type {number}\\n * @see https://www.w3.org/TR/html5/embedded-content-0.html#dom-img-naturalheight\\n */\\nHTMLImageElement.prototype.naturalHeight;\\n\\n/**\\n * @type {string}\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content-1.html#attr-img-crossorigin\\n */\\nHTMLImageElement.prototype.crossOrigin;\\n\\n/**\\n * This is a superposition of the Window and Worker postMessage methods.\\n * @param {*} message\\n * @param {(string|!Array)=} opt_targetOriginOrTransfer\\n * @param {(string|!Array|!Array)=}\\n * opt_t"; a.a+="argetOriginOrPortsOrTransfer\\n * @return {void}\\n */\\nfunction postMessage(message, opt_targetOriginOrTransfer,\\n opt_targetOriginOrPortsOrTransfer) {}\\n\\n/**\\n * The postMessage method (as implemented in Opera).\\n * @param {string} message\\n */\\nDocument.prototype.postMessage = function(message) {};\\n\\n/**\\n * Document head accessor.\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#the-head-element-0\\n * @type {HTMLHeadElement}\\n */\\nDocument.prototype.head;\\n\\n/**\\n * @see https://developer.apple.com/webapps/docs/documentation/AppleApplications/Reference/SafariJSRef/DOMApplicationCache/DOMApplicationCache.html\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction DOMApplicationCache() {}\\n\\n/** @override */\\nDOMApplicationCache.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nDOMApplicationCache.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nDOMApplicationCache.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * The object isn't associated with an application cache. This can occur if the\\n * update process fails and there is no previous cache to revert to, or if there\\n * is no manifest file.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.UNCACHED = 0;\\n\\n/**\\n * The cache is idle.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.IDLE = 1;\\n\\n/**\\n * The update has started but the resources are not downloaded yet - for\\n * example, this can happen when the manifest file is fetched.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.CHECKING = 2;\\n\\n/**\\n * The resources are being downloaded into the cache.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.DOWNLOADING = 3;\\n\\n/**\\n * Resources have finished downloading and the new cache is ready to be used.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.UPDATEREADY = 4;\\n\\n/**\\n * The cache is obsolete.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.OBSOLETE = 5;\\n\\n/**\\n * The current status of the application cache.\\n * @type {number}\\n */\\nDOMApplicationCache.prototype.status;\\n\\n/**\\n * Sent when the update process finishes for the first time; that is, the first\\n * time an application cache is saved.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.oncached;\\n\\n/**\\n * Sent when the cache update process begins.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.onchecking;\\n\\n/**\\n * Sent when the update process begins downloading resources in the manifest\\n * file.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.ondownloading;\\n\\n/**\\n * Sent when an error occurs.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.onerror;\\n\\n/**\\n * Sent when the update process finishes but the manifest file does not change.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.onnoupdate;\\n\\n/**\\n * Sent when each resource in the manifest file begins to download.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.onprogress;\\n\\n/**\\n * Sent when there is an existing application cache, the update process\\n * finishes, and there is a new application cache ready for use.\\n * @type {?function(!Event)}\\n */\\nDOMApplicationCache.prototype.onupdateready;\\n\\n/**\\n * Replaces the active cache with the latest version.\\n * @throws {DOMException}\\n * @return {undefined}\\n */\\nDOMApplicationCache.prototype.swapCache = function() {};\\n\\n/**\\n * Manually triggers the update process.\\n * @throws {DOMException}\\n * @return {undefined}\\n */\\nDOMApplicationCache.prototype.update = function() {};\\n\\n/** @type {DOMApplicationCache} */\\nvar applicationCache;\\n\\n/** @type {DOMApplicationCache} */\\nWindow.prototype.applicationCache;\\n\\n/**\\n * @see https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\\n * @param {...string} var_args\\n * @return {undefined}\\n */\\nWindow.prototype.importScripts = function(var_args) {};\\n\\n/**\\n * @see https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\\n * @param {...string} var_args\\n * @return {undefined}\\n */\\nfunction importScripts(var_args) {}\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction WebWorker() {}\\n\\n/** @override */\\nWebWorker.prototype.addEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWebWorker.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nWebWorker.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * Stops the worker process\\n * @return {undefined}\\n */\\nWebWorker.prototype.terminate = function() {};\\n\\n/**\\n * Posts a message to the worker thread.\\n * @param {string} message\\n * @return {undefined}\\n */\\nWebWorker.prototype.postMessage = function(message) {};\\n\\n/**\\n * Sent when the worker thread posts a message to its creator.\\n * @type {?function(!MessageEvent<*>)}\\n */\\nWebWorker.prototype.onmessage;\\n\\n/**\\n * Sent when the worker thread encounters an error.\\n * TODO(tbreisacher): Should this change to function(!ErrorEvent)?\\n * @type {?function(!Event)}\\n */\\nWebWorker.prototype.onerror;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction Worker(opt_arg0) {}\\n\\n/** @override */\\nWorker.prototype.addEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWorker.prototype.removeEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWorker.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * Stops the worker process\\n * @return {undefined}\\n */\\nWorker.prototype.terminate = function() {};\\n\\n/**\\n * Posts a message to the worker thread.\\n * @param {*} message\\n * @param {Array=} opt_transfer\\n * @return {undefined}\\n */\\nWorker.prototype.postMessage = function(message, opt_transfer) {};\\n\\n/**\\n * Posts a message to the worker thread.\\n * @param {*} message\\n * @param {Array=} opt_transfer\\n * @return {undefined}\\n */\\nWorker.prototype.webkitPostMessage = function(message, opt_transfer) {};\\n\\n/**\\n * Sent when the worker thread posts a message to its creator.\\n * @type {?function(!MessageEvent<*>)}\\n */\\nWorker.prototype.onmessage;\\n\\n/**\\n * Sent when the worker thread encounters an error.\\n * TODO(tbreisacher): Should this change to function(!ErrorEvent)?\\n * @type {?function(!Event)}\\n */\\nWorker.prototype.onerror;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @param {string} scriptURL The URL of the script to run in the SharedWorker.\\n * @param {string=} opt_name A name that can later be used to obtain a\\n * reference to the same SharedWorker.\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction SharedWorker(scriptURL, opt_name) {}\\n\\n/** @override */\\nSharedWorker.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nSharedWorker.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nSharedWorker.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @type {!MessagePort}\\n */\\nSharedWorker.prototype.port;\\n\\n/**\\n * Called on network errors for loading the initial script.\\n * TODO(tbreisacher): Should this change to function(!ErrorEvent)?\\n * @type {?function(!Event)}\\n */\\nSharedWorker.prototype.onerror;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @see http://www.w3.org/TR/url-1/#dom-urlutilsreadonly\\n * @interface\\n */\\nfunction WorkerLocation() {}\\n\\n/** @type {string} */\\nWorkerLocation.prototype.href;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.origin;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.protocol;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.host;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.hostname;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.port;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.pathname;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.search;\\n\\n/** @type {string} */\\nWorkerLocation.prototype.hash;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @interface\\n * @extends {EventTarget}\\n */\\nfunction WorkerGlobalScope() {}\\n\\n/** @type {!WorkerGlobalScope} */\\nWorkerGlobalScope.prototype.self;\\n\\n/** @type {!WorkerLocation} */\\nWorkerGlobalScope.prototype.location;\\n\\n/**\\n * Closes the worker represented by this WorkerGlobalScope.\\n * @return {undefined}\\n */\\nWorkerGlobalScope.prototype.close = function() {};\\n\\n/**\\n * Sent when the worker encounters an error.\\n * @type {?function(!Event)}\\n */\\nWorkerGlobalScope.prototype.onerror;\\n\\n/**\\n * Sent when the worker goes offline.\\n * @type {?function(!Event)}\\n */\\nWorkerGlobalScope.prototype.onoffline;\\n\\n/**\\n * Sent when the worker goes online.\\n * @type {?function(!Event)}\\n */\\nWorkerGlobalScope.prototype.ononline;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @interface\\n * @extends {WorkerGlobalScope}\\n */\\nfunction DedicatedWorkerGlobalScope() {}\\n\\n/**\\n * Posts a message to creator of this worker.\\n * @param {*} message\\n * @param {Array=} opt_transfer\\n * @return {undefined}\\n */\\nDedicatedWorkerGlobalScope.prototype.postMessage =\\n function(message, opt_transfer) {};\\n\\n/**\\n * Posts a message to creator of this worker.\\n * @param {*} message\\n * @param {Array=} opt_transfer\\n * @return {undefined}\\n */\\nDedicatedWorkerGlobalScope.prototype.webkitPostMessage =\\n function(message, opt_transfer) {};\\n\\n/**\\n * Sent when the creator posts a message to this worker.\\n * @type {?function(!MessageEvent<*>)}\\n */\\nDedicatedWorkerGlobalScope.prototype.onmessage;\\n\\n/**\\n * @see http://dev.w3.org/html5/workers/\\n * @interface\\n * @extends {WorkerGlobalScope}\\n */\\nfunction SharedWorkerGlobalScope() {}\\n\\n/** @type {string} */\\nSharedWorkerGlobalScope.prototype.name;\\n\\n/**\\n * Sent when a connection to this worker is opened.\\n * @type {?function(!Event)}\\n */\\nSharedWorkerGlobalScope.prototype.onconnect;\\n\\n/** @type {!Array|undefined} */\\nHTMLElement.observedAttributes;\\n\\n/**\\n * @param {!Document} oldDocument\\n * @param {!Document} newDocument\\n */\\nHTMLElement.prototype.adoptedCallback = function(oldDocument, newDocument) {};\\n\\n/**\\n * @param {!{mode: string}} options\\n * @return {!ShadowRoot}\\n */\\nHTMLElement.prototype.attachShadow = function(options) {};\\n\\n/**\\n * @param {string} attributeName\\n * @param {?string} oldValue\\n * @param {?string} newValue\\n * @param {?string} namespace\\n */\\nHTMLElement.prototype.attributeChangedCallback = function(attributeName, oldValue, newValue, namespace) {};\\n\\n/** @type {function()|undefined} */\\nHTMLElement.prototype.connectedCallback;\\n\\n/** @type {Element} */\\nHTMLElement.prototype.contextMenu;\\n\\n/** @type {function()|undefined} */\\nHTMLElement.prototype.disconnectedCallback;\\n\\n/** @type {boolean} */\\nHTMLElement.prototype.draggable;\\n\\n/**\\n * This is actually a DOMSettableTokenList property. However since that\\n * interface isn't currently defined and no known browsers implement this\\n * feature, just define the property for now.\\n *\\n * @const\\n * @type {Object}\\n */\\nHTMLElement.prototype.dropzone;\\n\\n/**\\n * @see http://www.w3.org/TR/html5/dom.html#dom-getelementsbyclassname\\n * @param {string} classNames\\n * @return {!NodeList}\\n * @nosideeffects\\n */\\nHTMLElement.prototype.getElementsByClassName = function(classNames) {};\\n// NOTE: Document.prototype.getElementsByClassName is in gecko_dom.js\\n\\n/** @type {boolean} */\\nHTMLElement.prototype.hidden;\\n\\n/** @type {boolean} */\\nHTMLElement.prototype.spellcheck;\\n\\n/**\\n * @see https://dom.spec.whatwg.org/#dictdef-getrootnodeoptions\\n * @typedef {{\\n * composed: boolean\\n * }}\\n */\\nvar GetRootNodeOptions;\\n\\n/**\\n * @see https://dom.spec.whatwg.org/#dom-node-getrootnode\\n * @param {GetRootNodeOptions=} opt_options\\n * @return {!Node}\\n */\\nNode.prototype.getRootNode = function(opt_options) {};\\n\\n/**\\n * @see http://www.w3.org/TR/components-intro/\\n * @return {!ShadowRoot}\\n */\\nHTMLElement.prototype.createShadowRoot;\\n\\n/**\\n * @see http://www.w3.org/TR/components-intro/\\n * @return {!ShadowRoot}\\n */\\nHTMLElement.prototype.webkitCreateShadowRoot;\\n\\n/**\\n * @see http://www.w3.org/TR/shadow-dom/\\n * @type {ShadowRoot}\\n */\\nHTMLElement.prototype.shadowRoot;\\n\\n/**\\n * @see http://www.w3.org/TR/shadow-dom/\\n * @return {!NodeList}\\n */\\nHTMLElement.prototype.getDestinationInsertionPoints = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/components-intro/\\n * @type {function()}\\n */\\nHTMLElement.prototype.createdCallback;\\n\\n/**\\n * @see http://w3c.github.io/webcomponents/explainer/#lifecycle-callbacks\\n * @type {function()}\\n */\\nHTMLElement.prototype.attachedCallback;\\n\\n/**\\n * @see http://w3c.github.io/webcomponents/explainer/#lifecycle-callbacks\\n * @type {function()}\\n */\\nHTMLElement.prototype.detachedCallback;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.download;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.hash;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.host;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.hostname;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.pathname;\\n\\n/**\\n * The 'ping' attribute is known to be supported in recent versions (as of\\n * mid-2014) of Chrome, Safari, and Firefox, and is not supported in any\\n * current version of Internet Explorer.\\n *\\n * @type {string}\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#hyperlink-auditing\\n */\\nHTMLAnchorElement.prototype.ping;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.port;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.protocol;\\n\\n/** @type {string} */\\nHTMLAnchorElement.prototype.search;\\n\\n/** @type {string} */\\nHTMLAreaElement.prototype.download;\\n\\n/**\\n * @type {string}\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#hyperlink-auditing\\n */\\nHTMLAreaElement.prototype.ping;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html-markup/iframe.html#iframe.attrs.srcdoc\\n */\\nHTMLIFrameElement.prototype.srcdoc;\\n\\n/**\\n * @type {?string}\\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-iframe-element.html#attr-iframe-sandbox\\n */\\nHTMLIFrameElement.prototype.sandbox;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.autocomplete;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.dirname;\\n\\n/** @type {FileList} */\\nHTMLInputElement.prototype.files;\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/forms.html#dom-input-indeterminate\\n */\\nHTMLInputElement.prototype.indeterminate;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.list;\\n\\n/** @implicitCast @type {string} */\\nHTMLInputElement.prototype.max;\\n\\n/** @implicitCast @type {string} */\\nHTMLInputElement.prototype.min;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.pattern;\\n\\n/** @type {boolean} */\\nHTMLInputElement.prototype.multiple;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.placeholder;\\n\\n/** @type {boolean} */\\nHTMLInputElement.prototype.required;\\n\\n/** @implicitCast @type {string} */\\nHTMLInputElement.prototype.step;\\n\\n/** @type {Date} */\\nHTMLInputElement.prototype.valueAsDate;\\n\\n/** @type {number} */\\nHTMLInputElement.prototype.valueAsNumber;\\n\\n/**\\n * Changes the form control's value by the value given in the step attribute\\n * multiplied by opt_n.\\n * @param {number=} opt_n step multiplier. Defaults to 1.\\n * @return {undefined}\\n */\\nHTMLInputElement.prototype.stepDown = function(opt_n) {};\\n\\n/**\\n * Changes the form control's value by the value given in the step attribute\\n * multiplied by opt_n.\\n * @param {number=} opt_n step multiplier. Defaults to 1.\\n * @return {undefined}\\n */\\nHTMLInputElement.prototype.stepUp = function(opt_n) {};\\n\\n\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement\\n */\\nfunction HTMLMediaElement() {}\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nHTMLMediaElement.HAVE_NOTHING; // = 0\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nHTMLMediaElement.HAVE_METADATA; // = 1\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nHTMLMediaElement.HAVE_CURRENT_DATA; // = 2\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nHTMLMediaElement.HAVE_FUTURE_DATA; // = 3\\n\\n"; a.a+="/**\\n * @type {number}\\n * @const\\n */\\nHTMLMediaElement.HAVE_ENOUGH_DATA; // = 4\\n\\n/** @type {MediaError} */\\nHTMLMediaElement.prototype.error;\\n\\n/** @type {string} */\\nHTMLMediaElement.prototype.src;\\n\\n/** @type {string} */\\nHTMLMediaElement.prototype.currentSrc;\\n\\n/** @type {number} */\\nHTMLMediaElement.prototype.networkState;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.autobuffer;\\n\\n/** @type {!TimeRanges} */\\nHTMLMediaElement.prototype.buffered;\\n\\n/** @type {!MediaStream} */\\nHTMLMediaElement.prototype.srcObject;\\n\\n/**\\n * Loads the media element.\\n * @return {undefined}\\n */\\nHTMLMediaElement.prototype.load = function() {};\\n\\n/**\\n * @param {string} type Type of the element in question in question.\\n * @return {string} Whether it can play the type.\\n * @nosideeffects\\n */\\nHTMLMediaElement.prototype.canPlayType = function(type) {};\\n\\n/** Event handlers */\\n\\n/** @type {?function(Event)} */\\nHTMLMediaElement.prototype.onabort;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.oncanplay;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.oncanplaythrough;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.ondurationchange;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onemptied;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onended;\\n\\n/** @type {?function(Event)} */\\nHTMLMediaElement.prototype.onerror;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onloadeddata;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onloadedmetadata;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onloadstart;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onpause;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onplay;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onplaying;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onprogress;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onratechange;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onseeked;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onseeking;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onstalled;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onsuspend;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.ontimeupdate;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onvolumechange;\\n\\n/** @type {?function(!Event)} */\\nHTMLMediaElement.prototype.onwaiting;\\n\\n/** @type {?function(Event)} */\\nHTMLImageElement.prototype.onload;\\n\\n/** @type {?function(Event)} */\\nHTMLImageElement.prototype.onerror;\\n\\n/** @type {number} */\\nHTMLMediaElement.prototype.readyState;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.seeking;\\n\\n/**\\n * The current time, in seconds.\\n * @type {number}\\n */\\nHTMLMediaElement.prototype.currentTime;\\n\\n/**\\n * The absolute timeline offset.\\n * @return {!Date}\\n */\\nHTMLMediaElement.prototype.getStartDate = function() {};\\n\\n/**\\n * The length of the media in seconds.\\n * @type {number}\\n */\\nHTMLMediaElement.prototype.duration;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.paused;\\n\\n/** @type {number} */\\nHTMLMediaElement.prototype.defaultPlaybackRate;\\n\\n/** @type {number} */\\nHTMLMediaElement.prototype.playbackRate;\\n\\n/** @type {TimeRanges} */\\nHTMLMediaElement.prototype.played;\\n\\n/** @type {TimeRanges} */\\nHTMLMediaElement.prototype.seekable;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.ended;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.autoplay;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.loop;\\n\\n/**\\n * Starts playing the media.\\n * @return {?Promise} This is a *nullable* Promise on purpose unlike\\n * the HTML5 spec because supported older browsers (incl. Smart TVs) don't\\n * return a Promise.\\n */\\nHTMLMediaElement.prototype.play = function() {};\\n\\n/**\\n * Pauses the media.\\n * @return {undefined}\\n */\\nHTMLMediaElement.prototype.pause = function() {};\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.controls;\\n\\n/**\\n * The audio volume, from 0.0 (silent) to 1.0 (loudest).\\n * @type {number}\\n */\\nHTMLMediaElement.prototype.volume;\\n\\n/** @type {boolean} */\\nHTMLMediaElement.prototype.muted;\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-addtexttrack\\n * @param {string} kind Kind of the text track.\\n * @param {string=} opt_label Label of the text track.\\n * @param {string=} opt_language Language of the text track.\\n * @return {!TextTrack} TextTrack object added to the media element.\\n */\\nHTMLMediaElement.prototype.addTextTrack =\\n function(kind, opt_label, opt_language) {};\\n\\n/** @type {!TextTrackList} */\\nHTMLMediaElement.prototype.textTracks;\\n\\n/**\\n * The ID of the audio device through which output is being delivered, or an\\n * empty string if using the default device.\\n *\\n * Implemented as a draft spec in Chrome 49+.\\n *\\n * @see https://w3c.github.io/mediacapture-output/#htmlmediaelement-extensions\\n * @type {string}\\n */\\nHTMLMediaElement.prototype.sinkId;\\n\\n/**\\n * Sets the audio device through which output should be delivered.\\n *\\n * Implemented as a draft spec in Chrome 49+.\\n *\\n * @param {string} sinkId The ID of the audio output device, or empty string\\n * for default device.\\n *\\n * @see https://w3c.github.io/mediacapture-output/#htmlmediaelement-extensions\\n * @return {!Promise}\\n */\\nHTMLMediaElement.prototype.setSinkId = function(sinkId) {};\\n\\n\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see https://html.spec.whatwg.org/multipage/dom.html#htmlunknownelement\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#customized-built-in-element-restrictions\\n * @see https://w3c.github.io/webcomponents/spec/custom/#custom-elements-api\\n */\\nfunction HTMLUnknownElement() {}\\n\\n\\n\\n/**\\n * @see http://www.w3.org/TR/shadow-dom/\\n * @return {!NodeList}\\n */\\nText.prototype.getDestinationInsertionPoints = function() {};\\n\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttracklist\\n * @constructor\\n * @implements {IArrayLike}\\n */\\nfunction TextTrackList() {}\\n\\n/** @type {number} */\\nTextTrackList.prototype.length;\\n\\n/**\\n * @param {string} id\\n * @return {TextTrack}\\n */\\nTextTrackList.prototype.getTrackById = function(id) {};\\n\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrack\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction TextTrack() {}\\n\\n/**\\n * @param {TextTrackCue} cue\\n * @return {undefined}\\n */\\nTextTrack.prototype.addCue = function(cue) {};\\n\\n/**\\n * @param {TextTrackCue} cue\\n * @return {undefined}\\n */\\nTextTrack.prototype.removeCue = function(cue) {};\\n\\n/**\\n * @const {TextTrackCueList}\\n */\\nTextTrack.prototype.activeCues;\\n\\n/**\\n * @const {TextTrackCueList}\\n */\\nTextTrack.prototype.cues;\\n\\n/**\\n * @type {string}\\n */\\nTextTrack.prototype.mode;\\n\\n/** @override */\\nTextTrack.prototype.addEventListener = function(\\n type, listener, opt_useCapture) {};\\n\\n/** @override */\\nTextTrack.prototype.dispatchEvent = function(evt) {};\\n\\n/** @override */\\nTextTrack.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcuelist\\n * @constructor\\n * @implements {IArrayLike}\\n */\\nfunction TextTrackCueList() {}\\n\\n/** @const {number} */\\nTextTrackCueList.prototype.length;\\n\\n/**\\n * @param {string} id\\n * @return {TextTrackCue}\\n */\\nTextTrackCueList.prototype.getCueById = function(id) {};\\n\\n\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue\\n * @constructor\\n * @param {number} startTime\\n * @param {number} endTime\\n * @param {string} text\\n */\\nfunction TextTrackCue(startTime, endTime, text) {}\\n\\n/** @type {string} */\\nTextTrackCue.prototype.id;\\n\\n/** @type {number} */\\nTextTrackCue.prototype.startTime;\\n\\n/** @type {number} */\\nTextTrackCue.prototype.endTime;\\n\\n/** @type {string} */\\nTextTrackCue.prototype.text;\\n\\n\\n/**\\n * @see http://dev.w3.org/html5/webvtt/#the-vttcue-interface\\n * @constructor\\n * @extends {TextTrackCue}\\n */\\nfunction VTTCue(startTime, endTime, text) {}\\n\\n\\n/**\\n * @constructor\\n * @extends {HTMLMediaElement}\\n */\\nfunction HTMLAudioElement() {}\\n\\n/**\\n * @constructor\\n * @extends {HTMLMediaElement}\\n * The webkit-prefixed attributes are defined in\\n * https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/html/HTMLVideoElement.idl\\n */\\nfunction HTMLVideoElement() {}\\n\\n/**\\n * Starts displaying the video in full screen mode.\\n * @return {undefined}\\n */\\nHTMLVideoElement.prototype.webkitEnterFullscreen = function() {};\\n\\n/**\\n * Starts displaying the video in full screen mode.\\n * @return {undefined}\\n */\\nHTMLVideoElement.prototype.webkitEnterFullScreen = function() {};\\n\\n/**\\n * Stops displaying the video in full screen mode.\\n * @return {undefined}\\n */\\nHTMLVideoElement.prototype.webkitExitFullscreen = function() {};\\n\\n/**\\n * Stops displaying the video in full screen mode.\\n * @return {undefined}\\n */\\nHTMLVideoElement.prototype.webkitExitFullScreen = function() {};\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.width;\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.height;\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.videoWidth;\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.videoHeight;\\n\\n/** @type {string} */\\nHTMLVideoElement.prototype.poster;\\n\\n/** @type {boolean} */\\nHTMLVideoElement.prototype.webkitSupportsFullscreen;\\n\\n/** @type {boolean} */\\nHTMLVideoElement.prototype.webkitDisplayingFullscreen;\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.webkitDecodedFrameCount;\\n\\n/** @type {number} */\\nHTMLVideoElement.prototype.webkitDroppedFrameCount;\\n\\n/**\\n * @typedef {{\\n * creationTime: number,\\n * totalVideoFrames: number,\\n * droppedVideoFrames: number,\\n * corruptedVideoFrames: number,\\n * totalFrameDelay: number\\n * }}\\n */\\nvar VideoPlaybackQuality;\\n\\n/**\\n * @see https://w3c.github.io/media-source/#htmlvideoelement-extensions\\n * @return {!VideoPlaybackQuality} Stats about the current playback.\\n */\\nHTMLVideoElement.prototype.getVideoPlaybackQuality = function() {};\\n\\n\\n/**\\n * @constructor\\n */\\nfunction MediaError() {}\\n\\n/** @type {number} */\\nMediaError.prototype.code;\\n\\n/**\\n * The fetching process for the media resource was aborted by the user agent at\\n * the user's request.\\n * @type {number}\\n */\\nMediaError.MEDIA_ERR_ABORTED;\\n\\n/**\\n * A network error of some description caused the user agent to stop fetching\\n * the media resource, after the resource was established to be usable.\\n * @type {number}\\n */\\nMediaError.MEDIA_ERR_NETWORK;\\n\\n/**\\n * An error of some description occurred while decoding the media resource,\\n * after the resource was established to be usable.\\n * @type {number}\\n */\\nMediaError.MEDIA_ERR_DECODE;\\n\\n/**\\n * The media resource indicated by the src attribute was not suitable.\\n * @type {number}\\n */\\nMediaError.MEDIA_ERR_SRC_NOT_SUPPORTED;\\n\\n// HTML5 MessageChannel\\n/**\\n * @see http://dev.w3.org/html5/spec/comms.html#messagechannel\\n * @constructor\\n */\\nfunction MessageChannel() {}\\n\\n/**\\n * Returns the first port.\\n * @type {!MessagePort}\\n */\\nMessageChannel.prototype.port1;\\n\\n/**\\n * Returns the second port.\\n * @type {!MessagePort}\\n */\\nMessageChannel.prototype.port2;\\n\\n// HTML5 MessagePort\\n/**\\n * @see http://dev.w3.org/html5/spec/comms.html#messageport\\n * @constructor\\n * @implements {EventTarget}\\n * @implements {Transferable}\\n */\\nfunction MessagePort() {}\\n\\n/** @override */\\nMessagePort.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/** @override */\\nMessagePort.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nMessagePort.prototype.dispatchEvent = function(evt) {};\\n\\n\\n/**\\n * Posts a message through the channel, optionally with the given\\n * Array of Transferables.\\n * @param {*} message\\n * @param {Array=} opt_transfer\\n * @return {undefined}\\n */\\nMessagePort.prototype.postMessage = function(message, opt_transfer) {\\n};\\n\\n/**\\n * Begins dispatching messages received on the port.\\n * @return {undefined}\\n */\\nMessagePort.prototype.start = function() {};\\n\\n/**\\n * Disconnects the port, so that it is no longer active.\\n * @return {undefined}\\n */\\nMessagePort.prototype.close = function() {};\\n\\n/**\\n * TODO(blickly): Change this to MessageEvent<*> and add casts as needed\\n * @type {?function(!MessageEvent)}\\n */\\nMessagePort.prototype.onmessage;\\n\\n// HTML5 MessageEvent class\\n/**\\n * @typedef {Window|MessagePort|ServiceWorker}\\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageeventsource\\n */\\nvar MessageEventSource;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @template T\\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageeventinit\\n */\\nfunction MessageEventInit() {}\\n\\n/** @type {T|undefined} */\\nMessageEventInit.prototype.data;\\n\\n/** @type {(string|undefined)} */\\nMessageEventInit.prototype.origin;\\n\\n/** @type {(string|undefined)} */\\nMessageEventInit.prototype.lastEventId;\\n\\n/** @type {(?MessageEventSource|undefined)} */\\nMessageEventInit.prototype.source;\\n\\n/** @type {(!Array|undefined)} */\\nMessageEventInit.prototype.ports;\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\\n * @constructor\\n * @extends {Event}\\n * @param {string} type\\n * @param {MessageEventInit=} opt_eventInitDict\\n * @template T\\n */\\nfunction MessageEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * The data payload of the message.\\n * @type {T}\\n */\\nMessageEvent.prototype.data;\\n\\n/**\\n * The origin of the message, for server-sent events and cross-document\\n * messaging.\\n * @type {string}\\n */\\nMessageEvent.prototype.origin;\\n\\n/**\\n * The last event ID, for server-sent events.\\n * @type {string}\\n */\\nMessageEvent.prototype.lastEventId;\\n\\n/**\\n * The window that dispatched the event.\\n * @type {Window}\\n */\\nMessageEvent.prototype.source;\\n\\n/**\\n * The Array of MessagePorts sent with the message, for cross-document\\n * messaging and channel messaging.\\n * @type {Array}\\n */\\nMessageEvent.prototype.ports;\\n\\n/**\\n * Initializes the event in a manner analogous to the similarly-named methods in\\n * the DOM Events interfaces.\\n * @param {string} typeArg\\n * @param {boolean=} canBubbleArg\\n * @param {boolean=} cancelableArg\\n * @param {T=} dataArg\\n * @param {string=} originArg\\n * @param {string=} lastEventIdArg\\n * @param {?MessageEventSource=} sourceArg\\n * @param {!Array=} portsArg\\n * @return {undefined}\\n */\\nMessageEvent.prototype.initMessageEvent = function(typeArg, canBubbleArg,\\n cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, portsArg) {};\\n\\n/**\\n * Initializes the event in a manner analogous to the similarly-named methods in\\n * the DOM Events interfaces.\\n * @param {string} namespaceURI\\n * @param {string=} typeArg\\n * @param {boolean=} canBubbleArg\\n * @param {boolean=} cancelableArg\\n * @param {T=} dataArg\\n * @param {string=} originArg\\n * @param {string=} lastEventIdArg\\n * @param {?MessageEventSource=} sourceArg\\n * @param {!Array=} portsArg\\n * @return {undefined}\\n */\\nMessageEvent.prototype.initMessageEventNS = function(namespaceURI, typeArg,\\n canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg,\\n portsArg) {};\\n\\n\\n/**\\n * HTML5 BroadcastChannel class.\\n * @param {string} channelName\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\\n * @see https://html.spec.whatwg.org/multipage/comms.html#dom-broadcastchannel\\n * @implements {EventTarget}\\n * @constructor\\n */\\nfunction BroadcastChannel(channelName) {}\\n\\n/**\\n * Sends the message, of any type of object, to each BroadcastChannel object\\n * listening to the same channel.\\n * @param {*} message\\n */\\nBroadcastChannel.prototype.postMessage;\\n\\n/**\\n * Closes the channel object, indicating it won't get any new"; a.a+=" messages, and\\n * allowing it to be, eventually, garbage collected.\\n * @return {void}\\n */\\nBroadcastChannel.prototype.close;\\n\\n/** @override */\\nBroadcastChannel.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nBroadcastChannel.prototype.dispatchEvent = function(evt) {};\\n\\n/** @override */\\nBroadcastChannel.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/**\\n * An EventHandler property that specifies the function to execute when a\\n * message event is fired on this object.\\n * @type {?function(!MessageEvent<*>)}\\n */\\nBroadcastChannel.prototype.onmessage;\\n\\n/**\\n * The name of the channel.\\n * @type {string}\\n */\\nBroadcastChannel.prototype.name;\\n\\n/**\\n * HTML5 DataTransfer class.\\n *\\n * We say that this extends ClipboardData, because Event.prototype.clipboardData\\n * is a DataTransfer on WebKit but a ClipboardData on IE. The interfaces are so\\n * similar that it's easier to merge them.\\n *\\n * @see http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html\\n * @see http://developers.whatwg.org/dnd.html#datatransferitem\\n * @constructor\\n * @extends {ClipboardData}\\n */\\nfunction DataTransfer() {}\\n\\n/** @type {string} */\\nDataTransfer.prototype.dropEffect;\\n\\n/** @type {string} */\\nDataTransfer.prototype.effectAllowed;\\n\\n/** @type {!Array} */\\nDataTransfer.prototype.types;\\n\\n/** @type {!FileList} */\\nDataTransfer.prototype.files;\\n\\n/**\\n * @param {string=} opt_format Format for which to remove data.\\n * @override\\n * @return {undefined}\\n */\\nDataTransfer.prototype.clearData = function(opt_format) {};\\n\\n/**\\n * @param {string} format Format for which to set data.\\n * @param {string} data Data to add.\\n * @override\\n * @return {boolean}\\n */\\nDataTransfer.prototype.setData = function(format, data) {};\\n\\n/**\\n * @param {string} format Format for which to set data.\\n * @return {string} Data for the given format.\\n * @override\\n */\\nDataTransfer.prototype.getData = function(format) { return ''; };\\n\\n/**\\n * @param {HTMLElement} img The image to use when dragging.\\n * @param {number} x Horizontal position of the cursor.\\n * @param {number} y Vertical position of the cursor.\\n * @return {undefined}\\n */\\nDataTransfer.prototype.setDragImage = function(img, x, y) {};\\n\\n/**\\n * @param {HTMLElement} elem Element to receive drag result events.\\n * @return {undefined}\\n */\\nDataTransfer.prototype.addElement = function(elem) {};\\n\\n/**\\n * Addition for accessing clipboard file data that are part of the proposed\\n * HTML5 spec.\\n * @type {DataTransfer}\\n */\\nMouseEvent.prototype.dataTransfer;\\n\\n/**\\n * @record\\n * @extends {MouseEventInit}\\n * @see https://w3c.github.io/uievents/#idl-wheeleventinit\\n */\\nfunction WheelEventInit() {}\\n\\n/** @type {undefined|number} */\\nWheelEventInit.prototype.deltaX;\\n\\n/** @type {undefined|number} */\\nWheelEventInit.prototype.deltaY;\\n\\n/** @type {undefined|number} */\\nWheelEventInit.prototype.deltaZ;\\n\\n/** @type {undefined|number} */\\nWheelEventInit.prototype.deltaMode;\\n\\n/**\\n * @param {string} type\\n * @param {WheelEventInit=} opt_eventInitDict\\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-WheelEvent\\n * @constructor\\n * @extends {MouseEvent}\\n */\\nfunction WheelEvent(type, opt_eventInitDict) {}\\n\\n/** @type {number} */\\nWheelEvent.DOM_DELTA_PIXEL;\\n\\n/** @type {number} */\\nWheelEvent.DOM_DELTA_LINE;\\n\\n/** @type {number} */\\nWheelEvent.DOM_DELTA_PAGE;\\n\\n/** @const {number} */\\nWheelEvent.prototype.deltaX;\\n\\n/** @const {number} */\\nWheelEvent.prototype.deltaY;\\n\\n/** @const {number} */\\nWheelEvent.prototype.deltaZ;\\n\\n/** @const {number} */\\nWheelEvent.prototype.deltaMode;\\n\\n/**\\n * HTML5 DataTransferItem class.\\n *\\n * @see http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html\\n * @see http://developers.whatwg.org/dnd.html#datatransferitem\\n * @constructor\\n */\\nfunction DataTransferItem() {}\\n\\n/** @type {string} */\\nDataTransferItem.prototype.kind;\\n\\n/** @type {string} */\\nDataTransferItem.prototype.type;\\n\\n/**\\n * @param {function(string)} callback\\n * @return {undefined}\\n */\\nDataTransferItem.prototype.getAsString = function(callback) {};\\n\\n/**\\n * @return {?File} The file corresponding to this item, or null.\\n * @nosideeffects\\n */\\nDataTransferItem.prototype.getAsFile = function() { return null; };\\n\\n/**\\n * @return {?Entry} The Entry corresponding to this item, or null. Note that\\n * despite its name,this method only works in Chrome, and will eventually\\n * be renamed to {@code getAsEntry}.\\n * @nosideeffects\\n */\\nDataTransferItem.prototype.webkitGetAsEntry = function() { return null; };\\n\\n/**\\n * HTML5 DataTransferItemList class. There are some discrepancies in the docs\\n * on the whatwg.org site. When in doubt, these prototypes match what is\\n * implemented as of Chrome 30.\\n *\\n * @see http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html\\n * @see http://developers.whatwg.org/dnd.html#datatransferitem\\n * @constructor\\n * @implements {IArrayLike}\\n */\\nfunction DataTransferItemList() {}\\n\\n/** @type {number} */\\nDataTransferItemList.prototype.length;\\n\\n/**\\n * @param {number} i File to return from the list.\\n * @return {DataTransferItem} The ith DataTransferItem in the list, or null.\\n * @nosideeffects\\n */\\nDataTransferItemList.prototype.item = function(i) { return null; };\\n\\n/**\\n * Adds an item to the list.\\n * @param {string|!File} data Data for the item being added.\\n * @param {string=} opt_type Mime type of the item being added. MUST be present\\n * if the {@code data} parameter is a string.\\n * @return {DataTransferItem}\\n */\\nDataTransferItemList.prototype.add = function(data, opt_type) {};\\n\\n/**\\n * Removes an item from the list.\\n * @param {number} i File to remove from the list.\\n * @return {undefined}\\n */\\nDataTransferItemList.prototype.remove = function(i) {};\\n\\n/**\\n * Removes all items from the list.\\n * @return {undefined}\\n */\\nDataTransferItemList.prototype.clear = function() {};\\n\\n/** @type {!DataTransferItemList} */\\nDataTransfer.prototype.items;\\n\\n/**\\n * @record\\n * @extends {MouseEventInit}\\n * @see http://w3c.github.io/html/editing.html#dictdef-drageventinit\\n */\\nfunction DragEventInit() {}\\n\\n/** @type {undefined|?DataTransfer} */\\nDragEventInit.prototype.dataTransfer;\\n\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dragevent-interface\\n * @constructor\\n * @extends {MouseEvent}\\n * @param {string} type\\n * @param {DragEventInit=} opt_eventInitDict\\n */\\nfunction DragEvent(type, opt_eventInitDict) {}\\n\\n/** @type {DataTransfer} */\\nDragEvent.prototype.dataTransfer;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://www.w3.org/TR/progress-events/#progresseventinit\\n */\\nfunction ProgressEventInit() {}\\n\\n/** @type {undefined|boolean} */\\nProgressEventInit.prototype.lengthComputable;\\n\\n/** @type {undefined|number} */\\nProgressEventInit.prototype.loaded;\\n\\n/** @type {undefined|number} */\\nProgressEventInit.prototype.total;\\n\\n/**\\n * @constructor\\n * @param {string} type\\n * @param {ProgressEventInit=} opt_progressEventInitDict\\n * @extends {Event}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ProgressEvent\\n */\\nfunction ProgressEvent(type, opt_progressEventInitDict) {}\\n\\n/** @type {number} */\\nProgressEvent.prototype.total;\\n\\n/** @type {number} */\\nProgressEvent.prototype.loaded;\\n\\n/** @type {boolean} */\\nProgressEvent.prototype.lengthComputable;\\n\\n\\n/**\\n * @constructor\\n */\\nfunction TimeRanges() {}\\n\\n/** @type {number} */\\nTimeRanges.prototype.length;\\n\\n/**\\n * @param {number} index The index.\\n * @return {number} The start time of the range at index.\\n * @throws {DOMException}\\n */\\nTimeRanges.prototype.start = function(index) { return 0; };\\n\\n/**\\n * @param {number} index The index.\\n * @return {number} The end time of the range at index.\\n * @throws {DOMException}\\n */\\nTimeRanges.prototype.end = function(index) { return 0; };\\n\\n\\n// HTML5 Web Socket class\\n/**\\n * @see http://dev.w3.org/html5/websockets/\\n * @constructor\\n * @param {string} url\\n * @param {string=} opt_protocol\\n * @implements {EventTarget}\\n */\\nfunction WebSocket(url, opt_protocol) {}\\n\\n/**\\n * The connection has not yet been established.\\n * @type {number}\\n */\\nWebSocket.CONNECTING = 0;\\n\\n/**\\n * The WebSocket connection is established and communication is possible.\\n * @type {number}\\n */\\nWebSocket.OPEN = 1;\\n\\n/**\\n * The connection is going through the closing handshake, or the close() method has been invoked.\\n * @type {number}\\n */\\nWebSocket.CLOSING = 2;\\n\\n/**\\n * The connection has been closed or could not be opened.\\n * @type {number}\\n */\\nWebSocket.CLOSED = 3;\\n\\n/** @override */\\nWebSocket.prototype.addEventListener = function(type, listener, opt_options) {};\\n\\n/** @override */\\nWebSocket.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nWebSocket.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * Returns the URL value that was passed to the constructor.\\n * @type {string}\\n */\\nWebSocket.prototype.url;\\n\\n/**\\n * Represents the state of the connection.\\n * @type {number}\\n */\\nWebSocket.prototype.readyState;\\n\\n/**\\n * Returns the number of bytes that have been queued but not yet sent.\\n * @type {number}\\n */\\nWebSocket.prototype.bufferedAmount;\\n\\n/**\\n * An event handler called on open event.\\n * @type {?function(!Event)}\\n */\\nWebSocket.prototype.onopen;\\n\\n/**\\n * An event handler called on message event.\\n * TODO(blickly): Change this to MessageEvent<*> and add casts as needed\\n * @type {?function(!MessageEvent)}\\n */\\nWebSocket.prototype.onmessage;\\n\\n/**\\n * An event handler called on close event.\\n * @type {?function(!Event)}\\n */\\nWebSocket.prototype.onclose;\\n\\n/**\\n * Transmits data using the connection.\\n * @param {string|ArrayBuffer|ArrayBufferView} data\\n * @return {boolean}\\n */\\nWebSocket.prototype.send = function(data) {};\\n\\n/**\\n * Closes the Web Socket connection or connection attempt, if any.\\n * @param {number=} opt_code\\n * @param {string=} opt_reason\\n * @return {undefined}\\n */\\nWebSocket.prototype.close = function(opt_code, opt_reason) {};\\n\\n/**\\n * @type {string} Sets the type of data (blob or arraybuffer) for binary data.\\n */\\nWebSocket.prototype.binaryType;\\n\\n// HTML5 History\\n/**\\n * @constructor\\n */\\nfunction History() {}\\n\\n/**\\n * Pushes a new state into the session history.\\n * @see http://www.w3.org/TR/html5/history.html#the-history-interface\\n * @param {*} data New state.\\n * @param {string} title The title for a new session history entry.\\n * @param {string=} opt_url The URL for a new session history entry.\\n * @return {undefined}\\n */\\nHistory.prototype.pushState = function(data, title, opt_url) {};\\n\\n/**\\n * Replaces the current state in the session history.\\n * @see http://www.w3.org/TR/html5/history.html#the-history-interface\\n * @param {*} data New state.\\n * @param {string} title The title for a session history entry.\\n * @param {string=} opt_url The URL for a new session history entry.\\n * @return {undefined}\\n */\\nHistory.prototype.replaceState = function(data, title, opt_url) {};\\n\\n/**\\n * Pending state object.\\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history#Reading_the_current_state\\n * @type {*}\\n */\\nHistory.prototype.state;\\n\\n/**\\n * Allows web applications to explicitly set default scroll restoration behavior\\n * on history navigation. This property can be either auto or manual.\\n *\\n * Non-standard. Only supported in Chrome 46+.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History\\n * @see https://majido.github.io/scroll-restoration-proposal/history-based-api.html\\n * @type {string}\\n */\\nHistory.prototype.scrollRestoration;\\n\\n/**\\n * Add history property to Window.\\n *\\n * @type {!History}\\n */\\nWindow.prototype.history;\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/#popstateevent\\n * @constructor\\n * @extends {Event}\\n *\\n * @param {string} type\\n * @param {{state: *}=} opt_eventInitDict\\n */\\nfunction PopStateEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * @type {*}\\n */\\nPopStateEvent.prototype.state;\\n\\n/**\\n * Initializes the event after it has been created with document.createEvent\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {*} stateArg\\n * @return {undefined}\\n */\\nPopStateEvent.prototype.initPopStateEvent = function(typeArg, canBubbleArg,\\n cancelableArg, stateArg) {};\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/#hashchangeevent\\n * @constructor\\n * @extends {Event}\\n *\\n * @param {string} type\\n * @param {{oldURL: string, newURL: string}=} opt_eventInitDict\\n */\\nfunction HashChangeEvent(type, opt_eventInitDict) {}\\n\\n/** @type {string} */\\nHashChangeEvent.prototype.oldURL;\\n\\n/** @type {string} */\\nHashChangeEvent.prototype.newURL;\\n\\n/**\\n * Initializes the event after it has been created with document.createEvent\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {string} oldURLArg\\n * @param {string} newURLArg\\n * @return {undefined}\\n */\\nHashChangeEvent.prototype.initHashChangeEvent = function(typeArg, canBubbleArg,\\n cancelableArg, oldURLArg, newURLArg) {};\\n\\n/**\\n * @see http://www.whatwg.org/specs/web-apps/current-work/#pagetransitionevent\\n * @constructor\\n * @extends {Event}\\n *\\n * @param {string} type\\n * @param {{persisted: boolean}=} opt_eventInitDict\\n */\\nfunction PageTransitionEvent(type, opt_eventInitDict) {}\\n\\n/** @type {boolean} */\\nPageTransitionEvent.prototype.persisted;\\n\\n/**\\n * Initializes the event after it has been created with document.createEvent\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {*} persistedArg\\n * @return {undefined}\\n */\\nPageTransitionEvent.prototype.initPageTransitionEvent = function(typeArg,\\n canBubbleArg, cancelableArg, persistedArg) {};\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n */\\nfunction FileList() {}\\n\\n/** @type {number} */\\nFileList.prototype.length;\\n\\n/**\\n * @param {number} i File to return from the list.\\n * @return {File} The ith file in the list.\\n * @nosideeffects\\n */\\nFileList.prototype.item = function(i) { return null; };\\n\\n/**\\n * @type {boolean}\\n * @see http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#withcredentials\\n */\\nXMLHttpRequest.prototype.withCredentials;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://xhr.spec.whatwg.org/#handler-xhr-onloadstart\\n */\\nXMLHttpRequest.prototype.onloadstart;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#handler-xhr-onprogress\\n */\\nXMLHttpRequest.prototype.onprogress;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://xhr.spec.whatwg.org/#handler-xhr-onabort\\n */\\nXMLHttpRequest.prototype.onabort;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://xhr.spec.whatwg.org/#handler-xhr-onload\\n */\\nXMLHttpRequest.prototype.onload;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://xhr.spec.whatwg.org/#handler-xhr-ontimeout\\n */\\nXMLHttpRequest.prototype.ontimeout;\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://xhr.spec.whatwg.org/#handler-xhr-onloadend\\n */\\nXMLHttpRequest.prototype.onloadend;\\n\\n/**\\n * @type {XMLHttpRequestUpload}\\n * @see http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-upload-attribute\\n */\\nXMLHttpRequest.prototype.upload;\\n\\n/**\\n * @param {string} mimeType The mime type to override with.\\n * @return {undefined}\\n */\\nXMLHttpRequest.prototype.overrideMimeType = function(mimeType) {};\\n\\n/**\\n * @type {string}\\n * @see http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-responsetype-attribute\\n */\\nXMLHttpRequest.prototype.responseType;\\n\\n/**\\n * @type {?(ArrayBuffer|Blob|Document|Object|string)}\\n * @see http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-response-attribute\\n */\\nXMLHttpRequest.prototype.response;\\n\\n\\n/**\\"; a.a+="n * @type {ArrayBuffer}\\n * Implemented as a draft spec in Firefox 4 as the way to get a requested array\\n * buffer from an XMLHttpRequest.\\n * @see https://developer.mozilla.org/En/Using_XMLHttpRequest#Receiving_binary_data_using_JavaScript_typed_arrays\\n *\\n * This property is not used anymore and should be removed.\\n * @see https://github.com/google/closure-compiler/pull/1389\\n */\\nXMLHttpRequest.prototype.mozResponseArrayBuffer;\\n\\n/**\\n * XMLHttpRequestEventTarget defines events for checking the status of a data\\n * transfer between a client and a server. This should be a common base class\\n * for XMLHttpRequest and XMLHttpRequestUpload.\\n *\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction XMLHttpRequestEventTarget() {}\\n\\n/** @override */\\nXMLHttpRequestEventTarget.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nXMLHttpRequestEventTarget.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nXMLHttpRequestEventTarget.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * An event target to track the status of an upload.\\n *\\n * @constructor\\n * @extends {XMLHttpRequestEventTarget}\\n */\\nfunction XMLHttpRequestUpload() {}\\n\\n/**\\n * @type {?function(!ProgressEvent): void}\\n * @see https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#handler-xhr-onprogress\\n */\\nXMLHttpRequestUpload.prototype.onprogress;\\n\\n/**\\n * @param {number=} opt_width\\n * @param {number=} opt_height\\n * @constructor\\n * @extends {HTMLImageElement}\\n */\\nfunction Image(opt_width, opt_height) {}\\n\\n\\n/**\\n * Dataset collection.\\n * This is really a DOMStringMap but it behaves close enough to an object to\\n * pass as an object.\\n * @type {!Object}\\n * @const\\n */\\nHTMLElement.prototype.dataset;\\n\\n\\n/**\\n * @constructor\\n * @implements {IArrayLike}\\n * @see https://dom.spec.whatwg.org/#interface-domtokenlist\\n */\\nfunction DOMTokenList() {}\\n\\n/**\\n * Returns the number of CSS classes applied to this Element.\\n * @type {number}\\n */\\nDOMTokenList.prototype.length;\\n\\n/**\\n * @param {number} index The index of the item to return.\\n * @return {string} The CSS class at the specified index.\\n * @nosideeffects\\n */\\nDOMTokenList.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} token The CSS class to check for.\\n * @return {boolean} Whether the CSS class has been applied to the Element.\\n * @nosideeffects\\n */\\nDOMTokenList.prototype.contains = function(token) {};\\n\\n/**\\n * @param {...string} var_args The CSS class(es) to add to this element.\\n * @return {undefined}\\n */\\nDOMTokenList.prototype.add = function(var_args) {};\\n\\n/**\\n * @param {...string} var_args The CSS class(es) to remove from this element.\\n * @return {undefined}\\n */\\nDOMTokenList.prototype.remove = function(var_args) {};\\n\\n/**\\n * @param {string} token The CSS class to toggle from this element.\\n * @param {boolean=} opt_force True to add the class whether it exists\\n * or not. False to remove the class whether it exists or not.\\n * This argument is not supported on IE 10 and below, according to\\n * the MDN page linked below.\\n * @return {boolean} False if the token was removed; True otherwise.\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element.classList\\n */\\nDOMTokenList.prototype.toggle = function(token, opt_force) {};\\n\\n/**\\n * @return {string} A stringified representation of CSS classes.\\n * @nosideeffects\\n * @override\\n */\\nDOMTokenList.prototype.toString = function() {};\\n\\n/**\\n * A better interface to CSS classes than className.\\n * @type {!DOMTokenList}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/classList\\n * @const\\n */\\nElement.prototype.classList;\\n\\n/**\\n * Constraint Validation API properties and methods\\n * @see http://www.w3.org/TR/2009/WD-html5-20090423/forms.html#the-constraint-validation-api\\n */\\n\\n/** @return {boolean} */\\nHTMLFormElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLFormElement.prototype.reportValidity = function() {};\\n\\n/** @type {boolean} */\\nHTMLFormElement.prototype.noValidate;\\n\\n/** @constructor */\\nfunction ValidityState() {}\\n\\n/** @type {boolean} */\\nValidityState.prototype.badInput;\\n\\n/** @type {boolean} */\\nValidityState.prototype.customError;\\n\\n/** @type {boolean} */\\nValidityState.prototype.patternMismatch;\\n\\n/** @type {boolean} */\\nValidityState.prototype.rangeOverflow;\\n\\n/** @type {boolean} */\\nValidityState.prototype.rangeUnderflow;\\n\\n/** @type {boolean} */\\nValidityState.prototype.stepMismatch;\\n\\n/** @type {boolean} */\\nValidityState.prototype.typeMismatch;\\n\\n/** @type {boolean} */\\nValidityState.prototype.tooLong;\\n\\n/** @type {boolean} */\\nValidityState.prototype.tooShort;\\n\\n/** @type {boolean} */\\nValidityState.prototype.valid;\\n\\n/** @type {boolean} */\\nValidityState.prototype.valueMissing;\\n\\n\\n/** @type {boolean} */\\nHTMLButtonElement.prototype.autofocus;\\n\\n/**\\n * Can return null when hidden.\\n * See https://html.spec.whatwg.org/multipage/forms.html#dom-lfe-labels\\n * @const\\n * @type {?NodeList}\\n */\\nHTMLButtonElement.prototype.labels;\\n\\n/** @type {string} */\\nHTMLButtonElement.prototype.validationMessage;\\n\\n/**\\n * @const\\n * @type {ValidityState}\\n */\\nHTMLButtonElement.prototype.validity;\\n\\n/** @type {boolean} */\\nHTMLButtonElement.prototype.willValidate;\\n\\n/** @return {boolean} */\\nHTMLButtonElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLButtonElement.prototype.reportValidity = function() {};\\n\\n/**\\n * @param {string} message\\n * @return {undefined}\\n */\\nHTMLButtonElement.prototype.setCustomValidity = function(message) {};\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formaction\\n */\\nHTMLButtonElement.prototype.formAction;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formenctype\\n */\\nHTMLButtonElement.prototype.formEnctype;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formmethod\\n */\\nHTMLButtonElement.prototype.formMethod;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formtarget\\n */\\nHTMLButtonElement.prototype.formTarget;\\n\\n/** @type {boolean} */\\nHTMLInputElement.prototype.autofocus;\\n\\n/** @type {boolean} */\\nHTMLInputElement.prototype.formNoValidate;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formaction\\n */\\nHTMLInputElement.prototype.formAction;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formenctype\\n */\\nHTMLInputElement.prototype.formEnctype;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formmethod\\n */\\nHTMLInputElement.prototype.formMethod;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/forms.html#attr-fs-formtarget\\n */\\nHTMLInputElement.prototype.formTarget;\\n\\n/**\\n * Can return null when hidden.\\n * See https://html.spec.whatwg.org/multipage/forms.html#dom-lfe-labels\\n * @const\\n * @type {?NodeList}\\n */\\nHTMLInputElement.prototype.labels;\\n\\n/** @type {string} */\\nHTMLInputElement.prototype.validationMessage;\\n\\n/**\\n * @const\\n * @type {ValidityState}\\n */\\nHTMLInputElement.prototype.validity;\\n\\n/** @type {boolean} */\\nHTMLInputElement.prototype.willValidate;\\n\\n/** @return {boolean} */\\nHTMLInputElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLInputElement.prototype.reportValidity = function() {};\\n\\n/**\\n * @param {string} message\\n * @return {undefined}\\n */\\nHTMLInputElement.prototype.setCustomValidity = function(message) {};\\n\\n/** @type {Element} */\\nHTMLLabelElement.prototype.control;\\n\\n/** @type {boolean} */\\nHTMLSelectElement.prototype.autofocus;\\n\\n/**\\n * Can return null when hidden.\\n * See https://html.spec.whatwg.org/multipage/forms.html#dom-lfe-labels\\n * @const\\n * @type {?NodeList}\\n */\\nHTMLSelectElement.prototype.labels;\\n\\n/** @type {HTMLCollection} */\\nHTMLSelectElement.prototype.selectedOptions;\\n\\n/** @type {string} */\\nHTMLSelectElement.prototype.validationMessage;\\n\\n/**\\n * @const\\n * @type {ValidityState}\\n */\\nHTMLSelectElement.prototype.validity;\\n\\n/** @type {boolean} */\\nHTMLSelectElement.prototype.willValidate;\\n\\n/** @return {boolean} */\\nHTMLSelectElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLSelectElement.prototype.reportValidity = function() {};\\n\\n/**\\n * @param {string} message\\n * @return {undefined}\\n */\\nHTMLSelectElement.prototype.setCustomValidity = function(message) {};\\n\\n/** @type {boolean} */\\nHTMLTextAreaElement.prototype.autofocus;\\n\\n/**\\n * Can return null when hidden.\\n * See https://html.spec.whatwg.org/multipage/forms.html#dom-lfe-labels\\n * @const\\n * @type {?NodeList}\\n */\\nHTMLTextAreaElement.prototype.labels;\\n\\n/** @type {string} */\\nHTMLTextAreaElement.prototype.validationMessage;\\n\\n/**\\n * @const\\n * @type {ValidityState}\\n */\\nHTMLTextAreaElement.prototype.validity;\\n\\n/** @type {boolean} */\\nHTMLTextAreaElement.prototype.willValidate;\\n\\n/** @return {boolean} */\\nHTMLTextAreaElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLTextAreaElement.prototype.reportValidity = function() {};\\n\\n/**\\n * @param {string} message\\n * @return {undefined}\\n */\\nHTMLTextAreaElement.prototype.setCustomValidity = function(message) {};\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n * @see http://www.w3.org/TR/html5/the-embed-element.html#htmlembedelement\\n */\\nfunction HTMLEmbedElement() {}\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/dimension-attributes.html#dom-dim-width\\n */\\nHTMLEmbedElement.prototype.width;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/dimension-attributes.html#dom-dim-height\\n */\\nHTMLEmbedElement.prototype.height;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/the-embed-element.html#dom-embed-src\\n */\\nHTMLEmbedElement.prototype.src;\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/html5/the-embed-element.html#dom-embed-type\\n */\\nHTMLEmbedElement.prototype.type;\\n\\n// Fullscreen APIs.\\n\\n/**\\n * @see http://www.w3.org/TR/2012/WD-fullscreen-20120703/#dom-element-requestfullscreen\\n * @return {undefined}\\n */\\nElement.prototype.requestFullscreen = function() {};\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/2012/WD-fullscreen-20120703/#dom-document-fullscreenenabled\\n */\\nDocument.prototype.fullscreenEnabled;\\n\\n/**\\n * @type {Element}\\n * @see http://www.w3.org/TR/2012/WD-fullscreen-20120703/#dom-document-fullscreenelement\\n */\\nDocument.prototype.fullscreenElement;\\n\\n/**\\n * @see http://www.w3.org/TR/2012/WD-fullscreen-20120703/#dom-document-exitfullscreen\\n * @return {undefined}\\n */\\nDocument.prototype.exitFullscreen = function() {};\\n\\n// Externs definitions of browser current implementations.\\n// Firefox 10 implementation.\\nElement.prototype.mozRequestFullScreen = function() {};\\n\\nElement.prototype.mozRequestFullScreenWithKeys = function() {};\\n\\n/** @type {boolean} */\\nDocument.prototype.mozFullScreen;\\n\\nDocument.prototype.mozCancelFullScreen = function() {};\\n\\n/** @type {Element} */\\nDocument.prototype.mozFullScreenElement;\\n\\n/** @type {boolean} */\\nDocument.prototype.mozFullScreenEnabled;\\n\\n// Chrome 21 implementation.\\n/**\\n * The current fullscreen element for the document is set to this element.\\n * Valid only for Webkit browsers.\\n * @param {number=} opt_allowKeyboardInput Whether keyboard input is desired.\\n * Should use ALLOW_KEYBOARD_INPUT constant.\\n * @return {undefined}\\n */\\nElement.prototype.webkitRequestFullScreen = function(opt_allowKeyboardInput) {};\\n\\n/**\\n * The current fullscreen element for the document is set to this element.\\n * Valid only for Webkit browsers.\\n * @param {number=} opt_allowKeyboardInput Whether keyboard input is desired.\\n * Should use ALLOW_KEYBOARD_INPUT constant.\\n * @return {undefined}\\n */\\nElement.prototype.webkitRequestFullscreen = function(opt_allowKeyboardInput) {};\\n\\n/** @type {boolean} */\\nDocument.prototype.webkitIsFullScreen;\\n\\nDocument.prototype.webkitCancelFullScreen = function() {};\\n\\n/** @type {boolean} */\\nDocument.prototype.webkitFullscreenEnabled;\\n\\n/** @type {Element} */\\nDocument.prototype.webkitCurrentFullScreenElement;\\n\\n/** @type {Element} */\\nDocument.prototype.webkitFullscreenElement;\\n\\n/** @type {boolean} */\\nDocument.prototype.webkitFullScreenKeyboardInputAllowed;\\n\\n// IE 11 implementation.\\n// http://msdn.microsoft.com/en-us/library/ie/dn265028(v=vs.85).aspx\\n/** @return {void} */\\nElement.prototype.msRequestFullscreen = function() {};\\n\\n/** @return {void} */\\nElement.prototype.msExitFullscreen = function() {};\\n\\n/** @type {boolean} */\\nDocument.prototype.msFullscreenEnabled;\\n\\n/** @type {Element} */\\nDocument.prototype.msFullscreenElement;\\n\\n/** @type {number} */\\nElement.ALLOW_KEYBOARD_INPUT = 1;\\n\\n/** @type {number} */\\nElement.prototype.ALLOW_KEYBOARD_INPUT = 1;\\n\\n\\n/**\\n * @typedef {{\\n * childList: (boolean|undefined),\\n * attributes: (boolean|undefined),\\n * characterData: (boolean|undefined),\\n * subtree: (boolean|undefined),\\n * attributeOldValue: (boolean|undefined),\\n * characterDataOldValue: (boolean|undefined),\\n * attributeFilter: (!Array|undefined)\\n * }}\\n */\\nvar MutationObserverInit;\\n\\n\\n/** @constructor */\\nfunction MutationRecord() {}\\n\\n/** @type {string} */\\nMutationRecord.prototype.type;\\n\\n/** @type {Node} */\\nMutationRecord.prototype.target;\\n\\n/** @type {!NodeList} */\\nMutationRecord.prototype.addedNodes;\\n\\n/** @type {!NodeList} */\\nMutationRecord.prototype.removedNodes;\\n\\n/** @type {?Node} */\\nMutationRecord.prototype.previousSibling;\\n\\n/** @type {?Node} */\\nMutationRecord.prototype.nextSibling;\\n\\n/** @type {?string} */\\nMutationRecord.prototype.attributeName;\\n\\n/** @type {?string} */\\nMutationRecord.prototype.attributeNamespace;\\n\\n/** @type {?string} */\\nMutationRecord.prototype.oldValue;\\n\\n\\n/**\\n * @see http://www.w3.org/TR/domcore/#mutation-observers\\n * @param {function(Array, MutationObserver)} callback\\n * @constructor\\n */\\nfunction MutationObserver(callback) {}\\n\\n/**\\n * @param {Node} target\\n * @param {MutationObserverInit=} options\\n * @return {undefined}\\n */\\nMutationObserver.prototype.observe = function(target, options) {};\\n\\nMutationObserver.prototype.disconnect = function() {};\\n\\n/**\\n * @return {!Array}\\n */\\nMutationObserver.prototype.takeRecords = function() {};\\n\\n/**\\n * @type {function(new:MutationObserver, function(Array))}\\n */\\nWindow.prototype.WebKitMutationObserver;\\n\\n/**\\n * @type {function(new:MutationObserver, function(Array))}\\n */\\nWindow.prototype.MozMutationObserver;\\n\\n\\n/**\\n * @see http://www.w3.org/TR/page-visibility/\\n * @type {VisibilityState}\\n */\\nDocument.prototype.visibilityState;\\n\\n/**\\n * @type {string}\\n */\\nDocument.prototype.mozVisibilityState;\\n\\n/**\\n * @type {string}\\n */\\nDocument.prototype.webkitVisibilityState;\\n\\n/**\\n * @type {string}\\n */\\nDocument.prototype.msVisibilityState;\\n\\n/**\\n * @see http://www.w3.org/TR/page-visibility/\\n * @type {boolean}\\n */\\nDocument.prototype.hidden;\\n\\n/**\\n * @type {boolean}\\n */\\nDocument.prototype.mozHidden;\\n\\n/**\\n * @type {boolean}\\n */\\nDocument.prototype.webkitHidden;\\n\\n/**\\n * @type {boolean}\\n */\\nDocument.prototype.msHidden;\\n\\n/**\\n * @see http://www.w3.org/TR/components-intro/\\n * @see http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-register\\n * @param {string} type\\n * @param {{extends: (string|undefined), prototype: (Object|undefined)}=} options\\n * @return {!Function} a constructor for the new tag. A generic function is the best we\\n * can do here as it allows the return value to be annotated properly\\n * at the call site.\\n */\\nDocument.prototype.registerElement = function(type, options) {};\\n\\n/**\\n * This method is deprecated and should be removed by the end of 2014.\\n * @see http://www.w3.org/TR/components-intro/\\n * @see http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-register\\n * @param {string} type\\n * @param {{extends: (string|undefine"; a.a+="d), prototype: (Object|undefined)}} options\\n */\\nDocument.prototype.register = function(type, options) {};\\n\\n/**\\n * @type {!FontFaceSet}\\n * @see http://dev.w3.org/csswg/css-font-loading/#dom-fontfacesource-fonts\\n */\\nDocument.prototype.fonts;\\n\\n\\n/**\\n * @type {?HTMLScriptElement}\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript\\n */\\nDocument.prototype.currentScript;\\n\\n/**\\n * Definition of ShadowRoot interface,\\n * @see http://www.w3.org/TR/shadow-dom/#api-shadow-root\\n * @constructor\\n * @extends {DocumentFragment}\\n */\\nfunction ShadowRoot() {}\\n\\n/**\\n * The host element that a ShadowRoot is attached to.\\n * Note: this is not yet W3C standard but is undergoing development.\\n * W3C feature tracking bug:\\n * https://www.w3.org/Bugs/Public/show_bug.cgi?id=22399\\n * Draft specification:\\n * https://dvcs.w3.org/hg/webcomponents/raw-file/6743f1ace623/spec/shadow/index.html#shadow-root-object\\n * @type {!Element}\\n */\\nShadowRoot.prototype.host;\\n\\n/**\\n * @param {string} id id.\\n * @return {HTMLElement}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.getElementById = function(id) {};\\n\\n\\n/**\\n * @param {string} className\\n * @return {!NodeList}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.getElementsByClassName = function(className) {};\\n\\n\\n/**\\n * @param {string} tagName\\n * @return {!NodeList}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.getElementsByTagName = function(tagName) {};\\n\\n\\n/**\\n * @param {string} namespace\\n * @param {string} localName\\n * @return {!NodeList}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.getElementsByTagNameNS = function(namespace, localName) {};\\n\\n\\n/**\\n * @return {Selection}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.getSelection = function() {};\\n\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @return {Element}\\n * @nosideeffects\\n */\\nShadowRoot.prototype.elementFromPoint = function(x, y) {};\\n\\n\\n/**\\n * @type {boolean}\\n */\\nShadowRoot.prototype.applyAuthorStyles;\\n\\n\\n/**\\n * @type {boolean}\\n */\\nShadowRoot.prototype.resetStyleInheritance;\\n\\n\\n/**\\n * @type {Element}\\n */\\nShadowRoot.prototype.activeElement;\\n\\n\\n/**\\n * @type {?ShadowRoot}\\n */\\nShadowRoot.prototype.olderShadowRoot;\\n\\n\\n/**\\n * @type {string}\\n */\\nShadowRoot.prototype.innerHTML;\\n\\n\\n/**\\n * @type {!StyleSheetList}\\n */\\nShadowRoot.prototype.styleSheets;\\n\\n\\n\\n/**\\n * @see http://www.w3.org/TR/shadow-dom/#the-content-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLContentElement() {}\\n\\n/**\\n * @type {!string}\\n */\\nHTMLContentElement.prototype.select;\\n\\n/**\\n * @return {!NodeList}\\n */\\nHTMLContentElement.prototype.getDistributedNodes = function() {};\\n\\n\\n/**\\n * @see http://www.w3.org/TR/shadow-dom/#the-shadow-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLShadowElement() {}\\n\\n/**\\n * @return {!NodeList}\\n */\\nHTMLShadowElement.prototype.getDistributedNodes = function() {};\\n\\n\\n/**\\n * @see http://www.w3.org/TR/html5/webappapis.html#the-errorevent-interface\\n *\\n * @constructor\\n * @extends {Event}\\n *\\n * @param {string} type\\n * @param {ErrorEventInit=} opt_eventInitDict\\n */\\nfunction ErrorEvent(type, opt_eventInitDict) {}\\n\\n/** @const {string} */\\nErrorEvent.prototype.message;\\n\\n/** @const {string} */\\nErrorEvent.prototype.filename;\\n\\n/** @const {number} */\\nErrorEvent.prototype.lineno;\\n\\n/** @const {number} */\\nErrorEvent.prototype.colno;\\n\\n/** @const {*} */\\nErrorEvent.prototype.error;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://www.w3.org/TR/html5/webappapis.html#erroreventinit\\n */\\nfunction ErrorEventInit() {}\\n\\n/** @type {undefined|string} */\\nErrorEventInit.prototype.message;\\n\\n/** @type {undefined|string} */\\nErrorEventInit.prototype.filename;\\n\\n/** @type {undefined|number} */\\nErrorEventInit.prototype.lineno;\\n\\n/** @type {undefined|number} */\\nErrorEventInit.prototype.colno;\\n\\n/** @type {*} */\\nErrorEventInit.prototype.error;\\n\\n\\n/**\\n * @see http://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument\\n * @param {string=} opt_title A title to give the new HTML document\\n * @return {!HTMLDocument}\\n */\\nDOMImplementation.prototype.createHTMLDocument = function(opt_title) {};\\n\\n\\n\\n/**\\n * @constructor\\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element\\n * @extends {HTMLElement}\\n */\\nfunction HTMLPictureElement() {}\\n\\n/**\\n * @constructor\\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element\\n * @extends {HTMLElement}\\n */\\nfunction HTMLSourceElement() {}\\n\\n/** @type {string} */\\nHTMLSourceElement.prototype.media;\\n\\n/** @type {string} */\\nHTMLSourceElement.prototype.sizes;\\n\\n/** @type {string} */\\nHTMLSourceElement.prototype.src;\\n\\n/** @type {string} */\\nHTMLSourceElement.prototype.srcset;\\n\\n/** @type {string} */\\nHTMLSourceElement.prototype.type;\\n\\n/** @type {string} */\\nHTMLImageElement.prototype.sizes;\\n\\n/** @type {string} */\\nHTMLImageElement.prototype.srcset;\\n\\n\\n/**\\n * 4.11 Interactive elements\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html\\n */\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#the-details-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLDetailsElement() {}\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-details-open\\n * @type {boolean}\\n */\\nHTMLDetailsElement.prototype.open;\\n\\n\\n// As of 2/20/2015, has no special web IDL interface nor global\\n// constructor (i.e. HTMLSummaryElement).\\n\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menu-type\\n * @type {string}\\n */\\nHTMLMenuElement.prototype.type;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menu-label\\n * @type {string}\\n */\\nHTMLMenuElement.prototype.label;\\n\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#the-menuitem-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLMenuItemElement() {}\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-type\\n * @type {string}\\n */\\nHTMLMenuItemElement.prototype.type;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-label\\n * @type {string}\\n */\\nHTMLMenuItemElement.prototype.label;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-icon\\n * @type {string}\\n */\\nHTMLMenuItemElement.prototype.icon;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-disabled\\n * @type {boolean}\\n */\\nHTMLMenuItemElement.prototype.disabled;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-checked\\n * @type {boolean}\\n */\\nHTMLMenuItemElement.prototype.checked;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-radiogroup\\n * @type {string}\\n */\\nHTMLMenuItemElement.prototype.radiogroup;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-menuitem-default\\n * @type {boolean}\\n */\\nHTMLMenuItemElement.prototype.default;\\n\\n// TODO(dbeam): add HTMLMenuItemElement.prototype.command if it's implemented.\\n\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#relatedevent\\n * @param {string} type\\n * @param {{relatedTarget: (EventTarget|undefined)}=} opt_eventInitDict\\n * @constructor\\n * @extends {Event}\\n */\\nfunction RelatedEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-relatedevent-relatedtarget\\n * @type {EventTarget|undefined}\\n */\\nRelatedEvent.prototype.relatedTarget;\\n\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#the-dialog-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLDialogElement() {}\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-dialog-open\\n * @type {boolean}\\n */\\nHTMLDialogElement.prototype.open;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-dialog-returnvalue\\n * @type {string}\\n */\\nHTMLDialogElement.prototype.returnValue;\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-dialog-show\\n * @param {(MouseEvent|Element)=} opt_anchor\\n * @return {undefined}\\n */\\nHTMLDialogElement.prototype.show = function(opt_anchor) {};\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-dialog-showmodal\\n * @param {(MouseEvent|Element)=} opt_anchor\\n * @return {undefined}\\n */\\nHTMLDialogElement.prototype.showModal = function(opt_anchor) {};\\n\\n/**\\n * @see http://www.w3.org/html/wg/drafts/html/master/interactive-elements.html#dom-dialog-close\\n * @param {string=} opt_returnValue\\n * @return {undefined}\\n */\\nHTMLDialogElement.prototype.close = function(opt_returnValue) {};\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#the-template-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLTemplateElement() {}\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#the-template-element\\n * @type {!DocumentFragment}\\n */\\nHTMLTemplateElement.prototype.content;\\n\\n\\n/**\\n * @type {?Document}\\n * @see w3c_dom2.js\\n * @see http://www.w3.org/TR/html-imports/#interface-import\\n */\\nHTMLLinkElement.prototype.import;\\n\\n\\n/**\\n * @return {boolean}\\n * @see https://www.w3.org/TR/html5/forms.html#dom-fieldset-elements\\n */\\nHTMLFieldSetElement.prototype.checkValidity = function() {};\\n\\n/**\\n * @type {HTMLCollection}\\n * @see https://www.w3.org/TR/html5/forms.html#dom-fieldset-elements\\n */\\nHTMLFieldSetElement.prototype.elements;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/forms.html#the-fieldset-element\\n */\\nHTMLFieldSetElement.prototype.name;\\n\\n/**\\n * @param {string} message\\n * @see https://www.w3.org/TR/html5/forms.html#dom-fieldset-elements\\n * @return {undefined}\\n */\\nHTMLFieldSetElement.prototype.setCustomValidity = function(message) {};\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/forms.html#dom-fieldset-type\\n */\\nHTMLFieldSetElement.prototype.type;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/forms.html#the-fieldset-element\\n */\\nHTMLFieldSetElement.prototype.validationMessage;\\n\\n/**\\n * @type {ValidityState}\\n * @see https://www.w3.org/TR/html5/forms.html#the-fieldset-element\\n */\\nHTMLFieldSetElement.prototype.validity;\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/forms.html#the-fieldset-element\\n */\\nHTMLFieldSetElement.prototype.willValidate;\\n\\n/**\\n * @constructor\\n * @extends {NodeList}\\n * @template T\\n * @see https://html.spec.whatwg.org/multipage/infrastructure.html#radionodelist\\n */\\nfunction RadioNodeList() {}\\n\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/forms.html#the-datalist-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLDataListElement() {}\\n\\n\\n/** @type {HTMLCollection} */\\nHTMLDataListElement.prototype.options;\\n\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/forms.html#the-output-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLOutputElement() {}\\n\\n/**\\n * @const {!DOMTokenList}\\n */\\nHTMLOutputElement.prototype.htmlFor;\\n\\n/**\\n * @type {HTMLFormElement}\\n */\\nHTMLOutputElement.prototype.form;\\n\\n/**\\n * @type {string}\\n */\\nHTMLOutputElement.prototype.name;\\n\\n/**\\n * @const {string}\\n */\\nHTMLOutputElement.prototype.type;\\n\\n/**\\n * @type {string}\\n */\\nHTMLOutputElement.prototype.defaultValue;\\n\\n/**\\n * @type {string}\\n */\\nHTMLOutputElement.prototype.value;\\n\\n/**\\n * @const {?NodeList}\\n */\\nHTMLOutputElement.prototype.labels;\\n\\n/** @type {string} */\\nHTMLOutputElement.prototype.validationMessage;\\n\\n/**\\n * @const {ValidityState}\\n */\\nHTMLOutputElement.prototype.validity;\\n\\n/** @type {boolean} */\\nHTMLOutputElement.prototype.willValidate;\\n\\n/** @return {boolean} */\\nHTMLOutputElement.prototype.checkValidity = function() {};\\n\\n/** @return {boolean} */\\nHTMLOutputElement.prototype.reportValidity = function() {};\\n\\n/** @param {string} message */\\nHTMLOutputElement.prototype.setCustomValidity = function(message) {};\\n\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/forms.html#the-progress-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLProgressElement() {}\\n\\n\\n/** @type {number} */\\nHTMLProgressElement.prototype.value;\\n\\n\\n/** @type {number} */\\nHTMLProgressElement.prototype.max;\\n\\n\\n/** @type {number} */\\nHTMLProgressElement.prototype.position;\\n\\n\\n/** @type {?NodeList} */\\nHTMLProgressElement.prototype.labels;\\n\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#the-track-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLTrackElement() {}\\n\\n\\n/** @type {string} */\\nHTMLTrackElement.prototype.kind;\\n\\n\\n/** @type {string} */\\nHTMLTrackElement.prototype.src;\\n\\n\\n/** @type {string} */\\nHTMLTrackElement.prototype.srclang;\\n\\n\\n/** @type {string} */\\nHTMLTrackElement.prototype.label;\\n\\n\\n/** @type {boolean} */\\nHTMLTrackElement.prototype.default;\\n\\n\\n/** @const {number} */\\nHTMLTrackElement.prototype.readyState;\\n\\n\\n/** @const {!TextTrack} */\\nHTMLTrackElement.prototype.track;\\n\\n\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/forms.html#the-meter-element\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLMeterElement() {}\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.value;\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.min;\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.max;\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.low;\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.high;\\n\\n\\n/** @type {number} */\\nHTMLMeterElement.prototype.optimum;\\n\\n\\n/** @type {?NodeList} */\\nHTMLMeterElement.prototype.labels;\\n\\n\\n/**\\n * @constructor\\n * @see https://www.w3.org/TR/html5/webappapis.html#navigator\\n */\\nfunction Navigator() {}\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\\n */\\nNavigator.prototype.appCodeName;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appname\\n */\\nNavigator.prototype.appName;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appversion\\n */\\nNavigator.prototype.appVersion;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-platform\\n */\\nNavigator.prototype.platform;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-product\\n */\\nNavigator.prototype.product;\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-useragent\\n */\\nNavigator.prototype.userAgent;\\n\\n/**\\n * @return {boolean}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-taintenabled\\n */\\nNavigator.prototype.taintEnabled = function() {};\\n\\n/**\\n * @type {string}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-language\\n */\\nNavigator.prototype.language;\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/browsers.html#navigatoronline\\n */\\nNavigator.prototype.onLine;\\n\\n/**\\n * @type {boolean}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-cookieenabled\\n */\\nNavigator.prototype.cookieEnabled;\\n\\n/**\\n * @param {string} scheme\\n * @param {string} url\\n * @param {string} title\\n * @return {undefined}\\n */\\nNavigator.prototype.registerProtocolHandler = function(scheme, url, title) {}\\n\\n/**\\n * @param {string} mimeType\\n * @param {string} url\\n * @param {string} title\\n * @return {undefined}\\n */\\nNavigator.prototype.registerContentHandler = function(mimeType, url, title) {}\\n\\n/**\\n * @param {string} scheme\\n * @param {string} url\\n * @return {undefined}\\n */\\nNavigator.prototype.unregisterProtocolHandler = function(scheme, url) {}\\n\\n/**\\n * @param {string} mimeType\\n * @param {st"; a.a+='ring} url\\n * @return {undefined}\\n */\\nNavigator.prototype.unregisterContentHandler = function(mimeType, url) {}\\n\\n/**\\n * @type {!MimeTypeArray}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-mimetypes\\n */\\nNavigator.prototype.mimeTypes;\\n\\n/**\\n * @type {!PluginArray}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-plugins\\n */\\nNavigator.prototype.plugins;\\n\\n/**\\n * @return {boolean}\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-navigator-javaenabled\\n * @nosideeffects\\n */\\nNavigator.prototype.javaEnabled = function() {};\\n\\n\\n/**\\n * @constructor\\n * @implements {IObject<(string|number),!Plugin>}\\n * @implements {IArrayLike}\\n * @see https://www.w3.org/TR/html5/webappapis.html#pluginarray\\n */\\nfunction PluginArray() {}\\n\\n/** @type {number} */\\nPluginArray.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {Plugin}\\n */\\nPluginArray.prototype.item = function(index) {};\\n\\n/**\\n * @param {string} name\\n * @return {Plugin}\\n */\\nPluginArray.prototype.namedItem = function(name) {};\\n\\n/**\\n * @param {boolean=} reloadDocuments\\n * @return {undefined}\\n */\\nPluginArray.prototype.refresh = function(reloadDocuments) {};\\n\\n/**\\n * @constructor\\n * @implements {IObject<(string|number),!MimeType>}\\n * @implements {IArrayLike}\\n * @see https://www.w3.org/TR/html5/webappapis.html#mimetypearray\\n */\\nfunction MimeTypeArray() {}\\n\\n/**\\n * @param {number} index\\n * @return {MimeType}\\n */\\nMimeTypeArray.prototype.item = function(index) {};\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/en/DOM/window.navigator.mimeTypes\\n */\\nMimeTypeArray.prototype.length;\\n\\n/**\\n * @param {string} name\\n * @return {MimeType}\\n */\\nMimeTypeArray.prototype.namedItem = function(name) {};\\n\\n/**\\n * @constructor\\n * @see https://www.w3.org/TR/html5/webappapis.html#mimetype\\n */\\nfunction MimeType() {}\\n\\n/** @type {string} */\\nMimeType.prototype.description;\\n\\n/** @type {Plugin} */\\nMimeType.prototype.enabledPlugin;\\n\\n/** @type {string} */\\nMimeType.prototype.suffixes;\\n\\n/** @type {string} */\\nMimeType.prototype.type;\\n\\n/**\\n * @constructor\\n * @see https://www.w3.org/TR/html5/webappapis.html#dom-plugin\\n */\\nfunction Plugin() {}\\n\\n/** @type {string} */\\nPlugin.prototype.description;\\n\\n/** @type {string} */\\nPlugin.prototype.filename;\\n\\n/** @type {number} */\\nPlugin.prototype.length;\\n\\n/** @type {string} */\\nPlugin.prototype.name;\\n\\n/**\\n * @see https://html.spec.whatwg.org/multipage/scripting.html#custom-elements\\n * @constructor\\n */\\nfunction CustomElementRegistry() {}\\n\\n/**\\n * @param {string} tagName\\n * @param {!function(new:HTMLElement)} klass\\n * @param {{extends: string}=} options\\n */\\nCustomElementRegistry.prototype.define = function (tagName, klass, options) {};\\n\\n/**\\n * @param {string} tagName\\n * @return {?function(new:HTMLElement)}\\n */\\nCustomElementRegistry.prototype.get = function(tagName) {};\\n\\n/**\\n * @param {string} tagName\\n * @return {Promise}\\n */\\nCustomElementRegistry.prototype.whenDefined = function(tagName) {};\\n\\n/** @type {!CustomElementRegistry} */\\nvar customElements;\\n\\n/**\\n * @constructor\\n * @extends {HTMLElement}\\n */\\nfunction HTMLSlotElement() {}\\n\\n/**\\n * @param {!{flatten: boolean}=} options\\n * @return {!Array}\\n */\\nHTMLSlotElement.prototype.assignedNodes = function(options) {};\\n\\n/** @type {boolean} */\\nEvent.prototype.composed;\\n\\n/**\\n * @return {!Array}\\n */\\nEvent.prototype.composedPath = function() {};\\n\\n/**\\n * @constructor\\n * @param {{\\n * firesTouchEvents: (string|undefined),\\n * pointerMovementScrolls: (string|undefined)\\n * }=} opt_options\\n */\\nfunction InputDeviceCapabilities(opt_options){}\\n\\n/** @type {boolean} */\\nInputDeviceCapabilities.prototype.firesTouchEvents;\\n\\n/** @type {boolean} */\\nInputDeviceCapabilities.prototype.pointerMovementScrolls;\\n\\n/** @type {?InputDeviceCapabilities} */\\nMouseEvent.prototype.sourceCapabilities;\\n","externs/ie_vml.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for IE\'s vector markup language, or VML.\\n *\\n * @externs\\n * @author robbyw@google.com (Robby Walker)\\n */\\n\\n\\n/**\\n * @type {Object|string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263836(VS.85).aspx\\n */\\nElement.prototype.coordorigin;\\n\\n/**\\n * @type {Object|string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263837(VS.85).aspx\\n */\\nElement.prototype.coordsize;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263839(VS.85).aspx\\n */\\nElement.prototype.fillcolor;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/bb263840(VS.85).aspx\\n */\\nElement.prototype.filled;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263871(VS.85).aspx\\n */\\nElement.prototype.path;\\n\\n/**\\n * @type {number|string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263877(VS.85).aspx\\n */\\nElement.prototype.rotation;\\n\\n/**\\n * @type {string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263881(VS.85).aspx\\n */\\nElement.prototype.strokecolor;\\n\\n/**\\n * @type {boolean}\\n * @see http://msdn.microsoft.com/en-us/library/bb263882(VS.85).aspx\\n */\\nElement.prototype.stroked;\\n\\n/**\\n * @type {number|string}\\n * @see http://msdn.microsoft.com/en-us/library/bb263883(VS.85).aspx\\n */\\nElement.prototype.strokeweight;\\n","externs/intersection_observer.js":"/*\\n * Copyright 2016 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Externs for Intersection Observer objects.\\n * @see https://wicg.github.io/IntersectionObserver/\\n * @externs\\n * @author robadurbin@google.com (Rob Durbin)\\n */\\n\\n// TODO(robadurbin): Once the Intersection Observer spec is adopted by W3C, add\\n// a w3c_ prefix to this file\'s name.\\n\\n\\n/**\\n * These contain the information provided from a change event.\\n * @see https://wicg.github.io/IntersectionObserver/#intersection-observer-entry\\n * @constructor\\n */\\nfunction IntersectionObserverEntry() {}\\n\\n/**\\n * The time the change was observed.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-time\\n * @type {number}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.time;\\n\\n/**\\n * The root intersection rectangle, if target belongs to the same unit of\\n * related similar-origin browsing contexts as the intersection root, null\\n * otherwise.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-rootbounds\\n * @type {{top: number, right: number, bottom: number, left: number,\\n * height: number, width: number}}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.rootBounds;\\n\\n/**\\n * The rectangle describing the element being observed.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-boundingclientrect\\n * @type {!{top: number, right: number, bottom: number, left: number,\\n * height: number, width: number}}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.boundingClientRect;\\n\\n/**\\n * The rectangle describing the intersection between the observed element and\\n * the viewport.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-intersectionrect\\n * @type {!{top: number, right: number, bottom: number, left: number,\\n * height: number, width: number}}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.intersectionRect;\\n\\n/**\\n * Ratio of intersectionRect area to boundingClientRect area.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-intersectionratio\\n * @type {!number}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.intersectionRatio;\\n\\n/**\\n * The Element whose intersection with the intersection root changed.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserverentry-target\\n * @type {!Element}\\n * @const\\n */\\nIntersectionObserverEntry.prototype.target;\\n\\n/**\\n * Callback for the IntersectionObserver.\\n * @see https://wicg.github.io/IntersectionObserver/#intersection-observer-callback\\n * @typedef {function(!Array,!IntersectionObserver)}\\n */\\nvar IntersectionObserverCallback;\\n\\n/**\\n * Options for the IntersectionObserver.\\n * @see https://wicg.github.io/IntersectionObserver/#intersection-observer-init\\n * @typedef {{\\n * threshold: (!Array|undefined),\\n * root: (!Element|undefined),\\n * rootMargin: (string|undefined)\\n * }}\\n */\\nvar IntersectionObserverInit;\\n\\n/**\\n * This is the constructor for Intersection Observer objects.\\n * @see https://wicg.github.io/IntersectionObserver/#intersection-observer-interface\\n * @param {!IntersectionObserverCallback} handler The callback for the observer.\\n * @param {!IntersectionObserverInit=} opt_options The object defining the\\n * thresholds, etc.\\n * @constructor\\n */\\nfunction IntersectionObserver(handler, opt_options) {};\\n\\n/**\\n * The root Element to use for intersection, or null if the observer uses the\\n * implicit root.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-root\\n * @type {?Element}\\n * @const\\n */\\nIntersectionObserver.prototype.root;\\n\\n/**\\n * Offsets applied to the intersection root\u2019s bounding box, effectively growing\\n * or shrinking the box that is used to calculate intersections.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-rootmargin\\n * @type {!string}\\n * @const\\n */\\nIntersectionObserver.prototype.rootMargin;\\n\\n/**\\n * A list of thresholds, sorted in increasing numeric order, where each\\n * threshold is a ratio of intersection area to bounding box area of an observed\\n * target.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-thresholds\\n * @type {!Array.}\\n * @const\\n */\\nIntersectionObserver.prototype.thresholds;\\n\\n/**\\n * This is used to set which element to observe.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-observe\\n * @param {!Element} element The element to observe.\\n * @return {undefined}\\n */\\nIntersectionObserver.prototype.observe = function(element) {};\\n\\n/**\\n * This is used to stop observing a given element.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-unobserve\\n * @param {!Element} element The elmenent to stop observing.\\n * @return {undefined}\\n */\\nIntersectionObserver.prototype.unobserve = function(element) {};\\n\\n/**\\n * Disconnect.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-disconnect\\n */\\nIntersectionObserver.prototype.disconnect = function() {};\\n\\n/**\\n * Take records.\\n * @see https://wicg.github.io/IntersectionObserver/#dom-intersectionobserver-takerecords\\n * @return {!Array.}\\n */\\nIntersectionObserver.prototype.takeRecords = function() {};\\n","externs/iphone.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for all iPhone extensions. Created from:\\n * http://developer.apple.com/library/safari/navigation/\\n *\\n * @externs\\n * @author agrieve@google.com (Andrew Grieve)\\n */\\n\\n\\n/**\\n * @type {number}\\n */\\nTouch.prototype.webkitForce;\\n\\n/**\\n * @type {number}\\n */\\nTouch.prototype.webkitRadiusX;\\n\\n/**\\n * @type {number}\\n */\\nTouch.prototype.webkitRadiusY;\\n\\n/**\\n * The distance between two fingers since the start of an event as a multiplier\\n * of the initial distance. The initial value is 1.0. If less than 1.0, the\\n * gesture is pinch close (to zoom out). If greater than 1.0, the gesture is\\n * pinch open (to zoom in).\\n * @type {number}\\n */\\nTouchEvent.prototype.scale;\\n\\n/**\\n * The delta rotation since the start of an event, in degrees, where clockwise\\n * is positive and counter-clockwise is negative. The initial value is 0.0.\\n * @type {number}\\n */\\nTouchEvent.prototype.rotation;\\n\\n/**\\n * Initializes a newly created TouchEvent object.\\n * @param {string} type\\n * @param {boolean} canBubble\\n * @param {boolean} cancelable\\n * @param {Window} view\\n * @param {number} detail\\n * @param {number} screenX\\n * @param {number} screenY\\n * @param {number} clientX\\n * @param {number} clientY\\n * @param {boolean} ctrlKey\\n * @param {boolean} altKey\\n * @param {boolean} shiftKey\\n * @param {boolean} metaKey\\n * @param {TouchList} touches\\n * @param {TouchList} targetTouches\\n * @param {TouchList} changedTouches\\n * @param {number} scale\\n * @param {number} rotation\\n * @return {undefined}\\n */\\nTouchEvent.prototype.initTouchEvent = function(type, canBubble, cancelable,\\n view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey,\\n metaKey, touches, targetTouches, changedTouches, scale, rotation) {};\\n\\n/**\\n * The GestureEvent class encapsulates information about a multi-touch gesture.\\n *\\n * GestureEvent objects are high-level events that encapsulate the low-level\\n * TouchEvent objects. Both GestureEvent and TouchEvent events are sent during\\n * a multi-touch sequence. Gesture events contain scaling and rotation\\n * information allowing gestures to be combined, if supported by the platform.\\n * If not supported, one gesture ends before another starts. Listen for\\n * GestureEvent events if you want to respond to gestures only, not process\\n * the low-level TouchEvent objects.\\n *\\n * @see http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/GestureEventClassReference/GestureEvent/GestureEvent.html\\n * @extends {UIEvent}\\n * @constructor\\n */\\nfunction GestureEvent() {}\\n\\n/**\\n * The distance between two fingers since the start of an event as a multiplier\\n * of the initial distance. The initial value is 1.0. If less than 1.0, the\\n * gesture is pinch close (to zoom out). If greater than 1.0, the gesture is\\n * pinch open (to zoom in).\\n * @type {number}\\n */\\nGestureEvent.prototype.scale;\\n\\n/**\\n * The delta rotation since the start of an event, in degrees, where clockwise\\n * is positive and counter-clockwise is negative. The initial value is 0.0.\\n * @type {number}\\n */\\nGestureEvent.prototype.rotation;\\n\\n/**\\n * The target of this gesture.\\n * @type {EventTarget}\\n */\\nGestureEvent.prototype.target;\\n\\n/**\\n * Initializes a newly created GestureEvent object.\\n * @param {string} type\\n * @param {boolean} canBubble\\n * @param {boolean} cancelable\\n * @param {Window} view\\n * @param {number} detail\\n * @param {number} screenX\\n * @param {number} screenY\\n * @param {number} clientX\\n * @param {number} clientY\\n * @param {boolean} ctrlKey\\n * @param {boolean} altKey\\n * @param {boolean} shiftKey\\n'; a.a+=' * @param {boolean} metaKey\\n * @param {EventTarget} target\\n * @param {number} scale\\n * @param {number} rotation\\n * @return {undefined}\\n */\\nGestureEvent.prototype.initGestureEvent = function(type, canBubble, cancelable,\\n view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey,\\n metaKey, target, scale, rotation) {};\\n\\n\\n/**\\n * Specifies the JavaScript method to invoke when a gesture is started by\\n * two or more fingers touching the surface.\\n * @type {?function(!GestureEvent)}\\n */\\nElement.prototype.ongesturestart;\\n\\n/**\\n * Specifies the JavaScript method to invoke when fingers are moved during a\\n * gesture.\\n * @type {?function(!GestureEvent)}\\n */\\nElement.prototype.ongesturechange;\\n\\n/**\\n * Specifies the JavaScript method to invoke when a gesture ends (when there are\\n * 0 or 1 fingers touching the surface).\\n * @type {?function(!GestureEvent)}\\n */\\nElement.prototype.ongestureend;\\n\\n/**\\n * Specifies the JavaScript method to invoke when the browser device\'s\\n * orientation changes, i.e.the device is rotated.\\n * @type {?function(!Event)}\\n * @see http://developer.apple.com/library/IOS/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\\n */\\nWindow.prototype.onorientationchange;\\n\\n/**\\n * Returns the orientation of the browser\'s device, one of [-90, 0, 90, 180].\\n * @type {number}\\n * @see http://developer.apple.com/library/IOS/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\\n */\\nWindow.prototype.orientation;\\n\\n/**\\n * @implicitCast\\n * @type {boolean}\\n */\\nHTMLInputElement.prototype.autocorrect;\\n\\n/**\\n * @implicitCast\\n * @type {boolean}\\n */\\nHTMLInputElement.prototype.autocapitalize;\\n\\n/**\\n * @implicitCast\\n * @type {boolean}\\n */\\nHTMLTextAreaElement.prototype.autocorrect;\\n\\n/**\\n * @implicitCast\\n * @type {boolean}\\n */\\nHTMLTextAreaElement.prototype.autocapitalize;\\n","externs/mediasource.js":"/*\\n * Copyright 2012 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for the Media Source Extensions. Note that the\\n * properties available here are the union of several versions of the spec.\\n * @see http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html\\n *\\n * @externs\\n * @author mattward@google.com (Matt Ward)\\n */\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction MediaSource() {}\\n\\n/** @override */\\nMediaSource.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/** @override */\\nMediaSource.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nMediaSource.prototype.dispatchEvent = function(evt) {};\\n\\n/** @type {Array} */\\nMediaSource.prototype.sourceBuffers;\\n\\n/** @type {Array} */\\nMediaSource.prototype.activeSourceBuffers;\\n\\n/** @type {number} */\\nMediaSource.prototype.duration;\\n\\n/**\\n * @param {string} type\\n * @return {SourceBuffer}\\n */\\nMediaSource.prototype.addSourceBuffer = function(type) {};\\n\\n/**\\n * @param {SourceBuffer} sourceBuffer\\n * @return {undefined}\\n */\\nMediaSource.prototype.removeSourceBuffer = function(sourceBuffer) {};\\n\\n/**\\n * Updates the live seekable range.\\n * @param {number} start\\n * @param {number} end\\n */\\nMediaSource.prototype.setLiveSeekableRange = function(start, end) {};\\n\\n/**\\n * Clears the live seekable range.\\n * @return {void}\\n */\\nMediaSource.prototype.clearLiveSeekableRange = function() {};\\n\\n/** @type {string} */\\nMediaSource.prototype.readyState;\\n\\n/**\\n * @param {string=} opt_error\\n * @return {undefined}\\n */\\nMediaSource.prototype.endOfStream = function(opt_error) {};\\n\\n/**\\n * @param {string} type\\n * @return {boolean}\\n */\\nMediaSource.isTypeSupported = function(type) {};\\n\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction SourceBuffer() {}\\n\\n/** @override */\\nSourceBuffer.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nSourceBuffer.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nSourceBuffer.prototype.dispatchEvent = function(evt) {};\\n\\n/** @type {string} */\\nSourceBuffer.prototype.appendMode;\\n\\n/** @type {boolean} */\\nSourceBuffer.prototype.updating;\\n\\n/** @type {TimeRanges} */\\nSourceBuffer.prototype.buffered;\\n\\n/** @type {number} */\\nSourceBuffer.prototype.timestampOffset;\\n\\n/** @type {number} */\\nSourceBuffer.prototype.appendWindowStart;\\n\\n/** @type {number} */\\nSourceBuffer.prototype.appendWindowEnd;\\n\\n/**\\n * @param {Uint8Array} data\\n * @return {undefined}\\n */\\nSourceBuffer.prototype.append = function(data) {};\\n\\n/**\\n * @param {ArrayBuffer|ArrayBufferView} data\\n * @return {undefined}\\n */\\nSourceBuffer.prototype.appendBuffer = function(data) {};\\n\\n/**\\n * Abort the current segment append sequence.\\n * @return {undefined}\\n */\\nSourceBuffer.prototype.abort = function() {};\\n\\n/**\\n * @param {number} start\\n * @param {number} end\\n * @return {undefined}\\n */\\nSourceBuffer.prototype.remove = function(start, end) {};\\n","externs/page_visibility.js":"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Externs for Page Visibility.\\n *\\n * @see http://www.w3.org/TR/page-visibility\\n * @externs\\n */\\n\\n/**\\n * Set of possible values: \'hidden\', \'visible\', \'prerender\', \'unloaded\'.\\n * @typedef {string}\\n * @see http://www.w3.org/TR/page-visibility/#VisibilityState\\n */\\nvar VisibilityState;\\n","externs/url.js":"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for URL and URLSearchParams from the spec at\\n * https://url.spec.whatwg.org.\\n *\\n * @externs\\n * @author rdcronin@google.com (Devlin Cronin)\\n */\\n\\n/**\\n * @constructor\\n * @implements {Iterable>}\\n * @param {(string|!URLSearchParams)=} init\\n */\\nfunction URLSearchParams(init) {}\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nURLSearchParams.prototype.append = function(name, value) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n */\\nURLSearchParams.prototype.delete = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {?string}\\n */\\nURLSearchParams.prototype.get = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {!Array}\\n */\\nURLSearchParams.prototype.getAll = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n */\\nURLSearchParams.prototype.has = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nURLSearchParams.prototype.set = function(name, value) {};\\n\\n/**\\n * @see https://url.spec.whatwg.org\\n * @constructor\\n * @param {string} url\\n * @param {(string|!URL)=} base\\n */\\nfunction URL(url, base) {}\\n\\n/** @type {string} */\\nURL.prototype.href;\\n\\n/**\\n * @const\\n * @type {string}\\n */\\nURL.prototype.origin;\\n\\n/** @type {string} */\\nURL.prototype.protocol;\\n\\n/** @type {string} */\\nURL.prototype.username;\\n\\n/** @type {string} */\\nURL.prototype.password;\\n\\n/** @type {string} */\\nURL.prototype.host;\\n\\n/** @type {string} */\\nURL.prototype.hostname;\\n\\n/** @type {string} */\\nURL.prototype.port;\\n\\n/** @type {string} */\\nURL.prototype.pathname;\\n\\n/** @type {string} */\\nURL.prototype.search;\\n\\n/**\\n * @const\\n * @type {URLSearchParams}\\n */\\nURL.prototype.searchParams;\\n\\n/** @type {string} */\\nURL.prototype.hash;\\n\\n/**\\n * @param {string} domain\\n * @return {string}\\n */\\nURL.domainToASCII = function(domain) {};\\n\\n/**\\n * @param {string} domain\\n * @return {string}\\n */\\nURL.domainToUnicode = function(domain) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-createObjectURL\\n * @param {!File|!Blob|!MediaSource|!MediaStream} obj\\n * @return {string}\\n */\\nURL.createObjectURL = function(obj) {};\\n\\n/**\\n * @see http://www.w3.org/TR/FileAPI/#dfn-revokeObjectURL\\n * @param {string} url\\n * @return {undefined}\\n */\\nURL.revokeObjectURL = function(url) {};\\n","externs/v8.js":"/*\\n * Copyright 2013 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview This file describes the externs API for V8-specific objects.\\n * @externs\\n */\\n\\n\\n\\n/**\\n * Stack frame elements in V8.\\n * @constructor\\n */\\nfunction CallSite() {}\\n\\n\\n/**\\n * Returns the value of this.\\n * @return {Object|undefined}\\n */\\nCallSite.prototype.getThis = function() {};\\n\\n\\n/**\\n * Returns the type of this as a string. This is the name of the function stored\\n * in the constructor field of this, if available, otherwise the object\'s\\n * [[Class]] internal property.\\n * @return {string|undefined}\\n */\\nCallSite.prototype.getTypeName = function() {};\\n\\n\\n/**\\n * Returns the current function.\\n * @return {!Function|undefined}\\n */\\nCallSite.prototype.getFunction = function() {};\\n\\n\\n/**\\n * Returns the name of the current function, typically its name property. If a\\n * name property is not available an attempt will be made to try to infer a name\\n * from the function\'s context.\\n * @return {string|undefined}\\n */\\nCallSite.prototype.getFunctionName = function() {};\\n\\n\\n/**\\n * Returns the name of the property of this or one of its prototypes that holds\\n * the current function.\\n * @return {string|undefined}\\n */\\nCallSite.prototype.getMethodName = function() {};\\n\\n\\n/**\\n * If this function was defined in a script returns the name of the script\\n * @return {string|undefined}\\n */\\nCallSite.prototype.getFileName = function() {};\\n\\n\\n/**\\n * If this function was defined in a script returns the current line number.\\n * @return {number|undefined}\\n */\\nCallSite.prototype.getLineNumber = function() {};\\n\\n\\n/**\\n * If this function was defined in a script returns the current column number.\\n * @return {number|undefined}\\n */\\nCallSite.prototype.getColumnNumber = function() {};\\n\\n\\n/**\\n * If this function was created using a call to eval, returns a CallSite object\\n * representing the location where eval was called\\n * @return {CallSite|undefined}\\n */\\nCallSite.prototype.getEvalOrigin = function() {};\\n\\n\\n/**\\n * Is this a toplevel invocation, that is, is this the global object?\\n * @return {boolean}\\n */\\nCallSite.prototype.isToplevel = function() {};\\n\\n\\n/**\\n * Does this call take place in code defined by a call to eval?\\n * @return {boolean}\\n */\\nCallSite.prototype.isEval = function() {};\\n\\n\\n/**\\n * Is this call in native V8 code?\\n * @return {boolean}\\n */\\nCallSite.prototype.isNative = function() {};\\n\\n\\n/**\\n * Is this a constructor call?\\n * @return {boolean}\\n */\\nCallSite.prototype.isConstructor = function() {};\\n","externs/webstorage.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for W3C\'s WebStorage specification.\\n * This file depends on html5.js.\\n * @externs\\n * @author jeffbailey@google.com (Jeff Bailey)\\n */\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/2011/CR-webstorage-20111208/#the-storage-interface\\n */\\nfunction Storage() {}\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nStorage.prototype.length;\\n\\n/**\\n * @param {number} index\\n * @return {?string}\\n */\\nStorage.prototype.key = function(index) {};\\n\\n/**\\n * @param {string} key\\n * @return {?string}\\n */\\nStorage.prototype.getItem = function(key) {};\\n\\n/**\\n * @param {string} key\\n * @param {string} data\\n * @return {void}\\n */\\nStorage.prototype.setItem = function(key, data) {};\\n\\n/**\\n * @param {string} key\\n * @return {void}\\n */\\nStorage.prototype.removeItem = function(key) {};\\n\\n/**\\n * @return {void}\\n */\\nStorage.prototype.clear = function() {};\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/2011/CR-webstorage-20111208/#the-sessionstorage-attribute\\n */\\nfunction WindowSessionStorage() {}\\n\\n/**\\n * @type {Storage}\\n */\\nWindowSessionStorage.prototype.sessionStorage;\\n\\n/**\\n * Window implements WindowSessionStorage\\n *\\n * @type {Storage}\\n */\\nWindow.prototype.sessionStorage;\\n\\n/**\\n * @interface\\n * @see http://www.w3.org/TR/2011/CR-webstorage-20111208/#the-localstorage-attribute\\n */\\nfunction WindowLocalStorage() {}\\n\\n/**\\n * @type {Storage}\\n */\\nWindowLocalStorage.prototype.localStorage;\\n\\n/**\\n * Window implements WindowLocalStorage\\n *\\n * @type {Storage}\\n */\\nWindow.prototype.localStorage;\\n\\n/**\\n * This is the storage event interface.\\n * @see http://www.w3.org/TR/2011/CR-webstorage-20111208/#the-storage-event\\n * @extends {Event}\\n * @constructor\\n */\\nfunction StorageEvent() {}\\n\\n/**\\n * @type {string}\\n */\\nStorageEvent.prototype.key;\\n\\n/**\\n * @type {?string}\\n */\\nStorageEvent.prototype.oldValue;\\n\\n/**\\n * @type {?string}\\n */\\nStorageEvent.prototype.newValue;\\n\\n/**\\n * @type {string}\\n */\\nStorageEvent.prototype.url;\\n\\n/**\\n * @type {?Storage}\\n */\\nStorageEvent.prototype.storageArea;\\n\\n/**\\n * @param {string} typeArg\\n * @param {boolean} canBubbleArg\\n * @param {boolean} cancelableArg\\n * @param {string} keyArg\\n * @param {?string} oldValueArg\\n * @param {?string} newValueArg\\n * @param {string} urlArg\\n * @param {?Storage} storageAreaArg\\n * @return {void}\\n */\\nStorageEvent.prototype.initStorageEvent = function(typeArg, canBubbleArg,\\n cancelableArg, keyArg,\\n oldValueArg, newValueArg,\\n urlArg, storageAreaArg) {};\\n\\n","externs/whatwg_encoding.js":"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 '; a.a+='(the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for WHATWG\'s Encoding specification\\n * https://encoding.spec.whatwg.org\\n * @externs\\n */\\n\\n/**\\n * @constructor\\n * @param {string=} encoding\\n * @param {Object=} options\\n */\\nfunction TextDecoder(encoding, options) {}\\n\\n/** @type {string} **/ TextDecoder.prototype.encoding;\\n/** @type {boolean} **/ TextDecoder.prototype.fatal;\\n/** @type {boolean} **/ TextDecoder.prototype.ignoreBOM;\\n\\n/**\\n * @param {!BufferSource=} input\\n * @param {?Object=} options\\n * @return {!string}\\n * @see https://encoding.spec.whatwg.org/#textdecoder\\n */\\nTextDecoder.prototype.decode = function decode(input, options) {};\\n\\n/**\\n * @constructor\\n * @param {string=} utfLabel\\n */\\nfunction TextEncoder(utfLabel) {}\\n\\n/** @type {string} **/ TextEncoder.prototype.encoding;\\n\\n/**\\n * @param {string=} input\\n * @return {!Uint8Array}\\n */\\nTextEncoder.prototype.encode = function(input) {};\\n","externs/w3c_anim_timing.js":"/*\\n * Copyright 2011 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for timing control for script base animations. The\\n * whole file has been fully type annotated.\\n *\\n * @see http://www.w3.org/TR/animation-timing/\\n * @see http://webstuff.nfshost.com/anim-timing/Overview.html\\n * @externs\\n * @author bcornell@google.com (Brian Cornell)\\n */\\n\\n/**\\n * @param {function(number): undefined} callback\\n * @param {Element=} opt_element In early versions of this API, the callback\\n * was invoked only if the element was visible.\\n * @return {number}\\n */\\nfunction requestAnimationFrame(callback, opt_element) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction cancelRequestAnimationFrame(handle) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction cancelAnimationFrame(handle) {};\\n\\n/**\\n * @param {function(number)} callback\\n * @param {Element=} opt_element\\n * @return {number}\\n */\\nfunction webkitRequestAnimationFrame(callback, opt_element) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction webkitCancelRequestAnimationFrame(handle) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction webkitCancelAnimationFrame(handle) {};\\n\\n/**\\n * @param {?function(number)} callback It\'s legitimate to pass a null\\n * callback and listen on the MozBeforePaint event instead.\\n * @param {Element=} opt_element\\n * @return {number}\\n */\\nfunction mozRequestAnimationFrame(callback, opt_element) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction mozCancelRequestAnimationFrame(handle) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction mozCancelAnimationFrame(handle) {};\\n\\n/**\\n * @param {function(number)} callback\\n * @param {Element=} opt_element\\n * @return {number}\\n */\\nfunction msRequestAnimationFrame(callback, opt_element) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction msCancelRequestAnimationFrame(handle) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction msCancelAnimationFrame(handle) {};\\n\\n/**\\n * @param {function(number)} callback\\n * @param {Element=} opt_element\\n * @return {number}\\n */\\nfunction oRequestAnimationFrame(callback, opt_element) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction oCancelRequestAnimationFrame(handle) {};\\n\\n/**\\n * @param {number} handle\\n * @return {undefined}\\n */\\nfunction oCancelAnimationFrame(handle) {};\\n","externs/w3c_audio.js":"/*\\n * Copyright 2012 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for the API related to audio.\\n * Definitions for the Web Audio API.\\n * This file is based on the W3C Working Draft 08 December 2015.\\n * @see http://www.w3.org/TR/webaudio/\\n *\\n * @externs\\n */\\n\\n/**\\n * @constructor\\n */\\nfunction BaseAudioContext() {}\\n\\n/** @type {!AudioDestinationNode} */\\nBaseAudioContext.prototype.destination;\\n\\n/** @type {number} */\\nBaseAudioContext.prototype.sampleRate;\\n\\n/** @type {number} */\\nBaseAudioContext.prototype.currentTime;\\n\\n/** @type {!AudioListener} */\\nBaseAudioContext.prototype.listener;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#BaseAudioContext for valid values\\n */\\nBaseAudioContext.prototype.state;\\n\\n/**\\n * @param {number} numberOfChannels\\n * @param {number} length\\n * @param {number} sampleRate\\n * @return {!AudioBuffer}\\n */\\nBaseAudioContext.prototype.createBuffer =\\n function(numberOfChannels, length, sampleRate) {};\\n\\n/**\\n * @param {!ArrayBuffer} audioData\\n * @param {function(!AudioBuffer)=} successCallback\\n * @param {function(?)=} errorCallback\\n * @return {!Promise}\\n */\\nBaseAudioContext.prototype.decodeAudioData =\\n function(audioData, successCallback, errorCallback) {};\\n\\n/**\\n * @return {!AudioBufferSourceNode}\\n */\\nBaseAudioContext.prototype.createBufferSource = function() {};\\n\\n/**\\n * @deprecated Use createAudioWorker instead\\n * @param {number=} bufferSize\\n * @param {number=} numberOfInputChannels_opt\\n * @param {number=} numberOfOutputChannels_opt\\n * @return {!ScriptProcessorNode}\\n */\\nBaseAudioContext.prototype.createScriptProcessor = function(bufferSize,\\n numberOfInputChannels_opt, numberOfOutputChannels_opt) {};\\n\\n/**\\n * @return {!AnalyserNode}\\n */\\nBaseAudioContext.prototype.createAnalyser = function() {};\\n\\n/**\\n * @return {!GainNode}\\n */\\nBaseAudioContext.prototype.createGain = function() {};\\n\\n/**\\n * @param {number=} maxDelayTime\\n * @return {!DelayNode}\\n */\\nBaseAudioContext.prototype.createDelay = function(maxDelayTime) {};\\n\\n/**\\n * @return {!BiquadFilterNode}\\n */\\nBaseAudioContext.prototype.createBiquadFilter = function() {};\\n\\n/**\\n * @return {!WaveShaperNode}\\n */\\nBaseAudioContext.prototype.createWaveShaper = function() {};\\n\\n/**\\n * @deprecated Use BaseAudioContext#createSpatialPanner or BaseAudioContext#createStereoPanner\\n * @return {!PannerNode}\\n */\\nBaseAudioContext.prototype.createPanner = function() {};\\n\\n/**\\n * @return {!StereoPannerNode}\\n */\\nBaseAudioContext.prototype.createStereoPanner = function() {};\\n\\n/**\\n * @return {!ConvolverNode}\\n */\\nBaseAudioContext.prototype.createConvolver = function() {};\\n\\n/**\\n * @param {number=} numberOfOutputs\\n * @return {!ChannelSplitterNode}\\n */\\nBaseAudioContext.prototype.createChannelSplitter = function(numberOfOutputs) {};\\n\\n/**\\n * @param {number=} numberOfInputs\\n * @return {!ChannelMergerNode}\\n */\\nBaseAudioContext.prototype.createChannelMerger = function(numberOfInputs) {};\\n\\n/**\\n * @return {!DynamicsCompressorNode}\\n */\\nBaseAudioContext.prototype.createDynamicsCompressor = function() {};\\n\\n/**\\n * @return {!OscillatorNode}\\n */\\nBaseAudioContext.prototype.createOscillator = function() {};\\n\\n/**\\n * @param {!Float32Array} real\\n * @param {!Float32Array} imag\\n * @return {!PeriodicWave}\\n */\\nBaseAudioContext.prototype.createPeriodicWave = function(real, imag) {};\\n\\n/**\\n * @return {!Promise}\\n */\\nBaseAudioContext.prototype.resume = function() {};\\n\\n/**\\n * @return {!Promise}\\n */\\nBaseAudioContext.prototype.suspend = function() {};\\n\\n/**\\n * @return {!Promise}\\n */\\nBaseAudioContext.prototype.close = function() {};\\n\\n/** @type {?function(!Event)} */\\nBaseAudioContext.prototype.onstatechange;\\n\\n/**\\n * @param {string} scriptURL\\n * @return {!Promise}\\n */\\nBaseAudioContext.prototype.createAudioWorker = function(scriptURL) {};\\n\\n/**\\n * @param {!IArrayLike} feedforward\\n * @param {!IArrayLike} feedback\\n * @return {!IIRFilterNode}\\n */\\nBaseAudioContext.prototype.createIIRFilter = function(feedforward, feedback) {};\\n\\n/**\\n * @return {!SpatialPannerNode}\\n */\\nBaseAudioContext.prototype.createSpatialPanner = function() {};\\n\\n/**\\n * @constructor\\n * @extends {BaseAudioContext}\\n */\\nfunction AudioContext() {}\\n\\n/**\\n * @param {!HTMLMediaElement} mediaElement\\n * @return {!MediaElementAudioSourceNode}\\n */\\nAudioContext.prototype.createMediaElementSource = function(mediaElement) {};\\n\\n/**\\n * @return {!MediaStreamAudioDestinationNode}\\n */\\nAudioContext.prototype.createMediaStreamDestination = function() {};\\n\\n/**\\n * @param {!MediaStream} mediaStream\\n * @return {!MediaStreamAudioSourceNode}\\n */\\nAudioContext.prototype.createMediaStreamSource = function(mediaStream) {};\\n\\n/**\\n * @deprecated Use createScriptProcessor instead.\\n * @param {number} bufferSize\\n * @param {number} numberOfInputs\\n * @param {number} numberOfOuputs\\n * @return {!ScriptProcessorNode}\\n */\\nAudioContext.prototype.createJavaScriptNode = function(bufferSize,\\n numberOfInputs, numberOfOuputs) {};\\n\\n/**\\n * @deprecated Use createGain instead.\\n * @return {!GainNode}\\n */\\nAudioContext.prototype.createGainNode = function() {};\\n\\n/**\\n * @deprecated Use createDelay instead.\\n * @param {number=} maxDelayTime\\n * @return {!DelayNode}\\n */\\nAudioContext.prototype.createDelayNode = function(maxDelayTime) {};\\n\\n/**\\n * @param {number} numberOfChannels\\n * @param {number} length\\n * @param {number} sampleRate\\n * @constructor\\n * @extends {BaseAudioContext}\\n */\\nfunction OfflineAudioContext(numberOfChannels, length, sampleRate) {}\\n\\n/**\\n * @return {!Promise}\\n */\\nOfflineAudioContext.prototype.startRendering = function() {};\\n\\n/** @type {function(!OfflineAudioCompletionEvent)} */\\nOfflineAudioContext.prototype.oncomplete;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction OfflineAudioCompletionEvent() {}\\n\\n/** @type {AudioBuffer} */\\nOfflineAudioCompletionEvent.prototype.renderedBuffer;\\n\\n/**\\n * @constructor\\n */\\nfunction AudioNode() {}\\n/**\\n * @param {!AudioNode|!AudioParam} destination\\n * @param {number=} output\\n * @param {number=} input\\n * @return {AudioNode|void}\\n */\\nAudioNode.prototype.connect = function(destination, output, input) {};\\n\\n/**\\n * @param {!AudioNode|!AudioParam|number=} destination\\n * @param {number=} output\\n * @param {number=} input\\n */\\nAudioNode.prototype.disconnect = function(destination, output, input) {};\\n\\n/** @type {!AudioContext} */\\nAudioNode.prototype.context;\\n\\n/** @type {number} */\\nAudioNode.prototype.numberOfInputs;\\n\\n/** @type {number} */\\nAudioNode.prototype.numberOfOutputs;\\n\\n/** @type {number} */\\nAudioNode.prototype.channelCount;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-audionode-interface for valid values\\n */\\nAudioNode.prototype.channelCountMode;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-audionode-interface for valid values\\n */\\nAudioNode.prototype.channelInterpretation;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction AudioSourceNode() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction AudioDestinationNode() {}\\n\\n/**\\n * @deprecated Use AudioDestinationNode#maxChannelCount\\n * @type {number}\\n */\\nAudioDestinationNode.prototype.numberOfChannels;\\n\\n/** @type {number} */\\nAudioDestinationNode.prototype.maxChannelCount;\\n\\n/**\\n * @constructor\\n */\\nfunction AudioParam() {}\\n\\n/** @type {number} */\\nAudioParam.prototype.value;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioParam.prototype.maxValue;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioParam.prototype.minValue;\\n\\n/** @type {number} */\\nAudioParam.prototype.defaultValue;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioParam.prototype.units;\\n\\n/**\\n * @param {number} value\\n * @param {number} startTime\\n * @return {!AudioParam}\\n * @throws {!TypeError} if startTime is negative or not a finite number\\n */\\nAudioParam.prototype.setValueAtTime = function(value, startTime) {};\\n\\n/**\\n * @param {number} value\\n * @param {number} endTime\\n * @return {!AudioParam}\\n * @throws {!TypeError} if endTime is negative or not a finite number\\n */\\nAudioParam.prototype.linearRampToValueAtTime = function(value, endTime) {};\\n\\n/**\\n * @param {number} value\\n * @param {number} endTime\\n * @return {!AudioParam}\\n * @throws {!TypeError} if endTime is negative or not a finite number\\n */\\nAudioParam.prototype.exponentialRampToValueAtTime = function(value, endTime) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} startTime\\n * @param {number} timeConstant\\n * @return {!AudioParam}\\n * @throws {!TypeError} if startTime is negative or not a finite number, or\\n * timeConstant is not strictly positive\\n */\\nAudioParam.prototype.setTargetAtTime = function(target, startTime,\\n timeConstant) {};\\n\\n/**\\n * @deprecated Use setTargetAtTime instead.\\n * @param {number} target\\n * @param {number} startTime\\n * @param {number} timeConstant\\n * @return {!AudioParam}\\n */\\nAudioParam.prototype.setTargetValueAtTime = function(target, startTime,\\n timeConstant) {};\\n\\n/**\\n * @param {!Float32Array} values\\n * @param {number} startTime\\n * @param {number} duration\\n * @return {!AudioParam}\\n * @throws {!TypeError} if startTime is negative or not a finite number\\n */\\nAudioParam.prototype.setValueCurveAtTime = function(values, startTime,\\n duration) {};\\n\\n/**\\n * @param {number} startTime\\n * @return {!AudioParam}\\n * @throws {!TypeError} if startTime is negative or not a finite number\\n */\\nAudioParam.prototype.cancelScheduledValues = function(startTime) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioParam}\\n */\\nfunction AudioGain() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction GainNode() {}\\n\\n/** @type {!AudioParam} */\\nGainNode.prototype.gain;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction DelayNode() {}\\n\\n/** @type {!AudioParam} */\\nDelayNode.prototype.delayTime;\\n\\n/**\\n * @constructor\\n */\\nfunction AudioBuffer() {}\\n\\n/**\\n * @deprecated\\n * @type {!AudioGain}\\n */\\nAudioBuffer.prototype.gain;\\n\\n/** @type {number} */\\nAudioBuffer.prototype.sampleRate;\\n\\n/** @type {number} */\\nAudioBuffer.prototype.length;\\n\\n/** @type {number} */\\nAudioBuffer.prototype.duration;\\n\\n/** @type {number} */\\nAudioBuffer.prototype.numberOfChannels;\\n\\n/**\\n * @param {number} channel\\n * @return {!Float32Array}\\n */\\nAudioBuffer.prototype.getChannelData = function(channel) {};\\n\\n/**\\n * @param {!Float32Array} destination\\n * @param {number} channelNumber\\n * @param {number=} startInChannel\\n */\\nAudioBuffer.prototype.copyFromChannel = function(destination,\\n channelNumber, startInChannel) {};\\n\\n/**\\n * @param {!Float32Array} source\\n * @param {number} channelNumber\\n * @param {number=} startInChannel\\n */\\nAudioBuffer.prototype.copyToChannel = function(source, channelNumber,\\n startInChannel) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction AudioBufferSourceNode() {}\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioBufferSourceNode.prototype.UNSCH'; a.a+="EDULED_STATE;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioBufferSourceNode.prototype.SCHEDULED_STATE;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioBufferSourceNode.prototype.PLAYING_STATE;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioBufferSourceNode.prototype.FINISHED_STATE;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioBufferSourceNode.prototype.playbackState;\\n\\n/** @type {AudioBuffer} */\\nAudioBufferSourceNode.prototype.buffer;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioBufferSourceNode.prototype.gain;\\n\\n/** @type {!AudioParam} */\\nAudioBufferSourceNode.prototype.playbackRate;\\n\\n/** @type {boolean} */\\nAudioBufferSourceNode.prototype.loop;\\n\\n/** @type {number} */\\nAudioBufferSourceNode.prototype.loopStart;\\n\\n/** @type {number} */\\nAudioBufferSourceNode.prototype.loopEnd;\\n\\n/** @type {?function(!Event)} */\\nAudioBufferSourceNode.prototype.onended;\\n\\n/** @type {!AudioParam} */\\nAudioBufferSourceNode.prototype.detune;\\n\\n/**\\n * @param {number=} when\\n * @param {number=} opt_offset\\n * @param {number=} opt_duration\\n * @throws {!TypeError} if any parameter is negative\\n */\\nAudioBufferSourceNode.prototype.start = function(when, opt_offset,\\n opt_duration) {};\\n\\n/**\\n * @param {number=} when\\n * @throws {!TypeError} if when is negative\\n */\\nAudioBufferSourceNode.prototype.stop = function(when) {};\\n\\n/**\\n * @deprecated Use AudioBufferSourceNode#start\\n * @param {number} when\\n * @return {undefined}\\n */\\nAudioBufferSourceNode.prototype.noteOn = function(when) {};\\n\\n/**\\n * @param {number=} when\\n * @param {number=} opt_offset\\n * @param {number=} opt_duration\\n * @deprecated Use AudioBufferSourceNode#start\\n */\\nAudioBufferSourceNode.prototype.noteGrainOn = function(when, opt_offset,\\n opt_duration) {};\\n\\n/**\\n * @param {number} when\\n * @deprecated Use AudioBufferSourceNode#stop\\n */\\nAudioBufferSourceNode.prototype.noteOff = function(when) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction MediaElementAudioSourceNode() {}\\n\\n/**\\n * @constructor\\n */\\nfunction AudioWorker() {}\\n\\n/** @type {?function(!Event)} */\\nAudioWorker.prototype.onloaded;\\n\\n/** @type {?function(!Event)} */\\nAudioWorker.prototype.onmessage;\\n\\n/** @type {!Array} */\\nAudioWorker.prototype.parameters;\\n\\n/**\\n * @param {string} name\\n * @param {number} defaultValue\\n * @return {!AudioParam}\\n */\\nAudioWorker.prototype.addParameter = function(name, defaultValue) {};\\n\\n/**\\n * @param {number} numberOfInputs\\n * @param {number} numberOfOutputs\\n * @return {!AudioWorkerNode}\\n */\\nAudioWorker.prototype.createNode = function(numberOfInputs, numberOfOutputs) {};\\n\\n/**\\n * @param {*} message\\n * @param {!Array=} transfer\\n */\\nAudioWorker.prototype.postMessage = function(message, transfer) {};\\n\\n/**\\n * @param {string} name\\n */\\nAudioWorker.prototype.removeParameter = function(name) {};\\n\\n/**\\n */\\nAudioWorker.prototype.terminate = function() {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction AudioWorkerNode() {}\\n\\n/** @type {?function(!Event)} */\\nAudioWorkerNode.prototype.onmessage;\\n\\n/**\\n * @param {*} message\\n * @param {!Array=} transfer\\n */\\nAudioWorkerNode.prototype.postMessage = function(message, transfer) {};\\n\\n/**\\n * @constructor\\n */\\nfunction AudioWorkerParamDescriptor() {}\\n\\n/** @type {number} */\\nAudioWorkerParamDescriptor.prototype.defaultValue;\\n\\n/** @type {string} */\\nAudioWorkerParamDescriptor.prototype.name;\\n\\n/**\\n * @constructor\\n */\\nfunction AudioWorkerGlobalScope() {}\\n\\n/** @type {?function(!Event)} */\\nAudioWorkerGlobalScope.prototype.onaudioprocess;\\n\\n/** @type {?function(!Event)} */\\nAudioWorkerGlobalScope.prototype.onnodecreate;\\n\\n/** @type {!Array} */\\nAudioWorkerGlobalScope.prototype.parameters;\\n\\n/** @type {number} */\\nAudioWorkerGlobalScope.prototype.sampleRate;\\n\\n/**\\n * @param {string} name\\n * @param {number} defaultValue\\n * @return {!AudioParam}\\n */\\nAudioWorkerGlobalScope.prototype.addParameter = function(name, defaultValue) {};\\n\\n/**\\n * @param {string} name\\n */\\nAudioWorkerGlobalScope.prototype.removeParameter = function(name) {};\\n\\n/**\\n * @constructor\\n */\\nfunction AudioWorkerNodeProcessor() {}\\n\\n/** @type {?function(!Event)} */\\nAudioWorkerNodeProcessor.prototype.onmessage;\\n\\n/**\\n * @param {*} message\\n * @param {!Array=} transfer\\n */\\nAudioWorkerNodeProcessor.prototype.postMessage = function(message, transfer) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n * @deprecated Use AudioWorkerNode\\n */\\nfunction JavaScriptAudioNode() {}\\n\\n/**\\n * @type {EventListener|(function(!AudioProcessingEvent):(boolean|undefined))}\\n * @deprecated Use AudioWorkerNode\\n */\\nJavaScriptAudioNode.prototype.onaudioprocess;\\n\\n/**\\n * @type {number}\\n * @deprecated Use AudioWorkerNode\\n */\\nJavaScriptAudioNode.prototype.bufferSize;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n * @deprecated Use AudioWorkerNode\\n */\\nfunction ScriptProcessorNode() {}\\n\\n/**\\n * @type {EventListener|(function(!AudioProcessingEvent):(boolean|undefined))}\\n * @deprecated Use AudioWorkerNode\\n */\\nScriptProcessorNode.prototype.onaudioprocess;\\n\\n/**\\n * @type {number}\\n * @deprecated Use AudioWorkerNode\\n */\\nScriptProcessorNode.prototype.bufferSize;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction AudioWorkerNodeCreationEvent() {}\\n\\n/** @type {!Array} */\\nAudioWorkerNodeCreationEvent.prototype.inputs;\\n\\n/** @type {!AudioWorkerNodeProcessor} */\\nAudioWorkerNodeCreationEvent.prototype.node;\\n\\n/** @type {!Array} */\\nAudioWorkerNodeCreationEvent.prototype.outputs;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n */\\nfunction AudioProcessEvent() {}\\n\\n/** @type {!Float32Array} */\\nAudioProcessEvent.prototype.inputs;\\n\\n/** @type {!AudioWorkerNodeProcessor} */\\nAudioProcessEvent.prototype.node;\\n\\n/** @type {!Float32Array} */\\nAudioProcessEvent.prototype.outputs;\\n\\n/** @type {!Object} */\\nAudioProcessEvent.prototype.parameters;\\n\\n/** @type {number} */\\nAudioProcessEvent.prototype.playbackTime;\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @deprecated Use AudioProcessEvent\\n */\\nfunction AudioProcessingEvent() {}\\n\\n/**\\n * @type {!ScriptProcessorNode}\\n * @deprecated Use AudioProcessEvent\\n */\\nAudioProcessingEvent.prototype.node;\\n\\n/**\\n * @type {number}\\n * @deprecated Use AudioProcessEvent\\n */\\nAudioProcessingEvent.prototype.playbackTime;\\n\\n/**\\n * @type {!AudioBuffer}\\n * @deprecated Use AudioProcessEvent\\n */\\nAudioProcessingEvent.prototype.inputBuffer;\\n\\n/**\\n * @type {!AudioBuffer}\\n * @deprecated Use AudioProcessEvent\\n */\\nAudioProcessingEvent.prototype.outputBuffer;\\n\\n/**\\n * @deprecated\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction AudioPannerNode() {}\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.EQUALPOWER;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.HRTF;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.SOUNDFIELD;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.LINEAR_DISTANCE;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.INVERSE_DISTANCE;\\n\\n/**\\n * @deprecated\\n * @const {number}\\n */\\nAudioPannerNode.prototype.EXPONENTIAL_DISTANCE;\\n\\n/**\\n * @deprecated\\n * @type {number|string}\\n */\\nAudioPannerNode.prototype.panningModel;\\n\\n/**\\n * @deprecated\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @return {undefined}\\n */\\nAudioPannerNode.prototype.setPosition = function(x, y, z) {};\\n\\n/**\\n * @deprecated\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @return {undefined}\\n */\\nAudioPannerNode.prototype.setOrientation = function(x, y, z) {};\\n\\n/**\\n * @deprecated\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @return {undefined}\\n */\\nAudioPannerNode.prototype.setVelocity = function(x, y, z) {};\\n\\n/**\\n * @deprecated\\n * @type {number|string}\\n */\\nAudioPannerNode.prototype.distanceModel;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.refDistance;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.maxDistance;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.rolloffFactor;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.coneInnerAngle;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.coneOuterAngle;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nAudioPannerNode.prototype.coneOuterGain;\\n\\n/**\\n * @deprecated\\n * @type {!AudioGain}\\n */\\nAudioPannerNode.prototype.coneGain;\\n\\n/**\\n * @deprecated\\n * @type {!AudioGain}\\n */\\nAudioPannerNode.prototype.distanceGain;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction PannerNode() {}\\n\\n/** @type {number} */\\nPannerNode.prototype.coneInnerAngle;\\n\\n/** @type {number} */\\nPannerNode.prototype.coneOuterAngle;\\n\\n/** @type {number} */\\nPannerNode.prototype.coneOuterGain;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values\\n */\\nPannerNode.prototype.distanceModel;\\n\\n/** @type {number} */\\nPannerNode.prototype.maxDistance;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values\\n */\\nPannerNode.prototype.panningModel;\\n\\n/** @type {number} */\\nPannerNode.prototype.refDistance;\\n\\n/** @type {number} */\\nPannerNode.prototype.rolloffFactor;\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n */\\nPannerNode.prototype.setOrientation = function(x, y, z) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n */\\nPannerNode.prototype.setPosition = function(x, y, z) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n */\\nPannerNode.prototype.setVelocity = function(x, y, z) {};\\n\\n/**\\n * @constructor\\n * @deprecated Use SpatialListener\\n */\\nfunction AudioListener() {}\\n\\n/**\\n * @type {number}\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.gain;\\n\\n/**\\n * @type {number}\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.dopplerFactor;\\n\\n/**\\n * @type {number}\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.speedOfSound;\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.setPosition = function(x, y, z) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @param {number} xUp\\n * @param {number} yUp\\n * @param {number} zUp\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.setOrientation = function(x, y, z, xUp, yUp, zUp) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @deprecated Use SpatialListener\\n */\\nAudioListener.prototype.setVelocity = function(x, y, z) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction SpatialPannerNode() {}\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.coneInnerAngle;\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.coneOuterAngle;\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.coneOuterGain;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values\\n */\\nSpatialPannerNode.prototype.distanceModel;\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.maxDistance;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.orientationX;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.orientationY;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.orientationZ;\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values\\n */\\nSpatialPannerNode.prototype.panningModel;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.positionX;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.positionY;\\n\\n/** @type {!AudioParam} */\\nSpatialPannerNode.prototype.positionZ;\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.refDistance;\\n\\n/** @type {number} */\\nSpatialPannerNode.prototype.rolloffFactor;\\n\\n/**\\n * @constructor\\n */\\nfunction SpatialListener() {}\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.forwardX;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.forwardY;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.forwardZ;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.positionX;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.positionY;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.positionZ;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.upX;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.upY;\\n\\n/** @type {!AudioParam} */\\nSpatialListener.prototype.upZ;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n * @see http://webaudio.github.io/web-audio-api/#the-stereopannernode-interface\\n */\\nfunction StereoPannerNode() {}\\n\\n/** @type {!AudioParam} */\\nStereoPannerNode.prototype.pan;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction ConvolverNode() {}\\n\\n/** @type {?AudioBuffer} */\\nConvolverNode.prototype.buffer;\\n\\n/** @type {boolean} */\\nConvolverNode.prototype.normalize;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nvar AnalyserNode = function() {};\\n\\n/**\\n * @param {!Float32Array} array\\n */\\nAnalyserNode.prototype.getFloatFrequencyData = function(array) {};\\n\\n/**\\n * @param {!Uint8Array} array\\n */\\nAnalyserNode.prototype.getByteFrequencyData = function(array) {};\\n\\n/**\\n * @param {!Uint8Array} array\\n */\\nAnalyserNode.prototype.getByteTimeDomainData = function(array) {};\\n\\n/**\\n * @param {!Float32Array} array\\n */\\nAnalyserNode.prototype.getFloatTimeDomainData = function(array) {};\\n\\n/** @type {number} */\\nAnalyserNode.prototype.fftSize;\\n\\n/** @type {number} */\\nAnalyserNode.prototype.frequencyBinCount;\\n\\n/** @type {number} */\\nAnalyserNode.prototype.minDecibels;\\n\\n/** @type {number} */\\nAnalyserNode.prototype.maxDecibels;\\n\\n/** @type {number} */\\nAnalyserNode.prototype.smoothingTimeConstant;\\n\\n/**\\n * @constructor\\n * @extends {AnalyserNode}\\n * @deprecated Use AnalyserNode\\n *\\n * This constructor has been added for backwards compatibility.\\n */\\nvar RealtimeAnalyserNode = function() {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction ChannelSplitterNode() {}\\n\\n/**\\n * @constructor\\n * @extends {ChannelSplitterNode}\\n * @deprecated Use ChannelSplitterNode\\n *\\n * This constructor has been added for backwards compatibility.\\n */\\nfunction AudioChannelSplitter() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction ChannelMergerNode() {}\\n\\n/**\\n * @constructor\\n * @extends {ChannelMergerNode}\\n * @deprecated Use ChannelMergerNode\\n *\\n * This constructor has been added for backwards compatibility.\\n */\\nfunction AudioChannelMerger() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction DynamicsCompressorNode() {}\\n\\n/** @type {!AudioParam} */\\nDynamicsCompressorNode.prototype.threshold;\\n\\n/** @type {!AudioParam} */\\nDynamicsCompressorNode.prototype.knee;\\n\\n/** @type {!AudioParam} */\\nDynamicsCompressorNode.prototype.ratio;\\n\\n/** @type {number} */\\nDynamicsCompressorNode.prototype.reduction;\\n\\n/** @type {!AudioParam} */\\nDynamicsCompressorNode.prototype.attack;\\n\\n/** @type {!AudioParam} */\\nDynamicsCompressorNode.prototype.release;\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction BiquadFilterNode() {}\\n\\n/**\\n * A read-able and write-able string that specifies the type of the filter.\\n * See http://webaudio.github.io/web-audio-api/#the-biquadfilternode-interface\\n * for valid values.\\n * @type {string}\\n */\\nBiquadFilterNode.prototype.type;\\n\\n/** @type {!AudioParam} */\\nBiquadFilterNode.prototype.frequency;\\n\\n/** @type {!AudioParam} */\\nBiquadFilterNode.prototype.detune;\\n\\n/** @type {!AudioParam} */\\nBiquadFilterNode.prototype.Q;\\n\\n/** @type {!AudioParam} */\\nBiquadFilterNode.prototype.gain;\\n/**\\n * @param {Float32Array} frequencyHz\\n * @param {Float32Array} magResponse\\n * @param {Float32Array} phaseResponse\\n * @return {undefined}\\n */\\nBiquadFilterNode.prototype.getFrequencyResponse = function(\\n frequencyHz, magResponse, phaseResponse) {};\\n\\n/**\\n * @constructor\\n * @ex"; a.a+='tends {AudioNode}\\n */\\nfunction IIRFilterNode() {}\\n\\n/**\\n * @param {!Float32Array} frequencyHz\\n * @param {!Float32Array} magResponse\\n * @param {!Float32Array} phaseResponse\\n * @return {undefined}\\n */\\nIIRFilterNode.prototype.getFrequencyResponse = function(\\n frequencyHz, magResponse, phaseResponse) {};\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction WaveShaperNode() {}\\n\\n/** @type {Float32Array} */\\nWaveShaperNode.prototype.curve;\\n\\n/** @type {string} */\\nWaveShaperNode.prototype.oversample;\\n\\n/**\\n * @deprecated\\n * @constructor\\n */\\nfunction WaveTable() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction OscillatorNode() {}\\n\\n/**\\n * @type {string}\\n * See https://www.w3.org/TR/webaudio/#the-oscillatornode-interface for valid values\\n */\\nOscillatorNode.prototype.type;\\n\\n/**\\n * @deprecated\\n * @type {number}\\n */\\nOscillatorNode.prototype.playbackState;\\n\\n/** @type {!AudioParam} */\\nOscillatorNode.prototype.frequency;\\n\\n/** @type {!AudioParam} */\\nOscillatorNode.prototype.detune;\\n\\n/**\\n * @param {number=} when\\n */\\nOscillatorNode.prototype.start = function(when) {};\\n\\n/**\\n * @param {number=} when\\n */\\nOscillatorNode.prototype.stop = function(when) {};\\n\\n/**\\n * @deprecated\\n * @param {!WaveTable} waveTable\\n */\\nOscillatorNode.prototype.setWaveTable = function(waveTable) {};\\n\\n/**\\n * @param {!PeriodicWave} periodicWave\\n */\\nOscillatorNode.prototype.setPeriodicWave = function(periodicWave) {};\\n\\n/** @type {?function(!Event)} */\\nOscillatorNode.prototype.onended;\\n\\n/**\\n * @constructor\\n */\\nfunction PeriodicWave() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction MediaStreamAudioSourceNode() {}\\n\\n/**\\n * @constructor\\n * @extends {AudioNode}\\n */\\nfunction MediaStreamAudioDestinationNode() {}\\n\\n/** @type {!MediaStream} */\\nMediaStreamAudioDestinationNode.prototype.stream;\\n\\n/**\\n * Definitions for the Web Audio API with webkit prefix.\\n */\\n\\n/**\\n * @constructor\\n * @extends {AudioContext}\\n */\\nfunction webkitAudioContext() {}\\n\\n/**\\n * @param {number} numberOfChannels\\n * @param {number} length\\n * @param {number} sampleRate\\n * @constructor\\n * @extends {OfflineAudioContext}\\n */\\nfunction webkitOfflineAudioContext(numberOfChannels, length, sampleRate) {}\\n\\n/**\\n * @constructor\\n * @extends {AudioPannerNode}\\n */\\nfunction webkitAudioPannerNode() {}\\n\\n/**\\n * @constructor\\n * @extends {PannerNode}\\n */\\nfunction webkitPannerNode() {}\\n\\n/**\\n * Definitions for the Audio API as implemented in Firefox.\\n * Please note that this document describes a non-standard experimental API.\\n * This API is considered deprecated.\\n * @see https://developer.mozilla.org/en/DOM/HTMLAudioElement\\n */\\n\\n/**\\n * @param {string=} src\\n * @constructor\\n * @extends {HTMLAudioElement}\\n */\\nfunction Audio(src) {}\\n\\n/**\\n * @param {number} channels\\n * @param {number} rate\\n */\\nAudio.prototype.mozSetup = function(channels, rate) {};\\n\\n/**\\n * @param {Array|Float32Array} buffer\\n */\\nAudio.prototype.mozWriteAudio = function(buffer) {};\\n\\n/**\\n * @return {number}\\n */\\nAudio.prototype.mozCurrentSampleOffset = function() {};\\n","externs/w3c_batterystatus.js":"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Battery Status API.\\n * The whole file has been fully type annotated. Created from\\n * http://www.w3.org/TR/2014/CR-battery-status-20141209/\\n *\\n * @externs\\n */\\n\\n\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n */\\nfunction BatteryManager() {}\\n\\n\\n/**\\n * @type {boolean}\\n */\\nBatteryManager.prototype.charging;\\n\\n\\n/**\\n * @type {number}\\n */\\nBatteryManager.prototype.chargingTime;\\n\\n\\n/**\\n * @type {number}\\n */\\nBatteryManager.prototype.dischargingTime;\\n\\n\\n/**\\n * @type {number}\\n */\\nBatteryManager.prototype.level;\\n\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nBatteryManager.prototype.onchargingchange;\\n\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nBatteryManager.prototype.onchargingtimechange;\\n\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nBatteryManager.prototype.ondischargingtimechange;\\n\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nBatteryManager.prototype.onlevelchange;\\n","externs/w3c_css3d.js":"/*\\n * Copyright 2010 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s CSS 3D Transforms specification.\\n * The whole file has been fully type annotated. Created from\\n * https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html\\n *\\n * @externs\\n * @author rjfioravanti@google.com (Ryan Fioravanti)\\n */\\n\\n/**\\n * @constructor\\n * @param {string=} opt_matrix\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#the-cssmatrix-interface\\n */\\nfunction CSSMatrix(opt_matrix) {}\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m11;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m12;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m13;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m14;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m21;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m22;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m23;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m24;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m31;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m32;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m33;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m34;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m41;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m42;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m43;\\n\\n/**\\n * @type {number}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#three-dimensional-attributes\\n */\\nCSSMatrix.prototype.m44;\\n\\n/**\\n * @param {string} string\\n * @return {void}\\n */\\nCSSMatrix.prototype.setMatrixValue = function(string) {};\\n\\n/**\\n * @param {!CSSMatrix} secondMatrix\\n * @return {!CSSMatrix}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-multiply-CSSMatrix-CSSMatrix-other\\n */\\nCSSMatrix.prototype.multiply = function(secondMatrix) {};\\n\\n/**\\n * @return {CSSMatrix} Returns void if the matrix is non-invertable.\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-inverse-CSSMatrix\\n */\\nCSSMatrix.prototype.inverse = function() {};\\n\\n/**\\n * @param {number=} opt_x Defaults to 0.\\n * @param {number=} opt_y Defaults to 0.\\n * @param {number=} opt_z Defaults to 0.\\n * @return {!CSSMatrix}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-translate-CSSMatrix-unrestricted-double-tx-unrestricted-double-ty-unrestricted-double-tz\\n */\\nCSSMatrix.prototype.translate = function(opt_x, opt_y, opt_z) {};\\n\\n/**\\n * @param {number=} opt_scaleX Defaults to 1.\\n * @param {number=} opt_scaleY Defaults to scaleX.\\n * @param {number=} opt_scaleZ Defaults to 1.\\n * @return {!CSSMatrix}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-scale-CSSMatrix-unrestricted-double-scale-unrestricted-double-originX-unrestricted-double-originY\\n */\\nCSSMatrix.prototype.scale = function(opt_scaleX, opt_scaleY, opt_scaleZ) {};\\n\\n/**\\n * @param {number=} opt_rotX Defaults to 0.\\n * @param {number=} opt_rotY Defaults to 0.\\n * @param {number=} opt_rotZ Defaults to rotX if rotY is not defined, else 0.\\n * @return {!CSSMatrix}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-rotate-CSSMatrix-unrestricted-double-angle-unrestricted-double-originX-unrestricted-double-originY\\n */\\nCSSMatrix.prototype.rotate = function(opt_rotX, opt_rotY, opt_rotZ) {};\\n\\n/**\\n * @param {number=} opt_x Defaults to 0.\\n * @param {number=} opt_y Defaults to 0.\\n * @param {number=} opt_z Defaults to 0.\\n * @param {number=} opt_angle Defaults to 0.\\n * @return {!CSSMatrix}\\n * @see https://dvcs.w3.org/hg/FXTF/raw-file/tip/matrix/index.html#widl-CSSMatrix-rotateAxisAngle-CSSMatrix-unrestricted-double-x-unrestricted-double-y-unrestricted-double-z-unrestricted-double-angle\\n */\\nCSSMatrix.prototype.rotateAxisAngle =\\n function(opt_x, opt_y, opt_z, opt_angle) {};\\n\\n/**\\n * @constructor\\n * @param {string=} opt_matrix\\n * @extends {CSSMatrix}\\n * @see http://developer.apple.com/safari/library/documentation/AudioVideo/Reference/WebKitCSSMatrixClassReference/WebKitCSSMatrix/WebKitCSSMatrix.html#//apple_ref/javascript/instm/WebKitCSSMatrix/setMatrixValue\\n */\\nfunction WebKitCSSMatrix(opt_matrix) {}\\n\\n/**\\n * @constructor\\n * @param {string=} opt_matrix\\n * @extends {CSSMatrix}\\n * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh453593.aspx\\n */\\nfunction MSCSSMatrix(opt_matrix) {}\\n","externs/w3c_elementtraversal.js":"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for DOM Element Traversal interface.\\n * This file depends on w3c_dom1.js.\\n * The whole file has been fully type annotated.\\n * Created from:\\n * http://www.w3.org/TR/ElementTraversal/#ecmascript-bindings\\n *\\n * @externs\\n * @author arv@google.com (Erik Arvidsson)\\n */\\n\\n/**\\n * @typedef {?(Document|DocumentFragment|Element)}\\n * @see https://dom.spec.whatwg.org/#parentnode\\n */\\nvar ParentNode;\\n\\n/**\\n * @typedef {?(Element|CharacterData)}\\n * @see https://dom.spec.whatwg.org/#nondocumenttypechildnode\\n */\\nvar NonDocumentTypeChildNode;\\n\\n/**\\n * @type {Element}\\n * @see https://developer.mozilla.org/En/DOM/Element.firstElementChild\\n */\\nElement.prototype.firstElementChild;\\n\\n/**\\n * @type {Element}\\n * @see https://developer.mozilla.org/En/DOM/Element.lastElementChild\\n */\\nElement.prototype.lastElementChild;\\n\\n/**\\n * @type {Element}\\n * @see https://developer.mozilla.org/En/DOM/Element.previousElementSibling\\n */\\nElement.prototype.previousElementSibling;\\n\\n/**\\n * @type {Element}\\n * @see https://developer.mozilla.org/En/DOM/Element.nextElementSibling\\n */\\nElement.prototype.nextElementSibling;\\n\\n/**\\n * @type {number}\\n * @see https://developer.mozilla.org/En/DOM/Element.childElementCount\\n */\\nElement.prototype.childElementCount;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-firstelementchild\\n */\\nDocument.prototype.firstElementChild;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-lastelementchild\\n */\\nDocument.prototype.lastElementChild;\\n\\n/**\\n * @type {number}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-childelementcount\\n */\\nDocument.prototype.childElementCount;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-firstelementchild\\n */\\nDocumentFragment.prototype.firstElementChild;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-lastelementchild\\n */\\nDocumentFragment.prototype.lastElementChild;\\n\\n/**\\n * @type {number}\\n * @see https://dom.spec.whatwg.org/#dom-parentnode-childelementcount\\n */\\nDocumentFragment.prototype.childElementCount;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-nondocumenttypechildnode-previouselementsibling\\n */\\nCharacterData.prototype.previousElementSibling;\\n\\n/**\\n * @type {?Element}\\n * @see https://dom.spec.whatwg.org/#dom-nondocumenttypechildnode-nextelementsibling\\n */\\nCharacterData.prototype.nextElementSibling;\\n","externs/w3c_gamepad.js":"/*\\n * Copyright 2013 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Gamepad specification.\\n * @see http://www.w3.org/TR/gamepad/\\n * @externs\\n */\\n\\n/**\\n * @return {!Array.}\\n */\\nnavigator.getGamepads = function() {};\\n\\n/**\\n * @return {!Array.}\\n */\\nnavigator.webkitGetGamepads = function() {};\\n\\n\\n/**\\n * @interface\\n */\\nvar Gamepad = function() {};\\n\\n/**\\n * @type {string}\\n */\\nGamepad.prototype.id; // read-only\\n\\n/**\\n * @type {number}\\n */\\nGamepad.prototype.index; // read-only\\n\\n/**\\n * @type {boolean}\\n */\\nGamepad.prototype.connected; // read-only\\n\\n/**\\n * @type {number}\\n */\\nGamepad.prototype.timestamp; // read-only\\n\\n/**\\n * @type {string}\\n */\\nGamepad.prototype.mapping; // read-only\\n\\n/**\\n * @type {!Array.}\\n */\\nGamepad.prototype.axes; // read-only\\n\\n/**\\n * Note: The W3C spec changed, this property now returns an array of\\n * GamepadButton objects.\\n *\\n * @type {(!Array.|!Array.)}\\n */\\nGamepad.prototype.buttons;\\n\\n\\n/**\\n * @interface\\n */\\nvar GamepadButton = function() {};\\n\\n/**\\n * @type {boolean}\\n */\\nGamepadButton.prototype.pressed; // read-only\\n\\n/**\\n * @type {number}\\n */\\nGamepadButton.prototype.value; // read-only\\n","externs/w3c_geolo'; a.a+="cation.js\":\"/*\\n * Copyright 2009 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's Geolocation specification\\n * http://www.w3.org/TR/geolocation-API/\\n * @externs\\n * @author ngd@google.com (Neil Dunn)\\n */\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/geolocation-API/#geolocation\\n */\\nfunction Geolocation() {}\\n\\n/**\\n * @param {function(!GeolocationPosition)} successCallback\\n * @param {(function(!GeolocationPositionError)|null)=} opt_errorCallback\\n * @param {GeolocationPositionOptions=} opt_options\\n * @return {undefined}\\n */\\nGeolocation.prototype.getCurrentPosition = function(successCallback,\\n opt_errorCallback,\\n opt_options) {};\\n\\n/**\\n * @param {function(!GeolocationPosition)} successCallback\\n * @param {(function(!GeolocationPositionError)|null)=} opt_errorCallback\\n * @param {GeolocationPositionOptions=} opt_options\\n * @return {number}\\n */\\nGeolocation.prototype.watchPosition = function(successCallback,\\n opt_errorCallback,\\n opt_options) {};\\n\\n/**\\n * @param {number} watchId\\n * @return {undefined}\\n */\\nGeolocation.prototype.clearWatch = function(watchId) {};\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/geolocation-API/#coordinates\\n */\\nfunction GeolocationCoordinates() {}\\n/** @type {number} */\\nGeolocationCoordinates.prototype.latitude;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.longitude;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.accuracy;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.altitude;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.altitudeAccuracy;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.heading;\\n/** @type {number} */\\nGeolocationCoordinates.prototype.speed;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/geolocation-API/#position\\n */\\nfunction GeolocationPosition() {}\\n/** @type {GeolocationCoordinates} */\\nGeolocationPosition.prototype.coords;\\n/** @type {number} */\\nGeolocationPosition.prototype.timestamp;\\n\\n\\n/**\\n * @record\\n * @see http://www.w3.org/TR/geolocation-API/#position-options\\n */\\nfunction GeolocationPositionOptions() {}\\n/** @type {boolean|undefined} */\\nGeolocationPositionOptions.prototype.enableHighAccuracy;\\n/** @type {number|undefined} */\\nGeolocationPositionOptions.prototype.maximumAge;\\n/** @type {number|undefined} */\\nGeolocationPositionOptions.prototype.timeout;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/geolocation-API/#position-error\\n */\\nfunction GeolocationPositionError() {}\\n/** @type {number} */\\nGeolocationPositionError.prototype.code;\\n/** @type {string} */\\nGeolocationPositionError.prototype.message;\\n/** @type {number} */\\nGeolocationPositionError.prototype.UNKNOWN_ERROR;\\n/** @type {number} */\\nGeolocationPositionError.prototype.PERMISSION_DENIED;\\n/** @type {number} */\\nGeolocationPositionError.prototype.POSITION_UNAVAILABLE;\\n/** @type {number} */\\nGeolocationPositionError.prototype.TIMEOUT;\\n\\n/** @type {Geolocation} */\\nNavigator.prototype.geolocation;\\n\",\"externs/w3c_indexeddb.js\":\"/*\\n * Copyright 2011 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's IndexedDB API and IndexedDB API 2.0.\\n * In Chrome all the IndexedDB classes are prefixed with 'webkit'.\\n * In order to access constants and static methods of these classes they must\\n * be duplicated with the prefix here.\\n * @see http://www.w3.org/TR/2015/REC-IndexedDB-20150108/\\n * @see https://www.w3.org/TR/2017/WD-IndexedDB-2-20170313/\\n *\\n * @externs\\n * @author guido.tapia@picnet.com.au (Guido Tapia)\\n * @author vobruba.martin@gmail.com (Martin Vobruba)\\n */\\n\\n/** @type {!IDBFactory} */\\nvar indexedDB;\\n\\n/** @type {!IDBFactory|undefined} */\\nWindow.prototype.moz_indexedDB;\\n\\n/** @type {!IDBFactory|undefined} */\\nWindow.prototype.mozIndexedDB;\\n\\n/** @type {!IDBFactory|undefined} */\\nWindow.prototype.webkitIndexedDB;\\n\\n/** @type {!IDBFactory|undefined} */\\nWindow.prototype.msIndexedDB;\\n\\n\\n\\n/**\\n * Possible values: 'readonly', 'readwrite', 'versionchange'\\n *\\n * @typedef {string}\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBTransactionMode\\n */\\nvar IDBTransactionMode;\\n\\n\\n/**\\n * Possible values: 'pending', 'done'\\n *\\n * @typedef {string}\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBRequestReadyState\\n */\\nvar IDBRequestReadyState;\\n\\n\\n/**\\n * Possible values: 'next', 'nextunique', 'prev', 'prevunique'\\n *\\n * @typedef {string}\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBCursorDirection\\n */\\nvar IDBCursorDirection;\\n\\n\\n/**\\n * @record\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBIndexParameters\\n */\\nfunction IDBIndexParameters(){};\\n\\n/** @type {(undefined|boolean)} */\\nIDBIndexParameters.prototype.unique;\\n\\n/** @type {(undefined|boolean)} */\\nIDBIndexParameters.prototype.multiEntry;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBVersionChangeEventInit\\n */\\nfunction IDBVersionChangeEventInit(){};\\n\\n/** @type {(undefined|number)} */\\nIDBVersionChangeEventInit.prototype.oldVersion;\\n\\n/** @type {(undefined|number|null)} */\\nIDBVersionChangeEventInit.prototype.newVersion;\\n\\n\\n\\n/**\\n * @record\\n * @see https://www.w3.org/TR/IndexedDB/#idl-def-IDBObjectStoreParameters\\n */\\nfunction IDBObjectStoreParameters() {};\\n\\n/** @type {(undefined|string|!Array|null)} */\\nIDBObjectStoreParameters.prototype.keyPath;\\n\\n/** @type {(undefined|boolean)} */\\nIDBObjectStoreParameters.prototype.autoIncrement;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBFactory\\n */\\nfunction IDBFactory() {}\\n\\n/**\\n * @param {string} name The name of the database to open.\\n * @param {number=} opt_version The version at which to open the database.\\n * @return {!IDBOpenDBRequest} The IDBRequest object.\\n */\\nIDBFactory.prototype.open = function(name, opt_version) {};\\n\\n/**\\n * @param {string} name The name of the database to delete.\\n * @return {!IDBOpenDBRequest} The IDBRequest object.\\n */\\nIDBFactory.prototype.deleteDatabase = function(name) {};\\n\\n/**\\n * @param {*} first\\n * @param {*} second\\n * @return {number}\\n */\\nIDBFactory.prototype.cmp = function(first, second) {};\\n\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBRequest\\n * @see https://www.w3.org/TR/IndexedDB-2/#request-api\\n */\\nfunction IDBRequest() {}\\n\\n/** @override */\\nIDBRequest.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/** @override */\\nIDBRequest.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nIDBRequest.prototype.dispatchEvent = function(evt) {};\\n\\n\\n/**\\n * @constructor\\n * @extends {IDBRequest}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBRequest\\n * @see https://www.w3.org/TR/IndexedDB-2/#request-api\\n */\\nfunction webkitIDBRequest() {}\\n\\n/**\\n * @type {!IDBRequestReadyState}\\n */\\nIDBRequest.prototype.readyState; // readonly\\n\\n/**\\n * @type {function(!Event)}\\n */\\nIDBRequest.prototype.onsuccess = function(e) {};\\n\\n/**\\n * @type {function(!Event)}\\n */\\nIDBRequest.prototype.onerror = function(e) {};\\n\\n/** @type {*} */\\nIDBRequest.prototype.result; // readonly\\n\\n/**\\n * @type {number}\\n * @deprecated Use \\\"error\\\"\\n */\\nIDBRequest.prototype.errorCode; // readonly\\n\\n\\n/** @type {?DOMError|?DOMException} */\\nIDBRequest.prototype.error; // readonly\\n\\n/** @type {?IDBObjectStore|?IDBIndex|?IDBCursor} */\\nIDBRequest.prototype.source; // readonly\\n\\n/** @type {?IDBTransaction} */\\nIDBRequest.prototype.transaction; // readonly\\n\\n\\n/**\\n * @constructor\\n * @extends {IDBRequest}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBOpenDBRequest\\n */\\nfunction IDBOpenDBRequest() {}\\n\\n/**\\n * @type {function(!IDBVersionChangeEvent)}\\n */\\nIDBOpenDBRequest.prototype.onblocked = function(e) {};\\n\\n/**\\n * @type {function(!IDBVersionChangeEvent)}\\n */\\nIDBOpenDBRequest.prototype.onupgradeneeded = function(e) {};\\n\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBDatabase\\n * @see https://www.w3.org/TR/IndexedDB-2/#database-interface\\n */\\nfunction IDBDatabase() {}\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nIDBDatabase.prototype.name;\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nIDBDatabase.prototype.version;\\n\\n/**\\n * @type {!DOMStringList}\\n * @const\\n */\\nIDBDatabase.prototype.objectStoreNames;\\n\\n/**\\n * @param {string} name The name of the object store.\\n * @param {!IDBObjectStoreParameters=} opt_parameters Parameters to be passed\\n * creating the object store.\\n * @return {!IDBObjectStore} The created/open object store.\\n */\\nIDBDatabase.prototype.createObjectStore =\\n function(name, opt_parameters) {};\\n\\n/**\\n * @param {string} name The name of the object store to remove.\\n * @return {undefined}\\n */\\nIDBDatabase.prototype.deleteObjectStore = function(name) {};\\n\\n/**\\n * @param {(string|!Array|!DOMStringList)} storeNames The stores to open\\n * in this transaction.\\n * @param {!IDBTransactionMode=} mode The mode for opening the object stores.\\n * @return {!IDBTransaction} The IDBRequest object.\\n */\\nIDBDatabase.prototype.transaction = function(storeNames, mode) {};\\n\\n/**\\n * Closes the database connection.\\n * @return {undefined}\\n */\\nIDBDatabase.prototype.close = function() {};\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBDatabase.prototype.onabort;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBDatabase.prototype.onclose;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBDatabase.prototype.onerror;\\n\\n/**\\n * @type {?function(!IDBVersionChangeEvent)}\\n */\\nIDBDatabase.prototype.onversionchange;\\n\\n/** @override */\\nIDBDatabase.prototype.addEventListener = function(type, listener, opt_options) {\\n};\\n\\n/** @override */\\nIDBDatabase.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nIDBDatabase.prototype.dispatchEvent = function(evt) {};\\n\\n\\n/**\\n * Typedef for valid key types according to the w3 specification. Note that this\\n * is slightly wider than what is actually allowed, as all Array elements must\\n * have a valid key type.\\n * @see http://www.w3.org/TR/IndexedDB/#key-construct\\n * @see https://www.w3.org/TR/IndexedDB-2/#key-construct\\n * @typedef {number|string|!Date|!Array|!BufferSource}\\n */\\nvar IDBKeyType;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBObjectStore\\n * @see https://www.w3.org/TR/IndexedDB-2/#object-store-interface\\n */\\nfunction IDBObjectStore() {}\\n\\n/**\\n * @type {string}\\n */\\nIDBObjectStore.prototype.name;\\n\\n/**\\n * @type {*}\\n */\\nIDBObjectStore.prototype.keyPath;\\n\\n/**\\n * @type {!DOMStringList}\\n */\\nIDBObjectStore.prototype.indexNames;\\n\\n/** @type {!IDBTransaction} */\\nIDBObjectStore.prototype.transaction;\\n\\n/** @type {boolean} */\\nIDBObjectStore.prototype.autoIncrement;\\n\\n/**\\n * @param {*} value The value to put into the object store.\\n * @param {!IDBKeyType=} key The key of this value.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.put = function(value, key) {};\\n\\n/**\\n * @param {*} value The value to add into the object store.\\n * @param {!IDBKeyType=} key The key of this value.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.add = function(value, key) {};\\n\\n/**\\n * @param {!IDBKeyType|!IDBKeyRange} key The key of this value.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.delete = function(key) {};\\n\\n/**\\n * @param {!IDBKeyType|!IDBKeyRange} key The key of the document to retrieve.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.get = function(key) {};\\n\\n/**\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.clear = function() {};\\n\\n/**\\n * @param {?IDBKeyRange=} range The range of the cursor.\\n * Nullable because IE <11 has problems with undefined.\\n * @param {!IDBCursorDirection=} direction The direction of cursor enumeration.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBObjectStore.prototype.openCursor = function(range, direction) {};\\n\\n/**\\n * @param {string} name The name of the index.\\n * @param {string|!Array} keyPath The path to the index key.\\n * @param {!IDBIndexParameters=} opt_paramters Optional parameters\\n * for the created index.\\n * @return {!IDBIndex} The IDBIndex object.\\n */\\nIDBObjectStore.prototype.createIndex = function(name, keyPath, opt_paramters) {};\\n\\n/**\\n * @param {string} name The name of the index to retrieve.\\n * @return {!IDBIndex} The IDBIndex object.\\n */\\nIDBObjectStore.prototype.index = function(name) {};\\n\\n/**\\n * @param {string} indexName The name of the index to remove.\\n * @return {undefined}\\n */\\nIDBObjectStore.prototype.deleteIndex = function(indexName) {};\\n\\n/**\\n * @param {(!IDBKeyType|IDBKeyRange)=} key The key of this value.\\n * @return {!IDBRequest} The IDBRequest object.\\n * @see http://www.w3.org/TR/IndexedDB/#widl-IDBObjectStore-count\\n */\\nIDBObjectStore.prototype.count = function(key) {};\\n\\n/**\\n * @param {(!IDBKeyType|IDBKeyRange)=} query\\n * @return {!IDBRequest} The IDBRequest object.\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-getkey\\n */\\nIDBObjectStore.prototype.getKey = function(query) {};\\n\\n/**\\n * @param {(!IDBKeyType|IDBKeyRange)=} query\\n * @param {number=} count\\n * @return {!IDBRequest} The IDBRequest object.\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-getall\\n */\\nIDBObjectStore.prototype.getAll = function(query, count) {};\\n\\n/**\\n * @param {(!IDBKeyType|IDBKeyRange)=} query\\n * @param {number=} count\\n * @return {!IDBRequest} The IDBRequest object.\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-getallkeys\\n */\\nIDBObjectStore.prototype.getAllKeys = function(query, count) {};\\n\\n/**\\n * @param {(!IDBKeyType|IDBKeyRange)=} query\\n * @param {!IDBCursorDirection=} direction\\n * @return {!IDBRequest} The IDBRequest object.\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbobjectstore-openkeycursor\\n */\\nIDBObjectStore.prototype.openKeyCursor = function(query, direction) {};\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBIndex\\n * @see https://www.w3.org/TR/IndexedDB-2/#index-interface\\n */\\nfunction IDBIndex() {}\\n\\n/**\\n * @type {string}\\n */\\nIDBIndex.prototype.name;\\n\\n/**\\n * @type {!IDBObjectStore}\\n * @const\\n */\\nIDBIndex.prototype.objectStore;\\n\\n/**\\n * @type {*}\\n * @const\\n */\\nIDBIndex.prototype.keyPath;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nIDBIndex.prototype.multiEntry;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nIDBIndex.prototype.unique;\\n\\n/**\\n * @param {(!IDBKeyType|?IDBKeyRange)=} range The range of the cursor.\\n * Nullable because IE <11 has problems with undefined.\\n * @param {!IDBCursorDirection=} direction The direction of cursor enumeration.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBIndex.prototype.openCu"; a.a+='rsor = function(range, direction) {};\\n\\n/**\\n * @param {(!IDBKeyType|?IDBKeyRange)=} range The range of the cursor.\\n * Nullable because IE <11 has problems with undefined.\\n * @param {!IDBCursorDirection=} direction The direction of cursor enumeration.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBIndex.prototype.openKeyCursor = function(range, direction) {};\\n\\n/**\\n * @param {!IDBKeyType|!IDBKeyRange} key The id of the object to retrieve.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBIndex.prototype.get = function(key) {};\\n\\n/**\\n * @param {!IDBKeyType|!IDBKeyRange} key The id of the object to retrieve.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBIndex.prototype.getKey = function(key) {};\\n\\n/**\\n * @param {(!IDBKeyType|!IDBKeyRange)=} query\\n * @param {number=} count\\n * @return {!IDBRequest}\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-getall\\n */\\nIDBIndex.prototype.getAll = function(query, count) {};\\n\\n/**\\n * @param {(!IDBKeyType|!IDBKeyRange)=} query\\n * @param {number=} count\\n * @return {!IDBRequest}\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbindex-getallkeys\\n */\\nIDBIndex.prototype.getAllKeys = function(query, count) {};\\n\\n/**\\n * @param {(!IDBKeyType|!IDBKeyRange)=} opt_key\\n * @return {!IDBRequest}\\n */\\nIDBIndex.prototype.count = function(opt_key) {};\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBCursor\\n * @see https://www.w3.org/TR/IndexedDB-2/#cursor-interface\\n */\\nfunction IDBCursor() {}\\n\\n/**\\n * @constructor\\n * @extends {IDBCursor}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBCursor\\n * @see https://www.w3.org/TR/IndexedDB-2/#cursor-interface\\n */\\nfunction webkitIDBCursor() {}\\n\\n/**\\n * @type {(!IDBObjectStore|!IDBIndex)}\\n * @const\\n */\\nIDBCursor.prototype.source;\\n\\n/**\\n * @type {!IDBCursorDirection}\\n * @const\\n */\\nIDBCursor.prototype.direction;\\n\\n/**\\n * @type {!IDBKeyType}\\n * @const\\n */\\nIDBCursor.prototype.key;\\n\\n/**\\n * @type {!IDBKeyType}\\n * @const\\n */\\nIDBCursor.prototype.primaryKey;\\n\\n/**\\n * @param {*} value The new value for the current object in the cursor.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBCursor.prototype.update = function(value) {};\\n\\n/**\\n * Note: Must be quoted to avoid parse error.\\n * @param {!IDBKeyType=} key Continue enumerating the cursor from the specified\\n * key (or next).\\n * @return {undefined}\\n */\\nIDBCursor.prototype.continue = function(key) {};\\n\\n/**\\n * @param {!IDBKeyType} key\\n * @param {!IDBKeyType} primaryKey\\n * @return {undefined}\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbcursor-continueprimarykey\\n */\\nIDBCursor.prototype.continuePrimaryKey = function(key, primaryKey) {};\\n\\n/**\\n * @param {number} count Number of times to iterate the cursor.\\n * @return {undefined}\\n */\\nIDBCursor.prototype.advance = function(count) {};\\n\\n/**\\n * Note: Must be quoted to avoid parse error.\\n * @return {!IDBRequest} The IDBRequest object.\\n */\\nIDBCursor.prototype.delete = function() {};\\n\\n\\n/**\\n * @constructor\\n * @extends {IDBCursor}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBCursorWithValue\\n */\\nfunction IDBCursorWithValue() {}\\n\\n/** @type {*} */\\nIDBCursorWithValue.prototype.value; // readonly\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBTransaction\\n * @see https://www.w3.org/TR/IndexedDB-2/#transaction\\n */\\nfunction IDBTransaction() {}\\n\\n/**\\n * @constructor\\n * @extends {IDBTransaction}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBTransaction\\n * @see https://www.w3.org/TR/IndexedDB-2/#transaction\\n */\\nfunction webkitIDBTransaction() {}\\n\\n/**\\n * @type {!DOMStringList}\\n * @const\\n */\\nIDBTransaction.prototype.objectStoreNames;\\n\\n/**\\n * @type {!IDBTransactionMode}\\n * @const\\n */\\nIDBTransaction.prototype.mode;\\n\\n/**\\n * @type {!IDBDatabase}\\n * @const\\n */\\nIDBTransaction.prototype.db;\\n\\n/**\\n * @type {!DOMError|!DOMException}\\n */\\nIDBTransaction.prototype.error;\\n\\n/**\\n * @param {string} name The name of the object store to retrieve.\\n * @return {!IDBObjectStore} The object store.\\n */\\nIDBTransaction.prototype.objectStore = function(name) {};\\n\\n/**\\n * Aborts the transaction.\\n * @return {undefined}\\n */\\nIDBTransaction.prototype.abort = function() {};\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBTransaction.prototype.onabort;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBTransaction.prototype.oncomplete;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nIDBTransaction.prototype.onerror;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBKeyRange\\n * @see https://www.w3.org/TR/IndexedDB-2/#keyrange\\n */\\nfunction IDBKeyRange() {}\\n\\n/**\\n * @constructor\\n * @extends {IDBKeyRange}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBKeyRange\\n * @see https://www.w3.org/TR/IndexedDB-2/#keyrange\\n */\\nfunction webkitIDBKeyRange() {}\\n\\n/**\\n * @type {*}\\n * @const\\n */\\nIDBKeyRange.prototype.lower;\\n\\n/**\\n * @type {*}\\n * @const\\n */\\nIDBKeyRange.prototype.upper;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nIDBKeyRange.prototype.lowerOpen;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nIDBKeyRange.prototype.upperOpen;\\n\\n/**\\n * @param {!IDBKeyType} value The single key value of this range.\\n * @return {!IDBKeyRange} The key range.\\n */\\nIDBKeyRange.only = function(value) {};\\n\\n/**\\n * @param {!IDBKeyType} bound Creates a lower bound key range.\\n * @param {boolean=} open Open the key range.\\n * @return {!IDBKeyRange} The key range.\\n */\\nIDBKeyRange.lowerBound = function(bound, open) {};\\n\\n/**\\n * @param {!IDBKeyType} bound Creates an upper bound key range.\\n * @param {boolean=} open Open the key range.\\n * @return {!IDBKeyRange} The key range.\\n */\\nIDBKeyRange.upperBound = function(bound, open) {};\\n\\n/**\\n * @param {!IDBKeyType} left The left bound value.\\n * @param {!IDBKeyType} right The right bound value.\\n * @param {boolean=} openLeft Whether the left bound value should be excluded.\\n * @param {boolean=} openRight Whether the right bound value should be excluded.\\n * @return {!IDBKeyRange} The key range.\\n */\\nIDBKeyRange.bound = function(left, right, openLeft, openRight) {};\\n\\n/**\\n * @param {!IDBKeyType} key\\n * @return {boolean}\\n * @see https://www.w3.org/TR/IndexedDB-2/#dom-idbkeyrange-includes\\n */\\nIDBKeyRange.prototype.includes = function(key) {};\\n\\n\\n/**\\n * @param {string} type\\n * @param {!IDBVersionChangeEventInit=} opt_eventInit\\n * @constructor\\n * @extends {Event}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBVersionChangeEvent\\n */\\nfunction IDBVersionChangeEvent(type, opt_eventInit) {}\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nIDBVersionChangeEvent.prototype.oldVersion;\\n\\n/**\\n * @type {?number}\\n * @const\\n */\\nIDBVersionChangeEvent.prototype.newVersion;\\n\\n\\n/**\\n * @param {string} type\\n * @param {!IDBVersionChangeEventInit=} opt_eventInit\\n * @constructor\\n * @extends {IDBVersionChangeEvent}\\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBVersionChangeEvent\\n */\\nfunction webkitIDBVersionChangeEvent(type, opt_eventInit) {}\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nwebkitIDBVersionChangeEvent.prototype.version;\\n","externs/w3c_midi.js":"/*\\n * Copyright 2014 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview W3C Web MIDI specification.\\n * @see http://www.w3.org/TR/webmidi/\\n *\\n * @externs\\n */\\n\\n\\n/**\\n * @param {!MIDIOptions=} opt_options\\n * @return {!Promise.}\\n */\\nnavigator.requestMIDIAccess = function(opt_options) {};\\n\\n\\n/**\\n * @typedef {{\\n * sysex: boolean\\n * }}\\n */\\nvar MIDIOptions;\\n\\n\\n\\n/**\\n * @interface\\n */\\nvar MIDIInputMap = function() {};\\n\\n\\n/**\\n * @const {number}\\n */\\nMIDIInputMap.prototype.size;\\n\\n\\n/**\\n * @param {function(string)} iterator\\n */\\nMIDIInputMap.prototype.keys = function(iterator) {};\\n\\n\\n/**\\n * @param {function(!Array.<*>)} iterator\\n */\\nMIDIInputMap.prototype.entries = function(iterator) {};\\n\\n\\n/**\\n * @param {function(!MIDIInput)} iterator\\n */\\nMIDIInputMap.prototype.values = function(iterator) {};\\n\\n\\n/**\\n * @param {string} key\\n * @return {!MIDIInput}\\n */\\nMIDIInputMap.prototype.get = function(key) {};\\n\\n\\n/**\\n * @param {string} key\\n * @return {boolean}\\n */\\nMIDIInputMap.prototype.has = function(key) {};\\n\\n\\n\\n/**\\n * @interface\\n */\\nvar MIDIOutputMap = function() {};\\n\\n\\n/**\\n * @const {number}\\n */\\nMIDIOutputMap.prototype.size;\\n\\n\\n/**\\n * @param {function(string)} iterator\\n */\\nMIDIOutputMap.prototype.keys = function(iterator) {};\\n\\n\\n/**\\n * @param {function(!Array.<*>)} iterator\\n */\\nMIDIOutputMap.prototype.entries = function(iterator) {};\\n\\n\\n/**\\n * @param {function(!MIDIOutput)} iterator\\n */\\nMIDIOutputMap.prototype.values = function(iterator) {};\\n\\n\\n/**\\n * @param {string} key\\n * @return {!MIDIOutput}\\n */\\nMIDIOutputMap.prototype.get = function(key) {};\\n\\n\\n/**\\n * @param {string} key\\n * @return {boolean}\\n */\\nMIDIOutputMap.prototype.has = function(key) {};\\n\\n\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n */\\nvar MIDIAccess = function() {};\\n\\n\\n/**\\n * @const {!MIDIInputMap}\\n */\\nMIDIAccess.prototype.inputs;\\n\\n\\n/**\\n * @const {!MIDIOutputMap}\\n */\\nMIDIAccess.prototype.outputs;\\n\\n\\n/**\\n * @const {function(!MIDIConnectionEvent)}\\n */\\nMIDIAccess.prototype.onconnect;\\n\\n\\n/**\\n * @type {function(!MIDIConnectionEvent)}\\n */\\nMIDIAccess.prototype.ondisconnect;\\n\\n\\n/**\\n * @const {boolean}\\n */\\nMIDIAccess.prototype.sysexEnabled;\\n\\n\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n */\\nvar MIDIPort = function() {};\\n\\n\\n/**\\n * @const {string}\\n */\\nMIDIPort.prototype.id;\\n\\n\\n/**\\n * @const {string}\\n */\\nMIDIPort.prototype.manufacturer;\\n\\n\\n/**\\n * @const {string}\\n */\\nMIDIPort.prototype.name;\\n\\n\\n/**\\n * @const {string}\\n */\\nMIDIPort.prototype.type;\\n\\n\\n/**\\n * @const {string}\\n */\\nMIDIPort.prototype.version;\\n\\n\\n/**\\n * @type {function(!MIDIConnectionEvent)}\\n */\\nMIDIPort.prototype.ondisconnect;\\n\\n\\n\\n/**\\n * @interface\\n * @extends {MIDIPort}\\n */\\nvar MIDIInput = function() {};\\n\\n\\n/**\\n * @type {function(!MIDIMessageEvent)}\\n */\\nMIDIInput.prototype.onmidimessage;\\n\\n\\n\\n/**\\n * @interface\\n * @extends {MIDIPort}\\n */\\nvar MIDIOutput = function() {};\\n\\n\\n/**\\n * @param {!Uint8Array} data\\n * @param {number=} opt_timestamp\\n */\\nMIDIOutput.prototype.send = function(data, opt_timestamp) {};\\n\\n\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @param {string} type\\n * @param {!MIDIMessageEventInit=} opt_init\\n */\\nvar MIDIMessageEvent = function(type, opt_init) {};\\n\\n\\n/**\\n * @const {number}\\n */\\nMIDIMessageEvent.prototype.receivedTime;\\n\\n\\n/**\\n * @const {!Uint8Array}\\n */\\nMIDIMessageEvent.prototype.data;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://www.w3.org/TR/webmidi/#midimessageeventinit-interface\\n */\\nfunction MIDIMessageEventInit() {}\\n\\n/** @type {undefined|number} */\\nMIDIMessageEventInit.prototype.receivedTime;\\n\\n/** @type {undefined|!Uint8Array} */\\nMIDIMessageEventInit.prototype.data;\\n\\n\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @param {string} type\\n * @param {!MIDIConnectionEventInit=} opt_init\\n */\\nvar MIDIConnectionEvent = function(type, opt_init) {};\\n\\n\\n/**\\n * @const {MIDIPort}\\n */\\nMIDIConnectionEvent.prototype.port;\\n\\n\\n/**\\n * @record\\n * @extends {EventInit}\\n * @see https://www.w3.org/TR/webmidi/#idl-def-MIDIConnectionEventInit\\n */\\nfunction MIDIConnectionEventInit() {}\\n\\n/** @type {undefined|!MIDIPort} */\\nMIDIConnectionEventInit.prototype.port;\\n","externs/w3c_navigation_timing.js":"/*\\n * Copyright 2011 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Navigation Timing specification.\\n *\\n * Created from\\n * @see http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html\\n * @see http://w3c-test.org/webperf/specs/ResourceTiming\\n * @see http://www.w3.org/TR/performance-timeline\\n * @see http://www.w3.org/TR/user-timing/\\n *\\n * @externs\\n * @author rky@google.com (Ren\u00e9 Kyllingstad)\\n */\\n\\n/** @constructor */\\nfunction PerformanceTiming() {}\\n/** @type {number} */ PerformanceTiming.prototype.navigationStart;\\n/** @type {number} */ PerformanceTiming.prototype.unloadEventStart;\\n/** @type {number} */ PerformanceTiming.prototype.unloadEventEnd;\\n/** @type {number} */ PerformanceTiming.prototype.redirectStart;\\n/** @type {number} */ PerformanceTiming.prototype.redirectEnd;\\n/** @type {number} */ PerformanceTiming.prototype.fetchStart;\\n/** @type {number} */ PerformanceTiming.prototype.domainLookupStart;\\n/** @type {number} */ PerformanceTiming.prototype.domainLookupEnd;\\n/** @type {number} */ PerformanceTiming.prototype.connectStart;\\n/** @type {number} */ PerformanceTiming.prototype.connectEnd;\\n/** @type {number} */ PerformanceTiming.prototype.secureConnectionStart;\\n/** @type {number} */ PerformanceTiming.prototype.requestStart;\\n/** @type {number} */ PerformanceTiming.prototype.responseStart;\\n/** @type {number} */ PerformanceTiming.prototype.responseEnd;\\n/** @type {number} */ PerformanceTiming.prototype.domLoading;\\n/** @type {number} */ PerformanceTiming.prototype.domInteractive;\\n/** @type {number} */ PerformanceTiming.prototype.domContentLoadedEventStart;\\n/** @type {number} */ PerformanceTiming.prototype.domContentLoadedEventEnd;\\n/** @type {number} */ PerformanceTiming.prototype.domComplete;\\n/** @type {number} */ PerformanceTiming.prototype.loadEventStart;\\n/** @type {number} */ PerformanceTiming.prototype.loadEventEnd;\\n\\n/** @constructor */\\nfunction PerformanceEntry() {}\\n/** @type {string} */ PerformanceEntry.prototype.name;\\n/** @type {string} */ PerformanceEntry.prototype.entryType;\\n/** @type {number} */ PerformanceEntry.prototype.startTime;\\n/** @type {number} */ PerformanceEntry.prototype.duration;\\n\\n/**\\n * https://www.w3.org/TR/resource-timing-2/#performanceresourcetiming\\n * @constructor\\n * @extends {PerformanceEntry}\\n */\\nfunction PerformanceResourceTiming() {}\\n/** @type {number} */ PerformanceResourceTiming.prototype.redirectStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.redirectEnd;\\n/** @type {number} */ PerformanceResourceTiming.prototype.fetchStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.domainLookupStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.domainLookupEnd;\\n/** @type {number} */ PerformanceResourceTiming.prototype.connectStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.connectEnd;\\n/** @type {number} */\\nPerformanceResourceTiming.prototype.secureConnectionStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.requestStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.responseStart;\\n/** @type {number} */ PerformanceResourceTiming.prototype.responseEnd;\\n/** @type {string} */ PerformanceResourceTiming.prototype.initiatorType;\\n/** @type {number|undefined} */\\nPerformanceResourceTiming.prototype.transferSize;\\n/** @type {number|undefined} */\\nPerformanceResourceTiming.prototype.encodedBodySize;\\n/** @type {number|undefined} */\\nPerformanceResourceTiming.prototype.decodedBodySize;\\n/** @type {number|undefined} */\\nPerformanceResourceTiming.prototype.workerStart;\\n\\n/**\\n * Possible values are \'navigate\', \'reload\', \'back_forwa'; a.a+="rd', and 'prerender'.\\n * See https://w3c.github.io/navigation-timing/#sec-performance-navigation-types\\n * @typedef {string}\\n */\\nvar NavigationType;\\n\\n/**\\n * https://w3c.github.io/navigation-timing/#sec-PerformanceNavigationTiming\\n * @constructor\\n * @extends {PerformanceResourceTiming}\\n */\\nfunction PerformanceNavigationTiming() {}\\n/** @type {number} */ PerformanceNavigationTiming.prototype.unloadEventStart;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.unloadEventEnd;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.domInteractive;\\n/** @type {number} */ PerformanceNavigationTiming.prototype\\n .domContentLoadedEventStart;\\n/** @type {number} */ PerformanceNavigationTiming.prototype\\n .domContentLoadedEventEnd;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.domComplete;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.loadEventStart;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.loadEventEnd;\\n/** @type {NavigationType} */ PerformanceNavigationTiming.prototype.type;\\n/** @type {number} */ PerformanceNavigationTiming.prototype.redirectCount;\\n\\n/** @constructor */\\nfunction PerformanceNavigation() {}\\n/** @type {number} */ PerformanceNavigation.prototype.TYPE_NAVIGATE = 0;\\n/** @type {number} */ PerformanceNavigation.prototype.TYPE_RELOAD = 1;\\n/** @type {number} */ PerformanceNavigation.prototype.TYPE_BACK_FORWARD = 2;\\n/** @type {number} */ PerformanceNavigation.prototype.TYPE_RESERVED = 255;\\n/** @type {number} */ PerformanceNavigation.prototype.type;\\n/** @type {number} */ PerformanceNavigation.prototype.redirectCount;\\n\\n/** @constructor */\\nfunction Performance() {}\\n/** @type {PerformanceTiming} */ Performance.prototype.timing;\\n/** @type {PerformanceNavigation} */ Performance.prototype.navigation;\\n\\n/**\\n * Clears the buffer used to store the current list of\\n * PerformanceResourceTiming resources.\\n * @return {undefined}\\n */\\nPerformance.prototype.clearResourceTimings = function() {};\\n\\n/**\\n * Clear out the buffer of performance timing events for webkit browsers.\\n * @return {undefined}\\n */\\nPerformance.prototype.webkitClearResourceTimings = function() {};\\n\\n/**\\n * Set the maximum number of PerformanceResourceTiming resources that may be\\n * stored in the buffer.\\n * @param {number} maxSize\\n * @return {undefined}\\n */\\nPerformance.prototype.setResourceTimingBufferSize = function(maxSize) {};\\n\\n/**\\n * @return {!Array} A copy of the PerformanceEntry list,\\n * in chronological order with respect to startTime.\\n * @nosideeffects\\n */\\nPerformance.prototype.getEntries = function() {};\\n\\n/**\\n * @param {string} entryType Only return {@code PerformanceEntry}s with this\\n * entryType.\\n * @return {!Array} A copy of the PerformanceEntry list,\\n * in chronological order with respect to startTime.\\n * @nosideeffects\\n */\\nPerformance.prototype.getEntriesByType = function(entryType) {};\\n\\n/**\\n * @param {string} name Only return {@code PerformanceEntry}s with this name.\\n * @param {string=} opt_entryType Only return {@code PerformanceEntry}s with\\n * this entryType.\\n * @return {!Array} PerformanceEntry list in chronological\\n * order with respect to startTime.\\n * @nosideeffects\\n */\\nPerformance.prototype.getEntriesByName = function(name, opt_entryType) {};\\n\\n// Nonstandard. Only available in Blink.\\n// Returns more granular results with the --enable-memory-info flag.\\n/** @type {MemoryInfo} */ Performance.prototype.memory;\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n */\\nPerformance.prototype.now = function() {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n */\\nPerformance.prototype.webkitNow = function() {};\\n\\n/**\\n * @param {string} markName\\n * @return {undefined}\\n */\\nPerformance.prototype.mark = function(markName) {};\\n\\n/**\\n * @param {string=} opt_markName\\n * @return {undefined}\\n */\\nPerformance.prototype.clearMarks = function(opt_markName) {};\\n\\n/**\\n * @param {string} measureName\\n * @param {string=} opt_startMark\\n * @param {string=} opt_endMark\\n * @return {undefined}\\n */\\nPerformance.prototype.measure =\\n function(measureName, opt_startMark, opt_endMark) {};\\n\\n/**\\n * @param {string=} opt_measureName\\n * @return {undefined}\\n */\\nPerformance.prototype.clearMeasures = function(opt_measureName) {};\\n\\n/** @type {Performance} */\\nWindow.prototype.performance;\\n\\n/**\\n * @type {!Performance}\\n * @suppress {duplicate}\\n */\\nvar performance;\\n\",\"externs/w3c_netinfo.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Externs for the Network Information API.\\n * @externs\\n */\\n\\n/**\\n * @see http://wicg.github.io/netinfo/#-dfn-networkinformation-dfn-interface\\n * @constructor\\n */\\nfunction NetworkInformation() {}\\n\\n/** @type {ConnectionType} */\\nNetworkInformation.prototype.type;\\n\\n/** @type {EffectiveConnectionType} */\\nNetworkInformation.prototype.effectiveType;\\n\\n/** @type {Megabit} */\\nNetworkInformation.prototype.downlinkMax;\\n\\n/** @type {Megabit} */\\nNetworkInformation.prototype.downlink;\\n\\n/** @type {Millisecond} */\\nNetworkInformation.prototype.rtt;\\n\\n/** @type {?function(Event)} */\\nNetworkInformation.prototype.onchange;\\n\\n/**\\n * @typedef {number}\\n */\\nvar Megabit;\\n\\n/**\\n * @typedef {number}\\n */\\nvar Millisecond;\\n\\n/**\\n * Enum of:\\n * 'bluetooth',\\n * 'cellular',\\n * 'ethernet',\\n * 'mixed',\\n * 'none',\\n * 'other',\\n * 'unknown',\\n * 'wifi',\\n * 'wimax'\\n * @typedef {string}\\n */\\nvar ConnectionType;\\n\\n/**\\n * Enum of:\\n * '2g',\\n * '3g',\\n * '4g',\\n * 'slow-2g'\\n * @typedef {string}\\n */\\nvar EffectiveConnectionType;\\n\\n/** @type {!NetworkInformation} */\\nNavigator.prototype.connection;\\n\",\"externs/w3c_permissions.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's Permissions API.\\n * @see https://w3c.github.io/permissions/\\n *\\n * @externs\\n */\\n\\n\\n/**\\n * @typedef {{name: PermissionName}}\\n * @see https://w3c.github.io/permissions/#permission-descriptor\\n */\\nvar PermissionDescriptor;\\n\\n\\n/**\\n * @typedef {{name: PermissionName, userVisibleOnly: boolean}}\\n * @see https://w3c.github.io/permissions/#push\\n */\\nvar PushPermissionDescriptor;\\n\\n\\n/**\\n * @typedef {{name: PermissionName, sysex: boolean}}\\n * @see https://w3c.github.io/permissions/#midi\\n */\\nvar MidiPermissionDescriptor;\\n\\n\\n/**\\n * Set of possible values: 'geolocation', 'notifications', 'push', 'midi'.\\n * @typedef {string}\\n * @see https://w3c.github.io/permissions/#idl-def-PermissionName\\n */\\nvar PermissionName;\\n\\n\\n/**\\n * Set of possible values: 'granted', 'denied', 'prompt'.\\n * @typedef {string}\\n * @see https://w3c.github.io/permissions/#idl-def-PermissionState\\n */\\nvar PermissionState;\\n\\n\\n/**\\n * @constructor\\n * @implements {EventTarget}\\n * @see https://w3c.github.io/permissions/#status-of-a-permission\\n */\\nfunction PermissionStatus() {}\\n\\n/** @type {PermissionState} */\\nPermissionStatus.prototype.state;\\n\\n/**\\n * @type {PermissionState}\\n * @deprecated, use PermissionStatus.state for newer clients\\n */\\nPermissionStatus.prototype.status;\\n\\n/** @type {?function(!Event)} */\\nPermissionStatus.prototype.onchange;\\n\\n/** @override */\\nPermissionStatus.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nPermissionStatus.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nPermissionStatus.prototype.dispatchEvent = function(evt) {};\\n\\n\\n/**\\n * @constructor\\n * @see https://w3c.github.io/permissions/#idl-def-permissions\\n */\\nfunction Permissions() {}\\n\\n/**\\n * @param {PermissionDescriptor} permission The permission to look up\\n * @return {!Promise}\\n * @see https://w3c.github.io/permissions/#dom-permissions-query\\n */\\nPermissions.prototype.query = function(permission) {};\\n\\n\\n/** @type {Permissions} */\\nNavigator.prototype.permissions;\\n\",\"externs/w3c_pointer_events.js\":\"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's Pointer Events specification.\\n * Created from\\n * http://www.w3.org/TR/pointerevents/\\n *\\n * @externs\\n */\\n\\n\\n/**\\n * @type {string}\\n * @see http://www.w3.org/TR/pointerevents/#the-touch-action-css-property\\n */\\nCSSProperties.prototype.touchAction;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/pointerevents/#widl-Navigator-pointerEnabled\\n */\\nNavigator.prototype.pointerEnabled;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/pointerevents/#widl-Navigator-maxTouchPoints\\n */\\nNavigator.prototype.maxTouchPoints;\\n\\n\\n/**\\n * @record\\n * @extends {MouseEventInit}\\n * @see https://www.w3.org/TR/pointerevents/#idl-def-PointerEventInit\\n */\\nfunction PointerEventInit() {}\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.pointerId;\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.width;\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.height;\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.pressure;\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.tiltX;\\n\\n/** @type {undefined|number} */\\nPointerEventInit.prototype.tiltY;\\n\\n/** @type {undefined|string} */\\nPointerEventInit.prototype.pointerType;\\n\\n/** @type {undefined|boolean} */\\nPointerEventInit.prototype.isPrimary;\\n\\n/**\\n * @constructor\\n * @extends {MouseEvent}\\n * @param {string} type\\n * @param {PointerEventInit=} opt_eventInitDict\\n * @see http://www.w3.org/TR/pointerevents/#pointerevent-interface\\n */\\nfunction PointerEvent(type, opt_eventInitDict) {}\\n\\n/** @type {number} */\\nPointerEvent.prototype.pointerId;\\n\\n/** @type {number} */\\nPointerEvent.prototype.width;\\n\\n/** @type {number} */\\nPointerEvent.prototype.height;\\n\\n/** @type {number} */\\nPointerEvent.prototype.pressure;\\n\\n/** @type {number} */\\nPointerEvent.prototype.tiltX;\\n\\n/** @type {number} */\\nPointerEvent.prototype.tiltY;\\n\\n/** @type {string} */\\nPointerEvent.prototype.pointerType;\\n\\n/** @type {boolean} */\\nPointerEvent.prototype.isPrimary;\\n\\n// Microsoft pointerType values\\n/** @type {string} */\\nPointerEvent.prototype.MSPOINTER_TYPE_TOUCH;\\n\\n/** @type {string} */\\nPointerEvent.prototype.MSPOINTER_TYPE_PEN;\\n\\n/** @type {string} */\\nPointerEvent.prototype.MSPOINTER_TYPE_MOUSE;\\n\\n/**\\n * @see https://w3c.github.io/pointerevents/extension.html\\n * @return {!Array}\\n */\\nPointerEvent.prototype.getCoalescedEvents = function() {};\\n\\n\",\"externs/w3c_range.js\":\"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's range specification.\\n * This file depends on w3c_dom2.js.\\n * The whole file has been fully type annotated.\\n * Created from\\n * http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html\\n *\\n * @externs\\n * @author acleung@google.com (Alan Leung)\\n * @author stevey@google.com (Steve Yegge)\\n */\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Interface\\n */\\nfunction Range() {}\\n\\n// constants on the constructor\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.START_TO_START = 0;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.START_TO_END = 1;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.END_TO_END = 2;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.END_TO_START = 3;\\n\\n// constants repeated on the prototype\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.prototype.START_TO_START = 0;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.prototype.START_TO_END = 1;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.prototype.END_TO_END = 2;\\n\\n/**\\n * @const {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-compareHow\\n */\\nRange.prototype.END_TO_START = 3;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-startParent\\n */\\nRange.prototype.startContainer;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-startOffset\\n */\\nRange.prototype.startOffset;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-endParent\\n */\\nRange.prototype.endContainer;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-endOffset\\n */\\nRange.prototype.endOffset;\\n\\n/**\\n * @type {boolean}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-collapsed\\n */\\nRange.prototype.collapsed;\\n\\n/**\\n * @type {Node}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-attr-commonParent\\n */\\nRange.prototype.commonAncestorContainer;\\n\\n/**\\n * @param {Node} refNode\\n * @param {number} offset\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-setStart\\n */\\nRange.prototype.setStart = function(refNode, offset) {};\\n\\n/**\\n * @param {Node} refNode\\n * @param {number} offset\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-setEnd\\n */\\nRange.prototype.setEnd = function(refNode, offset) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-setStartBefore\\n */\\nRange.prototyp"; a.a+='e.setStartBefore = function(refNode) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-setStartAfter\\n */\\nRange.prototype.setStartAfter = function(refNode) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-setEndBefore\\n */\\nRange.prototype.setEndBefore = function(refNode) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-setEndAfter\\n */\\nRange.prototype.setEndAfter = function(refNode) {};\\n\\n/**\\n * @param {boolean} toStart\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-collapse\\n */\\nRange.prototype.collapse = function(toStart) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-selectNode\\n */\\nRange.prototype.selectNode = function(refNode) {};\\n\\n/**\\n * @param {Node} refNode\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-selectNodeContents\\n */\\nRange.prototype.selectNodeContents = function(refNode) {};\\n\\n/**\\n * @param {number} how\\n * @param {Range} sourceRange\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-compareBoundaryPoints\\n */\\nRange.prototype.compareBoundaryPoints = function(how, sourceRange) {};\\n\\n/**\\n * @return {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-deleteContents\\n */\\nRange.prototype.deleteContents = function() {};\\n\\n/**\\n * @return {DocumentFragment}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-extractContents\\n */\\nRange.prototype.extractContents = function() {};\\n\\n/**\\n * @return {DocumentFragment}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-cloneContents\\n */\\nRange.prototype.cloneContents = function() {};\\n\\n/**\\n * @param {Node} newNode\\n * @return {DocumentFragment}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-insertNode\\n */\\nRange.prototype.insertNode = function(newNode) {};\\n\\n/**\\n * @param {Node} newParent\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-surroundContents\\n */\\nRange.prototype.surroundContents = function(newParent) {};\\n\\n/**\\n * @return {Range}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-clone\\n */\\nRange.prototype.cloneRange = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-Range-method-detach\\n */\\nRange.prototype.detach = function() {};\\n\\n// Introduced in DOM Level 2:\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-DocumentRange-idl\\n */\\nfunction DocumentRange() {}\\n\\n/**\\n * @return {Range}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level2-DocumentRange-method-createRange\\n */\\nDocumentRange.prototype.createRange = function() {};\\n\\n// Introduced in DOM Level 2:\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException\\n */\\nfunction RangeException() {}\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeExceptionCode\\n */\\nRangeException.prototype.code;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeExceptionCode\\n */\\nRangeException.prototype.BAD_BOUNDARYPOINTS_ERR = 1;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeExceptionCode\\n */\\nRangeException.prototype.INVALID_NODE_TYPE_ERR = 2;\\n","externs/w3c_rtc.js":"/*\\n * Copyright 2012 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for components of the WebRTC browser API.\\n * @see https://www.w3.org/TR/webrtc/\\n * @see https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-19\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API\\n * @see https://www.w3.org/TR/mediacapture-streams/\\n *\\n * @externs\\n * @author bemasc@google.com (Benjamin M. Schwartz)\\n */\\n\\n/**\\n * @typedef {string}\\n * @see {https://www.w3.org/TR/mediacapture-streams/\\n * #idl-def-MediaStreamTrackState}\\n * In WebIDL this is an enum with values \'live\', \'mute\', and \'ended\',\\n * but there is no mechanism in Closure for describing a specialization of\\n * the string type.\\n */\\nvar MediaStreamTrackState;\\n\\n/**\\n * @interface\\n */\\nfunction SourceInfo() {}\\n\\n/** @const {string} */\\nSourceInfo.prototype.kind;\\n\\n/** @const {string} */\\nSourceInfo.prototype.id;\\n\\n/** @const {?string} */\\nSourceInfo.prototype.label;\\n\\n/** @const {boolean} */\\nSourceInfo.prototype.facing;\\n\\n/**\\n * @interface\\n * @see https://w3c.github.io/mediacapture-image/#mediasettingsrange-section\\n */\\nfunction MediaSettingsRange() {}\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nMediaSettingsRange.prototype.max;\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nMediaSettingsRange.prototype.min;\\n\\n/**\\n * @type {number}\\n * @const\\n */\\nMediaSettingsRange.prototype.step;\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackCapabilities\\n * @see https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section\\n */\\nfunction MediaTrackCapabilities() {}\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.width;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.height;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.aspectRatio;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.frameRate;\\n\\n/** @type {!Array} */\\nMediaTrackCapabilities.prototype.facingMode;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.volume;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.sampleRate;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.sampleSize;\\n\\n/** @type {!Array} */\\nMediaTrackCapabilities.prototype.echoCancellation;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.latency;\\n\\n/** @type {number} */\\nMediaTrackCapabilities.prototype.channelCount;\\n\\n/** @type {string} */\\nMediaTrackCapabilities.prototype.deviceId;\\n\\n/** @type {string} */\\nMediaTrackCapabilities.prototype.groupId;\\n\\n/** @type {!Array} */\\nMediaTrackCapabilities.prototype.whiteBalanceMode;\\n\\n/** @type {!Array} */\\nMediaTrackCapabilities.prototype.exposureMode;\\n\\n/** @type {!Array} */\\nMediaTrackCapabilities.prototype.focusMode;\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.exposureCompensation;\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.colorTemperature\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.iso\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.brightness\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.contrast\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.saturation\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.sharpness\\n\\n/** @type {!MediaSettingsRange} */\\nMediaTrackCapabilities.prototype.zoom\\n\\n/** @type {boolean} */\\nMediaTrackCapabilities.prototype.torch\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/mediacapture-streams/#media-track-settings\\n * @see https://w3c.github.io/mediacapture-image/#mediatracksettings-section\\n */\\nfunction MediaTrackSettings() {}\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.width;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.height;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.aspectRatio;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.frameRate;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.facingMode;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.volume;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.sampleRate;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.sampleSize;\\n\\n/** @type {boolean} */\\nMediaTrackSettings.prototype.echoCancellation;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.latency;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.channelCount;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.deviceId;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.groupId;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.whiteBalanceMode;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.exposureMode;\\n\\n/** @type {string} */\\nMediaTrackSettings.prototype.focusMode;\\n\\n/** @type {!Array<{x: number, y: number}>} */\\nMediaTrackSettings.prototype.pointsOfInterest;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.exposureCompensation;\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.colorTemperature\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.iso\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.brightness\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.contrast\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.saturation\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.sharpness\\n\\n/** @type {number} */\\nMediaTrackSettings.prototype.zoom\\n\\n/** @type {boolean} */\\nMediaTrackSettings.prototype.torch\\n\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n * @see https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack\\n */\\nfunction MediaStreamTrack() {}\\n\\n/**\\n * @param {!function(!Array)} callback\\n * @return {undefined}\\n * @deprecated Use MediaDevices.enumerateDevices().\\n */\\nMediaStreamTrack.getSources = function(callback) {};\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nMediaStreamTrack.prototype.kind;\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nMediaStreamTrack.prototype.id;\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nMediaStreamTrack.prototype.label;\\n\\n/**\\n * @type {boolean}\\n */\\nMediaStreamTrack.prototype.enabled;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nMediaStreamTrack.prototype.muted;\\n\\n/**\\n * @type {string}\\n * @see https://crbug.com/653531\\n * @see https://wicg.github.io/mst-content-hint/\\n */\\nMediaStreamTrack.prototype.contentHint;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nMediaStreamTrack.prototype.remote;\\n\\n/**\\n * @type {MediaStreamTrackState}\\n * Read only.\\n */\\nMediaStreamTrack.prototype.readyState;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStreamTrack.prototype.onmute;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStreamTrack.prototype.onunmute;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStreamTrack.prototype.onended;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStreamTrack.prototype.onoverconstrained;\\n\\n/**\\n * Applies the specified set of constraints to the track, if any specified; or\\n * if no constraints are specified, removes all constraints from the track.\\n *\\n * @param {MediaTrackConstraints=} constraints Constraints to apply to the\\n * track.\\n * @return {!Promise} A |Promise| that is resolved when the constraints\\n * have been applied, or rejected if there was an error applying the\\n * constraints.\\n */\\nMediaStreamTrack.prototype.applyConstraints = function(constraints) {};\\n\\n/**\\n * @return {!MediaStreamTrack}\\n */\\nMediaStreamTrack.prototype.clone = function() {};\\n\\n/** @return {void} */\\nMediaStreamTrack.prototype.stop = function() {};\\n\\n/** @return {!MediaTrackCapabilities} */\\nMediaStreamTrack.prototype.getCapabilities = function() {};\\n\\n/** @return {!MediaTrackConstraints} */\\nMediaStreamTrack.prototype.getConstraints = function() {};\\n\\n/** @return {!MediaTrackSettings} */\\nMediaStreamTrack.prototype.getSettings = function() {};\\n\\n/**\\n * @typedef {{track: MediaStreamTrack}}\\n */\\nvar MediaStreamTrackEventInit;\\n\\n\\n/**\\n * @param {string} type\\n * @param {!MediaStreamTrackEventInit} eventInitDict\\n * @constructor\\n * @extends {Event}\\n * @see https://www.w3.org/TR/mediacapture-streams/#mediastreamtrackevent\\n */\\nfunction MediaStreamTrackEvent(type, eventInitDict) {}\\n\\n/**\\n * @type {!MediaStreamTrack}\\n * @const\\n */\\nMediaStreamTrackEvent.prototype.track;\\n\\n/**\\n * @param {!MediaStream|!Array=} streamOrTracks\\n * @constructor\\n * @implements {EventTarget}\\n * @see https://www.w3.org/TR/mediacapture-streams/#mediastream\\n */\\nfunction MediaStream(streamOrTracks) {}\\n\\n/**\\n * @override\\n */\\nMediaStream.prototype.addEventListener = function(type, listener,\\n opt_useCapture) {};\\n\\n/**\\n * @override\\n */\\nMediaStream.prototype.removeEventListener = function(type, listener,\\n opt_useCapture) {};\\n\\n/**\\n * @override\\n * @return {boolean}\\n */\\nMediaStream.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * TODO(bemasc): Remove this property.\\n * @deprecated\\n * @type {string}\\n * @const\\n */\\nMediaStream.prototype.label;\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nMediaStream.prototype.id;\\n\\n/**\\n * @return {!Array}\\n */\\nMediaStream.prototype.getAudioTracks = function() {};\\n\\n/**\\n * @return {!Array}\\n */\\nMediaStream.prototype.getVideoTracks = function() {};\\n\\n/**\\n * @return {!Array}\\n */\\nMediaStream.prototype.getTracks = function() {};\\n\\n/**\\n * @param {string} trackId\\n * @return {MediaStreamTrack}\\n */\\nMediaStream.prototype.getTrackById = function(trackId) {};\\n\\n/**\\n * @param {!MediaStreamTrack} track\\n * @return {undefined}\\n */\\nMediaStream.prototype.addTrack = function(track) {};\\n\\n/**\\n * @param {!MediaStreamTrack} track\\n * @return {undefined}\\n */\\nMediaStream.prototype.removeTrack = function(track) {};\\n\\n/**\\n * @return {!MediaStream}\\n */\\nMediaStream.prototype.clone = function() {};\\n\\n/**\\n * @deprecated\\n * @type {boolean}\\n */\\nMediaStream.prototype.ended;\\n\\n/**\\n * @deprecated\\n * @type {?function(!Event)}\\n */\\nMediaStream.prototype.onended;\\n\\n/**\\n * @type {boolean}\\n */\\nMediaStream.prototype.active;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStream.prototype.onactive;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nMediaStream.prototype.oninactive;\\n\\n/**\\n * @type {?function(!MediaStreamTrackEvent)}\\n */\\nMediaStream.prototype.onaddtrack;\\n\\n/**\\n * @type {?function(!MediaStreamTrackEvent)}\\n */\\nMediaStream.prototype.onremovetrack;\\n\\n/**\\n * @deprecated\\n * TODO(bemasc): Remove this method once browsers have updated to\\n * MediaStreamTrack.stop().\\n * @return {undefined}\\n */\\nMediaStream.prototype.stop = function() {};\\n\\n/**\\n * @type {function(new: MediaStream,\\n * (!MediaStream|!Array)=)}\\n */\\nvar webkitMediaStream;\\n\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/webrtc/#rtcrtpsender-interface\\n */\\nfunction RTCRtpSender() {}\\n\\n/**\\n * @const {!MediaStreamTrack}\\n */\\nRTCRtpSender.prototype.track;\\n\\n/**\\n * @param {!MediaStreamTrack} track\\n */\\nRTCRtpSender.prototype.replaceTrack = function(track) {};\\n\\n\\n/**\\n * @return {!Object}\\n */\\nRTCRtpSender.prototype.getParameters = function() {};\\n\\n\\n/**\\n * @param {!Object} params\\n * @return {!Promise}\\n */\\nRTCRtpSender.prototype.setParameters = function(params) {};\\n\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/webrtc/#dom-rtcrtpcontributingsource\\n */\\nfunction RTCRtpContributingSource() {}\\n\\n/**\\n * @type {?number}\\n */\\nRTCRtpContributingSource.prototype.source;\\n\\n/**\\n * @type {?Date}\\n */\\nRTCRtpContributingSource.prototype.timestamp;\\n\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/webrtc/#rtcrtpreceiver-interface\\n */\\nfunction RTCRtpReceiver() {'; a.a+="}\\n\\n/**\\n * @const {!MediaStreamTrack}\\n */\\nRTCRtpReceiver.prototype.track;\\n\\n/**\\n * @return {!Array}\\n */\\nRTCRtpReceiver.prototype.getContributingSources = function() {};\\n\\n\\n/**\\n * @interface\\n * @see https://www.w3.org/TR/webrtc/#rtcrtptransceiver-interface\\n */\\nfunction RTCRtpTransceiver() {}\\n\\n/**\\n * @const {?RTCRtpSender}\\n */\\nRTCRtpTransceiver.prototype.sender;\\n\\n/**\\n * @const {?RTCRtpReceiver}\\n */\\nRTCRtpTransceiver.prototype.receiver;\\n\\n/**\\n * This interface defines the available constraint attributes. These are the\\n * attributes defined in\\n * {@see http://tools.ietf.org/html/draft-alvestrand-constraints-resolution-01}.\\n * Note that although that draft refers to \\\"Media Constraints\\\", the W3C uses\\n * the terms \\\"Media[Stream|Track]Constraints\\\" for this type, and\\n * defines a different type (for RTCPeerConnection) called \\\"MediaConstraints\\\".\\n *\\n * This interface type is not part of any standard, so it is marked as private.\\n * It is defined here in order to reserve the property names, which would\\n * otherwise be rewritten when the compiler processes an object literal.\\n * Several subsequent interfaces are defined in the same pattern.\\n *\\n * Note that although this list includes all the properties supported by\\n * libjingle (and hence by Chromium), browsers are permitted to offer other\\n * properties as well ({\\n * @see http://tools.ietf.org/html/draft-burnett-rtcweb-constraints-registry-02\\n * }), and browsers are expected to silently ignore unknown properties. This\\n * creates the potential for a very confusing situation in which properties\\n * not listed here are renamed by the compiler and then ignored by the browser.\\n *\\n * @interface\\n * @private\\n */\\nfunction MediaTrackConstraintSetInterface_() {}\\n\\n/**\\n * @type {?string}\\n */\\nMediaTrackConstraintSetInterface_.prototype.chromeMediaSource;\\n\\n/**\\n * @type {?boolean}\\n */\\nMediaTrackConstraintSetInterface_.prototype.echoCancellation;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.minWidth;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.maxWidth;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.minHeight;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.maxHeight;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.minAspectRatio;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.maxAspectRatio;\\n\\n/**\\n * Due to a typo, this is called \\\"minFramerate\\\" in the -01 draft.\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.minFrameRate;\\n\\n/**\\n * @type {?number}\\n */\\nMediaTrackConstraintSetInterface_.prototype.maxFrameRate;\\n\\n/**\\n * @type {?string}\\n */\\nMediaTrackConstraintSetInterface_.prototype.sourceId;\\n\\n/**\\n * This type and two more below are defined as unions with Object because they\\n * are normally used as record types by constructing an Object literal, but all\\n * of their properties are optional.\\n * @typedef {Object|MediaTrackConstraintSetInterface_}\\n */\\nvar MediaTrackConstraintSet;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction MediaTrackConstraintsInterface_() {}\\n\\n/**\\n * @type {?MediaTrackConstraintSet}\\n */\\nMediaTrackConstraintsInterface_.prototype.mandatory;\\n\\n/**\\n * @type {?Array}\\n */\\nMediaTrackConstraintsInterface_.prototype.optional;\\n\\n/**\\n * @typedef {Object|MediaTrackConstraintsInterface_}\\n */\\nvar MediaTrackConstraints;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction MediaStreamConstraintsInterface_() {}\\n\\n/**\\n * @type {boolean|MediaTrackConstraints}\\n */\\nMediaStreamConstraintsInterface_.prototype.audio;\\n\\n/**\\n * @type {boolean|MediaTrackConstraints}\\n */\\nMediaStreamConstraintsInterface_.prototype.video;\\n\\n/**\\n * @typedef {Object|MediaStreamConstraintsInterface_}\\n */\\nvar MediaStreamConstraints;\\n\\n/**\\n * @see {http://dev.w3.org/2011/webrtc/editor/getusermedia.html#\\n * navigatorusermediaerror-and-navigatorusermediaerrorcallback}\\n * @interface\\n */\\nfunction NavigatorUserMediaError() {}\\n\\n/**\\n * @type {number}\\n * @deprecated Removed from the standard and some browsers.\\n * @const\\n */\\nNavigatorUserMediaError.prototype.PERMISSION_DENIED; /** 1 */\\n\\n/**\\n * @type {number}\\n * @deprecated Removed from the standard and some browsers.\\n * Read only.\\n */\\nNavigatorUserMediaError.prototype.code;\\n\\n/**\\n * @type {string}\\n * Read only.\\n */\\nNavigatorUserMediaError.prototype.name;\\n\\n/**\\n * @type {?string}\\n * Read only.\\n */\\nNavigatorUserMediaError.prototype.message;\\n\\n/**\\n * @type {?string}\\n * Read only.\\n */\\nNavigatorUserMediaError.prototype.constraintName;\\n\\n/**\\n * @param {MediaStreamConstraints} constraints A MediaStreamConstraints object.\\n * @param {function(!MediaStream)} successCallback\\n * A NavigatorUserMediaSuccessCallback function.\\n * @param {function(!NavigatorUserMediaError)=} errorCallback A\\n * NavigatorUserMediaErrorCallback function.\\n * @see http://dev.w3.org/2011/webrtc/editor/getusermedia.html\\n * @see https://www.w3.org/TR/mediacapture-streams/\\n * @return {undefined}\\n */\\nNavigator.prototype.webkitGetUserMedia =\\n function(constraints, successCallback, errorCallback) {};\\n\\n/**\\n * @param {string} type\\n * @param {!Object} eventInitDict\\n * @constructor\\n */\\nfunction MediaStreamEvent(type, eventInitDict) {}\\n\\n/**\\n * @type {?MediaStream}\\n * @const\\n */\\nMediaStreamEvent.prototype.stream;\\n\\n/**\\n * @record\\n * @see https://www.w3.org/TR/mediastream-recording/#dictdef-mediarecorderoptions\\n */\\nfunction MediaRecorderOptions() {}\\n\\n/** @type {(string|undefined)} */\\nMediaRecorderOptions.prototype.mimeType\\n\\n/** @type {(number|undefined)} */\\nMediaRecorderOptions.prototype.audioBitsPerSecond\\n\\n/** @type {(number|undefined)} */\\nMediaRecorderOptions.prototype.videoBitsPerSecond\\n\\n/** @type {(number|undefined)} */\\nMediaRecorderOptions.prototype.bitsPerSecond\\n\\n/**\\n * @see https://www.w3.org/TR/mediastream-recording/#mediarecorder-api\\n * @param {!MediaStream} stream\\n * @param {MediaRecorderOptions=} options\\n * @implements {EventTarget}\\n * @constructor\\n */\\nfunction MediaRecorder(stream, options) {}\\n\\n/**\\n * @override\\n */\\nMediaRecorder.prototype.addEventListener = function(type, listener,\\n opt_useCapture) {};\\n\\n/**\\n * @override\\n */\\nMediaRecorder.prototype.removeEventListener = function(type, listener,\\n opt_useCapture) {};\\n\\n/**\\n * @override\\n * @return {boolean}\\n */\\nMediaRecorder.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @type {!MediaStream}\\n */\\nMediaRecorder.prototype.stream;\\n\\n/**\\n * @type {string}\\n */\\nMediaRecorder.prototype.mimeType;\\n\\n/**\\n * @type {string}\\n */\\nMediaRecorder.prototype.state;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.onstart;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.onstop;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.ondataavailable;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.onpause;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.onresume;\\n\\n/**\\n * @type {(function(!Event)|undefined)}\\n */\\nMediaRecorder.prototype.onerror;\\n\\n/**\\n * @type {number}\\n */\\nMediaRecorder.prototype.videoBitsPerSecond;\\n\\n/**\\n * @type {number}\\n */\\nMediaRecorder.prototype.audioBitsPerSecond;\\n\\n/**\\n * @param {number=} timeslice\\n */\\nMediaRecorder.prototype.start = function(timeslice) {};\\n\\n/** @return {void} */\\nMediaRecorder.prototype.stop = function() {};\\n\\n/** @return {void} */\\nMediaRecorder.prototype.pause = function() {};\\n\\n/** @return {void} */\\nMediaRecorder.prototype.resume = function() {};\\n\\n/** @return {void} */\\nMediaRecorder.prototype.requestData = function() {};\\n\\n/**\\n * @param {string} type\\n * @return {boolean}\\n */\\nMediaRecorder.isTypeSupported = function(type) {};\\n\\n/**\\n * @interface\\n * @see https://w3c.github.io/mediacapture-image/##photosettings-section\\n */\\nfunction PhotoSettings() {}\\n\\n/**\\n * @type {string}\\n */\\nPhotoSettings.prototype.fillLightMode;\\n\\n/**\\n * @type {number}\\n */\\nPhotoSettings.prototype.imageHeight;\\n\\n/**\\n * @type {number}\\n */\\nPhotoSettings.prototype.imageWidth;\\n\\n/**\\n * @type {boolean}\\n */\\nPhotoSettings.prototype.redEyeReduction;\\n\\n/**\\n * @interface\\n * @see https://w3c.github.io/mediacapture-image/##photocapabilities-section\\n */\\nfunction PhotoCapabilities() {}\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nPhotoCapabilities.prototype.redEyeReduction;\\n\\n/**\\n * @type {!MediaSettingsRange}\\n * @const\\n */\\nPhotoCapabilities.prototype.imageHeight;\\n\\n/**\\n * @type {!MediaSettingsRange}\\n * @const\\n */\\nPhotoCapabilities.prototype.imageWidth;\\n\\n/**\\n * @type {!Array}\\n * @const\\n */\\nPhotoCapabilities.prototype.fillLightMode;\\n\\n/**\\n * @see https://w3c.github.io/mediacapture-image/\\n * @param {!MediaStreamTrack} videoTrack\\n * @constructor\\n */\\nfunction ImageCapture(videoTrack) {}\\n\\n/**\\n * @param {!PhotoSettings=} photoSettings\\n * @return {!Promise}\\n */\\nImageCapture.prototype.takePhoto = function(photoSettings) {};\\n\\n/**\\n * @return {!Promise}\\n */\\nImageCapture.prototype.getPhotoCapabilities = function() {};\\n\\n/**\\n * @return {!Promise}\\n */\\nImageCapture.prototype.grabFrame = function() {};\\n\\n/**\\n * @type {!MediaStreamTrack}\\n * @const\\n */\\nImageCapture.prototype.track;\\n\\n/**\\n * @see https://www.w3.org/TR/webrtc/#rtctrackevent\\n * @param {string} type\\n * @param {!Object} eventInitDict\\n * @constructor\\n */\\nfunction RTCTrackEvent(type, eventInitDict) {}\\n\\n/**\\n * @type {?RTCRtpReceiver}\\n * @const\\n */\\nRTCTrackEvent.prototype.receiver;\\n\\n/**\\n * @type {?MediaStreamTrack}\\n * @const\\n */\\nRTCTrackEvent.prototype.track;\\n\\n/**\\n * @type {?Array}\\n * @const\\n */\\nRTCTrackEvent.prototype.streams;\\n\\n/**\\n * @type {?RTCRtpTransceiver}\\n * @const\\n */\\nRTCTrackEvent.prototype.transceiver;\\n\\n/**\\n * @typedef {string}\\n * @see https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaDeviceKind\\n * In WebIDL this is an enum with values 'audioinput', 'audiooutput', and\\n * 'videoinput', but there is no mechanism in Closure for describing a\\n * specialization of the string type.\\n */\\nvar MediaDeviceKind;\\n\\n/**\\n * @interface\\n */\\nfunction MediaDeviceInfo() {}\\n\\n/** @const {string} */\\nMediaDeviceInfo.prototype.deviceId;\\n\\n/** @const {!MediaDeviceKind} */\\nMediaDeviceInfo.prototype.kind;\\n\\n/** @const {string} */\\nMediaDeviceInfo.prototype.label;\\n\\n/** @const {string} */\\nMediaDeviceInfo.prototype.groupId;\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n * @see https://www.w3.org/TR/mediacapture-streams/#mediadevices\\n */\\nfunction MediaDevices() {}\\n\\n/**\\n * @return {!Promise>}\\n */\\nMediaDevices.prototype.enumerateDevices = function() {};\\n\\n/**\\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\\n * @param {!MediaStreamConstraints} constraints\\n * @return {!Promise}\\n */\\nMediaDevices.prototype.getUserMedia = function(constraints) {}\\n\\n/** @const {!MediaDevices} */\\nNavigator.prototype.mediaDevices;\\n\\n/**\\n * @typedef {string}\\n * @see https://www.w3.org/TR/webrtc/#rtcsdptype\\n * In WebIDL this is an enum with values 'offer', 'pranswer', and 'answer',\\n * but there is no mechanism in Closure for describing a specialization of\\n * the string type.\\n */\\nvar RTCSdpType;\\n\\n/**\\n * @param {!Object=} descriptionInitDict The RTCSessionDescriptionInit\\n * dictionary. This optional argument may have type\\n * {type:RTCSdpType, sdp:string}, but neither of these keys are required to be\\n * present, and other keys are ignored, so the closest Closure type is Object.\\n * @constructor\\n * @see https://www.w3.org/TR/webrtc/#rtcsessiondescription-class\\n */\\nfunction RTCSessionDescription(descriptionInitDict) {}\\n\\n/**\\n * @type {?RTCSdpType}\\n * @see https://www.w3.org/TR/webrtc/#dom-rtcsessiondescription-type\\n */\\nRTCSessionDescription.prototype.type;\\n\\n/**\\n * @type {?string}\\n * @see https://www.w3.org/TR/webrtc/#dom-rtcsessiondescription-sdp\\n */\\nRTCSessionDescription.prototype.sdp;\\n\\n/**\\n * TODO(bemasc): Remove this definition once it is removed from the browser.\\n * @param {string} label The label index (audio/video/data -> 0,1,2)\\n * @param {string} sdp The ICE candidate in SDP text form\\n * @constructor\\n */\\nfunction IceCandidate(label, sdp) {}\\n\\n/**\\n * @return {string}\\n */\\nIceCandidate.prototype.toSdp = function() {};\\n\\n/**\\n * @type {?string}\\n */\\nIceCandidate.prototype.label;\\n\\n/**\\n * @param {!Object=} candidateInitDict The RTCIceCandidateInit dictionary.\\n * This optional argument may have type\\n * {candidate: string, sdpMid: string, sdpMLineIndex:number}, but none of\\n * these keys are required to be present, and other keys are ignored, so the\\n * closest Closure type is Object.\\n * @constructor\\n * @see https://www.w3.org/TR/webrtc/#rtcicecandidate-interface\\n */\\nfunction RTCIceCandidate(candidateInitDict) {}\\n\\n/**\\n * @type {?string}\\n */\\nRTCIceCandidate.prototype.candidate;\\n\\n/**\\n * @type {?string}\\n */\\nRTCIceCandidate.prototype.sdpMid;\\n\\n/**\\n * @type {?number}\\n */\\nRTCIceCandidate.prototype.sdpMLineIndex;\\n\\n/**\\n * @typedef {{urls: string}|{urls: !Array}}\\n * @private\\n * @see https://www.w3.org/TR/webrtc/#rtciceserver-dictionary\\n * This dictionary type also has an optional key {credential: ?string}.\\n */\\nvar RTCIceServerRecord_;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction RTCIceServerInterface_() {}\\n\\n/**\\n * @type {string|!Array}\\n */\\nRTCIceServerInterface_.prototype.urls;\\n\\n/**\\n * @type {?string}\\n */\\nRTCIceServerInterface_.prototype.username;\\n\\n/**\\n * @type {?string}\\n */\\nRTCIceServerInterface_.prototype.credential;\\n\\n/**\\n * This type, and several below it, are constructed as unions between records\\n *\\n * @typedef {RTCIceServerRecord_|RTCIceServerInterface_}\\n * @private\\n */\\nvar RTCIceServer;\\n\\n/**\\n * @typedef {{iceServers: !Array}}\\n * @private\\n */\\nvar RTCConfigurationRecord_;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction RTCConfigurationInterface_() {}\\n\\n/**\\n * @type {!Array}\\n */\\nRTCConfigurationInterface_.prototype.iceServers;\\n\\n/**\\n * @typedef {RTCConfigurationRecord_|RTCConfigurationInterface_}\\n */\\nvar RTCConfiguration;\\n\\n/**\\n * @typedef {function(!RTCSessionDescription)}\\n */\\nvar RTCSessionDescriptionCallback;\\n\\n/**\\n * @typedef {function(string)}\\n */\\nvar RTCPeerConnectionErrorCallback;\\n\\n/**\\n * @typedef {function()}\\n */\\nvar RTCVoidCallback;\\n\\n/**\\n * @typedef {string}\\n */\\nvar RTCSignalingState;\\n\\n/**\\n * @typedef {string}\\n */\\nvar RTCIceConnectionState;\\n\\n/**\\n * @typedef {string}\\n */\\nvar RTCIceGatheringState;\\n\\n/**\\n * @param {string} type\\n * @param {!Object} eventInitDict\\n * @constructor\\n */\\nfunction RTCPeerConnectionIceEvent(type, eventInitDict) {}\\n\\n/**\\n * @type {RTCIceCandidate}\\n * @const\\n */\\nRTCPeerConnectionIceEvent.prototype.candidate;\\n\\n// Note: The specification of RTCStats types is still under development.\\n// Declarations here will be updated and removed to follow the development of\\n// modern browsers, breaking compatibility with older versions as they become\\n// obsolete.\\n/**\\n * @interface\\n */\\nfunction RTCStatsReport() {}\\n\\n/**\\n * @type {Date}\\n * @const\\n */\\nRTCStatsReport.prototype.timestamp;\\n\\n/**\\n * @return {!Array}\\n */\\nRTCStatsReport.prototype.names = function() {};\\n\\n/**\\n * @param {string} name\\n * @return {string}\\n */\\nRTCStatsReport.prototype.stat = function(name) {};\\n\\n/**\\n * @deprecated\\n * @type {RTCStatsReport}\\n * @const\\n */\\nRTCStatsReport.prototype.local;\\n\\n/**\\n * @deprecated\\n * @type {RTCStatsReport}\\n * @const\\n */\\nRTCStatsReport.prototype.remote;\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nRTCStatsReport.prototype.type;\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nRTCStatsReport.prototype.id;\\n\\n// Note: Below are Map like methods supported by WebRTC statistics\\n// specification-compliant RTCStatsReport. Currently only implemented by\\n// Mozilla.\\n// See https://www.w3.org/TR/webrtc/#rtcstatsreport-object for definition.\\n/**\\n * @param {function(this:SCOPE, Object)} callback\\n * @param {"; a.a+='SCOPE=} opt_thisObj The value of \\"this\\" inside callback function.\\n * @template SCOPE\\n * @readonly\\n */\\nRTCStatsReport.prototype.forEach = function(callback, opt_thisObj) {};\\n\\n/**\\n * @param {string} key\\n * @return {Object}\\n * @readonly\\n */\\nRTCStatsReport.prototype.get = function(key) {};\\n\\n/**\\n * @return {!Iterator}\\n * @readonly\\n */\\nRTCStatsReport.prototype.keys = function() {};\\n\\n/**\\n * TODO(bemasc): Remove this type once it is no longer in use. It has already\\n * been removed from the specification.\\n * @typedef {RTCStatsReport}\\n * @deprecated\\n */\\nvar RTCStatsElement;\\n\\n/**\\n * @interface\\n */\\nfunction RTCStatsResponse() {}\\n\\n/**\\n * @return {!Array}\\n */\\nRTCStatsResponse.prototype.result = function() {};\\n\\n/**\\n * @typedef {function(!RTCStatsResponse, MediaStreamTrack=)}\\n */\\nvar RTCStatsCallback;\\n\\n/**\\n * This type is not yet standardized, so the properties here only represent\\n * the current capabilities of libjingle (and hence Chromium).\\n * TODO(bemasc): Add a link to the relevant standard once MediaConstraint has a\\n * standard definition.\\n *\\n * @interface\\n * @private\\n */\\nfunction MediaConstraintSetInterface_() {}\\n\\n/**\\n * @type {?boolean}\\n */\\nMediaConstraintSetInterface_.prototype.OfferToReceiveAudio;\\n\\n/**\\n * @type {?boolean}\\n */\\nMediaConstraintSetInterface_.prototype.OfferToReceiveVideo;\\n\\n/**\\n * @type {?boolean}\\n */\\nMediaConstraintSetInterface_.prototype.DtlsSrtpKeyAgreement;\\n\\n/**\\n * @type {?boolean}\\n */\\nMediaConstraintSetInterface_.prototype.RtpDataChannels;\\n\\n/**\\n * TODO(bemasc): Make this type public once it is defined in a standard.\\n *\\n * @typedef {Object|MediaConstraintSetInterface_}\\n * @private\\n */\\nvar MediaConstraintSet_;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction MediaConstraintsInterface_() {}\\n\\n/**\\n * @type {?MediaConstraintSet_}\\n */\\nMediaConstraintsInterface_.prototype.mandatory;\\n\\n/**\\n * @type {?Array}\\n */\\nMediaConstraintsInterface_.prototype.optional;\\n\\n/**\\n * This type is used extensively in\\n * {@see http://dev.w3.org/2011/webrtc/editor/webrtc.html} but is not yet\\n * defined.\\n *\\n * @typedef {Object|MediaConstraintsInterface_}\\n */\\nvar MediaConstraints;\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n */\\nfunction RTCDataChannel() {}\\n\\n/**\\n * @type {string}\\n * @const\\n */\\nRTCDataChannel.prototype.label;\\n\\n/**\\n * @type {boolean}\\n * @const\\n */\\nRTCDataChannel.prototype.reliable;\\n\\n/**\\n * An enumerated string type (RTCDataChannelState) with values:\\n * \\"connecting\\", \\"open\\", \\"closing\\", and \\"closed\\".\\n * @type {string}\\n * Read only.\\n */\\nRTCDataChannel.prototype.readyState;\\n\\n/**\\n * @type {number}\\n * Read only.\\n */\\nRTCDataChannel.prototype.bufferedAmount;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCDataChannel.prototype.onopen;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCDataChannel.prototype.onerror;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCDataChannel.prototype.onclose;\\n\\nRTCDataChannel.prototype.close = function() {};\\n\\n/**\\n * @type {?function(!MessageEvent<*>)}\\n */\\nRTCDataChannel.prototype.onmessage;\\n\\n/**\\n * @type {string}\\n */\\nRTCDataChannel.prototype.binaryType;\\n\\n/**\\n * @param {string|!Blob|!ArrayBuffer|!ArrayBufferView} data\\n * @return {undefined}\\n */\\nRTCDataChannel.prototype.send = function(data) {};\\n\\n/**\\n * @constructor\\n * @extends {Event}\\n * @private\\n */\\nfunction RTCDataChannelEvent() {}\\n\\n/**\\n * @type {!RTCDataChannel}\\n * Read only.\\n */\\nRTCDataChannelEvent.prototype.channel;\\n\\n/**\\n * @typedef {{reliable: boolean}}\\n */\\nvar RTCDataChannelInitRecord_;\\n\\n/**\\n * @interface\\n * @private\\n */\\nfunction RTCDataChannelInitInterface_() {}\\n\\n/**\\n * @type {boolean}\\n */\\nRTCDataChannelInitInterface_.prototype.reliable;\\n\\n/**\\n * @typedef {RTCDataChannelInitInterface_|RTCDataChannelInitRecord_}\\n */\\nvar RTCDataChannelInit;\\n\\n/**\\n * @typedef {{expires: number}}\\n */\\nvar RTCCertificate;\\n\\n/**\\n * @param {RTCConfiguration} configuration\\n * @param {!MediaConstraints=} constraints\\n * @constructor\\n * @implements {EventTarget}\\n */\\nfunction RTCPeerConnection(configuration, constraints) {}\\n\\n/**\\n * @param {Object} keygenAlgorithm\\n * @return {Promise}\\n */\\nRTCPeerConnection.generateCertificate = function (keygenAlgorithm) {};\\n\\n/**\\n * @override\\n */\\nRTCPeerConnection.prototype.addEventListener = function(\\n type, listener, opt_useCapture) {};\\n\\n/**\\n * @override\\n */\\nRTCPeerConnection.prototype.removeEventListener = function(\\n type, listener, opt_useCapture) {};\\n\\n/**\\n * @override\\n * @return {boolean}\\n */\\nRTCPeerConnection.prototype.dispatchEvent = function(evt) {};\\n\\n\\n// NB: Until closure annotations support overloading, many of the following\\n// functions take odd unions of parameter types. This is to support the various\\n// api differences between browsers. Generally, returning a promise means you\\n// don\'t take callback function parameters and draw any further parameters\\n// forward, and vice versa.\\n\\n/**\\n * @param {(!RTCSessionDescriptionCallback|!MediaConstraints)=}\\n * successCallbackOrConstraints\\n * @param {!RTCPeerConnectionErrorCallback=} failureCallback\\n * @param {!MediaConstraints=} constraints\\n * @return {!Promise|undefined}\\n */\\nRTCPeerConnection.prototype.createOffer = function(successCallbackOrConstraints,\\n failureCallback, constraints) {};\\n\\n/**\\n * @param {(!RTCSessionDescriptionCallback|!MediaConstraints)=}\\n * successCallbackOrConstraints\\n * @param {!RTCPeerConnectionErrorCallback=} failureCallback\\n * @param {!MediaConstraints=} constraints\\n * @return {!Promise|undefined}\\n */\\nRTCPeerConnection.prototype.createAnswer =\\n function(successCallbackOrConstraints, failureCallback, constraints) {};\\n\\n/**\\n * @param {!RTCSessionDescription} description\\n * @param {!RTCVoidCallback=} successCallback\\n * @param {!RTCPeerConnectionErrorCallback=} failureCallback\\n * @return {!Promise|undefined}\\n */\\nRTCPeerConnection.prototype.setLocalDescription = function(description,\\n successCallback, failureCallback) {};\\n\\n/**\\n * @param {!RTCSessionDescription} description\\n * @param {!RTCVoidCallback=} successCallback\\n * @param {!RTCPeerConnectionErrorCallback=} failureCallback\\n * @return {!Promise|undefined}\\n */\\nRTCPeerConnection.prototype.setRemoteDescription = function(description,\\n successCallback, failureCallback) {};\\n\\n/**\\n * @type {?RTCSessionDescription}\\n * Read only.\\n */\\nRTCPeerConnection.prototype.localDescription;\\n\\n/**\\n * @type {?RTCSessionDescription}\\n * Read only.\\n */\\nRTCPeerConnection.prototype.remoteDescription;\\n\\n/**\\n * @type {RTCSignalingState}\\n * Read only.\\n */\\nRTCPeerConnection.prototype.signalingState;\\n\\n/**\\n * @param {?RTCConfiguration=} configuration\\n * @param {?MediaConstraints=} constraints\\n * @return {undefined}\\n */\\nRTCPeerConnection.prototype.updateIce = function(configuration, constraints) {};\\n\\n/**\\n * Void in Chrome for now, a promise that you can then/catch in Firefox.\\n * @param {!RTCIceCandidate} candidate\\n * @param {!RTCVoidCallback=} successCallback\\n * @param {!function(DOMException)=} failureCallback\\n * @return {!Promise|undefined}\\n */\\nRTCPeerConnection.prototype.addIceCandidate = function(candidate, successCallback, failureCallback) {};\\n\\n/**\\n * @type {!RTCIceGatheringState}\\n * Read only.\\n */\\nRTCPeerConnection.prototype.iceGatheringState;\\n\\n/**\\n * @type {!RTCIceConnectionState}\\n * Read only.\\n */\\nRTCPeerConnection.prototype.iceConnectionState;\\n\\n/**\\n * @return {!Array}\\n */\\nRTCPeerConnection.prototype.getLocalStreams = function() {};\\n\\n/**\\n * @return {!Array}\\n */\\nRTCPeerConnection.prototype.getRemoteStreams = function() {};\\n\\n/**\\n * @param {string} streamId\\n * @return {MediaStream}\\n */\\nRTCPeerConnection.prototype.getStreamById = function(streamId) {};\\n\\n/**\\n * @return {!Array}\\n */\\nRTCPeerConnection.prototype.getSenders = function() {};\\n\\n/**\\n * @return {!Array}\\n */\\nRTCPeerConnection.prototype.getReceivers = function() {};\\n\\n/**\\n * @param {?string} label\\n * @param {RTCDataChannelInit=} dataChannelDict\\n * @return {!RTCDataChannel}\\n */\\nRTCPeerConnection.prototype.createDataChannel =\\n function(label, dataChannelDict) {};\\n/**\\n * @param {!MediaStream} stream\\n * @param {!MediaConstraints=} constraints\\n * @return {undefined}\\n */\\nRTCPeerConnection.prototype.addStream = function(stream, constraints) {};\\n\\n/**\\n * @param {!MediaStream} stream\\n * @return {undefined}\\n */\\nRTCPeerConnection.prototype.removeStream = function(stream) {};\\n\\n/**\\n * @param {!MediaStreamTrack} track\\n * @param {!MediaStream} stream\\n * @param {...MediaStream} var_args Additional streams.\\n * @return {!RTCRtpSender}\\n */\\nRTCPeerConnection.prototype.addTrack = function(track, stream, var_args) {};\\n\\n\\n/**\\n * @param {!RTCRtpSender} sender\\n * @return {undefined}\\n */\\nRTCPeerConnection.prototype.removeTrack = function(sender) {};\\n\\n// TODO(bemasc): Add identity provider stuff once implementations exist\\n\\n/**\\n * Firefox\' getstats is synchronous and returns a much simpler\\n * {!RTCStatsReport} Map-like object.\\n * @param {!RTCStatsCallback=} successCallback\\n * @param {MediaStreamTrack=} selector\\n * @return {undefined|!RTCStatsReport}\\n */\\nRTCPeerConnection.prototype.getStats = function(successCallback, selector) {};\\n\\nRTCPeerConnection.prototype.close = function() {};\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCPeerConnection.prototype.onnegotiationneeded;\\n\\n/**\\n * @type {?function(!RTCPeerConnectionIceEvent)}\\n */\\nRTCPeerConnection.prototype.onicecandidate;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCPeerConnection.prototype.onsignalingstatechange;\\n\\n/**\\n * @type {?function(!MediaStreamEvent)}\\n */\\nRTCPeerConnection.prototype.onaddstream;\\n\\n/**\\n * @type {?function(!RTCTrackEvent)}\\n */\\nRTCPeerConnection.prototype.ontrack;\\n\\n/**\\n * @type {?function(!MediaStreamEvent)}\\n */\\nRTCPeerConnection.prototype.onremovestream;\\n\\n/**\\n * @type {?function(!Event)}\\n */\\nRTCPeerConnection.prototype.oniceconnectionstatechange;\\n\\n/**\\n * @type {?function(!RTCDataChannelEvent)}\\n */\\nRTCPeerConnection.prototype.ondatachannel;\\n\\n/**\\n * @const\\n */\\nvar webkitRTCPeerConnection = RTCPeerConnection;\\n","externs/w3c_screen_orientation.js":"/*\\n * Copyright 2016 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Screen Orientation API.\\n * @see https://w3c.github.io/screen-orientation/\\n *\\n * @externs\\n */\\n\\n/**\\n * @interface\\n * @extends {EventTarget}\\n * @see https://w3c.github.io/screen-orientation/#screenorientation-interface\\n */\\nvar ScreenOrientation = function() {};\\n\\n/**\\n * @param {string} orientation\\n * @return {!Promise}\\n */\\nScreenOrientation.prototype.lock = function(orientation) {};\\n\\n/** @return {void} */\\nScreenOrientation.prototype.unlock = function() {};\\n\\n/** @const {string} */\\nScreenOrientation.prototype.type;\\n\\n/** @const {number} */\\nScreenOrientation.prototype.angle;\\n\\n/** @type {?function(!Event)} */\\nScreenOrientation.prototype.onchange;\\n\\n/**\\n * @type {?ScreenOrientation}\\n * @see https://w3c.github.io/screen-orientation/#extensions-to-the-screen-interface\\n */\\nScreen.prototype.orientation;\\n","externs/w3c_selectors.js":"/*\\n * Copyright 2008 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Selectors API.\\n * This file depends on w3c_dom1.js.\\n * @see http://www.w3.org/TR/selectors-api2/\\n *\\n * @externs\\n * @author mihaip@google.com (Mihai Parparita)\\n */\\n\\n/**\\n * @param {string} selectors\\n * @return {?Element}\\n * @override\\n * @nosideeffects\\n */\\nDocument.prototype.querySelector = function(selectors) {};\\n\\n/**\\n * @param {string} selectors\\n * @return {!NodeList}\\n * @override\\n * @nosideeffects\\n */\\nDocument.prototype.querySelectorAll = function(selectors) {};\\n\\n/**\\n * @param {string} selectors\\n * @return {?Element}\\n * @override\\n * @nosideeffects\\n */\\nElement.prototype.querySelector = function(selectors) {};\\n\\n/**\\n * @param {string} selectors\\n * @return {!NodeList}\\n * @override\\n * @nosideeffects\\n */\\nElement.prototype.querySelectorAll = function(selectors) {};\\n\\n/**\\n * https://dom.spec.whatwg.org/#dom-element-closest\\n * https://developer.mozilla.org/en-US/docs/Web/API/Element.closest\\n * @param {string} selectors\\n * @return {?Element}\\n * @nosideeffects\\n */\\nElement.prototype.closest = function(selectors) {};\\n\\n/**\\n * https://dom.spec.whatwg.org/#dom-element-matches\\n * https://developer.mozilla.org/en-US/docs/Web/API/Element.matches\\n * @param {string} selectors\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.matches = function(selectors) {};\\n\\n/**\\n * @param {string} selectors\\n * @param {(Node|NodeList)=} refNodes\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.matchesSelector = function(selectors, refNodes) {};\\n\\n/**\\n * @see https://developer.mozilla.org/en/DOM/Node.mozMatchesSelector\\n * @param {string} selectors\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.mozMatchesSelector = function(selectors) {};\\n\\n/**\\n * @see http://developer.apple.com/library/safari/documentation/WebKit/Reference/ElementClassRef/Element/Element.html\\n * @param {string} selectors\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.webkitMatchesSelector = function(selectors) {};\\n\\n/**\\n * @see http://msdn.microsoft.com/en-us/library/ff975201.aspx\\n * @param {string} selectors\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.msMatchesSelector = function(selectors) {};\\n\\n/**\\n * @see http://www.opera.com/docs/changelogs/windows/1150/\\n * @param {string} selectors\\n * @return {boolean}\\n * @nosideeffects\\n */\\nElement.prototype.oMatchesSelector = function(selectors) {};\\n","externs/w3c_serviceworker.js":"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Externs for service worker.\\n *\\n * @see http://www.w3.org/TR/service-workers/\\n * @externs\\n */\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-interface\\n * @constructor\\n * @extends {Worker}\\n */\\nfunction ServiceWorker() {}\\n\\n/** @type {string} */\\nServiceWorker.prototype.scriptURL;\\n\\n/** @type {ServiceWorkerState} */\\nServiceWorker.prototype.state;\\n\\n/** @type {?function(!Event)} */\\nServiceWorker.prototype.onstatechange;\\n\\n/**\\n * Set of possible string values: \'installing\', \'installed\', \'activating\',\\n * \'activated\', \'redunda'; a.a+="nt'.\\n * @typedef {string}\\n */\\nvar ServiceWorkerState;\\n\\n/**\\n * @see https://w3c.github.io/ServiceWorker/#navigationpreloadmanager\\n * @constructor\\n */\\nfunction NavigationPreloadManager() {}\\n\\n/** @return {!Promise} */\\nNavigationPreloadManager.prototype.enable = function() {};\\n\\n/** @return {!Promise} */\\nNavigationPreloadManager.prototype.disable = function() {};\\n\\n/**\\n * @param {string=} value\\n * @return {!Promise}\\n */\\nNavigationPreloadManager.prototype.setHeaderValue = function(value) {};\\n\\n/** @return {!Promise} */\\nNavigationPreloadManager.prototype.getState = function() {};\\n\\n/**\\n * @typedef {{\\n * enabled: (boolean|undefined),\\n * headerValue: (string|undefined)\\n * }}\\n */\\nvar NavigationPreloadState;\\n\\n/**\\n * @see https://w3c.github.io/push-api/\\n * @constructor\\n */\\nfunction PushSubscription() {}\\n\\n/** @type {string} */\\nPushSubscription.prototype.endpoint;\\n\\n/**\\n * Please note there is an intent to deprecate this field in Chrome 43 or 44.\\n * See https://www.chromestatus.com/feature/5283829761703936.\\n * @type {string}\\n */\\nPushSubscription.prototype.subscriptionId;\\n\\n/** @return {!Promise} */\\nPushSubscription.prototype.unsubscribe = function() {};\\n\\n/** @enum {string} */\\n// This is commented out since it has not been implemented yet in Chrome beta.\\n// Uncomment once it is available.\\n// var PushPermissionStatus = {\\n// GRANTED: 'granted',\\n// DENIED: 'denied',\\n// DEFAULT: 'default'\\n//};\\n\\n/**\\n * @see https://w3c.github.io/push-api/#idl-def-PushManager\\n * @constructor\\n */\\nfunction PushManager() {}\\n\\n/**\\n * @param {PushSubscriptionOptions=} opt_options\\n * @return {!Promise}\\n */\\nPushManager.prototype.subscribe = function(opt_options) {};\\n\\n/** @return {!Promise} */\\nPushManager.prototype.getSubscription = function() {};\\n\\n/** @return {!Promise} */\\n// This is commented out since it has not been implemented yet in Chrome beta.\\n// Uncomment once it is available.\\n// PushManager.prototype.hasPermission = function() {};\\n\\n/**\\n * @see https://wicg.github.io/BackgroundSync/spec/#sync-manager-interface\\n * @constructor\\n */\\nfunction SyncManager() {}\\n\\n/**\\n * @param {string} tag\\n * @return {!Promise}\\n */\\nSyncManager.prototype.register = function(tag) {}\\n\\n/**\\n * @return {!Promise>}\\n */\\nSyncManager.prototype.getTags = function() {}\\n\\n/**\\n * @see https://wicg.github.io/BackgroundSync/spec/#sync-event\\n * @constructor\\n * @extends{ExtendableEvent}\\n */\\nfunction SyncEvent() {}\\n\\n/** @type {string} */\\nSyncEvent.prototype.tag;\\n\\n/** @type {boolean} */\\nSyncEvent.prototype.lastChance;\\n\\n/**\\n * @typedef {{userVisibleOnly: (boolean|undefined)}}\\n * @see https://w3c.github.io/push-api/#idl-def-PushSubscriptionOptions\\n */\\nvar PushSubscriptionOptions;\\n\\n/**\\n * @see http://www.w3.org/TR/push-api/#idl-def-PushMessageData\\n * @constructor\\n */\\nfunction PushMessageData() {}\\n\\n/** @return {!ArrayBuffer} */\\nPushMessageData.prototype.arrayBuffer = function() {};\\n\\n/** @return {!Blob} */\\nPushMessageData.prototype.blob = function() {};\\n\\n/** @return {*} */\\nPushMessageData.prototype.json = function() {};\\n\\n/** @return {string} */\\nPushMessageData.prototype.text = function() {};\\n\\n\\n/**\\n * @see http://www.w3.org/TR/push-api/#idl-def-PushEvent\\n * @constructor\\n * @param {string} type\\n * @param {!ExtendableEventInit=} opt_eventInitDict\\n * @extends {ExtendableEvent}\\n */\\nfunction PushEvent(type, opt_eventInitDict) {}\\n\\n/** @type {?PushMessageData} */\\nPushEvent.prototype.data;\\n\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-registration-interface\\n * @interface\\n * @extends {EventTarget}\\n */\\nfunction ServiceWorkerRegistration() {}\\n\\n/** @type {ServiceWorker} */\\nServiceWorkerRegistration.prototype.installing;\\n\\n/** @type {ServiceWorker} */\\nServiceWorkerRegistration.prototype.waiting;\\n\\n/** @type {ServiceWorker} */\\nServiceWorkerRegistration.prototype.active;\\n\\n/** @type {NavigationPreloadManager} */\\nServiceWorkerRegistration.prototype.navigationPreload;\\n\\n/** @type {string} */\\nServiceWorkerRegistration.prototype.scope;\\n\\n/** @return {!Promise} */\\nServiceWorkerRegistration.prototype.unregister = function() {};\\n\\n/** @type {?function(!Event)} */\\nServiceWorkerRegistration.prototype.onupdatefound;\\n\\n/** @return {!Promise} */\\nServiceWorkerRegistration.prototype.update = function() {};\\n\\n/**\\n * @see https://w3c.github.io/push-api/\\n * @type {!PushManager}\\n */\\nServiceWorkerRegistration.prototype.pushManager;\\n\\n/**\\n * @see https://notifications.spec.whatwg.org/#service-worker-api\\n * @param {string} title\\n * @param {NotificationOptions=} opt_options\\n * @return {!Promise}\\n */\\nServiceWorkerRegistration.prototype.showNotification =\\n function(title, opt_options) {};\\n\\n/**\\n * @see https://notifications.spec.whatwg.org/#service-worker-api\\n * @param {!GetNotificationOptions=} opt_filter\\n * @return {!Promise>}\\n */\\nServiceWorkerRegistration.prototype.getNotifications = function(opt_filter) {};\\n\\n/**\\n * @see https://wicg.github.io/BackgroundSync/spec/#service-worker-registration-extensions\\n * @type {!SyncManager}\\n */\\nServiceWorkerRegistration.prototype.sync;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-container-interface\\n * @interface\\n * @extends {EventTarget}\\n */\\nfunction ServiceWorkerContainer() {}\\n\\n/** @type {?ServiceWorker} */\\nServiceWorkerContainer.prototype.controller;\\n\\n/** @type {!Promise} */\\nServiceWorkerContainer.prototype.ready;\\n\\n/**\\n * @param {string} scriptURL\\n * @param {RegistrationOptions=} opt_options\\n * @return {!Promise}\\n */\\nServiceWorkerContainer.prototype.register = function(scriptURL, opt_options) {};\\n\\n/**\\n * @param {string=} opt_documentURL\\n * @return {!Promise}\\n */\\nServiceWorkerContainer.prototype.getRegistration = function(opt_documentURL) {};\\n\\n/**\\n * @return {!Promise>}\\n */\\nServiceWorkerContainer.prototype.getRegistrations = function() {};\\n\\n/** @type {?function(!Event)} */\\nServiceWorkerContainer.prototype.oncontrollerchange;\\n\\n/** @type {?function(!ErrorEvent)} */\\nServiceWorkerContainer.prototype.onerror;\\n\\n/**\\n * @typedef {{scope: (string|undefined), useCache: (boolean|undefined)}}\\n */\\nvar RegistrationOptions;\\n\\n/** @type {!ServiceWorkerContainer} */\\nNavigator.prototype.serviceWorker;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-global-scope-interface\\n * @interface\\n * @extends {WorkerGlobalScope}\\n */\\nfunction ServiceWorkerGlobalScope() {}\\n\\n/** @type {!Cache} */\\nServiceWorkerGlobalScope.prototype.scriptCache;\\n\\n/** @type {!CacheStorage} */\\nServiceWorkerGlobalScope.prototype.caches;\\n\\n/** @type {!ServiceWorkerClients} */\\nServiceWorkerGlobalScope.prototype.clients;\\n\\n/** @type {string} */\\nServiceWorkerGlobalScope.prototype.scope;\\n\\n/** @type {!ServiceWorkerRegistration} */\\nServiceWorkerGlobalScope.prototype.registration;\\n\\n/** @return {!Promise} */\\nServiceWorkerGlobalScope.prototype.skipWaiting = function() {};\\n\\n/** @type {!Console} */\\nServiceWorkerGlobalScope.prototype.console;\\n\\n/** @type {?function(!InstallEvent)} */\\nServiceWorkerGlobalScope.prototype.oninstall;\\n\\n/** @type {?function(!ExtendableEvent)} */\\nServiceWorkerGlobalScope.prototype.onactivate;\\n\\n/** @type {?function(!FetchEvent)} */\\nServiceWorkerGlobalScope.prototype.onfetch;\\n\\n/**\\n * TODO(mtragut): This handler should get a custom event in the future.\\n * @type {?function(!Event)}\\n */\\nServiceWorkerGlobalScope.prototype.onbeforeevicted;\\n\\n/**\\n * TODO(mtragut): This handler should get a custom event in the future.\\n * @type {?function(!Event)}\\n */\\nServiceWorkerGlobalScope.prototype.onevicted;\\n\\n/** @type {?function(!MessageEvent)} */\\nServiceWorkerGlobalScope.prototype.onmessage;\\n\\n/** @type {!IDBFactory|undefined} */\\nServiceWorkerGlobalScope.prototype.indexedDB;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-client-interface\\n * @constructor\\n */\\nfunction ServiceWorkerClient() {}\\n\\n/** @type {!Promise} */\\nServiceWorkerClient.prototype.ready;\\n\\n/** @type {boolean} */\\nServiceWorkerClient.prototype.hidden;\\n\\n/** @type {boolean} */\\nServiceWorkerClient.prototype.focused;\\n\\n/** @type {VisibilityState} */\\nServiceWorkerClient.prototype.visibilityState;\\n\\n/** @type {string} */\\nServiceWorkerClient.prototype.url;\\n\\n/** @type {string} */\\nServiceWorkerClient.prototype.id;\\n\\n/**\\n * // TODO(mtragut): Possibly replace the type with enum ContextFrameType once\\n * the enum is defined.\\n * @type {string}\\n */\\nServiceWorkerClient.prototype.frameType;\\n\\n/**\\n * @param {*} message\\n * @param {(!Array|undefined)=} opt_transfer\\n * @return {undefined}\\n */\\nServiceWorkerClient.prototype.postMessage = function(message, opt_transfer) {};\\n\\n/** @return {!Promise} */\\nServiceWorkerClient.prototype.focus = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#service-worker-clients-interface\\n * @interface\\n */\\nfunction ServiceWorkerClients() {}\\n\\n/**\\n * Deprecated in Chrome M43+, use matchAll instead. Reference:\\n * https://github.com/slightlyoff/ServiceWorker/issues/610.\\n * TODO(joeltine): Remove when getAll is fully deprecated.\\n * @param {ServiceWorkerClientQueryOptions=} opt_options\\n * @return {!Promise>}\\n */\\nServiceWorkerClients.prototype.getAll = function(opt_options) {};\\n\\n/**\\n * @param {ServiceWorkerClientQueryOptions=} opt_options\\n * @return {!Promise>}\\n */\\nServiceWorkerClients.prototype.matchAll = function(opt_options) {};\\n\\n/**\\n * @return {!Promise}\\n */\\nServiceWorkerClients.prototype.claim = function() {};\\n\\n/**\\n * @param {string} url\\n * @return {!Promise}\\n */\\nServiceWorkerClients.prototype.openWindow = function(url) {};\\n\\n/** @typedef {{includeUncontrolled: (boolean|undefined)}} */\\nvar ServiceWorkerClientQueryOptions;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#cache-interface\\n * @interface\\n */\\nfunction Cache() {}\\n\\n/**\\n * @param {!RequestInfo} request\\n * @param {CacheQueryOptions=} opt_options\\n * @return {!Promise}\\n */\\nCache.prototype.match = function(request, opt_options) {};\\n\\n/**\\n * @param {RequestInfo=} opt_request\\n * @param {CacheQueryOptions=} opt_options\\n * @return {!Promise>}\\n */\\nCache.prototype.matchAll = function(opt_request, opt_options) {};\\n\\n/**\\n * @param {!RequestInfo} request\\n * @return {!Promise}\\n */\\nCache.prototype.add = function(request) {};\\n\\n/**\\n * @param {!Array} requests\\n * @return {!Promise}\\n */\\nCache.prototype.addAll = function(requests) {};\\n\\n/**\\n * @param {!RequestInfo} request\\n * @param {!Response} response\\n * @return {!Promise}\\n */\\nCache.prototype.put = function(request, response) {};\\n\\n/**\\n * @param {!RequestInfo} request\\n * @param {CacheQueryOptions=} opt_options\\n * @return {!Promise}\\n */\\nCache.prototype.delete = function(request, opt_options) {};\\n\\n/**\\n * @param {RequestInfo=} opt_request\\n * @param {CacheQueryOptions=} opt_options\\n * @return {!Promise>}\\n */\\nCache.prototype.keys = function(opt_request, opt_options) {};\\n\\n/**\\n * @typedef {{\\n * ignoreSearch: (boolean|undefined),\\n * ignoreMethod: (boolean|undefined),\\n * ignoreVary: (boolean|undefined),\\n * prefixMatch: (boolean|undefined),\\n * cacheName: (string|undefined)\\n * }}\\n */\\nvar CacheQueryOptions;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#cache-storage-interface\\n * @interface\\n */\\nfunction CacheStorage() {}\\n\\n/**\\n * Window instances have a property called caches which implements CacheStorage\\n * @see https://www.w3.org/TR/service-workers/#cache-objects\\n * @type {!CacheStorage}\\n */\\nWindow.prototype.caches;\\n\\n/**\\n * @param {!RequestInfo} request\\n * @param {CacheQueryOptions=} opt_options\\n * @return {!Promise}\\n */\\nCacheStorage.prototype.match = function(request, opt_options) {};\\n\\n/**\\n * @param {string} cacheName\\n * @return {!Promise}\\n */\\nCacheStorage.prototype.has = function(cacheName) {};\\n\\n/**\\n * @param {string} cacheName\\n * @return {!Promise}\\n */\\nCacheStorage.prototype.open = function(cacheName) {};\\n\\n/**\\n * @param {string} cacheName\\n * @return {!Promise}\\n */\\nCacheStorage.prototype.delete = function(cacheName) {};\\n\\n/** @return {!Promise>} */\\nCacheStorage.prototype.keys = function() {};\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#extendable-event-interface\\n * @constructor\\n * @param {string} type\\n * @param {ExtendableEventInit=} opt_eventInitDict\\n * @extends {Event}\\n */\\nfunction ExtendableEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * @param {IThenable} f\\n * @return {undefined}\\n */\\nExtendableEvent.prototype.waitUntil = function(f) {};\\n\\n/**\\n * @typedef {{\\n * bubbles: (boolean|undefined),\\n * cancelable: (boolean|undefined)\\n * }}\\n */\\nvar ExtendableEventInit;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#install-event-interface\\n * @constructor\\n * @param {string} type\\n * @param {InstallEventInit=} opt_eventInitDict\\n * @extends {ExtendableEvent}\\n */\\nfunction InstallEvent(type, opt_eventInitDict) {}\\n\\n/** @type {ServiceWorker} */\\nExtendableEvent.prototype.activeWorker;\\n\\n/**\\n * @typedef {{\\n * bubbles: (boolean|undefined),\\n * cancelable: (boolean|undefined),\\n * activeWorker: (!ServiceWorker|undefined)\\n * }}\\n */\\nvar InstallEventInit;\\n\\n/**\\n * @see http://www.w3.org/TR/service-workers/#fetch-event-interface\\n * @constructor\\n * @param {string} type\\n * @param {FetchEventInit=} opt_eventInitDict\\n * @extends {ExtendableEvent}\\n */\\nfunction FetchEvent(type, opt_eventInitDict) {}\\n\\n/** @type {!Request} */\\nFetchEvent.prototype.request;\\n\\n/**\\n * @type {!Promise}\\n */\\nFetchEvent.prototype.preloadResponse;\\n\\n/**\\n * @type {!ServiceWorkerClient}\\n * @deprecated\\n */\\nFetchEvent.prototype.client;\\n\\n/** @type {?string} */\\nFetchEvent.prototype.clientId;\\n\\n/** @type {!boolean} */\\nFetchEvent.prototype.isReload;\\n\\n/**\\n * @param {(Response|IThenable)} r\\n * @return {undefined}\\n */\\nFetchEvent.prototype.respondWith = function(r) {};\\n\\n/**\\n * @param {string} url\\n * @return {!Promise}\\n */\\nFetchEvent.prototype.forwardTo = function(url) {};\\n\\n/**\\n * @return {!Promise}\\n */\\nFetchEvent.prototype.default = function() {};\\n\\n/**\\n * @typedef {{\\n * bubbles: (boolean|undefined),\\n * cancelable: (boolean|undefined),\\n * request: (!Request|undefined),\\n * preloadResponse: (!Promise),\\n * client: (!ServiceWorkerClient|undefined),\\n * isReload: (!boolean|undefined)\\n * }}\\n */\\nvar FetchEventInit;\\n\",\"externs/w3c_touch_event.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for W3C's Touch Events specification.\\n * @see http://www.w3.org/TR/touch-events/\\n * @externs\\n */\\n\\n/**\\n * @typedef {{\\n * identifier: number,\\n * target: !EventTarget,\\n * clientX: (number|undefined),\\n * clientY: (number|undefined),\\n * screenX: (number|undefined),\\n * screenY: (number|undefined),\\n * pageX: (number|undefined),\\n * pageY: (number|undefined),\\n * radiusX: (number|undefined),\\n * radiusY: (number|undefined),\\n * rotationAngle: (number|undefined),\\n * force: (number|undefined)\\n * }}\\n */\\nvar TouchInitDict;\\n\\n/**\\n * The Touch class represents a single touch on the surface. A touch is the\\n * presence"; a.a+=' or movement of a finger that is part of a unique multi-touch\\n * sequence.\\n * @see http://www.w3.org/TR/touch-events/#touch-interface\\n * @param {!TouchInitDict} touchInitDict\\n * @constructor\\n */\\nfunction Touch(touchInitDict) {}\\n\\n/**\\n * The x-coordinate of the touch\'s location relative to the window\'s viewport.\\n * @type {number}\\n */\\nTouch.prototype.clientX;\\n\\n/**\\n * The y-coordinate of the touch\'s location relative to the window\'s viewport.\\n * @type {number}\\n */\\nTouch.prototype.clientY;\\n\\n/**\\n * The unique identifier for this touch object.\\n * @type {number}\\n */\\nTouch.prototype.identifier;\\n\\n/**\\n * The x-coordinate of the touch\'s location in page coordinates.\\n * @type {number}\\n */\\nTouch.prototype.pageX;\\n\\n/**\\n * The y-coordinate of the touch\'s location in page coordinates.\\n * @type {number}\\n */\\nTouch.prototype.pageY;\\n\\n/**\\n * The x-coordinate of the touch\'s location in screen coordinates.\\n * @type {number}\\n */\\nTouch.prototype.screenX;\\n\\n/**\\n * The y-coordinate of the touch\'s location in screen coordinates.\\n * @type {number}\\n */\\nTouch.prototype.screenY;\\n\\n/**\\n * The target of this touch.\\n * @type {EventTarget}\\n */\\nTouch.prototype.target;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/touch-events-extensions/#widl-Touch-force\\n */\\nTouch.prototype.force;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/touch-events-extensions/#widl-Touch-radiusX\\n */\\nTouch.prototype.radiusX;\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/touch-events-extensions/#widl-Touch-radiusY\\n */\\nTouch.prototype.radiusY;\\n\\n\\n/**\\n * @type {number}\\n * @see http://www.w3.org/TR/2011/WD-touch-events-20110505/#widl-Touch-rotationAngle\\n */\\nTouch.prototype.rotationAngle;\\n\\n\\n/**\\n * Creates a new Touch object.\\n * @see http://www.w3.org/TR/touch-events/#widl-Document-createTouch-Touch-WindowProxy-view-EventTarget-target-long-identifier-long-pageX-long-pageY-long-screenX-long-screenY\\n * @param {Window} view\\n * @param {EventTarget} target\\n * @param {number} identifier\\n * @param {number} pageX\\n * @param {number} pageY\\n * @param {number} screenX\\n * @param {number} screenY\\n * @return {Touch}\\n */\\nDocument.prototype.createTouch = function(view, target, identifier, pageX,\\n pageY, screenX, screenY) {};\\n\\n\\n/**\\n * The TouchList class is used to represent a collection of Touch objects.\\n * @see http://www.w3.org/TR/touch-events/#touchlist-interface\\n * @constructor\\n * @implements {IArrayLike}\\n */\\nfunction TouchList() {}\\n\\n/**\\n * The number of Touch objects in this TouchList object.\\n * @type {number}\\n */\\nTouchList.prototype.length;\\n\\n/**\\n * Returns the Touch object at the given index.\\n * @param {number} index\\n * @return {?Touch}\\n */\\nTouchList.prototype.item = function(index) {};\\n\\n/**\\n * @param {number} identifier\\n * @return {?Touch}\\n * @see http://www.w3.org/TR/touch-events-extensions/#widl-TouchList-identifiedTouch-Touch-long-identifier\\n */\\nTouchList.prototype.identifiedTouch = function(identifier) {};\\n\\n/**\\n * Creates a new TouchList object.\\n * @see http://www.w3.org/TR/touch-events/#widl-Document-createTouchList-TouchList-Touch-touches\\n * @param {Array} touches\\n * @return {TouchList}\\n */\\nDocument.prototype.createTouchList = function(touches) {};\\n\\n/**\\n * @record\\n * @extends {UIEventInit}\\n */\\nfunction TouchEventInit() {}\\n\\n/** @type {undefined|?EventTarget} */\\nTouchEventInit.prototype.relatedTarget;\\n\\n/** @type {undefined|!Array} */\\nTouchEventInit.prototype.touches;\\n\\n/** @type {undefined|!Array} */\\nTouchEventInit.prototype.targetTouches;\\n\\n/** @type {undefined|!Array} */\\nTouchEventInit.prototype.changedTouches;\\n\\n/**\\n * The TouchEvent class encapsulates information about a touch event.\\n *\\n *

The system continually sends TouchEvent objects to an application as\\n * fingers touch and move across a surface. A touch event provides a snapshot of\\n * all touches during a multi-touch sequence, most importantly the touches that\\n * are new or have changed for a particular target. A multi-touch sequence\\n * begins when a finger first touches the surface. Other fingers may\\n * subsequently touch the surface, and all fingers may move across the surface.\\n * The sequence ends when the last of these fingers is lifted from the surface.\\n * An application receives touch event objects during each phase of any touch.\\n *

\\n *\\n *

The different types of TouchEvent objects that can occur are:\\n *

    \\n *
  • touchstart - Sent when a finger for a given event touches the surface.\\n *
  • touchmove - Sent when a given event moves on the surface.\\n *
  • touchend - Sent when a given event lifts from the surface.\\n *
  • touchcancel - Sent when the system cancels tracking for the touch.\\n *
\\n * TouchEvent objects are combined together to form high-level GestureEvent\\n * objects that are also sent during a multi-touch sequence.

\\n *\\n * @see http://www.w3.org/TR/touch-events/#touchevent-interface\\n * @param {string} type\\n * @param {!TouchEventInit=} opt_eventInitDict\\n * @extends {UIEvent}\\n * @constructor\\n */\\nfunction TouchEvent(type, opt_eventInitDict) {}\\n\\n/**\\n * A collection of Touch objects representing all touches associated with this\\n * target.\\n * @type {TouchList}\\n */\\nTouchEvent.prototype.touches;\\n\\n/**\\n * A collection of Touch objects representing all touches associated with this\\n * target.\\n * @type {TouchList}\\n */\\nTouchEvent.prototype.targetTouches;\\n\\n/**\\n * A collection of Touch objects representing all touches that changed in this event.\\n * @type {TouchList}\\n */\\nTouchEvent.prototype.changedTouches;\\n\\n/**\\n * @type {boolean}\\n */\\nTouchEvent.prototype.altKey;\\n\\n/**\\n * @type {boolean}\\n */\\nTouchEvent.prototype.metaKey;\\n\\n/**\\n * @type {boolean}\\n */\\nTouchEvent.prototype.ctrlKey;\\n\\n/**\\n * @type {boolean}\\n */\\nTouchEvent.prototype.shiftKey;\\n\\n\\n/**\\n * Specifies the JavaScript method to invoke when the system cancels tracking\\n * for the touch.\\n * @type {?function(!TouchEvent)}\\n */\\nElement.prototype.ontouchcancel;\\n\\n/**\\n * Specifies the JavaScript method to invoke when a given event lifts from the\\n * surface.\\n * @type {?function(!TouchEvent)}\\n */\\nElement.prototype.ontouchend;\\n\\n/**\\n * Specifies the JavaScript method to invoke when a finger for a given event\\n * moves on the surface.\\n * @type {?function(!TouchEvent)}\\n */\\nElement.prototype.ontouchmove;\\n\\n/**\\n * Specifies the JavaScript method to invoke when a finger for a given event\\n * touches the surface.\\n * @type {?function(!TouchEvent)}\\n */\\nElement.prototype.ontouchstart;\\n","externs/w3c_vibration.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for Vibration API based on \\"W3C Recommendation 18 October 2016\\"\\n * @see https://www.w3.org/TR/2016/REC-vibration-20161018/\\n *\\n * @externs\\n * @author vobruba.martin@gmail.com (Martin Vobruba)\\n */\\n\\n\\n/**\\n * @typedef {number|!Array}\\n * @see https://www.w3.org/TR/2016/REC-vibration-20161018/#idl-def-vibratepattern\\n */\\nvar VibratePattern;\\n\\n\\n/**\\n * @param {!VibratePattern} pattern\\n * @return {boolean}\\n * @see https://www.w3.org/TR/2016/REC-vibration-20161018/#idl-def-navigator-vibrate(vibratepattern)\\n */\\nNavigator.prototype.vibrate = function(pattern) {};\\n","externs/w3c_webcrypto.js":"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview Definitions for W3C\'s Web Cryptography specification\\n * http://www.w3.org/TR/webCryptoAPI\\n * @externs\\n * @author chrismoon@google.com (Chris Moon)\\n * This file was created using the best practices as described in:\\n * chrome_extensions.js\\n */\\n\\n\\n/**\\n * @const\\n * @see http://www.w3.org/TR/webCryptoAPI\\n */\\nvar webCrypto = {};\\n\\n\\n/**\\n * @typedef {?{\\n * name: string\\n * }}\\n * @see http://www.w3.org/TR/WebCryptoAPI/#algorithm-dictionary\\n */\\nwebCrypto.Algorithm;\\n\\n\\n/**\\n * @typedef {string|!webCrypto.Algorithm}\\n * @see http://www.w3.org/TR/WebCryptoAPI/#dfn-AlgorithmIdentifier\\n */\\nwebCrypto.AlgorithmIdentifier;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/webCryptoAPI/#dfn-CryptoKey\\n */\\nwebCrypto.CryptoKey = function() {};\\n\\n\\n/**\\n * @type {string} An enumerated value representing the type of the key, a secret\\n * key (for symmetric algorithm), a public or a private key\\n * (for an asymmetric algorithm).\\n */\\nwebCrypto.CryptoKey.prototype.type;\\n\\n\\n/**\\n * @type {boolean} Determines whether or not the raw keying material may be\\n * exported by the application.\\n */\\nwebCrypto.CryptoKey.prototype.extractable;\\n\\n\\n/**\\n * @type {!Object} An opaque object representing a particular cipher the key\\n * has to be used with.\\n */\\nwebCrypto.CryptoKey.prototype.algorithm;\\n\\n\\n/**\\n * @type {!Object} Returns the cached ECMAScript object associated with the\\n * usages internal slot, which indicates which cryptographic operations are\\n * permissible to be used with this key.\\n */\\nwebCrypto.CryptoKey.prototype.usages;\\n\\n\\n/**\\n * @typedef {?{\\n * name: string\\n * }}\\n * @see http://www.w3.org/TR/WebCryptoAPI/#key-algorithm-dictionary-members\\n */\\nwebCrypto.KeyAlgorithm;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/WebCryptoAPI/#dfn-JsonWebKey\\n * @see Section 3.1:\\n * https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41\\n */\\nwebCrypto.JsonWebKey = function() {};\\n\\n\\n/**\\n * @type {string} Identifies the cryptographic algorithm family used with\\n * the key, such as \\"RSA\\" or \\"EC\\".\\n */\\nwebCrypto.JsonWebKey.prototype.kty;\\n\\n\\n/**\\n * @type {string} Identifies the intended use of the public key.\\n */\\nwebCrypto.JsonWebKey.prototype.use;\\n\\n\\n/**\\n * @type {!Array} Identifies the operation(s) that the key is\\n * intended to be used for.\\n */\\nwebCrypto.JsonWebKey.prototype.key_ops;\\n\\n\\n/**\\n * @type {string} Identifies the algorithm intended for use with the key.\\n */\\nwebCrypto.JsonWebKey.prototype.alg;\\n\\n\\n/**\\n * @type {boolean} Boolean to be used with kty values.\\n */\\nwebCrypto.JsonWebKey.prototype.ext;\\n\\n\\n/**\\n * @type {string} Identifies the cryptographic curve used with the key.\\n */\\nwebCrypto.JsonWebKey.prototype.crv;\\n\\n\\n/**\\n * @type {string} Contains the x coordinate for the elliptic curve point.\\n */\\nwebCrypto.JsonWebKey.prototype.x;\\n\\n\\n/**\\n * @type {string} Contains the y coordinate for the elliptic curve point.\\n */\\nwebCrypto.JsonWebKey.prototype.y;\\n\\n\\n/**\\n * @type {string} Contains the Elliptic Curve private key value.\\n */\\nwebCrypto.JsonWebKey.prototype.d;\\n\\n\\n/**\\n * @type {string} Contains the modulus value for the RSA public key.\\n */\\nwebCrypto.JsonWebKey.prototype.n;\\n\\n\\n/**\\n * @type {string} Contains the exponent value for the RSA public key.\\n */\\nwebCrypto.JsonWebKey.prototype.e;\\n\\n\\n/**\\n * @type {string} Contains the first prime factor.\\n */\\nwebCrypto.JsonWebKey.prototype.p;\\n\\n\\n/**\\n * @type {string} Contains the second prime factor.\\n */\\nwebCrypto.JsonWebKey.prototype.q;\\n\\n\\n/**\\n * @type {string} Contains the Chinese Remainder Theorem (CRT) exponent of\\n * the first factor.\\n */\\nwebCrypto.JsonWebKey.prototype.dp;\\n\\n\\n/**\\n * @type {string} Contains the Chinese Remainder Theorem (CRT) exponent of\\n * the second factor.\\n */\\nwebCrypto.JsonWebKey.prototype.dq;\\n\\n\\n/**\\n * @type {string} Contains the Chinese Remainder Theorem (CRT) coefficient\\n * of the second factor.\\n */\\nwebCrypto.JsonWebKey.prototype.qi;\\n\\n\\n/**\\n * @type {!Array} Contains an array of\\n * information about any third and subsequent primes, should they exist.\\n */\\nwebCrypto.JsonWebKey.prototype.oth;\\n\\n\\n/**\\n * @type {string} Contains the value of the symmetric (or other\\n * single-valued) key.\\n */\\nwebCrypto.JsonWebKey.prototype.k;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/WebCryptoAPI/#dfn-RsaOtherPrimesInfo\\n * @see Section-6.3.2.7:\\n * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40\\n */\\nwebCrypto.RsaOtherPrimesInfo = function() {};\\n\\n\\n/**\\n * @type {string} Parameter within an \\"oth\\" array member represents the value\\n * of a subsequent prime factor.\\n */\\nwebCrypto.RsaOtherPrimesInfo.prototype.r;\\n\\n\\n/**\\n * @type {string} Parameter within an \\"oth\\" array member represents the CRT\\n * exponent of the corresponding prime factor.\\n */\\nwebCrypto.RsaOtherPrimesInfo.prototype.d;\\n\\n\\n/**\\n * @type {string} Parameter within an \\"oth\\" array member represents the CRT\\n * coefficient of the corresponding prime factor.\\n */\\nwebCrypto.RsaOtherPrimesInfo.prototype.t;\\n\\n\\n/**\\n * @constructor\\n * @see http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface\\n */\\nwebCrypto.SubtleCrypto = function() {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: AES-CBC, AES-CTR, AES-GCM, and RSA-OAEP.\\n * @param {!webCrypto.CryptoKey} key Key to be used for signing.\\n * @param {!BufferSource} data Data to be encrypted (cleartext).\\n * @return {!Promise<*>} Ciphertext generated by the encryption of the\\n * cleartext.\\n */\\nwebCrypto.SubtleCrypto.prototype.encrypt = function(algorithm, key,\\n data) {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: AES-CBC, AES-CTR, AES-GCM, and RSA-OAEP.\\n * @param {!webCrypto.CryptoKey} key Key to be used for signing.\\n * @param {!BufferSource} data Data to be decrypted (ciphertext).\\n * @return {!Promise<*>} Cleartext generated by the decryption of the\\n * ciphertext.\\n */\\nwebCrypto.SubtleCrypto.prototype.decrypt = function(algorithm, key,\\n data) {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: HMAC, RSASSA-PKCS1-v1_5, and ECDSA.\\n * @param {!webCrypto.CryptoKey} key Private key to be used for signing.\\n * @param {!BufferSource} data Data to be signed.\\n * @return {!Promise<*>} Returns the signature on success.\\n */\\nwebCrypto.SubtleCrypto.prototype.sign = function(algorithm, key,\\n data) {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: HMAC, RSASSA-PKCS1-v1_5, and ECDSA.\\n * @param {!webCrypto.CryptoKey} key Private key to be used for signing.\\n * @param {!BufferSource} signature Signature to verify.\\n * @param {!BufferSource} data Data whose signature needs to be verified.\\n * @return {!Promise<*>} Returns a boolean indicating if the signature operating\\n * has been successful.\\n */\\nwebCrypto.SubtleCrypto.prototype.verify = function(algorithm, key,\\n signature, data) {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: SHA-1, SHA-256, SHA-384, and SHA-512.\\n * @param {!BufferSource} data Data to be hashed using the hashing algorithm.\\n * @return {!Promise<*>} returns the hash on success.\\n */\\nwebCrypto.SubtleCrypto.prototype.digest = function(algorithm, data) {};\\n\\n\\n/**\\n * @param {!webCrypto.AlgorithmIdentifier} algorithm Supported\\n * values are: SHA-1, SHA-256, SHA-384, and SHA-512.\\n * @param {boolean} extractable If the key can be extracted from the CryptoKey\\n * object at a later stage.\\n * @param {!Array|undefined)}}\\n * @see http://notifications.spec.whatwg.org/#notificationoptions\\n */\\nvar NotificationOptions;\\n\\n/**\\n * @typedef {{action: string, title: string, icon: (string|undefined)}}\\n * @see https://notifications.spec.whatwg.org/#dictdef-notificationoptions\\n */\\nvar NotificationAction;\\n\\n/**\\n * @typedef {{tag: (string|undefined)}}\\n * @see https://notifications.spec.whatwg.org/#dictdef-getnotificationoptions\\n */\\nvar GetNotificationOptions;\\n\\n/** @interface */\\nvar NotificationOptionsInterface_ = function() {}\\n/** @type {string} */ NotificationOptionsInterface_.prototype.dir;\\n/** @type {string} */ NotificationOptionsInterface_.prototype.lang;\\n/** @type {string} */ NotificationOptionsInterface_.prototype.body;\\n/** @type {string} */ NotificationOptionsInterface_.prototype.tag;\\n/** @type {string} */ NotificationOptionsInterface_.prototype.icon;\\n/** @type {boolean} */\\n NotificationOptionsInterface_.prototype.requireInteraction;\\n\\n/**\\n * @param {string} title\\n * @param {NotificationOptions=} opt_options\\n * @constructor\\n * @implements {EventTarget}\\n * @see http://notifications.spec.whatwg.org/#notification\\n */\\nfunction Notification(title, opt_options) {}\\n\\n/**\\n * @type {string}\\n */\\nNotification.permission;\\n\\n/**\\n * @param {NotificationPermissionCallback=} opt_callback\\n * @return {!Promise}\\n */\\nNotification.requestPermission = function(opt_callback) {};\\n\\n/** @override */\\nNotification.prototype.addEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nNotification.prototype.removeEventListener = function(\\n type, listener, opt_options) {};\\n\\n/** @override */\\nNotification.prototype.dispatchEvent = function(evt) {};\\n\\n/**\\n * @type {string}\\n */\\nNotification.prototype.title;\\n\\n/**\\n * @type {string}\\n */\\nNotification.prototype.body;\\n\\n/**\\n * @type {string}\\n */\\nNotification.prototype.icon;\\n\\n/**\\n * The string used by clients to identify the notification.\\n * @type {string}\\n */\\nNotification.prototype.tag;\\n\\n/**\\n * The ID used by clients to uniquely identify notifications to eliminate\\n * duplicate notifications.\\n * @type {string}\\n * @deprecated Use NotificationOptions.tag instead.\\n */\\nNotification.prototype.replaceId;\\n\\n/**\\n * The string used by clients to specify the directionality (rtl/ltr) of the\\n * notification.\\n * @type {string}\\n * @deprecated Use NotificationOptions.titleDir and bodyDir instead.\\n */\\nNotification.prototype.dir;\\n\\n/**\\n * Displays the notification.\\n * @return {undefined}\\n */\\nNotification.prototype.show = function() {};\\n\\n/**\\n * Prevents the notification from being displayed, or closes it if it is already\\n * displayed.\\n * @return {undefined}\\n */\\nNotification.prototype.cancel = function() {};\\n\\n/**\\n * Prevents the notification from being displayed, or closes it if it is already\\n * displayed.\\n * @return {undefined}\\n */\\nNotification.prototype.close = function() {};\\n\\n/**\\n * An event handler called when notification is closed.\\n * @type {?function(Event)}\\n */\\nNotification.prototype.onclose;\\n\\n/**\\n * An event handler called if the notification could not be displayed due to\\n * an error (i.e. resource could not be loaded).\\n * @type {?function(Event)}\\n */\\nNotification.prototype.onerror;\\n\\n/**\\n * An event handler called when the notification has become visible.\\n * @type {?function(Event)}\\n * @deprecated Use onshow instead.\\n */\\nNotification.prototype.ondisplay;\\n\\n/**\\n * An event handler called when the notification has become visible.\\n * @type {?function(Event)}\\n */\\nNotification.prototype.onshow;\\n\\n/**\\n * An event handler called when the notification has been clicked on.\\n * @type {?function(Event)}\\n */\\nNotification.prototype.onclick;\\n\\n\\n\\n/**\\n * @typedef {function(string)}\\n * @see http://notifications.spec.whatwg.org/#notificationpermissioncallback\\n */\\nvar NotificationPermissionCallback;\\n\\n/**\\n * @constructor\\n * @see http://dev.w3.org/2006/webapi/WebNotifications/publish/#dialog-if\\n * @deprecated Use Notification instead.\\n */\\nfunction NotificationCenter() {}\\n\\n/**\\n * Creates a text+icon notification and displays it to the user.\\n * @param {string} iconUrl\\n * @param {string} title\\n * @param {string} body\\n * @return {Notification}\\n */\\nNotificationCenter.prototype.createNotification =\\n function(iconUrl, title, body) {};\\n\\n/**\\n * Creates an HTML notification and displays it to the user.\\n * @param {string} url\\n * @return {Notification}\\n */\\nNotificationCenter.prototype.createHTMLNotification = function(url) {};\\n\\n/**\\n * Checks if the user has permission to display notifications.\\n * @return {number}\\n */\\nNotificationCenter.prototype.checkPermission = function() {};\\n\\n/**\\n * Requests permission from the user to display notifications.\\n * @param {Function=} opt_callback\\n * @return {void}\\n */\\nNotificationCenter.prototype.requestPermission = function(opt_callback) {};\\n\\n/**\\n * WebKit browsers expose the NotificationCenter API through\\n * window.webkitNotifications.\\n * @type {NotificationCenter}\\n */\\nWindow.prototype.webkitNotifications;\\n\\n\\n/**\\n * @see https://notifications.spec.whatwg.org/#notificationevent\\n * @constructor\\n * @param {string} type\\n * @param {!ExtendableEventInit=} opt_eventInitDict\\n * @extends {ExtendableEvent}\\n */\\nfunction NotificationEvent(type, opt_eventInitDict) {}\\n\\n/** @type {?Notification} */\\nNotificationEvent.prototype.notification;\\n","externs/webkit_usercontent.js":"/*\\n * Copyright 2016 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions for WKWebView\'s User Content interface.\\n * https://developer.apple.com/library/prerelease/ios/documentation/WebKit/Reference/WKUserContentController_Ref/\\n * https://trac.webkit.org/browser/trunk/Source/WebCore/page/WebKitNamespace.h\\n *\\n * @externs\\n */\\n\\n/** @constructor */\\nfunction WebKitNamespace() {}\\n\\n\\n/**\\n * @type {!UserMessageHandlersNamespace}\\n */\\nWebKitNamespace.prototype.messageHandlers;\\n\\n\\n/**\\n * @constructor\\n * @implements {IObject}\\n */\\nfunction UserMessageHandlersNamespace() {}\\n\\n\\n/** @constructor */\\nfunction UserMessageHandler() {}\\n\\n\\n/**\\n * @param {*} message\\n * @return {undefined}\\n */\\nUserMessageHandler.prototype.postMessage = function(message) {};\\n\\n\\n/**\\n * @type {!WebKitNamespace}\\n * @const\\n */\\nvar webkit;\\n","externs/webgl.js":"/*\\n * Copyright 2010 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Definitions for WebGL functions as described at\\n * http://www.khronos.org/registry/webgl/specs/latest/\\n *\\n * This file is current up to the WebGL 1.0.1 spec, including extensions.\\n *\\n * This relies on html5.js being included for Canvas and Typed Array support.\\n *\\n * This includes some extensions defined at\\n * http://www.khronos.org/registry/webgl/extensions/\\n *\\n * @externs\\n */\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLRenderingContext() {}\\n\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_BUFFER_BIT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BUFFER_BIT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COLOR_BUFFER_BIT;\\n\\n/** @type {number} */\\n'; a.a+="WebGLRenderingContext.POINTS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINE_LOOP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINE_STRIP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TRIANGLES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TRIANGLE_STRIP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TRIANGLE_FAN;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ZERO;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SRC_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_SRC_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DST_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_DST_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SRC_ALPHA_SATURATE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FUNC_ADD;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_EQUATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_EQUATION_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_EQUATION_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FUNC_SUBTRACT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FUNC_REVERSE_SUBTRACT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_DST_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_SRC_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CONSTANT_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_CONSTANT_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CONSTANT_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ONE_MINUS_CONSTANT_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ARRAY_BUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ELEMENT_ARRAY_BUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STREAM_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STATIC_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DYNAMIC_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BUFFER_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BUFFER_USAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CURRENT_VERTEX_ATTRIB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRONT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BACK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRONT_AND_BACK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CULL_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLEND;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DITHER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SCISSOR_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.POLYGON_OFFSET_FILL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLE_ALPHA_TO_COVERAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLE_COVERAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NO_ERROR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INVALID_ENUM;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INVALID_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INVALID_OPERATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.OUT_OF_MEMORY;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CCW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINE_WIDTH;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ALIASED_POINT_SIZE_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ALIASED_LINE_WIDTH_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CULL_FACE_MODE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRONT_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_PASS_DEPTH_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_PASS_DEPTH_PASS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_REF;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_VALUE_MASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_PASS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_REF;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_VALUE_MASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BACK_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VIEWPORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SCISSOR_BOX;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COLOR_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COLOR_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNPACK_ALIGNMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.PACK_ALIGNMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_TEXTURE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_VIEWPORT_DIMS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SUBPIXEL_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RED_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.GREEN_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BLUE_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ALPHA_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.POLYGON_OFFSET_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.POLYGON_OFFSET_FACTOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_BINDING_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLE_BUFFERS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLE_COVERAGE_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLE_COVERAGE_INVERT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COMPRESSED_TEXTURE_FORMATS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DONT_CARE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FASTEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NICEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.GENERATE_MIPMAP_HINT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BYTE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_BYTE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SHORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_SHORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_COMPONENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RGBA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LUMINANCE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LUMINANCE_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_SHORT_4_4_4_4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_SHORT_5_5_5_1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNSIGNED_SHORT_5_6_5;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAGMENT_SHADER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_SHADER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_VERTEX_ATTRIBS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_VERTEX_UNIFORM_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_VARYING_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SHADER_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DELETE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINK_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VALIDATE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ATTACHED_SHADERS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ACTIVE_UNIFORMS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ACTIVE_ATTRIBUTES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SHADING_LANGUAGE_VERSION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CURRENT_PROGRAM;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NEVER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LESS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.EQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.GREATER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NOTEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.GEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ALWAYS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.KEEP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.REPLACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INCR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DECR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INVERT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INCR_WRAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DECR_WRAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VENDOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERSION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NEAREST_MIPMAP_NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINEAR_MIPMAP_NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NEAREST_MIPMAP_LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LINEAR_MIPMAP_LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_MAG_FILTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_MIN_FILTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_WRAP_S;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_WRAP_T;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_BINDING_CUBE_MAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE0;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE5;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE6;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE7;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE8;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE9;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE10;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE11;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE12;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE13;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE14;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE15;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE16;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE17;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE18;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE19;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE20;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE21;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE22;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE23;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE24;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE25;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE26;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE27;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE28;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE29;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE30;\\n\\n/** @type {number} */\\nWebGLRenderingContext.TEXTURE31;\\n\\n/** @type {number} */\\nWebGLRenderingContext.ACTIVE_TEXTURE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.REPEAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CLAMP_TO_EDGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MIRRORED_REPEAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INT_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INT_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INT_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BOOL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BOOL_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BOOL_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BOOL_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_MAT2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_MAT3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FLOAT_MAT4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLER_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.SAMPLER_CUBE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_POINTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.IMPLEMENTATION_COLOR_READ_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COMPILE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LOW_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MEDIUM_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.HIGH_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.LOW_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MEDIUM_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.HIGH_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RGBA4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RGB5_A1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RGB565;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_C"; a.a+="OMPONENT16;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_INDEX;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_INDEX8;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_STENCIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_WIDTH;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_HEIGHT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_INTERNAL_FORMAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_RED_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_GREEN_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_BLUE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_ALPHA_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_DEPTH_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_STENCIL_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.COLOR_ATTACHMENT0;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.STENCIL_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.DEPTH_STENCIL_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.NONE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_COMPLETE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_UNSUPPORTED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.FRAMEBUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.RENDERBUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.MAX_RENDERBUFFER_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.INVALID_FRAMEBUFFER_OPERATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNPACK_FLIP_Y_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.CONTEXT_LOST_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.BROWSER_DEFAULT_WEBGL;\\n\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_BUFFER_BIT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BUFFER_BIT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COLOR_BUFFER_BIT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.POINTS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINE_LOOP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINE_STRIP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TRIANGLES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TRIANGLE_STRIP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TRIANGLE_FAN;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ZERO;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SRC_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_SRC_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DST_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_DST_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SRC_ALPHA_SATURATE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FUNC_ADD;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_EQUATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_EQUATION_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_EQUATION_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FUNC_SUBTRACT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FUNC_REVERSE_SUBTRACT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_DST_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_SRC_RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_DST_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_SRC_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CONSTANT_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_CONSTANT_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CONSTANT_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ONE_MINUS_CONSTANT_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND_COLOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ARRAY_BUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ELEMENT_ARRAY_BUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ELEMENT_ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STREAM_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STATIC_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DYNAMIC_DRAW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BUFFER_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BUFFER_USAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CURRENT_VERTEX_ATTRIB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRONT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BACK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRONT_AND_BACK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CULL_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLEND;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DITHER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SCISSOR_TEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.POLYGON_OFFSET_FILL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLE_ALPHA_TO_COVERAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLE_COVERAGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NO_ERROR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INVALID_ENUM;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INVALID_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INVALID_OPERATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.OUT_OF_MEMORY;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CCW;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINE_WIDTH;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ALIASED_POINT_SIZE_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ALIASED_LINE_WIDTH_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CULL_FACE_MODE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRONT_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_RANGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_PASS_DEPTH_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_PASS_DEPTH_PASS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_REF;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_VALUE_MASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_FUNC;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_PASS_DEPTH_FAIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_PASS_DEPTH_PASS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_REF;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_VALUE_MASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BACK_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VIEWPORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SCISSOR_BOX;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COLOR_CLEAR_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COLOR_WRITEMASK;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNPACK_ALIGNMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.PACK_ALIGNMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_TEXTURE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_VIEWPORT_DIMS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SUBPIXEL_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RED_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.GREEN_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BLUE_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ALPHA_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_BITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.POLYGON_OFFSET_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.POLYGON_OFFSET_FACTOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_BINDING_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLE_BUFFERS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLE_COVERAGE_VALUE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLE_COVERAGE_INVERT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COMPRESSED_TEXTURE_FORMATS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DONT_CARE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FASTEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NICEST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.GENERATE_MIPMAP_HINT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BYTE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_BYTE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SHORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_SHORT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_COMPONENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RGB;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RGBA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LUMINANCE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LUMINANCE_ALPHA;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_SHORT_4_4_4_4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_SHORT_5_5_5_1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNSIGNED_SHORT_5_6_5;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAGMENT_SHADER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_SHADER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_VERTEX_ATTRIBS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_VERTEX_UNIFORM_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_VARYING_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_COMBINED_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_VERTEX_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_TEXTURE_IMAGE_UNITS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_FRAGMENT_UNIFORM_VECTORS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SHADER_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DELETE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINK_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VALIDATE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ATTACHED_SHADERS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ACTIVE_UNIFORMS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ACTIVE_ATTRIBUTES;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SHADING_LANGUAGE_VERSION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CURRENT_PROGRAM;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NEVER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LESS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.EQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.GREATER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NOTEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.GEQUAL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ALWAYS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.KEEP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.REPLACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INCR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DECR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INVERT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INCR_WRAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DECR_WRAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VENDOR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERSION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NEAREST_MIPMAP_NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINEAR_MIPMAP_NEAREST;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NEAREST_MIPMAP_LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LINEAR_MIPMAP_LINEAR;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_MAG_FILTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_MIN_FILTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_WRAP_S;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_WRAP_T;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_BINDING_CUBE_MAP;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP_POSITIVE_X;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP_NEGATIVE_X;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP_POSITIVE_Y;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP_NEGATIVE_Y;\\n\\n/** @type {number} */\\nWebGLR"; a.a+="enderingContext.prototype.TEXTURE_CUBE_MAP_POSITIVE_Z;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE_CUBE_MAP_NEGATIVE_Z;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_CUBE_MAP_TEXTURE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE0;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE5;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE6;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE7;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE8;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE9;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE10;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE11;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE12;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE13;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE14;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE15;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE16;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE17;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE18;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE19;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE20;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE21;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE22;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE23;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE24;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE25;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE26;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE27;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE28;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE29;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE30;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.TEXTURE31;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.ACTIVE_TEXTURE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.REPEAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CLAMP_TO_EDGE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MIRRORED_REPEAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INT_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INT_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INT_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BOOL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BOOL_VEC2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BOOL_VEC3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BOOL_VEC4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_MAT2;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_MAT3;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FLOAT_MAT4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLER_2D;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.SAMPLER_CUBE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_ENABLED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_STRIDE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_NORMALIZED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_POINTER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COMPILE_STATUS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LOW_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MEDIUM_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.HIGH_FLOAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.LOW_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MEDIUM_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.HIGH_INT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RGBA4;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RGB5_A1;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RGB565;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_COMPONENT16;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_INDEX;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_INDEX8;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_STENCIL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_WIDTH;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_HEIGHT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_INTERNAL_FORMAT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_RED_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_GREEN_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_BLUE_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_ALPHA_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_DEPTH_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_STENCIL_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.COLOR_ATTACHMENT0;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.STENCIL_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.DEPTH_STENCIL_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.NONE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_COMPLETE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_UNSUPPORTED;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.FRAMEBUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.RENDERBUFFER_BINDING;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.MAX_RENDERBUFFER_SIZE;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.INVALID_FRAMEBUFFER_OPERATION;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNPACK_FLIP_Y_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNPACK_PREMULTIPLY_ALPHA_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.CONTEXT_LOST_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.UNPACK_COLORSPACE_CONVERSION_WEBGL;\\n\\n/** @type {number} */\\nWebGLRenderingContext.prototype.BROWSER_DEFAULT_WEBGL;\\n\\n\\n/**\\n * @type {!HTMLCanvasElement}\\n */\\nWebGLRenderingContext.prototype.canvas;\\n\\n/**\\n * @type {number}\\n */\\nWebGLRenderingContext.prototype.drawingBufferWidth;\\n\\n/**\\n * @type {number}\\n */\\nWebGLRenderingContext.prototype.drawingBufferHeight;\\n\\n/**\\n * @return {!WebGLContextAttributes}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getContextAttributes = function() {};\\n\\n/**\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isContextLost = function() {};\\n\\n/**\\n * @return {!Array}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getSupportedExtensions = function() {};\\n\\n/**\\n * Note that this has side effects by enabling the extension even if the\\n * result is not used.\\n * @param {string} name\\n * @return {Object}\\n */\\nWebGLRenderingContext.prototype.getExtension = function(name) {};\\n\\n/**\\n * @param {number} texture\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.activeTexture = function(texture) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {WebGLShader} shader\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.attachShader = function(program, shader) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {number} index\\n * @param {string} name\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bindAttribLocation = function(\\n program, index, name) {};\\n\\n/**\\n * @param {number} target\\n * @param {WebGLBuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bindBuffer = function(target, buffer) {};\\n\\n/**\\n * @param {number} target\\n * @param {WebGLFramebuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bindFramebuffer = function(target, buffer) {};\\n\\n/**\\n * @param {number} target\\n * @param {WebGLRenderbuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bindRenderbuffer = function(target, buffer) {};\\n\\n/**\\n * @param {number} target\\n * @param {WebGLTexture} texture\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bindTexture = function(target, texture) {};\\n\\n/**\\n * @param {number} red\\n * @param {number} green\\n * @param {number} blue\\n * @param {number} alpha\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.blendColor = function(\\n red, green, blue, alpha) {};\\n\\n/**\\n * @param {number} mode\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.blendEquation = function(mode) {};\\n\\n/**\\n * @param {number} modeRGB\\n * @param {number} modeAlpha\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.blendEquationSeparate = function(\\n modeRGB, modeAlpha) {};\\n\\n/**\\n * @param {number} sfactor\\n * @param {number} dfactor\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.blendFunc = function(sfactor, dfactor) {};\\n\\n/**\\n * @param {number} srcRGB\\n * @param {number} dstRGB\\n * @param {number} srcAlpha\\n * @param {number} dstAlpha\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.blendFuncSeparate = function(\\n srcRGB, dstRGB, srcAlpha, dstAlpha) {};\\n\\n/**\\n * @param {number} target\\n * @param {ArrayBufferView|ArrayBuffer|number} data\\n * @param {number} usage\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bufferData = function(target, data, usage) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} offset\\n * @param {ArrayBufferView|ArrayBuffer} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.bufferSubData = function(\\n target, offset, data) {};\\n\\n/**\\n * @param {number} target\\n * @return {number}\\n */\\nWebGLRenderingContext.prototype.checkFramebufferStatus = function(target) {};\\n\\n/**\\n * @param {number} mask\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.clear = function(mask) {};\\n\\n/**\\n * @param {number} red\\n * @param {number} green\\n * @param {number} blue\\n * @param {number} alpha\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.clearColor = function(\\n red, green, blue, alpha) {};\\n\\n/**\\n * @param {number} depth\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.clearDepth = function(depth) {};\\n\\n/**\\n * @param {number} s\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.clearStencil = function(s) {};\\n\\n/**\\n * @param {boolean} red\\n * @param {boolean} green\\n * @param {boolean} blue\\n * @param {boolean} alpha\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.colorMask = function(\\n red, green, blue, alpha) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.compileShader = function(shader) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} internalformat\\n * @param {number} width\\n * @param {number} height\\n * @param {number} border\\n * @param {ArrayBufferView} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.compressedTexImage2D = function(\\n target, level, internalformat, width, height, border, data) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} xoffset\\n * @param {number} yoffset\\n * @param {number} width\\n * @param {number} height\\n * @param {number} format\\n * @param {ArrayBufferView} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.compressedTexSubImage2D = function(\\n target, level, xoffset, yoffset, width, height, format, data) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} format\\n * @param {number} x\\n * @param {number} y\\n * @param {number} width\\n * @param {number} height\\n * @param {number} border\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.copyTexImage2D = function(\\n target, level, format, x, y, width, height, border) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} xoffset\\n * @param {number} yoffset\\n * @param {number} x\\n * @param {number} y\\n * @param {number} width\\n * @param {number} height\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.copyTexSubImage2D = function(\\n target, level, xoffset, yoffset, x, y, width, height) {};\\n\\n/**\\n * @return {!WebGLBuffer}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createBuffer = function() {};\\n\\n/**\\n * @return {!WebGLFramebuffer}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createFramebuffer = function() {};\\n\\n/**\\n * @return {!WebGLProgram}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createProgram = function() {};\\n\\n/**\\n * @return {!WebGLRenderbuffer}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createRenderbuffer = function() {};\\n\\n/**\\n * @param {number} type\\n * @return {!WebGLShader}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createShader = function(type) {};\\n\\n/**\\n * @return {!WebGLTexture}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.createTexture = function() {};\\n\\n/**\\n * @param {number} mode\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.cullFace = function(mode) {};\\n\\n/**\\n * @param {WebGLBuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteBuffer = function(buffer) {};\\n\\n/**\\n * @param {WebGLFramebuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteFramebuffer = function(buffer) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteProgram = function(program) {};\\n\\n/**\\n * @param {WebGLRenderbuffer} buffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteRenderbuffer = function(buffer) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteShader = function(shader) {};\\n\\n/**\\n * @param {WebGLTexture} texture\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.deleteTexture = function(texture) {};\\n\\n/**\\n * @param {number} func\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.depthFunc = function(func) {};\\n\\n/**\\n * @param {boolean} flag\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.depthMask = function(flag) {};\\n\\n/**\\n * @param {number} nearVal\\n * @param "; a.a+="{number} farVal\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.depthRange = function(nearVal, farVal) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {WebGLShader} shader\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.detachShader = function(program, shader) {};\\n\\n/**\\n * @param {number} flags\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.disable = function(flags) {};\\n\\n/**\\n * @param {number} index\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.disableVertexAttribArray = function(\\n index) {};\\n\\n/**\\n * @param {number} mode\\n * @param {number} first\\n * @param {number} count\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.drawArrays = function(mode, first, count) {};\\n\\n/**\\n * @param {number} mode\\n * @param {number} count\\n * @param {number} type\\n * @param {number} offset\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.drawElements = function(\\n mode, count, type, offset) {};\\n\\n/**\\n * @param {number} cap\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.enable = function(cap) {};\\n\\n/**\\n * @param {number} index\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.enableVertexAttribArray = function(\\n index) {};\\n\\nWebGLRenderingContext.prototype.finish = function() {};\\n\\nWebGLRenderingContext.prototype.flush = function() {};\\n\\n/**\\n * @param {number} target\\n * @param {number} attachment\\n * @param {number} renderbuffertarget\\n * @param {WebGLRenderbuffer} renderbuffer\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.framebufferRenderbuffer = function(\\n target, attachment, renderbuffertarget, renderbuffer) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} attachment\\n * @param {number} textarget\\n * @param {WebGLTexture} texture\\n * @param {number} level\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.framebufferTexture2D = function(\\n target, attachment, textarget, texture, level) {};\\n\\n/**\\n * @param {number} mode\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.frontFace = function(mode) {};\\n\\n/**\\n * @param {number} target\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.generateMipmap = function(target) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {number} index\\n * @return {WebGLActiveInfo}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getActiveAttrib = function(program, index) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {number} index\\n * @return {WebGLActiveInfo}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getActiveUniform = function(program, index) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {!Array}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getAttachedShaders = function(program) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {string} name\\n * @return {number}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getAttribLocation = function(program, name) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getBufferParameter = function(target, pname) {};\\n\\n/**\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getParameter = function(pname) {};\\n\\n/**\\n * @return {number}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getError = function() {};\\n\\n/**\\n * @param {number} target\\n * @param {number} attachment\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getFramebufferAttachmentParameter = function(\\n target, attachment, pname) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getProgramParameter = function(\\n program, pname) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {string}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getProgramInfoLog = function(program) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getRenderbufferParameter = function(\\n target, pname) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getShaderParameter = function(shader, pname) {};\\n\\n/**\\n * @param {number} shadertype\\n * @param {number} precisiontype\\n * @return {WebGLShaderPrecisionFormat}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getShaderPrecisionFormat = function(shadertype,\\n precisiontype) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @return {string}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getShaderInfoLog = function(shader) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @return {string}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getShaderSource = function(shader) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getTexParameter = function(target, pname) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {WebGLUniformLocation} location\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getUniform = function(program, location) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @param {string} name\\n * @return {WebGLUniformLocation}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getUniformLocation = function(program, name) {};\\n\\n/**\\n * @param {number} index\\n * @param {number} pname\\n * @return {*}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getVertexAttrib = function(index, pname) {};\\n\\n/**\\n * @param {number} index\\n * @param {number} pname\\n * @return {number}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.getVertexAttribOffset = function(\\n index, pname) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} mode\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.hint = function(target, mode) {};\\n\\n/**\\n * @param {WebGLObject} buffer\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isBuffer = function(buffer) {};\\n\\n/**\\n * @param {number} cap\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isEnabled = function(cap) {};\\n\\n/**\\n * @param {WebGLObject} framebuffer\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isFramebuffer = function(framebuffer) {};\\n\\n/**\\n * @param {WebGLObject} program\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isProgram = function(program) {};\\n\\n/**\\n * @param {WebGLObject} renderbuffer\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isRenderbuffer = function(renderbuffer) {};\\n\\n/**\\n * @param {WebGLObject} shader\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isShader = function(shader) {};\\n\\n/**\\n * @param {WebGLObject} texture\\n * @return {boolean}\\n * @nosideeffects\\n */\\nWebGLRenderingContext.prototype.isTexture = function(texture) {};\\n\\n/**\\n * @param {number} width\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.lineWidth = function(width) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.linkProgram = function(program) {};\\n\\n/**\\n * @param {number} pname\\n * @param {number} param\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.pixelStorei = function(pname, param) {};\\n\\n/**\\n * @param {number} factor\\n * @param {number} units\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.polygonOffset = function(factor, units) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} width\\n * @param {number} height\\n * @param {number} format\\n * @param {number} type\\n * @param {ArrayBufferView} pixels\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.readPixels = function(\\n x, y, width, height, format, type, pixels) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} internalformat\\n * @param {number} width\\n * @param {number} height\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.renderbufferStorage = function(\\n target, internalformat, width, height) {};\\n\\n/**\\n * @param {number} coverage\\n * @param {boolean} invert\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.sampleCoverage = function(coverage, invert) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} width\\n * @param {number} height\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.scissor = function(x, y, width, height) {};\\n\\n/**\\n * @param {WebGLShader} shader\\n * @param {string} source\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.shaderSource = function(shader, source) {};\\n\\n/**\\n * @param {number} func\\n * @param {number} ref\\n * @param {number} mask\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilFunc = function(func, ref, mask) {};\\n\\n/**\\n * @param {number} face\\n * @param {number} func\\n * @param {number} ref\\n * @param {number} mask\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilFuncSeparate = function(\\n face, func, ref, mask) {};\\n\\n/**\\n * @param {number} mask\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilMask = function(mask) {};\\n\\n/**\\n * @param {number} face\\n * @param {number} mask\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilMaskSeparate = function(face, mask) {};\\n\\n/**\\n * @param {number} fail\\n * @param {number} zfail\\n * @param {number} zpass\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilOp = function(fail, zfail, zpass) {};\\n\\n/**\\n * @param {number} face\\n * @param {number} fail\\n * @param {number} zfail\\n * @param {number} zpass\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.stencilOpSeparate = function(\\n face, fail, zfail, zpass) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} internalformat\\n * @param {number} format or width\\n * @param {number} type or height\\n * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|\\n * number} img or border\\n * @param {number=} opt_format\\n * @param {number=} opt_type\\n * @param {ArrayBufferView=} opt_pixels\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.texImage2D = function(\\n target, level, internalformat, format, type, img, opt_format, opt_type,\\n opt_pixels) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} pname\\n * @param {number} param\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.texParameterf = function(\\n target, pname, param) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} pname\\n * @param {number} param\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.texParameteri = function(\\n target, pname, param) {};\\n\\n/**\\n * @param {number} target\\n * @param {number} level\\n * @param {number} xoffset\\n * @param {number} yoffset\\n * @param {number} format or width\\n * @param {number} type or height\\n * @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|\\n * number} data or format\\n * @param {number=} opt_type\\n * @param {ArrayBufferView=} opt_pixels\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.texSubImage2D = function(\\n target, level, xoffset, yoffset, format, type, data, opt_type,\\n opt_pixels) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform1f = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Float32Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform1fv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number|boolean} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform1i = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Int32Array|Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform1iv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number} value1\\n * @param {number} value2\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform2f = function(\\n location, value1, value2) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Float32Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform2fv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number|boolean} value1\\n * @param {number|boolean} value2\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform2i = function(\\n location, value1, value2) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Int32Array|Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform2iv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number} value1\\n * @param {number} value2\\n * @param {number} value3\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform3f = function(\\n location, value1, value2, value3) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Float32Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform3fv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number|boolean} value1\\n * @param {number|boolean} value2\\n * @param {number|boolean} value3\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform3i = function(\\n location, value1, value2, value3) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Int32Array|Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform3iv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number} value1\\n * @param {number} value2\\n * @param {number} value3\\n * @param {number} value4\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform4f = function(\\n location, value1, value2, value3, value4) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Float32Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform4fv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {number|boolean} value1\\n * @param {number|boolean} value2\\n * @param {number|boolean} value3\\n * @param {number|boolean} value4\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform4i = function(\\n location, value1, value2, value3, value4) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {Int32Array|Array|Array} value\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniform4iv = function(location, value) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {boolean} transpose\\n * @param {Float32Array|Array} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniformMatrix2fv = function(\\n location, transpose, data) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {boolean} transpose\\n * @param {Float32Array|Array} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniformMatrix3fv = function(\\n location, transpose, data) {};\\n\\n/**\\n * @param {WebGLUniformLocation} location\\n * @param {boolean} transpose\\n * @param {Float32Array|Array} data\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.uniformMatrix4fv = function(\\n location, transpose, data) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.useProgram = function(program) {};\\n\\n/**\\n * @param {WebGLProgram} program\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.validateProgram = function(program) {};\\n\\n/**\\n * @param {number} indx\\n * @param {number} x\\n * @return {undefined}\\n */\\nWebGLRenderingContext.proto"; a.a+="type.vertexAttrib1f = function(indx, x) {};\\n\\n/**\\n * @param {number} indx\\n * @param {Float32Array|Array} values\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib1fv = function(indx, values) {};\\n\\n/**\\n * @param {number} indx\\n * @param {number} x\\n * @param {number} y\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib2f = function(\\n indx, x, y) {};\\n\\n/**\\n * @param {number} indx\\n * @param {Float32Array|Array} values\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib2fv = function(\\n indx, values) {};\\n\\n/**\\n * @param {number} indx\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib3f = function(\\n indx, x, y, z) {};\\n\\n/**\\n * @param {number} indx\\n * @param {Float32Array|Array} values\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib3fv = function(indx, values) {};\\n\\n/**\\n * @param {number} indx\\n * @param {number} x\\n * @param {number} y\\n * @param {number} z\\n * @param {number} w\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib4f = function(\\n indx, x, y, z, w) {};\\n\\n/**\\n * @param {number} indx\\n * @param {Float32Array|Array} values\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttrib4fv = function(indx, values) {};\\n\\n/**\\n * @param {number} indx\\n * @param {number} size\\n * @param {number} type\\n * @param {boolean} normalized\\n * @param {number} stride\\n * @param {number} offset\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.vertexAttribPointer = function(\\n indx, size, type, normalized, stride, offset) {};\\n\\n/**\\n * @param {number} x\\n * @param {number} y\\n * @param {number} width\\n * @param {number} height\\n * @return {undefined}\\n */\\nWebGLRenderingContext.prototype.viewport = function(x, y, width, height) {};\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLContextAttributes() {}\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.alpha;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.depth;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.stencil;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.antialias;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.premultipliedAlpha;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.preserveDrawingBuffer;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.preferLowPowerToHighPerformance;\\n\\n/**\\n * @type {boolean}\\n */\\nWebGLContextAttributes.prototype.failIfMajorPerformanceCaveat;\\n\\n/**\\n * @param {string} eventType\\n * @constructor\\n * @noalias\\n * @extends {Event}\\n */\\nfunction WebGLContextEvent(eventType) {}\\n\\n/**\\n * @type {string}\\n */\\nWebGLContextEvent.prototype.statusMessage;\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLShaderPrecisionFormat() {}\\n\\n/**\\n * @type {number}\\n */\\nWebGLShaderPrecisionFormat.prototype.rangeMin;\\n\\n/**\\n * @type {number}\\n */\\nWebGLShaderPrecisionFormat.prototype.rangeMax;\\n\\n/**\\n * @type {number}\\n */\\nWebGLShaderPrecisionFormat.prototype.precision;\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLObject() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLBuffer() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLFramebuffer() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLProgram() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLRenderbuffer() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLShader() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLTexture() {}\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLActiveInfo() {}\\n\\n/** @type {number} */\\nWebGLActiveInfo.prototype.size;\\n\\n/** @type {number} */\\nWebGLActiveInfo.prototype.type;\\n\\n/** @type {string} */\\nWebGLActiveInfo.prototype.name;\\n\\n\\n/**\\n * @constructor\\n * @noalias\\n */\\nfunction WebGLUniformLocation() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_texture_float/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_texture_float() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_texture_half_float() {}\\n\\n/** @type {number} */\\nOES_texture_half_float.prototype.HALF_FLOAT_OES;\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_lose_context() {}\\n\\nWEBGL_lose_context.prototype.loseContext = function() {};\\n\\nWEBGL_lose_context.prototype.restoreContext = function() {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_standard_derivatives/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_standard_derivatives() {}\\n\\n/** @type {number} */\\nOES_standard_derivatives.prototype.FRAGMENT_SHADER_DERIVATIVE_HINT_OES;\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/\\n * @constructor\\n * @noalias\\n * @extends {WebGLObject}\\n */\\nfunction WebGLVertexArrayObjectOES() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_vertex_array_object() {}\\n\\n/** @type {number} */\\nOES_vertex_array_object.prototype.VERTEX_ARRAY_BINDING_OES;\\n\\n/**\\n * @return {WebGLVertexArrayObjectOES}\\n * @nosideeffects\\n */\\nOES_vertex_array_object.prototype.createVertexArrayOES = function() {};\\n\\n/**\\n * @param {WebGLVertexArrayObjectOES} arrayObject\\n * @return {undefined}\\n */\\nOES_vertex_array_object.prototype.deleteVertexArrayOES =\\n function(arrayObject) {};\\n\\n/**\\n * @param {WebGLVertexArrayObjectOES} arrayObject\\n * @return {boolean}\\n * @nosideeffects\\n */\\nOES_vertex_array_object.prototype.isVertexArrayOES = function(arrayObject) {};\\n\\n/**\\n * @param {WebGLVertexArrayObjectOES} arrayObject\\n * @return {undefined}\\n */\\nOES_vertex_array_object.prototype.bindVertexArrayOES = function(arrayObject) {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_debug_renderer_info() {}\\n\\n/** @type {number} */\\nWEBGL_debug_renderer_info.prototype.UNMASKED_VENDOR_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_debug_renderer_info.prototype.UNMASKED_RENDERER_WEBGL;\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_shaders/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_debug_shaders() {}\\n\\n/**\\n * @param {WebGLShader} shader\\n * @return {string}\\n * @nosideeffects\\n */\\nWEBGL_debug_shaders.prototype.getTranslatedShaderSource = function(shader) {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_compressed_texture_s3tc() {}\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGB_S3TC_DXT1_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT1_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT3_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT5_EXT;\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_depth_texture/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_depth_texture() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_element_index_uint() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/\\n * @constructor\\n * @noalias\\n */\\nfunction EXT_texture_filter_anisotropic() {}\\n\\n/** @type {number} */\\nEXT_texture_filter_anisotropic.prototype.TEXTURE_MAX_ANISOTROPY_EXT;\\n\\n/** @type {number} */\\nEXT_texture_filter_anisotropic.prototype.MAX_TEXTURE_MAX_ANISOTROPY_EXT;\\n\\n\\n/**\\n * @see https://www.khronos.org/registry/webgl/extensions/WEBGL_draw_buffers/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_draw_buffers() {}\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT0_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT1_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT2_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT3_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT4_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT5_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT6_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT7_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT8_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT9_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT10_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT11_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT12_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT13_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT14_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT15_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER0_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER1_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER2_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER3_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER4_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER5_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER6_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER7_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER8_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER9_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER10_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER11_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER12_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER13_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER14_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER15_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.MAX_COLOR_ATTACHMENTS_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.MAX_DRAW_BUFFERS_WEBGL;\\n\\n/**\\n * @param {Array} buffers Draw buffers.\\n * @return {undefined}\\n */\\nWEBGL_draw_buffers.prototype.drawBuffersWEBGL = function(buffers) {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays/\\n * @constructor\\n * @noalias\\n */\\nfunction ANGLE_instanced_arrays() {}\\n\\n\\n/** @type {number} */\\nANGLE_instanced_arrays.prototype.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE;\\n\\n\\n/**\\n * @param {number} mode Primitive type.\\n * @param {number} first First vertex.\\n * @param {number} count Number of vertices per instance.\\n * @param {number} primcount Number of instances.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.drawArraysInstancedANGLE = function(\\n mode, first, count, primcount) {};\\n\\n\\n/**\\n * @param {number} mode Primitive type.\\n * @param {number} count Number of vertex indices per instance.\\n * @param {number} type Type of a vertex index.\\n * @param {number} offset Offset to the first vertex index.\\n * @param {number} primcount Number of instances.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.drawElementsInstancedANGLE = function(\\n mode, count, type, offset, primcount) {};\\n\\n\\n/**\\n * @param {number} index Attribute index.\\n * @param {number} divisor Instance divisor.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.vertexAttribDivisorANGLE = function(\\n index, divisor) {};\\n\\n\",\"externs/fetchapi.js\":\"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions of the fetch api.\\n *\\n * This api is still in development and not yet stable. Use at your\\n * own risk.\\n *\\n * Based on Living Standard \u2014 Last Updated 17 August 2016\\n *\\n * @see https://fetch.spec.whatwg.org/\\n * @externs\\n */\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy\\n * Possible values: '', 'no-referrer', 'no-referrer-when-downgrade',\\n * 'same-origin', 'origin', 'strict-origin', 'origin-when-cross-origin',\\n * 'strict-origin-when-cross-origin', 'unsafe-url'\\n */\\nvar ReferrerPolicy;\\n\\n\\n/**\\n * @typedef {!Headers|!Array>|!IObject}\\n * @see https://fetch.spec.whatwg.org/#headersinit\\n */\\nvar HeadersInit;\\n\\n\\n/**\\n * @param {!HeadersInit=} opt_headersInit\\n * @constructor\\n * @implements {Iterable>}\\n * @see https://fetch.spec.whatwg.org/#headers\\n */\\nfunction Headers(opt_headersInit) {}\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nHeaders.prototype.append = function(name, value) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n */\\nHeaders.prototype.delete = function(name) {};\\n\\n/** @return {!IteratorIterable>} */\\nHeaders.prototype.entries = function() {};\\n\\n/**\\n * @param {string} name\\n * @return {?string}\\n */\\nHeaders.prototype.get = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {!Array}\\n */\\nHeaders.prototype.getAll = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n */\\nHeaders.prototype.has = function(name) {};\\n\\n/** @return {!Iterator} */\\nHeaders.prototype.keys = function() {};\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nHeaders.prototype.set = function(name, value) {};\\n\\n/** @return {!Iterator} */\\nHeaders.prototype.values = function() {};\\n\\n/** @return {!Iterator>} */\\nHeaders.prototype[Symbol.iterator] = function() {};\\n\\n\\n/**\\n * @typedef {!Blob|!BufferSource|!FormData|string}\\n * @see https://fetch.spec.whatwg.org/#bodyinit\\n */\\nvar BodyInit;\\n\\n\\n/**\\n * @typedef {!BodyInit|!ReadableStream}\\n * @see https://fetch.spec.whatwg.org/#responsebodyinit\\n */\\nvar ResponseBodyInit;\\n\\n\\n/**\\n * @interface\\n * @see https://fetch.spec.whatwg.org/#body\\n */\\nfunction Body() {};\\n\\n/** @type {boolean} */\\nBody.prototype.bodyUsed;\\n\\n/** @return {!Promise} */\\nBody.prototype.arrayBuffer = function() {};\\n\\n/** @return {!Promise} */\\nBody.prototype.blob = function() {};\\n\\n/** @return {!Promise} */\\nBody.prototype.formData = function() {};\\n\\n/** @return {!Promise<*>} */\\nBody.prototype.json = function() {};\\n\\n/** @return {!Promise} */\\nBody.prototype.text = function() {};\\n\\n\\n/**\\n * @typedef {!Request|string}\\n * @see https://fetch.spec.whatwg.org/#requestinfo\\n */\\nvar RequestInfo;\\n\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @constructor\\n * @implements {Body}\\n * @see https://fetch.spec.whatwg.org/#request\\n */\\nfunction Request(input, opt_init) {}\\n\\n/** @override */\\nRequest.prototype.bodyUsed;\\n\\n/** @override */\\nRequest.prototype.arrayBuffer = function() {};\\n\\n/** @override */\\nRequ"; a.a+="est.prototype.blob = function() {};\\n\\n/** @override */\\nRequest.prototype.formData = function() {};\\n\\n/** @override */\\nRequest.prototype.json = function() {};\\n\\n/** @override */\\nRequest.prototype.text = function() {};\\n\\n/** @type {string} */\\nRequest.prototype.method;\\n\\n/** @type {string} */\\nRequest.prototype.url;\\n\\n/** @type {!Headers} */\\nRequest.prototype.headers;\\n\\n/** @type {!FetchRequestType} */\\nRequest.prototype.type;\\n\\n/** @type {!RequestDestination} */\\nRequest.prototype.destination;\\n\\n/** @type {string} */\\nRequest.prototype.referrer;\\n\\n/** @type {!RequestMode} */\\nRequest.prototype.mode;\\n\\n/** @type {!RequestCredentials} */\\nRequest.prototype.credentials;\\n\\n/** @type {!RequestCache} */\\nRequest.prototype.cache;\\n\\n/** @type {!RequestRedirect} */\\nRequest.prototype.redirect;\\n\\n/** @type {string} */\\nRequest.prototype.integrity;\\n\\n/** @return {!Request} */\\nRequest.prototype.clone = function() {};\\n\\n\\n/**\\n * @record\\n * @see https://fetch.spec.whatwg.org/#requestinit\\n */\\nfunction RequestInit() {};\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.method;\\n\\n/** @type {(undefined|!HeadersInit)} */\\nRequestInit.prototype.headers;\\n\\n/** @type {(undefined|?BodyInit)} */\\nRequestInit.prototype.body;\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.referrer;\\n\\n/** @type {(undefined|!ReferrerPolicy)} */\\nRequestInit.prototype.referrerPolicy;\\n\\n/** @type {(undefined|!RequestMode)} */\\nRequestInit.prototype.mode;\\n\\n/** @type {(undefined|!RequestCredentials)} */\\nRequestInit.prototype.credentials;\\n\\n/** @type {(undefined|!RequestCache)} */\\nRequestInit.prototype.cache;\\n\\n/** @type {(undefined|!RequestRedirect)} */\\nRequestInit.prototype.redirect;\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.integrity;\\n\\n/** @type {(undefined|null)} */\\nRequestInit.prototype.window;\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requesttype\\n * Possible values: '', 'audio', 'font', 'image', 'script', 'style',\\n * 'track', 'video'\\n */\\nvar FetchRequestType;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestdestination\\n * Possible values: '', 'document', 'embed', 'font', 'image', 'manifest',\\n * 'media', 'object', 'report', 'script', 'serviceworker', 'sharedworker',\\n * 'style', 'worker', 'xslt'\\n */\\nvar RequestDestination;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestmode\\n * Possible values: 'navigate', 'same-origin', 'no-cors', 'cors'\\n */\\nvar RequestMode ;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestcredentials\\n * Possible values: 'omit', 'same-origin', 'include'\\n */\\nvar RequestCredentials;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestcache\\n * Possible values: 'default', 'no-store', 'reload', 'no-cache', 'force-cache',\\n * 'only-if-cached'\\n */\\nvar RequestCache;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestredirect\\n * Possible values: 'follow', 'error', 'manual'\\n */\\nvar RequestRedirect;\\n\\n\\n/**\\n * @param {?ResponseBodyInit=} opt_body\\n * @param {!ResponseInit=} opt_init\\n * @constructor\\n * @implements {Body}\\n * @see https://fetch.spec.whatwg.org/#response\\n */\\nfunction Response(opt_body, opt_init) {}\\n\\n/** @return {!Response} */\\nResponse.error = function() {};\\n\\n/**\\n * @param {string} url\\n * @param {number=} opt_status\\n * @return {!Response}\\n */\\nResponse.redirect = function(url, opt_status) {};\\n\\n/** @override */\\nResponse.prototype.bodyUsed;\\n\\n/** @override */\\nResponse.prototype.arrayBuffer = function() {};\\n\\n/** @override */\\nResponse.prototype.blob = function() {};\\n\\n/** @override */\\nResponse.prototype.formData = function() {};\\n\\n/** @override */\\nResponse.prototype.json = function() {};\\n\\n/** @override */\\nResponse.prototype.text = function() {};\\n\\n/** @type {!ResponseType} */\\nResponse.prototype.type;\\n\\n/** @type {string} */\\nResponse.prototype.url;\\n\\n/** @type {boolean} */\\nResponse.prototype.redirected;\\n\\n/** @type {number} */\\nResponse.prototype.status;\\n\\n/** @type {boolean} */\\nResponse.prototype.ok;\\n\\n/** @type {string} */\\nResponse.prototype.statusText;\\n\\n/** @type {!Headers} */\\nResponse.prototype.headers;\\n\\n/** @type {?ReadableStream} */\\nResponse.prototype.body;\\n\\n/** @type {!Promise} */\\nResponse.prototype.trailer;\\n\\n/** @return {!Response} */\\nResponse.prototype.clone = function() {};\\n\\n\\n/**\\n * @record\\n * @see https://fetch.spec.whatwg.org/#responseinit\\n */\\nfunction ResponseInit() {};\\n\\n/** @type {(undefined|number)} */\\nResponseInit.prototype.status;\\n\\n/** @type {(undefined|string)} */\\nResponseInit.prototype.statusText;\\n\\n/** @type {(undefined|!HeadersInit)} */\\nResponseInit.prototype.headers;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#responsetype\\n * Possible values: 'basic', 'cors', 'default', 'error', 'opaque',\\n * 'opaqueredirect'\\n */\\nvar ResponseType;\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nfunction fetch(input, opt_init) {}\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nWindow.prototype.fetch = function(input, opt_init) {};\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nWorkerGlobalScope.prototype.fetch = function(input, opt_init) {};\\n\",\"externs/streamsapi.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Streams API definitions\\n *\\n * Based on Living Standard \u2014 Last Updated 5 August 2016\\n * https://streams.spec.whatwg.org/commit-snapshots/34ecaadbcce8df9943d7a2cdb7fca4dc25914df4/\\n *\\n * @see https://streams.spec.whatwg.org/\\n * @externs\\n */\\n\\n\\n/** @typedef {{ value:*, done:boolean }} */\\nvar IteratorResult;\\n\\n\\n/**\\n * @typedef {!CountQueuingStrategy|!ByteLengthQueuingStrategy|{\\n * size: (undefined|function(*): number),\\n * highWaterMark: number\\n * }}\\n */\\nvar QueuingStrategy;\\n\\n\\n/**\\n * @record\\n */\\nfunction TransformStream() {};\\n\\n/** @type {!WritableStream} */\\nTransformStream.prototype.writable;\\n\\n/** @type {!ReadableStream} */\\nTransformStream.prototype.readable;\\n\\n\\n/**\\n * @record\\n */\\nfunction PipeOptions() {};\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventClose;\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventAbort;\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventCancel;\\n\\n\\n/**\\n * @record\\n */\\nfunction ReadableStreamSource() {};\\n\\n/**\\n * @type {(undefined|\\n * function((!ReadableByteStreamController|!ReadableStreamDefaultController)):(!IThenable<*>|undefined))}\\n */\\nReadableStreamSource.prototype.start;\\n\\n/**\\n * @type {(undefined|\\n * function((!ReadableByteStreamController|!ReadableStreamDefaultController)):(!IThenable<*>|undefined))}\\n */\\nReadableStreamSource.prototype.pull;\\n\\n/** @type {(undefined|function(*):(!Promise<*>|undefined))} */\\nReadableStreamSource.prototype.cancel;\\n\\n/** @type {(undefined|string)} */\\nReadableStreamSource.prototype.type;\\n\\n/** @type {(undefined|number)} */\\nReadableStreamSource.prototype.autoAllocateChunkSize;\\n\\n\\n/**\\n * @param {!ReadableStreamSource=} opt_underlyingSource\\n * @param {!QueuingStrategy=} opt_queuingStrategy\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#rs-class\\n */\\nfunction ReadableStream(opt_underlyingSource, opt_queuingStrategy) {};\\n\\n/**\\n * @type {boolean}\\n * @see https://streams.spec.whatwg.org/#rs-locked\\n */\\nReadableStream.prototype.locked;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#rs-cancel\\n */\\nReadableStream.prototype.cancel = function(reason) {};\\n\\n/**\\n * @param {{ mode:(undefined|string) }=} opt_options\\n * @return {(!ReadableStreamDefaultReader|!ReadableStreamBYOBReader)}\\n * @see https://streams.spec.whatwg.org/#rs-get-reader\\n */\\nReadableStream.prototype.getReader = function(opt_options) {};\\n\\n/**\\n * @param {!TransformStream} transform\\n * @param {!PipeOptions=} opt_options\\n * @return {!ReadableStream}\\n * @see https://streams.spec.whatwg.org/#rs-pipe-through\\n */\\nReadableStream.prototype.pipeThrough = function(transform, opt_options) {};\\n\\n/**\\n * @param {!WritableStream} dest\\n * @param {!PipeOptions=} opt_options\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#rs-pipe-to\\n */\\nReadableStream.prototype.pipeTo = function(dest, opt_options) {};\\n\\n/**\\n * @return {!Array}\\n * @see https://streams.spec.whatwg.org/#rs-tee\\n */\\nReadableStream.prototype.tee = function() {};\\n\\n\\n/**\\n * The ReadableStreamDefaultReader constructor is generally not meant to be used directly;\\n * instead, a stream\u2019s getReader() method should be used.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#default-reader-class\\n */\\nfunction ReadableStreamDefaultReader() {};\\n\\n/**\\n * @type {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-reader-closed\\n */\\nReadableStreamDefaultReader.prototype.closed;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<*>}\\n * @see https://streams.spec.whatwg.org/#default-reader-cancel\\n */\\nReadableStreamDefaultReader.prototype.cancel = function(reason) {};\\n\\n/**\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-reader-read\\n */\\nReadableStreamDefaultReader.prototype.read = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#default-reader-release-lock\\n */\\nReadableStreamDefaultReader.prototype.releaseLock = function() {};\\n\\n\\n/**\\n * The ReadableStreamBYOBReader constructor is generally not meant to be used\\n * directly; instead, a stream\u2019s getReader() method should be used.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#byob-reader-class\\n */\\nfunction ReadableStreamBYOBReader() {};\\n\\n/**\\n * @type {!Promise}\\n * @see https://streams.spec.whatwg.org/#byob-reader-closed\\n */\\nReadableStreamBYOBReader.prototype.closed;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<*>}\\n * @see https://streams.spec.whatwg.org/#byob-reader-cancel\\n */\\nReadableStreamBYOBReader.prototype.cancel = function(reason) {};\\n\\n/**\\n * @param {!ArrayBufferView} view\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#byob-reader-read\\n */\\nReadableStreamBYOBReader.prototype.read = function(view) {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#byob-reader-release-lock\\n */\\nReadableStreamBYOBReader.prototype.releaseLock = function() {};\\n\\n\\n/**\\n * The ReadableStreamDefaultController constructor cannot be used directly;\\n * it only works on a ReadableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-class\\n */\\nfunction ReadableStreamDefaultController() {};\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-desired-size\\n */\\nReadableStreamDefaultController.prototype.desiredSize;\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-close\\n */\\nReadableStreamDefaultController.prototype.close = function() {};\\n\\n/**\\n * @param {*} chunk\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-enqueue\\n */\\nReadableStreamDefaultController.prototype.enqueue = function(chunk) {};\\n\\n/**\\n * @param {*} err\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-error\\n */\\nReadableStreamDefaultController.prototype.error = function(err) {};\\n\\n\\n/**\\n * The ReadableByteStreamController constructor cannot be used directly;\\n * it only works on a ReadableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rbs-controller-class\\n */\\nfunction ReadableByteStreamController() {};\\n\\n/**\\n * @type {!ReadableStreamBYOBRequest}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-byob-request\\n */\\nReadableByteStreamController.prototype.byobRequest;\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-desired-size\\n */\\nReadableByteStreamController.prototype.desiredSize;\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-close\\n */\\nReadableByteStreamController.prototype.close = function() {};\\n\\n/**\\n * @param {!ArrayBufferView} chunk\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-enqueue\\n */\\nReadableByteStreamController.prototype.enqueue = function(chunk) {};\\n\\n/**\\n * @param {*} err\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-error\\n */\\nReadableByteStreamController.prototype.error = function(err) {};\\n\\n\\n/**\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-class\\n */\\nfunction ReadableStreamBYOBRequest() {};\\n\\n/**\\n * @type {!ArrayBufferView}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-view\\n */\\nReadableStreamBYOBRequest.prototype.view;\\n\\n/**\\n * @param {number} bytesWritten\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-respond\\n */\\nReadableStreamBYOBRequest.prototype.respond = function(bytesWritten) {};\\n\\n/**\\n * @param {!ArrayBufferView} view\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-respond-with-new-view\\n */\\nReadableStreamBYOBRequest.prototype.respondWithNewView = function(view) {};\\n\\n\\n/**\\n * @record\\n */\\nfunction WritableStreamSink() {};\\n\\n/** @type {(undefined|function(!WritableStreamDefaultController):(!IThenable<*>|undefined))}*/\\nWritableStreamSink.prototype.start;\\n\\n/** @type {(undefined|function(!WritableStreamDefaultController):(!IThenable<*>|undefined))}*/\\nWritableStreamSink.prototype.write;\\n\\n/** @type {(undefined|function():(!IThenable<*>|undefined))} */\\nWritableStreamSink.prototype.close;\\n\\n/** @type {(undefined|function(*):(!IThenable<*>|undefined))} */\\nWritableStreamSink.prototype.abort;\\n\\n\\n/**\\n * @param {!WritableStreamSink=} opt_underlyingSink\\n * @param {!QueuingStrategy=} opt_queuingStrategy\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#ws-class\\n */\\nfunction WritableStream(opt_underlyingSink, opt_queuingStrategy) {};\\n\\n/**\\n * @type {boolean}\\n * @see https://streams.spec.whatwg.org/#ws-locked\\n */\\nWritableStream.prototype.locked;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#ws-abort\\n */\\nWritableStream.prototype.abort = function(reason) {};\\n\\n/**\\n * @return {!WritableStreamDefaultWriter}\\n * @see https://streams.spec.whatwg.org/#ws-get-writer\\n */\\nWritableStream.prototype.getWriter = function() {};\\n\\n\\n/**\\n * @interface\\n * @see https://streams.spec.whatwg.org/#default-writer-class\\n */\\nfunction WritableStreamDefaultWriter() {};\\n\\n/**\\n * @type {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-writer-closed\\n */\\nWritableStreamDefaultWriter.prototype.closed;\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#default-writer-desiredSize\\n */\\nWritableStreamDefaultWriter.prototype.desiredSize;\\n\\n/**\\n * @type {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-writer-ready\\n */\\nWritableStreamDefaultWriter.prototype.ready;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-writer-abort\\n */\\nWritableStreamDefaultWriter.prototype.ab"; a.a+="ort = function(reason) {};\\n\\n/**\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-writer-close\\n */\\nWritableStreamDefaultWriter.prototype.close = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#default-writer-release-lock\\n */\\nWritableStreamDefaultWriter.prototype.releaseLock = function() {};\\n\\n/**\\n * @param {*} chunk\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#default-writer-write\\n */\\nWritableStreamDefaultWriter.prototype.write = function(chunk) {};\\n\\n\\n/**\\n * The WritableStreamDefaultController constructor cannot be used directly;\\n * it only works on a WritableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#ws-default-controller-class\\n */\\nfunction WritableStreamDefaultController() {};\\n\\n/**\\n * @param {*} err\\n * @return {!Promise}\\n * @see https://streams.spec.whatwg.org/#ws-default-controller-error\\n */\\nWritableStreamDefaultController.prototype.error = function(err) {};\\n\\n\\n/**\\n * @param {{ highWaterMark:number }} config\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#blqs-class\\n */\\nfunction ByteLengthQueuingStrategy(config) {}\\n\\n/**\\n * If we don't want to be strict we can define chunk as {*}\\n * and return as {number|undefined}\\n *\\n * @param {{ byteLength:number }} chunk\\n * @return {number}\\n * @see https://streams.spec.whatwg.org/#blqs-size\\n */\\nByteLengthQueuingStrategy.prototype.size = function(chunk) {};\\n\\n\\n/**\\n * @param {{ highWaterMark:number }} config\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#cqs-class\\n */\\nfunction CountQueuingStrategy(config) {}\\n\\n/**\\n * @param {*} chunk\\n * @return {number}\\n * @see https://streams.spec.whatwg.org/#cqs-size\\n */\\nCountQueuingStrategy.prototype.size = function(chunk) {};\\n\",\"js/build_polyfill_table.js\":\"#!/usr/bin/env node\\n\\n/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'use strict';\\n\\nconst fs = require('fs');\\n\\n/**\\n * Provides an ordering to ensure lower-versioned polyfills don't\\n * depend on higher versions.\\n */\\nconst ORDER = ['es3', 'es5', 'es6'];\\n\\n/**\\n * Prints to stderr and exits.\\n * @param {string} message\\n */\\nfunction fail(message) {\\n console.error(message);\\n process.exit(1);\\n}\\n\\n/**\\n * Builds up a table of polyfills.\\n */\\nclass PolyfillTable {\\n constructor() {\\n /** @const {!Map>} */\\n this.symbolToFile = new Map();\\n /** @const {!Map>} */\\n this.deps = new Map();\\n /** @const {!Map} */\\n this.versions = new Map();\\n /** @const {!Array>} */\\n this.rows = [];\\n }\\n\\n /**\\n * Returns a shim for $jscomp.polyfill.\\n * @param {string} lib Library currently being scanned.\\n * @return {function(string, ?Function, string, string)}\\n */\\n polyfill(lib) {\\n return (polyfill, impl, fromLang, toLang) => {\\n this.symbolToFile.set(polyfill, this.symbolToFile.get(polyfill) || []);\\n this.symbolToFile.get(polyfill).push(lib);\\n const row = [polyfill, fromLang, toLang];\\n if (impl) {\\n row.push(lib);\\n this.versions.set(lib, maxVersion(this.versions.get(lib), toLang));\\n }\\n this.rows.push(row);\\n };\\n }\\n\\n /**\\n * Reads a JS file and adds it to the table.\\n * @param {string} lib Name of the library.\\n * @param {string} data Contents of the file.\\n */\\n readFile(lib, data) {\\n // Look for 'require' directives and add it to the dependency map.\\n const deps = new Set();\\n this.deps.set(lib, deps);\\n const re = /'require ([^']+)'/g;\\n let match;\\n while (match = re.exec(data)) {\\n match[1].split(' ').forEach(dep => deps.add(dep));\\n }\\n // Now run the file.\\n try {\\n new Function('$jscomp', data)({\\n global: global,\\n polyfill: this.polyfill(lib, table),\\n });\\n } catch (err) {\\n throw new Error('Failed to parse file: ' + lib + ': ' + err);\\n }\\n }\\n\\n /**\\n * Concatenates the table into a string. Throws an error if\\n * there are any symbols provided by multiple files.\\n * @return {string}\\n */\\n build() {\\n const errors = new Set();\\n try {\\n // First check for duplicate provided symbols.\\n for (const entry of this.symbolToFile.entries()) {\\n if (entry[1].length != 1) {\\n errors.add(\\n `ERROR - ${entry[0]} provided by multiple files:${\\n entry[1].map(f => '\\\\n ' + f).join('')}`);\\n }\\n }\\n // Next ensure all deps have nonincreasing versions.\\n checkDeps(errors, this.deps, this.versions);\\n // If there are any errors, we should fail; otherwise concatenate.\\n } catch (err) {\\n errors.add('ERROR - uncaught exception: ' + err.stack);\\n }\\n if (errors.size) {\\n fail(Array.from(errors).join('\\\\n\\\\n'));\\n }\\n return this.rows.sort().map(row => row.join(' ')).join('\\\\n');\\n }\\n}\\n\\n/**\\n * Checks dependencies for the following issues:\\n * (1) cyclic dependencies\\n * (2) missing dependencies\\n * (3) version mismatches\\n * @param {!Set} errors\\n * @param {!Map>} deps\\n * @param {!Map} versions\\n */\\nfunction checkDeps(errors, deps, versions) {\\n for (const file of deps.keys()) {\\n const seen = new Set([file]);\\n const queue = [file];\\n const version = versions.get(file);\\n while (queue.length) {\\n const next = queue.shift();\\n for (const dep of deps.get(next) || []) {\\n if (dep == file) errors.add('ERROR - Cyclic dependency:\\\\n ' + dep);\\n if (seen.has(dep)) continue;\\n seen.add(dep);\\n queue.push(dep);\\n if (!deps.has(dep)) {\\n errors.add(\\n 'ERROR - missing dependency:\\\\n ' + dep +\\n ' required from\\\\n ' + file);\\n }\\n const depVersion = versions.get(dep);\\n if (version && maxVersion(depVersion, version) != version) {\\n errors.add(\\n 'ERROR - lower version depends on higher version:\\\\n ' +\\n version + ': ' + file + '\\\\n ' + depVersion + ': ' + dep);\\n }\\n }\\n }\\n }\\n}\\n\\n/**\\n * Returns the higher order of the given versions.\\n * @param {string} version1\\n * @param {string} version2\\n * @return {string} The max version.\\n */\\nfunction maxVersion(version1, version2) {\\n return ORDER[Math.max(ORDER.indexOf(version1), ORDER.indexOf(version2))];\\n}\\n\\nconst table = new PolyfillTable();\\n\\nconst reads = process.argv.slice(2).map(filename =>\\n new Promise((fulfill, reject) =>\\n fs.readFile(filename, 'utf8', (err, data) => {\\n try {\\n if (err) {\\n reject(err);\\n } else {\\n const lib = filename.replace(/^.*?\\\\/js\\\\/|\\\\.js$/g, '');\\n table.readFile(lib, data);\\n fulfill('');\\n }\\n } catch (err) {\\n reject(err);\\n }\\n })));\\n\\nPromise.all(reads).then(\\n success => console.log(table.build()),\\n failure => fail(failure.stack));\\n\",\"js/polyfills.txt\":\"Array.from es6 es3 es6/array/from\\nArray.of es6 es3 es6/array/of\\nArray.prototype.copyWithin es6 es3 es6/array/copywithin\\nArray.prototype.entries es6 es3 es6/array/entries\\nArray.prototype.fill es6 es3 es6/array/fill\\nArray.prototype.find es6 es3 es6/array/find\\nArray.prototype.findIndex es6 es3 es6/array/findindex\\nArray.prototype.includes es7 es3 es6/array/includes\\nArray.prototype.keys es6 es3 es6/array/keys\\nArray.prototype.values es6 es3 es6/array/values\\nMap es6 es3 es6/map\\nMath.acosh es6 es3 es6/math/acosh\\nMath.asinh es6 es3 es6/math/asinh\\nMath.atanh es6 es3 es6/math/atanh\\nMath.cbrt es6 es3 es6/math/cbrt\\nMath.clz32 es6 es3 es6/math/clz32\\nMath.cosh es6 es3 es6/math/cosh\\nMath.expm1 es6 es3 es6/math/exp1m\\nMath.hypot es6 es3 es6/math/hypot\\nMath.imul es6 es3 es6/math/imul\\nMath.log10 es6 es3 es6/math/log10\\nMath.log1p es6 es3 es6/math/log1p\\nMath.log2 es6 es3 es6/math/log2\\nMath.sign es6 es3 es6/math/sign\\nMath.sinh es6 es3 es6/math/sinh\\nMath.tanh es6 es3 es6/math/tanh\\nMath.trunc es6 es3 es6/math/trunc\\nNumber.EPSILON es6 es3 es6/number/constants\\nNumber.MAX_SAFE_INTEGER es6 es3 es6/number/constants\\nNumber.MIN_SAFE_INTEGER es6 es3 es6/number/constants\\nNumber.isFinite es6 es3 es6/number/isfinite\\nNumber.isInteger es6 es3 es6/number/isinteger\\nNumber.isNaN es6 es3 es6/number/isnan\\nNumber.isSafeInteger es6 es3 es6/number/issafeinteger\\nObject.assign es6 es3 es6/object/assign\\nObject.entries es8 es3 es6/object/entries\\nObject.getOwnPropertyDescriptors es8 es5 es6/object/getownpropertydescriptors\\nObject.getOwnPropertySymbols es6 es5 es6/object/getownpropertysymbols\\nObject.is es6 es3 es6/object/is\\nObject.setPrototypeOf es6 es5 es6/object/setprototypeof\\nObject.values es8 es3 es6/object/values\\nPromise es6 es3 es6/promise\\nProxy es6 es6\\nReflect.apply es6 es3 es6/reflect/apply\\nReflect.construct es6 es3 es6/reflect/construct\\nReflect.defineProperty es6 es5 es6/reflect/defineproperty\\nReflect.deleteProperty es6 es3 es6/reflect/deleteproperty\\nReflect.get es6 es5 es6/reflect/get\\nReflect.getOwnPropertyDescriptor es6 es5 es6/reflect/getownpropertydescriptor\\nReflect.getPrototypeOf es6 es5 es6/reflect/getprototypeof\\nReflect.has es6 es3 es6/reflect/has\\nReflect.isExtensible es6 es3 es6/reflect/isextensible\\nReflect.ownKeys es6 es5 es6/reflect/ownkeys\\nReflect.preventExtensions es6 es3 es6/reflect/preventextensions\\nReflect.set es6 es5 es6/reflect/set\\nReflect.setPrototypeOf es6 es5 es6/reflect/setprototypeof\\nSet es6 es3 es6/set\\nString.fromCodePoint es6 es3 es6/string/fromcodepoint\\nString.prototype.codePointAt es6 es3 es6/string/codepointat\\nString.prototype.endsWith es6 es3 es6/string/endswith\\nString.prototype.includes es6 es3 es6/string/includes\\nString.prototype.normalize es6 es6\\nString.prototype.padEnd es8 es3 es6/string/padend\\nString.prototype.padStart es8 es3 es6/string/padstart\\nString.prototype.repeat es6 es3 es6/string/repeat\\nString.prototype.startsWith es6 es3 es6/string/startswith\\nString.raw es6 es6\\nWeakMap es6 es3 es6/weakmap\\nWeakSet es6 es3 es6/weakset\\n\",\"js/base.js\":\"/*\\n * Copyright 2012 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview The base namespace for code injected by the compiler\\n * at compile-time.\\n *\\n * @author nicksantos@google.com (Nick Santos)\\n */\\n\\n/** @const */\\nvar $jscomp = $jscomp || {};\\n\\n/** @const Locals for goog.scope */\\n$jscomp.scope = {};\\n\",\"js/es6/array.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Array polyfills.\\n */\\n'require es6/array/copywithin';\\n'require es6/array/entries';\\n'require es6/array/fill';\\n'require es6/array/find';\\n'require es6/array/findindex';\\n'require es6/array/from';\\n'require es6/array/includes';\\n'require es6/array/keys';\\n'require es6/array/of';\\n'require es6/array/values';\\n\",\"js/es6/array/copywithin.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.copyWithin', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Copies elements from one part of the array to another.\\n *\\n * @this {!IArrayLike}\\n * @param {number} target Start index to copy elements to.\\n * @param {number} start Start index to copy elements from.\\n * @param {number=} opt_end Index from which to end copying.\\n * @return {!IArrayLike} The array, with the copy performed in-place.\\n * @template VALUE\\n */\\n var polyfill = function(target, start, opt_end) {\\n var len = this.length;\\n target = Number(target);\\n start = Number(start);\\n opt_end = Number(opt_end != null ? opt_end : len);\\n if (target < start) {\\n opt_end = Math.min(opt_end, len);\\n while (start < opt_end) {\\n if (start in this) {\\n this[target++] = this[start++];\\n } else {\\n delete this[target++];\\n start++;\\n }\\n }\\n } else {\\n opt_end = Math.min(opt_end, len + start - target);\\n target += opt_end - start;\\n while (opt_end > start) {\\n if (--opt_end in this) {\\n this[--target] = this[opt_end];\\n } else {\\n delete this[target];\\n }\\n }\\n }\\n return this;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/entries.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n'require es6/util/iteratorfromarray';\\n\\n$jscomp.polyfill('Array.prototype.entries', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of [key, value] arrays, one for each entry\\n * in the given array.\\n *\\n * @this {!IArrayLike}\\n * @return {!IteratorIterable>}\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(\\n this, function(i, v) { return [i, v]; });\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/fill.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is di"; a.a+="stributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.fill', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Fills elements of an array with a constant value.\\n *\\n * @this {!IArrayLike}\\n * @param {VALUE} value Value to fill.\\n * @param {number=} opt_start Start index, or zero if omitted.\\n * @param {number=} opt_end End index, or length if omitted.\\n * @return {!IArrayLike} The array, with the fill performed in-place.\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(value, opt_start, opt_end) {\\n var length = this.length || 0;\\n if (opt_start < 0) {\\n opt_start = Math.max(0, length + /** @type {number} */ (opt_start));\\n }\\n if (opt_end == null || opt_end > length) opt_end = length;\\n opt_end = Number(opt_end);\\n if (opt_end < 0) opt_end = Math.max(0, length + opt_end);\\n for (var i = Number(opt_start || 0); i < opt_end; i++) {\\n this[i] = value;\\n }\\n return this;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/find.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/findinternal';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.find', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Finds and returns an element that satisfies the given predicate.\\n *\\n * @this {!IArrayLike}\\n * @param {function(this: THIS, VALUE, number, !IArrayLike): *}\\n * callback\\n * @param {THIS=} opt_thisArg\\n * @return {VALUE|undefined} The found value, or undefined.\\n * @template VALUE, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(callback, opt_thisArg) {\\n return $jscomp.findInternal(this, callback, opt_thisArg).v;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/findindex.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/findinternal';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.findIndex', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Finds an element that satisfies the given predicate, returning its index.\\n *\\n * @this {!IArrayLike}\\n * @param {function(this: THIS, VALUE, number, !IArrayLike): *}\\n * callback\\n * @param {THIS=} opt_thisArg\\n * @return {number} The found value, or undefined.\\n * @template VALUE, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(callback, opt_thisArg) {\\n return $jscomp.findInternal(this, callback, opt_thisArg).i;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/from.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.from', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates a new Array from an array-like or iterable object.\\n *\\n *

Polyfills the static function Array.from(). Does not support\\n * constructor inheritance (i.e. (subclass of Array).from), and\\n * relies on the compiler to check the validity of inputs rather\\n * than producing spec-compliant TypeErrors.\\n *\\n * @param {!IArrayLike|!Iterable} arrayLike\\n * An array-like or iterable.\\n * @param {(function(this: THIS, INPUT): OUTPUT)=} opt_mapFn\\n * Function to call on each argument.\\n * @param {THIS=} opt_thisArg\\n * Object to use as 'this' when calling mapFn.\\n * @return {!Array}\\n * @template INPUT, OUTPUT, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(arrayLike, opt_mapFn, opt_thisArg) {\\n $jscomp.initSymbolIterator();\\n opt_mapFn = opt_mapFn != null ? opt_mapFn : function(x) { return x; };\\n var result = [];\\n // NOTE: this is cast to ? because [] on @struct is an error\\n var iteratorFunction = /** @type {?} */ (arrayLike)[Symbol.iterator];\\n if (typeof iteratorFunction == 'function') {\\n arrayLike = iteratorFunction.call(arrayLike);\\n var next;\\n while (!(next = arrayLike.next()).done) {\\n result.push(\\n opt_mapFn.call(/** @type {?} */ (opt_thisArg), next.value));\\n }\\n } else {\\n var len = arrayLike.length; // need to support non-iterables\\n for (var i = 0; i < len; i++) {\\n result.push(\\n opt_mapFn.call(/** @type {?} */ (opt_thisArg), arrayLike[i]));\\n }\\n }\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/includes.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/object/is';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.includes', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills Array.prototype.includes.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes\\n *\\n * @this {!IArrayLike}\\n * @param {T} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {boolean}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n var includes = function(searchElement, opt_fromIndex) {\\n var array = this;\\n if (array instanceof String) {\\n array = /** @type {!IArrayLike} */ (String(array));\\n }\\n var len = array.length;\\n for (var i = opt_fromIndex || 0; i < len; i++) {\\n if (array[i] == searchElement || Object.is(array[i], searchElement)) {\\n return true;\\n }\\n }\\n return false;\\n };\\n\\n return includes;\\n}, 'es7', 'es3');\\n\",\"js/es6/array/keys.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/util/iteratorfromarray';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.keys', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of keys of the given array.\\n *\\n * @this {!IArrayLike}\\n * @return {!IteratorIterable}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(this, function(i) { return i; });\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/of.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/array/from';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.of', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates an array from a fixed set of arguments.\\n *\\n *

Polyfills the static function Array.of(). Does not support\\n * constructor inheritance (i.e. (subclass of Array).of).\\n *\\n * @param {...T} var_args Elements to include in the array.\\n * @return {!Array}\\n * @template T\\n */\\n var polyfill = function(var_args) {\\n return Array.from(arguments);\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/values.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/util/iteratorfromarray';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.values', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of values of the given array.\\n *\\n * @this {!IArrayLike}\\n * @return {!IteratorIterable}\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(this, function(k, v) { return v; });\\n };\\n\\n return polyfill;\\n // NOTE: 'es6' here is incorrect, since this method is not actually supported\\n // in current versions of Chrome and FF (due to web compatibility).\\n}, 'es6', 'es3');\\n\",\"js/es6/execute_async_generator.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n'require es6/promise';\\n\\n/**\\n * Handle the execution of an async function.\\n *\\n * An async function, foo(a, b), will be rewritten as:\\n *\\n * ```\\n * function foo(a, b) {\\n * let $jscomp$async$arguments = arguments;\\n * let $jscomp$async$this = this;\\n * function* $jscomp$async$generator() {\\n * // original body of foo() with:\\n * // - await (x) replaced with yield (x)\\n * // - arguments replaced with $jscomp$async$arguments\\n * // - this replaced with $jscomp$async$this\\n * }\\n * return $jscomp.executeAsyncGenerator($jscomp$async$generator());\\n * }\\n * ```\\n * @param {!Generator} generator\\n * @return {!Promise}\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.executeAsyncGenerator = function(generator) {\\n function passValueToGenerator(value) {\\n return generator.next(value);\\n }\\n\\n function passErrorToGenerator(error) {\\n return generator.throw(error);\\n }\\n\\n return new Promise(function(resolve, reject) {\\n function handleGeneratorRecord(/** !IIterableResult<*> */ genRec) {\\n if (genRec.done) {\\n resolve(genRec.value);\\n } else {\\n // One can await a non-promise, so genRec.value\\n // might not already be a promise.\\n Promise.resolve(genRec.value)\\n .then(passValueToGenerator, passErrorToGenerator)\\n .then(handleGeneratorRecord, reject);\\n }\\n }\\n\\n handleGeneratorRecord(generator.next());\\n });\\n};\\n\",\"js/es6/map.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require es6/weakmap';\\n'require util/defines';\\n'require util/owns';\\n'require util/polyfill';\\n\\n\\n/**\\n * Internal record type for entries.\\n * @record\\n * @template KEY, VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.MapEntry = function() {\\n /** @type {!$jscomp.MapEntry} */\\n this.previous;\\n /** @type {!$jscomp.MapEntry} */\\n this.next;\\n /** @type {?Object} */\\n this.head;\\n /** @type {KEY} */\\n this.key;\\n /** @type {VALUE} */\\n this.value;\\n};\\n\\n\\n$jscomp.polyfill('Map',\\n /**\\n * @param {*} NativeMap\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeMap) {\\n // Perform a conformance check to ensure correct native implementation.\\n var isConformant = !$jscomp.ASSUME_NO_NATIVE_MAP && (function() {\\n if (!NativeMap ||\\n !NativeMap.prototype.entries ||\\n typeof Object.seal != 'function') {\\n return false;\\n }\\n // Some implementations don't support constructor arguments.\\n try {\\n NativeMap = /** @type {function(new: Map, !Iterator=)} */ (NativeMap);\\n var key = Object.seal({x: 4});\\n var map = new NativeMap($jscomp.makeIterator([[key, 's']]));\\n if (map.get(key) != 's' || map.size != 1 || map.get({x: 4}) ||\\n map.set({x: 4}, 't') != map || map.size != 2) {\\n return false;\\n }\\n var /** !Iterator */ iter = map.entries();\\n var item = iter.next();\\n if (item.done || item.value[0] != key || item.value[1] != 's') {\\n return false;\\n }\\n item = iter.next();\\n if (item.done || item.value[0].x != 4 ||\\n item.value[1] != 't' || !iter.next().done) {\\n return false;\\n }\\n return true;\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return f"; a.a+="alse;\\n }\\n })();\\n if (isConformant) return NativeMap;\\n\\n // We depend on Symbol.iterator, so ensure it's loaded.\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n\\n\\n /** @const {!WeakMap} */\\n var idMap = new WeakMap();\\n\\n\\n /**\\n * Polyfill for the global Map data type.\\n * @constructor\\n * @struct\\n * @extends {Map}\\n * @implements {Iterable>}\\n * @template KEY, VALUE\\n * @param {!Iterable>|!Array>|null=}\\n * opt_iterable Optional data to populate the map.\\n */\\n // TODO(sdh): fix param type if heterogeneous arrays ever supported.\\n var PolyfillMap = function(opt_iterable) {\\n /** @private {!Object>>} */\\n this.data_ = {};\\n\\n /** @private {!$jscomp.MapEntry} */\\n this.head_ = createHead();\\n\\n // Note: this property should not be changed. If we're willing to give up\\n // ES3 support, we could define it as a property directly. It should be\\n // marked readonly if such an annotation ever comes into existence.\\n /** @type {number} */\\n this.size = 0;\\n\\n if (opt_iterable) {\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item =\\n /** @type {!IIterableResult>} */ (entry).value;\\n this.set(/** @type {KEY} */ (item[0]), /** @type {VALUE} */ (item[1]));\\n }\\n }\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.set = function(key, value) {\\n var r = maybeGetEntry(this, key);\\n if (!r.list) {\\n r.list = (this.data_[r.id] = []);\\n }\\n if (!r.entry) {\\n r.entry = {\\n next: this.head_,\\n previous: this.head_.previous,\\n head: this.head_,\\n key: key,\\n value: value,\\n };\\n r.list.push(r.entry);\\n this.head_.previous.next = r.entry;\\n this.head_.previous = r.entry;\\n this.size++;\\n } else {\\n r.entry.value = value;\\n }\\n return this;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.delete = function(key) {\\n var r = maybeGetEntry(this, key);\\n if (r.entry && r.list) {\\n r.list.splice(r.index, 1);\\n if (!r.list.length) delete this.data_[r.id];\\n r.entry.previous.next = r.entry.next;\\n r.entry.next.previous = r.entry.previous;\\n r.entry.head = null;\\n this.size--;\\n return true;\\n }\\n return false;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.clear = function() {\\n this.data_ = {};\\n this.head_ = this.head_.previous = createHead();\\n this.size = 0;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.has = function(key) {\\n return !!(maybeGetEntry(this, key).entry);\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.get = function(key) {\\n var entry = maybeGetEntry(this, key).entry;\\n // NOTE: this cast is a lie, but so is the extern.\\n return /** @type {VALUE} */ (entry &&\\n /** @type {VALUE} */ (entry.value));\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.entries = function() {\\n return makeIterator(this, /** @return {!Array<(KEY|VALUE)>} */ function(\\n /** !$jscomp.MapEntry */ entry) {\\n return ([entry.key, entry.value]);\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.keys = function() {\\n return makeIterator(this, /** @return {KEY} */ function(\\n /** !$jscomp.MapEntry */ entry) {\\n return entry.key;\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.values = function() {\\n return makeIterator(this, /** @return {VALUE} */ function(\\n /** !$jscomp.MapEntry */ entry) {\\n return entry.value;\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.forEach = function(callback, opt_thisArg) {\\n var iter = this.entries();\\n var item;\\n while (!(item = iter.next()).done) {\\n var entry = item.value;\\n callback.call(\\n /** @type {?} */ (opt_thisArg),\\n /** @type {VALUE} */ (entry[1]),\\n /** @type {KEY} */ (entry[0]),\\n this);\\n }\\n };\\n\\n\\n /** @type {?} */ (PolyfillMap.prototype)[Symbol.iterator] =\\n PolyfillMap.prototype.entries;\\n\\n\\n /**\\n * Returns an entry or undefined.\\n * @param {!PolyfillMap} map\\n * @param {KEY} key\\n * @return {{id: string,\\n * list: (!Array>|undefined),\\n * index: number,\\n * entry: (!$jscomp.MapEntry|undefined)}}\\n * @template KEY, VALUE\\n */\\n var maybeGetEntry = function(map, key) {\\n var id = getId(key);\\n var list = map.data_[id];\\n if (list && $jscomp.owns(map.data_, id)) {\\n for (var index = 0; index < list.length; index++) {\\n var entry = list[index];\\n if ((key !== key && entry.key !== entry.key) || key === entry.key) {\\n return {id: id, list: list, index: index, entry: entry};\\n }\\n }\\n }\\n return {id: id, list: list, index: -1, entry: undefined};\\n };\\n\\n\\n /**\\n * Maps over the entries with the given function.\\n * @param {!PolyfillMap} map\\n * @param {function(!$jscomp.MapEntry): T} func\\n * @return {!IteratorIterable}\\n * @template KEY, VALUE, T\\n * @private\\n */\\n var makeIterator = function(map, func) {\\n var entry = map.head_;\\n return $jscomp.iteratorPrototype(function() {\\n if (entry) {\\n while (entry.head != map.head_) {\\n entry = entry.previous;\\n }\\n while (entry.next != entry.head) {\\n entry = entry.next;\\n return {done: false, value: func(entry)};\\n }\\n entry = null; // make sure depletion is permanent\\n }\\n return {done: true, value: void 0};\\n });\\n };\\n\\n\\n /**\\n * Makes a new \\\"head\\\" element.\\n * @return {!$jscomp.MapEntry}\\n * @template KEY, VALUE\\n * @suppress {checkTypes} ignore missing key/value for head only\\n */\\n var createHead = function() {\\n var head = /** type {!$jscomp.MapEntry} */ ({});\\n head.previous = head.next = head.head = head;\\n return head;\\n };\\n\\n\\n /**\\n * Counter for generating IDs.\\n * @private {number}\\n */\\n var mapIndex = 0;\\n\\n\\n /**\\n * @param {*} obj An extensible object.\\n * @return {string} A unique ID.\\n */\\n var getId = function(obj) {\\n var type = obj && typeof obj;\\n if (type == 'object' || type == 'function') {\\n obj = /** @type {!Object} */ (obj);\\n if (!idMap.has(obj)) {\\n var id = '' + (++mapIndex);\\n idMap.set(obj, id);\\n return id;\\n }\\n return idMap.get(obj);\\n }\\n // Add a prefix since obj could be '__proto__';\\n return 'p_' + obj;\\n };\\n\\n\\n return PolyfillMap;\\n}, 'es6', 'es3');\\n\",\"js/es6/math.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Math polyfills.\\n */\\n'require es6/math/acosh';\\n'require es6/math/asinh';\\n'require es6/math/atanh';\\n'require es6/math/cbrt';\\n'require es6/math/clz32';\\n'require es6/math/cosh';\\n'require es6/math/exp1m';\\n'require es6/math/hypot';\\n'require es6/math/imul';\\n'require es6/math/log10';\\n'require es6/math/log1p';\\n'require es6/math/log2';\\n'require es6/math/sign';\\n'require es6/math/sinh';\\n'require es6/math/tanh';\\n'require es6/math/trunc';\\n\",\"js/es6/math/acosh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.acosh', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Computes the inverse hyperbolic cosine.\\n *\\n *

Polyfills the static function Math.acosh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic cosine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return Math.log(x + Math.sqrt(x * x - 1));\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/asinh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.asinh', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Computes the inverse hyperbolic sine.\\n *\\n *

Polyfills the static function Math.asinh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic sine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n if (x === 0) return x;\\n var y = Math.log(Math.abs(x) + Math.sqrt(x * x + 1));\\n return x < 0 ? -y : y;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/atanh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n'require es6/math/log1p';\\n\\n$jscomp.polyfill('Math.atanh', function(orig) {\\n if (orig) return orig;\\n var log1p = Math.log1p;\\n\\n /**\\n * Computes the inverse hyperbolic tangent.\\n *\\n *

Polyfills the static function Math.atanh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic tangent +x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return (log1p(x) - log1p(-x)) / 2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/cbrt.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.cbrt', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the cube root of the number, handling negatives safely.\\n *\\n *

Polyfills the static function Math.cbrt().\\n *\\n * @param {number} x Any number, or value that can be coerced into a number.\\n * @return {number} The cube root of x.\\n */\\n var polyfill = function(x) {\\n if (x === 0) return x;\\n x = Number(x);\\n var y = Math.pow(Math.abs(x), 1 / 3);\\n return x < 0 ? -y : y;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/clz32.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.clz32', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Counts the leading zeros in the 32-bit binary representation.\\n *\\n *

Polyfills the static function Math.clz32().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The number of leading zero bits.\\n */\\n var polyfill = function(x) {\\n // This binary search algorithm is taken from v8.\\n x = Number(x) >>> 0; // first ensure we have a 32-bit unsigned integer.\\n if (x === 0) return 32;\\n var result = 0;\\n if ((x & 0xFFFF0000) === 0) {\\n x <<= 16;\\n result += 16;\\n }\\n if ((x & 0xFF000000) === 0) {\\n x <<= 8;\\n result += 8;\\n }\\n if ((x & 0xF0000000) === 0) {\\n x <<= 4;\\n result += 4;\\n }\\n if ((x & 0xC0000000) === 0) {\\n x <<= 2;\\n result += 2;\\n }\\n if ((x & 0x80000000) === 0) result++;\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/cosh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.cosh', function(orig) {\\n if (orig) return orig;\\n var exp = Math.exp;\\n\\n /**\\n * Computes the hyperbolic cosine.\\n *\\n *

Polyfills the static function Math.cosh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The hyperbolic cosine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return (exp(x) + exp(-x)) / 2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/exp1m.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n "; a.a+="* limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.expm1', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Exponentiates x and then subtracts one. This is implemented in a\\n * way that is accurate for numbers close to zero.\\n *\\n *

Polyfills the static function Math.expm1().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The exponential of x, less 1.\\n */\\n var polyfill = function(x) {\\n // This implementation is based on the Taylor expansion\\n // exp(x) ~ 1 + x + x^2/2 + x^3/6 + x^4/24 + ...\\n x = Number(x);\\n if (x < .25 && x > -.25) {\\n var y = x;\\n var d = 1;\\n var z = x;\\n var zPrev = 0;\\n while (zPrev != z) {\\n y *= x / (++d);\\n z = (zPrev = z) + y;\\n }\\n return z;\\n }\\n return Math.exp(x) - 1;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/hypot.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.hypot', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the sum of its arguments in quadrature.\\n *\\n *

Polyfills the static function Math.hypot().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @param {number} y Any number, or value that can be coerced to a number.\\n * @param {...*} var_args More numbers.\\n * @return {number} The square root of the sum of the squares.\\n */\\n var polyfill = function(x, y, var_args) {\\n // Make the type checker happy.\\n x = Number(x);\\n y = Number(y);\\n var i, z, sum;\\n // Note: we need to normalize the numbers in case of over/underflow.\\n var max = Math.max(Math.abs(x), Math.abs(y));\\n for (i = 2; i < arguments.length; i++) {\\n max = Math.max(max, Math.abs(arguments[i]));\\n }\\n if (max > 1e100 || max < 1e-100) {\\n x = x / max;\\n y = y / max;\\n sum = x * x + y * y;\\n for (i = 2; i < arguments.length; i++) {\\n z = Number(arguments[i]) / max;\\n sum += z * z;\\n }\\n return Math.sqrt(sum) * max;\\n } else {\\n sum = x * x + y * y;\\n for (i = 2; i < arguments.length; i++) {\\n z = Number(arguments[i]);\\n sum += z * z;\\n }\\n return Math.sqrt(sum);\\n }\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/imul.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.imul', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Performs C-like 32-bit signed integer multiplication.\\n *\\n *

Polyfills the static function Math.imul().\\n *\\n * @param {number} a Any number, or value that can be coerced to a number.\\n * @param {number} b Any number, or value that can be coerced to a number.\\n * @return {number} The 32-bit integer product of a and b.\\n */\\n var polyfill = function(a, b) {\\n // This algorithm is taken from v8.\\n // Note: If multiplication overflows 32 bits, then we risk losing\\n // precision. We must therefore break the inputs into 16-bit\\n // words and multiply separately.\\n a = Number(a);\\n b = Number(b);\\n var ah = (a >>> 16) & 0xFFFF; // Treat individual words as unsigned\\n var al = a & 0xFFFF;\\n var bh = (b >>> 16) & 0xFFFF;\\n var bl = b & 0xFFFF;\\n var lh = ((ah * bl + al * bh) << 16) >>> 0; // >>> 0 casts to uint\\n return (al * bl + lh) | 0; // | 0 casts back to signed\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/log10.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.log10', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the base-10 logarithm.\\n *\\n *

Polyfills the static function Math.log10().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The common log of x.\\n */\\n var polyfill = function(x) {\\n return Math.log(x) / Math.LN10;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/log1p.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.log1p', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the natural logarithm of 1+x, implemented in a way that is\\n * accurate for numbers close to zero.\\n *\\n *

Polyfills the static function Math.log1p().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The natural log of 1+x.\\n */\\n var polyfill = function(x) {\\n // This implementation is based on the Taylor expansion\\n // log(1 + x) ~ x - x^2/2 + x^3/3 - x^4/4 + x^5/5 - ...\\n x = Number(x);\\n if (x < 0.25 && x > -0.25) {\\n var y = x;\\n var d = 1;\\n var z = x;\\n var zPrev = 0;\\n var s = 1;\\n while (zPrev != z) {\\n y *= x;\\n s *= -1;\\n z = (zPrev = z) + s * y / (++d);\\n }\\n return z;\\n }\\n return Math.log(1 + x);\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/log2.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.log2', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the base-2 logarithm.\\n *\\n *

Polyfills the static function Math.log2().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The base-2 log of x.\\n */\\n var polyfill = function(x) {\\n return Math.log(x) / Math.LN2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/sign.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.sign', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the sign of the number, indicating whether it is\\n * positive, negative, or zero.\\n *\\n *

Polyfills the static function Math.sign().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The sign, +1 if x is positive, -1 if x is\\n * negative, or 0 if x is zero.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return x === 0 || isNaN(x) ? x : x > 0 ? 1 : -1;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/sinh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.sinh', function(orig) {\\n if (orig) return orig;\\n var exp = Math.exp;\\n\\n /**\\n * Computes the hyperbolic sine.\\n *\\n *

Polyfills the static function Math.sinh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The hyperbolic sine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n if (x === 0) return x;\\n return (exp(x) - exp(-x)) / 2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/tanh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.tanh', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Computes the hyperbolic tangent.\\n *\\n *

Polyfills the static function Math.tanh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The hyperbolic tangent of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n if (x === 0) return x;\\n // Ensure exponent is negative to prevent overflow.\\n var y = Math.exp(-2 * Math.abs(x));\\n var z = (1 - y) / (1 + y);\\n return x < 0 ? -z : z;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/trunc.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.trunc', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Truncates any fractional digits from its argument (towards zero).\\n *\\n *

Polyfills the static function Math.trunc().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number}\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n if (isNaN(x) || x === Infinity || x === -Infinity || x === 0) return x;\\n var y = Math.floor(Math.abs(x));\\n return x < 0 ? -y : y;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/nopolyfill.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview Specifies objects that the compiler does NOT polyfill.\\n * NOTE: this file should never be injected, since all the implementations\\n * are null.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Proxy', null, 'es6', 'es6');\\n\\n$jscomp.polyfill('String.raw', null, 'es6', 'es6');\\n$jscomp.polyfill('String.prototype.normalize', null, 'es6', 'es6');\\n\",\"js/es6/number.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Number polyfills.\\n */\\n'require es6/number/constants';\\n'require es6/number/isfinite';\\n'require es6/number/isinteger';\\n'require es6/number/isnan';\\n'require es6/number/issafeinteger';\\n\",\"js/es6/number/constants.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Number.EPSILON', function(orig) {\\n /**\\n * The difference 1 and the smallest number greater than 1.\\n *\\n *

Polyfills the static field Num"; a.a+="ber.EPSILON.\\n */\\n return Math.pow(2, -52);\\n}, 'es6', 'es3');\\n\\n\\n$jscomp.polyfill('Number.MAX_SAFE_INTEGER', function() {\\n /**\\n * The maximum safe integer, 2^53 - 1.\\n *\\n *

Polyfills the static field Number.MAX_SAFE_INTEGER.\\n */\\n return 0x1fffffffffffff;\\n}, 'es6', 'es3');\\n\\n\\n$jscomp.polyfill('Number.MIN_SAFE_INTEGER', function() {\\n /**\\n * The minimum safe integer, -(2^53 - 1).\\n *\\n *

Polyfills the static field Number.MIN_SAFE_INTEGER.\\n */\\n return -0x1fffffffffffff;\\n}, 'es6', 'es3');\\n\",\"js/es6/number/isfinite.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Number.isFinite', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns whether the given argument is a finite number.\\n *\\n *

Polyfills the static function Number.isFinite().\\n *\\n * @param {number} x Any value.\\n * @return {boolean} True if x is a number and not NaN or infinite.\\n */\\n var polyfill = function(x) {\\n if (typeof x !== 'number') return false;\\n return !isNaN(x) && x !== Infinity && x !== -Infinity;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/number/isinteger.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/number/isfinite';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Number.isInteger', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns whether the given argument is an integer.\\n *\\n *

Polyfills the static function Number.isInteger().\\n *\\n * @param {number} x Any value.\\n * @return {boolean} True if x is an integer.\\n */\\n var polyfill = function(x) {\\n if (!Number.isFinite(x)) return false;\\n return x === Math.floor(x);\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/number/isnan.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Number.isNaN', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns whether the given argument is the value NaN,\\n * guaranteeing not to coerce to a number first.\\n *\\n *

Polyfills the static function Number.isNaN().\\n *\\n * @param {number} x Any value.\\n * @return {boolean} True if x is exactly NaN.\\n */\\n var polyfill = function(x) {\\n return typeof x === 'number' && isNaN(x);\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/number/issafeinteger.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/number/constants';\\n'require es6/number/isinteger';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Number.isSafeInteger', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns whether the given argument is a \\\"safe\\\" integer,\\n * that is, its magnitude is less than 2^53.\\n *\\n *

Polyfills the static function Number.isSafeInteger().\\n *\\n * @param {number} x Any value.\\n * @return {boolean} True if x is a safe integer.\\n */\\n var polyfill = function(x) {\\n return Number.isInteger(x) && Math.abs(x) <= Number.MAX_SAFE_INTEGER;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/object.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Object polyfills.\\n */\\n'require es6/object/assign';\\n'require es6/object/entries';\\n'require es6/object/getownpropertydescriptors';\\n'require es6/object/getownpropertysymbols';\\n'require es6/object/is';\\n'require es6/object/setprototypeof';\\n'require es6/object/values';\\n\",\"js/es6/object/assign.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/owns';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.assign', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Object.assign() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\\n *\\n * Copies values of all enumerable own properties from one or more\\n * sources to the given target object, and returns the target.\\n * @param {!Object} target The target object onto which to copy.\\n * @param {...?Object} var_args The source objects.\\n * @return {!Object} The target object is returned.\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(target, var_args) {\\n for (var i = 1; i < arguments.length; i++) {\\n var source = arguments[i];\\n if (!source) continue;\\n for (var key in source) {\\n if ($jscomp.owns(source, key)) target[key] = source[key];\\n }\\n }\\n return target;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/object/entries.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/owns';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.entries', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an array of [key, value] arrays, one for each entry\\n * in the given object.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\\n *\\n * @param {!IObject} obj\\n * @return {!Array>}\\n * @template KEY, VALUE\\n */\\n var entries = function(obj) {\\n var result = [];\\n for (var key in obj) {\\n if ($jscomp.owns(obj, key)) {\\n result.push([key, obj[key]]);\\n }\\n }\\n return result;\\n };\\n\\n return entries;\\n}, 'es8', 'es3');\\n\",\"js/es6/object/getownpropertydescriptors.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/reflect/ownkeys';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.getOwnPropertyDescriptors', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills Object.getOwnPropertyDescriptors.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\\n *\\n * @param {!Object} obj\\n * @return {!Object}\\n */\\n var getOwnPropertyDescriptors = function(obj) {\\n var result = {};\\n var keys = Reflect.ownKeys(obj);\\n for (var i = 0; i < keys.length; i++) {\\n result[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\\n }\\n return result;\\n };\\n\\n return getOwnPropertyDescriptors;\\n}, 'es8', 'es5');\\n\",\"js/es6/object/getownpropertysymbols.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.getOwnPropertySymbols', function(orig) {\\n if (orig) return orig;\\n\\n // NOTE: The symbol polyfill is a string, so symbols show up in\\n // Object.getOwnProperytyNames instead. It's been decided that\\n // the trade-off of \\\"fixing\\\" this behavior is not worth the costs\\n // in (a) code size, (b) brittleness, and (c) complexity.\\n return function() { return []; };\\n}, 'es6', 'es5'); // Same as Object.getOwnPropertyNames\\n\",\"js/es6/object/is.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.is', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Object.is() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\\n *\\n * Determines whether two values are the same value (that is,\\n * functionally equivalent). This is the same as ===-equality,\\n * except for two cases: 0 is not the same as -0, and NaN is\\n * the same as NaN.\\n *\\n * @param {*} left\\n * @param {*} right\\n * @return {boolean}\\n */\\n var polyfill = function(left, right) {\\n if (left === right) {\\n // Handle the 0 === -0 exception\\n return (left !== 0) || (1 / left === 1 / /** @type {number} */ (right));\\n } else {\\n // Handle the NaN !== NaN exception\\n return (left !== left) && (right !== right);\\n }\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/object/setprototypeof.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Object.setPrototypeOf', function(orig) {\\n if (orig) return orig;\\n\\n // IE<11 has no way to polyfill this, so don't even try.\\n if (typeof ''.__proto__ != 'object') return null;\\n\\n /**\\n * Polyfill for Object.setPrototypeOf() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf\\n *\\n * Sets the prototype in a \\\"standard\\\" way.\\n *\\n * @param {!Object} target Target on which to get the property.\\n * @param {?Object} proto The new prototype.\\n * @return {!Object}\\n */\\n var polyfill = function(target, proto) {\\n target.__proto__ = proto;\\n if (target.__proto__ !== proto) {\\n throw new TypeError(target + ' is not extensible');\\n }\\n return target;\\n };\\n return polyfill;\\n}, 'es6', 'es5');\\n\",\"js/es6/object/values.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/owns';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Object.values', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an array of values from the given object.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\\n *\\n * @param {!IObject} obj\\n * @return {!Array}\\n * @template KEY, VALUE\\n */\\n var values = function(obj) {\\n var result = [];\\n for (var key in obj) {\\n if ($jscomp.owns(obj, key)) {\\n result.push(obj[key]);\\n }\\n }\\n return result;\\n };\\n\\n return values;\\n}, 'es8', 'es3');\\n\",\"js/es6"; a.a+="/promise.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n'require es6/util/makeiterator';\\n'require util/global';\\n'require util/polyfill';\\n\\n/**\\n * Should we unconditionally override a native Promise implementation with our\\n * own?\\n * @define {boolean}\\n */\\n$jscomp.FORCE_POLYFILL_PROMISE = false;\\n\\n\\n$jscomp.polyfill('Promise',\\n /**\\n * @param {*} NativePromise\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativePromise) {\\n // TODO(bradfordcsmith): Do we need to add checks for standards conformance?\\n // e.g. The version of FireFox we currently use for testing has a Promise\\n // that fails to reject attempts to fulfill it with itself, but that\\n // isn't reasonably testable here.\\n if (NativePromise && !$jscomp.FORCE_POLYFILL_PROMISE) {\\n return NativePromise;\\n }\\n\\n /**\\n * Schedules code to be executed asynchronously.\\n * @constructor\\n * @struct\\n */\\n function AsyncExecutor() {\\n /**\\n * Batch of functions to execute.\\n *\\n * Will be {@code null} initially and immediately after a batch finishes\\n * executing.\\n * @private {?Array}\\n */\\n this.batch_ = null;\\n }\\n\\n /**\\n * Schedule a function to execute asynchronously.\\n *\\n * - The function will execute:\\n * - After the current call stack has completed executing.\\n * - After any functions previously scheduled using this object.\\n * - The return value will be ignored.\\n * - An exception thrown by the method will be caught and asynchronously\\n * rethrown when it cannot interrupt any other code. This class provides\\n * no way to catch such exceptions.\\n * @param {function():?} f\\n * @return {!AsyncExecutor} this object\\n */\\n AsyncExecutor.prototype.asyncExecute = function(f) {\\n if (this.batch_ == null) {\\n // no batch created yet, or last batch was fully executed\\n this.batch_ = [];\\n this.asyncExecuteBatch_();\\n }\\n this.batch_.push(f);\\n return this;\\n };\\n\\n /**\\n * Schedule execution of the jobs in {@code this.batch_}.\\n * @private\\n */\\n AsyncExecutor.prototype.asyncExecuteBatch_ = function() {\\n var self = this;\\n this.asyncExecuteFunction(function() { self.executeBatch_(); });\\n };\\n\\n // NOTE: We want to make sure AsyncExecutor will work as expected even if\\n // testing code should override setTimeout()\\n /** @const {function(!Function, number)} */\\n var nativeSetTimeout = $jscomp.global['setTimeout'];\\n\\n /**\\n * Schedule a function to execute asynchronously as soon as possible.\\n *\\n * NOTE: May be overridden for testing.\\n * @package\\n * @param {!Function} f\\n */\\n AsyncExecutor.prototype.asyncExecuteFunction = function(f) {\\n nativeSetTimeout(f, 0);\\n };\\n\\n /**\\n * Execute scheduled jobs in a batch until all are executed or the batch\\n * execution time limit has been reached.\\n * @private\\n */\\n AsyncExecutor.prototype.executeBatch_ = function() {\\n while (this.batch_ && this.batch_.length) {\\n var executingBatch = this.batch_;\\n // Executions scheduled while executing this batch go into a new one to\\n // avoid the batch array getting too big.\\n this.batch_ = [];\\n for (var i = 0; i < executingBatch.length; ++i) {\\n var f = executingBatch[i];\\n delete executingBatch[i]; // free memory\\n try {\\n f();\\n } catch (error) {\\n this.asyncThrow_(error);\\n }\\n }\\n }\\n // All jobs finished executing, so force scheduling a new batch next\\n // time asyncExecute() is called.\\n this.batch_ = null;\\n };\\n\\n /**\\n * @private\\n * @param {*} exception\\n */\\n AsyncExecutor.prototype.asyncThrow_ = function(exception) {\\n this.asyncExecuteFunction(function() { throw exception; });\\n };\\n\\n /**\\n * @enum {number}\\n */\\n var PromiseState = {\\n /** The Promise is waiting for resolution. */\\n PENDING: 0,\\n\\n /** The Promise has been resolved with a fulfillment value. */\\n FULFILLED: 1,\\n\\n /** The Promise has been resolved with a rejection reason. */\\n REJECTED: 2\\n };\\n\\n\\n /**\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\\n * @param {function(\\n * function((TYPE|IThenable|Thenable|null)=),\\n * function(*=))} executor\\n * @constructor\\n * @extends {Promise}\\n * @template TYPE\\n */\\n var PolyfillPromise = function(executor) {\\n /** @private {PromiseState} */\\n this.state_ = PromiseState.PENDING;\\n\\n /**\\n * The settled result of the Promise. Immutable once set with either a\\n * fulfillment value or rejection reason.\\n * @private {*}\\n */\\n this.result_ = undefined;\\n\\n /**\\n * These functions must be executed when this promise settles.\\n * @private {Array}\\n */\\n this.onSettledCallbacks_ = [];\\n\\n var resolveAndReject = this.createResolveAndReject_();\\n try {\\n executor(resolveAndReject.resolve, resolveAndReject.reject);\\n } catch (e) {\\n resolveAndReject.reject(e);\\n }\\n };\\n\\n\\n /**\\n * Create a pair of functions for resolving or rejecting this Promise.\\n *\\n *

After the resolve or reject function has been called once, later calls\\n * do nothing.\\n * @private\\n * @return {{\\n * resolve: function((TYPE|IThenable|Thenable|null)=),\\n * reject: function(*=)\\n * }}\\n */\\n PolyfillPromise.prototype.createResolveAndReject_ = function() {\\n var thisPromise = this;\\n var alreadyCalled = false;\\n /**\\n * @param {function(this:PolyfillPromise, T)} method\\n * @return {function(T)}\\n * @template T\\n */\\n function firstCallWins(method) {\\n return function(x) {\\n if (!alreadyCalled) {\\n alreadyCalled = true;\\n method.call(thisPromise, x);\\n }\\n };\\n }\\n return {\\n resolve: firstCallWins(this.resolveTo_),\\n reject: firstCallWins(this.reject_)\\n };\\n };\\n\\n\\n /**\\n * @private\\n * @param {*} value\\n */\\n PolyfillPromise.prototype.resolveTo_ = function(value) {\\n if (value === this) {\\n this.reject_(new TypeError('A Promise cannot resolve to itself'));\\n } else if (value instanceof PolyfillPromise) {\\n this.settleSameAsPromise_(/** @type {!PolyfillPromise} */ (value));\\n } else if (isObject(value)) {\\n this.resolveToNonPromiseObj_(/** @type {!Object} */ (value));\\n } else {\\n this.fulfill_(value);\\n }\\n };\\n\\n\\n /**\\n * @private\\n * @param {!Object} obj\\n */\\n PolyfillPromise.prototype.resolveToNonPromiseObj_ = function(obj) {\\n var thenMethod = undefined;\\n\\n try {\\n thenMethod = obj.then;\\n } catch (error) {\\n this.reject_(error);\\n return;\\n }\\n if (typeof thenMethod == 'function') {\\n this.settleSameAsThenable_(thenMethod, /** @type {!Thenable} */ (obj));\\n } else {\\n this.fulfill_(obj);\\n }\\n };\\n\\n\\n /**\\n * @param {*} value anything\\n * @return {boolean}\\n */\\n function isObject(value) {\\n switch (typeof value) {\\n case 'object':\\n return value != null;\\n case 'function':\\n return true;\\n default:\\n return false;\\n }\\n }\\n\\n /**\\n * Reject this promise for the given reason.\\n * @private\\n * @param {*} reason\\n * @throws {!Error} if this promise is already fulfilled or rejected.\\n */\\n PolyfillPromise.prototype.reject_ = function(reason) {\\n this.settle_(PromiseState.REJECTED, reason);\\n };\\n\\n /**\\n * Fulfill this promise with the given value.\\n * @private\\n * @param {!TYPE} value\\n * @throws {!Error} when this promise is already fulfilled or rejected.\\n */\\n PolyfillPromise.prototype.fulfill_ = function(value) {\\n this.settle_(PromiseState.FULFILLED, value);\\n };\\n\\n /**\\n * Fulfill or reject this promise with the given value/reason.\\n * @private\\n * @param {!PromiseState} settledState (FULFILLED or REJECTED)\\n * @param {*} valueOrReason\\n * @throws {!Error} when this promise is already fulfilled or rejected.\\n */\\n PolyfillPromise.prototype.settle_ = function(settledState, valueOrReason) {\\n if (this.state_ != PromiseState.PENDING) {\\n throw new Error(\\n 'Cannot settle(' + settledState + ', ' + valueOrReason |\\n '): Promise already settled in state' + this.state_);\\n }\\n this.state_ = settledState;\\n this.result_ = valueOrReason;\\n this.executeOnSettledCallbacks_();\\n };\\n\\n PolyfillPromise.prototype.executeOnSettledCallbacks_ = function() {\\n if (this.onSettledCallbacks_ != null) {\\n // Allow nulls in callbacks so we can free memory\\n var /** !Array */ callbacks = this.onSettledCallbacks_;\\n\\n for (var i = 0; i < callbacks.length; ++i) {\\n (/** @type {function()} */ (callbacks[i])).call();\\n callbacks[i] = null; // free memory\\n }\\n this.onSettledCallbacks_ = null; // free memory\\n }\\n };\\n\\n /**\\n * All promise async execution is managed by a single executor for the\\n * sake of efficiency.\\n * @const {!AsyncExecutor}\\n */\\n var asyncExecutor = new AsyncExecutor();\\n\\n /**\\n * Arrange to settle this promise in the same way as the given thenable.\\n * @private\\n * @param {!PolyfillPromise} promise\\n */\\n PolyfillPromise.prototype.settleSameAsPromise_ = function(promise) {\\n var methods = this.createResolveAndReject_();\\n\\n // Calling then() would create an unnecessary extra promise.\\n promise.callWhenSettled_(methods.resolve, methods.reject);\\n };\\n\\n /**\\n * Arrange to settle this promise in the same way as the given thenable.\\n * @private\\n * @param {!function(\\n * function((TYPE|IThenable|Thenable|null)=),\\n * function(*=))\\n * } thenMethod\\n * @param {!Thenable} thenable\\n */\\n PolyfillPromise.prototype.settleSameAsThenable_ = function(\\n thenMethod, thenable) {\\n var methods = this.createResolveAndReject_();\\n\\n // Don't trust an unknown thenable implementation not to throw exceptions.\\n try {\\n thenMethod.call(thenable, methods.resolve, methods.reject);\\n } catch (error) {\\n methods.reject(error);\\n }\\n };\\n\\n /** @override */\\n PolyfillPromise.prototype.then = function(onFulfilled, onRejected) {\\n var resolveChild;\\n var rejectChild;\\n var childPromise = new PolyfillPromise(function(resolve, reject) {\\n resolveChild = resolve;\\n rejectChild = reject;\\n });\\n function createCallback(paramF, defaultF) {\\n // The spec says to ignore non-function values for onFulfilled and\\n // onRejected\\n if (typeof paramF == 'function') {\\n return function(x) {\\n try {\\n resolveChild(paramF(x));\\n } catch (error) {\\n rejectChild(error);\\n }\\n };\\n } else {\\n return defaultF;\\n }\\n }\\n\\n this.callWhenSettled_(\\n createCallback(onFulfilled, resolveChild),\\n createCallback(onRejected, rejectChild));\\n return childPromise;\\n };\\n\\n /** @override */\\n PolyfillPromise.prototype.catch = function(onRejected) {\\n return this.then(undefined, onRejected);\\n };\\n\\n\\n PolyfillPromise.prototype.callWhenSettled_ = function(\\n onFulfilled, onRejected) {\\n var thisPromise = this;\\n function callback() {\\n switch (thisPromise.state_) {\\n case PromiseState.FULFILLED:\\n onFulfilled(thisPromise.result_);\\n break;\\n case PromiseState.REJECTED:\\n onRejected(thisPromise.result_);\\n break;\\n default:\\n throw new Error('Unexpected state: ' + thisPromise.state_);\\n }\\n }\\n if (this.onSettledCallbacks_ == null) {\\n // we've already settled\\n asyncExecutor.asyncExecute(callback);\\n } else {\\n this.onSettledCallbacks_.push(function() {\\n asyncExecutor.asyncExecute(callback);\\n });\\n }\\n };\\n\\n // called locally, so give it a name\\n function resolvingPromise(opt_value) {\\n if (opt_value instanceof PolyfillPromise) {\\n return opt_value;\\n } else {\\n return new PolyfillPromise(function(resolve, reject) {\\n resolve(opt_value);\\n });\\n }\\n }\\n PolyfillPromise['resolve'] = resolvingPromise;\\n\\n\\n PolyfillPromise['reject'] = function(opt_reason) {\\n return new PolyfillPromise(function(resolve, reject) {\\n reject(opt_reason);\\n });\\n };\\n\\n\\n PolyfillPromise['race'] = function(thenablesOrValues) {\\n return new PolyfillPromise(function(resolve, reject) {\\n var iterator =\\n $jscomp.makeIterator(thenablesOrValues);\\n for (var /** !IIterableResult<*> */ iterRec = iterator.next();\\n !iterRec.done;\\n iterRec = iterator.next()) {\\n // Using resolvingPromise() allows us to treat all elements the same\\n // way.\\n // NOTE: resolvingPromise(promise) always returns the argument\\n // unchanged.\\n // Using .callWhenSettled_() instead of .then() avoids creating an\\n // unnecessary extra promise.\\n resolvingPromise(iterRec.value).callWhenSettled_(resolve, reject);\\n }\\n });\\n };\\n\\n\\n PolyfillPromise['all'] = function(thenablesOrValues) {\\n var iterator = $jscomp.makeIterator(thenablesOrValues);\\n var /** !IIterableResult<*> */ iterRec = iterator.next();\\n\\n if (iterRec.done) {\\n return resolvingPromise([]);\\n } else {\\n return new PolyfillPromise(function(resolveAll, rejectAll) {\\n var resultsArray = [];\\n var unresolvedCount = 0;\\n\\n function onFulfilled(i) {\\n return function(ithResult) {\\n resultsArray[i] = ithResult;\\n unresolvedCount--;\\n if (unresolvedCount == 0) {\\n resolveAll(resultsArray);\\n }\\n };\\n }\\n\\n do {\\n resultsArray.push(undefined);\\n unresolvedCount++;\\n // Using resolvingPromise() allows us to treat all elements the same\\n // way.\\n // NOTE: resolvingPromise(promise) always returns the argument\\n // unchanged. Using .callWhenSettled_() instead of .then() avoids\\n // creating an unnecessary extra promise.\\n resolvingPromise(iterRec.value)\\n .callWhenSettled_(\\n onFulfilled(resultsArray.length - 1), rejectAll);\\n iterRec = iterator.next();\\n } while (!iterRec.done);\\n });\\n }\\n };\\n\\n return PolyfillPromise;\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Rolls together all ES6 Reflect polyfills.\\n */\\n'require es6/reflect/apply';\\n'require es6/reflect/construct';\\n'require es6/reflect/defineproperty';\\n'require es6/reflect/deleteproperty';\\n'require es6/reflect/get';\\n'require es6/reflect/getownpropertydescriptor';\\n'require es6/reflect/getprototypeof';\\n'require es6/reflect/has';\\n'require es6/reflect/isextensible';\\n'require es6/reflect/ownkeys';\\n'require es6/reflect/prevent"; a.a+="extensions';\\n'require es6/reflect/set';\\n'require es6/reflect/setprototypeof';\\n\",\"js/es6/reflect/apply.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.apply', function(orig) {\\n if (orig) return orig;\\n var apply = Function.prototype.apply;\\n\\n /**\\n * Polyfill for Reflect.apply() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply\\n *\\n * Calls a target function with arguments as specified, just\\n * as Function.prototype.apply.\\n *\\n * @param {function(this: THIS, ...*): RESULT} target The function to call.\\n * @param {THIS} thisArg The 'this' argument.\\n * @param {!Array} argList The arguments as a list.\\n * @return {RESULT} The result of the function call.\\n * @template THIS, RESULT\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(target, thisArg, argList) {\\n return apply.call(target, thisArg, argList);\\n };\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect/construct.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview\\n * @suppress {uselessCode}\\n */\\n\\n'require es6/util/construct';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Reflect.construct', function(orig) {\\n return orig || $jscomp.construct;\\n }, 'es6', 'es3');\\n\",\"js/es6/reflect/defineproperty.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.defineProperty', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Reflect.defineProperty() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty\\n *\\n * Version of Object.defineProperty that returns a boolean.\\n *\\n * @param {!Object} target Target on which to define the property.\\n * @param {string} propertyKey Name of the property to define.\\n * @param {!ObjectPropertyDescriptor} attributes Property attributes.\\n * @return {boolean} Whether the property was defined.\\n */\\n var polyfill = function(target, propertyKey, attributes) {\\n try {\\n Object.defineProperty(target, propertyKey, attributes);\\n var desc = Object.getOwnPropertyDescriptor(target, propertyKey);\\n if (!desc) return false;\\n return desc.configurable === (attributes.configurable || false) &&\\n desc.enumerable === (attributes.enumerable || false) &&\\n ('value' in desc ?\\n desc.value === attributes.value &&\\n desc.writable === (attributes.writable || false) :\\n desc.get === attributes.get &&\\n desc.set === attributes.set);\\n } catch (err) {\\n return false;\\n }\\n };\\n return polyfill;\\n}, 'es6', 'es5'); // ES5: Requires Object.defineProperty\\n\",\"js/es6/reflect/deleteproperty.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/owns';\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.deleteProperty', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Reflect.deleteProperty() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty\\n *\\n * Applies the 'delete' operator as a function.\\n *\\n * @param {!Object} target Target on which to delete the property.\\n * @param {string} propertyKey Name of the property to delete.\\n * @return {boolean} Whether the property was deleted.\\n */\\n var polyfill = function(target, propertyKey) {\\n if (!$jscomp.owns(target, propertyKey)) {\\n return true;\\n }\\n try {\\n return delete target[propertyKey];\\n } catch (err) {\\n return false;\\n }\\n };\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect/get.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/finddescriptor';\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.get', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Reflect.get() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get\\n *\\n * Applies the 'getprop' operator as a function.\\n *\\n * @param {!Object} target Target on which to get the property.\\n * @param {string} propertyKey Name of the property to get.\\n * @param {!Object=} opt_receiver An optional 'this' to use for a getter.\\n * @return {*} The value of the property.\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(target, propertyKey, opt_receiver) {\\n if (arguments.length <= 2) {\\n return target[propertyKey];\\n }\\n var property = $jscomp.findDescriptor(target, propertyKey);\\n if (property) {\\n return property.get ? property.get.call(opt_receiver) : property.value;\\n }\\n return undefined;\\n };\\n return polyfill;\\n}, 'es6', 'es5'); // ES5: findDescriptor requires getPrototypeOf\\n\",\"js/es6/reflect/getownpropertydescriptor.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.getOwnPropertyDescriptor', function(orig) {\\n // NOTE: We don't make guarantees about correct throwing behavior.\\n // Non-object arguments should be prevented by the type checker.\\n return orig || Object.getOwnPropertyDescriptor;\\n}, 'es6', 'es5'); // ES5: Requires Object.getOwnPropertyDescriptor\\n\",\"js/es6/reflect/getprototypeof.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.getPrototypeOf', function(orig) {\\n // NOTE: We don't make guarantees about correct throwing behavior.\\n // Non-object arguments should be prevented by the type checker.\\n return orig || Object.getPrototypeOf;\\n}, 'es6', 'es5'); // ES5: Requires Object.getPrototypeOf\\n\",\"js/es6/reflect/has.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.has', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Reflect.has() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has\\n *\\n * Applies the 'in' operator as a function.\\n *\\n * @param {!Object} target\\n * @param {*} propertyKey\\n * @return {boolean}\\n */\\n var polyfill = function(target, propertyKey) {\\n return propertyKey in target;\\n };\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect/isextensible.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/defines';\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.isExtensible', function(orig) {\\n if (orig) return orig;\\n if ($jscomp.ASSUME_ES5 || typeof Object.isExtensible == 'function') {\\n return Object.isExtensible;\\n }\\n return function() { return true; };\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect/ownkeys.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n'require es6/object/getownpropertysymbols';\\n\\n\\n$jscomp.polyfill('Reflect.ownKeys',\\n /**\\n * @param {*} orig\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(orig) {\\n if (orig) return orig;\\n\\n var symbolPrefix = 'jscomp_symbol_';\\n function isSymbol(key) {\\n return key.substring(0, symbolPrefix.length) == symbolPrefix;\\n }\\n\\n /**\\n * Polyfill for Reflect.ownKeys() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys\\n *\\n * Returns an array of the object's own property keys.\\n *\\n * @param {!Object} target\\n * @return {!Array<(string|symbol)>}\\n */\\n var polyfill = function(target) {\\n var keys = [];\\n var names = Object.getOwnPropertyNames(target);\\n var symbols = Object.getOwnPropertySymbols(target);\\n for (var i = 0; i < names.length; i++) {\\n (isSymbol(names[i]) ? symbols : keys).push(names[i]);\\n }\\n return keys.concat(symbols);\\n };\\n return polyfill;\\n}, 'es6', 'es5'); // ES5: Requires Object.getOwnPropertyNames\\n\",\"js/es6/reflect/preventextensions.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/defines';\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.preventExtensions', function(orig) {\\n if (orig) return orig;\\n\\n if (!($jscomp.ASSUME_ES5 || typeof Object.preventExtensions == 'function')) {\\n return function() { return false; };\\n }\\n\\n /**\\n * Polyfill for Reflect.preventExtensions() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions\\n *\\n * Same function as Object.preventExtensions (the spec says\\n * to throw if the input is not an object, but jscompiler will\\n * fail to typecheck, so there's no reason to distinguish here).\\n *\\n * @param {!Object} target\\n * @return {boolean}\\n */\\n var polyfill = function(target) {\\n Object.preventExtensions(target);\\n return !Object.isExtensible(target);\\n };\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/reflect/set.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/reflect/isextensible';\\n'require util/finddescriptor';\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.set', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfill for Reflect.set() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set\\n *\\n *"; a.a+=" Applies the 'setprop' operator as a function.\\n *\\n * @param {!Object} target Target on which to get the property.\\n * @param {string} propertyKey Name of the property to get.\\n * @param {*} value Value to set.\\n * @param {!Object=} opt_receiver An optional 'this' to use for a setter.\\n * @return {boolean} Whether setting was successful.\\n */\\n var polyfill = function(target, propertyKey, value, opt_receiver) {\\n var property = $jscomp.findDescriptor(target, propertyKey);\\n if (!property) {\\n if (Reflect.isExtensible(target)) {\\n target[propertyKey] = value;\\n return true;\\n }\\n return false;\\n }\\n if (property.set) {\\n property.set.call(arguments.length > 3 ? opt_receiver : target, value);\\n return true;\\n } else if (property.writable && !Object.isFrozen(target)) {\\n target[propertyKey] = value;\\n return true;\\n }\\n return false;\\n };\\n return polyfill;\\n}, 'es6', 'es5'); // ES5: findDescriptor requires getPrototypeOf\\n\",\"js/es6/reflect/setprototypeof.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n\\n$jscomp.polyfill('Reflect.setPrototypeOf', function(orig) {\\n if (orig) return orig;\\n\\n // IE<11 has no way to polyfill this, so don't even try.\\n if (typeof ''.__proto__ != 'object') return null;\\n\\n /**\\n * Polyfill for Reflect.setPrototypeOf() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf\\n *\\n * Sets the prototype in a \\\"standard\\\" way.\\n *\\n * @param {!Object} target Target on which to get the property.\\n * @param {?Object} proto The new prototype.\\n * @return {boolean} Whether the prototype was successfully set.\\n */\\n var polyfill = function(target, proto) {\\n try {\\n target.__proto__ = proto;\\n return target.__proto__ === proto;\\n } catch (err) {\\n return false;\\n }\\n };\\n return polyfill;\\n}, 'es6', 'es5');\\n\",\"js/es6/set.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/map';\\n'require util/defines';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Set',\\n /**\\n * @param {*} NativeSet\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeSet) {\\n\\n // Perform a conformance check to ensure correct native implementation.\\n var isConformant = !$jscomp.ASSUME_NO_NATIVE_SET && (function() {\\n if (!NativeSet ||\\n !NativeSet.prototype.entries ||\\n typeof Object.seal != 'function') {\\n return false;\\n }\\n // Some implementations don't support constructor arguments.\\n try {\\n NativeSet = /** @type {function(new: Set, !Iterator=)} */ (NativeSet);\\n var value = Object.seal({x: 4});\\n var set = new NativeSet($jscomp.makeIterator([value]));\\n if (!set.has(value) || set.size != 1 || set.add(value) != set ||\\n set.size != 1 || set.add({x: 4}) != set || set.size != 2) {\\n return false;\\n }\\n var iter = set.entries();\\n var item = iter.next();\\n if (item.done || item.value[0] != value || item.value[1] != value) {\\n return false;\\n }\\n item = iter.next();\\n if (item.done || item.value[0] == value || item.value[0].x != 4 ||\\n item.value[1] != item.value[0]) {\\n return false;\\n }\\n return iter.next().done;\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n })();\\n if (isConformant) return NativeSet;\\n\\n // We depend on Symbol.iterator, so ensure it's loaded.\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n\\n\\n\\n /**\\n * Polyfill for the global Map data type.\\n * @constructor\\n * @struct\\n * @extends {Set}\\n * @implements {Iterable}\\n * @template KEY, VALUE\\n * @param {!Iterable|!Array|null=} opt_iterable\\n * Optional data to populate the set.\\n */\\n // TODO(sdh): fix param type if heterogeneous arrays ever supported.\\n var PolyfillSet = function(opt_iterable) {\\n /** @private @const {!Map} */\\n this.map_ = new Map();\\n if (opt_iterable) {\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = /** @type {!IIterableResult} */ (entry).value;\\n this.add(item);\\n }\\n }\\n // Note: this property should not be changed. If we're willing to give up\\n // ES3 support, we could define it as a property directly. It should be\\n // marked readonly if such an annotation ever comes into existence.\\n this.size = this.map_.size;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.add = function(value) {\\n this.map_.set(value, value);\\n this.size = this.map_.size;\\n return this;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.delete = function(value) {\\n var result = this.map_.delete(value);\\n this.size = this.map_.size;\\n return result;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.clear = function() {\\n this.map_.clear();\\n this.size = 0;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.has = function(value) {\\n return this.map_.has(value);\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.entries = function() {\\n return this.map_.entries();\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.values = function() {\\n return this.map_.values();\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.keys = PolyfillSet.prototype.values;\\n\\n\\n /** @type {?} */ (PolyfillSet.prototype)[Symbol.iterator] =\\n PolyfillSet.prototype.values;\\n\\n\\n /** @override */\\n PolyfillSet.prototype.forEach = function(callback, opt_thisArg) {\\n var set = this;\\n this.map_.forEach(function(value) {\\n return callback.call(/** @type {?} */ (opt_thisArg), value, value, set);\\n });\\n };\\n\\n\\n return PolyfillSet;\\n}, 'es6', 'es3');\\n\",\"js/es6/string.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 String polyfills.\\n */\\n'require es6/string/codepointat';\\n'require es6/string/endswith';\\n'require es6/string/fromcodepoint';\\n'require es6/string/includes';\\n'require es6/string/padend';\\n'require es6/string/padstart';\\n'require es6/string/repeat';\\n'require es6/string/startswith';\\n\",\"js/es6/string/codepointat.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.codePointAt', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the UTF-16 codepoint at the given index.\\n *\\n *

Polyfills the instance method String.prototype.codePointAt().\\n *\\n * @this {string}\\n * @param {number} position\\n * @return {number|undefined} The codepoint.\\n */\\n var polyfill = function(position) {\\n // NOTE: this is taken from v8's harmony-string.js StringCodePointAt\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, null, 'codePointAt');\\n var size = string.length;\\n // Make 'position' a number (non-number coerced to NaN and then or to zero).\\n position = Number(position) || 0;\\n if (!(position >= 0 && position < size)) {\\n return void 0;\\n }\\n // Truncate 'position' to an integer.\\n position = position | 0;\\n var first = string.charCodeAt(position);\\n if (first < 0xD800 || first > 0xDBFF || position + 1 === size) {\\n return first;\\n }\\n var second = string.charCodeAt(position + 1);\\n if (second < 0xDC00 || second > 0xDFFF) {\\n return first;\\n }\\n return (first - 0xD800) * 0x400 + second + 0x2400;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/endswith.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.endsWith', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Tests whether the string ends with a given substring.\\n *\\n *

Polyfills the instance method String.prototype.endsWith().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'endsWith');\\n searchString = searchString + '';\\n if (opt_position === void 0) opt_position = string.length;\\n var i = Math.max(0, Math.min(opt_position | 0, string.length));\\n var j = searchString.length;\\n while (j > 0 && i > 0) {\\n if (string[--i] != searchString[--j]) return false;\\n }\\n return j <= 0;\\n };\\nreturn polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/fromcodepoint.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.fromCodePoint', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates a new string from the given codepoints.\\n *\\n *

Polyfills the static function String.fromCodePoint().\\n *\\n * @param {...number} var_args\\n * @return {string}\\n */\\n var polyfill = function(var_args) {\\n // Note: this is taken from v8's harmony-string.js StringFromCodePoint.\\n var result = '';\\n for (var i = 0; i < arguments.length; i++) {\\n var code = Number(arguments[i]);\\n if (code < 0 || code > 0x10FFFF || code !== Math.floor(code)) {\\n throw new RangeError('invalid_code_point ' + code);\\n }\\n if (code <= 0xFFFF) {\\n result += String.fromCharCode(code);\\n } else {\\n code -= 0x10000;\\n result += String.fromCharCode((code >>> 10) & 0x3FF | 0xD800);\\n result += String.fromCharCode(code & 0x3FF | 0xDC00);\\n }\\n }\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/includes.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.includes', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Searches for a substring, starting at the given position.\\n *\\n *

Polyfills the instance method String.prototype.includes().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'includes');\\n return string.indexOf(searchString, opt_position || 0) !== -1;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/padend.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/stringpadding';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.padEnd', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills String.prototype.padEnd.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd\\n *\\n * @this {string}\\n * @param {number} targetLength\\n * @param {string=} opt_padString\\n * @return {string}\\n */\\n var padEnd = function(targetLength, opt_padString) {\\n var string = $jscomp.checkStringArgs(this, null, 'padStart');\\n var padLength = targetLength - string.length;\\n return string + $jscomp.stringPadding(opt_padString, padLength);\\n };\\n\\n return padEnd;\\n}, 'es8', 'es3');\\n\",\"js/es6/string/padstart.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the Licen"; a.a+="se.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n'require util/stringpadding';\\n\\n$jscomp.polyfill('String.prototype.padStart', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills String.prototype.padStart.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\\n *\\n * @this {string}\\n * @param {number} targetLength\\n * @param {string=} opt_padString\\n * @return {string}\\n */\\n var padStart = function(targetLength, opt_padString) {\\n var string = $jscomp.checkStringArgs(this, null, 'padStart');\\n var padLength = targetLength - string.length;\\n return $jscomp.stringPadding(opt_padString, padLength) + string;\\n };\\n\\n return padStart;\\n}, 'es8', 'es3');\\n\",\"js/es6/string/repeat.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.repeat', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns a new string repeated the given number of times.\\n *\\n *

Polyfills the instance method String.prototype.repeat().\\n *\\n * @this {string}\\n * @param {number} copies\\n * @return {string}\\n */\\n var polyfill = function(copies) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, null, 'repeat');\\n if (copies < 0 || copies > 0x4FFFFFFF) { // impose a 1GB limit\\n throw new RangeError('Invalid count value');\\n }\\n copies = copies | 0; // cast to a signed integer.\\n var result = '';\\n while (copies) {\\n if (copies & 1) result += string;\\n if ((copies >>>= 1)) string += string;\\n }\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/startswith.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.startsWith', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Tests whether the string starts with a given substring.\\n *\\n *

Polyfills the instance method String.prototype.startsWith().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'startsWith');\\n searchString = searchString + '';\\n var strLen = string.length;\\n var searchLen = searchString.length;\\n var i = Math.max(\\n 0,\\n Math.min(/** @type {number} */ (opt_position) | 0, string.length));\\n var j = 0;\\n while (j < searchLen && i < strLen) {\\n if (string[i++] != searchString[j++]) return false;\\n }\\n return j >= searchLen;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/symbol.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/defineproperty';\\n'require util/global';\\n\\n/** @const {string} */\\n$jscomp.SYMBOL_PREFIX = 'jscomp_symbol_';\\n\\n\\n/**\\n * Initializes the Symbol function.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.initSymbol = function() {\\n // Only need to do this once. All future calls are no-ops.\\n $jscomp.initSymbol = function() {};\\n\\n if (!$jscomp.global['Symbol']) {\\n $jscomp.global['Symbol'] = $jscomp.Symbol;\\n }\\n};\\n\\n\\n/** @private {number} */\\n$jscomp.symbolCounter_ = 0;\\n\\n\\n/**\\n * Produces \\\"symbols\\\" (actually just unique strings).\\n * @param {string=} opt_description\\n * @return {symbol}\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.Symbol = function(opt_description) {\\n return /** @type {symbol} */ (\\n $jscomp.SYMBOL_PREFIX + (opt_description || '') + ($jscomp.symbolCounter_++));\\n};\\n\\n\\n/**\\n * Initializes Symbol.iterator (if it's not already defined) and adds a\\n * Symbol.iterator property to the Array prototype.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.initSymbolIterator = function() {\\n $jscomp.initSymbol();\\n var symbolIterator = $jscomp.global['Symbol'].iterator;\\n if (!symbolIterator) {\\n symbolIterator = $jscomp.global['Symbol'].iterator =\\n $jscomp.global['Symbol']('iterator');\\n }\\n\\n if (typeof Array.prototype[symbolIterator] != 'function') {\\n $jscomp.defineProperty(\\n Array.prototype, symbolIterator, {\\n configurable: true,\\n writable: true,\\n /**\\n * @this {Array}\\n * @return {!IteratorIterable}\\n */\\n value: function() {\\n return $jscomp.arrayIterator(this);\\n }\\n });\\n }\\n\\n // Only need to do this once. All future calls are no-ops.\\n $jscomp.initSymbolIterator = function() {};\\n};\\n\\n\\n/**\\n * Returns an iterator from the given array.\\n * @param {!Array} array\\n * @return {!IteratorIterable}\\n * @template T\\n */\\n$jscomp.arrayIterator = function(array) {\\n var index = 0;\\n return $jscomp.iteratorPrototype(function() {\\n if (index < array.length) {\\n return {\\n done: false,\\n value: array[index++],\\n };\\n } else {\\n return {done: true};\\n }\\n });\\n};\\n\\n\\n/**\\n * Returns an iterator with the given `next` method. Passing\\n * all iterators through this function allows easily extending\\n * the definition of `%IteratorPrototype%` if methods are ever\\n * added to it in the future.\\n *\\n * @param {function(this: Iterator): T} next\\n * @return {!IteratorIterable}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.iteratorPrototype = function(next) {\\n $jscomp.initSymbolIterator();\\n\\n var iterator = {next: next};\\n /**\\n * @this {IteratorIterable}\\n * @return {!IteratorIterable}\\n */\\n iterator[$jscomp.global['Symbol'].iterator] = function() { return this; };\\n return /** @type {!IteratorIterable} */ (iterator);\\n};\\n\",\"js/es6/util/arrayfromiterable.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for array destructuring.\\n */\\n'require es6/util/makeiterator';\\n'require es6/util/arrayfromiterator';\\n\\n\\n/**\\n * Copies the values from an Iterable into an Array.\\n * @param {string|!Array|!Iterable|!Arguments} iterable\\n * @return {!Array}\\n * @template T\\n */\\n$jscomp.arrayFromIterable = function(iterable) {\\n if (iterable instanceof Array) {\\n return iterable;\\n } else {\\n return $jscomp.arrayFromIterator($jscomp.makeIterator(iterable));\\n }\\n};\\n\",\"js/es6/util/arrayfromiterator.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for array destructuring.\\n */\\n'require base';\\n\\n\\n/**\\n * Copies the values from an Iterator into an Array. The important difference\\n * between this and $jscomp.arrayFromIterable is that if the iterator's\\n * next() method has already been called one or more times, this method returns\\n * only the values that haven't been yielded yet.\\n * @param {!Iterator} iterator\\n * @return {!Array}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.arrayFromIterator = function(iterator) {\\n var i;\\n var arr = [];\\n while (!(i = iterator.next()).done) {\\n arr.push(i.value);\\n }\\n return arr;\\n};\\n\",\"js/es6/util/construct.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview\\n * @suppress {uselessCode}\\n */\\n\\n'require util/objectcreate';\\n\\n$jscomp.construct =\\n (typeof Reflect != 'undefined' && Reflect.construct) ||\\n /**\\n * Polyfill for Reflect.construct() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct\\n *\\n * Calls a constructor as with the 'new' operator.\\n * TODO(sdh): how to type 'target' with (new: TARGET) if opt_newTarget missing?\\n *\\n * @param {function(new: ?, ...?)} target The constructor to call.\\n * @param {!Array} argList The arguments as a list.\\n * @param {function(new: TARGET, ...?)=} opt_newTarget The constructor to instantiate.\\n * @return {TARGET} The result of the function call.\\n * @template TARGET\\n * @suppress {reportUnknownTypes}\\n */\\n function(target, argList, opt_newTarget) {\\n // if (arguments.length < 3 || opt_newTarget == target) {\\n // return new target(...argList);\\n // }\\n if (opt_newTarget === undefined) opt_newTarget = target;\\n var proto = opt_newTarget.prototype || Object.prototype;\\n var obj = $jscomp.objectCreate(proto);\\n var apply = Function.prototype.apply;\\n var out = apply.call(target, obj, argList);\\n return out || obj;\\n };\\n\",\"js/es6/util/inherits.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for ES6 extends keyword.\\n */\\n'require base';\\n\\n\\n/**\\n * Inherit the prototype methods and static methods from one constructor\\n * into another.\\n *\\n * This wires up the prototype chain (like goog.inherits) and copies static\\n * properties, for ES6-to-ES{3,5} transpilation.\\n *\\n * Usage:\\n *

\\n *   function ParentClass() {}\\n *\\n *   // Regular method.\\n *   ParentClass.prototype.foo = function(a) {};\\n *\\n *   // Static method.\\n *   ParentClass.bar = function() {};\\n *\\n *   function ChildClass() {\\n *     ParentClass.call(this);\\n *   }\\n *   $jscomp.inherits(ChildClass, ParentClass);\\n *\\n *   var child = new ChildClass();\\n *   child.foo();\\n *   ChildClass.bar();  // Static inheritance.\\n * 
\\n *\\n * @param {!Function} childCtor Child class.\\n * @param {!Function} parentCtor Parent class.\\n */\\n$jscomp.inherits = function(childCtor, parentCtor) {\\n /** @constructor */\\n function tempCtor() {}\\n tempCtor.prototype = parentCtor.prototype;\\n childCtor.superClass_ = parentCtor.prototype;\\n childCtor.prototype = new tempCtor();\\n /** @override */\\n childCtor.prototype.constructor = childCtor;\\n\\n for (var p in parentCtor) {\\n if (Object.defineProperties) {\\n var descriptor = Object.getOwnPropertyDescriptor(parentCtor, p);\\n if (descriptor) {\\n Object.defineProperty(childCtor, p, descriptor);\\n }\\n } else {\\n // Pre-ES5 browser. Just copy with an assignment.\\n childCtor[p] = parentCtor[p];\\n }\\n }\\n};\\n\",\"js/es6/util/iteratorfromarray.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Utilities for iterator-returning methods.\\n */\\n'require es6/symbol';\\n\\n\\n/**\\n * Creates an iterator from an array-like, with a transformation function.\\n * @param {!IArrayLike} array\\n * @param {function(number, INPUT): OUTPUT} transform\\n * @return {!IteratorIterable}\\n * @template INPUT, OUTPUT\\n * @suppress {checkTypes|reportUnknownTypes}\\n */\\n$jscomp.iteratorFromArray = function(array, transform) {\\n $jscomp.initSymbolIterator();\\n // NOTE: IE8 doesn't support indexing from boxed Strings.\\n if (array instanceof String) array = array + '';\\n var i = 0;\\n var iter = {\\n next: function() {\\n if (i < array.length) {\\n var index = i++;\\n return {value: transform(index, array[index]), done: false};\\n }\\n iter.next = function() { return {done: true, value: void 0}; };\\n return iter.next();\\n }\\n };\\n iter[Symbol.iterator] = function() { return iter; };\\n return iter;\\n};\\n\",\"js/es6/util/makeiterator.js\":\"/*\\n * Copyright 2016 The Closure Compiler Autho"; a.a+="rs.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for for-of loops.\\n */\\n'require es6/symbol';\\n\\n\\n/**\\n * Creates an iterator for the given iterable.\\n *\\n * @param {string|!Array|!Iterable|!Iterator|!Arguments} iterable\\n * @return {!Iterator}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.makeIterator = function(iterable) {\\n $jscomp.initSymbolIterator();\\n\\n // NOTE: Disabling typechecking because [] not allowed on @struct.\\n var iteratorFunction = /** @type {?} */ (iterable)[Symbol.iterator];\\n return iteratorFunction ? iteratorFunction.call(iterable) :\\n $jscomp.arrayIterator(/** @type {!Array} */ (iterable));\\n};\\n\",\"js/es6/weakmap.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require util/defineproperty';\\n'require util/owns';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('WeakMap',\\n /**\\n * @param {*} NativeWeakMap\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeWeakMap) {\\n /**\\n * Checks conformance of the existing WeakMap.\\n * @return {boolean} True if the browser's implementation conforms.\\n */\\n function isConformant() {\\n if (!NativeWeakMap || !Object.seal) return false;\\n try {\\n var x = Object.seal({});\\n var y = Object.seal({});\\n var map = new /** @type {function(new: WeakMap, !Array)} */ (\\n NativeWeakMap)([[x, 2], [y, 3]]);\\n if (map.get(x) != 2 || map.get(y) != 3) return false;\\n map.delete(x);\\n map.set(y, 4);\\n return !map.has(x) && map.get(y) == 4;\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n }\\n if (isConformant()) return NativeWeakMap;\\n\\n var prop = '$jscomp_hidden_' + Math.random().toString().substring(2);\\n\\n /**\\n * Inserts the hidden property into the target.\\n * @param {!Object} target\\n */\\n function insert(target) {\\n if (!$jscomp.owns(target, prop)) {\\n var obj = {};\\n // TODO(sdh): This property will be enumerated in IE8. If this becomes\\n // a problem, we could avoid it by copying an infrequently-used non-enum\\n // method (like toLocaleString) onto the object itself and encoding the\\n // property on the copy instead. This codepath must be easily removable\\n // if IE8 support is not needed.\\n $jscomp.defineProperty(target, prop, {value: obj});\\n }\\n }\\n\\n /**\\n * Monkey-patches the freezing methods to ensure that the hidden\\n * property is added before any freezing happens.\\n * @param {string} name\\n */\\n function patch(name) {\\n var prev = Object[name];\\n if (prev) {\\n Object[name] = function(target) {\\n insert(target);\\n return prev(target);\\n };\\n }\\n }\\n patch('freeze');\\n patch('preventExtensions');\\n patch('seal');\\n // Note: no need to patch Reflect.preventExtensions since the polyfill\\n // just calls Object.preventExtensions anyway (and if it's not polyfilled\\n // then neither is WeakMap).\\n\\n var index = 0;\\n\\n /**\\n * Polyfill for WeakMap:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap\\n *\\n * This implementation is as non-leaky as possible, due to patching\\n * the freezing and sealing operations. It does not include any logic\\n * to handle cases where a key was somehow made non-extensible without\\n * the special hidden property being added. It takes some care to ensure\\n * the hidden property is not enumerated over nor discoverable, though\\n * it's not completely secure (particularly in IE8).\\n *\\n * @constructor\\n * @extends {WeakMap}\\n * @template KEY, VALUE\\n * @param {!Iterator>|!Array>|null=}\\n * opt_iterable Optional initial data.\\n */\\n var PolyfillWeakMap = function(opt_iterable) {\\n /** @private @const {string} */\\n this.id_ = (index += (Math.random() + 1)).toString();\\n\\n if (opt_iterable) {\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = entry.value;\\n this.set(/** @type {KEY} */ (item[0]), /** @type {VALUE} */ (item[1]));\\n }\\n }\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.set = function(key, value) {\\n insert(key);\\n if (!$jscomp.owns(key, prop)) {\\n // NOTE: If the insert() call fails on the key, but the property\\n // has previously successfully been added higher up the prototype\\n // chain, then we'll silently misbehave. Instead, throw immediately\\n // before doing something bad. If this becomes a problem (e.g. due\\n // to some rogue frozen objects) then we may need to add a slow and\\n // leaky fallback array to each WeakMap instance, as well as extra\\n // logic in each accessor to use it (*only*) when necessary.\\n throw new Error('WeakMap key fail: ' + key);\\n }\\n key[prop][this.id_] = value;\\n return this;\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.get = function(key) {\\n return $jscomp.owns(key, prop) ? key[prop][this.id_] : undefined;\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.has = function(key) {\\n return $jscomp.owns(key, prop) && $jscomp.owns(key[prop], this.id_);\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.delete = function(key) {\\n if (!$jscomp.owns(key, prop) ||\\n !$jscomp.owns(key[prop], this.id_)) {\\n return false;\\n }\\n return delete key[prop][this.id_];\\n };\\n\\n return PolyfillWeakMap;\\n}, 'es6', 'es3');\\n\",\"js/es6/weakset.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require util/polyfill';\\n'require es6/weakmap';\\n\\n$jscomp.polyfill('WeakSet',\\n /**\\n * @param {*} NativeWeakSet\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeWeakSet) {\\n /**\\n * Checks conformance of the existing WeakSet.\\n * @return {boolean} True if the browser's implementation conforms.\\n */\\n function isConformant() {\\n if (!NativeWeakSet || !Object.seal) return false;\\n try {\\n var x = Object.seal({});\\n var y = Object.seal({});\\n var set = new /** @type {function(new: WeakSet, !Array)} */ (\\n NativeWeakSet)([x]);\\n if (!set.has(x) || set.has(y)) return false;\\n set.delete(x);\\n set.add(y);\\n return !set.has(x) && set.has(y);\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n }\\n if (isConformant()) return NativeWeakSet;\\n\\n /**\\n * @constructor\\n * @extends {WeakSet}\\n * @template TYPE\\n * @param {!Iterator|!Array|null=} opt_iterable\\n */\\n var PolyfillWeakSet = function(opt_iterable) {\\n /** @private @const {!WeakMap} */\\n this.map_ = new WeakMap();\\n\\n if (opt_iterable) {\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = entry.value;\\n this.add(item);\\n }\\n }\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.add = function(elem) {\\n this.map_.set(elem, true);\\n return this;\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.has = function(elem) {\\n return this.map_.has(elem);\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.delete = function(elem) {\\n return this.map_.delete(elem);\\n };\\n\\n return PolyfillWeakSet;\\n}, 'es6', 'es3');\\n\",\"js/es6_dart_runtime.js\":\"/*\\n * Copyright 2014 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Additional runtime functions required for transpilation from\\n * ES6 to ES5 of code generated by the Dart Dev Compiler.\\n *\\n * Note that DDC's output cannot currently be lowered to ES3 (heavy use of\\n * getters or setters, including in the runtime), so these helpers make no\\n * attempt of fallback behaviour when methods like Object.getPrototypeOf or\\n * Object.getOwnPropertyDescriptor are undefined (unlike helpers in es6/*.js).\\n *\\n * @author ochafik@google.com (Olivier Chafik)\\n */\\n'require base';\\n\\n/**\\n * Gets a property descriptor for a target instance, skipping its class\\n * and walking up the super-classes hierarchy.\\n *\\n * @private\\n * @param {!Object} target\\n * @param {!string} name\\n * @return {?}\\n */\\n$jscomp.getSuperPropertyDescriptor_ = function(target, name) {\\n var getPrototypeOf = Object.getPrototypeOf;\\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n var cls = getPrototypeOf(target);\\n while (cls != null) {\\n cls = getPrototypeOf(cls);\\n if (cls != null) {\\n var desc = getOwnPropertyDescriptor(cls, name);\\n if (desc != null) {\\n return desc;\\n }\\n }\\n }\\n return undefined;\\n};\\n\\n/**\\n * Gets a property of a target instance using its super class getter or value,\\n * or returns undefined if that property is not defined on any ancestor.\\n *\\n * @param {!Object} target\\n * @param {!string} propertyName\\n * @return {*}\\n */\\n$jscomp.superGet = function(target, propertyName) {\\n var desc = $jscomp.getSuperPropertyDescriptor_(target, propertyName);\\n return desc && (desc.get ? desc.get.call(target) : desc.value);\\n};\\n\\n/**\\n * Sets a property on a target instance using its super setter if is defined\\n * on any ancestor, or setting it as a simple property on the target otherwise.\\n *\\n * @template T\\n * @param {!Object} target\\n * @param {!string} propertyName\\n * @param {T} value\\n * @return {T}\\n */\\n$jscomp.superSet = function(target, propertyName, value) {\\n var desc = $jscomp.getSuperPropertyDescriptor_(target, propertyName);\\n if (desc) {\\n if (!desc.set) {\\n throw new TypeError('No setter for super.' + propertyName);\\n }\\n desc.set.call(target, value);\\n } else {\\n target[propertyName] = value;\\n }\\n return value;\\n};\\n\",\"js/es6_runtime.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/array';\\n'require es6/execute_async_generator';\\n'require es6/map';\\n'require es6/math';\\n'require es6/number';\\n'require es6/object';\\n'require es6/promise';\\n'require es6/reflect';\\n'require es6/set';\\n'require es6/string';\\n'require es6/symbol';\\n'require es6/util/arrayfromiterable';\\n'require es6/util/arrayfromiterator';\\n'require es6/util/inherits';\\n'require es6/util/iteratorfromarray';\\n'require es6/util/makeiterator';\\n'require es6/weakmap';\\n'require es6/weakset';\\n\",\"js/license.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\",\"js/runtime_type_check.js\":\"/*\\n * Copyright 2010 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview Provides the boilerplate code for run-time type checking.\\n *\\n * @author moedinger@google.com (Andrew Moedinger)\\n * @author nadaa@google.com (Nada Amin)\\n */\\n'require base';\\n\\n/** @const */\\n$jscomp.typecheck = {};\\n\\n/**\\n * A state variable to suspend checking, to avoid infinite calls\\n * caused by calling checked code from the checking functions.\\n *\\n * @type {boolean}\\n */\\n$jscomp.typecheck.suspendChecking = false;\\n\\n\\n/**\\n * Log and possibly format the run-time type check warning. This\\n * function is customized at compile-time.\\n *\\n * @param {string} warning the warning to log.\\n * @param {*} expr the faulty expression.\\n */\\n$jscomp.typecheck.log = function(warning, expr) {};\\n\\n/**\\n * Checks that the given expression matches one of the given checkers,\\n * logging if not, and returning the expression regardless.\\n *\\n * @param {*} expr the expression to check.\\n * @param {!Array.} checkers the checkers to\\n * use in checking, one of these has to match for checking to succeed.\\n * @return {*} the given expression back.\\n */\\n$jscomp.typecheck.checkType = function(expr, checkers) {\\n if ($jscomp.typecheck.suspendChecking) {\\n return expr;\\n }\\n $jscomp.typecheck.suspendChecking = true;\\n\\n for (var i = 0; i < checkers.length; i++) {\\n var checker = checkers[i];\\n var ok = checker.check(expr);\\n if (ok) {\\n $jscomp.typecheck.suspendChecking = false;\\n return expr;\\n }\\n }\\n\\n v"; a.a+="ar warning = $jscomp.typecheck.prettify_(expr) + ' not in ' +\\n checkers.join(' ');\\n\\n $jscomp.typecheck.log(warning, expr);\\n\\n $jscomp.typecheck.suspendChecking = false;\\n return expr;\\n};\\n\\n\\n/**\\n * Prettify the given expression for printing.\\n *\\n * @param {*} expr the expression.\\n * @return {string} a string representation of the given expression.\\n * @private\\n */\\n$jscomp.typecheck.prettify_ = function(expr) {\\n var className = $jscomp.typecheck.getClassName_(expr);\\n if (className) {\\n return className;\\n }\\n try {\\n return String(expr);\\n }\\n catch (e) {}\\n return '';\\n};\\n\\n/**\\n * Gets the class name if the given expression is an object.\\n *\\n * @param {*} expr the expression.\\n * @return {string|undefined} the class name or undefined if the\\n * expression is not an object.\\n * @private\\n */\\n$jscomp.typecheck.getClassName_ = function(expr) {\\n var className = void 0;\\n if (typeof expr == 'object' && expr && expr.constructor) {\\n className = expr.constructor.name;\\n if (!className) {\\n var funNameRe = /function (.{1,})\\\\(/;\\n var m = (funNameRe).exec(expr.constructor.toString());\\n className = m && m.length > 1 ? m[1] : void 0;\\n }\\n }\\n return className;\\n};\\n\\n/**\\n * Interface for all checkers.\\n *\\n * @interface\\n */\\n$jscomp.typecheck.Checker = function() {};\\n\\n\\n/**\\n * Checks the given expression.\\n *\\n * @param {*} expr the expression to check.\\n * @return {boolean} whether the given expression matches this checker.\\n */\\n$jscomp.typecheck.Checker.prototype.check = function(expr) {};\\n\\n\\n\\n/**\\n * A class for all value checkers, except the null checker.\\n *\\n * @param {string} type the value type (e.g. 'number') of this checker.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ValueChecker_ = function(type) {\\n /**\\n * The value type of this checker.\\n * @type {string}\\n * @private\\n */\\n this.type_ = type;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ValueChecker_.prototype.check = function(expr) {\\n return typeof(expr) == this.type_;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ValueChecker_.prototype.toString = function() {\\n return 'value(' + this.type_ + ')';\\n};\\n\\n\\n\\n/**\\n * A checker class for null values.\\n *\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.NullChecker_ = function() {};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.NullChecker_.prototype.check = function(expr) {\\n return expr === null;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.NullChecker_.prototype.toString = function() {\\n return 'value(null)';\\n};\\n\\n\\n/**\\n * A checker class for a class defined in externs, including built-in\\n * JS types.\\n *\\n *

If the class type is undefined, then checking is suspended to\\n * avoid spurious warnings. This is necessary because some externs\\n * types are not defined in all browsers. For example, Window is not\\n * defined Chrome, as window has the type DOMWindow.\\n *\\n *

Another subtlety is that a built-in type may be referenced in a\\n * different frame than the one in which it was created. This causes\\n * instanceOf to return false even though the object is of the correct\\n * type. We work around this by checking as many windows as possible,\\n * redefining open on top and window to keep track of them.\\n *\\n * @param {string} className the name of the extern class to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_ = function(className) {\\n /**\\n * The name of the extern class to check.\\n * @type {string}\\n * @private\\n */\\n this.className_ = className;\\n};\\n\\n\\n/**\\n * A list of (hopefully all) open windows.\\n *\\n * @type {!Array.}\\n */\\n$jscomp.typecheck.ExternClassChecker_.windows = [];\\n\\n\\n/**\\n * A list of the original open methods that have been redefined.\\n *\\n * @type {!Array.}\\n */\\n$jscomp.typecheck.ExternClassChecker_.oldOpenFuns = [];\\n\\n\\n/**\\n * Redefines the open method on the given window, adding tracking.\\n *\\n * @param {!Window} win the window to track.\\n */\\n$jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow = function(win) {\\n if (win.tracked) {\\n return;\\n }\\n win.tracked = true;\\n\\n var key = $jscomp.typecheck.ExternClassChecker_.oldOpenFuns.length;\\n\\n $jscomp.typecheck.ExternClassChecker_.oldOpenFuns.push(win.open);\\n $jscomp.typecheck.ExternClassChecker_.windows.push(win);\\n\\n win.open = function() {\\n var w = $jscomp.typecheck.ExternClassChecker_.oldOpenFuns[key].apply(\\n this, arguments);\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(w);\\n return w;\\n };\\n};\\n\\n\\n/**\\n * Returns the global 'this' object. This will normally be the same as 'window'\\n * but when running in a worker thread, the DOM is not available.\\n *\\n * This does not work when strict mode is enabled.\\n *\\n * @return {!Window}\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_.getGlobalThis_ = function() {\\n return (function() { return this; }).call(null);\\n};\\n\\n\\n// Install listeners on the global 'this' object.\\n(function() {\\n var globalThis = $jscomp.typecheck.ExternClassChecker_.getGlobalThis_();\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(globalThis);\\n\\n var theTop = globalThis['top'];\\n if (theTop) {\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(theTop);\\n }\\n})();\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ExternClassChecker_.prototype.check = function(expr) {\\n var classTypeDefined = [ false ];\\n for (var i = 0; i < $jscomp.typecheck.ExternClassChecker_.windows.length;\\n i++) {\\n var w = $jscomp.typecheck.ExternClassChecker_.windows[i];\\n if (this.checkWindow_(w, expr, classTypeDefined)) {\\n return true;\\n }\\n }\\n return !classTypeDefined[0];\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ExternClassChecker_.prototype.toString = function() {\\n return 'ext_class(' + this.className_ + ')';\\n};\\n\\n\\n/**\\n * Checks whether the given expression is an instance of this extern\\n * class in this window or any of its frames and subframes.\\n *\\n * @param {!Window} w the window to start checking from.\\n * @param {*} expr the expression to check.\\n * @param {!Array.} classTypeDefined a wrapped boolean\\n * updated to indicate whether the class type was seen in any frame.\\n * @return {boolean} true if the given expression is an instance of this class.\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_.prototype.checkWindow_ =\\n function(w, expr, classTypeDefined) {\\n var classType = /** @type {function(new: ?)} */ (w[this.className_]);\\n classTypeDefined[0] = classTypeDefined[0] || !!classType;\\n if (classType && expr instanceof classType) {\\n return true;\\n }\\n for (var i = 0; i < w.length; i++) {\\n if (this.checkWindow_(w.frames[i], expr, classTypeDefined)) {\\n return true;\\n }\\n }\\n return false;\\n};\\n\\n\\n\\n/**\\n * A class for all checkers of user-defined classes.\\n *\\n * @param {string} className name of the class to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ClassChecker_ = function(className) {\\n\\n /**\\n * The name of the class to check.\\n * @type {string}\\n * @private\\n */\\n this.className_ = className;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ClassChecker_.prototype.check = function(expr) {\\n return !!(expr && expr['instance_of__' + this.className_]);\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ClassChecker_.prototype.toString = function() {\\n return 'class(' + this.className_ + ')';\\n};\\n\\n\\n\\n/**\\n * A class for all checkers of user-defined interfaces.\\n *\\n * @param {string} interfaceName name of the interface to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.InterfaceChecker_ = function(interfaceName) {\\n\\n /**\\n * The name of the interface to check.\\n * @type {string}\\n * @private\\n */\\n this.interfaceName_ = interfaceName;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.InterfaceChecker_.prototype.check = function(expr) {\\n return !!(expr && expr['implements__' + this.interfaceName_]);\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.InterfaceChecker_.prototype.toString = function() {\\n return 'interface(' + this.interfaceName_ + ')';\\n};\\n\\n\\n\\n/**\\n * A checker for object types (possibly with non-standard prototype: might not\\n * inherit from Object).\\n *\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ObjectChecker_ = function() {};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ObjectChecker_.prototype.check = function(expr) {\\n return (typeof(expr) == 'object' || typeof(expr) == 'function') && !!expr;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ObjectChecker_.prototype.toString = function() {\\n return 'value(object)';\\n};\\n\\n\\n\\n/**\\n * A checker for null values.\\n *\\n * @type {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.nullChecker = new $jscomp.typecheck.NullChecker_();\\n\\n\\n/**\\n * Creates a checker for the given value type (excluding the null type).\\n *\\n * @param {string} type the value type.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.valueChecker = function(type) {\\n return new $jscomp.typecheck.ValueChecker_(type);\\n};\\n\\n\\n/**\\n * Creates a checker for the given extern class name.\\n *\\n * @param {string} className the class name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.externClassChecker = function(className) {\\n return new $jscomp.typecheck.ExternClassChecker_(className);\\n};\\n\\n\\n/**\\n * Creates a checker for the given user-defined class.\\n *\\n * @param {string} className the class name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.classChecker = function(className) {\\n return new $jscomp.typecheck.ClassChecker_(className);\\n};\\n\\n\\n/**\\n * Creates a checker for the given user-defined interface.\\n *\\n * @param {string} interfaceName the interface name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.interfaceChecker = function(interfaceName) {\\n return new $jscomp.typecheck.InterfaceChecker_(interfaceName);\\n};\\n\\n\\n/**\\n * A checker for objects.\\n *\\n * @type {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.objectChecker = new $jscomp.typecheck.ObjectChecker_();\\n\",\"js/util/checkstringargs.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n\\n\\n/**\\n * Throws if the argument is a RegExp, or if thisArg is undefined.\\n * @param {?} thisArg The 'this' arg, which must be defined.\\n * @param {*} arg The first argument of the function, which mustn't be a RegExp.\\n * @param {string} func Name of the function, for reporting.\\n * @return {string} The thisArg, coerced to a string.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.checkStringArgs = function(thisArg, arg, func) {\\n if (thisArg == null) {\\n throw new TypeError(\\n \\\"The 'this' value for String.prototype.\\\" + func +\\n ' must not be null or undefined');\\n }\\n if (arg instanceof RegExp) {\\n throw new TypeError(\\n 'First argument to String.prototype.' + func +\\n ' must not be a regular expression');\\n }\\n return thisArg + '';\\n};\\n\",\"js/util/defineproperty.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides methods to polyfill native objects.\\n * @suppress {reportUnknownTypes}\\n */\\n'require util/defines';\\n\\n\\n/**\\n * Polyfill for Object.defineProperty() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\\n *\\n * Refuses to define properties on Array.prototype and Object.prototype,\\n * since we can't make them non-enumerable and this messes up peoples' for\\n * loops. Beyond this, we simply assign values and not worry\\n * about enumerability or writeability.\\n * @param {?} target\\n * @param {string} property\\n * @param {?} descriptor\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.defineProperty =\\n $jscomp.ASSUME_ES5 || typeof Object.defineProperties == 'function' ?\\n Object.defineProperty :\\n function(target, property, descriptor) {\\n descriptor = /** @type {!ObjectPropertyDescriptor} */ (descriptor);\\n // NOTE: This is currently never called with a descriptor outside\\n // the control of the compiler. If we ever decide to polyfill either\\n // Object.defineProperty or Reflect.defineProperty for ES3, we should\\n // explicitly check for `get` or `set` on the descriptor and throw a\\n // TypeError, since it's impossible to properly polyfill it.\\n if (target == Array.prototype || target == Object.prototype) return;\\n target[property] = descriptor.value;\\n };\\n\",\"js/util/defines.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n\\n\\n/**\\n * Whether to assume ES5 is available. This enables removing several\\n * internal polyfills, which must otherwise be detected at runtime.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_ES5 = false;\\n\\n/**\\n * Whether to skip the conformance check and simply use the polyfill always.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_NO_NATIVE_MAP = false;\\n\\n/**\\n * Whether to skip the conformance check and simply use the polyfill always.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_NO_NATIVE_SET = false;\\n\",\"js/util/finddescriptor.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/reflect/getownpropertydescriptor';\\n'require es6/reflect/getprototypeof';\\n\\n\\n/**\\n * Helper function to find a descriptor.\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @return {!ObjectPropertyDescriptor|undefined}\\n */\\n$jscomp.findDescriptor = function(target, propertyKey) {\\n var /** ?Object */ obj = target;\\n while (obj) {\\n var property = Reflect.getOwnPropertyDescriptor(obj, propertyKey);\\n if (property) {\\n"; a.a+=' return property;\\n }\\n obj = Reflect.getPrototypeOf(obj);\\n }\\n return undefined;\\n};\\n","js/util/findinternal.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Utility for Array methods that find elements.\\n */\\n\'require base\';\\n\\n// TODO(sdh): would be nice to template on the ARRAY type as well,\\n// so that the third arg type of callback can be refined to be\\n// exactly the same as the array type, but then there\'s no way to\\n// enforce that it must, in fact, be an array.\\n/**\\n * Internal implementation of find.\\n * @param {!IArrayLike} array\\n * @param {function(this: THIS, VALUE, number, !IArrayLike): *} callback\\n * @param {THIS} thisArg\\n * @return {{i: number, v: (VALUE|undefined)}}\\n * @template THIS, VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.findInternal = function(array, callback, thisArg) {\\n if (array instanceof String) {\\n array = /** @type {!IArrayLike} */ (String(array));\\n }\\n var len = array.length;\\n for (var i = 0; i < len; i++) {\\n var value = array[i];\\n if (callback.call(thisArg, value, i, array)) return {i: i, v: value};\\n }\\n return {i: -1, v: void 0};\\n};\\n","js/util/global.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Runtime code to store the global object.\\n */\\n\'require base\';\\n\'declare global\';\\n\'declare window\';\\n\\n\\n/**\\n * @param {!Object} maybeGlobal\\n * @return {!Object} The global object.\\n * @suppress {undefinedVars|reportUnknownTypes}\\n */\\n$jscomp.getGlobal = function(maybeGlobal) {\\n return (typeof window != \'undefined\' && window === maybeGlobal) ?\\n maybeGlobal :\\n (typeof global != \'undefined\' && global != null) ? global : maybeGlobal;\\n};\\n\\n\\n// TODO(sdh): This should be typed as \\"the global object\\", but there\'s not\\n// currently any way to do this in the existing type system.\\n/**\\n * The global object. For browsers we could just use `this` but in Node that\\n * doesn\'t work.\\n * @const {?}\\n */\\n$jscomp.global = $jscomp.getGlobal(this);\\n","js/util/objectcreate.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides a partial internal polyfill for Object.create.\\n */\\n\'require util/defines\';\\n\\n\\n/**\\n * Polyfill for Object.create() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create\\n *\\n * Does not implement the second argument.\\n * @param {!Object} prototype\\n * @return {!Object}\\n */\\n$jscomp.objectCreate =\\n ($jscomp.ASSUME_ES5 || typeof Object.create == \'function\') ?\\n Object.create :\\n function(prototype) {\\n /** @constructor */\\n var ctor = function() {};\\n ctor.prototype = prototype;\\n return new ctor();\\n };\\n","js/util/owns.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require base\';\\n\\n/**\\n * Synonym for Object.prototype.hasOwnProperty.call(obj, prop).\\n * @param {!Object} obj\\n * @param {string} prop\\n * @return {boolean}\\n */\\n$jscomp.owns = function(obj, prop) {\\n return Object.prototype.hasOwnProperty.call(obj, prop);\\n};\\n","js/util/polyfill.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides methods to polyfill native objects.\\n */\\n\'require util/defineproperty\';\\n\'require util/global\';\\n\\n\\n/**\\n * @param {string} target\\n * @param {?function(*): *} polyfill\\n * @param {string} fromLang\\n * @param {string} toLang\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.polyfill = function(target, polyfill, fromLang, toLang) {\\n if (!polyfill) return;\\n var obj = $jscomp.global;\\n var split = target.split(\'.\');\\n for (var i = 0; i < split.length - 1; i++) {\\n var key = split[i];\\n if (!(key in obj)) obj[key] = {}; // Might want to be defineProperty.\\n obj = obj[key];\\n }\\n var property = split[split.length - 1];\\n var orig = obj[property];\\n var impl = polyfill(orig);\\n if (impl == orig || impl == null) return;\\n $jscomp.defineProperty(\\n obj, property, {configurable: true, writable: true, value: impl});\\n};\\n","js/util/stringpadding.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require es6/string/repeat\';\\n\\n/**\\n * Repeats the given string as necessary to reach the given length,\\n * truncating any extra characters.\\n * @param {string|undefined} padString\\n * @param {number} padLength\\n * @return {string}\\n */\\n$jscomp.stringPadding = function(padString, padLength) {\\n var padding = padString !== undefined ? String(padString) : \' \';\\n if (!(padLength > 0) || !padding) return \'\';\\n var repeats = Math.ceil(padLength / padding.length);\\n return padding.repeat(repeats).substring(0, padLength);\\n};\\n","parsing/ParserConfig.properties":"# Copyright 2009 The Closure Compiler Authors.\\n#\\n# Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n# you may not use this file except in compliance with the License.\\n# You may obtain a copy of the License at\\n#\\n# http://www.apache.org/licenses/LICENSE-2.0\\n#\\n# Unless required by applicable law or agreed to in writing, software\\n# distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n# See the License for the specific language governing permissions and\\n# limitations under the License.\\n\\n# Configuration options for the Parser.\\n#\\n# Allows us to update the allowed JSDoc annotations independently of the\\n# Compiler binary, so we can add new JSDoc annotations to old binaries.\\n\\n# The version of the compiler that we\'re currently building.\\n# Should be formatted as:\\n# Version# (Revision XXX)\\ncompiler.version = ${compiler.version}\\n\\n# The datestamp of the compiler that we\'re currently building.\\ncompiler.date = ${compiler.date}\\n\\n# A comma-delimited list.\\n# Some of these are not used by JSCompiler, but appear in third-party JS code.\\n# http://usejsdoc.org/\\n# It\'s not strictly necessary for the natively-supported annotations to be\\n# listed here, but it\'s nice to have them all in one place.\\njsdoc.annotations =\\\\\\n addon,\\\\\\n alias,\\\\\\n animations,\\\\\\n augments,\\\\\\n author,\\\\\\n base,\\\\\\n borrows,\\\\\\n bug,\\\\\\n channel, \\\\\\n class,\\\\\\n classdesc,\\\\\\n codepen,\\\\\\n config,\\\\\\n consistentIdGenerator,\\\\\\n constructor,\\\\\\n constructs,\\\\\\n copyright,\\\\\\n default,\\\\\\n delegate,\\\\\\n demo,\\\\\\n deprecated,\\\\\\n desc,\\\\\\n description,\\\\\\n dict,\\\\\\n element,\\\\\\n enhance,\\\\\\n enhanceable,\\\\\\n enum,\\\\\\n event,\\\\\\n eventOf,\\\\\\n eventType,\\\\\\n example,\\\\\\n exception,\\\\\\n exec,\\\\\\n export,\\\\\\n expose,\\\\\\n externs,\\\\\\n field,\\\\\\n file,\\\\\\n fires,\\\\\\n function,\\\\\\n global,\\\\\\n hassoydelcall,\\\\\\n hassoydeltemplate,\\\\\\n id,\\\\\\n idGenerator,\\\\\\n ignore,\\\\\\n inner,\\\\\\n instance,\\\\\\n kind,\\\\\\n lends,\\\\\\n link,\\\\\\n meaning,\\\\\\n member,\\\\\\n memberOf,\\\\\\n memberof,\\\\\\n method,\\\\\\n methodOf,\\\\\\n mixes,\\\\\\n mixin,\\\\\\n modName,\\\\\\n model,\\\\\\n modifies,\\\\\\n mods,\\\\\\n module,\\\\\\n multiElement,\\\\\\n name,\\\\\\n namespace,\\\\\\n ngInject,\\\\\\n ngdoc,\\\\\\n nocompile,\\\\\\n package,\\\\\\n param,\\\\\\n parent,\\\\\\n pintomodule,\\\\\\n preserveTry,\\\\\\n priority,\\\\\\n private,\\\\\\n property,\\\\\\n propertyOf,\\\\\\n protected,\\\\\\n provideGoog,\\\\\\n public,\\\\\\n readonly,\\\\\\n requirecss,\\\\\\n requires,\\\\\\n restrict,\\\\\\n returns,\\\\\\n scope,\\\\\\n see,\\\\\\n since,\\\\\\n stableIdGenerator,\\\\\\n static,\\\\\\n struct,\\\\\\n summary,\\\\\\n supported,\\\\\\n this,\\\\\\n throws,\\\\\\n todo,\\\\\\n tutorial,\\\\\\n type,\\\\\\n typedef,\\\\\\n url,\\\\\\n usage,\\\\\\n version,\\\\\\n virtual,\\\\\\n visibility,\\\\\\n wizSupportsSymbolicLookup,\\\\\\n wizaction,\\\\\\n wizmodule\\n\\n# Comma-delimited list of valid suppressions.\\n# This should be a subset of the list of DiagnosticGroups.\\njsdoc.suppressions =\\\\\\n accessControls,\\\\\\n ambiguousFunctionDecl,\\\\\\n checkDebuggerStatement,\\\\\\n checkRegExp,\\\\\\n checkTypes,\\\\\\n checkVars,\\\\\\n closureDepMethodUsageChecks,\\\\\\n const,\\\\\\n constantProperty,\\\\\\n deprecated,\\\\\\n duplicate,\\\\\\n es5Strict,\\\\\\n externsValidation,\\\\\\n extraProvide,\\\\\\n extraRequire,\\\\\\n fileoverviewTags,\\\\\\n globalThis,\\\\\\n invalidCasts,\\\\\\n legacyGoogScopeRequire,\\\\\\n lateProvide,\\\\\\n lintChecks,\\\\\\n messageConventions,\\\\\\n misplacedTypeAnnotation,\\\\\\n missingOverride, \\\\\\n missingPolyfill, \\\\\\n missingProperties,\\\\\\n missingProvide,\\\\\\n missingRequire,\\\\\\n missingReturn,\\\\\\n newCheckTypes,\\\\\\n newCheckTypesAllChecks,\\\\\\n nonStandardJsDocs,\\\\\\n reportUnknownTypes,\\\\\\n strictModuleDepCheck,\\\\\\n suspiciousCode,\\\\\\n transitionalSuspiciousCodeWarnings,\\\\\\n undefinedNames,\\\\\\n undefinedVars,\\\\\\n underscore,\\\\\\n unknownDefines,\\\\\\n unnecessaryCasts,\\\\\\n unusedLocalVariables,\\\\\\n unusedPrivateMembers,\\\\\\n uselessCode,\\\\\\n visibility,\\\\\\n with\\n\\n# A comma-delimited list of reserved words that we should not rename variables\\n# to. Used when an extension is released that steps on globals.\\n# This prevents the compiler from renaming variables to these names, but not\\n# from allowing externs for these names.\\n#\\n# i,j - common loop variables often overwritten by browser extensions\\n# s \u2013 commonly defined by browser extensions when injecting scripts.\\n# $j,$ - common jquery aliases often overwritten by browser extensions\\n# o - overwritten by Norton Identity Protection\'s Chrome extension.\\ncompiler.reserved.vars = i,j,s,$,$j,o\\n","rhino/Messages.properties":"#\\n# Default JavaScript messages file.\\n#\\n# ***** BEGIN LICENSE BLOCK *****\\n# Version: MPL 1.1/GPL 2.0\\n#\\n# The contents of this file are subject to the Mozilla Public License Version\\n# 1.1 (the \\"License\\"); you may not use this file except in compliance with\\n# the License. You may obtain a copy of the License at\\n# http://www.mozilla.org/MPL/\\n#\\n# Software distributed under the License is distributed on an \\"AS IS\\" basis,\\n# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\\n# for the specific language governing rights and limitations under the\\n# License.\\n#\\n# The Original Code is Rhino code, released\\n# May 6, 1999.\\n#\\n# The Initial Developer of the Original Code is\\n# Netscape Communications Corporation.\\n# Portions created by the Initial Developer are Copyright (C) 1997-1999\\n# the Initial Developer. All Rights Reserved.\\n#\\n# Contributor(s):\\n# Norris Boyd\\n# Bob Jervis\\n# Pascal-Louis Perez\\n#\\n# Alternatively, the contents of this file may be used under the terms of\\n# the GNU General Public License Version 2 or later (the \\"GPL\\"), in which\\n# case the provisions of the GPL are applicable instead of those above. If\\n# you wish to allow use of your version of this file only under the terms of\\n# the GPL and not to allow others to use your version of this file under the\\n# MPL, indicate your decision by deleting the provisions above and replacing\\n# them with the notice and other provisions required by the GPL. If you do\\n# not delete the provisions above, a recipient may use your version of this\\n# file under either the MPL or the GPL.\\n#\\n# ***** END LICENSE BLOCK *****\\n\\n# This is replaced during jar assembly from property string\\n# and should not be translated\\nimplementation.version = @IMPLEMENTATION.VERSION@\\n\\n#\\n# To add JavaScript error messages for a particular locale, create a\\n# new Messages_[locale].properties file, where [locale] is the Java\\n# string abbreviation for that locale. For example, JavaScript\\n# messages for the Polish locale should be located in\\n# Messages_pl.properties, and messages for the Italian Swiss locale\\n# should be located in Messages_it_CH.properties. Message properties\\n# files should be accessible through the classpath under\\n# org.mozilla.javascript.resources\\n#\\n# See:\\n# java.util.ResourceBundle\\n# java.text.MessageFormat\\n#\\n\\n# SomeJavaClassWhereUsed\\n\\n# Codegen\\nmsg.dup.parms =\\\\\\n Duplicate parameter name \\"{0}\\".\\n\\nmsg.unexpected.eof =\\\\\\n Unexpected end of file\\n\\nmsg.extra.trailing.comma =\\\\\\n Trailing comma is not legal in an ECMA-262 object initializer\\n\\nmsg.end.annotation.expected =\\\\\\n expected end of line or comment.\\n\\nmsg.bad.jsdoc.tag =\\\\\\n illegal use of unknown JSDoc tag \\"{0}\\"; ignoring it\\n\\nmsg.bad.fileoverview.visibility.annotation =\\\\\\n {0} visibility not allowed in @fileoverview block\\n\\nmsg.missing.variable.name =\\\\\\n expecting a variable name in a @param tag.\\n\\nmsg.dup.variable.name =\\\\\\n duplicate variable name \\"{0}\\"\\n\\nmsg.invalid.variable.name =\\\\\\n invalid param name \\"{0}\\"\\n\\nmsg.jsdoc.incompat.type =\\\\\\n type annotation incompatible with other annotations.\\n\\nmsg.'; a.a+='jsdoc.type.syntax =\\\\\\n type not recognized due to syntax error.\\n\\nmsg.jsdoc.override =\\\\\\n extra @override/@inheritDoc tag.\\n\\nmsg.jsdoc.final =\\\\\\n extra @final tag.\\n\\nmsg.jsdoc.extra.visibility=\\\\\\n extra visibility tag\\n\\nmsg.jsdoc.idgen.duplicate =\\\\\\n extra @idGenerator tag\\n\\nmsg.jsdoc.idgen.bad =\\\\\\n malformed @idGenerator tag\\n\\nmsg.jsdoc.wizaction =\\\\\\n extra @wizaction tag\\n\\nmsg.jsdoc.idgen.unknown =\\\\\\n unknown @idGenerator parameter: {0}\\n\\nmsg.jsdoc.hidden =\\\\\\n extra @hidden tag\\n\\nmsg.jsdoc.consistidgen =\\\\\\n extra @consistentIdGenerator tag\\n\\nmsg.jsdoc.const =\\\\\\n conflicting @const tag\\n\\nmsg.jsdoc.desc.extra =\\\\\\n extra @desc tag\\n\\nmsg.jsdoc.meaning.extra =\\\\\\n extra @meaning tag\\n\\nmsg.jsdoc.fileoverview.extra =\\\\\\n extra @fileoverview tag\\n\\nmsg.jsdoc.lends.incompatible =\\\\\\n @lends tag incompatible with other annotations.\\n\\nmsg.jsdoc.lends.missing =\\\\\\n missing object name in @lends tag.\\n\\nmsg.jsdoc.preserve.nobuilder =\\\\\\n @preserve or @license annotation without file to associate it with\\n\\nmsg.jsdoc.missing.lp =\\\\\\n missing opening (\\n\\nmsg.jsdoc.missing.braces =\\\\\\n Type annotations should have curly braces.\\n\\nmsg.jsdoc.missing.rc =\\\\\\n expected closing }\\n\\nmsg.jsdoc.missing.rp =\\\\\\n missing closing )\\n\\nmsg.jsdoc.missing.gt =\\\\\\n missing closing >\\n\\nmsg.jsdoc.missing.rb =\\\\\\n missing closing ]\\n\\nmsg.jsdoc.missing.colon =\\\\\\n expecting colon after this\\n\\nmsg.jsdoc.function.this =\\\\\\n expecting this but {0} found\\n\\nmsg.jsdoc.function.newnotobject =\\\\\\n constructed type must be an object type\\n\\nmsg.jsdoc.function.varargs =\\\\\\n variable length argument must be last.\\n\\nmsg.jsdoc.type.union =\\\\\\n union type element with bad syntax\\n\\nmsg.jsdoc.type.record.duplicate =\\\\\\n Duplicate record field {0}.\\n\\nmsg.jsdoc.enum =\\\\\\n conflicting @enum tag\\n\\nmsg.jsdoc.constructor =\\\\\\n conflicting @constructor tag\\n\\nmsg.jsdoc.deprecated =\\\\\\n extra @deprecated tag\\n\\nmsg.jsdoc.interface =\\\\\\n extra @interface tag\\n\\nmsg.jsdoc.interface.constructor =\\\\\\n cannot be both an interface and a constructor.\\n\\nmsg.jsdoc.record =\\\\\\n conflicting @record tag.\\n\\nmsg.jsdoc.implements.duplicate =\\\\\\n duplicate @implements tag.\\n\\nmsg.jsdoc.noalias =\\\\\\n extra @noalias tag\\n\\nmsg.jsdoc.nosideeffects =\\\\\\n conflicting @nosideeffects tag\\n\\nmsg.jsdoc.implicitcast =\\\\\\n extra @implicitCast tag.\\n\\nmsg.jsdoc.this =\\\\\\n conflicting @this tag\\n\\nmsg.jsdoc.this.object =\\\\\\n @this must specify an object type\\n\\nmsg.jsdoc.type =\\\\\\n conflicting @type tag\\n\\nmsg.jsdoc.define =\\\\\\n conflicting @define tag\\n\\nmsg.jsdoc.define.badtype =\\\\\\n @define tag only permits literal types\\n\\nmsg.jsdoc.extends =\\\\\\n conflicting @extends tag\\n\\nmsg.jsdoc.extends.duplicate =\\\\\\n duplicate @extends tag\\n\\nmsg.jsdoc.export =\\\\\\n extra @export tag\\n\\nmsg.jsdoc.expose =\\\\\\n extra @expose tag\\n\\nmsg.jsdoc.externs =\\\\\\n extra @externs tag\\n\\nmsg.jsdoc.nocompile =\\\\\\n extra @nocompile tag\\n\\nmsg.jsdoc.nocollapse =\\\\\\n extra @nocollapse tag\\n\\nmsg.jsdoc.seemissing =\\\\\\n @see tag missing description\\n\\nmsg.jsdoc.authormissing =\\\\\\n @author tag missing author\\n\\nmsg.jsdoc.versionmissing =\\\\\\n @version tag missing version information\\n\\nmsg.jsdoc.extraversion =\\\\\\n conflicting @version tag\\n\\nmsg.jsdoc.suppress =\\\\\\n malformed @suppress tag\\n\\nmsg.jsdoc.suppress.duplicate =\\\\\\n duplicate @suppress tag\\n\\nmsg.jsdoc.suppress.unknown =\\\\\\n unknown @suppress parameter: {0}\\n\\nmsg.jsdoc.modifies =\\\\\\n malformed @modifies tag\\n\\nmsg.jsdoc.modifies.duplicate =\\\\\\n conflicting @modifies tag\\n\\nmsg.jsdoc.modifies.unknown =\\\\\\n unknown @modifies parameter: {0}\\n\\nmsg.jsdoc.polymerBehavior.extra =\\\\\\n extra @polymerBehavior tag\\n\\nmsg.jsdoc.stableidgen =\\\\\\n extra @stableIdGenerator tag\\n\\nmsg.jsdoc.templatemissing =\\\\\\n @template tag missing type name.\\n\\nmsg.jsdoc.template.name.declared.twice =\\\\\\n Type name(s) for @template annotation declared twice.\\n\\nmsg.jsdoc.template.invalid.type.name =\\\\\\n Invalid type name(s) for @template annotation.\\n\\nmsg.jsdoc.disposeparameter.missing =\\\\\\n @disposes tag missing parameter name.\\n\\nmsg.jsdoc.disposeparameter.error =\\\\\\n @disposes parameter unknown or parameter specified multiple times.\\n\\nmsg.jsdoc.jaggerInject.extra =\\\\\\n extra @jaggerInject tag\\n\\nmsg.jsdoc.jaggerModule.extra =\\\\\\n extra @jaggerModule tag\\n\\nmsg.jsdoc.jaggerProvidePromise.extra =\\\\\\n extra @jaggerProvidePromise tag\\n\\nmsg.jsdoc.jaggerProvide.extra =\\\\\\n extra @jaggerProvide tag\\n\\nmsg.jsdoc.nginject.extra =\\\\\\n extra @ngInject tag\\n\\nmsg.no.type.name =\\\\\\n expecting a type name.\\n\\nmsg.jsdoc.typetransformation.missing.delimiter =\\\\\\n Expected end delimiter for a type transformation.\\n\\nmsg.jsdoc.typetransformation.with.multiple.names =\\\\\\n Type transformation must be associated to a single type name.\\n\\nmsg.jsdoc.typetransformation.expression.missing =\\\\\\n Missing type transformation expression.\\n\\nmsg.jsdoc.typetransformation.invalid =\\\\\\n Invalid {0}\\n\\nmsg.jsdoc.typetransformation.invalid.expression =\\\\\\n Invalid {0} expression\\n\\nmsg.jsdoc.typetransformation.missing.param =\\\\\\n Missing parameter in {0}\\n\\nmsg.jsdoc.typetransformation.extra.param =\\\\\\n Found extra parameter in {0}\\n\\nmsg.jsdoc.typetransformation.invalid.inside =\\\\\\n Invalid expression inside {0}\\n"}\n'; return a.a}var jFc="object",kFc="boolean",lFc="number",mFc="function",nFc="string",oFc=2147483647,pFc='For input string: "',qFc="null",rFc=-2147483648,sFc="\\\\",tFc={3:1,4:1,12:1},uFc={87:1,3:1},vFc=65536,wFc=55296,xFc=1023,yFc=65535,zFc=56320,AFc={3:1},BFc="use Optional.orNull() instead of Optional.or(null)",CFc={33:1},DFc="0123456789ABCDEF",EFc={102:1,55:1,56:1},FFc="[A-Z\\d]",GFc="[A-Z]",HFc=", ",IFc="(this Collection)",JFc={16:1,18:1},KFc={3:1,4:1},LFc={16:1,18:1,51:1},MFc="%s (%s) must not be negative", NFc="index",OFc="negative size: ",PFc={3:1,11:1,4:1},QFc={55:1,135:1,3:1,22:1,13:1,56:1},RFc={16:1},SFc={49:1},TFc="value already present: %s",UFc={3:1,49:1},VFc="no calls to next() since the last call to remove()",WFc={50:1},XFc="entry no longer in map",YFc={16:1,18:1,29:1},ZFc={109:1,33:1},$Fc={109:1,33:1,137:1},_Fc={108:1,3:1},aGc={16:1,18:1,51:1,80:1},bGc={33:1,137:1},cGc={16:1,18:1,29:1,128:1},dGc={16:1,18:1,211:1,29:1,128:1},eGc="occurrences cannot be negative: %s",fGc={173:1,50:1},gGc={71:1, 3:1,16:1,18:1},hGc={71:1,118:1,3:1,16:1,18:1,51:1,80:1},iGc={3:1,4:1,114:1},jGc={159:1,3:1,49:1},kGc={71:1,134:1,3:1,16:1,18:1,29:1},lGc={567:1,3:1},mGc={405:1,3:1},nGc=1073741824,oGc="expectedKeys",pGc="position (",qGc="expectedValuesPerKey",rGc=461845907,sGc=-862048943,tGc={152:1,196:1,3:1,22:1,13:1,151:1},uGc={152:1,151:1},vGc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",wGc={389:1,3:1},xGc="__noinit__",yGc="__java$exception",zGc="stack",AGc={3:1,41:1},BGc="\n",CGc={3:1,43:1, 41:1},DGc={l:0,m:0,h:524288},EGc={120:1,3:1},FGc=1114111,GGc="String",HGc="anonymous",IGc="fnStack",JGc="Unknown",KGc=4194303,LGc=1048575,MGc=524288,NGc=4194304,OGc=17592186044416,PGc=4095,QGc=-17592186044416,RGc="CSS1Compat",SGc="ERROR",TGc="WARNING",UGc="OFF",VGc="Expected 0 children, but was ",WGc="Expected ",XGc=" children, but was ",YGc="Expected assignment target expression but was ",ZGc="Expected 1 children, but was ",$Gc="Expected 2 children, but was ",_Gc="Expected child count in [1, 2], but was ", aHc="Expected child count in [0, 1], but was ",bHc="Expected non-null string.",cHc="Expected non-empty string.",dHc="Invalid child for ",eHc="Expected unnamed function expression.",fHc="Expected child count in [2, 3], but was ",gHc={59:1},hHc={574:1,3:1,4:1},iHc={129:1},jHc={27:1},kHc="cannot reference {2} because of a missing module dependency\ndefined in module {1}, referenced from module {0}",lHc="Missing return statement. Function expected to return {0}.",mHc="missing require: ''{0}''",nHc="JSC_AT_EXPORT_IN_GOOG_MODULE", oHc="Array.isArray",pHc="goog",qHc="Invalid name '%s'. Did you mean to use NodeUtil.newQName?",rHc={37:1,3:1,4:1},sHc="getInstance",tHc="goog.bind",uHc="goog.partial",vHc="goog$partial",wHc="goog.provide",xHc="goog.module",yHc="goog.require",zHc="prototype",AHc="goog.addSingletonGetter",BHc="goog$addSingletonGetter",CHc="JSC_LATE_PROVIDE_ERROR",DHc="use strict",EHc="module",FHc="finally",GHc="return",HHc="Unexpected Node subclass.",IHc="async",JHc="...",KHc="export",LHc="default",MHc="from",NHc="import", OHc="class",PHc="extends",QHc="implements",RHc="while",SHc="this",THc="super",UHc="new.target",VHc="false",WHc="true",XHc="continue",YHc="Unexpected token type. Should be LABEL_NAME.",ZHc="debugger",$Hc="void",_Hc="interface",aIc="enum",bIc="namespace",cIc="type",dIc="declare",eIc="async function",fIc="Expected qualified name, found: %s",gIc="Function.prototype.bind.call",hIc="only implemented in ClosureCodingConvention",iIc="$jscomp.inherits",jIc="$jscomp$inherits",kIc="window",lIc="JSC_MISSING_ENTRY_ERROR", mIc="JSC_OPTIMIZE_LOOP_ERROR",nIc="No inputs. Did you call init() or initModules()?",oIc="generateReport",pIc=".js",qIc=" [synthetic:",rIc="{SyntheticVarsDeclar}",sIc=32768,tIc=131072,uIc="toSource",vIc="parseInputs",wIc="recordFunctionInformation",xIc="readInputs",yIc="runTranspileOnlyPasses",zIc="runWhitespaceOnlyPasses",AIc={70:1},BIc="./",CIc="checkTypes",DIc="collapseObjectLiterals",EIc="inlineFunctions",FIc="inlineVariables",GIc="locale",HIc="removeUnusedClassProperties",IIc="removeUnusedPrototypeProperties", JIc="removeUnusedVars",KIc="BROWSER",LIc="FALSE",MIc="TRUE",NIc="ECMASCRIPT3",OIc="ECMASCRIPT5",PIc={187:1,3:1},QIc={3:1,129:1},RIc="{0}",SIc="reportUnknownTypes",TIc="analyzerChecks",UIc="analyzerChecksInternal",VIc="oldReportUnknownTypes",WIc="newCheckTypes",XIc="newCheckTypesCompatibility",YIc="newCheckTypesExtraChecks",ZIc="missingSourcesWarnings",$Ic="deprecated",_Ic="inferredConstCheck",aJc="fileoverviewTags",bJc="uselessCode",cJc="const",dJc="duplicate",eJc="missingProvide",fJc="missingRequire", gJc="unnecessaryCasts",hJc={133:1,3:1,22:1,13:1},iJc="JSC_INVALID_SUPER_CALL",jJc=134217728,kJc="apply",lJc="arguments",mJc="var_args",nJc="Only calls to super or to a method of super are supported.",oJc="constructor",pJc="call",qJc={59:1,27:1},rJc={55:1,56:1},sJc="Error",tJc="RangeError",uJc="ReferenceError",vJc="SyntaxError",wJc="Array",xJc="Boolean",yJc="Function",zJc="Number",AJc="RegExp",BJc="Symbol",CJc="Object",DJc="$jscomp$tmp$error",EJc="message",FJc="$jscomp$super$this",GJc="undefined", HJc="%20",IJc="%5B",JJc="%5D",KJc="%3C",LJc="%3E",MJc="$jscomp$arguments",NJc="$jscomp$this",OJc="$jscomp$loop$",PJc=".prototype",QJc=-536870912,RJc=2097152,SJc=8388608,TJc="util/global",UJc="$jscomp.global.Object.defineProperties",VJc=536870912,WJc=1024,XJc="ES5 getters/setters (consider using --language_out=ES5)",YJc="$jscomp$destructuring$var",ZJc="next",$Jc="value",_Jc="$jscomp$generator$forin$array",aKc="$jscomp$generator$forin$var",bKc="$jscomp$generator$forin$iter",cKc="$jscomp$generator$state", dKc="done",eKc="es6/symbol",fKc="$jscomp$generator$arguments",gKc="$jscomp$generator$this",hKc="$jscomp$generator$first$do",iKc="$jscomp$generator$global$errortemp",jKc="$jscomp$generator$global$error",kKc="$jscomp$generator$throw$arg",lKc="$jscomp$generator$yield$all",mKc="$jscomp$generator$yield$entry",nKc="$jscomp$generator$next$arg",oKc="$jscompDefaultExport",pKc="JSC_CANNOT_CONVERT",qKc="$jscomp$key$",rKc="Symbol.iterator",sKc="$jscomp$restParams",tKc="$jscomp$restIndex",uKc="$jscomp$",vKc="Unexpected.", wKc="@implements used without @constructor or @interface for {0}",xKc="parameter {0} does not appear in {1}''s parameter list",yKc=1610612736,zKc=".prototype.",AKc=67108864,BKc="CLASS",CKc="FUNCTION",DKc="property {0} on interface {1} is not implemented by type {2}",EKc="interface member functions must have an empty body",FKc="IObject",GKc="IObject#index",HKc="Window",IKc=16384,JKc="%anon_fun",KKc="Object{}",LKc="IArrayLike",MKc=268435456,NKc="%getter_fun",OKc="%setter_fun",PKc="goog.getMsg", QKc="java.lang.Integer",RKc="java/lang/Integer.impl.java.js",SKc="java.lang.Float",TKc="java/lang/Float.impl.java.js",UKc="goog.math.Long",VKc="closure/goog/math/long.js",WKc="throws",XKc="@template ",YKc="typedef",ZKc={27:1,911:1},$Kc='Constructor {0} should be called with the "new" keyword',_Kc="Illegal key, the object literal is a {0}",aLc="Cannot use the IN operator with structs",bLc="Property {0} never defined on {1}",cLc="Function {0}: called with {1} argument(s). Function requires at least {2} argument(s){3}.", dLc="Cannot do {0} access on a {1}",eLc="unknown type: {0}",fLc="Abstract super method {0} cannot be called",gLc="Constructor expected as first argument",hLc="Infinity",iLc="typeof",jLc="instanceof",kLc=1048576,lLc="Unexpected const change.\n name: ",mLc="peepholeOptimizations",nLc="removeUnreachableCode",oLc="JSC_BASE_CLASS_ERROR",pLc="$jscomp$async$this",qLc="$jscomp$async$arguments",rLc="$jscomp$async$generator",sLc="$jscomp",tLc="/package.json",uLc="$jscomp.polyfill",vLc="Parse error. {0}",wLc= "Keywords and reserved words are not allowed as unquoted property names in older versions of JavaScript. If you are targeting newer versions of JavaScript, set the appropriate language_in option.",xLc="Can only have JSDoc or inline type annotations, not both",yLc="Trailing comma is not legal in an ECMA-262 object initializer",zLc="msg.bad.jsdoc.tag",ALc="Non-JSDoc comment has annotations. Did you mean to start it with '/**'?",BLc="Sanity Check failed",CLc={189:1,3:1,22:1,13:1},DLc={191:1,977:1,3:1}, ELc={55:1,194:1,3:1,22:1,13:1,56:1},FLc={193:1,3:1,22:1,13:1},GLc="DEFAULT",HLc="-beginning-",ILc="JSC_INEXISTENT_PROPERTY",JLc="{1} cannot extend this type; {0}s can only extend {0}s",KLc="{0} cannot implement this type; an interface can only extend, but not implement interfaces",LLc=" * ",MLc={53:1,3:1,4:1},NLc="../",OLc={152:1,274:1,3:1,22:1,13:1,151:1},PLc="node_modules/",QLc="Expected state DURING_RESOLUTION but found %s",RLc="NOT_RESOLVED",SLc="DURING_RESOLUTION",TLc="LOOSE_TOP_FUNCTION",ULc= "TOP_FUNCTION",VLc="FALSE_TYPE",WLc="NULL",XLc="NUMBER",YLc="STRING",ZLc="TOP_SCALAR",$Lc="TRUTHY",_Lc="UNKNOWN",aMc="UNDEFINED_OR_BOOLEAN",bMc="UNDEFINED_OR_NUMBER",cMc="UNDEFINED_OR_STRING",dMc="NULL_OR_BOOLEAN",eMc="NULL_OR_NUMBER",fMc="NULL_OR_STRING",gMc="NULL_OR_UNDEFINED",hMc="NUMBER_OR_STRING",iMc={127:1,153:1,93:1,61:1,3:1},jMc="QMARK_FUNCTION",kMc="BOTTOM_FUNCTION",lMc={562:1,49:1},mMc="Type variable %s not in the domain: %s",nMc="CONSTRUCTOR",oMc="ENUM",pMc="EXTENDS",qMc="EXPORT",rMc="IMPLEMENTS", sMc="INTERFACE",tMc="PACKAGE",uMc="PRIVATE",vMc="PROTECTED",wMc="PUBLIC",xMc="RETURN",yMc="THIS",zMc="TYPE",AMc="package",BMc="private",CMc="protected",DMc="public",EMc="static",FMc="Octal integer literals are not supported in strict mode.",GMc="Invalid octal digit in octal literal.",HMc="unexpected: ",IMc="this language feature is only supported for ",JMc=" mode or better: ",KMc="__missing_expression__",LMc="unique",MMc="consistent",NMc="Bad type annotation. ",OMc=" See https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation for more information.", PMc="msg.jsdoc.incompat.type",QMc="msg.jsdoc.interface.constructor",RMc="msg.jsdoc.missing.rc",SMc="msg.jsdoc.template.name.declared.twice",TMc="msg.jsdoc.extra.visibility",UMc="msg.jsdoc.type.syntax",VMc="msg.jsdoc.missing.rp",WMc="msg.jsdoc.idgen.bad",XMc="msg.jsdoc.idgen.duplicate",YMc="msg.jsdoc.modifies",ZMc="msg.jsdoc.suppress",$Mc="ANNOTATION",_Mc="com.google.javascript.jscomp.parsing.ParserConfig",aNc="Expected a call node, found %s",bNc="msg.jsdoc.typetransformation.invalid",cNc="msg.jsdoc.typetransformation.invalid.expression", dNc="type transformation",eNc="msg.jsdoc.typetransformation.invalid.inside",fNc="conditional",gNc="map function",hNc="Expected a function node, found %s",iNc="msg.jsdoc.typetransformation.missing.param",jNc="msg.jsdoc.typetransformation.extra.param",kNc="map function body",lNc="template type operation",mNc="INSTANCEOF",nNc="unknown",oNc="SUPER",pNc="NEW_TARGET",qNc="AMBIENT_DECLARATION",rNc="CALL_SIGNATURE",sNc="INDEX_SIGNATURE",tNc="NAMESPACE_DECLARATION",uNc="OPTIONAL_PARAMETER",vNc="TYPE_ALIAS", wNc="CATCH",xNc="CONTINUE",yNc="DEBUGGER",zNc="delete",ANc="FINALLY",BNc="SWITCH",CNc="TYPEOF",DNc="IMPORT",ENc="DECLARE",FNc="NAMESPACE",GNc="'%s' expected",HNc="No newline allowed before '=>'",INc="invalid assignment target",JNc="async functions cannot be generators",KNc="invalid parenthesized expression",LNc="cannot use keyword '%s' here.",MNc="unreachable",NNc="invalid arrow function parameters",ONc="Unterminated template literal",PNc="In some cases, '\x3c!--' and '--\x3e' are treated as a '//' for legacy reasons. Removing this from your code is safe for all browsers currently in use.", QNc="ARRAY_PATTERN",RNc="OBJECT_PATTERN",SNc="ARRAY_TYPE",TNc="RECORD_TYPE",UNc="UNION_TYPE",VNc="FUNCTION_TYPE",WNc="GENERIC_TYPE_LIST",XNc=4294967295,YNc="Bit index should be non-negative integer",ZNc="String has leading or trailing whitespace",$Nc="The new child node has next siblings.",_Nc="The new child node has previous siblings.",aOc="The new child node already has a parent.",bOc="Number node not created with Node.newNumber",cOc="String node not created with Node.newString",dOc=" is not a string node", eOc="com.google.javascript.rhino.Messages",fOc="STRING_TYPE",gOc="BOOLEAN_TYPE",hOc="NUMBER_TYPE",iOc={61:1,24:1,3:1},jOc={93:1,61:1,24:1,52:1,3:1},kOc={93:1,61:1,24:1,52:1,90:1,3:1},lOc="Expected a constructor; got %s",mOc={153:1,93:1,61:1,72:1,24:1,52:1,90:1,3:1},nOc={161:1,3:1,22:1,13:1},oOc={22:1,186:1},pOc={3:1,16:1,18:1,51:1,80:1},qOc=16777619,rOc={3:1,16:1,18:1,29:1},sOc={3:1,16:1,18:1,51:1},tOc={3:1,22:1,13:1,145:1},uOc={3:1,4:1,979:1},vOc="Invalid UTF8 sequence",wOc=", length: ",xOc="fromIndex: ", yOc=", toIndex: ",zOc="user.agent";var _,ZV,UV,zV=-1;$V();_V(1,null,{},lb);_.Ad=function mb(a){return this===a};_.Bd=function ob(){return this.Qj};_.Cd=function qb(){return aFc(this)};_.Dd=function sb(){var a;return tnc(pb(this))+"@"+(a=rb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Ad(a)};_.hashCode=function(){return this.Cd()};_.toString=function(){return this.Dd()};var YD,ZD,$D;YD={3:1,613:1,22:1};var Tmc,Umc;_V(390,1,{},vnc);_.yj=function wnc(a){var b;b=new vnc;b.i=4;a>1?b.c=Dnc(this, a-1):b.c=this;return b};_.zj=function Cnc(){rnc(this);return this.b};_.Og=function Enc(){return tnc(this)};_.Aj=function Gnc(){return unc(this)};_.Bj=function Inc(){return(this.i&4)!=0};_.Cj=function Jnc(){return(this.i&1)!=0};_.Dd=function Mnc(){return((this.i&2)!=0?"interface ":(this.i&1)!=0?"":"class ")+(rnc(this),this.p)};_.i=0;_.k=0;var qnc=1;_V(218,1,{3:1,218:1});var Onc;ZD={3:1,22:1,614:1,218:1};$D={3:1,391:1,22:1,2:1};_V(1014,1,{});var kT=ync(1);var US=ync(613);var WS=ync(390);var jT=ync(218); var XS=ync(614);var pT=ync(2);_V(923,1,AFc);var IE=ync(923);_V(637,923,AFc,wb);_.Ad=function xb(a){return a===this};_.Ed=function yb(){throw BV(new Ync("Optional.get() cannot be called on an absent value"));};_.Cd=function zb(){return 2040732332};_.Fd=function Ab(){return false};_.Gd=function Bb(a){return vb(a)};_.Dd=function Cb(){return"Optional.absent()"};var tb;var oE=ync(637);_V(610,1,CFc);_.Hd=function Gb(){return Db(this)};_.Id=function Hb(){return Eb(this)};_.Jd=function Ib(){throw BV(new Qpc); };_.i=1;var pE=ync(610);var KE=Anc();_V(102,1,EFc);_.Kd=function Qb(a){return this.Ld(a.Uj)};_.Ad=function Rb(a){return this===a};_.Dd=function Tb(){var a;return tnc(this.Qj)+"@"+(a=rb(this)>>>0,a.toString(16))};_.Md=function Ub(a){var b,c;c=a.length;for(b=c-1;b>=0;b--)if(!this.Ld(a.charCodeAt(b)))return ppc(a.substr(0,b+1));return""};var DE=ync(102);_V(609,102,EFc,Vb);_.Ld=function Wb(a){return Vtc(this.a,a)>=0};_.Dd=function Xb(){var a,b,c,d,e;e=new Npc('CharMatcher.anyOf("');for(b=this.a,c=0,d= b.length;c>>Mc)==a};var Lc,Mc=0;var CE=ync(603);_V(66,1,{},Vc);var FE=ync(66);var dT=Anc();_V(919,1,JFc);_.add=function cd(a){throw BV(new Rpc("Add not supported on this collection"));};_.addAll=function dd(a){return Xc(this,a)};_.clear=function ed(){Zc(this)};_.contains=function fd(a){return Yc(this,a,false)};_.containsAll=function gd(a){return $c(this,a)};_.isEmpty=function hd(){return this.size()==0};_.remove=function jd(a){return Yc(this,a,true)};_.removeAll=function kd(a){return _c(this,a)};_.retainAll= function ld(a){return ad(this,a)};_.toArray=function md(){return this.Pd(mD(kT,KFc,1,this.size(),5,1))};_.Pd=function nd(a){var b,c,d,e;e=this.size();a.lengthe&&(a[e]=null);return a};_.Dd=function od(){return bd(this)};var vT=ync(919);_V(939,919,LFc);_.addAtIndex=function rd(a,b){throw BV(new Rpc("Add not supported on this list"));};_.add=function sd(a){this.addAtIndex(this.size(),a);return true};_.addAllAtIndex=function td(a, b){var c,d,e;SEc(b);c=false;for(e=b.Od();e.Hd();){d=e.Id();this.addAtIndex(a++,d);c=true}return c};_.clear=function ud(){this.Sd(0,this.size())};_.Ad=function vd(a){return pd(this,a)};_.Cd=function wd(){return Zuc(this)};_.indexOf=function xd(a){return qd(this,a)};_.Od=function yd(){return new Wqc(this)};_.lastIndexOf=function zd(a){var b;for(b=this.size()-1;b>-1;--b)if(zBc(a,this.getAtIndex(b)))return b;return-1};_.Qd=function Ad(){return this.Rd(0)};_.Rd=function Bd(a){return new _qc(this,a)};_.removeAtIndex= function Cd(a){throw BV(new Rpc("Remove not supported on this list"));};_.Sd=function Dd(a,b){var c,d;d=this.Rd(a);for(c=a;c0};_.Id=function Dh(){return zh(this)};_.je=function Eh(){if(this.c<=0)throw BV(new yBc);return this.le(--this.c)};_.c=0;_.d=0;var bF=ync(268);_V(414,109,ZFc);_.Hd=function Ih(){return Fh(this)};_.Id=function Jh(){return Gh(this)}; _.f=1;var cF=ync(414);_V(961,1,{108:1});_.ne=function Nh(){var a;return a=this.f,!a?this.f=this.qe():a};_.re=function Oh(){return new Lj(this.ne())};_.Ad=function Ph(a){return Uw(this,a)};_.Cd=function Qh(){return rb(this.ne())};_.te=function Rh(){return this.ye()==0};_.ue=function Sh(){return Lh(this)};_.ve=function Th(a,b){return this.se(a).add(b)};_.we=function Uh(a,b){var c;return c=this.ne().Xd(a),!!c&&c.remove(b)};_.Dd=function Vh(){return eW(this.ne())};var xF=ync(961);_V(457,961,_Fc);_.oe= function di(){Wh(this)};_.pe=function ei(a){return Xh(this,a)};_.qe=function fi(){return new dj(this,this.c)};_.Ae=function gi(a){return this.ze()};_.re=function hi(){return new Sj(this,this.c)};_.Be=function ii(){return oi(this.ze())};_.se=function ji(a){return Yh(this,a)};_.ve=function li(a,b){return Zh(this,a,b)};_.xe=function mi(a){return $h(this,a)};_.ye=function ni(){return this.d};_.d=0;var rF=ync(457);_V(458,457,_Fc);_.ze=function ri(){return this.Ce()};_.Be=function si(){return _n(),_n(), $n};_.se=function ui(a){return Yh(this,a)};_.xe=function xi(a){return $h(this,a)};_.ne=function qi(){var a;return a=this.f,!a?this.f=new dj(this,this.c):a};_.Ad=function ti(a){return Uw(this,a)};_.De=function vi(a){return Yh(this,a)};_.ve=function wi(a,b){return Zh(this,a,b)};_.Ee=function yi(a){return $h(this,a)};var dF=ync(458);_V(938,1,SFc);_.getOrDefault=function Mi(a,b){var c;return c=this.Xd(a),c==null&&!this.containsKey(a)?b:c};_.putIfAbsent=function Si(a,b){var c;return c=this.Xd(a),c!=null? c:this.put(a,b)};_.replace=function Ui(a,b){return this.containsKey(a)?this.put(a,b):null};_.clear=function Fi(){this.Wd().clear()};_.Fe=function Gi(a){return zi(this,a)};_.containsKey=function Hi(a){return!!Bi(this,a,false)};_.containsValue=function Ii(a){var b,c,d;for(c=this.Wd().Od();c.Hd();){b=c.Id();d=b.de();if(iE(a)===iE(d)||a!=null&&nb(a,d))return true}return false};_.Ad=function Ji(a){return Ai(this,a)};_.Xd=function Ki(a){return Li(Bi(this,a,false))};_.Cd=function Ni(){return Yuc(this.Wd())}; _.isEmpty=function Oi(){return this.size()==0};_.keySet=function Pi(){return new mrc(this)};_.put=function Qi(a,b){throw BV(new Rpc("Put not supported on this map"));};_.putAll=function Ri(a){Ci(this,a)};_.remove=function Ti(a){return Li(Bi(this,a,true))};_.size=function Vi(){return this.Wd().size()};_.Dd=function Wi(){return Di(this)};_.values=function Xi(){return new xrc(this)};var KT=ync(938);_V(962,938,SFc);_.Wd=function Zi(){return Yi(this)};_.keySet=function $i(){var a;a=this.d;return!a?this.d= new Lj(this):a};_.values=function _i(){var a;a=this.e;return!a?this.e=new xw(this):a};var oH=ync(962);_V(200,962,SFc,dj);_.Xd=function ij(a){return aj(this,a)};_.remove=function lj(a){return bj(this,a)};_.clear=function ej(){this.a==this.b.c?this.b.oe():Os(new Hj(this))};_.containsKey=function fj(a){return aw(this.a,a)};_.He=function gj(){return new Cj(this)};_.Ge=function(){return this.He()};_.Ad=function hj(a){return this===a||Ai(this.a,a)};_.Cd=function jj(){return Yuc(this.a.Wd())};_.keySet=function kj(){return this.b.ue()}; _.size=function mj(){return this.a.size()};_.Dd=function nj(){return Di(this.a)};var gF=ync(200);_V(918,919,YFc);_.Ad=function pj(a){return oj(this,a)};_.Cd=function qj(){return Yuc(this)};_.removeAll=function rj(a){var b,c,d,e;SEc(a);e=this.size();if(e0};var iF= ync(289);_V(465,1,CFc,Zj);_.Hd=function $j(){return this.c.Hd()};_.Id=function _j(){this.a=this.c.Id();return this.a.ce()};_.Jd=function ak(){var a;ie(!!this.a,VFc);a=this.a.de();this.c.Jd();this.b.a.d-=a.size();a.clear()};var hF=ync(465);_V(240,919,JFc,fk);_.add=function gk(a){var b,c;ck(this);c=this.d.isEmpty();b=this.d.add(a);if(b){++this.f.d;c&&bk(this)}return b};_.addAll=function hk(a){var b,c,d;if(a.isEmpty())return false;d=(ck(this),this.d.size());b=this.d.addAll(a);if(b){c=this.d.size();this.f.d+= c-d;d==0&&bk(this)}return b};_.clear=function ik(){var a;a=(ck(this),this.d.size());if(a==0)return;this.d.clear();this.f.d-=a;dk(this)};_.contains=function jk(a){ck(this);return this.d.contains(a)};_.containsAll=function kk(a){ck(this);return this.d.containsAll(a)};_.Ad=function lk(a){if(a===this)return true;ck(this);return nb(this.d,a)};_.Cd=function mk(){ck(this);return rb(this.d)};_.Od=function nk(){ck(this);return new Ik(this)};_.remove=function ok(a){var b;ck(this);b=this.d.remove(a);if(b){--this.f.d; dk(this)}return b};_.removeAll=function pk(a){var b,c,d;if(a.isEmpty())return false;d=(ck(this),this.d.size());b=this.d.removeAll(a);if(b){c=this.d.size();this.f.d+=c-d;dk(this)}return b};_.retainAll=function qk(a){var b,c,d;be(a);d=(ck(this),this.d.size());b=this.d.retainAll(a);if(b){c=this.d.size();this.f.d+=c-d;dk(this)}return b};_.size=function rk(){return ek(this)};_.Dd=function sk(){ck(this);return eW(this.d)};var lF=ync(240);_V(462,240,LFc,tk);_.addAtIndex=function uk(a,b){var c;ck(this);c= this.d.isEmpty();this.d.addAtIndex(a,b);++this.a.d;c&&bk(this)};_.addAllAtIndex=function vk(a,b){var c,d,e;if(b.isEmpty())return false;e=(ck(this),this.d.size());c=this.d.addAllAtIndex(a,b);if(c){d=this.d.size();this.a.d+=d-e;e==0&&bk(this)}return c};_.getAtIndex=function wk(a){ck(this);return this.d.getAtIndex(a)};_.indexOf=function xk(a){ck(this);return this.d.indexOf(a)};_.lastIndexOf=function yk(a){ck(this);return this.d.lastIndexOf(a)};_.Qd=function zk(){ck(this);return new Nk(this)};_.Rd=function Ak(a){ck(this); return new Ok(this,a)};_.removeAtIndex=function Bk(a){var b;ck(this);b=this.d.removeAtIndex(a);--this.a.d;dk(this);return b};_.setAtIndex=function Ck(a,b){ck(this);return this.d.setAtIndex(a,b)};_.subList=function Dk(a,b){ck(this);return bi(this.a,this.e,this.d.subList(a,b),!this.b?this:this.b)};var nF=ync(462);_V(799,462,aGc,Ek);var jF=ync(799);_V(354,1,CFc,Ik);_.Hd=function Kk(){Hk(this);return this.b.Hd()};_.Id=function Lk(){Hk(this);return this.b.Id()};_.Jd=function Mk(){Gk(this)};var kF=ync(354); _V(463,354,bGc,Nk,Ok);_.Jd=function Sk(){Gk(this)};_.he=function Pk(a){var b;b=ek(this.a)==0;(Hk(this),this.b).he(a);++this.a.a.d;b&&bk(this.a)};_.ie=function Qk(){return(Hk(this),this.b).ie()};_.je=function Rk(){return(Hk(this),this.b).je()};_.ke=function Tk(a){(Hk(this),this.b).ke(a)};var mF=ync(463);_V(355,240,cGc,Uk);var qF=ync(355);_V(461,355,dGc,Vk);var oF=ync(461);_V(460,240,YFc,Wk);_.removeAll=function Xk(a){var b,c,d;if(a.isEmpty())return false;d=(ck(this),this.d.size());b=Yx(this.d,a);if(b){c= this.d.size();this.a.d+=c-d;dk(this)}return b};var pF=ync(460);_V(967,919,{914:1,16:1,18:1});_.add=function _k(a){return ml(this,a,1),true};_.addAll=function al(a){return ox(this,a)};_.clear=function bl(){var a;Os((a=this.a.Wd().Od(),new xl(this,a)))};_.contains=function cl(a){var b;return b=bw(this.a,a),(!b?0:b.a)>0};_.Ad=function dl(a){return px(this,a)};_.Cd=function el(){return rb(Zk(this))};_.isEmpty=function fl(){return Zk(this).isEmpty()};_.Od=function gl(){return new ux(this,Zk(this).Od())}; _.remove=function hl(a){return ql(this,a,1)>0};_.removeAll=function il(a){return $k(this,a)};_.retainAll=function jl(a){var b;return be(a),b=cE(a,162)?Yk(a):a,Yk(this).retainAll(b)};_.size=function kl(){return rx(this)};_.Dd=function ll(){return eW(Zk(this))};var AF=ync(967);_V(864,967,{914:1,3:1,16:1,18:1});_.clear=function tl(){nl(this)};_.Od=function vl(){return new Gl(this)};_.size=function wl(){return BA(this.b)};_.b=0;var vF=ync(864);_V(481,1,CFc,xl);_.Id=function zl(){var a;return a=this.c.Id(), this.b=a,new Fl(this,a)};_.Hd=function yl(){return this.c.Hd()};_.Jd=function Al(){ie(!!this.b,VFc);this.a.b=OV(this.a.b,Sm(this.b.de(),0));this.c.Jd();this.b=null};var tF=ync(481);_V(965,1,{981:1});_.Ad=function Bl(a){var b;if(cE(a,247)){b=a;return El(this)==El(b)&&Pd(this.b.ce(),b.b.ce())}return false};_.Cd=function Cl(){var a;a=this.b.ce();return(a==null?0:rb(a))^El(this)};_.Dd=function Dl(){var a,b;b=vpc(this.b.ce());a=El(this);return a==1?b:b+" x "+a};var EH=ync(965);_V(247,965,{247:1,981:1}, Fl);var sF=ync(247);_V(865,1,CFc,Gl);_.Hd=function Hl(){return this.d>0||this.c.Hd()};_.Id=function Il(){if(this.d==0){this.b=this.c.Id();this.d=this.b.de().a}--this.d;this.a=true;return this.b.ce()};_.Jd=function Jl(){var a;ie(this.a,VFc);a=this.b.de().a;if(a<=0)throw BV(new $xc);(this.b.de().a+=-1)==0&&this.c.Jd();this.e.b=OV(this.e.b,1);this.a=false};_.a=false;_.d=0;var uF=ync(865);_V(173,1,fGc);_.Ad=function Kl(a){var b;if(cE(a,50)){b=a;return Pd(this.ce(),b.ce())&&Pd(this.de(),b.de())}return false}; _.Cd=function Ll(){var a,b;a=this.ce();b=this.de();return(a==null?0:rb(a))^(b==null?0:rb(b))};_.ee=function Ml(a){throw BV(new Qpc);};_.Dd=function Nl(){return this.ce()+"="+this.de()};var wF=ync(173);_V(963,949,YFc);_.clear=function Ol(){nl(this.a)};_.contains=function Pl(a){return ol(this.a,a)>0};_.containsAll=function Ql(a){return $c(this.a,a)};_.isEmpty=function Rl(){return Zk(this.a).isEmpty()};_.Od=function Sl(){return new sx(Zk(this.a).Od())};_.remove=function Tl(a){return ql(this.a,a,oFc)> 0};_.size=function Ul(){return Zk(this.a).size()};var GH=ync(963);_V(801,963,YFc,Vl);var yF=ync(801);_V(964,949,YFc);_.clear=function Wl(){nl(this.a)};_.contains=function Xl(a){var b,c;if(cE(a,247)){c=a;if(El(c)<=0)return false;b=ol(this.a,c.b.ce());return b==El(c)}return false};_.remove=function Yl(a){var b,c,d,e;if(cE(a,247)){c=a;b=c.b.ce();d=El(c);if(d!=0){e=this.a;return qx(e,b,d,0)}}return false};var HH=ync(964);_V(802,964,YFc,Zl);_.Od=function $l(){return pl(this.a)};_.size=function _l(){return this.a.a.size()}; var zF=ync(802);_V(353,457,_Fc);_.ze=function cm(){return this.Je()};_.Be=function dm(){return En(),Rx(),Qx};_.se=function fm(a){return Yh(this,a)};_.xe=function im(a){return $h(this,a)};_.ne=function bm(){var a;return a=this.f,!a?this.f=new dj(this,this.c):a};_.Ad=function em(a){return Uw(this,a)};_.Ke=function gm(a){return Yh(this,a)};_.ve=function hm(a,b){return Zh(this,a,b)};_.Le=function jm(a){return $h(this,a)};var BF=ync(353);_V(972,1,{567:1});_.Ne=function km(){var a;return a=this.d,!a?this.d= new pm(this):a};_.oe=function lm(){Os(this.Ne().a.Me())};_.Ad=function mm(a){return tz(this,a)};_.Cd=function nm(){return Yuc(this.Ne())};_.Dd=function om(){return Di(this.Oe())};var DF=ync(972);_V(555,918,YFc,pm);_.clear=function qm(){this.a.oe()};_.contains=function rm(a){var b,c;if(cE(a,260)){b=a;c=bw(this.a.Oe(),b.b);return!!c&&Bm(c.Wd(),new Vq(b.a,b.c))}return false};_.Od=function sm(){return this.a.Me()};_.remove=function tm(a){var b,c;if(cE(a,260)){b=a;c=bw(this.a.Oe(),b.b);return!!c&&Cm(c.Wd(), new Vq(b.a,b.c))}return false};_.size=function um(){return this.a.ye()};var CF=ync(555);_V(809,458,_Fc);var EF=ync(809);_V(467,809,_Fc,wm);_.Ce=function xm(){return new vtc(this.a)};_.a=0;var FF=ync(467);_V(645,919,JFc,Fm);_.clear=function Gm(){this.a.clear()};_.isEmpty=function Hm(){return this.a.isEmpty()};_.Od=function Im(){return Em(this)};_.size=function Jm(){return this.a.size()};var GF=ync(645);_V(233,1,{233:1,129:1});_.Ad=function Km(a){return this===a};_.Re=function Mm(){return new Txc(this)}; _.Qe=function Lm(){return new Ex(this)};var LH=ync(233);_V(334,233,{334:1,233:1,3:1,129:1},Nm);_.Pe=function Om(a,b){return this.a.Pe(a,b)};_.Ad=function Pm(a){var b;if(a===this)return true;if(cE(a,334)){b=a;return this.a.Ad(b.a)}return false};_.Cd=function Qm(){return rb(this.a)};_.Dd=function Rm(){return eW(this.a)};var HF=ync(334);_V(298,1,{298:1,3:1},Tm);_.Ad=function Um(a){return cE(a,298)&&a.a==this.a};_.Cd=function Vm(){return this.a};_.Dd=function Wm(){return""+this.a};_.a=0;var IF=ync(298); _V(902,961,_Fc);_.ne=function Xm(){return this.a};_.se=function _m(a){return this.Se(a)};_.ue=function an(){return Uo(this.a)};_.xe=function en(a){return this.Te(a)};_.oe=function Ym(){throw BV(new Qpc);};_.pe=function Zm(a){return tp(this.a,a)};_.qe=function $m(){throw BV(new Smc("should never be called"));};_.ve=function bn(a,b){throw BV(new Qpc);};_.we=function cn(a,b){throw BV(new Qpc);};_.Te=function dn(a){throw BV(new Qpc);};_.ye=function fn(){return this.b};_.b=0;var xG=ync(902);_V(563,902, _Fc,jn);_.ne=function kn(){return this.a};_.Ad=function mn(a){return Uw(this,a)};_.Se=function nn(a){return gn(this,a)};_.se=function on(a){var b;return b=up(this.a,a),!b?(_n(),_n(),$n):b};_.De=function pn(a){var b;return b=up(this.a,a),!b?(_n(),_n(),$n):b};_.Te=function qn(a){return hn()};_.xe=function rn(a){return hn()};_.Ee=function sn(a){return hn()};var nG=ync(563);_V(907,563,_Fc,vn);var tn;var JF=ync(907);_V(430,1,RFc);_.Dd=function yn(){return Xs(ce(this,BFc).Od())};var MF=ync(430);_V(696, 430,RFc,An);_.Od=function Bn(){return zn(this)};var LF=ync(696);_V(697,268,$Fc,Cn);_.le=function Dn(a){return this.a[a].Od()};var KF=ync(697);_V(71,919,gGc);_.Od=function Mn(){return this.We()};_.add=function Gn(a){throw BV(new Qpc);};_.addAll=function Hn(a){throw BV(new Qpc);};_.Ue=function In(){return Fn(this)};_.clear=function Jn(){throw BV(new Qpc);};_.contains=function Kn(a){return a!=null&&Yc(this,a,false)};_.Ve=function Ln(){switch(this.size()){case 0:return _n(),_n(),$n;case 1:return _n(), new By(be(this.We().Id()));default:return new $r(this,this.toArray())}};_.remove=function Nn(a){throw BV(new Qpc);};_.removeAll=function On(a){throw BV(new Qpc);};_.retainAll=function Pn(a){throw BV(new Qpc);};var hG=ync(71);_V(413,71,gGc,Qn);_.Od=function Vn(){return Zs(this.a.Od())};_.contains=function Rn(a){return a!=null&&this.a.contains(a)};_.containsAll=function Sn(a){return this.a.containsAll(a)};_.isEmpty=function Tn(){return this.a.isEmpty()};_.We=function Un(){return Zs(this.a.Od())};_.size= function Wn(){return this.a.size()};_.toArray=function Xn(){return this.a.toArray()};_.Pd=function Yn(a){return this.a.Pd(a)};_.Dd=function Zn(){return eW(this.a)};var OF=ync(413);_V(118,71,hGc);_.Od=function no(){return this.We()};_.Qd=function po(){return this.Xe(0)};_.Rd=function ro(a){return this.Xe(a)};_.subList=function wo(a,b){return this.Ye(a,b)};_.addAtIndex=function co(a,b){throw BV(new Qpc);};_.addAllAtIndex=function eo(a,b){throw BV(new Qpc);};_.Ue=function fo(){return this};_.Ad=function jo(a){return ev(this, a)};_.Cd=function ko(){return fv(this)};_.indexOf=function lo(a){return a==null?-1:gv(this,a)};_.We=function mo(){return this.Xe(0)};_.lastIndexOf=function oo(a){return a==null?-1:hv(this,a)};_.Xe=function qo(a){return ao(this,a)};_.removeAtIndex=function to(a){throw BV(new Qpc);};_.setAtIndex=function uo(a,b){throw BV(new Qpc);};_.Ye=function vo(a,b){var c;return xo((c=new rv(this),new frc(c,a,b)))};var $n;var oG=ync(118);_V(941,118,hGc);_.Od=function Jo(){return Zs(this.Ze().Od())};_.subList=function No(a, b){return xo(this.Ze().subList(a,b))};_.contains=function Bo(a){return yo(this,a)};_.containsAll=function Co(a){return this.Ze().containsAll(a)};_.Ad=function Do(a){return nb(this.Ze(),a)};_.getAtIndex=function Eo(a){return zo(this,a)};_.Cd=function Fo(){return rb(this.Ze())};_.indexOf=function Go(a){return this.Ze().indexOf(a)};_.isEmpty=function Ho(){return this.Ze().isEmpty()};_.We=function Io(){return Zs(this.Ze().Od())};_.lastIndexOf=function Ko(a){return this.Ze().lastIndexOf(a)};_.size=function Lo(){return this.Ze().size()}; _.Ye=function Mo(a,b){return xo(this.Ze().subList(a,b))};_.toArray=function Oo(){return this.Ze().Pd(mD(kT,KFc,1,this.Ze().size(),5,1))};_.Pd=function Po(a){return Ao(this,a)};_.Dd=function Qo(){return eW(this.Ze())};var PF=ync(941);_V(159,1,jGc);_.Wd=function dp(){return To(this)};_.getOrDefault=function gp(a,b){var c;return c=this.Xd(a),c==null&&!this.containsKey(a)?b:c};_.keySet=function kp(){return this.bf()};_.putIfAbsent=function op(a,b){var c;return c=this.Xd(a),c!=null?c:Vo()};_.replace=function qp(a, b){return this.containsKey(a)?Vo():null};_.values=function sp(){return Xo(this)};_.clear=function Yo(){throw BV(new Qpc);};_.containsKey=function Zo(a){return this.Xd(a)!=null};_.containsValue=function $o(a){return Xo(this).contains(a)};_._e=function ap(){return new wr(this)};_.af=function bp(){return new Br(this)};_.Ad=function ep(a){return $v(this,a)};_.Cd=function hp(){return To(this).Cd()};_.isEmpty=function ip(){return this.size()==0};_.bf=function jp(){return Uo(this)};_.put=function mp(a,b){return Vo()}; _.putAll=function np(a){Wo()};_.remove=function pp(a){throw BV(new Qpc);};_.Dd=function rp(){return dw(this)};_.e=null;_.f=null;_.g=null;var Ro;var vG=ync(159);_V(276,159,jGc);_.containsKey=function xp(a){return tp(this,a)};_.containsValue=function yp(a){return Fwc(this.d,a)};_.$e=function zp(){return Up(new Ip(this))};_._e=function Ap(){return Up(Iwc(this.d))};_.af=function Bp(){return En(),new Qn(Kwc(this.d))};_.Ad=function Cp(a){return Hwc(this.d,a)};_.Xd=function Dp(a){return up(this,a)};_.Cd= function Ep(){return rb(this.d.d)};_.isEmpty=function Fp(){return this.d.d.isEmpty()};_.size=function Gp(){return this.d.d.size()};_.Dd=function Hp(){return eW(this.d.d)};var RF=ync(276);_V(646,944,YFc,Ip);_.contains=function Jp(a){if(cE(a,50)&&a.ce()==null)return false;return fxc(Gwc(this.a.d),a)};_.ge=function Kp(){return Gwc(this.a.d)};_.Pd=function Lp(a){var b;b=gxc(Gwc(this.a.d),a);Gwc(this.a.d).b.size()=0};var CG=ync(889);_V(341,276,{159:1,341:1,3:1,49:1},is);_._e=function js(){return zs(this.a,Iwc(this.c))};_.bf=function ks(){var a;return a=this.b,!a?this.b=zs(this.a,Iwc(this.c)):a};_.keySet=function ls(){var a;return a=this.b,!a?this.b=zs(this.a,Iwc(this.c)):a};var EG=ync(341);_V(733,105,{},qs);_.hf=function rs(){return os(this)};_.jf=function ss(a,b){return jtc(this.b, (So(),ym(a,b),new Vq(a,b))),this};_.kf=function ts(a){return lr(this,a),this};var DG=ync(733);_V(365,331,{71:1,134:1,365:1,3:1,16:1,18:1,29:1,128:1});_.Od=function Cs(){return Zs(new hwc(this.b.b.Od()))};_.contains=function xs(a){return a!=null&&Qvc(this.a,a)};_.containsAll=function ys(a){var b,c;for(c=a.Od();c.Hd();){b=c.Id();if(b==null)return false}return Rvc(this.a,a)};_.We=function Bs(){return Zs(new hwc(this.b.b.Od()))};_.toArray=function Ds(){return Kx(this,mD(kT,KFc,1,this.b.b.size(),5,1))}; _.Pd=function Es(a){return Lx(this,a)};var us,vs;var FG=ync(365);_V(695,430,RFc,Js);_.Od=function Ks(){return Ys(this.a.Od(),this.b)};var GG=ync(695);_V(683,109,ZFc,$s);_.Hd=function _s(){return this.a.Hd()};_.Id=function at(){return this.a.Id()};var IG=ync(683);_V(426,109,ZFc,bt);_.Hd=function ct(){return!this.a};_.Id=function dt(){if(this.a)throw BV(new yBc);this.a=true;return this.b};_.a=false;var HG=ync(426);_V(684,232,CFc,ft);_.df=function gt(a){return et(this,a)};var JG=ync(684);_V(682,268, $Fc,jt);_.le=function kt(a){return this.a[this.b+a]};_.b=0;var ht;var KG=ync(682);_V(325,1,{325:1,33:1},ot);_.Hd=function pt(){return mt(this)};_.Id=function qt(){return nt(this)};_.Jd=function rt(){ie(!!this.c,VFc);this.c.Jd();this.c=null};var LG=ync(325);_V(324,13,{324:1,3:1,22:1,13:1,33:1},ut);_.Hd=function vt(){return false};_.Id=function wt(){throw BV(new yBc);};_.Jd=function xt(){ie(false,VFc)};var st;var MG=znc(324,YS,yt);_V(805,353,_Fc);var QG=ync(805);_V(181,805,_Fc,Ct);_.oe=function Dt(){At(this)}; _.Je=function Et(){return new TAc(this.b)};_.Ae=function Ft(a){return new Pt(this,a,this.b)};_.ue=function Gt(){return Bt(this)};_.b=2;var RG=ync(181);_V(241,78,{173:1,78:1,241:1,982:1,3:1,50:1},Jt);_.lf=function Kt(){return this.f};_.mf=function Lt(a){this.c=a};_.nf=function Mt(a){this.f=a};_.d=0;var NG=ync(241);_V(806,949,{982:1,16:1,18:1,29:1},Pt);_.add=function Qt(a){var b,c,d,e,f;f=RV(KV(rGc,joc(RV(KV(a==null?0:rb(a),sGc)),15)));b=f&this.b.length-1;e=this.b[b];for(c=e;c;c=c.a)if(c.d==f&&Pd(c.i, a))return false;d=new Jt(this.c,a,f,e);It(this.d,d);d.f=this;this.d=d;Ht(this.g.a.b,d);Ht(d,this.g.a);this.b[b]=d;++this.f;++this.e;Nt(this);return true};_.clear=function Rt(){var a,b;buc(this.b);this.f=0;for(a=this.a;a!=this;a=a.lf()){b=a;Ht(b.b,b.e)}this.a=this;this.d=this;++this.e};_.contains=function St(a){var b,c;c=RV(KV(rGc,joc(RV(KV(a==null?0:rb(a),sGc)),15)));for(b=this.b[c&this.b.length-1];b;b=b.a)if(b.d==c&&Pd(b.i,a))return true;return false};_.lf=function Tt(){return this.a};_.Od=function Ut(){return new $t(this)}; _.remove=function Vt(a){return Ot(this,a)};_.mf=function Wt(a){this.d=a};_.nf=function Xt(a){this.a=a};_.size=function Yt(){return this.f};_.e=0;_.f=0;var PG=ync(806);_V(807,1,CFc,$t);_.Hd=function _t(){return Zt(this),this.b!=this.c};_.Id=function au(){var a,b;Zt(this);if(this.b==this.c)throw BV(new yBc);a=this.b;b=a.i;this.d=a;this.b=a.f;return b};_.Jd=function bu(){Zt(this);ie(!!this.d,VFc);Ot(this.c,this.d.i);this.a=this.c.e;this.d=null};_.a=0;var OG=ync(807);_V(792,961,_Fc,gu);_.ne=function hu(){var a; return a=this.f,!a?this.f=new Ww(this):a};_.Ad=function nu(a){return Uw(this,a)};_.se=function ou(a){return new Du(this,a)};_.xe=function su(a){return eu(this,a)};_.oe=function ju(){this.a=null;this.e=null;uqc(this.b);this.d=0;++this.c};_.pe=function ku(a){return du(this,a)};_.qe=function lu(){return new Ww(this)};_.re=function mu(){return new Gu(this)};_.De=function pu(a){return new Du(this,a)};_.te=function qu(){return!this.a};_.ve=function ru(a,b){return cu(this,a,b,null),true};_.Ee=function tu(a){return eu(this, a)};_.ye=function uu(){return this.d};_.c=0;_.d=0;var YG=ync(792);_V(947,939,LFc);_.addAtIndex=function xu(a,b){var c;c=this.Rd(a);c.he(b)};_.addAllAtIndex=function yu(a,b){var c,d,e,f;SEc(b);f=false;e=this.Rd(a);for(d=b.Od();d.Hd();){c=d.Id();e.he(c);f=true}return f};_.getAtIndex=function zu(a){return vu(this,a)};_.Od=function Au(){return this.Rd(0)};_.removeAtIndex=function Bu(a){return wu(this,a)};_.setAtIndex=function Cu(b,c){var d,e;d=this.Rd(b);try{e=d.Id();d.ke(c);return e}catch(a){a=AV(a); if(cE(a,77))throw BV(new Nmc("Can't set element "+b));else throw BV(a);}};var QT=ync(947);_V(352,947,LFc,Du);_.Rd=function Eu(a){return new Yu(this.a,this.b,a)};_.size=function Fu(){var a;a=nqc(this.a.b,this.b);return!a?0:a.a};var TG=ync(352);_V(456,949,YFc,Gu);_.contains=function Hu(a){return du(this.a,a)};_.Od=function Iu(){return new Mu(this.a)};_.remove=function Ju(a){return!eu(this.a,a).a.isEmpty()};_.size=function Ku(){return vqc(this.a.b)};var SG=ync(456);_V(794,1,CFc,Mu);_.Hd=function Nu(){Lu(this); return!!this.c};_.Id=function Ou(){Lu(this);iu(this.c);this.a=this.c;jzc(this.d,this.a.a);do this.c=this.c.b;while(!!this.c&&!jzc(this.d,this.c.a));return this.a.a};_.Jd=function Pu(){Lu(this);ie(!!this.a,VFc);Os(new Xu(this.e,this.a.a));this.a=null;this.b=this.e.c};_.b=0;var UG=ync(794);_V(351,1,{351:1},Qu);_.a=0;var VG=ync(351);_V(793,173,fGc,Ru);_.ce=function Su(){return this.a};_.de=function Tu(){return this.f};_.ee=function Uu(a){var b;b=this.f;this.f=a;return b};var WG=ync(793);_V(288,1,bGc, Xu,Yu);_.he=function Zu(a){this.e=cu(this.f,this.b,a,this.c);++this.d;this.a=null};_.Hd=function $u(){return!!this.c};_.ie=function _u(){return!!this.e};_.Id=function av(){return Vu(this)};_.je=function bv(){return Wu(this)};_.Jd=function cv(){ie(!!this.a,VFc);if(this.a!=this.c){this.e=this.a.e;--this.d}else this.c=this.a.c;fu(this.f,this.a);this.a=null};_.ke=function dv(a){he(!!this.a);this.a.f=a};_.d=0;var XG=ync(288);_V(648,939,LFc);_.addAtIndex=function kv(a,b){this.a.addAtIndex(a,b)};_.addAllAtIndex= function lv(a,b){return this.a.addAllAtIndex(a,b)};_.contains=function mv(a){return this.a.contains(a)};_.getAtIndex=function nv(a){return this.a.getAtIndex(a)};_.removeAtIndex=function ov(a){return this.a.removeAtIndex(a)};_.setAtIndex=function pv(a,b){return this.a.setAtIndex(a,b)};_.size=function qv(){return this.a.size()};var $G=ync(648);_V(649,648,aGc);var _G=ync(649);_V(651,649,aGc,rv);_.Rd=function sv(a){return this.a.Rd(a)};var ZG=ync(651);_V(172,939,{172:1,16:1,18:1,51:1},wv);_.addAtIndex= function xv(a,b){this.a.addAtIndex(vv(this,a),b)};_.clear=function yv(){this.a.clear()};_.getAtIndex=function zv(a){return this.a.getAtIndex(uv(this,a))};_.Od=function Av(){return tv(this,0)};_.Rd=function Bv(a){return tv(this,a)};_.removeAtIndex=function Cv(a){return this.a.removeAtIndex(uv(this,a))};_.Sd=function Dv(a,b){(ge(a,b,this.a.size()),jv(this.a.subList(vv(this,b),vv(this,a)))).clear()};_.setAtIndex=function Ev(a,b){return this.a.setAtIndex(uv(this,a),b)};_.size=function Fv(){return this.a.size()}; _.subList=function Gv(a,b){return ge(a,b,this.a.size()),jv(this.a.subList(vv(this,b),vv(this,a)))};var cH=ync(172);_V(421,172,{172:1,16:1,18:1,51:1,80:1},Hv);var aH=ync(421);_V(650,1,bGc,Iv);_.he=function Jv(a){this.b.he(a);this.b.je();this.a=false};_.Hd=function Kv(){return this.b.ie()};_.ie=function Lv(){return this.b.Hd()};_.Id=function Mv(){if(!this.b.ie())throw BV(new yBc);this.a=true;return this.b.je()};_.je=function Nv(){if(!this.b.Hd())throw BV(new yBc);this.a=true;return this.b.Id()};_.Jd= function Ov(){ie(this.a,VFc);this.b.Jd();this.a=false};_.ke=function Pv(a){he(this.a);this.b.ke(a)};_.a=false;var bH=ync(650);_V(318,118,hGc,Qv);_.getAtIndex=function Rv(a){return ae(a,this.a.length),nnc(Soc(this.a,a))};_.subList=function Wv(a,b){return ge(a,b,this.a.length),new Qv(be(mpc(this.a,a,b)))};_.indexOf=function Sv(a){return cE(a,157)?$oc(this.a,spc(a.a)):-1};_.lastIndexOf=function Tv(a){return cE(a,157)?bpc(this.a,spc(a.a)):-1};_.size=function Uv(){return this.a.length};_.Ye=function Vv(a, b){return ge(a,b,this.a.length),new Qv(be(mpc(this.a,a,b)))};var dH=ync(318);_V(659,232,CFc,ew);_.df=function fw(a){return new Vq(a,this.a.Nd(a))};var eH=ync(659);_V(660,173,fGc,gw);_.ce=function hw(){return this.a.ce()};_.de=function iw(){return this.a.de()};var fH=ync(660);_V(196,13,tGc);var jw,kw;var iH=znc(196,YS,nw);_V(656,196,tGc,ow);_.Nd=function pw(a){return a.ce()};var gH=znc(656,iH,null);_V(657,196,tGc,qw);_.Nd=function rw(a){return a.de()};var hH=znc(657,iH,null);_V(973,938,SFc);_.clear= function sw(){Os(Oy(this))};_.Wd=function tw(){return new uw(this)};var lH=ync(973);_V(658,950,YFc,uw);_.Od=function vw(){return Oy(this.a)};_.Ie=function ww(){return this.a};var kH=ync(658);_V(655,919,JFc,xw);_.clear=function yw(){this.a.clear()};_.contains=function zw(a){return this.a.containsValue(a)};_.isEmpty=function Aw(){return this.a.isEmpty()};_.Od=function Bw(){return Ys(this.a.Wd().Od(),(lw(),kw))};_.remove=function Cw(b){var c,d;try{return Yc(this,b,true)}catch(a){a=AV(a);if(cE(a,21)){for(d= this.a.Wd().Od();d.Hd();){c=d.Id();if(Pd(b,c.de())){this.a.remove(c.ce());return true}}return false}else throw BV(a);}};_.removeAll=function Dw(b){var c,d,e;try{return _c(this,be(b))}catch(a){a=AV(a);if(cE(a,21)){e=new mzc;for(d=this.a.Wd().Od();d.Hd();){c=d.Id();b.contains(c.de())&&jzc(e,c.ce())}return this.a.keySet().removeAll(e)}else throw BV(a);}};_.retainAll=function Ew(b){var c,d,e;try{return ad(this,be(b))}catch(a){a=AV(a);if(cE(a,21)){e=new mzc;for(d=this.a.Wd().Od();d.Hd();){c=d.Id();b.contains(c.de())&& jzc(e,c.ce())}return this.a.keySet().retainAll(e)}else throw BV(a);}};_.size=function Fw(){return this.a.size()};var nH=ync(655);_V(968,1,{});var yH=ync(968);_V(971,1,{});var wH=ync(971);_V(483,971,{},Iw);_.pf=function Jw(){return new fzc(Yv(this.a))};_.a=0;var pH=ync(483);_V(876,971,{},Kw);_.pf=function Lw(){return new pAc(Yv(this.a))};_.a=0;var qH=ync(876);_V(872,1,mGc,Mw);_.Ed=function Nw(){return new vtc(this.a)};_.a=0;var rH=ync(872);_V(873,1,mGc,Ow);_.Ed=function Pw(){return new nzc(Yv(this.a))}; _.a=0;var sH=ync(873);_V(969,968,{});var tH=ync(969);_V(874,969,{},Rw);_.b=0;var uH=ync(874);_V(970,968,{});var xH=ync(970);_V(875,970,{},Tw);_.b=0;var vH=ync(875);_V(459,962,SFc,Ww);_.Xd=function $w(a){return this.a.pe(a)?this.a.se(a):null};_.remove=function bx(a){return this.a.pe(a)?this.a.xe(a):null};_.clear=function Xw(){this.a.oe()};_.containsKey=function Yw(a){return this.a.pe(a)};_.He=function Zw(){return new dx(this)};_.Ge=function(){return this.He()};_.isEmpty=function _w(){return this.a.te()}; _.keySet=function ax(){return this.a.ue()};_.size=function cx(){return this.a.ue().size()};var BH=ync(459);_V(797,950,YFc,dx);_.Od=function ex(){return Xv(this.a.a.ue(),new hx(this))};_.Ie=function fx(){return this.a};_.remove=function gx(a){var b;if(!uj(this,a))return false;b=a;Vw(this.a,b.ce());return true};var AH=ync(797);_V(798,1,uGc,hx);_.Nd=function ix(a){return this.a.a.a.se(a)};_.Ad=function jx(a){return this===a};var zH=ync(798);_V(795,458,_Fc,kx);_.qf=function lx(){return this.a.Ed()};_.Ce= function(){return this.qf()};var CH=ync(795);_V(796,353,_Fc,mx);_.rf=function nx(){return this.a.Ed()};_.Je=function(){return this.rf()};var DH=ync(796);_V(804,232,CFc,sx);_.df=function tx(a){return a.b.ce()};var FH=ync(804);_V(803,1,CFc,ux);_.Hd=function vx(){return this.d>0||this.c.Hd()};_.Id=function wx(){if(!(this.d>0||this.c.Hd()))throw BV(new yBc);if(this.d==0){this.b=this.c.Id();this.f=this.d=El(this.b)}--this.d;this.a=true;return this.b.b.ce()};_.Jd=function xx(){ie(this.a,VFc);this.f==1? this.c.Jd():ql(this.e,this.b.b.ce(),1)>0;--this.f;this.a=false};_.a=false;_.d=0;_.f=0;var IH=ync(803);_V(828,233,{233:1,3:1,129:1},Ax);_.Pe=function Bx(a,b){return be(a),be(b),Ymc(a,b)};_.Qe=function Cx(){var a;a=this.a;!a&&(a=this.a=new Ex(this));return a};_.Dd=function Dx(){return"Ordering.natural()"};var yx;var JH=ync(828);_V(300,233,{300:1,233:1,3:1,129:1},Ex);_.Pe=function Fx(a,b){if(iE(a)===iE(b))return 0;if(a==null)return-1;if(b==null)return 1;return this.a.Pe(a,b)};_.Ad=function Gx(a){var b; if(a===this)return true;if(cE(a,300)){b=a;return this.a.Ad(b.a)}return false};_.Cd=function Hx(){return rb(this.a)^957692532};_.Qe=function Ix(){return this};_.Dd=function Jx(){return this.a+".nullsFirst()"};var KH=ync(300);_V(143,941,hGc,Mx);_.Ze=function Nx(){return this.a};var NH=ync(143);_V(171,276,jGc,Ox,Px);var OH=ync(171);_V(332,331,kGc,Sx);var Qx;var PH=ync(332);_V(246,365,{71:1,134:1,365:1,246:1,3:1,16:1,18:1,29:1,128:1},Tx);_.Ve=function Ux(){return new ds(this,(_n(),xo(new xuc(Kx(this, mD(kT,KFc,1,this.b.b.size(),5,1))))))};var QH=ync(246);_V(946,918,YFc);_.Od=function ey(){return this.We()};_.add=function by(a){throw BV(new Qpc);};_.addAll=function cy(a){throw BV(new Qpc);};_.clear=function dy(){throw BV(new Qpc);};_.remove=function fy(a){throw BV(new Qpc);};_.removeAll=function gy(a){throw BV(new Qpc);};_.retainAll=function hy(a){throw BV(new Qpc);};var WH=ync(946);_V(643,946,YFc,ky);_.Od=function oy(){return jy(this)};_.contains=function ly(a){return this.a.contains(a)||this.b.contains(a)}; _.isEmpty=function my(){return this.a.isEmpty()&&this.b.isEmpty()};_.We=function ny(){return new qy(this.a,this.b)};_.size=function py(){var a,b,c;c=this.a.size();for(b=this.b.Od();b.Hd();){a=b.Id();this.a.contains(a)||++c}return c};var SH=ync(643);_V(415,414,ZFc,qy);_.me=function ry(){var a;if(this.a.Hd())return this.a.Id();while(this.b.Hd()){a=this.b.Id();if(!this.c.contains(a))return a}return this.f=2,null};var RH=ync(415);_V(644,946,YFc,sy);_.Od=function wy(){return new yy(this.a,this.b)};_.contains= function ty(a){return this.a.contains(a)&&!this.b.contains(a)};_.isEmpty=function uy(){return this.b.containsAll(this.a)};_.We=function vy(){return new yy(this.a,this.b)};_.size=function xy(){var a,b,c;c=0;for(b=this.a.Od();b.Hd();){a=b.Id();this.b.contains(a)||++c}return c};var UH=ync(644);_V(416,414,ZFc,yy);_.me=function zy(){var a;while(this.a.Hd()){a=this.a.Id();if(!this.c.contains(a))return a}return this.f=2,null};var TH=ync(416);_V(315,945,{315:1,3:1,16:1,18:1,211:1,29:1,128:1},Ay);var XH=ync(315); _V(88,941,hGc,By);_.Ze=function Cy(){return this.a};var YH=ync(88);_V(76,134,kGc,Ey);_.Od=function Hy(){return new bt(this.a)};_.contains=function Fy(a){return Dy(this,a)};_.We=function Gy(){return new bt(this.a)};_.size=function Iy(){return 1};var ZH=ync(76);_V(879,1,CFc,Ky);_.Id=function My(){return Jy(this)};_.Hd=function Ly(){return LAc(this.c)||this.a.Hd()};_.Jd=function Ny(){this.a.Jd();this.b.e.isEmpty()&&NAc(this.c)};var _H=ync(879);_V(554,973,SFc,Qy);_.clear=function Ry(){var a;a=!this.a|| this.a.isEmpty()&&jAc(this.c.a,this.b)?this.a=kAc(this.c.a,this.b):this.a;!!a&&a.clear();Py(this)};_.containsKey=function Sy(a){var b;b=!this.a||this.a.isEmpty()&&jAc(this.c.a,this.b)?this.a=kAc(this.c.a,this.b):this.a;return a!=null&&!!b&&aw(b,a)};_.Xd=function Ty(a){var b;b=!this.a||this.a.isEmpty()&&jAc(this.c.a,this.b)?this.a=kAc(this.c.a,this.b):this.a;return a!=null&&!!b?bw(b,a):null};_.put=function Uy(a,b){be(a);be(b);if(!!this.a&&!this.a.isEmpty())return this.a.put(a,b);return hq(this.c,this.b, a,b)};_.remove=function Vy(a){var b,c;b=!this.a||this.a.isEmpty()&&jAc(this.c.a,this.b)?this.a=kAc(this.c.a,this.b):this.a;if(!b)return null;c=cw(b,a);Py(this);return c};_.size=function Wy(){var a;a=!this.a||this.a.isEmpty()&&jAc(this.c.a,this.b)?this.a=kAc(this.c.a,this.b):this.a;return!a?0:a.size()};var fI=ync(554);_V(882,1,CFc,Xy);_.Id=function Zy(){return new _y(this.b.Id())};_.Hd=function Yy(){return this.b.Hd()};_.Jd=function $y(){this.b.Jd();Py(this.a)};var aI=ync(882);_V(883,966,WFc,_y);_.be= function az(){return this.a};_.Ad=function bz(a){return sg(this,a)};_.ee=function cz(a){return rg(this,be(a))};var bI=ync(883);_V(296,962,SFc,dz);_.Xd=function gz(a){return this.a.cf(a)?new Qy(this.a,a):null};_.remove=function hz(a){return a==null?null:nAc(this.a.a,a)};_.containsKey=function ez(a){return this.a.cf(a)};_.He=function fz(){return new lz(this)};_.Ge=function(){return this.He()};var eI=ync(296);_V(880,949,YFc);_.clear=function jz(){iAc(this.b.a)};_.isEmpty=function kz(){return vqc(this.b.a.c)== 0};var gI=ync(880);_V(881,880,YFc,lz);_.contains=function mz(a){var b;if(cE(a,50)){b=a;return b.ce()!=null&&cE(b.de(),49)&&Bm(new FAc(this.a.a.a),b)}return false};_.Od=function nz(){return Xv(new mrc(this.a.a.a),new qz(this))};_.remove=function oz(a){var b;if(cE(a,50)){b=a;return b.ce()!=null&&cE(b.de(),49)&&EAc(new FAc(this.a.a.a),b)}return false};_.size=function pz(){return vqc(this.a.a.a.c)};var dI=ync(881);_V(884,1,uGc,qz);_.Nd=function rz(a){return new Qy(this.a.a.a,a)};_.Ad=function sz(a){return this=== a};var cI=ync(884);_V(975,1,{983:1});_.Ad=function uz(a){var b;if(a===this)return true;if(cE(a,260)){b=a;return Pd(this.b,b.b)&&Pd(this.a,b.a)&&Pd(this.c,b.c)}return false};_.Cd=function vz(){return huc(pD(kD(kT,1),KFc,1,5,[this.b,this.a,this.c]))};_.Dd=function wz(){return"("+this.b+","+this.a+")="+this.c};var iI=ync(975);_V(260,975,{983:1,260:1,3:1},xz);var jI=ync(260);_V(780,959,SFc,yz);_.Vd=function zz(){return this.a};_.Wd=function Az(){var a;a=this.b;if(a)return a;return this.b=new Bz(this)}; var qI=ync(780);_V(781,950,YFc,Bz);_.Od=function Cz(){var a;return new Ez(this,(a=(new mrc(this.a.a)).a.Wd().Od(),new trc(a)))};_.Ie=function Dz(){return this.a};var pI=ync(781);_V(782,232,CFc,Ez);_.df=function Fz(a){return new Gz(this,a)};var oI=ync(782);_V(783,173,fGc,Gz);_.ce=function Hz(){return this.b};_.de=function Iz(){return xf(this.a.a.a,this.b)};_.ee=function Jz(a){return yf(this.a.a.a,this.b,a)};var nI=ync(783);_V(976,1,{});var Kz;var wI=ync(976);_V(261,102,{102:1,55:1,261:1,56:1},Tz); _.Ad=function Uz(a){return Qz(this,a)};_.Cd=function Vz(){return guc(this.c)};_.Ld=function Wz(a){return Sz(this,a)};_.Dd=function Xz(){return this.f};_.a=0;_.b=0;_.d=0;var rI=ync(261);_V(150,976,{150:1},$z);_.Ad=function _z(a){var b;if(cE(a,150)){b=a;return Qz(this.b,b.b)&&Pd(this.c,b.c)}return false};_.Cd=function aA(){return guc(this.b.c)^huc(pD(kD(kT,1),KFc,1,5,[this.c]))};_.Dd=function bA(){var a;a=new Npc("BaseEncoding.");Gpc(a,this.b.f);8%this.b.a!=0&&(!this.c?(a.a+=".omitPadding()",a):Gpc(Fpc((a.a+= ".withPadChar('",a),this.c),"')"));return a.a};var vI=ync(150);_V(565,150,{150:1},dA);var sI=ync(565);_V(388,150,{150:1},gA);var tI=ync(388);_V(41,1,AGc);_.sf=function pA(a){return new Error(a)};_.tf=function rA(){return this.f};_.uf=function sA(){var a,b,c;c=this.f==null?null:this.f.replace(new RegExp(BGc,"g")," ");b=(a=tnc(this.Qj),c==null?a:a+": "+c);jA(this,qA(this.sf(b)));YC(this)};_.Dd=function uA(){return lA(this,this.tf())};_.backingJsObject=xGc;_.j=true;var qT=ync(41);_V(43,41,CGc);var $S= ync(43);_V(101,43,{101:1,3:1,43:1,41:1});var PS=ync(101);_V(301,101,{301:1,101:1,3:1,43:1,41:1},wA);var uI=ync(301);var DA;var GA;_V(119,1,{},LA);_.a=0;_.b=0;var xI=ync(119);_V(439,1,{},TA);_.b=0;_.c=null;var EI=ync(439);_V(723,1,{},VA);var yI=ync(723);_V(724,1,{},_A);_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=0;var zI=ync(724);_V(440,1,{912:1},aB);_.vf=function bB(){return this.e};_.wf=function cB(){return-1};_.xf=function dB(){return-1};_.yf=function eB(){return-1};_.zf=function fB(){return-1};_.e=0;var CI= ync(440);_V(441,440,{912:1},gB);_.wf=function hB(){return-1};_.xf=function iB(){return this.b};_.yf=function jB(){return this.c};_.zf=function kB(){return this.d};_.b=0;_.c=0;_.d=0;var DI=ync(441);_V(726,441,{912:1},lB);_.wf=function mB(){return this.a};_.a=0;var AI=ync(726);_V(725,1,{},qB);_.b=0;_.c=0;var BI=ync(725);_V(719,1,{},yB);_.c=null;_.d=-1;var KI=ync(719);_V(720,1,{},DB);var FI=ync(720);_V(722,1,{},GB);_.Af=function HB(a,b,c,d,e){var f;this.d!=b&&(this.c=0);if(b!=d||c!=e)if(b=0);new LA(c,b)}};_.yg=function U_(){return this.i.a.length>0?Dmc(this.i,this.i.a.length-1):0};_.Fg=function V_(a){var b, c,d,e;he(!!this.p);he(!!a);if(this.j&&(b=j6b(a,51),(!b?null:b.Og())!=null)&&n7b(a.i)>0){d=this.k;c=this.n;he(d>=0);e=new e0;e.b=a;e.c=new LA(d,c);null.Tj();null.Tj()}};_.j=false;_.k=0;_.n=0;_.o=0;var uJ=ync(454);_V(777,454,{},Z_);_.mg=function $_(a){W_(this,a)};_.tg=function __(){var a;if(!this.c)return;if(this.n>(this.o/2|0)){W_(this,";");Y_(this)}else if(this.e>0){Fmc(this.i,this.e);this.b=this.f;this.n=this.i.a.length-this.b;a=this.e-this.f+1;Q_(this,this.k,a,false);--this.k;this.e=0;this.f=0; W_(this,";");Y_(this)}};_.Ag=function a0(){X_(this)};_.Cg=function b0(){var a,b;if(this.a)if(this.q){Y_(this);this.q=false}b=this.i.a.length;if(this.d==b-1){a=Dmc(this.i,b-1);a==59&&(this.d=b)}X_(this)};_.Dg=function c0(){this.d=this.i.a.length};_.a=false;_.b=0;_.c=false;_.d=0;_.e=0;_.f=0;var sJ=ync(777);_V(453,1,{453:1},e0);_.Dd=function f0(){return"Mapping: start "+this.c+", end "+this.a+", node "+this.b};var tJ=ync(453);_V(776,454,{},i0);_.lg=function j0(b,c){var d,e;if(b==0&&1/b<0){H$(this,b); return}e=v0(c);if(e==null){H$(this,b);return}b<0&&(e="-"+e);try{d=Qnc(e)}catch(a){a=AV(a);if(cE(a,96)){H$(this,b);return}else throw BV(a);}if(b!=d){H$(this,b);return}G$(this,e)};_.mg=function k0(a){g0(this,a)};_.ng=function l0(){M$(this);h0(this);--this.a;g0(this,"}")};_.og=function m0(){(this.i.a.length>0?Dmc(this.i,this.i.a.length-1):0)!=32&&(this.i.a.length>0?Dmc(this.i,this.i.a.length-1):0)!=10&&G$(this," ");g0(this,"{");++this.a};_.pg=function n0(a,b){(this.i.a.length>0?Dmc(this.i,this.i.a.length- 1):0)!=32&&b&&a.charCodeAt(0)!=44&&g0(this," ");g0(this,a);b&&g0(this," ")};_.qg=function o0(){g0(this,":");++this.a;h0(this)};_.rg=function p0(a,b){var c,d;ie(a.j==(tbc(),S8b),a);c=a.e;d=c.j;switch(d.f){case 65:case 71:return false;case 44:return a!=c.b;case 78:return!alb(!c.e?null:c.e.e);case 66:return a==(c.b?c.b.f:null)}return true};_.sg=function q0(){--this.a};_.tg=function r0(){M$(this)};_.ug=function s0(a){this.q=true;a&&h0(this);a&&h0(this)};_.vg=function t0(){h0(this)};_.xg=function u0(a){g0(this, ";");h0(this);this.r=false};_.zg=function w0(){G$(this,HFc);this.n>this.o&&h0(this)};_.Ag=function x0(){this.n>this.o&&h0(this)};_.Bg=function y0(){(this.i.a.length>0?Dmc(this.i,this.i.a.length-1):0)!=32&&(this.i.a.length>0?Dmc(this.i,this.i.a.length-1):0)!=10&&G$(this," ")};_.Cg=function z0(){this.n>this.o&&h0(this)};_.Eg=function A0(){return true};_.a=0;var vJ=ync(776);_V(277,1,{},B0);var wJ=ync(277);_V(418,1,{},C0);var xJ=ync(418);_V(278,13,{278:1,3:1,22:1,13:1},G0);var D0,E0;var yJ=znc(278,YS, H0);_V(688,1,AFc,Q0);_.Xf=function R0(a,b,c){};_.Yf=function S0(a,b,c){return I0(a,b,c)};_.Zf=function T0(a,b){return J0()};_.$f=function U0(a,b){return K0()};_._f=function V0(a,b){return L0()};_.ag=function W0(){return null};_.bg=function X0(a){return M0(a)};_.cg=function Y0(a){return null};_.dg=function Z0(a){return N0(a)};_.eg=function $0(a){return false};_.fg=function _0(a){return false};_.gg=function a1(a){return Xoc(a.substr(0,6),"$super")};_.hg=function b1(a){return O0(a)};_.ig=function c1(a){return y6b(a.b, oHc)};_.jg=function d1(a){return P0(a)};var zJ=ync(688);_V(395,577,{});_.Ff=function F2(a,b){kDc(this.w,a,b)};_.Gf=function I2(){return w1(this)};_.Hf=function J2(){return this.K};_.If=function K2(){return this.L};_.Jf=function L2(a){var b,c,d;if(!this.M||!this.q)if(!this.M){c=E1(this,this.L.Ub);d=Y3(this.L)?0:1;this.M=(b=XNb(c,this.L.nc,d),b);this.q=c==(yJb(),sJb)?r1(this,tJb,d):this.M}switch(a){case 1:return this.q;default:return this.M}};_.Kf=function M2(){return L1(this)};_.Lf=function N2(){return this.u}; _.Mf=function O2(a){var b;b=new rob(this);pob(b,null,a)};_.Tf=function P2(a,b){o2(this,b)};_.Nf=function Q2(a){o2(this,a)};_.Hg=function R2(a){p2(this,a)};_.Of=function(a){this.Hg(a)};_.Ig=function S2(a){var b;he(a.j==(tbc(),E9b));b=F6b(a,a.g,94);b!=a.g&&(a.g=b);a.g=new J7b(94,1,a.g);lsb(this.b,a);ksb(this.j,a)};_.Pf=function(a){this.Ig(a)};_.a=1;_.d=null;_.e=null;_.f=null;_.o=null;_.q=null;_.u=true;_.F=null;_.L=null;_.M=null;_.N=null;_.O=null;_.P=0;_.U=null;_.V=null;_.W=0;_.Z=0;var f1,g1,h1,i1,j1, k1;var YJ=ync(395);_V(392,1,{},U2);_.Jg=function V2(){return T2(this)};var BJ=ync(392);_V(593,1,{},X2);_.Jg=function Y2(){return W2(this)};_.c=0;var CJ=ync(593);_V(70,1,AIc);_.Lg=function $2(){return zPb(),rPb};_.Dd=function _2(){return this.b};_.a=false;var lM=ync(70);_V(576,70,AIc,b3);_.Kg=function c3(a){return a3(a)};var DJ=ync(576);_V(584,1,{},d3);_.Jg=function e3(){return e2(this.a),null};var EJ=ync(584);_V(585,1,{},f3);_.Jg=function g3(){return c4(this.a.L)&&f2(this.a),null};var FJ=ync(585); _V(583,1,{},h3);_.Jg=function i3(){return g2(this.a),null};var GJ=ync(583);_V(582,1,{},j3);_.Jg=function k3(){return _1(this.a),null};var HJ=ync(582);_V(122,1,{405:1},l3);_.Ed=function m3(){return""+this.a.Z++};var IJ=ync(122);_V(596,1,{},q3);_.Dd=function r3(){return this.c.a};_.a=0;_.b=0;var JJ=ync(596);_V(139,1,{139:1,909:1,3:1},F3,G3,H3);_.Mg=function J3(a){return x3(this,a)};_.Ng=function K3(){return this.f};_.Og=function L3(){return this.f.a};_.Pg=function M3(){return y3(this).c};_.Qg=function N3(){return y3(this).d}; _.Rg=function O3(){return this.a.Rg()};_.Dd=function P3(){return this.f.a};var LJ=ync(139);_V(680,1,{},S3);var KJ=ync(680);_V(165,1,AFc,d4);_.Dd=function f4(){return Ld(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Kd(new Md((rnc(XJ), XJ.n))),"aggressiveFusion",""+this.a),"aliasableStrings",this.e),"aliasAllStrings",""+this.b),"aliasHandler",this.c),"aliasStringsBlacklist",this.d),"allowHotswapReplaceScript",VHc),"ambiguateProperties",""+this.f),"angularPass",""+this.g),"anonymousFunctionNaming",this.i),"appNameStr",this.j),"assumeClosuresOnlyCaptureReferences",""+this.k),"assumeStrictThis",""+this.n),"brokenClosureRequiresLevel",this.o),"chainCalls",""+this.p),"checkDeterminism",""+this.q),"checkEventfulObjectDisposalPolicy", this.r),"checkGlobalNamesLevel",this.s),"checkGlobalThisLevel",this.t),"checkMissingGetCssNameBlacklist",this.u),"checkMissingGetCssNameLevel",this.v),"checksOnly",""+this.C),"checkSuspiciousCode",""+this.w),"checkSymbols",""+this.A),CIc,""+this.B),"closurePass",""+this.D),"coalesceVariableNames",""+this.F),"codingConvention",this.G),"collapseAnonymousFunctions",""+this.H),DIc,""+this.I),"collapseProperties",""+this.J),"collapseVariableDeclarations",""+this.K),"colorizeErrorOutput",""+this.L),"computeFunctionSideEffects", ""+this.M),"conformanceConfigs",this.N),"continueAfterErrors",VHc),"convertToDottedProperties",""+this.O),"crossModuleCodeMotion",""+this.P),"crossModuleCodeMotionNoStubMethods",""+this.Q),"crossModuleMethodMotion",""+this.R),"cssRenamingMap",this.S),"cssRenamingWhitelist",this.T),"customPasses",this.U),"dartPass",""+this.V),"deadAssignmentElimination",""+this.W),"debugFunctionSideEffectsPath",this.X),"declaredGlobalExternsOnWindow",""+this.Y),"defineReplacements",e4(this.Z)),"dependencyOptions", this.$),"devirtualizePrototypeMethods",""+this.ab),"devMode",this._),"disambiguatePrivateProperties",""+this.bb),"disambiguateProperties",""+this.cb),"enforceAccessControlCodingConventions",""+this.eb),"environment",this.fb),"errorFormat",this.gb),"errorHandler",this.hb),"exportLocalPropertyDefinitions",""+this.ib),"exportTestFunctions",""+this.jb),"externExports",""+this.kb),"externExportsPath",this.lb),"extraAnnotationNames",this.mb),"extractPrototypeMemberDeclarations",this.ob),"extraSmartNameRemoval", ""+this.nb),"flowSensitiveInlineVariables",""+this.qb),"foldConstants",""+this.rb),"forceLibraryInjection",this.sb),"gatherCssNames",""+this.tb),"generateExportsAfterTypeChecking",""+this.vb),"generateExports",""+this.ub),"generatePseudoNames",""+this.wb),"generateTypedExterns",VHc),"idGenerators",this.xb),"idGeneratorsMapSerialized",this.yb),"inferConsts",""+this.zb),"inferTypes",""+this.Ab),"inlineConstantVars",""+this.Bb),EIc,""+this.Cb),"inlineGetters",""+this.Db),"inlineLocalFunctions",""+this.Eb), "inlineLocalVariables",""+this.Fb),"inlineProperties",""+this.Gb),FIc,""+this.Hb),"inputAnonymousFunctionNamingMap",this.Ib),"inputDelimiter",this.Jb),"inputPropertyMap",this.Kb),"inputSourceMaps",this.Lb),"inputVariableMap",this.Mb),"instrumentationTemplateFile",this.Qb),"instrumentationTemplate",this.Pb),"instrumentForCoverage",""+this.Ob),"instrumentForCoverageOnly",VHc),"instrumentBranchCoverage",""+this.Nb),"j2clPassMode",this.Sb),"labelRenaming",""+this.Tb),"languageIn",this.Ub),"languageOut", Z3(this)),"legacyCodeCompile",VHc),"lineBreak",""+this.Wb),"lineLengthThreshold",""+this.Xb),GIc,this.Yb),"markAsCompiled",""+this.Zb),"markNoSideEffectCalls",""+this.$b),"maxFunctionSizeAfterInlining",""+this._b),"messageBundle",null),"moduleRoots",this.bc),"moveFunctionDeclarations",""+this.cc),"nameGenerator",this.dc),"optimizeArgumentsArray",""+this.fc),"optimizeCalls",""+this.gc),"optimizeParameters",""+this.hc),"optimizeReturns",""+this.ic),"outputCharset",this.jc),"outputJs",this.kc),"outputJsStringUsage", ""+this.lc),"parentModuleCanSeeSymbolsDeclaredInChildren",""+this.mc),"parseJsDocDocumentation",this.nc),"polymerVersion",this.oc),"preferLineBreakAtEndOfFile",""+this.pc),"preferSingleQuotes",""+this.qc),"preferStableNames",""+this.rc),"preserveDetailedSourceInfo",VHc),"preserveGoogProvidesAndRequires",""+this.sc),"preserveTypeAnnotations",""+this.tc),"prettyPrint",""+this.uc),"preventLibraryInjection",VHc),"printConfig",VHc),"printInputDelimiter",""+this.vc),"printSourceAfterEachPass",""+this.wc), "processCommonJSModules",VHc),"processObjectPropertyString",""+this.xc),"propertyInvalidationErrors",this.yc),"propertyRenaming",this.zc),"protectHiddenSideEffects",""+this.Ac),"quoteKeywordProperties",""+this.Bc),wIc,""+this.Cc),"removeAbstractMethods",""+this.Dc),"removeSuperMethods",""+this.Hc),"removeClosureAsserts",""+this.Ec),"removeJ2clAsserts",""+this.Gc),"removeDeadCode",""+this.Fc),HIc,""+this.Ic),"removeUnusedConstructorProperties",""+this.Jc),"removeUnusedLocalVars",""+this.Kc),"removeUnusedPrototypePropertiesInExterns", ""+this.Mc),IIc,""+this.Lc),JIc,""+this.Nc),"renamePrefixNamespaceAssumeCrossModuleNames",VHc),"renamePrefixNamespace",this.Pc),"renamePrefix",this.Oc),"replaceIdGenerators",""+this.Qc),"replaceMessagesWithChromeI18n",""+this.Rc),"replaceStringsFunctionDescriptions",this.Sc),"replaceStringsInputMap",this.Tc),"replaceStringsPlaceholderToken",this.Uc),"replaceStringsReservedStrings",this.Vc),"reportOTIErrorsUnderNTI",VHc),"reportPath",this.Wc),"reserveRawExports",""+this.Xc),"rewriteFunctionExpressions", ""+this.Yc),"rewritePolyfills",VHc),"runtimeTypeCheckLogFunction",this.$c),"runtimeTypeCheck",""+this.Zc),"shadowVariables",""+this._c),"skipNonTranspilationPasses",""+this.ad),"smartNameRemoval",""+this.bd),"sourceMapDetailLevel",this.cd),"sourceMapFormat",this.dd),"sourceMapLocationMappings",this.ed),"sourceMapOutputPath",this.fd),"stripNamePrefixes",this.gd),"stripNameSuffixes",this.hd),"stripTypePrefixes",this.jd),"stripTypes",this.kd),"summaryDetailLevel",""+this.ld),"syntheticBlockEndMarker", this.md),"syntheticBlockStartMarker",this.nd),"tcProjectId",this.od),"tracer",this.pd),"transformAMDToCJSModules",VHc),"trustedStrings",""+this.qd),"tweakProcessing",this.rd),"tweakReplacements",e4(this.sd)),"useDebugLog",""+this.td),"useNewTypeInference",""+this.ud),"emitUseStrict",this.db),"useTypesForLocalOptimization",""+this.wd),"variableRenaming",this.xd),"warningsGuard",this.yd),"wrapGoogModulesForWhitespaceOnly",""+this.zd))};_.a=false;_.b=false;_.f=false;_.g=false;_.k=false;_.n=false;_.p= false;_.q=false;_.w=false;_.A=false;_.B=false;_.C=false;_.D=false;_.F=false;_.H=false;_.I=false;_.J=false;_.K=false;_.L=false;_.M=false;_.O=false;_.P=false;_.Q=false;_.R=false;_.V=false;_.W=false;_.Y=false;_.ab=false;_.bb=false;_.cb=false;_.eb=false;_.ib=false;_.jb=false;_.kb=false;_.nb=false;_.qb=false;_.rb=false;_.tb=false;_.ub=false;_.vb=false;_.wb=false;_.zb=true;_.Ab=false;_.Bb=false;_.Cb=false;_.Db=false;_.Eb=false;_.Fb=false;_.Gb=false;_.Hb=false;_.Jb="// Input %num%";_.Nb=false;_.Ob=false; _.Tb=false;_.Wb=false;_.Xb=500;_.Zb=false;_.$b=false;_._b=0;_.cc=false;_.ec=0;_.fc=false;_.gc=false;_.hc=false;_.ic=false;_.lc=false;_.mc=false;_.pc=false;_.qc=false;_.rc=false;_.sc=false;_.tc=false;_.uc=false;_.vc=false;_.wc=false;_.xc=false;_.Ac=false;_.Bc=false;_.Cc=false;_.Dc=false;_.Ec=false;_.Fc=false;_.Gc=true;_.Hc=false;_.Ic=false;_.Jc=false;_.Kc=false;_.Lc=false;_.Mc=false;_.Nc=false;_.Qc=true;_.Rc=false;_.Xc=false;_.Yc=false;_.Zc=false;_._c=false;_.ad=false;_.bd=false;_.ld=1;_.qd=false; _.td=false;_.ud=false;_.vd=true;_.wd=false;_.zd=true;var T3;var XJ=ync(165);_V(190,13,{190:1,3:1,22:1,13:1},l4);var g4,h4,i4,j4;var MJ=znc(190,YS,m4);_V(219,13,{219:1,3:1,22:1,13:1},r4);var n4,o4,p4;var NJ=znc(219,YS,s4);_V(267,13,{267:1,3:1,22:1,13:1},w4);var t4,u4;var OJ=znc(267,YS,x4);_V(220,13,{220:1,3:1,22:1,13:1},C4);var y4,z4,A4;var PJ=znc(220,YS,D4);_V(168,13,{168:1,3:1,22:1,13:1},K4);var E4,F4,G4,H4,I4;var QJ=znc(168,YS,L4);_V(124,13,{124:1,3:1,22:1,13:1},Y4);var M4,N4,O4,P4,Q4,R4,S4,T4, U4;var RJ=znc(124,YS,Z4);_V(618,1,{},$4);var SJ=ync(618);_V(221,13,{221:1,3:1,22:1,13:1},d5);var _4,a5,b5;var TJ=znc(221,YS,e5);_V(167,13,{167:1,3:1,22:1,13:1},l5);var f5,g5,h5,i5,j5;var UJ=znc(167,YS,m5);_V(222,13,{222:1,3:1,22:1,13:1},r5);var n5,o5,p5;var VJ=znc(222,YS,s5);_V(177,34,CGc,u5);var WJ=ync(177);_V(187,1,PIc);_.Sg=function v5(a){return false};_.Tg=function w5(a){return false};_.Ug=function x5(a){return 2};_.Vg=function y5(){return(Lvb(),Evb).a};var EN=ync(187);_V(215,187,{215:1,187:1, 3:1},G5);_.Sg=function H5(a){return B5(this,a)};_.Tg=function I5(a){return C5(this,a)};_.Ug=function J5(a){return D5(this,a)};_.Wg=function K5(a){return E5(this,a)};_.Dd=function L5(){var a;return Tc(new Vc(HFc),(a=(new nsc(this.c.a)).a.Wd().b.Kj(),new tsc(a)))};_.a=false;_.d=0;var $J=ync(215);_V(638,1,QIc,N5);_.Pe=function O5(a,b){return M5(this,a,b)};_.Ad=function P5(a){return this===a};_.Re=function Q5(){return new Txc(this)};var ZJ=ync(638);var R5;_V(312,1,AFc,_5,a6);_.b=0;var T5,U5;var aK=ync(312); _V(313,1,{313:1,3:1,22:1},d6);_.Td=function e6(a){return c6(this,a)};_.a=0;_.b=0;_.c=0;var _J=ync(313);_V(619,1,AFc,g6);_.Dd=function h6(){return Ld(Jd(Jd(Jd(Jd(new Md((rnc(bK),bK.n)),"sortDependencies",""+this.b),"pruneDependencies",VHc),"dropMoochers",VHc),"entryPoints",this.a))};_.b=false;var bK=ync(619);_V(54,1,{54:1,3:1},m6,n6,o6,p6);_.Dd=function r6(){var a;return this.a==null?(rnc(dK),dK.p+"@"+(a=aFc(this)>>>0,a.toString(16))):"DiagnosticGroup<"+this.a+">"};var i6;var dK=ync(54);_V(115,187, PIc,s6);_.Sg=function t6(a){return this.b==(lZ(),jZ)&&k6(this.a,a)};_.Tg=function u6(a){var b,c;if(this.b!=(lZ(),jZ))for(c=a.b.Od();c.Hd();){b=c.Id();if(l6(this.a,b))return true}return false};_.Ug=function v6(a){if(a.a!=null&&Xoc(a.a,this.a.a))return this.b!=(lZ(),jZ)?0:1;return 2};_.Wg=function w6(a){return l6(this.a,a.g)?this.b:null};_.Dd=function x6(){return this.a+"("+this.b+")"};var cK=ync(115);var y6,z6,A6,B6,C6,D6,E6,F6,G6,H6,I6,J6,K6,L6,M6,N6,O6,P6,Q6,R6,S6,T6,U6,V6;_V(5,1,{5:1,3:1,22:1}, _6);_.Td=function a7(a){return Toc(this.b,a.b)};_.Ad=function b7(a){return $6(this,a)};_.Cd=function c7(){return gFc(this.b)};var eK=ync(5);var d7,e7;_V(133,13,hJc);var g7,h7,i7,j7;var jK=znc(133,YS,m7);_V(633,133,hJc,n7);var fK=znc(633,jK,null);_V(634,133,hJc,o7);var gK=znc(634,jK,null);_V(635,133,hJc,p7);var hK=znc(635,jK,null);_V(636,133,hJc,r7);var iK=znc(636,jK,null);_V(853,954,qJc,y7);_.Qf=function z7(a,b){Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[this]))}; _.Wf=function A7(a,b,c){var d,e;if(b.j==(tbc(),$8b)){d=false;for(e=(b.b?b.b.f:null).b;e;e=e.d)if(e.j==hac&&Xoc(e.ri(),oJc)){d=true;break}d||u7(this,b)}else b.j==_ac&&v7(this,b,c)};var s7;var qK=ync(853);_V(854,1,rJc,C7);_.Kd=function D7(a){return B7(a)};_.Ad=function E7(a){return this===a};var kK=ync(854);_V(849,1,qJc,M7);_.Qf=function N7(a,b){this.c=new Ocb(this.a,a,b);Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[this]))};_.Vf=function O7(a,b,c){var d,e;if(b.j==(tbc(), E9b))ysc(this.b,new T7(b));else if(b.j==_ac){e=c.j==V8b?c:c.e;ie(e.j==V8b,e);d=be(Fsc(this.b));jtc(d.b,e)}return true};_.Wf=function P7(a,b,c){var d;d=Fsc(this.b);if(!!d&&b==d.a){Msc(this.b);L7(this,a,d)}};var pK=ync(849);_V(852,1,jHc,Q7);_.Vf=function R7(a,b,c){return ntc(this.a,b,0)==-1&&!(b.j==(tbc(),E9b)&&h6b(b,60)==0)};_.Wf=function S7(a,b,c){var d;if(b.j==(tbc(),ebc)){d=a7b((me($oc(FJc,spc(46))==-1,qHc,FJc),new e8b(mac,FJc)),b);G6b(c,b,d)}else b.j==Oac&&!b.b&&V5b(b,a7b((me($oc(FJc,spc(46))== -1,qHc,FJc),new e8b(mac,FJc)),b))};var lK=ync(852);_V(475,1,{475:1},T7);var mK=ync(475);_V(850,1,{},V7);_.a=false;var oK=ync(850);_V(958,1,jHc);_.Vf=function W7(a,b,c){return!c||c.j!=(tbc(),E9b)||b==c.b};var PL=ync(958);_V(851,958,jHc,X7);_.Wf=function Y7(a,b,c){this.a.a||b.j==(tbc(),Oac)&&!!b.b&&!y6b(b.b,GJc)&&(this.a.a=true)};var nK=ync(851);var Z7;_V(838,954,qJc,a8);_.Qf=function b8(a,b){Lsb(this.b,b,pD(kD(QL,1),KFc,27,0,[this,new e8(this)]))};_.Wf=function c8(a,b,c){var d,e,f,g,h,i;b.j==(tbc(), $8b)&&_7(this,b,c)&&(d=(Fwb(),fpc(epc(epc(epc(epc(epc(epc(fpc(hpc(Hwb((e=fpc(fpc(fpc(fpc(fpc(epc(epc(j6b(b,51).Og(),58,45),92,47)," ",HJc),"[",IJc),"]",JJc),"<",KJc),">",LJc),Gwb(e))),"^\\./",""),"/","$"),92,36),64,36),43,36),45,95),58,95),46,95),HJc,"_")+"$classdecl$var"+this.a++),f=(qkb(),g=Dkb(b),!g?null:j6b(g,29)),h=Hkb(c,pkb),G6b(c,b,(me($oc(d,spc(46))==-1,qHc,d),new e8b(mac,d))),i=d7b(A1b((me($oc(d,spc(46))==-1,qHc,d),new e8b(mac,d)),b,d9b),b),M6b(i,u4b(M5b(f))),T5b(h.e,i,h),q2(this.b,i),undefined)}; _.a=0;var tK=ync(838);_V(839,1,jHc,e8);_.Vf=function f8(a,b,c){b.j==(tbc(),$8b)&&(Ud(b.j==$8b),b.b.j==mac&&c.j==mac)&&WAc(this.a,new h8(b.b,c.ri()));return true};_.Wf=function g8(a,b,c){switch(b.j.f){case 96:{Ud(b.j==(tbc(),$8b));if(b.b.j==mac&&c.j==mac){$Ac(this.a);G6b(b,b.b,a7b(new e7b(p9b),b.b));q2(this.b.b,b)}}break;case 29:d8(this,a,b,c)}};var sK=ync(839);_V(474,1,{474:1},h8);var rK=ync(474);_V(557,954,jHc,k8);_.Wf=function l8(a,b,c){var d;qkb();b.j==(tbc(),mac)&&b.ri().length!=0&&i8(this,a, b);d=j6b(b,29);!!d&&j8(this,a,Z2b(d))};var uK=ync(557);_V(843,954,qJc,m8);_.Qf=function n8(a,b){Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[this]))};_.Wf=function o8(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b.j!=(tbc(),E9b)||(b.b?b.b.f:null).j!=S8b)return;l=b.b.d;e=new r8;dkb(this.a,l,new p8(this,e));d=l.d;f=new $ab(this.a);i=Zab(f,b,Kjb(a));h=Zab(f,d,i);m=new qq(new oAc,new tq);for(o=(k=(new xrc(h.e)).a.Wd().Od(),new Crc(k));o.a.Hd();){n=(g=o.a.Id(),g.de());j=n.b;kzc(e.a,j)&&!oq(m,h.d,j)&&hq(m,h.d,j,j+"$"+(""+ (new l3(this.a)).a.Z++))}akb(new ckb(this.a,new k8(m),new $ab(this.a)),d,d.e,i)};var xK=ync(843);_V(845,955,jHc,p8);_.Vf=function q8(a,b,c){if(!c)return true;if(c.j==(tbc(),j9b)&&b==(c.b?c.b.f:null)||c.j==c9b&&b==c.b){dkb(this.a.a,b,this.b);return false}return true};var vK=ync(845);_V(844,954,jHc,r8);_.Wf=function s8(a,b,c){qkb();if(!(b.j==(tbc(),mac)&&b.ri().length!=0))return;jzc(this.a,b.ri())};var wK=ync(844);_V(846,1,qJc,x8);_.Qf=function y8(a,b){Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));Lsb(this.a, b,pD(kD(QL,1),KFc,27,0,[this]))};_.Vf=function z8(a,b,c){var d,e,f;switch(b.j.f){case 85:ysc(this.b,new B8(b,false));break;case 65:h6b(b,60)!=0||ysc(this.b,(e=b.b?b.b.f:null,f=c.j==(tbc(),hac)&&Xoc(c.ri(),oJc),new B8(e,f)));break;case 99:d=be(Fsc(this.b));d.a&&c.j==(tbc(),V8b)&&c.b==b&&(d.b=u8(c,d.e))}return true};_.Wf=function A8(a,b,c){var d;d=Fsc(this.b);if(h6b(b,60)!=0)w8(this,a,b,be(d));else if(!!d&&d.e==b){Msc(this.b);t8(this,d)}};var AK=ync(846);_V(361,1,{361:1},B8);_.a=false;_.b=null;_.c= false;_.d=false;var yK=ync(361);_V(847,1,jHc,C8);_.Vf=function D8(a,b,c){return b.j!=(tbc(),E9b)||h6b(b,60)!=0};_.Wf=function E8(a,b,c){var d,e;if(b.j==(tbc(),ebc)){d=a7b((me($oc(NJc,spc(46))==-1,qHc,NJc),new e8b(mac,NJc)),b);e=F6b(d,d.g,85);e!=d.g&&(d.g=e);d.g=new J7b(85,1,d.g);G6b(c,b,d);this.b=true}else if(b.j==mac&&Xoc(b.ri(),lJc)){d=a7b((me($oc(MJc,spc(46))==-1,qHc,MJc),new e8b(mac,MJc)),b);G6b(c,b,d);this.a=true}};_.a=false;_.b=false;var zK=ync(847);_V(856,954,qJc,L8);_.Qf=function O8(a,b){var c; dkb(this.a,b,new T8(this));dkb(this.a,b,this);Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));dkb(this.a,b,new k8(this.c));c=new W8(this);dkb(this.a,b,c);V8(c);K8(this);Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[new Z8(this)]));dkb(this.a,b,new Z8(this))};_.Wf=function P8(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!b.b||!dlb(b.b))return;l=Kjb(a);h=b.b;if(b.j!=(tbc(),$8b)&&b.j!=E9b&&!h.b&&(!c||(qkb(),!(c.j==D9b||c.j==C9b)))&&b.j!=Z8b&&(d=Hkb(b,G8),!!d&&d.j!=E9b)){n=(me($oc(GJc,spc(46))==-1,qHc,GJc),new e8b(mac,GJc)); if(!!j6b(h,29)||!!j6b(b,29)){g=new K5b(false);B5b(g,new O5b(new e7b(Jac),(e=j6b(b,51),!e?null:e.Og())));n=x1b(n,u4b(g))}b7b(n,h);V5b(h,n);q2(this.a,n)}j=h.ri();(b.j==eac||b.j==d9b)&&jzc(this.b,b);f=Mqb(l);if(l!=f){i=j;if(Qqb(f,j,true)||kzc(this.d,j)){do i=j+"$"+(""+(new l3(this.a)).a.Z++);while(Qqb(f,i,true));h.wi(i);q2(this.a,h);m=l.d;hq(this.c,m,j,i)}k=Pqb(l,j);Sqb(l,k);Kqb(f,i,h,k.a)}};var F8,G8;var GK=ync(856);_V(859,1,rJc,Q8);_.Kd=function R8(a){return Qyc((H8(),F8),a.j)};_.Ad=function S8(a){return this=== a};var BK=ync(859);_V(857,954,jHc,T8);_.Wf=function U8(a,b,c){b.j==(tbc(),mac)&&!Qqb(Kjb(a),b.ri(),true)&&jzc(this.a.d,b.ri())};var CK=ync(857);_V(858,954,jHc,W8);_.Wf=function X8(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;qkb();if(!(b.j==(tbc(),mac)&&b.ri().length!=0))return;g=b.ri();j=Kjb(a);n=Pqb(j,g);if(!n)return;if(n.Ah()!=eac&&n.Ah()!=d9b)return;(b.e.j==eac||b.e.j==d9b)&&jzc(this.e.b,b.e);d=n.d;f=null;for(l=d;;l=l.c){m=l.d;if(xlb(l.d)){f=m;break}else if(!!m.e&&xlb(m.e)){f=m.e;break}else if(plb(l.d)|| !l.c)return}Zh(this.d,n,b);i=null;for(k=j;k!=d&&k.d!=f;k=k.c)k.d.j==E9b&&(i=k);if(i){e=i.d;if(Kh(this.a,e,g))return;Zh(this.a,e,g);jAc(this.c,f)||lAc(this.c,f,new Y8(OJc+(""+(new l3(this.e.a)).a.Z++)));h=kAc(this.c,f);jzc(h.b,n);Zh(this.b,e,h)}};var EK=ync(858);_V(477,1,{477:1},Y8);var DK=ync(477);_V(476,954,jHc,Z8);_.Wf=function $8(a,b,c){b.j==(tbc(),E9b)&&Ymb(b,this.a.a)};var FK=ync(476);_V(840,1,qJc,m9);_.Qf=function o9(a,b){Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));Lsb(this.a,b,pD(kD(QL,1),KFc, 27,0,[this]))};_.Vf=function p9(a,b,c){switch(b.j.f){case 86:case 87:if(Z3(this.a.L)==(V4(),M4)){o2(this.a,Kgb(b,(rbb(),pbb),pD(kD(pT,1),tFc,2,6,[XJc])));return false}break;case 119:o2(this.a,Kgb(b,(rbb(),qbb),pD(kD(pT,1),tFc,2,6,[UHc])))}return true};_.Wf=function q9(a,b,c){b.j.f==96&&j9(this,a,b,c)};var _8,a9,b9;var JK=ync(840);_V(841,954,jHc,r9);_.Wf=function s9(a,b,c){if(b.j!=(tbc(),z8b)||b.b==this.a)return;x6b(this.a,b.b)&&o2(this.b.a,Kgb(b,(c9(),_8),pD(kD(pT,1),tFc,2,6,[])))};var HK=ync(841); _V(360,1,{},t9);_.a=false;var IK=ync(360);_V(842,1,qJc,D9);_.Qf=function F9(a,b){Lsb(this.a,a,pD(kD(QL,1),KFc,27,0,[this]));Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[this]))};_.Vf=function G9(a,b,c){var d;switch(b.j.f){case 45:C9(this,a,b,c);break;case 101:d=b.b;d.j==(tbc(),l9b)&&A9(this,d.b)}return true};_.Wf=function H9(a,b,c){x9(this,a,b,c)};_.b=0;var KK=ync(842);_V(860,954,qJc,Y9);_.Qf=function bab(a,b){Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[new kab(this,this.a),this]))};_.Wf=function cab(a,b,c){var d,e, f,g,h,i,j,k,l,m,n,o,p;switch(b.j.f){case 65:if(h6b(b,59)!=0){I9=0;Q9(this,b,c)}break;case 29:d=(qkb(),Hkb(b,new mmb((tbc(),E9b))));!!d&&h6b(d,59)!=0&&z6b(b,lJc,lJc.length)&&b.wi(fKc);break;case 33:d=(qkb(),Hkb(b,new mmb((tbc(),E9b))));!!d&&h6b(d,59)!=0&&H6b(b,(me($oc(gKc,spc(46))==-1,qHc,gKc),new e8b(mac,gKc)));break;case 102:h6b(b,62)!=0?(e=(qkb(),Hkb(b,pkb)),f=A1b((me($oc(lKc,spc(46))==-1,qHc,lKc),new e8b((tbc(),mac),lKc)),Cbb(this.a,E6b(b)),nbc),g=B1b((me($oc(mKc,spc(46))==-1,qHc,mKc),new e8b(mac, mKc)),nbc),h=r1b((me($oc(mKc,spc(46))==-1,qHc,mKc),new e8b(mac,mKc)),v1b(H1b((me($oc(lKc,spc(46))==-1,qHc,lKc),new e8b(mac,lKc)),new e8b(Xac,ZJc)),pD(kD(TR,1),rHc,7,0,[(me($oc(nKc,spc(46))==-1,qHc,nKc),new e8b(mac,nKc))]))),i=V1b(H1b(h,new e8b(Xac,dKc))),j=H1b((me($oc(mKc,spc(46))==-1,qHc,mKc),new e8b(mac,mKc)),new e8b(Xac,$Jc)),k=C1b(k2b(_5b(j,false))),l=j2b(i,t1b(k)),T5b(e.e,f,e),T5b(e.e,g,e),T5b(e.e,l,e),c.j==z9b?b6b(c):G6b(c,b,j),X9(a,k,k.e),Vjb(a),undefined):c.j==(tbc(),z9b)?X9(a,c,c.e):(m=(qkb(), Hkb(b,pkb)),n=C1b(b.b?k2b(E6b(b)):new e7b(sbc)),o=T1b(nKc+(""+this.f.a.Z++)),p=A1b(_5b(o,false),(me($oc(nKc,spc(46))==-1,qHc,nKc),new e8b(mac,nKc)),nbc),G6b(c,b,o),T5b(m.e,n,m),T5b(m.e,p,m),X9(a,n,n.e),Vjb(a),undefined)}};_.g=false;var I9=0;var PK=ync(860);_V(362,1,jHc,eab,fab);_.Vf=function gab(a,b,c){switch(b.j.f){case 65:return false;case 83:itc(this.g,0,b.b.ri());break;case 71:case 70:case 72:case 73:++this.c;++this.b;break;case 67:++this.b;break;case 82:c=b.e;!!c&&c.j==(tbc(),hbc)&&c.b==b&&!!b.d.b&& ++this.i;break;case 74:if(h6b(b,67)==0&&(this.b==0&&!b.b||!!b.b&&ntc(this.g,b.b.ri(),0)==-1)){this.d=true;this.a&&T5b(c,Z9(this.e,this.f),b)}break;case 75:if(this.c==0||!!b.b&&ntc(this.g,b.b.ri(),0)==-1){this.d=true;this.a&&T5b(c,Z9(this.e,this.f),b)}break;case 39:if(this.i==0){this.d=true;this.a&&h6b(b,67)==0&&T5b(c,Z9(this.e,this.f),b)}break;case 0:this.d=true;this.a&&T5b(c,Z9(this.e,this.f),b);break;case 102:this.d=true}return true};_.Wf=function hab(a,b,c){switch(b.j.f){case 83:ptc(this.g,0); break;case 71:case 70:case 72:case 73:--this.c;--this.b;break;case 67:--this.b;break;case 82:c=b.e;!!c&&c.j==(tbc(),hbc)&&c.b==b&&!!b.d.b&&--this.i}};_.a=false;_.b=0;_.c=0;_.d=false;_.f=0;_.i=0;var LK=ync(362);_V(861,955,jHc,kab);_.Vf=function lab(a,b,c){switch(b.j.f){case 102:jab(this,a,b);break;case 71:case 72:case 70:iab(this,a,b);break;case 68:if(J9(this.c,b.b)){o2(this.a,Kgb(b,(rbb(),qbb),pD(kD(pT,1),tFc,2,6,["Case statements that contain yields"])));return false}}return true};var MK=ync(861); _V(478,1,{478:1},mab);_.b=0;var NK=ync(478);_V(363,1,{363:1},nab);_.a=0;_.b=0;var OK=ync(363);_V(401,954,jHc,yab);_.Wf=function Aab(a,b,c){uab(this,a,b,c)};_.e=false;_.i=0;var oab,pab;var VK=ync(401);_V(766,958,jHc,Cab);_.Wf=function Dab(a,b,c){b.j==(tbc(),V8b)&&y6b(b.b,yHc)&&ylb(c.e)&&Bab(this,b,c)};var QK=ync(766);_V(764,955,jHc,Eab);_.Vf=function Fab(a,b,c){var d;if(this.a)return false;if(!c||hlb(c)||(qkb(),c.j==(tbc(),Pac)||c.j==Rac||c.j==S8b||c.j==kac)){if(b.j==(tbc(),z9b)){d=b.b.b;if(!!d&&(z6b(d, wHc,wHc.length)||z6b(d,xHc,xHc.length))){this.a=true;return false}}return true}return false};_.a=false;var RK=ync(764);_V(238,1,{238:1},Gab);_.Dd=function Hab(){return"("+this.a+HFc+this.b+")"};var SK=ync(238);_V(199,1,{199:1},Iab);_.Dd=function Jab(){return"("+this.a+HFc+this.b+")"};var TK=ync(199);_V(765,954,jHc,Lab);_.Wf=function Mab(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=j6b(b,29);if(d)for(l=new Rtc(Z2b(d));l.a0?this.f:"(unknown source)")+" line "+(this.d!=-1?""+this.d:"(unknown line)")+" : "+(this.a!=-1?""+this.a:"(unknown column)")}; _.a=0;_.d=0;var xL=ync(65);_V(302,1,{302:1,909:1,3:1},Rgb);_.Pg=function Tgb(){return _n(),new By(be(this.e))};_.Qg=function Ugb(){return Ogb(this)};_.Og=function Sgb(){return this.e};_.Dd=function Vgb(){return this.e};_.b=0;_.c=0;var AL=ync(302);_V(581,1,AFc,bhb);var zL=ync(581);_V(42,34,{3:1,43:1,42:1,41:1},chb,dhb,ehb,fhb);var _S=ync(42);_V(303,42,{303:1,3:1,43:1,42:1,41:1},ghb);var yL=ync(303);_V(698,1,AFc,jhb);_.Mg=function khb(a){return hhb(this,a)};_.Ng=function lhb(){return this.a};_.Rg=function mhb(){return this.c}; var EL=ync(698);_V(699,1,AFc,nhb);var BL=ync(699);_V(700,1,{},ohb);_.oh=function phb(a,b,c,d){jtc(this.b,new rhb);uqb(this.a,a,b,c,d)};_.ph=function qhb(a,b,c,d){jtc(this.c,new rhb);vqb(this.a,a,b,c,d)};var CL=ync(700);_V(431,1,AFc,rhb);var DL=ync(431);_V(320,424,{},uhb,vhb);_.b=true;_.c=true;var FL=ync(320);_V(579,393,{},yhb);_.Rf=function zhb(){var a;a=this.c+this.e==0?(ADc(),xDc):(ADc(),zDc);this.c+this.e>0&&_Dc(this.b,a,X0b("%d error(s), %d warning(s)",pD(kD(kT,1),KFc,1,5,[moc(this.c),moc(this.e)])))}; _.Sf=function Ahb(a,b){switch(a.f){case 0:dEc(this.b,Fgb(b,a,this.a));break;case 1:eEc(this.b,Fgb(b,a,this.a))}};var GL=ync(579);_V(305,1,ZKc,Ehb,Fhb);_.qh=function Ghb(a){var b,c;b=Mjb(a);qkb();if(b.j==(tbc(),S8b)&&!!b.e&&b.e.j==E9b)return;if(Esc(this.a)){he(b.j!=E9b||!this.b);he(Ljb(a)==0);c=this.b}else c=Fsc(this.a).th(!zkb(b));b.j==E9b||Bhb(this,a,b,c,false);ysc(this.a,c)};_.rh=function Hhb(a){if(plb(Mjb(a)))return;Ljb(a)==0||Msc(this.a)};_.Vf=function Ihb(a,b,c){var d,e,f,g,h;switch(b.j.f){case 65:{h= Fsc(this.a).th(false);g=b.b.ri();g.length!=0&&!!c&&(qkb(),!(b.j==(tbc(),E9b)&&jlb(b.e)))&&h.sh(g,false);ysc(this.a,h);break}case 45:{h=Fsc(this.a).th(true);for(f=new Rtc(Okb(b));f.a0){this.b+=b;this.a=a.charCodeAt(b-1)}};_.yg=function Pnb(){return this.a};_.a=0;_.b=0;var oM=ync(704);_V(586,1,gHc,$nb); _.Qf=function _nb(a,b){Xnb(this,a,b)};_.c=false;_.e=0;_.g=0;_.j=false;_.k=0;_.o=0;_.r=false;var Qnb,Rnb,Snb;var vM=ync(586);_V(427,1,gHc,dob);_.Qf=function eob(a,b){var c,d,e,f,g,h,i,j,k,l;ie(!this.f.c,"Nested loops are forbidden");this.f.c=true;cob(this);this.b=bob(this);this.e=new lob(this.f);m1(this.f.b,this.e);this.f.b.d=null;this.f.f=new ezc;for(i=new Rtc(this.d);i.athis.f.g&& this.b)return;d>100&&z2("Fixed point loop exceeded the maximum number of iterations.",null);++d;e=false;for(h=new Rtc(this.d);h.a0)return;else if(kob(this.e)){f.a.put(g,f);e=true}else f.a.remove(g)!=null}else k.a.remove(g)!=null}j=c;c=ykb(b);if(l==0)if(e&&aob(this,j,c))l=1;else return;else{he(l==1);(!e||!aob(this,j,c))&&(l=0)}}}finally{this.f.c= false;n2(this.f.b,this.e)}};_.a=0;_.b=false;var qM=ync(427);_V(328,1,{59:1,328:1},gob);_.Qf=function hob(a,b){fob(this,a,b)};_.Dd=function iob(){return"pass: "+this.b};var rM=ync(328);_V(587,1,{},job);_.a=0;_.b=0;var sM=ync(587);_V(689,1,{910:1},lob);_.kg=function mob(){this.b.e=this.b.b.a};_.a=0;var uM=ync(689);_V(304,1,gHc,rob,sob);_.Qf=function tob(a,b){pob(this,a,b)};_.a=false;var xM=ync(304);_V(472,954,jHc,uob);_.Wf=function wob(a,b,c){b.j.f==28&&vob(b)};var wM=ync(472);var xob,yob,zob,Aob,Bob; var Dob,Eob;var Gob,Hob;var Job,Kob,Lob,Mob;_V(106,13,{106:1,3:1,22:1,13:1},Xob,Yob,Zob,$ob);var Oob,Pob,Qob,Rob,Sob,Tob,Uob,Vob;var yM=znc(106,YS,apb);_V(275,13,{275:1,3:1,22:1,13:1},epb);var bpb,cpb;var zM=znc(275,YS,fpb);_V(398,1,{910:1},gpb);_.kg=function hpb(){this.a=true};_.a=false;var AM=ync(398);_V(594,954,qJc,jpb);_.Qf=function kpb(a,b){ipb(this,b)};_.Wf=function lpb(a,b,c){var d,e;if(b.j!=(tbc(),E9b))return;e=null.Tj();if(e<0)return;d=B2(this.a,b);!a.d&&!!a.g&&(a.d=B1(a.c,a.g));null.Tj($bb().Tj().Tj(Ykb(b)).Tj(n7b(b.i)).Tj().Tj(d.length).Tj(null.Tj()).Tj().Tj())}; var BM=ync(594);_V(1067,1,{});var mpb;_V(588,1,{},rpb);var CM=ync(588);_V(836,1,qJc,spb);_.Qf=function tpb(a,b){Lsb(this.a,b,pD(kD(QL,1),KFc,27,0,[this]))};_.Vf=function upb(a,b,c){if(b.j==(tbc(),E9b)){ysc(this.b,new ypb(Dsc(this.b),b));h6b(b,61)!=0&&t1(this.a,"es6/execute_async_generator",false)}return true};_.Wf=function vpb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=Dsc(this.b);if(b.j==(tbc(),E9b)){oe(d.d.Fd()&&iE(d.d.Ed())===iE(b),"unexpected function context:\nexpected: %s\nactual: %s",b,d.d);Msc(this.b)}switch(b.j.f){case 65:d.d.Fd()&& h6b(d.d.Ed(),61)!=0&&(e=d.d.Ed(),f=F6b(e,e.g,61),f!=e.g&&(e.g=f),g=e.b?e.b.f:null,h=c7b(new e7b(S8b),g),G6b(e,g,h),d.b&&U5b(h,A1b((me($oc(pLc,spc(46))==-1,qHc,pLc),new e8b(mac,pLc)),new e7b(ebc),eac)),d.a&&U5b(h,A1b((me($oc(qLc,spc(46))==-1,qHc,qLc),new e8b(mac,qLc)),(me($oc(lJc,spc(46))==-1,qHc,lJc),new e8b(mac,lJc)),eac)),g.j==S8b||(g=b7b(t1b((he(P1b(g)),new g7b(Oac,g))),g)),i=(me($oc(rLc,spc(46))==-1,qHc,rLc),new e8b(mac,rLc)),j=e.b,d7b(i,j),k=F1b(i,new e7b(Eac),g),p2(this.a,k),l=F6b(k,k.g,59), l!=k.g&&(k.g=l),k.g=new J7b(59,1,k.g),U5b(h,k),m=H1b((me($oc(sLc,spc(46))==-1,qHc,sLc),new e8b(mac,sLc)),new e8b(Xac,"executeAsyncGenerator")),U5b(h,_1b(v1b(m,pD(kD(TR,1),rHc,7,0,[Ulb((me($oc(rLc,spc(46))==-1,qHc,rLc),new e8b(mac,rLc)),pD(kD(TR,1),rHc,7,0,[]))])))),d7b(h,g),q2(this.a,h),undefined);break;case 29:if(d.c.Fd()&&d.c.Ed().e==d.e&&z6b(b,lJc,lJc.length)){b.wi(qLc);d.c.Ed().a=true}break;case 33:if(d.c.Fd()&&d.c.Ed().e==d.e){G6b(c,b,c7b((me($oc(pLc,spc(46))==-1,qHc,pLc),new e8b(mac,pLc)),b)); d.c.Ed().b=true}break;case 103:ie(d.d.Fd()&&h6b(d.d.Ed(),61)!=0,"await found within non-async function body");je(!!b.b&&!b.b.d,"await should have 1 operand, but has %s",e6b(b));G6b(c,b,c7b(k2b(E6b(b)),b))}};var EM=ync(836);_V(359,1,{359:1},xpb,ypb);_.a=false;_.b=false;var DM=ync(359);_V(592,954,qJc,Cpb);_.Qf=function Dpb(a,b){he(b.j==(tbc(),Rac));dkb(this.a,b,this)};_.Wf=function Epb(a,b,c){switch(b.j.f){case 85:e6b(b)!=1?o2(this.a,Qjb(b,zpb,pD(kD(pT,1),tFc,2,6,[]))):Bpb(this,a,b);return;case 43:case 42:case 30:case 35:case 34:case 32:case 31:break; case 91:(!b.ti()||!(!!b.b&&!b.b.d))&&o2(this.a,Qjb(b,zpb,pD(kD(pT,1),tFc,2,6,[])));break;case 84:c.j==(tbc(),Rac)||o2(this.a,Qjb(b,zpb,pD(kD(pT,1),tFc,2,6,[])));break;default:o2(this.a,Qjb(b,zpb,pD(kD(pT,1),tFc,2,6,[])))}if(n7b(b.i)==1){J6b(b,m7b(b.i)-1);Vjb(a)}};var zpb;var FM=ync(592);_V(435,1,gHc,Mpb);_.Qf=function Opb(a,b){Ipb(this,b)};var Fpb,Gpb;var KM=ync(435);_V(436,1,{436:1},Ppb);var GM=ync(436);_V(715,1,{},Tpb);var Qpb;var IM=ync(715);_V(718,1,uGc,Vpb);_.Nd=function Wpb(a){return lpc(a, a.lastIndexOf(".")+1)};_.Ad=function Xpb(a){return this===a};var HM=ync(718);_V(717,716,jHc,Zpb);var JM=ync(717);_V(690,1,{});var $pb,_pb,aqb,bqb,cqb,dqb,eqb,fqb,gqb,hqb,iqb,jqb,kqb,lqb,mqb,nqb,oqb,pqb;var MM=ync(690);_V(575,690,{},wqb);_.oh=function xqb(a,b,c,d){uqb(this,a,b,c,d)};_.ph=function yqb(a,b,c,d){vqb(this,a,b,c,d)};var LM=ync(575);_V(597,1,gHc,Hqb);_.Qf=function Iqb(a,b){Dqb(this,a,b)};var zqb,Aqb,Bqb;var NM=ync(597);_V(285,1,{285:1,3:1},Tqb,Uqb);_.Dd=function Wqb(){return"Scope@"+this.d}; _.b=0;var OM=ync(285);_V(189,13,CLc);var Xqb,Yqb;var RM=znc(189,YS,_qb);_V(598,189,CLc,arb);var PM=znc(598,RM,null);_V(599,189,CLc,brb);var QM=znc(599,RM,null);_V(191,1,DLc,irb);_.yh=function krb(a){erb(this);if(a<1||a>this.d.length)throw BV(new dhb("Expected line number between 1 and "+this.d.length+"\nActual: "+a));return this.d[a-1]};_.Og=function lrb(){return this.b};_.zh=function mrb(){return this.c};_.Dd=function nrb(){return this.b};_.a=null;_.c=false;_.d=null;var crb;var UM=ync(191);_V(263, 1,{},orb);var SM=ync(263);_V(264,191,DLc,prb);var TM=ync(264);_V(591,954,jHc,qrb);_.Wf=function srb(a,b,c){var d,e,f,g,h;this.a&&this.b!=null&&he(Xoc(this.b,(d=j6b(b,51),!d?null:d.Og())));switch(b.j.f){case 26:g=b.b?b.b.f:null;rrb(b,g.ri());break;case 65:e=Qkb(b);e!=null&&e.length!=0&&j6b(b,40)==null&&(h=F6b(b,b.g,40),h!=b.g&&(b.g=h),e!=null&&(b.g=new T7b(40,e,b.g)));break;case 29:rrb(b,b.ri());break;case 43:for(f=b.b;f;f=f.d)f.j!=(tbc(),c9b)&&!f.ti()&&rrb(f,f.ri())}};_.a=false;var VM=ync(591);_V(194, 13,ELc);var trb,urb;var YM=znc(194,YS,xrb);_V(641,194,ELc,yrb);_.Kd=function zrb(a){return true};var WM=znc(641,YM,null);_V(642,194,ELc,Arb);_.Kd=function Brb(a){return a.j==(tbc(),V8b)||a.j==sac||a.j==E9b||a.j==mac||(qkb(),a.j==K9b||a.j==J9b)||Blb(a)||a.j==Xac&&qlb(a.e)||a.j==bbc};var XM=znc(642,YM,null);_V(193,13,FLc);var Crb,Drb;var _M=znc(193,YS,Grb);_V(639,193,FLc,Hrb);var ZM=znc(639,_M,null);_V(640,193,FLc,Irb);var $M=znc(640,_M,null);_V(448,1,{448:1},Mrb);_.a=null;var Jrb;var aN=ync(448);var Nrb, Orb,Prb,Qrb,Rrb,Srb,Trb,Urb,Vrb,Wrb,Xrb,Yrb;_V(580,187,PIc,asb);_.Vg=function bsb(){return(Lvb(),Kvb).a};_.Wg=function csb(a){var b,c,d,e,f,g,h,i,j,k,l,m;g=a.e;if(g){m=false;for(b=g;b;b=b.e){l=b.j;d=null;if(l==(tbc(),E9b)){d=(qkb(),e=Dkb(b),!e?null:j6b(e,29));m=true}else if(l==Rac)d=j6b(b,29);else if(b.j==nbc||b.j==z8b){h=Vkb(b.b);if(h){h.j==Y8b&&(h=h.b);h.j==E9b&&!m&&(d=(qkb(),e=Dkb(b),!e?null:j6b(e,29)))}}if(d)for(k=(i=!d.d?null:d.d.p,!i?(Wuc(),Wuc(),Vuc):i).Od();k.Hd();){j=k.Id();c=oqc(this.a, j);if(c){f=c.Wg(a);if(f)return f}}}}return null};var bN=ync(580);_V(589,1,AFc,dsb);_.Mg=function esb(a){return this.b};_.Ng=function fsb(){return this.a};_.Rg=function gsb(){return this.c};var cN=ync(589);_V(578,1,{},isb);_.Tf=function jsb(a,b){hsb(this,a,b)};var dN=ync(578);_V(397,1,{},msb);var gN=ync(397);_V(329,1,{329:1},osb);var eN=ync(329);_V(330,1,{330:1},psb);_.Ad=function qsb(a){if(cE(a,330))return Xoc(this.a,a.a);return false};_.Cd=function rsb(){return gFc(this.a)};var fN=ync(330);_V(154, 1,{},usb,vsb);_.a=0;var hN=ync(154);var wsb,xsb,ysb,zsb,Asb,Bsb,Csb,Dsb,Esb,Fsb,Gsb,Hsb,Isb;_V(744,70,AIc,Msb);_.Kg=function Nsb(a){return new spb(a)};_.Lg=function Osb(){return zPb(),wPb};var nN=ync(744);_V(753,117,AIc,Psb);_.xh=function Qsb(a){return new M7(a)};_.Lg=function Rsb(){return zPb(),wPb};var iN=ync(753);_V(754,117,AIc,Ssb);_.xh=function Tsb(a){return new y7(a)};_.Lg=function Usb(){return zPb(),wPb};var jN=ync(754);_V(755,117,AIc,Vsb);_.xh=function Wsb(a){return new Abb(a)};_.Lg=function Xsb(){return zPb(), wPb};var kN=ync(755);_V(756,117,AIc,Ysb);_.xh=function Zsb(a){return new L8(a)};_.Lg=function $sb(){return zPb(),wPb};var lN=ync(756);_V(757,117,AIc,_sb);_.xh=function atb(a){return new Y9(a)};_.Lg=function btb(){return zPb(),wPb};var mN=ync(757);_V(745,70,AIc,ctb);_.Kg=function dtb(a){return new Uab(a)};_.Lg=function etb(){return zPb(),wPb};var oN=ync(745);_V(746,117,AIc,ftb);_.xh=function gtb(a){return new a8(a)};_.Lg=function htb(){return zPb(),wPb};var pN=ync(746);_V(747,117,AIc,itb);_.xh=function jtb(a){return new m9(a)}; _.Lg=function ktb(){return zPb(),wPb};var qN=ync(747);_V(748,117,AIc,ltb);_.xh=function mtb(a){return new D9(a)};_.Lg=function ntb(){return zPb(),wPb};var rN=ync(748);_V(749,117,AIc,otb);_.xh=function ptb(a){return new m8(a)};_.Lg=function qtb(){return zPb(),wPb};var sN=ync(749);_V(750,117,AIc,rtb);_.xh=function stb(a){return new x8(a)};_.Lg=function ttb(){return zPb(),wPb};var tN=ync(750);_V(751,117,AIc,utb);_.xh=function vtb(a){return new Mpb(a)};_.Lg=function wtb(){return zPb(),wPb};var uN=ync(751); _V(752,117,AIc,xtb);_.xh=function ytb(a){return new Oab(a)};_.Lg=function ztb(){return zPb(),wPb};var vN=ync(752);var Atb,Btb,Ctb,Dtb,Etb,Ftb,Gtb,Htb,Itb,Jtb,Ktb,Ltb,Mtb,Ntb,Otb,Ptb,Qtb,Rtb,Stb,Ttb,Utb,Vtb,Wtb,Xtb,Ytb,Ztb,$tb,_tb,aub,bub,cub,dub,eub,fub,gub,hub,iub;var kub,lub,mub,nub,oub,pub,qub,rub,tub,uub,vub;_V(886,336,{},Cub);_.Gg=function Dub(a,b){var c,d,e;d=a.e;if(!!d&&(d.j==(tbc(),S8b)||d.j==Rac))if(a.j==(tbc(),E9b))h_(this,yub(this,a));else if(a.j==z9b&&a.b.j==z8b){c=a.b;if(Alb(c.b))h_(this, Bgb(this.a,j6b(c,29)));else{e=c.b?c.b.f:null;h_(this,Aub(this,e))}}else a.j==nbc&&!!a.b.b&&(Alb(a.b)?h_(this,Bgb(this.a,j6b(a,29))):h_(this,Aub(this,a.b.b)));g_(this,a,b)};var wN=ync(886);var Fub,Gub,Hub,Iub,Jub,Kub,Lub,Mub;_V(245,1,{245:1,3:1},Rub);_.Ah=function Sub(){var a;for(a=this.c;a;a=a.e)if(Oub.contains(a.j))return a.j;throw BV(new Ync("The nameNode for "+this+" must be a descendant"+" of one of: "+Oub));};_.Ad=function Tub(a){var b;if(!cE(a,245))return false;b=a;return b.c==this.c};_.Cd= function Uub(){return rb(this.c)};_.Dd=function Vub(){return"Var "+this.b+" @ "+this.c};var Oub;var BN=ync(245);_V(357,245,{245:1,357:1,3:1},Wub);_.Ah=function Xub(){return null};_.Ad=function Yub(a){var b;if(!cE(a,357))return false;b=a;return b.d.d==this.d.d};_.Cd=function Zub(){return KEc(this)};var xN=ync(357);_V(706,954,qJc,kvb);_.Qf=function nvb(a,b){jvb(this,a,b)};_.Wf=function ovb(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(b.j==(tbc(),mac)||b.j==Yac&&!b.b){m=b.ri();if(m.length==0){he(c.j==E9b);he((qkb(), c.j==E9b&&!Jlb(c.e)));return}if((c.j==nbc||(qkb(),c.j==E9b&&jlb(c.e)))&&kzc(this.e,m)){lvb(this.a,m);lzc(this.e,m);d=M5b(j6b(b,29));s2b(d.a);d.e=true;M6b(b,u4b(d))}i=Kjb(a);j=Pqb(i,m);if(!j){qkb();if(c.j==E9b&&!Jlb(c.e)||c.j==$8b&&!Jlb(c.e)&&b==c.b);else{g=i.d.j==E9b&&Xoc(lJc,m);!g&&!(this.d&&B3((!a.d&&!!a.g&&(a.d=B1(a.c,a.g)),a.d)))&&Ujb(a,b,dvb,pD(kD(pT,1),tFc,2,6,[m]));if(this.c)throw BV(new Ync("Unexpected variable "+m));else{lvb(this.a,m);lzc(this.e,m);Kqb(Nqb(i),m,b,K1(this.a))}}return}e=(!a.d&& !!a.g&&(a.d=B1(a.c,a.g)),a.d);k=j.a;if(e==k||!e||!k)return;f=e.g;l=k.g;h=C1(this.a);if(!this.c&&l!=f&&!!l&&!!f)if(f!=l&&Huc(h.c[f.c],l.c));else!i.c?l!=f&&Huc(h.c[l.c],f.c)?Ujb(a,b,gvb,pD(kD(pT,1),tFc,2,6,[f.e,l.e,m])):Ujb(a,b,_ub,pD(kD(pT,1),tFc,2,6,[f.e,l.e,m])):Ujb(a,b,bvb,pD(kD(pT,1),tFc,2,6,[f.e,l.e,m]))}};_.c=false;_.d=false;var $ub,_ub,avb,bvb,cvb,dvb,evb,fvb,gvb;var AN=ync(706);_V(707,954,jHc,pvb);_.Wf=function qvb(a,b,c){var d,e,f,g;if(b.j==(tbc(),mac))switch(c.j.f){case 76:case 100:case 88:case 65:case 96:case 45:case 118:case 112:break; case 26:if(b==c.b){e=Kjb(a);g=Pqb(e,b.ri());if(!g){Ujb(a,b,(hvb(),cvb),pD(kD(pT,1),tFc,2,6,[b.ri()]));jzc(this.a.e,b.ri())}}break;case 47:if(b==(c.b?c.b.f:null)&&t6b(b)&&t6b(c.b))break;default:(c.j!=mac||!ylb(c.e))&&Ujb(a,b,(hvb(),avb),pD(kD(pT,1),tFc,2,6,[b.ri()]));d=Kjb(a);f=Pqb(d,b.ri());!f&&jzc(this.a.e,b.ri())}};var yN=ync(707);_V(708,1,{},svb);_.Xg=function tvb(a,b,c,d){var e,f,g,h,i;i=c.e;h=Pqb(a,b);g=!h.c?null:h.c.e;if(i.j==(tbc(),eac)||i.j==d9b||i.j==$8b||!!g&&(g.j==eac||g.j==d9b||g.j==$8b)){o2(this.b.a, Kgb(c,(hvb(),$ub),pD(kD(pT,1),tFc,2,6,[])));return}if(!a.c){if(g.j==Z8b&&i.j==Z8b)return;e=mvb(c,h);hvb();if(c.e.j==nbc&&(f=j6b(c,51),!!f&&f.zh())&&Alb(c)){jtc(this.a,i);return}e||o2(this.b.a,Kgb(c,fvb,pD(kD(pT,1),tFc,2,6,[b,h.a?h.a.f.a:"??"])))}else Xoc(b,lJc)&&(qkb(),!(c.j==mac&&c.e.j==nbc))&&o2(this.b.a,Kgb(c,(hvb(),evb),pD(kD(pT,1),tFc,2,6,[])))};var zN=ync(708);var uvb,vvb,wvb;_V(227,13,{227:1,3:1,22:1,13:1},Cvb);var yvb,zvb,Avb;var CN=znc(227,YS,Dvb);_V(142,13,{142:1,3:1,22:1,13:1},Mvb);_.a= 0;var Evb,Fvb,Gvb,Hvb,Ivb,Jvb,Kvb;var DN=znc(142,YS,Nvb);_V(346,1,{});_.Bh=function Rvb(a,b,c,d,e){return null};var PN=ync(346);_V(760,346,{},Svb);_.Bh=function Tvb(a,b,c,d,e){var f;cwb();if(!Xoc(b.substr(0,"/".length),"/")&&!(Xoc(b.substr(0,BIc.length),BIc)||Xoc(b.substr(0,NLc.length),NLc))){this.c.Tf((lZ(),kZ),new Ggb(c,null,d,e,_vb,null,pD(kD(pT,1),tFc,2,6,[b,KIc])));return null}f=Pvb(this,a,b);f==null&&this.c.Tf((lZ(),kZ),new Ggb(c,null,d,e,awb,null,pD(kD(pT,1),tFc,2,6,[b])));return f};var FN= ync(760);_V(791,1,{},Xvb);var GN=ync(791);_V(761,346,{},Yvb);_.Bh=function Zvb(a,b,c,d,e){var f,g;g=pIc.length;Xoc(b.substr(b.length-g,g),pIc)||(b+=pIc);f=Pvb(this,a,b);if(f==null){this.c.Tf((lZ(),kZ),new Ggb(c,null,d,e,(cwb(),awb),null,pD(kD(pT,1),tFc,2,6,[b])));return Ovb(a,b)}return f};var HN=ync(761);_V(216,1,{},fwb,gwb);var $vb,_vb,awb,bwb;var ON=ync(216);_V(632,1,uGc,kwb);_.Nd=function lwb(a){return a.Og()};_.Ad=function mwb(a){return this===a};var IN=ync(632);_V(311,1,{},pwb);_.Dd=function qwb(){return this.a}; var JN=ync(311);_V(630,1,{},rwb);_.Tf=function swb(a,b){};var KN=ync(630);_V(274,13,OLc);var twb;var MN=znc(274,YS,vwb);_V(631,274,OLc,wwb);_.Nd=function xwb(a){return a};var LN=znc(631,MN,null);_V(226,13,{226:1,3:1,22:1,13:1},Cwb);var ywb,zwb,Awb;var NN=znc(226,YS,Dwb);var Ewb;_V(762,346,{},Qwb);_.Bh=function Swb(a,b,c,d,e){var f,g;cwb();Xoc(b.substr(0,1),"/")||(Xoc(b.substr(0,2),BIc)||Xoc(b.substr(0,3),NLc))?f=(g=Nwb(this,a,b),g==null&&(g=Pwb(this,a,b)),g):f=Owb(this,a,b);f==null&&this.c.Tf((lZ(), kZ),new Ggb(c,null,d,e,awb,null,pD(kD(pT,1),tFc,2,6,[b])));return f};var Jwb,Kwb;var RN=ync(762);_V(763,1,iHc,Uwb);_.Pe=function Vwb(a,b){return Twb(a,b)};_.Ad=function Wwb(a){return this===a};_.Re=function Xwb(){return new Txc(this)};var QN=ync(763);_V(244,1,{909:1,244:1,3:1},$wb);_.Pg=function bxb(){return this.c};_.Qg=function cxb(){return this.d};_.Ad=function _wb(a){var b;if(!cE(a,244))return false;b=a;return b.e==this.e&&b.b==this.b&&zBc(b.d,this.d)&&zBc(b.c,this.c)&&zBc(b.a,this.a)};_.Og=function axb(){return this.b}; _.Cd=function dxb(){return huc(pD(kD(kT,1),KFc,1,5,[this.c,this.d,this.e,this.b,this.a]))};_.Dd=function exb(){return X0b("DependencyInfo(relativePath='%1$s', path='%2$s', provides=%3$s, requires=%4$s, loadFlags=%5$s)",pD(kD(kT,1),KFc,1,5,[this.e,this.b,this.c,this.d,this.a]))};var Ywb;var SN=ync(244);_V(917,1,{});var fxb;var VN=ync(917);_V(570,572,{},kxb);var TN=ync(570);_V(571,393,{},lxb);_.Rf=function mxb(){this.c+this.e>0&&ixb(this.c+" error(s), "+this.e+" warning(s)")};_.Sf=function nxb(a,b){ixb(Fgb(b, a,this.a))};var UN=ync(571);_V(188,956,{},pxb);var WN=ync(188);var qxb;var sxb;var uxb;var wxb,xxb,yxb,zxb;var Bxb,Cxb;var Exb,Fxb,Gxb,Hxb,Ixb,Jxb,Kxb,Lxb,Mxb,Nxb,Oxb,Pxb,Qxb,Rxb;var Txb;var Vxb,Wxb;var Yxb,Zxb;var _xb;var byb,cyb,dyb,eyb;var gyb;var iyb;_V(382,1,{},kyb);_.Dd=function lyb(){return Ld(Jd(Jd(Jd(Jd(Kd(new Md((rnc(XN),XN.n))),"simpleType",this.d),YKc,this.e),bIc,this.c),"scope",this.a))};_.b=false;var XN=ync(382);_V(252,1,{252:1,3:1},vyb);_.Dd=function Cyb(){return lzb(syb(this),new Kpc, (HHb(),GHb)).a};_.b=false;var YN=ync(252);_V(148,1,{148:1,3:1});_.Dd=function Qyb(){return this.A};_.w=false;var sO=ync(148);_V(163,148,{163:1,148:1,984:1,3:1},Vyb);_.Ch=function Xyb(){var a,b,c;be(this.b);he(!this.B);a=(zEb(),zEb(),yEb);for(c=this.c.Od();c.Hd();){b=c.Id();a=BEb(a,b,new DGb(null,this.b,this.b,(OGb(),LGb)))}return cBb(oGb(this.u,JDb(this.u),a,null,this,false,(wFb(),uFb)))};_.Dh=function Yyb(a){return xAb(this.a,a)};_.Eh=function Zyb(a){return EAb(this.a,a)};_.Fh=function azb(a){return PAb(this.a, a)};var $N=ync(163);_V(258,13,{258:1,3:1,22:1,13:1},hzb);var dzb,ezb,fzb;var ZN=znc(258,YS,izb);_V(209,148,{209:1,148:1,3:1},jzb);_.Ch=function kzb(){he(!this.B);return cBb(oGb(this.u,HDb(this.u),null,syb(this.a.c),this,false,(wFb(),uFb)))};var _N=ync(209);_V(202,1,{202:1,3:1},Jzb,Kzb);_.Ad=function Lzb(a){return nzb(this,a)};_.Cd=function Nzb(){return huc(pD(kD(kT,1),KFc,1,5,[this.i,this.e,this.j,this.k,this.d,this.g]))};_.Dd=function Wzb(){return lzb(this,new Kpc,(HHb(),GHb)).a};_.b=false;_.c=false; var dO=ync(202);_V(871,1,uGc,Yzb);_.Nd=function Zzb(a){return mpc(a,0,$oc(a,spc(35)))};_.Ad=function $zb(a){return this===a};var aO=ync(871);_V(92,1,{},nAb);_.b=false;_.c=false;_.j=null;_.k=null;var cO=ync(92);_V(253,34,{253:1,3:1,43:1,41:1},oAb);var bO=ync(253);var WR=Anc();_V(127,1,iMc);_.Qh=function lBb(){return FAb(this)};_.Uh=function pBb(){var a,b;return he((b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!b?null:b.b))),(a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()): null,!a?null:a.b).n};_.Ad=function aBb(a){return vAb(this,a)};_.Gh=function eBb(){var a,b,c,d,e,f,g,h;a=(h=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!h?null:h.b);f=Mzb(a.d);if(!(!!f&&f.a.g==0)&&(g=Mzb(a.d),!(!!g&&g.a.g!=0)))return En(),Rx(),Qx;e=CAb(pzb(a));d=new mzc;for(c=UEb(e).Od();c.Hd();){b=c.Id();tHb(b.a)||jzc(d,!b.a.q.isEmpty()&&!b.b.d.d.isEmpty()?cBb(oGb(b.a.u,b,null,null,null,false,b.a.i)):b.a.r)}return d};_.Hh=function fBb(){return wAb(this)};_.Ih=function gBb(){var a,b; b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null;if(b){a=FFb(b);return a?(he(a.d==(gzb(),fzb)),a.a):null}return null};_.Kh=function hBb(){var a,b,c;return he((a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!a?null:a.b))),b=pzb((c=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!c?null:c.b)),!b?null:b.Lh()==2&&b.Oh().size()==1?b:null};_.Mh=function iBb(){var a,b;he((b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!b?null:b.b)));return qzb((a=this.Lh()== 2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!a?null:a.b))};_.Nh=function jBb(){var a,b;he((b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!b?null:b.b)));return rzb((a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!a?null:a.b))};_.Ph=function kBb(){return szb(be(yAb(this)))};_.Rh=function mBb(){var a,b;he((b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!b?null:b.b)));return(a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!a?null:a.b).k};_.Sh= function nBb(){var a;if(vAb(this,this.e.ab))return null;a=FAb(this);return!a?null:wAb(a)};_.Th=function oBb(){var a,b;he((b=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!b?null:b.b)));return tzb((a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!a?null:a.b))};_.Cd=function qBb(){return huc(pD(kD(kT,1),KFc,1,5,[moc(this.Lh()),this.Oh(),this.Jh(),this.Vh()]))};_.Wh=function sBb(){return 0==this.Lh()};_.Xh=function tBb(){var a,b,c;return a=(b=this.Lh()==2&&this.Oh().size()== 1?Us(this.Oh().Od()):null,!b?null:b.b),!!a&&(c=Mzb(a.d),!!c&&c.a.g==0)};_.Yh=function uBb(){var a;a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null;return!!a&&!!FFb(a)};_.Zh=function vBb(a){return vAb(this,a)};_.$h=function wBb(){var a;return a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!!(!a?null:a.b)};_._h=function yBb(){var a,b,c;return a=(c=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!c?null:c.b),!!a&&(b=Mzb(a.d),!!b&&b.a.g!=0)};_.ai=function zBb(){return-1!= this.Lh()&&(this.Lh()&32)!=0};_.bi=function ABb(){return this.Lh()==2&&this.Oh().size()==1&&!!HFb(this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null)};_.ci=function BBb(){var a,b,c;a=(c=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,!c?null:c.b);if(!!a&&!!a.d){b=CAb(a.g?a.g:a.d);return!!b&&b.a.g==2}return false};_.di=function CBb(){return oFc==this.Lh()};_.ei=function DBb(){return vAb(this,this.e.B)};_.fi=function EBb(){return-1!=this.Lh()&&(this.Lh()&256)!=0};_.gi=function OBb(){return QAb(this, this.e.p)};_.hi=function PBb(){var a;a=tAb(this,new Kpc,(HHb(),FHb)).a;return Xoc(a.substr(0,1),"!")?a.substr(1):a};_.ii=function QBb(){var a;return a=this.Lh()==2&&this.Oh().size()==1?Us(this.Oh().Od()):null,(!a?null:a.b)?this:null};_.ji=function RBb(){return this.Lh()==2&&this.Oh().size()==1?this:null};_.ki=function SBb(){return tAb(this,new Kpc,(HHb(),FHb)).a};_.Dd=function TBb(){return tAb(this,new Kpc,(HHb(),GHb)).a};var pAb,qAb,rAb;var nO=ync(127);_V(79,127,iMc,WBb);_.Jh=function XBb(){return En(), Rx(),Qx};_.Lh=function YBb(){return this.a};_.li=function ZBb(){return En(),Rx(),Qx};_.Oh=function(){return this.li()};_.Vh=function $Bb(){return null};_.a=0;var eO=ync(79);_V(834,127,iMc,_Bb);_.Jh=function aCb(){return En(),Rx(),Qx};_.Lh=function bCb(){return 34};_.li=function cCb(){return this.a};_.Oh=function(){return this.li()};_.Vh=function dCb(){return null};var fO=ync(834);_V(833,127,iMc,eCb);_.Jh=function fCb(){return En(),Rx(),Qx};_.Lh=function gCb(){return 2};_.li=function hCb(){return this.a}; _.Oh=function(){return this.li()};_.Vh=function iCb(){return null};var gO=ync(833);_V(832,127,iMc,jCb);_.Jh=function kCb(){return be(this.a)};_.Lh=function lCb(){return this.b};_.li=function mCb(){return be(this.c)};_.Oh=function(){return this.li()};_.Vh=function nCb(){return this.d};_.b=0;var hO=ync(832);_V(709,1,AFc,nDb);_.c=0;var oCb,pCb,qCb,rCb,sCb,tCb,uCb,vCb,wCb,xCb,yCb,zCb,ACb,BCb,CCb,DCb,ECb,FCb,GCb,HCb,ICb,JCb,KCb,LCb;var mO=ync(709);_V(335,1,AFc,pDb);var iO=ync(335);_V(710,1,{},tDb);_.a= -1;var jO=ync(710);_V(234,13,{234:1,3:1,22:1,13:1},yDb);var uDb,vDb,wDb;var kO=znc(234,YS,zDb);_V(711,1,AFc,ADb);var lO=ync(711);_V(473,1,{473:1,3:1},cEb);_.H=false;_.J=false;_.T=false;var pO=ync(473);_V(831,1,UFc,gEb);_.Xd=function mEb(a){return this.a.G};_.getOrDefault=function nEb(a,b){var c;return c=this.a.G,c};_.put=function rEb(a,b){return eEb()};_.putIfAbsent=function tEb(a,b){var c;return c=this.a.G,c?c:eEb()};_.remove=function uEb(a){return fEb()};_.replace=function vEb(a,b){return eEb()}; _.clear=function hEb(){throw BV(new Qpc);};_.containsKey=function iEb(a){return true};_.containsValue=function jEb(a){return iE(a)===iE(this.a.G)};_.Wd=function kEb(){throw BV(new Qpc);};_.Ad=function lEb(a){return dEb(this,a)};_.Cd=function oEb(){throw BV(new Qpc);};_.isEmpty=function pEb(){return false};_.keySet=function qEb(){throw BV(new Qpc);};_.putAll=function sEb(a){throw BV(new Qpc);};_.size=function wEb(){throw BV(new Qpc);};_.values=function xEb(){return cvc(this.a.G)};var oO=ync(831);_V(562, 938,lMc);var yEb;var xO=ync(562);_V(383,562,lMc,DEb);_.Wd=function EEb(){return new Hqc(this.a)};var qO=ync(383);_V(297,148,{148:1,297:1,3:1},GEb);_.Ch=function HEb(){he(!this.B);return cBb(oGb(this.u,!this.a?JDb(this.u):this.a,null,null,this,false,(wFb(),uFb)))};_.a=null;var rO=ync(297);_V(206,1,{206:1,3:1},iFb);_.Ad=function kFb(a){return MEb(this,a)};_.Cd=function lFb(){return huc(pD(kD(kT,1),KFc,1,5,[this.b,this.a]))};_.Dd=function pFb(){return KEb(this,new Kpc,(HHb(),GHb)).a};var IEb;var tO= ync(206);_V(208,1,{208:1,3:1},xFb);_.a=0;var rFb,sFb,tFb,uFb,vFb;var uO=ync(208);_V(149,1,{149:1,984:1,3:1},VFb);_.Ad=function ZFb(a){return DFb(this,a)};_.Dh=function bGb(a){return EFb(this,a)};_.Eh=function cGb(a){return IFb(this,a)};_.Cd=function gGb(){return huc(pD(kD(kT,1),KFc,1,5,[this.b,this.e,this.g,this.d]))};_.Fh=function pGb(a){return NFb(this,a)};_.Dd=function uGb(){return AFb(this,new Kpc,(HHb(),GHb)).a};_.c=false;var vO=ync(149);_V(906,1,{},yGb);var wO=ync(906);_V(45,1,{45:1,3:1},DGb); _.Ad=function EGb(a){return AGb(this,a)};_.Cd=function FGb(){return huc(pD(kD(kT,1),KFc,1,5,[this.d,this.a]))};_.Dd=function JGb(){return zGb(this,new Kpc,(HHb(),GHb)).a};var zO=ync(45);_V(256,13,{256:1,3:1,22:1,13:1},PGb);var LGb,MGb,NGb;var yO=znc(256,YS,QGb);_V(39,1,{},RGb,SGb);_.Dd=function UGb(){return Tc(new Vc("."),this.a.Od())};var AO=ync(39);_V(73,148,{148:1,73:1,3:1},xHb);_.Ch=function yHb(){me(this.f,"Unexpected not-frozen type: %s",this);he(!this.B);return cBb(oGb(this.u,HDb(this.u),null, this.c,this,this.c.c,(wFb(),uFb)))};_.Dd=function DHb(){return dHb(this,new Kpc).a};_.a=null;_.d=null;_.e=false;_.f=false;_.g=0;_.p=null;var BO=ync(73);_V(46,1,{},EHb);var CO=ync(46);_V(890,1,{},JHb);_.mi=function KHb(){return false};var FHb,GHb;var EO=ync(890);_V(891,890,{},LHb);_.mi=function MHb(){return true};var DO=ync(891);_V(559,1,{559:1,3:1},SHb);var GO=ync(559);_V(257,13,{257:1,3:1,22:1,13:1},XHb);var THb,UHb,VHb;var FO=znc(257,YS,YHb);_V(870,1,AFc,$Hb);_.a=0;var HO=ync(870);_V(30,13,{30:1, 3:1,22:1,13:1},hJb);var aIb,bIb,cIb,dIb,eIb,fIb,gIb,hIb,iIb,jIb,kIb,lIb,mIb,nIb,oIb,pIb,qIb,rIb,sIb,tIb,uIb,vIb,wIb,xIb,yIb,zIb,AIb,BIb,CIb,DIb,EIb,FIb,GIb,HIb,IIb,JIb,KIb,LIb,MIb,NIb,OIb,PIb,QIb,RIb,SIb,TIb,UIb,VIb,WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb;var IO=znc(30,YS,iJb);_V(229,1,{},jJb,kJb);_.b=0;_.e=0;var LO=ync(229);_V(230,13,{230:1,3:1,22:1,13:1},qJb);var mJb,nJb,oJb;var JO=znc(230,YS,rJb);_V(144,13,{144:1,3:1,22:1,13:1},zJb);var sJb,tJb,uJb,vJb,wJb,xJb;var KO=znc(144,YS,BJb);_V(823, 1,{},sKb);_.c=false;_.g=null;_.i=false;var CJb,DJb,EJb,FJb,GJb;var NO=ync(823);_V(824,1,{},VLb);var MO=ync(824);_V(379,1,{},YMb);_.d=null;_.f=false;_.o=null;var WLb,XLb;var RO=ync(379);_V(553,1,{553:1},_Mb);_.a=0;_.b=0;var OO=ync(553);_V(380,1,{},aNb);var PO=ync(380);_V(251,13,{251:1,3:1,22:1,13:1},fNb);var bNb,cNb,dNb;var QO=znc(251,YS,gNb);_V(74,13,{74:1,3:1,22:1,13:1},DNb);var hNb,iNb,jNb,kNb,lNb,mNb,nNb,oNb,pNb,qNb,rNb,sNb,tNb,uNb,vNb,wNb,xNb,yNb,zNb,ANb,BNb;var TO=znc(74,YS,ENb);_V(255,1,{}, ONb,PNb);_.a=-1;_.b=0;_.c=0;_.d=0;_.e=-1;_.f=0;_.g=0;_.i=0;_.j=0;_.n="";_.p=0;_.r=0;var SO=ync(255);_V(974,1,{});var VO=ync(974);_V(900,974,{},SNb);_.oh=function TNb(a,b,c,d){};_.ph=function UNb(a,b,c,d){};var UO=ync(900);var VNb=null,WNb=null;_V(960,1,{});_.d=false;var fR=ync(960);_V(789,960,{},cOb);_.ni=function dOb(a,b){if(this.b||!this.a){this.a=true;this.c.oh(b,a.d.c,a.b+1,a.a)}};_.oi=function eOb(a,b){this.c.ph(b,a.d.c,a.b+1,a.a)};_.a=false;_.b=false;var WO=ync(789);_V(790,1,{},fOb);var XO= ync(790);_V(905,1,{},NOb);_.c=0;_.d=0;var ZO=ync(905);_V(64,13,{64:1,3:1,22:1,13:1},lPb);_.a=0;_.b=0;_.c=0;var OOb,POb,QOb,ROb,SOb,TOb,UOb,VOb,WOb,XOb,YOb,ZOb,$Ob,_Ob,aPb,bPb,cPb,dPb,ePb,fPb,gPb,hPb,iPb,jPb;var YO=znc(64,YS,nPb);var oPb;_V(175,1,{175:1,3:1},HPb);_.Ad=function IPb(a){return cE(a,175)&&Wx(a.a,this.a)};_.Cd=function JPb(){return this.a.Cd()};_.Dd=function KPb(){return this.a.Dd()};var qPb,rPb,sPb,tPb,uPb,vPb,wPb,xPb,yPb;var _O=ync(175);_V(26,13,{26:1,3:1,22:1,13:1},CQb);_.toString=function DQb(){return this.a}; _.b=0;var MPb,NPb,OPb,PPb,QPb,RPb,SPb,TPb,UPb,VPb,WPb,XPb,YPb,ZPb,$Pb,_Pb,aQb,bQb,cQb,dQb,eQb,fQb,gQb,hQb,iQb,jQb,kQb,lQb,mQb,nQb,oQb,pQb,qQb,rQb,sQb,tQb,uQb,vQb,wQb,xQb,yQb,zQb,AQb;var $O=znc(26,YS,EQb);_V(182,1,{182:1},GQb);_.Dd=function HQb(){return ZXb(this.c)};var mP=ync(182);_V(381,182,{381:1,182:1},IQb);_.Dd=function JQb(){return this.a};var aP=ync(381);_V(40,13,{40:1,3:1,22:1,13:1},IRb);_.toString=function ORb(){return this.b};var KQb,LQb,MQb,NQb,OQb,PQb,QQb,RQb,SQb,TQb,UQb,VQb,WQb,XQb,YQb, ZQb,$Qb,_Qb,aRb,bRb,cRb,dRb,eRb,fRb,gRb,hRb,iRb,jRb,kRb,lRb,mRb,nRb,oRb,pRb,qRb,rRb,sRb,tRb,uRb,vRb,wRb,xRb,yRb,zRb,ARb,BRb,CRb,DRb,ERb,FRb,GRb;var bP=znc(40,YS,PRb);_V(862,1,{},TRb);var cP=ync(862);_V(107,182,{107:1,182:1},XRb);_.Dd=function YRb(){return this.a};var dP=ync(107);_V(290,1,{},LUb,MUb);_.i=false;var iP=ync(290);_V(821,1,{},OUb);var eP=ync(821);_V(820,1,{},PUb);_.a=false;_.b=false;_.c=false;_.d=false;var fP=ync(820);_V(243,13,{243:1,3:1,22:1,13:1},UUb);var QUb,RUb,SUb;var gP=znc(243, YS,VUb);_V(201,1,{},WUb);_.a=null;_.b=false;_.c=false;var hP=ync(201);_V(822,1,{},IVb);_.d=0;_.f=0;var jP=ync(822);_V(819,1,{},TVb);var kP=ync(819);_V(14,13,{14:1,3:1,22:1,13:1},$Xb,_Xb);_.toString=function aYb(){return ZXb(this)};var UVb,VVb,WVb,XVb,YVb,ZVb,$Vb,_Vb,aWb,bWb,cWb,dWb,eWb,fWb,gWb,hWb,iWb,jWb,kWb,lWb,mWb,nWb,oWb,pWb,qWb,rWb,sWb,tWb,uWb,vWb,wWb,xWb,yWb,zWb,AWb,BWb,CWb,DWb,EWb,FWb,GWb,HWb,IWb,JWb,KWb,LWb,MWb,NWb,OWb,PWb,QWb,RWb,SWb,TWb,UWb,VWb,WWb,XWb,YWb,ZWb,$Wb,_Wb,aXb,bXb,cXb,dXb,eXb, fXb,gXb,hXb,iXb,jXb,kXb,lXb,mXb,nXb,oXb,pXb,qXb,rXb,sXb,tXb,uXb,vXb,wXb,xXb,yXb,zXb,AXb,BXb,CXb,DXb,EXb,FXb,GXb,HXb,IXb,JXb,KXb,LXb,MXb,NXb,OXb,PXb,QXb,RXb,SXb,TXb,UXb,VXb,WXb,XXb;var lP=znc(14,YS,bYb);_V(9,1,{9:1});_.Dd=function fYb(){return this.p+"@"+this.o};var EQ=ync(9);_V(549,9,{549:1,9:1},gYb);var nP=ync(549);_V(887,9,{9:1},hYb);var oP=ync(887);_V(485,9,{485:1,9:1},iYb);var pP=ync(485);_V(529,9,{529:1,9:1},jYb);var qP=ync(529);_V(540,9,{540:1,9:1},kYb);var rP=ync(540);_V(531,9,{531:1,9:1}, lYb);var sP=ync(531);_V(524,9,{524:1,9:1},mYb);var tP=ync(524);_V(110,9,{110:1,9:1},nYb);var uP=ync(110);_V(369,9,{369:1,9:1},oYb);var vP=ync(369);_V(487,9,{487:1,9:1},pYb);var wP=ync(487);_V(488,9,{488:1,9:1},qYb);var xP=ync(488);_V(552,9,{552:1,9:1},rYb);_.c=false;var yP=ync(552);_V(489,9,{489:1,9:1},sYb);var zP=ync(489);_V(491,9,{491:1,9:1},tYb);var AP=ync(491);_V(520,9,{520:1,9:1},uYb);var BP=ync(520);_V(376,9,{376:1,9:1},vYb);var CP=ync(376);_V(480,1,{480:1},wYb);var EP=ync(480);_V(183,13,{183:1, 3:1,22:1,13:1},DYb);var xYb,yYb,zYb,AYb,BYb;var DP=znc(183,YS,EYb);_V(533,9,{533:1,9:1},FYb);var FP=ync(533);_V(534,9,{534:1,9:1},GYb);var GP=ync(534);_V(532,9,{532:1,9:1},HYb);var HP=ync(532);_V(373,9,{373:1,9:1},IYb);var IP=ync(373);_V(505,9,{505:1,9:1},JYb);_.b=false;var JP=ync(505);_V(506,9,{506:1,9:1},KYb);_.c=false;var KP=ync(506);_V(248,9,{248:1,9:1},LYb);var LP=ync(248);_V(507,9,{507:1,9:1},MYb);_.b=false;var MP=ync(507);_V(500,9,{500:1,9:1},NYb);var NP=ync(500);_V(492,9,{492:1,9:1},OYb); var OP=ync(492);_V(495,9,{495:1,9:1},PYb);var PP=ync(495);_V(490,9,{490:1,9:1},QYb);var QP=ync(490);_V(250,9,{250:1,9:1},RYb);var RP=ync(250);_V(493,9,{493:1,9:1},SYb);var SP=ync(493);_V(203,9,{203:1,9:1},TYb);var TP=ync(203);_V(547,9,{547:1,9:1},UYb);var UP=ync(547);_V(526,9,{526:1,9:1},VYb);_.d=false;_.e=false;var VP=ync(526);_V(527,9,{527:1,9:1},WYb);var WP=ync(527);_V(494,9,{494:1,9:1},XYb);var XP=ync(494);_V(517,9,{517:1,9:1},YYb);var YP=ync(517);_V(498,9,{498:1,9:1},ZYb);var ZP=ync(498);_V(525, 9,{525:1,9:1},$Yb);var $P=ync(525);_V(497,9,{497:1,9:1},_Yb);var _P=ync(497);_V(184,9,{184:1,9:1},aZb);var aQ=ync(184);_V(499,9,{499:1,9:1},bZb);_.e=false;_.f=false;_.g=false;_.i=false;var dQ=ync(499);_V(111,1,{},nZb);_.a=null;_.b=null;_.c=null;_.d=null;_.e=false;_.f=false;_.g=false;_.i=false;_.n=null;_.o=null;var bQ=ync(111);_V(204,13,{204:1,3:1,22:1,13:1},tZb);var oZb,pZb,qZb,rZb;var cQ=znc(204,YS,uZb);_V(543,9,{543:1,9:1},vZb);var eQ=ync(543);_V(545,9,{545:1,9:1},wZb);var fQ=ync(545);_V(518,9, {518:1,9:1},xZb);_.b=false;var gQ=ync(518);_V(291,9,{291:1,9:1},yZb);var hQ=ync(291);_V(501,9,{501:1,9:1},zZb);var iQ=ync(501);_V(377,9,{377:1,9:1},AZb);var jQ=ync(377);_V(528,9,{528:1,9:1},BZb);var kQ=ync(528);_V(551,9,{551:1,9:1},CZb);var lQ=ync(551);_V(546,9,{546:1,9:1},DZb);var mQ=ync(546);_V(502,9,{502:1,9:1},EZb);var nQ=ync(502);_V(375,9,{375:1,9:1},FZb);var oQ=ync(375);_V(371,9,{371:1,9:1},GZb);var pQ=ync(371);_V(370,9,{370:1,9:1},HZb);var qQ=ync(370);_V(293,9,{293:1,9:1},IZb);_.c=false;_.d= false;var rQ=ync(293);_V(292,9,{292:1,9:1},JZb);var sQ=ync(292);_V(550,9,{550:1,9:1},KZb);var tQ=ync(550);_V(888,9,{9:1},LZb);var uQ=ync(888);_V(372,9,{372:1,9:1},MZb);var vQ=ync(372);_V(522,9,{522:1,9:1},NZb);var wQ=ync(522);_V(205,9,{205:1,9:1},OZb);var xQ=ync(205);_V(504,9,{504:1,9:1},PZb);var yQ=ync(504);_V(530,9,{530:1,9:1},QZb);var zQ=ync(530);_V(538,9,{538:1,9:1},RZb);var AQ=ync(538);_V(539,9,{539:1,9:1},SZb);var BQ=ync(539);_V(503,9,{503:1,9:1},TZb);var CQ=ync(503);_V(19,13,{19:1,3:1,22:1, 13:1},I_b);var UZb,VZb,WZb,XZb,YZb,ZZb,$Zb,_Zb,a$b,b$b,c$b,d$b,e$b,f$b,g$b,h$b,i$b,j$b,k$b,l$b,m$b,n$b,o$b,p$b,q$b,r$b,s$b,t$b,u$b,v$b,w$b,x$b,y$b,z$b,A$b,B$b,C$b,D$b,E$b,F$b,G$b,H$b,I$b,J$b,K$b,L$b,M$b,N$b,O$b,P$b,Q$b,R$b,S$b,T$b,U$b,V$b,W$b,X$b,Y$b,Z$b,$$b,_$b,a_b,b_b,c_b,d_b,e_b,f_b,g_b,h_b,i_b,j_b,k_b,l_b,m_b,n_b,o_b,p_b,q_b,r_b,s_b,t_b,u_b,v_b,w_b,x_b,y_b,z_b,A_b,B_b,C_b,D_b,E_b,F_b,G_b;var DQ=znc(19,YS,J_b);_V(471,9,{9:1,471:1},K_b);var FQ=ync(471);_V(249,9,{9:1,249:1},L_b);var GQ=ync(249); _V(541,9,{9:1,541:1},M_b);var HQ=ync(541);_V(535,9,{9:1,535:1},N_b);var IQ=ync(535);_V(508,9,{9:1,508:1},O_b);var JQ=ync(508);_V(519,9,{9:1,519:1},P_b);_.b=false;var KQ=ync(519);_V(536,9,{9:1,536:1},Q_b);var LQ=ync(536);_V(521,9,{9:1,521:1},R_b);var MQ=ync(521);_V(509,9,{9:1,509:1},S_b);var NQ=ync(509);_V(366,9,{9:1,366:1},T_b);var OQ=ync(366);_V(367,9,{9:1,367:1},U_b);var PQ=ync(367);_V(368,9,{9:1,368:1},V_b);var QQ=ync(368);_V(496,9,{9:1,496:1},W_b);var RQ=ync(496);_V(510,9,{9:1,510:1},X_b);var SQ= ync(510);_V(511,9,{9:1,511:1},Y_b);var TQ=ync(511);_V(548,9,{9:1,548:1},Z_b);var UQ=ync(548);_V(378,9,{9:1,378:1},$_b);var VQ=ync(378);_V(544,9,{9:1,544:1},__b);var WQ=ync(544);_V(537,9,{9:1,537:1},a0b);var XQ=ync(537);_V(486,9,{9:1,486:1},b0b);var YQ=ync(486);_V(542,9,{9:1,542:1},c0b);var ZQ=ync(542);_V(374,9,{9:1,374:1},d0b);_.c=0;var $Q=ync(374);_V(513,9,{9:1,513:1},e0b);var _Q=ync(513);_V(514,9,{9:1,514:1},f0b);var aR=ync(514);_V(512,9,{9:1,512:1},g0b);var bR=ync(512);_V(515,9,{9:1,515:1},h0b); var cR=ync(515);_V(516,9,{9:1,516:1},i0b);var dR=ync(516);_V(523,9,{9:1,523:1},j0b);_.b=false;var eR=ync(523);_V(908,960,{},k0b);_.ni=function l0b(a,b){throw BV(new n0b);};_.oi=function m0b(a,b){};var hR=ync(908);_V(386,34,{386:1,3:1,43:1,41:1},n0b);var gR=ync(386);_V(364,1,{},p0b);_.Dd=function q0b(){return X0b("%s(%d, %d)",pD(kD(kT,1),KFc,1,5,[o0b(this),moc(this.b+1),moc(this.a+1)]))};_.a=0;_.b=0;_.c=0;var iR=ync(364);_V(15,1,{},r0b);_.Dd=function s0b(){return X0b("<%s - %s>",pD(kD(kT,1),KFc,1, 5,[this.b,this.a]))};var jR=ync(15);_V(863,1,{},v0b);_.b=0;var t0b;var lR=ync(863);_V(479,1,{479:1},y0b);_.a=0;_.b=0;var kR=ync(479);_V(787,34,CGc,z0b);var mR=ync(787);_V(788,34,CGc,A0b);var nR=ync(788);_V(350,34,CGc,B0b);var oR=ync(350);_V(785,34,CGc,C0b);var pR=ync(785);_V(786,34,CGc,D0b);var qR=ync(786);_V(344,34,CGc,E0b);var rR=ync(344);_V(784,34,CGc,F0b);var sR=ync(784);_V(701,1,{},W0b);var vR=ync(701);_V(703,1,{},f1b);_.b=0;_.c=0;_.d=0;var tR=ync(703);_V(702,1,{},m1b);_.a=-1;_.b=yFc;_.c=0;_.d= false;_.e=false;_.f=false;_.g=false;_.i=false;_.j=false;_.k=false;_.n=-1;_.p=-1;var uR=ync(702);_V(345,34,CGc,n1b);var wR=ync(345);_V(265,1,{265:1,3:1},l2b);_.Ad=function m2b(a){if(this===a)return true;if(a==null)return false;if(xR!=pb(a))return false;return Xoc(this.a,a.a)};_.Cd=function n2b(){return gFc(this.a)};_.Dd=function o2b(){return"InputId: "+this.a};var xR=ync(265);_V(342,1,{342:1,3:1},K3b,L3b);_.Dd=function O3b(){return"JSDocInfo"};_.a=0;_.c=false;_.e=false;_.f=0;var HR=ync(342);_V(735, 1,AFc,P3b);var yR=ync(735);_V(67,1,AFc,V3b);_.Dd=function W3b(){var a;return Ld(Kd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(Jd(new Md((rnc(zR),zR.n)),"bitfield",this.o==0?null:(a=this.o>>>0,a.toString(16))),"baseType",this.a),"extendedInterfaces",this.e),"implementedInterfaces",this.f),"parameters",this.n),"thrownTypes",this.r),"templateTypeNames",this.q),"disposedParameters",this.d),"typeTransformations",this.s),"description",this.c),"meaning",this.j),$Ic,this.b),"license",this.i),"suppressions", this.p),"lendsName",this.g)))};_.o=0;var zR=ync(67);_V(447,1,{447:1},$3b);var AR=ync(447);_V(343,1,{});_.b=0;_.c=0;_.d=null;_.e=0;_.f=0;var UR=ync(343);_V(736,343,{},c4b);var BR=ync(736);_V(445,343,{},e4b);var CR=ync(445);_V(446,445,{},g4b);var DR=ync(446);_V(737,343,{},h4b);_.a=false;var ER=ync(737);_V(179,13,{179:1,3:1,22:1,13:1},p4b);var j4b,k4b,l4b,m4b,n4b;var FR=znc(179,YS,q4b);_V(95,1,{},J5b,K5b);_.d=false;_.e=false;var GR=ync(95);_V(81,1,{81:1,3:1},O5b);_.Ad=function P5b(a){return cE(a,81)&& a.a.si(this.a,false,true,false,false)};_.Cd=function Q5b(){return rb(this.a)};_.Dd=function R5b(){return"type: "+_6b(this.a)};var IR=ync(81);_V(7,1,{7:1,3:1},e7b,f7b,g7b,h7b,i7b,j7b,k7b);_.pi=function l7b(a){return a6b(this,new e7b(this.j),a)};_.qi=function o7b(){if(this.j==(tbc(),xac))throw BV(new Ync(bOc));else throw BV(new Rpc(this+" is not a number node"));};_.ri=function p7b(){if(this.j==(tbc(),Xac))throw BV(new Ync(cOc));else throw BV(new Rpc(this+dOc));};_.si=function q7b(a,b,c,d,e){return s6b(this, a,b,c,d,e)};_.ti=function r7b(){return false};_.ui=function u7b(a){if(this.j==(tbc(),xac))throw BV(new Ync(bOc));else throw BV(new Rpc(this+dOc));};_.vi=function v7b(){throw BV(new Ync(this+" is not a StringNode"));};_.wi=function w7b(a){if(this.j==(tbc(),Xac)||this.j==mac)throw BV(new Ync(cOc));else throw BV(new Rpc(this+dOc));};_.Dd=function x7b(){return $6b(this,true,true,true)};_.c=0;_.i=0;var TR=ync(7);_V(420,1,AFc);_.zi=function A7b(){return this.b};_.Bi=function B7b(){return this.c};_.c=0; var JR=ync(420);_V(317,1,RFc,C7b);_.Od=function D7b(){return new F7b(this)};var LR=ync(317);_V(280,1,CFc,F7b);_.Id=function H7b(){return E7b(this)};_.Hd=function G7b(){return!!this.a.a};_.Jd=function I7b(){throw BV(new Qpc);};var KR=ync(280);_V(28,420,AFc,J7b);_.xi=function K7b(a){return new J7b(this.c,this.a,a)};_.yi=function L7b(){return this.a};_.Ai=function M7b(){throw BV(new Qpc);};_.Dd=function N7b(){return""+this.a};_.a=0;var MR=ync(28);_V(63,7,{7:1,63:1,3:1},O7b);_.pi=function P7b(a){return a6b(this, new O7b(this.a),a)};_.qi=function Q7b(){return this.a};_.si=function R7b(a,b,c,d,e){var f,g,h;f=s6b(this,a,b,c,d,e);if(f){h=this.a;g=a.a;if(h==g)return h!=0||1/h==1/g}return false};_.ui=function S7b(a){this.a=a};_.a=0;var NR=ync(63);_V(58,420,AFc,T7b);_.xi=function U7b(a){return new T7b(this.c,this.a,a)};_.yi=function V7b(){throw BV(new Qpc);};_.Ai=function W7b(){return this.a};_.Dd=function X7b(){return vpc(this.a)};var OR=ync(58);_V(48,1,RFc,Y7b);_.Od=function Z7b(){return new _7b(this.a)};var PR= ync(48);_V(647,1,CFc,_7b);_.Id=function b8b(){return $7b(this)};_.Hd=function a8b(){return!!this.a};_.Jd=function c8b(){throw BV(new Qpc);};var QR=ync(647);_V(8,7,{7:1,8:1,3:1},e8b,f8b);_.pi=function g8b(a){return a6b(this,new e8b(this.j,this.a),a)};_.ri=function h8b(){return this.a};_.si=function i8b(a,b,c,d,e){return s6b(this,a,b,c,d,e)&&Xoc(this.a,a.a)};_.ti=function j8b(){return h6b(this,36)!=0};_.vi=function k8b(){var a;a=F6b(this,this.g,36);a!=this.g&&(this.g=a);this.g=new J7b(36,1,this.g)}; _.wi=function l8b(a){d8b(this,a)};var RR=ync(8);_V(98,7,{7:1,98:1,3:1},m8b,n8b,o8b);_.pi=function p8b(a){return a6b(this,new o8b(this.j,this.a),a)};_.ri=function q8b(){return this.a};var SR=ync(98);_V(10,13,{10:1,3:1,22:1,13:1},ubc);var s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b,S8b,T8b,U8b,V8b,W8b,X8b,Y8b,Z8b,$8b,_8b,a9b,b9b,c9b,d9b,e9b,f9b,g9b,h9b,i9b,j9b,k9b,l9b,m9b,n9b,o9b,p9b,q9b,r9b,s9b,t9b,u9b,v9b,w9b,x9b,y9b,z9b,A9b,B9b,C9b,D9b, E9b,F9b,G9b,H9b,I9b,J9b,K9b,L9b,M9b,N9b,O9b,P9b,Q9b,R9b,S9b,T9b,U9b,V9b,W9b,X9b,Y9b,Z9b,$9b,_9b,aac,bac,cac,dac,eac,fac,gac,hac,iac,jac,kac,lac,mac,nac,oac,pac,qac,rac,sac,tac,uac,vac,wac,xac,yac,zac,Aac,Bac,Cac,Dac,Eac,Fac,Gac,Hac,Iac,Jac,Kac,Lac,Mac,Nac,Oac,Pac,Qac,Rac,Sac,Tac,Uac,Vac,Wac,Xac,Yac,Zac,$ac,_ac,abc,bbc,cbc,dbc,ebc,fbc,gbc,hbc,ibc,jbc,kbc,lbc,mbc,nbc,obc,pbc,qbc,rbc,sbc;var VR=znc(10,YS,wbc);var ybc,zbc;_V(24,1,iOc);_.gi=function Ccc(){return this.Ui()};_.ii=function Hcc(){return this.Xi()}; _.ji=function Jcc(){return cE(this,52)?this:null};_.Ad=function Wbc(a){return Mbc(this,a)};_.Di=function Ybc(a){return Zbc(this,a)};_.Ei=function $bc(a){var b;a=Xbc(a);if(a._i())return Clc(a._i(),this);return b=Lbc(this,a,0,new mgc(true)),b?this:Xbc(Nhc(this.w,pD(kD(nS,1),MLc,24,0,[this,a])))};_.Fi=function _bc(){return this.A};_.Gi=function acc(){return Zkc(this.A)};_.Hi=function bcc(){return false};_.Wh=function ccc(){return this.Ni()||this.Li()||this.Mi()||Shc(this.w,(zhc(),Ogc))==this};_.Ii=function dcc(){return false}; _.Xh=function ecc(){return false};_.Yh=function fcc(){return this.Wi()!=null};_.Zh=function hcc(a){return Lbc(this,a,0,new mgc(true))};_.Ji=function icc(){return false};_.Ki=function jcc(){return false};_.$h=function kcc(){return!!this.Xi()};_._h=function lcc(){return false};_.Li=function mcc(){return false};_.Mi=function ncc(){return false};_.Ni=function occ(){return false};_.Oi=function pcc(){return false};_.Pi=function qcc(){return false};_.ai=function rcc(){return this.Si(Obc(this,(zhc(),Sgc)))}; _.Qi=function scc(){return false};_.bi=function tcc(){return this.Ki()};_.ci=function ucc(){return false};_.Ri=function vcc(){return false};_.Si=function wcc(a){return ycc(this,a,new pgc(true),0)};_.Ti=function xcc(a,b,c){return ycc(this,a,b,c)};_.di=function zcc(){return false};_.ei=function Acc(){return false};_.fi=function Bcc(){return this.Si(Obc(this,(zhc(),yhc)))};_.Ui=function Dcc(){return this};_.hi=function Ecc(){return this.Ci(new Kpc,true).a};_.Vi=function Fcc(){return null};_.Wi=function Gcc(){return null}; _.Xi=function Icc(){return null};_.Yi=function Kcc(){return null};_.Zi=function Lcc(){return null};_.$i=function Mcc(){return null};_._i=function Ncc(){return null};_.ki=function Occ(){return Kbc(this,new Kpc,true).a};_.Dd=function Pcc(){return this.Ci(new Kpc,false).a};_.v=false;var Hbc,Ibc;var nS=ync(24);_V(898,24,iOc,Qcc);_.Ci=function Rcc(a,b){return a.a+="*",a};_.Cd=function Scc(){return KEc(this)};_.Hi=function Tcc(){return true};_.aj=function Ucc(a){return a.Yg()};var XR=ync(898);_V(84,24, {61:1,84:1,24:1,3:1},_cc,adc);_.Ci=function bdc(a,b){return a.a+="[ArrowType]",a};_.Di=function cdc(a){throw BV(new Qpc);};_.Ei=function ddc(a){throw BV(new Qpc);};_.bj=function edc(){return Pbc(this.b)||Xcc(this)};_.Gi=function(){return this.bj()};_.Cd=function fdc(){return Zcc(this)};_.Si=function gdc(a){return $cc(this,a,new pgc(true),0)};_.Ti=function hdc(a,b,c){return $cc(this,a,b,c)};_.aj=function idc(a){throw BV(new Qpc);};_.c=false;var YR=ync(84);_V(259,24,iOc);var NS=ync(259);_V(893,259, iOc,kdc);_.Ci=function ldc(a,b){return a.a+=kFc,a};_.Cd=function mdc(){return KEc(this)};_.ai=function ndc(){return false};_.aj=function odc(a){return a.Zg()};var ZR=ync(893);_V(52,24,jOc);_.Hh=function Adc(){return this.dj()};_.Qh=function Hdc(){return this.fj()};_.cj=function zdc(){this.u=true};_.ej=function Bdc(){return En(),Rx(),Qx};_.Ih=function Cdc(){return null};_.gj=function Ddc(){return this.ij().b.keySet()};_.hj=function Edc(){return null};_.ij=function Fdc(){return yjc(),yjc(),xjc};_.jj= function Gdc(a){return tdc(this,a)};_.lj=function Idc(a){return Ejc(this.ij(),a)};_.Sh=function Jdc(){var a;a=this.fj();if(!a)return null;a=a.Qh();return!a?null:a.Hh()};_.mj=function Kdc(){return false};_.Ki=function Ldc(){return!!this.hj()};_.nj=function Mdc(){return false};_.Qi=function Ndc(){return true};_.Ri=function Pdc(){var a;return a=this.dj(),!!a&&a.f==(Sfc(),Qfc)&&a.e};_.di=function Qdc(){return wdc(this)};_.oj=function Rdc(a){};_.aj=function Sdc(a){return a.fh(this)};_.u=true;var uS=ync(52); _V(903,52,jOc,Vdc);_.Hh=function Xdc(){return!this.c?null:this.c.dj()};_.Ci=function Wdc(a,b){if(b)return Fpc(a,this.d);return Gpc(Fpc(Gpc(Gpc(a,this.b),"<"),this.d),">")};_.dj=function Ydc(){return!this.c?null:this.c.dj()};_.fj=function Zdc(){return null};_.pj=function $dc(){return!this.c?(yjc(),yjc(),xjc):this.c.ij()};_.ij=function(){return this.pj()};_.kj=function _dc(){return this.b};_.mj=function aec(){return true};_.Cd=function bec(){he(true);return gFc(this.b)};_.Oi=function cec(){return true}; _.ai=function dec(){return this.d.ai()};_.Qi=function eec(){return this.d.Qi()};_.Si=function fec(a){return Tdc(this,a,new pgc(true),0)};_.Ti=function gec(a,b,c){return Tdc(this,a,b,c)};_.Vi=function hec(){return this};_.aj=function iec(a){return a.$g(this)};var $R=ync(903);_V(90,52,kOc,mec,nec);_.Hh=function rec(){return this.dj()};_.Ci=function pec(a,b){return jec(this,a,b)};_.qj=function qec(a,b,c,d){return kec(this,a,b,c,d)};_.dj=function sec(){return null};_.ej=function tec(){return this.r?this.r.c: (_n(),_n(),$n)};_.rj=function uec(){return this.r?Nec(this.r):(_n(),_n(),$n)};_.fj=function vec(){return this.p};_.hj=function wec(){return this.r};_.ij=function xec(){return this.t};_.kj=function yec(){return this.o!=null?this.o:this.r?this.r.kj()+PJc:null};_.sj=function zec(){return!this.u};_.mj=function Aec(){return this.o!=null||!!this.r};_.Cd=function Bec(){return this.Ri()?huc(pD(kD(kT,1),KFc,1,5,[this.o,this.t])):KEc(this)};_.nj=function Cec(){return this.q};_.Si=function Dec(a){return this.Ti(a, new pgc(true),0)};_.Ti=function Eec(a,b,c){var d,e,f,g,h;if(ycc(this,a,b,c))return true;if(a._i())return false;if(a.Yi())return Fec(this,a.Yi(),b,c);e=cE(a,52)?a:null;d=!e?null:e.dj();if(!!this.dj()&&this.dj().f==(Sfc(),Qfc))for(g=Zs(new hwc(this.ej().a.b.Od()));g.Hd();){f=g.Id();if(f.Ti(a,b,c))return true}else if(!!d&&d.f==(Sfc(),Qfc)){h=this.rj();for(g=h.Od();g.Hd();){f=g.Id();if(f.Ti(a,b,c))return true}}if(wdc(this))return true;return!!e&&udc(this,e)};_.oj=function Gec(a){he(!this.r||!a);this.r= a};_.n=false;_.q=false;_.r=null;_.s=false;var xS=ync(90);_V(72,90,mOc,_ec);_.Kh=function efc(){return me(this.Xh()||this.f==(Sfc(),Qfc),lOc,this),Tbc(this.k)};_.kj=function kfc(){return this.o!=null?this.o:this.r?this.r.kj()+PJc:null};_.Rh=function lfc(){return this.b.b};_.Sh=function nfc(){return Uec(this)};_.Th=function ofc(){return Qbc(this.k)?Shc(this.w,(zhc(),vhc)):this.k};_.Uh=function pfc(){return Vec(this)};_.ii=function yfc(){return this.Xi()};_.Ci=function afc(a,b){var c,d,e;if(!this.s|| this==Shc(this.w,(zhc(),Kgc)))return a.a+=yJc,a;this.s=false;a.a+="function (";e=e6b(this.b.a);c=!cE(this.k,207);if(c){this.Xh()?(a.a+="new:",a):(a.a+="this:",a);this.k.Ci(a,b)}if(e>0){c&&(a.a+=HFc,a);d=this.b.a.b;h6b(d,30)!=0?Jec(this,a,cE(d.k,24)?d.k:null,b):h6b(d,37)!=0?Iec(this,a,cE(d.k,24)?d.k:null,b):Kbc(cE(d.k,24)?d.k:null,a,b);d=d.d;while(d){a.a+=HFc;h6b(d,30)!=0?Jec(this,a,cE(d.k,24)?d.k:null,b):h6b(d,37)!=0?Iec(this,a,cE(d.k,24)?d.k:null,b):Kbc(cE(d.k,24)?d.k:null,a,b);d=d.d}}a.a+="): "; Kbc(this.b.b,a,b);this.s=true;return a};_.cj=function bfc(){Lec(this)};_.qj=function cfc(a,b,c,d){var e;if(Xoc(zHc,a)){e=cE(b,52)?b:null;if(e){if(!!this.g&&Lbc(e,this.g.e,0,new mgc(true)))return true;Xec(this,e,d);return true}else return false}return kec(this,a,b,c,d)};_.Gh=function dfc(){var a;a=new mzc;this.Xh()?Xc(a,Nec(this)):Xc(a,this.c);return a};_.Mh=function ffc(){return Oec(this)};_.Nh=function gfc(){return Pec(this)};_.gj=function hfc(){return Qec(this)};_.Ph=function ifc(){var a,b,c,d; d=new utc;for(b=(c=this.b.a,c?!c.b?(Wuc(),Wuc(),Vuc):new Y7b(c.b):(Wuc(),Wuc(),Vuc)).Od();b.Hd();){a=b.Id();jtc(d,cE(a.k,24)?a.k:null)}return d};_.jj=function jfc(a){return Rec(this,a)};_.lj=function mfc(a){return Tec(this,a)};_.bj=function qfc(){return alc(this.A)>0||Pbc(this.k)||Pbc(this.b)};_.Gi=function(){return this.bj()};_.sj=function rfc(){return!!this.g||!this.u};_.Cd=function sfc(){var a;a=aFc(this.f);switch(this.f.f){case 1:return 31*a+KEc(this);case 2:return 31*a+gFc(this.kj());case 0:a= 31*a+this.k.Cd();a=31*a+Zcc(this.b);return a;default:throw BV(new Rmc);}};_.Xh=function tfc(){return this.f==(Sfc(),Pfc)};_._h=function ufc(){return this.f==(Sfc(),Qfc)};_.ci=function vfc(){return this.f==(Sfc(),Qfc)&&this.e};_.Si=function wfc(a){return this.Ti(a,new pgc(true),0)};_.Ti=function xfc(a,b,c){var d,e;if(ycc(this,a,b,c))return true;if(a.Xi()){d=a.Xi();if(d.f==(Sfc(),Qfc))return true;if(this.f==Qfc)return false;return e=!!Tbc(d.k)&&!!Tbc(d.k).dj()&&Tbc(d.k).dj().f==Qfc||d.k.Ti(this.k,b, 0)||this.k.Ti(d.k,b,0),e&&$cc(this.b,d.b,b,c)}return Obc(this,(zhc(),Lgc)).Ti(a,b,c)};_.Xi=function zfc(){return this};_.aj=function Afc(a){return a._g(this)};_.e=false;var dS=ync(72);_V(185,72,mOc,Bfc);var _R=ync(185);_V(210,1,{},Jfc);_.a=false;_.b=false;_.c=null;_.e=null;_.f=null;_.g=null;var aS=ync(210);_V(299,1,{},Ofc);var bS=ync(299);_V(239,13,{239:1,3:1,22:1,13:1},Tfc);var Pfc,Qfc,Rfc;var cS=znc(239,YS,Ufc);_V(901,90,kOc,Vfc);_.Hh=function Yfc(){return this.a};_.Ci=function Wfc(a,b){return this.a.mj()? Gpc(a,this.a.kj()):jec(this,a,b)};_.qj=function Xfc(a,b,c,d){var e,f;e=Sec(this.a);if(!!e&&!!Bjc(e.ij(),a)&&(f=e.lj(a),!!f&&!f.b))return false;return kec(this,a,b,c,d)};_.dj=function Zfc(){return this.a};_.ej=function $fc(){return this.a.c};_.rj=function _fc(){return Nec(this.a)};_.fj=function agc(){return Sec(this.a)};_.kj=function bgc(){return this.a.kj()};_.mj=function cgc(){return this.a.mj()};_.Cd=function dgc(){var a;return this.a.mj()?gFc(this.a.kj()):(a=this.a,!!a&&a.f==(Sfc(),Qfc)&&a.e?huc(pD(kD(kT, 1),KFc,1,5,[this.o,this.t])):KEc(this))};_.Oi=function egc(){return this.a.mj()};var eS=ync(901);_V(740,1,iHc,fgc);_.Pe=function ggc(a,b){return Toc(a.Ci(new Kpc,false).a,b.Ci(new Kpc,false).a)};_.Ad=function hgc(a){return this===a};_.Re=function igc(){return new Txc(this)};var fS=ync(740);_V(449,1,{});_.b=false;var iS=ync(449);_V(83,449,{},mgc);var gS=ync(83);_V(112,449,{},pgc);var hS=ync(112);_V(237,13,{237:1,3:1,22:1,13:1},ugc);_.a=false;var qgc,rgc,sgc;var jS=znc(237,YS,vgc);_V(32,13,{32:1,3:1, 22:1,13:1},Ahc);var wgc,xgc,ygc,zgc,Agc,Bgc,Cgc,Dgc,Egc,Fgc,Ggc,Hgc,Igc,Jgc,Kgc,Lgc,Mgc,Ngc,Ogc,Pgc,Qgc,Rgc,Sgc,Tgc,Ugc,Vgc,Wgc,Xgc,Ygc,Zgc,$gc,_gc,ahc,bhc,chc,dhc,ehc,fhc,ghc,hhc,ihc,jhc,khc,lhc,mhc,nhc,ohc,phc,qhc,rhc,shc,thc,uhc,vhc,whc,xhc,yhc;var kS=znc(32,YS,Bhc);_V(400,1,AFc,_hc);_.mh=function aic(a){return Rhc(this,a)};_.nh=function bic(a){return Thc(this,a)};var mS=ync(400);_V(779,72,mOc,cic);_.Hh=function dic(){return Shc(this.w,(zhc(),Jgc))};_.dj=function eic(){return Shc(this.w,(zhc(), Jgc))};var lS=ync(779);_V(885,1,{});_.Yg=function lic(){return kic(this,(zhc(),wgc))};_.Zg=function mic(){return kic(this,(zhc(),Bgc))};_.$g=function nic(a){return a};_._g=function oic(a){return fic(this,a)};_.ah=function pic(){return kic(this,(zhc(),Pgc))};_.bh=function qic(a){return a};_.dh=function ric(){return kic(this,(zhc(),Sgc))};_.eh=function sic(){return kic(this,(zhc(),Ygc))};_.fh=function tic(a){return gic(this,a)};_.gh=function uic(a){return hic(this,a)};_.hh=function vic(){return kic(this, (zhc(),lhc))};_.ih=function xic(a){return this.tj(a)};_.jh=function yic(a){return iic(this,a)};_.kh=function zic(){return kic(this,(zhc(),vhc))};_.lh=function Aic(){return kic(this,(zhc(),yhc))};_.tj=function wic(a){return a};_.g=false;var oS=ync(885);_V(560,72,mOc,Bic);_.Hh=function Eic(){return null};_.ii=function Oic(){return null};_.Ci=function Cic(a,b){return a.a+=b?"?":"NoObject",a};_.qj=function Dic(a,b,c,d){return true};_.dj=function Fic(){return null};_.fj=function Gic(){return null};_.kj= function Hic(){return null};_.mj=function Iic(){return false};_.Cd=function Jic(){return KEc(this)};_.Xh=function Kic(){return false};_.Li=function Lic(){return true};_.Si=function Mic(a){return this.Ti(a,new pgc(true),0)};_.Ti=function Nic(a,b,c){return ycc(this,a,b,c)||a.Qi()&&!a.Ni()&&!a.Mi()};_.Xi=function Pic(){return null};_.aj=function Qic(a){return a.ah()};var pS=ync(560);_V(561,560,mOc,Ric);_.Ci=function Sic(a,b){return a.a+=b?"?":"None",a};_.Li=function Tic(){return false};_.Ni=function Uic(){return true}; _.ai=function Vic(){return true};_.Si=function Wic(a){return this.Ti(a,null,0)};_.Ti=function Xic(a,b,c){return true};_.aj=function Yic(a){return a.bh(this)};var rS=ync(561);_V(899,561,mOc,$ic);_.Ci=function _ic(a,b){return a.a+=b?"?":"NoResolvedType",a};_.kj=function ajc(){return this.a};_.Xh=function bjc(){return false};_.Mi=function cjc(){return true};_.Ni=function djc(){return false};_.Si=function ejc(a){return Zic(this,a,new pgc(true),0)};_.Ti=function fjc(a,b,c){return Zic(this,a,b,c)};var qS= ync(899);_V(894,259,iOc,gjc);_.gi=function ljc(){return Shc(this.w,(zhc(),Rgc))};_.Ci=function hjc(a,b){return a.a+=qFc,a};_.Cd=function ijc(){return KEc(this)};_.Pi=function jjc(){return true};_.ai=function kjc(){return true};_.Ui=function mjc(){return Shc(this.w,(zhc(),Rgc))};_.aj=function njc(a){return a.dh()};var sS=ync(894);_V(895,259,iOc,ojc);_.Ci=function pjc(a,b){return a.a+=lFc,a};_.Cd=function qjc(){return KEc(this)};_.ai=function rjc(){return false};_.aj=function sjc(a){return a.eh()}; var tS=ync(895);_V(384,1,{384:1,3:1},ujc);_.Cd=function vjc(){return huc(pD(kD(kT,1),KFc,1,5,[this.c,this.e]))};_.Dd=function wjc(){return"Property { name: "+this.c+", type:"+this.e+", inferred: "+this.b+"}"};_.a=null;_.b=false;var wS=ync(384);_V(385,1,AFc,Hjc,Ijc);_.Cd=function Jjc(){return ABc(this.b.keySet())};_.a=null;var xjc;var vS=ync(385);_V(147,52,{93:1,61:1,24:1,52:1,147:1,3:1});_.Hh=function Njc(){return!this.b?null:this.b.dj()};_.ii=function mkc(){return this.c.Xi()};_.Ci=function Mjc(a, b){return this.c.Ci(a,b)};_.dj=function Ojc(){return!this.b?null:this.b.dj()};_.ej=function Pjc(){return!this.b?(Wuc(),Wuc(),Uuc):this.b.ej()};_.fj=function Qjc(){return!this.b?null:this.b.fj()};_.hj=function Rjc(){return!this.b?null:this.b.hj()};_.ij=function Sjc(){return!this.b?(yjc(),yjc(),xjc):this.b.ij()};_.kj=function Tjc(){return!this.b?"":this.b.kj()};_.Fi=function Ujc(){return this.c.Fi()};_.bj=function Vjc(){return Pbc(this.c)};_.Gi=function(){return this.bj()};_.mj=function Wjc(){return YEc(!this.b? null:(Vmc(),this.b.mj()?true:false))};_.Cd=function Xjc(){return this.c.Cd()};_.Hi=function Yjc(){return this.c.Hi()};_.Ii=function Zjc(){return this.c.Ii()};_.Xh=function $jc(){return this.c.Xh()};_._h=function _jc(){return this.c._h()};_.nj=function akc(){return!!this.b&&this.b.nj()};_.Li=function bkc(){return this.c.Li()};_.Mi=function ckc(){return this.c.Mi()};_.Ni=function dkc(){return this.c.Ni()};_.Oi=function ekc(){return this.c.Oi()};_.ai=function fkc(){return this.c.ai()};_.Ri=function gkc(){return this.c.Ri()}; _.Si=function hkc(a){return this.c.Ti(a,new pgc(true),0)};_.Ti=function ikc(a,b,c){return this.c.Ti(a,b,c)};_.di=function jkc(){return this.c.di()};_.Vi=function kkc(){return this.c.Vi()};_.Wi=function lkc(){return this.c.Wi()};_.Xi=function nkc(){return this.c.Xi()};_.Yi=function okc(){return this.c.Yi()};_.Zi=function pkc(){return this.c.Zi()};_.$i=function qkc(){return this.c.$i()};_._i=function rkc(){return this.c._i()};_.aj=function skc(a){return a.gh(this)};var yS=ync(147);_V(904,90,kOc,wkc); _.qj=function xkc(a,b,c,d){return tkc(this,a,b,c,d)};_.fj=function ykc(){return Shc(this.w,(zhc(),chc))};_.Ri=function zkc(){return true};_.Si=function Akc(a){return vkc(this,a,new pgc(true),0)};_.Ti=function Bkc(a,b,c){return vkc(this,a,b,c)};_.Yi=function Ckc(){return this};_.a=false;var BS=ync(904);_V(564,1,{},Fkc);_.a=true;_.b=true;var AS=ync(564);_V(387,1,{387:1},Gkc);_.Dd=function Hkc(){return"RecordProperty{type: "+this.b+", node: "+this.a+"}"};var zS=ync(387);_V(896,259,iOc,Ikc);_.Ci=function Jkc(a, b){return a.a+=nFc,a};_.Cd=function Kkc(){return KEc(this)};_.aj=function Lkc(a){return a.hh()};var CS=ync(896);_V(254,147,{93:1,61:1,24:1,52:1,147:1,254:1,3:1},Nkc);_.Ci=function Okc(a,b){return Mkc(this,a)};_.kj=function Pkc(){return this.a};_.bj=function Qkc(){return true};_.Zi=function Rkc(){return this};_.aj=function Skc(a){return a.ih(this)};var FS=ync(254);_V(482,1,AFc,blc);_.Dd=function dlc(){var a,b,c;c="";b=this.d.size();c+="{ ";for(a=0;a=0?":"+this.c:"")+")"};_.c=0;var mT=ync(138);_V(20,262,{391:1,20:1},Kpc,Lpc,Mpc,Npc);var nT=ync(20);_V(310,97,{3:1,43:1, 310:1,41:1},Opc);var oT=ync(310);_V(1018,1,{});_V(21,34,{3:1,43:1,41:1,21:1},Qpc,Rpc);var rT=ync(21);_V(136,13,{3:1,22:1,13:1,136:1},_pc);var Spc,Tpc,Upc,Vpc,Wpc,Xpc,Ypc,Zpc;var sT=znc(136,YS,aqc);_V(186,1,oOc);_.Td=function bqc(a){return Uoc(this.a,a.a)};_.Ad=function cqc(a){var b;if(a===this)return true;if(!cE(a,186))return false;b=a;return Xoc(this.a,b.a)};_.Cd=function dqc(){return gFc(this.a)};_.Dd=function eqc(){return this.a};var tT=ync(186);_V(6,1,{},iqc);var uT=ync(6);_V(192,938,SFc);_.clear= function yqc(){uqc(this)};_.containsKey=function zqc(a){return kqc(this,a)};_.containsValue=function Aqc(a){return lqc(this,a)};_.Wd=function Bqc(){return new Hqc(this)};_.Xd=function Cqc(a){return nqc(this,a)};_.put=function Dqc(a,b){return qqc(this,a,b)};_.remove=function Eqc(a){return sqc(this,a)};_.size=function Fqc(){return vqc(this)};var yT=ync(192);_V(75,918,YFc,Hqc);_.clear=function Iqc(){this.a.clear()};_.contains=function Jqc(a){return Gqc(this,a)};_.Od=function Kqc(){return new Pqc(this.a)}; _.remove=function Lqc(a){var b;if(Gqc(this,a)){b=a.ce();this.a.remove(b);return true}return false};_.size=function Mqc(){return this.a.size()};var xT=ync(75);_V(104,1,CFc,Pqc);_.Id=function Rqc(){return Oqc(this)};_.Hd=function Qqc(){return this.b};_.Jd=function Sqc(){WEc(!!this.c);Xxc(this.e,this);this.c.Jd();this.c=null;this.b=Nqc(this);Yxc(this.e,this)};_.b=false;var wT=ync(104);_V(130,1,CFc,Wqc);_.Hd=function Xqc(){return Tqc(this)};_.Id=function Yqc(){return Uqc(this)};_.Jd=function Zqc(){Vqc(this)}; _.b=0;_.c=-1;var zT=ync(130);_V(309,130,bGc,_qc);_.Jd=function drc(){Vqc(this)};_.he=function arc(a){this.a.addAtIndex(this.b,a);++this.b;this.c=-1};_.ie=function brc(){return this.b>0};_.je=function crc(){return $qc(this)};_.ke=function erc(a){WEc(this.c!=-1);this.a.setAtIndex(this.c,a)};var AT=ync(309);_V(411,939,LFc,frc);_.addAtIndex=function grc(a,b){UEc(a,this.b);this.c.addAtIndex(this.a+a,b);++this.b};_.getAtIndex=function hrc(a){REc(a,this.b);return this.c.getAtIndex(this.a+a)};_.removeAtIndex= function irc(a){var b;REc(a,this.b);b=this.c.removeAtIndex(this.a+a);--this.b;return b};_.setAtIndex=function jrc(a,b){REc(a,this.b);return this.c.setAtIndex(this.a+a,b)};_.size=function krc(){return this.b};_.a=0;_.b=0;var BT=ync(411);_V(38,918,YFc,mrc);_.clear=function nrc(){this.a.clear()};_.contains=function orc(a){return lrc(this,a)};_.Od=function prc(){var a;return a=this.a.Wd().Od(),new trc(a)};_.remove=function qrc(a){if(this.a.containsKey(a)){this.a.remove(a);return true}return false};_.size= function rrc(){return this.a.size()};var ET=ync(38);_V(57,1,CFc,trc);_.Hd=function urc(){return this.a.Hd()};_.Id=function vrc(){var a;return a=this.a.Id(),a.ce()};_.Jd=function wrc(){this.a.Jd()};var DT=ync(57);_V(155,919,JFc,xrc);_.clear=function yrc(){this.a.clear()};_.contains=function zrc(a){return this.a.containsValue(a)};_.Od=function Arc(){var a;return a=this.a.Wd().Od(),new Crc(a)};_.size=function Brc(){return this.a.size()};var GT=ync(155);_V(156,1,CFc,Crc);_.Hd=function Drc(){return this.a.Hd()}; _.Id=function Erc(){var a;return a=this.a.Id(),a.de()};_.Jd=function Frc(){this.a.Jd()};var FT=ync(156);_V(224,1,{224:1,50:1});_.Ad=function Hrc(a){var b;if(!cE(a,50))return false;b=a;return zBc(this.d,b.ce())&&zBc(this.e,b.de())};_.ce=function Irc(){return this.d};_.de=function Jrc(){return this.e};_.Cd=function Krc(){return ABc(this.d)^ABc(this.e)};_.ee=function Lrc(a){return Grc(this,a)};_.Dd=function Mrc(){return this.d+"="+this.e};var HT=ync(224);_V(169,224,{224:1,169:1,50:1},Nrc);var IT=ync(169); _V(948,1,WFc);_.Ad=function Orc(a){var b;if(!cE(a,50))return false;b=a;return zBc(this.ce(),b.ce())&&zBc(this.de(),b.de())};_.Cd=function Prc(){return ABc(this.ce())^ABc(this.de())};_.Dd=function Qrc(){return this.ce()+"="+this.de()};var JT=ync(948);_V(952,938,SFc);_.Fe=function Trc(a){return Rrc(this,a)};_.containsKey=function Urc(a){return Src(this,a)};_.Jj=function Vrc(){return new Zrc(this)};_.Wd=function Wrc(){return new isc(this)};_.Xd=function Xrc(a){var b;return b=a,Li(this.Lj(b))};_.keySet= function Yrc(){return new nsc(this)};var PT=ync(952);_V(679,952,SFc,Zrc);_.clear=function $rc(){this.a.clear()};_.Hj=function _rc(){return bvc(this.a.Hj())};_.Ij=function asc(){return this.a.Kj()};_.Jj=function bsc(){return this.a};_.Kj=function csc(){return this.a.Ij()};_.Lj=function dsc(a){return this.a.Lj(a)};_.put=function esc(a,b){return this.a.put(a,b)};_.remove=function fsc(a){return this.a.remove(a)};_.Mj=function gsc(a){return this.a.Mj(a)};_.size=function hsc(){return this.a.size()};var LT= ync(679);_V(282,918,YFc,isc);_.contains=function jsc(a){return cE(a,50)&&Rrc(this.b,a)};_.Od=function ksc(){return this.b.Kj()};_.remove=function lsc(a){var b;if(cE(a,50)){b=a;return this.b.Mj(b)}return false};_.size=function msc(){return this.b.size()};var MT=ync(282);_V(85,918,dGc,nsc);_.clear=function osc(){this.a.clear()};_.contains=function psc(a){return Src(this.a,a)};_.Od=function qsc(){var a;return a=this.a.Wd().b.Kj(),new tsc(a)};_.remove=function rsc(a){if(Src(this.a,a)){this.a.remove(a); return true}return false};_.size=function ssc(){return this.a.size()};var OT=ync(85);_V(86,1,CFc,tsc);_.Hd=function usc(){return this.a.Hd()};_.Id=function vsc(){var a;return a=this.a.Id(),a.ce()};_.Jd=function wsc(){this.a.Jd()};var NT=ync(86);_V(99,919,JFc,Rsc,Tsc);_.add=function Usc(a){return zsc(this,a),true};_.clear=function Wsc(){if(this.b==this.c)return;this.a=mD(kT,KFc,1,8,5,1);this.b=0;this.c=0};_.contains=function Xsc(a){return Asc(new dtc(this),a)};_.isEmpty=function Ysc(){return Esc(this)}; _.Od=function Zsc(){return new dtc(this)};_.remove=function $sc(a){return Ksc(new dtc(this),a)};_.size=function _sc(){return Qsc(this)};_.Pd=function atc(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&(a[b]=null);return a};_.b=0;_.c=0;var TT=ync(99);_V(242,1,CFc,dtc);_.Hd=function etc(){return this.a!=this.b};_.Id=function ftc(){return btc(this)};_.Jd=function gtc(){ctc(this)};_.a=0;_.b=0;_.c=-1;var ST=ync(242);_V(23,939,{3:1,16:1,23:1,18:1, 51:1,80:1},utc,vtc,wtc);_.addAtIndex=function xtc(a,b){itc(this,a,b)};_.add=function ytc(a){return jtc(this,a)};_.addAllAtIndex=function ztc(a,b){return ktc(this,a,b)};_.addAll=function Atc(a){return ltc(this,a)};_.clear=function Btc(){this.a=mD(kT,KFc,1,0,5,1)};_.contains=function Ctc(a){return ntc(this,a,0)!=-1};_.getAtIndex=function Dtc(a){return mtc(this,a)};_.indexOf=function Etc(a){return ntc(this,a,0)};_.isEmpty=function Ftc(){return this.a.length==0};_.Od=function Gtc(){return new Rtc(this)}; _.lastIndexOf=function Htc(a){return otc(this,a,this.a.length-1)};_.removeAtIndex=function Itc(a){return ptc(this,a)};_.remove=function Jtc(a){return qtc(this,a)};_.Sd=function Ktc(a,b){var c;VEc(a,b,this.a.length);c=b-a;wEc(this.a,a,c)};_.setAtIndex=function Ltc(a,b){return rtc(this,a,b)};_.size=function Mtc(){return this.a.length};_.toArray=function Ntc(){return rEc(this.a,this.a.length)};_.Pd=function Otc(a){return ttc(this,a)};var VT=ync(23);_V(25,1,CFc,Rtc);_.Hd=function Stc(){return this.a< this.c.a.length};_.Id=function Ttc(){return Ptc(this)};_.Jd=function Utc(){Qtc(this)};_.a=0;_.b=-1;var UT=ync(25);_V(141,939,pOc,xuc);_.contains=function yuc(a){return qd(this,a)!=-1};_.getAtIndex=function zuc(a){return REc(a,this.a.length),this.a[a]};_.setAtIndex=function Auc(a,b){var c;c=(REc(a,this.a.length),this.a[a]);this.a[a]=b;return c};_.size=function Buc(){return this.a.length};_.toArray=function Cuc(){return wuc(this,mD(kT,KFc,1,this.a.length,5,1))};_.Pd=function Duc(a){return wuc(this, a)};var WT=ync(141);_V(922,$wnd.Function,{},Euc);_.Nj=function Fuc(a,b){return a-b};_V(283,1,{283:1},Nuc);_.Ad=function Puc(a){return Guc(this,a)};_.Cd=function Quc(){return Iuc(this)};_.Dd=function Tuc(){var a,b;if(Juc(this)==0)return"{}";b=new Npc("{");a=Kuc(this,0);b.a+=a;while((a=Kuc(this,a+1))!=-1){b.a+=HFc;b.a+=a}b.a+="}";return b.a};var XT=ync(283);var Uuc,Vuc;_V(621,939,pOc,evc);_.contains=function fvc(a){return false};_.getAtIndex=function gvc(a){REc(a,0);return null};_.Od=function hvc(){return Wuc(), lvc(),kvc};_.Qd=function ivc(){return Wuc(),lvc(),kvc};_.size=function jvc(){return 0};var ZT=ync(621);_V(622,1,bGc,nvc);_.he=function ovc(a){throw BV(new Qpc);};_.Hd=function pvc(){return false};_.ie=function qvc(){return false};_.Id=function rvc(){return mvc()};_.je=function svc(){throw BV(new yBc);};_.Jd=function tvc(){throw BV(new Xnc);};_.ke=function uvc(a){throw BV(new Xnc);};var kvc;var YT=ync(622);_V(623,918,rOc,vvc);_.contains=function wvc(a){return false};_.Od=function xvc(){return Wuc(), lvc(),kvc};_.size=function yvc(){return 0};var $T=ync(623);_V(624,918,rOc,Cvc);_.add=function Dvc(a){return zvc(this,a)};_.clear=function Evc(){uqc(this.a)};_.contains=function Fvc(a){return Avc(this,a)};_.Ad=function Gvc(a){return a===this||(!this.b&&(this.b=new mrc(this.a)),oj(this.b,a))};_.Cd=function Hvc(){return!this.b&&(this.b=new mrc(this.a)),Yuc(this.b)};_.Od=function Ivc(){var a;return!this.b&&(this.b=new mrc(this.a)),a=this.b.a.Wd().Od(),new trc(a)};_.remove=function Jvc(a){return Bvc(this, a)};_.size=function Kvc(){return!this.b&&(this.b=new mrc(this.a)),this.b.a.size()};_.Dd=function Lvc(){return!this.b&&(this.b=new mrc(this.a)),bd(this.b)};var _T=ync(624);_V(625,939,sOc,Mvc);_.contains=function Nvc(a){return zBc(this.a,a)};_.getAtIndex=function Ovc(a){REc(a,1);return this.a};_.size=function Pvc(){return 1};var aU=ync(625);_V(225,1,JFc,Tvc);_.add=function Uvc(a){throw BV(new Qpc);};_.addAll=function Vvc(a){throw BV(new Qpc);};_.clear=function Wvc(){throw BV(new Qpc);};_.contains=function Xvc(a){return Qvc(this, a)};_.containsAll=function Yvc(a){return Rvc(this,a)};_.isEmpty=function Zvc(){return this.b.isEmpty()};_.Od=function $vc(){return new hwc(this.b.Od())};_.remove=function _vc(a){throw BV(new Qpc);};_.removeAll=function awc(a){throw BV(new Qpc);};_.retainAll=function bwc(a){throw BV(new Qpc);};_.size=function cwc(){return this.b.size()};_.toArray=function dwc(){return this.b.toArray()};_.Pd=function ewc(a){return Svc(this,a)};_.Dd=function fwc(){return eW(this.b)};var cU=ync(225);_V(89,1,CFc,hwc); _.Hd=function iwc(){return this.b.Hd()};_.Id=function jwc(){return this.b.Id()};_.Jd=function kwc(){gwc()};var bU=ync(89);_V(270,225,LFc,lwc);_.addAtIndex=function mwc(a,b){throw BV(new Qpc);};_.addAllAtIndex=function nwc(a,b){throw BV(new Qpc);};_.Ad=function owc(a){return nb(this.a,a)};_.getAtIndex=function pwc(a){return this.a.getAtIndex(a)};_.Cd=function qwc(){return rb(this.a)};_.indexOf=function rwc(a){return this.a.indexOf(a)};_.isEmpty=function swc(){return this.a.isEmpty()};_.lastIndexOf= function twc(a){return this.a.lastIndexOf(a)};_.Qd=function uwc(){return new zwc(this.a.Rd(0))};_.Rd=function vwc(a){return new zwc(this.a.Rd(a))};_.removeAtIndex=function wwc(a){throw BV(new Qpc);};_.setAtIndex=function xwc(a,b){throw BV(new Qpc);};_.subList=function ywc(a,b){return new lwc(this.a.subList(a,b))};var eU=ync(270);_V(410,89,bGc,zwc);_.Jd=function Dwc(){gwc()};_.he=function Awc(a){throw BV(new Qpc);};_.ie=function Bwc(){return this.a.ie()};_.je=function Cwc(){return this.a.je()};_.ke= function Ewc(a){throw BV(new Qpc);};var dU=ync(410);_V(266,1,SFc,Lwc);_.getOrDefault=function Swc(a,b){var c;return c=this.d.Xd(a),c==null&&!this.d.containsKey(a)?b:c};_.putIfAbsent=function Ywc(a,b){var c;return c=this.d.Xd(a),c!=null?c:Jwc()};_.replace=function $wc(a,b){return this.d.containsKey(a)?Jwc():null};_.clear=function Mwc(){throw BV(new Qpc);};_.containsKey=function Nwc(a){return this.d.containsKey(a)};_.containsValue=function Owc(a){return Fwc(this,a)};_.Wd=function Pwc(){return Gwc(this)}; _.Ad=function Qwc(a){return Hwc(this,a)};_.Xd=function Rwc(a){return this.d.Xd(a)};_.Cd=function Twc(){return rb(this.d)};_.isEmpty=function Uwc(){return this.d.isEmpty()};_.keySet=function Vwc(){return Iwc(this)};_.put=function Wwc(a,b){return Jwc()};_.putAll=function Xwc(a){throw BV(new Qpc);};_.remove=function Zwc(a){throw BV(new Qpc);};_.size=function _wc(){return this.d.size()};_.Dd=function axc(){return eW(this.d)};_.values=function bxc(){return Kwc(this)};var iU=ync(266);_V(170,225,YFc,cxc); _.Ad=function dxc(a){return nb(this.b,a)};_.Cd=function exc(){return rb(this.b)};var kU=ync(170);_V(626,170,YFc,ixc);_.contains=function jxc(a){return fxc(this,a)};_.containsAll=function kxc(a){return this.b.containsAll(a)};_.Od=function lxc(){var a;a=this.b.Od();return new oxc(a)};_.toArray=function mxc(){var a;a=this.b.toArray();hxc(a,a.length);return a};_.Pd=function nxc(a){return gxc(this,a)};var hU=ync(626);_V(628,1,CFc,oxc);_.Id=function qxc(){return new sxc(this.a.Id())};_.Hd=function pxc(){return this.a.Hd()}; _.Jd=function rxc(){throw BV(new Qpc);};var fU=ync(628);_V(409,1,WFc,sxc);_.Ad=function txc(a){return this.a.Ad(a)};_.ce=function uxc(){return this.a.ce()};_.de=function vxc(){return this.a.de()};_.Cd=function wxc(){return this.a.Cd()};_.ee=function xxc(a){throw BV(new Qpc);};_.Dd=function yxc(){return eW(this.a)};var gU=ync(409);_V(271,270,aGc,zxc);var jU=ync(271);_V(627,266,SFc,Axc);_.Ad=function Bxc(a){return Ai(this.a,a)};_.Cd=function Cxc(){return Yuc(new rCc(this.a))};var lU=ync(627);_V(272, 170,cGc,Dxc);_.Ad=function Exc(a){return nb(this.a,a)};_.Cd=function Fxc(){return rb(this.a)};var mU=ync(272);var Gxc,Hxc,Ixc;_V(429,1,QIc,Lxc);_.Pe=function Mxc(a,b){return SEc(a),Ymc(a,(SEc(b),b))};_.Ad=function Nxc(a){return this===a};_.Re=function Oxc(){return Jxc(),Ixc};var nU=ync(429);_V(691,1,QIc,Pxc);_.Pe=function Qxc(a,b){return SEc(b),Ymc(b,(SEc(a),a))};_.Ad=function Rxc(a){return this===a};_.Re=function Sxc(){return Jxc(),Hxc};var oU=ync(691);_V(164,1,QIc,Txc);_.Ad=function Vxc(a){return this=== a};_.Pe=function Uxc(a,b){return this.a.Pe(b,a)};_.Re=function Wxc(){return this.a};var pU=ync(164);_V(180,34,CGc,$xc);var qU=ync(180);_V(287,1,{3:1,22:1,287:1},_xc);_.Td=function ayc(a){return qoc(HV(this.a.getTime()),HV(a.a.getTime()))};_.Ad=function byc(a){return cE(a,287)&&GV(HV(this.a.getTime()),HV(a.a.getTime()))};_.Cd=function cyc(){var a;a=HV(this.a.getTime());return RV(TV(a,NV(a,32)))};_.Dd=function eyc(){var a,b,c;c=-this.a.getTimezoneOffset();a=(c>=0?"+":"")+(c/60|0);b=(c<0?-c:c)%60<10? "0"+(c<0?-c:c)%60:""+(c<0?-c:c)%60;return(hyc(),fyc)[this.a.getDay()]+" "+gyc[this.a.getMonth()]+" "+dyc(this.a.getDate())+" "+dyc(this.a.getHours())+":"+dyc(this.a.getMinutes())+":"+dyc(this.a.getSeconds())+" GMT"+a+b+" "+this.a.getFullYear()};var rU=ync(287);var fyc,gyc;_V(236,938,{236:1,49:1},myc,nyc,oyc);_.put=function uyc(a,b){return jyc(this,a,b)};_.clear=function pyc(){iyc(this)};_.containsKey=function qyc(a){return Pyc(this.a,a)};_.containsValue=function ryc(a){var b,c;for(c=new azc(this.a);c.a< c.c.a.length;){b=_yc(c);if(zBc(a,this.b[b.f]))return true}return false};_.Wd=function syc(){return new yyc(this)};_.Xd=function tyc(a){return Pyc(this.a,a)?this.b[a.f]:null};_.remove=function vyc(a){return kyc(this,a)};_.size=function wyc(){return this.a.c};var vU=ync(236);_V(338,918,YFc,yyc);_.clear=function zyc(){iyc(this.a)};_.contains=function Ayc(a){return xyc(this,a)};_.Od=function Byc(){return new Eyc(this.a)};_.remove=function Cyc(a){var b;if(xyc(this,a)){b=a.ce();kyc(this.a,b);return true}return false}; _.size=function Dyc(){return this.a.a.c};var tU=ync(338);_V(339,1,CFc,Eyc);_.Id=function Gyc(){return this.b=_yc(this.a),new Iyc(this.c,this.b)};_.Hd=function Fyc(){return $yc(this.a)};_.Jd=function Hyc(){WEc(!!this.b);kyc(this.c,this.b);this.b=null};var sU=ync(339);_V(340,948,WFc,Iyc);_.ce=function Jyc(){return this.a};_.de=function Kyc(){return this.b.b[this.a.f]};_.ee=function Lyc(a){return lyc(this.b,this.a.f,a)};var uU=ync(340);_V(953,918,YFc);var yU=ync(953);_V(327,953,YFc,Tyc);_.add=function Uyc(a){return Nyc(this, a)};_.contains=function Vyc(a){return Pyc(this,a)};_.Od=function Wyc(){return new azc(this)};_.remove=function Xyc(a){return Ryc(this,a)};_.size=function Yyc(){return this.c};_.c=0;var xU=ync(327);_V(284,1,CFc,azc);_.Id=function czc(){return _yc(this)};_.Hd=function bzc(){return $yc(this)};_.Jd=function dzc(){WEc(this.b!=-1);this.c.b[this.b]=null;--this.c.c;this.b=-1};_.a=-1;_.b=-1;var wU=ync(284);_V(35,192,UFc,ezc,fzc,gzc);_.Fj=function hzc(a,b){return iE(a)===iE(b)||a!=null&&nb(a,b)};_.Gj=function izc(a){var b; b=rb(a);return b|0};var zU=ync(35);_V(36,918,rOc,mzc,nzc,ozc);_.add=function qzc(a){return jzc(this,a)};_.clear=function rzc(){this.a.clear()};_.contains=function szc(a){return kzc(this,a)};_.isEmpty=function tzc(){return this.a.size()==0};_.Od=function uzc(){var a;return a=(new mrc(this.a)).a.Wd().Od(),new trc(a)};_.remove=function vzc(a){return lzc(this,a)};_.size=function wzc(){return this.a.size()};var AU=ync(36);_V(176,192,{3:1,176:1,49:1},xzc);_.Ad=function yzc(a){var b,c,d,e,f;if(a===this)return true; if(!cE(a,49))return false;e=a;if(this.d.c+this.e.c!=e.size())return false;for(c=e.Wd().Od();c.Hd();){b=c.Id();d=b.ce();f=b.de();if(!(hE(d)?pqc(this,d):!!Ezc(this.d,d)))return false;if(iE(f)!==iE(hE(d)?oqc(this,d):Li(Ezc(this.d,d))))return false}return true};_.Fj=function zzc(a,b){return iE(a)===iE(b)};_.Gj=function Azc(a){return aFc(a)};_.Cd=function Bzc(){var a,b,c;c=0;for(b=new Pqc((new Hqc(this)).a);b.b;){a=Oqc(b);c+=KEc(a.ce());c+=KEc(a.de())}return c};var BU=ync(176);_V(654,1,RFc,Hzc);_.Od=function Izc(){return new Jzc(this)}; _.c=0;var DU=ync(654);_V(423,1,CFc,Jzc);_.Id=function Lzc(){return this.d=this.a[this.c++],this.d};_.Hd=function Kzc(){var a;if(this.c0};_.Jd=function lCc(){Vqc(this.a);SBc(this.c,this.b);this.b=null};var XU=ync(321);_V(281,1,CFc,mCc,nCc);_.Id=function pCc(){return this.b=Uqc(this.a)};_.Hd=function oCc(){return Tqc(this.a)};_.Jd=function qCc(){Vqc(this.a);SBc(this.c,this.b);this.b=null};var YU=ync(281);_V(425,282,YFc,rCc);_.clear=function sCc(){JBc(this.a)};var ZU=ync(425);_V(198,169,{224:1,169:1,50:1,198:1},tCc);_.b=false;var $U=ync(198);_V(322,1,{},uCc);_.Dd=function vCc(){return"State: mv="+ this.c+" value="+this.d+" done="+this.a+" found="+this.b};_.a=false;_.b=false;_.c=false;var _U=ync(322);_V(675,952,SFc,yCc);_.Hj=function zCc(){return Kxc(this.c.a)};_.Ij=function ACc(){return new iCc(this.c,this.f,this.b,this.a,this.e,this.d)};_.Kj=function BCc(){return new nCc(this.c,this.f,this.b,this.a,this.e,this.d)};_.Wd=function CCc(){return new isc(this)};_.Lj=function DCc(a){return wCc(this,KBc(this.c,a))};_.put=function ECc(a,b){if(!NBc(this.c,this.f,a,this.b,this.a,this.e,this.d))throw BV(new dhb(a+ " outside the range "+this.b+" to "+this.e));return QBc(this.c,a,b)};_.remove=function FCc(a){var b;b=a;if(!NBc(this.c,this.f,b,this.b,this.a,this.e,this.d))return null;return RBc(this.c,b)};_.Mj=function GCc(a){return xCc(this,a.ce())&&SBc(this.c,a)};_.size=function HCc(){var a,b,c;this.a?b=LBc(this.c,this.b,true):b=LBc(this.c,this.b,false);if(!(!!b&&xCc(this,b.d)?b:null))return 0;a=0;for(c=new nCc(this.c,this.f,this.b,this.a,this.e,this.d);Tqc(c.a);c.b=Uqc(c.a))++a;return a};_.a=false;_.d=false; var eV=ync(675);_V(145,13,tOc,NCc);_.Oj=function OCc(){return false};_.Pj=function PCc(){return false};var ICc,JCc,KCc,LCc;var dV=znc(145,YS,QCc);_V(676,145,tOc,RCc);_.Pj=function SCc(){return true};var aV=znc(676,dV,null);_V(677,145,tOc,TCc);_.Oj=function UCc(){return true};_.Pj=function VCc(){return true};var bV=znc(677,dV,null);_V(678,145,tOc,WCc);_.Oj=function XCc(){return true};var cV=znc(678,dV,null);_V(94,918,{3:1,16:1,18:1,211:1,29:1,128:1},$Cc,_Cc,aDc,bDc);_.add=function cDc(a){return YCc(this, a)};_.clear=function dDc(){this.a.clear()};_.contains=function eDc(a){return Src(this.a,a)};_.Od=function fDc(){var a;return a=(new nsc(this.a)).a.Wd().b.Kj(),new tsc(a)};_.remove=function gDc(a){return ZCc(this,a)};_.size=function hDc(){return this.a.size()};var gV=ync(94);_V(214,938,SFc,mDc,nDc);_.containsKey=function oDc(a){return iDc(this,a)};_.containsValue=function pDc(a){if(a==null)throw BV(new Eoc);return lqc(this.a,a)};_.Wd=function qDc(){return new Hqc(this.a)};_.Xd=function rDc(a){return jDc(this, a)};_.put=function sDc(a,b){return kDc(this,a,b)};_.putIfAbsent=function tDc(a,b){return lDc(this,a,b)};_.remove=function uDc(a){if(a==null)throw BV(new Eoc);return sqc(this.a,a)};_.replace=function vDc(a,b){if(b==null)throw BV(new Eoc);else return iDc(this,a)?kDc(this,a,b):null};var hV=ync(214);_V(279,1,{279:1});var iV=ync(279);_V(951,1,AFc);_.Og=function BDc(){return"DUMMY"};_.Ej=function CDc(){return-1};_.Dd=function DDc(){return this.Og()};var wDc,xDc,yDc,zDc;var nV=ync(951);_V(671,951,AFc,EDc); _.Og=function FDc(){return"FINE"};_.Ej=function GDc(){return 500};var jV=ync(671);_V(672,951,AFc,HDc);_.Og=function IDc(){return"INFO"};_.Ej=function JDc(){return 800};var kV=ync(672);_V(673,951,AFc,KDc);_.Og=function LDc(){return"SEVERE"};_.Ej=function MDc(){return 1E3};var lV=ync(673);_V(674,951,AFc,NDc);_.Og=function ODc(){return TGc};_.Ej=function PDc(){return 900};var mV=ync(674);_V(661,1,{},TDc);var QDc;var oV=ync(661);_V(727,1,AFc,VDc);_.c=null;var pV=ync(727);_V(316,1,{316:1},fEc);_.b=null; _.e=false;var qV=ync(316);_V(428,279,{279:1},iEc);var rV=ync(428);_V(738,1,{},mEc);_.a=0;_.b=false;var sV=ync(738);_V(444,1,{444:1},oEc);var tV=ync(444);_V(1016,1,{});_V(743,1,{},EEc);var uV=ync(743);_V(407,186,oOc);var xV=ync(407);_V(408,407,oOc,HEc);var vV=ync(408);_V(615,407,oOc,JEc);var wV=ync(615);var _Ec=0;var bFc,cFc=0,dFc;var lE=Bnc("C");var mE=Bnc("I");var yV=Bnc("Z");var nE=Bnc("J");var kE=Bnc("B");gxb();_=dW(sLc);_.transpile=jxb;_=dW("com.google.common.base.Platform");_.stringIsNullOrEmpty= Qd;_=dW("com.google.debugging.sourcemap.SourceMapObjectParserJs");_.get=bC;Vmc();_=dW("java.lang.Boolean");_.$isInstance=Wmc;_=dW("java.lang.CharSequence");_.$isInstance=Zmc;_=dW("java.lang.Comparable");_.$isInstance=Nnc;_=dW("java.lang.Double");_.$isInstance=Vnc;_=dW("java.lang.Number");_.$isInstance=Pnc;_=dW("java.lang.String");_.$isInstance=apc;_=dW("java.lang.Throwable");_.of=tA;var iFc=(GC(),JC);var gwtOnLoad=gwtOnLoad=XV;VV(gW);YV("permProps",[[[GIc,LHc],[zOc,"gecko1_8"]],[[GIc,LHc],[zOc,"ie10"]], [[GIc,LHc],[zOc,"ie8"]],[[GIc,LHc],[zOc,"ie9"]],[[GIc,LHc],[zOc,"safari"]]]);this["$gwtExport"]=$wnd;$wnd=this;typeof gwtOnLoad==="function"&&gwtOnLoad()})();