@magic-xpa/angular 4.801.0-dev481.299 → 4.801.0-dev481.303

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.
@@ -305,4 +305,4 @@ AccessorMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: AccessorMagicServ
305
305
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccessorMagicService, [{
306
306
  type: Injectable
307
307
  }], function () { return [{ type: i1.TaskMagicService }, { type: i2.MagicColorService }]; }, null); })();
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBYSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLMUQsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUFzQixJQUFzQixFQUFZLFVBQTZCO1FBQS9ELFNBQUksR0FBSixJQUFJLENBQWtCO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFMckYsV0FBTSxHQUFRLElBQUksQ0FBQztRQU1qQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQVFELGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLFVBQTJCLENBQUM7UUFDaEMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMs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QUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFLRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUtELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBS00sUUFBUSxDQUFDLFdBQW1CLEVBQUUsU0FBUztRQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOzt3RkFybkJVLG9CQUFvQjs0REFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhc2tNYWdpY1NlcnZpY2UgfSBmcm9tICcuL3Rhc2subWFnaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sTWV0YWRhdGEsIENvbnRyb2xzTWV0YWRhdGEgfSBmcm9tICcuLi9jb250cm9scy5tZXRhZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IEN1c3RvbVZhbGlkYXRvciwgR3VpRW52aXJvbm1lbnQsIEh0bWxQcm9wZXJ0aWVzLCBQSUMgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGdldEd1aUV2ZW50T2JqLCBJR3VpRXZlbnQsIENvb2tpZVNlcnZpY2V9IGZyb20gJ0BtYWdpYy14cGEvZW5naW5lJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IE1hZ2ljQ29sb3JTZXJ2aWNlIH0gZnJvbSAnLi9tYWdpYy1jb2xvci5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIFByb3ZpZGVzIHRoZSBVSSB3aXRoIHZhbHVlcyBjYWxjdWxhdGVkIGJ5IHRoZSBNYWdpYyBXZWJDbGllbnRcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFjY2Vzc29yTWFnaWNTZXJ2aWNlIHtcclxuICBMb2dnZXI6IGFueSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGFzazogVGFza01hZ2ljU2VydmljZSxwcm90ZWN0ZWQgIG1hZ2ljQ29sb3I6IE1hZ2ljQ29sb3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkxvZ2dlciA9IExvZ2dlci5JbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY29udHJvbCBpcyByZWFkLW9ubHlcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBJcyB0aGUgY29udHJvbCBub3QgcmVhZC1vbmx5XHJcbiAgICovXHJcbiAgLy8gQ2hlY2tSZWFkT25seVxyXG4gIGNoZWNrSXNSZWFkT25seShjb250cm9sSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHByb3BlcnRpZXM6IENvbnRyb2xNZXRhZGF0YTtcclxuICAgIHByb3BlcnRpZXMgPSB0aGlzLnRhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YShjb250cm9sSWQpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpICE9PSBudWxsICYmIHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpID09PSB0cnVlKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJucyBUaGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGV4dFxyXG4gIGdldFRleHQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5UZXh0LCByb3dJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIGxheWVyIElkIG9mIHRhYnBhZ2VcclxuICAgKiBAcmV0dXJucyBUZXh0IG9mIHRhYnBhZ2VcclxuICAgKi9cclxuICAvLyBtZ0dldFRhYnBhZ2VUZXh0XHJcbiAgZ2V0VGFicGFnZVRleHQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QpO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtcyAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcmV0dXJuIGl0ZW1zW2xheWVyXS5kaXNwbGF5VmFsdWU7XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGltYWdlIGRlZmluZWQgZm9yIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIEltYWdlIHNldCBvbiBjb250cm9sXHJcbiAgICovXHJcbiAgLy8gbWdHZXRJbWFnZVxyXG4gIGdldEltYWdlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuSW1hZ2UsIHJvd0lkKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGltYWdlIGlzIHNldCBmb3IgdGhpcyBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgdHJ1ZSBpZiBjb250cm9sIGhhcyBhbiBpbWFnZSBzZXQgb24gaXRcclxuICAgKi9cclxuICAvLyBtZ0lzSW1hZ2VFeGlzdHNcclxuICBpc0ltYWdlRXhpc3RzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLkltYWdlLCByb3dJZCk7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHJlc3VsdCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgc2V0IG9uIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjbGFzc2VzIGZvciB0aGlzIGNvbnRyb2xcclxuICAgKi9cclxuICAvLyBtZ0dldENsYXNzZXNcclxuICBnZXRDbGFzc2VzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOnN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldENsYXNzZXMoY29udHJvbElkLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBDU1Mgc3R5bGVzIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSBzdHlsZU5hbWUgTkFtZSBvZiBzdHlsZSByZXF1ZXN0ZWRcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnMgVGhlIHN0eWxlIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0U3R5bGVcclxuICBnZXRTdHlsZShjb250cm9sSWQ6IHN0cmluZywgc3R5bGVOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHlsZSA9IHRoaXMudGFzay5nZXRTdHlsZShjb250cm9sSWQsIHN0eWxlTmFtZSwgcm93SWQpXHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIGlzIHZpc2libGUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIElzIHRoZSBjb250cm9sIHZpc2libGUgb3IgaGlkZGVuXHJcbiAgICovXHJcbiAgLy8gbWdHZXRWaXNpYmxlXHJcbiAgZ2V0VmlzaWJsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgIGxldCB2aXM6IEJvb2xlYW4gPSB0aGlzLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuVmlzaWJsZSwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZpcyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBvYmplY3QgcmVwcmVzZW50aW5nIG51bWVyaWMgcGljdHVyZVxyXG4gICAqIEBwYXJhbSBwaWN0dXJlIHN0cmluZyB3aGljaCBpcyBkZWZpbmVkIGluIG1hZ2ljXHJcbiAgICogQHJldHVybnMgb2JqZWN0IHJlcHJlc2VudGluZyBudW1lcmljIHBpY3R1cmVcclxuICAgKi9cclxuICAvLyBtZ0dldE51bWVyaWNQaWN0dXJlXHJcbiAgZ2V0TnVtZXJpY1BpY3R1cmUocGljdHVyZTogc3RyaW5nKSA6IGFueSB7XHJcbiAgIHZhciBvYmogPSB7fTtcclxuICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHBpY3R1cmUpKVxyXG4gICAgICByZXR1cm4gb2JqO1xyXG5cclxuICAgbGV0IHBpYzogUElDID0gbmV3IFBJQyhwaWN0dXJlLCBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMsIDApO1xyXG5cclxuXHJcblxyXG4gICBvYmpbJ3ByZWZpeCddID0gXCJcIlxyXG4gICBpZiAocGljLmdldFBvc1ByZWZfKCkubGVuZ3RoID4gMCAmJiBwaWMuZ2V0TmVnUHJlZl8oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgbGV0IHByZWYgPSAnLScrcGljLmdldFBvc1ByZWZfKCk7XHJcbiAgICAgaWYgKHByZWYgPT0gcGljLmdldE5lZ1ByZWZfKCkpXHJcbiAgICAgIG9ialsncHJlZml4J10gPSBwaWMuZ2V0UG9zUHJlZl8oKTtcclxuICAgfVxyXG4gICBpZihwaWMuZ2V0UG9zU3VmZl8oKS5sZW5ndGggPiAwKVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBwaWMuZ2V0UG9zU3VmZl8oKTtcclxuICAgZWxzZVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBcIlwiO1xyXG5cclxuICAgaWYocGljLmlzTmVnYXRpdmUoKSlcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IHRydWU7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IGZhbHNlO1xyXG4gICBpZihwaWMuZ2V0RGVjKCk+PSAwKVxyXG4gICAgICBvYmpbJ3ByZWNpc2lvbiddID0gcGljLmdldERlYygpO1xyXG5cclxuICAgaWYocGljLmlzTGVmdCgpKVxyXG4gICAgICBvYmpbJ2FsaWduJ109XCJsZWZ0XCI7XHJcblxyXG4gICBvYmpbJ2RlY2ltYWwnXSA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlY2ltYWwoKTtcclxuICAgaWYocGljLndpdGhDb21hKCkpXHJcbiAgICAgIG9ialsndGhvdXNhbmRzJ109R3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VGhvdXNhbmRzKCk7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ3Rob3VzYW5kcyddPVwiXCI7XHJcblxyXG4gICAgaWYocGljLmdldFdob2xlcygpKVxyXG4gICAgICBvYmpbJ3dob2xlcyddPXBpYy5nZXRXaG9sZXMoKTtcclxuXHJcbiAgICByZXR1cm4gICBvYmo7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIHNob3VsZCBoYXZlIHRoZSBcInJlcXVpcmVkXCIgYXR0cmlidXRlIHNldCBvbiBpdFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0TXVzdElucHV0XHJcbiAgZ2V0TXVzdElucHV0KGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBzdHJpbmcge1xyXG4gICAgbGV0IHZpczogQm9vbGVhbiA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5NdXN0SW5wdXQsIHJvd0lkKTtcclxuICAgIHJldHVybiB2aXMgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgY29udHJvbCBpcyBkaXNhYmxlZFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nSXNEaXNhYmxlZFxyXG4gIGlzRGlzYWJsZWQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogYW55e1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5FbmFibGVkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID09PSB0cnVlID8gbnVsbCA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8gZ2V0UHJvcGVydHkgKG5vdCBjaGFuZ2VkKVxyXG4gIGdldFByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wOiBIdG1sUHJvcGVydGllcywgcm93SWQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBwcm9wLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0aXRsZSAodG9vbHRpcCkgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGl0bGVcclxuICBnZXRUaXRsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRvb2x0aXAsIHJvd0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRpdGxlICh0b29sdGlwKSB0ZXh0IG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUaXRsZSBmb3Igem9vbSBidXR0b25cclxuICBnZXRab29tQnV0dG9uVGl0bGUoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5ab29tQnV0dG9uVG9vbHRpcCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0aW9uIGNvbnRyb2wncyBzZWxlY3RlZCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIGdldFNlbGVjdGVkVmFsdWVcclxuICBnZXRTZWxlY3RlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgcGxhY2UtaG9sZGVyIHRleHQgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldFBsYWNlaG9sZGVyXHJcbiAgZ2V0UGxhY2Vob2xkZXIoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5QbGFjZUhvbGRlciwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIHR5cGUgZm9yIGlucHV0IGNvbnRyb2xzIC0gc2hvdWxkIHRoZSBjb250cm9sIGJlIGEgc2ltcGxlIHRleHQgb3IgYSBwYXNzd29yZCBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUeXBlXHJcbiAgZ2V0VHlwZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlBhc3N3b3JkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCJcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRhYi1pbmRleCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGFiSW5kZXhcclxuICBnZXRUYWJJbmRleChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRhYkluZGV4LCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgdmFsID0gdGhpcy50YXNrLmdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZCwgdmFsKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBQaWN0dXJlIG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8vIGdldFBpY3R1cmUgLS0+XHJcbiAgZ2V0UGljdHVyZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb250cm9sSWQpKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGxldCBwaWM6IFBJQyA9IHRoaXMudGFzay5HZXRDb250cm9sUGljdHVyZU1hc2soY29udHJvbElkKTtcclxuICAgIHJldHVybiAgKHBpYyAhPSBudWxsKSA/IHBpYy5nZXRGb3JtYXQoKS50b1N0cmluZygpIDogbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXN0b20gKHVzZXIpIHByb3BlcnRpZXMgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIE5hbWUgb2YgcmVxdWVzdGVkIHByb3BlcnR5XHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRDdXN0b21Qcm9wZXJ0eVxyXG4gIGdldEN1c3RvbVByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wZXJ0eU5hbWVPclJvd0lEPzogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBhbnlcclxuICB7XHJcbiAgICBpZihjb250cm9sSWQuaW5kZXhPZignficpPT0gLTEpXHJcbiAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNvbnRyb2xJZCwgcHJvcGVydHlOYW1lT3JSb3dJRCwgcm93SWQpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCAgY2lkOiBzdHJpbmcgPSBjb250cm9sSWQuc3BsaXQoJ34nKVswXTtcclxuICAgICAgbGV0ICBwcm9wTmFtZTogc3RyaW5nID0gY29udHJvbElkLnNwbGl0KCd+JylbMV07XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNpZCwgcHJvcE5hbWUsIHByb3BlcnR5TmFtZU9yUm93SUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tUHJvcGVydHlfMShjb250cm9sSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKVxyXG4gIHtcclxuICAgIGxldCB1c2VyUHJvcGVydGllcztcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChyb3dJZCkpXHJcbiAgICAgIHJvd0lkID0gJzAnO1xyXG4gICAgbGV0IHJlYyA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJlYykpXHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xNZXRhZGF0YSA9IHJlYy5nZXRDb250cm9sTWV0YWRhdGEoY29udHJvbElkKTtcclxuXHJcbiAgICAgIGlmIChjb250cm9sTWV0YWRhdGEudXNlclByb3BlcnRpZXMuaGFzKHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICB1c2VyUHJvcGVydGllcyA9IGNvbnRyb2xNZXRhZGF0YS51c2VyUHJvcGVydGllcy5nZXQocHJvcGVydHlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXJQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldEl0ZW1MaXN0VmFsdWVzXHJcbiAgZ2V0SXRlbUxpc3RWYWx1ZXMoaWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogQXJyYXk8e2luZGV4OiBudW1iZXIsIGRpc3BsYXlWYWx1ZTogc3RyaW5nfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoaWQsIEh0bWxQcm9wZXJ0aWVzLkl0ZW1zTGlzdCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZmlsdGVyZWQgaXRlbXMgbGlzdCBiYXNlZCBvbiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldEZpbHRlcmVkTGlzdChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBBcnJheTx7aW5kZXg6IG51bWJlciwgZGlzcGxheVZhbHVlOiBzdHJpbmd9PiB7XHJcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocm93SWQpKVxyXG4gICAgICByb3dJZCA9ICcwJztcclxuXHJcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0VmFsdWVzKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGNvbnRyb2xJZCkudmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IFwiXCIgJiYgaXRlbXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdmFsdWUgb2YgdGhlIGl0ZW0gZnJvbSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXREaXNwbGF5VmFsdWUoaWQsIHJvd0lkPykge1xyXG4gICAgbGV0IGRpc3BsYXlWYWx1ZTpzdHJpbmcgPVwiXCJcclxuXHJcbiAgICBsZXQgbyA9ICB0aGlzLmdldFByb3BlcnR5KGlkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QsIHJvd0lkKTtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMudGFzay5nZXRWYWx1ZShpZCwgcm93SWQpXHJcbiAgICBpZiAodmFsdWUgPj0wICYmIHZhbHVlIDxvLmxlbmd0aCAgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKG9bdmFsdWVdKSlcclxuICAgICAgZGlzcGxheVZhbHVlID0gb1t2YWx1ZV0uZGlzcGxheVZhbHVlO1xyXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90XHJcbiAgICogQHBhcmFtICBpbmRleCBvZiBjdXJyZW50IG9wdGlvbiBpbiBpdGVyYXJvdHJcclxuICAgKiBAcGFyYW0gY29udHJvbCBJZCBvZiBsaXN0IGNvbnRyb2xcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBpc09wdGlvblNlbGVjdGVkXHJcbiAgaXNPcHRpb25TZWxlY3RlZChpbmRleCwgY29udHJvbElkKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgXCIwXCIpO1xyXG4gICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHZhbCkge1xyXG4gICAgICAgICAgIGlmIChpdGVtID09PSBpbmRleClcclxuICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90IC0gdXNlZCBmb3IgdGhlIHRhYiBidXR0b25zXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSAgbGF5ZXIgSWQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovIC8vIG1nSXNUYWJQYWdlU2VsZWN0ZWRcclxuICBpc1RhYlBhZ2VTZWxlY3RlZChjb250cm9sSWQ6IHN0cmluZywgbGF5ZXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlNlbGVjdGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIHZhbCA9PSAobGF5ZXIgLSAxKTsgLy8gY29tcGFyaW5nIHN0cmluZyB0byBudW1iZXIhXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSB0YWIgcGFnZSBsYXllciBpcyBzZWxlY3RlZCBvciBub3QgLSB1c2VkIGZvciB0aGUgZGl2IHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtICBsYXllciBJZCBvZiB0aGUgdGFiIHBhZ2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBtZ0lzVGFiTGF5ZXJTZWxlY3RlZFxyXG4gIGlzVGFiUGFnZUxheWVyU2VsZWN0ZWQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWwgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5TZWxlY3RlZExheWVyKTtcclxuICAgIHJldHVybiB2YWwgPT0gKGxheWVyIC0gMSk7IC8vIGNvbXBhcmluZyBzdHJpbmcgdG8gbnVtYmVyIVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYWJTZWxlY3RlZEluZGV4KGNvbnRyb2xJZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsOyAvLyBjb21wYXJpbmcgc3RyaW5nIHRvIG51bWJlciFcclxuICB9XHJcblxyXG5cclxuICAvLyBwcml2YXRlIG1ldGhvZGVzXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIG1nSWZSb3dDcmVhdGVkXHJcbiAgaWZSb3dDcmVhdGVkKHJvdyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJvdyA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgcm93SWQgPSB0eXBlb2Ygcm93ID09IFwibnVtYmVyXCIgPyByb3cudG9TdHJpbmcoKSA6IHJvdy5yb3dJZDtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLmdldEZvcm1Hcm91cEJ5Um93KHJvd0lkKTtcclxuICAgIHJldHVybiAhaXNOdWxsT3JVbmRlZmluZWQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICAvLyBtZ0dldEZvcm1Hcm91cEJ5Um93XHJcbiAgZ2V0Rm9ybUdyb3VwQnlSb3coaWQ6IHN0cmluZyk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmZvcm1Hcm91cHNbaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIGlzUm93U2VsZWN0ZWQgKG5vdCBjaGFuZ2VkKVxyXG4gIGlzUm93U2VsZWN0ZWQoY29udHJvbElkLCByb3dJZD8pIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRSb3csIFwiMFwiKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFJvdyA9PSByb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlXHJcbiAgICogQHBhcmFtIHJvd1xyXG4gICAqL1xyXG4gIGlzUm93SW5Sb3dFZGl0aW5nKHJvdz86IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGd1aVJvd0lkIDogc3RyaW5nID0gJzAnO1xyXG4gICAgZ3VpUm93SWQ9IHR5cGVvZiByb3cgPT0gXCJudW1iZXJcIiA/IHJvdy50b1N0cmluZygpIDogcm93LnJvd0lkO1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5pc1Jvd0luUm93RWRpdGluZyhndWlSb3dJZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlLCB1c2UgdGhpcyBtZXRob2Qgd2hpbGUgY29udHJvbCBvdXRzaWRlIHRhYmxlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93XHJcbiAgICovXHJcbiAgaXNDdXJyZW50SW5Sb3dFZGl0aW5nKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGxldCByb3cgID0gdGhpcy50YXNrLnRhYmxlU2VydmljZS5nZXRTZWxlY3RlZFJvdygpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnRhc2suaXNSb3dJblJvd0VkaXRpbmcocm93KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIEdldEd1aVRvcEluZGV4XHJcbiAgZ3VpVG9wSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2sudGFibGVTZXJ2aWNlLmdldFRhYmxlVG9wSW5kZXgoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXRFcnJNc2coaWQ6IHN0cmluZyxyb3dJZDogc3RyaW5nKTogc3RyaW5nXHJcbiAge1xyXG4gICAgbGV0IGMgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGlkKTtcclxuICAgIGlmIChjLmhhc0Vycm9yKCdyZXF1aXJlZCcpKVxyXG4gICAgICByZXR1cm4gJ0NvbnRyb2wgbXVzdCBiZSB1cGRhdGVkLic7XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncGF0dGVybicpKVxyXG4gICAgICByZXR1cm4gJ1JlcXVpcmVkIHBhdHRlcm4gaXMgOiAnICsgYy5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm47XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSlcclxuICAgICAgcmV0dXJuIGMuZXJyb3JzLnJhbmdldmFsaWRhdG9yLmVycm9yTXNnO1xyXG4gICAgaWYgKGMuaGFzRXJyb3IoJ21heGxlbmd0aCcpKVxyXG4gICAgICByZXR1cm4gJ01heCBsZW5ndGggYWxsb3dlZCBpcyA6ICcgKyBjLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoYy5oYXNFcnJvcignbWF4JykpXHJcbiAgICAgIHJldHVybiAnTWF4IHZhbHVlIGFsbGxvd2VkIGlzIDogJyArIGMuZXJyb3JzLm1heC5tYXg7XHJcblxyXG4gICAgbGV0IGNvbnRyb2xNZXRhZGF0YSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdLmdldENvbnRyb2xNZXRhZGF0YShpZCk7XHJcbiAgICBmb3IgKGxldCBrZXkgb2YgY29udHJvbE1ldGFkYXRhLmN1c3RvbVZhbGlkYXRvcnMua2V5cygpKVxyXG4gICAge1xyXG4gICAgICBpZiAoYy5oYXNFcnJvcihrZXkpKSB7XHJcbiAgICAgICAgbGV0IGN1c3RvbVZhbGlkYXRvcjogQ3VzdG9tVmFsaWRhdG9yICA9IGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmdldChrZXkpO1xyXG4gICAgICAgIHJldHVybiBjdXN0b21WYWxpZGF0b3IuZ2V0RXJyTWVzc2FnZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICd1bmtub3duIGVycm9yJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYSB1c2VyLXN1cHBsaWVkIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAqIEBwYXJhbSByZWZyZXNoRGlzcGxheVxyXG4gICAqL1xyXG4gIHNldFZhbHVlVG9Db250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIHJlZnJlc2hEaXNwbGF5PzogYm9vbGVhbil7XHJcbiAgICBpZih0eXBlb2YgcmVmcmVzaERpc3BsYXkgPT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgIHJlZnJlc2hEaXNwbGF5ID0gdHJ1ZTtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZXRleHRlcm5hbHZhbHVlXCIsIGNvbnRyb2xOYW1lLCAwKTtcclxuICAgIGd1aUV2ZW50LmV4dGVybmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIGd1aUV2ZW50LnBhcmFtID0gcmVmcmVzaERpc3BsYXk7XHJcbiAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiAgaXNEYXRhdmlld0VtcHR5KCkgOiBib29sZWFuIHtcclxuICAgICByZXR1cm4gdGhpcy50YXNrLlJlY29yZHMuaXNFbXB0eURhdGFWaWV3O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2ltdWxhdGVzIGEgY2xpY2sgZXZlbnQgb24gdGhlIHNwZWNpZmllZCBjb250cm9sLCBmb3IgdGhlIE1hZ2ljIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSByb3dJZFxyXG4gICAqL1xyXG4gIHNpbXVsYXRlQ2xpY2soY29udHJvbE5hbWU6IHN0cmluZywgcm93SWQ/OiBudW1iZXIpe1xyXG4gICAgaWYgKHR5cGVvZiByb3dJZCA9PT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcm93SWQgPSAwO1xyXG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGdldEd1aUV2ZW50T2JqKCdjbGljaycsIGNvbnRyb2xOYW1lLCByb3dJZCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIEJvb2xlYW4gVFJVRSBpZiB1c2VyIGxvZ2dlZCBpbiBFbHNlIGl0IHdpbGwgcmV0dXJuIEZBTFNFXHJcbiAgICovXHJcbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0SXNMb2dnZW5JbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBKUyBvYmplY3QgY29udGFpbmluZyB0aGUgcmVjb3JkcyB3aXRoIGFsbCB0YWJsZSBmaWVsZHMuXHJcbiAgICovXHJcbiAgR2V0Rm9ybVJlY29yZHMoKTogYW55IHtcclxuICAgIGxldCByb3dJZDogbnVtYmVyID0gMDtcclxuICAgIGxldCByZWNBcnJheTogYW55O1xyXG5cclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy50YXNrLlJlY29yZHMpICYmIHRoaXMudGFzay5SZWNvcmRzLmxpc3QubGVuZ3RoID4gMCApIHtcclxuICAgICAgbGV0IHJlY0xpc3Q6IENvbnRyb2xzTWV0YWRhdGFbXSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Q7XHJcbiAgICAgIGxldCB0YWJsZUNvbnRyb2xzOiBzdHJpbmdbXSA9IG5ldyBBcnJheSgpO1xyXG5cclxuICAgICAgLy9HZW5lcmF0ZSBsaXN0IG9mIHRhYmxlIGZpZWxkcyBuYW1lc1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRhc2sudGVtcGxhdGUpIHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLnRlbXBsYXRlW2tleV0gPT0gJzEnKVxyXG4gICAgICAgICAgdGFibGVDb250cm9scy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlY0FycmF5ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAvL1VwZGF0ZSB0aGUgcmVjb3JkcyBhcyBsaXN0IG9mIG9iamVjdHMgd2l0aCB2YWx1ZXMgZm9yIHRhYmxlIGZpZWxkcy5cclxuICAgICAgaWYgKHRhYmxlQ29udHJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlY0xpc3QuZm9yRWFjaCgoY3RybE1ldGFEYXRhOiBDb250cm9sc01ldGFkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YXNrLlJlY29yZHMuaXNSb3dDcmVhdGVkKHJvd0lkKSkge1xyXG4gICAgICAgICAgICB2YXIgZm9ybVJlY29yZCA9IHt9O1xyXG4gICAgICAgICAgICBmb3JtUmVjb3JkWydyb3dJZCddID0gcm93SWQ7XHJcbiAgICAgICAgICAgIHRhYmxlQ29udHJvbHMuZm9yRWFjaCgoY3RybElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBmb3JtUmVjb3JkW2N0cmxJZF0gPSBjdHJsTWV0YURhdGEudmFsdWVzW2N0cmxJZF07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmVjQXJyYXkucHVzaChmb3JtUmVjb3JkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlY0FycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0Q29va2llIDogc2V0IHRoZSBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBhbmQgdmFsdWUgIGluIGJyb3dzZXJcclxuICAgKiBleHBpcmVzIC0gZXhwaXJhdGlvbiB0aW1lXHJcbiAgICogcGF0aCAtIHBhdGggd2hpY2ggbXVjaCBleGlzdHMgaW4gb3JkZXIgc28gdGhhdCBjb29raWUgaXMgc2VudCBhcyBoZWFkZXJcclxuICAgKiBkb21haW4gLSBzcGVjaWZpZXMgd2hpY2ggaG9zdHMgYXJlIGFsbG93ZWQgdG8gcmVjZWl2ZSB0aGUgY29va2llXHJcbiAgICogc2VjdXJlIC0gc3BlY2lmaWVzIGlmIGNvb2tpZSBpcyBzZWN1cmUgKCB3b3JrcyBvbmx5IHdpdGggSFRUUFMpXHJcbiAgICogc2FtZVNpdGUgLSBsZXRzIHNlcnZlcnMgc3BlY2lmeSB3aGV0aGVyL3doZW4gY29va2llcyBhcmUgc2VudCB3aXRoIGNyb3NzLXNpdGUgcmVxdWVzdHNcclxuICAgKi9cclxuICBTZXRDb29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVzPzogRGF0ZSwgcGF0aD8gLCBkb21haW4/ICwgc2VjdXJlPywgc2FtZVNpdGUgPykge1xyXG4gICAgQ29va2llU2VydmljZS5zZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlLCBzYW1lU2l0ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRDb29raWUgOiBnZXQgdGhlIGNvb2tpZSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCB2YWx1ZSAgaW4gYnJvd3NlclxyXG4gICAqL1xyXG4gIEdldENvb2tpZShuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIENvb2tpZVNlcnZpY2UuZ2V0Q29va2llKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlQ29va2llIDogZGVsZXRlcyB0aGUgY29va2llXHJcbiAgICovXHJcbiAgRGVsZXRlQ29va2llKG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gQ29va2llU2VydmljZS5kZWxldGVDb29raWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICAgLyoqXHJcbiAgICogZ2V0IFJHQkEgY29sb3IgZnJvbSBjb2xvciBmaWxlXHJcbiAgICovXHJcbiAgcHVibGljIGdldENvbG9yKGNvbG9yTnVtYmVyOiBudW1iZXIsIGNvbG9yVHlwZSkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNDb2xvci5nZXRDb2xvcihjb2xvck51bWJlciwgY29sb3JUeXBlKTtcclxuICB9XHJcbn1cclxuIl19
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBYSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLMUQsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUFzQixJQUFzQixFQUFZLFVBQTZCO1FBQS9ELFNBQUksR0FBSixJQUFJLENBQWtCO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFMckYsV0FBTSxHQUFRLElBQUksQ0FBQztRQU1qQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQVFELGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLFVBQTJCLENBQUM7UUFDaEMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUk7WUFDNUgsT0FBTyxLQUFLLENBQUM7O1lBRWIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQVNELE9BQU8sQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBUUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsS0FBYTtRQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztZQUM5QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDbkMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBU0QsUUFBUSxDQUFDLFNBQWlCLEVBQUUsS0FBYztRQUN4QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxPQUFPLE1BQU0sQ0FBQztJQUVoQixDQUFDO0lBU0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsS0FBYztRQUM3QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEMsQ0FBQztJQVNELFVBQVUsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQVVELFFBQVEsQ0FBQyxTQUFpQixFQUFFLFNBQWlCLEVBQUUsS0FBYztRQUMzRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQVNELFVBQVUsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDMUMsSUFBSSxHQUFHLEdBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQVFELGlCQUFpQixDQUFDLE9BQWU7UUFDaEMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7WUFDM0IsT0FBTyxHQUFHLENBQUM7UUFFZCxJQUFJLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSTdELEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoRSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzVCLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEM7UUFDRCxJQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM3QixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDOztZQUVsQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUcsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDOztZQUU1QixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFHLENBQUM7WUFDaEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxJQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDWixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUMsTUFBTSxDQUFDO1FBRXZCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pELElBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNkLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUU1RCxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUMsRUFBRSxDQUFDO1FBRXJCLElBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUNoQixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWhDLE9BQVMsR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQVNELFlBQVksQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDNUMsSUFBSSxHQUFHLEdBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQVNELFVBQVUsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFNRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxJQUFvQixFQUFFLEtBQWM7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFTRCxRQUFRLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQVNELGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsS0FBYztRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQVNELGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsS0FBYztRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFTRCxjQUFjLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQVNELE9BQU8sQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQ3JDLENBQUM7SUFTRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQVNELFFBQVEsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFDeEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVNELGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsS0FBYztRQUNqRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVNELFVBQVUsQ0FBQyxTQUFpQixFQUFFLEtBQWM7UUFFMUMsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxJQUFJLEdBQUcsR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE9BQVEsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTVELENBQUM7SUFVRCxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLG1CQUE0QixFQUFFLEtBQWM7UUFFL0UsSUFBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFHLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbEU7WUFDSCxJQUFLLEdBQUcsR0FBVyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUssUUFBUSxHQUFXLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFaEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsWUFBb0IsRUFBRSxLQUFjO1FBRXpFLElBQUksY0FBYyxDQUFDO1FBQ25CLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzFCLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDZCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7WUFDeEIsUUFBUSxDQUFDO2FBQ047WUFDSCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFMUQsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDcEQsY0FBYyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25FO1NBQ0Y7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBU0QsaUJBQWlCLENBQUMsRUFBVSxFQUFFLEtBQWM7UUFDMUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFRRCxlQUFlLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQy9DLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzFCLEtBQUssR0FBRyxHQUFHLENBQUM7UUFFZCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksS0FBSyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckUsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUM1RCxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbEY7O1lBRUMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQVFELGVBQWUsQ0FBQyxFQUFFLEVBQUUsS0FBTTtRQUN4QixJQUFJLFlBQVksR0FBUyxFQUFFLENBQUE7UUFFM0IsSUFBSSxDQUFDLEdBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDekMsSUFBSSxLQUFLLElBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRSxDQUFDLENBQUMsTUFBTSxJQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9ELFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFRRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUztRQUMvQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEMsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDcEIsSUFBSSxJQUFJLEtBQUssS0FBSztnQkFDaEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNOLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQVFELGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsS0FBYTtRQUNoRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFRRCxzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLEtBQWE7UUFDckQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBT0QsbUJBQW1CLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFRRCxZQUFZLENBQUMsR0FBRztRQUNkLElBQUksR0FBRyxJQUFJLElBQUk7WUFDYixPQUFPLEtBQUssQ0FBQztRQUNmLElBQUksS0FBSyxHQUFHLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQU1ELGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUQsYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFNO1FBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sV0FBVyxJQUFJLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBTUQsaUJBQWlCLENBQUMsR0FBUztRQUN6QixJQUFJLFFBQVEsR0FBWSxHQUFHLENBQUM7UUFDNUIsUUFBUSxHQUFFLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBTUQscUJBQXFCO1FBRW5CLElBQUksR0FBRyxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRW5ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBTUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBS0QsU0FBUyxDQUFDLEVBQVUsRUFBQyxLQUFhO1FBRWhDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3hCLE9BQU8sMEJBQTBCLENBQUM7UUFDcEMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUN2QixPQUFPLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNyRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDOUIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDMUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUN6QixPQUFPLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUN4RSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ25CLE9BQU8sMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBRXZELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRSxLQUFLLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFDdkQ7WUFDRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksZUFBZSxHQUFxQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixPQUFPLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN4QztTQUNGO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQVFELGlCQUFpQixDQUFDLFdBQW1CLEVBQUUsS0FBVSxFQUFFLGNBQXdCO1FBQ3pFLElBQUcsT0FBTyxjQUFjLEtBQUssV0FBVztZQUN0QyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksUUFBUSxHQUFjLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsUUFBUSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDL0IsUUFBUSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUtELGVBQWU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUM1QyxDQUFDO0lBT0QsYUFBYSxDQUFDLFdBQW1CLEVBQUUsS0FBYztRQUMvQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFDOUIsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUtELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUtELGNBQWM7UUFDWixJQUFJLEtBQUssR0FBVyxDQUFDLENBQUM7UUFDdEIsSUFBSSxRQUFhLENBQUM7UUFFbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUc7WUFDL0UsSUFBSSxPQUFPLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6RCxJQUFJLGFBQWEsR0FBYSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBRzFDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRztvQkFDaEMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUVELFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBR3ZCLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUE4QixFQUFFLEVBQUU7b0JBQ2pELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUN6QyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7d0JBQ3BCLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7d0JBQzVCLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTs0QkFDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ25ELENBQUMsQ0FBQyxDQUFDO3dCQUVILFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7cUJBQzFCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFVRCxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxPQUFjLEVBQUUsSUFBSyxFQUFHLE1BQU8sRUFBRyxNQUFPLEVBQUUsUUFBVTtRQUN2RixhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFLRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUtELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBS00sUUFBUSxDQUFDLFdBQW1CLEVBQUUsU0FBUztRQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOzt3RkFybkJVLG9CQUFvQjs0REFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhc2tNYWdpY1NlcnZpY2UgfSBmcm9tICcuL3Rhc2subWFnaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sTWV0YWRhdGEsIENvbnRyb2xzTWV0YWRhdGEgfSBmcm9tICcuLi9jb250cm9scy5tZXRhZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IEN1c3RvbVZhbGlkYXRvciwgR3VpRW52aXJvbm1lbnQsIEh0bWxQcm9wZXJ0aWVzLCBQSUMgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGdldEd1aUV2ZW50T2JqLCBJR3VpRXZlbnQsIENvb2tpZVNlcnZpY2V9IGZyb20gJ0BtYWdpYy14cGEvZW5naW5lJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IE1hZ2ljQ29sb3JTZXJ2aWNlIH0gZnJvbSAnLi9tYWdpYy1jb2xvci5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIFByb3ZpZGVzIHRoZSBVSSB3aXRoIHZhbHVlcyBjYWxjdWxhdGVkIGJ5IHRoZSBNYWdpYyBXZWJDbGllbnRcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFjY2Vzc29yTWFnaWNTZXJ2aWNlIHtcclxuICBMb2dnZXI6IGFueSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGFzazogVGFza01hZ2ljU2VydmljZSxwcm90ZWN0ZWQgIG1hZ2ljQ29sb3I6IE1hZ2ljQ29sb3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkxvZ2dlciA9IExvZ2dlci5JbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY29udHJvbCBpcyByZWFkLW9ubHlcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcmV0dXJucyBJcyB0aGUgY29udHJvbCBub3QgcmVhZC1vbmx5XHJcbiAgICovXHJcbiAgLy8gQ2hlY2tSZWFkT25seVxyXG4gIGNoZWNrSXNSZWFkT25seShjb250cm9sSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHByb3BlcnRpZXM6IENvbnRyb2xNZXRhZGF0YTtcclxuICAgIHByb3BlcnRpZXMgPSB0aGlzLnRhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YShjb250cm9sSWQpO1xyXG4gICAgaWYgKHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpICE9PSBudWxsICYmIHByb3BlcnRpZXMucHJvcGVydGllcy5nZXQoSHRtbFByb3BlcnRpZXMuUmVhZE9ubHkpID09PSB0cnVlKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJucyBUaGUgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGV4dFxyXG4gIGdldFRleHQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5UZXh0LCByb3dJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIGxheWVyIElkIG9mIHRhYnBhZ2VcclxuICAgKiBAcmV0dXJucyBUZXh0IG9mIHRhYnBhZ2VcclxuICAgKi9cclxuICAvLyBtZ0dldFRhYnBhZ2VUZXh0XHJcbiAgZ2V0VGFicGFnZVRleHQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QpO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtcyAhPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcmV0dXJuIGl0ZW1zW2xheWVyXS5kaXNwbGF5VmFsdWU7XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGltYWdlIGRlZmluZWQgZm9yIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIEltYWdlIHNldCBvbiBjb250cm9sXHJcbiAgICovXHJcbiAgLy8gbWdHZXRJbWFnZVxyXG4gIGdldEltYWdlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuSW1hZ2UsIHJvd0lkKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGltYWdlIGlzIHNldCBmb3IgdGhpcyBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgdHJ1ZSBpZiBjb250cm9sIGhhcyBhbiBpbWFnZSBzZXQgb24gaXRcclxuICAgKi9cclxuICAvLyBtZ0lzSW1hZ2VFeGlzdHNcclxuICBpc0ltYWdlRXhpc3RzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLkltYWdlLCByb3dJZCk7XHJcbiAgICByZXR1cm4gIWlzTnVsbE9yVW5kZWZpbmVkKHJlc3VsdCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgc2V0IG9uIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjbGFzc2VzIGZvciB0aGlzIGNvbnRyb2xcclxuICAgKi9cclxuICAvLyBtZ0dldENsYXNzZXNcclxuICBnZXRDbGFzc2VzKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOnN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldENsYXNzZXMoY29udHJvbElkLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBDU1Mgc3R5bGVzIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSBzdHlsZU5hbWUgTkFtZSBvZiBzdHlsZSByZXF1ZXN0ZWRcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnMgVGhlIHN0eWxlIHNldCBvbiB0aGUgY29udHJvbFxyXG4gICAqL1xyXG4gIC8vIG1nR2V0U3R5bGVcclxuICBnZXRTdHlsZShjb250cm9sSWQ6IHN0cmluZywgc3R5bGVOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHlsZSA9IHRoaXMudGFzay5nZXRTdHlsZShjb250cm9sSWQsIHN0eWxlTmFtZSwgcm93SWQpXHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIGlzIHZpc2libGUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zIElzIHRoZSBjb250cm9sIHZpc2libGUgb3IgaGlkZGVuXHJcbiAgICovXHJcbiAgLy8gbWdHZXRWaXNpYmxlXHJcbiAgZ2V0VmlzaWJsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgIGxldCB2aXM6IEJvb2xlYW4gPSB0aGlzLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuVmlzaWJsZSwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZpcyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBvYmplY3QgcmVwcmVzZW50aW5nIG51bWVyaWMgcGljdHVyZVxyXG4gICAqIEBwYXJhbSBwaWN0dXJlIHN0cmluZyB3aGljaCBpcyBkZWZpbmVkIGluIG1hZ2ljXHJcbiAgICogQHJldHVybnMgb2JqZWN0IHJlcHJlc2VudGluZyBudW1lcmljIHBpY3R1cmVcclxuICAgKi9cclxuICAvLyBtZ0dldE51bWVyaWNQaWN0dXJlXHJcbiAgZ2V0TnVtZXJpY1BpY3R1cmUocGljdHVyZTogc3RyaW5nKSA6IGFueSB7XHJcbiAgIHZhciBvYmogPSB7fTtcclxuICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHBpY3R1cmUpKVxyXG4gICAgICByZXR1cm4gb2JqO1xyXG5cclxuICAgbGV0IHBpYzogUElDID0gbmV3IFBJQyhwaWN0dXJlLCBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMsIDApO1xyXG5cclxuXHJcblxyXG4gICBvYmpbJ3ByZWZpeCddID0gXCJcIlxyXG4gICBpZiAocGljLmdldFBvc1ByZWZfKCkubGVuZ3RoID4gMCAmJiBwaWMuZ2V0TmVnUHJlZl8oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgbGV0IHByZWYgPSAnLScrcGljLmdldFBvc1ByZWZfKCk7XHJcbiAgICAgaWYgKHByZWYgPT0gcGljLmdldE5lZ1ByZWZfKCkpXHJcbiAgICAgIG9ialsncHJlZml4J10gPSBwaWMuZ2V0UG9zUHJlZl8oKTtcclxuICAgfVxyXG4gICBpZihwaWMuZ2V0UG9zU3VmZl8oKS5sZW5ndGggPiAwKVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBwaWMuZ2V0UG9zU3VmZl8oKTtcclxuICAgZWxzZVxyXG4gICAgIG9ialsnc3VmZml4J10gPSBcIlwiO1xyXG5cclxuICAgaWYocGljLmlzTmVnYXRpdmUoKSlcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IHRydWU7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ2FsbG93TmVnYXRpdmUnXSA9IGZhbHNlO1xyXG4gICBpZihwaWMuZ2V0RGVjKCk+PSAwKVxyXG4gICAgICBvYmpbJ3ByZWNpc2lvbiddID0gcGljLmdldERlYygpO1xyXG5cclxuICAgaWYocGljLmlzTGVmdCgpKVxyXG4gICAgICBvYmpbJ2FsaWduJ109XCJsZWZ0XCI7XHJcblxyXG4gICBvYmpbJ2RlY2ltYWwnXSA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlY2ltYWwoKTtcclxuICAgaWYocGljLndpdGhDb21hKCkpXHJcbiAgICAgIG9ialsndGhvdXNhbmRzJ109R3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VGhvdXNhbmRzKCk7XHJcbiAgIGVsc2VcclxuICAgICBvYmpbJ3Rob3VzYW5kcyddPVwiXCI7XHJcblxyXG4gICAgaWYocGljLmdldFdob2xlcygpKVxyXG4gICAgICBvYmpbJ3dob2xlcyddPXBpYy5nZXRXaG9sZXMoKTtcclxuXHJcbiAgICByZXR1cm4gICBvYmo7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSBjb250cm9sIHNob3VsZCBoYXZlIHRoZSBcInJlcXVpcmVkXCIgYXR0cmlidXRlIHNldCBvbiBpdFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0TXVzdElucHV0XHJcbiAgZ2V0TXVzdElucHV0KGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBzdHJpbmcge1xyXG4gICAgbGV0IHZpczogQm9vbGVhbiA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5NdXN0SW5wdXQsIHJvd0lkKTtcclxuICAgIHJldHVybiB2aXMgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgY29udHJvbCBpcyBkaXNhYmxlZFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nSXNEaXNhYmxlZFxyXG4gIGlzRGlzYWJsZWQoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogYW55e1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5FbmFibGVkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID09PSB0cnVlID8gbnVsbCA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8gZ2V0UHJvcGVydHkgKG5vdCBjaGFuZ2VkKVxyXG4gIGdldFByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wOiBIdG1sUHJvcGVydGllcywgcm93SWQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBwcm9wLCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0aXRsZSAodG9vbHRpcCkgdGV4dCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGl0bGVcclxuICBnZXRUaXRsZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRvb2x0aXAsIHJvd0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRpdGxlICh0b29sdGlwKSB0ZXh0IG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUaXRsZSBmb3Igem9vbSBidXR0b25cclxuICBnZXRab29tQnV0dG9uVGl0bGUoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5ab29tQnV0dG9uVG9vbHRpcCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0aW9uIGNvbnRyb2wncyBzZWxlY3RlZCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIGdldFNlbGVjdGVkVmFsdWVcclxuICBnZXRTZWxlY3RlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgcGxhY2UtaG9sZGVyIHRleHQgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldFBsYWNlaG9sZGVyXHJcbiAgZ2V0UGxhY2Vob2xkZXIoY29udHJvbElkOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5QbGFjZUhvbGRlciwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIHR5cGUgZm9yIGlucHV0IGNvbnRyb2xzIC0gc2hvdWxkIHRoZSBjb250cm9sIGJlIGEgc2ltcGxlIHRleHQgb3IgYSBwYXNzd29yZCBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRUeXBlXHJcbiAgZ2V0VHlwZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlBhc3N3b3JkLCByb3dJZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0ID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCJcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRhYi1pbmRleCBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vIG1nR2V0VGFiSW5kZXhcclxuICBnZXRUYWJJbmRleChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlRhYkluZGV4LCByb3dJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIC8vLyBtZ0dldFZhbHVlIC0tPlxyXG4gIGdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZDogc3RyaW5nLCByb3dJZD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgdmFsID0gdGhpcy50YXNrLmdldEZvcm1hdHRlZFZhbHVlKGNvbnRyb2xJZCwgdmFsKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBQaWN0dXJlIG9mIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8vIGdldFBpY3R1cmUgLS0+XHJcbiAgZ2V0UGljdHVyZShjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb250cm9sSWQpKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGxldCBwaWM6IFBJQyA9IHRoaXMudGFzay5HZXRDb250cm9sUGljdHVyZU1hc2soY29udHJvbElkKTtcclxuICAgIHJldHVybiAgKHBpYyAhPSBudWxsKSA/IHBpYy5nZXRGb3JtYXQoKS50b1N0cmluZygpIDogbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXN0b20gKHVzZXIpIHByb3BlcnRpZXMgb2YgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIE5hbWUgb2YgcmVxdWVzdGVkIHByb3BlcnR5XHJcbiAgICogQHBhcmFtIHJvd0lkIElkIG9mIHJvdywgaWYgYXBwbGljYWJsZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgLy8gbWdHZXRDdXN0b21Qcm9wZXJ0eVxyXG4gIGdldEN1c3RvbVByb3BlcnR5KGNvbnRyb2xJZDogc3RyaW5nLCBwcm9wZXJ0eU5hbWVPclJvd0lEPzogc3RyaW5nLCByb3dJZD86IHN0cmluZykgOiBhbnlcclxuICB7XHJcbiAgICBpZihjb250cm9sSWQuaW5kZXhPZignficpPT0gLTEpXHJcbiAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNvbnRyb2xJZCwgcHJvcGVydHlOYW1lT3JSb3dJRCwgcm93SWQpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCAgY2lkOiBzdHJpbmcgPSBjb250cm9sSWQuc3BsaXQoJ34nKVswXTtcclxuICAgICAgbGV0ICBwcm9wTmFtZTogc3RyaW5nID0gY29udHJvbElkLnNwbGl0KCd+JylbMV07XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21Qcm9wZXJ0eV8xKGNpZCwgcHJvcE5hbWUsIHByb3BlcnR5TmFtZU9yUm93SUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tUHJvcGVydHlfMShjb250cm9sSWQ6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHJvd0lkPzogc3RyaW5nKVxyXG4gIHtcclxuICAgIGxldCB1c2VyUHJvcGVydGllcztcclxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChyb3dJZCkpXHJcbiAgICAgIHJvd0lkID0gJzAnO1xyXG4gICAgbGV0IHJlYyA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdO1xyXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJlYykpXHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xNZXRhZGF0YSA9IHJlYy5nZXRDb250cm9sTWV0YWRhdGEoY29udHJvbElkKTtcclxuXHJcbiAgICAgIGlmIChjb250cm9sTWV0YWRhdGEudXNlclByb3BlcnRpZXMuaGFzKHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICB1c2VyUHJvcGVydGllcyA9IGNvbnRyb2xNZXRhZGF0YS51c2VyUHJvcGVydGllcy5nZXQocHJvcGVydHlOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXJQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdmFsdWVzIG9mIHRoZSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICAvLyBtZ0dldEl0ZW1MaXN0VmFsdWVzXHJcbiAgZ2V0SXRlbUxpc3RWYWx1ZXMoaWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpIDogQXJyYXk8e2luZGV4OiBudW1iZXIsIGRpc3BsYXlWYWx1ZTogc3RyaW5nfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoaWQsIEh0bWxQcm9wZXJ0aWVzLkl0ZW1zTGlzdCwgcm93SWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZmlsdGVyZWQgaXRlbXMgbGlzdCBiYXNlZCBvbiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sSWQgSWQgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSByb3dJZCBJZCBvZiByb3csIGlmIGFwcGxpY2FibGVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldEZpbHRlcmVkTGlzdChjb250cm9sSWQ6IHN0cmluZywgcm93SWQ/OiBzdHJpbmcpOiBBcnJheTx7aW5kZXg6IG51bWJlciwgZGlzcGxheVZhbHVlOiBzdHJpbmd9PiB7XHJcbiAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocm93SWQpKVxyXG4gICAgICByb3dJZCA9ICcwJztcclxuXHJcbiAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0VmFsdWVzKGNvbnRyb2xJZCwgcm93SWQpO1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGNvbnRyb2xJZCkudmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IFwiXCIgJiYgaXRlbXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdmFsdWUgb2YgdGhlIGl0ZW0gZnJvbSBpdGVtcyBvZiBhIHNlbGVjdGlvbiBjb250cm9sXHJcbiAgICogQHBhcmFtIGlkIElkIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93SWQgSWQgb2Ygcm93LCBpZiBhcHBsaWNhYmxlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXREaXNwbGF5VmFsdWUoaWQsIHJvd0lkPykge1xyXG4gICAgbGV0IGRpc3BsYXlWYWx1ZTpzdHJpbmcgPVwiXCJcclxuXHJcbiAgICBsZXQgbyA9ICB0aGlzLmdldFByb3BlcnR5KGlkLCBIdG1sUHJvcGVydGllcy5JdGVtc0xpc3QsIHJvd0lkKTtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMudGFzay5nZXRWYWx1ZShpZCwgcm93SWQpXHJcbiAgICBpZiAodmFsdWUgPj0wICYmIHZhbHVlIDxvLmxlbmd0aCAgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKG9bdmFsdWVdKSlcclxuICAgICAgZGlzcGxheVZhbHVlID0gb1t2YWx1ZV0uZGlzcGxheVZhbHVlO1xyXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90XHJcbiAgICogQHBhcmFtICBpbmRleCBvZiBjdXJyZW50IG9wdGlvbiBpbiBpdGVyYXJvdHJcclxuICAgKiBAcGFyYW0gY29udHJvbCBJZCBvZiBsaXN0IGNvbnRyb2xcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBpc09wdGlvblNlbGVjdGVkXHJcbiAgaXNPcHRpb25TZWxlY3RlZChpbmRleCwgY29udHJvbElkKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFZhbHVlKGNvbnRyb2xJZCwgXCIwXCIpO1xyXG4gICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHZhbCkge1xyXG4gICAgICAgICAgIGlmIChpdGVtID09PSBpbmRleClcclxuICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgdGFiIHBhZ2UgaXMgc2VsZWN0ZWQgb3Igbm90IC0gdXNlZCBmb3IgdGhlIHRhYiBidXR0b25zXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbElkIElkIG9mIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSAgbGF5ZXIgSWQgb2YgdGhlIHRhYiBwYWdlXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovIC8vIG1nSXNUYWJQYWdlU2VsZWN0ZWRcclxuICBpc1RhYlBhZ2VTZWxlY3RlZChjb250cm9sSWQ6IHN0cmluZywgbGF5ZXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbCA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eShjb250cm9sSWQsIEh0bWxQcm9wZXJ0aWVzLlNlbGVjdGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIHZhbCA9PSAobGF5ZXIgLSAxKTsgLy8gY29tcGFyaW5nIHN0cmluZyB0byBudW1iZXIhXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYSB0YWIgcGFnZSBsYXllciBpcyBzZWxlY3RlZCBvciBub3QgLSB1c2VkIGZvciB0aGUgZGl2IHdoaWNoIHJlcHJlc2VudHMgdGhlIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtICBsYXllciBJZCBvZiB0aGUgdGFiIHBhZ2VcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqLyAvLyBtZ0lzVGFiTGF5ZXJTZWxlY3RlZFxyXG4gIGlzVGFiUGFnZUxheWVyU2VsZWN0ZWQoY29udHJvbElkOiBzdHJpbmcsIGxheWVyOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWwgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkoY29udHJvbElkLCBIdG1sUHJvcGVydGllcy5TZWxlY3RlZExheWVyKTtcclxuICAgIHJldHVybiB2YWwgPT0gKGxheWVyIC0gMSk7IC8vIGNvbXBhcmluZyBzdHJpbmcgdG8gbnVtYmVyIVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYiBwYWdlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xJZCBJZCBvZiBjb250cm9sXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYWJTZWxlY3RlZEluZGV4KGNvbnRyb2xJZDogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRWYWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsOyAvLyBjb21wYXJpbmcgc3RyaW5nIHRvIG51bWJlciFcclxuICB9XHJcblxyXG5cclxuICAvLyBwcml2YXRlIG1ldGhvZGVzXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIG1nSWZSb3dDcmVhdGVkXHJcbiAgaWZSb3dDcmVhdGVkKHJvdyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJvdyA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgcm93SWQgPSB0eXBlb2Ygcm93ID09IFwibnVtYmVyXCIgPyByb3cudG9TdHJpbmcoKSA6IHJvdy5yb3dJZDtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLmdldEZvcm1Hcm91cEJ5Um93KHJvd0lkKTtcclxuICAgIHJldHVybiAhaXNOdWxsT3JVbmRlZmluZWQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICAvLyBtZ0dldEZvcm1Hcm91cEJ5Um93XHJcbiAgZ2V0Rm9ybUdyb3VwQnlSb3coaWQ6IHN0cmluZyk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy50YXNrLmZvcm1Hcm91cHNbaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIGlzUm93U2VsZWN0ZWQgKG5vdCBjaGFuZ2VkKVxyXG4gIGlzUm93U2VsZWN0ZWQoY29udHJvbElkLCByb3dJZD8pIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93ID0gdGhpcy50YXNrLmdldFByb3BlcnR5KGNvbnRyb2xJZCwgSHRtbFByb3BlcnRpZXMuU2VsZWN0ZWRSb3csIFwiMFwiKTtcclxuICAgIHJldHVybiBzZWxlY3RlZFJvdyA9PSByb3dJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlXHJcbiAgICogQHBhcmFtIHJvd1xyXG4gICAqL1xyXG4gIGlzUm93SW5Sb3dFZGl0aW5nKHJvdz86IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGd1aVJvd0lkIDogc3RyaW5nID0gJzAnO1xyXG4gICAgZ3VpUm93SWQ9IHR5cGVvZiByb3cgPT0gXCJudW1iZXJcIiA/IHJvdy50b1N0cmluZygpIDogcm93LnJvd0lkO1xyXG4gICAgcmV0dXJuIHRoaXMudGFzay5pc1Jvd0luUm93RWRpdGluZyhndWlSb3dJZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciBhIHJvdyBpcyBpbiBlZGl0IHN0YXRlLCB1c2UgdGhpcyBtZXRob2Qgd2hpbGUgY29udHJvbCBvdXRzaWRlIHRhYmxlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gcm93XHJcbiAgICovXHJcbiAgaXNDdXJyZW50SW5Sb3dFZGl0aW5nKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGxldCByb3cgID0gdGhpcy50YXNrLnRhYmxlU2VydmljZS5nZXRTZWxlY3RlZFJvdygpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnRhc2suaXNSb3dJblJvd0VkaXRpbmcocm93KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vIEdldEd1aVRvcEluZGV4XHJcbiAgZ3VpVG9wSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2sudGFibGVTZXJ2aWNlLmdldFRhYmxlVG9wSW5kZXgoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXRFcnJNc2coaWQ6IHN0cmluZyxyb3dJZDogc3RyaW5nKTogc3RyaW5nXHJcbiAge1xyXG4gICAgbGV0IGMgPSB0aGlzLnRhc2suZ2V0Rm9ybUNvbnRyb2wocm93SWQsIGlkKTtcclxuICAgIGlmIChjLmhhc0Vycm9yKCdyZXF1aXJlZCcpKVxyXG4gICAgICByZXR1cm4gJ0NvbnRyb2wgbXVzdCBiZSB1cGRhdGVkLic7XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncGF0dGVybicpKVxyXG4gICAgICByZXR1cm4gJ1JlcXVpcmVkIHBhdHRlcm4gaXMgOiAnICsgYy5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm47XHJcbiAgICBpZiAoYy5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSlcclxuICAgICAgcmV0dXJuIGMuZXJyb3JzLnJhbmdldmFsaWRhdG9yLmVycm9yTXNnO1xyXG4gICAgaWYgKGMuaGFzRXJyb3IoJ21heGxlbmd0aCcpKVxyXG4gICAgICByZXR1cm4gJ01heCBsZW5ndGggYWxsb3dlZCBpcyA6ICcgKyBjLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoYy5oYXNFcnJvcignbWF4JykpXHJcbiAgICAgIHJldHVybiAnTWF4IHZhbHVlIGFsbGxvd2VkIGlzIDogJyArIGMuZXJyb3JzLm1heC5tYXg7XHJcblxyXG4gICAgbGV0IGNvbnRyb2xNZXRhZGF0YSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Rbcm93SWRdLmdldENvbnRyb2xNZXRhZGF0YShpZCk7XHJcbiAgICBmb3IgKGxldCBrZXkgb2YgY29udHJvbE1ldGFkYXRhLmN1c3RvbVZhbGlkYXRvcnMua2V5cygpKVxyXG4gICAge1xyXG4gICAgICBpZiAoYy5oYXNFcnJvcihrZXkpKSB7XHJcbiAgICAgICAgbGV0IGN1c3RvbVZhbGlkYXRvcjogQ3VzdG9tVmFsaWRhdG9yICA9IGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmdldChrZXkpO1xyXG4gICAgICAgIHJldHVybiBjdXN0b21WYWxpZGF0b3IuZ2V0RXJyTWVzc2FnZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICd1bmtub3duIGVycm9yJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYSB1c2VyLXN1cHBsaWVkIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAqIEBwYXJhbSByZWZyZXNoRGlzcGxheVxyXG4gICAqL1xyXG4gIHNldFZhbHVlVG9Db250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIHJlZnJlc2hEaXNwbGF5PzogYm9vbGVhbil7XHJcbiAgICBpZih0eXBlb2YgcmVmcmVzaERpc3BsYXkgPT09IFwidW5kZWZpbmVkXCIpXHJcbiAgICAgIHJlZnJlc2hEaXNwbGF5ID0gdHJ1ZTtcclxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZXRleHRlcm5hbHZhbHVlXCIsIGNvbnRyb2xOYW1lLCAwKTtcclxuICAgIGd1aUV2ZW50LmV4dGVybmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgIGd1aUV2ZW50LnBhcmFtID0gcmVmcmVzaERpc3BsYXk7XHJcbiAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbiAgaXNEYXRhdmlld0VtcHR5KCkgOiBib29sZWFuIHtcclxuICAgICByZXR1cm4gdGhpcy50YXNrLlJlY29yZHMuaXNFbXB0eURhdGFWaWV3O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2ltdWxhdGVzIGEgY2xpY2sgZXZlbnQgb24gdGhlIHNwZWNpZmllZCBjb250cm9sLCBmb3IgdGhlIE1hZ2ljIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSByb3dJZFxyXG4gICAqL1xyXG4gIHNpbXVsYXRlQ2xpY2soY29udHJvbE5hbWU6IHN0cmluZywgcm93SWQ/OiBudW1iZXIpe1xyXG4gICAgaWYgKHR5cGVvZiByb3dJZCA9PT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgcm93SWQgPSAwO1xyXG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGdldEd1aUV2ZW50T2JqKCdjbGljaycsIGNvbnRyb2xOYW1lLCByb3dJZCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIEJvb2xlYW4gVFJVRSBpZiB1c2VyIGxvZ2dlZCBpbiBFbHNlIGl0IHdpbGwgcmV0dXJuIEZBTFNFXHJcbiAgICovXHJcbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhc2suZ2V0SXNMb2dnZW5JbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBKUyBvYmplY3QgY29udGFpbmluZyB0aGUgcmVjb3JkcyB3aXRoIGFsbCB0YWJsZSBmaWVsZHMuXHJcbiAgICovXHJcbiAgR2V0Rm9ybVJlY29yZHMoKTogYW55IHtcclxuICAgIGxldCByb3dJZDogbnVtYmVyID0gMDtcclxuICAgIGxldCByZWNBcnJheTogYW55O1xyXG5cclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy50YXNrLlJlY29yZHMpICYmIHRoaXMudGFzay5SZWNvcmRzLmxpc3QubGVuZ3RoID4gMCApIHtcclxuICAgICAgbGV0IHJlY0xpc3Q6IENvbnRyb2xzTWV0YWRhdGFbXSA9IHRoaXMudGFzay5SZWNvcmRzLmxpc3Q7XHJcbiAgICAgIGxldCB0YWJsZUNvbnRyb2xzOiBzdHJpbmdbXSA9IG5ldyBBcnJheSgpO1xyXG5cclxuICAgICAgLy9HZW5lcmF0ZSBsaXN0IG9mIHRhYmxlIGZpZWxkcyBuYW1lc1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRhc2sudGVtcGxhdGUpIHtcclxuICAgICAgICBpZiAodGhpcy50YXNrLnRlbXBsYXRlW2tleV0gPT0gJzEnKVxyXG4gICAgICAgICAgdGFibGVDb250cm9scy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlY0FycmF5ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAvL1VwZGF0ZSB0aGUgcmVjb3JkcyBhcyBsaXN0IG9mIG9iamVjdHMgd2l0aCB2YWx1ZXMgZm9yIHRhYmxlIGZpZWxkcy5cclxuICAgICAgaWYgKHRhYmxlQ29udHJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlY0xpc3QuZm9yRWFjaCgoY3RybE1ldGFEYXRhOiBDb250cm9sc01ldGFkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YXNrLlJlY29yZHMuaXNSb3dDcmVhdGVkKHJvd0lkKSkge1xyXG4gICAgICAgICAgICB2YXIgZm9ybVJlY29yZCA9IHt9O1xyXG4gICAgICAgICAgICBmb3JtUmVjb3JkWydyb3dJZCddID0gcm93SWQ7XHJcbiAgICAgICAgICAgIHRhYmxlQ29udHJvbHMuZm9yRWFjaCgoY3RybElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBmb3JtUmVjb3JkW2N0cmxJZF0gPSBjdHJsTWV0YURhdGEudmFsdWVzW2N0cmxJZF07XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmVjQXJyYXkucHVzaChmb3JtUmVjb3JkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlY0FycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0Q29va2llIDogc2V0IHRoZSBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBhbmQgdmFsdWUgIGluIGJyb3dzZXJcclxuICAgKiBleHBpcmVzIC0gZXhwaXJhdGlvbiB0aW1lXHJcbiAgICogcGF0aCAtIHBhdGggd2hpY2ggbXVjaCBleGlzdHMgaW4gb3JkZXIgc28gdGhhdCBjb29raWUgaXMgc2VudCBhcyBoZWFkZXJcclxuICAgKiBkb21haW4gLSBzcGVjaWZpZXMgd2hpY2ggaG9zdHMgYXJlIGFsbG93ZWQgdG8gcmVjZWl2ZSB0aGUgY29va2llXHJcbiAgICogc2VjdXJlIC0gc3BlY2lmaWVzIGlmIGNvb2tpZSBpcyBzZWN1cmUgKCB3b3JrcyBvbmx5IHdpdGggSFRUUFMpXHJcbiAgICogc2FtZVNpdGUgLSBsZXRzIHNlcnZlcnMgc3BlY2lmeSB3aGV0aGVyL3doZW4gY29va2llcyBhcmUgc2VudCB3aXRoIGNyb3NzLXNpdGUgcmVxdWVzdHNcclxuICAgKi9cclxuICBTZXRDb29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBleHBpcmVzPzogRGF0ZSwgcGF0aD8gLCBkb21haW4/ICwgc2VjdXJlPywgc2FtZVNpdGUgPykge1xyXG4gICAgQ29va2llU2VydmljZS5zZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlLCBzYW1lU2l0ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRDb29raWUgOiBnZXQgdGhlIGNvb2tpZSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCB2YWx1ZSAgaW4gYnJvd3NlclxyXG4gICAqL1xyXG4gIEdldENvb2tpZShuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIENvb2tpZVNlcnZpY2UuZ2V0Q29va2llKG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlQ29va2llIDogZGVsZXRlcyB0aGUgY29va2llXHJcbiAgICovXHJcbiAgRGVsZXRlQ29va2llKG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gQ29va2llU2VydmljZS5kZWxldGVDb29raWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICAgLyoqXHJcbiAgICogZ2V0IFJHQkEgY29sb3IgZnJvbSBjb2xvciBmaWxlXHJcbiAgICovXHJcbiAgcHVibGljIGdldENvbG9yKGNvbG9yTnVtYmVyOiBudW1iZXIsIGNvbG9yVHlwZSkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFnaWNDb2xvci5nZXRDb2xvcihjb2xvck51bWJlciwgY29sb3JUeXBlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,18 +1,31 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Inject, Injectable, InjectionToken } from '@angular/core';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common/http";
5
+ export let COLOR_FILE_NAME = new InjectionToken('colorFile', {
6
+ providedIn: 'root',
7
+ factory: () => 'clr_rnt.eng'
8
+ });
5
9
  export const MAGIC_FG_COLOR = 1;
6
10
  export const MAGIC_BG_COLOR = 2;
7
11
  export class MagicColorService {
8
- constructor(http) {
12
+ constructor(http, colorFile1 = 'clr_rnt.eng') {
9
13
  this.http = http;
10
- this.colorFilePath = 'assets/clr_rnt.eng';
14
+ this.colorFileName = 'clr_rnt.eng';
15
+ if (colorFile1)
16
+ this.colorFileName = colorFile1;
17
+ else
18
+ this.colorFileName = 'clr_rnt.eng';
19
+ }
20
+ getColorFilePath() {
21
+ return 'assets/' + this.colorFileName;
11
22
  }
12
23
  getColorData() {
13
- this.http.get(this.colorFilePath, { responseType: 'text' }).subscribe(resp => {
14
- this.colorsData = resp.replace(/\n/g, '@').split('@');
15
- });
24
+ if (!this.colorsData) {
25
+ this.http.get(this.getColorFilePath(), { responseType: 'text' }).subscribe(resp => {
26
+ this.colorsData = resp.replace(/\n/g, '@').split('@');
27
+ });
28
+ }
16
29
  }
17
30
  hexToRgba(hex) {
18
31
  let shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])$/i;
@@ -56,12 +69,15 @@ export class MagicColorService {
56
69
  return '';
57
70
  }
58
71
  }
59
- MagicColorService.ɵfac = function MagicColorService_Factory(t) { return new (t || MagicColorService)(i0.ɵɵinject(i1.HttpClient)); };
72
+ MagicColorService.ɵfac = function MagicColorService_Factory(t) { return new (t || MagicColorService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(COLOR_FILE_NAME)); };
60
73
  MagicColorService.ɵprov = i0.ɵɵdefineInjectable({ token: MagicColorService, factory: MagicColorService.ɵfac, providedIn: 'root' });
61
74
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicColorService, [{
62
75
  type: Injectable,
63
76
  args: [{
64
77
  providedIn: 'root'
65
78
  }]
66
- }], function () { return [{ type: i1.HttpClient }]; }, null); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL21hZ2ljLWNvbG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUVsRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVcsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBVyxDQUFDLENBQUM7QUFLeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSDdCLGtCQUFhLEdBQUcsb0JBQW9CLENBQUM7SUFJNUMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBUTtRQUN4QixJQUFJLGNBQWMsR0FBRywyQ0FBMkMsQ0FBQztRQUVqRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBUyxDQUFNLEVBQUUsQ0FBTSxFQUFFLENBQU0sRUFBRSxDQUFNLEVBQUUsQ0FBTTtZQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sR0FBRyx1REFBdUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0UsSUFBSSxHQUFHLEdBQUc7WUFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxNQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUc7U0FDaEQsQ0FBQztRQUVGLE9BQU8sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3RGLENBQUM7SUFRTSxRQUFRLENBQUMsVUFBa0IsRUFBRSxTQUFpQjtRQUVuRCxJQUFHLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRSxDQUFDLENBQUMsRUFBRTtZQUNyRCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7WUFDaEMsSUFBSSxLQUFLLEdBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFHN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBRWxCLFFBQVEsU0FBUyxFQUFFO29CQUNqQixLQUFLLGNBQWM7d0JBQ2pCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNqQixNQUFNO29CQUNSLEtBQUssY0FBYzt3QkFDakIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2pCLE1BQU07b0JBQ1I7d0JBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsR0FBRyxVQUFVLENBQUMsQ0FBQzt3QkFDeEUsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDRjs7Z0JBQ0MsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUM1RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O2tGQXBFVSxpQkFBaUI7eURBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBRmhCLE1BQU07dUZBRVAsaUJBQWlCO2NBSDdCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBjb25zdCBNQUdJQ19GR19DT0xPUjogbnVtYmVyID0gMTtcbmV4cG9ydCBjb25zdCBNQUdJQ19CR19DT0xPUjogbnVtYmVyID0gMjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWFnaWNDb2xvclNlcnZpY2Uge1xuXG4gIHB1YmxpYyBjb2xvckZpbGVQYXRoID0gJ2Fzc2V0cy9jbHJfcm50LmVuZyc7XG4gIHByaXZhdGUgY29sb3JzRGF0YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sb3JEYXRhKCl7XG4gICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbG9yRmlsZVBhdGgsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkuc3Vic2NyaWJlKHJlc3AgPT4ge1xuICAgICAgdGhpcy5jb2xvcnNEYXRhID0gcmVzcC5yZXBsYWNlKC9cXG4vZywgJ0AnKS5zcGxpdCgnQCcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoZXhUb1JnYmEoaGV4OiBhbnkpOiBhbnkge1xuICAgIGxldCBzaG9ydGhhbmRSZWdleCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICAgIC8vIGNvbnZlcnQgaXQgdG8gZm9ybWF0IDogYWFycmdnYmJcbiAgICBoZXggPSBoZXgucmVwbGFjZShzaG9ydGhhbmRSZWdleCwgZnVuY3Rpb24obTogYW55LCByOiBhbnksIGc6IGFueSwgYjogYW55LCBhOiBhbnkpIHtcbiAgICAgIHJldHVybiBhICsgYSArIHIgKyByICsgZyArIGcgKyBiICsgYjtcbiAgICB9KTtcblxuICAgIGxldCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG5cbiAgICBsZXQgcmdiID0ge1xuICAgICAgJ3JlZCc6IHBhcnNlSW50KHJlc3VsdCFbNF0sIDE2KSxcbiAgICAgICdncmVlbic6IHBhcnNlSW50KHJlc3VsdCFbM10sIDE2KSxcbiAgICAgICdibHVlJzogcGFyc2VJbnQocmVzdWx0IVsyXSwgMTYpLFxuICAgICAgJ2FscGhhJzogKDI1NSAtIHBhcnNlSW50KHJlc3VsdCFbMV0sIDE2KSkgLyAyNTVcbiAgICB9O1xuXG4gICAgcmV0dXJuICdyZ2JhKCcgKyByZ2IucmVkICsgJywnICsgcmdiLmdyZWVuICsgJywnICsgcmdiLmJsdWUgKyAnLCcgKyByZ2IuYWxwaGEgKyAnKSc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmdiYSB2YWx1ZSBvZiBzcGVjaWZpZWQgY29sb3JcbiAgICogQHJldHVybnMgOiB2YWx1ZSBpbiBmb3JtYXQgcmdiYSgxMjgsMTI4LDEyOCwxKVxuICAgKiBAcGFyYW0gOiBjb2xvck51bWJlciAtMCBiYXNlZCBpbmRleCBvZiBjb2xvciBmb3Igd2hpY2ggUkdCQSB2YWx1ZXMgYXJlIHJldHVybmVkXG4gICAqIEBwYXJhbTogY29sb3JUeXBlIDogMS1NQUdJQ19GR19DT0xPUiwgMi1NQUdJQ19CR19DT0xPUlxuICAgKi9cbiAgcHVibGljIGdldENvbG9yKGNvbG9ySW5kZXg6IG51bWJlciwgY29sb3JUeXBlOiBudW1iZXIpIHtcblxuICAgIGlmKCF0aGlzLmNvbG9yc0RhdGEpXG4gICAgICB0aGlzLmdldENvbG9yRGF0YSgpO1xuICAgIGlmICh0aGlzLmNvbG9yc0RhdGEgJiYgdGhpcy5jb2xvcnNEYXRhW2NvbG9ySW5kZXggLTFdKSB7IC8vIGNvbG9yIGV4aXN0c1xuICAgICAgbGV0IGhleCA9ICcnO1xuICAgICAgY29uc3QgZ3JheUhhc2hDb2RlID0gJzAwODA4MDgwJztcbiAgICAgIGxldCBjb2xvcjogc3RyaW5nW10gPSB0aGlzLmNvbG9yc0RhdGFbY29sb3JJbmRleF0uc3BsaXQoJywnKTsgLy8gZ2V0IHRoZSBjb2xvciBkZXRhaWxzXG4gICAgICAvLyBjb2xvclswXSAtIG5hbWUsIGNvbG9yWzFdIC0gRkcgY29sb3IsIGNvbG9yWzJdIC0gQkcgY29sb3JcbiAgICAgIC8vIGNvbG9yWzNdIC0gYXR0ciBmbGFncyAoMSAtIHRyYW5zcGVyZW50LCAyIC0gc3lzdGVtIEZHLCA0IC0gc3lzdGVtIGJnKVxuICAgICAgaWYgKCtjb2xvclszXSA8PSAxKSB7IC8vIGZvciBub24tc3lzdGVtIGNvbG9yIG9yIHRyYW5zcGVyZW50IGNvbG9yXG5cbiAgICAgICAgc3dpdGNoIChjb2xvclR5cGUpIHtcbiAgICAgICAgICBjYXNlIE1BR0lDX0ZHX0NPTE9SOlxuICAgICAgICAgICAgaGV4ID0gKGNvbG9yWzFdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTUFHSUNfQkdfQ09MT1I6XG4gICAgICAgICAgICBoZXggPSAoY29sb3JbMl0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgZW50ZXIgdmFsaWQgY29sb3IgdHlwZSA6IDEtRkcsIDItQkcgJyArIGNvbG9ySW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGV4ID0gZ3JheUhhc2hDb2RlO1xuICAgICAgcmV0dXJuIHRoaXMuaGV4VG9SZ2JhKCcjJyArIGhleCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZ2V0IGNvbG9yIGZvciBudW1iZXIgJyArIGNvbG9ySW5kZXgpO1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
79
+ }], function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
80
+ type: Inject,
81
+ args: [COLOR_FILE_NAME]
82
+ }] }]; }, null); })();
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3NlcnZpY2VzL21hZ2ljLWNvbG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR2xELE1BQU0sQ0FBQyxJQUFJLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxXQUFXLEVBQUU7SUFDbkUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWE7Q0FDN0IsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVcsQ0FBQyxDQUFDO0FBS3hDLE1BQU0sT0FBTyxpQkFBaUI7SUFVNUIsWUFBb0IsSUFBZ0IsRUFBMkIsYUFBcUIsYUFBYTtRQUE3RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBVDdCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBVW5DLElBQUksVUFBVTtZQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDOztZQUVoQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBWk0sZ0JBQWdCO1FBQ3JCLE9BQU8sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQVlPLFlBQVk7UUFFbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FB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QUZoQixNQUFNO3VGQUVQLGlCQUFpQjtjQUg3QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQVd3QyxNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5cbmV4cG9ydCBsZXQgQ09MT1JfRklMRV9OQU1FID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2NvbG9yRmlsZScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiAnY2xyX3JudC5lbmcnXG59KTtcbmV4cG9ydCBjb25zdCBNQUdJQ19GR19DT0xPUjogbnVtYmVyID0gMTtcbmV4cG9ydCBjb25zdCBNQUdJQ19CR19DT0xPUjogbnVtYmVyID0gMjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWFnaWNDb2xvclNlcnZpY2Uge1xuICBwdWJsaWMgY29sb3JGaWxlTmFtZSA9ICdjbHJfcm50LmVuZyc7XG5cbiAgcHVibGljIGdldENvbG9yRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuICdhc3NldHMvJyArIHRoaXMuY29sb3JGaWxlTmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgY29sb3JzRGF0YTtcblxuICAvLyBwdWJsaWMgc3RhdGljIEZJTEVfTkFNRTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBASW5qZWN0KENPTE9SX0ZJTEVfTkFNRSkgY29sb3JGaWxlMTogc3RyaW5nID0gJ2Nscl9ybnQuZW5nJykge1xuICAgIGlmIChjb2xvckZpbGUxKVxuICAgICAgdGhpcy5jb2xvckZpbGVOYW1lID0gY29sb3JGaWxlMTtcbiAgICBlbHNlXG4gICAgICB0aGlzLmNvbG9yRmlsZU5hbWUgPSAnY2xyX3JudC5lbmcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xvckRhdGEoKSB7XG5cbiAgICBpZiAoIXRoaXMuY29sb3JzRGF0YSkge1xuICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmdldENvbG9yRmlsZVBhdGgoKSwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KS5zdWJzY3JpYmUocmVzcCA9PiB7XG4gICAgICAgIHRoaXMuY29sb3JzRGF0YSA9IHJlc3AucmVwbGFjZSgvXFxuL2csICdAJykuc3BsaXQoJ0AnKTtcbiAgICAgIH0pO1xuXG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGhleFRvUmdiYShoZXg6IGFueSk6IGFueSB7XG4gICAgbGV0IHNob3J0aGFuZFJlZ2V4ID0gL14jPyhbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XG4gICAgLy8gY29udmVydCBpdCB0byBmb3JtYXQgOiBhYXJyZ2diYlxuICAgIGhleCA9IGhleC5yZXBsYWNlKHNob3J0aGFuZFJlZ2V4LCBmdW5jdGlvbihtOiBhbnksIHI6IGFueSwgZzogYW55LCBiOiBhbnksIGE6IGFueSkge1xuICAgICAgcmV0dXJuIGEgKyBhICsgciArIHIgKyBnICsgZyArIGIgKyBiO1xuICAgIH0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcblxuICAgIGxldCByZ2IgPSB7XG4gICAgICAncmVkJzogcGFyc2VJbnQocmVzdWx0IVs0XSwgMTYpLFxuICAgICAgJ2dyZWVuJzogcGFyc2VJbnQocmVzdWx0IVszXSwgMTYpLFxuICAgICAgJ2JsdWUnOiBwYXJzZUludChyZXN1bHQhWzJdLCAxNiksXG4gICAgICAnYWxwaGEnOiAoMjU1IC0gcGFyc2VJbnQocmVzdWx0IVsxXSwgMTYpKSAvIDI1NVxuICAgIH07XG5cbiAgICByZXR1cm4gJ3JnYmEoJyArIHJnYi5yZWQgKyAnLCcgKyByZ2IuZ3JlZW4gKyAnLCcgKyByZ2IuYmx1ZSArICcsJyArIHJnYi5hbHBoYSArICcpJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZ2JhIHZhbHVlIG9mIHNwZWNpZmllZCBjb2xvclxuICAgKiBAcmV0dXJucyA6IHZhbHVlIGluIGZvcm1hdCByZ2JhKDEyOCwxMjgsMTI4LDEpXG4gICAqIEBwYXJhbSA6IGNvbG9yTnVtYmVyIC0wIGJhc2VkIGluZGV4IG9mIGNvbG9yIGZvciB3aGljaCBSR0JBIHZhbHVlcyBhcmUgcmV0dXJuZWRcbiAgICogQHBhcmFtOiBjb2xvclR5cGUgOiAxLU1BR0lDX0ZHX0NPTE9SLCAyLU1BR0lDX0JHX0NPTE9SXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29sb3IoY29sb3JJbmRleDogbnVtYmVyLCBjb2xvclR5cGU6IG51bWJlcikge1xuXG4gICAgaWYoIXRoaXMuY29sb3JzRGF0YSlcbiAgICAgIHRoaXMuZ2V0Q29sb3JEYXRhKCk7XG4gICAgaWYgKHRoaXMuY29sb3JzRGF0YSAmJiB0aGlzLmNvbG9yc0RhdGFbY29sb3JJbmRleCAtMV0pIHsgLy8gY29sb3IgZXhpc3RzXG4gICAgICBsZXQgaGV4ID0gJyc7XG4gICAgICBjb25zdCBncmF5SGFzaENvZGUgPSAnMDA4MDgwODAnO1xuICAgICAgbGV0IGNvbG9yOiBzdHJpbmdbXSA9IHRoaXMuY29sb3JzRGF0YVtjb2xvckluZGV4XS5zcGxpdCgnLCcpOyAvLyBnZXQgdGhlIGNvbG9yIGRldGFpbHNcbiAgICAgIC8vIGNvbG9yWzBdIC0gbmFtZSwgY29sb3JbMV0gLSBGRyBjb2xvciwgY29sb3JbMl0gLSBCRyBjb2xvclxuICAgICAgLy8gY29sb3JbM10gLSBhdHRyIGZsYWdzICgxIC0gdHJhbnNwZXJlbnQsIDIgLSBzeXN0ZW0gRkcsIDQgLSBzeXN0ZW0gYmcpXG4gICAgICBpZiAoK2NvbG9yWzNdIDw9IDEpIHsgLy8gZm9yIG5vbi1zeXN0ZW0gY29sb3Igb3IgdHJhbnNwZXJlbnQgY29sb3JcblxuICAgICAgICBzd2l0Y2ggKGNvbG9yVHlwZSkge1xuICAgICAgICAgIGNhc2UgTUFHSUNfRkdfQ09MT1I6XG4gICAgICAgICAgICBoZXggPSAoY29sb3JbMV0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNQUdJQ19CR19DT0xPUjpcbiAgICAgICAgICAgIGhleCA9IChjb2xvclsyXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1BsZWFzZSBlbnRlciB2YWxpZCBjb2xvciB0eXBlIDogMS1GRywgMi1CRyAnICsgY29sb3JJbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICBoZXggPSBncmF5SGFzaENvZGU7XG4gICAgICByZXR1cm4gdGhpcy5oZXhUb1JnYmEoJyMnICsgaGV4KTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ0NvdWxkIG5vdCBnZXQgY29sb3IgZm9yIG51bWJlciAnICsgY29sb3JJbmRleCk7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=
@@ -5,9 +5,7 @@ export class MagicAlertComponent extends BaseMagicAlertComponent {
5
5
  }
6
6
  MagicAlertComponent.ɵfac = function () { let ɵMagicAlertComponent_BaseFactory; return function MagicAlertComponent_Factory(t) { return (ɵMagicAlertComponent_BaseFactory || (ɵMagicAlertComponent_BaseFactory = i0.ɵɵgetInheritedFactory(MagicAlertComponent)))(t || MagicAlertComponent); }; }();
7
7
  MagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicAlertComponent, selectors: [["sample-magic-alert-component"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 2, consts: [[1, "mg-message-background"], [3, "click"]], template: function MagicAlertComponent_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "div");
9
- i0.ɵɵelementStart(1, "div", 0);
10
- i0.ɵɵelementStart(2, "h2");
8
+ i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "h2");
11
9
  i0.ɵɵtext(3);
12
10
  i0.ɵɵelementEnd();
13
11
  i0.ɵɵelementStart(4, "p");
@@ -16,9 +14,7 @@ MagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicAlertComponent,
16
14
  i0.ɵɵelementStart(6, "button", 1);
17
15
  i0.ɵɵlistener("click", function MagicAlertComponent_Template_button_click_6_listener() { return ctx.OnClose(); });
18
16
  i0.ɵɵtext(7, "OK");
19
- i0.ɵɵelementEnd();
20
- i0.ɵɵelementEnd();
21
- i0.ɵɵelementEnd();
17
+ i0.ɵɵelementEnd()()();
22
18
  } if (rf & 2) {
23
19
  i0.ɵɵadvance(3);
24
20
  i0.ɵɵtextInterpolate1(" ", ctx.title, "");
@@ -68,4 +64,4 @@ MagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicAlertComponent,
68
64
  `]
69
65
  }]
70
66
  }], null, null); })();
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvY29tcG9uZW50cy9tYWdpYy1hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUE4Q3ZFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUyx1QkFBdUI7O3lPQUFwRCxtQkFBbUIsU0FBbkIsbUJBQW1CO3dEQUFuQixtQkFBbUI7UUF0Q25CLDJCQUFLO1FBQ2QsOEJBQW1DO1FBQ2pDLDBCQUFJO1FBQUMsWUFBUztRQUFBLGlCQUFLO1FBQ25CLHlCQUFHO1FBQUEsWUFBWTtRQUFBLGlCQUFJO1FBRW5CLGlDQUE0QjtRQUFwQixnR0FBUyxhQUFTLElBQUM7UUFBQyxrQkFBRTtRQUFBLGlCQUFTO1FBQ3pDLGlCQUFNO1FBQ1IsaUJBQU07O1FBTEcsZUFBUztRQUFULHlDQUFTO1FBQ1gsZUFBWTtRQUFaLDJDQUFZOzt1RkFtQ1IsbUJBQW1CO2NBeEMvQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsUUFBUSxFQUFFOzs7Ozs7O1NBT0g7Z0JBQ1AsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlIsQ0FBQzthQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTWFnaWNBbGVydENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1tYWdpYy1hbGVydC5jb21wb25lbnQnO1xuXG5cbi8qKipcbiAqIFRoaXMgaXMgc2FtcGxlIGNvbXBvbmVudCBmb3IgdGhlIGFsZXJ0IG1lc3NhZ2VcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2FtcGxlLW1hZ2ljLWFsZXJ0LWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWctbWVzc2FnZS1iYWNrZ3JvdW5kXCI+XG4gICAgICA8aDI+IHt7dGl0bGV9fTwvaDI+XG4gICAgICA8cD57e21lc3NhZ2V9fSA8L3A+XG5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIk9uQ2xvc2UoKVwiPk9LPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PmAsXG4gIHN0eWxlczogW2BcbiAgICAubWctbWVzc2FnZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNDAlO1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDE3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxMCUgO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCAgZ3JheTtcbiAgfVxuXG4gIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Q0Q0RjU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHggMzJweDtcbiAgbWFyZ2luOiAyNnB4IDVweCAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2ljQWxlcnRDb21wb25lbnQgZXh0ZW5kcyAgQmFzZU1hZ2ljQWxlcnRDb21wb25lbnR7XG5cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvY29tcG9uZW50cy9tYWdpYy1hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUE4Q3ZFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUyx1QkFBdUI7O3lPQUFwRCxtQkFBbUIsU0FBbkIsbUJBQW1CO3dEQUFuQixtQkFBbUI7UUF0Q25CLDJCQUFLLGFBQUEsU0FBQTtRQUVQLFlBQVM7UUFBQSxpQkFBSztRQUNuQix5QkFBRztRQUFBLFlBQVk7UUFBQSxpQkFBSTtRQUVuQixpQ0FBNEI7UUFBcEIsZ0dBQVMsYUFBUyxJQUFDO1FBQUMsa0JBQUU7UUFBQSxpQkFBUyxFQUFBLEVBQUE7O1FBSGxDLGVBQVM7UUFBVCx5Q0FBUztRQUNYLGVBQVk7UUFBWiwyQ0FBWTs7dUZBbUNSLG1CQUFtQjtjQXhDL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7OztTQU9IO2dCQUNQLE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJSLENBQUM7YUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZU1hZ2ljQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtbWFnaWMtYWxlcnQuY29tcG9uZW50JztcblxuXG4vKioqXG4gKiBUaGlzIGlzIHNhbXBsZSBjb21wb25lbnQgZm9yIHRoZSBhbGVydCBtZXNzYWdlXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhbXBsZS1tYWdpYy1hbGVydC1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZTogYDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1nLW1lc3NhZ2UtYmFja2dyb3VuZFwiPlxuICAgICAgPGgyPiB7e3RpdGxlfX08L2gyPlxuICAgICAgPHA+e3ttZXNzYWdlfX0gPC9wPlxuXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKClcIj5PSzwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5gLFxuICBzdHlsZXM6IFtgXG4gICAgLm1nLW1lc3NhZ2UtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDQwJTtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAxN3B4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTAlIDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgIGdyYXk7XG4gIH1cblxuICBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOENENEY1O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxMHB4IDMycHg7XG4gIG1hcmdpbjogMjZweCA1cHggMCA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBNYWdpY0FsZXJ0Q29tcG9uZW50IGV4dGVuZHMgIEJhc2VNYWdpY0FsZXJ0Q29tcG9uZW50e1xuXG59XG4iXX0=
@@ -5,14 +5,11 @@ export class MagicConfirmationBoxComponent extends BaseMagicConfirmComponent {
5
5
  }
6
6
  MagicConfirmationBoxComponent.ɵfac = function () { let ɵMagicConfirmationBoxComponent_BaseFactory; return function MagicConfirmationBoxComponent_Factory(t) { return (ɵMagicConfirmationBoxComponent_BaseFactory || (ɵMagicConfirmationBoxComponent_BaseFactory = i0.ɵɵgetInheritedFactory(MagicConfirmationBoxComponent)))(t || MagicConfirmationBoxComponent); }; }();
7
7
  MagicConfirmationBoxComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicConfirmationBoxComponent, selectors: [["sample-magic-confirmation-box"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 2, consts: [[1, "mg-message-background"], [3, "click"], [1, "cancel", 3, "click"]], template: function MagicConfirmationBoxComponent_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "div");
9
- i0.ɵɵelementStart(1, "div", 0);
10
- i0.ɵɵelementStart(2, "h2");
8
+ i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "h2");
11
9
  i0.ɵɵtext(3);
12
10
  i0.ɵɵelementEnd();
13
11
  i0.ɵɵtext(4);
14
- i0.ɵɵelement(5, "br");
15
- i0.ɵɵelement(6, "br");
12
+ i0.ɵɵelement(5, "br")(6, "br");
16
13
  i0.ɵɵelementStart(7, "button", 1);
17
14
  i0.ɵɵlistener("click", function MagicConfirmationBoxComponent_Template_button_click_7_listener() { return ctx.OnClose(true); });
18
15
  i0.ɵɵtext(8, "OK");
@@ -20,9 +17,7 @@ MagicConfirmationBoxComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicConfir
20
17
  i0.ɵɵelementStart(9, "button", 2);
21
18
  i0.ɵɵlistener("click", function MagicConfirmationBoxComponent_Template_button_click_9_listener() { return ctx.OnClose(false); });
22
19
  i0.ɵɵtext(10, "Cancel");
23
- i0.ɵɵelementEnd();
24
- i0.ɵɵelementEnd();
25
- i0.ɵɵelementEnd();
20
+ i0.ɵɵelementEnd()()();
26
21
  } if (rf & 2) {
27
22
  i0.ɵɵadvance(3);
28
23
  i0.ɵɵtextInterpolate1(" ", ctx.title, "");
@@ -79,4 +74,4 @@ MagicConfirmationBoxComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicConfir
79
74
  `]
80
75
  }]
81
76
  }], null, null); })();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtY29uZmlybWF0aW9uLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9jb21wb25lbnRzL21hZ2ljLWNvbmZpcm1hdGlvbi1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBb0QzRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCOzsyUkFBL0QsNkJBQTZCLFNBQTdCLDZCQUE2QjtrRUFBN0IsNkJBQTZCO1FBN0M3QiwyQkFBSztRQUNkLDhCQUFtQztRQUNqQywwQkFBSTtRQUFDLFlBQVM7UUFBQSxpQkFBSztRQUNuQixZQUNBO1FBQUEscUJBQUk7UUFDSixxQkFBSTtRQUVKLGlDQUFnQztRQUF4QiwwR0FBUyxZQUFRLElBQUksQ0FBQyxJQUFDO1FBQUMsa0JBQUU7UUFBQSxpQkFBUztRQUMzQyxpQ0FBZ0Q7UUFBekIsMEdBQVMsWUFBUSxLQUFLLENBQUMsSUFBQztRQUFDLHVCQUFNO1FBQUEsaUJBQVM7UUFDakUsaUJBQU07UUFDUixpQkFBTTs7UUFSRyxlQUFTO1FBQVQseUNBQVM7UUFDZCxlQUNBO1FBREEsNENBQ0E7O3VGQXlDTyw2QkFBNkI7Y0EvQ3pDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsK0JBQStCO2dCQUN6QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7U0FVSDtnQkFDUCxNQUFNLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1IsQ0FBQzthQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTWFnaWNDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLW1hZ2ljLWNvbmZpcm0uY29tcG9uZW50JztcblxuLyoqKlxuICogVGhpcyBpcyBzYW1wbGUgY29tcG9uZW50IGZvciB0aGUgY29uZmlybWF0aW9uIGJveFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYW1wbGUtbWFnaWMtY29uZmlybWF0aW9uLWJveCcsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWctbWVzc2FnZS1iYWNrZ3JvdW5kXCI+XG4gICAgICA8aDI+IHt7dGl0bGV9fTwvaDI+XG4gICAgICB7e21lc3NhZ2V9fVxuICAgICAgPGJyPlxuICAgICAgPGJyPlxuXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKHRydWUpXCI+T0s8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWxcIiAoY2xpY2spPVwiT25DbG9zZShmYWxzZSlcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+YCxcbiAgc3R5bGVzOiBbYFxuICAgIC5tZy1tZXNzYWdlLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA0MCU7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMTdweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDEwJSA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICBncmF5O1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhDRDRGNTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZzogMTBweCAzMnB4O1xuICBtYXJnaW46IDI2cHggNXB4IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgICBcbiAgICBidXR0b24uY2FuY2VsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNDMUMxQzE7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBNYWdpY0NvbmZpcm1hdGlvbkJveENvbXBvbmVudCBleHRlbmRzIEJhc2VNYWdpY0NvbmZpcm1Db21wb25lbnQge1xuXG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtY29uZmlybWF0aW9uLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9jb21wb25lbnRzL21hZ2ljLWNvbmZpcm1hdGlvbi1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBb0QzRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEseUJBQXlCOzsyUkFBL0QsNkJBQTZCLFNBQTdCLDZCQUE2QjtrRUFBN0IsNkJBQTZCO1FBN0M3QiwyQkFBSyxhQUFBLFNBQUE7UUFFUCxZQUFTO1FBQUEsaUJBQUs7UUFDbkIsWUFDQTtRQUFBLHFCQUFJLFNBQUE7UUFHSixpQ0FBZ0M7UUFBeEIsMEdBQVMsWUFBUSxJQUFJLENBQUMsSUFBQztRQUFDLGtCQUFFO1FBQUEsaUJBQVM7UUFDM0MsaUNBQWdEO1FBQXpCLDBHQUFTLFlBQVEsS0FBSyxDQUFDLElBQUM7UUFBQyx1QkFBTTtRQUFBLGlCQUFTLEVBQUEsRUFBQTs7UUFOMUQsZUFBUztRQUFULHlDQUFTO1FBQ2QsZUFDQTtRQURBLDRDQUNBOzt1RkF5Q08sNkJBQTZCO2NBL0N6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsUUFBUSxFQUFFOzs7Ozs7Ozs7O1NBVUg7Z0JBQ1AsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NSLENBQUM7YUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZU1hZ2ljQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1tYWdpYy1jb25maXJtLmNvbXBvbmVudCc7XG5cbi8qKipcbiAqIFRoaXMgaXMgc2FtcGxlIGNvbXBvbmVudCBmb3IgdGhlIGNvbmZpcm1hdGlvbiBib3hcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2FtcGxlLW1hZ2ljLWNvbmZpcm1hdGlvbi1ib3gnLFxuICB0ZW1wbGF0ZTogYDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1nLW1lc3NhZ2UtYmFja2dyb3VuZFwiPlxuICAgICAgPGgyPiB7e3RpdGxlfX08L2gyPlxuICAgICAge3ttZXNzYWdlfX1cbiAgICAgIDxicj5cbiAgICAgIDxicj5cblxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiT25DbG9zZSh0cnVlKVwiPk9LPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsXCIgKGNsaWNrKT1cIk9uQ2xvc2UoZmFsc2UpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PmAsXG4gIHN0eWxlczogW2BcbiAgICAubWctbWVzc2FnZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNDAlO1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDE3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxMCUgO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCAgZ3JheTtcbiAgfVxuXG4gIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Q0Q0RjU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHggMzJweDtcbiAgbWFyZ2luOiAyNnB4IDVweCAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gICAgXG4gICAgYnV0dG9uLmNhbmNlbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzFDMUMxO1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgTWFnaWNDb25maXJtYXRpb25Cb3hDb21wb25lbnQgZXh0ZW5kcyBCYXNlTWFnaWNDb25maXJtQ29tcG9uZW50IHtcblxufVxuIl19
@@ -20,8 +20,7 @@ function MagicOverlayContainer_div_5_Template(rf, ctx) { if (rf & 1) {
20
20
  i0.ɵɵelementStart(3, "button", 11);
21
21
  i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.OnClose(); });
22
22
  i0.ɵɵtext(4, "X");
23
- i0.ɵɵelementEnd();
24
- i0.ɵɵelementEnd();
23
+ i0.ɵɵelementEnd()();
25
24
  } if (rf & 2) {
26
25
  const ctx_r2 = i0.ɵɵnextContext();
27
26
  i0.ɵɵadvance(2);
@@ -106,8 +105,7 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
106
105
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerElementRef = _t.first);
107
106
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.foregroundElementRef = _t.first);
108
107
  } }, inputs: { ModalComp: "ModalComp", ModalCompParameters: "ModalCompParameters" }, outputs: { onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 4, consts: [[1, "modal-background", 3, "click"], ["tabindex", "-1", "style", "float:right; border: none; background-color: transparent; outline: none; color: white", 3, "click", 4, "ngIf"], [1, "modal-foreground", 3, "ngStyle"], ["modalForeground", ""], ["class", "modal-header", 4, "ngIf"], [3, "ngStyle"], ["magicViewContainerRef", ""], ["modalbody", ""], ["tabindex", "-1", 2, "float", "right", "border", "none", "background-color", "transparent", "outline", "none", "color", "white", 3, "click"], [1, "modal-header"], ["modalheader", ""], ["tabindex", "-1", 2, "float", "right", 3, "click"]], template: function MagicOverlayContainer_Template(rf, ctx) { if (rf & 1) {
109
- i0.ɵɵelementStart(0, "div");
110
- i0.ɵɵelementStart(1, "div", 0);
108
+ i0.ɵɵelementStart(0, "div")(1, "div", 0);
111
109
  i0.ɵɵlistener("click", function MagicOverlayContainer_Template_div_click_1_listener() { return ctx.OnBackgroundClick(); });
112
110
  i0.ɵɵtemplate(2, MagicOverlayContainer_button_2_Template, 2, 0, "button", 1);
113
111
  i0.ɵɵelementEnd();
@@ -115,9 +113,7 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
115
113
  i0.ɵɵtemplate(5, MagicOverlayContainer_div_5_Template, 5, 1, "div", 4);
116
114
  i0.ɵɵelementStart(6, "div", 5);
117
115
  i0.ɵɵelement(7, "div", 6, 7);
118
- i0.ɵɵelementEnd();
119
- i0.ɵɵelementEnd();
120
- i0.ɵɵelementEnd();
116
+ i0.ɵɵelementEnd()()();
121
117
  } if (rf & 2) {
122
118
  i0.ɵɵadvance(2);
123
119
  i0.ɵɵproperty("ngIf", !ctx.getShowTitleBar());
@@ -160,4 +156,4 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
160
156
  }], onClose: [{
161
157
  type: Output
162
158
  }] }); })();
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1tb2RhbC9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJQVduRSxpQ0FBbUs7SUFBM0oscUtBQVMsZ0JBQVMsSUFBQztJQUF3SSxpQkFBQztJQUFBLGlCQUFTOzs7O0lBRzdLLGtDQUFpRTtJQUMvRCxZQUNBO0lBQUEsa0NBQThEO0lBQXRELGtLQUFTLGdCQUFTLElBQUM7SUFBbUMsaUJBQUM7SUFBQSxpQkFBUztJQUMxRSxpQkFBTTs7O0lBRkosZUFDQTtJQURBLGlEQUNBOztBQVdWLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFvQ2xFLFlBQ1Usd0JBQWtEO1FBQzFELEtBQUssRUFBRSxDQUFDO1FBREEsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQW5CbkQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlqQix3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFFN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLckMsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFVNUIsQ0FBQztJQUtELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUks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QUM7SUFLRCxpQkFBaUI7UUFDZixJQUFJLElBQUksR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUErQixDQUFDO1FBRWxGLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDOzswRkExSVUscUJBQXFCOzBEQUFyQixxQkFBcUI7Ozs7Ozs7O1FBbEI5QiwyQkFBSztRQUNILDhCQUE0RDtRQUE5QiwrRkFBUyx1QkFBbUIsSUFBQztRQUN6RCw0RUFBNks7UUFDL0ssaUJBQU07UUFDTixpQ0FBc0U7UUFDcEUsc0VBR007UUFDTiw4QkFBdUM7UUFDckMsNEJBQ007UUFDUixpQkFBTTtRQUNSLGlCQUFNO1FBQ1IsaUJBQU07O1FBWnVJLGVBQXdCO1FBQXhCLDZDQUF3QjtRQUVwSCxlQUFzQjtRQUF0Qix3Q0FBc0I7UUFDM0IsZUFBdUI7UUFBdkIsNENBQXVCO1FBSTFELGVBQWlDO1FBQWpDLG1EQUFpQzs7dUZBU2pDLHFCQUFxQjtjQXJCakMsU0FBUzsyQkFDRSw2QkFBNkIsWUFDN0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7MkVBWTRDLGdCQUFnQjtrQkFBNUQsU0FBUzttQkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBSU0sb0JBQW9CO2tCQUFwRSxTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUt0QyxTQUFTO2tCQUFqQixLQUFLO1lBSUcsbUJBQW1CO2tCQUEzQixLQUFLO1lBRUksT0FBTztrQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hZ2ljTW9kYWxJbnRlcmZhY2UgfSBmcm9tICcuL21hZ2ljLW1vZGFsLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnLi9iYXNlLW1hZ2ljLW92ZXJsYXktY29udGFpbmVyJztcclxuaW1wb3J0IHsgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJy4uLy4uLy4uJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbW9kYWwgd2luZG93IGZvciBNYWdpYyBtb2RhbCB3aW5kb3cgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWFnaWMtb3ZlcmxheS1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYmFja2dyb3VuZFwiIChjbGljayk9XCJPbkJhY2tncm91bmRDbGljaygpXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiT25DbG9zZSgpXCIgdGFiaW5kZXg9XCItMVwiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IG91dGxpbmU6IG5vbmU7IGNvbG9yOiB3aGl0ZVwiICpuZ0lmPVwiIWdldFNob3dUaXRsZUJhcigpXCI+WDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAjbW9kYWxGb3JlZ3JvdW5kIGNsYXNzPVwibW9kYWwtZm9yZWdyb3VuZFwiIFtuZ1N0eWxlXT1cImdldFN0eWxlKClcIj5cclxuICAgICAgICA8ZGl2ICNtb2RhbGhlYWRlciBjbGFzcz1cIm1vZGFsLWhlYWRlclwiICpuZ0lmPVwiZ2V0U2hvd1RpdGxlQmFyKClcIj5cclxuICAgICAgICAgIHt7Z2V0VGV4dCgpfX1cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIk9uQ2xvc2UoKVwiIHN0eWxlPVwiZmxvYXQ6cmlnaHRcIiB0YWJpbmRleD1cIi0xXCI+WDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwiZ2V0Q2xpZW50QXJlYVN0eWxlcygpXCI+XHJcbiAgICAgICAgICA8ZGl2ICNtb2RhbGJvZHkgbWFnaWNWaWV3Q29udGFpbmVyUmVmPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFnaWNPdmVybGF5Q29udGFpbmVyIGV4dGVuZHMgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciBpbXBsZW1lbnRzIE9uSW5pdCAsIElNYWdpY1ZpZXdDb250YWluZXJSZWZ7XHJcbiAgLyoqXHJcbiAgICogSFRNTCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIG1vZGFsYm9keVZpZXdDb250YWluZXJSZWYgOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAvKipcclxuICAgKiBIZWFkZXIgb2YgdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsaGVhZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGhlYWRlckVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgLyoqXHJcbiAgICogRm9yZWdyb3VuZCBvZiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnbW9kYWxGb3JlZ3JvdW5kJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcmVncm91bmRFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1vZGFsQ29tcCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBNb2RhbENvbXBQYXJhbWV0ZXJzOiBhbnkgPSB7fTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWYgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbmplY3RvclxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuTW9kYWxDb21wKTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5tb2RhbGJvZHlWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMuTW9kYWxDb21wUGFyYW1ldGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0Vmlld0NvbnRhaW5lclJlZih2Y1JlZjogVmlld0NvbnRhaW5lclJlZil7XHJcbiAgICB0aGlzLm1vZGFsYm9keVZpZXdDb250YWluZXJSZWYgPSB2Y1JlZjtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBmb3JtIG5hbWVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFRleHQoKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcclxuICAgICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG4gICAgICByZXR1cm4gY29tcC5Gb3JtTmFtZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIENTUyBzdHlsZXMgZm9yIHRoZSB3aW5kb3dcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFN0eWxlKCkge1xyXG4gICAgbGV0IHN0eWxlcyA9IHt9O1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcblxyXG4gICAgICBzdHlsZXNbJ3dpZHRoJ10gPSBjb21wLldpZHRoKCk7XHJcbiAgICAgIHN0eWxlc1snaGVpZ2h0J10gPSBjb21wLkhlaWdodCgpO1xyXG5cclxuICAgICAgaWYgKGNvbXAuSXNDZW50ZXJlZFRvV2luZG93KCkpIHtcclxuICAgICAgICBzdHlsZXNbJ21hcmdpbiddID0gJ2F1dG8nO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHN0eWxlc1snbWFyZ2luLWxlZnQnXSA9IGNvbXAuWCgpICsgJ3B4JztcclxuICAgICAgICBzdHlsZXNbJ21hcmdpbi10b3AnXSA9IGNvbXAuWSgpICsgJ3B4JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIENTUyBzdHlsZXMgZm9yIHRoZSBjbGllbnQgYXJlYVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0Q2xpZW50QXJlYVN0eWxlcygpIHtcclxuICAgIGxldCBzdHlsZXMgPSB7fTtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5nZXRTaG93VGl0bGVCYXIoKSAmJiAhaXNOdWxsT3JVbmRlZmluZWQodGhpcy5oZWFkZXJFbGVtZW50UmVmKSA/ICh0aGlzLmhlYWRlckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAxKSA6IDA7XHJcbiAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5mb3JlZ3JvdW5kRWxlbWVudFJlZikpIHtcclxuICAgICAgICBjb25zdCBmb3JlZ3JvdW5kSGVpZ2h0ID0gdGhpcy5mb3JlZ3JvdW5kRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgICBzdHlsZXNbJ2hlaWdodCddID0gKGZvcmVncm91bmRIZWlnaHQgLSBoZWFkZXJIZWlnaHQpICsgJ3B4JztcclxuXHJcbiAgICAgICAgY29uc3QgZm9yZWdyb3VuZFdpZHRoID0gdGhpcy5mb3JlZ3JvdW5kRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHN0eWxlc1snd2lkdGgnXSA9IChmb3JlZ3JvdW5kV2lkdGgpICsgJ3B4JztcclxuICAgICAgfVxyXG4gICAgICBzdHlsZXNbJ292ZXJmbG93J10gPSAnYXV0byc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3R5bGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIHRoZSB0aXRsZSBiYXIgYmUgZGlzcGxheWVkXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRTaG93VGl0bGVCYXIoKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuICAgICAgcmV0dXJuIGNvbXAuU2hvd1RpdGxlQmFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIE9uQ2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBjbGljayBpbiB0aGUgYmFja2dyb3VuZCB3aW5kb3dcclxuICAgKi9cclxuICBPbkJhY2tncm91bmRDbGljaygpIHtcclxuICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuXHJcbiAgICBpZiAoY29tcC5TaG91bGRDbG9zZU9uQmFja2dyb3VuZENsaWNrKCkpXHJcbiAgICAgIHRoaXMuT25DbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1tb2RhbC9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJQVduRSxpQ0FBbUs7SUFBM0oscUtBQVMsZ0JBQVMsSUFBQztJQUF3SSxpQkFBQztJQUFBLGlCQUFTOzs7O0lBRzdLLGtDQUFpRTtJQUMvRCxZQUNBO0lBQUEsa0NBQThEO0lBQXRELGtLQUFTLGdCQUFTLElBQUM7SUFBbUMsaUJBQUM7SUFBQSxpQkFBUyxFQUFBOzs7SUFEeEUsZUFDQTtJQURBLGlEQUNBOztBQVdWLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFvQ2xFLFlBQ1Usd0JBQWtEO1FBQzFELEtBQUssRUFBRSxDQUFDO1FBREEsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQW5CbkQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlqQix3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFFN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLckMsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFVNUIsQ0FBQztJQUtELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxZ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RCxpQkFBaUI7UUFDZixJQUFJLElBQUksR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUErQixDQUFDO1FBRWxGLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDOzswRkExSVUscUJBQXFCOzBEQUFyQixxQkFBcUI7Ozs7Ozs7O1FBbEI5QiwyQkFBSyxhQUFBO1FBQzJCLCtGQUFTLHVCQUFtQixJQUFDO1FBQ3pELDRFQUE2SztRQUMvSyxpQkFBTTtRQUNOLGlDQUFzRTtRQUNwRSxzRUFHTTtRQUNOLDhCQUF1QztRQUNyQyw0QkFDTTtRQUNSLGlCQUFNLEVBQUEsRUFBQTs7UUFWbUksZUFBd0I7UUFBeEIsNkNBQXdCO1FBRXBILGVBQXNCO1FBQXRCLHdDQUFzQjtRQUMzQixlQUF1QjtRQUF2Qiw0Q0FBdUI7UUFJMUQsZUFBaUM7UUFBakMsbURBQWlDOzt1RkFTakMscUJBQXFCO2NBckJqQyxTQUFTOzJCQUNFLDZCQUE2QixZQUM3Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDsyRUFZNEMsZ0JBQWdCO2tCQUE1RCxTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJTSxvQkFBb0I7a0JBQXBFLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBS3RDLFNBQVM7a0JBQWpCLEtBQUs7WUFJRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFFSSxPQUFPO2tCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFnaWNNb2RhbEludGVyZmFjZSB9IGZyb20gJy4vbWFnaWMtbW9kYWwtaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IEJhc2VNYWdpY092ZXJsYXlDb250YWluZXIgfSBmcm9tICcuL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXInO1xyXG5pbXBvcnQgeyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnLi4vLi4vLi4nO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBtb2RhbCB3aW5kb3cgZm9yIE1hZ2ljIG1vZGFsIHdpbmRvdyBjb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYWdpYy1vdmVybGF5LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZ3JvdW5kXCIgKGNsaWNrKT1cIk9uQmFja2dyb3VuZENsaWNrKClcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKClcIiB0YWJpbmRleD1cIi0xXCIgc3R5bGU9XCJmbG9hdDpyaWdodDsgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgb3V0bGluZTogbm9uZTsgY29sb3I6IHdoaXRlXCIgKm5nSWY9XCIhZ2V0U2hvd1RpdGxlQmFyKClcIj5YPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICNtb2RhbEZvcmVncm91bmQgY2xhc3M9XCJtb2RhbC1mb3JlZ3JvdW5kXCIgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiPlxyXG4gICAgICAgIDxkaXYgI21vZGFsaGVhZGVyIGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgKm5nSWY9XCJnZXRTaG93VGl0bGVCYXIoKVwiPlxyXG4gICAgICAgICAge3tnZXRUZXh0KCl9fVxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiT25DbG9zZSgpXCIgc3R5bGU9XCJmbG9hdDpyaWdodFwiIHRhYmluZGV4PVwiLTFcIj5YPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJnZXRDbGllbnRBcmVhU3R5bGVzKClcIj5cclxuICAgICAgICAgIDxkaXYgI21vZGFsYm9keSBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL21hZ2ljLW92ZXJsYXktY29udGFpbmVyLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWdpY092ZXJsYXlDb250YWluZXIgZXh0ZW5kcyBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIGltcGxlbWVudHMgT25Jbml0ICwgSU1hZ2ljVmlld0NvbnRhaW5lclJlZntcclxuICAvKipcclxuICAgKiBIVE1MIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgbW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZiA6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlYWRlciBvZiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnbW9kYWxoZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgaGVhZGVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICAvKipcclxuICAgKiBGb3JlZ3JvdW5kIG9mIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdtb2RhbEZvcmVncm91bmQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9yZWdyb3VuZEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgTW9kYWxDb21wID0gbnVsbDtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1vZGFsQ29tcFBhcmFtZXRlcnM6IGFueSA9IHt9O1xyXG5cclxuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXBvbmVudFJlZiA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGluamVjdG9yXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5Nb2RhbENvbXApO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLm1vZGFsYm9keVZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5Nb2RhbENvbXBQYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG5cclxuICBzZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKXtcclxuICAgIHRoaXMubW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZiA9IHZjUmVmO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm0gbmFtZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0VGV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcbiAgICAgIHJldHVybiBjb21wLkZvcm1OYW1lKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgQ1NTIHN0eWxlcyBmb3IgdGhlIHdpbmRvd1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgc3R5bGVzID0ge307XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuXHJcbiAgICAgIHN0eWxlc1snd2lkdGgnXSA9IGNvbXAuV2lkdGgoKTtcclxuICAgICAgc3R5bGVzWydoZWlnaHQnXSA9IGNvbXAuSGVpZ2h0KCk7XHJcblxyXG4gICAgICBpZiAoY29tcC5Jc0NlbnRlcmVkVG9XaW5kb3coKSkge1xyXG4gICAgICAgIHN0eWxlc1snbWFyZ2luJ10gPSAnYXV0byc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4tbGVmdCddID0gY29tcC5YKCkgKyAncHgnO1xyXG4gICAgICAgIHN0eWxlc1snbWFyZ2luLXRvcCddID0gY29tcC5ZKCkgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3R5bGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgQ1NTIHN0eWxlcyBmb3IgdGhlIGNsaWVudCBhcmVhXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRDbGllbnRBcmVhU3R5bGVzKCkge1xyXG4gICAgbGV0IHN0eWxlcyA9IHt9O1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLmdldFNob3dUaXRsZUJhcigpICYmICFpc051bGxPclVuZGVmaW5lZCh0aGlzLmhlYWRlckVsZW1lbnRSZWYpID8gKHRoaXMuaGVhZGVyRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIDEpIDogMDtcclxuICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmKSkge1xyXG4gICAgICAgIGNvbnN0IGZvcmVncm91bmRIZWlnaHQgPSB0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIHN0eWxlc1snaGVpZ2h0J10gPSAoZm9yZWdyb3VuZEhlaWdodCAtIGhlYWRlckhlaWdodCkgKyAncHgnO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JlZ3JvdW5kV2lkdGggPSB0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgc3R5bGVzWyd3aWR0aCddID0gKGZvcmVncm91bmRXaWR0aCkgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICAgIHN0eWxlc1snb3ZlcmZsb3cnXSA9ICdhdXRvJztcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgdGhlIHRpdGxlIGJhciBiZSBkaXNwbGF5ZWRcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFNob3dUaXRsZUJhcigpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG4gICAgICByZXR1cm4gY29tcC5TaG93VGl0bGVCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgT25DbG9zZSgpIHtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWNrIGluIHRoZSBiYWNrZ3JvdW5kIHdpbmRvd1xyXG4gICAqL1xyXG4gIE9uQmFja2dyb3VuZENsaWNrKCkge1xyXG4gICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG5cclxuICAgIGlmIChjb21wLlNob3VsZENsb3NlT25CYWNrZ3JvdW5kQ2xpY2soKSlcclxuICAgICAgdGhpcy5PbkNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -17,8 +17,7 @@ function ErrorMagicComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
17
17
  i0.ɵɵtextInterpolate1(" ", ctx_r2.mgService.getErrMsg(ctx_r2.id, ctx_r2.rowId), " ");
18
18
  } }
19
19
  function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "div");
21
- i0.ɵɵelementStart(1, "div", null, 1);
20
+ i0.ɵɵelementStart(0, "div")(1, "div", null, 1);
22
21
  i0.ɵɵprojection(3);
23
22
  i0.ɵɵelementEnd();
24
23
  i0.ɵɵtemplate(4, ErrorMagicComponent_div_0_span_4_Template, 2, 1, "span", 0);
@@ -117,4 +116,4 @@ ErrorMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ErrorMagicComponent,
117
116
  type: ViewChild,
118
117
  args: ['customContent', { static: false }]
119
118
  }] }); })();
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdlcnJvci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tZ2Vycm9yLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztJQVc5Qyw0QkFBNkI7SUFDNUIsWUFDRjtJQUFBLGlCQUFPOzs7SUFETCxlQUNGO0lBREUsb0ZBQ0Y7OztJQU5ZLDJCQUEyQjtJQUN2QyxvQ0FBb0I7SUFDbEIsa0JBQXlCO0lBQzNCLGlCQUFNO0lBQ0wsNEVBRU07SUFDUCxpQkFBTTs7O0lBSEUsZUFBb0I7SUFBcEIsNENBQW9COzs7QUFPaEMsTUFBTSxPQUFPLG1CQUFtQjtJQTZCOUIsWUFBc0IsS0FBdUIsRUFBUyxTQUErQixFQUFZLGlCQUFvQztRQUEvRyxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQVksc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVhySSxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVlwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBdEJELElBQW9CLEtBQUssQ0FBQyxHQUFHO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBb0IsTUFBTSxDQUFDLEdBQUc7UUFDNUIsSUFBSSxDQUFD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QUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY2Nlc3Nvck1hZ2ljU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2FjY2Vzc29yLm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBNYWdpYyBzdWJmb3JtXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21nRXJyb3InLFxyXG4gIHRlbXBsYXRlOiAgICBgPGRpdiAqbmdJZj1cIkhhc0Vycm9ycyhpZClcIj5cclxuICAgIDxkaXYgI2N1c3RvbUNvbnRlbnQ+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgIDxzcGFuICpuZ0lmPVwiZGVmYXVsdERpc3BsYXlcIj5cclxuICAgICAge3ttZ1NlcnZpY2UuZ2V0RXJyTXNnKGlkLCByb3dJZCl9fSBcclxuICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5gfSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRXJyb3JNYWdpY0NvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcm93SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgQElucHV0KCdtYWdpYycpIHNldCBtYWdpYyh2YWwpIHtcclxuICAgIHRoaXMuaWQgPSB2YWw7XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCdyb3dJZCcpIHNldCByb3dJZDEodmFsKSB7XHJcbiAgICB0aGlzLnJvd0lkID0gdmFsO1xyXG4gIH07XHJcblxyXG4gIC8vIGlmIHRydWUgLSBkaXNwbGF5IHN0YW5kYXJkIG1hZ2ljIGVycm9yIG1lc3NhZ2UsIGlmIGZhbHNlIC0gY3VzdG9tZXIgaGFzIHByb3ZpZGVzIGhpcyBvd24gY29udGVudCBhbmQgd2UnbGwgdXNlIGl0XHJcbiAgZGVmYXVsdERpc3BsYXkgPSB0cnVlO1xyXG5cclxuICBAVmlld0NoaWxkKCdjdXN0b21Db250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNldCBDdXN0b21Db250ZW50KGlubmVyQ29tcG9uZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmRlZmF1bHREaXNwbGF5ID0gaW5uZXJDb21wb25lbnQgPT0gdW5kZWZpbmVkIHx8IHRoaXMuaXNFbXB0eShpbm5lckNvbXBvbmVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH07XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrOiBUYXNrTWFnaWNTZXJ2aWNlLCBwdWJsaWMgbWdTZXJ2aWNlOiBBY2Nlc3Nvck1hZ2ljU2VydmljZSwgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiApIHtcclxuICAgIHRoaXMucm93SWQgPSBcIjBcIjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgaHRtbCBlbGVtZW50IGhhcyBubyBjaGlsZHJlblxyXG4gICAqIEBwYXJhbSBlbGVtZW50XHJcbiAgICovXHJcbiAgaXNFbXB0eShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZXMgPSBlbGVtZW50LmNoaWxkTm9kZXM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBub2Rlcy5pdGVtKGkpO1xyXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gOCAmJiBub2Rlcy5pdGVtKGkpLnRleHRDb250ZW50LnRyaW0oKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEhhc0Vycm9ycyhpZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGlkKSkge1xyXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5yb3dJZCwgaWQpO1xyXG4gICAgICBpZiAoY29udHJvbCAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChjb250cm9sLmRpcnR5ICYmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykgfHwgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSB8fFxyXG4gICAgICAgICAgY29udHJvbC5oYXNFcnJvcigncmFuZ2V2YWxpZGF0b3InKSB8fCBjb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSB8fCBjb250cm9sLmhhc0Vycm9yKCdtYXgnKSkpXHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpXHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0gJiYgdGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0uZ2V0Q29udHJvbE1ldGFkYXRhKGlkKSl7XHJcbiAgICAgICAgICBsZXQgY29udHJvbE1ldGFkYXRhID0gdGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbdGhpcy5yb3dJZF0uZ2V0Q29udHJvbE1ldGFkYXRhKGlkKTtcclxuICAgICAgICAgIGZvciAobGV0IGN1c3RvbVZhbGlkYXRvciBvZiBjb250cm9sTWV0YWRhdGEuY3VzdG9tVmFsaWRhdG9ycy5rZXlzKCkpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoY3VzdG9tVmFsaWRhdG9yKSlcclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdlcnJvci5tYWdpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tZ2Vycm9yLm1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztJQVc5Qyw0QkFBNkI7SUFDNUIsWUFDRjtJQUFBLGlCQUFPOzs7SUFETCxlQUNGO0lBREUsb0ZBQ0Y7OztJQU5ZLDJCQUEyQixtQkFBQTtJQUVyQyxrQkFBeUI7SUFDM0IsaUJBQU07SUFDTCw0RUFFTTtJQUNQLGlCQUFNOzs7SUFIRSxlQUFvQjtJQUFwQiw0Q0FBb0I7OztBQU9oQyxNQUFNLE9BQU8sbUJBQW1CO0lBNkI5QixZQUFzQixLQUF1QixFQUFTLFNBQStCLEVBQVksaUJBQW9DO1FBQS9HLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFBWSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWHJJLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBWXBCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUF0QkQsSUFBb0IsS0FBSyxDQUFDLEdBQUc7UUFDM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDaEIsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFvQixNQUFNLENBQUMsR0FBRztRQUM1QixJQUFJLENBQUMsS0FBSyxH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QUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FjY2Vzc29yTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvYWNjZXNzb3IubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQge1Rhc2tNYWdpY1NlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIE1hZ2ljIHN1YmZvcm1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWdFcnJvcicsXHJcbiAgdGVtcGxhdGU6ICAgIGA8ZGl2ICpuZ0lmPVwiSGFzRXJyb3JzKGlkKVwiPlxyXG4gICAgPGRpdiAjY3VzdG9tQ29udGVudD5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICAgPHNwYW4gKm5nSWY9XCJkZWZhdWx0RGlzcGxheVwiPlxyXG4gICAgICB7e21nU2VydmljZS5nZXRFcnJNc2coaWQsIHJvd0lkKX19IFxyXG4gICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbmB9KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFcnJvck1hZ2ljQ29tcG9uZW50IHtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgaWQ6IHN0cmluZztcclxuICByb3dJZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASW5wdXQoJ21hZ2ljJykgc2V0IG1hZ2ljKHZhbCkge1xyXG4gICAgdGhpcy5pZCA9IHZhbDtcclxuICB9O1xyXG5cclxuICBASW5wdXQoJ3Jvd0lkJykgc2V0IHJvd0lkMSh2YWwpIHtcclxuICAgIHRoaXMucm93SWQgPSB2YWw7XHJcbiAgfTtcclxuXHJcbiAgLy8gaWYgdHJ1ZSAtIGRpc3BsYXkgc3RhbmRhcmQgbWFnaWMgZXJyb3IgbWVzc2FnZSwgaWYgZmFsc2UgLSBjdXN0b21lciBoYXMgcHJvdmlkZXMgaGlzIG93biBjb250ZW50IGFuZCB3ZSdsbCB1c2UgaXRcclxuICBkZWZhdWx0RGlzcGxheSA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N1c3RvbUNvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2V0IEN1c3RvbUNvbnRlbnQoaW5uZXJDb21wb25lbnQ6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuZGVmYXVsdERpc3BsYXkgPSBpbm5lckNvbXBvbmVudCA9PSB1bmRlZmluZWQgfHwgdGhpcy5pc0VtcHR5KGlubmVyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UsIHB1YmxpYyBtZ1NlcnZpY2U6IEFjY2Vzc29yTWFnaWNTZXJ2aWNlLCBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmICkge1xyXG4gICAgdGhpcy5yb3dJZCA9IFwiMFwiO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogcmV0dXJucyB0cnVlIGlmIHRoZSBodG1sIGVsZW1lbnQgaGFzIG5vIGNoaWxkcmVuXHJcbiAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgKi9cclxuICBpc0VtcHR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzLml0ZW0oaSk7XHJcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlICE9PSA4ICYmIG5vZGVzLml0ZW0oaSkudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgSGFzRXJyb3JzKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghaXNVbmRlZmluZWQoaWQpKSB7XHJcbiAgICAgIGxldCBjb250cm9sID0gdGhpcy5fdGFzay5nZXRGb3JtQ29udHJvbCh0aGlzLnJvd0lkLCBpZCk7XHJcbiAgICAgIGlmIChjb250cm9sICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wuZGlydHkgJiYgKGNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCBjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8XHJcbiAgICAgICAgICBjb250cm9sLmhhc0Vycm9yKCdyYW5nZXZhbGlkYXRvcicpIHx8IGNvbnRyb2wuaGFzRXJyb3IoJ21heGxlbmd0aCcpIHx8IGNvbnRyb2wuaGFzRXJyb3IoJ21heCcpKSlcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSlcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBpZih0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXSAmJiB0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXS5nZXRDb250cm9sTWV0YWRhdGEoaWQpKXtcclxuICAgICAgICAgIGxldCBjb250cm9sTWV0YWRhdGEgPSB0aGlzLl90YXNrLlJlY29yZHMubGlzdFt0aGlzLnJvd0lkXS5nZXRDb250cm9sTWV0YWRhdGEoaWQpO1xyXG4gICAgICAgICAgZm9yIChsZXQgY3VzdG9tVmFsaWRhdG9yIG9mIGNvbnRyb2xNZXRhZGF0YS5jdXN0b21WYWxpZGF0b3JzLmtleXMoKSkge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC5oYXNFcnJvcihjdXN0b21WYWxpZGF0b3IpKVxyXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuIl19