tuain-ng-forms-lib 12.0.38 → 12.0.40

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.
@@ -123,6 +123,14 @@ export class FieldDescriptor extends FormElement {
123
123
  this.setError('99', this._intrinsicErrorMessage);
124
124
  }
125
125
  }
126
+ if (intrinsicValidation && fieldValue && this._minValue && fieldValue < this._minValue) {
127
+ intrinsicValidation = false;
128
+ this.setError('99', 'Campo con valor inferior al mínimo');
129
+ }
130
+ if (intrinsicValidation && fieldValue && this._maxValue && fieldValue > this._maxValue) {
131
+ intrinsicValidation = false;
132
+ this.setError('99', 'Campo con valor superior al máximo');
133
+ }
126
134
  this._editionFinish.next({ code: this.fieldCode, intrinsicValidation });
127
135
  }
128
136
  setAttr(name, value) {
@@ -289,4 +297,4 @@ export class FieldDescriptor extends FormElement {
289
297
  return true;
290
298
  }
291
299
  }
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLE9BQU8sR0FBRztJQUNkLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFlBQVksRUFBRSxlQUFlO0lBQzdCLEtBQUssRUFBRSxPQUFPO0lBQ2QscUJBQXFCLEVBQUUsd0JBQXdCO0lBQy9DLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsUUFBUSxFQUFFLGVBQWU7SUFDekIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFB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Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7YUFDN0I7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHluIGZyb20gJ3luJztcbmltcG9ydCB7IGVsZW1lbnRUeXBlcywgTk9fRVJST1IgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcblxuY29uc3QgVU5ERUZJTkVEID0gJ3VuZGVmaW5lZCc7XG5cbmNvbnN0IERFRkFVTFRfRVJST1JfVFlQRSA9ICdlcnJvcic7XG5jb25zdCBERUZBVUxUX0NBUFRVUkVfVFlQRSA9ICdJTlBVVCc7XG5jb25zdCBERUZBVUxUX0FMSUdOTUVOVCA9ICdsZWZ0JztcblxuY29uc3QgU1REX01BWF9MRU5HVEggPSA1MDtcbmNvbnN0IEJJR19NQVhfTEVOR1RIID0gNTAwO1xuXG5jb25zdCBmbGRBdHRyID0ge1xuICB2YWxpZGF0ZU9uU2VydmVyOiAndmFsaWRhdGVPblNlcnZlcicsXG4gIHZhbHVlOiAnX3ZhbHVlJyxcbiAgbWluVmFsdWU6ICdfbWluVmFsdWUnLFxuICBtYXhWYWx1ZTogJ19tYXhWYWx1ZScsXG4gIG1heExlbmd0aDogJ19tYXhMZW5ndGgnLFxuICBvblZhbGlkYXRpb246ICdfb25WYWxpZGF0aW9uJyxcbiAgZm9jdXM6ICdmb2N1cycsXG4gIGludHJpbnNpY0Vycm9yTWVzc2FnZTogJ19pbnRyaW5zaWNFcnJvck1lc3NhZ2UnLFxuICBjb2RlOiAnZmllbGRDb2RlJyxcbiAgaW5mbzogJ2ZpZWxkSW5mbycsXG4gIGRlZmF1bHRWYWx1ZTogJ2RlZmF1bHRWYWx1ZScsXG4gIGRlZmF1bHRFZGl0YWJsZTogJ2RlZmF1bHRFZGl0YWJsZScsXG4gIHZpc2libGVMYWJlbDogJ3Zpc2libGVMYWJlbCcsXG4gIHJlcXVpcmVkOiAnZmllbGRSZXF1aXJlZCcsXG4gIGhhc0NoYW5nZWQ6ICdoYXNDaGFuZ2VkJyxcbiAgb3V0cHV0T25seTogJ291dHB1dE9ubHknLFxuICBjYXB0dXJlVHlwZTogJ2NhcHR1cmVUeXBlJyxcbiAgdGl0bGU6ICdmaWVsZFRpdGxlJyxcbiAgdHlwZTogJ2ZpZWxkVHlwZScsXG4gIGFsaWdubWVudDogJ2ZpZWxkQWxpZ25tZW50JyxcbiAgZm9ybWF0OiAnZmllbGRGb3JtYXQnLFxuICBleHRlcm5hbFZhbHVlOiAnZXh0ZXJuYWxWYWx1ZScsXG4gIHRvb2x0aXBUZXh0OiAndG9vbHRpcFRleHQnLFxuICBlcnJvclR5cGU6ICdlcnJvclR5cGUnLFxuICBlcnJvckNvZGU6ICdlcnJvckNvZGUnLFxuICBlcnJvck1lc3NhZ2U6ICdlcnJvck1lc3NhZ2UnLFxuICBvcHRpb25zOiAnZmllbGRPcHRpb25zJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBGaWVsZERlc2NyaXB0b3IgZXh0ZW5kcyBGb3JtRWxlbWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25GaW5pc2ggPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25QYXJ0aWFsID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXRhaWxSZXF1ZXN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdHRyaWJ1dGVDaGFuZ2UgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU9uU2VydmVyOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gIHByaXZhdGUgX2ZvY3VzOiBib29sZWFuO1xuXG4gIF9taW5WYWx1ZTogYW55O1xuICBfbWF4VmFsdWU6IGFueTtcbiAgX21heExlbmd0aDogbnVtYmVyO1xuICBfb25WYWxpZGF0aW9uOiBib29sZWFuO1xuICBfaW50cmluc2ljRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgZmllbGRDb2RlOiBzdHJpbmc7XG4gIGZpZWxkSW5mbzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU6IHN0cmluZztcbiAgZGVmYXVsdEVkaXRhYmxlOiBib29sZWFuO1xuXG4gIHZpc2libGVMYWJlbDogYm9vbGVhbjtcbiAgZmllbGRSZXF1aXJlZDogYm9vbGVhbjtcbiAgaGFzQ2hhbmdlZDogYm9vbGVhbjtcbiAgb3V0cHV0T25seTogYm9vbGVhbjtcbiAgY2FwdHVyZVR5cGU6IHN0cmluZztcbiAgZmllbGRUaXRsZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgZmllbGRGb3JtYXQ6IFJlZ0V4cDtcbiAgZXh0ZXJuYWxWYWx1ZTogYW55O1xuICB0b29sdGlwVGV4dDogc3RyaW5nO1xuXG4gIGVycm9yVHlwZTogc3RyaW5nO1xuICBlcnJvckNvZGU6IHN0cmluZztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgZmllbGRPcHRpb25zOiB7XG4gICAgZmllbGRPcHRpb25WYWx1ZTogc3RyaW5nO1xuICAgIGZpZWxkT3B0aW9uSWQ6IHN0cmluZztcbiAgfVtdO1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IGVsZW1lbnRUeXBlcy5maWVsZDtcbiAgICBjb25zdCBmbGQgPSAoaW5wdXRGaWVsZFJlY2VpdmVkKSA/IGlucHV0RmllbGRSZWNlaXZlZCA6IHt9O1xuXG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuY29kZSwgZmxkLmZpZWxkQ29kZSk7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIudGl0bGUsIGZsZC5maWVsZFRpdGxlID8/IHRoaXMuZmllbGRDb2RlKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5jYXB0dXJlVHlwZSwgZmxkLmNhcHR1cmVUeXBlID8/IERFRkFVTFRfQ0FQVFVSRV9UWVBFKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5kZWZhdWx0VmFsdWUsIGZsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbCk7XG4gICAgY29uc3QgZGVmYXVsdFR5cGVBbGlnbm1lbnQgPSAodGhpcy5fZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzW3RoaXMuZmllbGRUeXBlXSAhPSBudWxsKVxuICAgICAgPyB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5maWVsZFR5cGVdWyd0ZXh0LWFsaWduJ10gOiBERUZBVUxUX0FMSUdOTUVOVDtcbiAgICBjb25zdCBmaWVsZEFsaWdubWVudCA9IChmbGQuYWxpZ25tZW50ICE9IG51bGwpID8gZmxkLmFsaWdubWVudC50b0xvd2VyQ2FzZSgpIDogZGVmYXVsdFR5cGVBbGlnbm1lbnQ7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuYWxpZ25tZW50LCBmaWVsZEFsaWdubWVudCk7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuaW5mbywgZmxkLmluZm8gfHwgJycpO1xuICAgIGxldCBmaWVsZEZvcm1hdDtcbiAgICB0cnkge1xuICAgICAgZmllbGRGb3JtYXQgPSAoZmxkLmZvcm1hdCkgPyBuZXcgUmVnRXhwKGZsZC5mb3JtYXQpIDogbnVsbDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBmaWVsZEZvcm1hdCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmZvcm1hdCwgZmllbGRGb3JtYXQpO1xuXG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIudmFsaWRhdGVPblNlcnZlciwgZmxkLnNlcnZlckFjdGlvbiA/PyBmYWxzZSk7XG5cbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci50b29sdGlwVGV4dCwgZmxkLnRvb2x0aXAgfHwgJycpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmRlZmF1bHRFZGl0YWJsZSwgdGhpcy5lbmFibGVkKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5yZXF1aXJlZCwgZmxkLnJlcXVpcmVkID8/IGZhbHNlKTtcbiAgICB0aGlzLnNldEVycm9yKGZsZC5lcnJvckNvZGUsIGZsZC5lcnJvck1lc3NhZ2UsIGZsZC5lcnJvclR5cGUgPz8gREVGQVVMVF9FUlJPUl9UWVBFKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5vdXRwdXRPbmx5LCBmbGQub3V0cHV0T25seSA/PyBmYWxzZSk7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gZmxkLm1heExlbmd0aCA/PyAodGhpcy5jYXB0dXJlVHlwZSA9PT0gJ1RFWFRBUkVBJyA/IEJJR19NQVhfTEVOR1RIIDogU1REX01BWF9MRU5HVEgpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm1heExlbmd0aCwgbWF4TGVuZ3RoKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5pbnRyaW5zaWNFcnJvck1lc3NhZ2UsIHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlRXJyTXNnW3RoaXMuZmllbGRUeXBlXSA/PyB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZUVyck1zZy5ERUZBVUxUKTtcblxuICAgIHRoaXMuc2V0RmllbGRUeXBlKGZsZC5maWVsZFR5cGVDb2RlKTtcbiAgICB0aGlzLnNldEVkaXRhYmxlKGZsZC5lZGl0YWJsZSA/PyB0cnVlKTtcbiAgICB0aGlzLnNldFZpc2libGVMYWJlbChmbGQudmlzaWJsZUxhYmVsID8/IHRydWUpO1xuICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmbGQudmlzaWJsZSk7XG4gICAgdGhpcy5zZXRGaWVsZE9wdGlvbnMoZmxkLmZpZWxkT3B0aW9ucyk7XG4gICAgdGhpcy5zZXRWYWx1ZShmbGQuZmllbGRWYWx1ZSB8fCB0aGlzLmRlZmF1bHRWYWx1ZSB8fCAnJyk7XG4gIH1cblxuICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuZmllbGRDb2RlOyB9XG4gIGdldCBlZGl0aW9uRmluaXNoKCkgeyByZXR1cm4gdGhpcy5fZWRpdGlvbkZpbmlzaDsgfVxuICBnZXQgYXR0cmlidXRlQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fYXR0cmlidXRlQ2hhbmdlOyB9XG5cbiAgZ2V0IGVkaXRpb25QYXJ0aWFsKCkgeyByZXR1cm4gdGhpcy5fZWRpdGlvblBhcnRpYWw7IH1cbiAgZ2V0IGRldGFpbFJlcXVlc3QoKSB7IHJldHVybiB0aGlzLl9kZXRhaWxSZXF1ZXN0OyB9XG4gIGdldCBpbmZvKCkgeyByZXR1cm4gdGhpcy5maWVsZEluZm87IH1cblxuICBnZXQgdmFsaWRhdGluZygpIHsgcmV0dXJuIHRoaXMuX29uVmFsaWRhdGlvbjsgfVxuICBzZXQgdmFsaWRhdGluZyhpc1ZhbGlkYXRpbmc6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIub25WYWxpZGF0aW9uLCBpc1ZhbGlkYXRpbmcpOyB9XG5cbiAgZm9jdXMoKSB7IHRoaXMuc2V0QXR0cihmbGRBdHRyLmZvY3VzLCB0cnVlKTsgfVxuXG4gIHNldEludHJpbnNpY0Vycm9yTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIuaW50cmluc2ljRXJyb3JNZXNzYWdlLCBtZXNzYWdlKTsgfVxuICBzZXQgaW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykgeyB0aGlzLnNldEludHJpbnNpY0Vycm9yTWVzc2FnZShtZXNzYWdlKTsgfVxuXG4gIGdldCBmaWVsZFZhbHVlKCkgeyByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpOyB9XG5cbiAgZ2V0UmVxdWlyZWQoKSB7IHJldHVybiB0aGlzLnJlcXVpcmVkOyB9XG4gIHNldFJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7IHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDsgfVxuXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZmllbGRSZXF1aXJlZDsgfVxuICBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIucmVxdWlyZWQsIHJlcXVpcmVkID8/IGZhbHNlKTsgfVxuICBnZXQgbWF4TGVuZ3RoKCkgeyByZXR1cm4gKHRoaXMuX21heExlbmd0aCA+IDApID8gdGhpcy5fbWF4TGVuZ3RoLnRvU3RyaW5nKCkgOiAnJzsgfVxuICBzZXQgbWF4TGVuZ3RoKHJlcXVpcmVkTWF4TGVuZ3RoOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHJlcXVpcmVkTWF4TGVuZ3RoID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIubWF4TGVuZ3RoLCBwYXJzZUludChyZXF1aXJlZE1heExlbmd0aCwgMTApKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXF1aXJlZE1heExlbmd0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm1heExlbmd0aCwgcmVxdWlyZWRNYXhMZW5ndGgpO1xuICAgIH1cbiAgfVxuICBnZXQgdmFsdWUoKSB7IHJldHVybiB0aGlzLmdldFZhbHVlKCk7IH1cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlKSB7IHRoaXMuc2V0VmFsdWUobmV3VmFsdWUpOyB9XG5cbiAgbm90aWZ5RWRpdGlvblBhcnRpYWwoKSB7XG4gICAgY29uc3QgaW50cmluc2ljVmFsaWRhdGlvbiA9IHRydWU7XG4gICAgdGhpcy5fZWRpdGlvblBhcnRpYWwubmV4dCh7IGNvZGU6IHRoaXMuZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uIH0pO1xuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkZpbmlzaCgpIHtcbiAgICBsZXQgaW50cmluc2ljVmFsaWRhdGlvbiA9IHRydWU7XG4gICAgY29uc3QgZmllbGREZWZhdWx0Rm9ybWF0ID0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzUGF0dGVybnM/Llt0aGlzLmZpZWxkVHlwZV0gPz8gbnVsbDtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmIChmaWVsZFZhbHVlICYmIChmaWVsZERlZmF1bHRGb3JtYXQgfHwgdGhpcy5maWVsZEZvcm1hdCkpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSAoZmllbGREZWZhdWx0Rm9ybWF0Py50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpXG4gICAgICAgICYmICh0aGlzLmZpZWxkRm9ybWF0Py50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpO1xuICAgICAgaWYgKCFpbnRyaW5zaWNWYWxpZGF0aW9uKSB7XG4gICAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgdGhpcy5faW50cmluc2ljRXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fZWRpdGlvbkZpbmlzaC5uZXh0KHsgY29kZTogdGhpcy5maWVsZENvZGUsIGludHJpbnNpY1ZhbGlkYXRpb24gfSk7XG4gIH1cblxuICBzZXRBdHRyKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHRoaXNbbmFtZV0gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fZm9ybUNvbmZpZy5tb25pdG9yZWRGaWVsZEF0dHJpYnV0ZXMuaW5jbHVkZXMobmFtZSkpIHtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZUNoYW5nZS5uZXh0KHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgfVxuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoKSB7XG4gICAgdGhpcy5fZGV0YWlsUmVxdWVzdC5uZXh0KHRoaXMuZmllbGRDb2RlKTtcbiAgfVxuXG4gIHNldFZpc2libGVMYWJlbCh2aXNpYmxlTGFiZWw6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIudmlzaWJsZUxhYmVsLCB2aXNpYmxlTGFiZWwpOyB9XG4gIHNob3dMYWJlbCgpIHsgdGhpcy5zZXRWaXNpYmxlTGFiZWwodHJ1ZSk7IH1cbiAgaGlkZUxhYmVsKCkgeyB0aGlzLnNldFZpc2libGVMYWJlbChmYWxzZSk7IH1cblxuICBzZXRDaGFuZ2VkKGhhc0NoYW5nZWQ6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIuaGFzQ2hhbmdlZCwgaGFzQ2hhbmdlZCk7IH1cbiAgY2hhbmdlZCgpIHsgdGhpcy5zZXRDaGFuZ2VkKHRydWUpOyB9XG5cbiAgc2V0TGFiZWwobGFiZWwpIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIudGl0bGUsIGxhYmVsKTsgfVxuICBjbGVhbigpIHsgdGhpcy5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZSB8fCAnJyk7IHRoaXMucmVzZXRFcnJvcigpOyB9XG4gIGdldCBiYWNrZW5kKCkgeyByZXR1cm4gdGhpcy52YWxpZGF0ZU9uU2VydmVyOyB9XG5cbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlKSB7IChlZGl0YWJsZSkgPyB0aGlzLmVuYWJsZSgpIDogdGhpcy5kaXNhYmxlKCk7IH1cblxuICBoYXNFcnJvcigpIHsgcmV0dXJuIHRoaXMuZXJyb3JDb2RlICE9PSBOT19FUlJPUjsgfVxuICByZXNldEVycm9yKCkgeyAodGhpcy5lcnJvckNvZGUgIT09IE5PX0VSUk9SKSAmJiB0aGlzLnNldEVycm9yKE5PX0VSUk9SLCBudWxsKTsgfVxuICBzZXRFcnJvcihjb2RlLCBtZXNzYWdlLCB0eXBlID0gREVGQVVMVF9FUlJPUl9UWVBFKSB7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZXJyb3JDb2RlLCBjb2RlID8/IE5PX0VSUk9SKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5lcnJvclR5cGUsICh0aGlzLmVycm9yQ29kZSA9PT0gTk9fRVJST1IpID8gJycgOiB0eXBlKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5lcnJvck1lc3NhZ2UsIG1lc3NhZ2UgPz8gJycpO1xuICB9XG5cbiAgZ2V0RXJyb3IoKSB7IHJldHVybiB7IHR5cGU6IHRoaXMuZXJyb3JUeXBlLCBjb2RlOiB0aGlzLmVycm9yQ29kZSwgbWVzc2FnZTogdGhpcy5lcnJvck1lc3NhZ2UgfTsgfVxuICBnZXQgZXJyb3IoKSB7IHJldHVybiB0aGlzLmdldEVycm9yKCk7IH1cbiAgc2V0IGVycm9yKGVycm9yT2JqKSB7IHRoaXMuc2V0RXJyb3IoZXJyb3JPYmouY29kZSwgZXJyb3JPYmoubWVzc2FnZSwgZXJyb3JPYmoudHlwZSA/PyBERUZBVUxUX0VSUk9SX1RZUEUpIH1cblxuICBnZXRFcnJvckNvZGUoKSB7IHJldHVybiB0aGlzLmdldEVycm9yKCkuY29kZTsgfVxuICBzZXRFcnJvckNvZGUoY29kZSkgeyB0aGlzLnNldEVycm9yKGNvZGUsIHRoaXMuZXJyb3JNZXNzYWdlKTsgfVxuICBnZXRFcnJvck1lc3NhZ2UoKSB7IHJldHVybiB0aGlzLmdldEVycm9yKCkubWVzc2FnZTsgfVxuICBzZXRFcnJvck1lc3NhZ2UobXNnKSB7IHRoaXMuc2V0RXJyb3IodGhpcy5lcnJvckNvZGUsIG1zZyk7IH1cblxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmlzRW1wdHkoKTsgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRDdXJyZW50VmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKGZpZWxkQ3VycmVudFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRDdXJyZW50VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXkgfHwgdGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5waG9uZSlcbiAgICAgICYmIEFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpICYmIGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4gZmllbGRDdXJyZW50VmFsdWUgPT09ICcnO1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuXG4gICAgICB8fCB0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmNoZWNrKSB7XG4gICAgICByZXR1cm4geW4odGhpcy5fdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICB1cGRhdGVGcm9tU2VydmVyKGZsZCkge1xuICAgIGNvbnN0IGZpZWxkS2V5cyA9IE9iamVjdC5rZXlzKGZsZCk7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpZWxkS2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGF0dHJOYW1lID0gZmllbGRLZXlzW2luZGV4XTtcbiAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGZsZFthdHRyTmFtZV07XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy52aXNpYmxlKSAmJiB0aGlzLnNldFZpc2liaWxpdHkoYXR0clZhbHVlKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLmxhYmVsVmlzaWJsZSkgJiYgdGhpcy5zZXRWaXNpYmxlTGFiZWwoZmxkLnZpc2libGVMYWJlbCk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5yZXF1aXJlZCkgJiYgdGhpcy5zZXRBdHRyKGZsZEF0dHIucmVxdWlyZWQsIGZsZC5yZXF1aXJlZCA/PyBmYWxzZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5lcnJvckNvZGUpICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLmVycm9yQ29kZSwgZmxkLmVycm9yQ29kZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5lcnJvck1lc3NhZ2UpICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLmVycm9yTWVzc2FnZSwgZmxkLmVycm9yTWVzc2FnZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy50b29sdGlwKSAmJiB0aGlzLnNldEF0dHIoZmxkQXR0ci50b29sdGlwVGV4dCwgZmxkLnRvb2x0aXApO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMuaW5mbykgJiYgdGhpcy5zZXRBdHRyKGZsZEF0dHIuaW5mbywgZmxkLmluZm8pO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMuZWRpdGFibGUpICYmIHRoaXMuc2V0RWRpdGFibGUoZmxkLmVkaXRhYmxlKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLnRpdGxlKSAmJiB0aGlzLnNldExhYmVsKGZsZC5maWVsZFRpdGxlLnRvU3RyaW5nKCkpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMudmFsdWUpICYmICh0aGlzLnNldFZhbHVlKGZsZC5maWVsZFZhbHVlKSAmJiB0aGlzLnNldENoYW5nZWQoZmFsc2UpKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLm9wdGlvbnMpICYmIHRoaXMuc2V0RmllbGRPcHRpb25zKGZsZC5maWVsZE9wdGlvbnMpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMuY2FwdHVyZVR5cGUpICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLmNhcHR1cmVUeXBlLCBmbGQuY2FwdHVyZVR5cGUgfHwgJ0lOUFVUJyk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy50eXBlKSAmJiB0aGlzLnNldEZpZWxkVHlwZShmbGQuZmllbGRUeXBlQ29kZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5tYXhMZW5ndGgpICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLm1heExlbmd0aCwgZmxkLm1heExlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmllbGRUeXBlKGlucHV0RmllbGRUeXBlKSB7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIudHlwZSwgaW5wdXRGaWVsZFR5cGUpO1xuICB9XG5cbiAgc2V0TWluVmFsdWUoaW5wdXRNaW5WYWx1ZSkge1xuICAgIGxldCBtaW5WYWx1ZSA9IGlucHV0TWluVmFsdWU7XG4gICAgaWYgKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuZGF0ZSkge1xuICAgICAgbWluVmFsdWUgPSBuZXcgRGF0ZShtaW5WYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm1pblZhbHVlLCBtaW5WYWx1ZSk7XG4gIH1cblxuICBzZXRNYXhWYWx1ZShpbnB1dE1heFZhbHVlKSB7XG4gICAgbGV0IG1heFZhbHVlID0gaW5wdXRNYXhWYWx1ZTtcbiAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5kYXRlKSB7XG4gICAgICBtYXhWYWx1ZSA9IG5ldyBEYXRlKG1heFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIubWF4VmFsdWUsIG1heFZhbHVlKTtcbiAgfVxuXG4gIGdldEZpZWxkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpZWxkT3B0aW9ucykpO1xuICB9XG5cbiAgc2V0RmllbGRPcHRpb25zKG5ld09wdGlvbnMpIHtcbiAgICBpZiAoKHRoaXMuY2FwdHVyZVR5cGUgIT09ICdMSVNUJyAmJiB0aGlzLmNhcHR1cmVUeXBlICE9PSAnUkFESU8nKVxuICAgICAgfHwgdHlwZW9mIG5ld09wdGlvbnMgPT09IFVOREVGSU5FRCB8fCAhbmV3T3B0aW9uc1xuICAgICAgfHwgIUFycmF5LmlzQXJyYXkobmV3T3B0aW9ucykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZpZWxkT3B0aW9ucyA9IG5ld09wdGlvbnMubWFwKG9wdGlvbiA9PiB7XG4gICAgICBpZiAob3B0aW9uLnRleHQgIT09IHVuZGVmaW5lZCAmJiBvcHRpb24udGV4dCAhPT0gbnVsbFxuICAgICAgICAmJiBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcHRpb24udmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHsgZmllbGRPcHRpb25WYWx1ZTogb3B0aW9uLnRleHQsIGZpZWxkT3B0aW9uSWQ6IG9wdGlvbi52YWx1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uIH07XG4gICAgfSk7XG4gICAgZmllbGRPcHRpb25zID0gKGZpZWxkT3B0aW9ucyAmJiBBcnJheS5pc0FycmF5KGZpZWxkT3B0aW9ucylcbiAgICAgICYmIGZpZWxkT3B0aW9ucy5sZW5ndGggPiAwKSA/IGZpZWxkT3B0aW9ucyA6IFtdO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm9wdGlvbnMsIGZpZWxkT3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuX3ZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheSAmJiBBcnJheS5pc0FycmF5KHRoaXMuX3ZhbHVlKSkge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5fdmFsdWU/LmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgdGhpcy5maWVsZE9wdGlvbnMuZmluZChvcHQgPT4gb3B0LmZpZWxkT3B0aW9uSWQgPT09IGl0ZW0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLnZhbHVlLCBmaWVsZFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbEluT3B0aW9ucyA9IHRoaXMuZmllbGRPcHRpb25zXG4gICAgICAgICAgLmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkT3B0aW9uSWQgPT09IHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgaWYgKCF2YWxJbk9wdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZFJlcXVpcmVkICYmIHRoaXMuZmllbGRPcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmZpZWxkT3B0aW9uc1swXS5maWVsZE9wdGlvbklkKTtcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZShuZXdWYWx1ZSwgd2lkZ2V0VXBkYXRlID0gdHJ1ZSkge1xuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFVOREVGSU5FRCB8fCBuZXdWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxldCBuZXdGaW5hbFZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmJvb2xlYW5cbiAgICAgIHx8IHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuY2hlY2spIHtcbiAgICAgIG5ld0ZpbmFsVmFsdWUgPSB5bihuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5XG4gICAgICB8fCB0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLm1hcCkge1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSAnJykge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gW107XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZS50b1N0cmluZygpLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBuZXdGaW5hbFZhbHVlKSB7XG4gICAgICB0aGlzLnNldENoYW5nZWQodHJ1ZSk7XG4gICAgICBpZiAod2lkZ2V0VXBkYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLnZhbHVlLCBuZXdGaW5hbFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3RmluYWxWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLE9BQU8sR0FBRztJQUNkLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFlBQVksRUFBRSxlQUFlO0lBQzdCLEtBQUssRUFBRSxPQUFPO0lBQ2QscUJBQXFCLEVBQUUsd0JBQXdCO0lBQy9DLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsUUFBUSxFQUFFLGVBQWU7SUFDekIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFB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Q0FBQyxFQUFFO2dCQUNsQyxhQUFhLEdBQUcsUUFBUSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7YUFBTTtZQUNMLGFBQWEsR0FBRyxRQUFRLENBQUM7U0FDMUI7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssYUFBYSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQzthQUM3QjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeW4gZnJvbSAneW4nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzLCBOT19FUlJPUiB9IGZyb20gJy4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuXG5jb25zdCBVTkRFRklORUQgPSAndW5kZWZpbmVkJztcblxuY29uc3QgREVGQVVMVF9FUlJPUl9UWVBFID0gJ2Vycm9yJztcbmNvbnN0IERFRkFVTFRfQ0FQVFVSRV9UWVBFID0gJ0lOUFVUJztcbmNvbnN0IERFRkFVTFRfQUxJR05NRU5UID0gJ2xlZnQnO1xuXG5jb25zdCBTVERfTUFYX0xFTkdUSCA9IDUwO1xuY29uc3QgQklHX01BWF9MRU5HVEggPSA1MDA7XG5cbmNvbnN0IGZsZEF0dHIgPSB7XG4gIHZhbGlkYXRlT25TZXJ2ZXI6ICd2YWxpZGF0ZU9uU2VydmVyJyxcbiAgdmFsdWU6ICdfdmFsdWUnLFxuICBtaW5WYWx1ZTogJ19taW5WYWx1ZScsXG4gIG1heFZhbHVlOiAnX21heFZhbHVlJyxcbiAgbWF4TGVuZ3RoOiAnX21heExlbmd0aCcsXG4gIG9uVmFsaWRhdGlvbjogJ19vblZhbGlkYXRpb24nLFxuICBmb2N1czogJ2ZvY3VzJyxcbiAgaW50cmluc2ljRXJyb3JNZXNzYWdlOiAnX2ludHJpbnNpY0Vycm9yTWVzc2FnZScsXG4gIGNvZGU6ICdmaWVsZENvZGUnLFxuICBpbmZvOiAnZmllbGRJbmZvJyxcbiAgZGVmYXVsdFZhbHVlOiAnZGVmYXVsdFZhbHVlJyxcbiAgZGVmYXVsdEVkaXRhYmxlOiAnZGVmYXVsdEVkaXRhYmxlJyxcbiAgdmlzaWJsZUxhYmVsOiAndmlzaWJsZUxhYmVsJyxcbiAgcmVxdWlyZWQ6ICdmaWVsZFJlcXVpcmVkJyxcbiAgaGFzQ2hhbmdlZDogJ2hhc0NoYW5nZWQnLFxuICBvdXRwdXRPbmx5OiAnb3V0cHV0T25seScsXG4gIGNhcHR1cmVUeXBlOiAnY2FwdHVyZVR5cGUnLFxuICB0aXRsZTogJ2ZpZWxkVGl0bGUnLFxuICB0eXBlOiAnZmllbGRUeXBlJyxcbiAgYWxpZ25tZW50OiAnZmllbGRBbGlnbm1lbnQnLFxuICBmb3JtYXQ6ICdmaWVsZEZvcm1hdCcsXG4gIGV4dGVybmFsVmFsdWU6ICdleHRlcm5hbFZhbHVlJyxcbiAgdG9vbHRpcFRleHQ6ICd0b29sdGlwVGV4dCcsXG4gIGVycm9yVHlwZTogJ2Vycm9yVHlwZScsXG4gIGVycm9yQ29kZTogJ2Vycm9yQ29kZScsXG4gIGVycm9yTWVzc2FnZTogJ2Vycm9yTWVzc2FnZScsXG4gIG9wdGlvbnM6ICdmaWVsZE9wdGlvbnMnLFxufTtcblxuZXhwb3J0IGNsYXNzIEZpZWxkRGVzY3JpcHRvciBleHRlbmRzIEZvcm1FbGVtZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGlvbkZpbmlzaCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGlvblBhcnRpYWwgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RldGFpbFJlcXVlc3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F0dHJpYnV0ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBwcml2YXRlIHZhbGlkYXRlT25TZXJ2ZXI6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfZm9jdXM6IGJvb2xlYW47XG5cbiAgX21pblZhbHVlOiBhbnk7XG4gIF9tYXhWYWx1ZTogYW55O1xuICBfbWF4TGVuZ3RoOiBudW1iZXI7XG4gIF9vblZhbGlkYXRpb246IGJvb2xlYW47XG4gIF9pbnRyaW5zaWNFcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICBmaWVsZENvZGU6IHN0cmluZztcbiAgZmllbGRJbmZvOiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICBkZWZhdWx0RWRpdGFibGU6IGJvb2xlYW47XG5cbiAgdmlzaWJsZUxhYmVsOiBib29sZWFuO1xuICBmaWVsZFJlcXVpcmVkOiBib29sZWFuO1xuICBoYXNDaGFuZ2VkOiBib29sZWFuO1xuICBvdXRwdXRPbmx5OiBib29sZWFuO1xuICBjYXB0dXJlVHlwZTogc3RyaW5nO1xuICBmaWVsZFRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkVHlwZTogc3RyaW5nO1xuICBmaWVsZEFsaWdubWVudDogc3RyaW5nO1xuICBmaWVsZEZvcm1hdDogUmVnRXhwO1xuICBleHRlcm5hbFZhbHVlOiBhbnk7XG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG5cbiAgZXJyb3JUeXBlOiBzdHJpbmc7XG4gIGVycm9yQ29kZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICBmaWVsZE9wdGlvbnM6IHtcbiAgICBmaWVsZE9wdGlvblZhbHVlOiBzdHJpbmc7XG4gICAgZmllbGRPcHRpb25JZDogc3RyaW5nO1xuICB9W107XG5cbiAgY29uc3RydWN0b3IoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gZWxlbWVudFR5cGVzLmZpZWxkO1xuICAgIGNvbnN0IGZsZCA9IChpbnB1dEZpZWxkUmVjZWl2ZWQpID8gaW5wdXRGaWVsZFJlY2VpdmVkIDoge307XG5cbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5jb2RlLCBmbGQuZmllbGRDb2RlKTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci50aXRsZSwgZmxkLmZpZWxkVGl0bGUgPz8gdGhpcy5maWVsZENvZGUpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmNhcHR1cmVUeXBlLCBmbGQuY2FwdHVyZVR5cGUgPz8gREVGQVVMVF9DQVBUVVJFX1RZUEUpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmRlZmF1bHRWYWx1ZSwgZmxkLmRlZmF1bHRWYWx1ZSA/PyBudWxsKTtcbiAgICBjb25zdCBkZWZhdWx0VHlwZUFsaWdubWVudCA9ICh0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5maWVsZFR5cGVdICE9IG51bGwpXG4gICAgICA/IHRoaXMuX2Zvcm1Db25maWcudGFibGVGaWVsZFN0eWxlc1t0aGlzLmZpZWxkVHlwZV1bJ3RleHQtYWxpZ24nXSA6IERFRkFVTFRfQUxJR05NRU5UO1xuICAgIGNvbnN0IGZpZWxkQWxpZ25tZW50ID0gKGZsZC5hbGlnbm1lbnQgIT0gbnVsbCkgPyBmbGQuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgOiBkZWZhdWx0VHlwZUFsaWdubWVudDtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5hbGlnbm1lbnQsIGZpZWxkQWxpZ25tZW50KTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5pbmZvLCBmbGQuaW5mbyB8fCAnJyk7XG4gICAgbGV0IGZpZWxkRm9ybWF0O1xuICAgIHRyeSB7XG4gICAgICBmaWVsZEZvcm1hdCA9IChmbGQuZm9ybWF0KSA/IG5ldyBSZWdFeHAoZmxkLmZvcm1hdCkgOiBudWxsO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGZpZWxkRm9ybWF0ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZm9ybWF0LCBmaWVsZEZvcm1hdCk7XG5cbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci52YWxpZGF0ZU9uU2VydmVyLCBmbGQuc2VydmVyQWN0aW9uID8/IGZhbHNlKTtcblxuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLnRvb2x0aXBUZXh0LCBmbGQudG9vbHRpcCB8fCAnJyk7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZGVmYXVsdEVkaXRhYmxlLCB0aGlzLmVuYWJsZWQpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLnJlcXVpcmVkLCBmbGQucmVxdWlyZWQgPz8gZmFsc2UpO1xuICAgIHRoaXMuc2V0RXJyb3IoZmxkLmVycm9yQ29kZSwgZmxkLmVycm9yTWVzc2FnZSwgZmxkLmVycm9yVHlwZSA/PyBERUZBVUxUX0VSUk9SX1RZUEUpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm91dHB1dE9ubHksIGZsZC5vdXRwdXRPbmx5ID8/IGZhbHNlKTtcbiAgICBjb25zdCBtYXhMZW5ndGggPSBmbGQubWF4TGVuZ3RoID8/ICh0aGlzLmNhcHR1cmVUeXBlID09PSAnVEVYVEFSRUEnID8gQklHX01BWF9MRU5HVEggOiBTVERfTUFYX0xFTkdUSCk7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIubWF4TGVuZ3RoLCBtYXhMZW5ndGgpO1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmludHJpbnNpY0Vycm9yTWVzc2FnZSwgdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVFcnJNc2dbdGhpcy5maWVsZFR5cGVdID8/IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlRXJyTXNnLkRFRkFVTFQpO1xuXG4gICAgdGhpcy5zZXRGaWVsZFR5cGUoZmxkLmZpZWxkVHlwZUNvZGUpO1xuICAgIHRoaXMuc2V0RWRpdGFibGUoZmxkLmVkaXRhYmxlID8/IHRydWUpO1xuICAgIHRoaXMuc2V0VmlzaWJsZUxhYmVsKGZsZC52aXNpYmxlTGFiZWwgPz8gdHJ1ZSk7XG4gICAgdGhpcy5zZXRWaXNpYmlsaXR5KGZsZC52aXNpYmxlKTtcbiAgICB0aGlzLnNldEZpZWxkT3B0aW9ucyhmbGQuZmllbGRPcHRpb25zKTtcbiAgICB0aGlzLnNldFZhbHVlKGZsZC5maWVsZFZhbHVlIHx8IHRoaXMuZGVmYXVsdFZhbHVlIHx8ICcnKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5maWVsZENvZGU7IH1cbiAgZ2V0IGVkaXRpb25GaW5pc2goKSB7IHJldHVybiB0aGlzLl9lZGl0aW9uRmluaXNoOyB9XG4gIGdldCBhdHRyaWJ1dGVDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2U7IH1cblxuICBnZXQgZWRpdGlvblBhcnRpYWwoKSB7IHJldHVybiB0aGlzLl9lZGl0aW9uUGFydGlhbDsgfVxuICBnZXQgZGV0YWlsUmVxdWVzdCgpIHsgcmV0dXJuIHRoaXMuX2RldGFpbFJlcXVlc3Q7IH1cbiAgZ2V0IGluZm8oKSB7IHJldHVybiB0aGlzLmZpZWxkSW5mbzsgfVxuXG4gIGdldCB2YWxpZGF0aW5nKCkgeyByZXR1cm4gdGhpcy5fb25WYWxpZGF0aW9uOyB9XG4gIHNldCB2YWxpZGF0aW5nKGlzVmFsaWRhdGluZzogYm9vbGVhbikgeyB0aGlzLnNldEF0dHIoZmxkQXR0ci5vblZhbGlkYXRpb24sIGlzVmFsaWRhdGluZyk7IH1cblxuICBmb2N1cygpIHsgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZm9jdXMsIHRydWUpOyB9XG5cbiAgc2V0SW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykgeyB0aGlzLnNldEF0dHIoZmxkQXR0ci5pbnRyaW5zaWNFcnJvck1lc3NhZ2UsIG1lc3NhZ2UpOyB9XG4gIHNldCBpbnRyaW5zaWNFcnJvck1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7IHRoaXMuc2V0SW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2UpOyB9XG5cbiAgZ2V0IGZpZWxkVmFsdWUoKSB7IHJldHVybiB0aGlzLmdldFZhbHVlKCk7IH1cblxuICBnZXRSZXF1aXJlZCgpIHsgcmV0dXJuIHRoaXMucmVxdWlyZWQ7IH1cbiAgc2V0UmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkOyB9XG5cbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5maWVsZFJlcXVpcmVkOyB9XG4gIHNldCByZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikgeyB0aGlzLnNldEF0dHIoZmxkQXR0ci5yZXF1aXJlZCwgcmVxdWlyZWQgPz8gZmFsc2UpOyB9XG4gIGdldCBtYXhMZW5ndGgoKSB7IHJldHVybiAodGhpcy5fbWF4TGVuZ3RoID4gMCkgPyB0aGlzLl9tYXhMZW5ndGgudG9TdHJpbmcoKSA6ICcnOyB9XG4gIHNldCBtYXhMZW5ndGgocmVxdWlyZWRNYXhMZW5ndGg6IGFueSkge1xuICAgIGlmICh0eXBlb2YgcmVxdWlyZWRNYXhMZW5ndGggPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5tYXhMZW5ndGgsIHBhcnNlSW50KHJlcXVpcmVkTWF4TGVuZ3RoLCAxMCkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVpcmVkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIubWF4TGVuZ3RoLCByZXF1aXJlZE1heExlbmd0aCk7XG4gICAgfVxuICB9XG4gIGdldCB2YWx1ZSgpIHsgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTsgfVxuICBzZXQgdmFsdWUobmV3VmFsdWUpIHsgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZSk7IH1cblxuICBub3RpZnlFZGl0aW9uUGFydGlhbCgpIHtcbiAgICBjb25zdCBpbnRyaW5zaWNWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLl9lZGl0aW9uUGFydGlhbC5uZXh0KHsgY29kZTogdGhpcy5maWVsZENvZGUsIGludHJpbnNpY1ZhbGlkYXRpb24gfSk7XG4gIH1cblxuICBub3RpZnlFZGl0aW9uRmluaXNoKCkge1xuICAgIGxldCBpbnRyaW5zaWNWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICBjb25zdCBmaWVsZERlZmF1bHRGb3JtYXQgPSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXNQYXR0ZXJucz8uW3RoaXMuZmllbGRUeXBlXSA/PyBudWxsO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKGZpZWxkVmFsdWUgJiYgKGZpZWxkRGVmYXVsdEZvcm1hdCB8fCB0aGlzLmZpZWxkRm9ybWF0KSkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IChmaWVsZERlZmF1bHRGb3JtYXQ/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSlcbiAgICAgICAgJiYgKHRoaXMuZmllbGRGb3JtYXQ/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSk7XG4gICAgICBpZiAoIWludHJpbnNpY1ZhbGlkYXRpb24pIHtcbiAgICAgICAgdGhpcy5zZXRFcnJvcignOTknLCB0aGlzLl9pbnRyaW5zaWNFcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW50cmluc2ljVmFsaWRhdGlvbiAmJiBmaWVsZFZhbHVlICYmIHRoaXMuX21pblZhbHVlICYmIGZpZWxkVmFsdWUgPCB0aGlzLl9taW5WYWx1ZSkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRFcnJvcignOTknLCAnQ2FtcG8gY29uIHZhbG9yIGluZmVyaW9yIGFsIG3DrW5pbW8nKTtcbiAgICB9XG4gICAgaWYgKGludHJpbnNpY1ZhbGlkYXRpb24gJiYgZmllbGRWYWx1ZSAmJiB0aGlzLl9tYXhWYWx1ZSAmJiBmaWVsZFZhbHVlID4gdGhpcy5fbWF4VmFsdWUpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgJ0NhbXBvIGNvbiB2YWxvciBzdXBlcmlvciBhbCBtw6F4aW1vJyk7XG4gICAgfVxuICAgIHRoaXMuX2VkaXRpb25GaW5pc2gubmV4dCh7IGNvZGU6IHRoaXMuZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uIH0pO1xuICB9XG5cbiAgc2V0QXR0cihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzW25hbWVdID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2Zvcm1Db25maWcubW9uaXRvcmVkRmllbGRBdHRyaWJ1dGVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2UubmV4dCh7IG5hbWUsIHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmeUVkaXRpb25EZXRhaWxSZXF1ZXN0KCkge1xuICAgIHRoaXMuX2RldGFpbFJlcXVlc3QubmV4dCh0aGlzLmZpZWxkQ29kZSk7XG4gIH1cblxuICBzZXRWaXNpYmxlTGFiZWwodmlzaWJsZUxhYmVsOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihmbGRBdHRyLnZpc2libGVMYWJlbCwgdmlzaWJsZUxhYmVsKTsgfVxuICBzaG93TGFiZWwoKSB7IHRoaXMuc2V0VmlzaWJsZUxhYmVsKHRydWUpOyB9XG4gIGhpZGVMYWJlbCgpIHsgdGhpcy5zZXRWaXNpYmxlTGFiZWwoZmFsc2UpOyB9XG5cbiAgc2V0Q2hhbmdlZChoYXNDaGFuZ2VkOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihmbGRBdHRyLmhhc0NoYW5nZWQsIGhhc0NoYW5nZWQpOyB9XG4gIGNoYW5nZWQoKSB7IHRoaXMuc2V0Q2hhbmdlZCh0cnVlKTsgfVxuXG4gIHNldExhYmVsKGxhYmVsKSB7IHRoaXMuc2V0QXR0cihmbGRBdHRyLnRpdGxlLCBsYWJlbCk7IH1cbiAgY2xlYW4oKSB7IHRoaXMuc2V0VmFsdWUodGhpcy5kZWZhdWx0VmFsdWUgfHwgJycpOyB0aGlzLnJlc2V0RXJyb3IoKTsgfVxuICBnZXQgYmFja2VuZCgpIHsgcmV0dXJuIHRoaXMudmFsaWRhdGVPblNlcnZlcjsgfVxuXG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuID0gdHJ1ZSkgeyAoZWRpdGFibGUpID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuZGlzYWJsZSgpOyB9XG5cbiAgaGFzRXJyb3IoKSB7IHJldHVybiB0aGlzLmVycm9yQ29kZSAhPT0gTk9fRVJST1I7IH1cbiAgcmVzZXRFcnJvcigpIHsgKHRoaXMuZXJyb3JDb2RlICE9PSBOT19FUlJPUikgJiYgdGhpcy5zZXRFcnJvcihOT19FUlJPUiwgbnVsbCk7IH1cbiAgc2V0RXJyb3IoY29kZSwgbWVzc2FnZSwgdHlwZSA9IERFRkFVTFRfRVJST1JfVFlQRSkge1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLmVycm9yQ29kZSwgY29kZSA/PyBOT19FUlJPUik7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZXJyb3JUeXBlLCAodGhpcy5lcnJvckNvZGUgPT09IE5PX0VSUk9SKSA/ICcnIDogdHlwZSk7XG4gICAgdGhpcy5zZXRBdHRyKGZsZEF0dHIuZXJyb3JNZXNzYWdlLCBtZXNzYWdlID8/ICcnKTtcbiAgfVxuXG4gIGdldEVycm9yKCkgeyByZXR1cm4geyB0eXBlOiB0aGlzLmVycm9yVHlwZSwgY29kZTogdGhpcy5lcnJvckNvZGUsIG1lc3NhZ2U6IHRoaXMuZXJyb3JNZXNzYWdlIH07IH1cbiAgZ2V0IGVycm9yKCkgeyByZXR1cm4gdGhpcy5nZXRFcnJvcigpOyB9XG4gIHNldCBlcnJvcihlcnJvck9iaikgeyB0aGlzLnNldEVycm9yKGVycm9yT2JqLmNvZGUsIGVycm9yT2JqLm1lc3NhZ2UsIGVycm9yT2JqLnR5cGUgPz8gREVGQVVMVF9FUlJPUl9UWVBFKSB9XG5cbiAgZ2V0RXJyb3JDb2RlKCkgeyByZXR1cm4gdGhpcy5nZXRFcnJvcigpLmNvZGU7IH1cbiAgc2V0RXJyb3JDb2RlKGNvZGUpIHsgdGhpcy5zZXRFcnJvcihjb2RlLCB0aGlzLmVycm9yTWVzc2FnZSk7IH1cbiAgZ2V0RXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5nZXRFcnJvcigpLm1lc3NhZ2U7IH1cbiAgc2V0RXJyb3JNZXNzYWdlKG1zZykgeyB0aGlzLnNldEVycm9yKHRoaXMuZXJyb3JDb2RlLCBtc2cpOyB9XG5cbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5pc0VtcHR5KCk7IH1cblxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpZWxkQ3VycmVudFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmIChmaWVsZEN1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkQ3VycmVudFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCh0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5IHx8IHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMucGhvbmUpXG4gICAgICAmJiBBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSAmJiBmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIGZpZWxkQ3VycmVudFZhbHVlID09PSAnJztcbiAgfVxuXG4gIGdldFZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhblxuICAgICAgfHwgdGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5jaGVjaykge1xuICAgICAgcmV0dXJuIHluKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcihmbGQpIHtcbiAgICBjb25zdCBmaWVsZEtleXMgPSBPYmplY3Qua2V5cyhmbGQpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWVsZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IGZpZWxkS2V5c1tpbmRleF07XG4gICAgICBjb25zdCBhdHRyVmFsdWUgPSBmbGRbYXR0ck5hbWVdO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMudmlzaWJsZSkgJiYgdGhpcy5zZXRWaXNpYmlsaXR5KGF0dHJWYWx1ZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5sYWJlbFZpc2libGUpICYmIHRoaXMuc2V0VmlzaWJsZUxhYmVsKGZsZC52aXNpYmxlTGFiZWwpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMucmVxdWlyZWQpICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLnJlcXVpcmVkLCBmbGQucmVxdWlyZWQgPz8gZmFsc2UpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMuZXJyb3JDb2RlKSAmJiB0aGlzLnNldEF0dHIoZmxkQXR0ci5lcnJvckNvZGUsIGZsZC5lcnJvckNvZGUpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMuZXJyb3JNZXNzYWdlKSAmJiB0aGlzLnNldEF0dHIoZmxkQXR0ci5lcnJvck1lc3NhZ2UsIGZsZC5lcnJvck1lc3NhZ2UpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMudG9vbHRpcCkgJiYgdGhpcy5zZXRBdHRyKGZsZEF0dHIudG9vbHRpcFRleHQsIGZsZC50b29sdGlwKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLmluZm8pICYmIHRoaXMuc2V0QXR0cihmbGRBdHRyLmluZm8sIGZsZC5pbmZvKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLmVkaXRhYmxlKSAmJiB0aGlzLnNldEVkaXRhYmxlKGZsZC5lZGl0YWJsZSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy50aXRsZSkgJiYgdGhpcy5zZXRMYWJlbChmbGQuZmllbGRUaXRsZS50b1N0cmluZygpKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLnZhbHVlKSAmJiAodGhpcy5zZXRWYWx1ZShmbGQuZmllbGRWYWx1ZSkgJiYgdGhpcy5zZXRDaGFuZ2VkKGZhbHNlKSk7XG4gICAgICAoYXR0ck5hbWUgPT09IHRoaXMuX2Zvcm1Db25maWcuYXBpRmllbGRBdHRycy5vcHRpb25zKSAmJiB0aGlzLnNldEZpZWxkT3B0aW9ucyhmbGQuZmllbGRPcHRpb25zKTtcbiAgICAgIChhdHRyTmFtZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5hcGlGaWVsZEF0dHJzLmNhcHR1cmVUeXBlKSAmJiB0aGlzLnNldEF0dHIoZmxkQXR0ci5jYXB0dXJlVHlwZSwgZmxkLmNhcHR1cmVUeXBlIHx8ICdJTlBVVCcpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMudHlwZSkgJiYgdGhpcy5zZXRGaWVsZFR5cGUoZmxkLmZpZWxkVHlwZUNvZGUpO1xuICAgICAgKGF0dHJOYW1lID09PSB0aGlzLl9mb3JtQ29uZmlnLmFwaUZpZWxkQXR0cnMubWF4TGVuZ3RoKSAmJiB0aGlzLnNldEF0dHIoZmxkQXR0ci5tYXhMZW5ndGgsIGZsZC5tYXhMZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpZWxkVHlwZShpbnB1dEZpZWxkVHlwZSkge1xuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLnR5cGUsIGlucHV0RmllbGRUeXBlKTtcbiAgfVxuXG4gIHNldE1pblZhbHVlKGlucHV0TWluVmFsdWUpIHtcbiAgICBsZXQgbWluVmFsdWUgPSBpbnB1dE1pblZhbHVlO1xuICAgIGlmICh0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmRhdGUpIHtcbiAgICAgIG1pblZhbHVlID0gbmV3IERhdGUobWluVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5taW5WYWx1ZSwgbWluVmFsdWUpO1xuICB9XG5cbiAgc2V0TWF4VmFsdWUoaW5wdXRNYXhWYWx1ZSkge1xuICAgIGxldCBtYXhWYWx1ZSA9IGlucHV0TWF4VmFsdWU7XG4gICAgaWYgKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuZGF0ZSkge1xuICAgICAgbWF4VmFsdWUgPSBuZXcgRGF0ZShtYXhWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihmbGRBdHRyLm1heFZhbHVlLCBtYXhWYWx1ZSk7XG4gIH1cblxuICBnZXRGaWVsZE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZE9wdGlvbnMpKTtcbiAgfVxuXG4gIHNldEZpZWxkT3B0aW9ucyhuZXdPcHRpb25zKSB7XG4gICAgaWYgKCh0aGlzLmNhcHR1cmVUeXBlICE9PSAnTElTVCcgJiYgdGhpcy5jYXB0dXJlVHlwZSAhPT0gJ1JBRElPJylcbiAgICAgIHx8IHR5cGVvZiBuZXdPcHRpb25zID09PSBVTkRFRklORUQgfHwgIW5ld09wdGlvbnNcbiAgICAgIHx8ICFBcnJheS5pc0FycmF5KG5ld09wdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmaWVsZE9wdGlvbnMgPSBuZXdPcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgICAgaWYgKG9wdGlvbi50ZXh0ICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnRleHQgIT09IG51bGxcbiAgICAgICAgJiYgb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgb3B0aW9uLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkT3B0aW9uVmFsdWU6IG9wdGlvbi50ZXh0LCBmaWVsZE9wdGlvbklkOiBvcHRpb24udmFsdWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IC4uLm9wdGlvbiB9O1xuICAgIH0pO1xuICAgIGZpZWxkT3B0aW9ucyA9IChmaWVsZE9wdGlvbnMgJiYgQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbnMpXG4gICAgICAmJiBmaWVsZE9wdGlvbnMubGVuZ3RoID4gMCkgPyBmaWVsZE9wdGlvbnMgOiBbXTtcbiAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci5vcHRpb25zLCBmaWVsZE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl92YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXkgJiYgQXJyYXkuaXNBcnJheSh0aGlzLl92YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlPy5maWx0ZXIoaXRlbSA9PlxuICAgICAgICAgIHRoaXMuZmllbGRPcHRpb25zLmZpbmQob3B0ID0+IG9wdC5maWVsZE9wdGlvbklkID09PSBpdGVtKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci52YWx1ZSwgZmllbGRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWxJbk9wdGlvbnMgPSB0aGlzLmZpZWxkT3B0aW9uc1xuICAgICAgICAgIC5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZE9wdGlvbklkID09PSB0aGlzLl92YWx1ZSk7XG4gICAgICAgIGlmICghdmFsSW5PcHRpb25zKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGRSZXF1aXJlZCAmJiB0aGlzLmZpZWxkT3B0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5maWVsZE9wdGlvbnNbMF0uZmllbGRPcHRpb25JZCk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsdWUobmV3VmFsdWUsIHdpZGdldFVwZGF0ZSA9IHRydWUpIHtcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09PSBVTkRFRklORUQgfHwgbmV3VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsZXQgbmV3RmluYWxWYWx1ZTtcbiAgICBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuXG4gICAgICB8fCB0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmNoZWNrKSB7XG4gICAgICBuZXdGaW5hbFZhbHVlID0geW4obmV3VmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheVxuICAgICAgfHwgdGhpcy5maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5tYXApIHtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gbnVsbCB8fCBuZXdWYWx1ZSA9PT0gJycpIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IFtdO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdGaW5hbFZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbmV3RmluYWxWYWx1ZSkge1xuICAgICAgdGhpcy5zZXRDaGFuZ2VkKHRydWUpO1xuICAgICAgaWYgKHdpZGdldFVwZGF0ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHIoZmxkQXR0ci52YWx1ZSwgbmV3RmluYWxWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld0ZpbmFsVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -86,4 +86,4 @@ FieldComponent.propDecorators = {
86
86
  field: [{ type: Input }],
87
87
  state: [{ type: Input }]
88
88
  };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUt0QixNQUFNLE9BQU8sY0FBYztJQTBCekIsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLGlCQUFpQjtZQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLGNBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFHLFNBQVMsQ0FBQyxDQUFBO2dCQUM5QyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsa0JBQWtCLENB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QUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7b0JBd0JFLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG4gIC8vIEF0cmlidXRvcyBvYnRlbmlkb3MgZXN0w6F0aWNhbWVudGVcbiAgY29kZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBmaWVsZEluZm86IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcblxuICAvLyBBdHJpYnV0b3MgYWN0dWFsaXphZG9zIHBvciBzdWJzY3JpcGNpw7NuXG4gIG1heExlbmd0aDogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgc3RhdGU6IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5maWVsZD8uX2Zvcm1Db25maWc7XG4gICAgICAvLyBJbmljaWFsaXphY2nDs25cbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWcuY29tcG9uZW50RmllbGRBdHRyTWFwKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBbZmllbGRBdHRyMSwgY29tcEF0dHIxXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IGNvbXBBdHRyMS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBmaWVsZEF0dHIgPSBmaWVsZEF0dHIxLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5maWVsZD8uW2ZpZWxkQXR0cl1cbiAgICAgICAgdGhpcy5kYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICB9XG4gICAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICAgIHRoaXMuZmllbGQuYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZTogZmllbGRBdHRyLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGNvbXBBdHRyID0gdGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudEZpZWxkQXR0ck1hcFtmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRhZmF1bHRQcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBkYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IFZBTFVFKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NGaWVsZENoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuICBzdGFydCgpIHsgfVxuICBmb2N1cygpIHsgfVxuXG4gIHVwZGF0ZU9iamVjdCgpIHtcbiAgICB0aGlzLmZpZWxkLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZUNvbnRlbnQoKTtcbiAgfVxuXG4gIGlucHV0VHlwZWQoKSB7XG4gICAgdGhpcy5maWVsZC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpZWxkLmdldFZhbHVlKCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZC5ub3RpZnlFZGl0aW9uUGFydGlhbCgpLCA1MCk7XG4gIH1cblxuICBvbkNoYW5nZUNvbnRlbnQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkLm5vdGlmeUVkaXRpb25GaW5pc2goKSwgNTApO1xuICB9XG5cbiAgb25TaG93SW5mbygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmllbGQubm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoKSwgNTApO1xuICB9XG5cbiAgbnVtYmVySW5wdXRWYWxpZGF0aW9uKGV2ZW50KSB7XG4gICAgY29uc3QgayA9IGV2ZW50LmNoYXJDb2RlO1xuICAgIHJldHVybiAoayA+IDQ3ICYmIGsgPCA1OCk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZD8udmlzaWJsZU9uKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5maWVsZD8uZW5hYmxlZE9uKHRoaXMuc3RhdGUpO1xuICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUt0QixNQUFNLE9BQU8sY0FBYztJQTRCekIsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLGlCQUFpQjtZQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLGNBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFHLFNBQVMsQ0FBQyxDQUFBO2dCQUM5QyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ25EO1lBQ0Qsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQseUJBQXlCLENBQUMsU0FBaUIsRUFBRSxLQUFXO1FBQ3RELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7YUFBTSxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxLQUFXLElBQUksQ0FBQztJQUN0RCxLQUFLLEtBQUssQ0FBQztJQUNYLEtBQUssS0FBSyxDQUFDO0lBRVgsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxhQUFhO1FBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVU7UUFDUixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU87O1FBQ1QsT0FBTyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksUUFBUTs7UUFDVixPQUFPLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQztJQUM1QyxDQUFDOzs7WUEvR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7b0JBMEJFLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG4gIC8vIEF0cmlidXRvcyBvYnRlbmlkb3MgZXN0w6F0aWNhbWVudGVcbiAgY29kZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBmaWVsZEluZm86IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcblxuICAvLyBBdHJpYnV0b3MgYWN0dWFsaXphZG9zIHBvciBzdWJzY3JpcGNpw7NuXG4gIG1heExlbmd0aDogYW55O1xuICBtaW5WYWx1ZTogYW55O1xuICBtYXhWYWx1ZTogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgc3RhdGU6IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5maWVsZD8uX2Zvcm1Db25maWc7XG4gICAgICAvLyBJbmljaWFsaXphY2nDs25cbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWcuY29tcG9uZW50RmllbGRBdHRyTWFwKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBbZmllbGRBdHRyMSwgY29tcEF0dHIxXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IGNvbXBBdHRyMS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBmaWVsZEF0dHIgPSBmaWVsZEF0dHIxLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5maWVsZD8uW2ZpZWxkQXR0cl1cbiAgICAgICAgdGhpcy5kYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0ZpZWxkQ2hhbmdlKGNvbXBBdHRyLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICB9XG4gICAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICAgIHRoaXMuZmllbGQuYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZTogZmllbGRBdHRyLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGNvbXBBdHRyID0gdGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudEZpZWxkQXR0ck1hcFtmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRhZmF1bHRQcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzRmllbGRDaGFuZ2UoY29tcEF0dHIsIHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBkYWZhdWx0UHJvY2Vzc0ZpZWxkQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSkge1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IFZBTFVFKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3NGaWVsZENoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuICBzdGFydCgpIHsgfVxuICBmb2N1cygpIHsgfVxuXG4gIHVwZGF0ZU9iamVjdCgpIHtcbiAgICB0aGlzLmZpZWxkLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZUNvbnRlbnQoKTtcbiAgfVxuXG4gIGlucHV0VHlwZWQoKSB7XG4gICAgdGhpcy5maWVsZC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpZWxkLmdldFZhbHVlKCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZC5ub3RpZnlFZGl0aW9uUGFydGlhbCgpLCA1MCk7XG4gIH1cblxuICBvbkNoYW5nZUNvbnRlbnQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkLm5vdGlmeUVkaXRpb25GaW5pc2goKSwgNTApO1xuICB9XG5cbiAgb25TaG93SW5mbygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmllbGQubm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoKSwgNTApO1xuICB9XG5cbiAgbnVtYmVySW5wdXRWYWxpZGF0aW9uKGV2ZW50KSB7XG4gICAgY29uc3QgayA9IGV2ZW50LmNoYXJDb2RlO1xuICAgIHJldHVybiAoayA+IDQ3ICYmIGsgPCA1OCk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZD8udmlzaWJsZU9uKHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5maWVsZD8uZW5hYmxlZE9uKHRoaXMuc3RhdGUpO1xuICB9XG59XG4iXX0=
@@ -1264,6 +1264,14 @@ class FieldDescriptor extends FormElement {
1264
1264
  this.setError('99', this._intrinsicErrorMessage);
1265
1265
  }
1266
1266
  }
1267
+ if (intrinsicValidation && fieldValue && this._minValue && fieldValue < this._minValue) {
1268
+ intrinsicValidation = false;
1269
+ this.setError('99', 'Campo con valor inferior al mínimo');
1270
+ }
1271
+ if (intrinsicValidation && fieldValue && this._maxValue && fieldValue > this._maxValue) {
1272
+ intrinsicValidation = false;
1273
+ this.setError('99', 'Campo con valor superior al máximo');
1274
+ }
1267
1275
  this._editionFinish.next({ code: this.fieldCode, intrinsicValidation });
1268
1276
  }
1269
1277
  setAttr(name, value) {