diff --git a/demos/export-to-drive/build.sh b/demos/export-to-drive/build.sh old mode 100644 new mode 100755 diff --git a/demos/export-to-drive/index.html b/demos/export-to-drive/index.html old mode 100644 new mode 100755 diff --git a/demos/trendy-lights/build.sh b/demos/trendy-lights/build.sh old mode 100644 new mode 100755 diff --git a/demos/wmts/app.yaml b/demos/wmts/app.yaml index 2d3fad476..8fb6a58e7 100644 --- a/demos/wmts/app.yaml +++ b/demos/wmts/app.yaml @@ -1,4 +1,3 @@ - runtime: python27 api_version: 1 threadsafe: true @@ -20,8 +19,6 @@ builtins: handlers: - - ################################################################################ # App entry points ################################################################################ diff --git a/javascript/build/ee_api_js.js b/javascript/build/ee_api_js.js index 264926f6a..b684d97a0 100644 --- a/javascript/build/ee_api_js.js +++ b/javascript/build/ee_api_js.js @@ -44,29 +44,29 @@ var Ha=function(a,b,c,d){var e="Assertion failed";if(c){e+=": "+c;var f=d}else a f[g];b.call(void 0,h,g,a)&&(d[e++]=h)}return d},Ra=Array.prototype.map?function(a,b,c){z(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f="string"===typeof a?a.split(""):a,g=0;g=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)}function bb(a){var b=[];if(0>a-0)return[];for(var c=0;c/g,hb=/"/g,ib=/'/g,jb=/\x00/g,kb=/[\x00&<>"']/,lb=function(a,b){return ab?1:0};var mb;a:{var nb=r.navigator;if(nb){var ob=nb.userAgent;if(ob){mb=ob;break a}}mb=""}var pb=function(a){return-1!=mb.indexOf(a)};function qb(a,b,c){for(var d in a)b.call(c,a[d],d,a)}function rb(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function sb(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d}function tb(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1}function ub(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function vb(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}function wb(a,b){for(var c in a)if(a[c]==b)return!0;return!1} -function xb(a){var b=yb,c;for(c in b)if(a.call(void 0,b[c],c,b))return c}function zb(a){for(var b in a)return!1;return!0}function Ab(a,b){b in a&&delete a[b]}function Bb(a){var b={},c;for(c in a)b[c]=a[c];return b} -function Cb(a){if(!a||"object"!==typeof a)return a;if("function"===typeof a.clone)return a.clone();if("undefined"!==typeof Map&&a instanceof Map)return new Map(a);if("undefined"!==typeof Set&&a instanceof Set)return new Set(a);var b=Array.isArray(a)?[]:"function"!==typeof ArrayBuffer||"function"!==typeof ArrayBuffer.isView||!ArrayBuffer.isView(a)||a instanceof DataView?{}:new a.constructor(a.length),c;for(c in a)b[c]=Cb(a[c]);return b}var Db="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); -function Eb(a,b){for(var c,d,e=1;e"}else f=void 0===a?"undefined":null===a?"null":typeof a;Ia("Argument is not a %s (or a non-Element, non-Location mock); got: %s", -"HTMLScriptElement",f)}a.src=Ob(b);a:{b=(a.ownerDocument&&a.ownerDocument.defaultView||r).document;if(b.querySelector&&(b=b.querySelector("script[nonce]"))&&(b=b.nonce||b.getAttribute("nonce"))&&Zb.test(b))break a;b=""}b&&a.setAttribute("nonce",b)},Zb=/^[\w+/_-]+[=]{0,2}$/;var ac=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1")&&(a=a.replace(gb,">")),-1!=a.indexOf('"')&&(a=a.replace(hb,""")),-1!=a.indexOf("'")&&(a=a.replace(ib,"'")),-1!=a.indexOf("\x00")&&(a=a.replace(jb,"�")));return a},cc=function(a){var b=1;a= -a.split(":");for(var c=[];0parseFloat(nc)){mc=String(pc);break a}}mc=nc} -var qc=mc,ec={},rc=function(a){return fc(a,function(){for(var b=0,c=db(String(qc)).split("."),d=db(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)}function bb(a){var b=[];if(0>a-0)return[];for(var c=0;c/g,jb=/"/g,kb=/'/g,lb=/\x00/g,mb=/[\x00&<>"']/,nb=function(a,b){return ab?1:0};var ob;a:{var pb=r.navigator;if(pb){var qb=pb.userAgent;if(qb){ob=qb;break a}}ob=""}var rb=function(a){return-1!=ob.indexOf(a)};function sb(a,b,c){for(var d in a)b.call(c,a[d],d,a)}function tb(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ub(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d}function vb(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1}function wb(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function xb(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}function yb(a,b){for(var c in a)if(a[c]==b)return!0;return!1} +function zb(a){var b=Ab,c;for(c in b)if(a.call(void 0,b[c],c,b))return c}function Bb(a){for(var b in a)return!1;return!0}function Cb(a,b){b in a&&delete a[b]}function Db(a){var b={},c;for(c in a)b[c]=a[c];return b} +function Eb(a){if(!a||"object"!==typeof a)return a;if("function"===typeof a.clone)return a.clone();if("undefined"!==typeof Map&&a instanceof Map)return new Map(a);if("undefined"!==typeof Set&&a instanceof Set)return new Set(a);var b=Array.isArray(a)?[]:"function"!==typeof ArrayBuffer||"function"!==typeof ArrayBuffer.isView||!ArrayBuffer.isView(a)||a instanceof DataView?{}:new a.constructor(a.length),c;for(c in a)b[c]=Eb(a[c]);return b}var Fb="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); +function Hb(a,b){for(var c,d,e=1;e"}else f=void 0===a?"undefined":null===a?"null":typeof a;Ia("Argument is not a %s (or a non-Element, non-Location mock); got: %s", +"HTMLScriptElement",f)}a.src=Qb(b);a:{b=(a.ownerDocument&&a.ownerDocument.defaultView||r).document;if(b.querySelector&&(b=b.querySelector("script[nonce]"))&&(b=b.nonce||b.getAttribute("nonce"))&&ac.test(b))break a;b=""}b&&a.setAttribute("nonce",b)},ac=/^[\w+/_-]+[=]{0,2}$/;var cc=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1")&&(a=a.replace(ib,">")),-1!=a.indexOf('"')&&(a=a.replace(jb,""")),-1!=a.indexOf("'")&&(a=a.replace(kb,"'")),-1!=a.indexOf("\x00")&&(a=a.replace(lb,"�")));return a},ec=function(a){var b=1;a= +a.split(":");for(var c=[];0parseFloat(pc)){oc=String(rc);break a}}oc=pc} +var sc=oc,gc={},tc=function(a){return hc(a,function(){for(var b=0,c=fb(String(sc)).split("."),d=fb(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f>>0),Mc=function(a){z(a,"Listener can not be null.");if("function"===typeof a)return a;z(a.handleEvent,"An object listener must have handleEvent method.");a[Uc]||(a[Uc]=function(b){return a.handleEvent(b)}); return a[Uc]};var A=function(){Da.call(this);this.La=new Ec(this);this.Fj=this;this.Ff=null};x(A,Da);A.prototype[zc]=!0;k=A.prototype;k.addEventListener=function(a,b,c,d){Lc(this,a,b,c,d)};k.removeEventListener=function(a,b,c,d){Sc(this,a,b,c,d)}; -k.dispatchEvent=function(a){Vc(this);var b=this.Ff;if(b){var c=[];for(var d=1;b;b=b.Ff)c.push(b),z(1E3>++d,"infinite loop")}b=this.Fj;d=a.type||a;if("string"===typeof a)a=new y(a,b);else if(a instanceof y)a.target=a.target||b;else{var e=a;a=new y(d,b);Eb(a,e)}e=!0;if(c)for(var f=c.length-1;!a.fd&&0<=f;f--){var g=a.currentTarget=c[f];e=Wc(g,d,!0,a)&&e}a.fd||(g=a.currentTarget=b,e=Wc(g,d,!0,a)&&e,a.fd||(e=Wc(g,d,!1,a)&&e));if(c)for(f=0;!a.fd&&f++d,"infinite loop")}b=this.Fj;d=a.type||a;if("string"===typeof a)a=new y(a,b);else if(a instanceof y)a.target=a.target||b;else{var e=a;a=new y(d,b);Hb(a,e)}e=!0;if(c)for(var f=c.length-1;!a.fd&&0<=f;f--){var g=a.currentTarget=c[f];e=Wc(g,d,!0,a)&&e}a.fd||(g=a.currentTarget=b,e=Wc(g,d,!0,a)&&e,a.fd||(e=Wc(g,d,!1,a)&&e));if(c)for(f=0;!a.fd&&f=a.length)throw Zc;if(b in a)return a[b++];b++}};c.next=c.ac.bind(c);return c}throw Error("Not implemented");},bd=function(a,b){if(ta(a))try{Pa(a,b,void 0)}catch(c){if(c!==Zc)throw c;}else{a=ad(a);try{for(;;)b.call(void 0,a.next(),void 0,a)}catch(c){if(c!==Zc)throw c;}}};var gd=function(a){if(a instanceof cd||a instanceof dd||a instanceof ed)return a;if("function"==typeof a.next)return new cd(function(){return fd(a)});if("function"==typeof a[Symbol.iterator])return new cd(function(){return a[Symbol.iterator]()});if("function"==typeof a.Ga)return new cd(function(){return fd(a.Ga())});throw Error("Not an iterator or iterable.");},fd=function(a){if(!(a instanceof $c))return a;var b=!1;return{next:function(){for(var c;!b;)try{c=a.next();break}catch(d){if(d!==Zc)throw d; @@ -75,11 +75,11 @@ var ed=function(a){cd.call(this,function(){return a});this.Xc=a};q(ed,cd);ed.pro k.Lc=function(a){for(var b=0;b2*this.size&&id(this),!0):!1};var id=function(a){if(a.size!=a.J.length){for(var b=0,c=0;b=d.J.length)throw Zc;var f=d.J[b++];return a?f:d.u[f]};e.next=e.ac.bind(e);return e};k.sb=function(a){this.size=a};var jd=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var ld=function(a){if(a.S&&"function"==typeof a.S)a=a.S();else if(ta(a)||"string"===typeof a)a=a.length;else{var b=0,c;for(c in a)b++;a=b}return a},md=function(a){if(a.T&&"function"==typeof a.T)return a.T();if("undefined"!==typeof Map&&a instanceof Map||"undefined"!==typeof Set&&a instanceof Set)return Array.from(a.values());if("string"===typeof a)return a.split("");if(ta(a)){for(var b=[],c=a.length,d=0;d=d.J.length)throw Zc;var f=d.J[b++];return a?f:d.u[f]};e.next=e.ac.bind(e);return e};k.sb=function(a){this.size=a};var jd=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var ld=function(a){if(a.S&&"function"==typeof a.S)a=a.S();else if(ta(a)||"string"===typeof a)a=a.length;else{var b=0,c;for(c in a)b++;a=b}return a},md=function(a){if(a.T&&"function"==typeof a.T)return a.T();if("undefined"!==typeof Map&&a instanceof Map||"undefined"!==typeof Set&&a instanceof Set)return Array.from(a.values());if("string"===typeof a)return a.split("");if(ta(a)){for(var b=[],c=a.length,d=0;dc)return!1;!(b instanceof qd)&&5c)return!1;!(b instanceof qd)&&5e&&(e+=d);return[a.dk,c,e,b.y].join("/")};vd.prototype.Sc=function(){return this.Eb.length};var xd=function(a){y.call(this,"tileevent");this.count=a};x(xd,y);var yd=function(){},zd=new yd;function Ad(a){return Object.assign({R:{},Fk:{},keys:[],Da:{},A:{},K:{},Vg:!1},a)}var C=function(){this.h={}},E=function(a,b){return a.h.hasOwnProperty(b)?a.h[b]:null},F=function(a,b){return null!=a.h[b]};function Bd(a,b){return E(b,a)}function Cd(a,b,c){b[a]=c}function Dd(){return{}}function Ed(a,b){var c=new a;return null==b?c:Fd(b,Gd,Hd,Id,a)}function Gd(a,b){return b[a]}function Hd(a,b,c){b.h[a]=c} function Id(a){if(null==a)throw Error("Cannot deserialize, target constructor was null.");return new a} function Fd(a,b,c,d,e){e=d(e);for(var f=Jd(a,e),g=f.R||{},h=f.A||{},m=f.Da||{},p={},v=n(f.keys||[]),B=v.next();!B.done;p={Gc:p.Gc},B=v.next()){B=B.value;var D=b(B,a);if(null!=D){var R=void 0;if(g.hasOwnProperty(B)){if(f.Vg&&0===D.length)continue;R=Kd(D,b,c,d,!0,!0,g[B])}else if(h.hasOwnProperty(B))R=Kd(D,b,c,d,!1,!0,h[B]);else if(m.hasOwnProperty(B))p.Gc=m[B],R=p.Gc.qa?D.map(function(X){return function(U){return Ld(U,X.Gc,b,c,d)}}(p)):Ld(D,p.Gc,b,c,d);else if(Array.isArray(D)){if(f.Vg&&0===D.length)continue; @@ -356,14 +356,14 @@ Sg.prototype.create=function(a,b,c,d){c=void 0===c?{}:c;d=void 0===d?{}:d;this.j var Tg=function(a){this.m="v1alpha";this.j=new je(a,null)},Ug=function(a,b,c){var d=void 0===d?{}:d;var e=void 0===e?{}:e;a.j.C(b,/^projects\/[^/]+$/);return H(a.j,{body:c,B:"POST",D:"earthengine.projects.value.compute",path:"/"+a.m+"/"+b+"/value:compute",s:G(d,e),G:hf})},Vg=function(a){this.m="v1alpha";this.j=new je(a,null)}; Vg.prototype.Na=function(a,b){var c=void 0===c?{}:c;var d=void 0===d?{}:d;this.j.C(a,/^projects\/[^/]+$/);return H(this.j,{body:b,B:"POST",D:"earthengine.projects.video.export",path:"/"+this.m+"/"+a+"/video:export",s:G(c,d),G:pg})};var Wg=function(a){this.m="v1alpha";this.j=new je(a,null)}; Wg.prototype.Na=function(a,b){var c=void 0===c?{}:c;var d=void 0===d?{}:d;this.j.C(a,/^projects\/[^/]+$/);return H(this.j,{body:b,B:"POST",D:"earthengine.projects.videoMap.export",path:"/"+this.m+"/"+a+"/videoMap:export",s:G(c,d),G:pg})};var Xg=function(a){this.m="v1alpha";this.j=new je(a,null)}; -Xg.prototype.create=function(a,b,c,d){c=void 0===c?{}:c;d=void 0===d?{}:d;this.j.C(a,/^projects\/[^/]+$/);return H(this.j,{body:b,B:"POST",D:"earthengine.projects.videoThumbnails.create",path:"/"+this.m+"/"+a+"/videoThumbnails",s:G(c,d),G:Eg})};var Yg=function(){};Yg.prototype.send=function(a,b){fe(a);return(void 0).then(function(c){return b?Ed(b,c):c})};var Zg=function(a,b){this.Zj=100;this.Nj=a;this.mk=b;this.Rd=0;this.pa=null};Zg.prototype.get=function(){if(0");c=c.join("")}c=fh(a,c);d&&("string"===typeof d?c.className=d:Array.isArray(d)?c.className=d.join(" "):ch(c,d));2");c=c.join("")}c=fh(a,c);d&&("string"===typeof d?c.className=d:Array.isArray(d)?c.className=d.join(" "):ch(c,d));2\r\n\r\n"+m+"\r\n"}).join("")+"--batch_EARTHENGINE_batch--\r\n",f=function(g){var h={};a.forEach(function(m){var p=n(m);m=p.next().value;p=n(p.next().value);p.next();p=p.next().value;null!=g[m]&&(h[m]= @@ -410,14 +410,14 @@ Ed(p,g[m]))});return b?b(h):h};return this.callback?(cj(d,null,function(g,h){ret dj.prototype.send=function(a,b){var c=[a.B+" "+a.path+" HTTP/1.1"];c.push("Content-Type: application/json; charset=utf-8");var d=fj();null!=d&&c.push("Authorization: "+d);a=a.body?JSON.stringify(a.body):"";return[c.join("\r\n")+"\r\n\r\n"+a,b]}; var gj=function(a,b,c){a=n(b.split("--"+a.split("; boundary=")[1]));for(b=a.next();!b.done;b=a.next())if(b=b.value.split("\r\n\r\n"),!(3>b.length)){var d=b[0].match(/\r\nContent-ID: ]*)>/)[1],e=Number(b[1].match(/^HTTP\S*\s(\d+)\s/)[1]);c(d,e,b.slice(2).join("\r\n\r\n"))}},aj=function(){var a=hj.replace(/\/api$/,"");return"window"in r&&!a.match(/^https?:\/\/content-/)?a.replace(/^(https?:\/\/)(.*\.googleapis\.com)$/,"$1content-$2"):a},jj=function(a,b,c){var d=[];a&&(d=d.concat(ij)); b&&d.push("https://www.googleapis.com/auth/devstorage.read_write");a=d=d.concat(c);c=b=0;for(var e={};cf)break;v++}return Ej(B.status,function(D){try{return B.getResponseHeader(D)}catch(R){return null}},B.responseText,g,void 0,e,d)},Cj=function(a,b,c,d,e,f){var g=0,h={url:a,method:c,content:d,headers:e},m=wj,p=null!=f?f:10;h.callback=function(v){v= +"&":"?",a+=p);e=a.startsWith("/")?hj+a:a;if(c)return Bj.push(Cj(e,c,d,m,h,f)),Dj.bf(),null;p=function(D,R){this.setRequestHeader&&this.setRequestHeader(R,D)};var v=0;for(f=null!=f?f:5;;){var B=Ii(Gi);B.open(d,e,!1);sb(h,p,B);B.send(m);if(429!=B.status||v>f)break;v++}return Ej(B.status,function(D){try{return B.getResponseHeader(D)}catch(R){return null}},B.responseText,g,void 0,e,d)},Cj=function(a,b,c,d,e,f){var g=0,h={url:a,method:c,content:d,headers:e},m=wj,p=null!=f?f:10;h.callback=function(v){v= v.target;if(429==v.getStatus()&&gX||300<=X)return"Server returned HTTP code: "+X+" for "+g+" "+f},v;b=b("Content-Type")||"application/json";d=b.replace(/;.*/,"");if("application/json"===d||"text/json"===d)if(b=m(c),b.parsed){var B=b.parsed;void 0===B&&(v="Malformed response: "+ c)}else v=b;else if("multipart/mixed"===d){B={};var D=[];gj(b,c,function(X,U,Gb){Gb=m(Gb);Gb.parsed&&(B[X]=Gb.parsed);(U=(Gb.parsed?"":Gb)||p(U))&&D.push(X+": "+U)});D.length&&(v=D.join("\n"))}else var R="Response was unexpectedly not JSON, but "+d;v=v||p(a)||R;if(e)return e(B,v),null;if(!v)return B;throw Error(v);},nj=function(a){var b=function(){r.gapi.config.update("client/cors",!0);kj||(kj=r.gapi.auth.authorize);a()};if(t(r.gapi)&&t(r.gapi.auth)&&"function"===typeof r.gapi.auth.authorize)b(); -else{for(var c=Date.now().toString(36);c in r;)c+="_";r[c]=function(){delete r[c];b()};fi(Tb({onload:c}))}},oj=function(a,b,c){if(c.access_token){b=c.token_type+" "+c.access_token;if(c.expires_in||0===c.expires_in){c=900*c.expires_in;var d=setTimeout(pj,.9*c);void 0!==d.unref&&d.unref();qj=Date.now()+c}sj=b;a&&a()}else b&&b(c.error||"Unknown error.")},bj=function(a){var b=new Ud;a=n(Object.entries(a));for(var c=a.next();!c.done;c=a.next()){var d=n(c.value);c=d.next().value;d=d.next().value;b.set(c, -d)}return b},Bj=[],Dj=new Oh(function(){var a=Bj.shift();if(a){var b=a.url,c=a.callback,d=a.method,e=a.content;a=a.headers;var f=Fj,g=new Ji;Mi.push(g);c&&g.bb("complete",c);g.ad("ready",g.Lj);f&&(g.Ec=Math.max(0,f));g.send(b,d,e,a)}0==Bj.length||Dj.bf()},350),hj=null,uj=null,vj=null,Aj=null,zj=Fb,sj=null,qj=null,lj=null,mj=[],kj=null,ij=["https://www.googleapis.com/auth/earthengine","https://www.googleapis.com/auth/cloud-platform"],Pb=new Kb(Ib,"https://apis.google.com/js/client.js?onload=%{onload}"), +else{for(var c=Date.now().toString(36);c in r;)c+="_";r[c]=function(){delete r[c];b()};fi(Vb({onload:c}))}},oj=function(a,b,c){if(c.access_token){b=c.token_type+" "+c.access_token;if(c.expires_in||0===c.expires_in){c=900*c.expires_in;var d=setTimeout(pj,.9*c);void 0!==d.unref&&d.unref();qj=Date.now()+c}sj=b;a&&a()}else b&&b(c.error||"Unknown error.")},bj=function(a){var b=new Ud;a=n(Object.entries(a));for(var c=a.next();!c.done;c=a.next()){var d=n(c.value);c=d.next().value;d=d.next().value;b.set(c, +d)}return b},Bj=[],Dj=new Oh(function(){var a=Bj.shift();if(a){var b=a.url,c=a.callback,d=a.method,e=a.content;a=a.headers;var f=Fj,g=new Ji;Mi.push(g);c&&g.bb("complete",c);g.ad("ready",g.Lj);f&&(g.Ec=Math.max(0,f));g.send(b,d,e,a)}0==Bj.length||Dj.bf()},350),hj=null,uj=null,vj=null,Aj=null,zj=Ib,sj=null,qj=null,lj=null,mj=[],kj=null,ij=["https://www.googleapis.com/auth/earthengine","https://www.googleapis.com/auth/cloud-platform"],Rb=new Mb(Kb,"https://apis.google.com/js/client.js?onload=%{onload}"), yj=null,tj=!1,Fj=0,wj=null;w("ee.api.ListAssetsResponse",mg);w("ee.api.EarthEngineAsset",sf);w("ee.api.ListImagesResponse",ng);w("ee.api.Image",Yf);w("ee.api.Operation",pg);var Gj=function(){},Hj=function(a){if(void 0===a||null===a)a=zd;return new Te({nb:a})},Ij=function(a){return new Te({Ua:a})},Jj=function(a){return new Te({Ia:new Se({values:a})})},Kj=function(a){return new Te({Ja:new pf({values:a})})},Lj=function(a,b){return new Te({Aa:new Rf({functionName:a,arguments:b})})},Mj=function(a,b){return new Te({Aa:new Rf({ab:a,arguments:b})})},Nj=function(a,b){return new Te({$a:new Qf({mc:a,body:b})})},Oj=function(a){if(!a)return"AUTO_JPEG_PNG";a=a.toUpperCase();switch(a){case "JPG":return"JPEG"; case "AUTO":return"AUTO_JPEG_PNG";case "TIF":case "TIFF":case "GEOTIF":case "GEOTIFF":return"GEO_TIFF";case "TF_RECORD":case "TFRECORD":return"TF_RECORD_IMAGE";case "NUMPY":return"NPY";case "ZIPPED_TIF":case "ZIPPED_TIFF":case "ZIPPED_GEOTIF":case "ZIPPED_GEOTIFF":return"ZIPPED_GEO_TIFF";case "ZIPPED_TIF_PER_BAND":case "ZIPPED_TIFF_PER_BAND":case "ZIPPED_GEOTIF_PER_BAND":case "ZIPPED_GEOTIFF_PER_BAND":return"ZIPPED_GEO_TIFF_PER_BAND";default:return a}},Pj=function(a){if(!a)return"CSV";a=a.toUpperCase(); switch(a){case "TF_RECORD":case "TFRECORD":return"TF_RECORD_TABLE";case "JSON":case "GEOJSON":return"GEO_JSON";default:return a}},Qj=function(a){if(!a)return"VERTICAL";a=a.toUpperCase();if("HORIZONTAL"!==a||"VERTICAL"!==a)throw Error('Orientation must be "horizontal" or "vertical"');return a},Rj=function(a){if(!a)return[];if("string"===typeof a)return a.split(",");if(Array.isArray(a))return a;throw Error("Invalid band list "+a);},Uj=function(a){var b=new zf,c=!1;"palette"in a&&(c=a.palette,b.dd="string"=== @@ -453,9 +453,9 @@ wk.prototype.update=function(a,b){void 0===b&&(b=a.length);for(var c=b-this.bloc wk.prototype.digest=function(){var a=Array((56>this.Jc?this.blockSize:2*this.blockSize)-this.Jc);a[0]=128;for(var b=1;bb;++b)for(var d=0;32>d;d+=8)a[c++]=this.X[b]>>>d&255;return a};var yk=function(a){this.qd="__ee_hash__";this.Nd=!1!==a;this.eb=[];this.za={};this.kg=[];this.Kd=new WeakMap};w("ee.Serializer",yk);var zk=new gi,Ak=new wk,Ck=function(a,b){return Bk(new yk(void 0!==b?b:!0),a)};w("ee.Serializer.encode",Ck);var Dk=function(a){return zk.xa(Ck(a))};w("ee.Serializer.toJSON",Dk);var Fk=function(a){return Ek(Ck(a,!1))};w("ee.Serializer.toReadableJSON",Fk); var Ek=function(a){return"JSON"in r?r.JSON.stringify(a,null," "):zk.xa(a)},Bk=function(a,b){b=a.Dd(b);a.Nd&&(b=t(b)&&"ValueRef"==b.type&&1==a.eb.length?a.eb[0][1]:{type:"CompoundValue",scope:a.eb,value:b},a.eb=[],Pa(a.kg,u(function(c){delete c[this.qd]},a)),a.kg=[],a.za={});return b}; yk.prototype.Dd=function(a){if(void 0===a)throw Error("Can't encode an undefined value.");var b=t(a)?a[this.qd]:null;if(this.Nd&&null!=b&&this.za[b])return{type:"ValueRef",value:this.za[b]};if(null===a||"boolean"===typeof a||"number"===typeof a||"string"===typeof a)return a;if(ua(a))return{type:"Invocation",functionName:"Date",arguments:{value:Math.floor(a.getTime())}};if(a instanceof Gj){var c=a.encode(u(this.Dd,this));if(!(Array.isArray(c)||t(c)&&"ArgumentRef"!=c.type))return c}else if(Array.isArray(a))c= -Ra(a,function(e){return this.Dd(e)},this);else if(t(a)&&"function"!==typeof a)c=sb(a,function(e){if("function"!==typeof e)return this.Dd(e)},this),Ab(c,this.qd),c={type:"Dictionary",value:c};else throw Error("Can't encode object: "+a);if(this.Nd){b=Gk(c);if(this.za[b])var d=this.za[b];else d=String(this.eb.length),this.eb.push([d,c]),this.za[b]=d;a[this.qd]=b;this.kg.push(a);return{type:"ValueRef",value:d}}return c}; +Ra(a,function(e){return this.Dd(e)},this);else if(t(a)&&"function"!==typeof a)c=ub(a,function(e){if("function"!==typeof e)return this.Dd(e)},this),Cb(c,this.qd),c={type:"Dictionary",value:c};else throw Error("Can't encode object: "+a);if(this.Nd){b=Gk(c);if(this.za[b])var d=this.za[b];else d=String(this.eb.length),this.eb.push([d,c]),this.za[b]=d;a[this.qd]=b;this.kg.push(a);return{type:"ValueRef",value:d}}return c}; var Gk=function(a){Ak.reset();Ak.update(zk.xa(a));return Ak.digest().toString()},Ik=function(a){return Fd(Hk(a),Bd,Cd,Dd)};w("ee.Serializer.encodeCloudApi",Ik); -var Hk=function(a){return Jk(new yk(!0),a)},Kk=function(a){a=Jk(new yk(!1),a);var b=a.values,c=function(d){if(!t(d))return d;var e=Array.isArray(d)?[]:{},f=d instanceof Object.getPrototypeOf(Te);d=n(Object.entries(f?d.h:d));for(var g=d.next();!g.done;g=d.next()){var h=n(g.value);g=h.next().value;h=h.next().value;f?null!==h&&(e[g]="functionDefinitionValue"===g&&null!=h.body?{argumentNames:h.mc,body:c(b[h.body])}:"functionInvocationValue"===g&&null!=h.ab?{arguments:sb(h.arguments,c),functionReference:c(b[h.ab])}: +var Hk=function(a){return Jk(new yk(!0),a)},Kk=function(a){a=Jk(new yk(!1),a);var b=a.values,c=function(d){if(!t(d))return d;var e=Array.isArray(d)?[]:{},f=d instanceof Object.getPrototypeOf(Te);d=n(Object.entries(f?d.h:d));for(var g=d.next();!g.done;g=d.next()){var h=n(g.value);g=h.next().value;h=h.next().value;f?null!==h&&(e[g]="functionDefinitionValue"===g&&null!=h.body?{argumentNames:h.mc,body:c(b[h.body])}:"functionInvocationValue"===g&&null!=h.ab?{arguments:ub(h.arguments,c),functionReference:c(b[h.ab])}: "constantValue"===g?h===zd?null:h:c(h)):e[g]=c(h)}return e};return a.result&&c(b[a.result])};w("ee.Serializer.encodeCloudApiPretty",Kk);var Lk=function(a){return zk.xa(Ik(a))};w("ee.Serializer.toCloudApiJSON",Lk);var Mk=function(a){return Ek(Kk(a))};w("ee.Serializer.toReadableCloudApiJSON",Mk); var Jk=function(a,b){try{var c=Nk(a,b),d=new Ok(c,a.eb,a.Nd),e=Pk(d,d.Vh);return new gf({result:e,values:d.Kh})}finally{a.Kd=new WeakMap,a.za={},a.eb=[]}},Nk=function(a,b){var c=function(e){var f=Gk(e);t(b)&&a.Kd.set(b,f);if(a.za[f])return a.za[f];var g=String(a.eb.length);a.eb.push([g,e]);return a.za[f]=g};if(t(b)&&a.za[a.Kd.get(b)])return a.za[a.Kd.get(b)];if(null===b||"boolean"===typeof b||"string"===typeof b||"number"===typeof b)return c(Hj(b));if(ua(b))return c(Lj("Date",{value:Hj(Math.floor(b.getTime()))})); if(b instanceof Gj)return c(b.ma(function(e){return Nk(a,e)}));if(Array.isArray(b))return c(Jj(b.map(function(e){return Ij(Nk(a,e))})));if(t(b)&&"function"!==typeof b){var d={};Object.keys(b).sort().forEach(function(e){d[e]=Ij(Nk(a,b[e]))});return c(Kj(d))}throw Error("Can't encode object: "+b);},Ok=function(a,b,c){var d=this;this.Vh=a;this.values={};b.forEach(function(e){return d.values[e[0]]=e[1]});this.Ph=c?Qk(this):null;this.Kh={};this.Lf={};this.hk=0},Pk=function(a,b){if(b in a.Lf)return a.Lf[b]; @@ -463,15 +463,15 @@ var c=String(a.hk++);a.Lf[b]=c;a.Kh[c]=Rk(a,a.values[b],0);return c},Rk=function {}));for(var h=b.next();!h.done;h=b.next()){var m=n(h.value);h=m.next().value;m=m.next().value;f[h]=Rk(a,m,c+3);null!==g&&d(f[h])?g[h]=e(f[h].nb):g=null}return null!==g?Hj(g):Kj(f)}if(null!=b.$a)return d=b.$a,Nj(d.mc||[],Pk(a,d.body||""));if(null!=b.Aa){d=b.Aa;f={};g=n(Object.keys(d.arguments||{}));for(b=g.next();!b.done;b=g.next())b=b.value,f[b]=Rk(a,d.arguments[b],c+3);return d.functionName?Lj(d.functionName,f):Mj(Pk(a,d.ab||""),f)}throw Error("Can't optimize value: "+b);},Sk=function(a){var b= a.nb;return null!==b?b===zd||"number"===typeof b||"boolean"===typeof b:null!=a.Qb},Qk=function(a){var b={},c=function(e){b[e]?b[e]++:(b[e]=1,d(a.values[e]))},d=function(e){null!=e.Ia?e.Ia.values.forEach(d):null!=e.Ja?Object.values(e.Ja.values).forEach(d):null!=e.$a?c(e.$a.body):null!=e.Aa?(e=e.Aa,null!=e.ab&&c(e.ab),Object.values(e.arguments).forEach(d)):null!=e.Ua&&c(e.Ua)};c(a.Vh);return b};var Yk=function(a){if(null==a.element)throw Error('"element" not found in params '+a);var b=a.selectors||null;null!=b&&"string"===typeof b&&(b=b.split(","));b=new If({l:Hk(a.element),description:Tk(a.description),na:null,ta:null,selectors:b,Yb:K(a.maxErrorMeters),requestId:Tk(a.id),maxVertices:K(a.maxVertices),P:K(a.maxWorkers)});var c=Uk(a);switch(c){case "GOOGLE_CLOUD_STORAGE":case "DRIVE":var d=new Kf({oa:null,la:null,F:Pj(a.fileFormat)});"GOOGLE_CLOUD_STORAGE"===c?d.oa=Vk(a):d.la=Wk(a);b.na=d; break;case "ASSET":b.ta=new Jf({Ka:Xk(a)});break;default:throw Error('Export destination "'+c+'" unknown');}return b};function Tk(a){return null!=a?String(a):null}function K(a){return null!=a?Number(a):null} -var Uk=function(a){var b="DRIVE";if(null==a)return b;null!=a.outputBucket||null!=a.outputPrefix?b="GOOGLE_CLOUD_STORAGE":null!=a.assetId&&(b="ASSET");return b},$k=function(a){var b=new bg({Oe:!!a.tfrecordCompressed,Zb:Tk(a.tfrecordMaxFileSize),Sf:!!a.tfrecordSequenceData,Me:!!a.tfrecordCollapseBands,Af:K(a.tfrecordMaskedThreshold),defaultValue:K(a.tfrecordDefaultValue),Sa:Zk(a.tfrecordPatchDimensions),xf:Zk(a.tfrecordKernelSize),ae:null});a=a.tfrecordTensorDepths;if(null!=a)if(t(a)){var c={};qb(a, +var Uk=function(a){var b="DRIVE";if(null==a)return b;null!=a.outputBucket||null!=a.outputPrefix?b="GOOGLE_CLOUD_STORAGE":null!=a.assetId&&(b="ASSET");return b},$k=function(a){var b=new bg({Oe:!!a.tfrecordCompressed,Zb:Tk(a.tfrecordMaxFileSize),Sf:!!a.tfrecordSequenceData,Me:!!a.tfrecordCollapseBands,Af:K(a.tfrecordMaskedThreshold),defaultValue:K(a.tfrecordDefaultValue),Sa:Zk(a.tfrecordPatchDimensions),xf:Zk(a.tfrecordKernelSize),ae:null});a=a.tfrecordTensorDepths;if(null!=a)if(t(a)){var c={};sb(a, function(d,e){if("string"!==typeof e||"number"!==typeof d)throw Error('"tensorDepths" option must be an object of type Object');c[e]=d});b.ae=c}else throw Error('"tensorDepths" option needs to have the form Object.');return b},al=function(a,b){var c=new Ef({oa:null,la:null,Fd:null,be:null,F:Oj(a.fileFormat)});if("GEO_TIFF"===c.F){if(a.fileDimensions&&a.tiffFileDimensions)throw Error('Export cannot set both "fileDimensions" and "tiffFileDimensions".');var d=a.tiffShardSize|| a.shardSize;d=new Tf({Le:!!a.tiffCloudOptimized,Xf:!(!a.skipEmptyTiles&&!a.tiffSkipEmptyFiles),Sa:Zk(a.fileDimensions||a.tiffFileDimensions),tileSize:K(d)});c.Fd=d}else"TF_RECORD_IMAGE"===c.F&&(c.be=$k(a));"GOOGLE_CLOUD_STORAGE"===b?c.oa=Vk(a):c.la=Wk(a);return c},bl=function(a,b){var c=new Mf({oa:null,la:null,F:"MP4"});"GOOGLE_CLOUD_STORAGE"===b?c.oa=Vk(a):c.la=Wk(a);return c},cl=function(a){var b=K(a.maxZoom),c=K(a.scale),d=K(a.minZoom),e=!!a.skipEmptyTiles,f=Tk(a.mapsApiKey),g=Zk(a.tileDimensions), h=K(a.stride);var m=K(a.minTimeMachineZoomSubset);a=K(a.maxTimeMachineZoomSubset);if(null==m&&null==a)m=null;else{var p=new Bg({min:0,max:null});null!=m&&(p.min=m);p.max=a;m=p}return new Hf({maxZoom:b,scale:c,minZoom:d,Yf:e,wf:f,Sa:g,Zf:h,lg:m})},Zk=function(a){if(null==a)return null;var b=new Uf({height:0,width:0});"string"===typeof a&&(-1!==a.indexOf("x")?a=a.split("x").map(Number):-1!==a.indexOf(",")&&(a=a.split(",").map(Number)));if(Array.isArray(a))if(2===a.length)b.height=a[0],b.width=a[1]; else if(1===a.length)b.height=a[0],b.width=a[0];else throw Error("Unable to construct grid from dimensions: "+a);else if("number"!==typeof a||isNaN(a))if(t(a)&&null!=a.height&&null!=a.width)b.height=a.height,b.width=a.width;else throw Error("Unable to construct grid from dimensions: "+a);else b.height=a,b.width=a;return b},Vk=function(a){var b=null;null!=a.writePublicTiles&&(b=a.writePublicTiles?"PUBLIC":"DEFAULT_OBJECT_ACL");return new Sf({nc:Tk(a.outputBucket),ea:Tk(a.outputPrefix),oc:a.bucketCorsUris|| null,permissions:b})},Wk=function(a){return new rf({df:Tk(a.driveFolder),ea:Tk(a.driveFileNamePrefix)})},Xk=function(a){return new bf({name:ak(a.assetId)})};var el=function(a,b,c,d,e,f){d=jj(!f,!1,d||[]);lj=a;mj=d;null===a?rj():nj(function(){pj(b,c,e||Aa(dl,b,c))})};w("ee.data.authenticateViaOauth",el);var fl=function(a,b,c,d,e){el(a,b,c,d,e)};w("ee.data.authenticate",fl);var dl=function(a,b){r.gapi.auth.authorize({client_id:lj,immediate:!1,scope:mj.join(" ")},Aa(oj,a,b))};w("ee.data.authenticateViaPopup",dl); var gl=function(a,b,c,d,e){if("window"in r)throw Error("Use of private key authentication in the browser is insecure. Consider using OAuth, instead.");d=jj(!e,!e,d||[]);lj=a.client_email;mj=d;var f=new google.auth.JWT(a.client_email,null,a.private_key,d,null);kj=function(g,h){f.authorize(function(m,p){m?h({error:m}):h({access_token:p.access_token,token_type:p.token_type,expires_in:(p.expiry_date-Date.now())/1E3})})};pj(b,c)};w("ee.data.authenticateViaPrivateKey",gl); -w("ee.data.setExpressionAugmenter",function(a){hl=a||Fb});var hl=Fb;w("ee.data.setAuthToken",function(a,b,c,d,e,f,g,h){e=jj(!h,!1,e||[]);lj=a;mj=e;var m={token_type:b,access_token:c,state:e.join(" "),expires_in:d};oj(void 0,void 0,m);!1===g?f&&f():nj(function(){r.gapi.auth.setToken(m);f&&f()})});w("ee.data.refreshAuthToken",pj);w("ee.data.setAuthTokenRefresher",function(a){kj=a});w("ee.data.getAuthToken",fj);w("ee.data.clearAuthToken",rj);w("ee.data.getAuthClientId",function(){return lj}); -w("ee.data.getAuthScopes",function(){return mj});w("ee.data.setDeadline",function(a){Fj=a});w("ee.data.setParamAugmenter",function(a){zj=a||Fb}); +w("ee.data.setExpressionAugmenter",function(a){hl=a||Ib});var hl=Ib;w("ee.data.setAuthToken",function(a,b,c,d,e,f,g,h){e=jj(!h,!1,e||[]);lj=a;mj=e;var m={token_type:b,access_token:c,state:e.join(" "),expires_in:d};oj(void 0,void 0,m);!1===g?f&&f():nj(function(){r.gapi.auth.setToken(m);f&&f()})});w("ee.data.refreshAuthToken",pj);w("ee.data.setAuthTokenRefresher",function(a){kj=a});w("ee.data.getAuthToken",fj);w("ee.data.clearAuthToken",rj);w("ee.data.getAuthClientId",function(){return lj}); +w("ee.data.getAuthScopes",function(){return mj});w("ee.data.setDeadline",function(a){Fj=a});w("ee.data.setParamAugmenter",function(a){zj=a||Ib}); var il=function(a){a=new I(a);return J(a,a.Ic().list($i(),{prettyPrint:!1}).then(Vj))},kl=function(a,b){if("string"===typeof a.image)throw Error("Image as JSON string not supported.");if(void 0!==a.version)throw Error("Image version specification not supported.");a=new yf({name:null,l:hl(Hk(a.image)),F:Oj(a.format),ca:Rj(a.bands),fb:Uj(a)});b=new I(b);return J(b,b.maps().create($i(),a,{fields:["name"]}).then(function(c){return jl(c.name,"")}))};w("ee.data.getMapId",kl); var ll=function(a,b,c,d){if(!a.formatTileUrl){var e=jl(a.mapid,a.token,a.urlFormat);a.urlFormat=e.urlFormat;a.formatTileUrl=e.formatTileUrl}return a.formatTileUrl(b,c,d)};w("ee.data.getTileUrl",ll); var jl=function(a,b,c){var d=void 0===c?"":c;d||(Yi(),c=uj,d=b?c+"/map/"+a+"/{z}/{x}/{y}?token="+b:c+"/v1alpha/"+a+"/tiles/{z}/{x}/{y}");return{mapid:a,token:b,formatTileUrl:function(e,f,g){var h=Math.pow(2,g);e%=h;e=String(0>e?e+h:e);return d.replace("{x}",e).replace("{y}",f).replace("{z}",g)},urlFormat:d}},ml=function(a,b){a=new nf({name:null,Rb:a.assetName,We:a.mapName});b=new I(b);return J(b,(new Kg(b.N)).create($i(),a,{fields:["name"]}).then(function(c){return{token:c.name}}))}; @@ -488,11 +488,11 @@ token:""}}))};w("ee.data.getTableDownloadId",vl);var wl=function(a){return uj+"/ var zl=function(a,b){var c=yl(a).map(nk);if(1===c.length)return a=new I(b),J(a,a.Qa().get(c[0]).then(function(e){return[ok(e)]}));a=new ej(b);var d=a.Qa();return a.send(c.map(function(e){return[e,d.get(e)]}),function(e){return c.map(function(f){return ok(e[f])})})};w("ee.data.getTaskStatus",zl);var yl=function(a){if("string"===typeof a)return[a];if(Array.isArray(a))return a;throw Error("Invalid value: expected a string or an array of strings.");},Bl=function(a){return Al(void 0,a)}; w("ee.data.getTaskList",Bl);var Al=function(a,b){return b?(Cl(a,function(c,d){return b(c?{tasks:c.map(ok)}:null,d)}),null):{tasks:Cl(a).map(ok)}};w("ee.data.getTaskListWithLimit",Al);var Cl=function(a,b){var c=[],d={pageSize:500},e=function(h){$a(c,h.Qa||[]);!h.cb||a&&c.length>=a?b&&b(a?c.slice(0,a):c):(d.pageToken=h.cb,J(f,g.list($i(),d).then(e)));return null},f=new I(b?function(h,m){return m&&b(h,m)}:void 0),g=f.Qa();J(f,g.list($i(),d).then(e));return b?null:a?c.slice(0,a):c}; w("ee.data.listOperations",Cl);var Dl=function(a,b){a=yl(a);var c=new Ze;if(1===a.length)b=new I(b),J(b,b.Qa().cancel(a[0],c));else{b=new ej(b);var d=b.Qa();b.send(a.map(function(e){return[e,d.cancel(e,c)]}))}};w("ee.data.cancelOperation",Dl);var El=function(a,b){var c=yl(a).map(nk);if(!Array.isArray(a))return a=new I(b),J(a,a.Qa().get(c[0]));a=new ej(b);var d=a.Qa();return a.send(c.map(function(e){return[e,d.get(e)]}))};w("ee.data.getOperation",El);var Gl=function(a,b){return Fl(a,"CANCEL",b)}; -w("ee.data.cancelTask",Gl);var Fl=function(a,b,c){if(!wb(Hl,b))throw Error("Invalid action: "+b);a=yl(a);a=a.map(nk);Dl(a,c);return null};w("ee.data.updateTask",Fl); +w("ee.data.cancelTask",Gl);var Fl=function(a,b,c){if(!yb(Hl,b))throw Error("Invalid action: "+b);a=yl(a);a=a.map(nk);Dl(a,c);return null};w("ee.data.updateTask",Fl); var Nl=function(a,b,c){b.id=a;var d=b.type;a=null!=b.sourceUrl?{__source_url__:b.sourceUrl}:{};var e=new I(c);c=function(f){return J(e,f.then(pk))};switch(d){case "EXPORT_IMAGE":return b=Il(b,a),c(e.image().Na($i(),b));case "EXPORT_FEATURES":return b=Yk(b),b.l=hl(b.l,a),c(e.table().Na($i(),b));case "EXPORT_VIDEO":return b=Jl(b,a),c(e.video().Na($i(),b));case "EXPORT_TILES":return b=Kl(b,a),c(e.map().Na($i(),b));case "EXPORT_VIDEO_MAP":return b=Ll(b),c((new Wg(e.N)).Na($i(),b));case "EXPORT_CLASSIFIER":return b= Ml(b),c((new Jg(e.N)).Na($i(),b));default:throw Error("Unable to start processing for task of type "+d);}};w("ee.data.startProcessing",Nl); var Il=function(a,b){var c=Ol(a);if(null==c.element)throw Error('"element" not found in params '+c);a=new Cf({l:Hk(c.element),description:Tk(c.description),na:null,ta:null,L:null,Bf:Tk(c.maxPixels),requestId:Tk(c.id),P:K(c.maxWorkers)});var d=Uk(c);switch(d){case "GOOGLE_CLOUD_STORAGE":case "DRIVE":a.na=al(c,d);break;case "ASSET":d=c.pyramidingPolicy||{};try{d=JSON.parse(d)}catch(f){}var e="PYRAMIDING_POLICY_UNSPECIFIED";"string"===typeof d?(e=d,d={}):d[".default"]&&(e=d[".default"],delete d[".default"]); -c=new Df({Ka:Xk(c),pyramidingPolicy:e,Jf:zb(d)?null:d,tileSize:K(c.shardSize)});a.ta=c;break;default:throw Error('Export destination "'+d+'" unknown');}a.l=hl(a.l,b);return a},Jl=function(a,b){a=Pl(a);if(null==a.element)throw Error('"element" not found in params '+a);var c=new Of({l:Hk(a.element),description:Tk(a.description),Va:new Nf({framesPerSecond:K(a.framesPerSecond),maxFrames:K(a.maxFrames),maxPixelsPerFrame:Tk(a.maxPixels)}),na:null,requestId:Tk(a.id),P:K(a.maxWorkers)});c.na=bl(a,Uk(a)); +c=new Df({Ka:Xk(c),pyramidingPolicy:e,Jf:Bb(d)?null:d,tileSize:K(c.shardSize)});a.ta=c;break;default:throw Error('Export destination "'+d+'" unknown');}a.l=hl(a.l,b);return a},Jl=function(a,b){a=Pl(a);if(null==a.element)throw Error('"element" not found in params '+a);var c=new Of({l:Hk(a.element),description:Tk(a.description),Va:new Nf({framesPerSecond:K(a.framesPerSecond),maxFrames:K(a.maxFrames),maxPixelsPerFrame:Tk(a.maxPixels)}),na:null,requestId:Tk(a.id),P:K(a.maxWorkers)});c.na=bl(a,Uk(a)); c.l=hl(c.l,b);return c},Kl=function(a,b){var c=a.scale;delete a.scale;a=Ol(a);a.scale=c;if(null==a.element)throw Error('"element" not found in params '+a);c=new Gf({l:Hk(a.element),description:Tk(a.description),hc:cl(a),fc:al(a,"GOOGLE_CLOUD_STORAGE"),requestId:Tk(a.id),P:K(a.maxWorkers)});c.l=hl(c.l,b);return c},Ll=function(a){var b=a.scale;delete a.scale;a=Pl(a);a.scale=b;if(null==a.element)throw Error('"element" not found in params '+a);b=new Lf({l:Hk(a.element),description:Tk(a.description),Va:new Nf({framesPerSecond:K(a.framesPerSecond), maxFrames:K(a.maxFrames),maxPixelsPerFrame:null}),hc:cl(a),fc:bl(a,"GOOGLE_CLOUD_STORAGE"),requestId:Tk(a.id),version:Tk(a.version),P:K(a.maxWorkers)});b.l=hl(b.l);return b},Ml=function(a){if(null==a.element)throw Error('"element" not found in params '+a);var b=Uk(a);if("ASSET"!=b)throw Error('Export destination "'+b+'" unknown');a=new Bf({l:Hk(a.element),description:Tk(a.description),requestId:Tk(a.id),ta:new af({Ka:Xk(a)}),P:K(a.maxWorkers)});a.l=hl(a.l);return a},Rl=function(a,b,c){b=tk(b);var d= function(e){return e?pk(e):null};return d(Ql(a,b,c&&function(e,f){return c(d(e),f)}))};w("ee.data.startIngestion",Rl); @@ -513,19 +513,19 @@ var Hl={zk:"CANCEL",Ck:"UPDATE"};var M=function(a,b,c){if(!(this instanceof M))r M.prototype.W=function(a){return nl(this,a)};M.prototype.getInfo=M.prototype.W;M.prototype.encode=function(a){if(null===this.H&&null===this.args)return{type:"ArgumentRef",value:this.V};var b={},c;for(c in this.args)void 0!==this.args[c]&&(b[c]=a(this.args[c]));b={type:"Invocation",arguments:b};a=a(this.H);b["string"===typeof a?"functionName":"function"]=a;return b}; M.prototype.ma=function(a){if(null===this.H&&null===this.args)return new Te({Qb:this.V||""});var b={},c;for(c in this.args)void 0!==this.args[c]&&(b[c]=Ij(a(this.args[c])));return"string"===typeof this.H?Lj(String(this.H),b):this.H.Cd(a,b)};M.prototype.xa=function(a){return(void 0===a?0:a)?Dk(this):Lk(this)};M.prototype.serialize=M.prototype.xa;M.prototype.toString=function(){return"ee."+this.name()+"("+Fk(this)+")"};w("ee.ComputedObject.prototype.toString",M.prototype.toString); M.prototype.name=function(){return"ComputedObject"};M.prototype.mg=function(a,b){var c=Array.from(arguments);c[0]=this;a.apply(r,c);return this};M.prototype.aside=M.prototype.mg;var lm=function(a,b){if(b instanceof a.constructor)return b;var c=function(){};c.prototype=a.constructor.prototype;a=new c;a.H=b.H;a.args=b.args;a.V=b.V;return a},km=function(a,b){function c(){return a.apply(this,b)}c.prototype=a.prototype;return new c};var mm={},nm=function(a,b){if(b==a)return!0;switch(a){case "Element":return"Element"==b||"Image"==b||"Feature"==b||"Collection"==b||"ImageCollection"==b||"FeatureCollection"==b;case "FeatureCollection":case "Collection":return"Collection"==b||"ImageCollection"==b||"FeatureCollection"==b;case "Object":return!0;default:return!1}},om=function(a){return"number"===typeof a||a instanceof M&&"Number"==a.name()},pm=function(a){return"string"===typeof a||a instanceof M&&"String"==a.name()},qm=function(a){return t(a)&& -"function"!==typeof a?(a=Object.getPrototypeOf(a),null!==a&&null===Object.getPrototypeOf(a)):!1},rm=function(a,b,c){return 1===a.length&&qm(a[0])&&(a=b.args,(void 0===c?0:c)&&(a=a.slice(1)),a.length)?!(1===a.length||a[1].optional)||"Dictionary"!==a[0].type:!1};var sm=function(){if(!(this instanceof sm))return new sm};x(sm,Gj);w("ee.Function",sm);var tm=Fb;sm.prototype.call=function(a){return this.apply(um(this,Array.prototype.slice.call(arguments,0)))};sm.prototype.call=sm.prototype.call;sm.prototype.apply=function(a){a=new M(this,vm(this,a));return tm(a,this.aa().returns)};sm.prototype.apply=sm.prototype.apply; -var wm=function(a,b,c){var d=void 0!==b,e=a.aa();if(rm(c,e,d)){if(c=Bb(c[0]),d){d=e.args[0].name;if(d in c)throw Error("Named args for "+e.name+" can't contain keyword "+d);c[d]=b}}else c=um(a,d?[b].concat(c):c);return a.apply(c)},vm=function(a,b){for(var c=a.aa().args,d={},e={},f=0;f/,"");for(var h=0;h/,"");return new N(g,f)}),a&&a())};a?il(c):c(il())}},Fm=function(a,b,c,d){Bm();var e=d||"";qb(zm,function(f,g){var h=g.split(".");if(2==h.length&&h[0]==b){h=e+h[1];var m=f.aa();Am[g]=!0;var p=!1;m.args.length&&(g=m.args[0].type,p="Object"!=g&&nm(g, -c));g=p?a.prototype:a;h in g&&!g[h].signature||(g[h]=function(v){return wm(f,p?this:void 0,Array.prototype.slice.call(arguments,0))},g[h].toString=u(f.toString,f,h,p),g[h].signature=m)}})},Gm=function(a){var b=function(c){for(var d in c)"function"===typeof c[d]&&c[d].signature&&delete c[d]};b(a);b(a.prototype||{})};var P=function(a,b){var c=Hm(a),d=Ra(c,function(m){return m.replace(/^opt_/,"")});a=(a=r.EXPORTED_FN_INFO?r.EXPORTED_FN_INFO[a.toString()].name.split(".").pop()+"()":null)?" to function "+a:"";var e={},f=b[0],g=t(f)&&"function"!==typeof f&&!Array.isArray(f)&&"Object"===Object.getPrototypeOf(f).constructor.name;if(1d.length)throw Error("Received too many arguments"+a+". Expected at most "+d.length+" but got "+b.length+".");for(f=0;f/,"");for(var h=0;h/,"");return new N(g,f)}),a&&a())};a?il(c):c(il())}},Fm=function(a,b,c,d){Bm();var e=d||"";sb(zm,function(f,g){var h=g.split(".");if(2==h.length&&h[0]==b){h=e+h[1];var m=f.aa();Am[g]=!0;var p=!1;m.args.length&&(g=m.args[0].type,p="Object"!=g&&nm(g, +c));g=p?a.prototype:a;h in g&&!g[h].signature||(g[h]=function(v){return wm(f,p?this:void 0,Array.prototype.slice.call(arguments,0))},g[h].toString=u(f.toString,f,h,p),g[h].signature=m)}})},Gm=function(a){var b=function(c){for(var d in c)"function"===typeof c[d]&&c[d].signature&&delete c[d]};b(a);b(a.prototype||{})};var P=function(a,b){var c=Hm(a),d=Ra(c,function(m){return m.replace(/^opt_/,"")});a=(a=r.EXPORTED_FN_INFO?r.EXPORTED_FN_INFO[a.toString()].name.split(".").pop()+"()":null)?" to function "+a:"";var e={},f=b[0],g=t(f)&&"function"!==typeof f&&!Array.isArray(f)&&"Object"===Object.getPrototypeOf(f).constructor.name;if(1d.length)throw Error("Received too many arguments"+a+". Expected at most "+d.length+" but got "+b.length+".");for(f=0;f=arguments.length){var c=arguments[0];if(b=qm(c))a:{b=vb(c);var d=["properties"];if(ta(b)&&ta(d)&&b.length==d.length){for(var e=b.length,f=0;f=arguments.length){var c=arguments[0];if(b=qm(c))a:{b=xb(c);var d=["properties"];if(ta(b)&&ta(d)&&b.length==d.length){for(var e=b.length,f=0;fa))throw Error("Geometry.BBox: west must not be "+a);if(!(-Infinity=b))throw Error("Geometry.BBox: south must be at most +90\u00b0, but was "+b+"\u00b0");if(!(-90<=d))throw Error("Geometry.BBox: north must be at least -90\u00b0, but was "+d+"\u00b0");b=Math.max(b,-90);d=Math.min(d, @@ -538,7 +538,7 @@ S.prototype.ma=function(a){if(!this.tb){if(!a)throw Error("Must specify an encod null!=this.uc&&d&&(b.geodesic=this.uc);null!=this.sc&&(b.evenOdd=this.sc);return(new N(c)).apply(b).ma(a)}; var Pm=function(a){var b=a.type;if("GeometryCollection"==b){b=a.geometries;if(!Array.isArray(b))return!1;for(a=0;aa||4a||4');}d.geometry=g;break;case "region":null!= -d.geometry&&console.warn("Multiple request parameters converted to region.");if(!(g instanceof S)){h=g;if("string"===typeof g)try{h=JSON.parse(g)}catch(m){throw Error('Region string "'+g+'" is not valid GeoJSON.');}if(Array.isArray(h))g=new bn(h,null,!1);else if(t(h))g=new S(h,null,!1);else throw Error("Region {region} was not convertible to an ee.Geometry.");}d.geometry=g;break;case "scale":d.scale=Number(g);break;default:c[h]=g}});zb(d)||(d.input=a,a=f.some(function(g){return g in d})||e?ym("Image.clipToBoundsAndScale", +d.geometry&&console.warn("Multiple request parameters converted to region.");if(!(g instanceof S)){h=g;if("string"===typeof g)try{h=JSON.parse(g)}catch(m){throw Error('Region string "'+g+'" is not valid GeoJSON.');}if(Array.isArray(h))g=new bn(h,null,!1);else if(t(h))g=new S(h,null,!1);else throw Error("Region {region} was not convertible to an ee.Geometry.");}d.geometry=g;break;case "scale":d.scale=Number(g);break;default:c[h]=g}});Bb(d)||(d.input=a,a=f.some(function(g){return g in d})||e?ym("Image.clipToBoundsAndScale", d):ym("Image.clip",d));return a},Bn=function(a,b){var c=b.crs||"",d=b.crsTransform||b.crs_transform;null!=d&&(d=Dn(d));if(!c&&!d)return a;if(d&&!c)throw Error('Must specify "crs" if "crsTransform" is specified.');if(d){if(a=ym("Image.reproject",{image:a,crs:c,crsTransform:d}),null!=b.dimensions&&null==b.scale&&null==b.region){var e=b.dimensions;"string"===typeof e&&(e=e.split("x").map(Number));2===e.length&&(delete b.dimensions,b.dimensions_consumed=!0,c=(new N("Projection")).call(c,d),b.region=new Vm([0, -0,e[0],e[1]],c,!1))}}else a=ym("Image.setDefaultProjection",{image:a,crs:c,crsTransform:[1,0,0,0,-1,0]});return a},Dn=function(a){if("string"===typeof a)try{a=JSON.parse(a)}catch(b){}if(Array.isArray(a)){if(6===a.length&&Ta(a,function(b){return"number"===typeof b}))return a;throw Error("Invalid argument, crs transform must be a list of 6 numbers.");}throw Error("Invalid argument, crs transform was not a string or array.");},Fn=function(a,b){var c={};b=En(b,c);zb(b)||(b.image=a,a=ym("Image.visualize", -b));c.image=a;return c},En=function(a,b){var c="bands gain bias min max gamma palette opacity forceRgbOutput".split(" "),d={};qb(a,function(e,f){Va(c,f)?d[f]=e:b[f]=e});return d},sl=function(a,b){b=Object.assign({},b);var c=function(e){var f={};["crs","crs_transform","dimensions","region"].forEach(function(g){g in e&&(f[g]=e[g])});null!=e.scale&&null==e.dimensions&&(f.scale=e.scale);return f},d=function(e){var f=e.id;if(void 0===f)throw Error("Each band dictionary must have an id.");f=a.select(f); +0,e[0],e[1]],c,!1))}}else a=ym("Image.setDefaultProjection",{image:a,crs:c,crsTransform:[1,0,0,0,-1,0]});return a},Dn=function(a){if("string"===typeof a)try{a=JSON.parse(a)}catch(b){}if(Array.isArray(a)){if(6===a.length&&Ta(a,function(b){return"number"===typeof b}))return a;throw Error("Invalid argument, crs transform must be a list of 6 numbers.");}throw Error("Invalid argument, crs transform was not a string or array.");},Fn=function(a,b){var c={};b=En(b,c);Bb(b)||(b.image=a,a=ym("Image.visualize", +b));c.image=a;return c},En=function(a,b){var c="bands gain bias min max gamma palette opacity forceRgbOutput".split(" "),d={};sb(a,function(e,f){Va(c,f)?d[f]=e:b[f]=e});return d},sl=function(a,b){b=Object.assign({},b);var c=function(e){var f={};["crs","crs_transform","dimensions","region"].forEach(function(g){g in e&&(f[g]=e[g])});null!=e.scale&&null==e.dimensions&&(f.scale=e.scale);return f},d=function(e){var f=e.id;if(void 0===f)throw Error("Each band dictionary must have an id.");f=a.select(f); var g=c(b);e=c(e);e=c(Object.assign(g,e));f=Bn(f,e);return f=Cn(f,e,{})};"ZIPPED_GEO_TIFF_PER_BAND"===b.format&&b.bands&&b.bands.length?(d=b.bands.map(d),a=d.reduce(function(e,f){return O("Image.addBands",e,f,null,!0)},d.shift())):(d=c(b),a=Bn(a,d),a=Cn(a,d,{}));return a};var L=function(a){if(!(this instanceof L))return km(L,arguments);if(a instanceof L)return a;Gn();var b=arguments.length;if(0==b||1==b&&void 0===a)Q.call(this,new N("Image.mask"),{image:new L(0),mask:new L(0)});else if(1==b)if(om(a))Q.call(this,new N("Image.constant"),{value:a});else if(pm(a))Q.call(this,new N("Image.load"),{id:a});else{if(Array.isArray(a))return Hn(Ra(a,function(d){return new L(d)}));if(a instanceof M)"Array"==a.name()?Q.call(this,new N("Image.constant"),{value:a}):Q.call(this,a.H, a.args,a.V);else throw Error("Unrecognized argument type to convert to an Image: "+a);}else if(2==b){b=arguments[0];var c=arguments[1];if(pm(b)&&om(c))Q.call(this,new N("Image.load"),{id:b,version:c});else throw Error("Unrecognized argument types to convert to an Image: "+arguments);}else throw Error("The Image constructor takes at most 2 arguments ("+b+" given)");};x(L,Q);w("ee.Image",L);var In=!1,Gn=function(){In||(Fm(L,"Image","Image"),Fm(L,"Window","Image","focal_"),In=!0)}; L.prototype.W=function(a){return L.M.W.call(this,a)};L.prototype.getInfo=L.prototype.W;L.prototype.getMap=function(a,b){var c=this,d=P(L.prototype.getMap,arguments),e=Fn(this,d.visParams);if(d.callback){var f=d.callback;kl(e,function(g,h){g=g?Object.assign(g,{image:c}):void 0;f(g,h)})}else return d=kl(e),d.image=this,d};L.prototype.getMap=L.prototype.getMap; -L.prototype.xb=function(a,b){var c=P(L.prototype.xb,arguments),d=c.params?Bb(c.params):{};d.image=this;if(c.callback){var e=c.callback;tl(d,function(f,g){f?e(ul(f)):e(null,g)})}else return ul(tl(d))};L.prototype.getDownloadURL=L.prototype.xb;L.prototype.Gd=function(a,b){var c=P(L.prototype.xb,arguments),d=c.params?Bb(c.params):{},e={},f=Bn(this,d);f=Cn(f,d,e);d=Fn(f,e);return c.callback?(ol(d,c.callback),null):ol(d)};L.prototype.getThumbId=L.prototype.Gd; +L.prototype.xb=function(a,b){var c=P(L.prototype.xb,arguments),d=c.params?Db(c.params):{};d.image=this;if(c.callback){var e=c.callback;tl(d,function(f,g){f?e(ul(f)):e(null,g)})}else return ul(tl(d))};L.prototype.getDownloadURL=L.prototype.xb;L.prototype.Gd=function(a,b){var c=P(L.prototype.xb,arguments),d=c.params?Db(c.params):{},e={},f=Bn(this,d);f=Cn(f,d,e);d=Fn(f,e);return c.callback?(ol(d,c.callback),null):ol(d)};L.prototype.getThumbId=L.prototype.Gd; L.prototype.hf=function(a,b){var c=P(L.prototype.hf,arguments);if(c.callback)this.Gd(c.params,function(d,e){var f="";if(void 0===e)try{f=rl(d)}catch(g){e=String(g.message)}c.callback(f,e)});else return rl(this.Gd(c.params))};L.prototype.getThumbURL=L.prototype.hf;var Jn=function(a,b,c){var d=P(Jn,arguments);return Hn([d.r,d.g,d.b],["vis-red","vis-green","vis-blue"])};L.rgb=Jn;var Kn=function(a){return Hn(Array.prototype.slice.call(arguments),null)};L.cat=Kn; var Hn=function(a,b){if(0==a.length)return O("Image.constant",[]);for(var c=new L(a[0]),d=1;d/,"");c[e]=!0}var f=r.ee,g;for(g in b)g in c&&!(g in f)&&(f[g]=Yo(g),So.push(g),a[g]?(f[g].signature=a[g],f[g].signature.isConstructor=!0,Am[g]=!0):f[g].signature={});mm=f;Zo()}catch(h){Qo(h);return}Mo="ready";for(No=[];0a.y||a.y>=d)return c.createElement("div");var e=a.x%d;0>e&&(e+=d);d=new google.maps.Point(e,a.y);a=[[a.x,a.y,b,this.Cb++].join("-"),this.cg.hh()].join("-");b=this.Jg(d,b,c,a);b.tileSize=this.tileSize;mp(b.ua,this.opacity);this.Db.set(a,b);pp(this,b);this.dispatchEvent(new qp(this.Sc()));this.cg.vh(b,(new Date).getTime()/1E3);return b.ua};k.releaseTile=function(a){var b=this.Db.get(a.id);this.Db.remove(a.id);b&&(b.abort(),Ca(b))}; var pp=function(a,b){a.qb.bb(b,"status-changed",function(){switch(b.getStatus()){case "loaded":var c=b.ak,d=(new Date).getTime();dp(this.Yd,b.zoom).tileLatencies.push(d-c);this.dispatchEvent(new rp(this.Sc()));break;case "throttled":dp(this.Yd,b.zoom).throttleCount++;this.dispatchEvent(new sp(b.Ra));break;case "failed":dp(this.Yd,b.zoom).errorCount++;this.dispatchEvent(new tp(b.Ra,b.Oj));break;case "aborted":this.dispatchEvent(new up(this.Sc()))}})}; np.prototype.I=function(){A.prototype.I.call(this);this.Db.forEach(Ca);this.Db.clear();this.Db=null;Ca(this.qb);this.cg=this.qb=null};var op=function(a,b){return Ua(a.Db.T(),function(c){return c.getStatus()==b})};w("ee.layers.AbstractOverlay",np);np.prototype.removeTileCallback=np.prototype.Nf;np.prototype.addTileCallback=np.prototype.He;var rp=function(){y.call(this,"tile-load")};q(rp,y);var qp=function(){y.call(this,"tile-start")};q(qp,y);var sp=function(){y.call(this,"tile-throttle")};q(sp,y); var tp=function(a,b){y.call(this,"tile-fail");this.errorMessage=b};q(tp,y);var up=function(){y.call(this,"tile-abort")};q(up,y);var vp=function(a,b,c,d){A.call(this);this.qc=a;this.zoom=b;this.ua=c.createElement("div");this.ua.id=d;this.ek=5;this.Ud=function(){};this.$d="new";this.Uh=0;this.tf=!1};q(vp,A); -var xp=function(a){if(!a.tf&&"loading"==a.getStatus())throw Error("startLoad() can only be invoked once. Use retryLoad() after the first attempt.");wp(a,"loading");a.ak=(new Date).getTime();a.gb=new Ji;a.gb.Ac="blob";a.gb.bb("complete",function(){var b=Vi(a.gb),c=a.gb.getStatus();429==c&&wp(a,"throttled");if(Ci(c)){var d={};qb(Wi(a.gb),function(f,g){d[g.toLowerCase()]=f});a.tk=d;a.$h=b;a.Qc()}else if(b){var e=new lp;e.bb("loadend",function(){a.kd(e.ba.result)},void 0);e.readAsText(b)}else a.kd("Failed to load tile.")}, +var xp=function(a){if(!a.tf&&"loading"==a.getStatus())throw Error("startLoad() can only be invoked once. Use retryLoad() after the first attempt.");wp(a,"loading");a.ak=(new Date).getTime();a.gb=new Ji;a.gb.Ac="blob";a.gb.bb("complete",function(){var b=Vi(a.gb),c=a.gb.getStatus();429==c&&wp(a,"throttled");if(Ci(c)){var d={};sb(Wi(a.gb),function(f,g){d[g.toLowerCase()]=f});a.tk=d;a.$h=b;a.Qc()}else if(b){var e=new lp;e.bb("loadend",function(){a.kd(e.ba.result)},void 0);e.readAsText(b)}else a.kd("Failed to load tile.")}, !1);a.gb.ad("ready",Aa(Ca,a.gb));a.Ra&&a.Ra.endsWith("&profiling=1")&&(a.Ra=a.Ra.replace("&profiling=1",""),a.gb.headers.set("X-Earth-Engine-Computation-Profiling","1"));a.gb.send(a.Ra,"GET")};k=vp.prototype;k.Qc=function(){this.Ud(this);wp(this,"loaded")};k.Kc=function(){Ca(this.gb)}; k.kd=function(a){var b=function(c){try{if(c=JSON.parse(c),c.error&&c.error.message)return c.error.message}catch(d){}return c};this.Uh>=this.ek?(this.Oj=b(a),wp(this,"failed")):(this.Kc(),setTimeout(u(function(){this.Ya||(this.tf=!0,xp(this),this.tf=!1)},this),1E3*Math.pow(2,this.Uh++)))};k.abort=function(){this.Kc();"aborted"!=this.getStatus()&&"removed"!=this.getStatus()&&wp(this,this.$d in yp?"removed":"aborted")};k.getStatus=function(){return this.$d};var wp=function(a,b){a.$d=b;a.dispatchEvent("status-changed")}; vp.prototype.I=function(){A.prototype.I.call(this);this.Kc();this.ua.remove();this.Ud=null};var yp={aborted:!0,failed:!0,loaded:!0,removed:!0};var zp=function(){Da.call(this)};q(zp,Da);var Ap=function(a,b){np.call(this,a,b);this.yg=new hd;this.Ug=new hd};q(Ap,np);Ap.prototype.Jg=function(a,b,c,d){var e=new Bp(a,b,c,d);this.qb.bb(e,"status-changed",function(){"loaded"==e.getStatus()&&(this.yg.set(a,new Float32Array(e.wd)),this.Ug.set(a,e.ua))});return e};Ap.prototype.I=function(){np.prototype.I.call(this);this.Ug=this.yg=null};w("ee.layers.BinaryOverlay",Ap);var Bp=function(a,b,c,d){vp.call(this,a,b,c,d)};q(Bp,vp); -Bp.prototype.Qc=function(){var a=new lp;a.bb("loadend",function(){this.wd=a.ba.result;vp.prototype.Qc.call(this)},void 0,this);a.readAsArrayBuffer(this.$h)};var Cp=function(a){A.call(this);this.Wc={};this.Vc={};this.Vb=new ep(this);this.Z=a;this.Ne=!1};x(Cp,A);var Dp=[hc&&!rc("11")?"readystatechange":"load","abort","error"],Ep=function(a,b,c){if(c="string"===typeof c?c:c.src)a.Ne=!1,a.Wc[b]={src:c,Ig:null}},Fp=function(a,b){delete a.Wc[b];var c=a.Vc[b];c&&(delete a.Vc[b],a.Vb.ie(c,Dp,a.Gh))}; -Cp.prototype.start=function(){var a=this.Wc;vb(a).forEach(function(b){var c=a[b];if(c&&(delete a[b],!this.Ya)){if(this.Z){var d=this.Z;d=(d?new jh(ih(d)):Fa||(Fa=new jh)).Mj("IMG")}else d=new Image;c.Ig&&(d.crossOrigin=c.Ig);this.Vb.bb(d,Dp,this.Gh);this.Vc[b]=d;d.id=b;d.src=c.src}},this)}; -Cp.prototype.Gh=function(a){var b=a.currentTarget;if(b){if("readystatechange"==a.type)if("complete"==b.readyState)a.type="load";else return;"undefined"==typeof b.naturalWidth&&("load"==a.type?(b.naturalWidth=b.width,b.naturalHeight=b.height):(b.naturalWidth=0,b.naturalHeight=0));Fp(this,b.id);this.dispatchEvent({type:a.type,target:b});!this.Ya&&zb(this.Vc)&&zb(this.Wc)&&!this.Ne&&(this.Ne=!0,this.dispatchEvent("complete"))}};Cp.prototype.I=function(){delete this.Wc;delete this.Vc;Ca(this.Vb);Cp.M.I.call(this)};var Gp=function(a,b){np.call(this,a,b)};q(Gp,np);Gp.prototype.Jg=function(a,b,c,d){return new Hp(a,b,c,d)};w("ee.layers.ImageOverlay",Gp);var Hp=function(a,b,c,d){vp.call(this,a,b,c,d);this.Ud=Ip;this.nh=this.ga=this.Ld=null;this.cd=""};q(Hp,vp); -Hp.prototype.Qc=function(){try{var a=Yb(this.$h);this.cd=Wb(a);var b="about:invalid#zClosurez"!==this.cd?this.cd:this.Ra}catch(c){b=this.Ra}this.ga=new Cp;Ep(this.ga,this.ua.id+"-image",b);this.nh=Kc(this.ga,Jp,function(c){"load"==c.type?(this.Ld=c.target,vp.prototype.Qc.call(this)):this.kd()},void 0,this);this.ga.start()};Hp.prototype.Kc=function(){vp.prototype.Kc.call(this);this.ga&&(Tc(this.nh),Ca(this.ga))};Hp.prototype.I=function(){vp.prototype.I.call(this);this.cd&&URL.revokeObjectURL(this.cd)}; +Bp.prototype.Qc=function(){var a=new lp;a.bb("loadend",function(){this.wd=a.ba.result;vp.prototype.Qc.call(this)},void 0,this);a.readAsArrayBuffer(this.$h)};var Cp=function(a){A.call(this);this.Wc={};this.Vc={};this.Vb=new ep(this);this.Z=a;this.Ne=!1};x(Cp,A);var Dp=[jc&&!tc("11")?"readystatechange":"load","abort","error"],Ep=function(a,b,c){if(c="string"===typeof c?c:c.src)a.Ne=!1,a.Wc[b]={src:c,Ig:null}},Fp=function(a,b){delete a.Wc[b];var c=a.Vc[b];c&&(delete a.Vc[b],a.Vb.ie(c,Dp,a.Gh))}; +Cp.prototype.start=function(){var a=this.Wc;xb(a).forEach(function(b){var c=a[b];if(c&&(delete a[b],!this.Ya)){if(this.Z){var d=this.Z;d=(d?new jh(ih(d)):Fa||(Fa=new jh)).Mj("IMG")}else d=new Image;c.Ig&&(d.crossOrigin=c.Ig);this.Vb.bb(d,Dp,this.Gh);this.Vc[b]=d;d.id=b;d.src=c.src}},this)}; +Cp.prototype.Gh=function(a){var b=a.currentTarget;if(b){if("readystatechange"==a.type)if("complete"==b.readyState)a.type="load";else return;"undefined"==typeof b.naturalWidth&&("load"==a.type?(b.naturalWidth=b.width,b.naturalHeight=b.height):(b.naturalWidth=0,b.naturalHeight=0));Fp(this,b.id);this.dispatchEvent({type:a.type,target:b});!this.Ya&&Bb(this.Vc)&&Bb(this.Wc)&&!this.Ne&&(this.Ne=!0,this.dispatchEvent("complete"))}};Cp.prototype.I=function(){delete this.Wc;delete this.Vc;Ca(this.Vb);Cp.M.I.call(this)};var Gp=function(a,b){np.call(this,a,b)};q(Gp,np);Gp.prototype.Jg=function(a,b,c,d){return new Hp(a,b,c,d)};w("ee.layers.ImageOverlay",Gp);var Hp=function(a,b,c,d){vp.call(this,a,b,c,d);this.Ud=Ip;this.nh=this.ga=this.Ld=null;this.cd=""};q(Hp,vp); +Hp.prototype.Qc=function(){try{var a=$b(this.$h);this.cd=Yb(a);var b="about:invalid#zClosurez"!==this.cd?this.cd:this.Ra}catch(c){b=this.Ra}this.ga=new Cp;Ep(this.ga,this.ua.id+"-image",b);this.nh=Kc(this.ga,Jp,function(c){"load"==c.type?(this.Ld=c.target,vp.prototype.Qc.call(this)):this.kd()},void 0,this);this.ga.start()};Hp.prototype.Kc=function(){vp.prototype.Kc.call(this);this.ga&&(Tc(this.nh),Ca(this.ga))};Hp.prototype.I=function(){vp.prototype.I.call(this);this.cd&&URL.revokeObjectURL(this.cd)}; var Ip=function(a){a.ua.appendChild(a.Ld)},Jp=["load","abort","error"];var Kp=function(a){for(var b=arguments[0],c=1;cthis.Pd)throw Error("[goog.structs.Pool] Min can not be greater than max");this.Za=new Np;this.zb=new qd;this.delay=0;this.uf=null;this.rd()};x(Op,Da);Op.prototype.Tc=function(){var a=Date.now();if(!(null!=this.uf&&a-this.ufthis.Pd&&0=this.S()){for(var c=this.Ca,d=0;d>1,a[d].getKey()>c.getKey())a[b]=a[d],b=d;else break;a[b]=c};k=Rp.prototype; +k.contains=function(a){return this.Za.contains(a)||this.zb.contains(a)};k.S=function(){return this.Za.S()+this.zb.S()};k.isEmpty=function(){return this.Za.isEmpty()&&this.zb.isEmpty()};k.I=function(){Op.M.I.call(this);if(0=this.S()){for(var c=this.Ca,d=0;d>1,a[d].getKey()>c.getKey())a[b]=a[d],b=d;else break;a[b]=c};k=Rp.prototype; k.remove=function(){var a=this.Ca,b=a.length,c=a[0];if(!(0>=b)){if(1==b)Wa(a);else{a[0]=a.pop();a=0;b=this.Ca;for(var d=b.length,e=b[a];a>1;){var f=2*a+1,g=2*a+2;f=ge.getKey())break;b[a]=b[f];a=f}b[a]=e}return c.ke}};k.T=function(){for(var a=this.Ca,b=[],c=a.length,d=0;dthis.fk)return!1;this.pg++;Fp(this.ga,this.fa);setTimeout(u(this.uk,this),0);return!0}; -k.uk=function(){if(!this.lc){var a=u(function(d){this.lc||(Ep(this.ga,this.fa,d),Kc(this.ga,dq,u(this.Tj,this)),this.ga.start())},this),b=this.getUrl();if(ae(b).Ea.ob("profiling")){var c=new Ji;c.Ac="blob";c.bb("complete",u(function(){this.Oh=c.getResponseHeader("X-Earth-Engine-Computation-Profile")||null;if(200<=c.getStatus()&&300>c.getStatus())try{var d=Wb(Yb(Vi(c)));var e="about:invalid#zClosurez"!==d}catch(f){}a(e?d:b)},this));c.ad("ready",u(c.Xa,c));c.send(b,"GET")}else a(b)}};k.pg=0;k.lc=!1; +k.uk=function(){if(!this.lc){var a=u(function(d){this.lc||(Ep(this.ga,this.fa,d),Kc(this.ga,dq,u(this.Tj,this)),this.ga.start())},this),b=this.getUrl();if(ae(b).Ea.ob("profiling")){var c=new Ji;c.Ac="blob";c.bb("complete",u(function(){this.Oh=c.getResponseHeader("X-Earth-Engine-Computation-Profile")||null;if(200<=c.getStatus()&&300>c.getStatus())try{var d=Yb($b(Vi(c)));var e="about:invalid#zClosurez"!==d}catch(f){}a(e?d:b)},this));c.ad("ready",u(c.Xa,c));c.send(b,"GET")}else a(b)}};k.pg=0;k.lc=!1; k.ga=null;k.li=null;k.Ma=null;k.Oh=null;var dq=["load","abort","error"],eq=function(){Da.call(this);this.Ha=!1};q(eq,Da);eq.prototype.setActive=function(a){this.Ha=a};eq.prototype.ph=function(){return this.Ha};var Zp=function(a,b){Up.call(this,a,b)};q(Zp,Up);Zp.prototype.Qe=function(){return new eq};Zp.prototype.Ad=function(a){a.Xa()};Zp.prototype.Df=function(a){return!a.Ya&&!a.ph()};var fq=function(a,b,c,d,e){vd.call(this,a,b,c,d,e);this.minZoom=d.minZoom||0;this.maxZoom=d.maxZoom||20;if(!window.google||!window.google.maps)throw Error("Google Maps API hasn't been initialized.");this.tileSize=d.tileSize||new google.maps.Size(256,256);this.name=d.name;this.eg=new qd;this.Ef=1;this.wa=e||null};q(fq,vd);k=fq.prototype;k.He=function(a){return Lc(this,"tileevent",a)};k.Nf=function(a){Tc(a)}; k.getTile=function(a,b,c){if(ba.y||a.y>=1<= goog.debug.MAX_STACK_DEPTH) { + sb.push("[...long stack...]"); + break; + } + } + opt_depth && depth >= opt_depth ? sb.push("[...reached max depth limit...]") : sb.push("[end]"); + return sb.join(""); +}; +goog.debug.MAX_STACK_DEPTH = 50; +goog.debug.getNativeStackTrace_ = function(fn) { + var tempErr = Error(); + if (Error.captureStackTrace) { + return Error.captureStackTrace(tempErr, fn), String(tempErr.stack); + } + try { + throw tempErr; + } catch (e) { + tempErr = e; + } + var stack = tempErr.stack; + return stack ? String(stack) : null; +}; +goog.debug.getStacktrace = function(fn) { + var stack; + goog.debug.FORCE_SLOPPY_STACKS || (stack = goog.debug.getNativeStackTrace_(fn || goog.debug.getStacktrace)); + stack || (stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, [])); + return stack; +}; +goog.debug.getStacktraceHelper_ = function(fn, visited) { + var sb = []; + if (module$contents$goog$array_contains(visited, fn)) { + sb.push("[...circular reference...]"); + } else { + if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) { + sb.push(goog.debug.getFunctionName(fn) + "("); + for (var args = fn.arguments, i = 0; args && i < args.length; i++) { + 0 < i && sb.push(", "); + var arg = args[i]; + switch(typeof arg) { + case "object": + var argDesc = arg ? "object" : "null"; + break; + case "string": + argDesc = arg; + break; + case "number": + argDesc = String(arg); + break; + case "boolean": + argDesc = arg ? "true" : "false"; + break; + case "function": + argDesc = (argDesc = goog.debug.getFunctionName(arg)) ? argDesc : "[fn]"; + break; + default: + argDesc = typeof arg; + } + 40 < argDesc.length && (argDesc = argDesc.substr(0, 40) + "..."); + sb.push(argDesc); + } + visited.push(fn); + sb.push(")\n"); + try { + sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited)); + } catch (e) { + sb.push("[exception trying to get caller]\n"); + } + } else { + fn ? sb.push("[...long stack...]") : sb.push("[end]"); + } + } + return sb.join(""); +}; +goog.debug.getFunctionName = function(fn) { + if (goog.debug.fnNameCache_[fn]) { + return goog.debug.fnNameCache_[fn]; + } + var functionSource = String(fn); + if (!goog.debug.fnNameCache_[functionSource]) { + var matches = /function\s+([^\(]+)/m.exec(functionSource); + goog.debug.fnNameCache_[functionSource] = matches ? matches[1] : "[Anonymous]"; + } + return goog.debug.fnNameCache_[functionSource]; +}; +goog.debug.makeWhitespaceVisible = function(string) { + return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]"); +}; +goog.debug.runtimeType = function(value) { + return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value; +}; +goog.debug.fnNameCache_ = {}; +goog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) { + return arg; +}; +goog.debug.freeze = function(arg) { + return function() { + return goog.debug.freezeInternal_(arg); + }(); +}; +goog.events.BrowserFeature = {HAS_W3C_BUTTON:!0, HAS_W3C_EVENT_SUPPORT:!0, SET_KEY_CODE_TO_PREVENT_DEFAULT:!1, HAS_NAVIGATOR_ONLINE_PROPERTY:!0, HAS_HTML5_NETWORK_EVENT_SUPPORT:!0, HTML5_NETWORK_EVENTS_FIRE_ON_BODY:!1, TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in +goog.global, MSPOINTER_EVENTS:"MSPointerEvent" in goog.global && !(!goog.global.navigator || !goog.global.navigator.msPointerEnabled), PASSIVE_EVENTS:function(fn) { + return {valueOf:fn}.valueOf(); +}(function() { + if (!goog.global.addEventListener || !Object.defineProperty) { + return !1; + } + var passive = !1, options = Object.defineProperty({}, "passive", {get:function() { + passive = !0; + }}); + try { + goog.global.addEventListener("test", goog.nullFunction, options), goog.global.removeEventListener("test", goog.nullFunction, options); + } catch (e) { + } + return passive; +})}; goog.string = {}; goog.string.internal = {}; goog.string.internal.startsWith = function(str, prefix) { @@ -2402,8 +2699,8 @@ goog.object.equals = function module$contents$goog$object_equals(a, b) { return !1; } } - for (var k$24 in b) { - if (!(k$24 in a)) { + for (var k$26 in b) { + if (!(k$26 in a)) { return !1; } } @@ -3869,18 +4166,18 @@ module$contents$goog$html$SafeHtml_SafeHtml.combineAttributes = function(fixedAt for (name in fixedAttributes) { Object.prototype.hasOwnProperty.call(fixedAttributes, name) && (goog.asserts.assert(name.toLowerCase() == name, "Must be lower case"), combinedAttributes[name] = fixedAttributes[name]); } - for (var name$25 in defaultAttributes) { - Object.prototype.hasOwnProperty.call(defaultAttributes, name$25) && (goog.asserts.assert(name$25.toLowerCase() == name$25, "Must be lower case"), combinedAttributes[name$25] = defaultAttributes[name$25]); + for (var name$27 in defaultAttributes) { + Object.prototype.hasOwnProperty.call(defaultAttributes, name$27) && (goog.asserts.assert(name$27.toLowerCase() == name$27, "Must be lower case"), combinedAttributes[name$27] = defaultAttributes[name$27]); } if (attributes) { - for (var name$26 in attributes) { - if (Object.prototype.hasOwnProperty.call(attributes, name$26)) { - var nameLower = name$26.toLowerCase(); + for (var name$28 in attributes) { + if (Object.prototype.hasOwnProperty.call(attributes, name$28)) { + var nameLower = name$28.toLowerCase(); if (nameLower in fixedAttributes) { - throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + nameLower + '" attribute, got "' + name$26 + '" with value "' + attributes[name$26] + '"' : ""); + throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + nameLower + '" attribute, got "' + name$28 + '" with value "' + attributes[name$28] + '"' : ""); } nameLower in defaultAttributes && delete combinedAttributes[nameLower]; - combinedAttributes[name$26] = attributes[name$26]; + combinedAttributes[name$28] = attributes[name$28]; } } } @@ -4486,571 +4783,273 @@ goog.string.lastComponent = function(str, separators) { } for (var lastSeparatorIndex = -1, i = 0; i < separators.length; i++) { if ("" != separators[i]) { - var currentSeparatorIndex = str.lastIndexOf(separators[i]); - currentSeparatorIndex > lastSeparatorIndex && (lastSeparatorIndex = currentSeparatorIndex); - } - } - return -1 == lastSeparatorIndex ? str : str.slice(lastSeparatorIndex + 1); -}; -goog.string.editDistance = function(a, b) { - var v0 = [], v1 = []; - if (a == b) { - return 0; - } - if (!a.length || !b.length) { - return Math.max(a.length, b.length); - } - for (var i = 0; i < b.length + 1; i++) { - v0[i] = i; - } - for (var i$27 = 0; i$27 < a.length; i$27++) { - v1[0] = i$27 + 1; - for (var j = 0; j < b.length; j++) { - v1[j + 1] = Math.min(v1[j] + 1, v0[j + 1] + 1, v0[j] + Number(a[i$27] != b[j])); - } - for (var j$28 = 0; j$28 < v0.length; j$28++) { - v0[j$28] = v1[j$28]; - } - } - return v1[b.length]; -}; -goog.labs.userAgent.engine = {}; -goog.labs.userAgent.engine.isPresto = function() { - return goog.labs.userAgent.util.matchUserAgent("Presto"); -}; -goog.labs.userAgent.engine.isTrident = function() { - return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE"); -}; -goog.labs.userAgent.engine.isEdge = function() { - return goog.labs.userAgent.util.matchUserAgent("Edge"); -}; -goog.labs.userAgent.engine.isWebKit = function() { - return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge(); -}; -goog.labs.userAgent.engine.isGecko = function() { - return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge(); -}; -goog.labs.userAgent.engine.getVersion = function() { - var userAgentString = goog.labs.userAgent.util.getUserAgent(); - if (userAgentString) { - var tuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString), engineTuple = goog.labs.userAgent.engine.getEngineTuple_(tuples); - if (engineTuple) { - return "Gecko" == engineTuple[0] ? goog.labs.userAgent.engine.getVersionForKey_(tuples, "Firefox") : engineTuple[1]; - } - var browserTuple = tuples[0], info; - if (browserTuple && (info = browserTuple[2])) { - var match = /Trident\/([^\s;]+)/.exec(info); - if (match) { - return match[1]; - } - } - } - return ""; -}; -goog.labs.userAgent.engine.getEngineTuple_ = function(tuples) { - if (!goog.labs.userAgent.engine.isEdge()) { - return tuples[1]; - } - for (var i = 0; i < tuples.length; i++) { - var tuple = tuples[i]; - if ("Edge" == tuple[0]) { - return tuple; - } - } -}; -goog.labs.userAgent.engine.isVersionOrHigher = function(version) { - return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), version); -}; -goog.labs.userAgent.engine.getVersionForKey_ = function(tuples, key) { - var pair = module$contents$goog$array_find(tuples, function(pair) { - return key == pair[0]; - }); - return pair && pair[1] || ""; -}; -goog.labs.userAgent.platform = {}; -goog.labs.userAgent.platform.isAndroid = function() { - return goog.labs.userAgent.util.matchUserAgent("Android"); -}; -goog.labs.userAgent.platform.isIpod = function() { - return goog.labs.userAgent.util.matchUserAgent("iPod"); -}; -goog.labs.userAgent.platform.isIphone = function() { - return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad"); -}; -goog.labs.userAgent.platform.isIpad = function() { - return goog.labs.userAgent.util.matchUserAgent("iPad"); -}; -goog.labs.userAgent.platform.isIos = function() { - return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod(); -}; -goog.labs.userAgent.platform.isMacintosh = function() { - return goog.labs.userAgent.util.matchUserAgent("Macintosh"); -}; -goog.labs.userAgent.platform.isLinux = function() { - return goog.labs.userAgent.util.matchUserAgent("Linux"); -}; -goog.labs.userAgent.platform.isWindows = function() { - return goog.labs.userAgent.util.matchUserAgent("Windows"); -}; -goog.labs.userAgent.platform.isChromeOS = function() { - return goog.labs.userAgent.util.matchUserAgent("CrOS"); -}; -goog.labs.userAgent.platform.isChromecast = function() { - return goog.labs.userAgent.util.matchUserAgent("CrKey"); -}; -goog.labs.userAgent.platform.isKaiOS = function() { - return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS"); -}; -goog.labs.userAgent.platform.getVersion = function() { - var userAgentString = goog.labs.userAgent.util.getUserAgent(), version = ""; - if (goog.labs.userAgent.platform.isWindows()) { - var re = /Windows (?:NT|Phone) ([0-9.]+)/; - var match = re.exec(userAgentString); - version = match ? match[1] : "0.0"; - } else { - goog.labs.userAgent.platform.isIos() ? (re = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, version = (match = re.exec(userAgentString)) && match[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (re = /Mac OS X ([0-9_.]+)/, version = (match = re.exec(userAgentString)) ? match[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (re = /(?:KaiOS)\/(\S+)/i, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isAndroid() ? (re = - /Android\s+([^\);]+)(\)|;)/, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isChromeOS() && (re = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, version = (match = re.exec(userAgentString)) && match[1]); - } - return version || ""; -}; -goog.labs.userAgent.platform.isVersionOrHigher = function(version) { - return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), version); -}; -goog.reflect = {}; -goog.reflect.object = function(type, object) { - return object; -}; -goog.reflect.objectProperty = function(prop, object) { - return prop; -}; -goog.reflect.sinkValue = function(x) { - goog.reflect.sinkValue[" "](x); - return x; -}; -goog.reflect.sinkValue[" "] = goog.nullFunction; -goog.reflect.canAccessProperty = function(obj, prop) { - try { - return goog.reflect.sinkValue(obj[prop]), !0; - } catch (e) { - } - return !1; -}; -goog.reflect.cache = function(cacheObj, key, valueFn, opt_keyFn) { - var storedKey = opt_keyFn ? opt_keyFn(key) : key; - return Object.prototype.hasOwnProperty.call(cacheObj, storedKey) ? cacheObj[storedKey] : cacheObj[storedKey] = valueFn(key); -}; -goog.userAgent = {}; -goog.userAgent.ASSUME_IE = !1; -goog.userAgent.ASSUME_EDGE = !1; -goog.userAgent.ASSUME_GECKO = !1; -goog.userAgent.ASSUME_WEBKIT = !1; -goog.userAgent.ASSUME_MOBILE_WEBKIT = !1; -goog.userAgent.ASSUME_OPERA = !1; -goog.userAgent.ASSUME_ANY_VERSION = !1; -goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA; -goog.userAgent.getUserAgentString = function() { - return goog.labs.userAgent.util.getUserAgent(); -}; -goog.userAgent.getNavigatorTyped = function() { - return goog.global.navigator || null; -}; -goog.userAgent.getNavigator = function() { - return goog.userAgent.getNavigatorTyped(); -}; -goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera(); -goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE(); -goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge(); -goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE; -goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko(); -goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit(); -goog.userAgent.isMobile_ = function() { - return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile"); -}; -goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_(); -goog.userAgent.SAFARI = goog.userAgent.WEBKIT; -goog.userAgent.determinePlatform_ = function() { - var navigator = goog.userAgent.getNavigatorTyped(); - return navigator && navigator.platform || ""; -}; -goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_(); -goog.userAgent.ASSUME_MAC = !1; -goog.userAgent.ASSUME_WINDOWS = !1; -goog.userAgent.ASSUME_LINUX = !1; -goog.userAgent.ASSUME_X11 = !1; -goog.userAgent.ASSUME_ANDROID = !1; -goog.userAgent.ASSUME_IPHONE = !1; -goog.userAgent.ASSUME_IPAD = !1; -goog.userAgent.ASSUME_IPOD = !1; -goog.userAgent.ASSUME_KAIOS = !1; -goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD; -goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh(); -goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows(); -goog.userAgent.isLegacyLinux_ = function() { - return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS(); -}; -goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_(); -goog.userAgent.isX11_ = function() { - var navigator = goog.userAgent.getNavigatorTyped(); - return !!navigator && goog.string.contains(navigator.appVersion || "", "X11"); -}; -goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_(); -goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid(); -goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone(); -goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad(); -goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod(); -goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos(); -goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS(); -goog.userAgent.determineVersion_ = function() { - var version = "", arr = goog.userAgent.getVersionRegexResult_(); - arr && (version = arr ? arr[1] : ""); - if (goog.userAgent.IE) { - var docMode = goog.userAgent.getDocumentMode_(); - if (null != docMode && docMode > parseFloat(version)) { - return String(docMode); - } - } - return version; -}; -goog.userAgent.getVersionRegexResult_ = function() { - var userAgent = goog.userAgent.getUserAgentString(); - if (goog.userAgent.GECKO) { - return /rv:([^\);]+)(\)|;)/.exec(userAgent); + var currentSeparatorIndex = str.lastIndexOf(separators[i]); + currentSeparatorIndex > lastSeparatorIndex && (lastSeparatorIndex = currentSeparatorIndex); + } } - if (goog.userAgent.EDGE) { - return /Edge\/([\d\.]+)/.exec(userAgent); + return -1 == lastSeparatorIndex ? str : str.slice(lastSeparatorIndex + 1); +}; +goog.string.editDistance = function(a, b) { + var v0 = [], v1 = []; + if (a == b) { + return 0; } - if (goog.userAgent.IE) { - return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent); + if (!a.length || !b.length) { + return Math.max(a.length, b.length); } - if (goog.userAgent.WEBKIT) { - return /WebKit\/(\S+)/.exec(userAgent); + for (var i = 0; i < b.length + 1; i++) { + v0[i] = i; } - if (goog.userAgent.OPERA) { - return /(?:Version)[ \/]?(\S+)/.exec(userAgent); + for (var i$29 = 0; i$29 < a.length; i$29++) { + v1[0] = i$29 + 1; + for (var j = 0; j < b.length; j++) { + v1[j + 1] = Math.min(v1[j] + 1, v0[j + 1] + 1, v0[j] + Number(a[i$29] != b[j])); + } + for (var j$30 = 0; j$30 < v0.length; j$30++) { + v0[j$30] = v1[j$30]; + } } + return v1[b.length]; }; -goog.userAgent.getDocumentMode_ = function() { - var doc = goog.global.document; - return doc ? doc.documentMode : void 0; +goog.labs.userAgent.engine = {}; +goog.labs.userAgent.engine.isPresto = function() { + return goog.labs.userAgent.util.matchUserAgent("Presto"); }; -goog.userAgent.VERSION = goog.userAgent.determineVersion_(); -goog.userAgent.compare = function(v1, v2) { - return goog.string.compareVersions(v1, v2); +goog.labs.userAgent.engine.isTrident = function() { + return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE"); }; -goog.userAgent.isVersionOrHigherCache_ = {}; -goog.userAgent.isVersionOrHigher = function(version) { - return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() { - return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, version); - }); +goog.labs.userAgent.engine.isEdge = function() { + return goog.labs.userAgent.util.matchUserAgent("Edge"); }; -goog.userAgent.isDocumentModeOrHigher = function(documentMode) { - return Number(goog.userAgent.DOCUMENT_MODE) >= documentMode; +goog.labs.userAgent.engine.isWebKit = function() { + return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge(); }; -goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher; -goog.userAgent.DOCUMENT_MODE = function() { - if (goog.global.document && goog.userAgent.IE) { - var documentMode = goog.userAgent.getDocumentMode_(); - return documentMode ? documentMode : parseInt(goog.userAgent.VERSION, 10) || void 0; - } -}(); -goog.debug.LOGGING_ENABLED = goog.DEBUG; -goog.debug.FORCE_SLOPPY_STACKS = !1; -goog.debug.CHECK_FOR_THROWN_EVENT = !1; -goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) { - var target = opt_target || goog.global, oldErrorHandler = target.onerror, retVal = !!opt_cancel; - goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher("535.3") && (retVal = !retVal); - target.onerror = function(message, url, line, opt_col, opt_error) { - oldErrorHandler && oldErrorHandler(message, url, line, opt_col, opt_error); - logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error}); - return retVal; - }; +goog.labs.userAgent.engine.isGecko = function() { + return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge(); }; -goog.debug.expose = function(obj, opt_showFn) { - if ("undefined" == typeof obj) { - return "undefined"; - } - if (null == obj) { - return "NULL"; - } - var str = [], x; - for (x in obj) { - if (opt_showFn || "function" !== typeof obj[x]) { - var s = x + " = "; - try { - s += obj[x]; - } catch (e) { - s += "*** " + e + " ***"; - } - str.push(s); +goog.labs.userAgent.engine.getVersion = function() { + var userAgentString = goog.labs.userAgent.util.getUserAgent(); + if (userAgentString) { + var tuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString), engineTuple = goog.labs.userAgent.engine.getEngineTuple_(tuples); + if (engineTuple) { + return "Gecko" == engineTuple[0] ? goog.labs.userAgent.engine.getVersionForKey_(tuples, "Firefox") : engineTuple[1]; } - } - return str.join("\n"); -}; -goog.debug.deepExpose = function(obj$jscomp$0, opt_showFn) { - var str$jscomp$0 = [], uidsToCleanup = [], ancestorUids = {}, helper = function(obj, space) { - var nestspace = space + " ", indentMultiline = function(str) { - return str.replace(/\n/g, "\n" + space); - }; - try { - if (void 0 === obj) { - str$jscomp$0.push("undefined"); - } else { - if (null === obj) { - str$jscomp$0.push("NULL"); - } else { - if ("string" === typeof obj) { - str$jscomp$0.push('"' + indentMultiline(obj) + '"'); - } else { - if ("function" === typeof obj) { - str$jscomp$0.push(indentMultiline(String(obj))); - } else { - if (goog.isObject(obj)) { - goog.hasUid(obj) || uidsToCleanup.push(obj); - var uid = goog.getUid(obj); - if (ancestorUids[uid]) { - str$jscomp$0.push("*** reference loop detected (id=" + uid + ") ***"); - } else { - ancestorUids[uid] = !0; - str$jscomp$0.push("{"); - for (var x in obj) { - if (opt_showFn || "function" !== typeof obj[x]) { - str$jscomp$0.push("\n"), str$jscomp$0.push(nestspace), str$jscomp$0.push(x + " = "), helper(obj[x], nestspace); - } - } - str$jscomp$0.push("\n" + space + "}"); - delete ancestorUids[uid]; - } - } else { - str$jscomp$0.push(obj); - } - } - } - } + var browserTuple = tuples[0], info; + if (browserTuple && (info = browserTuple[2])) { + var match = /Trident\/([^\s;]+)/.exec(info); + if (match) { + return match[1]; } - } catch (e) { - str$jscomp$0.push("*** " + e + " ***"); } - }; - helper(obj$jscomp$0, ""); - for (var i = 0; i < uidsToCleanup.length; i++) { - goog.removeUid(uidsToCleanup[i]); - } - return str$jscomp$0.join(""); -}; -goog.debug.exposeArray = function(arr) { - for (var str = [], i = 0; i < arr.length; i++) { - Array.isArray(arr[i]) ? str.push(goog.debug.exposeArray(arr[i])) : str.push(arr[i]); } - return "[ " + str.join(", ") + " ]"; + return ""; }; -goog.debug.normalizeErrorObject = function(err) { - var href = goog.getObjectByName("window.location.href"); - null == err && (err = 'Unknown Error of type "null/undefined"'); - if ("string" === typeof err) { - return {message:err, name:"Unknown error", lineNumber:"Not available", fileName:href, stack:"Not available"}; - } - var threwError = !1; - try { - var lineNumber = err.lineNumber || err.line || "Not available"; - } catch (e) { - lineNumber = "Not available", threwError = !0; - } - try { - var fileName = err.fileName || err.filename || err.sourceURL || goog.global.$googDebugFname || href; - } catch (e$29) { - fileName = "Not available", threwError = !0; +goog.labs.userAgent.engine.getEngineTuple_ = function(tuples) { + if (!goog.labs.userAgent.engine.isEdge()) { + return tuples[1]; } - var stack = goog.debug.serializeErrorStack_(err); - if (!(!threwError && err.lineNumber && err.fileName && err.stack && err.message && err.name)) { - var message = err.message; - if (null == message) { - if (err.constructor && err.constructor instanceof Function) { - var ctorName = err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor); - message = 'Unknown Error of type "' + ctorName + '"'; - if (goog.debug.CHECK_FOR_THROWN_EVENT && "Event" == ctorName) { - try { - message = message + ' with Event.type "' + (err.type || "") + '"'; - } catch (e$30) { - } - } - } else { - message = "Unknown Error of unknown type"; - } - "function" === typeof err.toString && Object.prototype.toString !== err.toString && (message += ": " + err.toString()); + for (var i = 0; i < tuples.length; i++) { + var tuple = tuples[i]; + if ("Edge" == tuple[0]) { + return tuple; } - return {message:message, name:err.name || "UnknownError", lineNumber:lineNumber, fileName:fileName, stack:stack || "Not available"}; } - err.stack = stack; - return {message:err.message, name:err.name, lineNumber:err.lineNumber, fileName:err.fileName, stack:err.stack}; }; -goog.debug.serializeErrorStack_ = function(e, seen) { - seen || (seen = {}); - seen[goog.debug.serializeErrorAsKey_(e)] = !0; - var stack = e.stack || "", cause = e.cause; - cause && !seen[goog.debug.serializeErrorAsKey_(cause)] && (stack += "\nCaused by: ", cause.stack && 0 == cause.stack.indexOf(cause.toString()) || (stack += "string" === typeof cause ? cause : cause.message + "\n"), stack += goog.debug.serializeErrorStack_(cause, seen)); - return stack; +goog.labs.userAgent.engine.isVersionOrHigher = function(version) { + return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), version); }; -goog.debug.serializeErrorAsKey_ = function(e) { - var keyPrefix = ""; - "function" === typeof e.toString && (keyPrefix = "" + e); - return keyPrefix + e.stack; +goog.labs.userAgent.engine.getVersionForKey_ = function(tuples, key) { + var pair = module$contents$goog$array_find(tuples, function(pair) { + return key == pair[0]; + }); + return pair && pair[1] || ""; }; -goog.debug.enhanceError = function(err, opt_message) { - if (err instanceof Error) { - var error = err; - } else { - error = Error(err), Error.captureStackTrace && Error.captureStackTrace(error, goog.debug.enhanceError); - } - error.stack || (error.stack = goog.debug.getStacktrace(goog.debug.enhanceError)); - if (opt_message) { - for (var x = 0; error["message" + x];) { - ++x; - } - error["message" + x] = String(opt_message); - } - return error; +goog.labs.userAgent.platform = {}; +goog.labs.userAgent.platform.isAndroid = function() { + return goog.labs.userAgent.util.matchUserAgent("Android"); +}; +goog.labs.userAgent.platform.isIpod = function() { + return goog.labs.userAgent.util.matchUserAgent("iPod"); +}; +goog.labs.userAgent.platform.isIphone = function() { + return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad"); +}; +goog.labs.userAgent.platform.isIpad = function() { + return goog.labs.userAgent.util.matchUserAgent("iPad"); +}; +goog.labs.userAgent.platform.isIos = function() { + return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod(); +}; +goog.labs.userAgent.platform.isMacintosh = function() { + return goog.labs.userAgent.util.matchUserAgent("Macintosh"); +}; +goog.labs.userAgent.platform.isLinux = function() { + return goog.labs.userAgent.util.matchUserAgent("Linux"); +}; +goog.labs.userAgent.platform.isWindows = function() { + return goog.labs.userAgent.util.matchUserAgent("Windows"); +}; +goog.labs.userAgent.platform.isChromeOS = function() { + return goog.labs.userAgent.util.matchUserAgent("CrOS"); +}; +goog.labs.userAgent.platform.isChromecast = function() { + return goog.labs.userAgent.util.matchUserAgent("CrKey"); +}; +goog.labs.userAgent.platform.isKaiOS = function() { + return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS"); }; -goog.debug.enhanceErrorWithContext = function(err, opt_context) { - var error = goog.debug.enhanceError(err); - if (opt_context) { - for (var key in opt_context) { - goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]); - } +goog.labs.userAgent.platform.getVersion = function() { + var userAgentString = goog.labs.userAgent.util.getUserAgent(), version = ""; + if (goog.labs.userAgent.platform.isWindows()) { + var re = /Windows (?:NT|Phone) ([0-9.]+)/; + var match = re.exec(userAgentString); + version = match ? match[1] : "0.0"; + } else { + goog.labs.userAgent.platform.isIos() ? (re = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, version = (match = re.exec(userAgentString)) && match[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (re = /Mac OS X ([0-9_.]+)/, version = (match = re.exec(userAgentString)) ? match[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (re = /(?:KaiOS)\/(\S+)/i, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isAndroid() ? (re = + /Android\s+([^\);]+)(\)|;)/, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isChromeOS() && (re = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, version = (match = re.exec(userAgentString)) && match[1]); } - return error; + return version || ""; }; -goog.debug.getStacktraceSimple = function(opt_depth) { - if (!goog.debug.FORCE_SLOPPY_STACKS) { - var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple); - if (stack) { - return stack; - } - } - for (var sb = [], fn = arguments.callee.caller, depth = 0; fn && (!opt_depth || depth < opt_depth);) { - sb.push(goog.debug.getFunctionName(fn)); - sb.push("()\n"); - try { - fn = fn.caller; - } catch (e) { - sb.push("[exception trying to get caller]\n"); - break; - } - depth++; - if (depth >= goog.debug.MAX_STACK_DEPTH) { - sb.push("[...long stack...]"); - break; - } - } - opt_depth && depth >= opt_depth ? sb.push("[...reached max depth limit...]") : sb.push("[end]"); - return sb.join(""); +goog.labs.userAgent.platform.isVersionOrHigher = function(version) { + return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), version); }; -goog.debug.MAX_STACK_DEPTH = 50; -goog.debug.getNativeStackTrace_ = function(fn) { - var tempErr = Error(); - if (Error.captureStackTrace) { - return Error.captureStackTrace(tempErr, fn), String(tempErr.stack); - } +goog.reflect = {}; +goog.reflect.object = function(type, object) { + return object; +}; +goog.reflect.objectProperty = function(prop, object) { + return prop; +}; +goog.reflect.sinkValue = function(x) { + goog.reflect.sinkValue[" "](x); + return x; +}; +goog.reflect.sinkValue[" "] = goog.nullFunction; +goog.reflect.canAccessProperty = function(obj, prop) { try { - throw tempErr; + return goog.reflect.sinkValue(obj[prop]), !0; } catch (e) { - tempErr = e; } - var stack = tempErr.stack; - return stack ? String(stack) : null; + return !1; }; -goog.debug.getStacktrace = function(fn) { - var stack; - goog.debug.FORCE_SLOPPY_STACKS || (stack = goog.debug.getNativeStackTrace_(fn || goog.debug.getStacktrace)); - stack || (stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, [])); - return stack; +goog.reflect.cache = function(cacheObj, key, valueFn, opt_keyFn) { + var storedKey = opt_keyFn ? opt_keyFn(key) : key; + return Object.prototype.hasOwnProperty.call(cacheObj, storedKey) ? cacheObj[storedKey] : cacheObj[storedKey] = valueFn(key); }; -goog.debug.getStacktraceHelper_ = function(fn, visited) { - var sb = []; - if (module$contents$goog$array_contains(visited, fn)) { - sb.push("[...circular reference...]"); - } else { - if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) { - sb.push(goog.debug.getFunctionName(fn) + "("); - for (var args = fn.arguments, i = 0; args && i < args.length; i++) { - 0 < i && sb.push(", "); - var arg = args[i]; - switch(typeof arg) { - case "object": - var argDesc = arg ? "object" : "null"; - break; - case "string": - argDesc = arg; - break; - case "number": - argDesc = String(arg); - break; - case "boolean": - argDesc = arg ? "true" : "false"; - break; - case "function": - argDesc = (argDesc = goog.debug.getFunctionName(arg)) ? argDesc : "[fn]"; - break; - default: - argDesc = typeof arg; - } - 40 < argDesc.length && (argDesc = argDesc.substr(0, 40) + "..."); - sb.push(argDesc); - } - visited.push(fn); - sb.push(")\n"); - try { - sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited)); - } catch (e) { - sb.push("[exception trying to get caller]\n"); - } - } else { - fn ? sb.push("[...long stack...]") : sb.push("[end]"); +goog.userAgent = {}; +goog.userAgent.ASSUME_IE = !1; +goog.userAgent.ASSUME_EDGE = !1; +goog.userAgent.ASSUME_GECKO = !1; +goog.userAgent.ASSUME_WEBKIT = !1; +goog.userAgent.ASSUME_MOBILE_WEBKIT = !1; +goog.userAgent.ASSUME_OPERA = !1; +goog.userAgent.ASSUME_ANY_VERSION = !1; +goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA; +goog.userAgent.getUserAgentString = function() { + return goog.labs.userAgent.util.getUserAgent(); +}; +goog.userAgent.getNavigatorTyped = function() { + return goog.global.navigator || null; +}; +goog.userAgent.getNavigator = function() { + return goog.userAgent.getNavigatorTyped(); +}; +goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera(); +goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE(); +goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge(); +goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE; +goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko(); +goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit(); +goog.userAgent.isMobile_ = function() { + return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile"); +}; +goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_(); +goog.userAgent.SAFARI = goog.userAgent.WEBKIT; +goog.userAgent.determinePlatform_ = function() { + var navigator = goog.userAgent.getNavigatorTyped(); + return navigator && navigator.platform || ""; +}; +goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_(); +goog.userAgent.ASSUME_MAC = !1; +goog.userAgent.ASSUME_WINDOWS = !1; +goog.userAgent.ASSUME_LINUX = !1; +goog.userAgent.ASSUME_X11 = !1; +goog.userAgent.ASSUME_ANDROID = !1; +goog.userAgent.ASSUME_IPHONE = !1; +goog.userAgent.ASSUME_IPAD = !1; +goog.userAgent.ASSUME_IPOD = !1; +goog.userAgent.ASSUME_KAIOS = !1; +goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD; +goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh(); +goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows(); +goog.userAgent.isLegacyLinux_ = function() { + return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS(); +}; +goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_(); +goog.userAgent.isX11_ = function() { + var navigator = goog.userAgent.getNavigatorTyped(); + return !!navigator && goog.string.contains(navigator.appVersion || "", "X11"); +}; +goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_(); +goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid(); +goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone(); +goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad(); +goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod(); +goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos(); +goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS(); +goog.userAgent.determineVersion_ = function() { + var version = "", arr = goog.userAgent.getVersionRegexResult_(); + arr && (version = arr ? arr[1] : ""); + if (goog.userAgent.IE) { + var docMode = goog.userAgent.getDocumentMode_(); + if (null != docMode && docMode > parseFloat(version)) { + return String(docMode); } } - return sb.join(""); + return version; }; -goog.debug.getFunctionName = function(fn) { - if (goog.debug.fnNameCache_[fn]) { - return goog.debug.fnNameCache_[fn]; +goog.userAgent.getVersionRegexResult_ = function() { + var userAgent = goog.userAgent.getUserAgentString(); + if (goog.userAgent.GECKO) { + return /rv:([^\);]+)(\)|;)/.exec(userAgent); } - var functionSource = String(fn); - if (!goog.debug.fnNameCache_[functionSource]) { - var matches = /function\s+([^\(]+)/m.exec(functionSource); - goog.debug.fnNameCache_[functionSource] = matches ? matches[1] : "[Anonymous]"; + if (goog.userAgent.EDGE) { + return /Edge\/([\d\.]+)/.exec(userAgent); + } + if (goog.userAgent.IE) { + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent); + } + if (goog.userAgent.WEBKIT) { + return /WebKit\/(\S+)/.exec(userAgent); + } + if (goog.userAgent.OPERA) { + return /(?:Version)[ \/]?(\S+)/.exec(userAgent); } - return goog.debug.fnNameCache_[functionSource]; }; -goog.debug.makeWhitespaceVisible = function(string) { - return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]"); +goog.userAgent.getDocumentMode_ = function() { + var doc = goog.global.document; + return doc ? doc.documentMode : void 0; }; -goog.debug.runtimeType = function(value) { - return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value; +goog.userAgent.VERSION = goog.userAgent.determineVersion_(); +goog.userAgent.compare = function(v1, v2) { + return goog.string.compareVersions(v1, v2); }; -goog.debug.fnNameCache_ = {}; -goog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) { - return arg; +goog.userAgent.isVersionOrHigherCache_ = {}; +goog.userAgent.isVersionOrHigher = function(version) { + return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() { + return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, version); + }); }; -goog.debug.freeze = function(arg) { - return function() { - return goog.debug.freezeInternal_(arg); - }(); +goog.userAgent.isDocumentModeOrHigher = function(documentMode) { + return Number(goog.userAgent.DOCUMENT_MODE) >= documentMode; }; -goog.events.BrowserFeature = {HAS_W3C_BUTTON:!0, HAS_W3C_EVENT_SUPPORT:!0, SET_KEY_CODE_TO_PREVENT_DEFAULT:!1, HAS_NAVIGATOR_ONLINE_PROPERTY:!0, HAS_HTML5_NETWORK_EVENT_SUPPORT:!0, HTML5_NETWORK_EVENTS_FIRE_ON_BODY:!1, TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in -goog.global, MSPOINTER_EVENTS:"MSPointerEvent" in goog.global && !(!goog.global.navigator || !goog.global.navigator.msPointerEnabled), PASSIVE_EVENTS:function(fn) { - return {valueOf:fn}.valueOf(); -}(function() { - if (!goog.global.addEventListener || !Object.defineProperty) { - return !1; - } - var passive = !1, options = Object.defineProperty({}, "passive", {get:function() { - passive = !0; - }}); - try { - goog.global.addEventListener("test", goog.nullFunction, options), goog.global.removeEventListener("test", goog.nullFunction, options); - } catch (e) { +goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher; +goog.userAgent.DOCUMENT_MODE = function() { + if (goog.global.document && goog.userAgent.IE) { + var documentMode = goog.userAgent.getDocumentMode_(); + return documentMode ? documentMode : parseInt(goog.userAgent.VERSION, 10) || void 0; } - return passive; -})}; +}(); goog.events.MouseEvents = {}; goog.events.getVendorPrefixedName_ = function(eventName) { return goog.userAgent.WEBKIT ? "webkit" + eventName : goog.userAgent.OPERA ? "o" + eventName.toLowerCase() : eventName.toLowerCase(); @@ -13053,8 +13052,8 @@ goog.dom.BrowserFeature.detectOffscreenCanvas_ = function(contextName) { }; goog.dom.BrowserFeature.OFFSCREEN_CANVAS_2D = !goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS && (goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS || goog.dom.BrowserFeature.detectOffscreenCanvas_("2d")); goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES = !goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9); -goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE = !goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.1"); -goog.dom.BrowserFeature.CAN_USE_INNER_TEXT = goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"); +goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE = !goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO; +goog.dom.BrowserFeature.CAN_USE_INNER_TEXT = !1; goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY = goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT; goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT = goog.userAgent.IE; goog.dom.BrowserFeature.LEGACY_IE_RANGES = goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9); @@ -13769,10 +13768,6 @@ goog.dom.isFocusable = function(element) { return (focusable = goog.dom.nativelySupportsFocus_(element) ? !element.disabled && (!goog.dom.hasSpecifiedTabIndex_(element) || goog.dom.isTabIndexFocusable_(element)) : goog.dom.isFocusableTabIndex(element)) && goog.userAgent.IE ? goog.dom.hasNonZeroBoundingRect_(element) : focusable; }; goog.dom.hasSpecifiedTabIndex_ = function(element) { - if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9")) { - var attrNode = element.getAttributeNode("tabindex"); - return null != attrNode && attrNode.specified; - } return element.hasAttribute("tabindex"); }; goog.dom.isTabIndexFocusable_ = function(element) { @@ -15849,7 +15844,7 @@ goog.debug.entryPointRegistry.register(function(transformer) { ee.apiclient = {}; var module$contents$ee$apiclient_apiclient = {}; ee.apiclient.VERSION = module$exports$ee$apiVersion.V1ALPHA; -ee.apiclient.API_CLIENT_VERSION = "0.1.275"; +ee.apiclient.API_CLIENT_VERSION = "0.1.276"; ee.apiclient.NULL_VALUE = module$exports$eeapiclient$domain_object.NULL_VALUE; ee.apiclient.PromiseRequestService = module$exports$eeapiclient$promise_request_service.PromiseRequestService; ee.apiclient.MakeRequestParams = module$contents$eeapiclient$request_params_MakeRequestParams; @@ -16130,8 +16125,8 @@ module$contents$ee$apiclient_apiclient.send = function(path, params, callback, m var profileHookAtCallTime = module$contents$ee$apiclient_apiclient.profileHook_, contentType = "application/x-www-form-urlencoded"; body && (contentType = "application/json", method && method.startsWith("multipart") && (contentType = method, method = "POST")); method = method || "POST"; - var headers = {"Content-Type":contentType, }, version = "0.1.275"; - "0.1.275" === version && (version = "latest"); + var headers = {"Content-Type":contentType, }, version = "0.1.276"; + "0.1.276" === version && (version = "latest"); headers[module$contents$ee$apiclient_apiclient.API_CLIENT_VERSION_HEADER] = "ee-js/" + version; var authToken = module$contents$ee$apiclient_apiclient.getAuthToken(); if (null != authToken) { diff --git a/javascript/build/ee_api_js_npm.js b/javascript/build/ee_api_js_npm.js index aaef5b4ab..0795a4211 100644 --- a/javascript/build/ee_api_js_npm.js +++ b/javascript/build/ee_api_js_npm.js @@ -2110,6 +2110,303 @@ goog.debug.errorcontext.getErrorContext = function(err) { return err[goog.debug.errorcontext.CONTEXT_KEY_] || {}; }; goog.debug.errorcontext.CONTEXT_KEY_ = "__closure__error__context__984382"; +goog.debug.LOGGING_ENABLED = goog.DEBUG; +goog.debug.FORCE_SLOPPY_STACKS = !1; +goog.debug.CHECK_FOR_THROWN_EVENT = !1; +goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) { + var target = opt_target || goog.global, oldErrorHandler = target.onerror, retVal = !!opt_cancel; + target.onerror = function(message, url, line, opt_col, opt_error) { + oldErrorHandler && oldErrorHandler(message, url, line, opt_col, opt_error); + logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error}); + return retVal; + }; +}; +goog.debug.expose = function(obj, opt_showFn) { + if ("undefined" == typeof obj) { + return "undefined"; + } + if (null == obj) { + return "NULL"; + } + var str = [], x; + for (x in obj) { + if (opt_showFn || "function" !== typeof obj[x]) { + var s = x + " = "; + try { + s += obj[x]; + } catch (e) { + s += "*** " + e + " ***"; + } + str.push(s); + } + } + return str.join("\n"); +}; +goog.debug.deepExpose = function(obj$jscomp$0, opt_showFn) { + var str$jscomp$0 = [], uidsToCleanup = [], ancestorUids = {}, helper = function(obj, space) { + var nestspace = space + " ", indentMultiline = function(str) { + return str.replace(/\n/g, "\n" + space); + }; + try { + if (void 0 === obj) { + str$jscomp$0.push("undefined"); + } else { + if (null === obj) { + str$jscomp$0.push("NULL"); + } else { + if ("string" === typeof obj) { + str$jscomp$0.push('"' + indentMultiline(obj) + '"'); + } else { + if ("function" === typeof obj) { + str$jscomp$0.push(indentMultiline(String(obj))); + } else { + if (goog.isObject(obj)) { + goog.hasUid(obj) || uidsToCleanup.push(obj); + var uid = goog.getUid(obj); + if (ancestorUids[uid]) { + str$jscomp$0.push("*** reference loop detected (id=" + uid + ") ***"); + } else { + ancestorUids[uid] = !0; + str$jscomp$0.push("{"); + for (var x in obj) { + if (opt_showFn || "function" !== typeof obj[x]) { + str$jscomp$0.push("\n"), str$jscomp$0.push(nestspace), str$jscomp$0.push(x + " = "), helper(obj[x], nestspace); + } + } + str$jscomp$0.push("\n" + space + "}"); + delete ancestorUids[uid]; + } + } else { + str$jscomp$0.push(obj); + } + } + } + } + } + } catch (e) { + str$jscomp$0.push("*** " + e + " ***"); + } + }; + helper(obj$jscomp$0, ""); + for (var i = 0; i < uidsToCleanup.length; i++) { + goog.removeUid(uidsToCleanup[i]); + } + return str$jscomp$0.join(""); +}; +goog.debug.exposeArray = function(arr) { + for (var str = [], i = 0; i < arr.length; i++) { + Array.isArray(arr[i]) ? str.push(goog.debug.exposeArray(arr[i])) : str.push(arr[i]); + } + return "[ " + str.join(", ") + " ]"; +}; +goog.debug.normalizeErrorObject = function(err) { + var href = goog.getObjectByName("window.location.href"); + null == err && (err = 'Unknown Error of type "null/undefined"'); + if ("string" === typeof err) { + return {message:err, name:"Unknown error", lineNumber:"Not available", fileName:href, stack:"Not available"}; + } + var threwError = !1; + try { + var lineNumber = err.lineNumber || err.line || "Not available"; + } catch (e) { + lineNumber = "Not available", threwError = !0; + } + try { + var fileName = err.fileName || err.filename || err.sourceURL || goog.global.$googDebugFname || href; + } catch (e$24) { + fileName = "Not available", threwError = !0; + } + var stack = goog.debug.serializeErrorStack_(err); + if (!(!threwError && err.lineNumber && err.fileName && err.stack && err.message && err.name)) { + var message = err.message; + if (null == message) { + if (err.constructor && err.constructor instanceof Function) { + var ctorName = err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor); + message = 'Unknown Error of type "' + ctorName + '"'; + if (goog.debug.CHECK_FOR_THROWN_EVENT && "Event" == ctorName) { + try { + message = message + ' with Event.type "' + (err.type || "") + '"'; + } catch (e$25) { + } + } + } else { + message = "Unknown Error of unknown type"; + } + "function" === typeof err.toString && Object.prototype.toString !== err.toString && (message += ": " + err.toString()); + } + return {message:message, name:err.name || "UnknownError", lineNumber:lineNumber, fileName:fileName, stack:stack || "Not available"}; + } + err.stack = stack; + return {message:err.message, name:err.name, lineNumber:err.lineNumber, fileName:err.fileName, stack:err.stack}; +}; +goog.debug.serializeErrorStack_ = function(e, seen) { + seen || (seen = {}); + seen[goog.debug.serializeErrorAsKey_(e)] = !0; + var stack = e.stack || "", cause = e.cause; + cause && !seen[goog.debug.serializeErrorAsKey_(cause)] && (stack += "\nCaused by: ", cause.stack && 0 == cause.stack.indexOf(cause.toString()) || (stack += "string" === typeof cause ? cause : cause.message + "\n"), stack += goog.debug.serializeErrorStack_(cause, seen)); + return stack; +}; +goog.debug.serializeErrorAsKey_ = function(e) { + var keyPrefix = ""; + "function" === typeof e.toString && (keyPrefix = "" + e); + return keyPrefix + e.stack; +}; +goog.debug.enhanceError = function(err, opt_message) { + if (err instanceof Error) { + var error = err; + } else { + error = Error(err), Error.captureStackTrace && Error.captureStackTrace(error, goog.debug.enhanceError); + } + error.stack || (error.stack = goog.debug.getStacktrace(goog.debug.enhanceError)); + if (opt_message) { + for (var x = 0; error["message" + x];) { + ++x; + } + error["message" + x] = String(opt_message); + } + return error; +}; +goog.debug.enhanceErrorWithContext = function(err, opt_context) { + var error = goog.debug.enhanceError(err); + if (opt_context) { + for (var key in opt_context) { + goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]); + } + } + return error; +}; +goog.debug.getStacktraceSimple = function(opt_depth) { + if (!goog.debug.FORCE_SLOPPY_STACKS) { + var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple); + if (stack) { + return stack; + } + } + for (var sb = [], fn = arguments.callee.caller, depth = 0; fn && (!opt_depth || depth < opt_depth);) { + sb.push(goog.debug.getFunctionName(fn)); + sb.push("()\n"); + try { + fn = fn.caller; + } catch (e) { + sb.push("[exception trying to get caller]\n"); + break; + } + depth++; + if (depth >= goog.debug.MAX_STACK_DEPTH) { + sb.push("[...long stack...]"); + break; + } + } + opt_depth && depth >= opt_depth ? sb.push("[...reached max depth limit...]") : sb.push("[end]"); + return sb.join(""); +}; +goog.debug.MAX_STACK_DEPTH = 50; +goog.debug.getNativeStackTrace_ = function(fn) { + var tempErr = Error(); + if (Error.captureStackTrace) { + return Error.captureStackTrace(tempErr, fn), String(tempErr.stack); + } + try { + throw tempErr; + } catch (e) { + tempErr = e; + } + var stack = tempErr.stack; + return stack ? String(stack) : null; +}; +goog.debug.getStacktrace = function(fn) { + var stack; + goog.debug.FORCE_SLOPPY_STACKS || (stack = goog.debug.getNativeStackTrace_(fn || goog.debug.getStacktrace)); + stack || (stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, [])); + return stack; +}; +goog.debug.getStacktraceHelper_ = function(fn, visited) { + var sb = []; + if (module$contents$goog$array_contains(visited, fn)) { + sb.push("[...circular reference...]"); + } else { + if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) { + sb.push(goog.debug.getFunctionName(fn) + "("); + for (var args = fn.arguments, i = 0; args && i < args.length; i++) { + 0 < i && sb.push(", "); + var arg = args[i]; + switch(typeof arg) { + case "object": + var argDesc = arg ? "object" : "null"; + break; + case "string": + argDesc = arg; + break; + case "number": + argDesc = String(arg); + break; + case "boolean": + argDesc = arg ? "true" : "false"; + break; + case "function": + argDesc = (argDesc = goog.debug.getFunctionName(arg)) ? argDesc : "[fn]"; + break; + default: + argDesc = typeof arg; + } + 40 < argDesc.length && (argDesc = argDesc.substr(0, 40) + "..."); + sb.push(argDesc); + } + visited.push(fn); + sb.push(")\n"); + try { + sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited)); + } catch (e) { + sb.push("[exception trying to get caller]\n"); + } + } else { + fn ? sb.push("[...long stack...]") : sb.push("[end]"); + } + } + return sb.join(""); +}; +goog.debug.getFunctionName = function(fn) { + if (goog.debug.fnNameCache_[fn]) { + return goog.debug.fnNameCache_[fn]; + } + var functionSource = String(fn); + if (!goog.debug.fnNameCache_[functionSource]) { + var matches = /function\s+([^\(]+)/m.exec(functionSource); + goog.debug.fnNameCache_[functionSource] = matches ? matches[1] : "[Anonymous]"; + } + return goog.debug.fnNameCache_[functionSource]; +}; +goog.debug.makeWhitespaceVisible = function(string) { + return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]"); +}; +goog.debug.runtimeType = function(value) { + return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value; +}; +goog.debug.fnNameCache_ = {}; +goog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) { + return arg; +}; +goog.debug.freeze = function(arg) { + return function() { + return goog.debug.freezeInternal_(arg); + }(); +}; +goog.events.BrowserFeature = {HAS_W3C_BUTTON:!0, HAS_W3C_EVENT_SUPPORT:!0, SET_KEY_CODE_TO_PREVENT_DEFAULT:!1, HAS_NAVIGATOR_ONLINE_PROPERTY:!0, HAS_HTML5_NETWORK_EVENT_SUPPORT:!0, HTML5_NETWORK_EVENTS_FIRE_ON_BODY:!1, TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in +goog.global, MSPOINTER_EVENTS:"MSPointerEvent" in goog.global && !(!goog.global.navigator || !goog.global.navigator.msPointerEnabled), PASSIVE_EVENTS:function(fn) { + return {valueOf:fn}.valueOf(); +}(function() { + if (!goog.global.addEventListener || !Object.defineProperty) { + return !1; + } + var passive = !1, options = Object.defineProperty({}, "passive", {get:function() { + passive = !0; + }}); + try { + goog.global.addEventListener("test", goog.nullFunction, options), goog.global.removeEventListener("test", goog.nullFunction, options); + } catch (e) { + } + return passive; +})}; goog.string = {}; goog.string.internal = {}; goog.string.internal.startsWith = function(str, prefix) { @@ -2402,8 +2699,8 @@ goog.object.equals = function module$contents$goog$object_equals(a, b) { return !1; } } - for (var k$24 in b) { - if (!(k$24 in a)) { + for (var k$26 in b) { + if (!(k$26 in a)) { return !1; } } @@ -3869,18 +4166,18 @@ module$contents$goog$html$SafeHtml_SafeHtml.combineAttributes = function(fixedAt for (name in fixedAttributes) { Object.prototype.hasOwnProperty.call(fixedAttributes, name) && (goog.asserts.assert(name.toLowerCase() == name, "Must be lower case"), combinedAttributes[name] = fixedAttributes[name]); } - for (var name$25 in defaultAttributes) { - Object.prototype.hasOwnProperty.call(defaultAttributes, name$25) && (goog.asserts.assert(name$25.toLowerCase() == name$25, "Must be lower case"), combinedAttributes[name$25] = defaultAttributes[name$25]); + for (var name$27 in defaultAttributes) { + Object.prototype.hasOwnProperty.call(defaultAttributes, name$27) && (goog.asserts.assert(name$27.toLowerCase() == name$27, "Must be lower case"), combinedAttributes[name$27] = defaultAttributes[name$27]); } if (attributes) { - for (var name$26 in attributes) { - if (Object.prototype.hasOwnProperty.call(attributes, name$26)) { - var nameLower = name$26.toLowerCase(); + for (var name$28 in attributes) { + if (Object.prototype.hasOwnProperty.call(attributes, name$28)) { + var nameLower = name$28.toLowerCase(); if (nameLower in fixedAttributes) { - throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + nameLower + '" attribute, got "' + name$26 + '" with value "' + attributes[name$26] + '"' : ""); + throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + nameLower + '" attribute, got "' + name$28 + '" with value "' + attributes[name$28] + '"' : ""); } nameLower in defaultAttributes && delete combinedAttributes[nameLower]; - combinedAttributes[name$26] = attributes[name$26]; + combinedAttributes[name$28] = attributes[name$28]; } } } @@ -4486,571 +4783,273 @@ goog.string.lastComponent = function(str, separators) { } for (var lastSeparatorIndex = -1, i = 0; i < separators.length; i++) { if ("" != separators[i]) { - var currentSeparatorIndex = str.lastIndexOf(separators[i]); - currentSeparatorIndex > lastSeparatorIndex && (lastSeparatorIndex = currentSeparatorIndex); - } - } - return -1 == lastSeparatorIndex ? str : str.slice(lastSeparatorIndex + 1); -}; -goog.string.editDistance = function(a, b) { - var v0 = [], v1 = []; - if (a == b) { - return 0; - } - if (!a.length || !b.length) { - return Math.max(a.length, b.length); - } - for (var i = 0; i < b.length + 1; i++) { - v0[i] = i; - } - for (var i$27 = 0; i$27 < a.length; i$27++) { - v1[0] = i$27 + 1; - for (var j = 0; j < b.length; j++) { - v1[j + 1] = Math.min(v1[j] + 1, v0[j + 1] + 1, v0[j] + Number(a[i$27] != b[j])); - } - for (var j$28 = 0; j$28 < v0.length; j$28++) { - v0[j$28] = v1[j$28]; - } - } - return v1[b.length]; -}; -goog.labs.userAgent.engine = {}; -goog.labs.userAgent.engine.isPresto = function() { - return goog.labs.userAgent.util.matchUserAgent("Presto"); -}; -goog.labs.userAgent.engine.isTrident = function() { - return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE"); -}; -goog.labs.userAgent.engine.isEdge = function() { - return goog.labs.userAgent.util.matchUserAgent("Edge"); -}; -goog.labs.userAgent.engine.isWebKit = function() { - return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge(); -}; -goog.labs.userAgent.engine.isGecko = function() { - return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge(); -}; -goog.labs.userAgent.engine.getVersion = function() { - var userAgentString = goog.labs.userAgent.util.getUserAgent(); - if (userAgentString) { - var tuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString), engineTuple = goog.labs.userAgent.engine.getEngineTuple_(tuples); - if (engineTuple) { - return "Gecko" == engineTuple[0] ? goog.labs.userAgent.engine.getVersionForKey_(tuples, "Firefox") : engineTuple[1]; - } - var browserTuple = tuples[0], info; - if (browserTuple && (info = browserTuple[2])) { - var match = /Trident\/([^\s;]+)/.exec(info); - if (match) { - return match[1]; - } - } - } - return ""; -}; -goog.labs.userAgent.engine.getEngineTuple_ = function(tuples) { - if (!goog.labs.userAgent.engine.isEdge()) { - return tuples[1]; - } - for (var i = 0; i < tuples.length; i++) { - var tuple = tuples[i]; - if ("Edge" == tuple[0]) { - return tuple; - } - } -}; -goog.labs.userAgent.engine.isVersionOrHigher = function(version) { - return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), version); -}; -goog.labs.userAgent.engine.getVersionForKey_ = function(tuples, key) { - var pair = module$contents$goog$array_find(tuples, function(pair) { - return key == pair[0]; - }); - return pair && pair[1] || ""; -}; -goog.labs.userAgent.platform = {}; -goog.labs.userAgent.platform.isAndroid = function() { - return goog.labs.userAgent.util.matchUserAgent("Android"); -}; -goog.labs.userAgent.platform.isIpod = function() { - return goog.labs.userAgent.util.matchUserAgent("iPod"); -}; -goog.labs.userAgent.platform.isIphone = function() { - return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad"); -}; -goog.labs.userAgent.platform.isIpad = function() { - return goog.labs.userAgent.util.matchUserAgent("iPad"); -}; -goog.labs.userAgent.platform.isIos = function() { - return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod(); -}; -goog.labs.userAgent.platform.isMacintosh = function() { - return goog.labs.userAgent.util.matchUserAgent("Macintosh"); -}; -goog.labs.userAgent.platform.isLinux = function() { - return goog.labs.userAgent.util.matchUserAgent("Linux"); -}; -goog.labs.userAgent.platform.isWindows = function() { - return goog.labs.userAgent.util.matchUserAgent("Windows"); -}; -goog.labs.userAgent.platform.isChromeOS = function() { - return goog.labs.userAgent.util.matchUserAgent("CrOS"); -}; -goog.labs.userAgent.platform.isChromecast = function() { - return goog.labs.userAgent.util.matchUserAgent("CrKey"); -}; -goog.labs.userAgent.platform.isKaiOS = function() { - return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS"); -}; -goog.labs.userAgent.platform.getVersion = function() { - var userAgentString = goog.labs.userAgent.util.getUserAgent(), version = ""; - if (goog.labs.userAgent.platform.isWindows()) { - var re = /Windows (?:NT|Phone) ([0-9.]+)/; - var match = re.exec(userAgentString); - version = match ? match[1] : "0.0"; - } else { - goog.labs.userAgent.platform.isIos() ? (re = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, version = (match = re.exec(userAgentString)) && match[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (re = /Mac OS X ([0-9_.]+)/, version = (match = re.exec(userAgentString)) ? match[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (re = /(?:KaiOS)\/(\S+)/i, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isAndroid() ? (re = - /Android\s+([^\);]+)(\)|;)/, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isChromeOS() && (re = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, version = (match = re.exec(userAgentString)) && match[1]); - } - return version || ""; -}; -goog.labs.userAgent.platform.isVersionOrHigher = function(version) { - return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), version); -}; -goog.reflect = {}; -goog.reflect.object = function(type, object) { - return object; -}; -goog.reflect.objectProperty = function(prop, object) { - return prop; -}; -goog.reflect.sinkValue = function(x) { - goog.reflect.sinkValue[" "](x); - return x; -}; -goog.reflect.sinkValue[" "] = goog.nullFunction; -goog.reflect.canAccessProperty = function(obj, prop) { - try { - return goog.reflect.sinkValue(obj[prop]), !0; - } catch (e) { - } - return !1; -}; -goog.reflect.cache = function(cacheObj, key, valueFn, opt_keyFn) { - var storedKey = opt_keyFn ? opt_keyFn(key) : key; - return Object.prototype.hasOwnProperty.call(cacheObj, storedKey) ? cacheObj[storedKey] : cacheObj[storedKey] = valueFn(key); -}; -goog.userAgent = {}; -goog.userAgent.ASSUME_IE = !1; -goog.userAgent.ASSUME_EDGE = !1; -goog.userAgent.ASSUME_GECKO = !1; -goog.userAgent.ASSUME_WEBKIT = !1; -goog.userAgent.ASSUME_MOBILE_WEBKIT = !1; -goog.userAgent.ASSUME_OPERA = !1; -goog.userAgent.ASSUME_ANY_VERSION = !1; -goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA; -goog.userAgent.getUserAgentString = function() { - return goog.labs.userAgent.util.getUserAgent(); -}; -goog.userAgent.getNavigatorTyped = function() { - return goog.global.navigator || null; -}; -goog.userAgent.getNavigator = function() { - return goog.userAgent.getNavigatorTyped(); -}; -goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera(); -goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE(); -goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge(); -goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE; -goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko(); -goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit(); -goog.userAgent.isMobile_ = function() { - return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile"); -}; -goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_(); -goog.userAgent.SAFARI = goog.userAgent.WEBKIT; -goog.userAgent.determinePlatform_ = function() { - var navigator = goog.userAgent.getNavigatorTyped(); - return navigator && navigator.platform || ""; -}; -goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_(); -goog.userAgent.ASSUME_MAC = !1; -goog.userAgent.ASSUME_WINDOWS = !1; -goog.userAgent.ASSUME_LINUX = !1; -goog.userAgent.ASSUME_X11 = !1; -goog.userAgent.ASSUME_ANDROID = !1; -goog.userAgent.ASSUME_IPHONE = !1; -goog.userAgent.ASSUME_IPAD = !1; -goog.userAgent.ASSUME_IPOD = !1; -goog.userAgent.ASSUME_KAIOS = !1; -goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD; -goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh(); -goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows(); -goog.userAgent.isLegacyLinux_ = function() { - return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS(); -}; -goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_(); -goog.userAgent.isX11_ = function() { - var navigator = goog.userAgent.getNavigatorTyped(); - return !!navigator && goog.string.contains(navigator.appVersion || "", "X11"); -}; -goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_(); -goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid(); -goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone(); -goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad(); -goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod(); -goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos(); -goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS(); -goog.userAgent.determineVersion_ = function() { - var version = "", arr = goog.userAgent.getVersionRegexResult_(); - arr && (version = arr ? arr[1] : ""); - if (goog.userAgent.IE) { - var docMode = goog.userAgent.getDocumentMode_(); - if (null != docMode && docMode > parseFloat(version)) { - return String(docMode); - } - } - return version; -}; -goog.userAgent.getVersionRegexResult_ = function() { - var userAgent = goog.userAgent.getUserAgentString(); - if (goog.userAgent.GECKO) { - return /rv:([^\);]+)(\)|;)/.exec(userAgent); + var currentSeparatorIndex = str.lastIndexOf(separators[i]); + currentSeparatorIndex > lastSeparatorIndex && (lastSeparatorIndex = currentSeparatorIndex); + } } - if (goog.userAgent.EDGE) { - return /Edge\/([\d\.]+)/.exec(userAgent); + return -1 == lastSeparatorIndex ? str : str.slice(lastSeparatorIndex + 1); +}; +goog.string.editDistance = function(a, b) { + var v0 = [], v1 = []; + if (a == b) { + return 0; } - if (goog.userAgent.IE) { - return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent); + if (!a.length || !b.length) { + return Math.max(a.length, b.length); } - if (goog.userAgent.WEBKIT) { - return /WebKit\/(\S+)/.exec(userAgent); + for (var i = 0; i < b.length + 1; i++) { + v0[i] = i; } - if (goog.userAgent.OPERA) { - return /(?:Version)[ \/]?(\S+)/.exec(userAgent); + for (var i$29 = 0; i$29 < a.length; i$29++) { + v1[0] = i$29 + 1; + for (var j = 0; j < b.length; j++) { + v1[j + 1] = Math.min(v1[j] + 1, v0[j + 1] + 1, v0[j] + Number(a[i$29] != b[j])); + } + for (var j$30 = 0; j$30 < v0.length; j$30++) { + v0[j$30] = v1[j$30]; + } } + return v1[b.length]; }; -goog.userAgent.getDocumentMode_ = function() { - var doc = goog.global.document; - return doc ? doc.documentMode : void 0; +goog.labs.userAgent.engine = {}; +goog.labs.userAgent.engine.isPresto = function() { + return goog.labs.userAgent.util.matchUserAgent("Presto"); }; -goog.userAgent.VERSION = goog.userAgent.determineVersion_(); -goog.userAgent.compare = function(v1, v2) { - return goog.string.compareVersions(v1, v2); +goog.labs.userAgent.engine.isTrident = function() { + return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE"); }; -goog.userAgent.isVersionOrHigherCache_ = {}; -goog.userAgent.isVersionOrHigher = function(version) { - return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() { - return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, version); - }); +goog.labs.userAgent.engine.isEdge = function() { + return goog.labs.userAgent.util.matchUserAgent("Edge"); }; -goog.userAgent.isDocumentModeOrHigher = function(documentMode) { - return Number(goog.userAgent.DOCUMENT_MODE) >= documentMode; +goog.labs.userAgent.engine.isWebKit = function() { + return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge(); }; -goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher; -goog.userAgent.DOCUMENT_MODE = function() { - if (goog.global.document && goog.userAgent.IE) { - var documentMode = goog.userAgent.getDocumentMode_(); - return documentMode ? documentMode : parseInt(goog.userAgent.VERSION, 10) || void 0; - } -}(); -goog.debug.LOGGING_ENABLED = goog.DEBUG; -goog.debug.FORCE_SLOPPY_STACKS = !1; -goog.debug.CHECK_FOR_THROWN_EVENT = !1; -goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) { - var target = opt_target || goog.global, oldErrorHandler = target.onerror, retVal = !!opt_cancel; - goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher("535.3") && (retVal = !retVal); - target.onerror = function(message, url, line, opt_col, opt_error) { - oldErrorHandler && oldErrorHandler(message, url, line, opt_col, opt_error); - logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error}); - return retVal; - }; +goog.labs.userAgent.engine.isGecko = function() { + return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge(); }; -goog.debug.expose = function(obj, opt_showFn) { - if ("undefined" == typeof obj) { - return "undefined"; - } - if (null == obj) { - return "NULL"; - } - var str = [], x; - for (x in obj) { - if (opt_showFn || "function" !== typeof obj[x]) { - var s = x + " = "; - try { - s += obj[x]; - } catch (e) { - s += "*** " + e + " ***"; - } - str.push(s); +goog.labs.userAgent.engine.getVersion = function() { + var userAgentString = goog.labs.userAgent.util.getUserAgent(); + if (userAgentString) { + var tuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString), engineTuple = goog.labs.userAgent.engine.getEngineTuple_(tuples); + if (engineTuple) { + return "Gecko" == engineTuple[0] ? goog.labs.userAgent.engine.getVersionForKey_(tuples, "Firefox") : engineTuple[1]; } - } - return str.join("\n"); -}; -goog.debug.deepExpose = function(obj$jscomp$0, opt_showFn) { - var str$jscomp$0 = [], uidsToCleanup = [], ancestorUids = {}, helper = function(obj, space) { - var nestspace = space + " ", indentMultiline = function(str) { - return str.replace(/\n/g, "\n" + space); - }; - try { - if (void 0 === obj) { - str$jscomp$0.push("undefined"); - } else { - if (null === obj) { - str$jscomp$0.push("NULL"); - } else { - if ("string" === typeof obj) { - str$jscomp$0.push('"' + indentMultiline(obj) + '"'); - } else { - if ("function" === typeof obj) { - str$jscomp$0.push(indentMultiline(String(obj))); - } else { - if (goog.isObject(obj)) { - goog.hasUid(obj) || uidsToCleanup.push(obj); - var uid = goog.getUid(obj); - if (ancestorUids[uid]) { - str$jscomp$0.push("*** reference loop detected (id=" + uid + ") ***"); - } else { - ancestorUids[uid] = !0; - str$jscomp$0.push("{"); - for (var x in obj) { - if (opt_showFn || "function" !== typeof obj[x]) { - str$jscomp$0.push("\n"), str$jscomp$0.push(nestspace), str$jscomp$0.push(x + " = "), helper(obj[x], nestspace); - } - } - str$jscomp$0.push("\n" + space + "}"); - delete ancestorUids[uid]; - } - } else { - str$jscomp$0.push(obj); - } - } - } - } + var browserTuple = tuples[0], info; + if (browserTuple && (info = browserTuple[2])) { + var match = /Trident\/([^\s;]+)/.exec(info); + if (match) { + return match[1]; } - } catch (e) { - str$jscomp$0.push("*** " + e + " ***"); } - }; - helper(obj$jscomp$0, ""); - for (var i = 0; i < uidsToCleanup.length; i++) { - goog.removeUid(uidsToCleanup[i]); - } - return str$jscomp$0.join(""); -}; -goog.debug.exposeArray = function(arr) { - for (var str = [], i = 0; i < arr.length; i++) { - Array.isArray(arr[i]) ? str.push(goog.debug.exposeArray(arr[i])) : str.push(arr[i]); } - return "[ " + str.join(", ") + " ]"; + return ""; }; -goog.debug.normalizeErrorObject = function(err) { - var href = goog.getObjectByName("window.location.href"); - null == err && (err = 'Unknown Error of type "null/undefined"'); - if ("string" === typeof err) { - return {message:err, name:"Unknown error", lineNumber:"Not available", fileName:href, stack:"Not available"}; - } - var threwError = !1; - try { - var lineNumber = err.lineNumber || err.line || "Not available"; - } catch (e) { - lineNumber = "Not available", threwError = !0; - } - try { - var fileName = err.fileName || err.filename || err.sourceURL || goog.global.$googDebugFname || href; - } catch (e$29) { - fileName = "Not available", threwError = !0; +goog.labs.userAgent.engine.getEngineTuple_ = function(tuples) { + if (!goog.labs.userAgent.engine.isEdge()) { + return tuples[1]; } - var stack = goog.debug.serializeErrorStack_(err); - if (!(!threwError && err.lineNumber && err.fileName && err.stack && err.message && err.name)) { - var message = err.message; - if (null == message) { - if (err.constructor && err.constructor instanceof Function) { - var ctorName = err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor); - message = 'Unknown Error of type "' + ctorName + '"'; - if (goog.debug.CHECK_FOR_THROWN_EVENT && "Event" == ctorName) { - try { - message = message + ' with Event.type "' + (err.type || "") + '"'; - } catch (e$30) { - } - } - } else { - message = "Unknown Error of unknown type"; - } - "function" === typeof err.toString && Object.prototype.toString !== err.toString && (message += ": " + err.toString()); + for (var i = 0; i < tuples.length; i++) { + var tuple = tuples[i]; + if ("Edge" == tuple[0]) { + return tuple; } - return {message:message, name:err.name || "UnknownError", lineNumber:lineNumber, fileName:fileName, stack:stack || "Not available"}; } - err.stack = stack; - return {message:err.message, name:err.name, lineNumber:err.lineNumber, fileName:err.fileName, stack:err.stack}; }; -goog.debug.serializeErrorStack_ = function(e, seen) { - seen || (seen = {}); - seen[goog.debug.serializeErrorAsKey_(e)] = !0; - var stack = e.stack || "", cause = e.cause; - cause && !seen[goog.debug.serializeErrorAsKey_(cause)] && (stack += "\nCaused by: ", cause.stack && 0 == cause.stack.indexOf(cause.toString()) || (stack += "string" === typeof cause ? cause : cause.message + "\n"), stack += goog.debug.serializeErrorStack_(cause, seen)); - return stack; +goog.labs.userAgent.engine.isVersionOrHigher = function(version) { + return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), version); }; -goog.debug.serializeErrorAsKey_ = function(e) { - var keyPrefix = ""; - "function" === typeof e.toString && (keyPrefix = "" + e); - return keyPrefix + e.stack; +goog.labs.userAgent.engine.getVersionForKey_ = function(tuples, key) { + var pair = module$contents$goog$array_find(tuples, function(pair) { + return key == pair[0]; + }); + return pair && pair[1] || ""; }; -goog.debug.enhanceError = function(err, opt_message) { - if (err instanceof Error) { - var error = err; - } else { - error = Error(err), Error.captureStackTrace && Error.captureStackTrace(error, goog.debug.enhanceError); - } - error.stack || (error.stack = goog.debug.getStacktrace(goog.debug.enhanceError)); - if (opt_message) { - for (var x = 0; error["message" + x];) { - ++x; - } - error["message" + x] = String(opt_message); - } - return error; +goog.labs.userAgent.platform = {}; +goog.labs.userAgent.platform.isAndroid = function() { + return goog.labs.userAgent.util.matchUserAgent("Android"); +}; +goog.labs.userAgent.platform.isIpod = function() { + return goog.labs.userAgent.util.matchUserAgent("iPod"); +}; +goog.labs.userAgent.platform.isIphone = function() { + return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad"); +}; +goog.labs.userAgent.platform.isIpad = function() { + return goog.labs.userAgent.util.matchUserAgent("iPad"); +}; +goog.labs.userAgent.platform.isIos = function() { + return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod(); +}; +goog.labs.userAgent.platform.isMacintosh = function() { + return goog.labs.userAgent.util.matchUserAgent("Macintosh"); +}; +goog.labs.userAgent.platform.isLinux = function() { + return goog.labs.userAgent.util.matchUserAgent("Linux"); +}; +goog.labs.userAgent.platform.isWindows = function() { + return goog.labs.userAgent.util.matchUserAgent("Windows"); +}; +goog.labs.userAgent.platform.isChromeOS = function() { + return goog.labs.userAgent.util.matchUserAgent("CrOS"); +}; +goog.labs.userAgent.platform.isChromecast = function() { + return goog.labs.userAgent.util.matchUserAgent("CrKey"); +}; +goog.labs.userAgent.platform.isKaiOS = function() { + return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS"); }; -goog.debug.enhanceErrorWithContext = function(err, opt_context) { - var error = goog.debug.enhanceError(err); - if (opt_context) { - for (var key in opt_context) { - goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]); - } +goog.labs.userAgent.platform.getVersion = function() { + var userAgentString = goog.labs.userAgent.util.getUserAgent(), version = ""; + if (goog.labs.userAgent.platform.isWindows()) { + var re = /Windows (?:NT|Phone) ([0-9.]+)/; + var match = re.exec(userAgentString); + version = match ? match[1] : "0.0"; + } else { + goog.labs.userAgent.platform.isIos() ? (re = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, version = (match = re.exec(userAgentString)) && match[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (re = /Mac OS X ([0-9_.]+)/, version = (match = re.exec(userAgentString)) ? match[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (re = /(?:KaiOS)\/(\S+)/i, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isAndroid() ? (re = + /Android\s+([^\);]+)(\)|;)/, version = (match = re.exec(userAgentString)) && match[1]) : goog.labs.userAgent.platform.isChromeOS() && (re = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, version = (match = re.exec(userAgentString)) && match[1]); } - return error; + return version || ""; }; -goog.debug.getStacktraceSimple = function(opt_depth) { - if (!goog.debug.FORCE_SLOPPY_STACKS) { - var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple); - if (stack) { - return stack; - } - } - for (var sb = [], fn = arguments.callee.caller, depth = 0; fn && (!opt_depth || depth < opt_depth);) { - sb.push(goog.debug.getFunctionName(fn)); - sb.push("()\n"); - try { - fn = fn.caller; - } catch (e) { - sb.push("[exception trying to get caller]\n"); - break; - } - depth++; - if (depth >= goog.debug.MAX_STACK_DEPTH) { - sb.push("[...long stack...]"); - break; - } - } - opt_depth && depth >= opt_depth ? sb.push("[...reached max depth limit...]") : sb.push("[end]"); - return sb.join(""); +goog.labs.userAgent.platform.isVersionOrHigher = function(version) { + return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), version); }; -goog.debug.MAX_STACK_DEPTH = 50; -goog.debug.getNativeStackTrace_ = function(fn) { - var tempErr = Error(); - if (Error.captureStackTrace) { - return Error.captureStackTrace(tempErr, fn), String(tempErr.stack); - } +goog.reflect = {}; +goog.reflect.object = function(type, object) { + return object; +}; +goog.reflect.objectProperty = function(prop, object) { + return prop; +}; +goog.reflect.sinkValue = function(x) { + goog.reflect.sinkValue[" "](x); + return x; +}; +goog.reflect.sinkValue[" "] = goog.nullFunction; +goog.reflect.canAccessProperty = function(obj, prop) { try { - throw tempErr; + return goog.reflect.sinkValue(obj[prop]), !0; } catch (e) { - tempErr = e; } - var stack = tempErr.stack; - return stack ? String(stack) : null; + return !1; }; -goog.debug.getStacktrace = function(fn) { - var stack; - goog.debug.FORCE_SLOPPY_STACKS || (stack = goog.debug.getNativeStackTrace_(fn || goog.debug.getStacktrace)); - stack || (stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, [])); - return stack; +goog.reflect.cache = function(cacheObj, key, valueFn, opt_keyFn) { + var storedKey = opt_keyFn ? opt_keyFn(key) : key; + return Object.prototype.hasOwnProperty.call(cacheObj, storedKey) ? cacheObj[storedKey] : cacheObj[storedKey] = valueFn(key); }; -goog.debug.getStacktraceHelper_ = function(fn, visited) { - var sb = []; - if (module$contents$goog$array_contains(visited, fn)) { - sb.push("[...circular reference...]"); - } else { - if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) { - sb.push(goog.debug.getFunctionName(fn) + "("); - for (var args = fn.arguments, i = 0; args && i < args.length; i++) { - 0 < i && sb.push(", "); - var arg = args[i]; - switch(typeof arg) { - case "object": - var argDesc = arg ? "object" : "null"; - break; - case "string": - argDesc = arg; - break; - case "number": - argDesc = String(arg); - break; - case "boolean": - argDesc = arg ? "true" : "false"; - break; - case "function": - argDesc = (argDesc = goog.debug.getFunctionName(arg)) ? argDesc : "[fn]"; - break; - default: - argDesc = typeof arg; - } - 40 < argDesc.length && (argDesc = argDesc.substr(0, 40) + "..."); - sb.push(argDesc); - } - visited.push(fn); - sb.push(")\n"); - try { - sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited)); - } catch (e) { - sb.push("[exception trying to get caller]\n"); - } - } else { - fn ? sb.push("[...long stack...]") : sb.push("[end]"); +goog.userAgent = {}; +goog.userAgent.ASSUME_IE = !1; +goog.userAgent.ASSUME_EDGE = !1; +goog.userAgent.ASSUME_GECKO = !1; +goog.userAgent.ASSUME_WEBKIT = !1; +goog.userAgent.ASSUME_MOBILE_WEBKIT = !1; +goog.userAgent.ASSUME_OPERA = !1; +goog.userAgent.ASSUME_ANY_VERSION = !1; +goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA; +goog.userAgent.getUserAgentString = function() { + return goog.labs.userAgent.util.getUserAgent(); +}; +goog.userAgent.getNavigatorTyped = function() { + return goog.global.navigator || null; +}; +goog.userAgent.getNavigator = function() { + return goog.userAgent.getNavigatorTyped(); +}; +goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera(); +goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE(); +goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge(); +goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE; +goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko(); +goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit(); +goog.userAgent.isMobile_ = function() { + return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile"); +}; +goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_(); +goog.userAgent.SAFARI = goog.userAgent.WEBKIT; +goog.userAgent.determinePlatform_ = function() { + var navigator = goog.userAgent.getNavigatorTyped(); + return navigator && navigator.platform || ""; +}; +goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_(); +goog.userAgent.ASSUME_MAC = !1; +goog.userAgent.ASSUME_WINDOWS = !1; +goog.userAgent.ASSUME_LINUX = !1; +goog.userAgent.ASSUME_X11 = !1; +goog.userAgent.ASSUME_ANDROID = !1; +goog.userAgent.ASSUME_IPHONE = !1; +goog.userAgent.ASSUME_IPAD = !1; +goog.userAgent.ASSUME_IPOD = !1; +goog.userAgent.ASSUME_KAIOS = !1; +goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD; +goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh(); +goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows(); +goog.userAgent.isLegacyLinux_ = function() { + return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS(); +}; +goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_(); +goog.userAgent.isX11_ = function() { + var navigator = goog.userAgent.getNavigatorTyped(); + return !!navigator && goog.string.contains(navigator.appVersion || "", "X11"); +}; +goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_(); +goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid(); +goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone(); +goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad(); +goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod(); +goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos(); +goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS(); +goog.userAgent.determineVersion_ = function() { + var version = "", arr = goog.userAgent.getVersionRegexResult_(); + arr && (version = arr ? arr[1] : ""); + if (goog.userAgent.IE) { + var docMode = goog.userAgent.getDocumentMode_(); + if (null != docMode && docMode > parseFloat(version)) { + return String(docMode); } } - return sb.join(""); + return version; }; -goog.debug.getFunctionName = function(fn) { - if (goog.debug.fnNameCache_[fn]) { - return goog.debug.fnNameCache_[fn]; +goog.userAgent.getVersionRegexResult_ = function() { + var userAgent = goog.userAgent.getUserAgentString(); + if (goog.userAgent.GECKO) { + return /rv:([^\);]+)(\)|;)/.exec(userAgent); } - var functionSource = String(fn); - if (!goog.debug.fnNameCache_[functionSource]) { - var matches = /function\s+([^\(]+)/m.exec(functionSource); - goog.debug.fnNameCache_[functionSource] = matches ? matches[1] : "[Anonymous]"; + if (goog.userAgent.EDGE) { + return /Edge\/([\d\.]+)/.exec(userAgent); + } + if (goog.userAgent.IE) { + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent); + } + if (goog.userAgent.WEBKIT) { + return /WebKit\/(\S+)/.exec(userAgent); + } + if (goog.userAgent.OPERA) { + return /(?:Version)[ \/]?(\S+)/.exec(userAgent); } - return goog.debug.fnNameCache_[functionSource]; }; -goog.debug.makeWhitespaceVisible = function(string) { - return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]"); +goog.userAgent.getDocumentMode_ = function() { + var doc = goog.global.document; + return doc ? doc.documentMode : void 0; }; -goog.debug.runtimeType = function(value) { - return value instanceof Function ? value.displayName || value.name || "unknown type name" : value instanceof Object ? value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value) : null === value ? "null" : typeof value; +goog.userAgent.VERSION = goog.userAgent.determineVersion_(); +goog.userAgent.compare = function(v1, v2) { + return goog.string.compareVersions(v1, v2); }; -goog.debug.fnNameCache_ = {}; -goog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) { - return arg; +goog.userAgent.isVersionOrHigherCache_ = {}; +goog.userAgent.isVersionOrHigher = function(version) { + return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, version, function() { + return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, version); + }); }; -goog.debug.freeze = function(arg) { - return function() { - return goog.debug.freezeInternal_(arg); - }(); +goog.userAgent.isDocumentModeOrHigher = function(documentMode) { + return Number(goog.userAgent.DOCUMENT_MODE) >= documentMode; }; -goog.events.BrowserFeature = {HAS_W3C_BUTTON:!0, HAS_W3C_EVENT_SUPPORT:!0, SET_KEY_CODE_TO_PREVENT_DEFAULT:!1, HAS_NAVIGATOR_ONLINE_PROPERTY:!0, HAS_HTML5_NETWORK_EVENT_SUPPORT:!0, HTML5_NETWORK_EVENTS_FIRE_ON_BODY:!1, TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in -goog.global, MSPOINTER_EVENTS:"MSPointerEvent" in goog.global && !(!goog.global.navigator || !goog.global.navigator.msPointerEnabled), PASSIVE_EVENTS:function(fn) { - return {valueOf:fn}.valueOf(); -}(function() { - if (!goog.global.addEventListener || !Object.defineProperty) { - return !1; - } - var passive = !1, options = Object.defineProperty({}, "passive", {get:function() { - passive = !0; - }}); - try { - goog.global.addEventListener("test", goog.nullFunction, options), goog.global.removeEventListener("test", goog.nullFunction, options); - } catch (e) { +goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher; +goog.userAgent.DOCUMENT_MODE = function() { + if (goog.global.document && goog.userAgent.IE) { + var documentMode = goog.userAgent.getDocumentMode_(); + return documentMode ? documentMode : parseInt(goog.userAgent.VERSION, 10) || void 0; } - return passive; -})}; +}(); goog.events.MouseEvents = {}; goog.events.getVendorPrefixedName_ = function(eventName) { return goog.userAgent.WEBKIT ? "webkit" + eventName : goog.userAgent.OPERA ? "o" + eventName.toLowerCase() : eventName.toLowerCase(); @@ -13053,8 +13052,8 @@ goog.dom.BrowserFeature.detectOffscreenCanvas_ = function(contextName) { }; goog.dom.BrowserFeature.OFFSCREEN_CANVAS_2D = !goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS && (goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS || goog.dom.BrowserFeature.detectOffscreenCanvas_("2d")); goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES = !goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9); -goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE = !goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.1"); -goog.dom.BrowserFeature.CAN_USE_INNER_TEXT = goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"); +goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE = !goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO; +goog.dom.BrowserFeature.CAN_USE_INNER_TEXT = !1; goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY = goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT; goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT = goog.userAgent.IE; goog.dom.BrowserFeature.LEGACY_IE_RANGES = goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9); @@ -13769,10 +13768,6 @@ goog.dom.isFocusable = function(element) { return (focusable = goog.dom.nativelySupportsFocus_(element) ? !element.disabled && (!goog.dom.hasSpecifiedTabIndex_(element) || goog.dom.isTabIndexFocusable_(element)) : goog.dom.isFocusableTabIndex(element)) && goog.userAgent.IE ? goog.dom.hasNonZeroBoundingRect_(element) : focusable; }; goog.dom.hasSpecifiedTabIndex_ = function(element) { - if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9")) { - var attrNode = element.getAttributeNode("tabindex"); - return null != attrNode && attrNode.specified; - } return element.hasAttribute("tabindex"); }; goog.dom.isTabIndexFocusable_ = function(element) { @@ -15849,7 +15844,7 @@ goog.debug.entryPointRegistry.register(function(transformer) { ee.apiclient = {}; var module$contents$ee$apiclient_apiclient = {}; ee.apiclient.VERSION = module$exports$ee$apiVersion.V1ALPHA; -ee.apiclient.API_CLIENT_VERSION = "0.1.275"; +ee.apiclient.API_CLIENT_VERSION = "0.1.276"; ee.apiclient.NULL_VALUE = module$exports$eeapiclient$domain_object.NULL_VALUE; ee.apiclient.PromiseRequestService = module$exports$eeapiclient$promise_request_service.PromiseRequestService; ee.apiclient.MakeRequestParams = module$contents$eeapiclient$request_params_MakeRequestParams; @@ -16130,8 +16125,8 @@ module$contents$ee$apiclient_apiclient.send = function(path, params, callback, m var profileHookAtCallTime = module$contents$ee$apiclient_apiclient.profileHook_, contentType = "application/x-www-form-urlencoded"; body && (contentType = "application/json", method && method.startsWith("multipart") && (contentType = method, method = "POST")); method = method || "POST"; - var headers = {"Content-Type":contentType, }, version = "0.1.275"; - "0.1.275" === version && (version = "latest"); + var headers = {"Content-Type":contentType, }, version = "0.1.276"; + "0.1.276" === version && (version = "latest"); headers[module$contents$ee$apiclient_apiclient.API_CLIENT_VERSION_HEADER] = "ee-js/" + version; var authToken = module$contents$ee$apiclient_apiclient.getAuthToken(); if (null != authToken) { @@ -23470,27 +23465,27 @@ ee.data.Profiler.Format.prototype.toString = function() { ee.data.Profiler.Format.TEXT = new ee.data.Profiler.Format("text"); ee.data.Profiler.Format.JSON = new ee.data.Profiler.Format("json"); (function() { - var exportedFnInfo = {}, orderedFnNames = "ee.ApiFunction._apply ee.ApiFunction.lookup ee.ApiFunction._call ee.batch.Export.videoMap.toCloudStorage ee.batch.Export.video.toCloudStorage ee.batch.Export.classifier.toAsset ee.batch.Export.video.toDrive ee.batch.Export.table.toCloudStorage ee.batch.Export.image.toAsset ee.batch.Export.image.toCloudStorage ee.batch.Export.image.toDrive ee.batch.Export.table.toDrive ee.batch.Export.table.toAsset ee.batch.Export.map.toCloudStorage ee.Collection.prototype.filterBounds ee.Collection.prototype.filterDate ee.Collection.prototype.limit ee.Collection.prototype.sort ee.Collection.prototype.iterate ee.Collection.prototype.filterMetadata ee.Collection.prototype.map ee.Collection.prototype.filter ee.ComputedObject.prototype.serialize ee.ComputedObject.prototype.evaluate ee.ComputedObject.prototype.aside ee.ComputedObject.prototype.getInfo ee.data.startTableIngestion ee.data.createFolder ee.data.renameAsset ee.data.getAsset ee.data.copyAsset ee.data.deleteAsset ee.data.getMapId ee.data.getInfo ee.data.authenticate ee.data.authenticateViaPopup ee.data.authenticateViaPrivateKey ee.data.getList ee.data.getTileUrl ee.data.getTaskStatus ee.data.listAssets ee.data.authenticateViaOauth ee.data.getOperation ee.data.getTableDownloadId ee.data.getAssetAcl ee.data.getDownloadId ee.data.listImages ee.data.cancelTask ee.data.makeDownloadUrl ee.data.getDmsTilesKey ee.data.updateAsset ee.data.makeTableDownloadUrl ee.data.getTaskList ee.data.listBuckets ee.data.getVideoThumbId ee.data.getAssetRoots ee.data.computeValue ee.data.getTaskListWithLimit ee.data.setAssetAcl ee.data.makeThumbUrl ee.data.setAssetProperties ee.data.createAssetHome ee.data.listOperations ee.data.updateTask ee.data.getThumbId ee.data.cancelOperation ee.data.newTaskId ee.data.getAssetRootQuota ee.data.startProcessing ee.data.startIngestion ee.data.getFilmstripThumbId ee.data.createAsset ee.Date ee.Deserializer.decode ee.Deserializer.decodeCloudApi ee.Deserializer.fromJSON ee.Deserializer.fromCloudApiJSON ee.Dictionary ee.initialize ee.call ee.TILE_SIZE ee.reset ee.apply ee.InitState ee.Algorithms ee.Element.prototype.set ee.Feature ee.Feature.prototype.getInfo ee.Feature.prototype.getMap ee.FeatureCollection ee.FeatureCollection.prototype.select ee.FeatureCollection.prototype.getMap ee.FeatureCollection.prototype.getDownloadURL ee.FeatureCollection.prototype.getInfo ee.Filter.neq ee.Filter.or ee.Filter.lt ee.Filter.date ee.Filter.prototype.not ee.Filter.lte ee.Filter.eq ee.Filter.gte ee.Filter.gt ee.Filter.and ee.Filter.metadata ee.Filter ee.Filter.inList ee.Filter.bounds ee.Function.prototype.apply ee.Function.prototype.call ee.Geometry ee.Geometry.prototype.toGeoJSONString ee.Geometry.prototype.toGeoJSON ee.Geometry.MultiPoint ee.Geometry.BBox ee.Geometry.LineString ee.Geometry.prototype.serialize ee.Geometry.MultiLineString ee.Geometry.Point ee.Geometry.Polygon ee.Geometry.LinearRing ee.Geometry.MultiPolygon ee.Geometry.Rectangle ee.Image.prototype.getThumbURL ee.Image.prototype.getInfo ee.Image ee.Image.cat ee.Image.prototype.rename ee.Image.prototype.getDownloadURL ee.Image.prototype.getMap ee.Image.prototype.select ee.Image.prototype.clip ee.Image.prototype.expression ee.Image.prototype.getThumbId ee.Image.rgb ee.ImageCollection.prototype.getMap ee.ImageCollection.prototype.select ee.ImageCollection ee.ImageCollection.prototype.getInfo ee.ImageCollection.prototype.getFilmstripThumbURL ee.ImageCollection.prototype.first ee.ImageCollection.prototype.getVideoThumbURL ee.List ee.Number ee.Serializer.toReadableJSON ee.Serializer.encodeCloudApi ee.Serializer.encodeCloudApiPretty ee.Serializer.toReadableCloudApiJSON ee.Serializer.encode ee.Serializer.toJSON ee.Serializer.toCloudApiJSON ee.String ee.Terrain".split(" "), - orderedParamLists = [["name", "namedArgs"], ["name"], ["name", "var_args"], "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_writePublicTiles opt_minZoom opt_maxZoom opt_scale opt_region opt_skipEmptyTiles opt_minTimeMachineZoomSubset opt_maxTimeMachineZoomSubset opt_tileWidth opt_tileHeight opt_tileStride opt_videoFormat opt_version opt_mapsApiKey opt_bucketCorsUris".split(" "), "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_maxFrames".split(" "), + var exportedFnInfo = {}, orderedFnNames = "ee.ApiFunction._call ee.ApiFunction._apply ee.ApiFunction.lookup ee.batch.Export.videoMap.toCloudStorage ee.batch.Export.video.toCloudStorage ee.batch.Export.classifier.toAsset ee.batch.Export.video.toDrive ee.batch.Export.table.toCloudStorage ee.batch.Export.image.toAsset ee.batch.Export.image.toCloudStorage ee.batch.Export.image.toDrive ee.batch.Export.table.toAsset ee.batch.Export.table.toDrive ee.batch.Export.map.toCloudStorage ee.Collection.prototype.sort ee.Collection.prototype.iterate ee.Collection.prototype.filterMetadata ee.Collection.prototype.filter ee.Collection.prototype.filterBounds ee.Collection.prototype.filterDate ee.Collection.prototype.limit ee.Collection.prototype.map ee.ComputedObject.prototype.serialize ee.ComputedObject.prototype.aside ee.ComputedObject.prototype.getInfo ee.ComputedObject.prototype.evaluate ee.data.createAsset ee.data.startTableIngestion ee.data.createFolder ee.data.getAsset ee.data.cancelTask ee.data.renameAsset ee.data.copyAsset ee.data.startProcessing ee.data.getMapId ee.data.getInfo ee.data.authenticateViaPopup ee.data.authenticate ee.data.deleteAsset ee.data.getTileUrl ee.data.getList ee.data.updateAsset ee.data.authenticateViaPrivateKey ee.data.listAssets ee.data.authenticateViaOauth ee.data.getDownloadId ee.data.listImages ee.data.getAssetAcl ee.data.getDmsTilesKey ee.data.getTableDownloadId ee.data.makeDownloadUrl ee.data.getTaskList ee.data.listBuckets ee.data.computeValue ee.data.setAssetAcl ee.data.getTaskListWithLimit ee.data.getAssetRoots ee.data.makeTableDownloadUrl ee.data.setAssetProperties ee.data.getFilmstripThumbId ee.data.getOperation ee.data.getThumbId ee.data.updateTask ee.data.newTaskId ee.data.listOperations ee.data.createAssetHome ee.data.getVideoThumbId ee.data.startIngestion ee.data.cancelOperation ee.data.getAssetRootQuota ee.data.makeThumbUrl ee.data.getTaskStatus ee.Date ee.Deserializer.fromJSON ee.Deserializer.fromCloudApiJSON ee.Deserializer.decodeCloudApi ee.Deserializer.decode ee.Dictionary ee.call ee.initialize ee.TILE_SIZE ee.reset ee.InitState ee.apply ee.Algorithms ee.Element.prototype.set ee.Feature ee.Feature.prototype.getInfo ee.Feature.prototype.getMap ee.FeatureCollection.prototype.select ee.FeatureCollection.prototype.getMap ee.FeatureCollection.prototype.getDownloadURL ee.FeatureCollection.prototype.getInfo ee.FeatureCollection ee.Filter.or ee.Filter.lt ee.Filter.date ee.Filter.bounds ee.Filter.eq ee.Filter.gte ee.Filter.lte ee.Filter.prototype.not ee.Filter.and ee.Filter.metadata ee.Filter ee.Filter.inList ee.Filter.neq ee.Filter.gt ee.Function.prototype.apply ee.Function.prototype.call ee.Geometry.Point ee.Geometry.prototype.toGeoJSON ee.Geometry.Rectangle ee.Geometry.BBox ee.Geometry ee.Geometry.prototype.toGeoJSONString ee.Geometry.MultiPoint ee.Geometry.MultiPolygon ee.Geometry.MultiLineString ee.Geometry.prototype.serialize ee.Geometry.LineString ee.Geometry.LinearRing ee.Geometry.Polygon ee.Image.prototype.rename ee.Image.prototype.getDownloadURL ee.Image.prototype.select ee.Image.prototype.clip ee.Image.prototype.getMap ee.Image.prototype.getThumbId ee.Image.prototype.expression ee.Image ee.Image.rgb ee.Image.prototype.getThumbURL ee.Image.prototype.getInfo ee.Image.cat ee.ImageCollection.prototype.getFilmstripThumbURL ee.ImageCollection.prototype.getInfo ee.ImageCollection.prototype.getVideoThumbURL ee.ImageCollection ee.ImageCollection.prototype.first ee.ImageCollection.prototype.getMap ee.ImageCollection.prototype.select ee.List ee.Number ee.Serializer.encodeCloudApi ee.Serializer.encodeCloudApiPretty ee.Serializer.toReadableCloudApiJSON ee.Serializer.encode ee.Serializer.toCloudApiJSON ee.Serializer.toJSON ee.Serializer.toReadableJSON ee.String ee.Terrain".split(" "), + orderedParamLists = [["name", "var_args"], ["name", "namedArgs"], ["name"], "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_writePublicTiles opt_minZoom opt_maxZoom opt_scale opt_region opt_skipEmptyTiles opt_minTimeMachineZoomSubset opt_maxTimeMachineZoomSubset opt_tileWidth opt_tileHeight opt_tileStride opt_videoFormat opt_version opt_mapsApiKey opt_bucketCorsUris".split(" "), "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_maxFrames".split(" "), ["classifier", "opt_description", "opt_assetId"], "collection opt_description opt_folder opt_fileNamePrefix opt_framesPerSecond opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_maxFrames".split(" "), "collection opt_description opt_bucket opt_fileNamePrefix opt_fileFormat opt_selectors opt_maxVertices".split(" "), "image opt_description opt_assetId opt_pyramidingPolicy opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize".split(" "), - "image opt_description opt_bucket opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), "image opt_description opt_folder opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), "collection opt_description opt_folder opt_fileNamePrefix opt_fileFormat opt_selectors opt_maxVertices".split(" "), - ["collection", "opt_description", "opt_assetId", "opt_maxVertices"], "image opt_description opt_bucket opt_fileFormat opt_path opt_writePublicTiles opt_scale opt_maxZoom opt_minZoom opt_region opt_skipEmptyTiles opt_mapsApiKey opt_bucketCorsUris".split(" "), ["geometry"], ["start", "opt_end"], ["max", "opt_property", "opt_ascending"], ["property", "opt_ascending"], ["algorithm", "opt_first"], ["name", "operator", "value"], ["algorithm", "opt_dropNulls"], ["filter"], ["legacy"], ["callback"], ["func", - "var_args"], ["opt_callback"], ["taskId", "request", "opt_callback"], ["path", "opt_force", "opt_callback"], ["sourceId", "destinationId", "opt_callback"], ["id", "opt_callback"], ["sourceId", "destinationId", "opt_overwrite", "opt_callback"], ["assetId", "opt_callback"], ["params", "opt_callback"], ["id", "opt_callback"], ["clientId", "success", "opt_error", "opt_extraScopes", "opt_onImmediateFailed"], ["opt_success", "opt_error"], ["privateKey", "opt_success", "opt_error", "opt_extraScopes", - "opt_suppressDefaultScopes"], ["params", "opt_callback"], ["id", "x", "y", "z"], ["taskId", "opt_callback"], ["parent", "params", "opt_callback"], "clientId success opt_error opt_extraScopes opt_onImmediateFailed opt_suppressDefaultScopes".split(" "), ["operationName", "opt_callback"], ["params", "opt_callback"], ["assetId", "opt_callback"], ["params", "opt_callback"], ["parent", "params", "opt_callback"], ["taskId", "opt_callback"], ["id"], ["params", "opt_callback"], ["assetId", "asset", "updateFields", - "opt_callback"], ["id"], ["opt_callback"], ["project", "opt_callback"], ["params", "opt_callback"], ["opt_callback"], ["obj", "opt_callback"], ["opt_limit", "opt_callback"], ["assetId", "aclUpdate", "opt_callback"], ["id"], ["assetId", "properties", "opt_callback"], ["requestedId", "opt_callback"], ["opt_limit", "opt_callback"], ["taskId", "action", "opt_callback"], ["params", "opt_callback"], ["operationName", "opt_callback"], ["opt_count", "opt_callback"], ["rootId", "opt_callback"], ["taskId", - "params", "opt_callback"], ["taskId", "request", "opt_callback"], ["params", "opt_callback"], ["value", "opt_path", "opt_force", "opt_properties", "opt_callback"], ["date", "opt_tz"], ["json"], ["json"], ["json"], ["json"], ["opt_dict"], ["opt_baseurl", "opt_tileurl", "opt_successCallback", "opt_errorCallback", "opt_xsrfToken"], ["func", "var_args"], [], [], ["func", "namedArgs"], [], [], ["var_args"], ["geometry", "opt_properties"], ["opt_callback"], ["opt_visParams", "opt_callback"], ["args", - "opt_column"], ["propertySelectors", "opt_newProperties", "opt_retainGeometry"], ["opt_visParams", "opt_callback"], ["opt_format", "opt_selectors", "opt_filename", "opt_callback"], ["opt_callback"], ["name", "value"], ["var_args"], ["name", "value"], ["start", "opt_end"], [], ["name", "value"], ["name", "value"], ["name", "value"], ["name", "value"], ["var_args"], ["name", "operator", "value"], ["opt_filter"], ["opt_leftField", "opt_rightValue", "opt_rightField", "opt_leftValue"], ["geometry", - "opt_errorMargin"], ["namedArgs"], ["var_args"], ["geoJson", "opt_proj", "opt_geodesic", "opt_evenOdd"], [], [], ["coords", "opt_proj"], ["west", "south", "east", "north"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["legacy"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["coords", "opt_proj"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", - "opt_evenOdd"], ["coords", "opt_proj", "opt_geodesic", "opt_evenOdd"], ["params", "opt_callback"], ["opt_callback"], ["opt_args"], ["var_args"], ["var_args"], ["params", "opt_callback"], ["opt_visParams", "opt_callback"], ["var_args"], ["geometry"], ["expression", "opt_map"], ["params", "opt_callback"], ["r", "g", "b"], ["opt_visParams", "opt_callback"], ["selectors", "opt_names"], ["args"], ["opt_callback"], ["params", "opt_callback"], [], ["params", "opt_callback"], ["list"], ["number"], ["obj"], - ["obj"], ["obj"], ["obj"], ["obj", "opt_isCompound"], ["obj"], ["obj"], ["string"], []]; - [ee.ApiFunction._apply, ee.ApiFunction.lookup, ee.ApiFunction._call, module$contents$ee$batch_Export.videoMap.toCloudStorage, module$contents$ee$batch_Export.video.toCloudStorage, module$contents$ee$batch_Export.classifier.toAsset, module$contents$ee$batch_Export.video.toDrive, module$contents$ee$batch_Export.table.toCloudStorage, module$contents$ee$batch_Export.image.toAsset, module$contents$ee$batch_Export.image.toCloudStorage, module$contents$ee$batch_Export.image.toDrive, module$contents$ee$batch_Export.table.toDrive, - module$contents$ee$batch_Export.table.toAsset, module$contents$ee$batch_Export.map.toCloudStorage, ee.Collection.prototype.filterBounds, ee.Collection.prototype.filterDate, ee.Collection.prototype.limit, ee.Collection.prototype.sort, ee.Collection.prototype.iterate, ee.Collection.prototype.filterMetadata, ee.Collection.prototype.map, ee.Collection.prototype.filter, ee.ComputedObject.prototype.serialize, ee.ComputedObject.prototype.evaluate, ee.ComputedObject.prototype.aside, ee.ComputedObject.prototype.getInfo, - ee.data.startTableIngestion, ee.data.createFolder, ee.data.renameAsset, ee.data.getAsset, ee.data.copyAsset, ee.data.deleteAsset, ee.data.getMapId, ee.data.getInfo, ee.data.authenticate, ee.data.authenticateViaPopup, ee.data.authenticateViaPrivateKey, ee.data.getList, ee.data.getTileUrl, ee.data.getTaskStatus, ee.data.listAssets, ee.data.authenticateViaOauth, ee.data.getOperation, ee.data.getTableDownloadId, ee.data.getAssetAcl, ee.data.getDownloadId, ee.data.listImages, ee.data.cancelTask, ee.data.makeDownloadUrl, - ee.data.getDmsTilesKey, ee.data.updateAsset, ee.data.makeTableDownloadUrl, ee.data.getTaskList, ee.data.listBuckets, ee.data.getVideoThumbId, ee.data.getAssetRoots, ee.data.computeValue, ee.data.getTaskListWithLimit, ee.data.setAssetAcl, ee.data.makeThumbUrl, ee.data.setAssetProperties, ee.data.createAssetHome, ee.data.listOperations, ee.data.updateTask, ee.data.getThumbId, ee.data.cancelOperation, ee.data.newTaskId, ee.data.getAssetRootQuota, ee.data.startProcessing, ee.data.startIngestion, ee.data.getFilmstripThumbId, - ee.data.createAsset, ee.Date, ee.Deserializer.decode, ee.Deserializer.decodeCloudApi, ee.Deserializer.fromJSON, ee.Deserializer.fromCloudApiJSON, ee.Dictionary, ee.initialize, ee.call, ee.TILE_SIZE, ee.reset, ee.apply, ee.InitState, ee.Algorithms, ee.Element.prototype.set, ee.Feature, ee.Feature.prototype.getInfo, ee.Feature.prototype.getMap, ee.FeatureCollection, ee.FeatureCollection.prototype.select, ee.FeatureCollection.prototype.getMap, ee.FeatureCollection.prototype.getDownloadURL, ee.FeatureCollection.prototype.getInfo, - ee.Filter.neq, ee.Filter.or, ee.Filter.lt, ee.Filter.date, ee.Filter.prototype.not, ee.Filter.lte, ee.Filter.eq, ee.Filter.gte, ee.Filter.gt, ee.Filter.and, ee.Filter.metadata, ee.Filter, ee.Filter.inList, ee.Filter.bounds, ee.Function.prototype.apply, ee.Function.prototype.call, ee.Geometry, ee.Geometry.prototype.toGeoJSONString, ee.Geometry.prototype.toGeoJSON, ee.Geometry.MultiPoint, ee.Geometry.BBox, ee.Geometry.LineString, ee.Geometry.prototype.serialize, ee.Geometry.MultiLineString, ee.Geometry.Point, - ee.Geometry.Polygon, ee.Geometry.LinearRing, ee.Geometry.MultiPolygon, ee.Geometry.Rectangle, ee.Image.prototype.getThumbURL, ee.Image.prototype.getInfo, ee.Image, ee.Image.cat, ee.Image.prototype.rename, ee.Image.prototype.getDownloadURL, ee.Image.prototype.getMap, ee.Image.prototype.select, ee.Image.prototype.clip, ee.Image.prototype.expression, ee.Image.prototype.getThumbId, ee.Image.rgb, ee.ImageCollection.prototype.getMap, ee.ImageCollection.prototype.select, ee.ImageCollection, ee.ImageCollection.prototype.getInfo, - ee.ImageCollection.prototype.getFilmstripThumbURL, ee.ImageCollection.prototype.first, ee.ImageCollection.prototype.getVideoThumbURL, ee.List, ee.Number, ee.Serializer.toReadableJSON, ee.Serializer.encodeCloudApi, ee.Serializer.encodeCloudApiPretty, ee.Serializer.toReadableCloudApiJSON, ee.Serializer.encode, ee.Serializer.toJSON, ee.Serializer.toCloudApiJSON, ee.String, ee.Terrain].forEach(function(fn, i) { + "image opt_description opt_bucket opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), "image opt_description opt_folder opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), ["collection", "opt_description", "opt_assetId", + "opt_maxVertices"], "collection opt_description opt_folder opt_fileNamePrefix opt_fileFormat opt_selectors opt_maxVertices".split(" "), "image opt_description opt_bucket opt_fileFormat opt_path opt_writePublicTiles opt_scale opt_maxZoom opt_minZoom opt_region opt_skipEmptyTiles opt_mapsApiKey opt_bucketCorsUris".split(" "), ["property", "opt_ascending"], ["algorithm", "opt_first"], ["name", "operator", "value"], ["filter"], ["geometry"], ["start", "opt_end"], ["max", "opt_property", "opt_ascending"], + ["algorithm", "opt_dropNulls"], ["legacy"], ["func", "var_args"], ["opt_callback"], ["callback"], ["value", "opt_path", "opt_force", "opt_properties", "opt_callback"], ["taskId", "request", "opt_callback"], ["path", "opt_force", "opt_callback"], ["id", "opt_callback"], ["taskId", "opt_callback"], ["sourceId", "destinationId", "opt_callback"], ["sourceId", "destinationId", "opt_overwrite", "opt_callback"], ["taskId", "params", "opt_callback"], ["params", "opt_callback"], ["id", "opt_callback"], + ["opt_success", "opt_error"], ["clientId", "success", "opt_error", "opt_extraScopes", "opt_onImmediateFailed"], ["assetId", "opt_callback"], ["id", "x", "y", "z"], ["params", "opt_callback"], ["assetId", "asset", "updateFields", "opt_callback"], ["privateKey", "opt_success", "opt_error", "opt_extraScopes", "opt_suppressDefaultScopes"], ["parent", "params", "opt_callback"], "clientId success opt_error opt_extraScopes opt_onImmediateFailed opt_suppressDefaultScopes".split(" "), ["params", "opt_callback"], + ["parent", "params", "opt_callback"], ["assetId", "opt_callback"], ["params", "opt_callback"], ["params", "opt_callback"], ["id"], ["opt_callback"], ["project", "opt_callback"], ["obj", "opt_callback"], ["assetId", "aclUpdate", "opt_callback"], ["opt_limit", "opt_callback"], ["opt_callback"], ["id"], ["assetId", "properties", "opt_callback"], ["params", "opt_callback"], ["operationName", "opt_callback"], ["params", "opt_callback"], ["taskId", "action", "opt_callback"], ["opt_count", "opt_callback"], + ["opt_limit", "opt_callback"], ["requestedId", "opt_callback"], ["params", "opt_callback"], ["taskId", "request", "opt_callback"], ["operationName", "opt_callback"], ["rootId", "opt_callback"], ["id"], ["taskId", "opt_callback"], ["date", "opt_tz"], ["json"], ["json"], ["json"], ["json"], ["opt_dict"], ["func", "var_args"], ["opt_baseurl", "opt_tileurl", "opt_successCallback", "opt_errorCallback", "opt_xsrfToken"], [], [], [], ["func", "namedArgs"], [], ["var_args"], ["geometry", "opt_properties"], + ["opt_callback"], ["opt_visParams", "opt_callback"], ["propertySelectors", "opt_newProperties", "opt_retainGeometry"], ["opt_visParams", "opt_callback"], ["opt_format", "opt_selectors", "opt_filename", "opt_callback"], ["opt_callback"], ["args", "opt_column"], ["var_args"], ["name", "value"], ["start", "opt_end"], ["geometry", "opt_errorMargin"], ["name", "value"], ["name", "value"], ["name", "value"], [], ["var_args"], ["name", "operator", "value"], ["opt_filter"], ["opt_leftField", "opt_rightValue", + "opt_rightField", "opt_leftValue"], ["name", "value"], ["name", "value"], ["namedArgs"], ["var_args"], ["coords", "opt_proj"], [], ["coords", "opt_proj", "opt_geodesic", "opt_evenOdd"], ["west", "south", "east", "north"], ["geoJson", "opt_proj", "opt_geodesic", "opt_evenOdd"], [], ["coords", "opt_proj"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["legacy"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], + ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], ["var_args"], ["params", "opt_callback"], ["var_args"], ["geometry"], ["opt_visParams", "opt_callback"], ["params", "opt_callback"], ["expression", "opt_map"], ["opt_args"], ["r", "g", "b"], ["params", "opt_callback"], ["opt_callback"], ["var_args"], ["params", "opt_callback"], ["opt_callback"], ["params", "opt_callback"], ["args"], [], ["opt_visParams", "opt_callback"], + ["selectors", "opt_names"], ["list"], ["number"], ["obj"], ["obj"], ["obj"], ["obj", "opt_isCompound"], ["obj"], ["obj"], ["obj"], ["string"], []]; + [ee.ApiFunction._call, ee.ApiFunction._apply, ee.ApiFunction.lookup, module$contents$ee$batch_Export.videoMap.toCloudStorage, module$contents$ee$batch_Export.video.toCloudStorage, module$contents$ee$batch_Export.classifier.toAsset, module$contents$ee$batch_Export.video.toDrive, module$contents$ee$batch_Export.table.toCloudStorage, module$contents$ee$batch_Export.image.toAsset, module$contents$ee$batch_Export.image.toCloudStorage, module$contents$ee$batch_Export.image.toDrive, module$contents$ee$batch_Export.table.toAsset, + module$contents$ee$batch_Export.table.toDrive, module$contents$ee$batch_Export.map.toCloudStorage, ee.Collection.prototype.sort, ee.Collection.prototype.iterate, ee.Collection.prototype.filterMetadata, ee.Collection.prototype.filter, ee.Collection.prototype.filterBounds, ee.Collection.prototype.filterDate, ee.Collection.prototype.limit, ee.Collection.prototype.map, ee.ComputedObject.prototype.serialize, ee.ComputedObject.prototype.aside, ee.ComputedObject.prototype.getInfo, ee.ComputedObject.prototype.evaluate, + ee.data.createAsset, ee.data.startTableIngestion, ee.data.createFolder, ee.data.getAsset, ee.data.cancelTask, ee.data.renameAsset, ee.data.copyAsset, ee.data.startProcessing, ee.data.getMapId, ee.data.getInfo, ee.data.authenticateViaPopup, ee.data.authenticate, ee.data.deleteAsset, ee.data.getTileUrl, ee.data.getList, ee.data.updateAsset, ee.data.authenticateViaPrivateKey, ee.data.listAssets, ee.data.authenticateViaOauth, ee.data.getDownloadId, ee.data.listImages, ee.data.getAssetAcl, ee.data.getDmsTilesKey, + ee.data.getTableDownloadId, ee.data.makeDownloadUrl, ee.data.getTaskList, ee.data.listBuckets, ee.data.computeValue, ee.data.setAssetAcl, ee.data.getTaskListWithLimit, ee.data.getAssetRoots, ee.data.makeTableDownloadUrl, ee.data.setAssetProperties, ee.data.getFilmstripThumbId, ee.data.getOperation, ee.data.getThumbId, ee.data.updateTask, ee.data.newTaskId, ee.data.listOperations, ee.data.createAssetHome, ee.data.getVideoThumbId, ee.data.startIngestion, ee.data.cancelOperation, ee.data.getAssetRootQuota, + ee.data.makeThumbUrl, ee.data.getTaskStatus, ee.Date, ee.Deserializer.fromJSON, ee.Deserializer.fromCloudApiJSON, ee.Deserializer.decodeCloudApi, ee.Deserializer.decode, ee.Dictionary, ee.call, ee.initialize, ee.TILE_SIZE, ee.reset, ee.InitState, ee.apply, ee.Algorithms, ee.Element.prototype.set, ee.Feature, ee.Feature.prototype.getInfo, ee.Feature.prototype.getMap, ee.FeatureCollection.prototype.select, ee.FeatureCollection.prototype.getMap, ee.FeatureCollection.prototype.getDownloadURL, ee.FeatureCollection.prototype.getInfo, + ee.FeatureCollection, ee.Filter.or, ee.Filter.lt, ee.Filter.date, ee.Filter.bounds, ee.Filter.eq, ee.Filter.gte, ee.Filter.lte, ee.Filter.prototype.not, ee.Filter.and, ee.Filter.metadata, ee.Filter, ee.Filter.inList, ee.Filter.neq, ee.Filter.gt, ee.Function.prototype.apply, ee.Function.prototype.call, ee.Geometry.Point, ee.Geometry.prototype.toGeoJSON, ee.Geometry.Rectangle, ee.Geometry.BBox, ee.Geometry, ee.Geometry.prototype.toGeoJSONString, ee.Geometry.MultiPoint, ee.Geometry.MultiPolygon, ee.Geometry.MultiLineString, + ee.Geometry.prototype.serialize, ee.Geometry.LineString, ee.Geometry.LinearRing, ee.Geometry.Polygon, ee.Image.prototype.rename, ee.Image.prototype.getDownloadURL, ee.Image.prototype.select, ee.Image.prototype.clip, ee.Image.prototype.getMap, ee.Image.prototype.getThumbId, ee.Image.prototype.expression, ee.Image, ee.Image.rgb, ee.Image.prototype.getThumbURL, ee.Image.prototype.getInfo, ee.Image.cat, ee.ImageCollection.prototype.getFilmstripThumbURL, ee.ImageCollection.prototype.getInfo, ee.ImageCollection.prototype.getVideoThumbURL, + ee.ImageCollection, ee.ImageCollection.prototype.first, ee.ImageCollection.prototype.getMap, ee.ImageCollection.prototype.select, ee.List, ee.Number, ee.Serializer.encodeCloudApi, ee.Serializer.encodeCloudApiPretty, ee.Serializer.toReadableCloudApiJSON, ee.Serializer.encode, ee.Serializer.toCloudApiJSON, ee.Serializer.toJSON, ee.Serializer.toReadableJSON, ee.String, ee.Terrain].forEach(function(fn, i) { fn && (exportedFnInfo[fn.toString()] = {name:orderedFnNames[i], paramNames:orderedParamLists[i]}); }); goog.global.EXPORTED_FN_INFO = exportedFnInfo; diff --git a/javascript/package.json b/javascript/package.json index 058cb741d..be0bd1d96 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@google/earthengine", - "version": "0.1.275", + "version": "0.1.276", "description": "JavaScript client for Google Earth Engine API.", "author": "Google LLC", "license": "Apache-2.0", diff --git a/javascript/src/apiclient.js b/javascript/src/apiclient.js index 4d464b976..3cc5d5716 100644 --- a/javascript/src/apiclient.js +++ b/javascript/src/apiclient.js @@ -25,8 +25,7 @@ const {PromiseRequestService} = goog.require('eeapiclient.promise_request_servic /** @namespace */ const apiclient = {}; - -const API_CLIENT_VERSION = '0.1.275'; +const API_CLIENT_VERSION = '0.1.276'; exports.VERSION = apiVersion.VERSION; exports.API_CLIENT_VERSION = API_CLIENT_VERSION; @@ -1588,7 +1587,6 @@ apiclient.APP_ID_TOKEN_HEADER_ = 'X-Earth-Engine-App-ID-Token'; */ apiclient.PROFILE_HEADER = 'X-Earth-Engine-Computation-Profile'; - /** * The HTTP header indicating what the client library version is. * @const {string} diff --git a/javascript/src/batch.js b/javascript/src/batch.js index c4f018b5d..1d916368a 100644 --- a/javascript/src/batch.js +++ b/javascript/src/batch.js @@ -33,8 +33,6 @@ Export.table = {}; /** @const */ Export.video = {}; - - /** * ExportTask */ @@ -126,7 +124,6 @@ class ExportTask { //////////////////////////////////////////////////////////////////////////////// // Public API for exports in the JS client library. -// /** @@ -367,12 +364,10 @@ Export.video.toDrive = function( return ExportTask.create(serverConfig); }; - //////////////////////////////////////////////////////////////////////////////// // Internal validation. // //////////////////////////////////////////////////////////////////////////////// - /** * A task descriptor whose parameters have been converted from the user-facing * syntax to a server-compatible representation. For the user-facing @@ -761,7 +756,6 @@ const TableFormat = { TF_RECORD_TABLE: 'TF_RECORD_TABLE', }; - /** @type {!Object>} */ const FORMAT_OPTIONS_MAP = { 'GEO_TIFF': [ diff --git a/javascript/src/data.js b/javascript/src/data.js index 0eea21cfd..b62ee2df0 100644 --- a/javascript/src/data.js +++ b/javascript/src/data.js @@ -1,8 +1,8 @@ /** * @fileoverview Singleton for all of the library's communication * with the Earth Engine API. - * @suppress {missingRequire} TODO(b/152540451): this shouldn't be needed - * @suppress {useOfGoogProvide} TODO(b/80481479): Convert to goog.module. + * @suppress {missingRequire} TODO(user): this shouldn't be needed + * @suppress {useOfGoogProvide} TODO(user): Convert to goog.module. */ goog.provide('ee.data'); @@ -464,7 +464,6 @@ ee.data.makeMapId_ = function(mapid, token, opt_urlFormat = '') { return {mapid, token, formatTileUrl, urlFormat}; }; - /** * Sends a request to compute a value. * @param {*} obj @@ -1188,7 +1187,6 @@ ee.data.prepareExportMapRequest_ = function(taskConfig, metadata) { return mapRequest; }; - /** * Creates an image asset ingestion task. * @@ -1778,7 +1776,7 @@ ee.data.getAssetRootQuota = function(rootId, opt_callback) { ee.rpc_convert.folderQuotaToAssetQuotaDetails(quota)); }; const call = new ee.apiclient.Call(opt_callback); - // TODO(b/141623314): Undo this when the getAssets call accepts /assets/, + // TODO(user): Undo this when the getAssets call accepts /assets/, // as currently, the request must have a full asset path, e.g. /assets/foo. const assetsCall = call.assets(); const validateParams = assetsCall.$apiClient.$validateParameter; @@ -1841,7 +1839,6 @@ ee.data.ExportDestination = { ASSET: 'ASSET', }; - /** @enum {string} The names of the EE system time asset properties. */ ee.data.SystemTimeProperty = { 'START': 'system:time_start', @@ -2429,7 +2426,6 @@ ee.data.ImageVisualizationParameters = class { } }; - /** * An object describing the parameters for generating a thumbnail image. * Consists of all parameters of ee.data.ImageVisualizationParameters as well as @@ -2768,7 +2764,6 @@ ee.data.MapId = class extends ee.data.RawMapId { } }; - /** * The range of zoom levels for our map tiles. * @enum {number} @@ -2917,7 +2912,6 @@ ee.data.ImageExportFormatConfig; */ ee.data.MapTaskConfig; - /** * An object for specifying configuration of a task to export feature * collections. diff --git a/javascript/src/eeapiclient/api_client.ts b/javascript/src/eeapiclient/api_client.ts index 036902063..a0b0e12e4 100644 --- a/javascript/src/eeapiclient/api_client.ts +++ b/javascript/src/eeapiclient/api_client.ts @@ -8,10 +8,8 @@ export abstract class ApiClient { $validateParameter(param: any, pattern: RegExp): void { const paramStr = String(param); if (!pattern.test(paramStr)) { - throw new Error( - `parameter [${paramStr}] does not match pattern [${ - pattern.toString() - }]`); + throw new Error(`parameter [${paramStr}] does not match pattern [${ + pattern.toString()}]`); } } } diff --git a/javascript/src/eeapiclient/domain_object.ts b/javascript/src/eeapiclient/domain_object.ts index 72d4cb848..eb2a0465a 100644 --- a/javascript/src/eeapiclient/domain_object.ts +++ b/javascript/src/eeapiclient/domain_object.ts @@ -150,7 +150,9 @@ export abstract class Serializable implements ISerializable { } } -export interface SerializableCtor { new(): T; } +export interface SerializableCtor { + new(): T; +} /** * Makes a deep copy of the ISerializable instance. @@ -366,7 +368,7 @@ function deepCopyValue( deserialized = null as unknown as {}; } else if (typeof value === 'object') { - // TODO(b/131926196): Assert as a type, declared interface, or `unknown`. + // TODO(user): Assert as a type, declared interface, or `unknown`. // tslint:disable-next-line:ban-types no-unnecessary-type-assertion deserialized = JSON.parse(JSON.stringify(value)) as AnyDuringMigration; diff --git a/javascript/src/eeapiclient/generated_types.ts b/javascript/src/eeapiclient/generated_types.ts index 8926a9a3f..f010208df 100644 --- a/javascript/src/eeapiclient/generated_types.ts +++ b/javascript/src/eeapiclient/generated_types.ts @@ -8,7 +8,7 @@ import {MultipartRequest} from './multipart_request'; * Because of structural typing this has no real effect, but it hopefully * clarifies method signatures. * - * TODO(b/31583417): Figure out ways to enforce stronger typing. + * TODO(user): Figure out ways to enforce stronger typing. */ export interface GeneratedInterface {} @@ -33,4 +33,6 @@ export interface GeneratedRequestParams { streamingType?: string; } -export interface ApiClientObjectMap { [key: string]: T; } +export interface ApiClientObjectMap { + [key: string]: T; +} diff --git a/javascript/src/eeapiclient/request_params.ts b/javascript/src/eeapiclient/request_params.ts index 959562429..cee3ff1da 100644 --- a/javascript/src/eeapiclient/request_params.ts +++ b/javascript/src/eeapiclient/request_params.ts @@ -138,7 +138,7 @@ const simpleCorsAllowedMethods: string[] = ['GET', 'HEAD', 'POST']; * a 'Content-Type' of 'text/plain;charset=UTF-8' will be automatically added * by the browser. */ -// TODO(mingzhilin): Return a changed copy of params. +// TODO(user): Return a changed copy of params. export function bypassCorsPreflight(params: MakeRequestParams) { const safeHeaders: {[key: string]: string} = {}; const unsafeHeaders: {[key: string]: string} = {}; diff --git a/javascript/src/encodable.js b/javascript/src/encodable.js index c0c4bcc67..a2be3a954 100644 --- a/javascript/src/encodable.js +++ b/javascript/src/encodable.js @@ -930,7 +930,7 @@ ee.rpc_convert.toImageManifest = function(params) { }; // Retain existing keys const manifest = ee.apiclient.deserialize(ee.api.ImageManifest, params); - // TODO(b/131773013): Transform keys as done in ee/cli/commands.py + // TODO(user): Transform keys as done in ee/cli/commands.py manifest.name = ee.rpc_convert.assetIdToAssetName(params['id']); manifest.tilesets = (params['tilesets'] || []).map(convertTileset); manifest.bands = (params['bands'] || []).map(convertBands); @@ -1021,7 +1021,7 @@ ee.rpc_convert.toTableManifest = function(params) { }; // Retain existing keys const manifest = ee.apiclient.deserialize(ee.api.TableManifest, params); - // TODO(b/131773013): Transform keys as done in ee/cli/commands.py + // TODO(user): Transform keys as done in ee/cli/commands.py manifest.name = ee.rpc_convert.assetIdToAssetName(params['id']); manifest.sources = (params['sources'] || []).map(convertTableSource); diff --git a/javascript/src/geometry.js b/javascript/src/geometry.js index b6342ef2b..1f569debc 100644 --- a/javascript/src/geometry.js +++ b/javascript/src/geometry.js @@ -23,8 +23,6 @@ goog.require('goog.object'); goog.requireType('ee.data'); - - /** * Creates a geometry. * @param {Object} geoJson The GeoJSON object describing the geometry or diff --git a/javascript/src/terrain.js b/javascript/src/terrain.js old mode 100644 new mode 100755 diff --git a/python/ee/__init__.py b/python/ee/__init__.py index f1e6de579..2df6a6b5a 100644 --- a/python/ee/__init__.py +++ b/python/ee/__init__.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """The EE Python library.""" -__version__ = '0.1.275' +__version__ = '0.1.276' # Using lowercase function naming to match the JavaScript names. # pylint: disable=g-bad-name diff --git a/python/ee/batch.py b/python/ee/batch.py index ddd4cfe97..906f3620e 100644 --- a/python/ee/batch.py +++ b/python/ee/batch.py @@ -780,7 +780,6 @@ def toDrive(collection, description='myExportVideoTask', return _create_export_task(config, Task.Type.EXPORT_VIDEO) - def _CheckConfigDisallowedPrefixes(config, prefix): for key in config: if key.startswith(prefix): @@ -1085,8 +1084,6 @@ def _prepare_video_export_config(collection, config, export_destination): return request - - def _build_image_file_export_options(config, export_destination): """Builds an ImageFileExportOptions from values in a config dict. diff --git a/python/ee/cli/build_archive.sh b/python/ee/cli/build_archive.sh old mode 100644 new mode 100755 diff --git a/python/ee/cli/commands.py b/python/ee/cli/commands.py index 76bc4edd0..4cc26a006 100644 --- a/python/ee/cli/commands.py +++ b/python/ee/cli/commands.py @@ -690,8 +690,6 @@ class AssetCommand(Dispatcher): ] - - class CopyCommand(object): """Creates a new Earth Engine asset as a copy of another asset.""" @@ -762,8 +760,6 @@ class CreateCommand(Dispatcher): ] - - class ListCommand(object): """Prints the contents of a folder or collection.""" @@ -1834,8 +1830,6 @@ def check_tensorflow_installed(): 'Warning: TensorFlow Addons not found. Models that use ' 'non-standard ops may not work.') - - EXTERNAL_COMMANDS = [ AuthenticateCommand, AclCommand, diff --git a/python/ee/collection.py b/python/ee/collection.py old mode 100644 new mode 100755 diff --git a/python/ee/computedobject.py b/python/ee/computedobject.py old mode 100644 new mode 100755 diff --git a/python/ee/data.py b/python/ee/data.py index ce7465a5f..d4dd51aa3 100644 --- a/python/ee/data.py +++ b/python/ee/data.py @@ -396,8 +396,6 @@ def profiling(hook): _thread_locals.profile_hook = saved_hook - - @deprecation.Deprecated('Use getAsset') def getInfo(asset_id): """Load info for an asset, given an asset id. @@ -1298,8 +1296,6 @@ def exportMap(request_id, params): _get_cloud_api_resource().projects().map().export) - - def _prepare_and_run_export(request_id, params, export_endpoint): """Starts an export task running. diff --git a/python/ee/deserializer.py b/python/ee/deserializer.py old mode 100644 new mode 100755 diff --git a/python/ee/dictionary.py b/python/ee/dictionary.py old mode 100644 new mode 100755 diff --git a/python/ee/ee_date.py b/python/ee/ee_date.py old mode 100644 new mode 100755 diff --git a/python/ee/ee_list.py b/python/ee/ee_list.py old mode 100644 new mode 100755 diff --git a/python/ee/ee_number.py b/python/ee/ee_number.py old mode 100644 new mode 100755 diff --git a/python/ee/ee_string.py b/python/ee/ee_string.py old mode 100644 new mode 100755 diff --git a/python/ee/feature.py b/python/ee/feature.py old mode 100644 new mode 100755 diff --git a/python/ee/featurecollection.py b/python/ee/featurecollection.py old mode 100644 new mode 100755 diff --git a/python/ee/filter.py b/python/ee/filter.py old mode 100644 new mode 100755 diff --git a/python/ee/geometry.py b/python/ee/geometry.py old mode 100644 new mode 100755 diff --git a/python/ee/image.py b/python/ee/image.py old mode 100644 new mode 100755 diff --git a/python/ee/imagecollection.py b/python/ee/imagecollection.py old mode 100644 new mode 100755 diff --git a/python/ee/serializer.py b/python/ee/serializer.py old mode 100644 new mode 100755 diff --git a/python/ee/terrain.py b/python/ee/terrain.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/algorithms.json b/python/ee/tests/algorithms.json index 07b6690ee..67211c207 100644 --- a/python/ee/tests/algorithms.json +++ b/python/ee/tests/algorithms.json @@ -56,7 +56,7 @@ }, { "argumentName": "gridSize", "type": "Integer", - "description": "Grid size.", + "description": "The size of the grid over which to perform the computation.", "optional": true, "defaultValue": 256.0 }, { @@ -7341,7 +7341,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.mod", "description": "Calculates the remainder of the first value divided by the second for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is the union of the input types.", @@ -7523,7 +7524,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.bitwiseOr", "description": "Calculates the bitwise OR of the input values for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is the union of the input types.", @@ -7549,7 +7551,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.bitwiseXor", "description": "Calculates the bitwise XOR of the input values for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is the union of the input types.", @@ -7575,7 +7578,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.leftShift", "description": "Calculates the left shift of v1 by v2 bits for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is the union of the input types.", @@ -7601,7 +7605,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.rightShift", "description": "Calculates the signed right shift of v1 by v2 bits for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is the union of the input types.", @@ -7627,7 +7632,8 @@ "argumentName": "image2", "type": "Image\u003cunknown bands\u003e", "description": "The image from which the right operand bands are taken." - }] + }], + "hidden": true }, { "name": "algorithms/Image.gammainc", "description": "Calculates the regularized lower incomplete Gamma function γ(x,a) for each matched pair of bands in image1 and image2. If either image1 or image2 has only 1 band, then it is used against all the bands in the other image. If the images have the same number of bands, but not the same names, they\u0027re used pairwise in the natural order. The output bands are named for the longer of the two inputs, or if they\u0027re equal in length, in image1\u0027s order. The type of the output pixels is float.", @@ -7658,7 +7664,8 @@ "argumentName": "value", "type": "Image\u003cunknown bands\u003e", "description": "The image to which the operation is applied." - }] + }], + "hidden": true }, { "name": "algorithms/Image.bitCount", "description": "Calculates the number of one-bits in the 64-bit two\u0027s complement binary representation of the input.", @@ -11558,7 +11565,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.mod", "description": "Calculates the remainder of the first value divided by the second.", @@ -11740,7 +11748,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.bitwiseOr", "description": "Calculates the bitwise OR of the input values.", @@ -11766,7 +11775,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.bitwiseXor", "description": "Calculates the bitwise XOR of the input values.", @@ -11792,7 +11802,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.leftShift", "description": "Calculates the left shift of v1 by v2 bits.", @@ -11818,7 +11829,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.rightShift", "description": "Calculates the signed right shift of v1 by v2 bits.", @@ -11844,7 +11856,8 @@ "argumentName": "right", "type": "Number", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.gammainc", "description": "Calculates the regularized lower incomplete Gamma function γ(x,a).", @@ -11875,7 +11888,8 @@ "argumentName": "input", "type": "Number", "description": "The input value." - }] + }], + "hidden": true }, { "name": "algorithms/Number.bitCount", "description": "Calculates the number of one-bits in the 64-bit two\u0027s complement binary representation of the input.", @@ -13331,7 +13345,8 @@ "argumentName": "input", "type": "Array", "description": "The input array." - }] + }], + "hidden": true }, { "name": "algorithms/Array.bitCount", "description": "On an element-wise basis, calculates the number of one-bits in the 64-bit two\u0027s complement binary representation of the input.", @@ -14006,7 +14021,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.mod", "description": "On an element-wise basis, calculates the remainder of the first value divided by the second.", @@ -14188,7 +14204,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.bitwiseOr", "description": "On an element-wise basis, calculates the bitwise OR of the input values.", @@ -14214,7 +14231,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.bitwiseXor", "description": "On an element-wise basis, calculates the bitwise XOR of the input values.", @@ -14240,7 +14258,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.leftShift", "description": "On an element-wise basis, calculates the left shift of v1 by v2 bits.", @@ -14266,7 +14285,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.rightShift", "description": "On an element-wise basis, calculates the signed right shift of v1 by v2 bits.", @@ -14292,7 +14312,8 @@ "argumentName": "right", "type": "Array", "description": "The right-hand value." - }] + }], + "hidden": true }, { "name": "algorithms/Array.gammainc", "description": "On an element-wise basis, calculates the regularized lower incomplete Gamma function γ(x,a).", diff --git a/python/ee/tests/batch_test.py b/python/ee/tests/batch_test.py index 9aaa68e6c..aaaa47dd2 100644 --- a/python/ee/tests/batch_test.py +++ b/python/ee/tests/batch_test.py @@ -911,6 +911,5 @@ def expected_preparation_function(img): self.assertEqual(expected_config, task_ordered.config) - if __name__ == '__main__': unittest.main() diff --git a/python/ee/tests/date_test.py b/python/ee/tests/date_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/dictionary_test.py b/python/ee/tests/dictionary_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/ee_test.py b/python/ee/tests/ee_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/image_test.py b/python/ee/tests/image_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/imagecollection_test.py b/python/ee/tests/imagecollection_test.py index 95165bd15..a85746110 100644 --- a/python/ee/tests/imagecollection_test.py +++ b/python/ee/tests/imagecollection_test.py @@ -90,6 +90,5 @@ def expected_preparation_function(img): collection.serialize(for_cloud_api=True)) self.assertEqual({}, params) - if __name__ == '__main__': unittest.main() diff --git a/python/ee/tests/list_test.py b/python/ee/tests/list_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/number_test.py b/python/ee/tests/number_test.py old mode 100644 new mode 100755 diff --git a/python/ee/tests/string_test.py b/python/ee/tests/string_test.py old mode 100644 new mode 100755