diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml new file mode 100644 index 000000000..972c62e81 --- /dev/null +++ b/.github/workflows/ci-tests.yml @@ -0,0 +1,34 @@ +# TODO(user): Fix or skip tests that fail on GitHub +name: ci-tests +on: [ + push, + pull_request, +] + +jobs: + build: + name: "python ${{ matrix.python-version }} tests" + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", + "3.12", + ] + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + - name: Install EE and dependencies + run: | + pip install ./python[tests] + - name: Test + run: | + python -m unittest discover --pattern="*test.py" --start-directory python/ee/tests \ No newline at end of file diff --git a/javascript/build/ee_api_js.js b/javascript/build/ee_api_js.js index 8f1388033..d95d6f95c 100644 --- a/javascript/build/ee_api_js.js +++ b/javascript/build/ee_api_js.js @@ -1,17 +1,17 @@ (function(){var h,aa=function(a){var b=0;return function(){return b>>0)+"_",d=0,e=function(g){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(g||"")+"_"+d++,g)};return e}); +da("Symbol",function(a){if(a)return a;var b=function(g,f){this.aj=g;ba(this,"description",{configurable:!0,writable:!0,value:f})};b.prototype.toString=function(){return this.aj};var c="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",d=0,e=function(g){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(g||"")+"_"+d++,g)};return e}); da("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c>>0),Ba=0,Da=function(a,b,c){return a.call.apply(a.bind, arguments)},Ea=function(a,b,c){if(!a)throw Error();if(2c&&(c=Math.max(0,a.length+c));if("string"===typeof a)return"string"!==typeof b|| 1!=b.length?-1:a.lastIndexOf(b,c);for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1},Ua=Array.prototype.forEach?function(a,b){B(null!=a.length);Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;ea-0)return[];for(var c=0;c>>0),cc=function(a){B(a,"Listener can not be null.");if("function"===typeof a)return a;B(a.handleEvent,"An object listener must have handleEvent method.");a[kc]||(a[kc]=function(b){return a.handleEvent(b)}); -return a[kc]};var D=function(){y.call(this);this.Ia=new Vb(this);this.Qk=this;this.Tf=null};x(D,y);D.prototype[Ab]=!0;h=D.prototype;h.addEventListener=function(a,b,c,d){bc(this,a,b,c,d)};h.removeEventListener=function(a,b,c,d){ic(this,a,b,c,d)}; -h.dispatchEvent=function(a){lc(this);var b=this.Tf;if(b){var c=[];for(var d=1;b;b=b.Tf)c.push(b),B(1E3>++d,"infinite loop")}b=this.Qk;d=a.type||a;if("string"===typeof a)a=new A(a,b);else if(a instanceof A)a.target=a.target||b;else{var e=a;a=new A(d,b);Ub(a,e)}e=!0;if(c)for(var g=c.length-1;!a.bd&&0<=g;g--){var f=a.currentTarget=c[g];e=mc(f,d,!0,a)&&e}a.bd||(f=a.currentTarget=b,e=mc(f,d,!0,a)&&e,a.bd||(e=mc(f,d,!1,a)&&e));if(c)for(g=0;!a.bd&&g=a.length)return sc;if(b in a)return{value:a[b++],done:!1};b++}};return c}throw Error("Not implemented");},uc=function(a,b){if(xa(a))Ua(a,b);else for(a=tc(a);;){var c=a.next();if(c.done)break;b.call(void 0,c.value,void 0,a)}};var yc=function(a){if(a instanceof vc||a instanceof wc||a instanceof xc)return a;if("function"==typeof a.next)return new vc(function(){return a});if("function"==typeof a[Symbol.iterator])return new vc(function(){return a[Symbol.iterator]()});if("function"==typeof a.Da)return new vc(function(){return a.Da()});throw Error("Not an iterator or iterable.");},vc=function(a){this.tf=a};vc.prototype.Da=function(){return new wc(this.tf())};vc.prototype[Symbol.iterator]=function(){return new xc(this.tf())}; -vc.prototype.yg=function(){return new xc(this.tf())};var wc=function(a){this.Rc=a};q(wc,rc);wc.prototype.next=function(){return this.Rc.next()};wc.prototype[Symbol.iterator]=function(){return new xc(this.Rc)};wc.prototype.yg=function(){return new xc(this.Rc)};var xc=function(a){vc.call(this,function(){return a});this.Rc=a};q(xc,vc);xc.prototype.next=function(){return this.Rc.next()};var zc=function(a,b){this.A={};this.K=[];this.nd=this.size=0;var c=arguments.length;if(12*this.size&&Ac(this),!0):!1};var Ac=function(a){if(a.size!=a.K.length){for(var b=0,c=0;b=d.K.length)return sc;var g=d.K[b++];return{value:a?g:d.A[g],done:!1}};return e};h.mb=function(a){this.size=a};var Bc=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var Dc=function(a){if(a.R&&"function"==typeof a.R)a=a.R();else if(xa(a)||"string"===typeof a)a=a.length;else{var b=0,c;for(c in a)b++;a=b}return a},Ec=function(a){if(a.aa&&"function"==typeof a.aa)return a.aa();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(xa(a)){for(var b=[],c=a.length,d=0;d>>0),cc=function(a){B(a,"Listener can not be null.");if("function"===typeof a)return a;B(a.handleEvent,"An object listener must have handleEvent method.");a[kc]||(a[kc]=function(b){return a.handleEvent(b)}); +return a[kc]};var D=function(){y.call(this);this.Ia=new Vb(this);this.Qk=this;this.Wf=null};x(D,y);D.prototype[Ab]=!0;h=D.prototype;h.addEventListener=function(a,b,c,d){bc(this,a,b,c,d)};h.removeEventListener=function(a,b,c,d){ic(this,a,b,c,d)}; +h.dispatchEvent=function(a){lc(this);var b=this.Wf;if(b){var c=[];for(var d=1;b;b=b.Wf)c.push(b),B(1E3>++d,"infinite loop")}b=this.Qk;d=a.type||a;if("string"===typeof a)a=new A(a,b);else if(a instanceof A)a.target=a.target||b;else{var e=a;a=new A(d,b);Ub(a,e)}e=!0;if(c)for(var g=c.length-1;!a.fd&&0<=g;g--){var f=a.currentTarget=c[g];e=mc(f,d,!0,a)&&e}a.fd||(f=a.currentTarget=b,e=mc(f,d,!0,a)&&e,a.fd||(e=mc(f,d,!1,a)&&e));if(c)for(g=0;!a.fd&&g=a.length)return sc;if(b in a)return{value:a[b++],done:!1};b++}};return c}throw Error("Not implemented");},uc=function(a,b){if(xa(a))Ua(a,b);else for(a=tc(a);;){var c=a.next();if(c.done)break;b.call(void 0,c.value,void 0,a)}};var yc=function(a){if(a instanceof vc||a instanceof wc||a instanceof xc)return a;if("function"==typeof a.next)return new vc(function(){return a});if("function"==typeof a[Symbol.iterator])return new vc(function(){return a[Symbol.iterator]()});if("function"==typeof a.Da)return new vc(function(){return a.Da()});throw Error("Not an iterator or iterable.");},vc=function(a){this.wf=a};vc.prototype.Da=function(){return new wc(this.wf())};vc.prototype[Symbol.iterator]=function(){return new xc(this.wf())}; +vc.prototype.Bg=function(){return new xc(this.wf())};var wc=function(a){this.Uc=a};q(wc,rc);wc.prototype.next=function(){return this.Uc.next()};wc.prototype[Symbol.iterator]=function(){return new xc(this.Uc)};wc.prototype.Bg=function(){return new xc(this.Uc)};var xc=function(a){vc.call(this,function(){return a});this.Uc=a};q(xc,vc);xc.prototype.next=function(){return this.Uc.next()};var zc=function(a,b){this.A={};this.K=[];this.rd=this.size=0;var c=arguments.length;if(12*this.size&&Ac(this),!0):!1};var Ac=function(a){if(a.size!=a.K.length){for(var b=0,c=0;b=d.K.length)return sc;var g=d.K[b++];return{value:a?g:d.A[g],done:!1}};return e};h.mb=function(a){this.size=a};var Bc=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var Dc=function(a){if(a.R&&"function"==typeof a.R)a=a.R();else if(xa(a)||"string"===typeof a)a=a.length;else{var b=0,c;for(c in a)b++;a=b}return a},Ec=function(a){if(a.aa&&"function"==typeof a.aa)return a.aa();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(xa(a)){for(var b=[],c=a.length,d=0;dc)return!1;!(b instanceof Ic)&&5e&&(e+=d);return[a.nl,c,e,b.y].join("/")};Nc.prototype.Kc=function(){return this.Ab.length};var Pc=function(a){A.call(this,"tileevent");this.count=a};x(Pc,A);var Qc=function(){},Rc=new Qc;function Sc(a){return Object.assign({},{P:{},Pl:{},keys:[],Ma:{},s:{},H:{},th:!1},a)}var E=function(){this.h={}},F=function(a,b){return a.h.hasOwnProperty(b)?a.h[b]:null},G=function(a,b){return null!=a.h[b]};function Tc(a,b){return F(b,a)}function Uc(a,b,c){b[a]=c}function Vc(){return{}}function Wc(a,b){var c=new a;return null==b?c:Xc(b,Yc,Zc,$c,a)}function Yc(a,b){return b[a]}function Zc(a,b,c){b.h[a]=c} +b){if("function"==typeof a.every)return a.every(b,void 0);if(xa(a)||"string"===typeof a)return Array.prototype.every.call(a,b,void 0);for(var c=Fc(a),d=Ec(a),e=d.length,g=0;gc)return!1;!(b instanceof Ic)&&5e&&(e+=d);return[a.nl,c,e,b.y].join("/")};Nc.prototype.Nc=function(){return this.Ab.length};var Pc=function(a){A.call(this,"tileevent");this.count=a};x(Pc,A);var Qc=function(){},Rc=new Qc;function Sc(a){return Object.assign({},{P:{},Pl:{},keys:[],Ma:{},s:{},H:{},wh:!1},a)}var E=function(){this.h={}},F=function(a,b){return a.h.hasOwnProperty(b)?a.h[b]:null},G=function(a,b){return null!=a.h[b]};function Tc(a,b){return F(b,a)}function Uc(a,b,c){b[a]=c}function Vc(){return{}}function Wc(a,b){var c=new a;return null==b?c:Xc(b,Yc,Zc,$c,a)}function Yc(a,b){return b[a]}function Zc(a,b,c){b.h[a]=c} function $c(a){if(null==a)throw Error("Cannot deserialize, target constructor was null.");return new a} -function Xc(a,b,c,d,e){e=d(e);for(var g=ad(a,e),f=g.P||{},l=g.s||{},m=g.Ma||{},p=n(g.keys||[]),v=p.next(),z={};!v.done;z={Vc:z.Vc},v=p.next()){v=v.value;var C=b(v,a);if(null!=C){var Q=void 0;if(f.hasOwnProperty(v)){if(g.th&&0===C.length)continue;Q=bd(C,b,c,d,!0,!0,f[v])}else if(l.hasOwnProperty(v))Q=bd(C,b,c,d,!1,!0,l[v]);else if(m.hasOwnProperty(v))z.Vc=m[v],Q=z.Vc.pa?C.map(function(oa){return function(S){return cd(S,oa.Vc,b,c,d)}}(z)):cd(C,z.Vc,b,c,d);else if(Array.isArray(C)){if(g.th&&0===C.length)continue; +function Xc(a,b,c,d,e){e=d(e);for(var g=ad(a,e),f=g.P||{},l=g.s||{},m=g.Ma||{},p=n(g.keys||[]),v=p.next(),z={};!v.done;z={Yc:z.Yc},v=p.next()){v=v.value;var C=b(v,a);if(null!=C){var Q=void 0;if(f.hasOwnProperty(v)){if(g.wh&&0===C.length)continue;Q=bd(C,b,c,d,!0,!0,f[v])}else if(l.hasOwnProperty(v))Q=bd(C,b,c,d,!1,!0,l[v]);else if(m.hasOwnProperty(v))z.Yc=m[v],Q=z.Yc.pa?C.map(function(oa){return function(S){return cd(S,oa.Yc,b,c,d)}}(z)):cd(C,z.Yc,b,c,d);else if(Array.isArray(C)){if(g.wh&&0===C.length)continue; Q=bd(C,b,c,d,!0,!1)}else Q=C instanceof Qc?null:C;c(v,e,Q)}}return e}function cd(a,b,c,d,e){for(var g={},f=n(Object.keys(a)),l=f.next();!l.done;l=f.next()){l=l.value;var m=a[l];null!=m&&(g[l]=bd(m,c,d,e,b.ra,b.qa,b.ka))}return g} -function bd(a,b,c,d,e,g,f){if(g&&null==f)throw Error("Cannot deserialize a reference object without a constructor.");return null==a?a:e&&g?a.map(function(l){return Xc(l,b,c,d,f)}):e&&!g?a.map(function(l){return l}):!e&&g?Xc(a,b,c,d,f):a instanceof Qc?null:"object"===typeof a?JSON.parse(JSON.stringify(a)):a}function ad(a,b){if(b instanceof E)a=Sc(b.i());else if(a instanceof E)a=Sc(a.i());else throw Error("Cannot find ClassMetadata.");return a};var dd;var fd=function(a,b){if(b!==ed)throw Error("TrustedResourceUrl is not meant to be built directly");this.Vf=a};fd.prototype.toString=function(){return this.Vf+""};fd.prototype.Qc=!0;fd.prototype.Mc=function(){return this.Vf.toString()}; -var gd=function(a){if(a instanceof fd&&a.constructor===fd)return a.Vf;Na("expected object of type TrustedResourceUrl, got '%s' of type %s",a,wa(a));return"type_error:TrustedResourceUrl"},ed={},hd=function(a){if(void 0===dd){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy)try{b=c.createPolicy("goog#html",{createHTML:Ga,createScript:Ga,createScriptURL:Ga})}catch(d){r.console&&r.console.error(d.message)}dd=b}a=(b=dd)?b.createScriptURL(a):a;return new fd(a,ed)};var jd=function(a,b){if(b!==id)throw Error("SafeUrl is not meant to be built directly");this.Uf=a};jd.prototype.toString=function(){return this.Uf.toString()};jd.prototype.Qc=!0;jd.prototype.Mc=function(){return this.Uf.toString()};var kd=function(a){if(a instanceof jd&&a.constructor===jd)return a.Uf;Na("expected object of type SafeUrl, got '"+a+"' of type "+wa(a));return"type_error:SafeUrl"},id={},ld=new jd("about:invalid#zClosurez",id);new jd("about:blank",id);var md={},nd=function(){if(md!==md)throw Error("SafeStyle is not meant to be built directly");this.pi="";this.Qc=!0};nd.prototype.Mc=function(){return this.pi};nd.prototype.toString=function(){return this.pi.toString()};new nd;var od={},pd=function(){if(od!==od)throw Error("SafeStyleSheet is not meant to be built directly");this.oi="";this.Qc=!0};pd.prototype.toString=function(){return this.oi.toString()};pd.prototype.Mc=function(){return this.oi};new pd;var qd={},rd=function(){var a=r.trustedTypes&&r.trustedTypes.emptyHTML||"";if(qd!==qd)throw Error("SafeHtml is not meant to be built directly");this.ni=a;this.Qc=!0};rd.prototype.Mc=function(){return this.ni.toString()};rd.prototype.toString=function(){return this.ni.toString()};new rd;var td=function(a,b){if(!t(a)||!t(a)||!t(a)||1!==a.nodeType||a.namespaceURI&&"http://www.w3.org/1999/xhtml"!==a.namespaceURI||a.tagName.toUpperCase()!=="SCRIPT".toString()){var c="SCRIPT".toString()+"; got: ";if(t(a))try{var d=a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(e){d=""}else d=void 0===a?"undefined":null===a?"null":typeof a;Na("Argument is not an HTML Element with tag name "+(c+d))}a:{c=(a.ownerDocument&&a.ownerDocument.defaultView|| +function bd(a,b,c,d,e,g,f){if(g&&null==f)throw Error("Cannot deserialize a reference object without a constructor.");return null==a?a:e&&g?a.map(function(l){return Xc(l,b,c,d,f)}):e&&!g?a.map(function(l){return l}):!e&&g?Xc(a,b,c,d,f):a instanceof Qc?null:"object"===typeof a?JSON.parse(JSON.stringify(a)):a}function ad(a,b){if(b instanceof E)a=Sc(b.i());else if(a instanceof E)a=Sc(a.i());else throw Error("Cannot find ClassMetadata.");return a};var dd;var fd=function(a,b){if(b!==ed)throw Error("TrustedResourceUrl is not meant to be built directly");this.Yf=a};fd.prototype.toString=function(){return this.Yf+""};fd.prototype.Tc=!0;fd.prototype.Pc=function(){return this.Yf.toString()}; +var gd=function(a){if(a instanceof fd&&a.constructor===fd)return a.Yf;Na("expected object of type TrustedResourceUrl, got '%s' of type %s",a,wa(a));return"type_error:TrustedResourceUrl"},ed={},hd=function(a){if(void 0===dd){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy)try{b=c.createPolicy("goog#html",{createHTML:Ga,createScript:Ga,createScriptURL:Ga})}catch(d){r.console&&r.console.error(d.message)}dd=b}a=(b=dd)?b.createScriptURL(a):a;return new fd(a,ed)};var jd=function(a,b){if(b!==id)throw Error("SafeUrl is not meant to be built directly");this.Xf=a};jd.prototype.toString=function(){return this.Xf.toString()};jd.prototype.Tc=!0;jd.prototype.Pc=function(){return this.Xf.toString()};var kd=function(a){if(a instanceof jd&&a.constructor===jd)return a.Xf;Na("expected object of type SafeUrl, got '"+a+"' of type "+wa(a));return"type_error:SafeUrl"},id={},ld=new jd("about:invalid#zClosurez",id);new jd("about:blank",id);var md={},nd=function(){if(md!==md)throw Error("SafeStyle is not meant to be built directly");this.si="";this.Tc=!0};nd.prototype.Pc=function(){return this.si};nd.prototype.toString=function(){return this.si.toString()};new nd;var od={},pd=function(){if(od!==od)throw Error("SafeStyleSheet is not meant to be built directly");this.ri="";this.Tc=!0};pd.prototype.toString=function(){return this.ri.toString()};pd.prototype.Pc=function(){return this.ri};new pd;var qd={},rd=function(){var a=r.trustedTypes&&r.trustedTypes.emptyHTML||"";if(qd!==qd)throw Error("SafeHtml is not meant to be built directly");this.pi=a;this.Tc=!0};rd.prototype.Pc=function(){return this.pi.toString()};rd.prototype.toString=function(){return this.pi.toString()};new rd;var td=function(a,b){if(!t(a)||!t(a)||!t(a)||1!==a.nodeType||a.namespaceURI&&"http://www.w3.org/1999/xhtml"!==a.namespaceURI||a.tagName.toUpperCase()!=="SCRIPT".toString()){var c="SCRIPT".toString()+"; got: ";if(t(a))try{var d=a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(e){d=""}else d=void 0===a?"undefined":null===a?"null":typeof a;Na("Argument is not an HTML Element with tag name "+(c+d))}a:{c=(a.ownerDocument&&a.ownerDocument.defaultView|| r).document;if(c.querySelector&&(c=c.querySelector("script[nonce]"))&&(c=c.nonce||c.getAttribute("nonce"))&&sd.test(c))break a;c=""}c&&a.setAttribute("nonce",c);a.src=gd(b)},sd=/^[\w+/_-]+[=]{0,2}$/;var ud=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1b)throw Error("Bad port number "+b);a.vc=b}else a.vc=null};yd.prototype.getPath=function(){return this.Zb};yd.prototype.setPath=function(a,b){Ad(this);this.Zb=b?Dd(a,!0):a;return this};var Cd=function(a,b,c){Ad(a);b instanceof Ed?(a.Ba=b,a.Ba.ig(a.za)):(c||(b=Fd(b,Kd)),a.Ba=new Ed(b,a.za))};yd.prototype.getQuery=function(){return this.Ba.toString()}; -yd.prototype.removeParameter=function(a){Ad(this);this.Ba.remove(a);return this};var Ad=function(a){if(a.il)throw Error("Tried to modify a read-only Uri");};yd.prototype.ig=function(a){this.za=a;this.Ba&&this.Ba.ig(a)}; +var zd=function(a,b,c){Ad(a);a.wb=c?Dd(b,!0):b;a.wb&&(a.wb=a.wb.replace(/:$/,""))},Bd=function(a,b){Ad(a);if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.vc=b}else a.vc=null};yd.prototype.getPath=function(){return this.Zb};yd.prototype.setPath=function(a,b){Ad(this);this.Zb=b?Dd(a,!0):a;return this};var Cd=function(a,b,c){Ad(a);b instanceof Ed?(a.Ba=b,a.Ba.lg(a.za)):(c||(b=Fd(b,Kd)),a.Ba=new Ed(b,a.za))};yd.prototype.getQuery=function(){return this.Ba.toString()}; +yd.prototype.removeParameter=function(a){Ad(this);this.Ba.remove(a);return this};var Ad=function(a){if(a.il)throw Error("Tried to modify a read-only Uri");};yd.prototype.lg=function(a){this.za=a;this.Ba&&this.Ba.lg(a)}; var Ld=function(a){return a instanceof yd?a.clone():new yd(a)},Dd=function(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""},Fd=function(a,b,c){return"string"===typeof a?(a=encodeURI(a).replace(b,Md),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null},Md=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)},Gd=/[#\/\?@]/g,Id=/[#\?:]/g,Hd=/[#\?]/g,Kd=/[#\?@]/g,Jd=/#/g,Ed=function(a,b){this.Y=this.N=null;this.ta=a||null;this.za=!!b},Nd= function(a){a.N||(a.N=new Map,a.Y=0,a.ta&&xd(a.ta,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))};h=Ed.prototype;h.R=function(){Nd(this);return this.Y};h.add=function(a,b){Nd(this);this.ta=null;a=Od(this,a);var c=this.N.get(a);c||this.N.set(a,c=[]);c.push(b);this.Y=Oa(this.Y)+1;return this};h.remove=function(a){Nd(this);a=Od(this,a);return this.N.has(a)?(this.ta=null,this.Y=Oa(this.Y)-this.N.get(a).length,this.N.delete(a)):!1};h.clear=function(){this.N=this.ta=null;this.Y=0}; -h.isEmpty=function(){Nd(this);return 0==this.Y};h.Pb=function(a){Nd(this);a=Od(this,a);return this.N.has(a)};h.Fc=function(a){var b=this.aa();return $a(b,a)};h.forEach=function(a,b){Nd(this);this.N.forEach(function(c,d){c.forEach(function(e){a.call(b,e,d,this)},this)},this)};h.tb=function(){Nd(this);for(var a=Array.from(this.N.values()),b=Array.from(this.N.keys()),c=[],d=0;d