mapam
Version:
A bidirectional Map/WeakMap implementation with the same API as an ES6 Map/WeakMap!
2 lines • 18.2 kB
JavaScript
import{SameValueMap as s}from"svkc";let t=!1;const i=s=>class extends s{constructor(s){if(super(),!t&&(t=!0,this.t(),t=!1,null!=s))for(const[t,i]of s)this.set(t,i)}i(s,t,{force:i=!1}={}){if(this.h.has(t)&&!Object.is(this.h.get(t),s)){if(!i)throw new Error("value already bound to another key");this.has(s)?(this.delete(s),this.h.delete(t)):this.h.set(t,s)}}inverse(){return this.h}};var e=class t extends(/*@__PURE__*/i(s)){t(){this.h=new t,this.h.h=this,this.o=new Set,this.h.o=this.o,this.u=0,this.l=1,this.h.u=1,this.h.l=0}clear(){this.o.clear(),super.clear.call(this.h),super.clear()}delete(s){const t=super.get(s);return!!t&&(this.o.delete(t),super.delete.call(this.h,t[this.l]),super.delete(s))}get(s){const t=super.get(s);return t&&t[this.l]}set(s,t,i){this.i(s,t,i);let e=super.get(s);if(e){if(Object.is(e[this.l],t))return this;super.delete.call(this.h,e[this.l])}else e=[],e[this.u]=s,this.o.add(e),super.set(s,e);return e[this.l]=t,super.set.call(this.h,t,e),this}*[Symbol.iterator](){yield*this.entries()}*keys(){for(const s of this.o)yield s[this.u]}*values(){for(const s of this.o)yield s[this.l]}*entries(){for(const s of this.o)yield[s[this.u],s[this.l]]}forEach(s,t){for(const[i,e]of this.entries())s.call(t,e,i,this)}},h=class s extends(/*@__PURE__*/i(WeakMap)){t(){this.h=new s,this.h.h=this}delete(s){return!!this.has(s)&&(super.delete.call(this.h,this.get(s)),super.delete(s))}set(s,t,i){return this.i(s,t,i),super.set.call(this.h,t,s),super.set(s,t)}};export{e as BiMap,h as WeakBiMap};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhbWVWYWx1ZU1hcCB9IGZyb20gJ3N2a2MnXG5cbmxldCBpbml0aWFsaXppbmcgPSBmYWxzZVxuXG5jb25zdCBtaXhpbkNvbW1vbiA9IE1hcCA9PlxuICBjbGFzcyBleHRlbmRzIE1hcCB7XG4gICAgY29uc3RydWN0b3IoYXJncykge1xuICAgICAgc3VwZXIoKVxuXG4gICAgICAvLyBUaGlzIG1hcCBpcyB0aGUgaW52ZXJzZSBvZiBzb21lIG1hcCB0aGF0IGlzIGN1cnJlbnRseSBpbml0aWFsaXppbmcgYm90aFxuICAgICAgLy8gaXRzZWxmIGFuZCB0aGUgaW52ZXJzZSBtYXAgKHNvIG5vIG5lZWQgZm9yIHRoaXMgbWFwIHRvIGluaXRpYWxpemVcbiAgICAgIC8vIGl0c2VsZiB1bmxlc3MgeW91IGxpa2UgaW5maW5pdGUgcmVjdXJzaW9uKVxuICAgICAgaWYgKGluaXRpYWxpemluZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaW5pdGlhbGl6aW5nID0gdHJ1ZVxuICAgICAgdGhpcy5faW5pdGlhbGl6ZSgpXG4gICAgICBpbml0aWFsaXppbmcgPSBmYWxzZVxuXG4gICAgICAvLyBNYXAgYW5kIFdlYWtNYXAgc3VwcG9ydCBib3RoIHVuZGVmaW5lZCBhbmQgbnVsbCBmb3Igbm90IGluaXRpYWxseVxuICAgICAgLy8gcG9wdWxhdGluZyB0aGUgbWFwIHdpdGggYW55IGVudHJpZXNcbiAgICAgIGlmIChhcmdzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGFyZ3MpIHtcbiAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfdHJ5VG9FbnN1cmVDYW5TZXQoa2V5LCB2YWx1ZSwgeyBmb3JjZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgICAgLy8gSWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBib3VuZCB0byBhIGtleSBvciBpcyBib3VuZCB0byB0aGUgZ2l2ZW4ga2V5LFxuICAgICAgLy8gdGhlbiBzZXR0aW5nIHRoaXMga2V5LXZhbHVlIHBhaXIgd2lsbCBrZXlzIGFuZCB2YWx1ZXMgb2YgdGhlIGJpbWFwXG4gICAgICAvLyB1bmlxdWUsIHJlc3BlY3RpdmVseVxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5faW52ZXJzZS5oYXModmFsdWUpIHx8XG4gICAgICAgIE9iamVjdC5pcyh0aGlzLl9pbnZlcnNlLmdldCh2YWx1ZSksIGtleSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UncmUgbm90IHdpbGxpbmcgdG8gZm9yY2UgYW5vdGhlciBlbnRyeSBvdXQgb2YgdGhlIGJpbWFwIHRvXG4gICAgICAvLyBwcmVzZXJ2ZSB1bmlxdWVuZXNzLCB0aGVuIHdlIHRocm93XG4gICAgICBpZiAoIWZvcmNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdmFsdWUgYWxyZWFkeSBib3VuZCB0byBhbm90aGVyIGtleWApXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmhhcyhrZXkpKSB7XG4gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IHRoZSBtYXAgaGFzIHRoZSBnaXZlbiBrZXkgaW4gaXRzIGtleSBzZXRcbiAgICAgICAgLy8gYW5kIHRoZSBnaXZlbiB2YWx1ZSBpbiBpdHMgdmFsdWUgc2V0LCBidXQgdGhlIGtleSBhbmQgdmFsdWUgYmVsb25nIHRvXG4gICAgICAgIC8vIGRpZmZlcmVudCBlbnRyaWVzLiBUaGVyZSBpcyBubyBsb2dpY2FsIHdheSB0byBjaG9vc2Ugb25lIG9mIHRoZXNlXG4gICAgICAgIC8vIGVudHJpZXMgZm9yIHByZXNlcnZhdGlvbiAoZm9yIG1haW50YWluaW5nIGluc2VydGlvbiBvcmRlcikgc28gd2VcbiAgICAgICAgLy8gZGVsZXRlIGJvdGggYW5kIGxldCB0aGUgZ2l2ZW4ga2V5IGFuZCB2YWx1ZSBmb3JtIGEgbmV3IGVudHJ5IGF0IHRoZVxuICAgICAgICAvLyBlbmQgb2YgdGhlIG1hcFxuICAgICAgICB0aGlzLmRlbGV0ZShrZXkpXG4gICAgICAgIHRoaXMuX2ludmVyc2UuZGVsZXRlKHZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2V0IHRoZSBnaXZlbiBrZXktdmFsdWUgcGFpciBmcm9tIGludmVyc2UgbWFwJ3Mgc2lkZSwgdHVybmluZyBhbnlcbiAgICAgICAgLy8gc3Vic2VxdWVudCBzZXR0aW5nIG9wZXJhdGlvbiBpbnRvIGEgbm8tb3BcbiAgICAgICAgdGhpcy5faW52ZXJzZS5zZXQodmFsdWUsIGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnZlcnNlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2ludmVyc2VcbiAgICB9XG4gIH1cblxuZXhwb3J0IGNsYXNzIEJpTWFwIGV4dGVuZHMgbWl4aW5Db21tb24oU2FtZVZhbHVlTWFwKSB7XG4gIF9pbml0aWFsaXplKCkge1xuICAgIHRoaXMuX2ludmVyc2UgPSBuZXcgQmlNYXAoKVxuICAgIHRoaXMuX2ludmVyc2UuX2ludmVyc2UgPSB0aGlzXG5cbiAgICAvLyBUaGlzIHNldCB0cmFja3MgdGhlIGJpbWFwJ3MgaW5zZXJ0aW9uIG9yZGVyLCB3aGljaCBjYW4ndCBiZSBkZWR1Y2VkIGZyb21cbiAgICAvLyB0aGUgdHdvIG1hcHMgYmFja2luZyB0aGlzIGJpbWFwIGJlY2F1c2Ugc2V0dGluZyBhIGtleS12YWx1ZSBwYWlyXG4gICAgLy8gc29tZXRpbWVzIHJlcXVpcmVzIHJlbW92aW5nIGFuIGVudHJ5IGZyb20gdGhlIGludmVyc2UgbWFwIGFuZCB0aGVyZSBpc24ndFxuICAgIC8vIGEgd2F5IHRvIGluc2VydCBhbiBlbnRyeSBpbnRvIGEgbWFwIGFueXdoZXJlIGJ1dCB0aGUgZW5kIG9mIGl0XG4gICAgdGhpcy5fZW50cmllcyA9IG5ldyBTZXQoKVxuICAgIHRoaXMuX2ludmVyc2UuX2VudHJpZXMgPSB0aGlzLl9lbnRyaWVzXG5cbiAgICB0aGlzLl9rZXlJbmRleCA9IDBcbiAgICB0aGlzLl92YWx1ZUluZGV4ID0gMVxuICAgIHRoaXMuX2ludmVyc2UuX2tleUluZGV4ID0gMVxuICAgIHRoaXMuX2ludmVyc2UuX3ZhbHVlSW5kZXggPSAwXG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLl9lbnRyaWVzLmNsZWFyKClcbiAgICBzdXBlci5jbGVhci5jYWxsKHRoaXMuX2ludmVyc2UpXG4gICAgc3VwZXIuY2xlYXIoKVxuICB9XG5cbiAgZGVsZXRlKGtleSkge1xuICAgIGNvbnN0IGVudHJ5ID0gc3VwZXIuZ2V0KGtleSlcblxuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHRoaXMuX2VudHJpZXMuZGVsZXRlKGVudHJ5KVxuICAgIHN1cGVyLmRlbGV0ZS5jYWxsKHRoaXMuX2ludmVyc2UsIGVudHJ5W3RoaXMuX3ZhbHVlSW5kZXhdKVxuICAgIHJldHVybiBzdXBlci5kZWxldGUoa2V5KVxuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIGNvbnN0IGVudHJ5ID0gc3VwZXIuZ2V0KGtleSlcbiAgICByZXR1cm4gZW50cnkgJiYgZW50cnlbdGhpcy5fdmFsdWVJbmRleF1cbiAgfVxuXG4gIHNldChrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gICAgdGhpcy5fdHJ5VG9FbnN1cmVDYW5TZXQoa2V5LCB2YWx1ZSwgb3B0aW9ucylcblxuICAgIGxldCBlbnRyeSA9IHN1cGVyLmdldChrZXkpXG5cbiAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAvLyBUaGUgZ2l2ZW4ga2V5IGlzbid0IGJvdW5kIHRvIGFueSBlbnRyeS4gQ3JlYXRlIHRoZSBlbnRyeSBhbmQgaW5pdGlhbGl6ZVxuICAgICAgLy8gaXQgd2l0aCB0aGUgZ2l2ZW4ga2V5XG4gICAgICBlbnRyeSA9IFtdXG4gICAgICBlbnRyeVt0aGlzLl9rZXlJbmRleF0gPSBrZXlcblxuICAgICAgLy8gQWRkIHRoZSBuZXcgZW50cnkgdG8gdGhlIGVudHJpZXMgc2V0ICh3aGljaCB0cmFja3MgaW5zZXJ0aW9uIG9yZGVyKVxuICAgICAgdGhpcy5fZW50cmllcy5hZGQoZW50cnkpXG5cbiAgICAgIC8vIEJpbmQgdGhlIGdpdmVuIGtleSB0byB0aGUgbmV3IGVudHJ5XG4gICAgICBzdXBlci5zZXQoa2V5LCBlbnRyeSlcbiAgICB9IGVsc2UgaWYgKE9iamVjdC5pcyhlbnRyeVt0aGlzLl92YWx1ZUluZGV4XSwgdmFsdWUpKSB7XG4gICAgICAvLyBUaGUgZ2l2ZW4ga2V5IGFuZCB2YWx1ZSBleGFjdGx5IG1hdGNoIHRoZSBlbnRyeSBhbHJlYWR5IHN0b3JlZFxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGdpdmVuIGtleSBpcyBhbHJlYWR5IGJvdW5kIHRvIHNvbWUgdmFsdWUuIFJlbW92ZSB0aGUgYmluZGluZyBmcm9tXG4gICAgICAvLyB0aGF0IHZhbHVlIHRvIHRoZSBlbnRyeSBpbiB0aGUgaW52ZXJzZSBtYXBcbiAgICAgIHN1cGVyLmRlbGV0ZS5jYWxsKHRoaXMuX2ludmVyc2UsIGVudHJ5W3RoaXMuX3ZhbHVlSW5kZXhdKVxuICAgIH1cblxuICAgIC8vIFRoZSBlbnRyeSBpcyBkZWZpbmVkIGF0IHRoaXMgcG9pbnQuIFVwZGF0ZSAob3IgaW5pdGlhbGl6ZSkgaXRzIHZhbHVlXG4gICAgZW50cnlbdGhpcy5fdmFsdWVJbmRleF0gPSB2YWx1ZVxuXG4gICAgLy8gQmluZCB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIGVudHJ5IGluIHRoZSBpbnZlcnNlIG1hcFxuICAgIHN1cGVyLnNldC5jYWxsKHRoaXMuX2ludmVyc2UsIHZhbHVlLCBlbnRyeSlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgeWllbGQqIHRoaXMuZW50cmllcygpXG4gIH1cblxuICAqa2V5cygpIHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuX2VudHJpZXMpIHtcbiAgICAgIHlpZWxkIGVudHJ5W3RoaXMuX2tleUluZGV4XVxuICAgIH1cbiAgfVxuXG4gICp2YWx1ZXMoKSB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLl9lbnRyaWVzKSB7XG4gICAgICB5aWVsZCBlbnRyeVt0aGlzLl92YWx1ZUluZGV4XVxuICAgIH1cbiAgfVxuXG4gICplbnRyaWVzKCkge1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5fZW50cmllcykge1xuICAgICAgeWllbGQgW2VudHJ5W3RoaXMuX2tleUluZGV4XSwgZW50cnlbdGhpcy5fdmFsdWVJbmRleF1dXG4gICAgfVxuICB9XG5cbiAgZm9yRWFjaChjYWxsYmFja0ZuLCB0aGlzQXJnKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNhbGxiYWNrRm4uY2FsbCh0aGlzQXJnLCB2YWx1ZSwga2V5LCB0aGlzKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV2Vha0JpTWFwIGV4dGVuZHMgbWl4aW5Db21tb24oV2Vha01hcCkge1xuICBfaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLl9pbnZlcnNlID0gbmV3IFdlYWtCaU1hcCgpXG4gICAgdGhpcy5faW52ZXJzZS5faW52ZXJzZSA9IHRoaXNcbiAgfVxuXG4gIGRlbGV0ZShrZXkpIHtcbiAgICBpZiAoIXRoaXMuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHN1cGVyLmRlbGV0ZS5jYWxsKHRoaXMuX2ludmVyc2UsIHRoaXMuZ2V0KGtleSkpXG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShrZXkpXG4gIH1cblxuICBzZXQoa2V5LCB2YWx1ZSwgb3B0aW9ucykge1xuICAgIHRoaXMuX3RyeVRvRW5zdXJlQ2FuU2V0KGtleSwgdmFsdWUsIG9wdGlvbnMpXG5cbiAgICBzdXBlci5zZXQuY2FsbCh0aGlzLl9pbnZlcnNlLCB2YWx1ZSwga2V5KVxuICAgIHJldHVybiBzdXBlci5zZXQoa2V5LCB2YWx1ZSlcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoib0NBRUEsQ0FBQSxDQUFBLENBQUEsQ0FBSSxDQUFBLENBQUEsQ0FBZSxDQUFBLENBRW5CLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBYyxDQUFBLENBQUEsQ0FDbEIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFjLENBQUEsQ0FDWixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBWSxDQUFBLENBQUEsQ0FNVixDQUFBLENBQUEsQ0FMQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FLSSxDQUFBLENBQUEsQ0FBQSxDQUlKLENBQUEsQ0FBQSxDQUFlLENBQUEsQ0FDZixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FDTCxDQUFBLENBQUEsQ0FBZSxDQUFBLENBSUgsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQVIsQ0FBQSxDQUFBLENBSUosQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFVLENBQUEsQ0FDekIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFLLENBQUEsRUFJbEIsQ0FBQSxDQUFtQixDQUFBLENBQUssQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUUsQ0FBQSxDQUFBLENBQVEsQ0FBQSxDQUFBLENBQVUsQ0FBQSxDQUFBLENBQUEsQ0FJakQsQ0FBQSxDQUFBLENBQ0csQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBUyxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDbkIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FBRyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFTLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQVEsQ0FBQSxDQUFBLENBRnRDLENBU0EsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQ0gsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBSSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBR2QsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQUEsQ0FPWCxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FDWixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFTLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLENBQUEsQ0FJckIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBUyxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBTyxDQUFBLENBckJ6QixFQXlCSixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUNFLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLElBSWxCLENBQUEsQ0FBQSxDQUFBLENBQWEsQ0FBQSxDQUFiLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFhLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLGNBQWMsQ0FBQSxDQUFZLENBQUEsQ0FBQSxDQUFBLENBQ3JDLENBQUEsQ0FBQSxDQUFBLENBQ0UsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBVyxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FDcEIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBUyxDQUFBLENBQVcsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQU16QixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFXLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQUEsQ0FDcEIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBUyxDQUFBLENBQVcsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FFOUIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBWSxDQUFBLENBQ2pCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQWMsQ0FBQSxDQUNuQixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFTLENBQUEsQ0FBWSxDQUFBLENBQzFCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQVMsQ0FBQSxDQUFjLEVBRzlCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDRSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFTLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDZCxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUN0QixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxFQUdSLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLENBQ0wsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFRLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBRXhCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUlMLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQVMsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FDckIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBVSxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQ3JDLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLEVBR3RCLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQ0YsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFRLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQ3hCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFBLENBQVMsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLEVBRzdCLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFLLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FDZCxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFtQixDQUFBLENBQUssQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUVwQyxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBUSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBQSxDQUV0QixDQUFBLENBQUEsQ0FBSyxDQUFBLEtBV00sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FBRyxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFjLENBQUEsQ0FBQSxDQUU1QyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FJUCxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFVLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBZDVDLENBQUEsQ0FBUSxDQUFBLENBQUEsQ0FDUixDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFhLENBQUEsQ0FHeEIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBUyxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBQSxDQUdsQixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FnQmpCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBTEEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBZSxDQUFBLENBRzFCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQVUsQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUU5QixDQUFBLENBQUEsQ0FBQSxFQUdULENBQUEsQ0FBRSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUNBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsRUFHZCxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQ0MsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQVMsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDakIsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLEVBSXJCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUMsQ0FBQSxDQUFBLENBQ0MsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQVMsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDakIsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLEVBSXJCLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQyxDQUFBLENBQUEsQ0FDQyxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFNLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBUyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDakIsQ0FBQyxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFZLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLEVBSTdDLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBUSxDQUFBLENBQVksQ0FBQSxDQUFBLENBQ2xCLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU8sQ0FBQSxDQUFLLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBVSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDOUIsQ0FBQSxDQUFXLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQVMsQ0FBQSxDQUFPLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLElBSzlCLENBQUEsQ0FBYixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBYSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxjQUFrQixDQUFBLENBQVksQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FDekMsQ0FBQSxDQUFBLENBQUEsQ0FDRSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFXLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQSxDQUNwQixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFTLENBQUEsQ0FBVyxDQUFBLENBQUEsQ0FBQSxFQUczQixDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUNMLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBSSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBSWQsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFLLENBQUEsQ0FBVSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFBLENBQUEsQ0FBSSxDQUFBLENBQUEsQ0FBQSxDQUNuQyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFPLENBQUEsQ0FBQSxFQUd0QixDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBSyxDQUFBLENBQU8sQ0FBQSxDQUFBLENBSWQsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FIQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFtQixDQUFBLENBQUssQ0FBQSxDQUFPLENBQUEsQ0FBQSxDQUVwQyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBTSxDQUFBLENBQUEsQ0FBQSxDQUFJLENBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQUssQ0FBQSxDQUFVLENBQUEsQ0FBTyxDQUFBLENBQUEsQ0FDOUIsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQU0sQ0FBQSxDQUFBLENBQUEsQ0FBSSxDQUFBLENBQUssQ0FBQSJ9