@alfresco/adf-content-services 8.1.0-14861149782 → 8.1.0-14965920234

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.
Files changed (202) hide show
  1. package/esm2022/lib/agent/services/agent.service.mjs +4 -4
  2. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +4 -4
  3. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +4 -4
  4. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +4 -4
  5. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +4 -4
  6. package/esm2022/lib/aspect-list/aspect-list.component.mjs +4 -4
  7. package/esm2022/lib/aspect-list/aspect-list.module.mjs +5 -5
  8. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +4 -4
  9. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +4 -4
  10. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +4 -4
  11. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +4 -4
  12. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +4 -4
  13. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +5 -5
  14. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -4
  15. package/esm2022/lib/category/categories-management/categories-management.component.mjs +4 -4
  16. package/esm2022/lib/category/category.module.mjs +5 -5
  17. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +4 -4
  18. package/esm2022/lib/category/services/category.service.mjs +4 -4
  19. package/esm2022/lib/common/services/card-view-content-update.service.mjs +4 -4
  20. package/esm2022/lib/common/services/content.service.mjs +4 -4
  21. package/esm2022/lib/common/services/discovery-api.service.mjs +4 -4
  22. package/esm2022/lib/common/services/favorites-api.service.mjs +4 -4
  23. package/esm2022/lib/common/services/nodes-api.service.mjs +4 -4
  24. package/esm2022/lib/common/services/people-content.service.mjs +4 -4
  25. package/esm2022/lib/common/services/rendition.service.mjs +4 -4
  26. package/esm2022/lib/common/services/saved-searches.service.mjs +4 -4
  27. package/esm2022/lib/common/services/sites.service.mjs +4 -4
  28. package/esm2022/lib/common/services/upload.service.mjs +4 -4
  29. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -4
  30. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +4 -4
  31. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -4
  32. package/esm2022/lib/content-metadata/content-metadata.module.mjs +5 -5
  33. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +4 -4
  34. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +4 -4
  35. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +4 -4
  36. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +4 -4
  37. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +4 -4
  38. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +4 -4
  39. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +4 -4
  40. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +4 -4
  41. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +4 -4
  42. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +4 -4
  43. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +5 -5
  44. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +4 -4
  45. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
  46. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +4 -4
  47. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +4 -4
  48. package/esm2022/lib/content-node-share/content-node-share.module.mjs +5 -5
  49. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +4 -4
  50. package/esm2022/lib/content-type/content-type-dialog.component.mjs +4 -4
  51. package/esm2022/lib/content-type/content-type.service.mjs +4 -4
  52. package/esm2022/lib/content.module.mjs +5 -5
  53. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +4 -4
  54. package/esm2022/lib/dialogs/dialog.module.mjs +5 -5
  55. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +4 -4
  56. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +5 -5
  57. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +4 -4
  58. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +4 -4
  59. package/esm2022/lib/dialogs/library/library.dialog.mjs +4 -4
  60. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +4 -4
  61. package/esm2022/lib/directives/auto-focus.directive.mjs +4 -4
  62. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +4 -4
  63. package/esm2022/lib/directives/content-directive.module.mjs +5 -5
  64. package/esm2022/lib/directives/library-favorite.directive.mjs +4 -4
  65. package/esm2022/lib/directives/library-membership.directive.mjs +4 -4
  66. package/esm2022/lib/directives/node-counter.directive.mjs +7 -7
  67. package/esm2022/lib/directives/node-delete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/node-download.directive.mjs +4 -4
  69. package/esm2022/lib/directives/node-favorite.directive.mjs +4 -4
  70. package/esm2022/lib/directives/node-lock.directive.mjs +4 -4
  71. package/esm2022/lib/directives/node-restore.directive.mjs +4 -4
  72. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +4 -4
  73. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +4 -4
  74. package/esm2022/lib/document-list/components/document-list.component.mjs +4 -4
  75. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +4 -4
  76. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +4 -4
  77. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +4 -4
  78. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +4 -4
  79. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +4 -4
  80. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +4 -4
  81. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +4 -4
  82. package/esm2022/lib/document-list/document-list.module.mjs +5 -5
  83. package/esm2022/lib/document-list/services/custom-resources.service.mjs +4 -4
  84. package/esm2022/lib/document-list/services/document-actions.service.mjs +4 -4
  85. package/esm2022/lib/document-list/services/document-list.service.mjs +4 -4
  86. package/esm2022/lib/document-list/services/folder-actions.service.mjs +4 -4
  87. package/esm2022/lib/document-list/services/lock.service.mjs +4 -4
  88. package/esm2022/lib/document-list/services/node-actions.service.mjs +4 -4
  89. package/esm2022/lib/group/services/group.service.mjs +4 -4
  90. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +4 -4
  91. package/esm2022/lib/material.module.mjs +5 -5
  92. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +4 -4
  93. package/esm2022/lib/mock/search.component.mock.mjs +4 -4
  94. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +4 -4
  95. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +5 -5
  96. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +4 -4
  97. package/esm2022/lib/node-comments/node-comments.component.mjs +4 -4
  98. package/esm2022/lib/node-comments/node-comments.module.mjs +5 -5
  99. package/esm2022/lib/node-comments/services/node-comments.service.mjs +4 -4
  100. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +4 -4
  101. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +4 -4
  102. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -4
  103. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +4 -4
  104. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +4 -4
  105. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +4 -4
  106. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +4 -4
  107. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +4 -4
  108. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +4 -4
  109. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +4 -4
  110. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +4 -4
  111. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +4 -4
  112. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -4
  113. package/esm2022/lib/permission-manager/permission-manager.module.mjs +5 -5
  114. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +4 -4
  115. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +4 -4
  116. package/esm2022/lib/pipes/content-pipe.module.mjs +5 -5
  117. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +4 -4
  118. package/esm2022/lib/prediction/services/prediction.service.mjs +4 -4
  119. package/esm2022/lib/search/components/empty-search-result.component.mjs +4 -4
  120. package/esm2022/lib/search/components/reset-search.directive.mjs +4 -4
  121. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +4 -4
  122. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +4 -4
  123. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +4 -4
  124. package/esm2022/lib/search/components/search-control.component.mjs +4 -4
  125. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +5 -5
  126. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +4 -4
  127. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -4
  128. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +4 -4
  129. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +4 -4
  130. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -4
  131. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +4 -4
  132. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +4 -4
  133. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +4 -4
  134. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +4 -4
  135. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -4
  136. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +4 -4
  137. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +4 -4
  138. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +4 -4
  139. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +4 -4
  140. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -4
  141. package/esm2022/lib/search/components/search-form/search-form.component.mjs +4 -4
  142. package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -4
  143. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +4 -4
  144. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +4 -4
  145. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +4 -4
  146. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
  147. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +4 -4
  148. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -4
  149. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +4 -4
  150. package/esm2022/lib/search/components/search-text/search-text.component.mjs +4 -4
  151. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +4 -4
  152. package/esm2022/lib/search/components/search.component.mjs +4 -4
  153. package/esm2022/lib/search/search.module.mjs +5 -5
  154. package/esm2022/lib/search/services/search-configuration.service.mjs +4 -4
  155. package/esm2022/lib/search/services/search-facet-filters.service.mjs +4 -4
  156. package/esm2022/lib/search/services/search-filter.service.mjs +4 -4
  157. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +4 -4
  158. package/esm2022/lib/search/services/search-query-builder.service.mjs +4 -4
  159. package/esm2022/lib/search/services/search.service.mjs +4 -4
  160. package/esm2022/lib/search-ai/services/search-ai.service.mjs +4 -4
  161. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +4 -4
  162. package/esm2022/lib/services/alfresco-api.service.mjs +4 -4
  163. package/esm2022/lib/tag/services/tag.service.mjs +4 -4
  164. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +4 -4
  165. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +4 -4
  166. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +4 -4
  167. package/esm2022/lib/tag/tag.module.mjs +5 -5
  168. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +4 -4
  169. package/esm2022/lib/testing/content.testing.module.mjs +5 -5
  170. package/esm2022/lib/tree/components/tree.component.mjs +4 -4
  171. package/esm2022/lib/tree/services/tree.service.mjs +4 -4
  172. package/esm2022/lib/tree/tree.module.mjs +5 -5
  173. package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -4
  174. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +4 -4
  175. package/esm2022/lib/tree-view/services/tree-view.service.mjs +4 -4
  176. package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
  177. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +4 -4
  178. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +4 -4
  179. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +4 -4
  180. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +4 -4
  181. package/esm2022/lib/upload/components/upload-button.component.mjs +4 -4
  182. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +4 -4
  183. package/esm2022/lib/upload/components/upload-version-button.component.mjs +4 -4
  184. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +4 -4
  185. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +4 -4
  186. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +4 -4
  187. package/esm2022/lib/upload/upload.module.mjs +5 -5
  188. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +4 -4
  189. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +5 -5
  190. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +4 -4
  191. package/esm2022/lib/version-manager/content-version.service.mjs +4 -4
  192. package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -4
  193. package/esm2022/lib/version-manager/version-list.component.mjs +4 -4
  194. package/esm2022/lib/version-manager/version-manager.component.mjs +4 -4
  195. package/esm2022/lib/version-manager/version-manager.module.mjs +5 -5
  196. package/esm2022/lib/version-manager/version-upload.component.mjs +4 -4
  197. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +5 -5
  198. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +4 -4
  199. package/fesm2022/adf-content-services.mjs +629 -629
  200. package/fesm2022/adf-content-services.mjs.map +1 -1
  201. package/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.d.ts +1 -1
  202. package/package.json +3 -3
@@ -231,13 +231,13 @@ export class SitesService {
231
231
  deleteSiteGroupMembership(siteId, groupId) {
232
232
  return from(this.sitesApi.deleteSiteGroupMembership(siteId, groupId));
233
233
  }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SitesService, deps: [{ token: i1.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
235
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SitesService, providedIn: 'root' }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SitesService, deps: [{ token: i1.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
235
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SitesService, providedIn: 'root' }); }
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SitesService, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SitesService, decorators: [{
238
238
  type: Injectable,
239
239
  args: [{
240
240
  providedIn: 'root'
241
241
  }]
242
242
  }], ctorParameters: () => [{ type: i1.AlfrescoApiService }] });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29tbW9uL3NlcnZpY2VzL3NpdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFZSCxRQUFRLEVBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBS3pFLE1BQU0sT0FBTyxZQUFZO0lBRXJCLElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtJQUFHLENBQUM7SUFFdEQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsUUFBd0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBWSxFQUFFO1FBQ25CLE1BQU0sY0FBYyxHQUFHO1lBQ25CLFNBQVMsRUFBRSxDQUFDO1lBQ1osT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzFCLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVB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QUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx5QkFBeUIsQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7K0dBMU9RLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIE5vZGUsXG4gICAgU2l0ZUJvZHlDcmVhdGUsXG4gICAgU2l0ZUVudHJ5LFxuICAgIFNpdGVHcm91cEVudHJ5LFxuICAgIFNpdGVHcm91cFBhZ2luZyxcbiAgICBTaXRlTWVtYmVyRW50cnksXG4gICAgU2l0ZU1lbWJlclBhZ2luZyxcbiAgICBTaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGUsXG4gICAgU2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlLFxuICAgIFNpdGVNZW1iZXJzaGlwUmVxdWVzdFdpdGhQZXJzb25QYWdpbmcsXG4gICAgU2l0ZVBhZ2luZyxcbiAgICBTaXRlc0FwaVxufSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaXRlc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX3NpdGVzQXBpOiBTaXRlc0FwaTtcbiAgICBnZXQgc2l0ZXNBcGkoKTogU2l0ZXNBcGkge1xuICAgICAgICB0aGlzLl9zaXRlc0FwaSA9IHRoaXMuX3NpdGVzQXBpID8/IG5ldyBTaXRlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXRlc0FwaTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHNpdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlQm9keSBTaXRlQm9keUNyZWF0ZSB0byBjcmVhdGUgc2l0ZVxuICAgICAqIEByZXR1cm5zIHNpdGUgU2l0ZUVudHJ5XG4gICAgICovXG4gICAgY3JlYXRlU2l0ZShzaXRlQm9keTogU2l0ZUJvZHlDcmVhdGUpOiBPYnNlcnZhYmxlPFNpdGVFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmNyZWF0ZVNpdGUoc2l0ZUJvZHkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgc2l0ZXMgaW4gdGhlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHNpdGVzXG4gICAgICovXG4gICAgZ2V0U2l0ZXMob3B0czogYW55ID0ge30pOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBza2lwQ291bnQ6IDAsXG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgb3B0cyk7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkubGlzdFNpdGVzKHF1ZXJ5T3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRldGFpbHMgZm9yIGEgc2l0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgSUQgb2YgdGhlIHRhcmdldCBzaXRlXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIHNpdGVcbiAgICAgKi9cbiAgICBnZXRTaXRlKHNpdGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlRW50cnkgfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5nZXRTaXRlKHNpdGVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBzaXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBTaXRlIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBwZXJtYW5lbnRGbGFnIFRydWU6IGRlbGV0aW9uIGlzIHBlcm1hbmVudDsgRmFsc2U6IHNpdGUgaXMgbW92ZWQgdG8gdGhlIHRyYXNoXG4gICAgICogQHJldHVybnMgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgZGVsZXRlU2l0ZShzaXRlSWQ6IHN0cmluZywgcGVybWFuZW50RmxhZzogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgb3B0aW9ucy5wZXJtYW5lbnQgPSBwZXJtYW5lbnRGbGFnO1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGUoc2l0ZUlkLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHNpdGUncyBjb250ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBJRCBvZiB0aGUgdGFyZ2V0IHNpdGVcbiAgICAgKiBAcmV0dXJucyBTaXRlIGNvbnRlbnRcbiAgICAgKi9cbiAgICBnZXRTaXRlQ29udGVudChzaXRlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2l0ZUVudHJ5IHwgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNpdGUoc2l0ZUlkLCB7IHJlbGF0aW9uczogWydjb250YWluZXJzJ10gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGEgc2l0ZSdzIG1lbWJlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIElEIG9mIHRoZSB0YXJnZXQgc2l0ZVxuICAgICAqIEByZXR1cm5zIFNpdGUgbWVtYmVyc1xuICAgICAqL1xuICAgIGdldFNpdGVNZW1iZXJzKHNpdGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaXRlRW50cnkgfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2l0ZShzaXRlSWQsIHsgcmVsYXRpb25zOiBbJ21lbWJlcnMnXSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYSBzaXRlJ3MgbWVtYmVycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgSUQgb2YgdGhlIHRhcmdldCBzaXRlXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVycyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlTWVtYmVyUGFnaW5nPlxuICAgICAqL1xuICAgIGxpc3RTaXRlTWVtYmVyc2hpcHMoc2l0ZUlkOiBzdHJpbmcsIG9wdHM6IGFueSk6IE9ic2VydmFibGU8U2l0ZU1lbWJlclBhZ2luZz4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmxpc3RTaXRlTWVtYmVyc2hpcHMoc2l0ZUlkLCBvcHRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9va3MgZm9yIGEgc2l0ZSBpbnNpZGUgdGhlIHBhdGggb2YgYSBOb2RlIGFuZCByZXR1cm5zIGl0cyBndWlkIGlmIGl0IGZpbmRzIG9uZS5cbiAgICAgKiAocmV0dXJuIGFuIGVtcHR5IHN0cmluZyBpZiBubyBzaXRlIGlzIGZvdW5kKVxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSB0byBsb29rIGZvciBwYXJlbnQgc2l0ZVxuICAgICAqIEByZXR1cm5zIFNpdGUgZ3VpZFxuICAgICAqL1xuICAgIGdldFNpdGVOYW1lRnJvbU5vZGVQYXRoKG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICBsZXQgc2l0ZU5hbWUgPSAnJztcbiAgICAgICAgaWYgKG5vZGUucGF0aD8uZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kTm9kZSA9IG5vZGUucGF0aC5lbGVtZW50cy5maW5kKChwYXRoTm9kZSkgPT4gcGF0aE5vZGUubm9kZVR5cGUgPT09ICdzdDpzaXRlJyAmJiBwYXRoTm9kZS5uYW1lICE9PSAnU2l0ZXMnKTtcbiAgICAgICAgICAgIHNpdGVOYW1lID0gZm91bmROb2RlID8gZm91bmROb2RlLm5hbWUgOiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2l0ZU5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBzaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyBTaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHNcbiAgICAgKi9cbiAgICBnZXRTaXRlTWVtYmVyc2hpcFJlcXVlc3RzKG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFNpdGVNZW1iZXJzaGlwUmVxdWVzdFdpdGhQZXJzb25QYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5nZXRTaXRlTWVtYmVyc2hpcFJlcXVlc3RzKG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2l0ZSBtZW1iZXJzaGlwIGZvciBwZXJzb24gKipwZXJzb25JZCoqIG9uIHNpdGUgKipzaXRlSWQqKi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBzaXRlXG4gICAgICogQHBhcmFtIHNpdGVNZW1iZXJzaGlwQm9keUNyZWF0ZSBUaGUgcGVyc29uIHRvIGFkZCBhbmQgdGhlaXIgcm9sZVxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT5cbiAgICAgKi9cbiAgICBjcmVhdGVTaXRlTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlOiBTaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGUsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmNyZWF0ZVNpdGVNZW1iZXJzaGlwKHNpdGVJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlLCBvcHRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGEgc2l0ZSBtZW1iZXJzaGlwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gcGVyc29uSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBwZXJzb24uXG4gICAgICogQHBhcmFtIHNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZSBUaGUgcGVyc29ucyBuZXcgcm9sZVxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT5cbiAgICAgKi9cbiAgICB1cGRhdGVTaXRlTWVtYmVyc2hpcChcbiAgICAgICAgc2l0ZUlkOiBzdHJpbmcsXG4gICAgICAgIHBlcnNvbklkOiBzdHJpbmcsXG4gICAgICAgIHNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZTogU2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlLFxuICAgICAgICBvcHRzPzogYW55XG4gICAgKTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS51cGRhdGVTaXRlTWVtYmVyc2hpcChzaXRlSWQsIHBlcnNvbklkLCBzaXRlTWVtYmVyc2hpcEJvZHlVcGRhdGUsIG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSBzaXRlIG1lbWJlcnNoaXBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBzaXRlLlxuICAgICAqIEBwYXJhbSBwZXJzb25JZCBUaGUgaWRlbnRpZmllciBvZiBhIHBlcnNvbi5cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVTaXRlTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgcGVyc29uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGVNZW1iZXJzaGlwKHNpdGVJZCwgcGVyc29uSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY2NlcHQgc2l0ZSBtZW1iZXJzaGlwIHJlcXVlc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGludml0ZWVJZCBUaGUgaW52aXRlZSB1c2VyIG5hbWUuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgIE51bGwgcmVzcG9uc2Ugbm90aWZ5aW5nIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICAgICAqL1xuICAgIGFwcHJvdmVTaXRlTWVtYmVyc2hpcFJlcXVlc3Qoc2l0ZUlkOiBzdHJpbmcsIGludml0ZWVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyc2hpcFJlcXVlc3RXaXRoUGVyc29uUGFnaW5nPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuYXBwcm92ZVNpdGVNZW1iZXJzaGlwUmVxdWVzdChzaXRlSWQsIGludml0ZWVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlamVjdCBzaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gaW52aXRlZUlkIFRoZSBpbnZpdGVlIHVzZXIgbmFtZS5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyAgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgcmVqZWN0U2l0ZU1lbWJlcnNoaXBSZXF1ZXN0KHNpdGVJZDogc3RyaW5nLCBpbnZpdGVlSWQ6IHN0cmluZywgb3B0cz86IGFueSk6IE9ic2VydmFibGU8U2l0ZU1lbWJlcnNoaXBSZXF1ZXN0V2l0aFBlcnNvblBhZ2luZz4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLnJlamVjdFNpdGVNZW1iZXJzaGlwUmVxdWVzdChzaXRlSWQsIGludml0ZWVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpc3QgZ3JvdXAgbWVtYmVyc2hpcCBmb3Igc2l0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgIE9ic2VydmFibGU8U2l0ZUdyb3VwUGFnaW5nPlxuICAgICAqL1xuICAgIGxpc3RTaXRlR3JvdXBzKHNpdGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlR3JvdXBQYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5saXN0U2l0ZUdyb3VwcyhzaXRlSWQsIG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBzaXRlIG1lbWJlcnNoaXAgZm9yIGdyb3VwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlIFRoZSBHcm91cCB0byBhZGQgYW5kIGl0cyByb2xlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlR3JvdXBFbnRyeT5cbiAgICAgKi9cbiAgICBjcmVhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZDogc3RyaW5nLCBzaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGU6IFNpdGVNZW1iZXJzaGlwQm9keUNyZWF0ZSk6IE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5jcmVhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHNpdGUgbWVtYmVyc2hpcCBvZiBncm91cFxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGdyb3VwSWQgVGhlIGF1dGhvcml0eUlkIG9mIGEgZ3JvdXAuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlR3JvdXBFbnRyeT5cbiAgICAgKi9cbiAgICBnZXRTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZDogc3RyaW5nLCBncm91cElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVHcm91cEVudHJ5PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuZ2V0U2l0ZUdyb3VwTWVtYmVyc2hpcChzaXRlSWQsIGdyb3VwSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgc2l0ZSBtZW1iZXJzaGlwIG9mIGdyb3VwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gZ3JvdXBJZCBUaGUgYXV0aG9yaXR5SWQgb2YgYSBncm91cC5cbiAgICAgKiBAcGFyYW0gc2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlIFRoZSBncm91cCBuZXcgcm9sZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+XG4gICAgICovXG4gICAgdXBkYXRlU2l0ZUdyb3VwTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgZ3JvdXBJZDogc3RyaW5nLCBzaXRlTWVtYmVyc2hpcEJvZHlVcGRhdGU6IFNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZSk6IE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS51cGRhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZCwgZ3JvdXBJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgZ3JvdXAgbWVtYmVyc2hpcCBmb3Igc2l0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGdyb3VwSWQgVGhlIGF1dGhvcml0eUlkIG9mIGEgZ3JvdXAuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgICAqL1xuICAgIGRlbGV0ZVNpdGVHcm91cE1lbWJlcnNoaXAoc2l0ZUlkOiBzdHJpbmcsIGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGVHcm91cE1lbWJlcnNoaXAoc2l0ZUlkLCBncm91cElkKSk7XG4gICAgfVxufVxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29tbW9uL3NlcnZpY2VzL3NpdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFZSCxRQUFRLEVBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBS3pFLE1BQU0sT0FBTyxZQUFZO0lBRXJCLElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtJQUFHLENBQUM7SUFFdEQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsUUFBd0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBWSxFQUFFO1FBQ25CLE1BQU0sY0FBYyxHQUFHO1lBQ25CLFNBQVMsRUFBRSxDQUFDO1lBQ1osT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzFCLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVB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QUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx5QkFBeUIsQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBMU9RLFlBQVk7a0hBQVosWUFBWSxjQUZULE1BQU07OzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIE5vZGUsXG4gICAgU2l0ZUJvZHlDcmVhdGUsXG4gICAgU2l0ZUVudHJ5LFxuICAgIFNpdGVHcm91cEVudHJ5LFxuICAgIFNpdGVHcm91cFBhZ2luZyxcbiAgICBTaXRlTWVtYmVyRW50cnksXG4gICAgU2l0ZU1lbWJlclBhZ2luZyxcbiAgICBTaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGUsXG4gICAgU2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlLFxuICAgIFNpdGVNZW1iZXJzaGlwUmVxdWVzdFdpdGhQZXJzb25QYWdpbmcsXG4gICAgU2l0ZVBhZ2luZyxcbiAgICBTaXRlc0FwaVxufSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaXRlc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX3NpdGVzQXBpOiBTaXRlc0FwaTtcbiAgICBnZXQgc2l0ZXNBcGkoKTogU2l0ZXNBcGkge1xuICAgICAgICB0aGlzLl9zaXRlc0FwaSA9IHRoaXMuX3NpdGVzQXBpID8/IG5ldyBTaXRlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXRlc0FwaTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHNpdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlQm9keSBTaXRlQm9keUNyZWF0ZSB0byBjcmVhdGUgc2l0ZVxuICAgICAqIEByZXR1cm5zIHNpdGUgU2l0ZUVudHJ5XG4gICAgICovXG4gICAgY3JlYXRlU2l0ZShzaXRlQm9keTogU2l0ZUJvZHlDcmVhdGUpOiBPYnNlcnZhYmxlPFNpdGVFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmNyZWF0ZVNpdGUoc2l0ZUJvZHkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgc2l0ZXMgaW4gdGhlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHNpdGVzXG4gICAgICovXG4gICAgZ2V0U2l0ZXMob3B0czogYW55ID0ge30pOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBza2lwQ291bnQ6IDAsXG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgb3B0cyk7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkubGlzdFNpdGVzKHF1ZXJ5T3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRldGFpbHMgZm9yIGEgc2l0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgSUQgb2YgdGhlIHRhcmdldCBzaXRlXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIHNpdGVcbiAgICAgKi9cbiAgICBnZXRTaXRlKHNpdGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlRW50cnkgfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5nZXRTaXRlKHNpdGVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBzaXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBTaXRlIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBwZXJtYW5lbnRGbGFnIFRydWU6IGRlbGV0aW9uIGlzIHBlcm1hbmVudDsgRmFsc2U6IHNpdGUgaXMgbW92ZWQgdG8gdGhlIHRyYXNoXG4gICAgICogQHJldHVybnMgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgZGVsZXRlU2l0ZShzaXRlSWQ6IHN0cmluZywgcGVybWFuZW50RmxhZzogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgb3B0aW9ucy5wZXJtYW5lbnQgPSBwZXJtYW5lbnRGbGFnO1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGUoc2l0ZUlkLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHNpdGUncyBjb250ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBJRCBvZiB0aGUgdGFyZ2V0IHNpdGVcbiAgICAgKiBAcmV0dXJucyBTaXRlIGNvbnRlbnRcbiAgICAgKi9cbiAgICBnZXRTaXRlQ29udGVudChzaXRlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2l0ZUVudHJ5IHwgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNpdGUoc2l0ZUlkLCB7IHJlbGF0aW9uczogWydjb250YWluZXJzJ10gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGEgc2l0ZSdzIG1lbWJlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIElEIG9mIHRoZSB0YXJnZXQgc2l0ZVxuICAgICAqIEByZXR1cm5zIFNpdGUgbWVtYmVyc1xuICAgICAqL1xuICAgIGdldFNpdGVNZW1iZXJzKHNpdGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaXRlRW50cnkgfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2l0ZShzaXRlSWQsIHsgcmVsYXRpb25zOiBbJ21lbWJlcnMnXSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYSBzaXRlJ3MgbWVtYmVycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgSUQgb2YgdGhlIHRhcmdldCBzaXRlXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVycyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlTWVtYmVyUGFnaW5nPlxuICAgICAqL1xuICAgIGxpc3RTaXRlTWVtYmVyc2hpcHMoc2l0ZUlkOiBzdHJpbmcsIG9wdHM6IGFueSk6IE9ic2VydmFibGU8U2l0ZU1lbWJlclBhZ2luZz4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmxpc3RTaXRlTWVtYmVyc2hpcHMoc2l0ZUlkLCBvcHRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9va3MgZm9yIGEgc2l0ZSBpbnNpZGUgdGhlIHBhdGggb2YgYSBOb2RlIGFuZCByZXR1cm5zIGl0cyBndWlkIGlmIGl0IGZpbmRzIG9uZS5cbiAgICAgKiAocmV0dXJuIGFuIGVtcHR5IHN0cmluZyBpZiBubyBzaXRlIGlzIGZvdW5kKVxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgTm9kZSB0byBsb29rIGZvciBwYXJlbnQgc2l0ZVxuICAgICAqIEByZXR1cm5zIFNpdGUgZ3VpZFxuICAgICAqL1xuICAgIGdldFNpdGVOYW1lRnJvbU5vZGVQYXRoKG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICBsZXQgc2l0ZU5hbWUgPSAnJztcbiAgICAgICAgaWYgKG5vZGUucGF0aD8uZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kTm9kZSA9IG5vZGUucGF0aC5lbGVtZW50cy5maW5kKChwYXRoTm9kZSkgPT4gcGF0aE5vZGUubm9kZVR5cGUgPT09ICdzdDpzaXRlJyAmJiBwYXRoTm9kZS5uYW1lICE9PSAnU2l0ZXMnKTtcbiAgICAgICAgICAgIHNpdGVOYW1lID0gZm91bmROb2RlID8gZm91bmROb2RlLm5hbWUgOiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2l0ZU5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgbGlzdCBvZiBzaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyBTaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHNcbiAgICAgKi9cbiAgICBnZXRTaXRlTWVtYmVyc2hpcFJlcXVlc3RzKG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFNpdGVNZW1iZXJzaGlwUmVxdWVzdFdpdGhQZXJzb25QYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5nZXRTaXRlTWVtYmVyc2hpcFJlcXVlc3RzKG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2l0ZSBtZW1iZXJzaGlwIGZvciBwZXJzb24gKipwZXJzb25JZCoqIG9uIHNpdGUgKipzaXRlSWQqKi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBzaXRlXG4gICAgICogQHBhcmFtIHNpdGVNZW1iZXJzaGlwQm9keUNyZWF0ZSBUaGUgcGVyc29uIHRvIGFkZCBhbmQgdGhlaXIgcm9sZVxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT5cbiAgICAgKi9cbiAgICBjcmVhdGVTaXRlTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlOiBTaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGUsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmNyZWF0ZVNpdGVNZW1iZXJzaGlwKHNpdGVJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlLCBvcHRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGEgc2l0ZSBtZW1iZXJzaGlwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gcGVyc29uSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBwZXJzb24uXG4gICAgICogQHBhcmFtIHNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZSBUaGUgcGVyc29ucyBuZXcgcm9sZVxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNpdGVNZW1iZXJFbnRyeT5cbiAgICAgKi9cbiAgICB1cGRhdGVTaXRlTWVtYmVyc2hpcChcbiAgICAgICAgc2l0ZUlkOiBzdHJpbmcsXG4gICAgICAgIHBlcnNvbklkOiBzdHJpbmcsXG4gICAgICAgIHNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZTogU2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlLFxuICAgICAgICBvcHRzPzogYW55XG4gICAgKTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS51cGRhdGVTaXRlTWVtYmVyc2hpcChzaXRlSWQsIHBlcnNvbklkLCBzaXRlTWVtYmVyc2hpcEJvZHlVcGRhdGUsIG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSBzaXRlIG1lbWJlcnNoaXBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXRlSWQgVGhlIGlkZW50aWZpZXIgb2YgYSBzaXRlLlxuICAgICAqIEBwYXJhbSBwZXJzb25JZCBUaGUgaWRlbnRpZmllciBvZiBhIHBlcnNvbi5cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVTaXRlTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgcGVyc29uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGVNZW1iZXJzaGlwKHNpdGVJZCwgcGVyc29uSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY2NlcHQgc2l0ZSBtZW1iZXJzaGlwIHJlcXVlc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGludml0ZWVJZCBUaGUgaW52aXRlZSB1c2VyIG5hbWUuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgIE51bGwgcmVzcG9uc2Ugbm90aWZ5aW5nIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICAgICAqL1xuICAgIGFwcHJvdmVTaXRlTWVtYmVyc2hpcFJlcXVlc3Qoc2l0ZUlkOiBzdHJpbmcsIGludml0ZWVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlTWVtYmVyc2hpcFJlcXVlc3RXaXRoUGVyc29uUGFnaW5nPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuYXBwcm92ZVNpdGVNZW1iZXJzaGlwUmVxdWVzdChzaXRlSWQsIGludml0ZWVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlamVjdCBzaXRlIG1lbWJlcnNoaXAgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gaW52aXRlZUlkIFRoZSBpbnZpdGVlIHVzZXIgbmFtZS5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyAgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgcmVqZWN0U2l0ZU1lbWJlcnNoaXBSZXF1ZXN0KHNpdGVJZDogc3RyaW5nLCBpbnZpdGVlSWQ6IHN0cmluZywgb3B0cz86IGFueSk6IE9ic2VydmFibGU8U2l0ZU1lbWJlcnNoaXBSZXF1ZXN0V2l0aFBlcnNvblBhZ2luZz4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLnJlamVjdFNpdGVNZW1iZXJzaGlwUmVxdWVzdChzaXRlSWQsIGludml0ZWVJZCwgb3B0cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpc3QgZ3JvdXAgbWVtYmVyc2hpcCBmb3Igc2l0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAgICogQHJldHVybnMgIE9ic2VydmFibGU8U2l0ZUdyb3VwUGFnaW5nPlxuICAgICAqL1xuICAgIGxpc3RTaXRlR3JvdXBzKHNpdGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxTaXRlR3JvdXBQYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5saXN0U2l0ZUdyb3VwcyhzaXRlSWQsIG9wdHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBzaXRlIG1lbWJlcnNoaXAgZm9yIGdyb3VwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlIFRoZSBHcm91cCB0byBhZGQgYW5kIGl0cyByb2xlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlR3JvdXBFbnRyeT5cbiAgICAgKi9cbiAgICBjcmVhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZDogc3RyaW5nLCBzaXRlTWVtYmVyc2hpcEJvZHlDcmVhdGU6IFNpdGVNZW1iZXJzaGlwQm9keUNyZWF0ZSk6IE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5jcmVhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5Q3JlYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHNpdGUgbWVtYmVyc2hpcCBvZiBncm91cFxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGdyb3VwSWQgVGhlIGF1dGhvcml0eUlkIG9mIGEgZ3JvdXAuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTaXRlR3JvdXBFbnRyeT5cbiAgICAgKi9cbiAgICBnZXRTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZDogc3RyaW5nLCBncm91cElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVHcm91cEVudHJ5PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuZ2V0U2l0ZUdyb3VwTWVtYmVyc2hpcChzaXRlSWQsIGdyb3VwSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgc2l0ZSBtZW1iZXJzaGlwIG9mIGdyb3VwXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l0ZUlkIFRoZSBpZGVudGlmaWVyIG9mIGEgc2l0ZS5cbiAgICAgKiBAcGFyYW0gZ3JvdXBJZCBUaGUgYXV0aG9yaXR5SWQgb2YgYSBncm91cC5cbiAgICAgKiBAcGFyYW0gc2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlIFRoZSBncm91cCBuZXcgcm9sZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+XG4gICAgICovXG4gICAgdXBkYXRlU2l0ZUdyb3VwTWVtYmVyc2hpcChzaXRlSWQ6IHN0cmluZywgZ3JvdXBJZDogc3RyaW5nLCBzaXRlTWVtYmVyc2hpcEJvZHlVcGRhdGU6IFNpdGVNZW1iZXJzaGlwQm9keVVwZGF0ZSk6IE9ic2VydmFibGU8U2l0ZUdyb3VwRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS51cGRhdGVTaXRlR3JvdXBNZW1iZXJzaGlwKHNpdGVJZCwgZ3JvdXBJZCwgc2l0ZU1lbWJlcnNoaXBCb2R5VXBkYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgZ3JvdXAgbWVtYmVyc2hpcCBmb3Igc2l0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHNpdGVJZCBUaGUgaWRlbnRpZmllciBvZiBhIHNpdGUuXG4gICAgICogQHBhcmFtIGdyb3VwSWQgVGhlIGF1dGhvcml0eUlkIG9mIGEgZ3JvdXAuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx2b2lkPlxuICAgICAqL1xuICAgIGRlbGV0ZVNpdGVHcm91cE1lbWJlcnNoaXAoc2l0ZUlkOiBzdHJpbmcsIGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGVHcm91cE1lbWJlcnNoaXAoc2l0ZUlkLCBncm91cElkKSk7XG4gICAgfVxufVxuIl19
@@ -379,13 +379,13 @@ export class UploadService {
379
379
  return minimatch.match(file.name);
380
380
  }).length === 0);
381
381
  }
382
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
383
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, providedIn: 'root' }); }
382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
383
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UploadService, providedIn: 'root' }); }
384
384
  }
385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, decorators: [{
385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UploadService, decorators: [{
386
386
  type: Injectable,
387
387
  args: [{
388
388
  providedIn: 'root'
389
389
  }]
390
390
  }], ctorParameters: () => [] });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbW1vbi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQWlDLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBa0IsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFekUsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUM7QUFDMUMsTUFBTSwrQkFBK0IsR0FBRyxFQUFFLENBQUM7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUF5QnRCLElBQUksU0FBUztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFD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QUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNsQixDQUFDO0lBQ04sQ0FBQzsrR0FqYVEsYUFBYTttSEFBYixhQUFhLGNBRlYsTUFBTTs7NEZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tICdtaW5pbWF0Y2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBsZXRlRXZlbnQsIEZpbGVVcGxvYWREZWxldGVFdmVudCwgRmlsZVVwbG9hZEVycm9yRXZlbnQsIEZpbGVVcGxvYWRFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9maWxlLmV2ZW50JztcbmltcG9ydCB7IEZpbGVNb2RlbCwgRmlsZVVwbG9hZFByb2dyZXNzLCBGaWxlVXBsb2FkU3RhdHVzIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNjb3ZlcnlBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2Rpc2NvdmVyeS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlQm9keUNyZWF0ZSwgTm9kZXNBcGksIFVwbG9hZEFwaSwgVmVyc2lvbnNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcblxuY29uc3QgTUlOX0NBTkNFTExBQkxFX0ZJTEVfU0laRSA9IDEwMDAwMDA7XG5jb25zdCBNQVhfQ0FOQ0VMTEFCTEVfRklMRV9QRVJDRU5UQUdFID0gNTA7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkU2VydmljZSB7XG4gICAgcXVldWU6IEZpbGVNb2RlbFtdID0gW107XG4gICAgcXVldWVDaGFuZ2VkOiBTdWJqZWN0PEZpbGVNb2RlbFtdPiA9IG5ldyBTdWJqZWN0PEZpbGVNb2RlbFtdPigpO1xuICAgIGZpbGVVcGxvYWQ6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkU3RhcnRpbmc6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkQ2FuY2VsbGVkOiBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZFByb2dyZXNzOiBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZEFib3J0ZWQ6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkRXJyb3I6IFN1YmplY3Q8RmlsZVVwbG9hZEVycm9yRXZlbnQ+ID0gbmV3IFN1YmplY3Q8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZENvbXBsZXRlOiBTdWJqZWN0PEZpbGVVcGxvYWRDb21wbGV0ZUV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRDb21wbGV0ZUV2ZW50PigpO1xuICAgIGZpbGVVcGxvYWREZWxldGVkOiBTdWJqZWN0PEZpbGVVcGxvYWREZWxldGVFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRGVsZXRlRXZlbnQ+KCk7XG4gICAgZmlsZURlbGV0ZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgY2FjaGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBwcml2YXRlIHRvdGFsQ29tcGxldGU6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSB0b3RhbEFib3J0ZWQ6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSB0b3RhbEVycm9yOiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgZXhjbHVkZWRGaWxlTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIGV4Y2x1ZGVkRm9sZGVyc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBtYXRjaGluZ09wdGlvbnM6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBmb2xkZXJNYXRjaGluZ09wdGlvbnM6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBhYm9ydGVkRmlsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgaXNUaHVtYm5haWxHZW5lcmF0aW9uRW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX3VwbG9hZEFwaTogVXBsb2FkQXBpO1xuICAgIGdldCB1cGxvYWRBcGkoKTogVXBsb2FkQXBpIHtcbiAgICAgICAgdGhpcy5fdXBsb2FkQXBpID0gdGhpcy5fdXBsb2FkQXBpID8/IG5ldyBVcGxvYWRBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBsb2FkQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92ZXJzaW9uc0FwaTogVmVyc2lvbnNBcGk7XG4gICAgZ2V0IHZlcnNpb25zQXBpKCk6IFZlcnNpb25zQXBpIHtcbiAgICAgICAgdGhpcy5fdmVyc2lvbnNBcGkgPSB0aGlzLl92ZXJzaW9uc0FwaSA/PyBuZXcgVmVyc2lvbnNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdmVyc2lvbnNBcGk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZGlzY292ZXJ5QXBpU2VydmljZSA9IGluamVjdChEaXNjb3ZlcnlBcGlTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc2NvdmVyeUFwaVNlcnZpY2UuZWNtUHJvZHVjdEluZm8kLnBpcGUoZmlsdGVyKChpbmZvKSA9PiAhIWluZm8pKS5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNUaHVtYm5haWxHZW5lcmF0aW9uRW5hYmxlZCA9IHN0YXR1cy5pc1RodW1ibmFpbEdlbmVyYXRpb25FbmFibGVkO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjbGVhckNhY2hlKCkge1xuICAgICAgICB0aGlzLmNhY2hlID0ge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgdGhyZWFkcyBmb3IgdXBsb2FkaW5nLlxuICAgICAqXG4gICAgICogQHJldHVybnMgTnVtYmVyIG9mIGNvbmN1cnJlbnQgdGhyZWFkcyAoZGVmYXVsdCAxKVxuICAgICAqL1xuICAgIGdldFRocmVhZHNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxudW1iZXI+KCd1cGxvYWQudGhyZWFkcycsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBzZXJ2aWNlIHN0aWxsIGhhcyBmaWxlcyB1cGxvYWRpbmcgb3IgYXdhaXRpbmcgdXBsb2FkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBmaWxlcyBpbiB0aGUgcXVldWUgYXJlIHN0aWxsIHVwbG9hZGluZywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNVcGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbmlzaGVkRmlsZVN0YXRlcyA9IFtcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuQ29tcGxldGUsXG4gICAgICAgICAgICBGaWxlVXBsb2FkU3RhdHVzLkNhbmNlbGxlZCxcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuQWJvcnRlZCxcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuRXJyb3IsXG4gICAgICAgICAgICBGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWRcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWUucmVkdWNlKFxuICAgICAgICAgICAgKHN0aWxsVXBsb2FkaW5nOiBib29sZWFuLCBjdXJyZW50RmlsZTogRmlsZU1vZGVsKSA9PiBzdGlsbFVwbG9hZGluZyB8fCBmaW5pc2hlZEZpbGVTdGF0ZXMuaW5kZXhPZihjdXJyZW50RmlsZS5zdGF0dXMpID09PSAtMSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmlsZSBRdWV1ZVxuICAgICAqXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgZmlsZXMgdGhhdCBmb3JtIHRoZSBxdWV1ZVxuICAgICAqL1xuICAgIGdldFF1ZXVlKCk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBmaWxlcyB0byB0aGUgdXBsb2FkaW5nIHF1ZXVlIHRvIGJlIHVwbG9hZGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZXMgT25lIG9yIG1vcmUgc2VwYXJhdGUgcGFyYW1ldGVycyBvciBhbiBhcnJheSBvZiBmaWxlcyB0byBxdWV1ZVxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGZpbGVzIHRoYXQgd2VyZSBub3QgYmxvY2tlZCBmcm9tIHVwbG9hZCBieSB0aGUgaWdub3JlIGxpc3RcbiAgICAgKi9cbiAgICBhZGRUb1F1ZXVlKC4uLmZpbGVzOiBGaWxlTW9kZWxbXSk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZEZpbGVzID0gZmlsZXMuZmlsdGVyKChjdXJyZW50RmlsZSkgPT4gdGhpcy5maWx0ZXJFbGVtZW50KGN1cnJlbnRGaWxlKSk7XG4gICAgICAgIHRoaXMucXVldWUgPSB0aGlzLnF1ZXVlLmNvbmNhdChhbGxvd2VkRmlsZXMpO1xuICAgICAgICB0aGlzLnF1ZXVlQ2hhbmdlZC5uZXh0KHRoaXMucXVldWUpO1xuICAgICAgICByZXR1cm4gYWxsb3dlZEZpbGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGFsbCB0aGUgZmlsZXMgaW4gdGhlIHF1ZXVlIHRoYXQgYXJlIG5vdCB5ZXQgdXBsb2FkZWQgYW5kIHVwbG9hZHMgdGhlbSBpbnRvIHRoZSBkaXJlY3RvcnkgZm9sZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Y2Nlc3NFbWl0dGVyIEVtaXR0ZXIgdG8gaW52b2tlIG9uIGZpbGUgc3VjY2VzcyBzdGF0dXMgY2hhbmdlXG4gICAgICogQHBhcmFtIGVycm9yRW1pdHRlciBFbWl0dGVyIHRvIGludm9rZSBvbiBmaWxlIGVycm9yIHN0YXR1cyBjaGFuZ2VcbiAgICAgKi9cbiAgICB1cGxvYWRGaWxlc0luVGhlUXVldWUoc3VjY2Vzc0VtaXR0ZXI/OiBFdmVudEVtaXR0ZXI8YW55PiwgZXJyb3JFbWl0dGVyPzogRXZlbnRFbWl0dGVyPGFueT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLmdldEZpbGVzVG9VcGxvYWQoKTtcblxuICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZFN0YXJ0aW5nKGZpbGUpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuYmVnaW5VcGxvYWQoZmlsZSwgc3VjY2Vzc0VtaXR0ZXIsIGVycm9yRW1pdHRlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZVtmaWxlLm5hbWVdID0gcHJvbWlzZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGxvYWRGaWxlc0luVGhlUXVldWUoc3VjY2Vzc0VtaXR0ZXIsIGVycm9yRW1pdHRlciksIDEwMCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHByb21pc2UubmV4dCA9IG5leHQ7XG5cbiAgICAgICAgICAgICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICgpID0+IG5leHQoKSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4gbmV4dCgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbmNlbHMgdXBsb2FkaW5nIG9mIGZpbGVzLlxuICAgICAqIElmIHRoZSBmaWxlIGlzIHNtYWxsZXIgdGhhbiAxIE1CIHRoZSBmaWxlIHdpbGwgYmUgdXBsb2FkZWQgYW5kIHRoZW4gdGhlIG5vZGUgZGVsZXRlZFxuICAgICAqIHRvIHByZXZlbnQgaGF2aW5nIGZpbGVzIHRoYXQgd2VyZSBhYm9ydGVkIGJ1dCBzdGlsbCB1cGxvYWRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlcyBPbmUgb3IgbW9yZSBzZXBhcmF0ZSBwYXJhbWV0ZXJzIG9yIGFuIGFycmF5IG9mIGZpbGVzIHNwZWNpZnlpbmcgdXBsb2FkcyB0byBjYW5jZWxcbiAgICAgKi9cbiAgICBjYW5jZWxVcGxvYWQoLi4uZmlsZXM6IEZpbGVNb2RlbFtdKSB7XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmNhY2hlW2ZpbGUubmFtZV07XG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2F2ZVRvQWJvcnRGaWxlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2UuYWJvcnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFib3J0ZWRGaWxlID0gZmlsZS5uYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jYWNoZVtmaWxlLm5hbWVdO1xuICAgICAgICAgICAgICAgIHByb21pc2UubmV4dCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZXJmb3JtQWN0aW9uID0gdGhpcy5nZXRBY3Rpb24oZmlsZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGVyZm9ybUFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBwZXJmb3JtQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2xlYXJzIHRoZSB1cGxvYWQgcXVldWUgKi9cbiAgICBjbGVhclF1ZXVlKCkge1xuICAgICAgICB0aGlzLnF1ZXVlID0gW107XG4gICAgICAgIHRoaXMudG90YWxDb21wbGV0ZSA9IDA7XG4gICAgICAgIHRoaXMudG90YWxBYm9ydGVkID0gMDtcbiAgICAgICAgdGhpcy50b3RhbEVycm9yID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIHVwbG9hZCBwcm9taXNlIGZvciBhIGZpbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBUaGUgdGFyZ2V0IGZpbGVcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIHVwbG9hZCBpcyBzdWNjZXNzZnVsIG9yIGVycm9yIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGdldFVwbG9hZFByb21pc2UoZmlsZTogRmlsZU1vZGVsKTogYW55IHtcbiAgICAgICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgICAgICAgaW5jbHVkZTogWydhbGxvd2FibGVPcGVyYXRpb25zJ11cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5pc1RodW1ibmFpbEdlbmVyYXRpb25FbmFibGVkKSB7XG4gICAgICAgICAgICBvcHRzLnJlbmRpdGlvbnMgPSAnZG9jbGliJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLm9wdGlvbnM/LnZlcnNpb25pbmdFbmFibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9wdHMudmVyc2lvbmluZ0VuYWJsZWQgPSBmaWxlLm9wdGlvbnMudmVyc2lvbmluZ0VuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZS5vcHRpb25zLm5ld1ZlcnNpb24gPT09IHRydWUpIHtcbiAgICAgICAgICAgIG9wdHMub3ZlcndyaXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIG9wdHMubWFqb3JWZXJzaW9uID0gZmlsZS5vcHRpb25zLm1ham9yVmVyc2lvbjtcbiAgICAgICAgICAgIG9wdHMuY29tbWVudCA9IGZpbGUub3B0aW9ucy5jb21tZW50O1xuICAgICAgICAgICAgb3B0cy5uYW1lID0gZmlsZS5uYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0cy5hdXRvUmVuYW1lID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLm9wdGlvbnMubm9kZVR5cGUpIHtcbiAgICAgICAgICAgIG9wdHMubm9kZVR5cGUgPSBmaWxlLm9wdGlvbnMubm9kZVR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubm9kZXNBcGkudXBkYXRlTm9kZUNvbnRlbnQoZmlsZS5pZCwgZmlsZS5maWxlIGFzIGFueSwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlQm9keTogTm9kZUJvZHlDcmVhdGUgPSB7IC4uLmZpbGUub3B0aW9ucywgbmFtZTogZmlsZS5uYW1lLCBub2RlVHlwZTogZmlsZS5vcHRpb25zLm5vZGVUeXBlIH07XG4gICAgICAgICAgICBkZWxldGUgbm9kZUJvZHlbJ3ZlcnNpb25pbmdFbmFibGVkJ107XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEFwaS51cGxvYWRGaWxlKGZpbGUuZmlsZSwgZmlsZS5vcHRpb25zLnBhdGgsIGZpbGUub3B0aW9ucy5wYXJlbnRJZCwgbm9kZUJvZHksIG9wdHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaWxlc1RvVXBsb2FkKCk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgY2FjaGVkID0gT2JqZWN0LmtleXModGhpcy5jYWNoZSk7XG4gICAgICAgIGNvbnN0IHRocmVhZHNDb3VudCA9IHRoaXMuZ2V0VGhyZWFkc0NvdW50KCk7XG5cbiAgICAgICAgaWYgKGNhY2hlZC5sZW5ndGggPj0gdGhyZWFkc0NvdW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMucXVldWVcbiAgICAgICAgICAgIC5maWx0ZXIoKHRvVXBsb2FkKSA9PiAhY2FjaGVkLmluY2x1ZGVzKHRvVXBsb2FkLm5hbWUpICYmIHRvVXBsb2FkLnN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5QZW5kaW5nKVxuICAgICAgICAgICAgLnNsaWNlKDAsIHRocmVhZHNDb3VudCk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmVnaW5VcGxvYWQoZmlsZTogRmlsZU1vZGVsLCBzdWNjZXNzRW1pdHRlcj86IEV2ZW50RW1pdHRlcjxhbnk+LCBlcnJvckVtaXR0ZXI/OiBFdmVudEVtaXR0ZXI8YW55Pik6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmdldFVwbG9hZFByb21pc2UoZmlsZSk7XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAgIC5vbigncHJvZ3Jlc3MnLCAocHJvZ3Jlc3M6IEZpbGVVcGxvYWRQcm9ncmVzcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25VcGxvYWRQcm9ncmVzcyhmaWxlLCBwcm9ncmVzcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdhYm9ydCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkQWJvcnRlZChmaWxlKTtcbiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc0VtaXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0VtaXR0ZXIuZW1pdCh7IHZhbHVlOiAnRmlsZSBhYm9ydGVkJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkRXJyb3IoZmlsZSwgZXJyKTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JFbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRW1pdHRlci5lbWl0KHsgdmFsdWU6ICdFcnJvciBmaWxlIHVwbG9hZGVkJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdzdWNjZXNzJywgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hYm9ydGVkRmlsZSA9PT0gZmlsZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25VcGxvYWRBYm9ydGVkKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZS5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUFib3J0ZWROb2RlKGRhdGEuZW50cnkuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVBYm9ydGVkTm9kZVZlcnNpb24oZGF0YS5lbnRyeS5pZCwgZGF0YS5lbnRyeS5wcm9wZXJ0aWVzWydjbTp2ZXJzaW9uTGFiZWwnXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3NFbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzRW1pdHRlci5lbWl0KHsgdmFsdWU6ICdGaWxlIGRlbGV0ZWQnIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZENvbXBsZXRlKGZpbGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc0VtaXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NFbWl0dGVyLmVtaXQoeyB2YWx1ZTogZGF0YSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge30pO1xuXG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRTdGFydGluZyhmaWxlOiBGaWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gRmlsZVVwbG9hZFN0YXR1cy5TdGFydGluZztcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEZpbGVVcGxvYWRFdmVudChmaWxlLCBGaWxlVXBsb2FkU3RhdHVzLlN0YXJ0aW5nKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZFN0YXJ0aW5nLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblVwbG9hZFByb2dyZXNzKGZpbGU6IEZpbGVNb2RlbCwgcHJvZ3Jlc3M6IEZpbGVVcGxvYWRQcm9ncmVzcyk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLlByb2dyZXNzO1xuXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBGaWxlVXBsb2FkRXZlbnQoZmlsZSwgRmlsZVVwbG9hZFN0YXR1cy5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRQcm9ncmVzcy5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRFcnJvcihmaWxlOiBGaWxlTW9kZWwsIGVycm9yOiB7IHN0YXR1cz86IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICBmaWxlLmVycm9yQ29kZSA9IGVycm9yPy5zdGF0dXM7XG4gICAgICAgICAgICBmaWxlLnN0YXR1cyA9IEZpbGVVcGxvYWRTdGF0dXMuRXJyb3I7XG4gICAgICAgICAgICB0aGlzLnRvdGFsRXJyb3IrKztcblxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZEVycm9yRXZlbnQoZmlsZSwgZXJyb3IsIHRoaXMudG90YWxFcnJvcik7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFcnJvci5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRDb21wbGV0ZShmaWxlOiBGaWxlTW9kZWwsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkNvbXBsZXRlO1xuICAgICAgICAgICAgZmlsZS5kYXRhID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMudG90YWxDb21wbGV0ZSsrO1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZENvbXBsZXRlRXZlbnQoZmlsZSwgdGhpcy50b3RhbENvbXBsZXRlLCBkYXRhLCB0aGlzLnRvdGFsQWJvcnRlZCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRDb21wbGV0ZS5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRBYm9ydGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkFib3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQWJvcnRlZCsrO1xuXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBGaWxlVXBsb2FkRXZlbnQoZmlsZSwgRmlsZVVwbG9hZFN0YXR1cy5BYm9ydGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZEFib3J0ZWQubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVXBsb2FkQ2FuY2VsbGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkNhbmNlbGxlZDtcblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZEV2ZW50KGZpbGUsIEZpbGVVcGxvYWRTdGF0dXMuQ2FuY2VsbGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZENhbmNlbGxlZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWREZWxldGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQ29tcGxldGUtLTtcblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZERlbGV0ZUV2ZW50KGZpbGUsIHRoaXMudG90YWxDb21wbGV0ZSk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWREZWxldGVkLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3Rpb24oZmlsZTogRmlsZU1vZGVsKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICAgICAgICBbRmlsZVVwbG9hZFN0YXR1cy5QZW5kaW5nXTogKCkgPT4gdGhpcy5vblVwbG9hZENhbmNlbGxlZChmaWxlKSxcbiAgICAgICAgICAgIFtGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWRdOiAoKSA9PiB0aGlzLm9uVXBsb2FkRGVsZXRlZChmaWxlKSxcbiAgICAgICAgICAgIFtGaWxlVXBsb2FkU3RhdHVzLkVycm9yXTogKCkgPT4gdGhpcy5vblVwbG9hZEVycm9yKGZpbGUsIG51bGwpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGFjdGlvbnNbZmlsZS5zdGF0dXNdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlQWJvcnRlZE5vZGUobm9kZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ub2Rlc0FwaS5kZWxldGVOb2RlKG5vZGVJZCwgeyBwZXJtYW5lbnQ6IHRydWUgfSkudGhlbigoKSA9PiAodGhpcy5hYm9ydGVkRmlsZSA9IHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlQWJvcnRlZE5vZGVWZXJzaW9uKG5vZGVJZDogc3RyaW5nLCB2ZXJzaW9uSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZlcnNpb25zQXBpLmRlbGV0ZVZlcnNpb24obm9kZUlkLCB2ZXJzaW9uSWQpLnRoZW4oKCkgPT4gKHRoaXMuYWJvcnRlZEZpbGUgPSB1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2F2ZVRvQWJvcnRGaWxlKGZpbGU6IEZpbGVNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmlsZS5zaXplID4gTUlOX0NBTkNFTExBQkxFX0ZJTEVfU0laRSAmJiBmaWxlLnByb2dyZXNzLnBlcmNlbnQgPCBNQVhfQ0FOQ0VMTEFCTEVfRklMRV9QRVJDRU5UQUdFO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRWxlbWVudChmaWxlOiBGaWxlTW9kZWwpIHtcbiAgICAgICAgdGhpcy5leGNsdWRlZEZpbGVMaXN0ID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxzdHJpbmdbXT4oJ2ZpbGVzLmV4Y2x1ZGVkJyk7XG4gICAgICAgIHRoaXMuZXhjbHVkZWRGb2xkZXJzTGlzdCA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8c3RyaW5nW10+KCdmb2xkZXJzLmV4Y2x1ZGVkJyk7XG4gICAgICAgIGxldCBpc0FsbG93ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmV4Y2x1ZGVkRmlsZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMubWF0Y2hpbmdPcHRpb25zID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldCgnZmlsZXMubWF0Y2gtb3B0aW9ucycpO1xuICAgICAgICAgICAgaXNBbGxvd2VkID0gdGhpcy5pc0ZpbGVOYW1lQWxsb3dlZChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FsbG93ZWQgJiYgdGhpcy5leGNsdWRlZEZvbGRlcnNMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmZvbGRlck1hdGNoaW5nT3B0aW9ucyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQoJ2ZvbGRlcnMubWF0Y2gtb3B0aW9ucycpO1xuICAgICAgICAgICAgaXNBbGxvd2VkID0gdGhpcy5pc1BhcmVudEZvbGRlckFsbG93ZWQoZmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQWxsb3dlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFyZW50Rm9sZGVyQWxsb3dlZChmaWxlOiBGaWxlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzQWxsb3dlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlOiBhbnkgPSBmaWxlLmZpbGU7XG4gICAgICAgIGNvbnN0IGZpbGVSZWxhdGl2ZVBhdGggPSBjdXJyZW50RmlsZS53ZWJraXRSZWxhdGl2ZVBhdGggPyBjdXJyZW50RmlsZS53ZWJraXRSZWxhdGl2ZVBhdGggOiBmaWxlLm9wdGlvbnMucGF0aDtcbiAgICAgICAgaWYgKGN1cnJlbnRGaWxlICYmIGZpbGVSZWxhdGl2ZVBhdGgpIHtcbiAgICAgICAgICAgIGlzQWxsb3dlZCA9XG4gICAgICAgICAgICAgICAgdGhpcy5leGNsdWRlZEZvbGRlcnNMaXN0LmZpbHRlcigoZm9sZGVyVG9FeGNsdWRlKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWxlUmVsYXRpdmVQYXRoLnNwbGl0KCcvJykuc29tZSgocGF0aEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbmltYXRjaCA9IG5ldyBNaW5pbWF0Y2goZm9sZGVyVG9FeGNsdWRlLCB0aGlzLmZvbGRlck1hdGNoaW5nT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWluaW1hdGNoLm1hdGNoKHBhdGhFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBbGxvd2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlTmFtZUFsbG93ZWQoZmlsZTogRmlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmV4Y2x1ZGVkRmlsZUxpc3QuZmlsdGVyKChwYXR0ZXJuKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluaW1hdGNoID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCB0aGlzLm1hdGNoaW5nT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pbmltYXRjaC5tYXRjaChmaWxlLm5hbWUpO1xuICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbW1vbi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQWlDLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBa0IsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFekUsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUM7QUFDMUMsTUFBTSwrQkFBK0IsR0FBRyxFQUFFLENBQUM7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUF5QnRCLElBQUksU0FBUztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFJLFFBQVE7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQU1EO1FBN0NBLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQXlCLElBQUksT0FBTyxFQUFlLENBQUM7UUFDaEUsZUFBVSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUN0RSx1QkFBa0IsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDOUUsd0JBQW1CLEdBQTZCLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQy9FLHVCQUFrQixHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM5RSxzQkFBaUIsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFDN0Usb0JBQWUsR0FBa0MsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFDckYsdUJBQWtCLEdBQXFDLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQzlGLHNCQUFpQixHQUFtQyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN6RixnQkFBVyxHQUFvQixJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRTdDLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBQ25DLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLHdCQUFtQixHQUFhLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFRLElBQUksQ0FBQztRQUM1QiwwQkFBcUIsR0FBUSxJQUFJLENBQUM7UUFzQmhDLGVBQVUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUd4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUM3RixJQUFJLENBQUMsNEJBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQVMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1AsTUFBTSxrQkFBa0IsR0FBRztZQUN2QixnQkFBZ0IsQ0FBQyxRQUFRO1lBQ3pCLGdCQUFnQixDQUFDLFNBQVM7WUFDMUIsZ0JBQWdCLENBQUMsT0FBTztZQUN4QixnQkFBZ0IsQ0FBQyxLQUFLO1lBQ3RCLGdCQUFnQixDQUFDLE9BQU87U0FDM0IsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3BCLENBQUMsY0FBdUIsRUFBRSxXQUFzQixFQUFFLEVBQUUsQ0FBQyxjQUFjLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDNUgsS0FBSyxDQUNSLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLEdBQUcsS0FBa0I7UUFDNUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLGNBQWtDLEVBQUUsWUFBZ0M7UUFDdEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFdEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUVoQyxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7b0JBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BGLENBQUMsQ0FBQztnQkFFRixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFFcEIsT0FBTyxDQUFDLElBQUksQ0FDUixHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDWixHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FDZixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxDQUFDLEdBQUcsS0FBa0I7UUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFM0MsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDaEIsYUFBYSxFQUFFLENBQUM7Z0JBQ3BCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLFVBQVU7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFlO1FBQzVCLE1BQU0sSUFBSSxHQUFRO1lBQ2QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7U0FDbkMsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFFBQVEsR0FBbUIsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkcsT0FBTyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUVyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUU1QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksWUFBWSxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDbkIsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2FBQ3JHLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFNUIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFlLEVBQUUsY0FBa0MsRUFBRSxZQUFnQztRQUNyRyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsT0FBTzthQUNGLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUE0QixFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDakIsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDZixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUMzRixDQUFDO2dCQUNELElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNqQixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3BDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQWUsRUFBRSxRQUE0QjtRQUNsRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7WUFFeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBZSxFQUFFLEtBQTBCO1FBQzdELElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQWUsRUFBRSxJQUFTO1FBQy9DLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztZQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFlO1FBQ25DLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFlO1FBQ3JDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUV6QyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFlO1FBQ25DLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBZTtRQUM3QixNQUFNLE9BQU8sR0FBRztZQUNaLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUM5RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzVELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQ2pFLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsK0JBQStCLENBQUM7SUFDNUcsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFlO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFXLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQVcsa0JBQWtCLENBQUMsQ0FBQztRQUNuRixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2hGLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFlO1FBQ3pDLElBQUksU0FBUyxHQUFZLElBQUksQ0FBQztRQUM5QixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzdHLElBQUksV0FBVyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbEMsU0FBUztnQkFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDaEQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzdFLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZTtRQUNyQyxPQUFPLENBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0QsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNsQixDQUFDO0lBQ04sQ0FBQzs4R0FqYVEsYUFBYTtrSEFBYixhQUFhLGNBRlYsTUFBTTs7MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tICdtaW5pbWF0Y2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBsZXRlRXZlbnQsIEZpbGVVcGxvYWREZWxldGVFdmVudCwgRmlsZVVwbG9hZEVycm9yRXZlbnQsIEZpbGVVcGxvYWRFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9maWxlLmV2ZW50JztcbmltcG9ydCB7IEZpbGVNb2RlbCwgRmlsZVVwbG9hZFByb2dyZXNzLCBGaWxlVXBsb2FkU3RhdHVzIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNjb3ZlcnlBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2Rpc2NvdmVyeS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlQm9keUNyZWF0ZSwgTm9kZXNBcGksIFVwbG9hZEFwaSwgVmVyc2lvbnNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcblxuY29uc3QgTUlOX0NBTkNFTExBQkxFX0ZJTEVfU0laRSA9IDEwMDAwMDA7XG5jb25zdCBNQVhfQ0FOQ0VMTEFCTEVfRklMRV9QRVJDRU5UQUdFID0gNTA7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkU2VydmljZSB7XG4gICAgcXVldWU6IEZpbGVNb2RlbFtdID0gW107XG4gICAgcXVldWVDaGFuZ2VkOiBTdWJqZWN0PEZpbGVNb2RlbFtdPiA9IG5ldyBTdWJqZWN0PEZpbGVNb2RlbFtdPigpO1xuICAgIGZpbGVVcGxvYWQ6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkU3RhcnRpbmc6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkQ2FuY2VsbGVkOiBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZFByb2dyZXNzOiBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZEFib3J0ZWQ6IFN1YmplY3Q8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRFdmVudD4oKTtcbiAgICBmaWxlVXBsb2FkRXJyb3I6IFN1YmplY3Q8RmlsZVVwbG9hZEVycm9yRXZlbnQ+ID0gbmV3IFN1YmplY3Q8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG4gICAgZmlsZVVwbG9hZENvbXBsZXRlOiBTdWJqZWN0PEZpbGVVcGxvYWRDb21wbGV0ZUV2ZW50PiA9IG5ldyBTdWJqZWN0PEZpbGVVcGxvYWRDb21wbGV0ZUV2ZW50PigpO1xuICAgIGZpbGVVcGxvYWREZWxldGVkOiBTdWJqZWN0PEZpbGVVcGxvYWREZWxldGVFdmVudD4gPSBuZXcgU3ViamVjdDxGaWxlVXBsb2FkRGVsZXRlRXZlbnQ+KCk7XG4gICAgZmlsZURlbGV0ZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgY2FjaGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBwcml2YXRlIHRvdGFsQ29tcGxldGU6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSB0b3RhbEFib3J0ZWQ6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSB0b3RhbEVycm9yOiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgZXhjbHVkZWRGaWxlTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIGV4Y2x1ZGVkRm9sZGVyc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBtYXRjaGluZ09wdGlvbnM6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBmb2xkZXJNYXRjaGluZ09wdGlvbnM6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBhYm9ydGVkRmlsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgaXNUaHVtYm5haWxHZW5lcmF0aW9uRW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX3VwbG9hZEFwaTogVXBsb2FkQXBpO1xuICAgIGdldCB1cGxvYWRBcGkoKTogVXBsb2FkQXBpIHtcbiAgICAgICAgdGhpcy5fdXBsb2FkQXBpID0gdGhpcy5fdXBsb2FkQXBpID8/IG5ldyBVcGxvYWRBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBsb2FkQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92ZXJzaW9uc0FwaTogVmVyc2lvbnNBcGk7XG4gICAgZ2V0IHZlcnNpb25zQXBpKCk6IFZlcnNpb25zQXBpIHtcbiAgICAgICAgdGhpcy5fdmVyc2lvbnNBcGkgPSB0aGlzLl92ZXJzaW9uc0FwaSA/PyBuZXcgVmVyc2lvbnNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdmVyc2lvbnNBcGk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZGlzY292ZXJ5QXBpU2VydmljZSA9IGluamVjdChEaXNjb3ZlcnlBcGlTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc2NvdmVyeUFwaVNlcnZpY2UuZWNtUHJvZHVjdEluZm8kLnBpcGUoZmlsdGVyKChpbmZvKSA9PiAhIWluZm8pKS5zdWJzY3JpYmUoKHsgc3RhdHVzIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNUaHVtYm5haWxHZW5lcmF0aW9uRW5hYmxlZCA9IHN0YXR1cy5pc1RodW1ibmFpbEdlbmVyYXRpb25FbmFibGVkO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjbGVhckNhY2hlKCkge1xuICAgICAgICB0aGlzLmNhY2hlID0ge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgdGhyZWFkcyBmb3IgdXBsb2FkaW5nLlxuICAgICAqXG4gICAgICogQHJldHVybnMgTnVtYmVyIG9mIGNvbmN1cnJlbnQgdGhyZWFkcyAoZGVmYXVsdCAxKVxuICAgICAqL1xuICAgIGdldFRocmVhZHNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxudW1iZXI+KCd1cGxvYWQudGhyZWFkcycsIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBzZXJ2aWNlIHN0aWxsIGhhcyBmaWxlcyB1cGxvYWRpbmcgb3IgYXdhaXRpbmcgdXBsb2FkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBmaWxlcyBpbiB0aGUgcXVldWUgYXJlIHN0aWxsIHVwbG9hZGluZywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNVcGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbmlzaGVkRmlsZVN0YXRlcyA9IFtcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuQ29tcGxldGUsXG4gICAgICAgICAgICBGaWxlVXBsb2FkU3RhdHVzLkNhbmNlbGxlZCxcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuQWJvcnRlZCxcbiAgICAgICAgICAgIEZpbGVVcGxvYWRTdGF0dXMuRXJyb3IsXG4gICAgICAgICAgICBGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWRcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWUucmVkdWNlKFxuICAgICAgICAgICAgKHN0aWxsVXBsb2FkaW5nOiBib29sZWFuLCBjdXJyZW50RmlsZTogRmlsZU1vZGVsKSA9PiBzdGlsbFVwbG9hZGluZyB8fCBmaW5pc2hlZEZpbGVTdGF0ZXMuaW5kZXhPZihjdXJyZW50RmlsZS5zdGF0dXMpID09PSAtMSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmlsZSBRdWV1ZVxuICAgICAqXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgZmlsZXMgdGhhdCBmb3JtIHRoZSBxdWV1ZVxuICAgICAqL1xuICAgIGdldFF1ZXVlKCk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBmaWxlcyB0byB0aGUgdXBsb2FkaW5nIHF1ZXVlIHRvIGJlIHVwbG9hZGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZXMgT25lIG9yIG1vcmUgc2VwYXJhdGUgcGFyYW1ldGVycyBvciBhbiBhcnJheSBvZiBmaWxlcyB0byBxdWV1ZVxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGZpbGVzIHRoYXQgd2VyZSBub3QgYmxvY2tlZCBmcm9tIHVwbG9hZCBieSB0aGUgaWdub3JlIGxpc3RcbiAgICAgKi9cbiAgICBhZGRUb1F1ZXVlKC4uLmZpbGVzOiBGaWxlTW9kZWxbXSk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZEZpbGVzID0gZmlsZXMuZmlsdGVyKChjdXJyZW50RmlsZSkgPT4gdGhpcy5maWx0ZXJFbGVtZW50KGN1cnJlbnRGaWxlKSk7XG4gICAgICAgIHRoaXMucXVldWUgPSB0aGlzLnF1ZXVlLmNvbmNhdChhbGxvd2VkRmlsZXMpO1xuICAgICAgICB0aGlzLnF1ZXVlQ2hhbmdlZC5uZXh0KHRoaXMucXVldWUpO1xuICAgICAgICByZXR1cm4gYWxsb3dlZEZpbGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGFsbCB0aGUgZmlsZXMgaW4gdGhlIHF1ZXVlIHRoYXQgYXJlIG5vdCB5ZXQgdXBsb2FkZWQgYW5kIHVwbG9hZHMgdGhlbSBpbnRvIHRoZSBkaXJlY3RvcnkgZm9sZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Y2Nlc3NFbWl0dGVyIEVtaXR0ZXIgdG8gaW52b2tlIG9uIGZpbGUgc3VjY2VzcyBzdGF0dXMgY2hhbmdlXG4gICAgICogQHBhcmFtIGVycm9yRW1pdHRlciBFbWl0dGVyIHRvIGludm9rZSBvbiBmaWxlIGVycm9yIHN0YXR1cyBjaGFuZ2VcbiAgICAgKi9cbiAgICB1cGxvYWRGaWxlc0luVGhlUXVldWUoc3VjY2Vzc0VtaXR0ZXI/OiBFdmVudEVtaXR0ZXI8YW55PiwgZXJyb3JFbWl0dGVyPzogRXZlbnRFbWl0dGVyPGFueT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLmdldEZpbGVzVG9VcGxvYWQoKTtcblxuICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZFN0YXJ0aW5nKGZpbGUpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuYmVnaW5VcGxvYWQoZmlsZSwgc3VjY2Vzc0VtaXR0ZXIsIGVycm9yRW1pdHRlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZVtmaWxlLm5hbWVdID0gcHJvbWlzZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGxvYWRGaWxlc0luVGhlUXVldWUoc3VjY2Vzc0VtaXR0ZXIsIGVycm9yRW1pdHRlciksIDEwMCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHByb21pc2UubmV4dCA9IG5leHQ7XG5cbiAgICAgICAgICAgICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICgpID0+IG5leHQoKSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4gbmV4dCgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbmNlbHMgdXBsb2FkaW5nIG9mIGZpbGVzLlxuICAgICAqIElmIHRoZSBmaWxlIGlzIHNtYWxsZXIgdGhhbiAxIE1CIHRoZSBmaWxlIHdpbGwgYmUgdXBsb2FkZWQgYW5kIHRoZW4gdGhlIG5vZGUgZGVsZXRlZFxuICAgICAqIHRvIHByZXZlbnQgaGF2aW5nIGZpbGVzIHRoYXQgd2VyZSBhYm9ydGVkIGJ1dCBzdGlsbCB1cGxvYWRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlcyBPbmUgb3IgbW9yZSBzZXBhcmF0ZSBwYXJhbWV0ZXJzIG9yIGFuIGFycmF5IG9mIGZpbGVzIHNwZWNpZnlpbmcgdXBsb2FkcyB0byBjYW5jZWxcbiAgICAgKi9cbiAgICBjYW5jZWxVcGxvYWQoLi4uZmlsZXM6IEZpbGVNb2RlbFtdKSB7XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmNhY2hlW2ZpbGUubmFtZV07XG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2F2ZVRvQWJvcnRGaWxlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2UuYWJvcnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFib3J0ZWRGaWxlID0gZmlsZS5uYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jYWNoZVtmaWxlLm5hbWVdO1xuICAgICAgICAgICAgICAgIHByb21pc2UubmV4dCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZXJmb3JtQWN0aW9uID0gdGhpcy5nZXRBY3Rpb24oZmlsZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGVyZm9ybUFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBwZXJmb3JtQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2xlYXJzIHRoZSB1cGxvYWQgcXVldWUgKi9cbiAgICBjbGVhclF1ZXVlKCkge1xuICAgICAgICB0aGlzLnF1ZXVlID0gW107XG4gICAgICAgIHRoaXMudG90YWxDb21wbGV0ZSA9IDA7XG4gICAgICAgIHRoaXMudG90YWxBYm9ydGVkID0gMDtcbiAgICAgICAgdGhpcy50b3RhbEVycm9yID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIHVwbG9hZCBwcm9taXNlIGZvciBhIGZpbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZSBUaGUgdGFyZ2V0IGZpbGVcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIHVwbG9hZCBpcyBzdWNjZXNzZnVsIG9yIGVycm9yIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGdldFVwbG9hZFByb21pc2UoZmlsZTogRmlsZU1vZGVsKTogYW55IHtcbiAgICAgICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgICAgICAgaW5jbHVkZTogWydhbGxvd2FibGVPcGVyYXRpb25zJ11cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5pc1RodW1ibmFpbEdlbmVyYXRpb25FbmFibGVkKSB7XG4gICAgICAgICAgICBvcHRzLnJlbmRpdGlvbnMgPSAnZG9jbGliJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLm9wdGlvbnM/LnZlcnNpb25pbmdFbmFibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9wdHMudmVyc2lvbmluZ0VuYWJsZWQgPSBmaWxlLm9wdGlvbnMudmVyc2lvbmluZ0VuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZS5vcHRpb25zLm5ld1ZlcnNpb24gPT09IHRydWUpIHtcbiAgICAgICAgICAgIG9wdHMub3ZlcndyaXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIG9wdHMubWFqb3JWZXJzaW9uID0gZmlsZS5vcHRpb25zLm1ham9yVmVyc2lvbjtcbiAgICAgICAgICAgIG9wdHMuY29tbWVudCA9IGZpbGUub3B0aW9ucy5jb21tZW50O1xuICAgICAgICAgICAgb3B0cy5uYW1lID0gZmlsZS5uYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0cy5hdXRvUmVuYW1lID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLm9wdGlvbnMubm9kZVR5cGUpIHtcbiAgICAgICAgICAgIG9wdHMubm9kZVR5cGUgPSBmaWxlLm9wdGlvbnMubm9kZVR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubm9kZXNBcGkudXBkYXRlTm9kZUNvbnRlbnQoZmlsZS5pZCwgZmlsZS5maWxlIGFzIGFueSwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlQm9keTogTm9kZUJvZHlDcmVhdGUgPSB7IC4uLmZpbGUub3B0aW9ucywgbmFtZTogZmlsZS5uYW1lLCBub2RlVHlwZTogZmlsZS5vcHRpb25zLm5vZGVUeXBlIH07XG4gICAgICAgICAgICBkZWxldGUgbm9kZUJvZHlbJ3ZlcnNpb25pbmdFbmFibGVkJ107XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEFwaS51cGxvYWRGaWxlKGZpbGUuZmlsZSwgZmlsZS5vcHRpb25zLnBhdGgsIGZpbGUub3B0aW9ucy5wYXJlbnRJZCwgbm9kZUJvZHksIG9wdHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaWxlc1RvVXBsb2FkKCk6IEZpbGVNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgY2FjaGVkID0gT2JqZWN0LmtleXModGhpcy5jYWNoZSk7XG4gICAgICAgIGNvbnN0IHRocmVhZHNDb3VudCA9IHRoaXMuZ2V0VGhyZWFkc0NvdW50KCk7XG5cbiAgICAgICAgaWYgKGNhY2hlZC5sZW5ndGggPj0gdGhyZWFkc0NvdW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMucXVldWVcbiAgICAgICAgICAgIC5maWx0ZXIoKHRvVXBsb2FkKSA9PiAhY2FjaGVkLmluY2x1ZGVzKHRvVXBsb2FkLm5hbWUpICYmIHRvVXBsb2FkLnN0YXR1cyA9PT0gRmlsZVVwbG9hZFN0YXR1cy5QZW5kaW5nKVxuICAgICAgICAgICAgLnNsaWNlKDAsIHRocmVhZHNDb3VudCk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmVnaW5VcGxvYWQoZmlsZTogRmlsZU1vZGVsLCBzdWNjZXNzRW1pdHRlcj86IEV2ZW50RW1pdHRlcjxhbnk+LCBlcnJvckVtaXR0ZXI/OiBFdmVudEVtaXR0ZXI8YW55Pik6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmdldFVwbG9hZFByb21pc2UoZmlsZSk7XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAgIC5vbigncHJvZ3Jlc3MnLCAocHJvZ3Jlc3M6IEZpbGVVcGxvYWRQcm9ncmVzcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25VcGxvYWRQcm9ncmVzcyhmaWxlLCBwcm9ncmVzcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdhYm9ydCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkQWJvcnRlZChmaWxlKTtcbiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc0VtaXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0VtaXR0ZXIuZW1pdCh7IHZhbHVlOiAnRmlsZSBhYm9ydGVkJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkRXJyb3IoZmlsZSwgZXJyKTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JFbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yRW1pdHRlci5lbWl0KHsgdmFsdWU6ICdFcnJvciBmaWxlIHVwbG9hZGVkJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdzdWNjZXNzJywgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hYm9ydGVkRmlsZSA9PT0gZmlsZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25VcGxvYWRBYm9ydGVkKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZS5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUFib3J0ZWROb2RlKGRhdGEuZW50cnkuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVBYm9ydGVkTm9kZVZlcnNpb24oZGF0YS5lbnRyeS5pZCwgZGF0YS5lbnRyeS5wcm9wZXJ0aWVzWydjbTp2ZXJzaW9uTGFiZWwnXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3NFbWl0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzRW1pdHRlci5lbWl0KHsgdmFsdWU6ICdGaWxlIGRlbGV0ZWQnIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZENvbXBsZXRlKGZpbGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc0VtaXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NFbWl0dGVyLmVtaXQoeyB2YWx1ZTogZGF0YSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge30pO1xuXG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRTdGFydGluZyhmaWxlOiBGaWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gRmlsZVVwbG9hZFN0YXR1cy5TdGFydGluZztcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEZpbGVVcGxvYWRFdmVudChmaWxlLCBGaWxlVXBsb2FkU3RhdHVzLlN0YXJ0aW5nKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZFN0YXJ0aW5nLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblVwbG9hZFByb2dyZXNzKGZpbGU6IEZpbGVNb2RlbCwgcHJvZ3Jlc3M6IEZpbGVVcGxvYWRQcm9ncmVzcyk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLlByb2dyZXNzO1xuXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBGaWxlVXBsb2FkRXZlbnQoZmlsZSwgRmlsZVVwbG9hZFN0YXR1cy5Qcm9ncmVzcyk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRQcm9ncmVzcy5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRFcnJvcihmaWxlOiBGaWxlTW9kZWwsIGVycm9yOiB7IHN0YXR1cz86IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICBmaWxlLmVycm9yQ29kZSA9IGVycm9yPy5zdGF0dXM7XG4gICAgICAgICAgICBmaWxlLnN0YXR1cyA9IEZpbGVVcGxvYWRTdGF0dXMuRXJyb3I7XG4gICAgICAgICAgICB0aGlzLnRvdGFsRXJyb3IrKztcblxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZEVycm9yRXZlbnQoZmlsZSwgZXJyb3IsIHRoaXMudG90YWxFcnJvcik7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFcnJvci5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRDb21wbGV0ZShmaWxlOiBGaWxlTW9kZWwsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkNvbXBsZXRlO1xuICAgICAgICAgICAgZmlsZS5kYXRhID0gZGF0YTtcbiAgICAgICAgICAgIHRoaXMudG90YWxDb21wbGV0ZSsrO1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2FjaGVbZmlsZS5uYW1lXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZENvbXBsZXRlRXZlbnQoZmlsZSwgdGhpcy50b3RhbENvbXBsZXRlLCBkYXRhLCB0aGlzLnRvdGFsQWJvcnRlZCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRDb21wbGV0ZS5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWRBYm9ydGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkFib3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQWJvcnRlZCsrO1xuXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBGaWxlVXBsb2FkRXZlbnQoZmlsZSwgRmlsZVVwbG9hZFN0YXR1cy5BYm9ydGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZEFib3J0ZWQubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVXBsb2FkQ2FuY2VsbGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkNhbmNlbGxlZDtcblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZEV2ZW50KGZpbGUsIEZpbGVVcGxvYWRTdGF0dXMuQ2FuY2VsbGVkKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZENhbmNlbGxlZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGxvYWREZWxldGVkKGZpbGU6IEZpbGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgZmlsZS5zdGF0dXMgPSBGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQ29tcGxldGUtLTtcblxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRmlsZVVwbG9hZERlbGV0ZUV2ZW50KGZpbGUsIHRoaXMudG90YWxDb21wbGV0ZSk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWREZWxldGVkLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3Rpb24oZmlsZTogRmlsZU1vZGVsKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICAgICAgICBbRmlsZVVwbG9hZFN0YXR1cy5QZW5kaW5nXTogKCkgPT4gdGhpcy5vblVwbG9hZENhbmNlbGxlZChmaWxlKSxcbiAgICAgICAgICAgIFtGaWxlVXBsb2FkU3RhdHVzLkRlbGV0ZWRdOiAoKSA9PiB0aGlzLm9uVXBsb2FkRGVsZXRlZChmaWxlKSxcbiAgICAgICAgICAgIFtGaWxlVXBsb2FkU3RhdHVzLkVycm9yXTogKCkgPT4gdGhpcy5vblVwbG9hZEVycm9yKGZpbGUsIG51bGwpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGFjdGlvbnNbZmlsZS5zdGF0dXNdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlQWJvcnRlZE5vZGUobm9kZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ub2Rlc0FwaS5kZWxldGVOb2RlKG5vZGVJZCwgeyBwZXJtYW5lbnQ6IHRydWUgfSkudGhlbigoKSA9PiAodGhpcy5hYm9ydGVkRmlsZSA9IHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlQWJvcnRlZE5vZGVWZXJzaW9uKG5vZGVJZDogc3RyaW5nLCB2ZXJzaW9uSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZlcnNpb25zQXBpLmRlbGV0ZVZlcnNpb24obm9kZUlkLCB2ZXJzaW9uSWQpLnRoZW4oKCkgPT4gKHRoaXMuYWJvcnRlZEZpbGUgPSB1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2F2ZVRvQWJvcnRGaWxlKGZpbGU6IEZpbGVNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmlsZS5zaXplID4gTUlOX0NBTkNFTExBQkxFX0ZJTEVfU0laRSAmJiBmaWxlLnByb2dyZXNzLnBlcmNlbnQgPCBNQVhfQ0FOQ0VMTEFCTEVfRklMRV9QRVJDRU5UQUdFO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRWxlbWVudChmaWxlOiBGaWxlTW9kZWwpIHtcbiAgICAgICAgdGhpcy5leGNsdWRlZEZpbGVMaXN0ID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxzdHJpbmdbXT4oJ2ZpbGVzLmV4Y2x1ZGVkJyk7XG4gICAgICAgIHRoaXMuZXhjbHVkZWRGb2xkZXJzTGlzdCA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8c3RyaW5nW10+KCdmb2xkZXJzLmV4Y2x1ZGVkJyk7XG4gICAgICAgIGxldCBpc0FsbG93ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmV4Y2x1ZGVkRmlsZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMubWF0Y2hpbmdPcHRpb25zID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldCgnZmlsZXMubWF0Y2gtb3B0aW9ucycpO1xuICAgICAgICAgICAgaXNBbGxvd2VkID0gdGhpcy5pc0ZpbGVOYW1lQWxsb3dlZChmaWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FsbG93ZWQgJiYgdGhpcy5leGNsdWRlZEZvbGRlcnNMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmZvbGRlck1hdGNoaW5nT3B0aW9ucyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQoJ2ZvbGRlcnMubWF0Y2gtb3B0aW9ucycpO1xuICAgICAgICAgICAgaXNBbGxvd2VkID0gdGhpcy5pc1BhcmVudEZvbGRlckFsbG93ZWQoZmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQWxsb3dlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFyZW50Rm9sZGVyQWxsb3dlZChmaWxlOiBGaWxlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzQWxsb3dlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGaWxlOiBhbnkgPSBmaWxlLmZpbGU7XG4gICAgICAgIGNvbnN0IGZpbGVSZWxhdGl2ZVBhdGggPSBjdXJyZW50RmlsZS53ZWJraXRSZWxhdGl2ZVBhdGggPyBjdXJyZW50RmlsZS53ZWJraXRSZWxhdGl2ZVBhdGggOiBmaWxlLm9wdGlvbnMucGF0aDtcbiAgICAgICAgaWYgKGN1cnJlbnRGaWxlICYmIGZpbGVSZWxhdGl2ZVBhdGgpIHtcbiAgICAgICAgICAgIGlzQWxsb3dlZCA9XG4gICAgICAgICAgICAgICAgdGhpcy5leGNsdWRlZEZvbGRlcnNMaXN0LmZpbHRlcigoZm9sZGVyVG9FeGNsdWRlKSA9PlxuICAgICAgICAgICAgICAgICAgICBmaWxlUmVsYXRpdmVQYXRoLnNwbGl0KCcvJykuc29tZSgocGF0aEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbmltYXRjaCA9IG5ldyBNaW5pbWF0Y2goZm9sZGVyVG9FeGNsdWRlLCB0aGlzLmZvbGRlck1hdGNoaW5nT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWluaW1hdGNoLm1hdGNoKHBhdGhFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBbGxvd2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlTmFtZUFsbG93ZWQoZmlsZTogRmlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmV4Y2x1ZGVkRmlsZUxpc3QuZmlsdGVyKChwYXR0ZXJuKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluaW1hdGNoID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCB0aGlzLm1hdGNoaW5nT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pbmltYXRjaC5tYXRjaChmaWxlLm5hbWUpO1xuICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -29,8 +29,8 @@ export class ContentMetadataHeaderComponent {
29
29
  this.title = null;
30
30
  this.expanded = true;
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentMetadataHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContentMetadataHeaderComponent, isStandalone: true, selector: "adf-content-metadata-header", inputs: { title: "title", expanded: "expanded" }, ngImport: i0, template: `
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ContentMetadataHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ContentMetadataHeaderComponent, isStandalone: true, selector: "adf-content-metadata-header", inputs: { title: "title", expanded: "expanded" }, ngImport: i0, template: `
34
34
  <ng-container>
35
35
  <mat-icon>{{ expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>
36
36
  <mat-panel-title *ngIf="title" class="adf-metadata-properties-title" [title]="title | translate">{{ title | translate }}</mat-panel-title>
@@ -38,7 +38,7 @@ export class ContentMetadataHeaderComponent {
38
38
  </ng-container>
39
39
  `, isInline: true, styles: ["adf-content-metadata-header{display:flex;align-items:center;width:100%}.adf-metadata-properties-title{display:block;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:15px;padding-left:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentMetadataHeaderComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ContentMetadataHeaderComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{ standalone: true, imports: [CommonModule, MatIconModule, MatExpansionModule, TranslateModule], selector: 'adf-content-metadata-header', encapsulation: ViewEncapsulation.None, template: `
44
44
  <ng-container>
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
52
52
  }], expanded: [{
53
53
  type: Input
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1tZXRhZGF0YS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW1ldGFkYXRhL2NvbXBvbmVudHMvY29udGVudC1tZXRhZGF0YS9jb250ZW50LW1ldGFkYXRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWlDdEQsTUFBTSxPQUFPLDhCQUE4QjtJQS9CM0M7UUFnQ2EsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsSUFBSSxDQUFDO0tBQzVCOytHQUhZLDhCQUE4QjttR0FBOUIsOEJBQThCLHlJQVI3Qjs7Ozs7O0tBTVQsdVJBM0JTLFlBQVksa0lBQUUsYUFBYSxtTEFBRSxrQkFBa0IsbUhBQUUsZUFBZTs7NEZBNkJqRSw4QkFBOEI7a0JBL0IxQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFlBQ2pFLDZCQUE2QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxZQW1CM0I7Ozs7OztLQU1UOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdhZGYtY29udGVudC1tZXRhZGF0YS1oZWFkZXInLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICAgYWRmLWNvbnRlbnQtbWV0YWRhdGEtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuYWRmLW1ldGFkYXRhLXByb3BlcnRpZXMtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBleHBhbmRlZCA/ICdleHBhbmRfbW9yZScgOiAnY2hldnJvbl9yaWdodCcgfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZSAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJhZGYtbWV0YWRhdGEtcHJvcGVydGllcy10aXRsZVwiIFt0aXRsZV09XCJ0aXRsZSB8IHRyYW5zbGF0ZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRNZXRhZGF0YUhlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgZXhwYW5kZWQgPSB0cnVlO1xufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1tZXRhZGF0YS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW1ldGFkYXRhL2NvbXBvbmVudHMvY29udGVudC1tZXRhZGF0YS9jb250ZW50LW1ldGFkYXRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWlDdEQsTUFBTSxPQUFPLDhCQUE4QjtJQS9CM0M7UUFnQ2EsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsSUFBSSxDQUFDO0tBQzVCOzhHQUhZLDhCQUE4QjtrR0FBOUIsOEJBQThCLHlJQVI3Qjs7Ozs7O0tBTVQsdVJBM0JTLFlBQVksa0lBQUUsYUFBYSxtTEFBRSxrQkFBa0IsbUhBQUUsZUFBZTs7MkZBNkJqRSw4QkFBOEI7a0JBL0IxQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFlBQ2pFLDZCQUE2QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxZQW1CM0I7Ozs7OztLQU1UOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRFeHBhbnNpb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdhZGYtY29udGVudC1tZXRhZGF0YS1oZWFkZXInLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICAgYWRmLWNvbnRlbnQtbWV0YWRhdGEtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuYWRmLW1ldGFkYXRhLXByb3BlcnRpZXMtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBleHBhbmRlZCA/ICdleHBhbmRfbW9yZScgOiAnY2hldnJvbl9yaWdodCcgfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZSAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJhZGYtbWV0YWRhdGEtcHJvcGVydGllcy10aXRsZVwiIFt0aXRsZV09XCJ0aXRsZSB8IHRyYW5zbGF0ZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRNZXRhZGF0YUhlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgZXhwYW5kZWQgPSB0cnVlO1xufVxuIl19