@esfaenza/extensions 13.1.6 → 13.1.7

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.
@@ -172,7 +172,7 @@ export class DateService {
172
172
  tryThis = toCall(date, this.cfg.smallDate);
173
173
  else if (length == this.cfg.fulldateNoSS.length)
174
174
  tryThis = toCall(date, this.cfg.fulldateNoSS);
175
- if (tryThis.isValid())
175
+ if (tryThis && tryThis.isValid())
176
176
  return tryThis;
177
177
  // Se niente funziona, null.
178
178
  // Ricondurre l'Input ad una data non è possibile.
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
229
229
  type: Inject,
230
230
  args: [EXT_ALLOW_UTC]
231
231
  }] }]; } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELFVBQVU7QUFDVixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFRckQ7O0VBRUU7QUFFSCxNQUFNLE9BQU8sV0FBVztJQTZCcEI7Ozs7T0FJRztJQUNILFlBQTJELE1BQWMsRUFBNkMsUUFBaUI7UUFBNUUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUE2QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBaEN2STs7V0FFRztRQUNLLFFBQUcsR0FBRztZQUNWLG1CQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1lBQ3JFLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtZQUN0Rix3QkFBd0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEYsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7WUFDN0UscUNBQXFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUU7WUFDN0YsdUNBQXVDLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1lBQ3JHLDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixF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bUIsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7O3dHQXpPUSxXQUFXLGtCQWtDbUIsVUFBVSw2QkFBOEMsYUFBYTs0R0FsQ25HLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsVUFBVTs7MEJBbUNhLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVTs7MEJBQTJCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEVYVF9BTExPV19VVEMsIEVYVF9MT0NBTEUgfSBmcm9tIFwiLi4vdG9rZW5zXCI7XHJcblxyXG4vKipcclxuICogRGljaGlhcmF6aW9uZSBkZWxsYSB2YXJpYWJpbGUgZ2xvYmFsZSBkYXlqcy4gTCdvbmVyZSBkaSBcImNyZWFybGFcIiDDqCBhZmZpZGF0byBhbGwnYXBwbGljYXppb25lIGNoZSB1dGlsaXp6YSBxdWVzdGEgbGlicmVyaWEsIFxyXG4gKiBjaGUgZG92csOgIGltcG9ydGFyZSBsbyBzY3JpcHQgZ2xvYmFsZSBkaSBkYXlqcyBuZWxsYSBDTElcclxuICovXHJcbiBkZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5cclxuIC8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSBkZWkgbWV0b2RpIGRpIGVzdGVuc2lvbmUgcGVyIGxhIGdlc3Rpb25lL21hbmlwb2xhemlvbmUgZGVsbGUgZGF0ZVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF0ZVNlcnZpY2Uge1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIE9nZ2V0dG8gc3RhdGljbyBkaSBsb2NhbGl6emF6aW9uZSBwZXIgaSBtZXNzYWdnaSBkaSBxdWVzdGEgU2VydmljZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGxvYyA9IHtcclxuICAgICAgICBcIlNNQUxMX0RBVEVfRk9STUFUXCI6IHsgJ2VuLVVTJzogXCJNTS9ERC9ZWVlZXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWVwiIH0sXHJcbiAgICAgICAgXCJGVUxMX0RBVEVfRk9STUFUXCI6IHsgJ2VuLVVTJzogXCJNTS9ERC9ZWVlZIEhIOm1tOnNzXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbTpzc1wiIH0sXHJcbiAgICAgICAgXCJGVUxMX0RBVEVfRk9STUFUX05PX1NTXCI6IHsgJ2VuLVVTJzogXCJNTS9ERC9ZWVlZIEhIOm1tXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbVwiIH0sXHJcbiAgICAgICAgXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWVwiIH0sXHJcbiAgICAgICAgXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUX1dJVEhfSE9VUlwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWSBISFwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEhcIiB9LFxyXG4gICAgICAgIFwiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX01JTlVURVwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWSBISDptbVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW1cIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0RJU1BMQVlfRk9STUFUXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbTpzc1wiIH0sXHJcbiAgICAgICAgXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRfTk9fU1NcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEg6bW1cIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9nZ2V0dG8gZGkgY29uZmlndXJhemlvbmUgcGVyIHRlbmVyZSBkYSBjb250byBsZSBpbmZvcm1hemlvbmkgc3VpIGZvcm1hdGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjZmcgPSB7XHJcbiAgICAgICAgZnVsbGRhdGU6IFwiXCIsXHJcbiAgICAgICAgZnVsbGRhdGVEaXNwbGF5OiBcIlwiLFxyXG4gICAgICAgIHNtYWxsRGF0ZTogXCJcIixcclxuICAgICAgICBmdWxsZGF0ZU5vU1M6IFwiXCIsXHJcbiAgICAgICAgc21hbGxEYXRlV2l0aEg6IFwiXCIsXHJcbiAgICAgICAgc21hbGxEYXRlV2l0aE06IFwiXCIsXHJcbiAgICAgICAgZnVsbGRhdGVEaXNwbGF5Tm9TUzogXCJcIlxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmVcclxuICAgICAqIFxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChFWFRfTE9DQUxFKSBwcml2YXRlIExPQ0FMRTogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEVYVF9BTExPV19VVEMpIHByaXZhdGUgYWxsb3dVdGM6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGUgPSB0aGlzLmxvY1tcIlNNQUxMX0RBVEVfRk9STUFUXCJdW3RoaXMuTE9DQUxFID8/ICdpdC1JVCddO1xyXG4gICAgICAgIHRoaXMuY2ZnLmZ1bGxkYXRlID0gdGhpcy5sb2NbXCJGVUxMX0RBVEVfRk9STUFUXCJdW3RoaXMuTE9DQUxFID8/ICdpdC1JVCddO1xyXG4gICAgICAgIHRoaXMuY2ZnLmZ1bGxkYXRlTm9TUyA9IHRoaXMubG9jW1wiRlVMTF9EQVRFX0ZPUk1BVF9OT19TU1wiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXkgPSB0aGlzLmxvY1tcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXlOb1NTICA9dGhpcy5sb2NbXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRfTk9fU1NcIl1bdGhpcy5MT0NBTEUgPz8gJ2l0LUlUJ107XHJcbiAgICAgICAgdGhpcy5jZmcuc21hbGxEYXRlID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUXCJdW3RoaXMuTE9DQUxFID8/ICdpdC1JVCddO1xyXG4gICAgICAgIHRoaXMuY2ZnLnNtYWxsRGF0ZVdpdGhIID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUX1dJVEhfSE9VUlwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGVXaXRoTSA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX01JTlVURVwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFnZ2l1c3RhIHVuYSBkYXRhIGluIFwiaXN0YW50ZSBmaW5hbGVcIiBpbiBiYXNlIGEgcXVhbCDDqCBsYSBwYXJ0ZSBkaSBkYXRhIHNpZ25pZmljYXRpdmEuXHJcbiAgICAgKiBcclxuICAgICAqIEVzLiBJc3RhbnRlIGZpbmFsZSBkZWxsZSBvcmU6IDA1LzEwLzE5OTIgLS0+IDA0LzEwLzE5OTIgMjQ6MDAoOjAwKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZGF0ZSBEYXRhIHF1YWxzaWFzaSAoRGF0ZSwgc3RyaW5nYSwgZGF5anMuLi4pLCB2ZXJyw6Agcmljb25kb3R0YSBhZCB1biBvZ2dldHRvIGRheUpzXHJcbiAgICAgKiBAcGFyYW0geydkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZSd9IHRpbWVwYXJ0IFBhcnRlIHNpZ25pZmljYXRpdmEgZGVsbGEgZGF0YVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBwcmludFNlY29uZHMgSW5kaWNhIHNlIGVmZmV0dHVhcmUgbGEgc3RhbXBhIGRlaSBzZWNvbmRpIG8gbm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkanVzdERhdGVUb0ZpbmFsSW5zdGFudChkYXRlOiBhbnksIHRpbWVwYXJ0OiAnZGF5JyB8ICdob3VyJyB8ICdtaW51dGUnLCBwcmludFNlY29uZHM6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgbXlkdCA9IHRoaXMuZ2V0RGF0ZUNvbnZlcnRpb24oZGF0ZSk7XHJcbiAgICAgICAgaWYgKG15ZHQgPT0gbnVsbCkgcmV0dXJuIFwiRkU6IE5vdCBhIERhdGVcIjtcclxuXHJcbiAgICAgICAgbGV0IGlzWmVyb1RpbWUgPSBteWR0LnN0YXJ0T2YodGltZXBhcnQpLnZhbHVlT2YoKSA9PT0gbXlkdC52YWx1ZU9mKCk7XHJcbiAgICAgICAgaWYgKCFpc1plcm9UaW1lKSByZXR1cm4gcHJpbnRTZWNvbmRzID8gbXlkdC5mb3JtYXQodGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5KSA6IG15ZHQuZm9ybWF0KHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheU5vU1MpO1xyXG5cclxuICAgICAgICBsZXQgdG1wVmFsdWUgPSBteWR0LnN1YnRyYWN0KDEsIHRpbWVwYXJ0KTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWxsZSBvcmU6IDA1LzEwLzE5OTIgLS0+IDA0LzEwLzE5OTIgMjQ6MDAoOjAwKVxyXG4gICAgICAgIGlmICh0aW1lcGFydCA9PSAnZGF5JylcclxuICAgICAgICAgICAgdmFsdWUgPSB0bXBWYWx1ZS5mb3JtYXQodGhpcy5jZmcuc21hbGxEYXRlKSArIFwiIDI0OjAwXCIgKyAocHJpbnRTZWNvbmRzID8gJzowMCcgOiAnJyk7XHJcblxyXG4gICAgICAgIC8vIElzdGFudGUgZmluYWxlIGRlaSBtaW51dGk6IGdpb3JubyAwNS8xMC8xOTkyIDA0OjAwOjAwIC0tPiAwNS8xMC8xOTkyIDAzOjYwKDowMClcclxuICAgICAgICBlbHNlIGlmICh0aW1lcGFydCA9PSAnaG91cicpXHJcbiAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWUuZm9ybWF0KHRoaXMuY2ZnLnNtYWxsRGF0ZVdpdGhIKSArIFwiOjYwXCIgKyAocHJpbnRTZWNvbmRzID8gJzowMCcgOiAnJyk7XHJcblxyXG4gICAgICAgIC8vIElzdGFudGUgZmluYWxlIGRlaSBzZWNvbmRpOiBnaW9ybm8gMDUvMTAvMTk5MiAwNDoxMDowMCAtLT4gMDUvMTAvMTk5MiAwNDowOTo2MFxyXG4gICAgICAgIGVsc2UgaWYgKHRpbWVwYXJ0ID09ICdtaW51dGUnKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IHRtcFZhbHVlLmZvcm1hdCh0aGlzLmNmZy5zbWFsbERhdGVXaXRoTSkgKyBcIjo2MFwiO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW56aW9uZSBjaGUgZWZmZXR0dWEgbCdvcmRpbmFtZW50byBmcmEgMiBkYXRlIGluIGJhc2UgYWxsYSBkaXJlemlvbmUgc3BlY2lmaWNhdGFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGEgUHJpbWEgZGF0YSBwZXIgaWwgY29uZnJvbnRvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gYiBTZWNvbmRhIGRhdGEgcGVyIGlsIGNvbmZyb250b1xyXG4gICAgICogQHBhcmFtIHsnYXNjJyB8ICdkZXNjJ30gZGlyZWN0aW9uIERpcmV6aW9uZSByaXNwZXR0byBhIGN1aSBvcmRpbmFyZSBsZSBkdWUgZGF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSAwIHNlIGxlIGRhdGUgc29ubyB1Z3VhbGksIDEgc2UgbGEgZGF0YSBBIGRldmUgdmVuaXJlIGxvZ2ljYW1lbnRlIHByaW1hIGRlbGxhIGRhdGEgQiwgLTEgYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZVNvcnQoYTogYW55LCBiOiBhbnksIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIGRpcmVjdGlvbiA9PSAnYXNjJyA/IDEgOiAtMTtcclxuICAgICAgICBlbHNlIGlmIChhID4gYikgcmV0dXJuIGRpcmVjdGlvbiA9PSAnYXNjJyA/IC0xIDogMTtcclxuXHJcbiAgICAgICAgLy8gY29uIGEgdWd1YWxlIGEgYlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgaWwgdHJpbSBkZWkgc2Vjb25kaSBkYSB1bmEgZGF0YSBlc3ByZXNzYSBjb21lIHN0cmluZ2FcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIERhdGEgZXNwcmVzc2EgY29tZSBzdHJpbmdhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IERhdGEgc2VuemEgaSBzZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmltU2Vjb25kcyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvL0kgbnVtZXJpIG1hbmdpYXRpIGRhIGRheWpzIHNwZXNzbyB2ZW5nb25vIHJpY29uZG90dGkgYSBkYXRlIHZlcmUuIE1pIGFzc2ljdXJvIGNoZSBzZSBjaSBzb25vIHNvbG8gbnVtZXJpIHByb3NlZ3VvXHJcbiAgICAgICAgaWYgKCFpc05hTig8YW55PnZhbHVlKSlcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgICAgICAvL1NlIG5vbiBobyBxdWFsY29zYSBkZWwgdGlwbyBYWC9ZWS9aWlpaIGFhOmJiOmNjIGRpIHNpY3VybyBub24gw6ggdW5hIGRhdGEgY2hlIG1pIGludGVyZXNzYVxyXG4gICAgICAgIGlmICghL15cXGRcXGRcXC9cXGRcXGRcXC9cXGRcXGRcXGRcXGQgXFxkXFxkOlxcZFxcZDpcXGRcXGQkL2cudGVzdCh2YWx1ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgLy9JbiBxdWVzdG8gY2FzbyBtaSBhcnJpdmFubyB2YWxvcmkgY2hlIGRldm9ubyBlc3NlcmUgc3RhbXBhdGkgYXMtaXMsIHNvbG8gdGFnbGlhbmRvIGkgc2Vjb25kaVxyXG4gICAgICAgIHJldHVybiBcIidcIiArIHZhbHVlLnN1YnN0cigwLCB2YWx1ZS5sZW5ndGggLSAzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGEgdW5hIGxpc3RhIGRpIGRhdGUgRGEgZSB1bmEgbGlzdGEgZGkgZGF0ZSBBIHJlc3RpdHVpc2NlIHVuIG9nZ2V0dG8gcmFwcHJlc2VudGFudGUgaWwgcmFuZ2UgY2hlIGluY2x1ZGUgdHV0dGUgbGUgZGF0ZSBwYXNzYXRlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55W119IGZyb21EYXRlcyBMaXN0YSBkZWkgRGFcclxuICAgICAqIEBwYXJhbSB7YW55W119IHRvRGF0ZXMgTGlzdGEgZGVpIEFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3sgZnJvbTogYW55LCB0bzogYW55IH19IFJhbmdlIGRpIGRhdGUgRGEgLSBBIGNoZSBpbmNsdWRlIHR1dHRpIGkgdmFsb3JpIGRpICoqZnJvbURhdGVzKiogZSAqKnRvRGF0ZXMqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWluTWF4RGF0ZXNSYW5nZShmcm9tRGF0ZXM6IGFueVtdLCB0b0RhdGVzOiBhbnlbXSk6IHsgZnJvbTogYW55LCB0bzogYW55IH0ge1xyXG4gICAgICAgIGxldCBkYXRlc0Zyb21zOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBkYXRlc1RvOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZnJvbURhdGVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGQgPSBmcm9tRGF0ZXNbaV07XHJcbiAgICAgICAgICAgIHZhciBjb252ZXJ0aW9uID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkKTtcclxuICAgICAgICAgICAgaWYgKGNvbnZlcnRpb24pXHJcbiAgICAgICAgICAgICAgICBkYXRlc0Zyb21zLnB1c2goY29udmVydGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdG9EYXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBkID0gdG9EYXRlc1tpXTtcclxuICAgICAgICAgICAgdmFyIGNvbnZlcnRpb24gPSB0aGlzLmdldERhdGVDb252ZXJ0aW9uKGQpO1xyXG4gICAgICAgICAgICBpZiAoY29udmVydGlvbilcclxuICAgICAgICAgICAgICAgIGRhdGVzVG8ucHVzaChjb252ZXJ0aW9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGZyb206IGRheWpzLm1pbihkYXRlc0Zyb21zKSwgdG86IGRheWpzLm1heChkYXRlc1RvKSB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBsYSBjb252ZXJzaW9uZSBkaSB1bmEgZGF0YSBpbiBxdWFsc2lhc2kgZm9ybWF0byBhbCBmb3JtYXRvIHN0YW5kYXJkIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBkYXRlIE9nZ2V0dG8gcmFwcHJlc2VudGFudGUgdW5hIGRhdGEuIFBvdHJlYmJlIGVzc2VyZSB1bmEgc3RyaW5nYSwgdW4gRGF0ZSBvIGdpw6AgdW4gRGF5SnNcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdXNlVXRjIEluZGljYSBzZSB1c2FyZSBsJ2VzdGVuc2lvbmUgdXRjIGRpIERheWpzIHBlciBwYXJzYXJlIGxhIGRhdGEgbyBub1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBEYXRhIGluIG1vZGFsaXTDoCBEYXlKc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0ZUNvbnZlcnRpb24oZGF0ZTogYW55LCB1c2VVdGM6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNEYXlKcyhkYXRlKSlcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuaXNKc0RhdGUoZGF0ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB1c2VVdGMgPyBkYXlqcy51dGMoZGF0ZSk6IGRheWpzKGRhdGUpO1xyXG5cclxuICAgICAgICAvLyBTZSBub24gYyfDqCBsYSBwcm9wcmlldMOgIGxlbmd0aCB2dW9sIGRpcmUgY2hlIG5vbiDDqCB1bmEgc3RyaW5nYSBlIGEgcXVlc3RvIHB1bnRvIG5vbiBobyBpZGVhIGRpIGNoZSBtaW5jaGlhIHNpYVxyXG4gICAgICAgIGxldCBsZW5ndGggPSBkYXRlLmxlbmd0aDtcclxuICAgICAgICBpZiAoIWxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGlmICh1c2VVdGMgJiYgIXRoaXMuYWxsb3dVdGMpXHJcbiAgICAgICAgICAgIHRocm93IFwiQGVzZmFlbnphL2V4dGVuc2lvbnM6IFJpY2hpZXN0YSBkYXRhIFVUQyBtYSBkYSBjb25maWd1cmF6aW9uZSBsYSBsaWJyZXJpYSBub24gbG8gc3VwcG9ydGFcIjtcclxuXHJcbiAgICAgICAgLy8gUGVyIHJpc3Bhcm1pYXJlIGNoaWFtYXRlIGEgdGVudG9uaSwgaW4gYmFzZSBhbGxhIGx1bmdoZXp6YSBkZWxsYSBzdHJpbmdhIGNoaWFtbyBkaXJldHRhbWVudGUgaWwgbWV0b2RvIGdpdXN0bywgXHJcbiAgICAgICAgLy8gY29udHJvbGxhbmRvIHBvaSBjaGUgbWkgZ2VuZXJpIHVuYSBkYXRhIGNvbWUgbWUgbGEgYXNwZXR0byBpb1xyXG4gICAgICAgIGxldCB0cnlUaGlzID0gbnVsbDtcclxuICAgICAgICBsZXQgdG9DYWxsID0gdXNlVXRjID8gZGF5anMudXRjIDogZGF5anM7XHJcblxyXG4gICAgICAgIC8vIFNlIGxhIGRhdGEgY29udGllbmUgbGEgbGV0dGVyYSBcIlRcIiB2dW9sIGRpcmUgY2hlIMOoIHVuYSBkYXRhIGRlbCB0aXBvIDIwMjAtMTAtMTVUMDA6MDA6MDAsIGRpcmV0dGFtZW50ZSBwYXJzYWJpbGUgZGFsIGRheWpzIGNvbCBsb2NhbGUgY29ycmV0dG8uXHJcbiAgICAgICAgLy8gUGVyIGlsIHJlc3RvIG1pIGJhc28gc3VsbGEgbHVuZ2hlenphIGRlbGxhIHN0cmluZ2FcclxuICAgICAgICBpZiAoKDxzdHJpbmc+ZGF0ZSkuaW5jbHVkZXMoXCJUXCIpKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5mdWxsZGF0ZS5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRyeVRoaXMgPSB0b0NhbGwoZGF0ZSwgdGhpcy5jZmcuZnVsbGRhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5zbWFsbERhdGUubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLnNtYWxsRGF0ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAobGVuZ3RoID09IHRoaXMuY2ZnLmZ1bGxkYXRlTm9TUy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRyeVRoaXMgPSB0b0NhbGwoZGF0ZSwgdGhpcy5jZmcuZnVsbGRhdGVOb1NTKVxyXG5cclxuICAgICAgICBpZiAodHJ5VGhpcy5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnlUaGlzO1xyXG5cclxuICAgICAgICAvLyBTZSBuaWVudGUgZnVuemlvbmEsIG51bGwuIFxyXG4gICAgICAgIC8vIFJpY29uZHVycmUgbCdJbnB1dCBhZCB1bmEgZGF0YSBub24gw6ggcG9zc2liaWxlLlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSByZXN0aXR1aXNjZSAqKnRydWUqKiBxdWFsb3JhIGwnb2dnZXR0byBwYXNzYXRvIGZvc3NlIHVuYSBkYXRhIHZlcmEgZSBwcm9wcmlhLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gY2hlY2sgT2dnZXR0byBkYSBjb250cm9sbGFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF0ZSBkaSBKYXZhc2NyaXB0IG8gbm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc0pzRGF0ZShjaGVjazogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGNoZWNrICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjaGVjaykgPT09IFwiW29iamVjdCBEYXRlXVwiICYmICFpc05hTihjaGVjayk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHJlc3RpdHVpc2NlICoqdHJ1ZSoqIHF1YWxvcmEgbCdvZ2dldHRvIHBhc3NhdG8gZm9zc2UgdW4gRGF5SnMgdmVybyBlIHByb3ByaW8sICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBjaGVjayBPZ2dldHRvIGRhIGNvbnRyb2xsYXJlXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF5SnMgbyBub1xyXG4gICAgICovXHJcbiAgICAgcHJpdmF0ZSBpc0RheUpzKGNoZWNrOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBOb24gdXNvIGluc3RhbmNlb2YgcGVyY2jDqSBzYXJlYmJlIGVzdHJlbWFtZW50ZSBwacO5IGxlbnRvXHJcbiAgICAgICAgLy8gTm9uIHVzbyBuZW1tZW5vIGlzRGF5anMoKSBkZWxsYSBsaWJyZXJpYSBEYXlqcyBkYXRvIGNoZSBoYSBsbyBzdGVzc28gcHJvYmxlbWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvYmxvYi8wNmY4OGY0MjU4MjhiMWNlOTZiNzM3MzMyZDI1MTQ1YTk1YTRlZTlkL3NyYy9pbmRleC5qcyNMOVxyXG4gICAgICAgIHJldHVybiBjaGVjay4kRCAhPT0gdW5kZWZpbmVkICYmIGNoZWNrLiRNICE9PSB1bmRlZmluZWQgJiYgY2hlY2suJHkgIT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgZm9ybWF0dGF6aW9uZSBkaSB1bmEgZGF0YSBpbiBiYXNlIGFsbGEgdmVyc2lvbmUgcmljaGllc3RhIFwic21hbGxcIiBvIFwibG9uZ1wiIGUgYSBzZSBzdGFtcGFyZSBvIG1lbm8gaSBzZWNvbmRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBkYXRlIE9nZ2V0dG8gcmFwcHJlc2VudGFudGUgdW5hIGRhdGEuIFBvdHJlYmJlIGVzc2VyZSB1bmEgc3RyaW5nYSwgdW4gRGF0ZSBvIGdpw6AgdW4gRGF5SnNcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc21hbGwgSW5kaWNhIHNlIGZvcm1hdHRhcmxhIGNvbiB1biBmb3JtYXRvIGJyZXZlIChzZSAqKnRydWUqKikgbyB1biBmb3JtYXRvIHBpw7kgbHVuZ28gKHNlICoqZmFsc2UqKilcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gRGF0YSBmb3JtYXR0YXRhIG5lbCBmb3JtYXRvIHJpY2hpZXN0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Rm9ybWF0dGVkKGRhdGU6IGFueSwgc21hbGw6IGJvb2xlYW4sIHNlY29uZHM6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHZhciBkYXRlID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkYXRlKTtcclxuICAgICAgICBpZiAoIWRhdGUpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoc21hbGwgPyB0aGlzLmNmZy5zbWFsbERhdGUgOiBzZWNvbmRzID8gdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5IDogdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5Tm9TUyk7XHJcbiAgICB9XHJcbn0iXX0=
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELFVBQVU7QUFDVixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFRckQ7O0VBRUU7QUFFSCxNQUFNLE9BQU8sV0FBVztJQTZCcEI7Ozs7T0FJRztJQUNILFlBQTJELE1BQWMsRUFBNkMsUUFBaUI7UUFBNUUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUE2QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBaEN2STs7V0FFRztRQUNLLFFBQUcsR0FBRztZQUNWLG1CQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1lBQ3JFLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtZQUN0Rix3QkFBd0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEYsMkJBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7WUFDN0UscUNBQXFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUU7WUFDN0YsdUNBQXVDLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1lBQ3JHLDBCQUEwQixFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixF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LENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2SCxDQUFDOzt3R0F6T1EsV0FBVyxrQkFrQ21CLFVBQVUsNkJBQThDLGFBQWE7NEdBbENuRyxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQW1DYSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUEyQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBFWFRfQUxMT1dfVVRDLCBFWFRfTE9DQUxFIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG4gZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbiAvKipcclxuICogU2VydmljZSBjaGUgZm9ybmlzY2UgZGVpIG1ldG9kaSBkaSBlc3RlbnNpb25lIHBlciBsYSBnZXN0aW9uZS9tYW5pcG9sYXppb25lIGRlbGxlIGRhdGVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERhdGVTZXJ2aWNlIHtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIHN0YXRpY28gZGkgbG9jYWxpenphemlvbmUgcGVyIGkgbWVzc2FnZ2kgZGkgcXVlc3RhIFNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2MgPSB7XHJcbiAgICAgICAgXCJTTUFMTF9EQVRFX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVlcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWSBISDptbTpzc1wiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW06c3NcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0ZPUk1BVF9OT19TU1wiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWSBISDptbVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW1cIiB9LFxyXG4gICAgICAgIFwiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVlcIiB9LFxyXG4gICAgICAgIFwiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX0hPVVJcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEhcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIXCIgfSxcclxuICAgICAgICBcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRfV0lUSF9NSU5VVEVcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEg6bW1cIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIgfSxcclxuICAgICAgICBcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWSBISDptbTpzc1wiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW06c3NcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0RJU1BMQVlfRk9STUFUX05PX1NTXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbVwiIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIGRpIGNvbmZpZ3VyYXppb25lIHBlciB0ZW5lcmUgZGEgY29udG8gbGUgaW5mb3JtYXppb25pIHN1aSBmb3JtYXRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2ZnID0ge1xyXG4gICAgICAgIGZ1bGxkYXRlOiBcIlwiLFxyXG4gICAgICAgIGZ1bGxkYXRlRGlzcGxheTogXCJcIixcclxuICAgICAgICBzbWFsbERhdGU6IFwiXCIsXHJcbiAgICAgICAgZnVsbGRhdGVOb1NTOiBcIlwiLFxyXG4gICAgICAgIHNtYWxsRGF0ZVdpdGhIOiBcIlwiLFxyXG4gICAgICAgIHNtYWxsRGF0ZVdpdGhNOiBcIlwiLFxyXG4gICAgICAgIGZ1bGxkYXRlRGlzcGxheU5vU1M6IFwiXCJcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRVhUX0xPQ0FMRSkgcHJpdmF0ZSBMT0NBTEU6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChFWFRfQUxMT1dfVVRDKSBwcml2YXRlIGFsbG93VXRjOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jZmcuc21hbGxEYXRlID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0ZPUk1BVFwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZSA9IHRoaXMubG9jW1wiRlVMTF9EQVRFX0ZPUk1BVFwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZU5vU1MgPSB0aGlzLmxvY1tcIkZVTExfREFURV9GT1JNQVRfTk9fU1NcIl1bdGhpcy5MT0NBTEUgPz8gJ2l0LUlUJ107XHJcbiAgICAgICAgdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5ID0gdGhpcy5sb2NbXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRcIl1bdGhpcy5MT0NBTEUgPz8gJ2l0LUlUJ107XHJcbiAgICAgICAgdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5Tm9TUyAgPXRoaXMubG9jW1wiRlVMTF9EQVRFX0RJU1BMQVlfRk9STUFUX05PX1NTXCJdW3RoaXMuTE9DQUxFID8/ICdpdC1JVCddO1xyXG4gICAgICAgIHRoaXMuY2ZnLnNtYWxsRGF0ZSA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiXVt0aGlzLkxPQ0FMRSA/PyAnaXQtSVQnXTtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGVXaXRoSCA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX0hPVVJcIl1bdGhpcy5MT0NBTEUgPz8gJ2l0LUlUJ107XHJcbiAgICAgICAgdGhpcy5jZmcuc21hbGxEYXRlV2l0aE0gPSB0aGlzLmxvY1tcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRfV0lUSF9NSU5VVEVcIl1bdGhpcy5MT0NBTEUgPz8gJ2l0LUlUJ107XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZ2dpdXN0YSB1bmEgZGF0YSBpbiBcImlzdGFudGUgZmluYWxlXCIgaW4gYmFzZSBhIHF1YWwgw6ggbGEgcGFydGUgZGkgZGF0YSBzaWduaWZpY2F0aXZhLlxyXG4gICAgICogXHJcbiAgICAgKiBFcy4gSXN0YW50ZSBmaW5hbGUgZGVsbGUgb3JlOiAwNS8xMC8xOTkyIC0tPiAwNC8xMC8xOTkyIDI0OjAwKDowMClcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGRhdGUgRGF0YSBxdWFsc2lhc2kgKERhdGUsIHN0cmluZ2EsIGRheWpzLi4uKSwgdmVycsOgIHJpY29uZG90dGEgYWQgdW4gb2dnZXR0byBkYXlKc1xyXG4gICAgICogQHBhcmFtIHsnZGF5JyB8ICdob3VyJyB8ICdtaW51dGUnfSB0aW1lcGFydCBQYXJ0ZSBzaWduaWZpY2F0aXZhIGRlbGxhIGRhdGFcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJpbnRTZWNvbmRzIEluZGljYSBzZSBlZmZldHR1YXJlIGxhIHN0YW1wYSBkZWkgc2Vjb25kaSBvIG5vXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGp1c3REYXRlVG9GaW5hbEluc3RhbnQoZGF0ZTogYW55LCB0aW1lcGFydDogJ2RheScgfCAnaG91cicgfCAnbWludXRlJywgcHJpbnRTZWNvbmRzOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IG15ZHQgPSB0aGlzLmdldERhdGVDb252ZXJ0aW9uKGRhdGUpO1xyXG4gICAgICAgIGlmIChteWR0ID09IG51bGwpIHJldHVybiBcIkZFOiBOb3QgYSBEYXRlXCI7XHJcblxyXG4gICAgICAgIGxldCBpc1plcm9UaW1lID0gbXlkdC5zdGFydE9mKHRpbWVwYXJ0KS52YWx1ZU9mKCkgPT09IG15ZHQudmFsdWVPZigpO1xyXG4gICAgICAgIGlmICghaXNaZXJvVGltZSkgcmV0dXJuIHByaW50U2Vjb25kcyA/IG15ZHQuZm9ybWF0KHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheSkgOiBteWR0LmZvcm1hdCh0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXlOb1NTKTtcclxuXHJcbiAgICAgICAgbGV0IHRtcFZhbHVlID0gbXlkdC5zdWJ0cmFjdCgxLCB0aW1lcGFydCk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuXHJcbiAgICAgICAgLy8gSXN0YW50ZSBmaW5hbGUgZGVsbGUgb3JlOiAwNS8xMC8xOTkyIC0tPiAwNC8xMC8xOTkyIDI0OjAwKDowMClcclxuICAgICAgICBpZiAodGltZXBhcnQgPT0gJ2RheScpXHJcbiAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWUuZm9ybWF0KHRoaXMuY2ZnLnNtYWxsRGF0ZSkgKyBcIiAyNDowMFwiICsgKHByaW50U2Vjb25kcyA/ICc6MDAnIDogJycpO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWkgbWludXRpOiBnaW9ybm8gMDUvMTAvMTk5MiAwNDowMDowMCAtLT4gMDUvMTAvMTk5MiAwMzo2MCg6MDApXHJcbiAgICAgICAgZWxzZSBpZiAodGltZXBhcnQgPT0gJ2hvdXInKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IHRtcFZhbHVlLmZvcm1hdCh0aGlzLmNmZy5zbWFsbERhdGVXaXRoSCkgKyBcIjo2MFwiICsgKHByaW50U2Vjb25kcyA/ICc6MDAnIDogJycpO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWkgc2Vjb25kaTogZ2lvcm5vIDA1LzEwLzE5OTIgMDQ6MTA6MDAgLS0+IDA1LzEwLzE5OTIgMDQ6MDk6NjBcclxuICAgICAgICBlbHNlIGlmICh0aW1lcGFydCA9PSAnbWludXRlJylcclxuICAgICAgICAgICAgdmFsdWUgPSB0bXBWYWx1ZS5mb3JtYXQodGhpcy5jZmcuc21hbGxEYXRlV2l0aE0pICsgXCI6NjBcIjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIGVmZmV0dHVhIGwnb3JkaW5hbWVudG8gZnJhIDIgZGF0ZSBpbiBiYXNlIGFsbGEgZGlyZXppb25lIHNwZWNpZmljYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBhIFByaW1hIGRhdGEgcGVyIGlsIGNvbmZyb250b1xyXG4gICAgICogQHBhcmFtIHthbnl9IGIgU2Vjb25kYSBkYXRhIHBlciBpbCBjb25mcm9udG9cclxuICAgICAqIEBwYXJhbSB7J2FzYycgfCAnZGVzYyd9IGRpcmVjdGlvbiBEaXJlemlvbmUgcmlzcGV0dG8gYSBjdWkgb3JkaW5hcmUgbGUgZHVlIGRhdGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gMCBzZSBsZSBkYXRlIHNvbm8gdWd1YWxpLCAxIHNlIGxhIGRhdGEgQSBkZXZlIHZlbmlyZSBsb2dpY2FtZW50ZSBwcmltYSBkZWxsYSBkYXRhIEIsIC0xIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGVTb3J0KGE6IGFueSwgYjogYW55LCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiBkaXJlY3Rpb24gPT0gJ2FzYycgPyAxIDogLTE7XHJcbiAgICAgICAgZWxzZSBpZiAoYSA+IGIpIHJldHVybiBkaXJlY3Rpb24gPT0gJ2FzYycgPyAtMSA6IDE7XHJcblxyXG4gICAgICAgIC8vIGNvbiBhIHVndWFsZSBhIGJcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsIHRyaW0gZGVpIHNlY29uZGkgZGEgdW5hIGRhdGEgZXNwcmVzc2EgY29tZSBzdHJpbmdhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBEYXRhIGVzcHJlc3NhIGNvbWUgc3RyaW5nYVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBEYXRhIHNlbnphIGkgc2Vjb25kaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJpbVNlY29uZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy9JIG51bWVyaSBtYW5naWF0aSBkYSBkYXlqcyBzcGVzc28gdmVuZ29ubyByaWNvbmRvdHRpIGEgZGF0ZSB2ZXJlLiBNaSBhc3NpY3VybyBjaGUgc2UgY2kgc29ubyBzb2xvIG51bWVyaSBwcm9zZWd1b1xyXG4gICAgICAgIGlmICghaXNOYU4oPGFueT52YWx1ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgLy9TZSBub24gaG8gcXVhbGNvc2EgZGVsIHRpcG8gWFgvWVkvWlpaWiBhYTpiYjpjYyBkaSBzaWN1cm8gbm9uIMOoIHVuYSBkYXRhIGNoZSBtaSBpbnRlcmVzc2FcclxuICAgICAgICBpZiAoIS9eXFxkXFxkXFwvXFxkXFxkXFwvXFxkXFxkXFxkXFxkIFxcZFxcZDpcXGRcXGQ6XFxkXFxkJC9nLnRlc3QodmFsdWUpKVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIC8vSW4gcXVlc3RvIGNhc28gbWkgYXJyaXZhbm8gdmFsb3JpIGNoZSBkZXZvbm8gZXNzZXJlIHN0YW1wYXRpIGFzLWlzLCBzb2xvIHRhZ2xpYW5kbyBpIHNlY29uZGlcclxuICAgICAgICByZXR1cm4gXCInXCIgKyB2YWx1ZS5zdWJzdHIoMCwgdmFsdWUubGVuZ3RoIC0gMyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBsaXN0YSBkaSBkYXRlIERhIGUgdW5hIGxpc3RhIGRpIGRhdGUgQSByZXN0aXR1aXNjZSB1biBvZ2dldHRvIHJhcHByZXNlbnRhbnRlIGlsIHJhbmdlIGNoZSBpbmNsdWRlIHR1dHRlIGxlIGRhdGUgcGFzc2F0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBmcm9tRGF0ZXMgTGlzdGEgZGVpIERhXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSB0b0RhdGVzIExpc3RhIGRlaSBBXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHt7IGZyb206IGFueSwgdG86IGFueSB9fSBSYW5nZSBkaSBkYXRlIERhIC0gQSBjaGUgaW5jbHVkZSB0dXR0aSBpIHZhbG9yaSBkaSAqKmZyb21EYXRlcyoqIGUgKip0b0RhdGVzKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1pbk1heERhdGVzUmFuZ2UoZnJvbURhdGVzOiBhbnlbXSwgdG9EYXRlczogYW55W10pOiB7IGZyb206IGFueSwgdG86IGFueSB9IHtcclxuICAgICAgICBsZXQgZGF0ZXNGcm9tczogYW55W10gPSBbXTtcclxuICAgICAgICBsZXQgZGF0ZXNUbzogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGZyb21EYXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBkID0gZnJvbURhdGVzW2ldO1xyXG4gICAgICAgICAgICB2YXIgY29udmVydGlvbiA9IHRoaXMuZ2V0RGF0ZUNvbnZlcnRpb24oZCk7XHJcbiAgICAgICAgICAgIGlmIChjb252ZXJ0aW9uKVxyXG4gICAgICAgICAgICAgICAgZGF0ZXNGcm9tcy5wdXNoKGNvbnZlcnRpb24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRvRGF0ZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgZCA9IHRvRGF0ZXNbaV07XHJcbiAgICAgICAgICAgIHZhciBjb252ZXJ0aW9uID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkKTtcclxuICAgICAgICAgICAgaWYgKGNvbnZlcnRpb24pXHJcbiAgICAgICAgICAgICAgICBkYXRlc1RvLnB1c2goY29udmVydGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBmcm9tOiBkYXlqcy5taW4oZGF0ZXNGcm9tcyksIHRvOiBkYXlqcy5tYXgoZGF0ZXNUbykgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgY29udmVyc2lvbmUgZGkgdW5hIGRhdGEgaW4gcXVhbHNpYXNpIGZvcm1hdG8gYWwgZm9ybWF0byBzdGFuZGFyZCBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZGF0ZSBPZ2dldHRvIHJhcHByZXNlbnRhbnRlIHVuYSBkYXRhLiBQb3RyZWJiZSBlc3NlcmUgdW5hIHN0cmluZ2EsIHVuIERhdGUgbyBnacOgIHVuIERheUpzXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZVV0YyBJbmRpY2Egc2UgdXNhcmUgbCdlc3RlbnNpb25lIHV0YyBkaSBEYXlqcyBwZXIgcGFyc2FyZSBsYSBkYXRhIG8gbm9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2FueX0gRGF0YSBpbiBtb2RhbGl0w6AgRGF5SnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGVDb252ZXJ0aW9uKGRhdGU6IGFueSwgdXNlVXRjOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRGF5SnMoZGF0ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlO1xyXG5cclxuICAgICAgICBpZih0aGlzLmlzSnNEYXRlKGRhdGUpKVxyXG4gICAgICAgICAgICByZXR1cm4gdXNlVXRjID8gZGF5anMudXRjKGRhdGUpOiBkYXlqcyhkYXRlKTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGMnw6ggbGEgcHJvcHJpZXTDoCBsZW5ndGggdnVvbCBkaXJlIGNoZSBub24gw6ggdW5hIHN0cmluZ2EgZSBhIHF1ZXN0byBwdW50byBub24gaG8gaWRlYSBkaSBjaGUgbWluY2hpYSBzaWFcclxuICAgICAgICBsZXQgbGVuZ3RoID0gZGF0ZS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKCFsZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBpZiAodXNlVXRjICYmICF0aGlzLmFsbG93VXRjKVxyXG4gICAgICAgICAgICB0aHJvdyBcIkBlc2ZhZW56YS9leHRlbnNpb25zOiBSaWNoaWVzdGEgZGF0YSBVVEMgbWEgZGEgY29uZmlndXJhemlvbmUgbGEgbGlicmVyaWEgbm9uIGxvIHN1cHBvcnRhXCI7XHJcblxyXG4gICAgICAgIC8vIFBlciByaXNwYXJtaWFyZSBjaGlhbWF0ZSBhIHRlbnRvbmksIGluIGJhc2UgYWxsYSBsdW5naGV6emEgZGVsbGEgc3RyaW5nYSBjaGlhbW8gZGlyZXR0YW1lbnRlIGlsIG1ldG9kbyBnaXVzdG8sIFxyXG4gICAgICAgIC8vIGNvbnRyb2xsYW5kbyBwb2kgY2hlIG1pIGdlbmVyaSB1bmEgZGF0YSBjb21lIG1lIGxhIGFzcGV0dG8gaW9cclxuICAgICAgICBsZXQgdHJ5VGhpcyA9IG51bGw7XHJcbiAgICAgICAgbGV0IHRvQ2FsbCA9IHVzZVV0YyA/IGRheWpzLnV0YyA6IGRheWpzO1xyXG5cclxuICAgICAgICAvLyBTZSBsYSBkYXRhIGNvbnRpZW5lIGxhIGxldHRlcmEgXCJUXCIgdnVvbCBkaXJlIGNoZSDDqCB1bmEgZGF0YSBkZWwgdGlwbyAyMDIwLTEwLTE1VDAwOjAwOjAwLCBkaXJldHRhbWVudGUgcGFyc2FiaWxlIGRhbCBkYXlqcyBjb2wgbG9jYWxlIGNvcnJldHRvLlxyXG4gICAgICAgIC8vIFBlciBpbCByZXN0byBtaSBiYXNvIHN1bGxhIGx1bmdoZXp6YSBkZWxsYSBzdHJpbmdhXHJcbiAgICAgICAgaWYgKCg8c3RyaW5nPmRhdGUpLmluY2x1ZGVzKFwiVFwiKSlcclxuICAgICAgICAgICAgdHJ5VGhpcyA9IHRvQ2FsbChkYXRlKTtcclxuICAgICAgICBlbHNlIGlmIChsZW5ndGggPT0gdGhpcy5jZmcuZnVsbGRhdGUubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLmZ1bGxkYXRlKTtcclxuICAgICAgICBlbHNlIGlmIChsZW5ndGggPT0gdGhpcy5jZmcuc21hbGxEYXRlLmxlbmd0aClcclxuICAgICAgICAgICAgdHJ5VGhpcyA9IHRvQ2FsbChkYXRlLCB0aGlzLmNmZy5zbWFsbERhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5mdWxsZGF0ZU5vU1MubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLmZ1bGxkYXRlTm9TUylcclxuXHJcbiAgICAgICAgaWYgKHRyeVRoaXMgJiYgdHJ5VGhpcy5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnlUaGlzO1xyXG5cclxuICAgICAgICAvLyBTZSBuaWVudGUgZnVuemlvbmEsIG51bGwuIFxyXG4gICAgICAgIC8vIFJpY29uZHVycmUgbCdJbnB1dCBhZCB1bmEgZGF0YSBub24gw6ggcG9zc2liaWxlLlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSByZXN0aXR1aXNjZSAqKnRydWUqKiBxdWFsb3JhIGwnb2dnZXR0byBwYXNzYXRvIGZvc3NlIHVuYSBkYXRhIHZlcmEgZSBwcm9wcmlhLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gY2hlY2sgT2dnZXR0byBkYSBjb250cm9sbGFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF0ZSBkaSBKYXZhc2NyaXB0IG8gbm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc0pzRGF0ZShjaGVjazogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGNoZWNrICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjaGVjaykgPT09IFwiW29iamVjdCBEYXRlXVwiICYmICFpc05hTihjaGVjayk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHJlc3RpdHVpc2NlICoqdHJ1ZSoqIHF1YWxvcmEgbCdvZ2dldHRvIHBhc3NhdG8gZm9zc2UgdW4gRGF5SnMgdmVybyBlIHByb3ByaW8sICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBjaGVjayBPZ2dldHRvIGRhIGNvbnRyb2xsYXJlXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF5SnMgbyBub1xyXG4gICAgICovXHJcbiAgICAgcHJpdmF0ZSBpc0RheUpzKGNoZWNrOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBOb24gdXNvIGluc3RhbmNlb2YgcGVyY2jDqSBzYXJlYmJlIGVzdHJlbWFtZW50ZSBwacO5IGxlbnRvXHJcbiAgICAgICAgLy8gTm9uIHVzbyBuZW1tZW5vIGlzRGF5anMoKSBkZWxsYSBsaWJyZXJpYSBEYXlqcyBkYXRvIGNoZSBoYSBsbyBzdGVzc28gcHJvYmxlbWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvYmxvYi8wNmY4OGY0MjU4MjhiMWNlOTZiNzM3MzMyZDI1MTQ1YTk1YTRlZTlkL3NyYy9pbmRleC5qcyNMOVxyXG4gICAgICAgIHJldHVybiBjaGVjay4kRCAhPT0gdW5kZWZpbmVkICYmIGNoZWNrLiRNICE9PSB1bmRlZmluZWQgJiYgY2hlY2suJHkgIT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgZm9ybWF0dGF6aW9uZSBkaSB1bmEgZGF0YSBpbiBiYXNlIGFsbGEgdmVyc2lvbmUgcmljaGllc3RhIFwic21hbGxcIiBvIFwibG9uZ1wiIGUgYSBzZSBzdGFtcGFyZSBvIG1lbm8gaSBzZWNvbmRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBkYXRlIE9nZ2V0dG8gcmFwcHJlc2VudGFudGUgdW5hIGRhdGEuIFBvdHJlYmJlIGVzc2VyZSB1bmEgc3RyaW5nYSwgdW4gRGF0ZSBvIGdpw6AgdW4gRGF5SnNcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc21hbGwgSW5kaWNhIHNlIGZvcm1hdHRhcmxhIGNvbiB1biBmb3JtYXRvIGJyZXZlIChzZSAqKnRydWUqKikgbyB1biBmb3JtYXRvIHBpw7kgbHVuZ28gKHNlICoqZmFsc2UqKilcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gRGF0YSBmb3JtYXR0YXRhIG5lbCBmb3JtYXRvIHJpY2hpZXN0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Rm9ybWF0dGVkKGRhdGU6IGFueSwgc21hbGw6IGJvb2xlYW4sIHNlY29uZHM6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHZhciBkYXRlID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkYXRlKTtcclxuICAgICAgICBpZiAoIWRhdGUpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoc21hbGwgPyB0aGlzLmNmZy5zbWFsbERhdGUgOiBzZWNvbmRzID8gdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5IDogdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5Tm9TUyk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -703,7 +703,7 @@ class DateService {
703
703
  tryThis = toCall(date, this.cfg.smallDate);
704
704
  else if (length == this.cfg.fulldateNoSS.length)
705
705
  tryThis = toCall(date, this.cfg.fulldateNoSS);
706
- if (tryThis.isValid())
706
+ if (tryThis && tryThis.isValid())
707
707
  return tryThis;
708
708
  // Se niente funziona, null.
709
709
  // Ricondurre l'Input ad una data non è possibile.