@esfaenza/es-table 13.1.9 → 13.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -102,28 +102,10 @@ export class ItemsHandler {
102
102
  }
103
103
  return tmpItems;
104
104
  }
105
- /**
106
- * Metodo che prende tutti gli oggetti di cui dispone divisi in bucket da 100 elementi
107
- *
108
- * @returns {any[][]} Matrice di array Nx100
109
- */
110
- getItemSlices() {
111
- // Se sono qui di sicuro non ho rowgrouping
112
- let items = this.getItemsByMode();
113
- if (!items)
114
- return [];
115
- let arrayBy100 = [];
116
- let slices = Math.ceil(items.length / this.est.SliceSize);
117
- for (let i = 0; i < slices; i++) {
118
- let arraySlice = items.slice(i * this.est.SliceSize, i * this.est.SliceSize + this.est.SliceSize);
119
- arrayBy100.push(arraySlice);
120
- }
121
- return arrayBy100;
122
- }
123
105
  /** Se in modalità array applica gli ordinamenti ASC-DESC delle colonne */
124
106
  arrayModeReviewOrderings() {
125
107
  if (this.est.arrayOrders.length > 0)
126
108
  this.est.arrayOrders.forEach(t => { this.est.boundSource = this.est.boundSource.sort((a, b) => (a[t.id] > b[t.id] ? 1 : -1) * (t.order == 'DESC' ? -1 : 1)); });
127
109
  }
128
110
  }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUMsMkpBQTJKO0FBQzNKLE1BQU0sT0FBTyxZQUFZO0lBRXJCLDBCQUEwQjtJQUMxQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFDdkI7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QUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hLLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEFwcFNlYXJjaCB9IGZyb20gXCIuLi8uLi8uLi9kb21haW5cIjtcclxuXHJcbi8vIFV0aWxpdGllc1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNIYW5kbGVyIH0gZnJvbSBcIi4vVXRpbGl0aWVzSGFuZGxlclwiO1xyXG5cclxuLyoqIENsYXNzZSBjaGUgc2kgb2NjdXBhIGRlbGxhIGdlc3Rpb25lIGRlbCByZWN1cGVybyBkZWdsaSBvZ2dldHRpLCBwYWdpbmF6aW9uZSBlIHR1dHRvIGNpw7IgaW4gY3VpIGdsaSBlbGVtZW50aSBjYXJpY2F0aSB2ZW5nb25vIG1hbmlwb2xhdGkgZGlyZXR0YW1lbnRlICovXHJcbmV4cG9ydCBjbGFzcyBJdGVtc0hhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVzdDogRXNUYWJsZUNvbXBvbmVudCwgcHJpdmF0ZSB1dGlsaXRpZXM6IFV0aWxpdGllc0hhbmRsZXIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW4gYmFzZSBhbGxhIG1vZGFsaXTDoCBzcGVjaWZpY2F0YSAoQXJyYXlNb2RlLCBWaWV3TW9kZSwgZWNjLi4uKSBxdWVzdG8gbWV0b2RvIHJlY3VwZXJhIGwnYXJyYXkgZGkgb2dnZXR0aSBkYSBiaW5kYXJlIGFkIGludGVyZmFjY2lhXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBvbmx5c2VsZWN0ZWQgW2ZhbHNlXSBJbmRpY2EgZGkgcHJlbmRlcmUgc29sbyBnbGkgb2dnZXR0aSBzZWxlemlvbmF0aVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSByZWZyZXNoUGFnaW5nIFtmYWxzZV0gSW5kaWNhIHNlIGFnZ2lvcm5hcmUgbGUgaW5mb3JtYXppb25pIGRpIHBhZ2luYXppb25lIG8gbWVub1xyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBhbGxJZlBvc3NpYmxlIFtmYWxzZV0gSW5kaWNhIHNlIHByZW5kZXJlIHR1dHRpIGdsaSBvZ2dldHRpIHF1YW9yYSBwb3NzaWJpbGUsIHVzYXRvIHNvbG8gaW4gQXJyYXlNb2RlXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge2FueVtdfSBMaXN0YSBkZWdsaSBvZ2dldHRpIHN1IGN1aSBlZmZldHR1YXJlIGlsIGJpbmQgbGF0byBpbnRlcmZhY2NpYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SXRlbXNCeU1vZGUob25seXNlbGVjdGVkOiBib29sZWFuID0gZmFsc2UsIHJlZnJlc2hQYWdpbmc6IGJvb2xlYW4gPSBmYWxzZSwgYWxsSWZQb3NzaWJsZTogYm9vbGVhbiA9IGZhbHNlKTogYW55W10ge1xyXG4gICAgICAgIGxldCBpdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKCh0aGlzLmVzdC52aWV3TW9kZSAmJiB0aGlzLmVzdC5WaWV3IGluc3RhbmNlb2YgQXBwU2VhcmNoKSkge1xyXG4gICAgICAgICAgICBpdGVtcyA9IHRoaXMuZ2V0Vmlld0l0ZW1zQnlTb3VyY2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5lc3QuYXJyYXlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LlZpZXcuZm9yRWFjaChpdG0gPT4geyBpdG0uX2l0ZW0gPSB0cnVlOyB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNlIGZhY2NpbyBkZWkgcmFnZ3J1cHBhbWVudGkgaWdub3JvIGxhIHBhZ2luYXppb25lXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVzdC5Vc2VBcnJheU1vZGVQYWdpbmcgJiYgIWFsbElmUG9zc2libGUpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBTZSBzb25vIGluIG1vZGFsaXTDoCBhcnJheSBtYSBsYSByaWNlcmNhIGRpcGVuZGUgZGEgdW5hIHZpZXcgZGV2byByaWFsbGluZWFyZSBnbGkgaXRlbXBlcnBhZ2VcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVzdC5TZWFyY2hWaWV3KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSA9IHRoaXMuZXN0LlNlYXJjaFZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSA9IHRoaXMuZXN0LlNlYXJjaFZpZXcucGFnZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyA9IHRoaXMuZXN0LlNlYXJjaFZpZXcucGFnZXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBEZXZvIGNoaWFtYXJlIGlsIHJlZnJlc2ggcGFnZSBzb2xvIHNlIHZlbmdvIHJpY2hpYW1hdG8gZGEgdW4gYmluZGluZyBlc3Rlcm5vXHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZyZXNoUGFnaW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFBhZ2luZyh0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5hZGFwdFZpZXdUb1BhZ2luZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmVzdC5WaWV3IGFzIGFueVtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTZSB2b2dsaW8gc29sbyBpIHNlbGV6aW9uYXRpIGZpbHRyb1xyXG4gICAgICAgIGlmIChvbmx5c2VsZWN0ZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIodCA9PiB0Ll9zZWxlY3RlZCk7XHJcblxyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBwZXIgZWZmZXR0dWFyZSBpbCByZWZyZXNoIGRlbGxhIHBhZ2luYXppb25lIHN1bCBjYW1iaWFtZW50byBkZWdsaSBvZ2dldHRpIGRhIHZpc3VhbGl6emFyZSBpbiB1bmEgc2luZ29sYSBwYWdpbmEuXHJcbiAgICAgKlxyXG4gICAgICogVmFsZSBzb2xvIHBlciBsYSBtb2RhbGl0w6AgQXJyYXlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZVNpemUgRGltZW5zaW9uZSBkZWxsYSBwYWdpbmFcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZnJlc2hQYWdpbmcocGFnZVNpemU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSA9IHBhZ2VTaXplO1xyXG4gICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzID0gTWF0aC5jZWlsKCh0aGlzLmVzdC5WaWV3IGFzIGFueVtdKS5sZW5ndGggLyB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UpO1xyXG4gICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgPSAxO1xyXG5cclxuICAgICAgICAvLyBSaWZvcnpvIGlsIHdyaXRldmFsdWUgaW4gbW9kbyBjaGUgaWwgY29kaWNlIHBhc3NpIGRhbGxhIGdlc3Rpb25lIGNvbWUgc2UgZm9zc2UgZmF0dGEgcmlwYXJ0aXJlIHVuYSByaWNlcmNhXHJcbiAgICAgICAgdGhpcy5lc3QuaW50ZXJuYWxXcml0ZVZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGdsaSBvZ2dldHRpIGluIGJhc2UgYWxsYSBzb3JnZW50ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFZpZXdJdGVtc0J5U291cmNlKCk6IGFueVtdIHtcclxuICAgICAgICBsZXQgY2FzdGVkVmlldyA9IHRoaXMuZXN0LlZpZXcgYXMgQXBwU2VhcmNoPGFueT47XHJcbiAgICAgICAgbGV0IGdyb3VwS2V5cyA9IGNhc3RlZFZpZXcuZ3JvdXBpbmdzID8gY2FzdGVkVmlldy5ncm91cGluZ3MuZmlsdGVyKHQgPT4gIXQuYWdncmVnYXRpb24pLmxlbmd0aCA6IDA7XHJcblxyXG4gICAgICAgIC8vR3J1cHBpIGludGVybWVkaVxyXG4gICAgICAgIGlmICgoY2FzdGVkVmlldy5yZXF1ZXN0ZWRncm91cHM/Lmxlbmd0aCAhPSBncm91cEtleXMgfHwgY2FzdGVkVmlldy5yZXF1ZXN0ZWRncm91cHM/Lmxlbmd0aCA9PSAwKSAmJiBncm91cEtleXMgPiAwKSB7XHJcbiAgICAgICAgICAgIGxldCByZXQgPSBjYXN0ZWRWaWV3Lmdyb3VwcztcclxuICAgICAgICAgICAgcmV0LmZvckVhY2goaXRtID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBTZXR0byB2YXJpYWJpbGUgaW50ZXJuYSBwZXIgY2FwaXJlIGNoZSBxdWVzdG8gw6ggaW4gcmVhbHTDoCB1biBncnVwcG9cclxuICAgICAgICAgICAgICAgICg8YW55Pml0bSkuX2dyb3VwID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBMZSBpbmZvcm1hemlvbmkgcGFzc2F0ZSBjb21lIGxpc3RhIGxlIG1ldHRvIGRlbnRybyBhIHVuYSBjYWNoZSBwZXIgdmVsb2Npenphcm5lIGwnYWNjZXNzbyBxdWFuZG8gZGV2byB0aXJhcmUgZnVvcmkgaWwgZGlzcGxheSBkZWxsYSBwcm9wcmlldMOgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWxpdGllcy5jYWNoZUFnZ3JlZ2F0aW9ucyhpdG0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCByZXQgPSB0aGlzLmVzdC5TZWNvbmRhcnlTb3VyY2UgPyAodGhpcy5lc3QuVmlldyBhcyBhbnkpLml0ZW1zMiA6IHRoaXMuZXN0LlRlcnRpYXJ5U291cmNlID8gKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtczMgOiAodGhpcy5lc3QuVmlldyBhcyBhbnkpLml0ZW1zO1xyXG4gICAgICAgICAgICBpZiAoIXJldCkgcmV0ID0gW107XHJcbiAgICAgICAgICAgIC8vIFNldHRvIHZhcmlhYmlsZSBpbnRlcm5hIHBlciBzcGVjaWZpY2FyZSBjaGUgcXVlc3RvIMOoIHVuIGVsZW1lbnRvIG5vcm1hbGUsIG5vbiB1biBncnVwcG8gbyBhbHRyb1xyXG4gICAgICAgICAgICByZXQuZm9yRWFjaChpdG0gPT4geyAoPGFueT5pdG0pLl9pdGVtID0gdHJ1ZTsgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBHZW5lcmEgbGUgaW5mb3JtYXppb25pIGRpIHBhZ2luYXppb25lIGUgdGFnbGlhIGxhIFZpZXcgaW4gbW9kYWxpdMOgIGFycmF5IHBlciBtb3N0cmFyZSBzb2xvIGdsaSBvZ2dldHRpIGRlbGxhIHBhZ2luYSBzcGVjaWZpY2F0YSAqL1xyXG4gICAgcHJpdmF0ZSBhZGFwdFZpZXdUb1BhZ2luZygpIHtcclxuICAgICAgICBsZXQgdG1wSXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIC8vIFNlIGhvIHVuYSBzZWFyY2ggdmlldyBsJ2FycmF5IHB1bHNhbnRpIHZpZW5lIGNhbGNvbGF0byBkYSBsZWksIG5vbiBkZXZvIHByZW5kZXJlIHF1ZWxsbyBkZWxsYSBtb2RhbGl0w6AgYXJyYXksXHJcbiAgICAgICAgLy8gaW5vbHRyZSBub24gaG8gYmlzb2dubyBkaSBmYXJlIHJhZ2lvbmFtZW50aSBzdSBxdWFudGkgZWxlbWVudGkgY2kgc29ubyBlIHN1bGxhIHBhZ2luYSwgZGF0byBjaGUgdmllbmUgdHV0dG8gZ2VzdGl0byBlc3Rlcm5hbWVudGUsIFxyXG4gICAgICAgIC8vIHVuZW5kbyBhbCByaXN1bHRhdG8gZGVsbGEgdmlldyB0dXR0aSBnbGkgb2dnZXR0aSBhZGRpemlvbmFsaVxyXG4gICAgICAgIGlmICghdGhpcy5lc3QuU2VhcmNoVmlldylcclxuICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXlQdWxzYW50aSA9IHRoaXMudXRpbGl0aWVzLmdldFBhZ2VzQXJyYXkoNiwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXN0LlZpZXcgYXMgYW55W107XHJcblxyXG4gICAgICAgIC8vIFBvaSBwZXIgdHV0dGkgaSB2YWxvcmkgZG9wbyBjb21wcmVzaSBmcmEgbGEgcGFnaW5hIC0gMSBlIGxhIHBhZ2luYVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAoKHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgLSAxKSAqIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZSk7IGkgPCB0aGlzLmVzdC5hcnJheW1vZGVQYWdlICogdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGkgPD0gKHRoaXMuZXN0LlZpZXcgYXMgYW55W10pLmxlbmd0aCAtIDEpXHJcbiAgICAgICAgICAgICAgICB0bXBJdGVtcy5wdXNoKCh0aGlzLmVzdC5WaWV3IGFzIGFueVtdKVtpXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG1wSXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIHByZW5kZSB0dXR0aSBnbGkgb2dnZXR0aSBkaSBjdWkgZGlzcG9uZSBkaXZpc2kgaW4gYnVja2V0IGRhIDEwMCBlbGVtZW50aVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnlbXVtdfSBNYXRyaWNlIGRpIGFycmF5IE54MTAwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtU2xpY2VzKCk6IGFueVtdW10ge1xyXG4gICAgICAgIC8vIFNlIHNvbm8gcXVpIGRpIHNpY3VybyBub24gaG8gcm93Z3JvdXBpbmdcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1zQnlNb2RlKCk7XHJcbiAgICAgICAgaWYgKCFpdGVtcylcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG5cclxuICAgICAgICBsZXQgYXJyYXlCeTEwMCA9IFtdO1xyXG4gICAgICAgIGxldCBzbGljZXMgPSBNYXRoLmNlaWwoaXRlbXMubGVuZ3RoIC8gdGhpcy5lc3QuU2xpY2VTaXplKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBhcnJheVNsaWNlID0gaXRlbXMuc2xpY2UoaSAqIHRoaXMuZXN0LlNsaWNlU2l6ZSwgaSAqIHRoaXMuZXN0LlNsaWNlU2l6ZSArIHRoaXMuZXN0LlNsaWNlU2l6ZSk7XHJcbiAgICAgICAgICAgIGFycmF5QnkxMDAucHVzaChhcnJheVNsaWNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGFycmF5QnkxMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNlIGluIG1vZGFsaXTDoCBhcnJheSBhcHBsaWNhIGdsaSBvcmRpbmFtZW50aSBBU0MtREVTQyBkZWxsZSBjb2xvbm5lICovXHJcbiAgICBwdWJsaWMgYXJyYXlNb2RlUmV2aWV3T3JkZXJpbmdzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVzdC5hcnJheU9yZGVycy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5hcnJheU9yZGVycy5mb3JFYWNoKHQgPT4geyB0aGlzLmVzdC5ib3VuZFNvdXJjZSA9IHRoaXMuZXN0LmJvdW5kU291cmNlLnNvcnQoKGEsIGIpID0+IChhW3QuaWRdID4gYlt0LmlkXSA/IDEgOiAtMSkgKiAodC5vcmRlciA9PSAnREVTQycgPyAtMSA6IDEpKTsgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUMsMkpBQTJKO0FBQzNKLE1BQU0sT0FBTyxZQUFZO0lBRXJCLDBCQUEwQjtJQUMxQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFDdkI7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LHdCQUF3QjtRQUMzQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBBcHBTZWFyY2ggfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluXCI7XHJcblxyXG4vLyBVdGlsaXRpZXNcclxuaW1wb3J0IHsgVXRpbGl0aWVzSGFuZGxlciB9IGZyb20gXCIuL1V0aWxpdGllc0hhbmRsZXJcIjtcclxuXHJcbi8qKiBDbGFzc2UgY2hlIHNpIG9jY3VwYSBkZWxsYSBnZXN0aW9uZSBkZWwgcmVjdXBlcm8gZGVnbGkgb2dnZXR0aSwgcGFnaW5hemlvbmUgZSB0dXR0byBjacOyIGluIGN1aSBnbGkgZWxlbWVudGkgY2FyaWNhdGkgdmVuZ29ubyBtYW5pcG9sYXRpIGRpcmV0dGFtZW50ZSAqL1xyXG5leHBvcnQgY2xhc3MgSXRlbXNIYW5kbGVyIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgdXRpbGl0aWVzOiBVdGlsaXRpZXNIYW5kbGVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluIGJhc2UgYWxsYSBtb2RhbGl0w6Agc3BlY2lmaWNhdGEgKEFycmF5TW9kZSwgVmlld01vZGUsIGVjYy4uLikgcXVlc3RvIG1ldG9kbyByZWN1cGVyYSBsJ2FycmF5IGRpIG9nZ2V0dGkgZGEgYmluZGFyZSBhZCBpbnRlcmZhY2NpYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb25seXNlbGVjdGVkIFtmYWxzZV0gSW5kaWNhIGRpIHByZW5kZXJlIHNvbG8gZ2xpIG9nZ2V0dGkgc2VsZXppb25hdGlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVmcmVzaFBhZ2luZyBbZmFsc2VdIEluZGljYSBzZSBhZ2dpb3JuYXJlIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSBvIG1lbm9cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsSWZQb3NzaWJsZSBbZmFsc2VdIEluZGljYSBzZSBwcmVuZGVyZSB0dXR0aSBnbGkgb2dnZXR0aSBxdWFvcmEgcG9zc2liaWxlLCB1c2F0byBzb2xvIGluIEFycmF5TW9kZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnlbXX0gTGlzdGEgZGVnbGkgb2dnZXR0aSBzdSBjdWkgZWZmZXR0dWFyZSBpbCBiaW5kIGxhdG8gaW50ZXJmYWNjaWFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEl0ZW1zQnlNb2RlKG9ubHlzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlLCByZWZyZXNoUGFnaW5nOiBib29sZWFuID0gZmFsc2UsIGFsbElmUG9zc2libGU6IGJvb2xlYW4gPSBmYWxzZSk6IGFueVtdIHtcclxuICAgICAgICBsZXQgaXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIGlmICgodGhpcy5lc3Qudmlld01vZGUgJiYgdGhpcy5lc3QuVmlldyBpbnN0YW5jZW9mIEFwcFNlYXJjaCkpIHtcclxuICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmdldFZpZXdJdGVtc0J5U291cmNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZXN0LmFycmF5TW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5WaWV3LmZvckVhY2goaXRtID0+IHsgaXRtLl9pdGVtID0gdHJ1ZTsgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBTZSBmYWNjaW8gZGVpIHJhZ2dydXBwYW1lbnRpIGlnbm9ybyBsYSBwYWdpbmF6aW9uZVxyXG4gICAgICAgICAgICBpZiAodGhpcy5lc3QuVXNlQXJyYXlNb2RlUGFnaW5nICYmICFhbGxJZlBvc3NpYmxlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gU2Ugc29ubyBpbiBtb2RhbGl0w6AgYXJyYXkgbWEgbGEgcmljZXJjYSBkaXBlbmRlIGRhIHVuYSB2aWV3IGRldm8gcmlhbGxpbmVhcmUgZ2xpIGl0ZW1wZXJwYWdlXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lc3QuU2VhcmNoVmlldylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UgPSB0aGlzLmVzdC5TZWFyY2hWaWV3Lml0ZW1zcGVycGFnZW92ZXJyaWRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgPSB0aGlzLmVzdC5TZWFyY2hWaWV3LnBhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMgPSB0aGlzLmVzdC5TZWFyY2hWaWV3LnBhZ2VzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gRGV2byBjaGlhbWFyZSBpbCByZWZyZXNoIHBhZ2Ugc29sbyBzZSB2ZW5nbyByaWNoaWFtYXRvIGRhIHVuIGJpbmRpbmcgZXN0ZXJub1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmcmVzaFBhZ2luZylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdpbmcodGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuYWRhcHRWaWV3VG9QYWdpbmcoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5lc3QuVmlldyBhcyBhbnlbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2Ugdm9nbGlvIHNvbG8gaSBzZWxlemlvbmF0aSBmaWx0cm9cclxuICAgICAgICBpZiAob25seXNlbGVjdGVkKVxyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKHQgPT4gdC5fc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gcGVyIGVmZmV0dHVhcmUgaWwgcmVmcmVzaCBkZWxsYSBwYWdpbmF6aW9uZSBzdWwgY2FtYmlhbWVudG8gZGVnbGkgb2dnZXR0aSBkYSB2aXN1YWxpenphcmUgaW4gdW5hIHNpbmdvbGEgcGFnaW5hLlxyXG4gICAgICpcclxuICAgICAqIFZhbGUgc29sbyBwZXIgbGEgbW9kYWxpdMOgIEFycmF5XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2VTaXplIERpbWVuc2lvbmUgZGVsbGEgcGFnaW5hXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoUGFnaW5nKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyA9IE1hdGguY2VpbCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSkubGVuZ3RoIC8gdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlID0gMTtcclxuXHJcbiAgICAgICAgLy8gUmlmb3J6byBpbCB3cml0ZXZhbHVlIGluIG1vZG8gY2hlIGlsIGNvZGljZSBwYXNzaSBkYWxsYSBnZXN0aW9uZSBjb21lIHNlIGZvc3NlIGZhdHRhIHJpcGFydGlyZSB1bmEgcmljZXJjYVxyXG4gICAgICAgIHRoaXMuZXN0LmludGVybmFsV3JpdGVWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBnbGkgb2dnZXR0aSBpbiBiYXNlIGFsbGEgc29yZ2VudGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRWaWV3SXRlbXNCeVNvdXJjZSgpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGNhc3RlZFZpZXcgPSB0aGlzLmVzdC5WaWV3IGFzIEFwcFNlYXJjaDxhbnk+O1xyXG4gICAgICAgIGxldCBncm91cEtleXMgPSBjYXN0ZWRWaWV3Lmdyb3VwaW5ncyA/IGNhc3RlZFZpZXcuZ3JvdXBpbmdzLmZpbHRlcih0ID0+ICF0LmFnZ3JlZ2F0aW9uKS5sZW5ndGggOiAwO1xyXG5cclxuICAgICAgICAvL0dydXBwaSBpbnRlcm1lZGlcclxuICAgICAgICBpZiAoKGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggIT0gZ3JvdXBLZXlzIHx8IGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggPT0gMCkgJiYgZ3JvdXBLZXlzID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gY2FzdGVkVmlldy5ncm91cHM7XHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIGNhcGlyZSBjaGUgcXVlc3RvIMOoIGluIHJlYWx0w6AgdW4gZ3J1cHBvXHJcbiAgICAgICAgICAgICAgICAoPGFueT5pdG0pLl9ncm91cCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gTGUgaW5mb3JtYXppb25pIHBhc3NhdGUgY29tZSBsaXN0YSBsZSBtZXR0byBkZW50cm8gYSB1bmEgY2FjaGUgcGVyIHZlbG9jaXp6YXJuZSBsJ2FjY2Vzc28gcXVhbmRvIGRldm8gdGlyYXJlIGZ1b3JpIGlsIGRpc3BsYXkgZGVsbGEgcHJvcHJpZXTDoFxyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsaXRpZXMuY2FjaGVBZ2dyZWdhdGlvbnMoaXRtKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gdGhpcy5lc3QuU2Vjb25kYXJ5U291cmNlID8gKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtczIgOiB0aGlzLmVzdC5UZXJ0aWFyeVNvdXJjZSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXMzIDogKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtcztcclxuICAgICAgICAgICAgaWYgKCFyZXQpIHJldCA9IFtdO1xyXG4gICAgICAgICAgICAvLyBTZXR0byB2YXJpYWJpbGUgaW50ZXJuYSBwZXIgc3BlY2lmaWNhcmUgY2hlIHF1ZXN0byDDqCB1biBlbGVtZW50byBub3JtYWxlLCBub24gdW4gZ3J1cHBvIG8gYWx0cm9cclxuICAgICAgICAgICAgcmV0LmZvckVhY2goaXRtID0+IHsgKDxhbnk+aXRtKS5faXRlbSA9IHRydWU7IH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VuZXJhIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSBlIHRhZ2xpYSBsYSBWaWV3IGluIG1vZGFsaXTDoCBhcnJheSBwZXIgbW9zdHJhcmUgc29sbyBnbGkgb2dnZXR0aSBkZWxsYSBwYWdpbmEgc3BlY2lmaWNhdGEgKi9cclxuICAgIHByaXZhdGUgYWRhcHRWaWV3VG9QYWdpbmcoKSB7XHJcbiAgICAgICAgbGV0IHRtcEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvLyBTZSBobyB1bmEgc2VhcmNoIHZpZXcgbCdhcnJheSBwdWxzYW50aSB2aWVuZSBjYWxjb2xhdG8gZGEgbGVpLCBub24gZGV2byBwcmVuZGVyZSBxdWVsbG8gZGVsbGEgbW9kYWxpdMOgIGFycmF5LFxyXG4gICAgICAgIC8vIGlub2x0cmUgbm9uIGhvIGJpc29nbm8gZGkgZmFyZSByYWdpb25hbWVudGkgc3UgcXVhbnRpIGVsZW1lbnRpIGNpIHNvbm8gZSBzdWxsYSBwYWdpbmEsIGRhdG8gY2hlIHZpZW5lIHR1dHRvIGdlc3RpdG8gZXN0ZXJuYW1lbnRlLCBcclxuICAgICAgICAvLyB1bmVuZG8gYWwgcmlzdWx0YXRvIGRlbGxhIHZpZXcgdHV0dGkgZ2xpIG9nZ2V0dGkgYWRkaXppb25hbGlcclxuICAgICAgICBpZiAoIXRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5UHVsc2FudGkgPSB0aGlzLnV0aWxpdGllcy5nZXRQYWdlc0FycmF5KDYsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVzdC5WaWV3IGFzIGFueVtdO1xyXG5cclxuICAgICAgICAvLyBQb2kgcGVyIHR1dHRpIGkgdmFsb3JpIGRvcG8gY29tcHJlc2kgZnJhIGxhIHBhZ2luYSAtIDEgZSBsYSBwYWdpbmFcclxuICAgICAgICBmb3IgKGxldCBpID0gKCh0aGlzLmVzdC5hcnJheW1vZGVQYWdlIC0gMSkgKiB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UpOyBpIDwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSAqIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDw9ICh0aGlzLmVzdC5WaWV3IGFzIGFueVtdKS5sZW5ndGggLSAxKVxyXG4gICAgICAgICAgICAgICAgdG1wSXRlbXMucHVzaCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSlbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRtcEl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZSBpbiBtb2RhbGl0w6AgYXJyYXkgYXBwbGljYSBnbGkgb3JkaW5hbWVudGkgQVNDLURFU0MgZGVsbGUgY29sb25uZSAqL1xyXG4gICAgcHVibGljIGFycmF5TW9kZVJldmlld09yZGVyaW5ncygpIHtcclxuICAgICAgICBpZiAodGhpcy5lc3QuYXJyYXlPcmRlcnMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXlPcmRlcnMuZm9yRWFjaCh0ID0+IHsgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZS5zb3J0KChhLCBiKSA9PiAoYVt0LmlkXSA+IGJbdC5pZF0gPyAxIDogLTEpICogKHQub3JkZXIgPT0gJ0RFU0MnID8gLTEgOiAxKSk7IH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==