@gravitee/ui-particles-angular 15.4.0 → 15.4.1

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.
@@ -142,7 +142,8 @@ export class GioFormlyJsonSchemaService {
142
142
  if (isParentDisabled || isReadOnly) {
143
143
  // Useful when field is readonly to avoid to enable it
144
144
  field.formControl?.disable({ emitEvent: false });
145
- return true;
145
+ // if the parent is already disabled there is no need to change anything at the child level
146
+ return false;
146
147
  }
147
148
  let parentField = field;
148
149
  while (parentField.parent) {
@@ -248,4 +249,4 @@ const getGioIf = (gioIf) => {
248
249
  });
249
250
  };
250
251
  };
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm1seS1qc29uLXNjaGVtYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybWx5LWpzb24tc2NoZW1hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7QUFPaEYsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUNtQixnQkFBa0MsRUFDbEMsT0FBMEI7UUFEMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUMxQyxDQUFDO0lBRUcsbUJBQW1CLENBQUMsVUFBeUIsRUFBRSxPQUE4QjtRQUNsRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQ3JELEdBQUcsRUFBRSxDQUFDLFdBQThCLEVBQUUsU0FBc0IsRUFBRSxFQUFFO2dCQUM5RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxrREFBa0Q7Z0JBQ3hHLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pFLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDcEQsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNB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QUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3JELEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV2QyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm1CdWlsZGVyIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlKc29uc2NoZW1hIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZS9qc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBKU09OU2NoZW1hNyB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IGNhc3RBcnJheSwgZ2V0LCBpc0FycmF5LCBpc0VtcHR5LCBpc05pbCwgaXNPYmplY3QsIHNldCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdpb0lmQ29uZmlnLCBHaW9Kc29uU2NoZW1hIH0gZnJvbSAnLi9tb2RlbC9HaW9Kc29uU2NoZW1hJztcbmltcG9ydCB7IEdpb0pzb25TY2hlbWFDb250ZXh0IH0gZnJvbSAnLi9tb2RlbC9HaW9Kc29uU2NoZW1hQ29udGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHaW9Gb3JtbHlKc29uU2NoZW1hU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybWx5SnNvbnNjaGVtYTogRm9ybWx5SnNvbnNjaGVtYSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkZXI6IEZvcm1seUZvcm1CdWlsZGVyLFxuICApIHt9XG5cbiAgcHVibGljIHRvRm9ybWx5RmllbGRDb25maWcoanNvblNjaGVtYTogR2lvSnNvblNjaGVtYSwgY29udGV4dD86IEdpb0pzb25TY2hlbWFDb250ZXh0KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmZvcm1seUpzb25zY2hlbWEudG9GaWVsZENvbmZpZyhqc29uU2NoZW1hLCB7XG4gICAgICBtYXA6IChtYXBwZWRGaWVsZDogRm9ybWx5RmllbGRDb25maWcsIG1hcFNvdXJjZTogSlNPTlNjaGVtYTcpID0+IHtcbiAgICAgICAgbWFwcGVkRmllbGQgPSB0aGlzLnVpVHlwZU1hcChtYXBwZWRGaWVsZCwgbWFwU291cmNlKTsgLy8gS2VlcCBmaXJzdCBpbiBvcmRlciB0byBjb3JyZWN0bHkgY29uc3RydWN0IHRyZWVcbiAgICAgICAgbWFwcGVkRmllbGQgPSB0aGlzLmRpc3BsYXlJZk1hcChtYXBwZWRGaWVsZCwgbWFwU291cmNlLCBjb250ZXh0KTtcbiAgICAgICAgbWFwcGVkRmllbGQgPSB0aGlzLnVpQm9yZGVyKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuZm9ybWF0TWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuYmFubmVyTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMudG9nZ2xlTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuZGlzYWJsZUlmTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UsIGNvbnRleHQpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuZW51bUxhYmVsTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuc2FuaXRpemVPbmVPZihtYXBwZWRGaWVsZCwgbWFwU291cmNlKTtcbiAgICAgICAgbWFwcGVkRmllbGQgPSB0aGlzLmRlcHJlY2F0ZWRNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUlmTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNywgY29udGV4dD86IEdpb0pzb25TY2hlbWFDb250ZXh0KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGNvbnN0IGRpc3BsYXlJZiA9IGdldEdpb0lmKG1hcFNvdXJjZS5naW9Db25maWc/LmRpc3BsYXlJZik7XG4gICAgaWYgKGRpc3BsYXlJZikge1xuICAgICAgbWFwcGVkRmllbGQuZXhwcmVzc2lvbnMgPSB7XG4gICAgICAgIC4uLm1hcHBlZEZpZWxkLmV4cHJlc3Npb25zLFxuICAgICAgICBoaWRlOiBmaWVsZCA9PiB7XG4gICAgICAgICAgbGV0IHBhcmVudEZpZWxkID0gZmllbGQ7XG4gICAgICAgICAgd2hpbGUgKHBhcmVudEZpZWxkLnBhcmVudCkge1xuICAgICAgICAgICAgcGFyZW50RmllbGQgPSBwYXJlbnRGaWVsZC5wYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiAhZGlzcGxheUlmKHtcbiAgICAgICAgICAgICAgdmFsdWU6IHBhcmVudEZpZWxkLm1vZGVsLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRoZSBlcnJvciBhbmQgZGlzcGxheSB0aGUgZmllbGRcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgdWlUeXBlTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAobWFwU291cmNlLmdpb0NvbmZpZz8udWlUeXBlKSB7XG4gICAgICAvLyBDbGVhbiB0aGUgZmllbGQgdG8gYXZvaWQgY29uZmxpY3QgYW5kIGluaXQgc2ltcGxlIG9uZSB3aXRoIGdpdmVuIHR5cGVcbiAgICAgIG1hcHBlZEZpZWxkID0ge1xuICAgICAgICBrZXk6IG1hcHBlZEZpZWxkLmtleSxcbiAgICAgICAgdHlwZTogbWFwU291cmNlLmdpb0NvbmZpZz8udWlUeXBlLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIC4uLm1hcHBlZEZpZWxkLnByb3BzLFxuICAgICAgICAgIC4uLm1hcFNvdXJjZS5naW9Db25maWc/LnVpVHlwZVByb3BzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cblxuICBwcml2YXRlIHVpQm9yZGVyKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAobWFwU291cmNlLmdpb0NvbmZpZz8udWlCb3JkZXIpIHtcbiAgICAgIG1hcHBlZEZpZWxkID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgICAgICB1aUJvcmRlcjogbWFwU291cmNlLmdpb0NvbmZpZz8udWlCb3JkZXIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0TWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAobWFwU291cmNlLnR5cGUgPT09ICdzdHJpbmcnICYmIG1hcFNvdXJjZS5mb3JtYXQgPT09ICd0ZXh0Jykge1xuICAgICAgbWFwcGVkRmllbGQudHlwZSA9ICd0ZXh0YXJlYSc7XG4gICAgICBtYXBwZWRGaWVsZC5wcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAgIGF1dG9zaXplOiB0cnVlLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKG1hcFNvdXJjZS50eXBlID09PSAnc3RyaW5nJyAmJiBtYXBTb3VyY2UuZm9ybWF0ID09PSAncGFzc3dvcmQnKSB7XG4gICAgICBtYXBwZWRGaWVsZC5wcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAobWFwU291cmNlLnR5cGUgPT09ICdzdHJpbmcnICYmIG1hcFNvdXJjZS5mb3JtYXQgPT09ICdnaW8tY29kZS1lZGl0b3InKSB7XG4gICAgICBtYXBwZWRGaWVsZC50eXBlID0gJ2dpby1jb2RlLWVkaXRvcic7XG4gICAgICBtYXBwZWRGaWVsZC5wcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAgIG1vbmFjb0VkaXRvckNvbmZpZzogbWFwU291cmNlLmdpb0NvbmZpZz8ubW9uYWNvRWRpdG9yQ29uZmlnLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKG1hcFNvdXJjZS50eXBlID09PSAnc3RyaW5nJyAmJiBtYXBTb3VyY2UuZm9ybWF0ID09PSAnZ2lvLWNyb24nKSB7XG4gICAgICBtYXBwZWRGaWVsZC50eXBlID0gJ2dpby1jcm9uJztcbiAgICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBiYW5uZXJNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAuLi4obWFwU291cmNlLmdpb0NvbmZpZz8uYmFubmVyID8gZ2V0QmFubmVyUHJvcGVydGllcyhtYXBTb3VyY2UuZ2lvQ29uZmlnLmJhbm5lcikgOiB7fSksXG4gICAgfTtcblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAobWFwU291cmNlLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgbWFwcGVkRmllbGQudHlwZSA9ICd0b2dnbGUnO1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUlmTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNywgY29udGV4dD86IEdpb0pzb25TY2hlbWFDb250ZXh0KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGNvbnN0IGRpc2FibGVJZiA9IGdldEdpb0lmKG1hcFNvdXJjZS5naW9Db25maWc/LmRpc2FibGVJZik7XG4gICAgaWYgKGRpc2FibGVJZikge1xuICAgICAgY29uc3QgcHJvcHNEaXNhYmxlZDogKChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IGJvb2xlYW4pIHwgT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZpZWxkID0+IHtcbiAgICAgICAgY29uc3QgaXNSZWFkT25seSA9IGZpZWxkLnByb3BzPy5yZWFkb25seSA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaXNQYXJlbnREaXNhYmxlZCA9IGZpZWxkLm9wdGlvbnM/LmZvcm1TdGF0ZT8ucGFyZW50RGlzYWJsZWQgPT09IHRydWU7XG4gICAgICAgIGlmIChpc1BhcmVudERpc2FibGVkIHx8IGlzUmVhZE9ubHkpIHtcbiAgICAgICAgICAvLyBVc2VmdWwgd2hlbiBmaWVsZCBpcyByZWFkb25seSB0byBhdm9pZCB0byBlbmFibGUgaXRcbiAgICAgICAgICBmaWVsZC5mb3JtQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyZW50RmllbGQgPSBmaWVsZDtcbiAgICAgICAgd2hpbGUgKHBhcmVudEZpZWxkLnBhcmVudCkge1xuICAgICAgICAgIHBhcmVudEZpZWxkID0gcGFyZW50RmllbGQucGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gZGlzYWJsZUlmKHtcbiAgICAgICAgICAgIHZhbHVlOiBwYXJlbnRGaWVsZC5tb2RlbCxcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gVXNlZnVsIHdoZW4gZnVsbCBmb3JtIGlzIHJlLWVuYWJsZWQgdG8gc3luYyB0aGUgZnJvbUNvbnRyb2wgZW5hYmxlL2Rpc2FibGUgc3RhdGVcbiAgICAgICAgICBpc0Rpc2FibGVkID8gZmllbGQuZm9ybUNvbnRyb2w/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pIDogZmllbGQuZm9ybUNvbnRyb2w/LmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgcmV0dXJuIGlzRGlzYWJsZWQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdGhlIGVycm9yIGFuZCBrZWVwIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICByZXR1cm4gZmllbGQucHJvcHM/LmRpc2FibGVkIHx8IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBtYXBwZWRGaWVsZC5leHByZXNzaW9ucyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQuZXhwcmVzc2lvbnMsXG4gICAgICAgICdwcm9wcy5kaXNhYmxlZCc6IHByb3BzRGlzYWJsZWQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgZW51bUxhYmVsTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAoIWlzQXJyYXkobWFwcGVkRmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gICAgfVxuXG4gICAgY29uc3QgZW51bUxhYmVsTWFwSW5PYmplY3QgPVxuICAgICAgbWFwU291cmNlLmVudW0gJiYgIWlzRW1wdHkobWFwU291cmNlLmVudW0pICYmIG1hcFNvdXJjZS5naW9Db25maWc/LmVudW1MYWJlbE1hcCA/IG1hcFNvdXJjZS5naW9Db25maWc/LmVudW1MYWJlbE1hcCA6IG51bGw7XG4gICAgY29uc3QgZW51bUxhYmVsTWFwSW5BcnJheUl0ZW0gPVxuICAgICAgbWFwU291cmNlLml0ZW1zICYmXG4gICAgICBtYXBTb3VyY2UudHlwZSA9PT0gJ2FycmF5JyAmJlxuICAgICAgIWlzRW1wdHkoKG1hcFNvdXJjZS5pdGVtcyBhcyBKU09OU2NoZW1hNykuZW51bSkgJiZcbiAgICAgIChtYXBTb3VyY2UuaXRlbXMgYXMgSlNPTlNjaGVtYTcpPy5naW9Db25maWc/LmVudW1MYWJlbE1hcFxuICAgICAgICA/IChtYXBTb3VyY2UuaXRlbXMgYXMgSlNPTlNjaGVtYTcpPy5naW9Db25maWc/LmVudW1MYWJlbE1hcFxuICAgICAgICA6IG51bGw7XG5cbiAgICBpZiAoZW51bUxhYmVsTWFwSW5PYmplY3QgfHwgZW51bUxhYmVsTWFwSW5BcnJheUl0ZW0pIHtcbiAgICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgICAgb3B0aW9uczogbWFwcGVkRmllbGQucHJvcHM/Lm9wdGlvbnM/Lm1hcCgoeyB2YWx1ZSB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiAoZW51bUxhYmVsTWFwSW5PYmplY3QgfHwgZW51bUxhYmVsTWFwSW5BcnJheUl0ZW0pPy5bdmFsdWVdID8/IHZhbHVlLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBsYWJlbCBvZiB0aGUgb25lT2YgZmllbGRzIHRvIGF2b2lkIHRvIGRpc3BsYXkgaXQgdHdpY2UgKHdpdGggdGhlIHNlbGVjdCBhbmQgdGhlIG9iamVjdCB0aXRsZSlcbiAgICovXG4gIHByaXZhdGUgc2FuaXRpemVPbmVPZihtYXBwZWRGaWVsZDogRm9ybWx5RmllbGRDb25maWcsIG1hcFNvdXJjZTogSlNPTlNjaGVtYTcpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgaWYgKCFtYXBTb3VyY2Uub25lT2YgfHwgIW1hcHBlZEZpZWxkLmZpZWxkR3JvdXAgfHwgbWFwcGVkRmllbGQuZmllbGRHcm91cC5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50RmllbGRHcm91cCA9IG1hcHBlZEZpZWxkLmZpZWxkR3JvdXBbbWFwcGVkRmllbGQuZmllbGRHcm91cC5sZW5ndGggLSAxXTtcbiAgICBpZiAoIXBhcmVudEZpZWxkR3JvdXAgfHwgcGFyZW50RmllbGRHcm91cD8udHlwZSAhPSAnbXVsdGlzY2hlbWEnKSB7XG4gICAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudEZpZWxkR3JvdXAgPSBnZXQocGFyZW50RmllbGRHcm91cCwgJ2ZpZWxkR3JvdXBbMV0nKTtcbiAgICBpZiAoIWNvbnRlbnRGaWVsZEdyb3VwKSB7XG4gICAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gICAgfVxuXG4gICAgY29udGVudEZpZWxkR3JvdXAuZmllbGRHcm91cD8uZm9yRWFjaCgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICBzZXQoZmllbGQsICdwcm9wcy5sYWJlbCcsIHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cblxuICBwcml2YXRlIGRlcHJlY2F0ZWRNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmIChtYXBTb3VyY2UuZGVwcmVjYXRlZCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxufVxuXG5jb25zdCBnZXRCYW5uZXJQcm9wZXJ0aWVzID0gKGJhbm5lcjogeyB0aXRsZTogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfSB8IHsgdGV4dDogc3RyaW5nIH0pID0+IHtcbiAgcmV0dXJuIHtcbiAgICBiYW5uZXJUZXh0OiBiYW5uZXIudGV4dCxcbiAgICBiYW5uZXJUaXRsZTogJ3RpdGxlJyBpbiBiYW5uZXIgPyBiYW5uZXIudGl0bGUgOiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5jb25zdCBnZXRHaW9JZiA9IChcbiAgZ2lvSWY/OiBHaW9JZkNvbmZpZyxcbik6ICgob2JqZWN0VG9DaGVjaz86IHsgdmFsdWU/OiBGb3JtbHlGaWVsZENvbmZpZ1snbW9kZWwnXTsgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0pID0+IGJvb2xlYW4pIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgJGVxID0gZ2lvSWY/LiRlcTtcbiAgaWYgKGlzTmlsKCRlcSkgfHwgIWlzT2JqZWN0KCRlcSkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIG9iamVjdFRvQ2hlY2sgPT4ge1xuICAgIGlmIChpc0VtcHR5KG9iamVjdFRvQ2hlY2spKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKCRlcSlcbiAgICAgIC5tYXAoKFtrLCB2XSkgPT4gKHsgcGF0aDogaywgZXFWYWx1ZTogY2FzdEFycmF5KHYpIH0pKVxuICAgICAgLmV2ZXJ5KCh7IHBhdGgsIGVxVmFsdWUgfSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldChvYmplY3RUb0NoZWNrLCBwYXRoKTtcblxuICAgICAgICByZXR1cm4gZXFWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfTtcbn07XG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm1seS1qc29uLXNjaGVtYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybWx5LWpzb24tc2NoZW1hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7QUFPaEYsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUNtQixnQkFBa0MsRUFDbEMsT0FBMEI7UUFEMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUMxQyxDQUFDO0lBRUcsbUJBQW1CLENBQUMsVUFBeUIsRUFBRSxPQUE4QjtRQUNsRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQ3JELEdBQUcsRUFBRSxDQUFDLFdBQThCLEVBQUUsU0FBc0IsRUFBRSxFQUFFO2dCQUM5RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxrREFBa0Q7Z0JBQ3hHLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pFLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDcEQsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3JELFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDckQsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDakUsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3pELFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFekQsT0FBTyxXQUFXLENBQUM7WUFDckIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsV0FBOEIsRUFBRSxTQUFzQixFQUFFLE9BQThCO1FBQ3pHLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxXQUFXLENBQUMsV0FBVyxHQUFHO2dCQUN4QixHQUFHLFdBQVcsQ0FBQyxXQUFXO2dCQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ1osSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN4QixPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDMUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7b0JBQ25DLENBQUM7b0JBRUQsSUFBSSxDQUFDO3dCQUNILE9BQU8sQ0FBQyxTQUFTLENBQUM7NEJBQ2hCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSzs0QkFDeEIsT0FBTzt5QkFDUixDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNYLHlDQUF5Qzt3QkFDekMsT0FBTyxLQUFLLENBQUM7b0JBQ2YsQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQThCLEVBQUUsU0FBc0I7UUFDdEUsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLHdFQUF3RTtZQUN4RSxXQUFXLEdBQUc7Z0JBQ1osR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNO2dCQUNqQyxLQUFLLEVBQUU7b0JBQ0wsR0FBRyxXQUFXLENBQUMsS0FBSztvQkFDcEIsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLFdBQVc7aUJBQ3BDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sUUFBUSxDQUFDLFdBQThCLEVBQUUsU0FBc0I7UUFDckUsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLFdBQVcsR0FBRztnQkFDWixHQUFHLFdBQVc7Z0JBQ2QsS0FBSyxFQUFFO29CQUNMLEdBQUcsV0FBVyxDQUFDLEtBQUs7b0JBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVE7aUJBQ3hDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQThCLEVBQUUsU0FBc0I7UUFDdEUsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9ELFdBQVcsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxLQUFLLEdBQUc7Z0JBQ2xCLEdBQUcsV0FBVyxDQUFDLEtBQUs7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDMUUsV0FBVyxDQUFDLEtBQUssR0FBRztnQkFDbEIsR0FBRyxXQUFXLENBQUMsS0FBSztnQkFDcEIsSUFBSSxFQUFFLFVBQVU7YUFDakIsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNqRixXQUFXLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQ3JDLFdBQVcsQ0FBQyxLQUFLLEdBQUc7Z0JBQ2xCLEdBQUcsV0FBVyxDQUFDLEtBQUs7Z0JBQ3BCLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO2FBQzVELENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzFFLFdBQVcsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxLQUFLLEdBQUc7Z0JBQ2xCLEdBQUcsV0FBVyxDQUFDLEtBQUs7YUFDckIsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQThCLEVBQUUsU0FBc0I7UUFDdEUsV0FBVyxDQUFDLEtBQUssR0FBRztZQUNsQixHQUFHLFdBQVcsQ0FBQyxLQUFLO1lBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3hGLENBQUM7UUFFRixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQThCLEVBQUUsU0FBc0I7UUFDdEUsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sWUFBWSxDQUFDLFdBQThCLEVBQUUsU0FBc0IsRUFBRSxPQUE4QjtRQUN6RyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxhQUFhLEdBQWtFLEtBQUssQ0FBQyxFQUFFO2dCQUMzRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUM7Z0JBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxLQUFLLElBQUksQ0FBQztnQkFDM0UsSUFBSSxnQkFBZ0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDbkMsc0RBQXNEO29CQUN0RCxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNqRCwyRkFBMkY7b0JBQzNGLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBRUQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDMUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25DLENBQUM7Z0JBRUQsSUFBSSxDQUFDO29CQUNILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQzt3QkFDM0IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO3dCQUN4QixPQUFPO3FCQUNSLENBQUMsQ0FBQztvQkFDSCxtRkFBbUY7b0JBQ25GLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDaEgsT0FBTyxVQUFVLENBQUM7Z0JBQ3BCLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCwwQ0FBMEM7b0JBQzFDLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsV0FBVyxDQUFDLFdBQVcsR0FBRztnQkFDeEIsR0FBRyxXQUFXLENBQUMsV0FBVztnQkFDMUIsZ0JBQWdCLEVBQUUsYUFBYTthQUNoQyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxZQUFZLENBQUMsV0FBOEIsRUFBRSxTQUFzQjtRQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0gsTUFBTSx1QkFBdUIsR0FDM0IsU0FBUyxDQUFDLEtBQUs7WUFDZixTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDMUIsQ0FBQyxPQUFPLENBQUUsU0FBUyxDQUFDLEtBQXFCLENBQUMsSUFBSSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxLQUFxQixFQUFFLFNBQVMsRUFBRSxZQUFZO1lBQ3ZELENBQUMsQ0FBRSxTQUFTLENBQUMsS0FBcUIsRUFBRSxTQUFTLEVBQUUsWUFBWTtZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRVgsSUFBSSxvQkFBb0IsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3BELFdBQVcsQ0FBQyxLQUFLLEdBQUc7Z0JBQ2xCLEdBQUcsV0FBVyxDQUFDLEtBQUs7Z0JBQ3BCLE9BQU8sRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7b0JBQ3JELE9BQU87d0JBQ0wsS0FBSyxFQUFFLENBQUMsb0JBQW9CLElBQUksdUJBQXVCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUs7d0JBQzFFLEtBQUssRUFBRSxLQUFLO3FCQUNiLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsV0FBOEIsRUFBRSxTQUFzQjtRQUMxRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckYsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN2QixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsaUJBQWlCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUNqRSxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsV0FBOEIsRUFBRSxTQUFzQjtRQUMxRSxJQUFJLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzhHQXJPVSwwQkFBMEI7a0hBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVTs7QUF5T1gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQTBELEVBQUUsRUFBRTtJQUN6RixPQUFPO1FBQ0wsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1FBQ3ZCLFdBQVcsRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzFELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxDQUNmLEtBQW1CLEVBQ21HLEVBQUU7SUFDeEgsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUN2QixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQyxFQUFFO1FBQ3JCLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUN2QixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDckQsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUMzQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXZDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybUJ1aWxkZXIgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1seUpzb25zY2hlbWEgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IEpTT05TY2hlbWE3IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBnZXQsIGlzQXJyYXksIGlzRW1wdHksIGlzTmlsLCBpc09iamVjdCwgc2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgR2lvSWZDb25maWcsIEdpb0pzb25TY2hlbWEgfSBmcm9tICcuL21vZGVsL0dpb0pzb25TY2hlbWEnO1xuaW1wb3J0IHsgR2lvSnNvblNjaGVtYUNvbnRleHQgfSBmcm9tICcuL21vZGVsL0dpb0pzb25TY2hlbWFDb250ZXh0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1seUpzb25TY2hlbWFTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtbHlKc29uc2NoZW1hOiBGb3JtbHlKc29uc2NoZW1hLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRlcjogRm9ybWx5Rm9ybUJ1aWxkZXIsXG4gICkge31cblxuICBwdWJsaWMgdG9Gb3JtbHlGaWVsZENvbmZpZyhqc29uU2NoZW1hOiBHaW9Kc29uU2NoZW1hLCBjb250ZXh0PzogR2lvSnNvblNjaGVtYUNvbnRleHQpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWx5SnNvbnNjaGVtYS50b0ZpZWxkQ29uZmlnKGpzb25TY2hlbWEsIHtcbiAgICAgIG1hcDogKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNykgPT4ge1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMudWlUeXBlTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpOyAvLyBLZWVwIGZpcnN0IGluIG9yZGVyIHRvIGNvcnJlY3RseSBjb25zdHJ1Y3QgdHJlZVxuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuZGlzcGxheUlmTWFwKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UsIGNvbnRleHQpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMudWlCb3JkZXIobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy5mb3JtYXRNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy5iYW5uZXJNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy50b2dnbGVNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy5kaXNhYmxlSWZNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSwgY29udGV4dCk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy5lbnVtTGFiZWxNYXAobWFwcGVkRmllbGQsIG1hcFNvdXJjZSk7XG4gICAgICAgIG1hcHBlZEZpZWxkID0gdGhpcy5zYW5pdGl6ZU9uZU9mKG1hcHBlZEZpZWxkLCBtYXBTb3VyY2UpO1xuICAgICAgICBtYXBwZWRGaWVsZCA9IHRoaXMuZGVwcmVjYXRlZE1hcChtYXBwZWRGaWVsZCwgbWFwU291cmNlKTtcblxuICAgICAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5SWZNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3LCBjb250ZXh0PzogR2lvSnNvblNjaGVtYUNvbnRleHQpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgY29uc3QgZGlzcGxheUlmID0gZ2V0R2lvSWYobWFwU291cmNlLmdpb0NvbmZpZz8uZGlzcGxheUlmKTtcbiAgICBpZiAoZGlzcGxheUlmKSB7XG4gICAgICBtYXBwZWRGaWVsZC5leHByZXNzaW9ucyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQuZXhwcmVzc2lvbnMsXG4gICAgICAgIGhpZGU6IGZpZWxkID0+IHtcbiAgICAgICAgICBsZXQgcGFyZW50RmllbGQgPSBmaWVsZDtcbiAgICAgICAgICB3aGlsZSAocGFyZW50RmllbGQucGFyZW50KSB7XG4gICAgICAgICAgICBwYXJlbnRGaWVsZCA9IHBhcmVudEZpZWxkLnBhcmVudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuICFkaXNwbGF5SWYoe1xuICAgICAgICAgICAgICB2YWx1ZTogcGFyZW50RmllbGQubW9kZWwsXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdGhlIGVycm9yIGFuZCBkaXNwbGF5IHRoZSBmaWVsZFxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSB1aVR5cGVNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmIChtYXBTb3VyY2UuZ2lvQ29uZmlnPy51aVR5cGUpIHtcbiAgICAgIC8vIENsZWFuIHRoZSBmaWVsZCB0byBhdm9pZCBjb25mbGljdCBhbmQgaW5pdCBzaW1wbGUgb25lIHdpdGggZ2l2ZW4gdHlwZVxuICAgICAgbWFwcGVkRmllbGQgPSB7XG4gICAgICAgIGtleTogbWFwcGVkRmllbGQua2V5LFxuICAgICAgICB0eXBlOiBtYXBTb3VyY2UuZ2lvQ29uZmlnPy51aVR5cGUsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAgICAgLi4ubWFwU291cmNlLmdpb0NvbmZpZz8udWlUeXBlUHJvcHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBtYXBwZWRGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgdWlCb3JkZXIobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmIChtYXBTb3VyY2UuZ2lvQ29uZmlnPy51aUJvcmRlcikge1xuICAgICAgbWFwcGVkRmllbGQgPSB7XG4gICAgICAgIC4uLm1hcHBlZEZpZWxkLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIC4uLm1hcHBlZEZpZWxkLnByb3BzLFxuICAgICAgICAgIHVpQm9yZGVyOiBtYXBTb3VyY2UuZ2lvQ29uZmlnPy51aUJvcmRlcixcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmIChtYXBTb3VyY2UudHlwZSA9PT0gJ3N0cmluZycgJiYgbWFwU291cmNlLmZvcm1hdCA9PT0gJ3RleHQnKSB7XG4gICAgICBtYXBwZWRGaWVsZC50eXBlID0gJ3RleHRhcmVhJztcbiAgICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgICAgYXV0b3NpemU6IHRydWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAobWFwU291cmNlLnR5cGUgPT09ICdzdHJpbmcnICYmIG1hcFNvdXJjZS5mb3JtYXQgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgICAgdHlwZTogJ3Bhc3N3b3JkJyxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChtYXBTb3VyY2UudHlwZSA9PT0gJ3N0cmluZycgJiYgbWFwU291cmNlLmZvcm1hdCA9PT0gJ2dpby1jb2RlLWVkaXRvcicpIHtcbiAgICAgIG1hcHBlZEZpZWxkLnR5cGUgPSAnZ2lvLWNvZGUtZWRpdG9yJztcbiAgICAgIG1hcHBlZEZpZWxkLnByb3BzID0ge1xuICAgICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgICAgbW9uYWNvRWRpdG9yQ29uZmlnOiBtYXBTb3VyY2UuZ2lvQ29uZmlnPy5tb25hY29FZGl0b3JDb25maWcsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAobWFwU291cmNlLnR5cGUgPT09ICdzdHJpbmcnICYmIG1hcFNvdXJjZS5mb3JtYXQgPT09ICdnaW8tY3JvbicpIHtcbiAgICAgIG1hcHBlZEZpZWxkLnR5cGUgPSAnZ2lvLWNyb24nO1xuICAgICAgbWFwcGVkRmllbGQucHJvcHMgPSB7XG4gICAgICAgIC4uLm1hcHBlZEZpZWxkLnByb3BzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cblxuICBwcml2YXRlIGJhbm5lck1hcChtYXBwZWRGaWVsZDogRm9ybWx5RmllbGRDb25maWcsIG1hcFNvdXJjZTogSlNPTlNjaGVtYTcpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgbWFwcGVkRmllbGQucHJvcHMgPSB7XG4gICAgICAuLi5tYXBwZWRGaWVsZC5wcm9wcyxcbiAgICAgIC4uLihtYXBTb3VyY2UuZ2lvQ29uZmlnPy5iYW5uZXIgPyBnZXRCYW5uZXJQcm9wZXJ0aWVzKG1hcFNvdXJjZS5naW9Db25maWcuYmFubmVyKSA6IHt9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmIChtYXBTb3VyY2UudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBtYXBwZWRGaWVsZC50eXBlID0gJ3RvZ2dsZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlSWZNYXAobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3LCBjb250ZXh0PzogR2lvSnNvblNjaGVtYUNvbnRleHQpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgY29uc3QgZGlzYWJsZUlmID0gZ2V0R2lvSWYobWFwU291cmNlLmdpb0NvbmZpZz8uZGlzYWJsZUlmKTtcbiAgICBpZiAoZGlzYWJsZUlmKSB7XG4gICAgICBjb25zdCBwcm9wc0Rpc2FibGVkOiAoKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbikgfCBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gZmllbGQgPT4ge1xuICAgICAgICBjb25zdCBpc1JlYWRPbmx5ID0gZmllbGQucHJvcHM/LnJlYWRvbmx5ID09PSB0cnVlO1xuICAgICAgICBjb25zdCBpc1BhcmVudERpc2FibGVkID0gZmllbGQub3B0aW9ucz8uZm9ybVN0YXRlPy5wYXJlbnREaXNhYmxlZCA9PT0gdHJ1ZTtcbiAgICAgICAgaWYgKGlzUGFyZW50RGlzYWJsZWQgfHwgaXNSZWFkT25seSkge1xuICAgICAgICAgIC8vIFVzZWZ1bCB3aGVuIGZpZWxkIGlzIHJlYWRvbmx5IHRvIGF2b2lkIHRvIGVuYWJsZSBpdFxuICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAvLyBpZiB0aGUgcGFyZW50IGlzIGFscmVhZHkgZGlzYWJsZWQgdGhlcmUgaXMgbm8gbmVlZCB0byBjaGFuZ2UgYW55dGhpbmcgYXQgdGhlIGNoaWxkIGxldmVsXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhcmVudEZpZWxkID0gZmllbGQ7XG4gICAgICAgIHdoaWxlIChwYXJlbnRGaWVsZC5wYXJlbnQpIHtcbiAgICAgICAgICBwYXJlbnRGaWVsZCA9IHBhcmVudEZpZWxkLnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVJZih7XG4gICAgICAgICAgICB2YWx1ZTogcGFyZW50RmllbGQubW9kZWwsXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIFVzZWZ1bCB3aGVuIGZ1bGwgZm9ybSBpcyByZS1lbmFibGVkIHRvIHN5bmMgdGhlIGZyb21Db250cm9sIGVuYWJsZS9kaXNhYmxlIHN0YXRlXG4gICAgICAgICAgaXNEaXNhYmxlZCA/IGZpZWxkLmZvcm1Db250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KSA6IGZpZWxkLmZvcm1Db250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHJldHVybiBpc0Rpc2FibGVkO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gSWdub3JlIHRoZSBlcnJvciBhbmQga2VlcCBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgcmV0dXJuIGZpZWxkLnByb3BzPy5kaXNhYmxlZCB8fCBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgbWFwcGVkRmllbGQuZXhwcmVzc2lvbnMgPSB7XG4gICAgICAgIC4uLm1hcHBlZEZpZWxkLmV4cHJlc3Npb25zLFxuICAgICAgICAncHJvcHMuZGlzYWJsZWQnOiBwcm9wc0Rpc2FibGVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cblxuICBwcml2YXRlIGVudW1MYWJlbE1hcChtYXBwZWRGaWVsZDogRm9ybWx5RmllbGRDb25maWcsIG1hcFNvdXJjZTogSlNPTlNjaGVtYTcpOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gICAgaWYgKCFpc0FycmF5KG1hcHBlZEZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xuICAgICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGVudW1MYWJlbE1hcEluT2JqZWN0ID1cbiAgICAgIG1hcFNvdXJjZS5lbnVtICYmICFpc0VtcHR5KG1hcFNvdXJjZS5lbnVtKSAmJiBtYXBTb3VyY2UuZ2lvQ29uZmlnPy5lbnVtTGFiZWxNYXAgPyBtYXBTb3VyY2UuZ2lvQ29uZmlnPy5lbnVtTGFiZWxNYXAgOiBudWxsO1xuICAgIGNvbnN0IGVudW1MYWJlbE1hcEluQXJyYXlJdGVtID1cbiAgICAgIG1hcFNvdXJjZS5pdGVtcyAmJlxuICAgICAgbWFwU291cmNlLnR5cGUgPT09ICdhcnJheScgJiZcbiAgICAgICFpc0VtcHR5KChtYXBTb3VyY2UuaXRlbXMgYXMgSlNPTlNjaGVtYTcpLmVudW0pICYmXG4gICAgICAobWFwU291cmNlLml0ZW1zIGFzIEpTT05TY2hlbWE3KT8uZ2lvQ29uZmlnPy5lbnVtTGFiZWxNYXBcbiAgICAgICAgPyAobWFwU291cmNlLml0ZW1zIGFzIEpTT05TY2hlbWE3KT8uZ2lvQ29uZmlnPy5lbnVtTGFiZWxNYXBcbiAgICAgICAgOiBudWxsO1xuXG4gICAgaWYgKGVudW1MYWJlbE1hcEluT2JqZWN0IHx8IGVudW1MYWJlbE1hcEluQXJyYXlJdGVtKSB7XG4gICAgICBtYXBwZWRGaWVsZC5wcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwcGVkRmllbGQucHJvcHMsXG4gICAgICAgIG9wdGlvbnM6IG1hcHBlZEZpZWxkLnByb3BzPy5vcHRpb25zPy5tYXAoKHsgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogKGVudW1MYWJlbE1hcEluT2JqZWN0IHx8IGVudW1MYWJlbE1hcEluQXJyYXlJdGVtKT8uW3ZhbHVlXSA/PyB2YWx1ZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgbGFiZWwgb2YgdGhlIG9uZU9mIGZpZWxkcyB0byBhdm9pZCB0byBkaXNwbGF5IGl0IHR3aWNlICh3aXRoIHRoZSBzZWxlY3QgYW5kIHRoZSBvYmplY3QgdGl0bGUpXG4gICAqL1xuICBwcml2YXRlIHNhbml0aXplT25lT2YobWFwcGVkRmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtYXBTb3VyY2U6IEpTT05TY2hlbWE3KTogRm9ybWx5RmllbGRDb25maWcge1xuICAgIGlmICghbWFwU291cmNlLm9uZU9mIHx8ICFtYXBwZWRGaWVsZC5maWVsZEdyb3VwIHx8IG1hcHBlZEZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudEZpZWxkR3JvdXAgPSBtYXBwZWRGaWVsZC5maWVsZEdyb3VwW21hcHBlZEZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIC0gMV07XG4gICAgaWYgKCFwYXJlbnRGaWVsZEdyb3VwIHx8IHBhcmVudEZpZWxkR3JvdXA/LnR5cGUgIT0gJ211bHRpc2NoZW1hJykge1xuICAgICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRGaWVsZEdyb3VwID0gZ2V0KHBhcmVudEZpZWxkR3JvdXAsICdmaWVsZEdyb3VwWzFdJyk7XG4gICAgaWYgKCFjb250ZW50RmllbGRHcm91cCkge1xuICAgICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICAgIH1cblxuICAgIGNvbnRlbnRGaWVsZEdyb3VwLmZpZWxkR3JvdXA/LmZvckVhY2goKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgc2V0KGZpZWxkLCAncHJvcHMubGFiZWwnLCB1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcHBlZEZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXByZWNhdGVkTWFwKG1hcHBlZEZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgbWFwU291cmNlOiBKU09OU2NoZW1hNyk6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgICBpZiAobWFwU291cmNlLmRlcHJlY2F0ZWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwcGVkRmllbGQ7XG4gIH1cbn1cblxuY29uc3QgZ2V0QmFubmVyUHJvcGVydGllcyA9IChiYW5uZXI6IHsgdGl0bGU6IHN0cmluZzsgdGV4dDogc3RyaW5nIH0gfCB7IHRleHQ6IHN0cmluZyB9KSA9PiB7XG4gIHJldHVybiB7XG4gICAgYmFubmVyVGV4dDogYmFubmVyLnRleHQsXG4gICAgYmFubmVyVGl0bGU6ICd0aXRsZScgaW4gYmFubmVyID8gYmFubmVyLnRpdGxlIDogdW5kZWZpbmVkLFxuICB9O1xufTtcblxuY29uc3QgZ2V0R2lvSWYgPSAoXG4gIGdpb0lmPzogR2lvSWZDb25maWcsXG4pOiAoKG9iamVjdFRvQ2hlY2s/OiB7IHZhbHVlPzogRm9ybWx5RmllbGRDb25maWdbJ21vZGVsJ107IGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9KSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0ICRlcSA9IGdpb0lmPy4kZXE7XG4gIGlmIChpc05pbCgkZXEpIHx8ICFpc09iamVjdCgkZXEpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBvYmplY3RUb0NoZWNrID0+IHtcbiAgICBpZiAoaXNFbXB0eShvYmplY3RUb0NoZWNrKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuZW50cmllcygkZXEpXG4gICAgICAubWFwKChbaywgdl0pID0+ICh7IHBhdGg6IGssIGVxVmFsdWU6IGNhc3RBcnJheSh2KSB9KSlcbiAgICAgIC5ldmVyeSgoeyBwYXRoLCBlcVZhbHVlIH0pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQob2JqZWN0VG9DaGVjaywgcGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIGVxVmFsdWUuaW5jbHVkZXModmFsdWUpO1xuICAgICAgfSk7XG4gIH07XG59O1xuIl19
@@ -2420,7 +2420,8 @@ class GioFormlyJsonSchemaService {
2420
2420
  if (isParentDisabled || isReadOnly) {
2421
2421
  // Useful when field is readonly to avoid to enable it
2422
2422
  field.formControl?.disable({ emitEvent: false });
2423
- return true;
2423
+ // if the parent is already disabled there is no need to change anything at the child level
2424
+ return false;
2424
2425
  }
2425
2426
  let parentField = field;
2426
2427
  while (parentField.parent) {