nuxeo-development-framework 6.0.9 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (873) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +1540 -1173
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +1 -1
  4. package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +1 -1
  5. package/esm2015/lib/components/activities-log/activities-log.module.js +1 -1
  6. package/esm2015/lib/components/activity/activity/activity.component.js +1 -1
  7. package/esm2015/lib/components/activity/activity.module.js +1 -1
  8. package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +2 -2
  9. package/esm2015/lib/components/attachment-item/attachment-item.module.js +1 -1
  10. package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +1 -1
  11. package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +1 -1
  12. package/esm2015/lib/components/avatar/avatar/avatar.component.js +1 -1
  13. package/esm2015/lib/components/avatar/avatar.module.js +1 -1
  14. package/esm2015/lib/components/card/card.component.js +1 -1
  15. package/esm2015/lib/components/card/card.module.js +1 -1
  16. package/esm2015/lib/components/comments/comments.module.js +1 -1
  17. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +2 -2
  18. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +1 -1
  19. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +1 -1
  20. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +1 -1
  21. package/esm2015/lib/components/comments/constants/comment.js +1 -1
  22. package/esm2015/lib/components/comments/services/comment-api.service.js +1 -1
  23. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +1 -1
  24. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +1 -1
  25. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +1 -1
  26. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +1 -1
  27. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +1 -1
  28. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +1 -1
  29. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
  30. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +2 -2
  31. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +1 -1
  32. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +1 -1
  33. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +1 -1
  34. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +1 -1
  35. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +1 -1
  36. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +1 -1
  37. package/esm2015/lib/components/create-entity/create-entity.module.js +1 -1
  38. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +2 -2
  39. package/esm2015/lib/components/cts-tags/cts-tags.module.js +1 -1
  40. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -1
  41. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +1 -1
  42. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +1 -1
  43. package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
  44. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +1 -1
  45. package/esm2015/lib/components/diagrams/components/base-node.component.js +1 -1
  46. package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +1 -1
  47. package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
  48. package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +1 -1
  49. package/esm2015/lib/components/diagrams/components/custom-connection.component.js +1 -1
  50. package/esm2015/lib/components/diagrams/components/custom-socket.component.js +1 -1
  51. package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +1 -1
  52. package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +1 -1
  53. package/esm2015/lib/components/diagrams/components/index.js +1 -1
  54. package/esm2015/lib/components/diagrams/components/node-icon.component.js +1 -1
  55. package/esm2015/lib/components/diagrams/components/node-inputs.component.js +1 -1
  56. package/esm2015/lib/components/diagrams/components/node-outputs.component.js +1 -1
  57. package/esm2015/lib/components/diagrams/components/node-ports.component.js +1 -1
  58. package/esm2015/lib/components/diagrams/components/remove-button.component.js +1 -1
  59. package/esm2015/lib/components/diagrams/components/status-icon.component.js +1 -1
  60. package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +1 -1
  61. package/esm2015/lib/components/diagrams/components/zoom-control.component.js +1 -1
  62. package/esm2015/lib/components/diagrams/constants/defaults.js +1 -1
  63. package/esm2015/lib/components/diagrams/constants/direction.js +1 -1
  64. package/esm2015/lib/components/diagrams/constants/index.js +1 -1
  65. package/esm2015/lib/components/diagrams/constants/message-type.js +1 -1
  66. package/esm2015/lib/components/diagrams/constants/node-type.js +1 -1
  67. package/esm2015/lib/components/diagrams/constants/notify-events.js +1 -1
  68. package/esm2015/lib/components/diagrams/constants/sizes.js +1 -1
  69. package/esm2015/lib/components/diagrams/constants/status.js +1 -1
  70. package/esm2015/lib/components/diagrams/diagrams.module.js +1 -1
  71. package/esm2015/lib/components/diagrams/directive/diagram.directive.js +1 -1
  72. package/esm2015/lib/components/diagrams/directive/index.js +1 -1
  73. package/esm2015/lib/components/diagrams/editor/customize.js +1 -1
  74. package/esm2015/lib/components/diagrams/editor/editor.js +1 -1
  75. package/esm2015/lib/components/diagrams/editor/index.js +1 -1
  76. package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +1 -1
  77. package/esm2015/lib/components/diagrams/editor/overrides/index.js +1 -1
  78. package/esm2015/lib/components/diagrams/editor/path-plugin.js +1 -1
  79. package/esm2015/lib/components/diagrams/editor/socket-position-watcher.js +1 -1
  80. package/esm2015/lib/components/diagrams/index.js +1 -1
  81. package/esm2015/lib/components/diagrams/models/base-node.model.js +1 -1
  82. package/esm2015/lib/components/diagrams/models/circle-node.model.js +1 -1
  83. package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
  84. package/esm2015/lib/components/diagrams/models/content-node.model.js +1 -1
  85. package/esm2015/lib/components/diagrams/models/gate-way.model.js +1 -1
  86. package/esm2015/lib/components/diagrams/models/index.js +1 -1
  87. package/esm2015/lib/components/diagrams/models/ports.model.js +1 -1
  88. package/esm2015/lib/components/diagrams/models/socket.model.js +1 -1
  89. package/esm2015/lib/components/diagrams/models/template-node.model.js +1 -1
  90. package/esm2015/lib/components/diagrams/public-api.js +1 -1
  91. package/esm2015/lib/components/diagrams/services/diagram-plugins.service.js +1 -1
  92. package/esm2015/lib/components/diagrams/services/diagram.service.js +1 -1
  93. package/esm2015/lib/components/diagrams/services/index.js +1 -1
  94. package/esm2015/lib/components/diagrams/services/message.service.js +1 -1
  95. package/esm2015/lib/components/diagrams/services/workflow.service.js +1 -1
  96. package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
  97. package/esm2015/lib/components/diagrams/types/connection-config.type.js +1 -1
  98. package/esm2015/lib/components/diagrams/types/connection-label.type.js +1 -1
  99. package/esm2015/lib/components/diagrams/types/customization.type.js +1 -1
  100. package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
  101. package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
  102. package/esm2015/lib/components/diagrams/types/emitter-type.js +1 -1
  103. package/esm2015/lib/components/diagrams/types/index.js +1 -1
  104. package/esm2015/lib/components/diagrams/types/layout.type.js +1 -1
  105. package/esm2015/lib/components/diagrams/types/node-content.js +1 -1
  106. package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
  107. package/esm2015/lib/components/diagrams/types/node-status.type.js +1 -1
  108. package/esm2015/lib/components/diagrams/types/node.type.js +1 -1
  109. package/esm2015/lib/components/diagrams/types/notify-event.type.js +1 -1
  110. package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
  111. package/esm2015/lib/components/diagrams/types/ports-config.type.js +1 -1
  112. package/esm2015/lib/components/diagrams/types/schemes.type.js +1 -1
  113. package/esm2015/lib/components/diagrams/types/socket.type.js +1 -1
  114. package/esm2015/lib/components/diagrams/utilities/common.js +1 -1
  115. package/esm2015/lib/components/diagrams/utilities/index.js +1 -1
  116. package/esm2015/lib/components/diagrams/utilities/random.js +1 -1
  117. package/esm2015/lib/components/diagrams/utilities/remove.util.js +1 -1
  118. package/esm2015/lib/components/diagrams/utilities/serialize.js +1 -1
  119. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +2 -2
  120. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +1 -1
  121. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +1 -1
  122. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
  123. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
  124. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +1 -1
  125. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +1 -1
  126. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
  127. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
  128. package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
  129. package/esm2015/lib/components/documents/constants/document-templates.js +1 -1
  130. package/esm2015/lib/components/documents/constants/documents.js +1 -1
  131. package/esm2015/lib/components/documents/documents.module.js +1 -1
  132. package/esm2015/lib/components/documents/services/document-templates.service.js +1 -1
  133. package/esm2015/lib/components/documents/services/documents.service.js +1 -1
  134. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +1 -1
  135. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +1 -1
  136. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +1 -1
  137. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
  138. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +1 -1
  139. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +2 -2
  140. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +1 -1
  141. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
  142. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +1 -1
  143. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +1 -1
  144. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +1 -1
  145. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +1 -1
  146. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +1 -1
  147. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +1 -1
  148. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +1 -1
  149. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +1 -1
  150. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/constants/department.js +1 -1
  151. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +1 -1
  152. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +1 -1
  153. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +1 -1
  154. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +1 -1
  155. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +1 -1
  156. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +1 -1
  157. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +1 -1
  158. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +1 -1
  159. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
  160. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +1 -1
  161. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +1 -1
  162. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +1 -1
  163. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
  164. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +2 -2
  165. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +1 -1
  166. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +1 -1
  167. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +1 -1
  168. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -2
  169. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +1 -1
  170. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +1 -1
  171. package/esm2015/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.js +1 -1
  172. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
  173. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.js +1 -1
  174. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +1 -1
  175. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.js +1 -1
  176. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +1 -1
  177. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.formio.js +1 -1
  178. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
  179. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.js +1 -1
  180. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +1 -1
  181. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +1 -1
  182. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.js +1 -1
  183. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.js +1 -1
  184. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.js +1 -1
  185. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.js +1 -1
  186. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.js +1 -1
  187. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.js +1 -1
  188. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.js +1 -1
  189. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.js +1 -1
  190. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.js +1 -1
  191. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.js +1 -1
  192. package/esm2015/lib/components/dynamic-form/models/dynamic-form-baseitem.model.js +1 -1
  193. package/esm2015/lib/components/dynamic-form/models/dynamic-form-boolitem.model.js +1 -1
  194. package/esm2015/lib/components/dynamic-form/models/dynamic-form-dateitem.model.js +1 -1
  195. package/esm2015/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.js +1 -1
  196. package/esm2015/lib/components/dynamic-form/models/dynamic-form-mapitem.model.js +1 -1
  197. package/esm2015/lib/components/dynamic-form/models/dynamic-form-selectitem.model.js +1 -1
  198. package/esm2015/lib/components/dynamic-form/models/dynamic-form-textitem.model.js +1 -1
  199. package/esm2015/lib/components/dynamic-form/models/dynamic-form.models.js +1 -1
  200. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +1 -1
  201. package/esm2015/lib/components/dynamic-form/services/dynamic-component-mapper.service.js +1 -1
  202. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +1 -1
  203. package/esm2015/lib/components/dynamic-form/services/vocabulary-api.service.js +1 -1
  204. package/esm2015/lib/components/dynamic-form/validators/length-validator.js +1 -1
  205. package/esm2015/lib/components/dynamic-form/validators/regex-validator.js +1 -1
  206. package/esm2015/lib/components/dynamic-form/validators/required-validator.js +1 -1
  207. package/esm2015/lib/components/dynamic-form/validators/value-validator.js +1 -1
  208. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +1 -1
  209. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +1 -1
  210. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +1 -1
  211. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +1 -1
  212. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +2 -2
  213. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +1 -1
  214. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +1 -1
  215. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +1 -1
  216. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
  217. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +2 -2
  218. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +2 -2
  219. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +2 -2
  220. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +1 -1
  221. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +1 -1
  222. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +1 -1
  223. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +2 -2
  224. package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +2 -2
  225. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +1 -1
  226. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +2 -2
  227. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +1 -1
  228. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +1 -1
  229. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +1 -1
  230. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +1 -1
  231. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +2 -2
  232. package/esm2015/lib/components/file-manger/components/move/move.component.js +1 -1
  233. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +1 -1
  234. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +2 -2
  235. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +1 -1
  236. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +2 -2
  237. package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +2 -2
  238. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +1 -1
  239. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +1 -1
  240. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +1 -1
  241. package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +1 -1
  242. package/esm2015/lib/components/file-manger/file-manager.abstract.js +1 -1
  243. package/esm2015/lib/components/file-manger/file-manger.module.js +1 -1
  244. package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +1 -1
  245. package/esm2015/lib/components/file-manger/models/index.js +1 -1
  246. package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +1 -1
  247. package/esm2015/lib/components/file-manger/models/pagination-response.model.js +1 -1
  248. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  249. package/esm2015/lib/components/filter/filter.module.js +1 -1
  250. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +1 -1
  251. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +1 -1
  252. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +1 -1
  253. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +1 -1
  254. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -1
  255. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +1 -1
  256. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +1 -1
  257. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +1 -1
  258. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +1 -1
  259. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/consts.js +1 -1
  260. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +1 -1
  261. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
  262. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +1 -1
  263. package/esm2015/lib/components/latest-activity/constants/activitylog.js +1 -1
  264. package/esm2015/lib/components/latest-activity/latest-activity.module.js +1 -1
  265. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +1 -1
  266. package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +1 -1
  267. package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +1 -1
  268. package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +1 -1
  269. package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +1 -1
  270. package/esm2015/lib/components/ndf-config-editor/components/index.js +1 -1
  271. package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +2 -2
  272. package/esm2015/lib/components/ndf-config-editor/config.token.js +1 -1
  273. package/esm2015/lib/components/ndf-config-editor/constants/index.js +1 -1
  274. package/esm2015/lib/components/ndf-config-editor/constants/mode.js +1 -1
  275. package/esm2015/lib/components/ndf-config-editor/constants/query.js +1 -1
  276. package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +1 -1
  277. package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +2 -2
  278. package/esm2015/lib/components/ndf-config-editor/containers/index.js +1 -1
  279. package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +1 -1
  280. package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +1 -1
  281. package/esm2015/lib/components/ndf-config-editor/index.js +1 -1
  282. package/esm2015/lib/components/ndf-config-editor/metadata-token.js +1 -1
  283. package/esm2015/lib/components/ndf-config-editor/models/config.js +1 -1
  284. package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +1 -1
  285. package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +1 -1
  286. package/esm2015/lib/components/ndf-config-editor/models/index.js +1 -1
  287. package/esm2015/lib/components/ndf-config-editor/models/payload-data.js +1 -1
  288. package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +1 -1
  289. package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +1 -1
  290. package/esm2015/lib/components/ndf-config-editor/pipes/index.js +1 -1
  291. package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +1 -1
  292. package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +1 -1
  293. package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +2 -2
  294. package/esm2015/lib/components/ndf-config-editor/public/index.js +1 -1
  295. package/esm2015/lib/components/ndf-config-editor/public-api.js +1 -1
  296. package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +1 -1
  297. package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +1 -1
  298. package/esm2015/lib/components/ndf-config-editor/services/index.js +1 -1
  299. package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +1 -1
  300. package/esm2015/lib/components/ndf-config-editor/utility/index.js +1 -1
  301. package/esm2015/lib/components/ndf-config-editor/utility/json.js +1 -1
  302. package/esm2015/lib/components/ndf-datepicker/adapters/hijri-adapter.js +1 -1
  303. package/esm2015/lib/components/ndf-datepicker/adapters/index.js +1 -1
  304. package/esm2015/lib/components/ndf-datepicker/adapters/moment-adapter.js +1 -1
  305. package/esm2015/lib/components/ndf-datepicker/base/base-value-accessor.js +1 -1
  306. package/esm2015/lib/components/ndf-datepicker/base/index.js +1 -1
  307. package/esm2015/lib/components/ndf-datepicker/components/base-datepicker.js +1 -1
  308. package/esm2015/lib/components/ndf-datepicker/components/index.js +1 -1
  309. package/esm2015/lib/components/ndf-datepicker/components/input-date.component.js +1 -1
  310. package/esm2015/lib/components/ndf-datepicker/components/input-range-date.component.js +1 -1
  311. package/esm2015/lib/components/ndf-datepicker/constants/date-locale-keys.js +1 -1
  312. package/esm2015/lib/components/ndf-datepicker/constants/date-picker.js +1 -1
  313. package/esm2015/lib/components/ndf-datepicker/constants/date-type.js +1 -1
  314. package/esm2015/lib/components/ndf-datepicker/constants/formats.js +1 -1
  315. package/esm2015/lib/components/ndf-datepicker/constants/hijri-dates-names.js +1 -1
  316. package/esm2015/lib/components/ndf-datepicker/constants/index.js +1 -1
  317. package/esm2015/lib/components/ndf-datepicker/containers/datepicker-container.js +1 -1
  318. package/esm2015/lib/components/ndf-datepicker/containers/index.js +1 -1
  319. package/esm2015/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.js +1 -1
  320. package/esm2015/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.js +1 -1
  321. package/esm2015/lib/components/ndf-datepicker/index.js +1 -1
  322. package/esm2015/lib/components/ndf-datepicker/models/data-types.js +1 -1
  323. package/esm2015/lib/components/ndf-datepicker/models/index.js +1 -1
  324. package/esm2015/lib/components/ndf-datepicker/models/value-object.js +1 -1
  325. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.component.js +2 -2
  326. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.module.js +1 -1
  327. package/esm2015/lib/components/ndf-datepicker/services/calendar.service.js +1 -1
  328. package/esm2015/lib/components/ndf-datepicker/services/index.js +1 -1
  329. package/esm2015/lib/components/ndf-datepicker/services/localize-state.service.js +1 -1
  330. package/esm2015/lib/components/ndf-filters/base/base-aggregation-field.component.js +1 -1
  331. package/esm2015/lib/components/ndf-filters/base/base-checkbox-radio.component.js +1 -1
  332. package/esm2015/lib/components/ndf-filters/base/base-custom-field.component.js +1 -1
  333. package/esm2015/lib/components/ndf-filters/base/base-predicate-field.component.js +1 -1
  334. package/esm2015/lib/components/ndf-filters/base/base-value-accessor.component.js +1 -1
  335. package/esm2015/lib/components/ndf-filters/base/index.js +1 -1
  336. package/esm2015/lib/components/ndf-filters/components/__parts/field-header.component.js +1 -1
  337. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +1 -1
  338. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +1 -1
  339. package/esm2015/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.js +1 -1
  340. package/esm2015/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.js +1 -1
  341. package/esm2015/lib/components/ndf-filters/components/__parts/filter-empty-message.component.js +1 -1
  342. package/esm2015/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.js +2 -2
  343. package/esm2015/lib/components/ndf-filters/components/__parts/filter-options-sort/filter-options-sort.component.js +2 -2
  344. package/esm2015/lib/components/ndf-filters/components/__parts/filter-search-input/filter-search-input.component.js +1 -1
  345. package/esm2015/lib/components/ndf-filters/components/__parts/html-dialog/html-dialog.component.js +1 -1
  346. package/esm2015/lib/components/ndf-filters/components/__parts/index.js +1 -1
  347. package/esm2015/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.js +1 -1
  348. package/esm2015/lib/components/ndf-filters/components/aggregation-checkbox/aggregation-checkbox.component.js +1 -1
  349. package/esm2015/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.js +1 -1
  350. package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +1 -1
  351. package/esm2015/lib/components/ndf-filters/components/aggregation-radio/aggregation-radio.component.js +1 -1
  352. package/esm2015/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.js +1 -1
  353. package/esm2015/lib/components/ndf-filters/components/aggregation-switch/aggregation-switch.component.js +2 -2
  354. package/esm2015/lib/components/ndf-filters/components/index.js +1 -1
  355. package/esm2015/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.js +1 -1
  356. package/esm2015/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.js +2 -2
  357. package/esm2015/lib/components/ndf-filters/constants/common.js +1 -1
  358. package/esm2015/lib/components/ndf-filters/constants/field.js +1 -1
  359. package/esm2015/lib/components/ndf-filters/constants/index.js +1 -1
  360. package/esm2015/lib/components/ndf-filters/constants/operators.js +1 -1
  361. package/esm2015/lib/components/ndf-filters/constants/sort.js +1 -1
  362. package/esm2015/lib/components/ndf-filters/constants/type.js +1 -1
  363. package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +1 -1
  364. package/esm2015/lib/components/ndf-filters/containers/base-field.js +1 -1
  365. package/esm2015/lib/components/ndf-filters/containers/custom-field/custom-field.component.js +1 -1
  366. package/esm2015/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.js +1 -1
  367. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +1 -1
  368. package/esm2015/lib/components/ndf-filters/containers/index.js +1 -1
  369. package/esm2015/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.js +1 -1
  370. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.js +2 -2
  371. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.js +1 -1
  372. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/user-types.js +1 -1
  373. package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/aggregation-group.component.js +1 -1
  374. package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/map-aggregation-config.js +1 -1
  375. package/esm2015/lib/components/ndf-filters/custom-components/index.js +1 -1
  376. package/esm2015/lib/components/ndf-filters/directives/autocomplete-template.directive.js +1 -1
  377. package/esm2015/lib/components/ndf-filters/directives/checkbox-template.directive.js +1 -1
  378. package/esm2015/lib/components/ndf-filters/directives/custom-template.directive.js +1 -1
  379. package/esm2015/lib/components/ndf-filters/directives/date-template.directive.js +1 -1
  380. package/esm2015/lib/components/ndf-filters/directives/dropdown-label-template.directive.js +1 -1
  381. package/esm2015/lib/components/ndf-filters/directives/dropdown-template.directive.js +1 -1
  382. package/esm2015/lib/components/ndf-filters/directives/index.js +1 -1
  383. package/esm2015/lib/components/ndf-filters/directives/radio-template.directive.js +1 -1
  384. package/esm2015/lib/components/ndf-filters/directives/switch-template.directive.js +1 -1
  385. package/esm2015/lib/components/ndf-filters/index.js +1 -1
  386. package/esm2015/lib/components/ndf-filters/models/aggregation-field-config.js +1 -1
  387. package/esm2015/lib/components/ndf-filters/models/aggregation-response.model.js +1 -1
  388. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
  389. package/esm2015/lib/components/ndf-filters/models/common.js +1 -1
  390. package/esm2015/lib/components/ndf-filters/models/custom-field-config.js +1 -1
  391. package/esm2015/lib/components/ndf-filters/models/field-config.model.js +1 -1
  392. package/esm2015/lib/components/ndf-filters/models/field-options/autocomplete-options.js +1 -1
  393. package/esm2015/lib/components/ndf-filters/models/field-options/checkbox-options.js +1 -1
  394. package/esm2015/lib/components/ndf-filters/models/field-options/common-utils.js +1 -1
  395. package/esm2015/lib/components/ndf-filters/models/field-options/custom-fields-options.js +1 -1
  396. package/esm2015/lib/components/ndf-filters/models/field-options/custom-options.js +1 -1
  397. package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
  398. package/esm2015/lib/components/ndf-filters/models/field-options/date-options.js +1 -1
  399. package/esm2015/lib/components/ndf-filters/models/field-options/dropdown-options.js +1 -1
  400. package/esm2015/lib/components/ndf-filters/models/field-options/index.js +1 -1
  401. package/esm2015/lib/components/ndf-filters/models/field-options/input-options.js +1 -1
  402. package/esm2015/lib/components/ndf-filters/models/field-options/radio-options.js +1 -1
  403. package/esm2015/lib/components/ndf-filters/models/field-options/switch-options.js +1 -1
  404. package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
  405. package/esm2015/lib/components/ndf-filters/models/form-query-request.js +1 -1
  406. package/esm2015/lib/components/ndf-filters/models/index.js +1 -1
  407. package/esm2015/lib/components/ndf-filters/models/operator-value-object.js +1 -1
  408. package/esm2015/lib/components/ndf-filters/models/predicate-field-config.js +1 -1
  409. package/esm2015/lib/components/ndf-filters/models/types-helper.js +1 -1
  410. package/esm2015/lib/components/ndf-filters/models/value-object.model.js +1 -1
  411. package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +1 -1
  412. package/esm2015/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.js +1 -1
  413. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +1 -1
  414. package/esm2015/lib/components/ndf-filters/pipes/filter.pipe.js +1 -1
  415. package/esm2015/lib/components/ndf-filters/pipes/hash-translate.pipe.js +1 -1
  416. package/esm2015/lib/components/ndf-filters/pipes/index.js +1 -1
  417. package/esm2015/lib/components/ndf-filters/pipes/localized-label.pipe.js +1 -1
  418. package/esm2015/lib/components/ndf-filters/pipes/roles-filters.pipe.js +1 -1
  419. package/esm2015/lib/components/ndf-filters/pipes/sanitizer.pipe.js +1 -1
  420. package/esm2015/lib/components/ndf-filters/pipes/sort.pipe.js +1 -1
  421. package/esm2015/lib/components/ndf-filters/pipes/tooltip.pipe.js +1 -1
  422. package/esm2015/lib/components/ndf-filters/public-api.js +1 -1
  423. package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +1 -1
  424. package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +1 -1
  425. package/esm2015/lib/components/ndf-filters/services/filters-mapper.service.js +1 -1
  426. package/esm2015/lib/components/ndf-filters/services/filters-query.service.js +1 -1
  427. package/esm2015/lib/components/ndf-filters/services/index.js +1 -1
  428. package/esm2015/lib/components/ndf-filters/utility/index.js +1 -1
  429. package/esm2015/lib/components/ndf-filters/utility/nxql-query.js +1 -1
  430. package/esm2015/lib/components/ndf-filters/utility/nxql.js +1 -1
  431. package/esm2015/lib/components/ndf-filters/utility/object.js +1 -1
  432. package/esm2015/lib/components/ndf-panel/component/ndf-panel.component.js +1 -1
  433. package/esm2015/lib/components/ndf-panel/index.js +1 -1
  434. package/esm2015/lib/components/ndf-panel/ndf-panel.module.js +1 -1
  435. package/esm2015/lib/components/ndf-scanner/index.js +1 -1
  436. package/esm2015/lib/components/ndf-scanner/ndf-scanner.component.js +2 -2
  437. package/esm2015/lib/components/ndf-scanner/ndf-scanner.module.js +1 -1
  438. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.js +1 -1
  439. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/index.js +1 -1
  440. package/esm2015/lib/components/ndf-signatures/emdha/index.js +1 -1
  441. package/esm2015/lib/components/ndf-signatures/emdha/services/emdha.service.js +1 -1
  442. package/esm2015/lib/components/ndf-signatures/emdha/services/index.js +1 -1
  443. package/esm2015/lib/components/ndf-signatures/index.js +1 -1
  444. package/esm2015/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.js +1 -1
  445. package/esm2015/lib/components/ndf-signatures/ndf-signatures.module.js +1 -1
  446. package/esm2015/lib/components/ndf-signatures/services/index.js +1 -1
  447. package/esm2015/lib/components/ndf-signatures/services/signatures.service.js +1 -1
  448. package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +1 -1
  449. package/esm2015/lib/components/ndf-tabs/index.js +1 -1
  450. package/esm2015/lib/components/ndf-tabs/ndf-tabs.module.js +1 -1
  451. package/esm2015/lib/components/ndf-tabs/tab.type.js +1 -1
  452. package/esm2015/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.js +2 -2
  453. package/esm2015/lib/components/ndf-uploader/components/index.js +1 -1
  454. package/esm2015/lib/components/ndf-uploader/config/index.js +1 -1
  455. package/esm2015/lib/components/ndf-uploader/config/uploader.config.js +1 -1
  456. package/esm2015/lib/components/ndf-uploader/constant/file-content.js +1 -1
  457. package/esm2015/lib/components/ndf-uploader/constant/index.js +1 -1
  458. package/esm2015/lib/components/ndf-uploader/helpers/index.js +1 -1
  459. package/esm2015/lib/components/ndf-uploader/helpers/uploader.helper.js +1 -1
  460. package/esm2015/lib/components/ndf-uploader/index.js +1 -1
  461. package/esm2015/lib/components/ndf-uploader/models/batch.model.js +1 -1
  462. package/esm2015/lib/components/ndf-uploader/models/index.js +1 -1
  463. package/esm2015/lib/components/ndf-uploader/models/ndf-file.model.js +1 -1
  464. package/esm2015/lib/components/ndf-uploader/models/provider.model.js +1 -1
  465. package/esm2015/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.js +1 -1
  466. package/esm2015/lib/components/ndf-uploader/ndf-uploader.module.js +1 -1
  467. package/esm2015/lib/components/ndf-uploader/ndf-uploader.service.js +1 -1
  468. package/esm2015/lib/components/ndf-uploader/nuxeo-base-url.js +1 -1
  469. package/esm2015/lib/components/ndf-uploader/providers/index.js +1 -1
  470. package/esm2015/lib/components/ndf-uploader/providers/nuxeo-provider.service.js +1 -1
  471. package/esm2015/lib/components/ndf-uploader/providers/s3-provider.service.js +1 -1
  472. package/esm2015/lib/components/no-data-found/index.js +1 -1
  473. package/esm2015/lib/components/no-data-found/no-data-found.component.js +1 -1
  474. package/esm2015/lib/components/no-data-found/no-data.module.js +1 -1
  475. package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +1 -1
  476. package/esm2015/lib/components/notifications/components/base-notifications.component.js +1 -1
  477. package/esm2015/lib/components/notifications/components/index.js +1 -1
  478. package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +1 -1
  479. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +2 -2
  480. package/esm2015/lib/components/notifications/components/notification-sortby-toggle/notification-sortby-toggle.component.js +2 -2
  481. package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +2 -2
  482. package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +2 -2
  483. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +2 -2
  484. package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +2 -2
  485. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +2 -2
  486. package/esm2015/lib/components/notifications/components/notifications-list/options.js +1 -1
  487. package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +2 -2
  488. package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +1 -1
  489. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +1 -1
  490. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +2 -2
  491. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +1 -1
  492. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +1 -1
  493. package/esm2015/lib/components/notifications/constants/date.js +1 -1
  494. package/esm2015/lib/components/notifications/constants/index.js +1 -1
  495. package/esm2015/lib/components/notifications/constants/pagination.js +1 -1
  496. package/esm2015/lib/components/notifications/constants/panel.js +1 -1
  497. package/esm2015/lib/components/notifications/constants/status.js +1 -1
  498. package/esm2015/lib/components/notifications/containers/index.js +1 -1
  499. package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +2 -2
  500. package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +1 -1
  501. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +1 -1
  502. package/esm2015/lib/components/notifications/directives/button.directive.js +1 -1
  503. package/esm2015/lib/components/notifications/directives/index.js +1 -1
  504. package/esm2015/lib/components/notifications/directives/notification.directive.js +1 -1
  505. package/esm2015/lib/components/notifications/index.js +1 -1
  506. package/esm2015/lib/components/notifications/models/common.js +1 -1
  507. package/esm2015/lib/components/notifications/models/index.js +1 -1
  508. package/esm2015/lib/components/notifications/models/notification-definition.model.js +1 -1
  509. package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
  510. package/esm2015/lib/components/notifications/models/notification-options.js +1 -1
  511. package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +1 -1
  512. package/esm2015/lib/components/notifications/models/notification-subscription.model.js +1 -1
  513. package/esm2015/lib/components/notifications/models/notification.model.js +1 -1
  514. package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
  515. package/esm2015/lib/components/notifications/models/paging-response.model.js +1 -1
  516. package/esm2015/lib/components/notifications/models/params.model.js +1 -1
  517. package/esm2015/lib/components/notifications/models/vocabularies.js +1 -1
  518. package/esm2015/lib/components/notifications/notifications.module.js +1 -1
  519. package/esm2015/lib/components/notifications/public-api.js +1 -1
  520. package/esm2015/lib/components/notifications/services/index.js +1 -1
  521. package/esm2015/lib/components/notifications/services/listener.service.js +1 -1
  522. package/esm2015/lib/components/notifications/services/notifications.service.js +1 -1
  523. package/esm2015/lib/components/notifications/services/params.service.js +1 -1
  524. package/esm2015/lib/components/notifications/services/response.service.js +1 -1
  525. package/esm2015/lib/components/notifications/services/socket.service.js +1 -1
  526. package/esm2015/lib/components/notifications/utilities/index.js +1 -1
  527. package/esm2015/lib/components/notifications/utilities/response.adapter.js +1 -1
  528. package/esm2015/lib/components/pagination/pagination/pagination.component.js +1 -1
  529. package/esm2015/lib/components/pagination/pagination.module.js +1 -1
  530. package/esm2015/lib/components/pdf-tron/directives/index.js +1 -1
  531. package/esm2015/lib/components/pdf-tron/directives/ndf-tron-extract-text.directive.js +1 -1
  532. package/esm2015/lib/components/pdf-tron/models/index.js +1 -1
  533. package/esm2015/lib/components/pdf-tron/models/tron.model.js +1 -1
  534. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +1 -1
  535. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +1 -1
  536. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +1 -1
  537. package/esm2015/lib/components/pdf-tron/pdftron/silent-pdftron.service.js +1 -1
  538. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +2 -2
  539. package/esm2015/lib/components/permissions/permission.service.js +1 -1
  540. package/esm2015/lib/components/permissions/permissions/permissions.component.js +1 -1
  541. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +1 -1
  542. package/esm2015/lib/components/permissions/permissions.module.js +1 -1
  543. package/esm2015/lib/components/reports/chart-panel.js +1 -1
  544. package/esm2015/lib/components/reports/charts/chart.const.js +1 -1
  545. package/esm2015/lib/components/reports/charts/chart.token.js +1 -1
  546. package/esm2015/lib/components/reports/charts/charts.module.js +1 -1
  547. package/esm2015/lib/components/reports/charts/components/base-chart.component.js +1 -1
  548. package/esm2015/lib/components/reports/charts/components/chart.component.js +1 -1
  549. package/esm2015/lib/components/reports/charts/components/data-chart.component.js +1 -1
  550. package/esm2015/lib/components/reports/charts/components/index.js +1 -1
  551. package/esm2015/lib/components/reports/charts/defaults/bar.js +1 -1
  552. package/esm2015/lib/components/reports/charts/defaults/doughnut.js +1 -1
  553. package/esm2015/lib/components/reports/charts/defaults/index.js +1 -1
  554. package/esm2015/lib/components/reports/charts/defaults/line.js +1 -1
  555. package/esm2015/lib/components/reports/charts/defaults/pie.js +1 -1
  556. package/esm2015/lib/components/reports/charts/index.js +1 -1
  557. package/esm2015/lib/components/reports/charts/models/index.js +1 -1
  558. package/esm2015/lib/components/reports/charts/models/options.js +1 -1
  559. package/esm2015/lib/components/reports/charts/models/plugins-options.js +1 -1
  560. package/esm2015/lib/components/reports/charts/models/response.js +1 -1
  561. package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +1 -1
  562. package/esm2015/lib/components/reports/charts/plugins/data-labels.js +1 -1
  563. package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +1 -1
  564. package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +1 -1
  565. package/esm2015/lib/components/reports/charts/plugins/index.js +1 -1
  566. package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +1 -1
  567. package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +1 -1
  568. package/esm2015/lib/components/reports/charts/public-api.js +1 -1
  569. package/esm2015/lib/components/reports/charts/services/index.js +1 -1
  570. package/esm2015/lib/components/reports/charts/services/statistic.service.js +1 -1
  571. package/esm2015/lib/components/reports/charts/utility/colors.js +1 -1
  572. package/esm2015/lib/components/reports/charts/utility/common.js +1 -1
  573. package/esm2015/lib/components/reports/charts/utility/css.js +1 -1
  574. package/esm2015/lib/components/reports/charts/utility/index.js +1 -1
  575. package/esm2015/lib/components/reports/index.js +1 -1
  576. package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +1 -1
  577. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +1 -1
  578. package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +1 -1
  579. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +1 -1
  580. package/esm2015/lib/components/reports/ndf-reports/base/index.js +1 -1
  581. package/esm2015/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.js +1 -1
  582. package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +1 -1
  583. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
  584. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +1 -1
  585. package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +1 -1
  586. package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +2 -2
  587. package/esm2015/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.js +2 -2
  588. package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +2 -2
  589. package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +1 -1
  590. package/esm2015/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.js +2 -2
  591. package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +1 -1
  592. package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +2 -2
  593. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +2 -2
  594. package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
  595. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  596. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
  597. package/esm2015/lib/components/reports/ndf-reports/components/index.js +1 -1
  598. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +1 -1
  599. package/esm2015/lib/components/reports/ndf-reports/constants/index.js +1 -1
  600. package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +1 -1
  601. package/esm2015/lib/components/reports/ndf-reports/containers/index.js +1 -1
  602. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
  603. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +47 -34
  604. package/esm2015/lib/components/reports/ndf-reports/directives/empty-content-template.directive.js +28 -0
  605. package/esm2015/lib/components/reports/ndf-reports/directives/header-panel-template.directive.js +28 -0
  606. package/esm2015/lib/components/reports/ndf-reports/directives/index.js +3 -1
  607. package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +1 -1
  608. package/esm2015/lib/components/reports/ndf-reports/index.js +1 -1
  609. package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
  610. package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
  611. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
  612. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  613. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
  614. package/esm2015/lib/components/reports/ndf-reports/models/digit.js +1 -1
  615. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  616. package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +1 -1
  617. package/esm2015/lib/components/reports/ndf-reports/models/index.js +1 -1
  618. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  619. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
  620. package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +1 -1
  621. package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +1 -1
  622. package/esm2015/lib/components/reports/ndf-reports/models/request.js +1 -1
  623. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +31 -17
  624. package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +1 -1
  625. package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +1 -1
  626. package/esm2015/lib/components/reports/ndf-reports/options/index.js +1 -1
  627. package/esm2015/lib/components/reports/ndf-reports/options/line.js +1 -1
  628. package/esm2015/lib/components/reports/ndf-reports/options/pie.js +1 -1
  629. package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +1 -1
  630. package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +20 -0
  631. package/esm2015/lib/components/reports/ndf-reports/public-api.js +6 -5
  632. package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +1 -1
  633. package/esm2015/lib/components/reports/ndf-reports/services/chart-callbacks-register.services.js +1 -1
  634. package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +1 -1
  635. package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +1 -1
  636. package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +1 -1
  637. package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +1 -1
  638. package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +1 -1
  639. package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +1 -1
  640. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +1 -1
  641. package/esm2015/lib/components/reports/ndf-reports/services/index.js +12 -11
  642. package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +29 -21
  643. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
  644. package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +1 -1
  645. package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +1 -1
  646. package/esm2015/lib/components/reports/ndf-reports/services/reports-data-transformers.service.js +1 -1
  647. package/esm2015/lib/components/reports/ndf-reports/services/reports-dialog.service.js +1 -1
  648. package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +56 -0
  649. package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +1 -1
  650. package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +1 -1
  651. package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +1 -1
  652. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +1 -1
  653. package/esm2015/lib/components/select/select/select.component.js +1 -1
  654. package/esm2015/lib/components/select/select.module.js +1 -1
  655. package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +1 -1
  656. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +1 -1
  657. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
  658. package/esm2015/lib/components/skeleton/index.js +1 -1
  659. package/esm2015/lib/components/skeleton/skeleton.component.js +1 -1
  660. package/esm2015/lib/components/skeleton/skeleton.module.js +1 -1
  661. package/esm2015/lib/components/skeleton/table-skeleton.component.js +1 -1
  662. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  663. package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +1 -1
  664. package/esm2015/lib/components/tables/dynamic-table/directives/empty-state.directive.js +1 -1
  665. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +1 -1
  666. package/esm2015/lib/components/tables/dynamic-table/dynamic-table.module.js +1 -1
  667. package/esm2015/lib/components/tables/dynamic-table/index.js +1 -1
  668. package/esm2015/lib/components/tables/dynamic-table/public-api.js +1 -1
  669. package/esm2015/lib/components/tables/dynamic-table/services/dynamic-table.service.js +1 -1
  670. package/esm2015/lib/components/tables/index.js +1 -1
  671. package/esm2015/lib/components/tables/ndf-table/components/index.js +1 -1
  672. package/esm2015/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.js +1 -1
  673. package/esm2015/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.js +2 -2
  674. package/esm2015/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.js +2 -2
  675. package/esm2015/lib/components/tables/ndf-table/components/table-export/table-export.component.js +2 -2
  676. package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +1 -1
  677. package/esm2015/lib/components/tables/ndf-table/constants/index.js +1 -1
  678. package/esm2015/lib/components/tables/ndf-table/constants/sizes.js +1 -1
  679. package/esm2015/lib/components/tables/ndf-table/containers/index.js +1 -1
  680. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +1 -1
  681. package/esm2015/lib/components/tables/ndf-table/directives/actions.directive.js +1 -1
  682. package/esm2015/lib/components/tables/ndf-table/directives/filter-custom.directive.js +1 -1
  683. package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -1
  684. package/esm2015/lib/components/tables/ndf-table/directives/search.directive.js +1 -1
  685. package/esm2015/lib/components/tables/ndf-table/index.js +1 -1
  686. package/esm2015/lib/components/tables/ndf-table/models/index.js +1 -1
  687. package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +1 -1
  688. package/esm2015/lib/components/tables/ndf-table/models/search.config.js +1 -1
  689. package/esm2015/lib/components/tables/ndf-table/models/table-column.js +1 -1
  690. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
  691. package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +1 -1
  692. package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
  693. package/esm2015/lib/components/tables/ndf-table/models/types.js +1 -1
  694. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +1 -1
  695. package/esm2015/lib/components/tables/ndf-table/public-api.js +1 -1
  696. package/esm2015/lib/components/tables/ndf-table/services/index.js +1 -1
  697. package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +1 -1
  698. package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +1 -1
  699. package/esm2015/lib/components/tables/public-api.js +1 -1
  700. package/esm2015/lib/components/tables/table/dynamic-column/dynamic-column.component.js +1 -1
  701. package/esm2015/lib/components/tables/table/dynamic-component.js +1 -1
  702. package/esm2015/lib/components/tables/table/index.js +1 -1
  703. package/esm2015/lib/components/tables/table/page-sizes-list/page-sizes-list.component.js +1 -1
  704. package/esm2015/lib/components/tables/table/public-api.js +1 -1
  705. package/esm2015/lib/components/tables/table/table/table.component.js +2 -2
  706. package/esm2015/lib/components/tables/table/table.module.js +1 -1
  707. package/esm2015/lib/components/toasts/components/notification-toast/notification-toast.component.js +1 -1
  708. package/esm2015/lib/components/toasts/index.js +1 -1
  709. package/esm2015/lib/components/toasts/public-api.js +1 -1
  710. package/esm2015/lib/components/toasts/toasts.module.js +1 -1
  711. package/esm2015/lib/components/user/user/user.component.js +1 -1
  712. package/esm2015/lib/components/user/user.module.js +1 -1
  713. package/esm2015/lib/components/users-card/users-card.component.js +2 -2
  714. package/esm2015/lib/components/users-card/users-card.module.js +1 -1
  715. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
  716. package/esm2015/lib/components/viewer-log/viewer-log.module.js +1 -1
  717. package/esm2015/lib/components/vocabulary/interfaces/op-type.interface.js +1 -1
  718. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +1 -1
  719. package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +1 -1
  720. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +1 -1
  721. package/esm2015/lib/components/vocabulary/vocabulary.module.js +1 -1
  722. package/esm2015/lib/configuration/app-config.service.js +1 -1
  723. package/esm2015/lib/configuration/helpers/app-initializer.js +1 -1
  724. package/esm2015/lib/core/adapters/adapter.service.js +1 -1
  725. package/esm2015/lib/core/core.module.js +1 -1
  726. package/esm2015/lib/core/enums/language.enum.js +1 -1
  727. package/esm2015/lib/core/env/env-manager.js +1 -1
  728. package/esm2015/lib/core/env/index.js +1 -1
  729. package/esm2015/lib/core/models/api-response.model.js +1 -1
  730. package/esm2015/lib/core/models/automation-response.model.js +1 -1
  731. package/esm2015/lib/core/models/base-response.models.js +1 -1
  732. package/esm2015/lib/core/models/component.model.js +1 -1
  733. package/esm2015/lib/core/models/index.js +1 -1
  734. package/esm2015/lib/core/services/callApi/call-api.service.js +1 -1
  735. package/esm2015/lib/core/services/column-renderer/column-renderer-registry.service.js +1 -1
  736. package/esm2015/lib/core/services/column-renderer/index.js +1 -1
  737. package/esm2015/lib/core/services/extension/action.extensions.js +1 -1
  738. package/esm2015/lib/core/services/extension/component-register.service.js +1 -1
  739. package/esm2015/lib/core/services/extension/extenion-utils.js +1 -1
  740. package/esm2015/lib/core/services/extension/extension-element.js +1 -1
  741. package/esm2015/lib/core/services/extension/extension-loader.service.js +1 -1
  742. package/esm2015/lib/core/services/extension/extension.service.js +1 -1
  743. package/esm2015/lib/core/services/index.js +1 -1
  744. package/esm2015/lib/core/services/initialization/initialization.service.js +1 -1
  745. package/esm2015/lib/core/services/localStorag/local-storag.service.js +1 -1
  746. package/esm2015/lib/core/services/ndf-transform.service.js +1 -1
  747. package/esm2015/lib/core/services/nuxeo/new-nuxeo-overide.js +1 -1
  748. package/esm2015/lib/core/services/nuxeo/nuxeo-override.js +1 -1
  749. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +1 -1
  750. package/esm2015/lib/core/services/roles/roles.service.js +1 -1
  751. package/esm2015/lib/core/services/translation/translate-loader.service.js +1 -1
  752. package/esm2015/lib/core/services/translation/translation.service.js +1 -1
  753. package/esm2015/lib/core/services/user/user-preferences.service.js +1 -1
  754. package/esm2015/lib/core/tokens/index.js +1 -1
  755. package/esm2015/lib/core/tokens/project.token.js +1 -1
  756. package/esm2015/lib/core/utilities/moment-date-adapter.js +1 -1
  757. package/esm2015/lib/core/utilities/utility.service.js +1 -1
  758. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
  759. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +1 -1
  760. package/esm2015/lib/directive/directive.module.js +1 -1
  761. package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +1 -1
  762. package/esm2015/lib/directive/permissions/evaluators.service.js +1 -1
  763. package/esm2015/lib/directive/permissions/permissions.directive.js +1 -1
  764. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +1 -1
  765. package/esm2015/lib/directive/rtl/set-rtl.directive.js +1 -1
  766. package/esm2015/lib/nuxeo-development-framework.component.js +1 -1
  767. package/esm2015/lib/nuxeo-development-framework.module.js +1 -1
  768. package/esm2015/lib/nuxeo-development-framework.service.js +1 -1
  769. package/esm2015/lib/pipes/file-size.pipe.js +1 -1
  770. package/esm2015/lib/pipes/hijri-date.pipe.js +1 -1
  771. package/esm2015/lib/pipes/localized-date.pipe.js +1 -1
  772. package/esm2015/lib/pipes/multi-value.pipe.js +1 -1
  773. package/esm2015/lib/pipes/pipes.module.js +1 -1
  774. package/esm2015/lib/pipes/secure-html.pipe.js +1 -1
  775. package/esm2015/lib/pipes/secure.pipe.js +1 -1
  776. package/esm2015/lib/pipes/time-ago.pipe.js +1 -1
  777. package/esm2015/lib/shared/components/base/base-column.component.js +1 -1
  778. package/esm2015/lib/shared/components/base/base-dialog.component.js +1 -1
  779. package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
  780. package/esm2015/lib/shared/components/base/base.component.js +1 -1
  781. package/esm2015/lib/shared/components/base/destroy.subject.js +1 -1
  782. package/esm2015/lib/shared/components/base/index.js +1 -1
  783. package/esm2015/lib/shared/components/button/button.component.js +1 -1
  784. package/esm2015/lib/shared/components/general-notification-popup/general-notification-popup.component.js +1 -1
  785. package/esm2015/lib/shared/components/index.js +1 -1
  786. package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
  787. package/esm2015/lib/shared/components/no-data/no-data.component.js +1 -1
  788. package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
  789. package/esm2015/lib/shared/components/nuxeo-dialog/index.js +1 -1
  790. package/esm2015/lib/shared/components/nuxeo-dialog/models/confirm-options.model.js +1 -1
  791. package/esm2015/lib/shared/components/nuxeo-dialog/models/dialog-option.model.js +1 -1
  792. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +1 -1
  793. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +2 -2
  794. package/esm2015/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.js +1 -1
  795. package/esm2015/lib/shared/components/read-more/read-more.component.js +1 -1
  796. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +1 -1
  797. package/esm2015/lib/shared/components/spinner/spinner.component.js +1 -1
  798. package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
  799. package/esm2015/lib/shared/constants/editor-config-type.js +1 -1
  800. package/esm2015/lib/shared/constants/index.js +1 -1
  801. package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +1 -1
  802. package/esm2015/lib/shared/directives/element-height.directive.js +1 -1
  803. package/esm2015/lib/shared/directives/fluid-height.directive.js +1 -1
  804. package/esm2015/lib/shared/directives/index.js +1 -1
  805. package/esm2015/lib/shared/evaluator/evaluator.js +1 -1
  806. package/esm2015/lib/shared/evaluator/index.js +1 -1
  807. package/esm2015/lib/shared/evaluator/types.js +1 -1
  808. package/esm2015/lib/shared/index.js +1 -1
  809. package/esm2015/lib/shared/libraryShared.module.js +1 -1
  810. package/esm2015/lib/shared/models/index.js +1 -1
  811. package/esm2015/lib/shared/models/mapper/index.js +1 -1
  812. package/esm2015/lib/shared/models/mapper/nuxeo-mapper.js +1 -1
  813. package/esm2015/lib/shared/models/ndf-request.model.js +1 -1
  814. package/esm2015/lib/shared/models/nuxeo-response.model.js +1 -1
  815. package/esm2015/lib/shared/models/task.model.js +1 -1
  816. package/esm2015/lib/shared/models/type-helpers.js +1 -1
  817. package/esm2015/lib/shared/services/base/base-editor-config.service.js +1 -1
  818. package/esm2015/lib/shared/services/base/base.service.js +1 -1
  819. package/esm2015/lib/shared/services/base/cache-base.service.js +1 -1
  820. package/esm2015/lib/shared/services/base/config/default-ttl-config.js +1 -1
  821. package/esm2015/lib/shared/services/base/config/index.js +1 -1
  822. package/esm2015/lib/shared/services/base/constants/default-cache-options.js +1 -1
  823. package/esm2015/lib/shared/services/base/constants/index.js +1 -1
  824. package/esm2015/lib/shared/services/base/http-base.service.js +1 -1
  825. package/esm2015/lib/shared/services/base/index.js +1 -1
  826. package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
  827. package/esm2015/lib/shared/services/base/models/http-options.model.js +1 -1
  828. package/esm2015/lib/shared/services/base/models/index.js +1 -1
  829. package/esm2015/lib/shared/services/base/models/operation-options.model.js +1 -1
  830. package/esm2015/lib/shared/services/base/models/query-options.model.js +1 -1
  831. package/esm2015/lib/shared/services/base/models/request-options.model.js +1 -1
  832. package/esm2015/lib/shared/services/base/override-token.service.js +1 -1
  833. package/esm2015/lib/shared/services/index.js +1 -1
  834. package/esm2015/lib/shared-services/apis-errors-messages.service.js +1 -1
  835. package/esm2015/lib/shared-services/dialog-mangment.service.js +1 -1
  836. package/esm2015/lib/shared-services/dynamic-form.service.js +1 -1
  837. package/esm2015/lib/shared-services/file-manager.adapter.js +1 -1
  838. package/esm2015/lib/shared-services/file-manager.service.js +1 -1
  839. package/esm2015/lib/shared-services/global-admin.service.js +1 -1
  840. package/esm2015/lib/shared-services/global-pdftron.service.js +1 -1
  841. package/esm2015/lib/shared-services/mainfolder.service.js +1 -1
  842. package/esm2015/lib/shared-services/publishing-document.service.js +1 -1
  843. package/esm2015/lib/shared-services/recently-viewed.service.js +1 -1
  844. package/esm2015/lib/shared-services/shared-docs.service.js +1 -1
  845. package/esm2015/lib/shared-services/shared-services.module.js +1 -1
  846. package/esm2015/lib/shared-services/upload-file.service.js +1 -1
  847. package/esm2015/lib/shared-services/upload-managment.service.js +1 -1
  848. package/esm2015/lib/shared-services/user.service.js +1 -1
  849. package/esm2015/nuxeo-development-framework.js +1 -1
  850. package/esm2015/public-api.js +1 -1
  851. package/fesm2015/nuxeo-development-framework.js +1225 -1073
  852. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  853. package/lib/components/diagrams/components/custom-connection.component.d.ts +1 -1
  854. package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts +1 -1
  855. package/lib/components/reports/charts/components/base-chart.component.d.ts +1 -1
  856. package/lib/components/reports/ndf-reports/base/base-chart.d.ts +1 -1
  857. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +1 -17
  858. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +1 -1
  859. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +6 -4
  860. package/lib/components/reports/ndf-reports/directives/empty-content-template.directive.d.ts +9 -0
  861. package/lib/components/reports/ndf-reports/directives/header-panel-template.directive.d.ts +9 -0
  862. package/lib/components/reports/ndf-reports/directives/index.d.ts +2 -0
  863. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +3 -1
  864. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +29 -26
  865. package/lib/components/reports/ndf-reports/pipes/check-condition.pipe.d.ts +8 -0
  866. package/lib/components/reports/ndf-reports/public-api.d.ts +5 -4
  867. package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +14 -14
  868. package/lib/components/reports/ndf-reports/services/index.d.ts +11 -10
  869. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +13 -4
  870. package/lib/components/reports/ndf-reports/services/reports-hooks.service.d.ts +12 -0
  871. package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts +1 -1
  872. package/lib/components/tables/ndf-table/models/table-options.d.ts +1 -1
  873. package/package.json +1 -1
@@ -289,7 +289,7 @@ export class TreeviewSelectComponent {
289
289
  }
290
290
  }
291
291
  TreeviewSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TreeviewSelectComponent, deps: [{ token: i1.TreeviewI18n }, { token: i2.TranslationService }, { token: i3.DepartmentApiService }, { token: i4.DepartmentManagementService }, { token: i5.RolesService }, { token: i6.NuxeoService }, { token: i7.GlobalAdminService }], target: i0.ɵɵFactoryTarget.Component });
292
- TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder", defaultSelection: "defaultSelection", displayDepTypee: "displayDepTypee", disabled: "disabled", selectDepChildren: "selectDepChildren", displayIsAllowRecExternal: "displayIsAllowRecExternal", fixedParentNode: "fixedParentNode", showTreeActions: "showTreeActions" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n\t#itemTemplate\r\n\tlet-item=\"item\"\r\n\tlet-onCollapseExpand=\"onCollapseExpand\"\r\n\tlet-onCheckedChange=\"onCheckedChange\"\r\n>\r\n\t<!-- single -->\r\n\t<div *ngIf=\"!treeview && !multiple\">\r\n\t\t<div class=\"text-nowrap row-item\" [ngClass]=\"{ active: item.value === this.value }\">\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n\t\t\t<label *ngIf=\"item.disabled\" class=\"form-check-label\">{{ item.text }}</label>\r\n\t\t\t<label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{ item.text }}</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- Multiple -->\r\n\t<div *ngIf=\"!treeview && multiple\">\r\n\t\t<div class=\"text-nowrap row-item\" [ngClass]=\"{ active: item.value === this.value }\">\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n\t\t\t<div class=\"multiple-treeview\">\r\n\t\t\t\t<mat-checkbox [checked]=\"isItemSelected(item)\" (change)=\"selectMultiple($event.checked, item)\">\r\n\t\t\t\t\t<span> {{ item.text }} </span>\r\n\t\t\t\t</mat-checkbox>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- treeView -->\r\n\t<div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n\t\t<div\r\n\t\t\t(mouseenter)=\"hoverField.style.display = 'flex'\"\r\n\t\t\t(mouseleave)=\"hoverField.style.display = 'none'\"\r\n\t\t\tclass=\"text-nowrap row-item treeview-row\"\r\n\t\t\t[ngClass]=\"{\r\n\t\t\t\tselected: item.value == selectedItem,\r\n\t\t\t\ttreeParentNode: item.value === fixedParentNode?.value\r\n\t\t\t}\"\r\n\t\t>\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapsed(item)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<label class=\"form-check-label-treeview\" (click)=\"select(item)\">\r\n\t\t\t\t<ng-conteiner *ngIf=\"item.value != fixedParentNode?.value\">{{ item.text }}</ng-conteiner>\r\n\t\t\t\t<ng-conteiner *ngIf=\"item.value === fixedParentNode?.value\">{{ item.text | translate }}</ng-conteiner>\r\n\t\t\t\t<span #hoverField class=\"hoverField\">\r\n\t\t\t\t\t<ng-container *ngIf=\"showTreeActions\">\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"onAction($event, 'update', item)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<li class=\"bi bi-pencil\"></li>\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ 'department_management.form.toolTip_message' | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"onAction($event, 'add', item)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<li class=\"bi bi-plus\"></li>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</span>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- treeView as form control -->\r\n\t<div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n\t\t<div\r\n\t\t\tclass=\"text-nowrap row-item treeview-row-form-control\"\r\n\t\t\t[ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n\t\t>\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapsed(item)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<label class=\"form-check-label-treeview\" (click)=\"select(item)\">{{ item.text }} </label>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n<ng-template\r\n\t#headerTemplate\r\n\tlet-config=\"config\"\r\n\tlet-item=\"item\"\r\n\tlet-onCollapseExpand=\"onCollapseExpand\"\r\n\tlet-onCheckedChange=\"onCheckedChange\"\r\n\tlet-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n\t<div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<input\r\n\t\t\t\tclass=\"form-control\"\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\t[placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n\t\t\t\t[(ngModel)]=\"filterText\"\r\n\t\t\t\t(ngModelChange)=\"onFilterTextChange($event)\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n\t<div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n\t\t\t\t<strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n\t\t\t</label>\r\n\t\t\t<label *ngIf=\"config.hasCollapseExpand\" class=\"float-right\" (click)=\"onCollapseExpand()\">\r\n\t\t\t\t<i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n\t\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-arrows-angle-contract\"></span>\r\n\t\t\t\t</i>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{\r\n\t\t'department_management.selectDefault' | translate\r\n\t}}</a>\r\n\t<div\r\n\t\t*ngIf=\"config.hasDivider\"\r\n\t\tclass=\"dropdown-divider\"\r\n\t\t[ngClass]=\"{ 'dropdown-divider-noMargin': defaultSelect }\"\r\n\t></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n\t<div class=\"dropdown-wrapper\">\r\n\t\t<ngx-dropdown-treeview\r\n\t\t\t[config]=\"config\"\r\n\t\t\t[headerTemplate]=\"headerTemplate\"\r\n\t\t\t[items]=\"items\"\r\n\t\t\t[itemTemplate]=\"itemTemplate\"\r\n\t\t>\r\n\t\t</ngx-dropdown-treeview>\r\n\t\t<div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n\t</div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n\t<div class=\"multiple-tree-view dropdown-wrapper\">\r\n\t\t<ngx-dropdown-treeview [config]=\"config\" [items]=\"items\" [itemTemplate]=\"itemTemplate\"> </ngx-dropdown-treeview>\r\n\t\t<div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n\t</div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n\t<div class=\"tree-view\">\r\n\t\t<ngx-treeview [config]=\"config\" [headerTemplate]=\"headerTemplate\" [items]=\"items\" [itemTemplate]=\"itemTemplate\">\r\n\t\t</ngx-treeview>\r\n\t</div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n\t<div class=\"tree-view-form-control\">\r\n\t\t<ngx-treeview [config]=\"config\" [headerTemplate]=\"headerTemplate\" [items]=\"items\" [itemTemplate]=\"itemTemplate\">\r\n\t\t</ngx-treeview>\r\n\t</div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.dropdown-wrapper{position:relative}.dropdown-wrapper .disable-effect{position:absolute;top:0;bottom:0;left:0;right:0;z-index:99}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
292
+ TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder", defaultSelection: "defaultSelection", displayDepTypee: "displayDepTypee", disabled: "disabled", selectDepChildren: "selectDepChildren", displayIsAllowRecExternal: "displayIsAllowRecExternal", fixedParentNode: "fixedParentNode", showTreeActions: "showTreeActions" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n\t#itemTemplate\r\n\tlet-item=\"item\"\r\n\tlet-onCollapseExpand=\"onCollapseExpand\"\r\n\tlet-onCheckedChange=\"onCheckedChange\"\r\n>\r\n\t<!-- single -->\r\n\t<div *ngIf=\"!treeview && !multiple\">\r\n\t\t<div class=\"text-nowrap row-item\" [ngClass]=\"{ active: item.value === this.value }\">\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n\t\t\t<label *ngIf=\"item.disabled\" class=\"form-check-label\">{{ item.text }}</label>\r\n\t\t\t<label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{ item.text }}</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- Multiple -->\r\n\t<div *ngIf=\"!treeview && multiple\">\r\n\t\t<div class=\"text-nowrap row-item\" [ngClass]=\"{ active: item.value === this.value }\">\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n\t\t\t<div class=\"multiple-treeview\">\r\n\t\t\t\t<mat-checkbox [checked]=\"isItemSelected(item)\" (change)=\"selectMultiple($event.checked, item)\">\r\n\t\t\t\t\t<span> {{ item.text }} </span>\r\n\t\t\t\t</mat-checkbox>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- treeView -->\r\n\t<div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n\t\t<div\r\n\t\t\t(mouseenter)=\"hoverField.style.display = 'flex'\"\r\n\t\t\t(mouseleave)=\"hoverField.style.display = 'none'\"\r\n\t\t\tclass=\"text-nowrap row-item treeview-row\"\r\n\t\t\t[ngClass]=\"{\r\n\t\t\t\tselected: item.value == selectedItem,\r\n\t\t\t\ttreeParentNode: item.value === fixedParentNode?.value\r\n\t\t\t}\"\r\n\t\t>\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapsed(item)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<label class=\"form-check-label-treeview\" (click)=\"select(item)\">\r\n\t\t\t\t<ng-conteiner *ngIf=\"item.value != fixedParentNode?.value\">{{ item.text }}</ng-conteiner>\r\n\t\t\t\t<ng-conteiner *ngIf=\"item.value === fixedParentNode?.value\">{{ item.text | translate }}</ng-conteiner>\r\n\t\t\t\t<span #hoverField class=\"hoverField\">\r\n\t\t\t\t\t<ng-container *ngIf=\"showTreeActions\">\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"onAction($event, 'update', item)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<li class=\"bi bi-pencil\"></li>\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ 'department_management.form.toolTip_message' | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"onAction($event, 'add', item)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<li class=\"bi bi-plus\"></li>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</span>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- treeView as form control -->\r\n\t<div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n\t\t<div\r\n\t\t\tclass=\"text-nowrap row-item treeview-row-form-control\"\r\n\t\t\t[ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n\t\t>\r\n\t\t\t<i *ngIf=\"item.children\" (click)=\"onCollapsed(item)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"></span>\r\n\r\n\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-caret-down-fill caret-icon\"></span>\r\n\t\t\t</i>\r\n\t\t\t<label class=\"form-check-label-treeview\" (click)=\"select(item)\">{{ item.text }} </label>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n<ng-template\r\n\t#headerTemplate\r\n\tlet-config=\"config\"\r\n\tlet-item=\"item\"\r\n\tlet-onCollapseExpand=\"onCollapseExpand\"\r\n\tlet-onCheckedChange=\"onCheckedChange\"\r\n\tlet-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n\t<div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<input\r\n\t\t\t\tclass=\"form-control\"\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\t[placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n\t\t\t\t[(ngModel)]=\"filterText\"\r\n\t\t\t\t(ngModelChange)=\"onFilterTextChange($event)\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n\t<div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n\t\t\t\t<strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n\t\t\t</label>\r\n\t\t\t<label *ngIf=\"config.hasCollapseExpand\" class=\"float-right\" (click)=\"onCollapseExpand()\">\r\n\t\t\t\t<i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\r\n\t\t\t\t\t<span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n\t\t\t\t\t<span *ngSwitchCase=\"false\" class=\"bi bi-arrows-angle-contract\"></span>\r\n\t\t\t\t</i>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\t</div>\r\n\t<a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{\r\n\t\t'department_management.selectDefault' | translate\r\n\t}}</a>\r\n\t<div\r\n\t\t*ngIf=\"config.hasDivider\"\r\n\t\tclass=\"dropdown-divider\"\r\n\t\t[ngClass]=\"{ 'dropdown-divider-noMargin': defaultSelect }\"\r\n\t></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n\t<div class=\"dropdown-wrapper\">\r\n\t\t<ngx-dropdown-treeview\r\n\t\t\t[config]=\"config\"\r\n\t\t\t[headerTemplate]=\"headerTemplate\"\r\n\t\t\t[items]=\"items\"\r\n\t\t\t[itemTemplate]=\"itemTemplate\"\r\n\t\t>\r\n\t\t</ngx-dropdown-treeview>\r\n\t\t<div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n\t</div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n\t<div class=\"multiple-tree-view dropdown-wrapper\">\r\n\t\t<ngx-dropdown-treeview [config]=\"config\" [items]=\"items\" [itemTemplate]=\"itemTemplate\"> </ngx-dropdown-treeview>\r\n\t\t<div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n\t</div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n\t<div class=\"tree-view\">\r\n\t\t<ngx-treeview [config]=\"config\" [headerTemplate]=\"headerTemplate\" [items]=\"items\" [itemTemplate]=\"itemTemplate\">\r\n\t\t</ngx-treeview>\r\n\t</div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n\t<div class=\"tree-view-form-control\">\r\n\t\t<ngx-treeview [config]=\"config\" [headerTemplate]=\"headerTemplate\" [items]=\"items\" [itemTemplate]=\"itemTemplate\">\r\n\t\t</ngx-treeview>\r\n\t</div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.dropdown-wrapper{position:relative}.dropdown-wrapper .disable-effect{position:absolute;top:0;bottom:0;left:0;right:0;z-index:99}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
293
293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TreeviewSelectComponent, decorators: [{
294
294
  type: Component,
295
295
  args: [{
@@ -347,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
347
347
  }], showTreeActions: [{
348
348
  type: Input
349
349
  }] } });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QvZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFFVCxpQkFBaUIsR0FHbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQ0wsWUFBWSxFQUVaLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsY0FBYyxHQUNmLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk3RSxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBQ3RDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVFILE1B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QS9CLEtBQUs7Z0JBRUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRVAseUJBQXlCO3NCQUR4QixTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNOUMsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOaWwgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJlZXZpZXdJMThuLFxyXG4gIFRyZWV2aWV3SXRlbSxcclxuICBUcmVldmlld0NvbmZpZyxcclxuICBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LFxyXG4gIFRyZWV2aWV3SGVscGVyLFxyXG59IGZyb20gXCJuZ3gtdHJlZXZpZXdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfSBmcm9tIFwiLi9kcm9wZG93bi10cmVldmlldy1zZWxlY3QtaTE4blwiO1xyXG5pbXBvcnQgeyBSb2xlc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9yb2xlcy9yb2xlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtYWRtaW4uc2VydmljZVwiO1xyXG5pbXBvcnQgX2ZpbmQgZnJvbSAnbG9kYXNoL2ZpbmQnO1xyXG5pbXBvcnQgX2lzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xyXG4vKipcclxuICogQSB0cmVlIHZpZXcgc2VsZWN0b3IgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgaW4gcmVhY3RpdmUgYW5kIHRlbXBsYXRlIGRyaXZlbiBmb3JtcyxcclxuICogaXQgY2FuIGJlIGEgZmxhdCB0cmVlIG9yIGEgZHJvcGRvd25cclxuICogQHRpdGxlXHJcbiAqIFRyZWUgdmlldyBzZWxlY3RvclxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcclxuICogW3RyZWV2aWV3XT1cImZhbHNlXCJcclxuICogW211bHRpcGxlXT1cImZhbHNlXCJcclxuICogW2l0ZW1zXT1cIml0ZW1zVHJlZVwiXHJcbiAqICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gKiBbKHZhbHVlKV09XCJzZWxlY3RlZFZhbHVlXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVHJlZXZpZXdJMThuLCB1c2VDbGFzczogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVldmlld1NlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG11bHRpcGxlU2VsZWN0aW9uID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtO1xyXG4gIHNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgc2hvd1BsdXMgPSBmYWxzZTtcclxuICBwcmVTZWxlY3RlZCA9IFtdO1xyXG4gIG15RGVwYXJ0bWVudDogYW55O1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZXZpZXcgPSBmYWxzZTtcclxuICAvKiogdXNlIHRyZWUgdmlldyBpbnNpZGUgZm9ybSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZVZpZXdBc0Zvcm1Db250cm9sID0gZmFsc2U7XHJcbiAgLyoqIENvbmZpZyBvYmplY3QgKi9cclxuICBASW5wdXQoKSBjb25maWc6IFRyZWV2aWV3Q29uZmlnO1xyXG4gIC8qKiBJdGVtcyB0cmVlICovXHJcbiAgQElucHV0KCkgaXRlbXM6IFRyZWV2aWV3SXRlbVtdO1xyXG4gIC8qKiBTZWxlY3RlZCB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgLyoqIGNhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHZhbHVlIGNoYW5nZSAqL1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQE91dHB1dCgpIHBsdXNDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcbiAgLyoqIGN1c3RvbSBwYWdlIHByb3ZpZGVyIHRvIGdldCBkZXBhcnRtZW50IG5lc3RlZCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudE5lc3RlZFRyZWU7XHJcbiAgLyoqIHVzZSBvdXRzaWRlIGN1c3RvbSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSBpbmVyIGZ1bmN0aW9uICAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb24gPSBmYWxzZTtcclxuICAvKiogY3VzdG9tIHByZWZpeCB0byBiZSB1c2VkIGZvciBhZGFwdGluZyBkYXRhIGNvbWluZyBmcm9tIGFwaSAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVByZWZpeDtcclxuICAvKiogY3VzdG9tIHBhcmVudCBwcm9wZXJ0eSBuYW1lIHRvIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRTZWxlY3Rpb246IHN0cmluZztcclxuICAvKiogZGlzcGxheSBpbnB1dCBEZXBUeXBlZSBpbiBhZGQgZGlhbG9nIG9mIGRlcGFydGVtZW50ICovXHJcbiAgQElucHV0KCkgZGlzcGxheURlcFR5cGVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0RGVwQ2hpbGRyZW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQFZpZXdDaGlsZChEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkcm9wZG93blRyZWV2aWV3Q29tcG9uZW50OiBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50O1xyXG4gIGZpbHRlclRleHQ6IHN0cmluZztcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIG9uRGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIGZpeGVkUGFyZW50Tm9kZTogeyB0ZXh0OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfTtcclxuICBwcml2YXRlIGRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuOiBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjtcclxuICBASW5wdXQoKSBzaG93VHJlZUFjdGlvbnMgPSB0cnVlO1xyXG4gIC8vIHRoaXMgY29tcG9uZW50IGlzIHVzZWQgaW4gdHdvIHBsYWNlcyB0aGUgZmxhZyBpcyB0aGlzLnRyZWV2aWV3XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG46IFRyZWV2aWV3STE4bixcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaVNlcnZpY2U6IERlcGFydG1lbnRBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50TWFuYWdtZW50OiBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvbGVzU2VydmljZTogUm9sZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsQWRtaW46IEdsb2JhbEFkbWluU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb25maWcgPSBUcmVldmlld0NvbmZpZy5jcmVhdGUoe1xyXG4gICAgICBoYXNBbGxDaGVja0JveDogZmFsc2UsXHJcbiAgICAgIGhhc0NvbGxhcHNlRXhwYW5kOiBmYWxzZSxcclxuICAgICAgaGFzRmlsdGVyOiB0cnVlLFxyXG4gICAgICBtYXhIZWlnaHQ6IDIwMCxcclxuICAgICAgZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQ6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gPSBpMThuIGFzIERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNldERlZmF1bHRTZWxlY3Rpb24odGhpcy5kZWZhdWx0U2VsZWN0aW9uKTtcclxuICAgIHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJhYmljID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmVldmlldyAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAvLyB0aGlzLiBmdW5jdGlvbiBpcyB0byBzZXQgdWkgd2l0aCBwcmUgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgLy8gZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgcGFnZSBnZXQgdGhlIHZhbHVlIGFuZCBzZW5kIGl0IHRvIGhlcmVcclxuICAgICAgLy8gd2UgdXNlIHRoZSB2YWx1ZSBzZW50IHRvIGhlcmUgYW5kIHNlYXJjaCBmb3IgaXRzIGl0ZW0gb24gb3VyIGl0ZW1zIGFuZCBzZXQgaXQgYXMgdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgaWYgKChpdGVtLnZhbHVlID09PSBjb21wYXJlV2l0aFZhbHVlKSB8fCAoaXRlbS52YWx1ZS50aXRsZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QoaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmludGVybmFsQ2hpbGRyZW4pIHtcclxuICAgICAgICBpdGVtLmludGVybmFsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShjaGlsZCwgY29tcGFyZVdpdGhWYWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdERlZmF1bHQoKSB7XHJcbiAgICBsZXQgb3B0aW9uID0ge1xyXG4gICAgICAnaXNHbG9iYWxBZG1pbic6IHRoaXMuZ2xvYmFsQWRtaW4uaXNHbG9iYWxBZG1pbixcclxuICAgICAgJ2FjdGl2ZVRlbmFudCc6IHRoaXMuZ2xvYmFsQWRtaW4uYWN0aXZlVGVuYW50LFxyXG4gICAgICAndGVuYW50SWQnOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMudGVuYW50SWRcclxuICAgIH07XHJcbiAgICB0aGlzLm15RGVwYXJ0bWVudCA9IHRoaXMucm9sZXNTZXJ2aWNlLmdldFVzZXJEZXBhcnRtZW50KFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLFxyXG4gICAgICAnY3RzX3JvbGVfJyxcclxuICAgICAgb3B0aW9uXHJcbiAgICApO1xyXG4gICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShpdGVtLCB0aGlzLm15RGVwYXJ0bWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VsZWN0KGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgLy8gaWYgKCFpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkSXRlbSgpOiB2b2lkIHtcclxuICAgIGlmICghaXNOaWwodGhpcy5pdGVtcykpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gVHJlZXZpZXdIZWxwZXIuZmluZEl0ZW1Jbkxpc3QoXHJcbiAgICAgICAgdGhpcy5pdGVtcyxcclxuICAgICAgICB0aGlzLnZhbHVlXHJcbiAgICAgICkgPz8gdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS52YWx1ZS51aWQgPT09IHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLnNlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VsZWN0SXRlbShpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIGRvY3VtZW50LmJvZHkuY2xpY2soKTtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGVkSXRlbSAhPT0gaXRlbSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbaXRlbV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGlmICh0aGlzLnRyZWV2aWV3KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAvLyB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZS50aXRsZSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpdGVtLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0TXVsdGlwbGUoZSwgaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0RGVwQ2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgIH1cclxuICAgIGlmIChlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5pbmRleE9mKGUpIDwgMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICBdKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvblBsdXNDbGlja2VkKGU6IE1vdXNlRXZlbnQsIGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMucGx1c0NsaWNrZWQuZW1pdChpdGVtLnZhbHVlLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgIGNsaWNrIGV2ZW50XHJcbiAgICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiAoYWRkICwgdXBkYXRlKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQWN0aW9uKGU6IE1vdXNlRXZlbnQsIGFjdGlvbjogc3RyaW5nLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgLy8gZW1pdCBhY3Rpb24gdG8gb3V0c2lkZSB0byBleGVjdXRlIGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50IFxyXG4gICAgICAgIGlmICh0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGl0ZW06IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCBmYWxzZSwgdGhpcy5kaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsLCB0aGlzLmRpc3BsYXlEZXBUeXBlZSwgaXRlbS52YWx1ZS50aXRsZSwgaXRlbSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFjdGlvbiA9PT0gXCJ1cGRhdGVcIikge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZUN1c3RvbUFkZEVkaXRBY3Rpb24pIHtcclxuICAgICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGl0ZW06IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ21lbnRcclxuICAgICAgICAgICAgLm9wZW5Gb3JtRGlhbG9nKGl0ZW0udmFsdWUudWlkLCB0cnVlLCB0aGlzLmRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWwsIHRoaXMuZGlzcGxheURlcFR5cGVlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLmdldERlcGFydG1lbnRUcmVlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgICAgIHJlcy5lbnRyaWVzLFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZWQoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICBpdGVtLmNvbGxhcHNlZCA9ICFpdGVtLmNvbGxhcHNlZDtcclxuICAgIGlmIChpdGVtLnZhbHVlLmxldmVsID09PSAyKSB7XHJcbiAgICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgICBpdGVtLnZhbHVlLnRpdGxlLFxyXG4gICAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgcmVzLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKmR1ZSB0byB0aGUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIHdoaWNoIHN0YXRlZCB0aGF0IG1vcmUgdGhhbiAzIGxldmVscyB3aWxsIGV4aXN0ZWQgdGhlIGN1cnJlbnQgYXBpIHN1cHBvcnQgb25seSAzIGxldmVscyBzbyAqd2UgaGF2ZSB0byBpbmplY3QgMyBuZXcgbGV2ZWxzIG9uIGVhY2ggdHJlZSBlbmRcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICB1cGRhdGUoaXRlbSkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZVxyXG4gICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgaXRlbS52YWx1ZS50aXRsZSxcclxuICAgICAgICB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlID8gdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA6ICdQUF9EZXBhcnRtZW50JyxcclxuICAgICAgICB0aGlzLmN1c3RvbVBhcmVudFByb3BlcnR5KVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICBkYXRhLmVudHJpZXMsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4geyB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBpc0l0ZW1TZWxlY3RlZChpdGVtKSB7XHJcbiAgICByZXR1cm4gX2ZpbmQodGhpcy5tdWx0aXBsZVNlbGVjdGlvbiwgKHEpID0+IF9pc0VxdWFsKHEsIGl0ZW0udmFsdWUpKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlXHJcblx0I2l0ZW1UZW1wbGF0ZVxyXG5cdGxldC1pdGVtPVwiaXRlbVwiXHJcblx0bGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuXHRsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuPlxyXG5cdDwhLS0gc2luZ2xlIC0tPlxyXG5cdDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgIW11bHRpcGxlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW1cIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSB9XCI+XHJcblx0XHRcdDxpICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIj5cclxuXHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIj48L3NwYW4+XHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0XHQ8IS0tIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+e3tcclxuICAgICAgICBpdGVtLnRleHRcclxuICAgICAgfX08L2xhYmVsPiAtLT5cclxuXHRcdFx0PGxhYmVsICpuZ0lmPVwiaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPnt7IGl0ZW0udGV4dCB9fTwvbGFiZWw+XHJcblx0XHRcdDxsYWJlbCAqbmdJZj1cIiFpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7IGl0ZW0udGV4dCB9fTwvbGFiZWw+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8IS0tIE11bHRpcGxlIC0tPlxyXG5cdDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIj5cclxuXHRcdFx0PGkgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCIgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiPlxyXG5cdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCI+PC9zcGFuPlxyXG5cdFx0XHQ8L2k+XHJcblx0XHRcdDwhLS0gPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1jaGVja0JveFwiXHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQsIGl0ZW0pXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPiAtLT5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm11bHRpcGxlLXRyZWV2aWV3XCI+XHJcblx0XHRcdFx0PG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIChjaGFuZ2UpPVwic2VsZWN0TXVsdGlwbGUoJGV2ZW50LmNoZWNrZWQsIGl0ZW0pXCI+XHJcblx0XHRcdFx0XHQ8c3Bhbj4ge3sgaXRlbS50ZXh0IH19IDwvc3Bhbj5cclxuXHRcdFx0XHQ8L21hdC1jaGVja2JveD5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8IS0tIHRyZWVWaWV3IC0tPlxyXG5cdDxkaXYgKm5nSWY9XCJ0cmVldmlldyAmJiAhdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdChtb3VzZWVudGVyKT1cImhvdmVyRmllbGQuc3R5bGUuZGlzcGxheSA9ICdmbGV4J1wiXHJcblx0XHRcdChtb3VzZWxlYXZlKT1cImhvdmVyRmllbGQuc3R5bGUuZGlzcGxheSA9ICdub25lJ1wiXHJcblx0XHRcdGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW0gdHJlZXZpZXctcm93XCJcclxuXHRcdFx0W25nQ2xhc3NdPVwie1xyXG5cdFx0XHRcdHNlbGVjdGVkOiBpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbSxcclxuXHRcdFx0XHR0cmVlUGFyZW50Tm9kZTogaXRlbS52YWx1ZSA9PT0gZml4ZWRQYXJlbnROb2RlPy52YWx1ZVxyXG5cdFx0XHR9XCJcclxuXHRcdD5cclxuXHRcdFx0PGkgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCIgKGNsaWNrKT1cIm9uQ29sbGFwc2VkKGl0ZW0pXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCI+XHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCI+PC9zcGFuPlxyXG5cclxuXHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCI+PC9zcGFuPlxyXG5cdFx0XHQ8L2k+XHJcblx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRlaW5lciAqbmdJZj1cIml0ZW0udmFsdWUgIT0gZml4ZWRQYXJlbnROb2RlPy52YWx1ZVwiPnt7IGl0ZW0udGV4dCB9fTwvbmctY29udGVpbmVyPlxyXG5cdFx0XHRcdDxuZy1jb250ZWluZXIgKm5nSWY9XCJpdGVtLnZhbHVlID09PSBmaXhlZFBhcmVudE5vZGU/LnZhbHVlXCI+e3sgaXRlbS50ZXh0IHwgdHJhbnNsYXRlIH19PC9uZy1jb250ZWluZXI+XHJcblx0XHRcdFx0PHNwYW4gI2hvdmVyRmllbGQgY2xhc3M9XCJob3ZlckZpZWxkXCI+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1RyZWVBY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5lZGl0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ3VwZGF0ZScsIGl0ZW0pXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxsaSBjbGFzcz1cImJpIGJpLXBlbmNpbFwiPjwvbGk+XHJcblx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHJcblx0XHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS50b29sVGlwX21lc3NhZ2UnIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAnYWRkJywgaXRlbSlcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PGxpIGNsYXNzPVwiYmkgYmktcGx1c1wiPjwvbGk+XHJcblx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0PC9sYWJlbD5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cdDwhLS0gdHJlZVZpZXcgYXMgZm9ybSBjb250cm9sIC0tPlxyXG5cdDxkaXYgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbSB0cmVldmlldy1yb3ctZm9ybS1jb250cm9sXCJcclxuXHRcdFx0W25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtZm9ybS1jb250cm9sJzogaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0gfVwiXHJcblx0XHQ+XHJcblx0XHRcdDxpICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiPlxyXG5cdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7IGl0ZW0udGV4dCB9fSA8L2xhYmVsPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZVxyXG5cdCNoZWFkZXJUZW1wbGF0ZVxyXG5cdGxldC1jb25maWc9XCJjb25maWdcIlxyXG5cdGxldC1pdGVtPVwiaXRlbVwiXHJcblx0bGV0LW9uQ29sbGFwc2VFeHBhbmQ9XCJvbkNvbGxhcHNlRXhwYW5kXCJcclxuXHRsZXQtb25DaGVja2VkQ2hhbmdlPVwib25DaGVja2VkQ2hhbmdlXCJcclxuXHRsZXQtb25GaWx0ZXJUZXh0Q2hhbmdlPVwib25GaWx0ZXJUZXh0Q2hhbmdlXCJcclxuPlxyXG5cdDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRmlsdGVyXCIgY2xhc3M9XCJyb3cgcm93LWZpbHRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG5cdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcblx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJpMThuLmdldEZpbHRlclBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKVwiXHJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJmaWx0ZXJUZXh0XCJcclxuXHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvbkZpbHRlclRleHRDaGFuZ2UoJGV2ZW50KVwiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0FsbENoZWNrQm94IHx8IGNvbmZpZy5oYXNDb2xsYXBzZUV4cGFuZFwiIGNsYXNzPVwicm93XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcblx0XHRcdDxsYWJlbCAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj5cclxuXHRcdFx0XHQ8c3Ryb25nPnt7IGkxOG4uZ2V0QWxsQ2hlY2tib3hUZXh0KCkgfX08L3N0cm9uZz5cclxuXHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0PGxhYmVsICpuZ0lmPVwiY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCIgY2xhc3M9XCJmbG9hdC1yaWdodFwiIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIj5cclxuXHRcdFx0XHQ8aSBbdGl0bGVdPVwiaTE4bi5nZXRUb29sdGlwQ29sbGFwc2VFeHBhbmRUZXh0KGl0ZW0uY29sbGFwc2VkKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBjbGFzcz1cImJpIGJpLWFycm93cy1hbmdsZS1leHBhbmRcIj48L3NwYW4+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBjbGFzcz1cImJpIGJpLWFycm93cy1hbmdsZS1jb250cmFjdFwiPjwvc3Bhbj5cclxuXHRcdFx0XHQ8L2k+XHJcblx0XHRcdDwvbGFiZWw+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8YSAqbmdJZj1cImRlZmF1bHRTZWxlY3RcIiBjbGFzcz1cInNlbGVjdC1kZWZhdWx0XCIgKGNsaWNrKT1cInNlbGVjdERlZmF1bHQoKVwiPnt7XHJcblx0XHQnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LnNlbGVjdERlZmF1bHQnIHwgdHJhbnNsYXRlXHJcblx0fX08L2E+XHJcblx0PGRpdlxyXG5cdFx0Km5nSWY9XCJjb25maWcuaGFzRGl2aWRlclwiXHJcblx0XHRjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIlxyXG5cdFx0W25nQ2xhc3NdPVwieyAnZHJvcGRvd24tZGl2aWRlci1ub01hcmdpbic6IGRlZmF1bHRTZWxlY3QgfVwiXHJcblx0PjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVldmlldyAmJiAhbXVsdGlwbGVcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiZHJvcGRvd24td3JhcHBlclwiPlxyXG5cdFx0PG5neC1kcm9wZG93bi10cmVldmlld1xyXG5cdFx0XHRbY29uZmlnXT1cImNvbmZpZ1wiXHJcblx0XHRcdFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcblx0XHRcdFtpdGVtc109XCJpdGVtc1wiXHJcblx0XHRcdFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuXHRcdD5cclxuXHRcdDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3PlxyXG5cdFx0PGRpdiBjbGFzcz1cImRpc2FibGUtZWZmZWN0XCIgKm5nSWY9XCJkaXNhYmxlZFwiPjwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVldmlldyAmJiBtdWx0aXBsZVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJtdWx0aXBsZS10cmVlLXZpZXcgZHJvcGRvd24td3JhcHBlclwiPlxyXG5cdFx0PG5neC1kcm9wZG93bi10cmVldmlldyBbY29uZmlnXT1cImNvbmZpZ1wiIFtpdGVtc109XCJpdGVtc1wiIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCI+IDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3PlxyXG5cdFx0PGRpdiBjbGFzcz1cImRpc2FibGUtZWZmZWN0XCIgKm5nSWY9XCJkaXNhYmxlZFwiPjwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVldmlldyAmJiAhdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcblx0PGRpdiBjbGFzcz1cInRyZWUtdmlld1wiPlxyXG5cdFx0PG5neC10cmVldmlldyBbY29uZmlnXT1cImNvbmZpZ1wiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiIFtpdGVtc109XCJpdGVtc1wiIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCI+XHJcblx0XHQ8L25neC10cmVldmlldz5cclxuXHQ8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVldmlldyAmJiB0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidHJlZS12aWV3LWZvcm0tY29udHJvbFwiPlxyXG5cdFx0PG5neC10cmVldmlldyBbY29uZmlnXT1cImNvbmZpZ1wiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiIFtpdGVtc109XCJpdGVtc1wiIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCI+XHJcblx0XHQ8L25neC10cmVldmlldz5cclxuXHQ8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJN0UsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ2hDLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUN0Qzs7Ozs7Ozs7Ozs7Ozs7O0dB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dUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVQLHlCQUF5QjtzQkFEeEIsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTTlDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSBcImxvZGFzaFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyZWV2aWV3STE4bixcclxuICBUcmVldmlld0l0ZW0sXHJcbiAgVHJlZXZpZXdDb25maWcsXHJcbiAgRHJvcGRvd25UcmVldmlld0NvbXBvbmVudCxcclxuICBUcmVldmlld0hlbHBlcixcclxufSBmcm9tIFwibmd4LXRyZWV2aWV3XCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9zZXJ2aWNlcy9kZXBhcnRtZW50LW1hbmFnZW1lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50QXBpU2VydmljZSB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9zZXJ2aWNlcy9kZXBhcnRtZW50LWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LWkxOG5cIjtcclxuaW1wb3J0IHsgUm9sZXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcm9sZXMvcm9sZXMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdsb2JhbEFkbWluU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZ2xvYmFsLWFkbWluLnNlcnZpY2VcIjtcclxuaW1wb3J0IF9maW5kIGZyb20gJ2xvZGFzaC9maW5kJztcclxuaW1wb3J0IF9pc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcclxuLyoqXHJcbiAqIEEgdHJlZSB2aWV3IHNlbGVjdG9yIGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGluIHJlYWN0aXZlIGFuZCB0ZW1wbGF0ZSBkcml2ZW4gZm9ybXMsXHJcbiAqIGl0IGNhbiBiZSBhIGZsYXQgdHJlZSBvciBhIGRyb3Bkb3duXHJcbiAqIEB0aXRsZVxyXG4gKiBUcmVlIHZpZXcgc2VsZWN0b3JcclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAqIFt0cmVldmlld109XCJmYWxzZVwiXHJcbiAqIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAqIFtpdGVtc109XCJpdGVtc1RyZWVcIlxyXG4gKiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICogWyh2YWx1ZSldPVwic2VsZWN0ZWRWYWx1ZVwiXHJcbiAqID5cclxuICogPC9hcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRyZWV2aWV3STE4biwgdXNlQ2xhc3M6IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZXZpZXdTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBtdWx0aXBsZVNlbGVjdGlvbiA9IFtdO1xyXG4gIHNlbGVjdGVkSXRlbTtcclxuICBzZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gIHNob3dQbHVzID0gZmFsc2U7XHJcbiAgcHJlU2VsZWN0ZWQgPSBbXTtcclxuICBteURlcGFydG1lbnQ6IGFueTtcclxuICAvKiogaXMgdHJlZSBWaWV3IG9yIGRyb3Bkb3duIHZpZXcgKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBDb25maWcgb2JqZWN0ICovXHJcbiAgQElucHV0KCkgY29uZmlnOiBUcmVldmlld0NvbmZpZztcclxuICAvKiogSXRlbXMgdHJlZSAqL1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBUcmVldmlld0l0ZW1bXTtcclxuICAvKiogU2VsZWN0ZWQgdmFsdWUgKi9cclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIC8qKiBjYW4gc2VsZWN0IG11bHRpcGxlICovXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiB2YWx1ZSBjaGFuZ2UgKi9cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvKiogZXZlbnQgZW1pdHRlZCBvbiBwbHVzIGJ1dHRvbiBjbGlja2VkIChmb3IgZGVwYXJ0bWVudCBtYW5hZ2VtZW50KSAqL1xyXG4gIEBPdXRwdXQoKSBwbHVzQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQElucHV0KCkgZGVmYXVsdFNlbGVjdCA9IGZhbHNlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiB1c2Ugb3V0c2lkZSBjdXN0b20gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgaW5lciBmdW5jdGlvbiAgKi9cclxuICBASW5wdXQoKSB1c2VDdXN0b21BZGRFZGl0QWN0aW9uID0gZmFsc2U7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSB0byBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBjdXN0b21QYXJlbnRQcm9wZXJ0eTtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjtcclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0aW9uOiBzdHJpbmc7XHJcbiAgLyoqIGRpc3BsYXkgaW5wdXQgRGVwVHlwZWUgaW4gYWRkIGRpYWxvZyBvZiBkZXBhcnRlbWVudCAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlEZXBUeXBlZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdERlcENoaWxkcmVuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbDtcclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25UcmVldmlld0NvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZHJvcGRvd25UcmVldmlld0NvbXBvbmVudDogRHJvcGRvd25UcmVldmlld0NvbXBvbmVudDtcclxuICBmaWx0ZXJUZXh0OiBzdHJpbmc7XHJcbiAgYXJhYmljID0gZmFsc2U7XHJcbiAgbGFuZ3VhZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKSBmaXhlZFBhcmVudE5vZGU6IHsgdGV4dDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH07XHJcbiAgcHJpdmF0ZSBkcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcbiAgQElucHV0KCkgc2hvd1RyZWVBY3Rpb25zID0gdHJ1ZTtcclxuICAvLyB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGluIHR3byBwbGFjZXMgdGhlIGZsYWcgaXMgdGhpcy50cmVldmlld1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpMThuOiBUcmVldmlld0kxOG4sXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRBcGlTZXJ2aWNlOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudE1hbmFnbWVudDogRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb2xlc1NlcnZpY2U6IFJvbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbEFkbWluOiBHbG9iYWxBZG1pblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY29uZmlnID0gVHJlZXZpZXdDb25maWcuY3JlYXRlKHtcclxuICAgICAgaGFzQWxsQ2hlY2tCb3g6IGZhbHNlLFxyXG4gICAgICBoYXNDb2xsYXBzZUV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGhhc0ZpbHRlcjogdHJ1ZSxcclxuICAgICAgbWF4SGVpZ2h0OiAyMDAsXHJcbiAgICAgIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50OiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuID0gaTE4biBhcyBEcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZXREZWZhdWx0U2VsZWN0aW9uKHRoaXMuZGVmYXVsdFNlbGVjdGlvbik7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmFyYWJpYyA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLnRyZWV2aWV3KSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMudHJlZXZpZXcgJiYgIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgLy8gdGhpcy4gZnVuY3Rpb24gaXMgdG8gc2V0IHVpIHdpdGggcHJlIHNlbGVjdGVkIHZhbHVlXHJcbiAgICAgIC8vIGRlbGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHBhZ2UgZ2V0IHRoZSB2YWx1ZSBhbmQgc2VuZCBpdCB0byBoZXJlXHJcbiAgICAgIC8vIHdlIHVzZSB0aGUgdmFsdWUgc2VudCB0byBoZXJlIGFuZCBzZWFyY2ggZm9yIGl0cyBpdGVtIG9uIG91ciBpdGVtcyBhbmQgc2V0IGl0IGFzIHRoZSBzZWxlY3RlZCBpdGVtXHJcbiAgICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShpdGVtLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnRyZWV2aWV3ICYmXHJcbiAgICAgIHRoaXMubXVsdGlwbGUgJiZcclxuICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICAvLyB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4uc2VsZWN0aW9uTGVuZ3RoID1cclxuICAgICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIGNvbXBhcmVXaXRoVmFsdWUpIHtcclxuICAgIGlmICgoaXRlbS52YWx1ZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkgfHwgKGl0ZW0udmFsdWUudGl0bGUgPT09IGNvbXBhcmVXaXRoVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0KGl0ZW0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoaXRlbS5pbnRlcm5hbENoaWxkcmVuKSB7XHJcbiAgICAgICAgaXRlbS5pbnRlcm5hbENoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0UHJlU2VsZXRlZEl0ZW0oY2hpbGQsIGNvbXBhcmVXaXRoVmFsdWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3REZWZhdWx0KCkge1xyXG4gICAgbGV0IG9wdGlvbiA9IHtcclxuICAgICAgJ2lzR2xvYmFsQWRtaW4nOiB0aGlzLmdsb2JhbEFkbWluLmlzR2xvYmFsQWRtaW4sXHJcbiAgICAgICdhY3RpdmVUZW5hbnQnOiB0aGlzLmdsb2JhbEFkbWluLmFjdGl2ZVRlbmFudCxcclxuICAgICAgJ3RlbmFudElkJzogdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnRlbmFudElkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5teURlcGFydG1lbnQgPSB0aGlzLnJvbGVzU2VydmljZS5nZXRVc2VyRGVwYXJ0bWVudChcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcixcclxuICAgICAgJ2N0c19yb2xlXycsXHJcbiAgICAgIG9wdGlvblxyXG4gICAgKTtcclxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgdGhpcy5teURlcGFydG1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdChpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIC8vIGlmICghaXRlbS5jaGlsZHJlbikge1xyXG4gICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZEl0ZW0oKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzTmlsKHRoaXMuaXRlbXMpKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IFRyZWV2aWV3SGVscGVyLmZpbmRJdGVtSW5MaXN0KFxyXG4gICAgICAgIHRoaXMuaXRlbXMsXHJcbiAgICAgICAgdGhpcy52YWx1ZVxyXG4gICAgICApID8/IHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0udmFsdWUudWlkID09PSB0aGlzLnZhbHVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gIT09IGl0ZW0pIHtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW2l0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy50cmVldmlldykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUudGl0bGUpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE11bHRpcGxlKGUsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdERlcENoaWxkcmVuKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5jb25jYXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHRoaXMubXVsdGlwbGVTZWxlY3Rpb24uZmlsdGVyKChlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRQYXJlbnRXaXRoQ2hpbGQuaW5kZXhPZihlKSA8IDA7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4uc2VsZWN0aW9uTGVuZ3RoID1cclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGg7XHJcbiAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5tdWx0aXBsZVNlbGVjdGlvbik7XHJcbiAgfVxyXG4gIGdldENoaWxkZXJuVmFsdWVzKGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcclxuICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgb25QbHVzQ2xpY2tlZChlOiBNb3VzZUV2ZW50LCBpdGVtOiBUcmVldmlld0l0ZW0pOiB2b2lkIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICB0aGlzLnBsdXNDbGlja2VkLmVtaXQoaXRlbS52YWx1ZS51aWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBlICBjbGljayBldmVudFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gbmFtZSBvZiBhY3Rpb24gKGFkZCAsIHVwZGF0ZSlcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICBvbkFjdGlvbihlOiBNb3VzZUV2ZW50LCBhY3Rpb246IHN0cmluZywgaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgaWYgKGFjdGlvbiA9PT0gXCJhZGRcIikge1xyXG4gICAgICAgIC8vIGVtaXQgYWN0aW9uIHRvIG91dHNpZGUgdG8gZXhlY3V0ZSBmdW5jdGlvbiBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCBcclxuICAgICAgICBpZiAodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtOiBpdGVtXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgZmFsc2UsIHRoaXMuZGlzcGxheUlzQWxsb3dSZWNFeHRlcm5hbCwgdGhpcy5kaXNwbGF5RGVwVHlwZWUsIGl0ZW0udmFsdWUudGl0bGUsIGl0ZW0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChhY3Rpb24gPT09IFwidXBkYXRlXCIpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKSB7XHJcbiAgICAgICAgICAvLyBlbWl0IGFjdGlvbiB0byBvdXRzaWRlIHRvIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgXHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgICAgICBpdGVtOiBpdGVtXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgdHJ1ZSwgdGhpcy5kaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsLCB0aGlzLmRpc3BsYXlEZXBUeXBlZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy51cGRhdGUoaXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5nZXREZXBhcnRtZW50VHJlZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgICAgICByZXMuZW50cmllcyxcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXgpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqZHVlIHRvIHRoZSBidXNpbmVzcyByZXF1aXJlbWVudHMgd2hpY2ggc3RhdGVkIHRoYXQgbW9yZSB0aGFuIDMgbGV2ZWxzIHdpbGwgZXhpc3RlZCB0aGUgY3VycmVudCBhcGkgc3VwcG9ydCBvbmx5IDMgbGV2ZWxzIHNvICp3ZSBoYXZlIHRvIGluamVjdCAzIG5ldyBsZXZlbHMgb24gZWFjaCB0cmVlIGVuZFxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQ29sbGFwc2VkKGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgaXRlbS5jb2xsYXBzZWQgPSAhaXRlbS5jb2xsYXBzZWQ7XHJcbiAgICBpZiAoaXRlbS52YWx1ZS5sZXZlbCA9PT0gMikge1xyXG4gICAgICB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlXHJcbiAgICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgICAgaXRlbS52YWx1ZS50aXRsZSxcclxuICAgICAgICAgIHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgPyB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlIDogJ1BQX0RlcGFydG1lbnQnLFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZS5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIHJlcy5lbnRyaWVzLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4geyB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgdXBkYXRlKGl0ZW0pIHtcclxuICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgLmdldERlcGFydG1lbnROZXN0ZWRUcmVlKFxyXG4gICAgICAgIGl0ZW0udmFsdWUudGl0bGUsXHJcbiAgICAgICAgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA/IHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgOiAnUFBfRGVwYXJ0bWVudCcsXHJcbiAgICAgICAgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgZGF0YS5lbnRyaWVzLFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVByZWZpeFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHsgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNJdGVtU2VsZWN0ZWQoaXRlbSkge1xyXG4gICAgcmV0dXJuIF9maW5kKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24sIChxKSA9PiBfaXNFcXVhbChxLCBpdGVtLnZhbHVlKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZVxyXG5cdCNpdGVtVGVtcGxhdGVcclxuXHRsZXQtaXRlbT1cIml0ZW1cIlxyXG5cdGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcblx0bGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbj5cclxuXHQ8IS0tIHNpbmdsZSAtLT5cclxuXHQ8ZGl2ICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUgfVwiPlxyXG5cdFx0XHQ8aSAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIiAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCI+XHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCI+PC9zcGFuPlxyXG5cdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIj48L3NwYW4+XHJcblx0XHRcdDwvaT5cclxuXHRcdFx0PCEtLSA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPnt7XHJcbiAgICAgICAgaXRlbS50ZXh0XHJcbiAgICAgIH19PC9sYWJlbD4gLS0+XHJcblx0XHRcdDxsYWJlbCAqbmdJZj1cIml0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPlxyXG5cdFx0XHQ8bGFiZWwgKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PCEtLSBNdWx0aXBsZSAtLT5cclxuXHQ8ZGl2ICpuZ0lmPVwiIXRyZWV2aWV3ICYmIG11bHRpcGxlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW1cIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSB9XCI+XHJcblx0XHRcdDxpICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiIChjbGljayk9XCJvbkNvbGxhcHNlRXhwYW5kKClcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIj5cclxuXHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIj48L3NwYW4+XHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0XHQ8IS0tIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzPVwibXVsdGlwbGUtY2hlY2tCb3hcIlxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwibXVsdGlwbGVTZWxlY3Rpb24uaW5jbHVkZXMoaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwic2VsZWN0TXVsdGlwbGUoJGV2ZW50LnRhcmdldC5jaGVja2VkLCBpdGVtKVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+e3sgaXRlbS50ZXh0IH19PC9sYWJlbD4gLS0+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtdWx0aXBsZS10cmVldmlld1wiPlxyXG5cdFx0XHRcdDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiAoY2hhbmdlKT1cInNlbGVjdE11bHRpcGxlKCRldmVudC5jaGVja2VkLCBpdGVtKVwiPlxyXG5cdFx0XHRcdFx0PHNwYW4+IHt7IGl0ZW0udGV4dCB9fSA8L3NwYW4+XHJcblx0XHRcdFx0PC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PCEtLSB0cmVlVmlldyAtLT5cclxuXHQ8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiIGNsYXNzPVwidHJlZS12aWV3LWNvbnRhaW5lclwiPlxyXG5cdFx0PGRpdlxyXG5cdFx0XHQobW91c2VlbnRlcik9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnZmxleCdcIlxyXG5cdFx0XHQobW91c2VsZWF2ZSk9XCJob3ZlckZpZWxkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcIlxyXG5cdFx0XHRjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvd1wiXHJcblx0XHRcdFtuZ0NsYXNzXT1cIntcclxuXHRcdFx0XHRzZWxlY3RlZDogaXRlbS52YWx1ZSA9PSBzZWxlY3RlZEl0ZW0sXHJcblx0XHRcdFx0dHJlZVBhcmVudE5vZGU6IGl0ZW0udmFsdWUgPT09IGZpeGVkUGFyZW50Tm9kZT8udmFsdWVcclxuXHRcdFx0fVwiXHJcblx0XHQ+XHJcblx0XHRcdDxpICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiPlxyXG5cdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC17eyBhcmFiaWMgPyAnbGVmdCcgOiAncmlnaHQnIH19LWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHJcblx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiPjwvc3Bhbj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiPlxyXG5cdFx0XHRcdDxuZy1jb250ZWluZXIgKm5nSWY9XCJpdGVtLnZhbHVlICE9IGZpeGVkUGFyZW50Tm9kZT8udmFsdWVcIj57eyBpdGVtLnRleHQgfX08L25nLWNvbnRlaW5lcj5cclxuXHRcdFx0XHQ8bmctY29udGVpbmVyICpuZ0lmPVwiaXRlbS52YWx1ZSA9PT0gZml4ZWRQYXJlbnROb2RlPy52YWx1ZVwiPnt7IGl0ZW0udGV4dCB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGVpbmVyPlxyXG5cdFx0XHRcdDxzcGFuICNob3ZlckZpZWxkIGNsYXNzPVwiaG92ZXJGaWVsZFwiPlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUcmVlQWN0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uZWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICd1cGRhdGUnLCBpdGVtKVwiXHJcblx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHQ8bGkgY2xhc3M9XCJiaSBiaS1wZW5jaWxcIj48L2xpPlxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0udG9vbFRpcF9tZXNzYWdlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9uQWN0aW9uKCRldmVudCwgJ2FkZCcsIGl0ZW0pXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxsaSBjbGFzcz1cImJpIGJpLXBsdXNcIj48L2xpPlxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdDwvbGFiZWw+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8IS0tIHRyZWVWaWV3IGFzIGZvcm0gY29udHJvbCAtLT5cclxuXHQ8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdGNsYXNzPVwidGV4dC1ub3dyYXAgcm93LWl0ZW0gdHJlZXZpZXctcm93LWZvcm0tY29udHJvbFwiXHJcblx0XHRcdFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWZvcm0tY29udHJvbCc6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG5cdFx0PlxyXG5cdFx0XHQ8aSAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIiAoY2xpY2spPVwib25Db2xsYXBzZWQoaXRlbSlcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIj5cclxuXHRcdFx0XHQ8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIj48L3NwYW4+XHJcblxyXG5cdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiIGNsYXNzPVwiYmkgYmktY2FyZXQtZG93bi1maWxsIGNhcmV0LWljb25cIj48L3NwYW4+XHJcblx0XHRcdDwvaT5cclxuXHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbC10cmVldmlld1wiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57eyBpdGVtLnRleHQgfX0gPC9sYWJlbD5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGVcclxuXHQjaGVhZGVyVGVtcGxhdGVcclxuXHRsZXQtY29uZmlnPVwiY29uZmlnXCJcclxuXHRsZXQtaXRlbT1cIml0ZW1cIlxyXG5cdGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcblx0bGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcblx0bGV0LW9uRmlsdGVyVGV4dENoYW5nZT1cIm9uRmlsdGVyVGV4dENoYW5nZVwiXHJcbj5cclxuXHQ8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0ZpbHRlclwiIGNsYXNzPVwicm93IHJvdy1maWx0ZXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwiaTE4bi5nZXRGaWx0ZXJQbGFjZWhvbGRlcihwbGFjZWhvbGRlcilcIlxyXG5cdFx0XHRcdFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiXHJcblx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudClcIlxyXG5cdFx0XHQvPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PGRpdiAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveCB8fCBjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG5cdFx0XHQ8bGFiZWwgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3hcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcblx0XHRcdFx0PHN0cm9uZz57eyBpMThuLmdldEFsbENoZWNrYm94VGV4dCgpIH19PC9zdHJvbmc+XHJcblx0XHRcdDwvbGFiZWw+XHJcblx0XHRcdDxsYWJlbCAqbmdJZj1cImNvbmZpZy5oYXNDb2xsYXBzZUV4cGFuZFwiIGNsYXNzPVwiZmxvYXQtcmlnaHRcIiAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCI+XHJcblx0XHRcdFx0PGkgW3RpdGxlXT1cImkxOG4uZ2V0VG9vbHRpcENvbGxhcHNlRXhwYW5kVGV4dChpdGVtLmNvbGxhcHNlZClcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIj5cclxuXHRcdFx0XHRcdDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCIgY2xhc3M9XCJiaSBiaS1hcnJvd3MtYW5nbGUtZXhwYW5kXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJiaSBiaS1hcnJvd3MtYW5nbGUtY29udHJhY3RcIj48L3NwYW4+XHJcblx0XHRcdFx0PC9pPlxyXG5cdFx0XHQ8L2xhYmVsPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PGEgKm5nSWY9XCJkZWZhdWx0U2VsZWN0XCIgY2xhc3M9XCJzZWxlY3QtZGVmYXVsdFwiIChjbGljayk9XCJzZWxlY3REZWZhdWx0KClcIj57e1xyXG5cdFx0J2RlcGFydG1lbnRfbWFuYWdlbWVudC5zZWxlY3REZWZhdWx0JyB8IHRyYW5zbGF0ZVxyXG5cdH19PC9hPlxyXG5cdDxkaXZcclxuXHRcdCpuZ0lmPVwiY29uZmlnLmhhc0RpdmlkZXJcIlxyXG5cdFx0Y2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCJcclxuXHRcdFtuZ0NsYXNzXT1cInsgJ2Ryb3Bkb3duLWRpdmlkZXItbm9NYXJnaW4nOiBkZWZhdWx0U2VsZWN0IH1cIlxyXG5cdD48L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgIW11bHRpcGxlXCI+XHJcblx0PGRpdiBjbGFzcz1cImRyb3Bkb3duLXdyYXBwZXJcIj5cclxuXHRcdDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuXHRcdFx0W2NvbmZpZ109XCJjb25maWdcIlxyXG5cdFx0XHRbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG5cdFx0XHRbaXRlbXNdPVwiaXRlbXNcIlxyXG5cdFx0XHRbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcblx0XHQ+XHJcblx0XHQ8L25neC1kcm9wZG93bi10cmVldmlldz5cclxuXHRcdDxkaXYgY2xhc3M9XCJkaXNhYmxlLWVmZmVjdFwiICpuZ0lmPVwiZGlzYWJsZWRcIj48L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuXHQ8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZS12aWV3IGRyb3Bkb3duLXdyYXBwZXJcIj5cclxuXHRcdDxuZ3gtZHJvcGRvd24tdHJlZXZpZXcgW2NvbmZpZ109XCJjb25maWdcIiBbaXRlbXNdPVwiaXRlbXNcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiPiA8L25neC1kcm9wZG93bi10cmVldmlldz5cclxuXHRcdDxkaXYgY2xhc3M9XCJkaXNhYmxlLWVmZmVjdFwiICpuZ0lmPVwiZGlzYWJsZWRcIj48L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgIXRyZWVWaWV3QXNGb3JtQ29udHJvbFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJ0cmVlLXZpZXdcIj5cclxuXHRcdDxuZ3gtdHJlZXZpZXcgW2NvbmZpZ109XCJjb25maWdcIiBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIiBbaXRlbXNdPVwiaXRlbXNcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiPlxyXG5cdFx0PC9uZ3gtdHJlZXZpZXc+XHJcblx0PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcblx0PGRpdiBjbGFzcz1cInRyZWUtdmlldy1mb3JtLWNvbnRyb2xcIj5cclxuXHRcdDxuZ3gtdHJlZXZpZXcgW2NvbmZpZ109XCJjb25maWdcIiBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIiBbaXRlbXNdPVwiaXRlbXNcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiPlxyXG5cdFx0PC9uZ3gtdHJlZXZpZXc+XHJcblx0PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
51
51
  }], classType: [{
52
52
  type: Input
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdmlld2VyL2R5bmFtaWMtZm9ybS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXZpZXdlci9keW5hbWljLWZvcm0tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7QUFVakMsTUFBTSxPQUFPLDBCQUEwQjtJQVVyQyxZQUFxQixTQUEyQixFQUFVLFdBQWdDLEVBQVcsYUFBZ0M7UUFBaEgsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFBVyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFSckksU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUVmLFNBQUksR0FBUSxJQUFJLENBQUM7UUFFakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUliLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO0lBQzdKLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFFO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDMUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDYixPQUFPLEVBQUcsSUFBSSxDQUFDLE9BQU87b0JBQ3RCLE9BQU8sRUFBRyxJQUFJLENBQUMsS0FBSztvQkFDcEIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUNqQyxLQUFLLEVBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDcEQsSUFBSSxFQUFHLElBQUksQ0FBQyxJQUFJO2lCQUNqQixDQUFDLENBQUE7WUFFTixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQzs7d0hBaENVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLCtIQ1h2QywrM0NBNEJBOzRGRGpCYSwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7aUJBQ3BEO3VLQUdDLElBQUk7c0JBREgsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnZm9ybWlvanMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy1keW5hbWljLWZvcm0tdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBmb3JtOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKVxyXG4gIGRhdGE6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KClcclxuICBjbGFzc1R5cGUgPSBudWxsO1xyXG4gIGxpc3QgPSBbXTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIGRhdGVGb21yYXRlO1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGlvbiA6IFRyYW5zbGF0aW9uU2VydmljZSAsIHByaXZhdGUgY29uZmlnU2VydmljZSA6IEFwcENvbmZpZ1NlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgdGhpcy5kYXRlRm9tcmF0ZSA9IHRoaXMuY29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb25bJ2R5bmFtaWNGb3JtRGF0ZUZvcm1hdGUnXSA/IHRoaXMuY29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb25bJ2R5bmFtaWNGb3JtRGF0ZUZvcm1hdGUnXSA6ICdkZCBNTU0geSdcclxuICAgIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzIDtcclxuICAgICAgY29uc3QgdHJhbnNsYXRpb25zID0ge307XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc0FyID0ge307XHJcbiAgICAgIFV0aWxzLmVhY2hDb21wb25lbnQodGhpcy5mb3JtLmNvbXBvbmVudHMsIChjb21wKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgIGxhYmVsQXIgOiBjb21wLmxhYmVsQXIsXHJcbiAgICAgICAgICAgIGxhYmVsRW4gOiBjb21wLmxhYmVsLFxyXG4gICAgICAgICAgICBjdXN0b21PcHRpb25zOiBjb21wLmN1c3RvbU9wdGlvbnMsXHJcbiAgICAgICAgICAgIHZhbHVlIDogdGhpcy5kYXRhW3RoaXMuZm9ybS5wcmVmaXggKyAnOicgKyBjb21wLmtleV0sXHJcbiAgICAgICAgICAgIHR5cGUgOiBjb21wLnR5cGVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICBcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImR5bmFtaWMtZmllbGRzLXZhbHVlc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWVsZHMtdGl0bGVcIj5cclxuICAgIHt7IFwiQ1JFQVRFLkNPUlJFU1BfRk9STV9WSUVXRVJcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ2YWx1ZXMtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm14LTEgbWItMiBjbGFzcy10eXBlLXRpdGxlXCIgKm5nSWY9XCJjbGFzc1R5cGVcIj57e1widm9jYWJ1bGFyeS5WT0NfQ29ycmVzcG9uZGVuY2VDbGFzcy5cIiArIGNsYXNzVHlwZSB8XHJcbiAgICAgIHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWZpZWxkLXZhbHVlXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cIiFpc0FyYWJpY1wiPnt7IGl0ZW0ubGFiZWxFbiB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImlzQXJhYmljXCI+e3sgaXRlbS5sYWJlbEFyIH19PC9kaXY+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0/LnR5cGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndm9jYWJ1bGFyeSdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udmFsdWUhPXVuZGVmaW5lZFwiIGNsYXNzPVwidmFsdWVcIj57eyAndm9jYWJ1bGFyeS4nICsgaXRlbS5jdXN0b21PcHRpb25zLnZvY0lkICsgJy4nICsgaXRlbS52YWx1ZSB8IHRyYW5zbGF0ZX19PC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0b2dnbGUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7ICcnICsgaXRlbS52YWx1ZSB8IHRyYW5zbGF0ZX19PC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjdXN0b21kYXRlJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3sgaXRlbS52YWx1ZSB8IGxvY2FsaXplZERhdGUgOiBkYXRlRm9tcmF0ZSA6IChpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpfX08L2Rpdj4gICAgXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3sgaXRlbS52YWx1ZX19PC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12aWV3ZXIvZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12aWV3ZXIvZHluYW1pYy1mb3JtLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBVWpDLE1BQU0sT0FBTywwQkFBMEI7SUFVckMsWUFBcUIsU0FBMkIsRUFBVSxXQUFnQyxFQUFXLGFBQWdDO1FBQWhILGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQVcsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBUnJJLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixTQUFJLEdBQVEsSUFBSSxDQUFDO1FBRWpCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtJQUM3SixDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBRTtZQUNyQixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ2IsT0FBTyxFQUFHLElBQUksQ0FBQyxPQUFPO29CQUN0QixPQUFPLEVBQUcsSUFBSSxDQUFDLEtBQUs7b0JBQ3BCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDakMsS0FBSyxFQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ3BELElBQUksRUFBRyxJQUFJLENBQUMsSUFBSTtpQkFDakIsQ0FBQyxDQUFBO1lBRU4sQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7O3dIQWhDVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiwrSENYdkMsKzNDQTRCQTs0RkRqQmEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUNwRDt1S0FHQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ2Zvcm1pb2pzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtZHluYW1pYy1mb3JtLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS12aWV3ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1WaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybTogYW55ID0ge307XHJcbiAgQElucHV0KClcclxuICBkYXRhOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xhc3NUeXBlID0gbnVsbDtcclxuICBsaXN0ID0gW107XHJcbiAgaXNBcmFiaWMgPSBmYWxzZTtcclxuICBkYXRlRm9tcmF0ZTtcclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRpb24gOiBUcmFuc2xhdGlvblNlcnZpY2UgLCBwcml2YXRlIGNvbmZpZ1NlcnZpY2UgOiBBcHBDb25maWdTZXJ2aWNlXHJcbiAgICApIHsgXHJcbiAgICAgIHRoaXMuZGF0ZUZvbXJhdGUgPSB0aGlzLmNvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uWydkeW5hbWljRm9ybURhdGVGb3JtYXRlJ10gPyB0aGlzLmNvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uWydkeW5hbWljRm9ybURhdGVGb3JtYXRlJ10gOiAnZGQgTU1NIHknXHJcbiAgICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5pc0FyYWJpYyA9IHJlcyA7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHt9O1xyXG4gICAgICBjb25zdCB0cmFuc2xhdGlvbnNBciA9IHt9O1xyXG4gICAgICBVdGlscy5lYWNoQ29tcG9uZW50KHRoaXMuZm9ybS5jb21wb25lbnRzLCAoY29tcCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0LnB1c2goe1xyXG4gICAgICAgICAgICBsYWJlbEFyIDogY29tcC5sYWJlbEFyLFxyXG4gICAgICAgICAgICBsYWJlbEVuIDogY29tcC5sYWJlbCxcclxuICAgICAgICAgICAgY3VzdG9tT3B0aW9uczogY29tcC5jdXN0b21PcHRpb25zLFxyXG4gICAgICAgICAgICB2YWx1ZSA6IHRoaXMuZGF0YVt0aGlzLmZvcm0ucHJlZml4ICsgJzonICsgY29tcC5rZXldLFxyXG4gICAgICAgICAgICB0eXBlIDogY29tcC50eXBlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIFxyXG4gICAgICB9KTtcclxuICAgIH0pXHJcbiAgXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkeW5hbWljLWZpZWxkcy12YWx1ZXNcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmllbGRzLXRpdGxlXCI+XHJcbiAgICB7eyBcIkNSRUFURS5DT1JSRVNQX0ZPUk1fVklFV0VSXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidmFsdWVzLXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJteC0xIG1iLTIgY2xhc3MtdHlwZS10aXRsZVwiICpuZ0lmPVwiY2xhc3NUeXBlXCI+e3tcInZvY2FidWxhcnkuVk9DX0NvcnJlc3BvbmRlbmNlQ2xhc3MuXCIgKyBjbGFzc1R5cGUgfFxyXG4gICAgICB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1maWVsZC12YWx1ZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKm5nSWY9XCIhaXNBcmFiaWNcIj57eyBpdGVtLmxhYmVsRW4gfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKm5nSWY9XCJpc0FyYWJpY1wiPnt7IGl0ZW0ubGFiZWxBciB9fTwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtPy50eXBlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3ZvY2FidWxhcnknXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnZhbHVlIT11bmRlZmluZWRcIiBjbGFzcz1cInZhbHVlXCI+e3sgJ3ZvY2FidWxhcnkuJyArIGl0ZW0uY3VzdG9tT3B0aW9ucy52b2NJZCArICcuJyArIGl0ZW0udmFsdWUgfCB0cmFuc2xhdGV9fTwvZGl2PiAgICBcclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndG9nZ2xlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57eyAnJyArIGl0ZW0udmFsdWUgfCB0cmFuc2xhdGV9fTwvZGl2PiAgICBcclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VzdG9tZGF0ZSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7IGl0ZW0udmFsdWUgfCBsb2NhbGl6ZWREYXRlIDogZGF0ZUZvbXJhdGUgOiAoaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKX19PC9kaXY+ICAgIFxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7IGl0ZW0udmFsdWV9fTwvZGl2PiAgICBcclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
213
213
  }], onFetchingOptions: [{
214
214
  type: Output
215
215
  }], getCacheableVocabularyList: [] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7OztBQUU5Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQU9ILE1BQU0sT0FBTyxrQ0FBa0M7SUF1RDlDLFlBQ1MsYUFBbUMsRUFDbkMsS0FBd0IsRUFDTCxPQUFrQjtRQUZyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDTCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBdEQ5QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ0QsWUFBTyxHQUFhLEVBQUUs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QixNQUFNO2dCQUVHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkE0RFAsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9wdGlvbmFsLFxyXG5cdE91dHB1dCxcclxuXHRTZWxmLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZvY2FidWxhcnlBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdm9jYWJ1bGFyeS9zZXJ2aWNlcy92b2NhYnVsYXJ5LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlLCBMb2NhbFN0b3JhZ2VTdHJhdGVneSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQSB2b2NhYnVsYXJ5IGRyb3Bkb3duIGlucHV0IGludGVncmF0ZWQgd2l0aCBudXhlbyB2b2NhYnVsYXJ5IEFQSSxcclxuICogdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiB2b2NhYnVsYXJ5IGRyb3Bkb3duXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbVxyXG4gKiAgIFtsYWJlbF09XCInUEFUSC5UTy5MQUJFTC5UUkFOU0xBVElPTidcIlxyXG4gKiAgIFtiaW5kTGFiZWxdPVwiJ2JpbmRMYWJlbFByb3BlcnR5TmFtZSdcIlxyXG4gKiAgIFtiaW5kVmFsdWVdPVwiJ2JpbmRWYWx1ZVByb3BlcnR5TmFtZSdcIlxyXG4gKiAgIHBsYWNlaG9sZGVyPVwiJ1BBVEguVE8uUExBQ0VIT0xERVIuVFJBTlNMQVRJT04nXCJcclxuICogICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICogICBbY2xvc2VPblNlbGVjdF09XCJ0cnVlXCJcclxuICogICBbaGlkZVNlbGVjdGVkSXRlbXNdPVwiZmFsc2VcIlxyXG4gKiAgIFt2b2NhYnVsYXJ5VHlwZV09XCInVm9jYWJ1bGFyeUtleSdcIlxyXG4gKiAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRyb2xOYW1lXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZvY2FidWxhcnlJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50KVxyXG5cdER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudDogRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50O1xyXG5cclxuXHRkYXRhID0gW107XHJcblx0QElucHV0KCkgb25seUlkczogc3RyaW5nW10gPSBbXTtcclxuXHQvKiogQmluZCB2YWx1ZSB0byBwcm9wZXJ0eSBuYW1lICovXHJcblx0QElucHV0KCkgYmluZFZhbHVlO1xyXG5cdC8qKiBCaW5kIGxhYmVsIHRvIHByb3BlcnR5IG5hbWUgKi9cclxuXHRASW5wdXQoKSBiaW5kTGFiZWw7XHJcblx0LyoqIFBsYWNlaG9sZGVyIHN0cmluZyAqL1xyXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG5cdC8qKiBDYW4gc2VsZWN0IG11bHRpcGxlICovXHJcblx0QElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuXHQvKiogSXMgc2VhcmNoYWJsZSAqL1xyXG5cdEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlO1xyXG5cdC8qKiBTaG91bGQgY2xvc2Ugb24gc2VsZWN0ICovXHJcblx0QElucHV0KCkgY2xvc2VPblNlbGVjdCA9IHRydWU7XHJcblx0LyoqIFNob3VsZCBoaWRlIHNlbGVjdGVkIGl0ZW1zICovXHJcblx0QElucHV0KCkgaGlkZVNlbGVjdGVkSXRlbXMgPSBmYWxzZTtcclxuXHQvKiogaXMgZGlzYWJsZWQgKi9cclxuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cdC8qKiBWb2NhYnVsYXJ5IGxpc3QgQVBJIEtleSAqL1xyXG5cdEBJbnB1dCgpIHZvY2FidWxhcnlUeXBlID0gJyc7XHJcblx0LyoqIEZpZWxkIExhYmVsICovXHJcblx0QElucHV0KCkgbGFiZWw7XHJcblx0QElucHV0KCkgY2FjaGVhYmxlID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBzaHdvQWxsVmFsdWVzID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBlbWl0Vm9jYWJ1bHJ5UmVjb3JkT25TZWxlY3QgPSBmYWxzZTtcclxuXHQvKiogRXZlbnQgZW1pdHRlZCBvbiB2YWx1ZSBpcyBzZWxlY3RlZCAqL1xyXG5cdEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogRXZlbnQgZW1pdHRlZCBhZnRlciBmaW5pc2ggZmV0Y2hpbmcgb3B0aW9ucyAqL1xyXG5cdEBPdXRwdXQoKSBvbkZldGNoaW5nT3B0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRsb2FkaW5nID0gZmFsc2U7XHJcblx0c2VsZWN0aW9uO1xyXG5cclxuXHQvLyBmdW5jdGlvbiByZWxhdGVkIHRvIHZhbHVlIGFjY2Vzc29yXHJcblx0cHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcblx0dmFsaWRhdGVGbjogYW55ID0gKCkgPT4geyB9O1xyXG5cdHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuXHRcdC8qRW1wdHkqL1xyXG5cdH07XHJcblx0cHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkIDogZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHNob3dFcnJvcigpOiBib29sZWFuIHtcclxuXHRcdGlmICghdGhpcy5jb250cm9sKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB7IGRpcnR5LCB0b3VjaGVkIH0gPSB0aGlzLmNvbnRyb2w7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuaW52YWxpZCA/IGRpcnR5IHx8IHRvdWNoZWQgOiBmYWxzZTtcclxuXHR9XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZvY2FidWxhcnlBcGk6IFZvY2FidWxhcnlBcGlTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuXHQpIHtcclxuXHRcdHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMudm9jYWJ1bGFyeVR5cGUpIHtcclxuXHRcdFx0dGhpcy5nZXRMaXNPZk9wdGlvbnModGhpcy52b2NhYnVsYXJ5VHlwZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXRMaXNPZk9wdGlvbnModHlwZSkge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdGNvbnN0IGNhbGxBcGkgPSB0aGlzLmNhY2hlYWJsZSA/IHRoaXMuZ2V0Q2FjaGVhYmxlVm9jYWJ1bGFyeUxpc3QodHlwZSkgOiB0aGlzLmdldFZvY2FidWxhcnlMaXN0KHR5cGUpO1xyXG5cdFx0Y2FsbEFwaS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9ubHlJZHM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdHJlcyA9IHJlcy5maWx0ZXIoKHEpID0+IHRoaXMub25seUlkcy5pbmNsdWRlcyhxLmlkKSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuZGF0YSA9ICF0aGlzLnNod29BbGxWYWx1ZXNcclxuXHRcdFx0XHQ/IHJlcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlkLmluY2x1ZGVzKCdhcmNoaXZlZCcpICYmICFpdGVtLmlkLmluY2x1ZGVzKCdkcmFmdCcpKVxyXG5cdFx0XHRcdDogcmVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5vYnNvbGV0ZSA9PT0gMCk7XHJcblx0XHRcdHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR0aGlzLm9uRmV0Y2hpbmdPcHRpb25zLmVtaXQodGhpcy5kYXRhKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0QENhY2hlYWJsZSh7XHJcblx0XHRtYXhDYWNoZUNvdW50OiAxMDAwLFxyXG5cdFx0c3RvcmFnZVN0cmF0ZWd5OiBMb2NhbFN0b3JhZ2VTdHJhdGVneSxcclxuXHRcdG1heEFnZTogMjAwMDBcclxuXHR9KVxyXG5cdGdldENhY2hlYWJsZVZvY2FidWxhcnlMaXN0KHR5cGUpIHtcclxuXHRcdHJldHVybiB0aGlzLnZvY2FidWxhcnlBcGkuZ2V0Vm9jYWJ1bGFyeUxpc3QodHlwZSk7XHJcblx0fVxyXG5cclxuXHRnZXRWb2NhYnVsYXJ5TGlzdCh0eXBlKSB7XHJcblx0XHRyZXR1cm4gdGhpcy52b2NhYnVsYXJ5QXBpLmdldFZvY2FidWxhcnlMaXN0KHR5cGUpO1xyXG5cdH1cclxuXHRnZXRTZWxlY3RlZGl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0aW9uKTtcclxuXHRcdGNvbnN0IHZhbHVlID0gdGhpcy5lbWl0Vm9jYWJ1bHJ5UmVjb3JkT25TZWxlY3QgPyBzZWxlY3RlZEl0ZW1zIDogdGhpcy5zZWxlY3Rpb247XHJcblx0XHR0aGlzLm9uU2VsZWN0aW5nLmVtaXQodmFsdWUpO1xyXG5cdH1cclxuXHJcblx0d3JpdGVWYWx1ZSh2YWx1ZSkge1xyXG5cdFx0Ly8gaWYgKHZhbHVlKSB7IHJlbW92ZWQgdG8gYWxsb3cgcmVzZXRpbmcgdWkgd2hlbiByZXNldHRpbmcgZm9ybVxyXG5cdFx0Ly8gXHR0aGlzLnNlbGVjdGlvbiA9IHZhbHVlO1xyXG5cdFx0Ly8gfVxyXG5cclxuXHRcdGlmICh0aGlzLm11bHRpcGxlKSB7XHJcblx0XHRcdC8vIEVuc3VyZSBpdCdzIGFuIGFycmF5XHJcblx0XHRcdGNvbnN0IGluY29taW5nID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xyXG5cdFx0XHJcblx0XHRcdC8vIEtlZXAgb25seSBJRHMgdGhhdCBleGlzdCBpbiB0aGlzLmRhdGFcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb24gPSBpbmNvbWluZy5maWx0ZXIoaWQgPT4gdGhpcy5kYXRhLnNvbWUoaXRlbSA9PiBpdGVtLmlkID09PSBpZCkpO1xyXG5cdFx0XHJcblx0XHRcdC8vIElmIGFmdGVyIGZpbHRlcmluZyBpdCdzIGVtcHR5LCBwcm9wYWdhdGUgbnVsbFxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAwICYmIHRoaXMucHJvcGFnYXRlQ2hhbmdlKSB7XHJcblx0XHRcdCAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XHJcblx0XHRcdH1cclxuXHRcdCAgfSBlbHNlIHtcclxuXHRcdFx0Ly8gU2luZ2xlIHZhbHVlIG1vZGVcclxuXHRcdFx0aWYgKHRoaXMuZGF0YS5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdmFsdWUpKSB7XHJcblx0XHRcdCAgdGhpcy5zZWxlY3Rpb24gPSB2YWx1ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0ICB0aGlzLnNlbGVjdGlvbiA9IG51bGw7XHJcblx0XHRcdCAgaWYgKHRoaXMucHJvcGFnYXRlQ2hhbmdlKSB7XHJcblx0XHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XHJcblx0XHRcdCAgfVxyXG5cdFx0XHR9XHJcblx0XHQgIH1cclxuXHR9XHJcblxyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcclxuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcblx0fVxyXG5cdGlzUmVxdWlyZWQoKSB7XHJcblx0XHRpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuXHRcdHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG5cdH1cclxuXHRoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcblx0fVxyXG5cdHJlc2V0KCkge1xyXG5cdFx0dGhpcy5EeW5hbWljRm9ybVNlbGVjdEl0ZW1Db21wb25lbnQucmVzZXQoKTtcclxuXHR9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XHJcbiAgPGRpdj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInNlbGVjdC1sYWJlbFwiXHJcbiAgICAgID57eyBsYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTxzcGFuICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBteC0xXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48YXBwLWR5bmFtaWMtZm9ybS1zZWxlY3RpdGVtXHJcbiAgW3ZvY109XCJ0cnVlXCJcclxuICBbdm9jSWRdPVwidm9jYWJ1bGFyeVR5cGVcIlxyXG4gIFtkYXRhXT1cImRhdGFcIlxyXG4gIFtiaW5kTGFiZWxdPVwiYmluZExhYmVsXCJcclxuICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxyXG4gIFtjbG9zZU9uU2VsZWN0XT1cImNsb3NlT25TZWxlY3RcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2hpZGVTZWxlY3RlZEl0ZW1zXT1cImhpZGVTZWxlY3RlZEl0ZW1zXCJcclxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAob25TZWxlY3RJdGVtcyk9XCJnZXRTZWxlY3RlZGl0ZW1zKCRldmVudClcIlxyXG4gIFsobmdNb2RlbCldPVwic2VsZWN0aW9uXCJcclxuPjwvYXBwLWR5bmFtaWMtZm9ybS1zZWxlY3RpdGVtPlxyXG48bWF0LWVycm9yXHJcbiAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVycm9yLSdcIlxyXG4gIGNsYXNzPVwiYXBwLXRleHRpdGVtLWVkaXRhYmxlLWVycm9yXCJcclxuICAqbmdJZj1cImhhc0Vycm9ycygpXCJcclxuPlxyXG4gIDx1bD5cclxuICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19IHt7IFwiVkFMSURBVE9SUy5SRVFVSVJFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvbWF0LWVycm9yPlxyXG4iXX0=
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFFOUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFPSCxNQUFNLE9BQU8sa0NBQWtDO0lBdUQ5QyxZQUNTLGFBQW1DLEVBQ25DLEtBQXdCLEVBQ0wsT0FBa0I7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ0wsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQXREOUMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNELFlBQU8s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V0FBVztzQkFBcEIsTUFBTTtnQkFFRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBNERQLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPcHRpb25hbCxcclxuXHRPdXRwdXQsXHJcblx0U2VsZixcclxuXHRWaWV3Q2hpbGQsXHJcblx0Vmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWb2NhYnVsYXJ5QXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3ZvY2FidWxhcnkvc2VydmljZXMvdm9jYWJ1bGFyeS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IENhY2hlYWJsZSwgTG9jYWxTdG9yYWdlU3RyYXRlZ3kgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLWZvcm0tc2VsZWN0aXRlbS9keW5hbWljLWZvcm0tc2VsZWN0aXRlbS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEEgdm9jYWJ1bGFyeSBkcm9wZG93biBpbnB1dCBpbnRlZ3JhdGVkIHdpdGggbnV4ZW8gdm9jYWJ1bGFyeSBBUEksXHJcbiAqIHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogdm9jYWJ1bGFyeSBkcm9wZG93blxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW1cclxuICogICBbbGFiZWxdPVwiJ1BBVEguVE8uTEFCRUwuVFJBTlNMQVRJT04nXCJcclxuICogICBbYmluZExhYmVsXT1cIidiaW5kTGFiZWxQcm9wZXJ0eU5hbWUnXCJcclxuICogICBbYmluZFZhbHVlXT1cIidiaW5kVmFsdWVQcm9wZXJ0eU5hbWUnXCJcclxuICogICBwbGFjZWhvbGRlcj1cIidQQVRILlRPLlBMQUNFSE9MREVSLlRSQU5TTEFUSU9OJ1wiXHJcbiAqICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICogICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAqICAgW2Nsb3NlT25TZWxlY3RdPVwidHJ1ZVwiXHJcbiAqICAgW2hpZGVTZWxlY3RlZEl0ZW1zXT1cImZhbHNlXCJcclxuICogICBbdm9jYWJ1bGFyeVR5cGVdPVwiJ1ZvY2FidWxhcnlLZXknXCJcclxuICogICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqID5cclxuICogPC9hcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWR5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Wb2NhYnVsYXJ5SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHRAVmlld0NoaWxkKER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudClcclxuXHREeW5hbWljRm9ybVNlbGVjdEl0ZW1Db21wb25lbnQ6IER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudDtcclxuXHJcblx0ZGF0YSA9IFtdO1xyXG5cdEBJbnB1dCgpIG9ubHlJZHM6IHN0cmluZ1tdID0gW107XHJcblx0LyoqIEJpbmQgdmFsdWUgdG8gcHJvcGVydHkgbmFtZSAqL1xyXG5cdEBJbnB1dCgpIGJpbmRWYWx1ZTtcclxuXHQvKiogQmluZCBsYWJlbCB0byBwcm9wZXJ0eSBuYW1lICovXHJcblx0QElucHV0KCkgYmluZExhYmVsO1xyXG5cdC8qKiBQbGFjZWhvbGRlciBzdHJpbmcgKi9cclxuXHRASW5wdXQoKSBwbGFjZWhvbGRlcjtcclxuXHQvKiogQ2FuIHNlbGVjdCBtdWx0aXBsZSAqL1xyXG5cdEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcblx0LyoqIElzIHNlYXJjaGFibGUgKi9cclxuXHRASW5wdXQoKSBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuXHQvKiogU2hvdWxkIGNsb3NlIG9uIHNlbGVjdCAqL1xyXG5cdEBJbnB1dCgpIGNsb3NlT25TZWxlY3QgPSB0cnVlO1xyXG5cdC8qKiBTaG91bGQgaGlkZSBzZWxlY3RlZCBpdGVtcyAqL1xyXG5cdEBJbnB1dCgpIGhpZGVTZWxlY3RlZEl0ZW1zID0gZmFsc2U7XHJcblx0LyoqIGlzIGRpc2FibGVkICovXHJcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHQvKiogVm9jYWJ1bGFyeSBsaXN0IEFQSSBLZXkgKi9cclxuXHRASW5wdXQoKSB2b2NhYnVsYXJ5VHlwZSA9ICcnO1xyXG5cdC8qKiBGaWVsZCBMYWJlbCAqL1xyXG5cdEBJbnB1dCgpIGxhYmVsO1xyXG5cdEBJbnB1dCgpIGNhY2hlYWJsZSA9IHRydWU7XHJcblx0QElucHV0KCkgc2h3b0FsbFZhbHVlcyA9IHRydWU7XHJcblx0QElucHV0KCkgZW1pdFZvY2FidWxyeVJlY29yZE9uU2VsZWN0ID0gZmFsc2U7XHJcblx0LyoqIEV2ZW50IGVtaXR0ZWQgb24gdmFsdWUgaXMgc2VsZWN0ZWQgKi9cclxuXHRAT3V0cHV0KCkgb25TZWxlY3RpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgZmluaXNoIGZldGNoaW5nIG9wdGlvbnMgKi9cclxuXHRAT3V0cHV0KCkgb25GZXRjaGluZ09wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0bG9hZGluZyA9IGZhbHNlO1xyXG5cdHNlbGVjdGlvbjtcclxuXHJcblx0Ly8gZnVuY3Rpb24gcmVsYXRlZCB0byB2YWx1ZSBhY2Nlc3NvclxyXG5cdHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG5cdHZhbGlkYXRlRm46IGFueSA9ICgpID0+IHsgfTtcclxuXHRwdWJsaWMgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7XHJcblx0XHQvKkVtcHR5Ki9cclxuXHR9O1xyXG5cdHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXRoaXMuY29udHJvbCkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcblx0fVxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSB2b2NhYnVsYXJ5QXBpOiBWb2NhYnVsYXJ5QXBpU2VydmljZSxcclxuXHRcdHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0QFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcblx0KSB7XHJcblx0XHR0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnZvY2FidWxhcnlUeXBlKSB7XHJcblx0XHRcdHRoaXMuZ2V0TGlzT2ZPcHRpb25zKHRoaXMudm9jYWJ1bGFyeVR5cGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0TGlzT2ZPcHRpb25zKHR5cGUpIHtcclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0XHRjb25zdCBjYWxsQXBpID0gdGhpcy5jYWNoZWFibGUgPyB0aGlzLmdldENhY2hlYWJsZVZvY2FidWxhcnlMaXN0KHR5cGUpIDogdGhpcy5nZXRWb2NhYnVsYXJ5TGlzdCh0eXBlKTtcclxuXHRcdGNhbGxBcGkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5vbmx5SWRzPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRyZXMgPSByZXMuZmlsdGVyKChxKSA9PiB0aGlzLm9ubHlJZHMuaW5jbHVkZXMocS5pZCkpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aGlzLmRhdGEgPSAhdGhpcy5zaHdvQWxsVmFsdWVzXHJcblx0XHRcdFx0PyByZXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pZC5pbmNsdWRlcygnYXJjaGl2ZWQnKSAmJiAhaXRlbS5pZC5pbmNsdWRlcygnZHJhZnQnKSlcclxuXHRcdFx0XHQ6IHJlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub2Jzb2xldGUgPT09IDApO1xyXG5cdFx0XHR0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0dGhpcy5vbkZldGNoaW5nT3B0aW9ucy5lbWl0KHRoaXMuZGF0YSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdEBDYWNoZWFibGUoe1xyXG5cdFx0bWF4Q2FjaGVDb3VudDogMTAwMCxcclxuXHRcdHN0b3JhZ2VTdHJhdGVneTogTG9jYWxTdG9yYWdlU3RyYXRlZ3ksXHJcblx0XHRtYXhBZ2U6IDIwMDAwXHJcblx0fSlcclxuXHRnZXRDYWNoZWFibGVWb2NhYnVsYXJ5TGlzdCh0eXBlKSB7XHJcblx0XHRyZXR1cm4gdGhpcy52b2NhYnVsYXJ5QXBpLmdldFZvY2FidWxhcnlMaXN0KHR5cGUpO1xyXG5cdH1cclxuXHJcblx0Z2V0Vm9jYWJ1bGFyeUxpc3QodHlwZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMudm9jYWJ1bGFyeUFwaS5nZXRWb2NhYnVsYXJ5TGlzdCh0eXBlKTtcclxuXHR9XHJcblx0Z2V0U2VsZWN0ZWRpdGVtcyhzZWxlY3RlZEl0ZW1zKSB7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGlvbik7XHJcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuZW1pdFZvY2FidWxyeVJlY29yZE9uU2VsZWN0ID8gc2VsZWN0ZWRJdGVtcyA6IHRoaXMuc2VsZWN0aW9uO1xyXG5cdFx0dGhpcy5vblNlbGVjdGluZy5lbWl0KHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUodmFsdWUpIHtcclxuXHRcdC8vIGlmICh2YWx1ZSkgeyByZW1vdmVkIHRvIGFsbG93IHJlc2V0aW5nIHVpIHdoZW4gcmVzZXR0aW5nIGZvcm1cclxuXHRcdC8vIFx0dGhpcy5zZWxlY3Rpb24gPSB2YWx1ZTtcclxuXHRcdC8vIH1cclxuXHJcblx0XHRpZiAodGhpcy5tdWx0aXBsZSkge1xyXG5cdFx0XHQvLyBFbnN1cmUgaXQncyBhbiBhcnJheVxyXG5cdFx0XHRjb25zdCBpbmNvbWluZyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXTtcclxuXHRcdFxyXG5cdFx0XHQvLyBLZWVwIG9ubHkgSURzIHRoYXQgZXhpc3QgaW4gdGhpcy5kYXRhXHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uID0gaW5jb21pbmcuZmlsdGVyKGlkID0+IHRoaXMuZGF0YS5zb21lKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpKTtcclxuXHRcdFxyXG5cdFx0XHQvLyBJZiBhZnRlciBmaWx0ZXJpbmcgaXQncyBlbXB0eSwgcHJvcGFnYXRlIG51bGxcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnByb3BhZ2F0ZUNoYW5nZSkge1xyXG5cdFx0XHQgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHR9XHJcblx0XHQgIH0gZWxzZSB7XHJcblx0XHRcdC8vIFNpbmdsZSB2YWx1ZSBtb2RlXHJcblx0XHRcdGlmICh0aGlzLmRhdGEuc29tZShpdGVtID0+IGl0ZW0uaWQgPT09IHZhbHVlKSkge1xyXG5cdFx0XHQgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdCAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xyXG5cdFx0XHQgIGlmICh0aGlzLnByb3BhZ2F0ZUNoYW5nZSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHQgIH1cclxuXHRcdFx0fVxyXG5cdFx0ICB9XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG5cdH1cclxuXHRpc1JlcXVpcmVkKCkge1xyXG5cdFx0aWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcblx0XHRyZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuXHR9XHJcblx0aGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG5cdH1cclxuXHRyZXNldCgpIHtcclxuXHRcdHRoaXMuRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50LnJlc2V0KCk7XHJcblx0fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxyXG4gIDxkaXY+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzZWxlY3QtbGFiZWxcIlxyXG4gICAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGVcclxuICAgICAgfX08c3BhbiAqbmdJZj1cImlzUmVxdWlyZWQoKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXgtMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tc2VsZWN0aXRlbVxyXG4gIFt2b2NdPVwidHJ1ZVwiXHJcbiAgW3ZvY0lkXT1cInZvY2FidWxhcnlUeXBlXCJcclxuICBbZGF0YV09XCJkYXRhXCJcclxuICBbYmluZExhYmVsXT1cImJpbmRMYWJlbFwiXHJcbiAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcclxuICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtoaWRlU2VsZWN0ZWRJdGVtc109XCJoaWRlU2VsZWN0ZWRJdGVtc1wiXHJcbiAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgKG9uU2VsZWN0SXRlbXMpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblwiXHJcbj48L2FwcC1keW5hbWljLWZvcm0tc2VsZWN0aXRlbT5cclxuPG1hdC1lcnJvclxyXG4gIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lcnJvci0nXCJcclxuICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiXHJcbj5cclxuICA8dWw+XHJcbiAgICA8bGkgKm5nSWY9XCJjb250cm9sLmVycm9ycy5yZXF1aXJlZFwiPlxyXG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fSB7eyBcIlZBTElEQVRPUlMuUkVRVUlSRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG48L21hdC1lcnJvcj5cclxuIl19