@esfaenza/es-table 13.1.6 → 13.1.8

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.
@@ -160,13 +160,11 @@ export class RowGroupingHandler {
160
160
  /**
161
161
  * Se in modalità array applica i raggruppamenti definiti lato row-grouping
162
162
  *
163
- * @param {ths: EsTh[] | EsThDirective[]} ths Header
163
+ * @param {ths: EsThDirective[]} ths Header
164
164
  */
165
165
  arrayModeReviewGroupings(ths) {
166
166
  if (ths.length == 0)
167
167
  return;
168
- if (this.utilities.isEsTh(ths[0]))
169
- return;
170
168
  let headerGroups = [];
171
169
  let headerAggregations = [];
172
170
  for (let i = 0; i < ths.length; i++) {
@@ -471,4 +469,4 @@ export class RowGroupingHandler {
471
469
  return value;
472
470
  }
473
471
  }
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm93R3JvdXBpbmdIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvUm93R3JvdXBpbmdIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLFVBQVU7QUFDVixPQUFPLEVBQTBCLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFLckosaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxrQkFBa0I7SUFTM0IsMEJBQTBCO0lBQzFCLFlBQW9CLEdBQXFCLEVBQVUsU0FBMkIsRUFBVSxRQUFxQjtRQUF6RixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQVI3RyxxRkFBcUY7UUFDOUUsaUJBQVksR0FBdUIsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDbkUsNkdBQTZHO1FBQ3RHLGdCQUFXLEdBQXVCLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2xFLDZHQUE2RztRQUN0Ryx1QkFBa0IsR0FBeUIsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFHb0MsQ0FBQztJQUVsSDs7Ozs7Ozs7O09BU0c7SUFDSSwwQkFBMEIsQ0FBQyxJQUFvQixFQUFFLFlBQW9CO1FBQ3hFLHdJQUF3STtRQUN4SSw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1lBQzdDLElBQUksQ0FB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SUFBSTtZQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsTUFBTSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBRXJGLGdHQUFnRztRQUNoRyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlIC8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RoIH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGgvZXNfdGguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzVGhEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vLi4vZGlyZWN0aXZlcy9lc190aC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgRXNUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudFwiXHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEFwcE9yZGVyaW5nLCBBcHBTZWFyY2gsIEdyb3VwLCBHcm91cEFnZ3JlZ2F0aW9uLCBHcm91cE9yQWdncmVnYXRpb24sIEdyb3VwUGFnZXIsIEdyb3VwUm91dGVGcmFnbWVudCwgVGhBZ2dyZWdhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9kb21haW5cIjtcclxuXHJcbi8vIFV0aWxpdGllc1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNIYW5kbGVyIH0gZnJvbSBcIi4vVXRpbGl0aWVzSGFuZGxlclwiO1xyXG5cclxuLyoqIENsYXNzZSBjaGUgZ2VzdGlzY2UgbGEgbW9kYWxpdMOgIFJvdyBHcm91cGluZyBkZWxsJ2VzLXRhYmxlICovXHJcbmV4cG9ydCBjbGFzcyBSb3dHcm91cGluZ0hhbmRsZXIge1xyXG5cclxuICAgIC8qKiBDYWNoZSBwZXIgc2FsdmFyZSBwZXIgb2duaSBjaGlhdmUgZGkgb2duaSBncnVwcG8gY2hpIMOoIGlsIGdydXBwbyByYXBwcmVzZW50YXRvICovXHJcbiAgICBwdWJsaWMgcmdHcm91cENhY2hlOiBNYXA8c3RyaW5nLCBHcm91cD4gPSBuZXcgTWFwPHN0cmluZywgR3JvdXA+KCk7XHJcbiAgICAvKiogQ2FjaGUgcGVyIHNhbHZhcmUgcGVyIG9nbmkgY2hpYXZlIGRpIG9nbmkgZ3J1cHBvIGNoaSBzb25vIGdsaSBvZ2dldHRpIHNvdHRvc3RhbnRpLCBub24gZGVpIHNvdHRvZ3J1cHBpICovXHJcbiAgICBwdWJsaWMgcmdJdGVtQ2FjaGU6IE1hcDxzdHJpbmcsIGFueVtdPiA9IG5ldyBNYXA8c3RyaW5nLCBhbnlbXT4oKTtcclxuICAgIC8qKiBDYWNoZSBwZXIgc2FsdmFyZSBwZXIgb2duaSBjaGlhdmUgZGkgb2duaSBncnVwcG8gY2hpIHNvbm8gZ2xpIG9nZ2V0dGkgc290dG9zdGFudGksIG5vbiBkZWkgc290dG9ncnVwcGkgKi9cclxuICAgIHB1YmxpYyByZ0NoaWxkR3JvdXBzQ2FjaGU6IE1hcDxzdHJpbmcsIEdyb3VwW10+ID0gbmV3IE1hcDxzdHJpbmcsIEdyb3VwW10+KCk7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIHV0aWxpdGllczogVXRpbGl0aWVzSGFuZGxlciwgcHJpdmF0ZSBkYXRlRXh0czogRGF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW4gbW9kYWxpdMOgIHJvd2dyb3VwaW5nIHF1YW5kbyBtaSBhcnJpdmEgdW4gbnVvdm8gYmxvY2NvIGRpIG9nZ2V0dGkgZGV2byBhZ2dpdW5nZXJsbyBhbGxhIHZpc3RhIGF0dHVhbGU6XHJcbiAgICAgKlxyXG4gICAgICogMSkgU2Ugbm9uIHZpZW5lIHJpY2hpZXN0byBpbCBkZXR0YWdsaW8gZGkgYWxjdW4gZ3J1cHBvIHNpZ25pZmljYSBjaGUgZGV2byBjb25zaWRlcmFyZSBtaSBzaWFubyBhcnJpdmF0aSB0dXR0aSBpIGdydXBwaSBwcmluY2lwYWxpXHJcbiAgICAgKiAyKSBTZSB2aWVuZSByaWNoaWVzdG8gaWwgZGV0dGFnbGlvIGRpIHVuIGdydXBwbyBkaXZlcnNvIGRhbGwndWx0aW1vIGRldm8gYWdnaXVuZ2VyZSBkb3BvIGFsIGdydXBwbyBjbGljY2F0byBsYSBsaXN0YSBkZWkgc290dG9ncnVwcGlcclxuICAgICAqIDIpIFNlIHZpZW5lIHJpY2hpZXN0byBpbCBkZXR0YWdsaW8gZGVsbCd1bHRpbW8gZ3J1cHBvIGRldm8gYWdnaXVuZ2VyZSBkb3BvIGFsIGdydXBwbyBjbGljY2F0byBsYSBsaXN0YSBkZWdsaSBvZ2dldHRpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnl9IHZpZXcgQXBwU2VhcmNoPFQ+IGRhIGN1aSBzb25vIGFycml2YXRpIGdsaSBvZ2dldHRpXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZ3JvdXBpbmdLZXlzIExpdmVsbGkgZGkgcmFnZ3J1cHBhbWVudG8gZGEgYXNwZXR0YXJzaSBzdWkgZGF0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlTmV3RGF0YU9uUm93R3JvdXBpbmcodmlldzogQXBwU2VhcmNoPGFueT4sIGdyb3VwaW5nS2V5czogbnVtYmVyKSB7XHJcbiAgICAgICAgLy8gMSkgU2Ugbm9uIHZpZW5lIHJpY2hpZXN0byBpbCBkZXR0YWdsaW8gZGkgYWxjdW4gZ3J1cHBvIHNpZ25pZmljYSBjaGUgbGEgY2hpYW1hdGEgcmVzdGl0dWlzY2UgbGEgbGlzdGEgcGFnaW5hdGEgZGVpIGdydXBwaSBwcmluY2lwYWxpLlxyXG4gICAgICAgIC8vICAgIExpIHRyYXR0byBjb21lIHNlIGZvc3NlIHVuYSBxdWFsc2lhc2kgYWx0cmEgcXVlcnkgcGFnaW5hdGEgc3UgTiBlbGVtZW50aVxyXG4gICAgICAgIGlmICgodmlldy5yZXF1ZXN0ZWRncm91cHM/Lmxlbmd0aCB8fCAwKSA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmJvdW5kU291cmNlID0gdGhpcy5lc3QuVE1QQm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgIHRoaXMucmdHcm91cENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEdyb3VwPigpO1xyXG4gICAgICAgICAgICB0aGlzLnJnSXRlbUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xyXG4gICAgICAgICAgICB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBHcm91cFtdPigpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UuZm9yRWFjaChpdG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgaXRtLl90aGlzUm91dGUgPSBpdG0uX2dyb3VwID8gW3sgY29sdW1uOiAoPEdyb3VwPml0bSkuY29sdW1uLCB2YWx1ZTogKDxHcm91cD5pdG0pLnZhbHVlIH1dIDogW107XHJcbiAgICAgICAgICAgICAgICBpdG0uX3RoaXNLZXkgPSBpdG0uX2dyb3VwID8gKDxHcm91cD5pdG0pLnZhbHVlIDogbnVsbDtcclxuICAgICAgICAgICAgICAgIGl0bS5fZ3JvdXBsZXZlbCA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZ0dyb3VwQ2FjaGUuc2V0KGl0bS5fdGhpc0tleSwgaXRtKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXNldHRvIGxhIHJpY2VyY2EgYWxsYSBjYWNoZSBkaSBxdWVzdGEgXCJzZXNzaW9uZVwiXHJcbiAgICAgICAgICAgIGxldCBmaXJzdEl0ZW0gPSB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZVswXTtcclxuICAgICAgICAgICAgdGhpcy5lc3QuTWFpbkdyb3VwVmlldyA9IE9iamVjdC5hc3NpZ24oe30sIHZpZXcpO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5ncm91cFNlYXJjaFJlcXVlc3RzQ2FjaGUgPSBbeyBwYXRoOiAnJywgcm91dGU6IFt7IGNvbHVtbjogKDxHcm91cD5maXJzdEl0ZW0pLmNvbHVtbiwgdmFsdWU6ICg8R3JvdXA+Zmlyc3RJdGVtKS52YWx1ZSB9XSwgdmlldzogdGhpcy5lc3QuTWFpbkdyb3VwVmlldywgZ3JvdXBfY29sdW1uOiAoPEdyb3VwPnRoaXMuZXN0LlRNUEJvdW5kU291cmNlWzBdKS5jb2x1bW4gfV07XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkJhc2VJdGVtc0NvdW50ID0gdmlldy5vYmplY3Rjb3VudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIDIpIFNlIHZpZW5lIHJpY2hpZXN0byBpbCBkZXR0YWdsaW8gZGkgdW4gcXVhbHNpYXNpIGdydXBwbyBkaXZlcnNvIGRhbGwndWx0aW1vIHZ1b2wgZGlyZSBjaGUgZGV2byBhZ2dpdW5nZXJlIFxyXG4gICAgICAgICAgICAvLyAgICBkb3BvIGFsIGdydXBwbyBjaGUgaG8gY2xpY2NhdG8gbGEgbGlzdGEgZGVpIGdydXBwaSB0aXJhdGEgZnVvcmkgcXVlc3RhIHZvbHRhIChpbnRlcm1lZGlhdGVHcm91cCA9IHRydWUpXHJcbiAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICogICBHcnVwcG9BICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0FcclxuICAgICAgICAgICAgKiAgIEdydXBwb0IgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvQlxyXG4gICAgICAgICAgICAqICAgR3J1cHBvQyA8LSBDbGljY28gcXVpICAgICAgICBHcnVwcG9DXHJcbiAgICAgICAgICAgICogICBHcnVwcG9EICAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9DMVxyXG4gICAgICAgICAgICAqICAgR3J1cHBvRSAgICAgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvQzJcclxuICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvRFxyXG4gICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9FXHJcbiAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIC8vIDMpIHNlIGkgZ3J1cHBpIHJpY2hpZXN0aSBkYWxsYSB2aWV3IHNvbm8gdWd1YWxpIGFpIGdydXBwaSBwcmVzZW50aSB2dW9sIGRpcmUgY2hlIHN0byBwcmVuZGVuZG8gZ2xpIG9nZ2V0dGkgdmVyaSBlIHByb3ByaSwgc29ubyBpbiBcclxuICAgICAgICAgICAgLy8gdmlldy5pdGVtcyBlIHF1aW5kaSBpbiBUTVBCb3VuZFNvdXJjZSwgaG8gaW5vbHRyZSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgKipwZXIgaWwgc2luZ29sbyBzb3R0b2dydXBwbyoqIChpbnRlcm1lZGlhdGVHcm91cCA9IGZhbHNlKVxyXG4gICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAqICAgR3J1cHBvQSAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9BXHJcbiAgICAgICAgICAgICogICAgICAgR3J1cHBvQzEgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9DMVxyXG4gICAgICAgICAgICAqICAgR3J1cHBvQiAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9CXHJcbiAgICAgICAgICAgICogICBHcnVwcG9DICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0NcclxuICAgICAgICAgICAgKiAgICAgICBHcnVwcG9DMSA8LS0gQ2xpY2NvIHF1aSAgICAgICAgIEdydXBwb0MxXHJcbiAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2dnZXR0bzFcclxuICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZ2dldHRvMlxyXG4gICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9nZ2V0dG8zXHJcbiAgICAgICAgICAgICogICAgICAgR3J1cHBvQzIgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9DMlxyXG4gICAgICAgICAgICAqICAgR3J1cHBvRCAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9EXHJcbiAgICAgICAgICAgICogICBHcnVwcG9FICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0VcclxuICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGludGVybWVkaWF0ZUdyb3VwID0gdmlldy5yZXF1ZXN0ZWRncm91cHMubGVuZ3RoICE9IGdyb3VwaW5nS2V5cztcclxuXHJcbiAgICAgICAgICAgIGxldCBpdGVtcyA9IHRoaXMuZXN0LmJvdW5kU291cmNlO1xyXG4gICAgICAgICAgICBsZXQgaW5zZXJ0SW5kZXggPSAwO1xyXG4gICAgICAgICAgICBsZXQgaW5zZXJ0R3JvdXAgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgZ3JvdXBLZXk6IHN0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGxldCBncm91cFJvdXRlOiBHcm91cFJvdXRlRnJhZ21lbnRbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgLy8gTmF2aWdvIGxhIHN0dXR0dXJhIGRlaSBncnVwcGkgaWdub3JhbmRvIHJpY29yc2l2YW1lbnRlIHR1dHRpIGdsaSBpbmRpY2kgZmlubyBhaSBncnVwcGkgY2hlIG1pIGludGVyZXNzYW5vIGluIG1vZG8gZGEgbm9uIGJlY2NhcmUgaWwgcHJpbW8gXCJHcnVwcG9DMVwiIGRlbCBjYXNvIHNvcHJhXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlldy5yZXF1ZXN0ZWRncm91cHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCByZyA9IHZpZXcucmVxdWVzdGVkZ3JvdXBzW2ldO1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBLZXkgKz0gcmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBncm91cFJvdXRlLnB1c2goeyBjb2x1bW46IHJnLmNvbHVtbiwgdmFsdWU6IHJnLnZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc2VydEluZGV4OyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID49IGluc2VydEluZGV4ICYmIHQuX2dyb3VwICYmIHQuY29sdW1uID09IHJnLmNvbHVtbiAmJiB0LnZhbHVlID09IHJnLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEluZGV4ID0gaTsgaW5zZXJ0R3JvdXAgPSB0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBMbyBtYXJjbyBleHBhbmRlZCBkYXRvIGNoZSBxdWVzdG8gY2xpY2sgc3VsIGdydXBwbyBwb3RyZWJiZSBub24gZXNzZXJlIHN0YXRvIGZhdHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEdyb3VwLl9leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1zQ2FjaGVSZWZlcmVuY2U7XHJcbiAgICAgICAgICAgIGxldCBjaGlsZEdyb3Vwc0NhY2hlUmVmZXJlbmNlO1xyXG5cclxuICAgICAgICAgICAgLy8gU2Ugbm9uIMOoIHVuIGdydXBwbyBpbnRlcm1lZGlvIGRldm8gcmlwdWxpcmUgbGEgY2FjaGUgZGVsIGdydXBwbyBzdSBjdWkgaG8gYXR0dWFsbWVudGUgY2xpY2NhdG8uIEdsaSBvZ2dldHRpIHNhcmFubm8gcmlhZ2dpdW50aSBkb3BvXHJcbiAgICAgICAgICAgIGlmICghaW50ZXJtZWRpYXRlR3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmdJdGVtQ2FjaGUuc2V0KGdyb3VwS2V5LCBbXSk7XHJcbiAgICAgICAgICAgICAgICBpdGVtc0NhY2hlUmVmZXJlbmNlID0gdGhpcy5yZ0l0ZW1DYWNoZS5nZXQoZ3JvdXBLZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gU2UgaW52ZWNlIMOoIHVuIGdydXBwbyBpbnRlcm1lZGlvIGRldm8gcmlwdWxpcmUgc2lhIHR1dHRpIGkgY2hpbGQgZ3JvdXAgcmljb3JzaXZhbWVudGUsIHNpYSB0dXR0aSBnbGkgaXRlbVxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IG9mIHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlLmtleXMoKSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoZ3JvdXBLZXkpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZS5kZWxldGUoa2V5KTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgdGhpcy5yZ0l0ZW1DYWNoZS5rZXlzKCkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGdyb3VwS2V5KSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZ0l0ZW1DYWNoZS5kZWxldGUoa2V5KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZS5zZXQoZ3JvdXBLZXksIFtdKTtcclxuICAgICAgICAgICAgICAgIGNoaWxkR3JvdXBzQ2FjaGVSZWZlcmVuY2UgPSB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZS5nZXQoZ3JvdXBLZXkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBBc3NlZ25vIHVuIGxpdmVsbG8gYWkgdmFsb3JpIGNoZSBhcnJpdmFubyBkYSB1c2FyZSBwZXIgZm9ybWF0dGFyZSBsYSBwYXJ0ZSBncmFmaWNhLiBJbCBwcmltbyBncnVwcG8gY2xpY2NhdG8gc2Fyw6AgYSBsaXZlbGxvIDEsXHJcbiAgICAgICAgICAgIC8vIGlsIHNlY29uZG8gc2Fyw6AgYSBsaXZlbGxvIDIgZSBjb3PDrCB2aWEuLi5cclxuICAgICAgICAgICAgLy8gTGkgbWFyY28gaW5vbHRyZSBjb24gaWwgcGFyZW50IGluIG1vZG8gZGEgcG90ZXIgZWxpbWluYXJlIGkgdmVjY2hpIHF1YWxvcmEgc2Vydmlzc2VcclxuICAgICAgICAgICAgdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UuZm9yRWFjaChpdG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgaXRtLl9wYXJlbnQgPSBncm91cEtleTtcclxuICAgICAgICAgICAgICAgIGl0bS5fcGFyZW50Um91dGUgPSBncm91cFJvdXRlO1xyXG4gICAgICAgICAgICAgICAgaXRtLl90aGlzUm91dGUgPSBpdG0uX2dyb3VwID8gWy4uLmdyb3VwUm91dGUsIG5ldyBHcm91cFJvdXRlRnJhZ21lbnQoKDxHcm91cD5pdG0pLmNvbHVtbiwgKDxHcm91cD5pdG0pLnZhbHVlKV0gOiBbXTtcclxuICAgICAgICAgICAgICAgIGl0bS5fdGhpc0tleSA9IGl0bS5fZ3JvdXAgPyBncm91cEtleSArICg8R3JvdXA+aXRtKS52YWx1ZSA6IGdyb3VwS2V5O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFBlciBsZSByaWNlcmNhIGludGVybWVkaWUgbWV0dG8gaSBncnVwcGkgbmVsbGEgY2FjaGUgZGVpIGdydXBwaVxyXG4gICAgICAgICAgICAgICAgaWYgKGludGVybWVkaWF0ZUdyb3VwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRtLl9ncm91cGxldmVsID0gdmlldy5yZXF1ZXN0ZWRncm91cHMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmdHcm91cENhY2hlLnNldChpdG0uX3RoaXNLZXksIGl0bSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRHcm91cHNDYWNoZVJlZmVyZW5jZS5wdXNoKGl0bSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBNZXR0byBhbmNoZSBnbGkgb2dnZXR0aSBuZWxsYSBjYWNoZSBub24gcmljb3JzaXZhXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNDYWNoZVJlZmVyZW5jZS5wdXNoKGl0bSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gRWxpbWlubyBnbGkgb2dnZXR0aSB2ZWNjaGkgXHJcbiAgICAgICAgICAgIC8vIDEpIFJpY2VyY2EgaW50ZXJtZWRpYSwgc3RhdG8gc2FsdmF0byAtIEVsaW1pbm8gdHV0dGkgZ2xpIGl0ZW0gZSB0dXR0aSBpIGdydXBwaSBsYSBjdWkgcm91dGUgw6ggcGnDuSBsdW5nYSBkZWxsYSBjb3JyZW50ZSwgdHV0dGkgZ2xpIGl0ZW0gcmVsYXRpdmkgYWxsYSBwYXRoIGNvcnJlbnRlLCBlIHR1dHRlXHJcbiAgICAgICAgICAgIC8vICAgIGxlIGNhY2hlIGRpIHJpY2VyY2EgZWZmZXR0dWF0ZSBzdSB1bmEgcGF0aCBwacO5IHByb2ZvbmRhIGRlbGwnYXR0dWFsZVxyXG4gICAgICAgICAgICAvLyAyKSBSaWNlcmNhIGZpbmFsZSBvIHJpY2VyY2EgaW50ZXJtZWRpYSBzZW56YSBzdGF0byBzYWx2YXRvIC0gRWxpbWlubyB0dXR0aSBnbGkgaXRlbSByZWxhdGl2aSBhbGxhIHBhdGggY29ycmVudGVcclxuICAgICAgICAgICAgLy8gUGVyIFwic3RhdG8gc2FsdmF0b1wiIHNpIGludGVuZG9ubyByaWNlcmNoZSB2ZWNjaGllIHNhbHZhdGUgcGVyIHBvdGVyIGVzc2VyZSByaWVmZmV0dHVhdGUgaW4gY2FzbyBkaSBvcmRpbmFtZW50aSBzdSBjb2xvbm5lIGRpIGludGVyZXNzZSBcclxuICAgICAgICAgICAgaWYgKGludGVybWVkaWF0ZUdyb3VwICYmIHZpZXcuc2F2ZWRzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZS5maWx0ZXIodCA9PiAhKHQuX2l0ZW0gfHwgdC5fdGhpc1JvdXRlLmxlbmd0aCA+IGdyb3VwUm91dGUubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5ncm91cFNlYXJjaFJlcXVlc3RzQ2FjaGUgPSB0aGlzLmVzdC5ncm91cFNlYXJjaFJlcXVlc3RzQ2FjaGUuZmlsdGVyKHQgPT4gISh0LnJvdXRlLmxlbmd0aCA+IGdyb3VwUm91dGUubGVuZ3RoKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmJvdW5kU291cmNlID0gdGhpcy5lc3QuYm91bmRTb3VyY2UuZmlsdGVyKHQgPT4gISh0Ll9wYXJlbnQgPT0gZ3JvdXBLZXkpKTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0aGlzR3JvdXAgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZVtpbnNlcnRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChpbnRlcm1lZGlhdGVHcm91cClcclxuICAgICAgICAgICAgICAgIHRoaXNHcm91cC5fZ3JvdXBzY291bnQgPSAoPEFwcFNlYXJjaDxhbnk+PnRoaXMuZXN0LlZpZXcpPy5ncm91cGNvdW50O1xyXG5cclxuICAgICAgICAgICAgLy8gTGkgc29zdGl0dWlzY28gY29pIG51b3ZpIGRpIHF1ZXN0YSByaWNlcmNhXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmJvdW5kU291cmNlLnNwbGljZShpbnNlcnRJbmRleCArIDEsIDAsIC4uLnRoaXMuZXN0LlRNUEJvdW5kU291cmNlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFnZ2l1bmdvIHVuIHNlcGFyYXRvcmUgYWxsYSBmaW5lIG8gYWxsJ2luaXppbyBkaSBxdWVzdGkgZ3J1cHBpIGNoZSBkb3Zyw6Agb2NjdXBhcnNpIGRpIGNhcmljYXJlIEFMVFJJIGdydXBwaSBvIG9nZ2V0dGkgKHNlIHNvbm8gYWxsJ3VsdGltbyBncnVwcG8pXHJcbiAgICAgICAgICAgIGxldCBhZGRMYXN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmJvdW5kU291cmNlLnNwbGljZShpbnNlcnRJbmRleCArIDEgKyAoYWRkTGFzdCA/IHRoaXMuZXN0LlRNUEJvdW5kU291cmNlLmxlbmd0aCA6IDApLCAwLCB0aGlzLmdldEdyb3VwU2VwYXJhdG9yKHZpZXcsIGdyb3VwS2V5LCBncm91cFJvdXRlLCB2aWV3LnJlcXVlc3RlZGdyb3Vwcy5sZW5ndGgsIGludGVybWVkaWF0ZUdyb3VwID8gJ2dyb3VwcycgOiAnaXRlbXMnKSk7XHJcblxyXG4gICAgICAgICAgICAvLyBBZ2dpdW5nbyBsYSByaWNlcmNhIGFsbGEgY2FjaGUgZGkgcXVlc3RhIFwic2Vzc2lvbmVcIlxyXG4gICAgICAgICAgICBsZXQgdG9BZGQgPSB7IHBhdGg6IGdyb3VwS2V5LCByb3V0ZTogZ3JvdXBSb3V0ZSwgdmlldzogT2JqZWN0LmFzc2lnbih7fSwgdmlldyksIGdyb3VwX2NvbHVtbjogaW50ZXJtZWRpYXRlR3JvdXAgPyAoPEdyb3VwPnRoaXMuZXN0LlRNUEJvdW5kU291cmNlWzBdKS5jb2x1bW4gOiAnJyB9O1xyXG4gICAgICAgICAgICBsZXQgcHJldiA9IHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5maW5kSW5kZXgodCA9PiB0LnBhdGggPT0gdG9BZGQucGF0aCAmJiB0Lmdyb3VwX2NvbHVtbiA9PSB0b0FkZC5ncm91cF9jb2x1bW4pO1xyXG4gICAgICAgICAgICBpZiAocHJldiA9PSAtMSlcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5wdXNoKHRvQWRkKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5zcGxpY2UocHJldiwgMSwgdG9BZGQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlIGluIG1vZGFsaXTDoCBhcnJheSBhcHBsaWNhIGkgcmFnZ3J1cHBhbWVudGkgZGVmaW5pdGkgbGF0byByb3ctZ3JvdXBpbmdcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3RoczogRXNUaFtdIHwgRXNUaERpcmVjdGl2ZVtdfSB0aHMgSGVhZGVyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhcnJheU1vZGVSZXZpZXdHcm91cGluZ3ModGhzOiBFc1RoW10gfCBFc1RoRGlyZWN0aXZlW10pIHtcclxuICAgICAgICBpZiAodGhzLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnV0aWxpdGllcy5pc0VzVGgodGhzWzBdKSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBsZXQgaGVhZGVyR3JvdXBzOiBHcm91cFtdID0gW107XHJcbiAgICAgICAgbGV0IGhlYWRlckFnZ3JlZ2F0aW9uczogR3JvdXBPckFnZ3JlZ2F0aW9uW10gPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHRoID0gdGhzW2ldIGFzIEVzVGhEaXJlY3RpdmU7XHJcblxyXG4gICAgICAgICAgICBpZiAodGgudGhHcm91cClcclxuICAgICAgICAgICAgICAgIGhlYWRlckdyb3Vwcy5wdXNoKG5ldyBHcm91cCh0aC50aCwgMCwgXCJcIikpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aC50aEFnZ3JlZ2F0aW9uKVxyXG4gICAgICAgICAgICAgICAgaGVhZGVyQWdncmVnYXRpb25zID0gWy4uLmhlYWRlckFnZ3JlZ2F0aW9ucywgLi4udGhpcy5nZXRHcm91cEFnZ3JlZ2F0aW9ucyh0aCldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGhlYWRlckdyb3Vwcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vIFB1bGl6aWEgZGVsbGUgY2FjaGVcclxuICAgICAgICAgICAgdGhpcy5yZ0dyb3VwQ2FjaGUuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5yZ0l0ZW1DYWNoZS5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZS5jbGVhcigpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5lc3QuQXJyYXlHcm91cGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmJvdW5kU291cmNlID0gdGhpcy5nZXRHcm91cHNSZWN1cnNpdmUoaGVhZGVyR3JvdXBzLCAwLCB0aGlzLmVzdC5ib3VuZFNvdXJjZSwgaGVhZGVyQWdncmVnYXRpb25zLCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBkaXJldHRpdmEgRXNUaCByZXN0aXR1aXNjZSBsYSBsaXN0YSBkZWxsZSBhZ2dyZWdhemlvbmkgcmljaGllc3RhIHBlciBxdWVzdGEgY29sb25uYSBvIGlsIGdydXBwbyBjaGUgcmFwcHJlc2VudGFcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VzVGhEaXJlY3RpdmV9IHRoIERpcmV0dGl2YVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtHcm91cE9yQWdncmVnYXRpb25bXX0gTGlzdGEgZGVpIGdydXBwaSBvIGFnZ3JlZ2F6aW9uaSByZWxhdGl2aSBhbGxhIERpcmV0dGl2YSBwYXNzYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRHcm91cEFnZ3JlZ2F0aW9ucyh0aDogRXNUaERpcmVjdGl2ZSk6IEdyb3VwT3JBZ2dyZWdhdGlvbltdIHtcclxuICAgICAgICBsZXQgcmV0ID0gW107XHJcbiAgICAgICAgLy8gRXM6ICd7bWluOmRkL01NL3l5eXl9IC0ge21heDpkZC9NTS95eXl5fSdcclxuICAgICAgICBpZiAodGgudGhBZ2dyZWdhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmdldEVzVGhEaXJlY3RpdmVMaXN0T2ZBZ2dyZWdhdGlvbnModGgpLmZvckVhY2goKGFnZzogVGhBZ2dyZWdhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGlzZGF0ZSA9IGFnZy5mb3JtYXQgJiYgWydzbWFsbCcsICdsb25nJywgJ3Zlcnlsb25nJ10uaW5jbHVkZXMoYWdnLmZvcm1hdCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXNudW1iZXIgPSBhZ2cuZm9ybWF0ICYmIGFnZy5mb3JtYXQuc3RhcnRzV2l0aChcIkZcIikgJiYgIU51bWJlci5pc05hTihhZ2cuZm9ybWF0LmNoYXJBdCgxKSkgJiYgYWdnLmZvcm1hdC5sZW5ndGggPT0gMjtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzZGF0ZSAmJiAhaXNudW1iZXIgJiYgYWdnLmZvcm1hdClcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBcIkxlIGFnZ2VyZ2F6aW9uaSBzdXBwb3J0YXRlIGRhbGwnZXMtdGFibGUgc29ubyBzb2xvICdzbWFsbCcsICdsb25nJywgJ3Zlcnlsb25nJyBwZXIgbGUgZGF0ZSBlICdGMC05JyBwZXIgaSBudW1lcmlcIjtcclxuXHJcbiAgICAgICAgICAgICAgICByZXQucHVzaChuZXcgR3JvdXBPckFnZ3JlZ2F0aW9uKHRoLnRoLCBhZ2cuZnVuYywgaXNkYXRlID8gJ2RhdGUnIDogaXNudW1iZXIgPyAnbnVtYmVyJyA6ICdzdHJpbmcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aC50aEdyb3VwKVxyXG4gICAgICAgICAgICByZXQucHVzaChuZXcgR3JvdXBPckFnZ3JlZ2F0aW9uKHRoLnRoLCBudWxsKSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBEYXRhIHVuYSBkaXJldHRpdmEgY29uIHVuIGZvcm1hdG8gcmVzdGl0dWlzY2UgdHV0dGUgbGUgY29wcGllIEZ1bnppb25lIGRpIEFnZ3JlZ2F6aW9uZSAtIEZvcm1hdG9cclxuICAgICpcclxuICAgICogQHBhcmFtIHtFc1RoRGlyZWN0aXZlfSB0aCBEaXJldHRpdmEgRXNUaCBkaSBjdWkgY2FsY29sYXJlIGxlIGZ1bnppb25pIGRpIGFnZ3JlZ2F6aW9uZSB1c2F0ZVxyXG4gICAgKlxyXG4gICAgKiBAcmV0dXJucyB7eyBmdW5jOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nIH1bXX0gTGlzdGEgZGVsbGUgZnVuemlvbmkgZGkgYWdncmVnYXppb25lIHJpbGV2YXRlXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRFc1RoRGlyZWN0aXZlTGlzdE9mQWdncmVnYXRpb25zKHRoOiBFc1RoRGlyZWN0aXZlKTogVGhBZ2dyZWdhdGlvbltdIHtcclxuICAgICAgICBpZiAoIXRoLnRoQWdncmVnYXRpb24pXHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuXHJcbiAgICAgICAgLy8gU2UgaG8gZ2nDoCBlZmZldHR1YXRvIHF1ZXN0byBjYWxjb2xvIHBlciBxdWVzdG8gdGggcmVzdGl0dWlzY28gbGEgdmVyc2lvbmUgaW4gY2FjaGVcclxuICAgICAgICBpZiAodGguX3RoQWdncmVnYXRpb25zKVxyXG4gICAgICAgICAgICByZXR1cm4gdGguX3RoQWdncmVnYXRpb25zO1xyXG5cclxuICAgICAgICBsZXQgcmV0ID0gW107XHJcbiAgICAgICAgbGV0IGRpc3BsYXkgPSB0aC50aEFnZ3JlZ2F0aW9uO1xyXG4gICAgICAgIHZhciBtYXRjaGVzID0gZGlzcGxheS5tYXRjaCgve1thLXpBLVowLTlcXC86XSp9L2dpKTtcclxuICAgICAgICBpZiAoIW1hdGNoZXMpXHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICBtYXRjaGVzLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IG0uc3BsaXQoXCI6XCIpO1xyXG4gICAgICAgICAgICBsZXQgZnVuYyA9IG0sIGZvcm1hdCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFc2NsdWRvIHByaW1vIGUgdWx0aW1vIGNhcmF0dGVyZSAobGUgZ3JhZmZlKVxyXG4gICAgICAgICAgICAgICAgZnVuYyA9IHNwbGl0WzBdLnN1YnN0cigxKTtcclxuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHNwbGl0WzFdLnN1YnN0cigwLCBzcGxpdFsxXS5sZW5ndGggLSAxKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0LnB1c2goeyBmdW5jOiA8J21pbicgfCAnbWF4JyB8ICdzdW0nPmZ1bmMsIGZvcm1hdDogZm9ybWF0LCBtYXRjaDogbSB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGguX3RoQWdncmVnYXRpb25zID0gcmV0O1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIGxhIGRlZmluaXppb25lIGRlaSBncnVwcGkgZGEgZ2VuZXJhcmUgZGEgdW5hIGxpc3RhIGRpIG9nZ2V0dGksIHN1ZGRpdmlkZSBnbGkgb2dnZXR0aSBwYXNzYXRpIGluIGdydXBwaSBlIHNvdHRvZ3J1cHBpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtHcm91cFtdfSBncnBzIERlZmluaXppb25lIGRlaSBncnVwcGlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJyZW50SW5kZXggSW5kaWNlIGRpIGVsYWJvcmF6aW9uZS4gQWwgbGl2ZWxsbyAwIGhvIHR1dHRpIGdsaSBvZ2dldHRpIGUgZGV2byBnZW5lcmFyZSBpIHByaW1pIGdydXBwaSwgYSBsaXZlbGxvIDEgaG8gdHV0dGkgaSBncnVwcGkgcHJpbmNpcGFsaSBlIGRldm9cclxuICAgICAqIGVsYWJvcmFyZSBpIHNvdHRvZ3J1cHBpLCBlIGNvc8OsIHZpYSByaWNvcnNpdmFtZW50ZS4uLlxyXG4gICAgICogQHBhcmFtIHthbnlbXX0gaXRlbXMgT2dnZXR0aSBkYSByYWdncnVwcGFyZVxyXG4gICAgICogQHBhcmFtIHtHcm91cE9yQWdncmVnYXRpb25bXX0gYWdncmVnYXRpb25zIEluZm8gZGkgYWdncmVnYXppb25lXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gcGFyZW50IFJpZmVyaW1lbnRvIGFsIGdydXBwbyBwYWRyZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldEdyb3Vwc1JlY3Vyc2l2ZShncnBzOiBHcm91cFtdLCBjdXJyZW50SW5kZXg6IG51bWJlciwgaXRlbXM6IGFueVtdLCBhZ2dyZWdhdGlvbnM6IEdyb3VwT3JBZ2dyZWdhdGlvbltdLCBwYXJlbnQ/OiBhbnkpOiBhbnlbXSB7XHJcbiAgICAgICAgLy8gU2UgbCdpbmRpY2Ugw6ggMCBkZXZvIHNpY3VyYW1lbnRlIG5hc2NvbmRlcmUgdHV0dGkgZ2xpIG9nZ2V0dGkuIFNvbG8gaSBncnVwcGkgc2FyYW5ubyB2aXN1YWxpenphdGlcclxuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09IDApXHJcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiBpLl92aXNpYmxlID0gZmFsc2UpO1xyXG5cclxuICAgICAgICBsZXQgZ3JwID0gZ3Jwc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIGxldCByZXQ6IGFueVtdID0gW107XHJcbiAgICAgICAgbGV0IGxhc3QgPSBncnBzLmxlbmd0aCA9PSBjdXJyZW50SW5kZXggKyAxO1xyXG4gICAgICAgIGxldCBncm91cHMgPSB0aGlzLnV0aWxpdGllcy5ncm91cEJ5KGl0ZW1zLCBncnAuY29sdW1uKTtcclxuICAgICAgICBmb3IgKGxldCBwcm9wIGluIGdyb3Vwcykge1xyXG4gICAgICAgICAgICBsZXQgaXRtcyA9IGdyb3Vwc1twcm9wXTtcclxuICAgICAgICAgICAgbGV0IGdwID0gbmV3IEdyb3VwKGdycC5jb2x1bW4sIGl0bXMubGVuZ3RoLCBwcm9wKTtcclxuICAgICAgICAgICAgZ3AuYWdncmVnYXRpb25zID0gdGhpcy5nZW5lcmF0ZUFnZ3JlZ2F0aW9ucyhpdG1zLCBhZ2dyZWdhdGlvbnMpO1xyXG5cclxuICAgICAgICAgICAgbGV0IGFueWdwID0gKDxhbnk+Z3ApO1xyXG4gICAgICAgICAgICBhbnlncC5fZ3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICBhbnlncC5fZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGFueWdwLl90aGlzUm91dGUgPSBbeyBjb2x1bW46IGdwLmNvbHVtbiwgdmFsdWU6IGdwLnZhbHVlIH1dO1xyXG4gICAgICAgICAgICAgICAgYW55Z3AuX3RoaXNLZXkgPSBncC52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGFueWdwLl9ncm91cGxldmVsID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFueWdwLl9wYXJlbnQgPSBwYXJlbnQuX3RoaXNLZXk7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fcGFyZW50Um91dGUgPSBwYXJlbnQuX3RoaXNSb3V0ZTtcclxuICAgICAgICAgICAgICAgIGFueWdwLl90aGlzUm91dGUgPSBbLi4ucGFyZW50Ll90aGlzUm91dGUsIHsgY29sdW1uOiBncC5jb2x1bW4sIHZhbHVlOiBncC52YWx1ZSB9XTtcclxuICAgICAgICAgICAgICAgIGFueWdwLl90aGlzS2V5ID0gcGFyZW50Ll90aGlzS2V5ICsgZ3AudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fZ3JvdXBsZXZlbCA9IHBhcmVudC5fZ3JvdXBsZXZlbCArIDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFB1c2hvIGlsIGdydXBwbywgdHV0dGkgaSBncnVwcGkgZGVsIGxpdmVsbG8gc290dG8sIG8gZ2xpIGl0ZW0gc2UgaW8gc29ubyBsJ3VsdGltbyBncnVwcG8uIFxyXG4gICAgICAgICAgICAvLyBMYSB2aXNpYmlsaXTDoCDDqCBzb2xvIHBlciBpbCBncnVwcG8gYSBsaXZlbGxvIDAsIHR1dHRpIGdsaSBhbHRyaSBncnVwcGkgc2FyYW5ubyBtb3N0cmF0aSBvIG5hc2Nvc3RpIGRpIGNvbnNlZ3VlbnphXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPT0gMClcclxuICAgICAgICAgICAgICAgIGFueWdwLl92aXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0aWVzLmNhbGN1bGF0ZUhhc2goW2FueWdwXSk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0aWVzLmNhY2hlQWdncmVnYXRpb25zKGFueWdwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFnZ2l1bmdvIGlsIGdydXBwbyBwYWRyZVxyXG4gICAgICAgICAgICByZXQucHVzaChhbnlncCk7XHJcbiAgICAgICAgICAgIHRoaXMucmdHcm91cENhY2hlLnNldChhbnlncC5fdGhpc0tleSwgYW55Z3ApO1xyXG4gICAgICAgICAgICBpZiAoIWxhc3QpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvL0RhbCBncnVwcG8gcGFkcmUsIHNlIG5vbiDDqCBsJ3VsdGltbyBncnVwcG8gZGVsbGEgY2F0ZW5hLCBjYWxjb2xvIHJpY29yc2l2YW1lbnRlIHR1dHRhIGxhIGNhdGVuYSBzb3R0b1xyXG4gICAgICAgICAgICAgICAgbGV0IHN1Ykdyb3Vwc0FuZEl0ZW1zID0gdGhpcy5nZXRHcm91cHNSZWN1cnNpdmUoZ3JwcywgY3VycmVudEluZGV4ICsgMSwgaXRtcywgYWdncmVnYXRpb25zLCBhbnlncCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRncm91cHMgPSBzdWJHcm91cHNBbmRJdGVtcy5maWx0ZXIodCA9PiB0Ll9ncm91cCAmJiB0Ll9wYXJlbnQgPT0gYW55Z3AuX3RoaXNLZXkpO1xyXG4gICAgICAgICAgICAgICAgYW55Z3AuX2dyb3Vwc2NvdW50ID0gY2hpbGRncm91cHMubGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEFnZ2l1bmdvIGxhIGNhdGVuYSBkZWwgZ3J1cHBvIHNvdHRvLCBhZ2dpdW5nZW5kbyBhbGxhIGNhY2hlIHNvbG8gaSBncnVwcGkgcGFkcmVcclxuICAgICAgICAgICAgICAgIHJldC5wdXNoKC4uLnN1Ykdyb3Vwc0FuZEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlLnNldChhbnlncC5fdGhpc0tleSwgY2hpbGRncm91cHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gQWwgZ3J1cHBvIHBhZHJlLCBzZSDDqCBsJ3VsdGltbyBhc3NlZ25vIHR1dHRlIGxlIGZvZ2xpZSBhc3NlZ25hbmRvZ2xpIGFuY2hlIGxhIGNoaWF2ZSBkZWwgZ3J1cHBvXHJcbiAgICAgICAgICAgICAgICBpdG1zLmZvckVhY2goaSA9PiBpLl90aGlzS2V5ID0gYW55Z3AuX3RoaXNLZXkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldC5wdXNoKC4uLml0bXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZ0l0ZW1DYWNoZS5zZXQoYW55Z3AuX3RoaXNLZXksIGl0bXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBsaXN0YSBkaSBvZ2dldHRpIGdlbmVyYSBsZSBhZ2dyZWdhemlvbmkgc3BlY2lmaWNhdGUuIFNpIGNvbnNpZGVyYSBkaSBhdmVyZSB0dXR0aSBnbGkgb2dnZXR0aVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IGl0ZW1zIE9nZ2V0dGkgZGkgY3VpIGNhbGNvbGFyZSBsZSBhZ2dyZWdhemlvbmVcclxuICAgICAqIEBwYXJhbSB7R3JvdXBPckFnZ3JlZ2F0aW9uW119IGFnZ3JlZ2F0aW9ucyBBZ2dlcmdhemlvbmkgZGEgZ2VuZXJhcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUFnZ3JlZ2F0aW9ucyhpdGVtczogYW55W10sIGFnZ3JlZ2F0aW9uczogR3JvdXBPckFnZ3JlZ2F0aW9uW10pOiBHcm91cEFnZ3JlZ2F0aW9uW10ge1xyXG4gICAgICAgIGxldCByZXRzOiBHcm91cEFnZ3JlZ2F0aW9uW10gPSBbXTtcclxuICAgICAgICBsZXQgYWdncmVnYXRpb25WYWx1ZSA9IFwiXCIsIGZlRmllbGQgPSBudWxsLCBzdHJpbmdBZ2cgPSBudWxsLCBkYXRlQWdnID0gbnVsbCwgbnVtYmVyQWdnID0gbnVsbDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZ2dyZWdhdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGFnZyA9IGFnZ3JlZ2F0aW9uc1tpXTtcclxuICAgICAgICAgICAgZmVGaWVsZCA9IGFnZy5jb2x1bW47XHJcbiAgICAgICAgICAgIGlmICghZmVGaWVsZClcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChhZ2cuZGF0YXR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6IHN0cmluZ0FnZyA9IGl0ZW1zLm1hcChpID0+IGlbZmVGaWVsZF0udG9TdHJpbmcoKSk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6IGRhdGVBZ2cgPSBpdGVtcy5tYXAoaSA9PiBuZXcgRGF0ZShpW2ZlRmllbGRdKS5nZXRUaW1lKCkpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IG51bWJlckFnZyA9IGl0ZW1zLm1hcChpID0+IHBhcnNlRmxvYXQoaVtmZUZpZWxkXSkpOyBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChhZ2cuYWdncmVnYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21heCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhZ2cuZGF0YXR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzogYWdncmVnYXRpb25WYWx1ZSA9IHN0cmluZ0FnZy5zb3J0KCkucmV2ZXJzZSgpWzBdOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBuZXcgRGF0ZShNYXRoLm1heCguLi5kYXRlQWdnKSkudG9TdHJpbmcoKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBNYXRoLm1heCguLi5udW1iZXJBZ2cpLnRvU3RyaW5nKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21pbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhZ2cuZGF0YXR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzogYWdncmVnYXRpb25WYWx1ZSA9IHN0cmluZ0FnZy5zb3J0KClbMF07IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzogYWdncmVnYXRpb25WYWx1ZSA9IG5ldyBEYXRlKE1hdGgubWluKC4uLmRhdGVBZ2cpKS50b1N0cmluZygpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzogYWdncmVnYXRpb25WYWx1ZSA9IE1hdGgubWluKC4uLm51bWJlckFnZykudG9TdHJpbmcoKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3VtJzpcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFnZy5kYXRhdHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOiBhZ2dyZWdhdGlvblZhbHVlID0gc3RyaW5nQWdnLmpvaW4oXCIsIFwiKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOiBhZ2dyZWdhdGlvblZhbHVlID0gXCJcIjsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBudW1iZXJBZ2cucmVkdWNlKChwcmUsIGN1cnIpID0+IHByZSArIGN1cnIsIDApLnRvU3RyaW5nKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXRzLnB1c2gobmV3IEdyb3VwQWdncmVnYXRpb24oYWdnLmNvbHVtbiwgYWdnLmFnZ3JlZ2F0aW9uLCBhZ2dyZWdhdGlvblZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmV0cztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogT3R0aWVuZSB1biBlbGVtZW50byBkaSBzZXBhcmF6aW9uZSBmcmEgR3J1cHBpIGNoZSBzZXJ2ZSBwZXIgcGFnaW5hcmUgbGUgcmljZXJjaGUgYWxsJ2ludGVybm8gZGkgb2duaSBzaW5nb2xvIGdydXBwb1xyXG4gICAgKlxyXG4gICAgKiBAcGFyYW0ge0FwcFNlYXJjaDxhbnk+fSB2aWV3IFZpZXcgdXRpbGl6emF0YSBwZXIgbGEgcmljZXJjYS4gTWUgbmUgc2Fsdm8gaSBwYXJhbWV0cmkgbmVsIHNlcGFyYXRvcmUgYXR0dWFsZSBkYXRvIGNoZSBuZSBobyBiaXNvZ25vIHBlciBjYXJpY2FyZSBhbHRyaSBlbGVtZW50aVxyXG4gICAgKiBmYWNlbnRpIHJpZmVyaW1lbnRvIGFsbG8gc3Rlc3NvIGNvbnRlc3RvXHJcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJlbnQgUGFyZW50IHBhdGggY2hlIHJhcHByZXNlbnRhIGEgcXVhbGUgZ3J1cHBvIMOoIGFmZmliYmlhdG8gcXVlc3RvIHNlcGFyYXRvcmVcclxuICAgICogQHBhcmFtIHtHcm91cFJvdXRlRnJhZ21lbnRbXX0gcm91dGUgUm91dGUgcGF0aCBjaGUgcmFwcHJlc2VudGEgYSBxdWFsZSBncnVwcG8gw6ggYWZmaWJiaWF0byBxdWVzdG8gc2VwYXJhdG9yZVxyXG4gICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwgTGl2ZWxsbyBkZWwgZ3J1cHBvIGRpIGN1aSBxdWVzdG8gZWxlbWVudG8gw6ggc2VwYXJhdG9yZSwgdmllbmUgdXNhdG8gcGVyIGFwcGxpY2FyZSBsYSBjbGFzc2UgXCJlc3QtbHZsLXt7bGV2ZWx9fVwiXHJcbiAgICAqXHJcbiAgICAqIEByZXR1cm5zIHthbnl9IEVsZW1lbnRvIGRpIHNlcGFyYXppb25lIGNvbnRlbmVudGUgdHV0dGkgaSBiaW5kIHBlciBwcmVzZW50YXJlIHVuYSBwYWdpbmF6aW9uZSBzb3R0byBxdWVzdG8gZ3J1cHBvIGxhdG8gaW50ZXJmYWNjaWFcclxuICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBTZXBhcmF0b3IodmlldzogQXBwU2VhcmNoPGFueT4sIHBhcmVudDogc3RyaW5nLCByb3V0ZTogR3JvdXBSb3V0ZUZyYWdtZW50W10sIGxldmVsOiBudW1iZXIsIHNlYXJjaGVzOiAnZ3JvdXBzJyB8ICdpdGVtcycpOiBHcm91cFBhZ2VyIHtcclxuICAgICAgICBsZXQgaXRlbSA9IG5ldyBHcm91cFBhZ2VyKGxldmVsLCByb3V0ZSwgcGFyZW50LCBPYmplY3QuYXNzaWduKHt9LCB2aWV3KSwgc2VhcmNoZXMpO1xyXG4gICAgICAgIGl0ZW0uYnV0dG9ucyA9IHRoaXMudXRpbGl0aWVzLmdldFBhZ2VzQXJyYXkoNiwgdmlldy5wYWdlLCB2aWV3LnBhZ2VzKTtcclxuICAgICAgICB0aGlzLnV0aWxpdGllcy5jYWxjdWxhdGVIYXNoKFtpdGVtXSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSB1bmEgY29sb25uYSBlZmZldHR1YSBsYSByaWVtaXNzaW9uZSBkaSB0dXR0ZSBsZSByaWNlcmNoZSByZWxhdGl2ZS5cclxuICAgICAqXHJcbiAgICAgKiBFcy4gSG8gMiBjYW1waSBkaSBncnVwcG8gZSBobyBlc3BhbnNvIGZpbm8gYSB2ZWRlcmUgaSB2YWxvcmkgZmlubyBhZCB1biBsaXZlbGxvIHF1YWxzaWFzaS5cclxuICAgICAqIENsaWNjbyBsJ29yZGluYW1lbnRvIHN1bCBzZWNvbmRvIGdydXBwby5cclxuICAgICAqIFR1dHRlIGxlIHJpY2VyY2hlIHJlbGF0aXZlIGFpIHByaW1pIGdydXBwaSBkZXZvbm8gZXNzZXJlIHJpZXNlZ3VpdGUuIFF1YW5kbyBpIHJpc3VsdGF0aSBhcnJpdmVyYW5ubyBjaSBwZW5zZXLDoCBpbCBtZXRvZG8gKipiaW5kRGlzcGxheVRvTG9hZGVkSXRlbXNPckdyb3VwcyoqXHJcbiAgICAgKiBhIHRhZ2xpYXJlIHZpYSBnbGkgb2dnZXR0aSBub24gcGnDuSB2aXN1YWxpenphdGlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29sdW1uIENvbG9ubmEgc3UgY3VpIHNpIMOoIGVmZmV0dHVhdGEgdW4nb3BlcmF6aW9uZSBkaSBvcmRpbmFtZW50b1xyXG4gICAgICogQHBhcmFtIHtBcHBPcmRlcmluZ1tdfSBvcmRlcmluZ3MgRGlyZXR0aXZlIGRpIG9yZGluYW1lbnRvIGRhIGFwcGxpY2FyZSBhbGxlIHZhcmllIHNvdHRvcmljZXJjaGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVtaXRSb3dHcm91cGluZ1NlYXJjaGVzKGNvbHVtbjogc3RyaW5nLCBvcmRlcmluZ3M6IEFwcE9yZGVyaW5nW10pIHtcclxuICAgICAgICAvLyBQZXIgdHV0dGUgbGUgcmljZXJjaGUgaW50ZXJtZWRpZSBjaGUgZGV2byByaXZhbHV0YXJlIGxlIHJlLWVtaXR0byBpbiBtb2RvIGRhIGFnZ2lvcm5hcmdsaSBpIGRhdGlcclxuICAgICAgICB2YXIgbWVhbmluZ2Z1bEFwcFNlYXJjaGVzID0gdGhpcy5lc3QuZ3JvdXBTZWFyY2hSZXF1ZXN0c0NhY2hlLmZpbHRlcih0ID0+IHQuZ3JvdXBfY29sdW1uID09IGNvbHVtbikubWFwKHQgPT4gdC52aWV3KTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIG5lIHRyb3ZvIHNpZ25pZmljYSBjaGUgaG8gZmF0dG8gbCdvcmRpbmFtZW50byBvIHN1Z2xpIGl0ZW0sIG8gc3UgY29sb25uZSByZWxhdGl2ZSBhIHVuIHNvdHRvZ3J1cHBvIG5vbiBjYXJpY2F0b1xyXG4gICAgICAgIGlmICghbWVhbmluZ2Z1bEFwcFNlYXJjaGVzIHx8IG1lYW5pbmdmdWxBcHBTZWFyY2hlcy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgbWVhbmluZ2Z1bEFwcFNlYXJjaGVzID0gdGhpcy5lc3QuZ3JvdXBTZWFyY2hSZXF1ZXN0c0NhY2hlLmZpbHRlcih0ID0+ICF0Lmdyb3VwX2NvbHVtbikubWFwKHQgPT4gdC52aWV3KTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIG5lIHRyb3ZvIHF1aSBzaWduaWZpY2EgY2hlIHN0byBvcmRpbmFuZG8gc3UgY29sb25uZSByZWxhdGl2ZSBhIHVuIHNvdHRvZ3J1cHBvIG5vbiBjYXJpY2F0b1xyXG4gICAgICAgIGlmICghbWVhbmluZ2Z1bEFwcFNlYXJjaGVzIHx8IG1lYW5pbmdmdWxBcHBTZWFyY2hlcy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBtZWFuaW5nZnVsQXBwU2VhcmNoZXMuZm9yRWFjaChhcyA9PiB7XHJcbiAgICAgICAgICAgIC8vIE92dmlhbWVudGUgZ2xpIG9yaWRuYW1lbnRpIGRldm9ubyBlc3NlcmUgcXVlbGxpIGFwcGVuYSBnZW5lcmF0aVxyXG4gICAgICAgICAgICBhcy5vcmRlcnMgPSBvcmRlcmluZ3M7XHJcbiAgICAgICAgICAgIGFzLnNhdmVkc3RhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5lbWl0U2VhcmNoUmVxdWVzdChmYWxzZSwgYXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSBjYWxjb2xhIGlsIGNvbnRlbnV0byBkaSB1bmEgY2VsbGEgcmVsYXRpdmEgYSB1biBncnVwcG8gcmlnYSwgdGVuZW5kbyBjb250byBkZWwgZm9ybWF0byBkZWxsZSBldmVudHVhbGkgYWdncmVnYXppb25pXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtHcm91cH0gZ3JwIEdydXBwbyBkaSBjdWkgbW9zdHJhcmUgbGUgY2VsbGVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjZWxsIENlbGxhIGF0dHVhbGUgZGkgY3VpIGNhbGNvbGFyZSBpbCB0ZXN0b1xyXG4gICAgICogQHBhcmFtIHtFc1RoRGlyZWN0aXZlfSBoZWFkZXIgSGVhZGVyIHJlbGF0aXZvIGFsbGEgY2VsbGEgYXR0dWFsZSwgdXRpbGl6emF0YSBwZXIgaWRlbnRpZmljYXJlIGxlIGluZm9ybWF6aW9uaSBkaSBhZ2dyZWdhemlvbmVcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUZXN0byBmaW5hbGUgY2FsY29sYXRvIHBlciBsYSAqKmNlbGwqKiBjb3JyZW50ZSwgaW4gYmFzZSBhbGxlIGFnZ3JlZ2F6aW9uaSBkaSAqKmhlYWRlcioqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRHcm91cENlbGxEaXNwbGF5KGdycDogR3JvdXAsIGNlbGw6IHN0cmluZywgaGVhZGVyOiBFc1RoRGlyZWN0aXZlKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoKDxhbnk+Z3JwKS5fc2VwKVxyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICBsZXQgZGlzcGxheSA9IGhlYWRlci50aEFnZ3JlZ2F0aW9uO1xyXG4gICAgICAgIGlmIChncnAuY29sdW1uID09IGNlbGwpIHtcclxuICAgICAgICAgICAgbGV0IGdyb3Vwc1BhcnQgPSAoPGFueT5ncnApLl9ncm91cHNjb3VudCA/IFwiIC0gXCIgKyAoPGFueT5ncnApLl9ncm91cHNjb3VudCArIFwiIFwiICsgdGhpcy5lc3QubGMubG9jKFwiR3JvdXBzXCIpIDogXCJcIjtcclxuICAgICAgICAgICAgcmV0dXJuIGdycC52YWx1ZSArIFwiIChcIiArIGdycC5jb3VudCArIGdyb3Vwc1BhcnQgKyBcIilcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcblxyXG4gICAgICAgICAgICBsZXQgYWdnID0gKDxNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+Pj4oPGFueT5ncnApLl9hZ2dyZWdhdGlvbnNDYWNoZSkuZ2V0KGNlbGwpO1xyXG4gICAgICAgICAgICBpZiAoIWFnZylcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5nZXRFc1RoRGlyZWN0aXZlTGlzdE9mQWdncmVnYXRpb25zKGhlYWRlcikuZm9yRWFjaCgoaXRtOiBUaEFnZ3JlZ2F0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5ID0gZGlzcGxheS5yZXBsYWNlKGl0bS5tYXRjaCwgdGhpcy5mb3JtYXRBZ2dyZWdhdGlvblZhbHVlKGFnZy5nZXQoaXRtLmZ1bmMpLCBpdG0uZm9ybWF0KSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIGRhdG8gdW4gdmFsb3JlIGxvIGZvcm1hdHRhIGluIGJhc2UgYWwgdGlwb1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgVmFsb3JlIGNoZSBnZW5lcmFsZW1udGUgcHXDsiBlc3NlcmUgdW5hIGRhdGEgbyB1biBudW1lcm9cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmcm9tYXQgRm9ybWF0byBzdSBjdWkgZm9ybWF0dGFyZSBpbCB2YWxvcmUuIFB1w7IgZXNzZXJlIGFkIGVzZW1waW8gXCJzbWFsbFwiLCBcImxvbmdcIiBcInZlcnlsb25nXCIgcGVyIGxlIGRhdGUgbyBGezAtOX0gcGVyIGkgbnVtZXJpIGRlY2ltYWxpXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFZhbG9yZSBkZWxsJ2FnZ3JlZ2F6aW9uZSBmb3JtYXR0YXRvIGNvbWUgc2kgZGV2ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGZvcm1hdEFnZ3JlZ2F0aW9uVmFsdWUodmFsdWU6IHN0cmluZywgZm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWZvcm1hdClcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgaXNOdW1iZXIgPSAhTnVtYmVyLmlzTmFOKHZhbHVlKSAmJiAoIWZvcm1hdCB8fCBmb3JtYXQuc3RhcnRzV2l0aChcIkZcIikpO1xyXG5cclxuICAgICAgICBpZiAoaXNOdW1iZXIgJiYgZm9ybWF0LnN0YXJ0c1dpdGgoXCJGXCIpICYmICFOdW1iZXIuaXNOYU4oZm9ybWF0LnN1YnN0cigxKSkpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKS50b0ZpeGVkKHBhcnNlSW50KGZvcm1hdC5zdWJzdHIoMSkpKTtcclxuXHJcbiAgICAgICAgbGV0IGRhdGUgPSBudWxsO1xyXG4gICAgICAgIC8vIEFsY3VuZSB2ZXJzaW9uZSBkaSBleHRlbnNpb25zIHJpc2NoaWFubyBkaSBjcmFzaGFyZSBjb24gY29zZSBub24gZGF0ZS4uLiDDqCBzdGF0byByaXNvbHRvIGRvcG8gcXVpbmRpIHF1ZXN0byB0cnkgLSBjYXRjaCBpbiByZWFsdMOgXHJcbiAgICAgICAgLy8gdG9ybmEgdXRpbGUgc29sbyBjb24gdmVyc2lvbmkgdmVjY2hpZS9kZXByZWNhdGUgZGVsbGEgbGlicmVyaWEgQGVzZmFlbnphL2V4dGVuc2lvbnNcclxuICAgICAgICB0cnkgeyBkYXRlID0gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2YWx1ZSk7IH0gY2F0Y2ggeyB9XHJcblxyXG4gICAgICAgIGlmIChkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlRXh0cy5nZXRGb3JtYXR0ZWQoZGF0ZSwgZm9ybWF0ID09ICdzbWFsbCcsIGZvcm1hdCA9PSAndmVyeWxvbmcnKTtcclxuXHJcbiAgICAgICAgLy8gUXVpIGNpIGZpbmlzY28gc2lhIHBlciBpbnB1dCBjaGUgbm9uIHNvbm8gbsOpIGRhdGUgbsOpIG51bWVyaSwgc2lhIHBlciBmb3JtYXRpIG5vbiByaWNvbm9zY2l1dGlcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn0iXX0=
472
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm93R3JvdXBpbmdIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvUm93R3JvdXBpbmdIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLFVBQVU7QUFDVixPQUFPLEVBQTBCLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFLckosaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxrQkFBa0I7SUFTM0IsMEJBQTBCO0lBQzFCLFlBQW9CLEdBQXFCLEVBQVUsU0FBMkIsRUFBVSxRQUFxQjtRQUF6RixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQVI3RyxxRkFBcUY7UUFDOUUsaUJBQVksR0FBdUIsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDbkUsNkdBQTZHO1FBQ3RHLGdCQUFXLEdBQXVCLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2xFLDZHQUE2RztRQUN0Ryx1QkFBa0IsR0FBeUIsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFHb0MsQ0FBQztJQUVsSDs7Ozs7Ozs7O09BU0c7SUFDSSwwQkFBMEIsQ0FBQyxJQUFvQixFQUFFLFlBQW9CO1FBQ3hFLHdJQUF3STtRQUN4SSw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1lBQzdDLElBQUksQ0FB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QUFNLElBQUksVUFBVSxDQUFDLENBQUM7UUFFckYsZ0dBQWdHO1FBQ2hHLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIExpYnJlcmllXHJcbmltcG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBEaXJldHRpdmUgLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGggfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRXNUaERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi8uLi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwT3JkZXJpbmcsIEFwcFNlYXJjaCwgR3JvdXAsIEdyb3VwQWdncmVnYXRpb24sIEdyb3VwT3JBZ2dyZWdhdGlvbiwgR3JvdXBQYWdlciwgR3JvdXBSb3V0ZUZyYWdtZW50LCBUaEFnZ3JlZ2F0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2RvbWFpblwiO1xyXG5cclxuLy8gVXRpbGl0aWVzXHJcbmltcG9ydCB7IFV0aWxpdGllc0hhbmRsZXIgfSBmcm9tIFwiLi9VdGlsaXRpZXNIYW5kbGVyXCI7XHJcblxyXG4vKiogQ2xhc3NlIGNoZSBnZXN0aXNjZSBsYSBtb2RhbGl0w6AgUm93IEdyb3VwaW5nIGRlbGwnZXMtdGFibGUgKi9cclxuZXhwb3J0IGNsYXNzIFJvd0dyb3VwaW5nSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIENhY2hlIHBlciBzYWx2YXJlIHBlciBvZ25pIGNoaWF2ZSBkaSBvZ25pIGdydXBwbyBjaGkgw6ggaWwgZ3J1cHBvIHJhcHByZXNlbnRhdG8gKi9cclxuICAgIHB1YmxpYyByZ0dyb3VwQ2FjaGU6IE1hcDxzdHJpbmcsIEdyb3VwPiA9IG5ldyBNYXA8c3RyaW5nLCBHcm91cD4oKTtcclxuICAgIC8qKiBDYWNoZSBwZXIgc2FsdmFyZSBwZXIgb2duaSBjaGlhdmUgZGkgb2duaSBncnVwcG8gY2hpIHNvbm8gZ2xpIG9nZ2V0dGkgc290dG9zdGFudGksIG5vbiBkZWkgc290dG9ncnVwcGkgKi9cclxuICAgIHB1YmxpYyByZ0l0ZW1DYWNoZTogTWFwPHN0cmluZywgYW55W10+ID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xyXG4gICAgLyoqIENhY2hlIHBlciBzYWx2YXJlIHBlciBvZ25pIGNoaWF2ZSBkaSBvZ25pIGdydXBwbyBjaGkgc29ubyBnbGkgb2dnZXR0aSBzb3R0b3N0YW50aSwgbm9uIGRlaSBzb3R0b2dydXBwaSAqL1xyXG4gICAgcHVibGljIHJnQ2hpbGRHcm91cHNDYWNoZTogTWFwPHN0cmluZywgR3JvdXBbXT4gPSBuZXcgTWFwPHN0cmluZywgR3JvdXBbXT4oKTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgdXRpbGl0aWVzOiBVdGlsaXRpZXNIYW5kbGVyLCBwcml2YXRlIGRhdGVFeHRzOiBEYXRlU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBtb2RhbGl0w6Agcm93Z3JvdXBpbmcgcXVhbmRvIG1pIGFycml2YSB1biBudW92byBibG9jY28gZGkgb2dnZXR0aSBkZXZvIGFnZ2l1bmdlcmxvIGFsbGEgdmlzdGEgYXR0dWFsZTpcclxuICAgICAqXHJcbiAgICAgKiAxKSBTZSBub24gdmllbmUgcmljaGllc3RvIGlsIGRldHRhZ2xpbyBkaSBhbGN1biBncnVwcG8gc2lnbmlmaWNhIGNoZSBkZXZvIGNvbnNpZGVyYXJlIG1pIHNpYW5vIGFycml2YXRpIHR1dHRpIGkgZ3J1cHBpIHByaW5jaXBhbGlcclxuICAgICAqIDIpIFNlIHZpZW5lIHJpY2hpZXN0byBpbCBkZXR0YWdsaW8gZGkgdW4gZ3J1cHBvIGRpdmVyc28gZGFsbCd1bHRpbW8gZGV2byBhZ2dpdW5nZXJlIGRvcG8gYWwgZ3J1cHBvIGNsaWNjYXRvIGxhIGxpc3RhIGRlaSBzb3R0b2dydXBwaVxyXG4gICAgICogMikgU2UgdmllbmUgcmljaGllc3RvIGlsIGRldHRhZ2xpbyBkZWxsJ3VsdGltbyBncnVwcG8gZGV2byBhZ2dpdW5nZXJlIGRvcG8gYWwgZ3J1cHBvIGNsaWNjYXRvIGxhIGxpc3RhIGRlZ2xpIG9nZ2V0dGlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdmlldyBBcHBTZWFyY2g8VD4gZGEgY3VpIHNvbm8gYXJyaXZhdGkgZ2xpIG9nZ2V0dGlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBncm91cGluZ0tleXMgTGl2ZWxsaSBkaSByYWdncnVwcGFtZW50byBkYSBhc3BldHRhcnNpIHN1aSBkYXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVOZXdEYXRhT25Sb3dHcm91cGluZyh2aWV3OiBBcHBTZWFyY2g8YW55PiwgZ3JvdXBpbmdLZXlzOiBudW1iZXIpIHtcclxuICAgICAgICAvLyAxKSBTZSBub24gdmllbmUgcmljaGllc3RvIGlsIGRldHRhZ2xpbyBkaSBhbGN1biBncnVwcG8gc2lnbmlmaWNhIGNoZSBsYSBjaGlhbWF0YSByZXN0aXR1aXNjZSBsYSBsaXN0YSBwYWdpbmF0YSBkZWkgZ3J1cHBpIHByaW5jaXBhbGkuXHJcbiAgICAgICAgLy8gICAgTGkgdHJhdHRvIGNvbWUgc2UgZm9zc2UgdW5hIHF1YWxzaWFzaSBhbHRyYSBxdWVyeSBwYWdpbmF0YSBzdSBOIGVsZW1lbnRpXHJcbiAgICAgICAgaWYgKCh2aWV3LnJlcXVlc3RlZGdyb3Vwcz8ubGVuZ3RoIHx8IDApID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZTtcclxuICAgICAgICAgICAgdGhpcy5yZ0dyb3VwQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgR3JvdXA+KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmdJdGVtQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55W10+KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEdyb3VwW10+KCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZS5mb3JFYWNoKGl0bSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpdG0uX3RoaXNSb3V0ZSA9IGl0bS5fZ3JvdXAgPyBbeyBjb2x1bW46ICg8R3JvdXA+aXRtKS5jb2x1bW4sIHZhbHVlOiAoPEdyb3VwPml0bSkudmFsdWUgfV0gOiBbXTtcclxuICAgICAgICAgICAgICAgIGl0bS5fdGhpc0tleSA9IGl0bS5fZ3JvdXAgPyAoPEdyb3VwPml0bSkudmFsdWUgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgaXRtLl9ncm91cGxldmVsID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJnR3JvdXBDYWNoZS5zZXQoaXRtLl90aGlzS2V5LCBpdG0pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc2V0dG8gbGEgcmljZXJjYSBhbGxhIGNhY2hlIGRpIHF1ZXN0YSBcInNlc3Npb25lXCJcclxuICAgICAgICAgICAgbGV0IGZpcnN0SXRlbSA9IHRoaXMuZXN0LlRNUEJvdW5kU291cmNlWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5NYWluR3JvdXBWaWV3ID0gT2JqZWN0LmFzc2lnbih7fSwgdmlldyk7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZSA9IFt7IHBhdGg6ICcnLCByb3V0ZTogW3sgY29sdW1uOiAoPEdyb3VwPmZpcnN0SXRlbSkuY29sdW1uLCB2YWx1ZTogKDxHcm91cD5maXJzdEl0ZW0pLnZhbHVlIH1dLCB2aWV3OiB0aGlzLmVzdC5NYWluR3JvdXBWaWV3LCBncm91cF9jb2x1bW46ICg8R3JvdXA+dGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF0pLmNvbHVtbiB9XTtcclxuICAgICAgICAgICAgdGhpcy5lc3QuQmFzZUl0ZW1zQ291bnQgPSB2aWV3Lm9iamVjdGNvdW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gMikgU2UgdmllbmUgcmljaGllc3RvIGlsIGRldHRhZ2xpbyBkaSB1biBxdWFsc2lhc2kgZ3J1cHBvIGRpdmVyc28gZGFsbCd1bHRpbW8gdnVvbCBkaXJlIGNoZSBkZXZvIGFnZ2l1bmdlcmUgXHJcbiAgICAgICAgICAgIC8vICAgIGRvcG8gYWwgZ3J1cHBvIGNoZSBobyBjbGljY2F0byBsYSBsaXN0YSBkZWkgZ3J1cHBpIHRpcmF0YSBmdW9yaSBxdWVzdGEgdm9sdGEgKGludGVybWVkaWF0ZUdyb3VwID0gdHJ1ZSlcclxuICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgKiAgIEdydXBwb0EgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvQVxyXG4gICAgICAgICAgICAqICAgR3J1cHBvQiAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9CXHJcbiAgICAgICAgICAgICogICBHcnVwcG9DIDwtIENsaWNjbyBxdWkgICAgICAgIEdydXBwb0NcclxuICAgICAgICAgICAgKiAgIEdydXBwb0QgICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0MxXHJcbiAgICAgICAgICAgICogICBHcnVwcG9FICAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9DMlxyXG4gICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcnVwcG9EXHJcbiAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0VcclxuICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgLy8gMykgc2UgaSBncnVwcGkgcmljaGllc3RpIGRhbGxhIHZpZXcgc29ubyB1Z3VhbGkgYWkgZ3J1cHBpIHByZXNlbnRpIHZ1b2wgZGlyZSBjaGUgc3RvIHByZW5kZW5kbyBnbGkgb2dnZXR0aSB2ZXJpIGUgcHJvcHJpLCBzb25vIGluIFxyXG4gICAgICAgICAgICAvLyB2aWV3Lml0ZW1zIGUgcXVpbmRpIGluIFRNUEJvdW5kU291cmNlLCBobyBpbm9sdHJlIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSAqKnBlciBpbCBzaW5nb2xvIHNvdHRvZ3J1cHBvKiogKGludGVybWVkaWF0ZUdyb3VwID0gZmFsc2UpXHJcbiAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICogICBHcnVwcG9BICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0FcclxuICAgICAgICAgICAgKiAgICAgICBHcnVwcG9DMSAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0MxXHJcbiAgICAgICAgICAgICogICBHcnVwcG9CICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0JcclxuICAgICAgICAgICAgKiAgIEdydXBwb0MgICAgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvQ1xyXG4gICAgICAgICAgICAqICAgICAgIEdydXBwb0MxIDwtLSBDbGljY28gcXVpICAgICAgICAgR3J1cHBvQzFcclxuICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZ2dldHRvMVxyXG4gICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9nZ2V0dG8yXHJcbiAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2dnZXR0bzNcclxuICAgICAgICAgICAgKiAgICAgICBHcnVwcG9DMiAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0MyXHJcbiAgICAgICAgICAgICogICBHcnVwcG9EICAgICAgICAgICAgICAgICAgICAgICAgIEdydXBwb0RcclxuICAgICAgICAgICAgKiAgIEdydXBwb0UgICAgICAgICAgICAgICAgICAgICAgICAgR3J1cHBvRVxyXG4gICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsZXQgaW50ZXJtZWRpYXRlR3JvdXAgPSB2aWV3LnJlcXVlc3RlZGdyb3Vwcy5sZW5ndGggIT0gZ3JvdXBpbmdLZXlzO1xyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5lc3QuYm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgIGxldCBpbnNlcnRJbmRleCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBpbnNlcnRHcm91cCA9IG51bGw7XHJcbiAgICAgICAgICAgIGxldCBncm91cEtleTogc3RyaW5nID0gXCJcIjtcclxuICAgICAgICAgICAgbGV0IGdyb3VwUm91dGU6IEdyb3VwUm91dGVGcmFnbWVudFtdID0gW107XHJcblxyXG4gICAgICAgICAgICAvLyBOYXZpZ28gbGEgc3R1dHR1cmEgZGVpIGdydXBwaSBpZ25vcmFuZG8gcmljb3JzaXZhbWVudGUgdHV0dGkgZ2xpIGluZGljaSBmaW5vIGFpIGdydXBwaSBjaGUgbWkgaW50ZXJlc3Nhbm8gaW4gbW9kbyBkYSBub24gYmVjY2FyZSBpbCBwcmltbyBcIkdydXBwb0MxXCIgZGVsIGNhc28gc29wcmFcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aWV3LnJlcXVlc3RlZGdyb3Vwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJnID0gdmlldy5yZXF1ZXN0ZWRncm91cHNbaV07XHJcbiAgICAgICAgICAgICAgICBncm91cEtleSArPSByZy52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGdyb3VwUm91dGUucHVzaCh7IGNvbHVtbjogcmcuY29sdW1uLCB2YWx1ZTogcmcudmFsdWUgfSk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gaW5zZXJ0SW5kZXg7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gaW5zZXJ0SW5kZXggJiYgdC5fZ3JvdXAgJiYgdC5jb2x1bW4gPT0gcmcuY29sdW1uICYmIHQudmFsdWUgPT0gcmcudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0SW5kZXggPSBpOyBpbnNlcnRHcm91cCA9IHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvIG1hcmNvIGV4cGFuZGVkIGRhdG8gY2hlIHF1ZXN0byBjbGljayBzdWwgZ3J1cHBvIHBvdHJlYmJlIG5vbiBlc3NlcmUgc3RhdG8gZmF0dG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0R3JvdXAuX2V4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgaXRlbXNDYWNoZVJlZmVyZW5jZTtcclxuICAgICAgICAgICAgbGV0IGNoaWxkR3JvdXBzQ2FjaGVSZWZlcmVuY2U7XHJcblxyXG4gICAgICAgICAgICAvLyBTZSBub24gw6ggdW4gZ3J1cHBvIGludGVybWVkaW8gZGV2byByaXB1bGlyZSBsYSBjYWNoZSBkZWwgZ3J1cHBvIHN1IGN1aSBobyBhdHR1YWxtZW50ZSBjbGljY2F0by4gR2xpIG9nZ2V0dGkgc2FyYW5ubyByaWFnZ2l1bnRpIGRvcG9cclxuICAgICAgICAgICAgaWYgKCFpbnRlcm1lZGlhdGVHcm91cCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZ0l0ZW1DYWNoZS5zZXQoZ3JvdXBLZXksIFtdKTtcclxuICAgICAgICAgICAgICAgIGl0ZW1zQ2FjaGVSZWZlcmVuY2UgPSB0aGlzLnJnSXRlbUNhY2hlLmdldChncm91cEtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTZSBpbnZlY2Ugw6ggdW4gZ3J1cHBvIGludGVybWVkaW8gZGV2byByaXB1bGlyZSBzaWEgdHV0dGkgaSBjaGlsZCBncm91cCByaWNvcnNpdmFtZW50ZSwgc2lhIHR1dHRpIGdsaSBpdGVtXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgdGhpcy5yZ0NoaWxkR3JvdXBzQ2FjaGUua2V5cygpKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChncm91cEtleSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlLmRlbGV0ZShrZXkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBvZiB0aGlzLnJnSXRlbUNhY2hlLmtleXMoKSlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoZ3JvdXBLZXkpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJnSXRlbUNhY2hlLmRlbGV0ZShrZXkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlLnNldChncm91cEtleSwgW10pO1xyXG4gICAgICAgICAgICAgICAgY2hpbGRHcm91cHNDYWNoZVJlZmVyZW5jZSA9IHRoaXMucmdDaGlsZEdyb3Vwc0NhY2hlLmdldChncm91cEtleSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEFzc2Vnbm8gdW4gbGl2ZWxsbyBhaSB2YWxvcmkgY2hlIGFycml2YW5vIGRhIHVzYXJlIHBlciBmb3JtYXR0YXJlIGxhIHBhcnRlIGdyYWZpY2EuIElsIHByaW1vIGdydXBwbyBjbGljY2F0byBzYXLDoCBhIGxpdmVsbG8gMSxcclxuICAgICAgICAgICAgLy8gaWwgc2Vjb25kbyBzYXLDoCBhIGxpdmVsbG8gMiBlIGNvc8OsIHZpYS4uLlxyXG4gICAgICAgICAgICAvLyBMaSBtYXJjbyBpbm9sdHJlIGNvbiBpbCBwYXJlbnQgaW4gbW9kbyBkYSBwb3RlciBlbGltaW5hcmUgaSB2ZWNjaGkgcXVhbG9yYSBzZXJ2aXNzZVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5UTVBCb3VuZFNvdXJjZS5mb3JFYWNoKGl0bSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpdG0uX3BhcmVudCA9IGdyb3VwS2V5O1xyXG4gICAgICAgICAgICAgICAgaXRtLl9wYXJlbnRSb3V0ZSA9IGdyb3VwUm91dGU7XHJcbiAgICAgICAgICAgICAgICBpdG0uX3RoaXNSb3V0ZSA9IGl0bS5fZ3JvdXAgPyBbLi4uZ3JvdXBSb3V0ZSwgbmV3IEdyb3VwUm91dGVGcmFnbWVudCgoPEdyb3VwPml0bSkuY29sdW1uLCAoPEdyb3VwPml0bSkudmFsdWUpXSA6IFtdO1xyXG4gICAgICAgICAgICAgICAgaXRtLl90aGlzS2V5ID0gaXRtLl9ncm91cCA/IGdyb3VwS2V5ICsgKDxHcm91cD5pdG0pLnZhbHVlIDogZ3JvdXBLZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUGVyIGxlIHJpY2VyY2EgaW50ZXJtZWRpZSBtZXR0byBpIGdydXBwaSBuZWxsYSBjYWNoZSBkZWkgZ3J1cHBpXHJcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJtZWRpYXRlR3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICBpdG0uX2dyb3VwbGV2ZWwgPSB2aWV3LnJlcXVlc3RlZGdyb3Vwcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZ0dyb3VwQ2FjaGUuc2V0KGl0bS5fdGhpc0tleSwgaXRtKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZEdyb3Vwc0NhY2hlUmVmZXJlbmNlLnB1c2goaXRtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE1ldHRvIGFuY2hlIGdsaSBvZ2dldHRpIG5lbGxhIGNhY2hlIG5vbiByaWNvcnNpdmFcclxuICAgICAgICAgICAgICAgICAgICBpdGVtc0NhY2hlUmVmZXJlbmNlLnB1c2goaXRtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBFbGltaW5vIGdsaSBvZ2dldHRpIHZlY2NoaSBcclxuICAgICAgICAgICAgLy8gMSkgUmljZXJjYSBpbnRlcm1lZGlhLCBzdGF0byBzYWx2YXRvIC0gRWxpbWlubyB0dXR0aSBnbGkgaXRlbSBlIHR1dHRpIGkgZ3J1cHBpIGxhIGN1aSByb3V0ZSDDqCBwacO5IGx1bmdhIGRlbGxhIGNvcnJlbnRlLCB0dXR0aSBnbGkgaXRlbSByZWxhdGl2aSBhbGxhIHBhdGggY29ycmVudGUsIGUgdHV0dGVcclxuICAgICAgICAgICAgLy8gICAgbGUgY2FjaGUgZGkgcmljZXJjYSBlZmZldHR1YXRlIHN1IHVuYSBwYXRoIHBpw7kgcHJvZm9uZGEgZGVsbCdhdHR1YWxlXHJcbiAgICAgICAgICAgIC8vIDIpIFJpY2VyY2EgZmluYWxlIG8gcmljZXJjYSBpbnRlcm1lZGlhIHNlbnphIHN0YXRvIHNhbHZhdG8gLSBFbGltaW5vIHR1dHRpIGdsaSBpdGVtIHJlbGF0aXZpIGFsbGEgcGF0aCBjb3JyZW50ZVxyXG4gICAgICAgICAgICAvLyBQZXIgXCJzdGF0byBzYWx2YXRvXCIgc2kgaW50ZW5kb25vIHJpY2VyY2hlIHZlY2NoaWUgc2FsdmF0ZSBwZXIgcG90ZXIgZXNzZXJlIHJpZWZmZXR0dWF0ZSBpbiBjYXNvIGRpIG9yZGluYW1lbnRpIHN1IGNvbG9ubmUgZGkgaW50ZXJlc3NlIFxyXG4gICAgICAgICAgICBpZiAoaW50ZXJtZWRpYXRlR3JvdXAgJiYgdmlldy5zYXZlZHN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVzdC5ib3VuZFNvdXJjZSA9IHRoaXMuZXN0LmJvdW5kU291cmNlLmZpbHRlcih0ID0+ICEodC5faXRlbSB8fCB0Ll90aGlzUm91dGUubGVuZ3RoID4gZ3JvdXBSb3V0ZS5sZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZSA9IHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5maWx0ZXIodCA9PiAhKHQucm91dGUubGVuZ3RoID4gZ3JvdXBSb3V0ZS5sZW5ndGgpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZS5maWx0ZXIodCA9PiAhKHQuX3BhcmVudCA9PSBncm91cEtleSkpO1xyXG5cclxuICAgICAgICAgICAgbGV0IHRoaXNHcm91cCA9IHRoaXMuZXN0LmJvdW5kU291cmNlW2luc2VydEluZGV4XTtcclxuICAgICAgICAgICAgaWYgKGludGVybWVkaWF0ZUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgdGhpc0dyb3VwLl9ncm91cHNjb3VudCA9ICg8QXBwU2VhcmNoPGFueT4+dGhpcy5lc3QuVmlldyk/Lmdyb3VwY291bnQ7XHJcblxyXG4gICAgICAgICAgICAvLyBMaSBzb3N0aXR1aXNjbyBjb2kgbnVvdmkgZGkgcXVlc3RhIHJpY2VyY2FcclxuICAgICAgICAgICAgdGhpcy5lc3QuYm91bmRTb3VyY2Uuc3BsaWNlKGluc2VydEluZGV4ICsgMSwgMCwgLi4udGhpcy5lc3QuVE1QQm91bmRTb3VyY2UpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWdnaXVuZ28gdW4gc2VwYXJhdG9yZSBhbGxhIGZpbmUgbyBhbGwnaW5pemlvIGRpIHF1ZXN0aSBncnVwcGkgY2hlIGRvdnLDoCBvY2N1cGFyc2kgZGkgY2FyaWNhcmUgQUxUUkkgZ3J1cHBpIG8gb2dnZXR0aSAoc2Ugc29ubyBhbGwndWx0aW1vIGdydXBwbylcclxuICAgICAgICAgICAgbGV0IGFkZExhc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5lc3QuYm91bmRTb3VyY2Uuc3BsaWNlKGluc2VydEluZGV4ICsgMSArIChhZGRMYXN0ID8gdGhpcy5lc3QuVE1QQm91bmRTb3VyY2UubGVuZ3RoIDogMCksIDAsIHRoaXMuZ2V0R3JvdXBTZXBhcmF0b3IodmlldywgZ3JvdXBLZXksIGdyb3VwUm91dGUsIHZpZXcucmVxdWVzdGVkZ3JvdXBzLmxlbmd0aCwgaW50ZXJtZWRpYXRlR3JvdXAgPyAnZ3JvdXBzJyA6ICdpdGVtcycpKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFnZ2l1bmdvIGxhIHJpY2VyY2EgYWxsYSBjYWNoZSBkaSBxdWVzdGEgXCJzZXNzaW9uZVwiXHJcbiAgICAgICAgICAgIGxldCB0b0FkZCA9IHsgcGF0aDogZ3JvdXBLZXksIHJvdXRlOiBncm91cFJvdXRlLCB2aWV3OiBPYmplY3QuYXNzaWduKHt9LCB2aWV3KSwgZ3JvdXBfY29sdW1uOiBpbnRlcm1lZGlhdGVHcm91cCA/ICg8R3JvdXA+dGhpcy5lc3QuVE1QQm91bmRTb3VyY2VbMF0pLmNvbHVtbiA6ICcnIH07XHJcbiAgICAgICAgICAgIGxldCBwcmV2ID0gdGhpcy5lc3QuZ3JvdXBTZWFyY2hSZXF1ZXN0c0NhY2hlLmZpbmRJbmRleCh0ID0+IHQucGF0aCA9PSB0b0FkZC5wYXRoICYmIHQuZ3JvdXBfY29sdW1uID09IHRvQWRkLmdyb3VwX2NvbHVtbik7XHJcbiAgICAgICAgICAgIGlmIChwcmV2ID09IC0xKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuZ3JvdXBTZWFyY2hSZXF1ZXN0c0NhY2hlLnB1c2godG9BZGQpO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lc3QuZ3JvdXBTZWFyY2hSZXF1ZXN0c0NhY2hlLnNwbGljZShwcmV2LCAxLCB0b0FkZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2UgaW4gbW9kYWxpdMOgIGFycmF5IGFwcGxpY2EgaSByYWdncnVwcGFtZW50aSBkZWZpbml0aSBsYXRvIHJvdy1ncm91cGluZ1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7dGhzOiBFc1RoRGlyZWN0aXZlW119IHRocyBIZWFkZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFycmF5TW9kZVJldmlld0dyb3VwaW5ncyh0aHM6IEVzVGhEaXJlY3RpdmVbXSkge1xyXG4gICAgICAgIGlmICh0aHMubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgbGV0IGhlYWRlckdyb3VwczogR3JvdXBbXSA9IFtdO1xyXG4gICAgICAgIGxldCBoZWFkZXJBZ2dyZWdhdGlvbnM6IEdyb3VwT3JBZ2dyZWdhdGlvbltdID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCB0aCA9IHRoc1tpXSBhcyBFc1RoRGlyZWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoLnRoR3JvdXApXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJHcm91cHMucHVzaChuZXcgR3JvdXAodGgudGgsIDAsIFwiXCIpKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAodGgudGhBZ2dyZWdhdGlvbilcclxuICAgICAgICAgICAgICAgIGhlYWRlckFnZ3JlZ2F0aW9ucyA9IFsuLi5oZWFkZXJBZ2dyZWdhdGlvbnMsIC4uLnRoaXMuZ2V0R3JvdXBBZ2dyZWdhdGlvbnModGgpXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChoZWFkZXJHcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyBQdWxpemlhIGRlbGxlIGNhY2hlXHJcbiAgICAgICAgICAgIHRoaXMucmdHcm91cENhY2hlLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmdJdGVtQ2FjaGUuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5yZ0NoaWxkR3JvdXBzQ2FjaGUuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LkFycmF5R3JvdXBpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5ib3VuZFNvdXJjZSA9IHRoaXMuZ2V0R3JvdXBzUmVjdXJzaXZlKGhlYWRlckdyb3VwcywgMCwgdGhpcy5lc3QuYm91bmRTb3VyY2UsIGhlYWRlckFnZ3JlZ2F0aW9ucywgbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSB1bmEgZGlyZXR0aXZhIEVzVGggcmVzdGl0dWlzY2UgbGEgbGlzdGEgZGVsbGUgYWdncmVnYXppb25pIHJpY2hpZXN0YSBwZXIgcXVlc3RhIGNvbG9ubmEgbyBpbCBncnVwcG8gY2hlIHJhcHByZXNlbnRhXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFc1RoRGlyZWN0aXZlfSB0aCBEaXJldHRpdmFcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7R3JvdXBPckFnZ3JlZ2F0aW9uW119IExpc3RhIGRlaSBncnVwcGkgbyBhZ2dyZWdhemlvbmkgcmVsYXRpdmkgYWxsYSBEaXJldHRpdmEgcGFzc2F0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBBZ2dyZWdhdGlvbnModGg6IEVzVGhEaXJlY3RpdmUpOiBHcm91cE9yQWdncmVnYXRpb25bXSB7XHJcbiAgICAgICAgbGV0IHJldCA9IFtdO1xyXG4gICAgICAgIC8vIEVzOiAne21pbjpkZC9NTS95eXl5fSAtIHttYXg6ZGQvTU0veXl5eX0nXHJcbiAgICAgICAgaWYgKHRoLnRoQWdncmVnYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRFc1RoRGlyZWN0aXZlTGlzdE9mQWdncmVnYXRpb25zKHRoKS5mb3JFYWNoKChhZ2c6IFRoQWdncmVnYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBpc2RhdGUgPSBhZ2cuZm9ybWF0ICYmIFsnc21hbGwnLCAnbG9uZycsICd2ZXJ5bG9uZyddLmluY2x1ZGVzKGFnZy5mb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGlzbnVtYmVyID0gYWdnLmZvcm1hdCAmJiBhZ2cuZm9ybWF0LnN0YXJ0c1dpdGgoXCJGXCIpICYmICFOdW1iZXIuaXNOYU4oYWdnLmZvcm1hdC5jaGFyQXQoMSkpICYmIGFnZy5mb3JtYXQubGVuZ3RoID09IDI7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpc2RhdGUgJiYgIWlzbnVtYmVyICYmIGFnZy5mb3JtYXQpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgXCJMZSBhZ2dlcmdhemlvbmkgc3VwcG9ydGF0ZSBkYWxsJ2VzLXRhYmxlIHNvbm8gc29sbyAnc21hbGwnLCAnbG9uZycsICd2ZXJ5bG9uZycgcGVyIGxlIGRhdGUgZSAnRjAtOScgcGVyIGkgbnVtZXJpXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0LnB1c2gobmV3IEdyb3VwT3JBZ2dyZWdhdGlvbih0aC50aCwgYWdnLmZ1bmMsIGlzZGF0ZSA/ICdkYXRlJyA6IGlzbnVtYmVyID8gJ251bWJlcicgOiAnc3RyaW5nJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGgudGhHcm91cClcclxuICAgICAgICAgICAgcmV0LnB1c2gobmV3IEdyb3VwT3JBZ2dyZWdhdGlvbih0aC50aCwgbnVsbCkpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICogRGF0YSB1bmEgZGlyZXR0aXZhIGNvbiB1biBmb3JtYXRvIHJlc3RpdHVpc2NlIHR1dHRlIGxlIGNvcHBpZSBGdW56aW9uZSBkaSBBZ2dyZWdhemlvbmUgLSBGb3JtYXRvXHJcbiAgICAqXHJcbiAgICAqIEBwYXJhbSB7RXNUaERpcmVjdGl2ZX0gdGggRGlyZXR0aXZhIEVzVGggZGkgY3VpIGNhbGNvbGFyZSBsZSBmdW56aW9uaSBkaSBhZ2dyZWdhemlvbmUgdXNhdGVcclxuICAgICpcclxuICAgICogQHJldHVybnMge3sgZnVuYzogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyB9W119IExpc3RhIGRlbGxlIGZ1bnppb25pIGRpIGFnZ3JlZ2F6aW9uZSByaWxldmF0ZVxyXG4gICAgKi9cclxuICAgIHByaXZhdGUgZ2V0RXNUaERpcmVjdGl2ZUxpc3RPZkFnZ3JlZ2F0aW9ucyh0aDogRXNUaERpcmVjdGl2ZSk6IFRoQWdncmVnYXRpb25bXSB7XHJcbiAgICAgICAgaWYgKCF0aC50aEFnZ3JlZ2F0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcblxyXG4gICAgICAgIC8vIFNlIGhvIGdpw6AgZWZmZXR0dWF0byBxdWVzdG8gY2FsY29sbyBwZXIgcXVlc3RvIHRoIHJlc3RpdHVpc2NvIGxhIHZlcnNpb25lIGluIGNhY2hlXHJcbiAgICAgICAgaWYgKHRoLl90aEFnZ3JlZ2F0aW9ucylcclxuICAgICAgICAgICAgcmV0dXJuIHRoLl90aEFnZ3JlZ2F0aW9ucztcclxuXHJcbiAgICAgICAgbGV0IHJldCA9IFtdO1xyXG4gICAgICAgIGxldCBkaXNwbGF5ID0gdGgudGhBZ2dyZWdhdGlvbjtcclxuICAgICAgICB2YXIgbWF0Y2hlcyA9IGRpc3BsYXkubWF0Y2goL3tbYS16QS1aMC05XFwvOl0qfS9naSk7XHJcbiAgICAgICAgaWYgKCFtYXRjaGVzKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgbWF0Y2hlcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICBsZXQgc3BsaXQgPSBtLnNwbGl0KFwiOlwiKTtcclxuICAgICAgICAgICAgbGV0IGZ1bmMgPSBtLCBmb3JtYXQgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgLy8gRXNjbHVkbyBwcmltbyBlIHVsdGltbyBjYXJhdHRlcmUgKGxlIGdyYWZmZSlcclxuICAgICAgICAgICAgICAgIGZ1bmMgPSBzcGxpdFswXS5zdWJzdHIoMSk7XHJcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSBzcGxpdFsxXS5zdWJzdHIoMCwgc3BsaXRbMV0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldC5wdXNoKHsgZnVuYzogPCdtaW4nIHwgJ21heCcgfCAnc3VtJz5mdW5jLCBmb3JtYXQ6IGZvcm1hdCwgbWF0Y2g6IG0gfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoLl90aEFnZ3JlZ2F0aW9ucyA9IHJldDtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBsYSBkZWZpbml6aW9uZSBkZWkgZ3J1cHBpIGRhIGdlbmVyYXJlIGRhIHVuYSBsaXN0YSBkaSBvZ2dldHRpLCBzdWRkaXZpZGUgZ2xpIG9nZ2V0dGkgcGFzc2F0aSBpbiBncnVwcGkgZSBzb3R0b2dydXBwaVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7R3JvdXBbXX0gZ3JwcyBEZWZpbml6aW9uZSBkZWkgZ3J1cHBpXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4IEluZGljZSBkaSBlbGFib3JhemlvbmUuIEFsIGxpdmVsbG8gMCBobyB0dXR0aSBnbGkgb2dnZXR0aSBlIGRldm8gZ2VuZXJhcmUgaSBwcmltaSBncnVwcGksIGEgbGl2ZWxsbyAxIGhvIHR1dHRpIGkgZ3J1cHBpIHByaW5jaXBhbGkgZSBkZXZvXHJcbiAgICAgKiBlbGFib3JhcmUgaSBzb3R0b2dydXBwaSwgZSBjb3PDrCB2aWEgcmljb3JzaXZhbWVudGUuLi5cclxuICAgICAqIEBwYXJhbSB7YW55W119IGl0ZW1zIE9nZ2V0dGkgZGEgcmFnZ3J1cHBhcmVcclxuICAgICAqIEBwYXJhbSB7R3JvdXBPckFnZ3JlZ2F0aW9uW119IGFnZ3JlZ2F0aW9ucyBJbmZvIGRpIGFnZ3JlZ2F6aW9uZVxyXG4gICAgICogQHBhcmFtIHthbnl9IHBhcmVudCBSaWZlcmltZW50byBhbCBncnVwcG8gcGFkcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRHcm91cHNSZWN1cnNpdmUoZ3JwczogR3JvdXBbXSwgY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBhbnlbXSwgYWdncmVnYXRpb25zOiBHcm91cE9yQWdncmVnYXRpb25bXSwgcGFyZW50PzogYW55KTogYW55W10ge1xyXG4gICAgICAgIC8vIFNlIGwnaW5kaWNlIMOoIDAgZGV2byBzaWN1cmFtZW50ZSBuYXNjb25kZXJlIHR1dHRpIGdsaSBvZ2dldHRpLiBTb2xvIGkgZ3J1cHBpIHNhcmFubm8gdmlzdWFsaXp6YXRpXHJcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PSAwKVxyXG4gICAgICAgICAgICBpdGVtcy5mb3JFYWNoKGkgPT4gaS5fdmlzaWJsZSA9IGZhbHNlKTtcclxuXHJcbiAgICAgICAgbGV0IGdycCA9IGdycHNbY3VycmVudEluZGV4XTtcclxuICAgICAgICBsZXQgcmV0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBsYXN0ID0gZ3Jwcy5sZW5ndGggPT0gY3VycmVudEluZGV4ICsgMTtcclxuICAgICAgICBsZXQgZ3JvdXBzID0gdGhpcy51dGlsaXRpZXMuZ3JvdXBCeShpdGVtcywgZ3JwLmNvbHVtbik7XHJcbiAgICAgICAgZm9yIChsZXQgcHJvcCBpbiBncm91cHMpIHtcclxuICAgICAgICAgICAgbGV0IGl0bXMgPSBncm91cHNbcHJvcF07XHJcbiAgICAgICAgICAgIGxldCBncCA9IG5ldyBHcm91cChncnAuY29sdW1uLCBpdG1zLmxlbmd0aCwgcHJvcCk7XHJcbiAgICAgICAgICAgIGdwLmFnZ3JlZ2F0aW9ucyA9IHRoaXMuZ2VuZXJhdGVBZ2dyZWdhdGlvbnMoaXRtcywgYWdncmVnYXRpb25zKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBhbnlncCA9ICg8YW55PmdwKTtcclxuICAgICAgICAgICAgYW55Z3AuX2dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgYW55Z3AuX2V4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICghcGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fdGhpc1JvdXRlID0gW3sgY29sdW1uOiBncC5jb2x1bW4sIHZhbHVlOiBncC52YWx1ZSB9XTtcclxuICAgICAgICAgICAgICAgIGFueWdwLl90aGlzS2V5ID0gZ3AudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fZ3JvdXBsZXZlbCA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fcGFyZW50ID0gcGFyZW50Ll90aGlzS2V5O1xyXG4gICAgICAgICAgICAgICAgYW55Z3AuX3BhcmVudFJvdXRlID0gcGFyZW50Ll90aGlzUm91dGU7XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fdGhpc1JvdXRlID0gWy4uLnBhcmVudC5fdGhpc1JvdXRlLCB7IGNvbHVtbjogZ3AuY29sdW1uLCB2YWx1ZTogZ3AudmFsdWUgfV07XHJcbiAgICAgICAgICAgICAgICBhbnlncC5fdGhpc0tleSA9IHBhcmVudC5fdGhpc0tleSArIGdwLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgYW55Z3AuX2dyb3VwbGV2ZWwgPSBwYXJlbnQuX2dyb3VwbGV2ZWwgKyAxO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBQdXNobyBpbCBncnVwcG8sIHR1dHRpIGkgZ3J1cHBpIGRlbCBsaXZlbGxvIHNvdHRvLCBvIGdsaSBpdGVtIHNlIGlvIHNvbm8gbCd1bHRpbW8gZ3J1cHBvLiBcclxuICAgICAgICAgICAgLy8gTGEgdmlzaWJpbGl0w6Agw6ggc29sbyBwZXIgaWwgZ3J1cHBvIGEgbGl2ZWxsbyAwLCB0dXR0aSBnbGkgYWx0cmkgZ3J1cHBpIHNhcmFubm8gbW9zdHJhdGkgbyBuYXNjb3N0aSBkaSBjb25zZWd1ZW56YVxyXG4gICAgICAgICAgICBpZiAoY3VycmVudEluZGV4ID09IDApXHJcbiAgICAgICAgICAgICAgICBhbnlncC5fdmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdGllcy5jYWxjdWxhdGVIYXNoKFthbnlncF0pO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdGllcy5jYWNoZUFnZ3JlZ2F0aW9ucyhhbnlncCk7XHJcblxyXG4gICAgICAgICAgICAvLyBBZ2dpdW5nbyBpbCBncnVwcG8gcGFkcmVcclxuICAgICAgICAgICAgcmV0LnB1c2goYW55Z3ApO1xyXG4gICAgICAgICAgICB0aGlzLnJnR3JvdXBDYWNoZS5zZXQoYW55Z3AuX3RoaXNLZXksIGFueWdwKTtcclxuICAgICAgICAgICAgaWYgKCFsYXN0KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9EYWwgZ3J1cHBvIHBhZHJlLCBzZSBub24gw6ggbCd1bHRpbW8gZ3J1cHBvIGRlbGxhIGNhdGVuYSwgY2FsY29sbyByaWNvcnNpdmFtZW50ZSB0dXR0YSBsYSBjYXRlbmEgc290dG9cclxuICAgICAgICAgICAgICAgIGxldCBzdWJHcm91cHNBbmRJdGVtcyA9IHRoaXMuZ2V0R3JvdXBzUmVjdXJzaXZlKGdycHMsIGN1cnJlbnRJbmRleCArIDEsIGl0bXMsIGFnZ3JlZ2F0aW9ucywgYW55Z3ApO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkZ3JvdXBzID0gc3ViR3JvdXBzQW5kSXRlbXMuZmlsdGVyKHQgPT4gdC5fZ3JvdXAgJiYgdC5fcGFyZW50ID09IGFueWdwLl90aGlzS2V5KTtcclxuICAgICAgICAgICAgICAgIGFueWdwLl9ncm91cHNjb3VudCA9IGNoaWxkZ3JvdXBzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBZ2dpdW5nbyBsYSBjYXRlbmEgZGVsIGdydXBwbyBzb3R0bywgYWdnaXVuZ2VuZG8gYWxsYSBjYWNoZSBzb2xvIGkgZ3J1cHBpIHBhZHJlXHJcbiAgICAgICAgICAgICAgICByZXQucHVzaCguLi5zdWJHcm91cHNBbmRJdGVtcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJnQ2hpbGRHcm91cHNDYWNoZS5zZXQoYW55Z3AuX3RoaXNLZXksIGNoaWxkZ3JvdXBzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIEFsIGdydXBwbyBwYWRyZSwgc2Ugw6ggbCd1bHRpbW8gYXNzZWdubyB0dXR0ZSBsZSBmb2dsaWUgYXNzZWduYW5kb2dsaSBhbmNoZSBsYSBjaGlhdmUgZGVsIGdydXBwb1xyXG4gICAgICAgICAgICAgICAgaXRtcy5mb3JFYWNoKGkgPT4gaS5fdGhpc0tleSA9IGFueWdwLl90aGlzS2V5KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXQucHVzaCguLi5pdG1zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmdJdGVtQ2FjaGUuc2V0KGFueWdwLl90aGlzS2V5LCBpdG1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSB1bmEgbGlzdGEgZGkgb2dnZXR0aSBnZW5lcmEgbGUgYWdncmVnYXppb25pIHNwZWNpZmljYXRlLiBTaSBjb25zaWRlcmEgZGkgYXZlcmUgdHV0dGkgZ2xpIG9nZ2V0dGlcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBpdGVtcyBPZ2dldHRpIGRpIGN1aSBjYWxjb2xhcmUgbGUgYWdncmVnYXppb25lXHJcbiAgICAgKiBAcGFyYW0ge0dyb3VwT3JBZ2dyZWdhdGlvbltdfSBhZ2dyZWdhdGlvbnMgQWdnZXJnYXppb25pIGRhIGdlbmVyYXJlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVBZ2dyZWdhdGlvbnMoaXRlbXM6IGFueVtdLCBhZ2dyZWdhdGlvbnM6IEdyb3VwT3JBZ2dyZWdhdGlvbltdKTogR3JvdXBBZ2dyZWdhdGlvbltdIHtcclxuICAgICAgICBsZXQgcmV0czogR3JvdXBBZ2dyZWdhdGlvbltdID0gW107XHJcbiAgICAgICAgbGV0IGFnZ3JlZ2F0aW9uVmFsdWUgPSBcIlwiLCBmZUZpZWxkID0gbnVsbCwgc3RyaW5nQWdnID0gbnVsbCwgZGF0ZUFnZyA9IG51bGwsIG51bWJlckFnZyA9IG51bGw7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWdncmVnYXRpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBhZ2cgPSBhZ2dyZWdhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGZlRmllbGQgPSBhZ2cuY29sdW1uO1xyXG4gICAgICAgICAgICBpZiAoIWZlRmllbGQpXHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoYWdnLmRhdGF0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOiBzdHJpbmdBZ2cgPSBpdGVtcy5tYXAoaSA9PiBpW2ZlRmllbGRdLnRvU3RyaW5nKCkpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOiBkYXRlQWdnID0gaXRlbXMubWFwKGkgPT4gbmV3IERhdGUoaVtmZUZpZWxkXSkuZ2V0VGltZSgpKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOiBudW1iZXJBZ2cgPSBpdGVtcy5tYXAoaSA9PiBwYXJzZUZsb2F0KGlbZmVGaWVsZF0pKTsgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoYWdnLmFnZ3JlZ2F0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtYXgnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYWdnLmRhdGF0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBzdHJpbmdBZ2cuc29ydCgpLnJldmVyc2UoKVswXTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOiBhZ2dyZWdhdGlvblZhbHVlID0gbmV3IERhdGUoTWF0aC5tYXgoLi4uZGF0ZUFnZykpLnRvU3RyaW5nKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOiBhZ2dyZWdhdGlvblZhbHVlID0gTWF0aC5tYXgoLi4ubnVtYmVyQWdnKS50b1N0cmluZygpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtaW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYWdnLmRhdGF0eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBzdHJpbmdBZ2cuc29ydCgpWzBdOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBuZXcgRGF0ZShNYXRoLm1pbiguLi5kYXRlQWdnKSkudG9TdHJpbmcoKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IGFnZ3JlZ2F0aW9uVmFsdWUgPSBNYXRoLm1pbiguLi5udW1iZXJBZ2cpLnRvU3RyaW5nKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N1bSc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhZ2cuZGF0YXR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzogYWdncmVnYXRpb25WYWx1ZSA9IHN0cmluZ0FnZy5qb2luKFwiLCBcIik7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzogYWdncmVnYXRpb25WYWx1ZSA9IFwiXCI7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOiBhZ2dyZWdhdGlvblZhbHVlID0gbnVtYmVyQWdnLnJlZHVjZSgocHJlLCBjdXJyKSA9PiBwcmUgKyBjdXJyLCAwKS50b1N0cmluZygpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0cy5wdXNoKG5ldyBHcm91cEFnZ3JlZ2F0aW9uKGFnZy5jb2x1bW4sIGFnZy5hZ2dyZWdhdGlvbiwgYWdncmVnYXRpb25WYWx1ZSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIE90dGllbmUgdW4gZWxlbWVudG8gZGkgc2VwYXJhemlvbmUgZnJhIEdydXBwaSBjaGUgc2VydmUgcGVyIHBhZ2luYXJlIGxlIHJpY2VyY2hlIGFsbCdpbnRlcm5vIGRpIG9nbmkgc2luZ29sbyBncnVwcG9cclxuICAgICpcclxuICAgICogQHBhcmFtIHtBcHBTZWFyY2g8YW55Pn0gdmlldyBWaWV3IHV0aWxpenphdGEgcGVyIGxhIHJpY2VyY2EuIE1lIG5lIHNhbHZvIGkgcGFyYW1ldHJpIG5lbCBzZXBhcmF0b3JlIGF0dHVhbGUgZGF0byBjaGUgbmUgaG8gYmlzb2dubyBwZXIgY2FyaWNhcmUgYWx0cmkgZWxlbWVudGlcclxuICAgICogZmFjZW50aSByaWZlcmltZW50byBhbGxvIHN0ZXNzbyBjb250ZXN0b1xyXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50IFBhcmVudCBwYXRoIGNoZSByYXBwcmVzZW50YSBhIHF1YWxlIGdydXBwbyDDqCBhZmZpYmJpYXRvIHF1ZXN0byBzZXBhcmF0b3JlXHJcbiAgICAqIEBwYXJhbSB7R3JvdXBSb3V0ZUZyYWdtZW50W119IHJvdXRlIFJvdXRlIHBhdGggY2hlIHJhcHByZXNlbnRhIGEgcXVhbGUgZ3J1cHBvIMOoIGFmZmliYmlhdG8gcXVlc3RvIHNlcGFyYXRvcmVcclxuICAgICogQHBhcmFtIHtudW1iZXJ9IGxldmVsIExpdmVsbG8gZGVsIGdydXBwbyBkaSBjdWkgcXVlc3RvIGVsZW1lbnRvIMOoIHNlcGFyYXRvcmUsIHZpZW5lIHVzYXRvIHBlciBhcHBsaWNhcmUgbGEgY2xhc3NlIFwiZXN0LWx2bC17e2xldmVsfX1cIlxyXG4gICAgKlxyXG4gICAgKiBAcmV0dXJucyB7YW55fSBFbGVtZW50byBkaSBzZXBhcmF6aW9uZSBjb250ZW5lbnRlIHR1dHRpIGkgYmluZCBwZXIgcHJlc2VudGFyZSB1bmEgcGFnaW5hemlvbmUgc290dG8gcXVlc3RvIGdydXBwbyBsYXRvIGludGVyZmFjY2lhXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGdldEdyb3VwU2VwYXJhdG9yKHZpZXc6IEFwcFNlYXJjaDxhbnk+LCBwYXJlbnQ6IHN0cmluZywgcm91dGU6IEdyb3VwUm91dGVGcmFnbWVudFtdLCBsZXZlbDogbnVtYmVyLCBzZWFyY2hlczogJ2dyb3VwcycgfCAnaXRlbXMnKTogR3JvdXBQYWdlciB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBuZXcgR3JvdXBQYWdlcihsZXZlbCwgcm91dGUsIHBhcmVudCwgT2JqZWN0LmFzc2lnbih7fSwgdmlldyksIHNlYXJjaGVzKTtcclxuICAgICAgICBpdGVtLmJ1dHRvbnMgPSB0aGlzLnV0aWxpdGllcy5nZXRQYWdlc0FycmF5KDYsIHZpZXcucGFnZSwgdmlldy5wYWdlcyk7XHJcbiAgICAgICAgdGhpcy51dGlsaXRpZXMuY2FsY3VsYXRlSGFzaChbaXRlbV0pO1xyXG4gICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGEgdW5hIGNvbG9ubmEgZWZmZXR0dWEgbGEgcmllbWlzc2lvbmUgZGkgdHV0dGUgbGUgcmljZXJjaGUgcmVsYXRpdmUuXHJcbiAgICAgKlxyXG4gICAgICogRXMuIEhvIDIgY2FtcGkgZGkgZ3J1cHBvIGUgaG8gZXNwYW5zbyBmaW5vIGEgdmVkZXJlIGkgdmFsb3JpIGZpbm8gYWQgdW4gbGl2ZWxsbyBxdWFsc2lhc2kuXHJcbiAgICAgKiBDbGljY28gbCdvcmRpbmFtZW50byBzdWwgc2Vjb25kbyBncnVwcG8uXHJcbiAgICAgKiBUdXR0ZSBsZSByaWNlcmNoZSByZWxhdGl2ZSBhaSBwcmltaSBncnVwcGkgZGV2b25vIGVzc2VyZSByaWVzZWd1aXRlLiBRdWFuZG8gaSByaXN1bHRhdGkgYXJyaXZlcmFubm8gY2kgcGVuc2Vyw6AgaWwgbWV0b2RvICoqYmluZERpc3BsYXlUb0xvYWRlZEl0ZW1zT3JHcm91cHMqKlxyXG4gICAgICogYSB0YWdsaWFyZSB2aWEgZ2xpIG9nZ2V0dGkgbm9uIHBpw7kgdmlzdWFsaXp6YXRpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbHVtbiBDb2xvbm5hIHN1IGN1aSBzaSDDqCBlZmZldHR1YXRhIHVuJ29wZXJhemlvbmUgZGkgb3JkaW5hbWVudG9cclxuICAgICAqIEBwYXJhbSB7QXBwT3JkZXJpbmdbXX0gb3JkZXJpbmdzIERpcmV0dGl2ZSBkaSBvcmRpbmFtZW50byBkYSBhcHBsaWNhcmUgYWxsZSB2YXJpZSBzb3R0b3JpY2VyY2hlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbWl0Um93R3JvdXBpbmdTZWFyY2hlcyhjb2x1bW46IHN0cmluZywgb3JkZXJpbmdzOiBBcHBPcmRlcmluZ1tdKSB7XHJcbiAgICAgICAgLy8gUGVyIHR1dHRlIGxlIHJpY2VyY2hlIGludGVybWVkaWUgY2hlIGRldm8gcml2YWx1dGFyZSBsZSByZS1lbWl0dG8gaW4gbW9kbyBkYSBhZ2dpb3JuYXJnbGkgaSBkYXRpXHJcbiAgICAgICAgdmFyIG1lYW5pbmdmdWxBcHBTZWFyY2hlcyA9IHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5maWx0ZXIodCA9PiB0Lmdyb3VwX2NvbHVtbiA9PSBjb2x1bW4pLm1hcCh0ID0+IHQudmlldyk7XHJcblxyXG4gICAgICAgIC8vIFNlIG5vbiBuZSB0cm92byBzaWduaWZpY2EgY2hlIGhvIGZhdHRvIGwnb3JkaW5hbWVudG8gbyBzdWdsaSBpdGVtLCBvIHN1IGNvbG9ubmUgcmVsYXRpdmUgYSB1biBzb3R0b2dydXBwbyBub24gY2FyaWNhdG9cclxuICAgICAgICBpZiAoIW1lYW5pbmdmdWxBcHBTZWFyY2hlcyB8fCBtZWFuaW5nZnVsQXBwU2VhcmNoZXMubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIG1lYW5pbmdmdWxBcHBTZWFyY2hlcyA9IHRoaXMuZXN0Lmdyb3VwU2VhcmNoUmVxdWVzdHNDYWNoZS5maWx0ZXIodCA9PiAhdC5ncm91cF9jb2x1bW4pLm1hcCh0ID0+IHQudmlldyk7XHJcblxyXG4gICAgICAgIC8vIFNlIG5vbiBuZSB0cm92byBxdWkgc2lnbmlmaWNhIGNoZSBzdG8gb3JkaW5hbmRvIHN1IGNvbG9ubmUgcmVsYXRpdmUgYSB1biBzb3R0b2dydXBwbyBub24gY2FyaWNhdG9cclxuICAgICAgICBpZiAoIW1lYW5pbmdmdWxBcHBTZWFyY2hlcyB8fCBtZWFuaW5nZnVsQXBwU2VhcmNoZXMubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgbWVhbmluZ2Z1bEFwcFNlYXJjaGVzLmZvckVhY2goYXMgPT4ge1xyXG4gICAgICAgICAgICAvLyBPdnZpYW1lbnRlIGdsaSBvcmlkbmFtZW50aSBkZXZvbm8gZXNzZXJlIHF1ZWxsaSBhcHBlbmEgZ2VuZXJhdGlcclxuICAgICAgICAgICAgYXMub3JkZXJzID0gb3JkZXJpbmdzO1xyXG4gICAgICAgICAgICBhcy5zYXZlZHN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5lc3QuZW1pdFNlYXJjaFJlcXVlc3QoZmFsc2UsIGFzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgY2FsY29sYSBpbCBjb250ZW51dG8gZGkgdW5hIGNlbGxhIHJlbGF0aXZhIGEgdW4gZ3J1cHBvIHJpZ2EsIHRlbmVuZG8gY29udG8gZGVsIGZvcm1hdG8gZGVsbGUgZXZlbnR1YWxpIGFnZ3JlZ2F6aW9uaVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7R3JvdXB9IGdycCBHcnVwcG8gZGkgY3VpIG1vc3RyYXJlIGxlIGNlbGxlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2VsbCBDZWxsYSBhdHR1YWxlIGRpIGN1aSBjYWxjb2xhcmUgaWwgdGVzdG9cclxuICAgICAqIEBwYXJhbSB7RXNUaERpcmVjdGl2ZX0gaGVhZGVyIEhlYWRlciByZWxhdGl2byBhbGxhIGNlbGxhIGF0dHVhbGUsIHV0aWxpenphdGEgcGVyIGlkZW50aWZpY2FyZSBsZSBpbmZvcm1hemlvbmkgZGkgYWdncmVnYXppb25lXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGVzdG8gZmluYWxlIGNhbGNvbGF0byBwZXIgbGEgKipjZWxsKiogY29ycmVudGUsIGluIGJhc2UgYWxsZSBhZ2dyZWdhemlvbmkgZGkgKipoZWFkZXIqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBDZWxsRGlzcGxheShncnA6IEdyb3VwLCBjZWxsOiBzdHJpbmcsIGhlYWRlcjogRXNUaERpcmVjdGl2ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCg8YW55PmdycCkuX3NlcClcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgbGV0IGRpc3BsYXkgPSBoZWFkZXIudGhBZ2dyZWdhdGlvbjtcclxuICAgICAgICBpZiAoZ3JwLmNvbHVtbiA9PSBjZWxsKSB7XHJcbiAgICAgICAgICAgIGxldCBncm91cHNQYXJ0ID0gKDxhbnk+Z3JwKS5fZ3JvdXBzY291bnQgPyBcIiAtIFwiICsgKDxhbnk+Z3JwKS5fZ3JvdXBzY291bnQgKyBcIiBcIiArIHRoaXMuZXN0LmxjLmxvYyhcIkdyb3Vwc1wiKSA6IFwiXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBncnAudmFsdWUgKyBcIiAoXCIgKyBncnAuY291bnQgKyBncm91cHNQYXJ0ICsgXCIpXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgbGV0IGFnZyA9ICg8TWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4+KDxhbnk+Z3JwKS5fYWdncmVnYXRpb25zQ2FjaGUpLmdldChjZWxsKTtcclxuICAgICAgICAgICAgaWYgKCFhZ2cpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RXNUaERpcmVjdGl2ZUxpc3RPZkFnZ3JlZ2F0aW9ucyhoZWFkZXIpLmZvckVhY2goKGl0bTogVGhBZ2dyZWdhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheSA9IGRpc3BsYXkucmVwbGFjZShpdG0ubWF0Y2gsIHRoaXMuZm9ybWF0QWdncmVnYXRpb25WYWx1ZShhZ2cuZ2V0KGl0bS5mdW5jKSwgaXRtLmZvcm1hdCkpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bnppb25lIGNoZSBkYXRvIHVuIHZhbG9yZSBsbyBmb3JtYXR0YSBpbiBiYXNlIGFsIHRpcG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIFZhbG9yZSBjaGUgZ2VuZXJhbGVtbnRlIHB1w7IgZXNzZXJlIHVuYSBkYXRhIG8gdW4gbnVtZXJvXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJvbWF0IEZvcm1hdG8gc3UgY3VpIGZvcm1hdHRhcmUgaWwgdmFsb3JlLiBQdcOyIGVzc2VyZSBhZCBlc2VtcGlvIFwic21hbGxcIiwgXCJsb25nXCIgXCJ2ZXJ5bG9uZ1wiIHBlciBsZSBkYXRlIG8gRnswLTl9IHBlciBpIG51bWVyaSBkZWNpbWFsaVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBWYWxvcmUgZGVsbCdhZ2dyZWdhemlvbmUgZm9ybWF0dGF0byBjb21lIHNpIGRldmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBmb3JtYXRBZ2dyZWdhdGlvblZhbHVlKHZhbHVlOiBzdHJpbmcsIGZvcm1hdD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFmb3JtYXQpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgbGV0IGlzTnVtYmVyID0gIU51bWJlci5pc05hTih2YWx1ZSkgJiYgKCFmb3JtYXQgfHwgZm9ybWF0LnN0YXJ0c1dpdGgoXCJGXCIpKTtcclxuXHJcbiAgICAgICAgaWYgKGlzTnVtYmVyICYmIGZvcm1hdC5zdGFydHNXaXRoKFwiRlwiKSAmJiAhTnVtYmVyLmlzTmFOKGZvcm1hdC5zdWJzdHIoMSkpKVxyXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZSkudG9GaXhlZChwYXJzZUludChmb3JtYXQuc3Vic3RyKDEpKSk7XHJcblxyXG4gICAgICAgIGxldCBkYXRlID0gbnVsbDtcclxuICAgICAgICAvLyBBbGN1bmUgdmVyc2lvbmUgZGkgZXh0ZW5zaW9ucyByaXNjaGlhbm8gZGkgY3Jhc2hhcmUgY29uIGNvc2Ugbm9uIGRhdGUuLi4gw6ggc3RhdG8gcmlzb2x0byBkb3BvIHF1aW5kaSBxdWVzdG8gdHJ5IC0gY2F0Y2ggaW4gcmVhbHTDoFxyXG4gICAgICAgIC8vIHRvcm5hIHV0aWxlIHNvbG8gY29uIHZlcnNpb25pIHZlY2NoaWUvZGVwcmVjYXRlIGRlbGxhIGxpYnJlcmlhIEBlc2ZhZW56YS9leHRlbnNpb25zXHJcbiAgICAgICAgdHJ5IHsgZGF0ZSA9IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odmFsdWUpOyB9IGNhdGNoIHsgfVxyXG5cclxuICAgICAgICBpZiAoZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUV4dHMuZ2V0Rm9ybWF0dGVkKGRhdGUsIGZvcm1hdCA9PSAnc21hbGwnLCBmb3JtYXQgPT0gJ3Zlcnlsb25nJyk7XHJcblxyXG4gICAgICAgIC8vIFF1aSBjaSBmaW5pc2NvIHNpYSBwZXIgaW5wdXQgY2hlIG5vbiBzb25vIG7DqSBkYXRlIG7DqSBudW1lcmksIHNpYSBwZXIgZm9ybWF0aSBub24gcmljb25vc2NpdXRpXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG59Il19
@@ -51,20 +51,6 @@ export class UtilitiesHandler {
51
51
  throw "Gli indici passati non fanno riferimento a una posizione dell'array. Length: " + array.length + " Old:" + oldI + " New: " + newI;
52
52
  array.splice(newI, 0, array.splice(oldI, 1)[0]);
53
53
  }
54
- /**
55
- * Helper che identifica se il td attuale è di tipo **EsTd**. In caso contrario è da considerarsi **EsTdDirective**
56
- *
57
- * @param {any} td Cella da valutare
58
- * @returns {boolean} Restituisce **true** se il **td** è di tipo **EsTd**, **false** se è di tipo **EsTdDirective**
59
- */
60
- isEsTd(td) { return !td._directive; }
61
- /**
62
- * Helper che identifica se il th attuale è di tipo **EsTh**. In caso contrario è da considerarsi **EsThDirective**
63
- *
64
- * @param {any} td Header da valutare
65
- * @returns {boolean} Restituisce **true** se il **th** è di tipo **EsTh**, **false** se è di tipo **EsThDirective**
66
- */
67
- isEsTh(th) { return !th._directive; }
68
54
  /**
69
55
  * Date le informazioni di paginazione ottiene l'array dei pulsanti
70
56
  *
@@ -163,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
163
149
  type: Injectable,
164
150
  args: [{ providedIn: 'root' }]
165
151
  }], ctorParameters: function () { return [{ type: i1.HashingService }]; } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0aWVzSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9jbGFzc2VzL1V0aWxpdGllc0hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMzQywyQ0FBMkM7QUFFM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QiwwQkFBMEI7SUFDMUIsWUFBb0IsUUFBd0I7UUFBeEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7SUFBSSxDQUFDO0lBRWpEOzs7Ozs7OztPQVFHO0lBQ0ksT0FBTyxDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ3RDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQUEsQ0FBQztJQUVGOzs7O09BSUc7SUFDSSxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3pCLEtBQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzVDLElBQUksYUFBYSxHQUE0QyxLQUFNLENBQUMsa0JBQW1CLENBQUM7UUFDeEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUss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aEIsQ0FBQzs7NkdBNUtRLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBIYXNoaW5nU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RkIH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGQvZXNfdGQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzVGggfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnRcIjtcclxuXHJcbi8qKiBDbGFzc2UgZGkgdXRpbGl0w6AgcGVyIGxlIGNvc2UgY29tdW5pICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsaXRpZXNIYW5kbGVyIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBoYXNoRXh0czogSGFzaGluZ1NlcnZpY2UpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSB1bmEgbGlzdGEgZGkgb2dnZXR0aSBlZmZldHR1YSBkZWkgcmFnZ3J1cHBhbWVudGkgaW4gYmFzZSBhbGxhIHByb3ByaWV0w6AgKipmaWVsZCoqLCBcclxuICAgICAqIHJlc3RpdHVlbmRvIHVuIG9nZ2V0dG8gZGVsIHRpcG8geyBHcnVwcG8xOiBvZ2dldHRpW10sIEdydXBwbzI6IG9nZ2V0dGlbXSwgZWNjLi4uIH1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBhcnJheSBMaXN0YSBkZWdsaSBvZ2dldHRpIGRhIHJhZ2dydXBwYXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGQgQ2FtcG8gc3UgY3VpIGVmZmV0dHVhcmUgaSByYWdncnVwcGFtZW50aVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt7IFtpZDogc3RyaW5nXTogYW55W10gfX0gRGl6aW9uYXJpbyBkZWkgZ3J1cHBpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBncm91cEJ5KGFycmF5OiBhbnlbXSwgZmllbGQ6IHN0cmluZyk6IHsgW2lkOiBzdHJpbmddOiBhbnlbXTsgfSB7XHJcbiAgICAgICAgbGV0IHJldCA9IHt9O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHggPSBhcnJheVtpXTtcclxuICAgICAgICAgICAgKHJldFt4W2ZpZWxkXV0gPSByZXRbeFtmaWVsZF1dIHx8IFtdKS5wdXNoKHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBwZXIgZWZmZXR0dWFyZSBpbCBjYWNoaW5nIGRlbGxlIGFnZ3JlZ2F6aW9uaS4gTGUgc3Bvc3RhIGRhIHVuYSBsaXN0YSBkaSAqKkdyb3VwQWdncmVnYXRpb24qKiBhIHVuYSAqKjxNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PioqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnl9IGdyb3VwIEdydXBwbyBkaSBjdWkgY2FjaGFyZSBsZSBhZ2dyZWdhemlvbmlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhY2hlQWdncmVnYXRpb25zKGdyb3VwOiBhbnkpIHtcclxuICAgICAgICAoPGFueT5ncm91cCkuX2FnZ3JlZ2F0aW9uc0NhY2hlID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIGxldCBjYXN0ZWRBZ0NhY2hlID0gKDxNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+Pj4oPGFueT5ncm91cCkuX2FnZ3JlZ2F0aW9uc0NhY2hlKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmFnZ3JlZ2F0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYWdnID0gZ3JvdXAuYWdncmVnYXRpb25zW2ldO1xyXG4gICAgICAgICAgICBpZiAoY2FzdGVkQWdDYWNoZS5oYXMoYWdnLmNvbHVtbikpXHJcbiAgICAgICAgICAgICAgICBjYXN0ZWRBZ0NhY2hlLmdldChhZ2cuY29sdW1uKS5zZXQoYWdnLmFnZ3JlZ2F0aW9uLCBhZ2cudmFsdWUpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxldCB0bXA6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgICAgICAgICB0bXAuc2V0KGFnZy5hZ2dyZWdhdGlvbiwgYWdnLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNhc3RlZEFnQ2FjaGUuc2V0KGFnZy5jb2x1bW4sIHRtcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEhlbHBlciBwZXIgc3Bvc3RhcmUgdW4gb2dnZXR0byBkaSB1biBhcnJheSBkYSB1biBpbmRpY2UgYWxsJ2FsdHJvLCBpbiBwbGFjZSAqL1xyXG4gICAgcHVibGljIGFycmF5TW92ZShhcnJheTogYW55W10sIG9sZEk6IG51bWJlciwgbmV3STogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKG5ld0kgPiBhcnJheS5sZW5ndGggLSAxIHx8IG9sZEkgPiBhcnJheS5sZW5ndGggLSAxIHx8IG5ld0kgPCAwIHx8IG9sZEkgPCAwKVxyXG4gICAgICAgICAgICB0aHJvdyBcIkdsaSBpbmRpY2kgcGFzc2F0aSBub24gZmFubm8gcmlmZXJpbWVudG8gYSB1bmEgcG9zaXppb25lIGRlbGwnYXJyYXkuIExlbmd0aDogXCIgKyBhcnJheS5sZW5ndGggKyBcIiBPbGQ6XCIgKyBvbGRJICsgXCIgTmV3OiBcIiArIG5ld0k7XHJcblxyXG4gICAgICAgIGFycmF5LnNwbGljZShuZXdJLCAwLCBhcnJheS5zcGxpY2Uob2xkSSwgMSlbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSBpZGVudGlmaWNhIHNlIGlsIHRkIGF0dHVhbGUgw6ggZGkgdGlwbyAqKkVzVGQqKi4gSW4gY2FzbyBjb250cmFyaW8gw6ggZGEgY29uc2lkZXJhcnNpICoqRXNUZERpcmVjdGl2ZSoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnl9IHRkIENlbGxhIGRhIHZhbHV0YXJlXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmVzdGl0dWlzY2UgKip0cnVlKiogc2UgaWwgKip0ZCoqIMOoIGRpIHRpcG8gKipFc1RkKiosICoqZmFsc2UqKiBzZSDDqCBkaSB0aXBvICoqRXNUZERpcmVjdGl2ZSoqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0VzVGQodGQ6IGFueSk6IHRkIGlzIEVzVGQgeyByZXR1cm4gIXRkLl9kaXJlY3RpdmU7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgaWRlbnRpZmljYSBzZSBpbCB0aCBhdHR1YWxlIMOoIGRpIHRpcG8gKipFc1RoKiouIEluIGNhc28gY29udHJhcmlvIMOoIGRhIGNvbnNpZGVyYXJzaSAqKkVzVGhEaXJlY3RpdmUqKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55fSB0ZCBIZWFkZXIgZGEgdmFsdXRhcmVcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXN0aXR1aXNjZSAqKnRydWUqKiBzZSBpbCAqKnRoKiogw6ggZGkgdGlwbyAqKkVzVGgqKiwgKipmYWxzZSoqIHNlIMOoIGRpIHRpcG8gKipFc1RoRGlyZWN0aXZlKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzRXNUaCh0aDogYW55KTogdGggaXMgRXNUaCB7IHJldHVybiAhdGguX2RpcmVjdGl2ZTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0ZSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgb3R0aWVuZSBsJ2FycmF5IGRlaSBwdWxzYW50aVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhCdG5zIE51bWVybyBtYXNzaW1vIGRpIHB1bHNhbnRpIGRhIHZpc3VhbGl6emFyZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2UgUGFnaW5hIGNvcnJlbnRlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGFzdFBhZ2UgVWx0aW1hIHBhZ2luYSBkaXNwb25pYmlsZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnlbXX0gUHNldWRvLWFycmF5IGRpIHB1bHNhbnRpIGEgY3VpIGNpIHNpIHB1w7IgYmluZGFyZSBsYXRvIEhUTUxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBhZ2VzQXJyYXkobWF4QnRuczogbnVtYmVyLCBwYWdlOiBudW1iZXIsIGxhc3RQYWdlOiBudW1iZXIsIGFjdHVhbENvdW50OiBudW1iZXIgPSBudWxsLCBpcHA6IG51bWJlciA9IG51bGwpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG5cclxuICAgICAgICAvLyBTZSBzb25vIGluIG1vZGFsaXTDoCBcIk51bWVybyBkaSBwYWdpbmUgZWQgb2dnZXR0aSBzY29ub3NjaXV0aVwiIGZhY2NpbyBpbiBtb2RvIGRpIG1vc3RyYXJlIGxhIHBhZ2luYSBzdWNjZXNzaXZhIHNvbG8gc2UgZ2xpIGl0ZW1zIGVmZmV0dGl2YW1lbnRlIHBlcnZlbnV0aVxyXG4gICAgICAgIC8vIHNvbm8gdWd1YWxpIGFsbGEgcGFnaW5hemlvbmUgYXR0dWFsZSAoY2lvw6ggcXVlc3RhIHBhZ2luYSDDqCBkaSBzaWN1cm8gcmllbXBpdGEgY29tcGxldGFtZW50ZSlcclxuICAgICAgICBpZiAobGFzdFBhZ2UgPT0gLTEgJiYgKChhY3R1YWxDb3VudCA9PSBudWxsICYmIGlwcCA9PSBudWxsKSB8fCAoYWN0dWFsQ291bnQgPT0gaXBwKSkpXHJcbiAgICAgICAgICAgIGxhc3RQYWdlID0gcGFnZSArIDE7XHJcblxyXG4gICAgICAgIC8vIFNlIHNvbm8gaW4gbW9kYWxpdMOgIFwiTnVtZXJvIGRpIHBhZ2luZSBlZCBvZ2dldHRpIHNjb25vc2NpdXRpXCIgZSBtaSBhcnJpdmFubyAwIG9nZ2V0dGkgc2lnbmlmaWNhIGNoZSBsJ3VsdGltYSBwYWdpbmEgw6ggbGEgcHJlY2VkZW50ZSBlIG5vbiBtb3N0cm8gcGFnaW5lIG9sdHJlXHJcbiAgICAgICAgaWYgKGxhc3RQYWdlID09IC0xICYmIGFjdHVhbENvdW50ID09IDApXHJcbiAgICAgICAgICAgIGxhc3RQYWdlID0gcGFnZTtcclxuXHJcbiAgICAgICAgbGV0IG1pbiwgbWF4O1xyXG4gICAgICAgIGlmIChsYXN0UGFnZSA8PSBtYXhCdG5zKSB7XHJcbiAgICAgICAgICAgIG1pbiA9IDE7XHJcbiAgICAgICAgICAgIG1heCA9IGxhc3RQYWdlIC0gMTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0b2xnbyBsYSBwYWdpbmEgc2VsZWN0ZWQgw6ggbCd1bHRpbWEgcGFnaW5hIGNoZSDDqCBxdWVsbGEgZGVsbGUgcGFnaW5lIHRvdGFsaVxyXG4gICAgICAgICAgICBsZXQgcmFuZ2VPdXRzaWRlID0gKG1heEJ0bnMgLSAyKSAvIDI7XHJcblxyXG4gICAgICAgICAgICBtaW4gPSBwYWdlIC0gcmFuZ2VPdXRzaWRlO1xyXG4gICAgICAgICAgICBtYXggPSBwYWdlICsgcmFuZ2VPdXRzaWRlO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1pbiA8IDEpIHtcclxuICAgICAgICAgICAgICAgIG1pbiA9IDE7XHJcbiAgICAgICAgICAgICAgICBtYXggPSBtYXhCdG5zIC0gMTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXggPj0gbGFzdFBhZ2UpIHtcclxuICAgICAgICAgICAgICAgIG1pbiA9IGxhc3RQYWdlIC0gbWF4QnRucyArIDE7XHJcbiAgICAgICAgICAgICAgICBtYXggPSBsYXN0UGFnZSAtIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlc3VsdC5wdXNoKHsgdmFsOiAxLCBjc3NDbGFzczogKDEgPT09IHBhZ2UgPyAnYnRuLW1haW4gYXBwLXdoaXRlLXRleHQnIDogJ2FwcC13aGl0ZS1idXR0b24nKSB9KTtcclxuXHJcbiAgICAgICAgaWYgKG1heCA+PSBtaW4pIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IG1pbjsgaSA8PSBtYXg7IGkrKylcclxuICAgICAgICAgICAgICAgIGlmIChpICE9PSAxKVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsgdmFsOiBpLCBjc3NDbGFzczogKGkgPT09IHBhZ2UgPyAnYnRuLW1haW4gYXBwLXdoaXRlLXRleHQnIDogJ2FwcC13aGl0ZS1idXR0b24nKSB9KTtcclxuXHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHZhbDogbGFzdFBhZ2UsXHJcbiAgICAgICAgICAgICAgICBjc3NDbGFzczogKGxhc3RQYWdlID09PSBwYWdlID8gJ2J0bi1tYWluIGFwcC13aGl0ZS10ZXh0JyA6ICdhcHAtd2hpdGUtYnV0dG9uJylcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjb2xhIGwnaGFzaCBkaSB1biBvZ2dldHRvIHF1YWxzaWFzaVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IGl0ZW1zIE9nZ2V0dGkgcGVyIGN1aSBjYWxjb2xhcmUgbCdoYXNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYWxjdWxhdGVIYXNoKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgICAgIGlmICghaXRlbXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy8gU3VwcG9ydG8gYSBoYXNoIGR1cGxpY2F0aSBkaSBvZ2dldHRpIHVndWFsaVxyXG4gICAgICAgIGxldCB1c2VkSGFzaGVzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBudW1iZXI7IH0gPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyBQcmltYSBkaSBjYWxjb2xhcmUgbCdoYXNoIHJpbXVvdm8gbGUgcHJvcHJpZXTDoCBpbnRlcm5lIHBlciBldml0YXJlIGNoZSBtaSBzY29tcGVuc2lubyBpIGNhbGNvbGkgc3VjY2Vzc2l2aVxyXG4gICAgICAgICAgICBsZXQgdG1wID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbXNbaV0pO1xyXG4gICAgICAgICAgICBkZWxldGUgdG1wLl9zZWxlY3RlZDtcclxuICAgICAgICAgICAgZGVsZXRlIHRtcC5fdmlzaWJsZTtcclxuICAgICAgICAgICAgZGVsZXRlIHRtcC5faGFzaDtcclxuICAgICAgICAgICAgbGV0IGhhc2ggPSB0aGlzLmhhc2hFeHRzLmhhc2hPYmplY3QodG1wKTtcclxuXHJcbiAgICAgICAgICAgIHVzZWRIYXNoZXNDYWNoZVtoYXNoXSA9IHVzZWRIYXNoZXNDYWNoZVtoYXNoXSA/IHVzZWRIYXNoZXNDYWNoZVtoYXNoXSArIDEgOiAxO1xyXG4gICAgICAgICAgICBpdGVtLl9oYXNoID0gaGFzaCArICh1c2VkSGFzaGVzQ2FjaGVbaGFzaF0gPiAxID8gXCJfXCIgKyB1c2VkSGFzaGVzQ2FjaGVbaGFzaF0gOiBcIlwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFNlIGwnSW5wdXQgw6ggbnVsbCAodmFsb3JlIG5vbiBzZXR0YXRvKSB2ZWRlIHNlIGMnw6ggdW4gZGVmYXVsdCBjb24gY3VpIHZhbG9yaXp6YXJsby4gU2Ugbm9uIGMnw6ggdXRpbGl6emEgaWwgdmFsb3JlIGRpIGZhbGxiYWNrIChxdWFsb3JhIGZvcm5pdG8pXHJcbiAgICAqIFxyXG4gICAgKiBAcGFyYW0ge1R9IGlucHV0VmFsdWUgVmFsb3JlIGRlbGwnSW5wdXRcclxuICAgICogQHBhcmFtIHtUfSBkZWZhdWx0VmFsdWUgVmFsb3JlIGRpIGRlZmF1bHQgaW1wb3N0YXRvIGRhIGNvbmZpZ3VyYXppb25lXHJcbiAgICAqIEBwYXJhbSB7VH0gZmFsbGJhY2tWYWx1ZSBWYWxvcmUgZGVsbCdJbnB1dCBwZXIgcXVhbmRvIG5vbiDDqCBzdGF0byBhc3NlZ25hdG8gZGFsIHByb2dyYW1tYXRvcmUgZSBub24gaGEgdW4gZGVmYXVsdFxyXG4gICAgKi9cclxuICAgIHB1YmxpYyBJbnB1dE9yRGVmYXVsdDxUPihpbnB1dFZhbHVlOiBULCBkZWZhdWx0VmFsdWU6IFQsIGZhbGxiYWNrVmFsdWU/OiBUKSB7XHJcblxyXG4gICAgICAgIC8vIElucHV0IHZhbG9yaXp6YXRvIGRhbCBwcm9ncmFtbWF0b3JlXHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgIT0gbnVsbCAmJiBpbnB1dFZhbHVlICE9IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIGlucHV0VmFsdWU7XHJcblxyXG4gICAgICAgIC8vIElucHV0IHZhbG9yaXp6YXRvIGRhIGNvbmZpZ3VyYXppb25lIGdsb2JhbGVcclxuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlICE9IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICAgICAgLy9JbnB1dCBub24gdmFsb3JpenphdG8gZGEgbmllbnRlIGUgZGEgbmVzc3Vub1xyXG4gICAgICAgIGlmIChmYWxsYmFja1ZhbHVlICE9IG51bGwgJiYgZmFsbGJhY2tWYWx1ZSAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1ZhbHVlO1xyXG5cclxuICAgICAgICAvLyBJIGNhc2kgaW4gY3VpIHNpIGFycml2YSBxdWkgc29ubyBpIGNhc2kgZGkgSW5wdXQgY2hlIGRpIGRlZmF1bHQgdmEgYmVuZSBjaGUgc2lhbm8gbnVsbGkgZSBjaGUgbmVzc3VubyBzaSBjYWdhXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0aWVzSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29yZS9oYW5kbGVycy9jbGFzc2VzL1V0aWxpdGllc0hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQywyQ0FBMkM7QUFFM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QiwwQkFBMEI7SUFDMUIsWUFBb0IsUUFBd0I7UUFBeEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7SUFBSSxDQUFDO0lBRWpEOzs7Ozs7OztPQVFHO0lBQ0ksT0FBTyxDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ3RDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQUEsQ0FBQztJQUVGOzs7O09BSUc7SUFDSSxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3pCLEtBQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzVDLElBQUksYUFBYSxHQUE0QyxLQUFNLENBQUMsa0JBQW1CLENBQUM7UUFDeEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUss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b20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBIYXNoaW5nU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLyoqIENsYXNzZSBkaSB1dGlsaXTDoCBwZXIgbGUgY29zZSBjb211bmkgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFV0aWxpdGllc0hhbmRsZXIge1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhhc2hFeHRzOiBIYXNoaW5nU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBsaXN0YSBkaSBvZ2dldHRpIGVmZmV0dHVhIGRlaSByYWdncnVwcGFtZW50aSBpbiBiYXNlIGFsbGEgcHJvcHJpZXTDoCAqKmZpZWxkKiosIFxyXG4gICAgICogcmVzdGl0dWVuZG8gdW4gb2dnZXR0byBkZWwgdGlwbyB7IEdydXBwbzE6IG9nZ2V0dGlbXSwgR3J1cHBvMjogb2dnZXR0aVtdLCBlY2MuLi4gfVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55W119IGFycmF5IExpc3RhIGRlZ2xpIG9nZ2V0dGkgZGEgcmFnZ3J1cHBhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZCBDYW1wbyBzdSBjdWkgZWZmZXR0dWFyZSBpIHJhZ2dydXBwYW1lbnRpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3sgW2lkOiBzdHJpbmddOiBhbnlbXSB9fSBEaXppb25hcmlvIGRlaSBncnVwcGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdyb3VwQnkoYXJyYXk6IGFueVtdLCBmaWVsZDogc3RyaW5nKTogeyBbaWQ6IHN0cmluZ106IGFueVtdOyB9IHtcclxuICAgICAgICBsZXQgcmV0ID0ge307XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgeCA9IGFycmF5W2ldO1xyXG4gICAgICAgICAgICAocmV0W3hbZmllbGRdXSA9IHJldFt4W2ZpZWxkXV0gfHwgW10pLnB1c2goeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIHBlciBlZmZldHR1YXJlIGlsIGNhY2hpbmcgZGVsbGUgYWdncmVnYXppb25pLiBMZSBzcG9zdGEgZGEgdW5hIGxpc3RhIGRpICoqR3JvdXBBZ2dyZWdhdGlvbioqIGEgdW5hICoqPE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIHN0cmluZz4+KipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZ3JvdXAgR3J1cHBvIGRpIGN1aSBjYWNoYXJlIGxlIGFnZ3JlZ2F6aW9uaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2FjaGVBZ2dyZWdhdGlvbnMoZ3JvdXA6IGFueSkge1xyXG4gICAgICAgICg8YW55Pmdyb3VwKS5fYWdncmVnYXRpb25zQ2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgbGV0IGNhc3RlZEFnQ2FjaGUgPSAoPE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIHN0cmluZz4+Pig8YW55Pmdyb3VwKS5fYWdncmVnYXRpb25zQ2FjaGUpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuYWdncmVnYXRpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBhZ2cgPSBncm91cC5hZ2dyZWdhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGlmIChjYXN0ZWRBZ0NhY2hlLmhhcyhhZ2cuY29sdW1uKSlcclxuICAgICAgICAgICAgICAgIGNhc3RlZEFnQ2FjaGUuZ2V0KGFnZy5jb2x1bW4pLnNldChhZ2cuYWdncmVnYXRpb24sIGFnZy52YWx1ZSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRtcDogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgICAgIHRtcC5zZXQoYWdnLmFnZ3JlZ2F0aW9uLCBhZ2cudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgY2FzdGVkQWdDYWNoZS5zZXQoYWdnLmNvbHVtbiwgdG1wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogSGVscGVyIHBlciBzcG9zdGFyZSB1biBvZ2dldHRvIGRpIHVuIGFycmF5IGRhIHVuIGluZGljZSBhbGwnYWx0cm8sIGluIHBsYWNlICovXHJcbiAgICBwdWJsaWMgYXJyYXlNb3ZlKGFycmF5OiBhbnlbXSwgb2xkSTogbnVtYmVyLCBuZXdJOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAobmV3SSA+IGFycmF5Lmxlbmd0aCAtIDEgfHwgb2xkSSA+IGFycmF5Lmxlbmd0aCAtIDEgfHwgbmV3SSA8IDAgfHwgb2xkSSA8IDApXHJcbiAgICAgICAgICAgIHRocm93IFwiR2xpIGluZGljaSBwYXNzYXRpIG5vbiBmYW5ubyByaWZlcmltZW50byBhIHVuYSBwb3NpemlvbmUgZGVsbCdhcnJheS4gTGVuZ3RoOiBcIiArIGFycmF5Lmxlbmd0aCArIFwiIE9sZDpcIiArIG9sZEkgKyBcIiBOZXc6IFwiICsgbmV3STtcclxuXHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKG5ld0ksIDAsIGFycmF5LnNwbGljZShvbGRJLCAxKVswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRlIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSBvdHRpZW5lIGwnYXJyYXkgZGVpIHB1bHNhbnRpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1heEJ0bnMgTnVtZXJvIG1hc3NpbW8gZGkgcHVsc2FudGkgZGEgdmlzdWFsaXp6YXJlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZSBQYWdpbmEgY29ycmVudGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsYXN0UGFnZSBVbHRpbWEgcGFnaW5hIGRpc3BvbmliaWxlXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge2FueVtdfSBQc2V1ZG8tYXJyYXkgZGkgcHVsc2FudGkgYSBjdWkgY2kgc2kgcHXDsiBiaW5kYXJlIGxhdG8gSFRNTFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGFnZXNBcnJheShtYXhCdG5zOiBudW1iZXIsIHBhZ2U6IG51bWJlciwgbGFzdFBhZ2U6IG51bWJlciwgYWN0dWFsQ291bnQ6IG51bWJlciA9IG51bGwsIGlwcDogbnVtYmVyID0gbnVsbCk6IGFueVtdIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gW107XHJcblxyXG4gICAgICAgIC8vIFNlIHNvbm8gaW4gbW9kYWxpdMOgIFwiTnVtZXJvIGRpIHBhZ2luZSBlZCBvZ2dldHRpIHNjb25vc2NpdXRpXCIgZmFjY2lvIGluIG1vZG8gZGkgbW9zdHJhcmUgbGEgcGFnaW5hIHN1Y2Nlc3NpdmEgc29sbyBzZSBnbGkgaXRlbXMgZWZmZXR0aXZhbWVudGUgcGVydmVudXRpXHJcbiAgICAgICAgLy8gc29ubyB1Z3VhbGkgYWxsYSBwYWdpbmF6aW9uZSBhdHR1YWxlIChjaW/DqCBxdWVzdGEgcGFnaW5hIMOoIGRpIHNpY3VybyByaWVtcGl0YSBjb21wbGV0YW1lbnRlKVxyXG4gICAgICAgIGlmIChsYXN0UGFnZSA9PSAtMSAmJiAoKGFjdHVhbENvdW50ID09IG51bGwgJiYgaXBwID09IG51bGwpIHx8IChhY3R1YWxDb3VudCA9PSBpcHApKSlcclxuICAgICAgICAgICAgbGFzdFBhZ2UgPSBwYWdlICsgMTtcclxuXHJcbiAgICAgICAgLy8gU2Ugc29ubyBpbiBtb2RhbGl0w6AgXCJOdW1lcm8gZGkgcGFnaW5lIGVkIG9nZ2V0dGkgc2Nvbm9zY2l1dGlcIiBlIG1pIGFycml2YW5vIDAgb2dnZXR0aSBzaWduaWZpY2EgY2hlIGwndWx0aW1hIHBhZ2luYSDDqCBsYSBwcmVjZWRlbnRlIGUgbm9uIG1vc3RybyBwYWdpbmUgb2x0cmVcclxuICAgICAgICBpZiAobGFzdFBhZ2UgPT0gLTEgJiYgYWN0dWFsQ291bnQgPT0gMClcclxuICAgICAgICAgICAgbGFzdFBhZ2UgPSBwYWdlO1xyXG5cclxuICAgICAgICBsZXQgbWluLCBtYXg7XHJcbiAgICAgICAgaWYgKGxhc3RQYWdlIDw9IG1heEJ0bnMpIHtcclxuICAgICAgICAgICAgbWluID0gMTtcclxuICAgICAgICAgICAgbWF4ID0gbGFzdFBhZ2UgLSAxO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRvbGdvIGxhIHBhZ2luYSBzZWxlY3RlZCDDqCBsJ3VsdGltYSBwYWdpbmEgY2hlIMOoIHF1ZWxsYSBkZWxsZSBwYWdpbmUgdG90YWxpXHJcbiAgICAgICAgICAgIGxldCByYW5nZU91dHNpZGUgPSAobWF4QnRucyAtIDIpIC8gMjtcclxuXHJcbiAgICAgICAgICAgIG1pbiA9IHBhZ2UgLSByYW5nZU91dHNpZGU7XHJcbiAgICAgICAgICAgIG1heCA9IHBhZ2UgKyByYW5nZU91dHNpZGU7XHJcblxyXG4gICAgICAgICAgICBpZiAobWluIDwgMSkge1xyXG4gICAgICAgICAgICAgICAgbWluID0gMTtcclxuICAgICAgICAgICAgICAgIG1heCA9IG1heEJ0bnMgLSAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1heCA+PSBsYXN0UGFnZSkge1xyXG4gICAgICAgICAgICAgICAgbWluID0gbGFzdFBhZ2UgLSBtYXhCdG5zICsgMTtcclxuICAgICAgICAgICAgICAgIG1heCA9IGxhc3RQYWdlIC0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVzdWx0LnB1c2goeyB2YWw6IDEsIGNzc0NsYXNzOiAoMSA9PT0gcGFnZSA/ICdidG4tbWFpbiBhcHAtd2hpdGUtdGV4dCcgOiAnYXBwLXdoaXRlLWJ1dHRvbicpIH0pO1xyXG5cclxuICAgICAgICBpZiAobWF4ID49IG1pbikge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbWluOyBpIDw9IG1heDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgaWYgKGkgIT09IDEpXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyB2YWw6IGksIGNzc0NsYXNzOiAoaSA9PT0gcGFnZSA/ICdidG4tbWFpbiBhcHAtd2hpdGUtdGV4dCcgOiAnYXBwLXdoaXRlLWJ1dHRvbicpIH0pO1xyXG5cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdmFsOiBsYXN0UGFnZSxcclxuICAgICAgICAgICAgICAgIGNzc0NsYXNzOiAobGFzdFBhZ2UgPT09IHBhZ2UgPyAnYnRuLW1haW4gYXBwLXdoaXRlLXRleHQnIDogJ2FwcC13aGl0ZS1idXR0b24nKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGNvbGEgbCdoYXNoIGRpIHVuIG9nZ2V0dG8gcXVhbHNpYXNpXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnlbXX0gaXRlbXMgT2dnZXR0aSBwZXIgY3VpIGNhbGNvbGFyZSBsJ2hhc2hcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbGN1bGF0ZUhhc2goaXRlbXM6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKCFpdGVtcylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBTdXBwb3J0byBhIGhhc2ggZHVwbGljYXRpIGRpIG9nZ2V0dGkgdWd1YWxpXHJcbiAgICAgICAgbGV0IHVzZWRIYXNoZXNDYWNoZTogeyBbaW5kZXg6IHN0cmluZ106IG51bWJlcjsgfSA9IHt9O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBpdGVtc1tpXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFByaW1hIGRpIGNhbGNvbGFyZSBsJ2hhc2ggcmltdW92byBsZSBwcm9wcmlldMOgIGludGVybmUgcGVyIGV2aXRhcmUgY2hlIG1pIHNjb21wZW5zaW5vIGkgY2FsY29saSBzdWNjZXNzaXZpXHJcbiAgICAgICAgICAgIGxldCB0bXAgPSBPYmplY3QuYXNzaWduKHt9LCBpdGVtc1tpXSk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0bXAuX3NlbGVjdGVkO1xyXG4gICAgICAgICAgICBkZWxldGUgdG1wLl92aXNpYmxlO1xyXG4gICAgICAgICAgICBkZWxldGUgdG1wLl9oYXNoO1xyXG4gICAgICAgICAgICBsZXQgaGFzaCA9IHRoaXMuaGFzaEV4dHMuaGFzaE9iamVjdCh0bXApO1xyXG5cclxuICAgICAgICAgICAgdXNlZEhhc2hlc0NhY2hlW2hhc2hdID0gdXNlZEhhc2hlc0NhY2hlW2hhc2hdID8gdXNlZEhhc2hlc0NhY2hlW2hhc2hdICsgMSA6IDE7XHJcbiAgICAgICAgICAgIGl0ZW0uX2hhc2ggPSBoYXNoICsgKHVzZWRIYXNoZXNDYWNoZVtoYXNoXSA+IDEgPyBcIl9cIiArIHVzZWRIYXNoZXNDYWNoZVtoYXNoXSA6IFwiXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogU2UgbCdJbnB1dCDDqCBudWxsICh2YWxvcmUgbm9uIHNldHRhdG8pIHZlZGUgc2UgYyfDqCB1biBkZWZhdWx0IGNvbiBjdWkgdmFsb3JpenphcmxvLiBTZSBub24gYyfDqCB1dGlsaXp6YSBpbCB2YWxvcmUgZGkgZmFsbGJhY2sgKHF1YWxvcmEgZm9ybml0bylcclxuICAgICogXHJcbiAgICAqIEBwYXJhbSB7VH0gaW5wdXRWYWx1ZSBWYWxvcmUgZGVsbCdJbnB1dFxyXG4gICAgKiBAcGFyYW0ge1R9IGRlZmF1bHRWYWx1ZSBWYWxvcmUgZGkgZGVmYXVsdCBpbXBvc3RhdG8gZGEgY29uZmlndXJhemlvbmVcclxuICAgICogQHBhcmFtIHtUfSBmYWxsYmFja1ZhbHVlIFZhbG9yZSBkZWxsJ0lucHV0IHBlciBxdWFuZG8gbm9uIMOoIHN0YXRvIGFzc2VnbmF0byBkYWwgcHJvZ3JhbW1hdG9yZSBlIG5vbiBoYSB1biBkZWZhdWx0XHJcbiAgICAqL1xyXG4gICAgcHVibGljIElucHV0T3JEZWZhdWx0PFQ+KGlucHV0VmFsdWU6IFQsIGRlZmF1bHRWYWx1ZTogVCwgZmFsbGJhY2tWYWx1ZT86IFQpIHtcclxuXHJcbiAgICAgICAgLy8gSW5wdXQgdmFsb3JpenphdG8gZGFsIHByb2dyYW1tYXRvcmVcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSAhPSBudWxsICYmIGlucHV0VmFsdWUgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICByZXR1cm4gaW5wdXRWYWx1ZTtcclxuXHJcbiAgICAgICAgLy8gSW5wdXQgdmFsb3JpenphdG8gZGEgY29uZmlndXJhemlvbmUgZ2xvYmFsZVxyXG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG5cclxuICAgICAgICAvL0lucHV0IG5vbiB2YWxvcml6emF0byBkYSBuaWVudGUgZSBkYSBuZXNzdW5vXHJcbiAgICAgICAgaWYgKGZhbGxiYWNrVmFsdWUgIT0gbnVsbCAmJiBmYWxsYmFja1ZhbHVlICE9IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrVmFsdWU7XHJcblxyXG4gICAgICAgIC8vIEkgY2FzaSBpbiBjdWkgc2kgYXJyaXZhIHF1aSBzb25vIGkgY2FzaSBkaSBJbnB1dCBjaGUgZGkgZGVmYXVsdCB2YSBiZW5lIGNoZSBzaWFubyBudWxsaSBlIGNoZSBuZXNzdW5vIHNpIGNhZ2FcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
29
29
  }], tdClass: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2VzX3RkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUQsdUdBQXVHO0FBRXZHLE1BQU0sT0FBTyxhQUFhO0lBaUJ0Qjs7T0FFRztJQUNILFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBbEI3QywrSEFBK0g7UUFDeEgsZUFBVSxHQUFHLElBQUksQ0FBQztRQUV6QixzREFBc0Q7UUFDN0MsY0FBUyxHQUFHLElBQUksQ0FBQztRQUsxQixtQ0FBbUM7UUFDMUIsU0FBSSxHQUFZLElBQUksQ0FBQztJQVFtQixDQUFDOzswR0FwQnpDLGFBQWE7OEZBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtrR0FPbEIsU0FBUztzQkFBakIsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogRGlyZXR0aXZhIHBlciBsYSBkaWNoaWFyYXppb25lIHNuZWxsYSBkaSB1biBFc1RkIGRhIGVtZXR0ZXJlIHBlciBvZ25pIGVsZW1lbnRvLCBkYXRhIHVuYSBjb2xvbm5hICovXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t0ZF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBFc1RkRGlyZWN0aXZlIHtcclxuXHJcbiAgICAvKiogVmFyaWFiaWxlIGludGVybmEgY2hlIGluZGljYSBpbCBmYXR0byBjaGUgcXVlc3RvIGNvbXBvbmVudGUgw6ggdW5hIGRpcmV0dGl2YS4gU2VydmUgcGVyIGRpc2FtYmlndWFscmxvIGRlbGwnRXNUZENvbXBvbmVudCAqL1xyXG4gICAgcHVibGljIF9kaXJlY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgY2VsbGEgw6ggdmlzaWJpbGUgbyBtZW5vIGRpIGRlZmF1bHQgKi9cclxuICAgIEBJbnB1dCgpIHRkVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgLyoqIElkIGRlbGxhIGNvbG9ubmEsIGZhIHJpZmVyaW1lbnRvIGFsICoqdGgqKiBwYWRyZSAqL1xyXG4gICAgQElucHV0KCkgdGQ6IHN0cmluZztcclxuXHJcbiAgICAvKiogRXF1aXZhbGVudGUgZGVsbCdOZ0lmIHN1bCB0ZCAqL1xyXG4gICAgQElucHV0KCkgdGRJZjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIEV2ZW50dWFsaSBjbGFzc2kgZGEgYXBwbGljYXJlIGFsICoqdGQqKiBnZW5lcmF0byAqL1xyXG4gICAgQElucHV0KCkgdGRDbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxyXG59Il19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2VzX3RkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUQsdUdBQXVHO0FBRXZHLE1BQU0sT0FBTyxhQUFhO0lBY3RCOztPQUVHO0lBQ0gsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFmN0MsK0hBQStIO1FBQ3hILGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFekIsc0RBQXNEO1FBQzdDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHMUIsbUNBQW1DO1FBQzFCLFNBQUksR0FBWSxJQUFJLENBQUM7SUFPbUIsQ0FBQzs7MEdBakJ6QyxhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7a0dBT2xCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsRUFBRTtzQkFBVixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqIERpcmV0dGl2YSBwZXIgbGEgZGljaGlhcmF6aW9uZSBzbmVsbGEgZGkgdW4gRXNUZCBkYSBlbWV0dGVyZSBwZXIgb2duaSBlbGVtZW50bywgZGF0YSB1bmEgY29sb25uYSAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGRdJyB9KVxyXG5leHBvcnQgY2xhc3MgRXNUZERpcmVjdGl2ZSB7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBpbnRlcm5hIGNoZSBpbmRpY2EgaWwgZmF0dG8gY2hlIHF1ZXN0byBjb21wb25lbnRlIMOoIHVuYSBkaXJldHRpdmEuIFNlcnZlIHBlciBkaXNhbWJpZ3VhbHJsbyBkZWxsJ0VzVGRDb21wb25lbnQgKi9cclxuICAgIHB1YmxpYyBfZGlyZWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxhIGNlbGxhIMOoIHZpc2liaWxlIG8gbWVubyBkaSBkZWZhdWx0ICovXHJcbiAgICBASW5wdXQoKSB0ZFZpc2libGUgPSB0cnVlO1xyXG4gICAgLyoqIElkIGRlbGxhIGNvbG9ubmEsIGZhIHJpZmVyaW1lbnRvIGFsICoqdGgqKiBwYWRyZSAqL1xyXG4gICAgQElucHV0KCkgdGQ6IHN0cmluZztcclxuICAgIC8qKiBFcXVpdmFsZW50ZSBkZWxsJ05nSWYgc3VsIHRkICovXHJcbiAgICBASW5wdXQoKSB0ZElmOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIC8qKiBFdmVudHVhbGkgY2xhc3NpIGRhIGFwcGxpY2FyZSBhbCAqKnRkKiogZ2VuZXJhdG8gKi9cclxuICAgIEBJbnB1dCgpIHRkQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cclxufSJdfQ==
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
81
81
  }], thAggregation: [{
82
82
  type: Input
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQsK0VBQStFO0FBRS9FLE1BQU0sT0FBTyxhQUFhO0lBOER0Qjs7T0FFRztJQUNILFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBL0Q3Qyx3SEFBd0g7UUFDakgsb0JBQWUsR0FBb0IsSUFBSSxDQUFDO1FBRS9DLDRFQUE0RTtRQUNyRSxlQUFVLEdBQXVCLElBQUksQ0FBQztRQUU3QywrSEFBK0g7UUFDeEgsZUFBVSxHQUFHLElBQUksQ0FBQztRQUV6QixzSEFBc0g7UUFDL0csZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFcEMseUVBQXlFO1FBQ2hFLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFFekIsMENBQTBDO1FBQ2pDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsaUpBQWlKO1FBQ3hJLGtCQUFhLEdBQVcsR0FBRyxDQUFDO1FBRXJDLGlEQUFpRDtRQUN4QyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRW5DLHFJQUFxSTtRQUM1SCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWxDLDJGQUEyRjtRQUNsRixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBSy9CLG1EQUFtRDtRQUMxQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVyQyxnR0FBZ0c7UUFDdkYsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQyx3RUFBd0U7UUFDL0QsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFRdEMsbUNBQW1DO1FBQzFCLFNBQUksR0FBWSxJQUFJLENBQUM7UUFFOUIsOElBQThJO1FBQ3JJLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEMsa0VBQWtFO1FBQ3pELFlBQU8sR0FBYSxLQUFLLENBQUM7UUFFbkMsb0hBQW9IO1FBQzNHLGtCQUFhLEdBQVksSUFBSSxDQUFDO0lBS1UsQ0FBQzs7MEdBakV6QyxhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7a0dBZ0JsQixFQUFFO3NCQUFWLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFRoQWdncmVnYXRpb24gfSBmcm9tIFwiLi4vZG9tYWluXCI7XHJcblxyXG4vKiogRGlyZXR0aXZhIHBlciBsYSBkaWNoaWFyYXppb25lIHNuZWxsYSBkaSB1biBFc1RoIGRhIGVtZXR0ZXJlIGNvbWUgaGVhZGVyICovXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t0aF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBFc1RoRGlyZWN0aXZlIHtcclxuXHJcbiAgICAvKiogVmFyaWFiaWxlIGludGVybmEgYWxsJ2ludGVybm8gZGVsbGEgcXVhbGUgdmllbmUgcmFjY29sdGEgbGEgY2FjaGUgZGVsbGUgYWdncmVnYXppb25pIHNwZWNpZmljYXRlIGluIHRoQWdncmVnYXRpb24gKi9cclxuICAgIHB1YmxpYyBfdGhBZ2dyZWdhdGlvbnM6IFRoQWdncmVnYXRpb25bXSA9IG51bGw7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBpbnRlcm5hIGNvbnRlbmVudGUgaW4gbWFuaWVyYSBvcmRpbmF0YSBpIHRlbXBsYXRlIGRlaSBwYWRyaSAqL1xyXG4gICAgcHVibGljIF90aFBhcmVudHM6IFRlbXBsYXRlUmVmPGFueT5bXSA9IG51bGw7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBpbnRlcm5hIGNoZSBpbmRpY2EgaWwgZmF0dG8gY2hlIHF1ZXN0byBjb21wb25lbnRlIMOoIHVuYSBkaXJldHRpdmEuIFNlcnZlIHBlciBkaXNhbWJpZ3VhbHJsbyBkZWxsJ0VzVGhDb21wb25lbnQgKi9cclxuICAgIHB1YmxpYyBfZGlyZWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogVmFyaWFiaWxlIGludGVybmEgaW1wb3N0YXRhIGRhbGwnKipFc1RhYmxlKiosIHBlciBjb250cm9sbGFyZSBjaGUgY2kgc2lhIGFsbWVubyB1biBURCBjaGUgdXRpbGl6emkgcXVlc3QnaGVhZGVyICovXHJcbiAgICBwdWJsaWMgX3JlZmVyZW5jZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSWQgZGVsbGEgY29sb25uYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gcGVyIHR1dHRpIGkgKip0ZCoqIHJlbGF0aXZpICovXHJcbiAgICBASW5wdXQoKSB0aDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxhIGNvbG9ubmEgw6ggcGlubmF0YSBvIG5vICovXHJcbiAgICBASW5wdXQoKSB0aFBpbm5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2EgbGUgZGltZW5zaW9uaSBjaGUgZGV2ZSBhdmVyZSBxdWVzdGEgY29sb25uYSBxdWFuZG8gdmllbmUgcGlubmF0YSwgc2VuemEgcXVlc3RvIHR1dHRlIGxlIGNvbG9ubmUgbWkgY29sbGFzc2VyZWJiZXJvIGwndW5hIHN1bGwnYWx0cmEgKi9cclxuICAgIEBJbnB1dCgpIHRoUGlubmVkV2lkdGg6IG51bWJlciA9IDE1MDtcclxuXHJcbiAgICAvKiogSW5kaWNhemlvbmUgc3VsbGEgdmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgdGhWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxhIGNvbG9ubmEgw6ggZml4ZWQsIGNpb8OoIHNlIG5vbiBwdcOyIG7DqSBlc3NlcmUgbmFzY29zdGEsIG7DqSByaXBvc2l6aW9uYXRhLiBTb2xvIGxlIHByaW1lIGNvbG9ubmUgcG9zc29ubyBlc3NlcmUgRml4ZWQgKi9cclxuICAgIEBJbnB1dCgpIHRoRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIGNoZSBsYSBjb2xvbm5hIMOoIHNvdHRvIGFkIHVuIHJhZ2dydXBwYW1lbnRvIHBhZHJlLCBjb24gcXVlc3RvIG5vbWUgbmVsICoqdGgqKiAqL1xyXG4gICAgQElucHV0KCkgdGhQYXJlbnQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIE9yZGluYW1lbnRvIGF0dHVhbGUgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgdGhPcmRlcj86ICdERVNDJyB8ICdBU0MnO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgcXVlc3RhIGNvbG9ubmEgw6ggb3JkaW5hYmlsZSBvIG1lbm8gKi9cclxuICAgIEBJbnB1dCgpIHRoT3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGlsIHRlc3RvIHByZXNlbnRlIGluIHF1ZXN0byBIZWFkZXIgcHXDsiBhbmRhcmUgYSBjYXBvIG8gbWVubywgZGkgZGVmYXVsdCBub24gcHXDsiAqL1xyXG4gICAgQElucHV0KCkgdGhXcmFwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBsZSBkaW1uc2lvbmkgZGkgcXVlc3RhIGNvbG9ubmEgc29ubyBtb2RpZmljYWJpbGkgbyBtZW5vICovXHJcbiAgICBASW5wdXQoKSB0aFJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbCdIZWFkZXIgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgdGhDbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbGUgcmlnaGUgcXVhbmRvIHJhcHByZXNlbnRhbm8gdW4gR3J1cHBvICovXHJcbiAgICBASW5wdXQoKSB0aEdyb3VwQ2xhc3M6IHN0cmluZztcclxuXHJcbiAgICAvKiogRXF1aXZhbGVudGUgZGVsbCdOZ0lmIHN1bCB0aCAqL1xyXG4gICAgQElucHV0KCkgdGhJZjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIENhbXBvIHBhcnRpY29sYXJlIGNoZSBpbmRpY2EgY2hlIHF1ZXN0byBoZWFkZXIgw6ggdnVvdG8uIFZpZW5lIHV0aWxpenphdG8gc29sbyBhIGxpdmVsbG8gZ3JhZmljbyBwZXIgaWdub3JhcmUgbyBtZW5vIGwnZW1pdCBkZWwgdGVtcGxhdGUgKi9cclxuICAgIEBJbnB1dCgpIHRoRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIGNoZSBiaXNvZ25hIGZhcmUgdW4gcmFnZ3J1cHBhbWVudG8gc3UgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIEBJbnB1dCgpIHRoR3JvdXAgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBjaGUgYmlzb2duYSBmYXJlIHVuYSBhZ2dyZWdhemlvbmUgc3UgcXVlc3RhIGNvbG9ubmEsIGEgZnJvbnRlIGRpIGFsbWVubyB1biBhbHRyYSBjb24gdW4gcmFnZ3J1cHBhbWVudG8gKi9cclxuICAgIEBJbnB1dCgpIHRoQWdncmVnYXRpb24gOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cclxufSJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQsK0VBQStFO0FBRS9FLE1BQU0sT0FBTyxhQUFhO0lBK0N0Qjs7T0FFRztJQUNILFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBaEQ3Qyx3SEFBd0g7UUFDakgsb0JBQWUsR0FBb0IsSUFBSSxDQUFDO1FBRS9DLDRFQUE0RTtRQUNyRSxlQUFVLEdBQXVCLElBQUksQ0FBQztRQUU3QywrSEFBK0g7UUFDeEgsZUFBVSxHQUFHLElBQUksQ0FBQztRQUV6QixzSEFBc0g7UUFDL0csZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFcEMseUVBQXlFO1FBQ2hFLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFDekIsMENBQTBDO1FBQ2pDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUpBQWlKO1FBQ3hJLGtCQUFhLEdBQVcsR0FBRyxDQUFDO1FBQ3JDLGlEQUFpRDtRQUN4QyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFJQUFxSTtRQUM1SCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ2xDLDJGQUEyRjtRQUNsRixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRy9CLG1EQUFtRDtRQUMxQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUNyQyxnR0FBZ0c7UUFDdkYsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3RUFBd0U7UUFDL0QsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFLdEMsbUNBQW1DO1FBQzFCLFNBQUksR0FBWSxJQUFJLENBQUM7UUFDOUIsOElBQThJO1FBQ3JJLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDbEMsa0VBQWtFO1FBQ3pELFlBQU8sR0FBYSxLQUFLLENBQUM7UUFDbkMsb0hBQW9IO1FBQzNHLGtCQUFhLEdBQVksSUFBSSxDQUFDO0lBS1UsQ0FBQzs7MEdBbER6QyxhQUFhOzhGQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7a0dBZ0JsQixFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFRoQWdncmVnYXRpb24gfSBmcm9tIFwiLi4vZG9tYWluXCI7XHJcblxyXG4vKiogRGlyZXR0aXZhIHBlciBsYSBkaWNoaWFyYXppb25lIHNuZWxsYSBkaSB1biBFc1RoIGRhIGVtZXR0ZXJlIGNvbWUgaGVhZGVyICovXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t0aF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBFc1RoRGlyZWN0aXZlIHtcclxuXHJcbiAgICAvKiogVmFyaWFiaWxlIGludGVybmEgYWxsJ2ludGVybm8gZGVsbGEgcXVhbGUgdmllbmUgcmFjY29sdGEgbGEgY2FjaGUgZGVsbGUgYWdncmVnYXppb25pIHNwZWNpZmljYXRlIGluIHRoQWdncmVnYXRpb24gKi9cclxuICAgIHB1YmxpYyBfdGhBZ2dyZWdhdGlvbnM6IFRoQWdncmVnYXRpb25bXSA9IG51bGw7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBpbnRlcm5hIGNvbnRlbmVudGUgaW4gbWFuaWVyYSBvcmRpbmF0YSBpIHRlbXBsYXRlIGRlaSBwYWRyaSAqL1xyXG4gICAgcHVibGljIF90aFBhcmVudHM6IFRlbXBsYXRlUmVmPGFueT5bXSA9IG51bGw7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBpbnRlcm5hIGNoZSBpbmRpY2EgaWwgZmF0dG8gY2hlIHF1ZXN0byBjb21wb25lbnRlIMOoIHVuYSBkaXJldHRpdmEuIFNlcnZlIHBlciBkaXNhbWJpZ3VhbHJsbyBkZWxsJ0VzVGhDb21wb25lbnQgKi9cclxuICAgIHB1YmxpYyBfZGlyZWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogVmFyaWFiaWxlIGludGVybmEgaW1wb3N0YXRhIGRhbGwnKipFc1RhYmxlKiosIHBlciBjb250cm9sbGFyZSBjaGUgY2kgc2lhIGFsbWVubyB1biBURCBjaGUgdXRpbGl6emkgcXVlc3QnaGVhZGVyICovXHJcbiAgICBwdWJsaWMgX3JlZmVyZW5jZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSWQgZGVsbGEgY29sb25uYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gcGVyIHR1dHRpIGkgKip0ZCoqIHJlbGF0aXZpICovXHJcbiAgICBASW5wdXQoKSB0aDogc3RyaW5nID0gXCJcIjtcclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgY29sb25uYSDDqCBwaW5uYXRhIG8gbm8gKi9cclxuICAgIEBJbnB1dCgpIHRoUGlubmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKiogSW5kaWNhIGxlIGRpbWVuc2lvbmkgY2hlIGRldmUgYXZlcmUgcXVlc3RhIGNvbG9ubmEgcXVhbmRvIHZpZW5lIHBpbm5hdGEsIHNlbnphIHF1ZXN0byB0dXR0ZSBsZSBjb2xvbm5lIG1pIGNvbGxhc3NlcmViYmVybyBsJ3VuYSBzdWxsJ2FsdHJhICovXHJcbiAgICBASW5wdXQoKSB0aFBpbm5lZFdpZHRoOiBudW1iZXIgPSAxNTA7XHJcbiAgICAvKiogSW5kaWNhemlvbmUgc3VsbGEgdmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgdGhWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgY29sb25uYSDDqCBmaXhlZCwgY2lvw6ggc2Ugbm9uIHB1w7IgbsOpIGVzc2VyZSBuYXNjb3N0YSwgbsOpIHJpcG9zaXppb25hdGEuIFNvbG8gbGUgcHJpbWUgY29sb25uZSBwb3Nzb25vIGVzc2VyZSBGaXhlZCAqL1xyXG4gICAgQElucHV0KCkgdGhGaXhlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqIEluZGljYSBjaGUgbGEgY29sb25uYSDDqCBzb3R0byBhZCB1biByYWdncnVwcGFtZW50byBwYWRyZSwgY29uIHF1ZXN0byBub21lIG5lbCAqKnRoKiogKi9cclxuICAgIEBJbnB1dCgpIHRoUGFyZW50OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgLyoqIE9yZGluYW1lbnRvIGF0dHVhbGUgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgdGhPcmRlcj86ICdERVNDJyB8ICdBU0MnO1xyXG4gICAgLyoqIEluZGljYSBzZSBxdWVzdGEgY29sb25uYSDDqCBvcmRpbmFiaWxlIG8gbWVubyAqL1xyXG4gICAgQElucHV0KCkgdGhPcmRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgLyoqIEluZGljYSBzZSBpbCB0ZXN0byBwcmVzZW50ZSBpbiBxdWVzdG8gSGVhZGVyIHB1w7IgYW5kYXJlIGEgY2FwbyBvIG1lbm8sIGRpIGRlZmF1bHQgbm9uIHB1w7IgKi9cclxuICAgIEBJbnB1dCgpIHRoV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqIEluZGljYSBzZSBsZSBkaW1uc2lvbmkgZGkgcXVlc3RhIGNvbG9ubmEgc29ubyBtb2RpZmljYWJpbGkgbyBtZW5vICovXHJcbiAgICBASW5wdXQoKSB0aFJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqIENsYXNzaSBkYSBhcHBsaWNhcmUgYWxsJ0hlYWRlciBkZWxsYSBjb2xvbm5hICovXHJcbiAgICBASW5wdXQoKSB0aENsYXNzOiBzdHJpbmc7XHJcbiAgICAvKiogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbGxlIHJpZ2hlIHF1YW5kbyByYXBwcmVzZW50YW5vIHVuIEdydXBwbyAqL1xyXG4gICAgQElucHV0KCkgdGhHcm91cENsYXNzOiBzdHJpbmc7XHJcbiAgICAvKiogRXF1aXZhbGVudGUgZGVsbCdOZ0lmIHN1bCB0aCAqL1xyXG4gICAgQElucHV0KCkgdGhJZjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvKiogQ2FtcG8gcGFydGljb2xhcmUgY2hlIGluZGljYSBjaGUgcXVlc3RvIGhlYWRlciDDqCB2dW90by4gVmllbmUgdXRpbGl6emF0byBzb2xvIGEgbGl2ZWxsbyBncmFmaWNvIHBlciBpZ25vcmFyZSBvIG1lbm8gbCdlbWl0IGRlbCB0ZW1wbGF0ZSAqL1xyXG4gICAgQElucHV0KCkgdGhFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqIEluZGljYSBjaGUgYmlzb2duYSBmYXJlIHVuIHJhZ2dydXBwYW1lbnRvIHN1IHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBASW5wdXQoKSB0aEdyb3VwIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqIEluZGljYSBjaGUgYmlzb2duYSBmYXJlIHVuYSBhZ2dyZWdhemlvbmUgc3UgcXVlc3RhIGNvbG9ubmEsIGEgZnJvbnRlIGRpIGFsbWVubyB1biBhbHRyYSBjb24gdW4gcmFnZ3J1cHBhbWVudG8gKi9cclxuICAgIEBJbnB1dCgpIHRoQWdncmVnYXRpb24gOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cclxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGRFbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9kb21haW4vaW50ZXJuYWxzL2NsYXNzZXMvVGRFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRkRWxlbWVudCB7XHJcbiAgICAvKiogSWQgZGVsbGEgY2VsbGEsIGRldidlc3NlcmUgbG8gc3Rlc3NvIGRlbGxhIGNvbG9ubmEgKipFc1RoKiogcmVsYXRpdmEgKi9cclxuICAgIElEOiBzdHJpbmc7XHJcbiAgICAvKiogSW5kaWNhIHNlIMOoIHVuYSBjZWxsYSBpbnRlcm5hIChyaWdlbmVyYXRhIHByb2dyYW1tYXRpY2FtZW50ZSkgbyBubyAqL1xyXG4gICAgSW50ZXJuYWw/OiBib29sZWFuO1xyXG4gICAgLyoqIFJvdXRlckxpbmsgcXVhbG9yYSBpbCBjbGljayBzdSBxdWVzdGEgY2VsbGEgZGViYmEgbmF2aWdhcmUgZGEgcXVhbGNoZSBwYXJ0ZSAqL1xyXG4gICAgUm91dGVyTGluaz86IGFueTtcclxuICAgIC8qKiBWYWxvcmUgZGEgbW9zdHJhcmUgYWxsJ2ludGVybm8gZGVsbGEgY2VsbGEuIFNlIG9tZXNzbyB2ZXJyw6AgcHJvaWV0dGF0byBpbCBjb250ZW51dG8gZGFsIHRlbXBsYXRlIGluIGN1aSDDqCBzdGF0YSB1c2F0YSAqL1xyXG4gICAgRGlzcGxheT86IHN0cmluZztcclxuICAgIC8qKiBUZW1wbGF0ZSBBbmd1bGFyIGRhIGlzdGFuemlhcmUgcGVyIHF1ZXN0byBURCAqL1xyXG4gICAgVGVtcGxhdGU/OiBhbnk7XHJcbiAgICAvKiogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbGxhIGNlbGxhICovXHJcbiAgICBDbGFzcz86IHN0cmluZztcclxuICAgIC8qKiBDb250ZW51dG8gZGEgbW9zdHJhcmUgcHJvaWV0dGF0byBkYWwgY29tcG9uZW50ZSBwYWRyZSAqL1xyXG4gICAgQ29udGVudD86IFNhZmVIdG1sO1xyXG4gICAgLyoqIENvbnRlc3RvIGRlbGwnb2dnZXR0byBhIGN1aSBzaSByaWZlcmlzY2UgaWwgZGF0byB2aXN1YWxpenphdG8uIENvbnRpZW5lIGwnaGFzaCBkZWxsJ29nZ2V0dG8gaW4gcXVlc3Rpb25lICovXHJcbiAgICBDb250ZXh0OiBzdHJpbmc7XHJcbn0iXX0=
@@ -4,4 +4,5 @@ export * from "./classes/GroupPager";
4
4
  export * from "./classes/GroupRouteFragment";
5
5
  export * from "./classes/ThAggregation";
6
6
  export * from "./classes/ThElement";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2RvbWFpbi9pbnRlcm5hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jbGFzc2VzL0NhY2hlVHJpcHRpY1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jbGFzc2VzL0VzVGFibGVDb2x1bW5cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY2xhc3Nlcy9Hcm91cFBhZ2VyXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvR3JvdXBSb3V0ZUZyYWdtZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvVGhBZ2dyZWdhdGlvblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jbGFzc2VzL1RoRWxlbWVudFwiOyJdfQ==
7
+ export * from "./classes/TdElement";
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy10YWJsZS9zcmMvbGliL2RvbWFpbi9pbnRlcm5hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvQ2FjaGVUcmlwdGljXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvRXNUYWJsZUNvbHVtblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jbGFzc2VzL0dyb3VwUGFnZXJcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY2xhc3Nlcy9Hcm91cFJvdXRlRnJhZ21lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY2xhc3Nlcy9UaEFnZ3JlZ2F0aW9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvVGhFbGVtZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NsYXNzZXMvVGRFbGVtZW50XCI7Il19
@@ -41,7 +41,7 @@ EsTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
41
41
  ContextMenuModule,
42
42
  MatSelectModule,
43
43
  MatInputModule,
44
- DragDropModule], exports: [EsTh, EsTd, EsTableComponent, EsTdDirective, EsThDirective, TablePagerComponent] });
44
+ DragDropModule], exports: [EsTableComponent, EsTdDirective, EsThDirective, TablePagerComponent] });
45
45
  EsTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsTableModule, providers: [UtilityService, ExportService, HashingService, MessageService], imports: [[
46
46
  CommonModule,
47
47
  FormsModule,
@@ -73,7 +73,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
73
73
  ],
74
74
  declarations: [EsTh, EsTd, EsTableComponent, EsTdDirective, EsThDirective, TablePagerComponent],
75
75
  providers: [UtilityService, ExportService, HashingService, MessageService],
76
- exports: [EsTh, EsTd, EsTableComponent, EsTdDirective, EsThDirective, TablePagerComponent]
76
+ exports: [EsTableComponent, EsTdDirective, EsThDirective, TablePagerComponent]
77
77
  }]
78
78
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtdGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9lcy10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFvQjlELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBNEI7UUFDekMsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUM1RCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLElBQUksS0FBSyxFQUFFO2FBQzdEO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBHQVRVLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLGFBWjVGLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLFNBQVM7UUFDVCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGNBQWM7UUFDZCxjQUFjLGFBSU4sSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQjsyR0FFOUUsYUFBYSxhQUhiLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLFlBZGpFO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsU0FBUztZQUNULGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsY0FBYztZQUNkLGNBQWM7U0FDZjsyRkFLVSxhQUFhO2tCQWxCekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxjQUFjO3FCQUNmO29CQUNELFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztvQkFDL0YsU0FBUyxFQUFFLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDO29CQUMxRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7aUJBQzNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgRXhwb3J0U2VydmljZSwgSGFzaGluZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGVzZmFlbnphL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICdAZXNmYWVuemEvbG9jYWxpemF0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBFU1RfTE9DQUxFLCBFU1RfREVCVUcgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IEVzVGFibGVNb2R1bGVDb25maWcgfSBmcm9tICcuL2RvbWFpbi9jb25maWd1cmF0aW9uL0VzVGFibGVNb2R1bGVDb25maWcnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVQYWdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVzVGggfSBmcm9tICcuL2NvbXBvbmVudHMvZXMtdGgvZXNfdGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXNUZCB9IGZyb20gJy4vY29tcG9uZW50cy9lcy10ZC9lc190ZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFc1RkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2VzX3RkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEVzVGhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZXNfdGguZGlyZWN0aXZlJztcclxuXHJcbmltcG9ydCB7IE1vZGFsTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvbW9kYWxcIjtcclxuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XHJcbmltcG9ydCB7IENzdk1vZHVsZSB9IGZyb20gXCJAY3RybC9uZ3gtY3N2XCI7XHJcbmltcG9ydCB7IENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSBcIkBlc2ZhZW56YS9uZ3gtY29udGV4dG1lbnVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBNb2RhbE1vZHVsZSxcclxuICAgIEJzRHJvcGRvd25Nb2R1bGUsXHJcbiAgICBDc3ZNb2R1bGUsXHJcbiAgICBDb250ZXh0TWVudU1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW0VzVGgsIEVzVGQsIEVzVGFibGVDb21wb25lbnQsIEVzVGREaXJlY3RpdmUsIEVzVGhEaXJlY3RpdmUsIFRhYmxlUGFnZXJDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW1V0aWxpdHlTZXJ2aWNlLCBFeHBvcnRTZXJ2aWNlLCBIYXNoaW5nU2VydmljZSwgTWVzc2FnZVNlcnZpY2VdLFxyXG4gIGV4cG9ydHM6IFtFc1RoLCBFc1RkLCBFc1RhYmxlQ29tcG9uZW50LCBFc1RkRGlyZWN0aXZlLCBFc1RoRGlyZWN0aXZlLCBUYWJsZVBhZ2VyQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNUYWJsZU1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogRXNUYWJsZU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RXNUYWJsZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEVzVGFibGVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogRVNUX0xPQ0FMRSwgdXNlVmFsdWU6IGNvbmZpZz8ubG9jYWxlIHx8ICdpdC1JVCcgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEVTVF9ERUJVRywgdXNlVmFsdWU6IGNvbmZpZz8uZGVidWdNb2RlIHx8IGZhbHNlIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtdGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9lcy10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFvQjlELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBNEI7UUFDekMsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUM1RCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLElBQUksS0FBSyxFQUFFO2FBQzdEO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBHQVRVLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLGFBWjVGLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLFNBQVM7UUFDVCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGNBQWM7UUFDZCxjQUFjLGFBSU4sZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7MkdBRWxFLGFBQWEsYUFIYixDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQWRqRTtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxjQUFjO1NBQ2Y7MkZBS1UsYUFBYTtrQkFsQnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsY0FBYztxQkFDZjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7b0JBQy9GLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQztvQkFDMUUsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztpQkFDL0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFeHBvcnRTZXJ2aWNlLCBIYXNoaW5nU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAZXNmYWVuemEvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gJ0Blc2ZhZW56YS9sb2NhbGl6YXRpb25zJztcclxuXHJcbmltcG9ydCB7IEVTVF9MT0NBTEUsIEVTVF9ERUJVRyB9IGZyb20gJy4vdG9rZW5zJztcclxuaW1wb3J0IHsgRXNUYWJsZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4vZG9tYWluL2NvbmZpZ3VyYXRpb24vRXNUYWJsZU1vZHVsZUNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZVBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2VyL3RhYmxlX3BhZ2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXNUaCB9IGZyb20gJy4vY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFc1RkIH0gZnJvbSAnLi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVzVGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZXNfdGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXNUaERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9lc190aC5kaXJlY3RpdmUnO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcclxuaW1wb3J0IHsgQ3N2TW9kdWxlIH0gZnJvbSBcIkBjdHJsL25neC1jc3ZcIjtcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL25neC1jb250ZXh0bWVudVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIE1vZGFsTW9kdWxlLFxyXG4gICAgQnNEcm9wZG93bk1vZHVsZSxcclxuICAgIENzdk1vZHVsZSxcclxuICAgIENvbnRleHRNZW51TW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbRXNUaCwgRXNUZCwgRXNUYWJsZUNvbXBvbmVudCwgRXNUZERpcmVjdGl2ZSwgRXNUaERpcmVjdGl2ZSwgVGFibGVQYWdlckNvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbVXRpbGl0eVNlcnZpY2UsIEV4cG9ydFNlcnZpY2UsIEhhc2hpbmdTZXJ2aWNlLCBNZXNzYWdlU2VydmljZV0sXHJcbiAgZXhwb3J0czogW0VzVGFibGVDb21wb25lbnQsIEVzVGREaXJlY3RpdmUsIEVzVGhEaXJlY3RpdmUsIFRhYmxlUGFnZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc1RhYmxlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBFc1RhYmxlTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxFc1RhYmxlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogRXNUYWJsZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBFU1RfTE9DQUxFLCB1c2VWYWx1ZTogY29uZmlnPy5sb2NhbGUgfHwgJ2l0LUlUJyB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRVNUX0RFQlVHLCB1c2VWYWx1ZTogY29uZmlnPy5kZWJ1Z01vZGUgfHwgZmFsc2UgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==
@@ -3,12 +3,10 @@
3
3
  */
4
4
  export * from './lib/components/pager/table_pager.component';
5
5
  export * from './lib/components/es-table/es_table.component';
6
- export * from './lib/components/es-th/es_th.component';
7
- export * from './lib/components/es-td/es_td.component';
8
6
  export * from './lib/directives/es_td.directive';
9
7
  export * from './lib/directives/es_th.directive';
10
8
  export * from './lib/domain/configuration/EsTableModuleConfig';
11
9
  export * from './lib/domain/configuration/EsTableDefaultable';
12
10
  export * from './lib/es-table.module';
13
11
  export * from './lib/domain/externals';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlcy10YWJsZVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFnZXIvdGFibGVfcGFnZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2VzLXRoL2VzX3RoLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZXMtdGQvZXNfdGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9lc190ZC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2VzX3RoLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RvbWFpbi9jb25maWd1cmF0aW9uL0VzVGFibGVNb2R1bGVDb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kb21haW4vY29uZmlndXJhdGlvbi9Fc1RhYmxlRGVmYXVsdGFibGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lcy10YWJsZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kb21haW4vZXh0ZXJuYWxzJzsiXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGVzLXRhYmxlXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2VzLXRhYmxlL2VzX3RhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZXNfdGQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9lc190aC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kb21haW4vY29uZmlndXJhdGlvbi9Fc1RhYmxlTW9kdWxlQ29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZG9tYWluL2NvbmZpZ3VyYXRpb24vRXNUYWJsZURlZmF1bHRhYmxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXMtdGFibGUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZG9tYWluL2V4dGVybmFscyc7Il19