@eo-sdk/client 9.0.0-rc.7 → 9.0.0-rc.8

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 (417) hide show
  1. package/app/eo-client/settings/settings.component.d.ts +2 -1
  2. package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts +5 -9
  3. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +4 -2
  4. package/app/eo-framework/media/media.component.d.ts +3 -12
  5. package/app/eo-framework/ui/overlay/overlay.component.d.ts +3 -0
  6. package/app/eo-framework/util/directive/trap-focus.directive.d.ts +2 -0
  7. package/assets/_default/i18n/de.json +2 -0
  8. package/assets/_default/i18n/en.json +7 -5
  9. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +5 -0
  10. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +1 -1
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  13. package/bundles/eo-sdk-client.umd.js +127 -130
  14. package/bundles/eo-sdk-client.umd.js.map +1 -1
  15. package/bundles/eo-sdk-client.umd.min.js +1 -1
  16. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  17. package/eo-sdk-client.metadata.json +1 -1
  18. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  19. package/esm2015/app/eo-client/dashboard/dashboard.component.js +2 -2
  20. package/esm2015/app/eo-client/settings/settings.component.js +7 -4
  21. package/esm2015/app/eo-framework/accordion/simple-accordion/simple-accordion.component.js +18 -23
  22. package/esm2015/app/eo-framework/actions/actions/copy-action/copy-action.js +2 -2
  23. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +3 -2
  24. package/esm2015/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.js +1 -1
  25. package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +12 -5
  26. package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +13 -1
  27. package/esm2015/app/eo-framework/form-elements/datetime/datetime.component.js +2 -2
  28. package/esm2015/app/eo-framework/form-elements/form-input/form-input.component.js +1 -1
  29. package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +1 -1
  30. package/esm2015/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.js +3 -3
  31. package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +1 -1
  32. package/esm2015/app/eo-framework/form-elements/string/string.component.js +3 -3
  33. package/esm2015/app/eo-framework/grid/filters/datetime-filter.component.js +2 -2
  34. package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +1 -1
  35. package/esm2015/app/eo-framework/media/media.component.js +31 -77
  36. package/esm2015/app/eo-framework/object-details/object-details.component.js +2 -2
  37. package/esm2015/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.js +1 -1
  38. package/esm2015/app/eo-framework/ui/clipboard/clipboard.component.js +2 -2
  39. package/esm2015/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.js +4 -4
  40. package/esm2015/app/eo-framework/ui/overlay/overlay.component.js +10 -4
  41. package/esm2015/app/eo-framework/util/directive/trap-focus.directive.js +22 -4
  42. package/esm2015/projects/eo-sdk/core/lib/model/dms-object.model.js +4 -1
  43. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +2 -1
  44. package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +2 -1
  45. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +5 -0
  46. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  47. package/fesm2015/eo-sdk-client.js +125 -128
  48. package/fesm2015/eo-sdk-client.js.map +1 -1
  49. package/package.json +2 -2
  50. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts +4 -0
  51. package/projects/eo-sdk/core/package.json +1 -1
  52. package/scss/_form.scss +3 -0
  53. package/styles.css +2 -0
  54. package/assets/_default/api/pdf/LICENSE +0 -177
  55. package/assets/_default/api/pdf/build/pdf.js +0 -2
  56. package/assets/_default/api/pdf/build/pdf.js.LICENSE.txt +0 -21
  57. package/assets/_default/api/pdf/build/pdf.js.map +0 -1
  58. package/assets/_default/api/pdf/build/pdf.sandbox.js +0 -2
  59. package/assets/_default/api/pdf/build/pdf.sandbox.js.LICENSE.txt +0 -21
  60. package/assets/_default/api/pdf/build/pdf.sandbox.js.map +0 -1
  61. package/assets/_default/api/pdf/build/pdf.worker.js +0 -2
  62. package/assets/_default/api/pdf/build/pdf.worker.js.LICENSE.txt +0 -21
  63. package/assets/_default/api/pdf/build/pdf.worker.js.map +0 -1
  64. package/assets/_default/api/pdf/web/cmaps/78-EUC-H.bcmap +0 -0
  65. package/assets/_default/api/pdf/web/cmaps/78-EUC-V.bcmap +0 -0
  66. package/assets/_default/api/pdf/web/cmaps/78-H.bcmap +0 -0
  67. package/assets/_default/api/pdf/web/cmaps/78-RKSJ-H.bcmap +0 -0
  68. package/assets/_default/api/pdf/web/cmaps/78-RKSJ-V.bcmap +0 -0
  69. package/assets/_default/api/pdf/web/cmaps/78-V.bcmap +0 -0
  70. package/assets/_default/api/pdf/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  71. package/assets/_default/api/pdf/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  72. package/assets/_default/api/pdf/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  73. package/assets/_default/api/pdf/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  74. package/assets/_default/api/pdf/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  75. package/assets/_default/api/pdf/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  76. package/assets/_default/api/pdf/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  77. package/assets/_default/api/pdf/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  78. package/assets/_default/api/pdf/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  79. package/assets/_default/api/pdf/web/cmaps/Add-H.bcmap +0 -0
  80. package/assets/_default/api/pdf/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  81. package/assets/_default/api/pdf/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  82. package/assets/_default/api/pdf/web/cmaps/Add-V.bcmap +0 -0
  83. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  84. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  85. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  86. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  87. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  88. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  89. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  90. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  91. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  92. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  93. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  94. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  95. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  96. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  97. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  98. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  99. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  100. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  101. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  102. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  103. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  104. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  105. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  106. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  107. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  108. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  109. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  110. package/assets/_default/api/pdf/web/cmaps/B5-H.bcmap +0 -0
  111. package/assets/_default/api/pdf/web/cmaps/B5-V.bcmap +0 -0
  112. package/assets/_default/api/pdf/web/cmaps/B5pc-H.bcmap +0 -0
  113. package/assets/_default/api/pdf/web/cmaps/B5pc-V.bcmap +0 -0
  114. package/assets/_default/api/pdf/web/cmaps/CNS-EUC-H.bcmap +0 -0
  115. package/assets/_default/api/pdf/web/cmaps/CNS-EUC-V.bcmap +0 -0
  116. package/assets/_default/api/pdf/web/cmaps/CNS1-H.bcmap +0 -0
  117. package/assets/_default/api/pdf/web/cmaps/CNS1-V.bcmap +0 -0
  118. package/assets/_default/api/pdf/web/cmaps/CNS2-H.bcmap +0 -0
  119. package/assets/_default/api/pdf/web/cmaps/CNS2-V.bcmap +0 -3
  120. package/assets/_default/api/pdf/web/cmaps/ETHK-B5-H.bcmap +0 -0
  121. package/assets/_default/api/pdf/web/cmaps/ETHK-B5-V.bcmap +0 -0
  122. package/assets/_default/api/pdf/web/cmaps/ETen-B5-H.bcmap +0 -0
  123. package/assets/_default/api/pdf/web/cmaps/ETen-B5-V.bcmap +0 -0
  124. package/assets/_default/api/pdf/web/cmaps/ETenms-B5-H.bcmap +0 -3
  125. package/assets/_default/api/pdf/web/cmaps/ETenms-B5-V.bcmap +0 -0
  126. package/assets/_default/api/pdf/web/cmaps/EUC-H.bcmap +0 -0
  127. package/assets/_default/api/pdf/web/cmaps/EUC-V.bcmap +0 -0
  128. package/assets/_default/api/pdf/web/cmaps/Ext-H.bcmap +0 -0
  129. package/assets/_default/api/pdf/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  130. package/assets/_default/api/pdf/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  131. package/assets/_default/api/pdf/web/cmaps/Ext-V.bcmap +0 -0
  132. package/assets/_default/api/pdf/web/cmaps/GB-EUC-H.bcmap +0 -0
  133. package/assets/_default/api/pdf/web/cmaps/GB-EUC-V.bcmap +0 -0
  134. package/assets/_default/api/pdf/web/cmaps/GB-H.bcmap +0 -4
  135. package/assets/_default/api/pdf/web/cmaps/GB-V.bcmap +0 -0
  136. package/assets/_default/api/pdf/web/cmaps/GBK-EUC-H.bcmap +0 -0
  137. package/assets/_default/api/pdf/web/cmaps/GBK-EUC-V.bcmap +0 -0
  138. package/assets/_default/api/pdf/web/cmaps/GBK2K-H.bcmap +0 -0
  139. package/assets/_default/api/pdf/web/cmaps/GBK2K-V.bcmap +0 -0
  140. package/assets/_default/api/pdf/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  141. package/assets/_default/api/pdf/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  142. package/assets/_default/api/pdf/web/cmaps/GBT-EUC-H.bcmap +0 -0
  143. package/assets/_default/api/pdf/web/cmaps/GBT-EUC-V.bcmap +0 -0
  144. package/assets/_default/api/pdf/web/cmaps/GBT-H.bcmap +0 -0
  145. package/assets/_default/api/pdf/web/cmaps/GBT-V.bcmap +0 -0
  146. package/assets/_default/api/pdf/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  147. package/assets/_default/api/pdf/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  148. package/assets/_default/api/pdf/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  149. package/assets/_default/api/pdf/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  150. package/assets/_default/api/pdf/web/cmaps/H.bcmap +0 -0
  151. package/assets/_default/api/pdf/web/cmaps/HKdla-B5-H.bcmap +0 -0
  152. package/assets/_default/api/pdf/web/cmaps/HKdla-B5-V.bcmap +0 -0
  153. package/assets/_default/api/pdf/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  154. package/assets/_default/api/pdf/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  155. package/assets/_default/api/pdf/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  156. package/assets/_default/api/pdf/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  157. package/assets/_default/api/pdf/web/cmaps/HKm314-B5-H.bcmap +0 -0
  158. package/assets/_default/api/pdf/web/cmaps/HKm314-B5-V.bcmap +0 -0
  159. package/assets/_default/api/pdf/web/cmaps/HKm471-B5-H.bcmap +0 -0
  160. package/assets/_default/api/pdf/web/cmaps/HKm471-B5-V.bcmap +0 -0
  161. package/assets/_default/api/pdf/web/cmaps/HKscs-B5-H.bcmap +0 -0
  162. package/assets/_default/api/pdf/web/cmaps/HKscs-B5-V.bcmap +0 -0
  163. package/assets/_default/api/pdf/web/cmaps/Hankaku.bcmap +0 -0
  164. package/assets/_default/api/pdf/web/cmaps/Hiragana.bcmap +0 -0
  165. package/assets/_default/api/pdf/web/cmaps/KSC-EUC-H.bcmap +0 -0
  166. package/assets/_default/api/pdf/web/cmaps/KSC-EUC-V.bcmap +0 -0
  167. package/assets/_default/api/pdf/web/cmaps/KSC-H.bcmap +0 -0
  168. package/assets/_default/api/pdf/web/cmaps/KSC-Johab-H.bcmap +0 -0
  169. package/assets/_default/api/pdf/web/cmaps/KSC-Johab-V.bcmap +0 -0
  170. package/assets/_default/api/pdf/web/cmaps/KSC-V.bcmap +0 -0
  171. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  172. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  173. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  174. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  175. package/assets/_default/api/pdf/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  176. package/assets/_default/api/pdf/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  177. package/assets/_default/api/pdf/web/cmaps/Katakana.bcmap +0 -0
  178. package/assets/_default/api/pdf/web/cmaps/LICENSE +0 -36
  179. package/assets/_default/api/pdf/web/cmaps/NWP-H.bcmap +0 -0
  180. package/assets/_default/api/pdf/web/cmaps/NWP-V.bcmap +0 -0
  181. package/assets/_default/api/pdf/web/cmaps/RKSJ-H.bcmap +0 -0
  182. package/assets/_default/api/pdf/web/cmaps/RKSJ-V.bcmap +0 -0
  183. package/assets/_default/api/pdf/web/cmaps/Roman.bcmap +0 -0
  184. package/assets/_default/api/pdf/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  185. package/assets/_default/api/pdf/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  186. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  187. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  188. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  189. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  190. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  191. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  192. package/assets/_default/api/pdf/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  193. package/assets/_default/api/pdf/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  194. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  195. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  196. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  197. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  198. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  199. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  200. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  201. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  202. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  203. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  204. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  205. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  206. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  207. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  208. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  209. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  210. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  211. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  212. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  213. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  214. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  215. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  216. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  217. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  218. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  219. package/assets/_default/api/pdf/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  220. package/assets/_default/api/pdf/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  221. package/assets/_default/api/pdf/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  222. package/assets/_default/api/pdf/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  223. package/assets/_default/api/pdf/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  224. package/assets/_default/api/pdf/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  225. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  226. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  227. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  228. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  229. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  230. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  231. package/assets/_default/api/pdf/web/cmaps/V.bcmap +0 -0
  232. package/assets/_default/api/pdf/web/cmaps/WP-Symbol.bcmap +0 -0
  233. package/assets/_default/api/pdf/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  234. package/assets/_default/api/pdf/web/debugger.js +0 -1
  235. package/assets/_default/api/pdf/web/images/annotation-check.svg +0 -11
  236. package/assets/_default/api/pdf/web/images/annotation-comment.svg +0 -16
  237. package/assets/_default/api/pdf/web/images/annotation-help.svg +0 -26
  238. package/assets/_default/api/pdf/web/images/annotation-insert.svg +0 -10
  239. package/assets/_default/api/pdf/web/images/annotation-key.svg +0 -11
  240. package/assets/_default/api/pdf/web/images/annotation-newparagraph.svg +0 -11
  241. package/assets/_default/api/pdf/web/images/annotation-noicon.svg +0 -7
  242. package/assets/_default/api/pdf/web/images/annotation-note.svg +0 -42
  243. package/assets/_default/api/pdf/web/images/annotation-paragraph.svg +0 -16
  244. package/assets/_default/api/pdf/web/images/findbarButton-next.svg +0 -4
  245. package/assets/_default/api/pdf/web/images/findbarButton-previous.svg +0 -4
  246. package/assets/_default/api/pdf/web/images/grab.cur +0 -0
  247. package/assets/_default/api/pdf/web/images/grabbing.cur +0 -0
  248. package/assets/_default/api/pdf/web/images/loading-dark.svg +0 -24
  249. package/assets/_default/api/pdf/web/images/loading-icon.gif +0 -0
  250. package/assets/_default/api/pdf/web/images/loading.svg +0 -1
  251. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-documentProperties.svg +0 -15
  252. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-firstPage.svg +0 -1
  253. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-handTool.svg +0 -1
  254. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-lastPage.svg +0 -1
  255. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-rotateCcw.svg +0 -1
  256. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-rotateCw.svg +0 -4
  257. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -1
  258. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollVertical.svg +0 -1
  259. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -1
  260. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-selectTool.svg +0 -4
  261. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadEven.svg +0 -1
  262. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadNone.svg +0 -1
  263. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadOdd.svg +0 -1
  264. package/assets/_default/api/pdf/web/images/shadow.png +0 -0
  265. package/assets/_default/api/pdf/web/images/toolbarButton-bookmark.svg +0 -1
  266. package/assets/_default/api/pdf/web/images/toolbarButton-currentOutlineItem.svg +0 -1
  267. package/assets/_default/api/pdf/web/images/toolbarButton-download.svg +0 -4
  268. package/assets/_default/api/pdf/web/images/toolbarButton-menuArrow.svg +0 -1
  269. package/assets/_default/api/pdf/web/images/toolbarButton-openFile.svg +0 -4
  270. package/assets/_default/api/pdf/web/images/toolbarButton-pageDown.svg +0 -7
  271. package/assets/_default/api/pdf/web/images/toolbarButton-pageUp.svg +0 -12
  272. package/assets/_default/api/pdf/web/images/toolbarButton-presentationMode.svg +0 -1
  273. package/assets/_default/api/pdf/web/images/toolbarButton-print.svg +0 -4
  274. package/assets/_default/api/pdf/web/images/toolbarButton-search.svg +0 -4
  275. package/assets/_default/api/pdf/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -4
  276. package/assets/_default/api/pdf/web/images/toolbarButton-sidebarToggle.svg +0 -4
  277. package/assets/_default/api/pdf/web/images/toolbarButton-viewAttachments.svg +0 -1
  278. package/assets/_default/api/pdf/web/images/toolbarButton-viewLayers.svg +0 -1
  279. package/assets/_default/api/pdf/web/images/toolbarButton-viewOutline.svg +0 -1
  280. package/assets/_default/api/pdf/web/images/toolbarButton-viewThumbnail.svg +0 -4
  281. package/assets/_default/api/pdf/web/images/toolbarButton-zoomIn.svg +0 -4
  282. package/assets/_default/api/pdf/web/images/toolbarButton-zoomOut.svg +0 -4
  283. package/assets/_default/api/pdf/web/images/treeitem-collapsed.svg +0 -1
  284. package/assets/_default/api/pdf/web/images/treeitem-expanded.svg +0 -1
  285. package/assets/_default/api/pdf/web/locale/ach/viewer.properties +0 -199
  286. package/assets/_default/api/pdf/web/locale/af/viewer.properties +0 -176
  287. package/assets/_default/api/pdf/web/locale/an/viewer.properties +0 -242
  288. package/assets/_default/api/pdf/web/locale/ar/viewer.properties +0 -246
  289. package/assets/_default/api/pdf/web/locale/ast/viewer.properties +0 -207
  290. package/assets/_default/api/pdf/web/locale/az/viewer.properties +0 -242
  291. package/assets/_default/api/pdf/web/locale/be/viewer.properties +0 -248
  292. package/assets/_default/api/pdf/web/locale/bg/viewer.properties +0 -234
  293. package/assets/_default/api/pdf/web/locale/bn/viewer.properties +0 -236
  294. package/assets/_default/api/pdf/web/locale/bo/viewer.properties +0 -237
  295. package/assets/_default/api/pdf/web/locale/br/viewer.properties +0 -246
  296. package/assets/_default/api/pdf/web/locale/brx/viewer.properties +0 -204
  297. package/assets/_default/api/pdf/web/locale/bs/viewer.properties +0 -193
  298. package/assets/_default/api/pdf/web/locale/ca/viewer.properties +0 -250
  299. package/assets/_default/api/pdf/web/locale/cak/viewer.properties +0 -248
  300. package/assets/_default/api/pdf/web/locale/ckb/viewer.properties +0 -233
  301. package/assets/_default/api/pdf/web/locale/cs/viewer.properties +0 -248
  302. package/assets/_default/api/pdf/web/locale/cy/viewer.properties +0 -248
  303. package/assets/_default/api/pdf/web/locale/da/viewer.properties +0 -248
  304. package/assets/_default/api/pdf/web/locale/de/viewer.properties +0 -248
  305. package/assets/_default/api/pdf/web/locale/dsb/viewer.properties +0 -248
  306. package/assets/_default/api/pdf/web/locale/el/viewer.properties +0 -248
  307. package/assets/_default/api/pdf/web/locale/en-CA/viewer.properties +0 -248
  308. package/assets/_default/api/pdf/web/locale/en-GB/viewer.properties +0 -248
  309. package/assets/_default/api/pdf/web/locale/en-US/viewer.properties +0 -248
  310. package/assets/_default/api/pdf/web/locale/eo/viewer.properties +0 -248
  311. package/assets/_default/api/pdf/web/locale/es-AR/viewer.properties +0 -248
  312. package/assets/_default/api/pdf/web/locale/es-CL/viewer.properties +0 -248
  313. package/assets/_default/api/pdf/web/locale/es-ES/viewer.properties +0 -248
  314. package/assets/_default/api/pdf/web/locale/es-MX/viewer.properties +0 -248
  315. package/assets/_default/api/pdf/web/locale/et/viewer.properties +0 -238
  316. package/assets/_default/api/pdf/web/locale/eu/viewer.properties +0 -248
  317. package/assets/_default/api/pdf/web/locale/fa/viewer.properties +0 -215
  318. package/assets/_default/api/pdf/web/locale/ff/viewer.properties +0 -234
  319. package/assets/_default/api/pdf/web/locale/fi/viewer.properties +0 -248
  320. package/assets/_default/api/pdf/web/locale/fr/viewer.properties +0 -248
  321. package/assets/_default/api/pdf/web/locale/fy-NL/viewer.properties +0 -248
  322. package/assets/_default/api/pdf/web/locale/ga-IE/viewer.properties +0 -176
  323. package/assets/_default/api/pdf/web/locale/gd/viewer.properties +0 -248
  324. package/assets/_default/api/pdf/web/locale/gl/viewer.properties +0 -248
  325. package/assets/_default/api/pdf/web/locale/gn/viewer.properties +0 -248
  326. package/assets/_default/api/pdf/web/locale/gu-IN/viewer.properties +0 -234
  327. package/assets/_default/api/pdf/web/locale/he/viewer.properties +0 -248
  328. package/assets/_default/api/pdf/web/locale/hi-IN/viewer.properties +0 -234
  329. package/assets/_default/api/pdf/web/locale/hr/viewer.properties +0 -248
  330. package/assets/_default/api/pdf/web/locale/hsb/viewer.properties +0 -248
  331. package/assets/_default/api/pdf/web/locale/hu/viewer.properties +0 -248
  332. package/assets/_default/api/pdf/web/locale/hy-AM/viewer.properties +0 -238
  333. package/assets/_default/api/pdf/web/locale/hye/viewer.properties +0 -244
  334. package/assets/_default/api/pdf/web/locale/ia/viewer.properties +0 -248
  335. package/assets/_default/api/pdf/web/locale/id/viewer.properties +0 -248
  336. package/assets/_default/api/pdf/web/locale/is/viewer.properties +0 -231
  337. package/assets/_default/api/pdf/web/locale/it/viewer.properties +0 -190
  338. package/assets/_default/api/pdf/web/locale/ja/viewer.properties +0 -259
  339. package/assets/_default/api/pdf/web/locale/ka/viewer.properties +0 -248
  340. package/assets/_default/api/pdf/web/locale/kab/viewer.properties +0 -248
  341. package/assets/_default/api/pdf/web/locale/kk/viewer.properties +0 -248
  342. package/assets/_default/api/pdf/web/locale/km/viewer.properties +0 -209
  343. package/assets/_default/api/pdf/web/locale/kn/viewer.properties +0 -186
  344. package/assets/_default/api/pdf/web/locale/ko/viewer.properties +0 -248
  345. package/assets/_default/api/pdf/web/locale/lij/viewer.properties +0 -234
  346. package/assets/_default/api/pdf/web/locale/lo/viewer.properties +0 -145
  347. package/assets/_default/api/pdf/web/locale/locale.properties +0 -321
  348. package/assets/_default/api/pdf/web/locale/lt/viewer.properties +0 -248
  349. package/assets/_default/api/pdf/web/locale/ltg/viewer.properties +0 -212
  350. package/assets/_default/api/pdf/web/locale/lv/viewer.properties +0 -234
  351. package/assets/_default/api/pdf/web/locale/meh/viewer.properties +0 -111
  352. package/assets/_default/api/pdf/web/locale/mk/viewer.properties +0 -138
  353. package/assets/_default/api/pdf/web/locale/mr/viewer.properties +0 -230
  354. package/assets/_default/api/pdf/web/locale/ms/viewer.properties +0 -234
  355. package/assets/_default/api/pdf/web/locale/my/viewer.properties +0 -190
  356. package/assets/_default/api/pdf/web/locale/nb-NO/viewer.properties +0 -248
  357. package/assets/_default/api/pdf/web/locale/ne-NP/viewer.properties +0 -176
  358. package/assets/_default/api/pdf/web/locale/nl/viewer.properties +0 -248
  359. package/assets/_default/api/pdf/web/locale/nn-NO/viewer.properties +0 -248
  360. package/assets/_default/api/pdf/web/locale/oc/viewer.properties +0 -248
  361. package/assets/_default/api/pdf/web/locale/pa-IN/viewer.properties +0 -248
  362. package/assets/_default/api/pdf/web/locale/pl/viewer.properties +0 -248
  363. package/assets/_default/api/pdf/web/locale/pt-BR/viewer.properties +0 -248
  364. package/assets/_default/api/pdf/web/locale/pt-PT/viewer.properties +0 -248
  365. package/assets/_default/api/pdf/web/locale/rm/viewer.properties +0 -248
  366. package/assets/_default/api/pdf/web/locale/ro/viewer.properties +0 -240
  367. package/assets/_default/api/pdf/web/locale/ru/viewer.properties +0 -248
  368. package/assets/_default/api/pdf/web/locale/scn/viewer.properties +0 -101
  369. package/assets/_default/api/pdf/web/locale/sco/viewer.properties +0 -248
  370. package/assets/_default/api/pdf/web/locale/si/viewer.properties +0 -201
  371. package/assets/_default/api/pdf/web/locale/sk/viewer.properties +0 -248
  372. package/assets/_default/api/pdf/web/locale/sl/viewer.properties +0 -248
  373. package/assets/_default/api/pdf/web/locale/son/viewer.properties +0 -172
  374. package/assets/_default/api/pdf/web/locale/sq/viewer.properties +0 -235
  375. package/assets/_default/api/pdf/web/locale/sr/viewer.properties +0 -250
  376. package/assets/_default/api/pdf/web/locale/sv-SE/viewer.properties +0 -248
  377. package/assets/_default/api/pdf/web/locale/szl/viewer.properties +0 -246
  378. package/assets/_default/api/pdf/web/locale/ta/viewer.properties +0 -193
  379. package/assets/_default/api/pdf/web/locale/te/viewer.properties +0 -217
  380. package/assets/_default/api/pdf/web/locale/tg/viewer.properties +0 -142
  381. package/assets/_default/api/pdf/web/locale/th/viewer.properties +0 -248
  382. package/assets/_default/api/pdf/web/locale/tl/viewer.properties +0 -242
  383. package/assets/_default/api/pdf/web/locale/tr/viewer.properties +0 -248
  384. package/assets/_default/api/pdf/web/locale/trs/viewer.properties +0 -206
  385. package/assets/_default/api/pdf/web/locale/uk/viewer.properties +0 -248
  386. package/assets/_default/api/pdf/web/locale/ur/viewer.properties +0 -238
  387. package/assets/_default/api/pdf/web/locale/uz/viewer.properties +0 -162
  388. package/assets/_default/api/pdf/web/locale/vi/viewer.properties +0 -248
  389. package/assets/_default/api/pdf/web/locale/wo/viewer.properties +0 -122
  390. package/assets/_default/api/pdf/web/locale/xh/viewer.properties +0 -176
  391. package/assets/_default/api/pdf/web/locale/zh-CN/viewer.properties +0 -248
  392. package/assets/_default/api/pdf/web/locale/zh-TW/viewer.properties +0 -248
  393. package/assets/_default/api/pdf/web/standard_fonts/FoxitDingbats.pfb +0 -0
  394. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixed.pfb +0 -0
  395. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  396. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  397. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  398. package/assets/_default/api/pdf/web/standard_fonts/FoxitSans.pfb +0 -0
  399. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansBold.pfb +0 -0
  400. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansBoldItalic.pfb +0 -0
  401. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansItalic.pfb +0 -0
  402. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerif.pfb +0 -0
  403. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  404. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  405. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  406. package/assets/_default/api/pdf/web/standard_fonts/FoxitSymbol.pfb +0 -0
  407. package/assets/_default/api/pdf/web/standard_fonts/LICENSE_FOXIT +0 -27
  408. package/assets/_default/api/pdf/web/standard_fonts/LICENSE_LIBERATION +0 -102
  409. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  410. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  411. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  412. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  413. package/assets/_default/api/pdf/web/viewer.css +0 -2746
  414. package/assets/_default/api/pdf/web/viewer.html +0 -398
  415. package/assets/_default/api/pdf/web/viewer.js +0 -2
  416. package/assets/_default/api/pdf/web/viewer.js.LICENSE.txt +0 -21
  417. package/assets/_default/api/pdf/web/viewer.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef } from '@angular/core';
1
+ import { Directive, ElementRef, HostListener } from '@angular/core';
2
2
  /**
3
3
  * This directive traps the focus inside the element it is applied to.
4
4
  * When applied, a users can't "tab out" of the element.
@@ -9,13 +9,14 @@ import { Directive, ElementRef } from '@angular/core';
9
9
  export class TrapFocusDirective {
10
10
  constructor(el) {
11
11
  this.el = el;
12
+ this.focusableSelectors = 'a[href], button, textarea, input[type="text"],' +
13
+ 'input[type="radio"], input[type="checkbox"], select, [focusable]';
12
14
  }
13
15
  ngAfterViewInit() {
14
16
  this.trapFocus(this.el.nativeElement);
15
17
  }
16
18
  trapFocus(element) {
17
- let focusableElements = element.querySelectorAll('a[href], button, textarea, input[type="text"],' +
18
- 'input[type="radio"], input[type="checkbox"], select, [focusable]');
19
+ let focusableElements = element.querySelectorAll(this.focusableSelectors);
19
20
  focusableElements = Array.from(focusableElements)
20
21
  .filter((el) => !el.disabled && !el.classList.contains('disabled'));
21
22
  const firstFocusableElement = focusableElements[0];
@@ -38,6 +39,20 @@ export class TrapFocusDirective {
38
39
  }
39
40
  }));
40
41
  }
42
+ isArrowUpOrDownPressed(event) {
43
+ const key = event.key;
44
+ if (key === 'ArrowUp' || key === 'ArrowDown') {
45
+ event.preventDefault();
46
+ let focusableElements = this.el.nativeElement.parentElement.querySelectorAll(this.focusableSelectors);
47
+ const currentIndex = Array.from(focusableElements).indexOf(document.activeElement);
48
+ if (key === 'ArrowDown' && currentIndex < focusableElements.length - 1) {
49
+ focusableElements[currentIndex + 1].focus();
50
+ }
51
+ else if (key === 'ArrowUp' && currentIndex > 0) {
52
+ focusableElements[currentIndex - 1].focus();
53
+ }
54
+ }
55
+ }
41
56
  }
42
57
  TrapFocusDirective.decorators = [
43
58
  { type: Directive, args: [{
@@ -47,4 +62,7 @@ TrapFocusDirective.decorators = [
47
62
  TrapFocusDirective.ctorParameters = () => [
48
63
  { type: ElementRef }
49
64
  ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhcC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL2RpcmVjdGl2ZS90cmFwLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RDs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBWTtRQUNwQixJQUFJLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDOUMsZ0RBQWdEO1lBQ2hELGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0YsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzthQUM5QyxNQUFNLENBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxxQkFBcUIsR0FBUSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLG9CQUFvQixHQUFRLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDekQsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUUxQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3BDLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsRUFBRTtvQkFDcEQsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtpQkFBTSxTQUFTLENBQUM7Z0JBQ2YsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLG9CQUFvQixFQUFFO29CQUNuRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUN4QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OztZQXJDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7YUFDMUI7OztZQVptQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgdHJhcHMgdGhlIGZvY3VzIGluc2lkZSB0aGUgZWxlbWVudCBpdCBpcyBhcHBsaWVkIHRvLlxuICogV2hlbiBhcHBsaWVkLCBhIHVzZXJzIGNhbid0IFwidGFiIG91dFwiIG9mIHRoZSBlbGVtZW50LlxuICogWW91IG5lZWQgYXQgbGVhc3QgdHdvIGZvY3VzYWJsZSBjaGlsZHJlbiBpbiB0aGUgZWxlbWVudCBmb3IgaXQgdG8gd29yayBwcm9wZXJseS5cbiAqIFNlZSB0aGUgcXVlcnlTZWxlY3RvciBpbiB0aGUgdHJhcEZvY3VzIG1ldGhvZCB0byBrbm93IHdoaWNoIGVsZW1lbnRzIGNvdW50IGFzIGZvY3VzYWJsZS5cbiAqIEFkZGl0aW9uYWxseSB5b3UgY2FuIGFkZCB0aGUgYXR0cmlidXRlIFwiZm9jdXNhYmxlXCIgdG8gYW4gZWxlbWVudCBpZiB5b3UgYXJlIHVuc3VyZS5cbiAqL1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZW9UcmFwRm9jdXNdJ1xufSlcbmV4cG9ydCBjbGFzcyBUcmFwRm9jdXNEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG4gIFxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy50cmFwRm9jdXModGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHRyYXBGb2N1cyhlbGVtZW50OiBhbnkpIHtcbiAgICBsZXQgZm9jdXNhYmxlRWxlbWVudHMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAnYVtocmVmXSwgYnV0dG9uLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT1cInRleHRcIl0sJyArXG4gICAgICAnaW5wdXRbdHlwZT1cInJhZGlvXCJdLCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIHNlbGVjdCwgW2ZvY3VzYWJsZV0nXG4gICAgKTtcbiAgICBmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oZm9jdXNhYmxlRWxlbWVudHMpXG4gICAgICAuZmlsdGVyKCAoZWw6IGFueSkgPT4gIWVsLmRpc2FibGVkICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWxlbWVudDogYW55ID0gZm9jdXNhYmxlRWxlbWVudHNbMF07XG4gICAgY29uc3QgbGFzdEZvY3VzYWJsZUVsZW1lbnQ6IGFueSA9IGZvY3VzYWJsZUVsZW1lbnRzW2ZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKChldmVudDogYW55KSA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXlDb2RlID09PSA5OyAvLyB0YWIga2V5IGNvZGVcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkgLyogc2hpZnQgKyB0YWIgKi8ge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgbGFzdEZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgLyogdGFiICovIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgZmlyc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG59XG4iXX0=
65
+ TrapFocusDirective.propDecorators = {
66
+ isArrowUpOrDownPressed: [{ type: HostListener, args: ['keydown', ['$event'],] }]
67
+ };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhcC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL2RpcmVjdGl2ZS90cmFwLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFN0U7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUhsQyx1QkFBa0IsR0FBRyxnREFBZ0Q7WUFDckUsa0VBQWtFLENBQUM7SUFFN0IsQ0FBQztJQUV2QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBWTtRQUNwQixJQUFJLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDOUMsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1FBQ0YsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzthQUM5QyxNQUFNLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxxQkFBcUIsR0FBUSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLG9CQUFvQixHQUFRLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDekQsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUUxQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3BDLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsRUFBRTtvQkFDcEQsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtpQkFBTSxTQUFTLENBQUM7Z0JBQ2YsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLG9CQUFvQixFQUFFO29CQUNuRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUN4QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFHRCxzQkFBc0IsQ0FBQyxLQUFvQjtRQUV6QyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFBO1FBQ3JCLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFO1lBRTVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDMUUsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDbEYsSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN0RSxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDN0M7aUJBQ0ksSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUU3QztTQUNGO0lBQ0gsQ0FBQzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTthQUMxQjs7O1lBWmtCLFVBQVU7OztxQ0FtRDFCLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIHRyYXBzIHRoZSBmb2N1cyBpbnNpZGUgdGhlIGVsZW1lbnQgaXQgaXMgYXBwbGllZCB0by5cbiAqIFdoZW4gYXBwbGllZCwgYSB1c2VycyBjYW4ndCBcInRhYiBvdXRcIiBvZiB0aGUgZWxlbWVudC5cbiAqIFlvdSBuZWVkIGF0IGxlYXN0IHR3byBmb2N1c2FibGUgY2hpbGRyZW4gaW4gdGhlIGVsZW1lbnQgZm9yIGl0IHRvIHdvcmsgcHJvcGVybHkuXG4gKiBTZWUgdGhlIHF1ZXJ5U2VsZWN0b3IgaW4gdGhlIHRyYXBGb2N1cyBtZXRob2QgdG8ga25vdyB3aGljaCBlbGVtZW50cyBjb3VudCBhcyBmb2N1c2FibGUuXG4gKiBBZGRpdGlvbmFsbHkgeW91IGNhbiBhZGQgdGhlIGF0dHJpYnV0ZSBcImZvY3VzYWJsZVwiIHRvIGFuIGVsZW1lbnQgaWYgeW91IGFyZSB1bnN1cmUuXG4gKi9cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VvVHJhcEZvY3VzXSdcbn0pXG5leHBvcnQgY2xhc3MgVHJhcEZvY3VzRGlyZWN0aXZlIHtcblxuICBmb2N1c2FibGVTZWxlY3RvcnMgPSAnYVtocmVmXSwgYnV0dG9uLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT1cInRleHRcIl0sJyArXG4gICdpbnB1dFt0eXBlPVwicmFkaW9cIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgc2VsZWN0LCBbZm9jdXNhYmxlXSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudHJhcEZvY3VzKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICB0cmFwRm9jdXMoZWxlbWVudDogYW55KSB7XG4gICAgbGV0IGZvY3VzYWJsZUVsZW1lbnRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgdGhpcy5mb2N1c2FibGVTZWxlY3RvcnNcbiAgICApO1xuICAgIGZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbShmb2N1c2FibGVFbGVtZW50cylcbiAgICAgIC5maWx0ZXIoKGVsOiBhbnkpID0+ICFlbC5kaXNhYmxlZCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdkaXNhYmxlZCcpKTtcbiAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsZW1lbnQ6IGFueSA9IGZvY3VzYWJsZUVsZW1lbnRzWzBdO1xuICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbGVtZW50OiBhbnkgPSBmb2N1c2FibGVFbGVtZW50c1tmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggLSAxXTtcblxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsICgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5Q29kZSA9PT0gOTsgLy8gdGFiIGtleSBjb2RlXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIC8qIHNoaWZ0ICsgdGFiICovIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgIGxhc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIC8qIHRhYiAqLyB7XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaXNBcnJvd1VwT3JEb3duUHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5XG4gICAgaWYgKGtleSA9PT0gJ0Fycm93VXAnIHx8IGtleSA9PT0gJ0Fycm93RG93bicpIHtcblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGxldCBmb2N1c2FibGVFbGVtZW50cyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgIHRoaXMuZm9jdXNhYmxlU2VsZWN0b3JzXG4gICAgICApO1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gQXJyYXkuZnJvbShmb2N1c2FibGVFbGVtZW50cykuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgaWYgKGtleSA9PT0gJ0Fycm93RG93bicgJiYgY3VycmVudEluZGV4IDwgZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBmb2N1c2FibGVFbGVtZW50c1tjdXJyZW50SW5kZXggKyAxXS5mb2N1cygpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dVcCcgJiYgY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICBmb2N1c2FibGVFbGVtZW50c1tjdXJyZW50SW5kZXggLSAxXS5mb2N1cygpO1xuXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -111,6 +111,9 @@ export class DmsObject {
111
111
  recycle: false
112
112
  };
113
113
  }
114
+ if (json.shares) {
115
+ this.shares = json.shares;
116
+ }
114
117
  // content section
115
118
  if (json.contentid) {
116
119
  this.content = {
@@ -132,4 +135,4 @@ export class DmsObject {
132
135
  }
133
136
  }
134
137
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLW9iamVjdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvbW9kZWwvZG1zLW9iamVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFPOUI7O09BRUc7SUFDSCxZQUFZLElBQVM7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQXdHcEI7OztPQUdHO0lBQ0gsWUFBWSxJQUFTO1FBdEJyQjs7V0FFRztRQUNILGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCOztXQUVHO1FBQ0gsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUI7O1dBRUc7UUFDSCxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4Qjs7V0FFRztRQUNILHlCQUFvQixHQUFVLEVBQUUsQ0FBQztRQVMvQiw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDOUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztnQkFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVzthQUM1QyxDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQixFQUFFLEVBQUU7b0JBQ0YsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3RCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLO29CQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSTtpQkFDM0I7YUFDRixDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRztnQkFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixFQUFFLEVBQUU7b0JBQ0YsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLO29CQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSTtpQkFDNUI7YUFDRixDQUFDO1NBQ0g7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUc7Z0JBQ1YsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDdEIsRUFBRSxFQUFFO29CQUNGLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLHdCQUF3QjtvQkFDMUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssc0JBQXNCO29CQUMzQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO29CQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2lCQUMvQjthQUNGLENBQUM7U0FDSDtRQUVELGlCQUFpQjtRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQ3hDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUMxRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztnQkFDOUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xGLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2pGLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRztnQkFDWixNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsS0FBSztnQkFDWCxNQUFNLEVBQUUsS0FBSztnQkFDYixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsS0FBSzthQUNmLENBQUM7U0FDSDtRQUVELGtCQUFrQjtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQztnQkFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QixDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUN6QztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4vb2JqZWN0LXR5cGUubW9kZWwnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNsYXNzIERtc09iamVjdEF0dGFjaG1lbnQge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBwcmV2aWV3VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBqc29uIC0gc2VydmVyIHNlbnQgSlNPTiBmb3IgYSBkbXMgb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihqc29uOiBhbnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGpzb24pO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50YXRpb24gb2YgYSBkbXMgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgRG1zT2JqZWN0IHtcbiAgLyoqXG4gICAqIG9iamVjdHMgSURcbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvYmplY3RzIHRpdGxlXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogb2JqZWN0cyBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIG9iamVjdHMgdmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IG51bWJlcjtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHZlcnNpb25zOiBhbnlbXTtcbiAgLyoqXG4gICAqIG9iamVjdCB0eXBlIG5hbWVcbiAgICovXG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvYmplY3RzIHR5cGVcbiAgICovXG4gIHR5cGU/OiBPYmplY3RUeXBlO1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgdGhlIGFjdGl2ZSB2ZXJzaW9uIG9mIHRoZSBvYmplY3RcbiAgICovXG4gIGlzQWN0aXZlVmVyc2lvbjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBoYXMgYmVlbiBmaW5hbGl6ZWRcbiAgICovXG4gIGlzRmluYWxpemVkOiBib29sZWFuO1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBvYmplY3QgaGFzIGJlZW4gbWFya2VkIGFzIGZhdm9yaXRlXG4gICAqL1xuICBpc0Zhdm9yaXRlOiBib29sZWFuO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBzYW1lIGFzIGlzQ29udGV4dEZvbGRlciBiZWNhdXNlIHdlIGRvIG5vdCBhbGxvdyBvdGhlciBmb2xkZXJzIHRoYW4gY29udGV4dCBmb2xkZXJzXG4gICAqL1xuICBpc0ZvbGRlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgb2JqZWN0IGlzIGEgY29udGV4dCBmb2xkZXJcbiAgICovXG4gIGlzQ29udGV4dEZvbGRlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBvYmplY3RzIGNvbnRleHQgZm9sZGVyXG4gICAqL1xuICBjb250ZXh0Rm9sZGVyOiB7IGlkOiBzdHJpbmcsIHR5cGVOYW1lOiBzdHJpbmcsIHR5cGU/OiBPYmplY3RUeXBlLCB0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBJbmRleGRhdGEgb2YgdGhlIG9iamVjdFxuICAgKi9cbiAgZGF0YTogYW55O1xuICAvKipcbiAgICogc3BlY2lhbCByaWdodC9wZXJtaXNzaW9ucyBzZXQgdXAgZm9yIHRoZSBvYmplY3RcbiAgICovXG4gIHJpZ2h0czogYW55O1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9iamVjdHMgY3JlYXRpb24uIEluY2x1ZGVzIHRoZSBkYXRlIGl0IHdhcyBjcmVhdGVkIGFuZCB0aGUgdXNlciB0aGF0IGNyZWF0ZWQgdGhlIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlZDogYW55O1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9iamVjdHMgbGFzdCBtb2RpZmljYXRpb24uIEluY2x1ZGVzIHRoZSBkYXRlIGl0IHdhcyBtb2RpZmllZCBhbmQgdGhlIHVzZXIgdGhhdCBtb2RpZmllZCB0aGUgb2JqZWN0XG4gICAqL1xuICBtb2RpZmllZDogYW55O1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBvYmplY3QgaXMgbG9ja2VkLiBMb2NrZWQgb2JqZWN0cyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgY2hhbmdlZFxuICAgKi9cbiAgbG9jazogYW55O1xuICAvKipcbiAgICogVGhlIG9iamVjdHMgY29udGVudCAoZmlsZSkuIE1heSBiZSBlbXB0eSBhcyBkbXMgb2JqZWN0cyBjYW4gYmUgY3JlYXRlZCB3aXRob3V0IGNvbnRlbnRzXG4gICAqL1xuICBjb250ZW50OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudHMgZmlsZW5hbWVcbiAgICovXG4gIGNvbnRlbnRGaWxlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbnRlbnRzIGZpbGVzaXplXG4gICAqL1xuICBjb250ZW50RmlsZVNpemU6IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucyBmb3IgdGhlIG9iamVjdFxuICAgKi9cbiAgc3Vic2NyaXB0aW9uczogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVzdWJtaXNzaW9ucyBmb3IgdGhlIG9iamVjdFxuICAgKi9cbiAgcmVzdWJtaXNzaW9uczogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIFN0b3JhZ2UgaW5mbyBvZiB0aGUgb2JqZWN0XG4gICAqL1xuICBzdG9yYWdlSW5mbzogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGFkZGl0aW9uYWx2aXNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAgICogQHBhcmFtIGpzb24gVGhlIEpTT04gb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgbmV3IGRtcyBvYmplY3QgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKGpzb246IGFueSkge1xuXG4gICAgLy8gY3JlYXRlIGEgRG1zT2JqZWN0IGJhc2VkIG9uIHRoZSBzZXJ2ZXIgSlNPTlxuICAgIHRoaXMuaWQgPSBqc29uLmlkO1xuICAgIHRoaXMudGl0bGUgPSBqc29uLnRpdGxlO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBqc29uLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMudmVyc2lvbiA9IGpzb24udmVyc2lvbjtcbiAgICB0aGlzLnZlcnNpb25zID0ganNvbi52ZXJzaW9ucztcbiAgICB0aGlzLmRhdGEgPSBqc29uLmRhdGE7XG4gICAgdGhpcy50eXBlTmFtZSA9IGpzb24udHlwZTtcblxuICAgIHRoaXMuaXNBY3RpdmVWZXJzaW9uID0ganNvbi5hY3RpdmV2ZXJzaW9uO1xuICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSBqc29uLmZpbmFsaXplZDtcbiAgICB0aGlzLmlzRmF2b3JpdGUgPSBqc29uLmZhdm9yaXRlO1xuICAgIHRoaXMuaXNGb2xkZXIgPSBqc29uLmZvbGRlcjtcbiAgICB0aGlzLmlzQ29udGV4dEZvbGRlciA9ICEhanNvbi5pc2NvbnRleHRmb2xkZXI7XG4gICAgdGhpcy5zdG9yYWdlSW5mbyA9IGpzb24uc3RvcmFnZWluZm87XG5cbiAgICBpZiAoanNvbi5jb250ZW50cyAmJiBqc29uLmNvbnRlbnRzWzBdKSB7XG4gICAgICB0aGlzLmNvbnRlbnRGaWxlTmFtZSA9IGpzb24uY29udGVudHNbMF0ucGF0aDtcbiAgICAgIHRoaXMuY29udGVudEZpbGVTaXplID0ganNvbi5jb250ZW50c1swXS5zaXplO1xuICAgIH1cblxuICAgIGlmIChqc29uLmNvbnRleHRmb2xkZXIpIHtcbiAgICAgIHRoaXMuY29udGV4dEZvbGRlciA9IHtcbiAgICAgICAgaWQ6IGpzb24uY29udGV4dGZvbGRlci5pZCxcbiAgICAgICAgdHlwZU5hbWU6IGpzb24uY29udGV4dGZvbGRlci50eXBlLFxuICAgICAgICB0aXRsZToganNvbi5jb250ZXh0Zm9sZGVyLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjoganNvbi5jb250ZXh0Zm9sZGVyLmRlc2NyaXB0aW9uXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChqc29uLmNyZWF0ZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlZCA9IHtcbiAgICAgICAgb246IGpzb24uY3JlYXRlZC5vbixcbiAgICAgICAgYnk6IHtcbiAgICAgICAgICBpZDoganNvbi5jcmVhdGVkLmJ5LmlkLFxuICAgICAgICAgIHRpdGxlOiBqc29uLmNyZWF0ZWQuYnkudGl0bGUsXG4gICAgICAgICAgbmFtZToganNvbi5jcmVhdGVkLmJ5Lm5hbWVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoanNvbi5tb2RpZmllZCkge1xuICAgICAgdGhpcy5tb2RpZmllZCA9IHtcbiAgICAgICAgb246IGpzb24ubW9kaWZpZWQub24sXG4gICAgICAgIGJ5OiB7XG4gICAgICAgICAgaWQ6IGpzb24ubW9kaWZpZWQuYnkuaWQsXG4gICAgICAgICAgdGl0bGU6IGpzb24ubW9kaWZpZWQuYnkudGl0bGUsXG4gICAgICAgICAgbmFtZToganNvbi5tb2RpZmllZC5ieS5uYW1lXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gbG9jayBpbmZvcm1hdGlvbnNcbiAgICBpZiAoanNvbi5sb2NrICE9PSAnTk9UX0xPQ0tFRCcgJiYganNvbi5sb2NraW5mbykge1xuICAgICAgdGhpcy5sb2NrID0ge1xuICAgICAgICBvbjoganNvbi5sb2NraW5mby50aW1lLFxuICAgICAgICBieToge1xuICAgICAgICAgIG1lOiBqc29uLmxvY2sgPT09ICdMT0NLRURfQllfU0VTU0lPTl9VU0VSJyxcbiAgICAgICAgICBvdGhlcjoganNvbi5sb2NrID09PSAnTE9DS0VEX0JZX09USEVSX1VTRVInLFxuICAgICAgICAgIG5hbWU6IGpzb24ubG9ja2luZm8udXNlcm5hbWUsXG4gICAgICAgICAgbGFiZWw6IGpzb24ubG9ja2luZm8udXNlcnRpdGxlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gcmlnaHRzIHNlY3Rpb25cbiAgICBpZiAoanNvbi5yaWdodHMgJiYganNvbi5yaWdodHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yaWdodHMgPSB7XG4gICAgICAgIHNlbGVjdDoganNvbi5yaWdodHNbMF0ucHJpdmlsZWdlcy5zZWxlY3QsXG4gICAgICAgIGVkaXQ6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMuZWRpdCAmJiAhKHRoaXMubG9jayAmJiB0aGlzLmxvY2suYnkub3RoZXIpLFxuICAgICAgICBkZWxldGU6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMuZGVsZXRlICYmICEodGhpcy5sb2NrICYmIHRoaXMubG9jay5ieS5vdGhlciksXG4gICAgICAgIGZpbmFsaXplOiBqc29uLnJpZ2h0c1swXS5wcml2aWxlZ2VzLmZpbmFsaXplICYmICEodGhpcy5sb2NrICYmIHRoaXMubG9jay5ieS5vdGhlciksXG4gICAgICAgIHJlY3ljbGU6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMucmVjeWNsZSAmJiAhKHRoaXMubG9jayAmJiB0aGlzLmxvY2suYnkub3RoZXIpXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJpZ2h0cyA9IHtcbiAgICAgICAgc2VsZWN0OiBmYWxzZSxcbiAgICAgICAgZWRpdDogZmFsc2UsXG4gICAgICAgIGRlbGV0ZTogZmFsc2UsXG4gICAgICAgIGZpbmFsaXplOiBmYWxzZSxcbiAgICAgICAgcmVjeWNsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gY29udGVudCBzZWN0aW9uXG4gICAgaWYgKGpzb24uY29udGVudGlkKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB7XG4gICAgICAgIGlkOiBqc29uLmNvbnRlbnRpZCxcbiAgICAgICAgdHlwZToganNvbi5jb250ZW50dHlwZSxcbiAgICAgICAgY291bnQ6IGpzb24uY29udGVudGNvdW50IHx8IDAsXG4gICAgICAgIGxpbmtlZDoganNvbi5jb250ZW50aWQgIT09IGpzb24uaWQsXG4gICAgICAgIGNvbnRlbnRzOiBqc29uLmNvbnRlbnRzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChqc29uLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGpzb24uc3Vic2NyaXB0aW9ucztcbiAgICB9XG5cbiAgICBpZiAoanNvbi5yZXN1Ym1pc3Npb25zKSB7XG4gICAgICB0aGlzLnJlc3VibWlzc2lvbnMgPSBqc29uLnJlc3VibWlzc2lvbnM7XG4gICAgfVxuXG4gICAgaWYgKGpzb24uYWRkaXRpb25hbHZpc2liaWxpdHkpIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbHZpc2liaWxpdHkgPSBqc29uLmFkZGl0aW9uYWx2aXNpYmlsaXR5O1xuICAgIH1cbiAgfVxufVxuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLW9iamVjdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvbW9kZWwvZG1zLW9iamVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFPOUI7O09BRUc7SUFDSCxZQUFZLElBQVM7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQTRHcEI7OztPQUdHO0lBQ0gsWUFBWSxJQUFTO1FBdEJyQjs7V0FFRztRQUNILGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCOztXQUVHO1FBQ0gsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUI7O1dBRUc7UUFDSCxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4Qjs7V0FFRztRQUNILHlCQUFvQixHQUFVLEVBQUUsQ0FBQztRQVMvQiw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztR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SUFBSSxDQUFDLFNBQVM7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQztnQkFDN0IsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QixDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUN6QztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4vb2JqZWN0LXR5cGUubW9kZWwnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNsYXNzIERtc09iamVjdEF0dGFjaG1lbnQge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBwcmV2aWV3VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBqc29uIC0gc2VydmVyIHNlbnQgSlNPTiBmb3IgYSBkbXMgb2JqZWN0XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihqc29uOiBhbnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGpzb24pO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50YXRpb24gb2YgYSBkbXMgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgRG1zT2JqZWN0IHtcbiAgLyoqXG4gICAqIG9iamVjdHMgSURcbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvYmplY3RzIHRpdGxlXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogb2JqZWN0cyBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIG9iamVjdHMgdmVyc2lvbiBudW1iZXJcbiAgICovXG4gIHZlcnNpb246IG51bWJlcjtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHZlcnNpb25zOiBhbnlbXTtcbiAgLyoqXG4gICAqIG9iamVjdCB0eXBlIG5hbWVcbiAgICovXG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBvYmplY3RzIHR5cGVcbiAgICovXG4gIHR5cGU/OiBPYmplY3RUeXBlO1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoaXMgaXMgdGhlIGFjdGl2ZSB2ZXJzaW9uIG9mIHRoZSBvYmplY3RcbiAgICovXG4gIGlzQWN0aXZlVmVyc2lvbjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBoYXMgYmVlbiBmaW5hbGl6ZWRcbiAgICovXG4gIGlzRmluYWxpemVkOiBib29sZWFuO1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBvYmplY3QgaGFzIGJlZW4gbWFya2VkIGFzIGZhdm9yaXRlXG4gICAqL1xuICBpc0Zhdm9yaXRlOiBib29sZWFuO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBzYW1lIGFzIGlzQ29udGV4dEZvbGRlciBiZWNhdXNlIHdlIGRvIG5vdCBhbGxvdyBvdGhlciBmb2xkZXJzIHRoYW4gY29udGV4dCBmb2xkZXJzXG4gICAqL1xuICBpc0ZvbGRlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgb2JqZWN0IGlzIGEgY29udGV4dCBmb2xkZXJcbiAgICovXG4gIGlzQ29udGV4dEZvbGRlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBvYmplY3RzIGNvbnRleHQgZm9sZGVyXG4gICAqL1xuICBjb250ZXh0Rm9sZGVyOiB7IGlkOiBzdHJpbmcsIHR5cGVOYW1lOiBzdHJpbmcsIHR5cGU/OiBPYmplY3RUeXBlLCB0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBJbmRleGRhdGEgb2YgdGhlIG9iamVjdFxuICAgKi9cbiAgZGF0YTogYW55O1xuICAvKipcbiAgICogc3BlY2lhbCByaWdodC9wZXJtaXNzaW9ucyBzZXQgdXAgZm9yIHRoZSBvYmplY3RcbiAgICovXG4gIHJpZ2h0czogYW55O1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHNoYXJpbmcgc3RhdHVzIG9mIHRoZSBvYmplY3RcbiAgICovXG4gIHNoYXJlczogYW55O1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9iamVjdHMgY3JlYXRpb24uIEluY2x1ZGVzIHRoZSBkYXRlIGl0IHdhcyBjcmVhdGVkIGFuZCB0aGUgdXNlciB0aGF0IGNyZWF0ZWQgdGhlIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlZDogYW55O1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG9iamVjdHMgbGFzdCBtb2RpZmljYXRpb24uIEluY2x1ZGVzIHRoZSBkYXRlIGl0IHdhcyBtb2RpZmllZCBhbmQgdGhlIHVzZXIgdGhhdCBtb2RpZmllZCB0aGUgb2JqZWN0XG4gICAqL1xuICBtb2RpZmllZDogYW55O1xuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBvYmplY3QgaXMgbG9ja2VkLiBMb2NrZWQgb2JqZWN0cyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgY2hhbmdlZFxuICAgKi9cbiAgbG9jazogYW55O1xuICAvKipcbiAgICogVGhlIG9iamVjdHMgY29udGVudCAoZmlsZSkuIE1heSBiZSBlbXB0eSBhcyBkbXMgb2JqZWN0cyBjYW4gYmUgY3JlYXRlZCB3aXRob3V0IGNvbnRlbnRzXG4gICAqL1xuICBjb250ZW50OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudHMgZmlsZW5hbWVcbiAgICovXG4gIGNvbnRlbnRGaWxlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbnRlbnRzIGZpbGVzaXplXG4gICAqL1xuICBjb250ZW50RmlsZVNpemU6IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucyBmb3IgdGhlIG9iamVjdFxuICAgKi9cbiAgc3Vic2NyaXB0aW9uczogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVzdWJtaXNzaW9ucyBmb3IgdGhlIG9iamVjdFxuICAgKi9cbiAgcmVzdWJtaXNzaW9uczogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIFN0b3JhZ2UgaW5mbyBvZiB0aGUgb2JqZWN0XG4gICAqL1xuICBzdG9yYWdlSW5mbzogYW55W10gPSBbXTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGFkZGl0aW9uYWx2aXNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAgICogQHBhcmFtIGpzb24gVGhlIEpTT04gb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgbmV3IGRtcyBvYmplY3QgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKGpzb246IGFueSkge1xuXG4gICAgLy8gY3JlYXRlIGEgRG1zT2JqZWN0IGJhc2VkIG9uIHRoZSBzZXJ2ZXIgSlNPTlxuICAgIHRoaXMuaWQgPSBqc29uLmlkO1xuICAgIHRoaXMudGl0bGUgPSBqc29uLnRpdGxlO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBqc29uLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMudmVyc2lvbiA9IGpzb24udmVyc2lvbjtcbiAgICB0aGlzLnZlcnNpb25zID0ganNvbi52ZXJzaW9ucztcbiAgICB0aGlzLmRhdGEgPSBqc29uLmRhdGE7XG4gICAgdGhpcy50eXBlTmFtZSA9IGpzb24udHlwZTtcblxuICAgIHRoaXMuaXNBY3RpdmVWZXJzaW9uID0ganNvbi5hY3RpdmV2ZXJzaW9uO1xuICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSBqc29uLmZpbmFsaXplZDtcbiAgICB0aGlzLmlzRmF2b3JpdGUgPSBqc29uLmZhdm9yaXRlO1xuICAgIHRoaXMuaXNGb2xkZXIgPSBqc29uLmZvbGRlcjtcbiAgICB0aGlzLmlzQ29udGV4dEZvbGRlciA9ICEhanNvbi5pc2NvbnRleHRmb2xkZXI7XG4gICAgdGhpcy5zdG9yYWdlSW5mbyA9IGpzb24uc3RvcmFnZWluZm87XG5cbiAgICBpZiAoanNvbi5jb250ZW50cyAmJiBqc29uLmNvbnRlbnRzWzBdKSB7XG4gICAgICB0aGlzLmNvbnRlbnRGaWxlTmFtZSA9IGpzb24uY29udGVudHNbMF0ucGF0aDtcbiAgICAgIHRoaXMuY29udGVudEZpbGVTaXplID0ganNvbi5jb250ZW50c1swXS5zaXplO1xuICAgIH1cblxuICAgIGlmIChqc29uLmNvbnRleHRmb2xkZXIpIHtcbiAgICAgIHRoaXMuY29udGV4dEZvbGRlciA9IHtcbiAgICAgICAgaWQ6IGpzb24uY29udGV4dGZvbGRlci5pZCxcbiAgICAgICAgdHlwZU5hbWU6IGpzb24uY29udGV4dGZvbGRlci50eXBlLFxuICAgICAgICB0aXRsZToganNvbi5jb250ZXh0Zm9sZGVyLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjoganNvbi5jb250ZXh0Zm9sZGVyLmRlc2NyaXB0aW9uXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChqc29uLmNyZWF0ZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlZCA9IHtcbiAgICAgICAgb246IGpzb24uY3JlYXRlZC5vbixcbiAgICAgICAgYnk6IHtcbiAgICAgICAgICBpZDoganNvbi5jcmVhdGVkLmJ5LmlkLFxuICAgICAgICAgIHRpdGxlOiBqc29uLmNyZWF0ZWQuYnkudGl0bGUsXG4gICAgICAgICAgbmFtZToganNvbi5jcmVhdGVkLmJ5Lm5hbWVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoanNvbi5tb2RpZmllZCkge1xuICAgICAgdGhpcy5tb2RpZmllZCA9IHtcbiAgICAgICAgb246IGpzb24ubW9kaWZpZWQub24sXG4gICAgICAgIGJ5OiB7XG4gICAgICAgICAgaWQ6IGpzb24ubW9kaWZpZWQuYnkuaWQsXG4gICAgICAgICAgdGl0bGU6IGpzb24ubW9kaWZpZWQuYnkudGl0bGUsXG4gICAgICAgICAgbmFtZToganNvbi5tb2RpZmllZC5ieS5uYW1lXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gbG9jayBpbmZvcm1hdGlvbnNcbiAgICBpZiAoanNvbi5sb2NrICE9PSAnTk9UX0xPQ0tFRCcgJiYganNvbi5sb2NraW5mbykge1xuICAgICAgdGhpcy5sb2NrID0ge1xuICAgICAgICBvbjoganNvbi5sb2NraW5mby50aW1lLFxuICAgICAgICBieToge1xuICAgICAgICAgIG1lOiBqc29uLmxvY2sgPT09ICdMT0NLRURfQllfU0VTU0lPTl9VU0VSJyxcbiAgICAgICAgICBvdGhlcjoganNvbi5sb2NrID09PSAnTE9DS0VEX0JZX09USEVSX1VTRVInLFxuICAgICAgICAgIG5hbWU6IGpzb24ubG9ja2luZm8udXNlcm5hbWUsXG4gICAgICAgICAgbGFiZWw6IGpzb24ubG9ja2luZm8udXNlcnRpdGxlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gcmlnaHRzIHNlY3Rpb25cbiAgICBpZiAoanNvbi5yaWdodHMgJiYganNvbi5yaWdodHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yaWdodHMgPSB7XG4gICAgICAgIHNlbGVjdDoganNvbi5yaWdodHNbMF0ucHJpdmlsZWdlcy5zZWxlY3QsXG4gICAgICAgIGVkaXQ6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMuZWRpdCAmJiAhKHRoaXMubG9jayAmJiB0aGlzLmxvY2suYnkub3RoZXIpLFxuICAgICAgICBkZWxldGU6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMuZGVsZXRlICYmICEodGhpcy5sb2NrICYmIHRoaXMubG9jay5ieS5vdGhlciksXG4gICAgICAgIGZpbmFsaXplOiBqc29uLnJpZ2h0c1swXS5wcml2aWxlZ2VzLmZpbmFsaXplICYmICEodGhpcy5sb2NrICYmIHRoaXMubG9jay5ieS5vdGhlciksXG4gICAgICAgIHJlY3ljbGU6IGpzb24ucmlnaHRzWzBdLnByaXZpbGVnZXMucmVjeWNsZSAmJiAhKHRoaXMubG9jayAmJiB0aGlzLmxvY2suYnkub3RoZXIpXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJpZ2h0cyA9IHtcbiAgICAgICAgc2VsZWN0OiBmYWxzZSxcbiAgICAgICAgZWRpdDogZmFsc2UsXG4gICAgICAgIGRlbGV0ZTogZmFsc2UsXG4gICAgICAgIGZpbmFsaXplOiBmYWxzZSxcbiAgICAgICAgcmVjeWNsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGpzb24uc2hhcmVzKSB7XG4gICAgICB0aGlzLnNoYXJlcyA9IGpzb24uc2hhcmVzO1xuICAgIH1cblxuICAgIC8vIGNvbnRlbnQgc2VjdGlvblxuICAgIGlmIChqc29uLmNvbnRlbnRpZCkge1xuICAgICAgdGhpcy5jb250ZW50ID0ge1xuICAgICAgICBpZDoganNvbi5jb250ZW50aWQsXG4gICAgICAgIHR5cGU6IGpzb24uY29udGVudHR5cGUsXG4gICAgICAgIGNvdW50OiBqc29uLmNvbnRlbnRjb3VudCB8fCAwLFxuICAgICAgICBsaW5rZWQ6IGpzb24uY29udGVudGlkICE9PSBqc29uLmlkLFxuICAgICAgICBjb250ZW50czoganNvbi5jb250ZW50c1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoanNvbi5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBqc29uLnN1YnNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKGpzb24ucmVzdWJtaXNzaW9ucykge1xuICAgICAgdGhpcy5yZXN1Ym1pc3Npb25zID0ganNvbi5yZXN1Ym1pc3Npb25zO1xuICAgIH1cblxuICAgIGlmIChqc29uLmFkZGl0aW9uYWx2aXNpYmlsaXR5KSB7XG4gICAgICB0aGlzLmFkZGl0aW9uYWx2aXNpYmlsaXR5ID0ganNvbi5hZGRpdGlvbmFsdmlzaWJpbGl0eTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -466,6 +466,7 @@ export class DmsService {
466
466
  recycle: dmsObject.rights.recycle
467
467
  }
468
468
  }],
469
+ shares: dmsObject.shares,
469
470
  contentid: dmsObject.content ? dmsObject.content.id : null,
470
471
  contenttype: dmsObject.content ? dmsObject.content.type : null,
471
472
  contentcount: dmsObject.content ? dmsObject.content.count : null,
@@ -487,4 +488,4 @@ DmsService.ctorParameters = () => [
487
488
  { type: SystemService },
488
489
  { type: EventService }
489
490
  ];
490
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvZG1zL2Rtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHckQsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQixvREFBZ0MsQ0FBQTtJQUNoQyw2REFBeUMsQ0FBQTtJQUN6QywrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQjtBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsT0FBdUIsRUFDakMsYUFBNEIsRUFDNUIsWUFBMEI7UUFGaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDakMsa0JBQWEsR0FB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QUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDMUQsV0FBVyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzlELFlBQVksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRSxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFFL0QsYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhO1lBQ3RDLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtZQUN0QyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsb0JBQW9CO1NBQ3JELENBQUM7UUFFRixJQUFJLGVBQWUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxlQUFlLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFdEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQzs7O1lBN2dCRixVQUFVOzs7WUFqQkgsY0FBYztZQUNkLGFBQWE7WUFJYixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0YXAsIG1lcmdlTWFwLCBjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RG1zT2JqZWN0LCBEbXNPYmplY3RBdHRhY2htZW50fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtEbXNPYmplY3RIaXN0b3J5RW50cnl9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QtaGlzdG9yeS5tb2RlbCc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RG1zUGFyYW1zfSBmcm9tICcuL2Rtc1BhcmFtcy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZW51bSBTdWJzY3JpcHRpb25Nb2RlIHtcbiAgT05MWV9JTkRFWF9EQVRBX0NIQU5HRUQgPSAnTUVUQScsXG4gIE9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEID0gJ0NPTlRFTlQnLFxuICBETVNfT0JKRUNUX0NIQU5HRUQgPSAnQk9USCdcbn1cblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIERNUyBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG1zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSkge1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBkbXMgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgT2JqZWN0cyBpZFxuICAgKiBAcGFyYW0gdHlwZSBPYmplY3RzIHR5cGUgbmFtZSwgd2lsbCBpbXByb3ZlIGxvYWQgdGltZSBpZiBwcm92aWRlZFxuICAgKiBAcGFyYW0gdmVyc2lvbiBUYXJnZXQgdmVyc2lvblxuICAgKiBAcGFyYW0gaW50ZW50IFVzZWQgZm9yIHNlcnZlciBzaWRlIGxvZ2dpbmcuIElmIHlvdSBwcm92aWRlIGFuIGludGVudCwgdGhlIGJhY2tlbmQgd2lsbCByZWNvZ25pemUgdGhlIHJlcXVlc3QgYW5kIGFkZCBpdCB0byBpdHMgbG9nc1xuICAgKiBAcGFyYW0gcmVjeWNsZWJpbiBJZiB0cnVlLCBvYmplY3RzIGZyb20gcmVjeWNsZWJpbiBhcmUgaW5jbHVkZWRcbiAgICogQHBhcmFtIHdpdGhTdG9yYWdlSW5mbyBJZiB0cnVlLCBzdG9yYWdlaW5mbyBpcyBpbmNsdWRlZCBvbiB0aGUgZG1zIG9iamVjdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPERtc09iamVjdD5cbiAgICovXG4gIGdldERtc09iamVjdChpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyLCBpbnRlbnQ/OiBzdHJpbmcsIHJlY3ljbGViaW4/OiBib29sZWFuLCB3aXRoU3RvcmFnZUluZm8/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy8ke2lkfWA7XG5cbiAgICBjb25zdCBxID0ge1xuICAgICAgYWRkaXRpb25hbHZpc2liaWxpdHk6IHRydWUsXG4gICAgICBzdWJzY3JpcHRpb246ICdDVVJSRU5UJyxcbiAgICAgIHJlc3VibWlzc2lvbjogJ0NVUlJFTlQnLFxuICAgICAgcmlnaHRzOiAnQ1VSUkVOVCcsXG4gICAgICBkYXRhbWV0YTogJ3RydWUnLFxuICAgICAgY29udGV4dGZvbGRlcjogJ3RydWUnLFxuICAgICAgdHlwZSxcbiAgICAgIHJlY3ljbGViaW4sXG4gICAgICB2ZXJzaW9uLFxuICAgICAgc3RvcmFnZWluZm86IHdpdGhTdG9yYWdlSW5mbyxcbiAgICAgICdfaW50ZW50JzogaW50ZW50XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUoVXRpbHMuYnVpbGRVcmkodXJpLCBxKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFV0aWxzLmNhdGNoU2tpcChlcnIgPT4gZXJyLnN0YXR1cyA9PT0gNDA0KSksXG4gICAgICAgIG1hcChyZXMgPT4gdGhpcy5yZXNvbHZlT2JqZWN0VHlwZXMobmV3IERtc09iamVjdChyZXMpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIGZvciB0aGUgRE1TIE9iamVjdHMgYnkgcGFyYW1zXG4gICAqXG4gICAqIEBwYXJhbSBEbXNQYXJhbXMgcGFyYW1zXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0PlxuICAgKi9cbiAgZ2V0RG1zT2JqZWN0QnlQYXJhbXMocGFyYW1zOiBEbXNQYXJhbXMpOiBPYnNlcnZhYmxlPERtc09iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmdldERtc09iamVjdChwYXJhbXMuaWQsIHBhcmFtcy50eXBlLCBwYXJhbXMudmVyc2lvbiwgcGFyYW1zLmludGVudCwgcGFyYW1zLnJlY3ljbGViaW4sIHBhcmFtcy53aXRoU3RvcmFnZUluZm8pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlb2x2ZXIgb2YgT2JqZWN0IFR5cGVzIGJ5IERNUyBPYmplY3RcbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBkbXNPYmplY3RcbiAgICogQHJldHVybnMgRG1zT2JqZWN0XG4gICAqL1xuICByZXNvbHZlT2JqZWN0VHlwZXMoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBEbXNPYmplY3Qge1xuICAgIGRtc09iamVjdC50eXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUoZG1zT2JqZWN0LnR5cGVOYW1lKTtcblxuICAgIGlmIChkbXNPYmplY3QuY29udGV4dEZvbGRlcikge1xuICAgICAgZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudHlwZSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG1zT2JqZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBETVMgb2JqZWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBkbXMgb2JqZWN0IHRvIGJlIGRlbGV0ZWQuXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgb2Ygb2JqZWN0XG4gICAqIEBwYXJhbSBoYXJkRGVsZXRlIElmIG9iamVjdCBzaG91bGQgcmVhbGx5IGJlIGRlbGV0ZWQgb3Igb25seSBwdXQgaW50byB0aGUgcmVjeWNsZSBiaW5cbiAgICovXG4gIGRlbGV0ZURtc09iamVjdChpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCBoYXJkRGVsZXRlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYC9kbXMvJHtpZH1gO1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGlmICh0eXBlICYmIHR5cGUubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zWyd0eXBlJ10gPSB0eXBlO1xuICAgIH1cbiAgICBpZiAoaGFyZERlbGV0ZSkge1xuICAgICAgcGFyYW1zWydoYXJkZGVsZXRlJ10gPSBoYXJkRGVsZXRlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChVdGlscy5idWlsZFVyaSh1cmwsIHBhcmFtcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgZ2l2ZW4gZG1zIG9iamVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBvYmplY3QuXG4gICAqIEByZXR1cm5zIFRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGRtcyBvYmplY3RcbiAgICovXG4gIGdldENvbnRleHRQYXRoKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldChgL2Rtcy8ke2lkfS9jb250ZXh0YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgY29udGV4dFBhdGggPT4ge1xuICAgICAgICAgICAgY29udGV4dFBhdGguZm9yRWFjaChwYXRoSXRlbSA9PiB7XG4gICAgICAgICAgICAgIHBhdGhJdGVtLmRtc29iamVjdCA9IG5ldyBEbXNPYmplY3QocGF0aEl0ZW0uZG1zb2JqZWN0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRQYXRoO1xuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgY2hpbGRyZW4gb2YgYSBEbXNPYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBkbXNPYmplY3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxEbXNPYmplY3RbXT5cbiAgICovXG4gIGdldENoaWxkcmVuKGRtc09iamVjdDogRG1zT2JqZWN0KTogT2JzZXJ2YWJsZTxEbXNPYmplY3RbXT4ge1xuICAgIGNvbnN0IHVyaSA9IGAvZG1zLyR7ZG1zT2JqZWN0LmlkfS9jaGlsZHJlbmA7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRWaWFUZW1wQ2FjaGUoVXRpbHMuYnVpbGRVcmkodXJpLCB7dHlwZTogZG1zT2JqZWN0LnR5cGUubmFtZX0pKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueVtdKSA9PiB7XG4gICAgICAgIHJldHVybiByZXMubWFwKHIgPT4gdGhpcy5yZXNvbHZlT2JqZWN0VHlwZXMobmV3IERtc09iamVjdChyKSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHZlcnNpb25zIG9mIGEgRG1zT2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxEbXNPYmplY3Q+XG4gICAqL1xuICBnZXRWZXJzaW9ucyhpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy8ke2lkfS92ZXJzaW9uc2A7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRWaWFUZW1wQ2FjaGUoVXRpbHMuYnVpbGRVcmkodXJpLCB7dHlwZX0pKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IERtc09iamVjdChyZXMpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGF0dGFjaG1lbnRzIG9mIGEgRG1zT2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gZG1zT2JqZWN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0QXR0YWNobWVudFtdPlxuICAgKi9cbiAgZ2V0QXR0YWNobWVudHMoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBPYnNlcnZhYmxlPERtc09iamVjdEF0dGFjaG1lbnRbXT4ge1xuICAgIGNvbnN0IHR5cGUgPSBkbXNPYmplY3QuY29udGVudD8udHlwZTtcbiAgICBjb25zdCB2ZXJzaW9uID0gZG1zT2JqZWN0LmNvbnRlbnQ/LmxpbmtlZCA/IC0xIDogZG1zT2JqZWN0LnZlcnNpb247XG4gICAgY29uc3QgY29udGVudElEID0gZG1zT2JqZWN0LmNvbnRlbnQ/LmlkO1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKGAvZG1zLyR7Y29udGVudElEfS9hdHRhY2htZW50c2AsIHt0eXBlLCB2ZXJzaW9ufSk7XG4gICAgcmV0dXJuICFjb250ZW50SUQgPyBvZihbXSkgOiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKHVyaSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKSxcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcy5hdHRhY2htZW50aW5mbyAmJiByZXMuYXR0YWNobWVudGluZm8uYXR0YWNobWVudHMgPyByZXMuYXR0YWNobWVudGluZm8uYXR0YWNobWVudHNcbiAgICAgICAgLm1hcCgoYSwgaSkgPT4gbmV3IERtc09iamVjdEF0dGFjaG1lbnQoT2JqZWN0LmFzc2lnbihhLCB7aWQ6IGksIHByZXZpZXdVcmk6IHRoaXMuZ2V0QXR0YWNobWVudEJ5SW5kZXgoY29udGVudElELCBpLCB0eXBlLCB2ZXJzaW9uKX0pKSkgOiBbXVxuICAgICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc3BlY2lmaWMgYXR0YWNobWVudCBvZiBhIERtc09iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gdmVyc2lvblxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIGdldEF0dGFjaG1lbnRCeUluZGV4KGlkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIHR5cGU6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoYC9kbXMvJHtpZH0vYXR0YWNobWVudHMvJHtpbmRleH1gLCB7dHlwZSwgdmVyc2lvbn0pO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArIHVyaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIFVSSSBmb3IgZ2V0dGluZyBhIERtc09iamVjdHMgc2xpZGUgKFByZXZpZXcgaW1hZ2UpLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgT2JqZWN0cyBpZFxuICAgKiBAcGFyYW0gdHlwZSBPYmplY3RzIHR5cGUgbmFtZSwgd2lsbCBpbXByb3ZlIGxvYWQgdGltZSBpZiBwcm92aWRlZFxuICAgKiBAcGFyYW0gdmVyc2lvbiBUYXJnZXQgdmVyc2lvblxuICAgKiBAcGFyYW0gc2l6ZSBUaGUgc2l6ZSBvZiB0aGUgcHJldmlldyBpbWFnZSBpbiBweFxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIGdldFNsaWRlKGlkOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcsIHZlcnNpb24/OiBudW1iZXIsIHNpemU/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpICsgJy9kbXMvJyArIGlkICsgJy9zbGlkZScsXG4gICAgICB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIGhlaWdodDogc2l6ZVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBVUkkgZm9yIGdldHRpbmcgYSBEbXNPYmplY3RzIHByZXZpZXcgKFBERiByZW5kaXRpb24pLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgT2JqZWN0cyBpZFxuICAgKiBAcGFyYW0gdHlwZV0gT2JqZWN0cyB0eXBlIG5hbWUsIHdpbGwgaW1wcm92ZSBsb2FkIHRpbWUgaWYgcHJvdmlkZWRcbiAgICogQHBhcmFtIHZlcnNpb24gVGFyZ2V0IHZlcnNpb25cbiAgICogQHBhcmFtIHJlbmRpdGlvbiBUYXJnZXQgcmVuZGl0aW9uIChQREYpXG4gICAqIEByZXR1cm5zIHN0cmluZ1xuICAgKi9cbiAgZ2V0UHJldmlldyhpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyLCByZW5kaXRpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpICsgJy9kbXMvJyArIGlkICsgJy9jb250ZW50JyxcbiAgICAgIHtcbiAgICAgICAgcmVuZGl0aW9uLFxuICAgICAgICB0eXBlLFxuICAgICAgICB2ZXJzaW9uXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGRtcyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgb2JqZWN0IHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGluZGV4ZGF0YSBPYmplY3QgaG9sZGluZyB0aGUgb2JqZWN0cyBpbmRleGRhdGEgKHByb3BlcnR5OiB2YWx1ZSlcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIG9mIHRoZSBvYmplY3QgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBvYmplY3QgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gY2hlY2tyZWZlcmVuY2VzIElmIHRoZSByZWZlcmVuY2UgZmllbGRzIHNob3VsZCBiZSB2YWxpZGF0ZWQgb3Igbm90XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0PiBUaGUgdXBkYXRlZCBkbXMgb2JqZWN0XG4gICAqL1xuICB1cGRhdGVPYmplY3QoaWQ6IHN0cmluZywgaW5kZXhkYXRhOiBhbnksIHR5cGU/OiBzdHJpbmcsIHZlcnNpb24/OiBudW1iZXIsIGNoZWNrcmVmZXJlbmNlcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPERtc09iamVjdD4ge1xuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvZG1zLyR7aWR9YCwge3R5cGUsIHZlcnNpb24sIGNoZWNrcmVmZXJlbmNlc30pO1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJVcGRhdGUoPGFueT57aWQsIHR5cGUsIHR5cGVOYW1lOiB0eXBlfSwgdGhpcy5iYWNrZW5kLnB1dCh1cmwsIGluZGV4ZGF0YSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHRoZSBoaXN0b3J5IChhdWRpdCkgb2Ygb25lIGRtcyBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBkbXMgb2JqZWN0IHRvIGZldGNoIGhpc3RvcnkgZm9yXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgb2YgdGhlIGRtcyBvYmplY3QgdG8gZmV0Y2ggaGlzdG9yeSBmb3JcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxEbXNPYmplY3RIaXN0b3J5RW50cnlbXT4gVGhlIGhpc3Rvcnkgb2YgdGhlIGRtcyBvYmplY3RcbiAgICovXG4gIGdldEhpc3RvcnkoaWQ6IHN0cmluZywgdHlwZT86IHN0cmluZyk6IE9ic2VydmFibGU8RG1zT2JqZWN0SGlzdG9yeUVudHJ5W10+IHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy8ke2lkfS9hdWRpdGA7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKFV0aWxzLmJ1aWxkVXJpKHVyaSwge3R5cGU6IHR5cGV9KSkucGlwZShtYXAoKHJlcykgPT4gcmVzLmF1ZGl0Lm1hcCgoYXVkaXRFbnRyeSkgPT4gbmV3IERtc09iamVjdEhpc3RvcnlFbnRyeShhdWRpdEVudHJ5KSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyBhbiBlYXJsaWVyIHZlcnNpb24gb2YgdGhlIHNlbGVjdGVkIERtc09iamVjdCBieSBhZGRpbmcgdGhlIGVhcmxpZXIgdmVyc2lvblxuICAgKiBhcyB0aGUgbmV3IHJlY2VudCB2ZXJzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgRE1TIG9iamVjdCBpZFxuICAgKiBAcGFyYW0gdmVyc2lvbiBUaGUgdmVyc2lvbiB0byBiZSByZXN0b3JlZFxuICAgKiBAcGFyYW0gdHlwZSBUaGUgZG1zIG9iamVjdCB0eXBlXG4gICAqIEByZXR1cm5cbiAgICovXG4gIHJlc3RvcmVWZXJzaW9uKGlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgdHlwZT86IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IGAvZG1zL3Jlc3RvcmV2ZXJzaW9uLyR7aWR9LyR7dmVyc2lvbn1gO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChVdGlscy5idWlsZFVyaSh1cmksIHt0eXBlOiB0eXBlfSksIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIGRtc09iamVjdCBpcyBzcGVjaWZpZWQsIGxvYWQgbGF0ZXN0IHZlcnNpb24gYW5kIHRyaWdnZXIgRW5haW8gZXZlbnQgRE1TX09CSkVDVF9VUERBVEVEXG4gICAqXG4gICAqIEBwYXJhbSBkbXNPYmplY3RcbiAgICogQHBhcmFtIHJlcXVlc3RcbiAgICogQHJldHVyblxuICAgKi9cbiAgdHJpZ2dlclVwZGF0ZShkbXNPYmplY3Q6IERtc09iamVjdCwgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgcmV0dXJuICFkbXNPYmplY3QgPyByZXF1ZXN0IDogcmVxdWVzdC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXREbXNPYmplY3QoZG1zT2JqZWN0LmlkLCBkbXNPYmplY3QudHlwZU5hbWUpKSxcbiAgICAgIHRhcChfZG1zT2JqZWN0ID0+IHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQsIF9kbXNPYmplY3QpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIENvbnRlbnRcbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBkbXNPYmplY3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICByZW1vdmVDb250ZW50KGRtc09iamVjdDogRG1zT2JqZWN0KSB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvJHtkbXNPYmplY3QuaWR9L2NvbnRlbnRgO1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJVcGRhdGUoZG1zT2JqZWN0LCB0aGlzLmJhY2tlbmQuZGVsKHVyaSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRG1zT2JqZWN0LlxuICAgKiBAcGFyYW0gdGFyZ2V0VHlwZSBUYXJnZXQgb2JqZWN0IHR5cGUgbmFtZVxuICAgKiBAcGFyYW0gZmlsZSBGaWxlIHRvIGJlIGFkZGVkIGFzIERtc09iamVjdHMgY29udGVudFxuICAgKiBAcGFyYW0gaW5kZXhEYXRhIEluZGV4ZGF0YSBhcyBwbGFpbiBvYmplY3Qgd2hlcmUga2V5cyBhcmUgdGhlIG9iamVjdHMgcHJvcGVydGllcyBhbmQgdmFsdWVzIHRoZSB2YWx1ZXMgdG8gYmUgYXBwbGllZCB0byBpdFxuICAgKiBAcGFyYW0gcGFyZW50IFBhcmVudCBjb250ZXh0IGZvbGRlciBvZiB0aGUgbmV3IERtc09iamVjdFxuICAgKi9cbiAgY3JlYXRlRG1zT2JqZWN0KHRhcmdldFR5cGU6IHN0cmluZywgZmlsZT86IEZpbGUsIGluZGV4RGF0YT86IGFueSwgcGFyZW50Pzoge2lkOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmd9KTogT2JzZXJ2YWJsZTx7aWQ6IHN0cmluZywgdXJpOiBzdHJpbmd9PiB7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGlmIChpbmRleERhdGEpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZGF0YScsIG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShpbmRleERhdGEpXSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdub2luZGV4ZGF0YScsICcnKTtcbiAgICB9XG5cbiAgICBpZiAoZmlsZSkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlc1tdJywgZmlsZSwgVXRpbHMuZW5jb2RlRmlsZU5hbWUoZmlsZS5uYW1lKSk7XG4gICAgfVxuXG4gICAgbGV0IHVyaSA9IGAvZG1zL2NyZWF0ZS8ke3RhcmdldFR5cGV9YDtcbiAgICBpZiAocGFyZW50KSB7XG4gICAgICB1cmkgPSBVdGlscy5idWlsZFVyaSh1cmksIHtcbiAgICAgICAgcGFyZW50SWQ6IHBhcmVudC5pZCxcbiAgICAgICAgcGFyZW50VHlwZTogcGFyZW50LnR5cGVcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3RNdWx0aVBhcnQodXJpLCBmb3JtRGF0YSwgbnVsbCwge2hlYWRlcnM6IHt9fSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgU3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBEbXNPYmplY3QgZG1zT2JqZWN0XG4gICAqIEBwYXJhbSBzdHJpbmcgc3ViamVjdFxuICAgKiBAcGFyYW0gcmVjZWl2ZXJcbiAgICogQHBhcmFtIGJvb2xlYW4gc2VuZGVtYWlsXG4gICAqIEBwYXJhbSBib29sZWFuIG9ubHllbWFpbFxuICAgKiBAcGFyYW0gbW9kZSBTdWJzY3JpcHRpb25Nb2RlXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgY3JlYXRlU3Vic2NyaXB0aW9uKGRtc09iamVjdDogRG1zT2JqZWN0LCBzdWJqZWN0OiBzdHJpbmcsIHJlY2VpdmVyLCBzZW5kZW1haWw6IGJvb2xlYW4sIG9ubHllbWFpbDogYm9vbGVhbiwgbW9kZT86IFN1YnNjcmlwdGlvbk1vZGUpIHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy9zdWJzY3JpcHRpb24vJHtkbXNPYmplY3QuaWR9YDtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdCwgdGhpcy5iYWNrZW5kLnBvc3QoVXRpbHMuYnVpbGRVcmkodXJpLCB7XG4gICAgICBzdWJqZWN0LFxuICAgICAgdHlwZTogZG1zT2JqZWN0LnR5cGVOYW1lLFxuICAgICAgcmVjZWl2ZXIsXG4gICAgICBzZW5kZW1haWwsXG4gICAgICBvbmx5ZW1haWwsXG4gICAgICBtb2RlXG4gICAgfSksIHt9KVxuICAgICk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBSZXN1Ym1pc3Npb25cbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBkbXNPYmplY3RcbiAgICogQHBhcmFtIHN0cmluZyBzdWJqZWN0XG4gICAqIEBwYXJhbSBkdWVcbiAgICogQHBhcmFtIHJlY2VpdmVyXG4gICAqIEBwYXJhbSBib29sZWFuIHNlbmRFbWFpbFxuICAgKiBAcGFyYW0gYm9vbGVhbiBvbmx5RW1haWxcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBjcmVhdGVSZXN1Ym1pc3Npb24oZG1zT2JqZWN0OiBEbXNPYmplY3QsIHN1YmplY3Q6IHN0cmluZywgZHVlLCByZWNlaXZlciwgc2VuZEVtYWlsOiBib29sZWFuLCBvbmx5RW1haWw6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy9yZXN1Ym1pc3Npb24vJHtkbXNPYmplY3QuaWR9YDtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdCwgdGhpcy5iYWNrZW5kLnBvc3QoVXRpbHMuYnVpbGRVcmkodXJpLCB7XG4gICAgICBzdWJqZWN0LFxuICAgICAgdHlwZTogZG1zT2JqZWN0LnR5cGVOYW1lLFxuICAgICAgcmVjZWl2ZXIsXG4gICAgICBkdWU6IGR1ZSA/IGR1ZS50b0lTT1N0cmluZygpIDogJycsXG4gICAgICBzZW5kZW1haWw6IHNlbmRFbWFpbCxcbiAgICAgIG9ubHllbWFpbDogb25seUVtYWlsXG4gICAgfSksIHt9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVhbW92ZSBhIFN1YnNjcmlwdGlvbiBieSBhIGdpdmVuIElkXG4gICAqXG4gICAqIEBwYXJhbSBzdWJzY3JpcHRpb25JZFxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGRtc09iamVjdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHJlbW92ZVN1YnNjcmlwdGlvbkJ5SWQoc3Vic2NyaXB0aW9uSWQsIGRtc09iamVjdD86IERtc09iamVjdCkge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJVcGRhdGUoZG1zT2JqZWN0LCB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyL3N1YnNjcmlwdGlvbi8ke3N1YnNjcmlwdGlvbklkfWApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBSZXN1Ym1pc3Npb24gYnkgYSBnaXZlbiBJZFxuICAgKlxuICAgKiBAcGFyYW0gaXRlbUlkXG4gICAqIEBwYXJhbSBEbXNPYmplY3QgZG1zT2JqZWN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcmVtb3ZlUmVzdWJtaXNzaW9uc0J5SWQoaXRlbUlkLCBkbXNPYmplY3Q/OiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdCwgdGhpcy5iYWNrZW5kLmRlbChgL2Rtcy9yZXN1Ym1pc3Npb24vJHtpdGVtSWR9YCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhIFJlc3VibWlzc2lvblxuICAgKlxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGRtc09iamVjdFxuICAgKiBAcGFyYW0gc3RyaW5nIHN1YmplY3RcbiAgICogQHBhcmFtIGR1ZVxuICAgKiBAcGFyYW0gcmVjZWl2ZXJcbiAgICogQHBhcmFtIGJvb2xlYW4gc2VuZEVtYWlsXG4gICAqIEBwYXJhbSBib29sZWFuIG9ubHlFbWFpbFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHVwZGF0ZVJlc3VibWlzc2lvbihkbXNPYmplY3Q6IERtc09iamVjdCwgc3ViamVjdDogc3RyaW5nLCBkdWUsIHJlY2VpdmVyLCBzZW5kRW1haWw6IGJvb2xlYW4sIG9ubHlFbWFpbDogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZVJlc3VibWlzc2lvbnNCeUlkKGRtc09iamVjdC5pZCkucGlwZShtZXJnZU1hcCgoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1Ym1pc3Npb24oZG1zT2JqZWN0LCBzdWJqZWN0LCBkdWUsIHJlY2VpdmVyLCBzZW5kRW1haWwsIG9ubHlFbWFpbCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHRlciBmb3IgT3JnYW5pemF0aW9uIE9iamVjdHMgV2l0aCBSZWFkIFJpZ2h0c1xuICAgKlxuICAgKiBAcGFyYW0gRG1zT2JqZWN0W10gZG1zT2JqZWN0c1xuICAgKiBAcGFyYW0gc3RyaW5nW10gb3JnYU5hbWVzXG4gICAqIEBwYXJhbSBib29sZWFuIHNoYXJlQ2hpbGRyZW5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBzZXRPcmdhbml6YXRpb25PYmplY3RzV2l0aFJlYWRSaWdodHMoZG1zT2JqZWN0czogRG1zT2JqZWN0W10sIG9yZ2FOYW1lczogc3RyaW5nW10sIHNoYXJlQ2hpbGRyZW4gPSB0cnVlKSB7XG4gICAgY29uc3QgdXJsID0gYC9kbXMvYmF0Y2gvcHV0YWRkaXRpb25hbHZpc2liaWxpdHk/c2hhcmVjaGlsZHJlbj0ke3NoYXJlQ2hpbGRyZW59YDtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3JnYW5pemF0aW9ub2JqZWN0czogb3JnYU5hbWVzLFxuICAgICAgb2JqZWN0czogZG1zT2JqZWN0cy5tYXAobyA9PiAoe1xuICAgICAgICBpdGVtaWQ6IG8uaWQsXG4gICAgICAgIHR5cGU6IG8udHlwZS5uYW1lXG4gICAgICB9KSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJVcGRhdGUoZG1zT2JqZWN0c1swXSwgdGhpcy5iYWNrZW5kLnB1dCh1cmwsIGRhdGEpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGEgRE1TIE9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHR5cGVOYW1lXG4gICAqIEBwYXJhbSBwYXJlbnRJZFxuICAgKiBAcGFyYW0gcGFyZW50VHlwZU5hbWVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBtb3ZlKGlkLCB0eXBlTmFtZSwgcGFyZW50SWQsIHBhcmVudFR5cGVOYW1lKSB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvbG9jYXRpb24vJHtpZH1gO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChVdGlscy5idWlsZFVyaSh1cmksIHtcbiAgICAgIHR5cGU6IHR5cGVOYW1lLFxuICAgICAgcGFyZW50SWQsXG4gICAgICBwYXJlbnRUeXBlOiBwYXJlbnRUeXBlTmFtZVxuICAgIH0pLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ29weSBhIERNUyBPYmplY3RcbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSB0eXBlTmFtZVxuICAgKiBAcGFyYW0gcGFyZW50SWRcbiAgICogQHBhcmFtIHBhcmVudFR5cGVOYW1lXG4gICAqIEBwYXJhbSBjcmVhdGVDb250ZW50TGlua1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIGNvcHkoaWQsIHR5cGVOYW1lLCBwYXJlbnRJZCwgcGFyZW50VHlwZU5hbWUsIGNyZWF0ZUNvbnRlbnRMaW5rKSB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvY29weS8ke2lkfWA7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KFV0aWxzLmJ1aWxkVXJpKHVyaSwge1xuICAgICAgdHlwZTogdHlwZU5hbWUsXG4gICAgICBwYXJlbnRJZCxcbiAgICAgIHBhcmVudFR5cGU6IHBhcmVudFR5cGVOYW1lLFxuICAgICAgY3JlYXRlY29udGVudGxpbms6IGNyZWF0ZUNvbnRlbnRMaW5rXG4gICAgfSksIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBETVMgT2JqZWN0IHRvIEZpbmlsaXRlZFxuICAgKlxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGl0ZW1cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBmaW5hbGl6ZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICBjb25zdCB1cmwgPSAnL2Rtcy9maW5hbGl6ZS8nICsgaXRlbS5pZCArICc/dHlwZT0nICsgaXRlbS50eXBlTmFtZTtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGl0ZW0sIHRoaXMuYmFja2VuZC5wdXQodXJsKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBGaW5pbGl6ZWQgRmxhZyBmcm9tIGEgRE1TIE9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGl0ZW1cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBkZWZpbmFsaXplKGl0ZW06IERtc09iamVjdCkge1xuICAgIGNvbnN0IHVybCA9ICcvZG1zL2RlZmluYWxpemUvJyArIGl0ZW0uaWQgKyAnP3R5cGU9JyArIGl0ZW0udHlwZU5hbWU7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlclVwZGF0ZShpdGVtLCB0aGlzLmJhY2tlbmQucHV0KHVybCkpO1xuICB9XG5cbiAgY3JlYXRlTG9jYWxDb3B5T2ZETVNPYmplY3QoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBEbXNPYmplY3Qge1xuICAgIGNvbnN0IGJhc2UgPSB7XG4gICAgICBpZDogZG1zT2JqZWN0LmlkLFxuICAgICAgdGl0bGU6IGRtc09iamVjdC50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBkbXNPYmplY3QuZGVzY3JpcHRpb24sXG4gICAgICB2ZXJzaW9uOiBkbXNPYmplY3QudmVyc2lvbixcbiAgICAgIHZlcnNpb25zOiBkbXNPYmplY3QudmVyc2lvbnMsXG4gICAgICBkYXRhOiBkbXNPYmplY3QuZGF0YSxcbiAgICAgIHR5cGU6IGRtc09iamVjdC50eXBlTmFtZSxcblxuICAgICAgYWN0aXZldmVyc2lvbjogZG1zT2JqZWN0LmlzQWN0aXZlVmVyc2lvbixcbiAgICAgIGZpbmFsaXplZDogZG1zT2JqZWN0LmlzRmluYWxpemVkLFxuICAgICAgZmF2b3JpdGU6IGRtc09iamVjdC5pc0Zhdm9yaXRlLFxuICAgICAgZm9sZGVyOiBkbXNPYmplY3QuaXNGb2xkZXIsXG4gICAgICBpc2NvbnRleHRmb2xkZXI6IGRtc09iamVjdC5pc0NvbnRleHRGb2xkZXIsXG5cbiAgICAgIGNvbnRleHRmb2xkZXI6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyID8ge1xuICAgICAgICBpZDogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIuaWQsXG4gICAgICAgIHR5cGU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lLFxuICAgICAgICB0aXRsZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBkbXNPYmplY3QuY29udGV4dEZvbGRlci5kZXNjcmlwdGlvblxuICAgICAgfSA6IG51bGwsXG5cbiAgICAgIGNyZWF0ZWQ6IGRtc09iamVjdC5jcmVhdGVkLFxuICAgICAgbW9kaWZpZWQ6IGRtc09iamVjdC5tb2RpZmllZCxcblxuICAgICAgbG9jazogIWRtc09iamVjdC5sb2NrID8gJ05PVF9MT0NLRUQnIDogZG1zT2JqZWN0LmxvY2suYnkubWUgPyAnTE9DS0VEX0JZX1NFU1NJT05fVVNFUicgOiAnTE9DS0VEX0JZX09USEVSX1VTRVInLFxuICAgICAgbG9ja2luZm86IGRtc09iamVjdC5sb2NrID8ge3VzZXJuYW1lOiBkbXNPYmplY3QubG9jay5ieS5uYW1lLCB1c2VydGl0bGU6IGRtc09iamVjdC5sb2NrLmJ5LmxhYmVsLCB0aW1lOiBkbXNPYmplY3QubG9jay5vbn0gOiBudWxsLFxuXG4gICAgICByaWdodHM6IFt7XG4gICAgICAgIHByaXZpbGVnZXM6IHtcbiAgICAgICAgICBzZWxlY3Q6IGRtc09iamVjdC5yaWdodHMuc2VsZWN0LFxuICAgICAgICAgIGVkaXQ6IGRtc09iamVjdC5yaWdodHMuZWRpdCxcbiAgICAgICAgICBkZWxldGU6IGRtc09iamVjdC5yaWdodHMuZGVsZXRlLFxuICAgICAgICAgIGZpbmFsaXplOiBkbXNPYmplY3QucmlnaHRzLmZpbmFsaXplLFxuICAgICAgICAgIHJlY3ljbGU6IGRtc09iamVjdC5yaWdodHMucmVjeWNsZVxuICAgICAgICB9XG4gICAgICB9XSxcblxuICAgICAgY29udGVudGlkOiBkbXNPYmplY3QuY29udGVudCA/IGRtc09iamVjdC5jb250ZW50LmlkIDogbnVsbCxcbiAgICAgIGNvbnRlbnR0eXBlOiBkbXNPYmplY3QuY29udGVudCA/IGRtc09iamVjdC5jb250ZW50LnR5cGUgOiBudWxsLFxuICAgICAgY29udGVudGNvdW50OiBkbXNPYmplY3QuY29udGVudCA/IGRtc09iamVjdC5jb250ZW50LmNvdW50IDogbnVsbCxcbiAgICAgIGNvbnRlbnRzOiBkbXNPYmplY3QuY29udGVudCA/IGRtc09iamVjdC5jb250ZW50LmNvbnRlbnRzIDogbnVsbCxcblxuICAgICAgc3Vic2NyaXB0aW9uczogZG1zT2JqZWN0LnN1YnNjcmlwdGlvbnMsXG4gICAgICByZXN1Ym1pc3Npb25zOiBkbXNPYmplY3QucmVzdWJtaXNzaW9ucyxcbiAgICAgIGFkZGl0aW9uYWx2aXNpYmlsaXR5OiBkbXNPYmplY3QuYWRkaXRpb25hbHZpc2liaWxpdHlcbiAgICB9O1xuXG4gICAgbGV0IGNvcGllZERtc09iamVjdCA9IG5ldyBEbXNPYmplY3QoYmFzZSk7XG4gICAgY29waWVkRG1zT2JqZWN0LnR5cGUgPSBkbXNPYmplY3QudHlwZTtcblxuICAgIHJldHVybiBjb3BpZWREbXNPYmplY3Q7XG4gIH1cblxufVxuIl19
491
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG1zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvZG1zL2Rtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHckQsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQixvREFBZ0MsQ0FBQTtJQUNoQyw2REFBeUMsQ0FBQTtJQUN6QywrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQjtBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsT0FBdUIsRUFDakMsYUFBNEIsRUFDNUIsWUFBMEI7UUFGaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDakMsa0JBQWEsR0FB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QUFDLE1BQU07WUFDeEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzFELFdBQVcsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM5RCxZQUFZLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDaEUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBRS9ELGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtZQUN0QyxhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWE7WUFDdEMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLG9CQUFvQjtTQUNyRCxDQUFDO1FBRUYsSUFBSSxlQUFlLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsZUFBZSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBRXRDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OztZQTdnQkYsVUFBVTs7O1lBakJILGNBQWM7WUFDZCxhQUFhO1lBSWIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dGFwLCBtZXJnZU1hcCwgY2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Rtc09iamVjdCwgRG1zT2JqZWN0QXR0YWNobWVudH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcbmltcG9ydCB7RG1zT2JqZWN0SGlzdG9yeUVudHJ5fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0LWhpc3RvcnkubW9kZWwnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0Rtc1BhcmFtc30gZnJvbSAnLi9kbXNQYXJhbXMuaW50ZXJmYWNlJztcblxuZXhwb3J0IGVudW0gU3Vic2NyaXB0aW9uTW9kZSB7XG4gIE9OTFlfSU5ERVhfREFUQV9DSEFOR0VEID0gJ01FVEEnLFxuICBPTkxZX0RPQ1VNRU5UX0NPTlRFTlRfQ0hBTkdFRCA9ICdDT05URU5UJyxcbiAgRE1TX09CSkVDVF9DSEFOR0VEID0gJ0JPVEgnXG59XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBETVMgU2VydmljZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERtc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgZG1zIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGlkIE9iamVjdHMgaWRcbiAgICogQHBhcmFtIHR5cGUgT2JqZWN0cyB0eXBlIG5hbWUsIHdpbGwgaW1wcm92ZSBsb2FkIHRpbWUgaWYgcHJvdmlkZWRcbiAgICogQHBhcmFtIHZlcnNpb24gVGFyZ2V0IHZlcnNpb25cbiAgICogQHBhcmFtIGludGVudCBVc2VkIGZvciBzZXJ2ZXIgc2lkZSBsb2dnaW5nLiBJZiB5b3UgcHJvdmlkZSBhbiBpbnRlbnQsIHRoZSBiYWNrZW5kIHdpbGwgcmVjb2duaXplIHRoZSByZXF1ZXN0IGFuZCBhZGQgaXQgdG8gaXRzIGxvZ3NcbiAgICogQHBhcmFtIHJlY3ljbGViaW4gSWYgdHJ1ZSwgb2JqZWN0cyBmcm9tIHJlY3ljbGViaW4gYXJlIGluY2x1ZGVkXG4gICAqIEBwYXJhbSB3aXRoU3RvcmFnZUluZm8gSWYgdHJ1ZSwgc3RvcmFnZWluZm8gaXMgaW5jbHVkZWQgb24gdGhlIGRtcyBvYmplY3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxEbXNPYmplY3Q+XG4gICAqL1xuICBnZXREbXNPYmplY3QoaWQ6IHN0cmluZywgdHlwZT86IHN0cmluZywgdmVyc2lvbj86IG51bWJlciwgaW50ZW50Pzogc3RyaW5nLCByZWN5Y2xlYmluPzogYm9vbGVhbiwgd2l0aFN0b3JhZ2VJbmZvPzogYm9vbGVhbik6IE9ic2VydmFibGU8RG1zT2JqZWN0PiB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvJHtpZH1gO1xuXG4gICAgY29uc3QgcSA9IHtcbiAgICAgIGFkZGl0aW9uYWx2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgc3Vic2NyaXB0aW9uOiAnQ1VSUkVOVCcsXG4gICAgICByZXN1Ym1pc3Npb246ICdDVVJSRU5UJyxcbiAgICAgIHJpZ2h0czogJ0NVUlJFTlQnLFxuICAgICAgZGF0YW1ldGE6ICd0cnVlJyxcbiAgICAgIGNvbnRleHRmb2xkZXI6ICd0cnVlJyxcbiAgICAgIHR5cGUsXG4gICAgICByZWN5Y2xlYmluLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHN0b3JhZ2VpbmZvOiB3aXRoU3RvcmFnZUluZm8sXG4gICAgICAnX2ludGVudCc6IGludGVudFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0VmlhVGVtcENhY2hlKFV0aWxzLmJ1aWxkVXJpKHVyaSwgcSkpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpLFxuICAgICAgICBtYXAocmVzID0+IHRoaXMucmVzb2x2ZU9iamVjdFR5cGVzKG5ldyBEbXNPYmplY3QocmVzKSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBmb3IgdGhlIERNUyBPYmplY3RzIGJ5IHBhcmFtc1xuICAgKlxuICAgKiBAcGFyYW0gRG1zUGFyYW1zIHBhcmFtc1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPERtc09iamVjdD5cbiAgICovXG4gIGdldERtc09iamVjdEJ5UGFyYW1zKHBhcmFtczogRG1zUGFyYW1zKTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREbXNPYmplY3QocGFyYW1zLmlkLCBwYXJhbXMudHlwZSwgcGFyYW1zLnZlcnNpb24sIHBhcmFtcy5pbnRlbnQsIHBhcmFtcy5yZWN5Y2xlYmluLCBwYXJhbXMud2l0aFN0b3JhZ2VJbmZvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW9sdmVyIG9mIE9iamVjdCBUeXBlcyBieSBETVMgT2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBEbXNPYmplY3QgZG1zT2JqZWN0XG4gICAqIEByZXR1cm5zIERtc09iamVjdFxuICAgKi9cbiAgcmVzb2x2ZU9iamVjdFR5cGVzKGRtc09iamVjdDogRG1zT2JqZWN0KTogRG1zT2JqZWN0IHtcbiAgICBkbXNPYmplY3QudHlwZSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKGRtc09iamVjdC50eXBlTmFtZSk7XG5cbiAgICBpZiAoZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIpIHtcbiAgICAgIGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShkbXNPYmplY3QuY29udGV4dEZvbGRlci50eXBlTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRtc09iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgRE1TIG9iamVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgZG1zIG9iamVjdCB0byBiZSBkZWxldGVkLlxuICAgKiBAcGFyYW0gdHlwZSBUeXBlIG9mIG9iamVjdFxuICAgKiBAcGFyYW0gaGFyZERlbGV0ZSBJZiBvYmplY3Qgc2hvdWxkIHJlYWxseSBiZSBkZWxldGVkIG9yIG9ubHkgcHV0IGludG8gdGhlIHJlY3ljbGUgYmluXG4gICAqL1xuICBkZWxldGVEbXNPYmplY3QoaWQ6IHN0cmluZywgdHlwZT86IHN0cmluZywgaGFyZERlbGV0ZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAvZG1zLyR7aWR9YDtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBpZiAodHlwZSAmJiB0eXBlLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtc1sndHlwZSddID0gdHlwZTtcbiAgICB9XG4gICAgaWYgKGhhcmREZWxldGUpIHtcbiAgICAgIHBhcmFtc1snaGFyZGRlbGV0ZSddID0gaGFyZERlbGV0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoVXRpbHMuYnVpbGRVcmkodXJsLCBwYXJhbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGdpdmVuIGRtcyBvYmplY3RcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBUaGUgY29udGV4dCBwYXRoIG9mIHRoZSBkbXMgb2JqZWN0XG4gICAqL1xuICBnZXRDb250ZXh0UGF0aChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC9kbXMvJHtpZH0vY29udGV4dGApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIGNvbnRleHRQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnRleHRQYXRoLmZvckVhY2gocGF0aEl0ZW0gPT4ge1xuICAgICAgICAgICAgICBwYXRoSXRlbS5kbXNvYmplY3QgPSBuZXcgRG1zT2JqZWN0KHBhdGhJdGVtLmRtc29iamVjdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0UGF0aDtcbiAgICAgICAgICB9XG4gICAgICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGNoaWxkcmVuIG9mIGEgRG1zT2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gZG1zT2JqZWN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0W10+XG4gICAqL1xuICBnZXRDaGlsZHJlbihkbXNPYmplY3Q6IERtc09iamVjdCk6IE9ic2VydmFibGU8RG1zT2JqZWN0W10+IHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy8ke2Rtc09iamVjdC5pZH0vY2hpbGRyZW5gO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKFV0aWxzLmJ1aWxkVXJpKHVyaSwge3R5cGU6IGRtc09iamVjdC50eXBlLm5hbWV9KSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzLm1hcChyID0+IHRoaXMucmVzb2x2ZU9iamVjdFR5cGVzKG5ldyBEbXNPYmplY3QocikpKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSB2ZXJzaW9ucyBvZiBhIERtc09iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0PlxuICAgKi9cbiAgZ2V0VmVyc2lvbnMoaWQ6IHN0cmluZywgdHlwZT86IHN0cmluZyk6IE9ic2VydmFibGU8RG1zT2JqZWN0PiB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvJHtpZH0vdmVyc2lvbnNgO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKFV0aWxzLmJ1aWxkVXJpKHVyaSwge3R5cGV9KSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBEbXNPYmplY3QocmVzKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBhdHRhY2htZW50cyBvZiBhIERtc09iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGRtc09iamVjdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPERtc09iamVjdEF0dGFjaG1lbnRbXT5cbiAgICovXG4gIGdldEF0dGFjaG1lbnRzKGRtc09iamVjdDogRG1zT2JqZWN0KTogT2JzZXJ2YWJsZTxEbXNPYmplY3RBdHRhY2htZW50W10+IHtcbiAgICBjb25zdCB0eXBlID0gZG1zT2JqZWN0LmNvbnRlbnQ/LnR5cGU7XG4gICAgY29uc3QgdmVyc2lvbiA9IGRtc09iamVjdC5jb250ZW50Py5saW5rZWQgPyAtMSA6IGRtc09iamVjdC52ZXJzaW9uO1xuICAgIGNvbnN0IGNvbnRlbnRJRCA9IGRtc09iamVjdC5jb250ZW50Py5pZDtcbiAgICBjb25zdCB1cmkgPSBVdGlscy5idWlsZFVyaShgL2Rtcy8ke2NvbnRlbnRJRH0vYXR0YWNobWVudHNgLCB7dHlwZSwgdmVyc2lvbn0pO1xuICAgIHJldHVybiAhY29udGVudElEID8gb2YoW10pIDogdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKFV0aWxzLmNhdGNoU2tpcChlcnIgPT4gZXJyLnN0YXR1cyA9PT0gNDA0KSksXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMuYXR0YWNobWVudGluZm8gJiYgcmVzLmF0dGFjaG1lbnRpbmZvLmF0dGFjaG1lbnRzID8gcmVzLmF0dGFjaG1lbnRpbmZvLmF0dGFjaG1lbnRzXG4gICAgICAgIC5tYXAoKGEsIGkpID0+IG5ldyBEbXNPYmplY3RBdHRhY2htZW50KE9iamVjdC5hc3NpZ24oYSwge2lkOiBpLCBwcmV2aWV3VXJpOiB0aGlzLmdldEF0dGFjaG1lbnRCeUluZGV4KGNvbnRlbnRJRCwgaSwgdHlwZSwgdmVyc2lvbil9KSkpIDogW11cbiAgICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHNwZWNpZmljIGF0dGFjaG1lbnQgb2YgYSBEbXNPYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIHZlcnNpb25cbiAgICogQHJldHVybnMgc3RyaW5nXG4gICAqL1xuICBnZXRBdHRhY2htZW50QnlJbmRleChpZDogc3RyaW5nLCBpbmRleDogbnVtYmVyLCB0eXBlOiBzdHJpbmcsIHZlcnNpb24/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKGAvZG1zLyR7aWR9L2F0dGFjaG1lbnRzLyR7aW5kZXh9YCwge3R5cGUsIHZlcnNpb259KTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB1cmk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBVUkkgZm9yIGdldHRpbmcgYSBEbXNPYmplY3RzIHNsaWRlIChQcmV2aWV3IGltYWdlKS5cbiAgICpcbiAgICogQHBhcmFtIGlkIE9iamVjdHMgaWRcbiAgICogQHBhcmFtIHR5cGUgT2JqZWN0cyB0eXBlIG5hbWUsIHdpbGwgaW1wcm92ZSBsb2FkIHRpbWUgaWYgcHJvdmlkZWRcbiAgICogQHBhcmFtIHZlcnNpb24gVGFyZ2V0IHZlcnNpb25cbiAgICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIHByZXZpZXcgaW1hZ2UgaW4gcHhcbiAgICogQHJldHVybnMgc3RyaW5nXG4gICAqL1xuICBnZXRTbGlkZShpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyLCBzaXplPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArICcvZG1zLycgKyBpZCArICcvc2xpZGUnLFxuICAgICAge1xuICAgICAgICB0eXBlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBoZWlnaHQ6IHNpemVcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgVVJJIGZvciBnZXR0aW5nIGEgRG1zT2JqZWN0cyBwcmV2aWV3IChQREYgcmVuZGl0aW9uKS5cbiAgICpcbiAgICogQHBhcmFtIGlkIE9iamVjdHMgaWRcbiAgICogQHBhcmFtIHR5cGVdIE9iamVjdHMgdHlwZSBuYW1lLCB3aWxsIGltcHJvdmUgbG9hZCB0aW1lIGlmIHByb3ZpZGVkXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFRhcmdldCB2ZXJzaW9uXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIGdldFByZXZpZXcoaWQ6IHN0cmluZywgdHlwZT86IHN0cmluZywgdmVyc2lvbj86IG51bWJlciwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArICcvZG1zLycgKyBpZCArICcvY29udGVudCcsXG4gICAgICB7XG4gICAgICAgIHJlbmRpdGlvbixcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdmVyc2lvblxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBkbXMgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIG9iamVjdCB0byBiZSB1cGRhdGVkXG4gICAqIEBwYXJhbSBpbmRleGRhdGEgT2JqZWN0IGhvbGRpbmcgdGhlIG9iamVjdHMgaW5kZXhkYXRhIChwcm9wZXJ0eTogdmFsdWUpXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgb2JqZWN0IHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIHZlcnNpb24gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgb2JqZWN0IHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGNoZWNrcmVmZXJlbmNlcyBJZiB0aGUgcmVmZXJlbmNlIGZpZWxkcyBzaG91bGQgYmUgdmFsaWRhdGVkIG9yIG5vdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPERtc09iamVjdD4gVGhlIHVwZGF0ZWQgZG1zIG9iamVjdFxuICAgKi9cbiAgdXBkYXRlT2JqZWN0KGlkOiBzdHJpbmcsIGluZGV4ZGF0YTogYW55LCB0eXBlPzogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyLCBjaGVja3JlZmVyZW5jZXM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICBjb25zdCB1cmwgPSBVdGlscy5idWlsZFVyaShgL2Rtcy8ke2lkfWAsIHt0eXBlLCB2ZXJzaW9uLCBjaGVja3JlZmVyZW5jZXN9KTtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKDxhbnk+e2lkLCB0eXBlLCB0eXBlTmFtZTogdHlwZX0sIHRoaXMuYmFja2VuZC5wdXQodXJsLCBpbmRleGRhdGEpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgaGlzdG9yeSAoYXVkaXQpIG9mIG9uZSBkbXMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZG1zIG9iamVjdCB0byBmZXRjaCBoaXN0b3J5IGZvclxuICAgKiBAcGFyYW0gdHlwZSBUeXBlIG9mIHRoZSBkbXMgb2JqZWN0IHRvIGZldGNoIGhpc3RvcnkgZm9yXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8RG1zT2JqZWN0SGlzdG9yeUVudHJ5W10+IFRoZSBoaXN0b3J5IG9mIHRoZSBkbXMgb2JqZWN0XG4gICAqL1xuICBnZXRIaXN0b3J5KGlkOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPERtc09iamVjdEhpc3RvcnlFbnRyeVtdPiB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvJHtpZH0vYXVkaXRgO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihVdGlscy5idWlsZFVyaSh1cmksIHt0eXBlOiB0eXBlfSkpLnBpcGUobWFwKChyZXMpID0+IHJlcy5hdWRpdC5tYXAoKGF1ZGl0RW50cnkpID0+IG5ldyBEbXNPYmplY3RIaXN0b3J5RW50cnkoYXVkaXRFbnRyeSkpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgYW4gZWFybGllciB2ZXJzaW9uIG9mIHRoZSBzZWxlY3RlZCBEbXNPYmplY3QgYnkgYWRkaW5nIHRoZSBlYXJsaWVyIHZlcnNpb25cbiAgICogYXMgdGhlIG5ldyByZWNlbnQgdmVyc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIGlkIERNUyBvYmplY3QgaWRcbiAgICogQHBhcmFtIHZlcnNpb24gVGhlIHZlcnNpb24gdG8gYmUgcmVzdG9yZWRcbiAgICogQHBhcmFtIHR5cGUgVGhlIGRtcyBvYmplY3QgdHlwZVxuICAgKiBAcmV0dXJuXG4gICAqL1xuICByZXN0b3JlVmVyc2lvbihpZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIHR5cGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmkgPSBgL2Rtcy9yZXN0b3JldmVyc2lvbi8ke2lkfS8ke3ZlcnNpb259YDtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3QoVXRpbHMuYnVpbGRVcmkodXJpLCB7dHlwZTogdHlwZX0pLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZiBkbXNPYmplY3QgaXMgc3BlY2lmaWVkLCBsb2FkIGxhdGVzdCB2ZXJzaW9uIGFuZCB0cmlnZ2VyIEVuYWlvIGV2ZW50IERNU19PQkpFQ1RfVVBEQVRFRFxuICAgKlxuICAgKiBAcGFyYW0gZG1zT2JqZWN0XG4gICAqIEBwYXJhbSByZXF1ZXN0XG4gICAqIEByZXR1cm5cbiAgICovXG4gIHRyaWdnZXJVcGRhdGUoZG1zT2JqZWN0OiBEbXNPYmplY3QsIHJlcXVlc3Q6IE9ic2VydmFibGU8YW55Pikge1xuICAgIHJldHVybiAhZG1zT2JqZWN0ID8gcmVxdWVzdCA6IHJlcXVlc3QucGlwZShcbiAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0RG1zT2JqZWN0KGRtc09iamVjdC5pZCwgZG1zT2JqZWN0LnR5cGVOYW1lKSksXG4gICAgICB0YXAoX2Rtc09iamVjdCA9PiB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVELCBfZG1zT2JqZWN0KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBDb250ZW50XG4gICAqXG4gICAqIEBwYXJhbSBEbXNPYmplY3QgZG1zT2JqZWN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcmVtb3ZlQ29udGVudChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGNvbnN0IHVyaSA9IGAvZG1zLyR7ZG1zT2JqZWN0LmlkfS9jb250ZW50YDtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdCwgdGhpcy5iYWNrZW5kLmRlbCh1cmkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IERtc09iamVjdC5cbiAgICogQHBhcmFtIHRhcmdldFR5cGUgVGFyZ2V0IG9iamVjdCB0eXBlIG5hbWVcbiAgICogQHBhcmFtIGZpbGUgRmlsZSB0byBiZSBhZGRlZCBhcyBEbXNPYmplY3RzIGNvbnRlbnRcbiAgICogQHBhcmFtIGluZGV4RGF0YSBJbmRleGRhdGEgYXMgcGxhaW4gb2JqZWN0IHdoZXJlIGtleXMgYXJlIHRoZSBvYmplY3RzIHByb3BlcnRpZXMgYW5kIHZhbHVlcyB0aGUgdmFsdWVzIHRvIGJlIGFwcGxpZWQgdG8gaXRcbiAgICogQHBhcmFtIHBhcmVudCBQYXJlbnQgY29udGV4dCBmb2xkZXIgb2YgdGhlIG5ldyBEbXNPYmplY3RcbiAgICovXG4gIGNyZWF0ZURtc09iamVjdCh0YXJnZXRUeXBlOiBzdHJpbmcsIGZpbGU/OiBGaWxlLCBpbmRleERhdGE/OiBhbnksIHBhcmVudD86IHtpZDogc3RyaW5nLCB0eXBlPzogc3RyaW5nfSk6IE9ic2VydmFibGU8e2lkOiBzdHJpbmcsIHVyaTogc3RyaW5nfT4ge1xuXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAoaW5kZXhEYXRhKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoaW5kZXhEYXRhKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnbm9pbmRleGRhdGEnLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXNbXScsIGZpbGUsIFV0aWxzLmVuY29kZUZpbGVOYW1lKGZpbGUubmFtZSkpO1xuICAgIH1cblxuICAgIGxldCB1cmkgPSBgL2Rtcy9jcmVhdGUvJHt0YXJnZXRUeXBlfWA7XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgdXJpID0gVXRpbHMuYnVpbGRVcmkodXJpLCB7XG4gICAgICAgIHBhcmVudElkOiBwYXJlbnQuaWQsXG4gICAgICAgIHBhcmVudFR5cGU6IHBhcmVudC50eXBlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0TXVsdGlQYXJ0KHVyaSwgZm9ybURhdGEsIG51bGwsIHtoZWFkZXJzOiB7fX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIFN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGRtc09iamVjdFxuICAgKiBAcGFyYW0gc3RyaW5nIHN1YmplY3RcbiAgICogQHBhcmFtIHJlY2VpdmVyXG4gICAqIEBwYXJhbSBib29sZWFuIHNlbmRlbWFpbFxuICAgKiBAcGFyYW0gYm9vbGVhbiBvbmx5ZW1haWxcbiAgICogQHBhcmFtIG1vZGUgU3Vic2NyaXB0aW9uTW9kZVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIGNyZWF0ZVN1YnNjcmlwdGlvbihkbXNPYmplY3Q6IERtc09iamVjdCwgc3ViamVjdDogc3RyaW5nLCByZWNlaXZlciwgc2VuZGVtYWlsOiBib29sZWFuLCBvbmx5ZW1haWw6IGJvb2xlYW4sIG1vZGU/OiBTdWJzY3JpcHRpb25Nb2RlKSB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvc3Vic2NyaXB0aW9uLyR7ZG1zT2JqZWN0LmlkfWA7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlclVwZGF0ZShkbXNPYmplY3QsIHRoaXMuYmFja2VuZC5wb3N0KFV0aWxzLmJ1aWxkVXJpKHVyaSwge1xuICAgICAgc3ViamVjdCxcbiAgICAgIHR5cGU6IGRtc09iamVjdC50eXBlTmFtZSxcbiAgICAgIHJlY2VpdmVyLFxuICAgICAgc2VuZGVtYWlsLFxuICAgICAgb25seWVtYWlsLFxuICAgICAgbW9kZVxuICAgIH0pLCB7fSlcbiAgICApO1xuXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgUmVzdWJtaXNzaW9uXG4gICAqXG4gICAqIEBwYXJhbSBEbXNPYmplY3QgZG1zT2JqZWN0XG4gICAqIEBwYXJhbSBzdHJpbmcgc3ViamVjdFxuICAgKiBAcGFyYW0gZHVlXG4gICAqIEBwYXJhbSByZWNlaXZlclxuICAgKiBAcGFyYW0gYm9vbGVhbiBzZW5kRW1haWxcbiAgICogQHBhcmFtIGJvb2xlYW4gb25seUVtYWlsXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgY3JlYXRlUmVzdWJtaXNzaW9uKGRtc09iamVjdDogRG1zT2JqZWN0LCBzdWJqZWN0OiBzdHJpbmcsIGR1ZSwgcmVjZWl2ZXIsIHNlbmRFbWFpbDogYm9vbGVhbiwgb25seUVtYWlsOiBib29sZWFuKSB7XG4gICAgY29uc3QgdXJpID0gYC9kbXMvcmVzdWJtaXNzaW9uLyR7ZG1zT2JqZWN0LmlkfWA7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlclVwZGF0ZShkbXNPYmplY3QsIHRoaXMuYmFja2VuZC5wb3N0KFV0aWxzLmJ1aWxkVXJpKHVyaSwge1xuICAgICAgc3ViamVjdCxcbiAgICAgIHR5cGU6IGRtc09iamVjdC50eXBlTmFtZSxcbiAgICAgIHJlY2VpdmVyLFxuICAgICAgZHVlOiBkdWUgPyBkdWUudG9JU09TdHJpbmcoKSA6ICcnLFxuICAgICAgc2VuZGVtYWlsOiBzZW5kRW1haWwsXG4gICAgICBvbmx5ZW1haWw6IG9ubHlFbWFpbFxuICAgIH0pLCB7fSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYW1vdmUgYSBTdWJzY3JpcHRpb24gYnkgYSBnaXZlbiBJZFxuICAgKlxuICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uSWRcbiAgICogQHBhcmFtIERtc09iamVjdCBkbXNPYmplY3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICByZW1vdmVTdWJzY3JpcHRpb25CeUlkKHN1YnNjcmlwdGlvbklkLCBkbXNPYmplY3Q/OiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdCwgdGhpcy5iYWNrZW5kLmRlbChgL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vJHtzdWJzY3JpcHRpb25JZH1gKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgUmVzdWJtaXNzaW9uIGJ5IGEgZ2l2ZW4gSWRcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1JZFxuICAgKiBAcGFyYW0gRG1zT2JqZWN0IGRtc09iamVjdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHJlbW92ZVJlc3VibWlzc2lvbnNCeUlkKGl0ZW1JZCwgZG1zT2JqZWN0PzogRG1zT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlclVwZGF0ZShkbXNPYmplY3QsIHRoaXMuYmFja2VuZC5kZWwoYC9kbXMvcmVzdWJtaXNzaW9uLyR7aXRlbUlkfWApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBSZXN1Ym1pc3Npb25cbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBkbXNPYmplY3RcbiAgICogQHBhcmFtIHN0cmluZyBzdWJqZWN0XG4gICAqIEBwYXJhbSBkdWVcbiAgICogQHBhcmFtIHJlY2VpdmVyXG4gICAqIEBwYXJhbSBib29sZWFuIHNlbmRFbWFpbFxuICAgKiBAcGFyYW0gYm9vbGVhbiBvbmx5RW1haWxcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICB1cGRhdGVSZXN1Ym1pc3Npb24oZG1zT2JqZWN0OiBEbXNPYmplY3QsIHN1YmplY3Q6IHN0cmluZywgZHVlLCByZWNlaXZlciwgc2VuZEVtYWlsOiBib29sZWFuLCBvbmx5RW1haWw6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVSZXN1Ym1pc3Npb25zQnlJZChkbXNPYmplY3QuaWQpLnBpcGUobWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWJtaXNzaW9uKGRtc09iamVjdCwgc3ViamVjdCwgZHVlLCByZWNlaXZlciwgc2VuZEVtYWlsLCBvbmx5RW1haWwpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR0ZXIgZm9yIE9yZ2FuaXphdGlvbiBPYmplY3RzIFdpdGggUmVhZCBSaWdodHNcbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdFtdIGRtc09iamVjdHNcbiAgICogQHBhcmFtIHN0cmluZ1tdIG9yZ2FOYW1lc1xuICAgKiBAcGFyYW0gYm9vbGVhbiBzaGFyZUNoaWxkcmVuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgc2V0T3JnYW5pemF0aW9uT2JqZWN0c1dpdGhSZWFkUmlnaHRzKGRtc09iamVjdHM6IERtc09iamVjdFtdLCBvcmdhTmFtZXM6IHN0cmluZ1tdLCBzaGFyZUNoaWxkcmVuID0gdHJ1ZSkge1xuICAgIGNvbnN0IHVybCA9IGAvZG1zL2JhdGNoL3B1dGFkZGl0aW9uYWx2aXNpYmlsaXR5P3NoYXJlY2hpbGRyZW49JHtzaGFyZUNoaWxkcmVufWA7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9yZ2FuaXphdGlvbm9iamVjdHM6IG9yZ2FOYW1lcyxcbiAgICAgIG9iamVjdHM6IGRtc09iamVjdHMubWFwKG8gPT4gKHtcbiAgICAgICAgaXRlbWlkOiBvLmlkLFxuICAgICAgICB0eXBlOiBvLnR5cGUubmFtZVxuICAgICAgfSkpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyVXBkYXRlKGRtc09iamVjdHNbMF0sIHRoaXMuYmFja2VuZC5wdXQodXJsLCBkYXRhKSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBhIERNUyBPYmplY3RcbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSB0eXBlTmFtZVxuICAgKiBAcGFyYW0gcGFyZW50SWRcbiAgICogQHBhcmFtIHBhcmVudFR5cGVOYW1lXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgbW92ZShpZCwgdHlwZU5hbWUsIHBhcmVudElkLCBwYXJlbnRUeXBlTmFtZSkge1xuICAgIGNvbnN0IHVyaSA9IGAvZG1zL2xvY2F0aW9uLyR7aWR9YDtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3QoVXRpbHMuYnVpbGRVcmkodXJpLCB7XG4gICAgICB0eXBlOiB0eXBlTmFtZSxcbiAgICAgIHBhcmVudElkLFxuICAgICAgcGFyZW50VHlwZTogcGFyZW50VHlwZU5hbWVcbiAgICB9KSwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcHkgYSBETVMgT2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdHlwZU5hbWVcbiAgICogQHBhcmFtIHBhcmVudElkXG4gICAqIEBwYXJhbSBwYXJlbnRUeXBlTmFtZVxuICAgKiBAcGFyYW0gY3JlYXRlQ29udGVudExpbmtcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBjb3B5KGlkLCB0eXBlTmFtZSwgcGFyZW50SWQsIHBhcmVudFR5cGVOYW1lLCBjcmVhdGVDb250ZW50TGluaykge1xuICAgIGNvbnN0IHVyaSA9IGAvZG1zL2NvcHkvJHtpZH1gO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChVdGlscy5idWlsZFVyaSh1cmksIHtcbiAgICAgIHR5cGU6IHR5cGVOYW1lLFxuICAgICAgcGFyZW50SWQsXG4gICAgICBwYXJlbnRUeXBlOiBwYXJlbnRUeXBlTmFtZSxcbiAgICAgIGNyZWF0ZWNvbnRlbnRsaW5rOiBjcmVhdGVDb250ZW50TGlua1xuICAgIH0pLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgRE1TIE9iamVjdCB0byBGaW5pbGl0ZWRcbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBpdGVtXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgZmluYWxpemUoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgY29uc3QgdXJsID0gJy9kbXMvZmluYWxpemUvJyArIGl0ZW0uaWQgKyAnP3R5cGU9JyArIGl0ZW0udHlwZU5hbWU7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlclVwZGF0ZShpdGVtLCB0aGlzLmJhY2tlbmQucHV0KHVybCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgRmluaWxpemVkIEZsYWcgZnJvbSBhIERNUyBPYmplY3RcbiAgICpcbiAgICogQHBhcmFtIERtc09iamVjdCBpdGVtXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgZGVmaW5hbGl6ZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICBjb25zdCB1cmwgPSAnL2Rtcy9kZWZpbmFsaXplLycgKyBpdGVtLmlkICsgJz90eXBlPScgKyBpdGVtLnR5cGVOYW1lO1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJVcGRhdGUoaXRlbSwgdGhpcy5iYWNrZW5kLnB1dCh1cmwpKTtcbiAgfVxuXG4gIGNyZWF0ZUxvY2FsQ29weU9mRE1TT2JqZWN0KGRtc09iamVjdDogRG1zT2JqZWN0KTogRG1zT2JqZWN0IHtcbiAgICBjb25zdCBiYXNlID0ge1xuICAgICAgaWQ6IGRtc09iamVjdC5pZCxcbiAgICAgIHRpdGxlOiBkbXNPYmplY3QudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogZG1zT2JqZWN0LmRlc2NyaXB0aW9uLFxuICAgICAgdmVyc2lvbjogZG1zT2JqZWN0LnZlcnNpb24sXG4gICAgICB2ZXJzaW9uczogZG1zT2JqZWN0LnZlcnNpb25zLFxuICAgICAgZGF0YTogZG1zT2JqZWN0LmRhdGEsXG4gICAgICB0eXBlOiBkbXNPYmplY3QudHlwZU5hbWUsXG5cbiAgICAgIGFjdGl2ZXZlcnNpb246IGRtc09iamVjdC5pc0FjdGl2ZVZlcnNpb24sXG4gICAgICBmaW5hbGl6ZWQ6IGRtc09iamVjdC5pc0ZpbmFsaXplZCxcbiAgICAgIGZhdm9yaXRlOiBkbXNPYmplY3QuaXNGYXZvcml0ZSxcbiAgICAgIGZvbGRlcjogZG1zT2JqZWN0LmlzRm9sZGVyLFxuICAgICAgaXNjb250ZXh0Zm9sZGVyOiBkbXNPYmplY3QuaXNDb250ZXh0Rm9sZGVyLFxuXG4gICAgICBjb250ZXh0Zm9sZGVyOiBkbXNPYmplY3QuY29udGV4dEZvbGRlciA/IHtcbiAgICAgICAgaWQ6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLmlkLFxuICAgICAgICB0eXBlOiBkbXNPYmplY3QuY29udGV4dEZvbGRlci50eXBlTmFtZSxcbiAgICAgICAgdGl0bGU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIuZGVzY3JpcHRpb25cbiAgICAgIH0gOiBudWxsLFxuXG4gICAgICBjcmVhdGVkOiBkbXNPYmplY3QuY3JlYXRlZCxcbiAgICAgIG1vZGlmaWVkOiBkbXNPYmplY3QubW9kaWZpZWQsXG5cbiAgICAgIGxvY2s6ICFkbXNPYmplY3QubG9jayA/ICdOT1RfTE9DS0VEJyA6IGRtc09iamVjdC5sb2NrLmJ5Lm1lID8gJ0xPQ0tFRF9CWV9TRVNTSU9OX1VTRVInIDogJ0xPQ0tFRF9CWV9PVEhFUl9VU0VSJyxcbiAgICAgIGxvY2tpbmZvOiBkbXNPYmplY3QubG9jayA/IHt1c2VybmFtZTogZG1zT2JqZWN0LmxvY2suYnkubmFtZSwgdXNlcnRpdGxlOiBkbXNPYmplY3QubG9jay5ieS5sYWJlbCwgdGltZTogZG1zT2JqZWN0LmxvY2sub259IDogbnVsbCxcblxuICAgICAgcmlnaHRzOiBbe1xuICAgICAgICBwcml2aWxlZ2VzOiB7XG4gICAgICAgICAgc2VsZWN0OiBkbXNPYmplY3QucmlnaHRzLnNlbGVjdCxcbiAgICAgICAgICBlZGl0OiBkbXNPYmplY3QucmlnaHRzLmVkaXQsXG4gICAgICAgICAgZGVsZXRlOiBkbXNPYmplY3QucmlnaHRzLmRlbGV0ZSxcbiAgICAgICAgICBmaW5hbGl6ZTogZG1zT2JqZWN0LnJpZ2h0cy5maW5hbGl6ZSxcbiAgICAgICAgICByZWN5Y2xlOiBkbXNPYmplY3QucmlnaHRzLnJlY3ljbGVcbiAgICAgICAgfVxuICAgICAgfV0sXG4gICAgICBzaGFyZXM6IGRtc09iamVjdC5zaGFyZXMsXG4gICAgICBjb250ZW50aWQ6IGRtc09iamVjdC5jb250ZW50ID8gZG1zT2JqZWN0LmNvbnRlbnQuaWQgOiBudWxsLFxuICAgICAgY29udGVudHR5cGU6IGRtc09iamVjdC5jb250ZW50ID8gZG1zT2JqZWN0LmNvbnRlbnQudHlwZSA6IG51bGwsXG4gICAgICBjb250ZW50Y291bnQ6IGRtc09iamVjdC5jb250ZW50ID8gZG1zT2JqZWN0LmNvbnRlbnQuY291bnQgOiBudWxsLFxuICAgICAgY29udGVudHM6IGRtc09iamVjdC5jb250ZW50ID8gZG1zT2JqZWN0LmNvbnRlbnQuY29udGVudHMgOiBudWxsLFxuXG4gICAgICBzdWJzY3JpcHRpb25zOiBkbXNPYmplY3Quc3Vic2NyaXB0aW9ucyxcbiAgICAgIHJlc3VibWlzc2lvbnM6IGRtc09iamVjdC5yZXN1Ym1pc3Npb25zLFxuICAgICAgYWRkaXRpb25hbHZpc2liaWxpdHk6IGRtc09iamVjdC5hZGRpdGlvbmFsdmlzaWJpbGl0eVxuICAgIH07XG5cbiAgICBsZXQgY29waWVkRG1zT2JqZWN0ID0gbmV3IERtc09iamVjdChiYXNlKTtcbiAgICBjb3BpZWREbXNPYmplY3QudHlwZSA9IGRtc09iamVjdC50eXBlO1xuXG4gICAgcmV0dXJuIGNvcGllZERtc09iamVjdDtcbiAgfVxuXG59XG4iXX0=
@@ -132,6 +132,7 @@ export class SearchService {
132
132
  if (query instanceof SearchQuery) {
133
133
  query = query.getQueryJson();
134
134
  }
135
+ delete query.name;
135
136
  return this.executeQuery(query, true).pipe(map((res) => {
136
137
  const state = new SearchState();
137
138
  state.count = res.hits.total;
@@ -463,4 +464,4 @@ SearchService.ctorParameters = () => [
463
464
  { type: BackendService },
464
465
  { type: Config }
465
466
  ];
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQVU7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssWUFB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QzNCO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsMEJBQTBCLENBQUMsT0FBdUIsRUFBRSxhQUFhO1FBQy9ELElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMvRCxJQUFJLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7OztZQTlsQkYsVUFBVTs7O1lBZEgsYUFBYTtZQUZiLGNBQWM7WUFDZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYmplY3RUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9vYmplY3QtdHlwZS5tb2RlbCc7XG5pbXBvcnQge1JhbmdlVmFsdWV9IGZyb20gJy4uLy4uL21vZGVsL3JhbmdlLXZhbHVlLm1vZGVsJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQge1NlYXJjaEZpbHRlclR5cGV9IGZyb20gJy4vc2VhcmNoLWZpbHRlci10eXBlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBGaWVsZERlZmluaXRpb24sXG4gIFNlYXJjaEZpbHRlcixcbiAgU2VhcmNoUXVlcnksXG4gIFNlYXJjaFJlc3VsdCxcbiAgU2VhcmNoU3RhdGVcbn0gZnJvbSAnLi9zZWFyY2gtcXVlcnkubW9kZWwnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgU2VhcmNoIFNlcnZpY2VzXG4gKiBTZWUge0BsaW5rIFNlYXJjaFF1ZXJ5fSBmb3IgUXVlcnkgRGVmaW5pdGlvblxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1xuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYW5nZVZhbHVlIGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIHZhbHVlIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gYmVcbiAgICogQHJldHVybnMgUmFuZ2VWYWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b1JhbmdlVmFsdWUodmFsdWU6IGFueSk6IFJhbmdlVmFsdWUge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmFuZ2VWYWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB2YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnb3BlcmF0b3InKSAmJlxuICAgICAgICB2YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnZmlyc3RWYWx1ZScpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSYW5nZVZhbHVlKFxuICAgICAgICAgIHZhbHVlLm9wZXJhdG9yLFxuICAgICAgICAgIHZhbHVlLmZpcnN0VmFsdWUsXG4gICAgICAgICAgdmFsdWUuc2Vjb25kVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmcm9tYXRlZCBzZWFyY2ggUXVlcnlcbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5XG4gICAqIEByZXR1cm5zIFNlYXJjaFF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgYnVpbGRRdWVyeShxdWVyeTogYW55KTogU2VhcmNoUXVlcnkge1xuICAgIGxldCBxOiBTZWFyY2hRdWVyeTtcbiAgICBpZiAocXVlcnkgaW5zdGFuY2VvZiBTZWFyY2hRdWVyeSkge1xuICAgICAgcSA9IHF1ZXJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcU9iajtcbiAgICAgIC8qKlxuICAgICAgICogaWYgd2UgZ290IGEgc3RyaW5nLCB3ZSdsbCBhc3N1bWUgdGhhdCBpdCdzIGEgSlNPTlxuICAgICAgICovXG4gICAgICBpZiAodHlwZW9mIHF1ZXJ5ID09PSAnc3RyaW5nJykge1xuICAgICAgICBxT2JqID0gSlNPTi5wYXJzZShxdWVyeSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxT2JqID0gcXVlcnk7XG4gICAgICB9XG5cbiAgICAgIHEgPSBuZXcgU2VhcmNoUXVlcnkoKTtcbiAgICAgIHEudGVybSA9IHFPYmoudGVybTtcbiAgICAgIGlmIChxT2JqLmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocU9iai5maWx0ZXJzKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgICAgIHEuZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcbiAgICAgICAgICAgICAgayxcbiAgICAgICAgICAgICAgcU9iai5maWx0ZXJzW2tdLm8sXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS52MSxcbiAgICAgICAgICAgICAgcU9iai5maWx0ZXJzW2tdLnYyXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAocU9iai50eXBlcykge1xuICAgICAgICBxT2JqLnR5cGVzLmZvckVhY2godCA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUodCkpIHtcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcS50eXBlcy5wdXNoKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAocU9iai5jb250ZXh0Zm9sZGVydHlwZXMpIHtcbiAgICAgICAgcU9iai5jb250ZXh0Zm9sZGVydHlwZXMuZm9yRWFjaCh0ID0+IHtcbiAgICAgICAgICBpZiAodCA9PT0gJ3N5c3Jvb3QnKSB7XG4gICAgICAgICAgICAvLyAnc3lzcm9vdCcgaXMgbm90IGEgcmVhbCBvYmplY3QgdHlwZSwgc28gd2UgaGF2ZSB0byBjcmVhdGUgYSBmYWtlIHR5cGUuXG4gICAgICAgICAgICBjb25zdCBzeXNyb290RmFrZU9iamVjdFR5cGUgPSBuZXcgT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICAgIGlkOiAnYScsXG4gICAgICAgICAgICAgIGZvbGRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgbmFtZTogJ3N5c3Jvb3QnLFxuICAgICAgICAgICAgICBxbmFtZTogJ3N5c3Jvb3QnLFxuICAgICAgICAgICAgICBsYWJlbDogJ3N5c3Jvb3QnLFxuICAgICAgICAgICAgICBpc2NvbnRleHRmb2xkZXI6IHRydWUsXG4gICAgICAgICAgICAgIGFic3RyYWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgZWxlbWVudHM6IFtdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgICAgIHNoYXJlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmZpbGVzOiAwLFxuICAgICAgICAgICAgICBtYXhmaWxlczogMVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHN5c3Jvb3RGYWtlT2JqZWN0VHlwZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHEuY29udGV4dEZvbGRlclR5cGVzLnB1c2godGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZSh0KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHEuZmllbGRzID0gcU9iai5maWVsZHM7XG4gICAgICBpZiAocU9iai5vcHRpb25zKSB7XG4gICAgICAgIHEuc3VnZ2VzdCA9IHFPYmoub3B0aW9ucy5zdWdnZXN0IHx8IGZhbHNlO1xuICAgICAgICBxLmV4cGVydE1vZGUgPSBxT2JqLm9wdGlvbnMuZXhwZXJ0bW9kZSB8fCBmYWxzZTtcbiAgICAgICAgcS5zY29wZSA9IHFPYmoub3B0aW9ucy5zY29wZTtcbiAgICAgICAgLy8gXCJ8fFwiIGRvZXMgbm90IHdvcmsgZm9yIHJlY29nbml6aW5nIFwiZmFsc2VcIiB3aXRoIHByaW9yaXR5IG92ZXIgXCJkZWZhdWx0IHRydWVcIlxuICAgICAgICBxLnJlc29sdmVSZWZlcmVuY2UgPSAocU9iai5vcHRpb25zLnJlc29sdmVyZWZlcmVuY2UgIT09IG51bGwpID8gcU9iai5vcHRpb25zLnJlc29sdmVyZWZlcmVuY2UgOlxuICAgICAgICAgICggcU9iai5vcHRpb25zLnJlc29sdmVSZWZlcmVuY2UgIT09IG51bGwgPyBxT2JqLm9wdGlvbnMucmVzb2x2ZVJlZmVyZW5jZSA6IHRydWUpO1xuICAgICAgICAvLyB3aXRoQ29udGV4dCB3YXMgb2xkIGFuZCBcIndyb25nXCIgbmFtZSBvZiBwYXJhbWV0ZXJcbiAgICAgICAgcS53aXRoQ29udGV4dCA9IHFPYmoub3B0aW9ucy53aXRoY29udGV4dCB8fCBxT2JqLm9wdGlvbnMud2l0aENvbnRleHQgfHwgZmFsc2U7XG4gICAgICAgIHEuc2VhcmNoTW9kZSA9XG4gICAgICAgICAgcU9iai5vcHRpb25zLnNlYXJjaG1vZGUgfHwgU2VhcmNoUXVlcnkuREVGQVVMVF9TRUFSQ0hfTU9ERTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHF1ZXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PlxuICAgKi9cbiAgcHVibGljIHNlYXJjaChxdWVyeTogU2VhcmNoUXVlcnkpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVRdWVyeShxdWVyeS5nZXRRdWVyeUpzb24oKSkucGlwZShcbiAgICAgIG1hcChyZXMgPT4gdGhpcy5jcmVhdGVSZXN1bHRGcm9tUmVzcG9uc2UocmVzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIFNlYXJjaCByZXN1bHRzXG4gICAqL1xuICBwdWJsaWMgZ2V0U2VhcmNoU3RhdGUocXVlcnk6IGFueSk6IE9ic2VydmFibGU8U2VhcmNoU3RhdGU+IHtcblxuICAgIGlmKHF1ZXJ5IGluc3RhbmNlb2YgU2VhcmNoUXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcXVlcnkuZ2V0UXVlcnlKc29uKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVRdWVyeShxdWVyeSwgdHJ1ZSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcbiAgICAgICAgc3RhdGUuY291bnQgPSByZXMuaGl0cy50b3RhbDtcbiAgICAgICAgT2JqZWN0LmtleXMoU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMpLmZvckVhY2goayA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZVBhcmFtID0gU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVNba107XG4gICAgICAgICAgY29uc3QgYWdncmVnYXRpb25zID0gcmVzLmFnZ3JlZ2F0aW9uc1tiYXNlUGFyYW1dXG4gICAgICAgICAgICA/IHJlcy5hZ2dyZWdhdGlvbnNbYmFzZVBhcmFtXS5idWNrZXRzXG4gICAgICAgICAgICA6IFtdO1xuICAgICAgICAgIGFnZ3JlZ2F0aW9ucy5mb3JFYWNoKGFnZ3JlZ2F0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtrZXksIGRvY19jb3VudCwgY29udGV4dGZvbGRlcnR5cGV9ID0gYWdncmVnYXRpb247XG4gICAgICAgICAgICBzdGF0ZS5hZGRBZ2dyZWdhdGlvbnMoYmFzZVBhcmFtLCBrZXksIGRvY19jb3VudCwgYWdncmVnYXRpb24pO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiB0eXBlIGFnZ3JlZ2F0aW9ucyBtYXkgYWxzbyBjb250YWluIGJ1Y2tldHMgZm9yIHRoZWlyIGNvbnRleHQgdHlwZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBiYXNlUGFyYW0gPT09IFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLlRZUEUgJiZcbiAgICAgICAgICAgICAgY29udGV4dGZvbGRlcnR5cGVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250ZXh0Zm9sZGVydHlwZS5idWNrZXRzLmZvckVhY2goY3R4QWdnID0+IHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hZGRBZ2dyZWdhdGlvbnMoXG4gICAgICAgICAgICAgICAgICAnY29udGV4dHR5cGUnLFxuICAgICAgICAgICAgICAgICAgY3R4QWdnLmtleSxcbiAgICAgICAgICAgICAgICAgIGN0eEFnZy5kb2NfY291bnQsXG4gICAgICAgICAgICAgICAgICBjdHhBZ2dcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBwYXJ0IG9mIGEgcXVlcmllcyByZXN1bHQuIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHBhZ2luZyBvZiByZXN1bHRzXG4gICAqIG9yIGxhenkgbG9hZGluZyBsYXJnZSByZXN1bHRzLlxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGluZGV4IGZyb20gd2hlcmUgdG8gZmV0Y2ggcmVzdWx0c1xuICAgKiBAcGFyYW0gY2h1bmtTaXplIFNpemUgb2YgdGhlIGNodW5rIHRvIGJlIGZldGNoZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+XG4gICAqL1xuICBwdWJsaWMgZ2V0Q2h1bmtlZFJlc3VsdChcbiAgICBxdWVyeTogU2VhcmNoUXVlcnksXG4gICAgZnJvbUluZGV4OiBudW1iZXIsXG4gICAgY2h1bmtTaXplOiBudW1iZXJcbiAgKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICBjb25zdCBxID0gcXVlcnkuZ2V0UXVlcnlKc29uKCk7XG5cbiAgICBxLmZyb20gPSBmcm9tSW5kZXg7XG4gICAgY29uc3QgcXVlcnlVcmkgPSBgc2VhcmNoIWNodW5rOiR7Y2h1bmtTaXplfSEke0pTT04uc3RyaW5naWZ5KHEpfWA7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRWaWFUZW1wQ2FjaGUocXVlcnlVcmksICgpID0+XG4gICAgICB0aGlzLmV4ZWN1dGVRdWVyeShxLCBmYWxzZSwgY2h1bmtTaXplKS5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHRoaXMuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKHJlcykpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeUpzb24gVGhlIHF1ZXJ5IEpTT04gdG8gYmUgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGFnZ3JlZ2F0ZVNlYXJjaCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gZXhlY3V0ZSBhbiBhZ2dyZWdhdGlvbiBzZWFyY2ggKG5vIGFjdHVhbCByZXN1bHRzKVxuICAgKiBAcGFyYW0gY3VzdG9tU2l6ZSBDdXN0b20gbnVtYmVyIG9mIHJlc3VsdHMgdG8gYmUgZmV0Y2hlZCwgaWYgbm90IHNldCB0aGUgZGVmYXVsdCBzaXplIHdpbGwgYmUgYXBwbGllZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBleGVjdXRlUXVlcnkoXG4gICAgcXVlcnlKc29uOiBhbnksXG4gICAgYWdncmVnYXRlU2VhcmNoPzogYm9vbGVhbixcbiAgICBjdXN0b21TaXplPzogbnVtYmVyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHVyaTogc3RyaW5nO1xuICAgIGxldCBxdWVyeSA9IHF1ZXJ5SnNvbjtcbiAgICBpZiAoYWdncmVnYXRlU2VhcmNoKSB7XG4gICAgICB1cmkgPSBgL2FnZ3JlZ2F0ZWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNpemUgPSBjdXN0b21TaXplIHx8IHRoaXMuY29uZmlnLmdldFJhdygnc2VhcmNoLmxpbWl0Jyk7XG4gICAgICB1cmkgPSBgLz9zaXplPSR7c2l6ZX1gO1xuICAgIH1cbiAgICBxdWVyeS5vcHRpb25zID0gey4uLnF1ZXJ5Lm9wdGlvbnMsIHRyYWNrdG90YWxoaXRzOiB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC50cmFja1RvdGFsSGl0cycpIHx8IGZhbHNlLCB0aW1lem9uZTogVXRpbHMuZ2V0VGltZXpvbmVPZmZzZXQoKX07XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmkgKyBKU09OLnN0cmluZ2lmeShxdWVyeSksICgpID0+IHRoaXMuYmFja2VuZC5wb3N0KHVyaSwgcXVlcnksIHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZHMgYSBjc3YtZmlsZSBvZiB0aGUgcmVzdWx0cyBvZiBhIGdpdmVuIHNlYXJjaC1xdWVyeVxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnlKc29uIFRoZSBxdWVyeSBKU09OIHRvIGJlIGV4ZWN1dGVkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIGRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHF1ZXJ5SnNvbjogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucG9zdCgnL2V4cG9ydCcsIHF1ZXJ5SnNvbiwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSwge1xuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlcy5ib2R5XSwge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCB0aGlzLmdldEZpbGVOYW1lRnJvbUh0dHBSZXNwb25zZShyZXMpLCB7YXV0b0JvbTogdHJ1ZX0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlczogSHR0cFJlc3BvbnNlPGFueT4pIHtcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPVxuICAgICAgcmVzLmhlYWRlcnMuZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJykgfHwgJyc7XG4gICAgcmV0dXJuIGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5zcGxpdCgnZmlsZW5hbWU9JylbMV07XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBzZWFyY2ggZm9yIGZldGNoaW5nIHN1Z2dlc3Rpb25zIG9uIGEgZ2l2ZW4gc2VhcmNoIHRlcm0uXG4gICAqXG4gICAqIEBwYXJhbSB0ZXJtIFRoZSBzZWFyY2ggdGVybVxuICAgKiBAcmV0dXJuXG4gICAqL1xuICBwdWJsaWMgYXV0b2NvbXBsZXRlKHRlcm06IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihcbiAgICAgIGAvYXV0b2NvbXBsZXRlP3ByZWZpeD0ke2VuY29kZVVSSUNvbXBvbmVudCh0ZXJtKX1gLFxuICAgICAgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgbWV0aG9kIHRvIGNyZWF0ZSBhIFNlYXJjaEZpbHRlciBmb3IgYSBmb3JtIGVsZW1lbnQuIEJhc2VkIG9uIHRoZSB0YXJnZXQgdHlwZXNcbiAgICogaXQnbGwgY3JlYXRlIHRoZSByaWdodCBraW5kIG9mIGZpbHRlciB0aGF0IHlvdSB0aGVuIGNhbiBhZGQgdG8gYSBTZWFyY2hRdWVyeVxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0VHlwZXNcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50TmFtZVxuICAgKiBAcGFyYW0gZWxlbWVudFZhbHVlXG4gICAqIEByZXR1cm5zIFNlYXJjaEZpbHRlcltdIEFuIGFycmF5IG9mIHNlYXJjaCBmaWx0ZXJzIG1vc3Qgb2YgdGhlIHRpbWUgY29udGFpbmluZyBvbmx5IG9uZSBlbnRyeSwgYnV0XG4gICAqIGZvciB0YWJsZSBlbGVtZW50cyB0aGlzIGNvdWxkIGJlIG1vcmVcbiAgICovXG4gIHB1YmxpYyBnZXRTZWFyY2hGaWx0ZXIoXG4gICAgdGFyZ2V0VHlwZXM6IE9iamVjdFR5cGVbXSxcbiAgICBmb3JtRWxlbWVudE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50VmFsdWU6IGFueVxuICApOiBTZWFyY2hGaWx0ZXJbXSB7XG4gICAgY29uc3QgZmlsdGVyOiBTZWFyY2hGaWx0ZXJbXSA9IFtdO1xuICAgIGNvbnN0IGZpbHRlclR5cGU6IFNlYXJjaEZpbHRlclR5cGUgPSB0aGlzLmlkZW50aWZ5U2VhcmNoRmlsdGVyKFxuICAgICAgdGFyZ2V0VHlwZXMsXG4gICAgICBmb3JtRWxlbWVudE5hbWVcbiAgICApO1xuICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gdGFyZ2V0VHlwZXNbMF0uZWxlbWVudHMuZmluZChlbCA9PiBlbC5xbmFtZSA9PT0gZm9ybUVsZW1lbnROYW1lKTtcblxuICAgIGlmIChlbGVtZW50VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKGZvcm1FbGVtZW50TmFtZSwgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMLCBudWxsKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1FbGVtZW50ICYmIGZvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uID09PSAncGF0aCcpIHtcbiAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxuICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcbiAgICAgICAgICBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTUFUQ0gsXG4gICAgICAgICAgZWxlbWVudFZhbHVlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChlbGVtZW50VmFsdWUgaW5zdGFuY2VvZiBSYW5nZVZhbHVlKSB7XG4gICAgICAvKipcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIgZm9yIGVsZW1lbnRzIHRoYXQgc3VwcG9ydCByYW5nZXMgbGlrZSBEQVRFVElNRSBhbmQgTlVNQkVSXG4gICAgICAgKi9cbiAgICAgIGlmIChcbiAgICAgICAgZWxlbWVudFZhbHVlLmZpcnN0VmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgZWxlbWVudFZhbHVlLmZpcnN0VmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXG4gICAgICAgICAgICBmb3JtRWxlbWVudE5hbWUsXG4gICAgICAgICAgICBlbGVtZW50VmFsdWUub3BlcmF0b3IsXG4gICAgICAgICAgICBlbGVtZW50VmFsdWUuZmlyc3RWYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5zZWNvbmRWYWx1ZSxcbiAgICAgICAgICAgIGZpbHRlclR5cGUuZGF0ZXRpbWUgPyB7dGltZTogZmlsdGVyVHlwZS53aXRodGltZX0gOiB1bmRlZmluZWRcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICgoZmlsdGVyVHlwZS5tdWx0aXNlbGVjdCB8fCBBcnJheS5pc0FycmF5KGVsZW1lbnRWYWx1ZSkpICYmICFmaWx0ZXJUeXBlLnRhYmxlKSB7XG4gICAgICAvKipcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIgZm9yIG11bHRpc2VsZWN0IGVsZW1lbnRzIGxpa2UgQ09ERVNZU1RFTSBhbmQgT1JHQU5JWkFUSU9OXG4gICAgICAgKi9cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnRWYWx1ZSkgJiYgZWxlbWVudFZhbHVlLmxlbmd0aCkge1xuICAgICAgICBmaWx0ZXIucHVzaChcbiAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxuICAgICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxuICAgICAgICAgICAgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOLFxuICAgICAgICAgICAgZWxlbWVudFZhbHVlXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmlsdGVyVHlwZS50YWJsZSkge1xuICAgICAgLyoqXG4gICAgICAgKiBjcmVhdGUgZmlsdGVyKHMpIGZvciB0YWJsZSBlbGVtZW50c1xuICAgICAgICovXG4gICAgICBjb25zdCBxdWVyeVJvdyA9IGVsZW1lbnRWYWx1ZVswXTtcbiAgICAgIE9iamVjdC5rZXlzKHF1ZXJ5Um93KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYocXVlcnlSb3dba2V5XSAhPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBgJHtmb3JtRWxlbWVudE5hbWV9LiR7a2V5fWA7XG4gICAgICAgICAgaWYgKHF1ZXJ5Um93W2tleV0gaW5zdGFuY2VvZiBSYW5nZVZhbHVlKSB7XG4gICAgICAgICAgICBmaWx0ZXIucHVzaChcbiAgICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgcXVlcnlSb3dba2V5XS5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldLmZpcnN0VmFsdWUsXG4gICAgICAgICAgICAgICAgcXVlcnlSb3dba2V5XS5zZWNvbmRWYWx1ZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIucHVzaChcbiAgICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShxdWVyeVJvd1trZXldKSA/IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTiA6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCxcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBkZWZhdWx0IHdpbGwgdXNlIGVxdWFsaXR5IG9wZXJhdG9yXG4gICAgICAgKi9cbiAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxuICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcbiAgICAgICAgICBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwsXG4gICAgICAgICAgZWxlbWVudFZhbHVlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICAvKipcbiAgICogaWRlbnRpZmllcyBmb3JtIGVsZW1lbnRzIHRoYXQgYXJlIGVuYWJsZWQgdG8gY29udGFpbiBtdWx0aXBsZSB2YWx1ZXNcbiAgICogdHJ5IHRvIGZpbmQgdGhlIGZvcm0gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdCB0eXBlcyB0byBnZXQgaXRzIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIE9iamVjdFR5cGVbXSB0YXJnZXRUeXBlc1xuICAgKiBAcGFyYW0gc3RyaW5nIGZvcm1FbGVtZW50TmFtZVxuICAgKiBAcmV0dXJuIFNlYXJjaEZpbHRlclR5cGVcbiAgICovXG4gIHByaXZhdGUgaWRlbnRpZnlTZWFyY2hGaWx0ZXIoXG4gICAgdGFyZ2V0VHlwZXM6IE9iamVjdFR5cGVbXSxcbiAgICBmb3JtRWxlbWVudE5hbWU6IHN0cmluZ1xuICApOiBTZWFyY2hGaWx0ZXJUeXBlIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IG1hdGNoO1xuICAgIHdoaWxlICghbWF0Y2ggJiYgaSA8IHRhcmdldFR5cGVzLmxlbmd0aCkge1xuICAgICAgbWF0Y2ggPSB0YXJnZXRUeXBlc1tpXS5lbGVtZW50cy5maW5kKFxuICAgICAgICBlbGVtZW50ID0+IGVsZW1lbnQucW5hbWUgPT09IGZvcm1FbGVtZW50TmFtZVxuICAgICAgKTtcbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbXVsdGlzZWxlY3Q6IHRoaXMuaXNNdWx0aXNlbGVjdFNlYXJjaEZpbHRlcihtYXRjaCksXG4gICAgICB0YWJsZTogbWF0Y2ggJiYgbWF0Y2gudHlwZSA9PT0gJ1RBQkxFJyxcbiAgICAgIGRhdGV0aW1lOiBtYXRjaCAmJiBtYXRjaC50eXBlID09PSAnREFURVRJTUUnLFxuICAgICAgd2l0aHRpbWU6IG1hdGNoICYmIG1hdGNoLndpdGh0aW1lXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZGVudGlmaWVzIGZvcm0gZWxlbWVudHMgdGhhdCBhcmUgZW5hYmxlZCB0byBjb250YWluIG11bHRpcGxlIHZhbHVlc1xuICAgKlxuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnRcbiAgICogQHJldHVybiBib29sZWFuXG4gICAqL1xuICBwcml2YXRlIGlzTXVsdGlzZWxlY3RTZWFyY2hGaWx0ZXIoZm9ybUVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtRWxlbWVudCAmJlxuICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdPUkdBTklaQVRJT04nIHx8XG4gICAgICAgIGZvcm1FbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyB8fFxuICAgICAgICAvLyAuLi5cbiAgICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmXG4gICAgICAgICAgZm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gPT09ICdzZWxlY3RvcicpIHx8XG4gICAgICAgIC8vIG11bHRpc2VsZWN0IHJlZmVyZW5jZSBmaWVsZHNcbiAgICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmIGZvcm1FbGVtZW50Lm11bHRpc2VsZWN0KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTZWFyY2hSZXN1bHQgZnJvbSB0aGUgcmVzcG9uc2Ugc2VudCBieSB0aGUgc2VydmVyXG4gICAqXG4gICAqIEBwYXJhbSBiYWNrZW5kUmVzcG9uc2UgU2VydmVyIHJlc3BvbnNlXG4gICAqIEByZXR1cm5UaGUgU2VhcmNoUmVzdWx0IFNlYXJjaFJlc3VsdCBvYmplY3QgY3JlYXRlZCBmcm9tIHRoZSBzZXJ2ZXIgcmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVSZXN1bHRGcm9tUmVzcG9uc2UoYmFja2VuZFJlc3BvbnNlKTogU2VhcmNoUmVzdWx0IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgU2VhcmNoUmVzdWx0KCk7XG4gICAgcmVzdWx0LnN1Z2dlc3RzID0gYmFja2VuZFJlc3BvbnNlLnN1Z2dlc3Q7XG4gICAgcmVzdWx0LmZpZWxkcyA9IGJhY2tlbmRSZXNwb25zZS5jb25maWc7XG5cbiAgICAvKipcbiAgICAgKiB1c2UgaGl0cyBfaWQgZmllbGQgYXMgaWQgcHJvcGVydHksIGJlY2F1c2Ugb3RoZXJ3aXNlIGVtcHR5IHJlc3VsdCBoaXRzIHdvdWxkIG5vdCBjb250YWluIGFuIGlkXG4gICAgICovXG4gICAgY29uc3QgaGl0cyA9IGJhY2tlbmRSZXNwb25zZS5oaXRzLmhpdHMubWFwKGggPT4gKHtcbiAgICAgIC4uLmguX3NvdXJjZSxcbiAgICAgIGlkOiBoLl9pZCxcbiAgICAgIC4uLihoLnNuaXBwZXRzICYmIHtzbmlwcGV0czogaC5zbmlwcGV0c30pLFxuICAgICAgLy8gaGF2aW5nIHJlcXVlc3RlZCBhIHJlc29sdmVkIHJlZmVyZW5jZSAob3B0aW9ucykgd2UgYWxzbyBwYXNzIGBfcmVmZXJlbmNlYCBpbiB0aGUgcmVzdWx0IGl0ZW1cbiAgICAgIC4uLihoLnJlZmVyZW5jZXMgJiYge19yZWZlcmVuY2VzOiBoLnJlZmVyZW5jZXN9KSxcbiAgICAgIC4uLihoLmNvbnRleHQgJiYge2NvbnRleHQ6IGguY29udGV4dH0pXG4gICAgfSkpO1xuXG4gICAgcmVzdWx0LmNvdW50ID0gYmFja2VuZFJlc3BvbnNlLmhpdHMudG90YWw7XG4gICAgcmVzdWx0LmhpdHMgPSBoaXRzIHx8IFtdO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIFJlc3VsIHRGaWVsZCBEZWZpbml0aW9uIENvbmZpZ1xuICAgKlxuICAgKiBAcGFyYW0gU2VhcmNoUXVlcnkgcXVlcnlcbiAgICogQHJldHVybiAoe3R5cGU6IE9iamVjdFR5cGU7IGNvbnRleHRUeXBlOiBPYmplY3RUeXBlfSlcbiAgICovXG4gIGdldFJlc3VsdEZpZWxkRGVmaW5pdGlvbkNvbmZpZyhxdWVyeTogU2VhcmNoUXVlcnkpIHtcbiAgICBjb25zdCB0eXBlID0gKHF1ZXJ5LnR5cGVzIHx8IFtdKS5sZW5ndGggPT09IDEgPyBxdWVyeS50eXBlc1swXSA6IG51bGw7XG4gICAgY29uc3QgY29udGV4dFR5cGUgPVxuICAgICAgKHF1ZXJ5LmNvbnRleHRGb2xkZXJUeXBlcyB8fCBbXSkubGVuZ3RoID09PSAxXG4gICAgICAgID8gcXVlcnkuY29udGV4dEZvbGRlclR5cGVzWzBdXG4gICAgICAgIDogbnVsbDtcbiAgICByZXR1cm4ge3R5cGUsIGNvbnRleHRUeXBlfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUNvbmZpZ1R5cGVOYW1lcyhcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGxcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGVOYW1lOiB0eXBlID8gdHlwZS5xbmFtZSA6ICdzeXNvYmplY3QnLFxuICAgICAgY29udGV4dFR5cGVOYW1lOiB0eXBlICYmIGNvbnRleHRUeXBlID8gY29udGV4dFR5cGUucW5hbWUgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHJlc3VsdCBmaWVsZCBkZWZpbml0aW9uIGZvciBhIGdpdmVuIG9iamVjdCB0eXBlXG4gICAqIFVTRVI6IChkZWZhdWx0KSB0aGUgcmVzdWx0IGxpc3QgY29uZmlndXJhdGlvbiBzYXZlZCBieSB0aGUgY3VycmVudCB1c2VyXG4gICAqIERFRkFVTFQ6IHRoZSBkZWZhdWx0IHJlc3VsdCBsaXN0IGNvbmZpZ3VyYXRpb24gKGFsc28gcmV0dXJuZWQgd2hlbiB0aGVyZSBpcyBubyB1c2VyIGNvbmZpZ3VyYXRpb24pXG4gICAqIEFMTDogYWxsIGF2YWlsYWJsZSByZXN1bHQgZmllbGRzIGZvciB0aGUgZ2l2ZW4gdHlwZSAoYW5kIGNvbnRleHQpXG4gICAqXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCB0eXBlIFRoZSBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgY29udGV4dFR5cGUgT2JqZWN0IHR5cGUgdGFyZ2V0IHR5cGVzIGFsbG93ZWQgY29udGV4dCB0eXBlXG4gICAqIEBwYXJhbSBtb2RlIFRoZSByZXN1bHQgbGlzdHMgY29uZmlndXJhdGlvbiBtb2RlOlxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8RmllbGREZWZpbml0aW9uPlxuICAgKi9cbiAgZmV0Y2hSZXN1bHRGaWVsZERlZmluaXRpb24oXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXG4gICAgY29udGV4dFR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxuICAgIG1vZGVcbiAgKSB7XG4gICAgY29uc3Qge3R5cGVOYW1lLCBjb250ZXh0VHlwZU5hbWV9ID0gdGhpcy5yZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxuICAgICAgdHlwZSxcbiAgICAgIGNvbnRleHRUeXBlXG4gICAgKTtcbiAgICBjb25zdCB1cmwgPSBVdGlscy5idWlsZFVyaShgL3VzZXIvY29uZmlnL3Jlc3VsdC8ke3R5cGVOYW1lfWAsIHtcbiAgICAgIGNvbnRleHR0eXBlOiBjb250ZXh0VHlwZU5hbWUsXG4gICAgICBtb2RlXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAocmVzOiBhbnkpID0+XG4gICAgICAgICAgICBuZXcgRmllbGREZWZpbml0aW9uKFxuICAgICAgICAgICAgICByZXMuZWxlbWVudHMsXG4gICAgICAgICAgICAgIHJlcy5zb3J0b3JkZXIsXG4gICAgICAgICAgICAgIHJlcy5ncm91cG9yZGVyLFxuICAgICAgICAgICAgICByZXMucGlubmVkLFxuICAgICAgICAgICAgICByZXMuYWxpZ25tZW50eCxcbiAgICAgICAgICAgICAgcmVzLm1vZGVcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNvbHVtbiBkZWZpbml0aW9uIGFzIHJlc3VsdCBvciBjb21tb24gcmVzdWx0LlxuICAgKlxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIGNvbnRleHRUeXBlIE9iamVjdCB0eXBlIHRhcmdldCB0eXBlcyBhbGxvd2VkIGNvbnRleHQgdHlwZVxuICAgKiBAcGFyYW0gRmllbGREZWZpbml0aW9uIGRhdGEgVGhlIHJlc3VsdCBsaXN0IGNvbmZpZ3VyYXRpb24gdG8gYmUgcGVyc2lzdGVkXG4gICAqIEBwYXJhbSBib29sZWFuIGNvbW1vbiBGbGFnIGVuYWJsZXMgdG8gc2V0IGNvbmZpZyBhcyBkZWZhdWx0IC8gY29tbW9uIHJlc3VsdFxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgc2F2ZVJlc3VsdEZpZWxkRGVmaW5pdGlvbihcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXG4gICAgZGF0YTogRmllbGREZWZpbml0aW9uLFxuICAgIGNvbW1vbiA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IGJhc2VVcmkgPSBjb21tb25cbiAgICAgID8gJy91c2VyL2NvbmZpZy9jb21tb25yZXN1bHQvJ1xuICAgICAgOiAnL3VzZXIvY29uZmlnL3Jlc3VsdC8nO1xuICAgIGNvbnN0IHt0eXBlTmFtZSwgY29udGV4dFR5cGVOYW1lfSA9IHRoaXMucmVzb2x2ZUNvbmZpZ1R5cGVOYW1lcyhcbiAgICAgIHR5cGUsXG4gICAgICBjb250ZXh0VHlwZVxuICAgICk7XG4gICAgY29uc3QgdXJsID0gVXRpbHMuYnVpbGRVcmkoYmFzZVVyaSArIHR5cGVOYW1lLCB7XG4gICAgICBjb250ZXh0dHlwZTogY29udGV4dFR5cGVOYW1lXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVybCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIGNvbnRleHRUeXBlIE9iamVjdCB0eXBlIHRhcmdldCB0eXBlcyBhbGxvd2VkIGNvbnRleHQgdHlwZVxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcmVtb3ZlUmVzdWx0RmllbGREZWZpbml0aW9uKFxuICAgIHR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbFxuICApIHtcbiAgICBjb25zdCB7dHlwZU5hbWUsIGNvbnRleHRUeXBlTmFtZX0gPSB0aGlzLnJlc29sdmVDb25maWdUeXBlTmFtZXMoXG4gICAgICB0eXBlLFxuICAgICAgY29udGV4dFR5cGVcbiAgICApO1xuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvdXNlci9jb25maWcvcmVzdWx0LyR7dHlwZU5hbWV9YCwge1xuICAgICAgY29udGV4dHR5cGU6IGNvbnRleHRUeXBlTmFtZVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKHVybCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgdG8gYmUgYWRkZWQgdG8gYSBmb3JtIGVsZW1lbnQgYnkgZXh0cmFjdGluZyBpdCBmcm9tIGFcbiAgICogc2VhcmNoIGZpbHRlci4gVGhlIGtpbmQgb2YgdmFsdWUgZGlmZmVycyBiYXNlZCBvbiB0aGUgZm9ybSBlbGVtZW50cyB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudFR5cGUgRm9ybSBlbGVtZW50cyB0eXBlICgnU1RSSU5HJywgJ0RBVEUnLCAnQ09ERVNZU1RFTScsIC4uLilcbiAgICogQHJldHVybnMgdGhlIGV4dHJhY3RlZCB2YWx1ZVxuICAgKi9cbiAgZmlsdGVyVG9FbGVtZW50VmFsdWUoZmlsdGVyOiBTZWFyY2hGaWx0ZXIsIGZvcm1FbGVtZW50VHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlID0gdW5kZWZpbmVkO1xuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIC8vIHR5cGVzIHRoYXQgc3VwcG9ydCByYW5nZXNcbiAgICAgIGlmICgoZm9ybUVsZW1lbnRUeXBlID09PSAnTlVNQkVSJyB8fCBmb3JtRWxlbWVudFR5cGUgPT09ICdEQVRFVElNRScpICYmIGZpbHRlci5maXJzdFZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IFJhbmdlVmFsdWUoXG4gICAgICAgICAgZmlsdGVyLm9wZXJhdG9yLFxuICAgICAgICAgIGZpbHRlci5maXJzdFZhbHVlLFxuICAgICAgICAgIGZpbHRlci5zZWNvbmRWYWx1ZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBmaWx0ZXIuZmlyc3RWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0YWJsZSB2YWx1ZSBieSBleHRyYWN0aW5nIHRoZSBkYXRhIGZyb20gdGhlIGNvcnJlc3BvbmRpbmdcbiAgICogc2VhcmNoIGZpbHRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBmaWx0ZXJzIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuICAgKiBAcGFyYW0gdGFibGVFbGVtZW50cyB0aGUgZm9ybSBlbGVtZW50cyBvZiB0aGUgdGFibGVcbiAgICogQHJldHVybnMgdGhlIHRhYmxlIHZhbHVlIGV4dHJhY3RlZCBmcm9tIGFsbCBmaWx0ZXJzXG4gICAqL1xuICB0YWJsZUZpbHRlcnNUb0VsZW1lbnRWYWx1ZShmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSwgdGFibGVFbGVtZW50cyl7XG4gICAgbGV0IHZhbHVlID0ge307XG4gICAgZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgbGV0IGtleSA9IHRhYmxlRWxlbWVudHMuZmluZChlID0+IGUucW5hbWUgPT09IGYucHJvcGVydHkpLm5hbWU7XG4gICAgICBsZXQgdHlwZSA9IHRhYmxlRWxlbWVudHMuZmluZChlID0+IGUucW5hbWUgPT09IGYucHJvcGVydHkpLnR5cGU7XG4gICAgICB2YWx1ZVtrZXldID0gdGhpcy5maWx0ZXJUb0VsZW1lbnRWYWx1ZShmLCB0eXBlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW3ZhbHVlXTtcbiAgfVxufVxuIl19
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQVU7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssWUFB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QUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQzthQUMzQjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILDBCQUEwQixDQUFDLE9BQXVCLEVBQUUsYUFBYTtRQUMvRCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLElBQUksR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDL0QsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDOzs7WUEvbEJGLFVBQVU7OztZQWRILGFBQWE7WUFGYixjQUFjO1lBQ2QsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JqZWN0VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvb2JqZWN0LXR5cGUubW9kZWwnO1xuaW1wb3J0IHtSYW5nZVZhbHVlfSBmcm9tICcuLi8uLi9tb2RlbC9yYW5nZS12YWx1ZS5tb2RlbCc7XG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWFyY2hGaWx0ZXJUeXBlfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItdHlwZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRmllbGREZWZpbml0aW9uLFxuICBTZWFyY2hGaWx0ZXIsXG4gIFNlYXJjaFF1ZXJ5LFxuICBTZWFyY2hSZXN1bHQsXG4gIFNlYXJjaFN0YXRlXG59IGZyb20gJy4vc2VhcmNoLXF1ZXJ5Lm1vZGVsJztcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFNlYXJjaCBTZXJ2aWNlc1xuICogU2VlIHtAbGluayBTZWFyY2hRdWVyeX0gZm9yIFF1ZXJ5IERlZmluaXRpb25cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUmFuZ2VWYWx1ZSBpbnN0YW5jZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGJlXG4gICAqIEByZXR1cm5zIFJhbmdlVmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9SYW5nZVZhbHVlKHZhbHVlOiBhbnkpOiBSYW5nZVZhbHVlIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdmFsdWUuaGFzT3duUHJvcGVydHkoJ29wZXJhdG9yJykgJiZcbiAgICAgICAgdmFsdWUuaGFzT3duUHJvcGVydHkoJ2ZpcnN0VmFsdWUnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmFuZ2VWYWx1ZShcbiAgICAgICAgICB2YWx1ZS5vcGVyYXRvcixcbiAgICAgICAgICB2YWx1ZS5maXJzdFZhbHVlLFxuICAgICAgICAgIHZhbHVlLnNlY29uZFZhbHVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZnJvbWF0ZWQgc2VhcmNoIFF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVxuICAgKiBAcmV0dXJucyBTZWFyY2hRdWVyeVxuICAgKi9cbiAgcHVibGljIGJ1aWxkUXVlcnkocXVlcnk6IGFueSk6IFNlYXJjaFF1ZXJ5IHtcbiAgICBsZXQgcTogU2VhcmNoUXVlcnk7XG4gICAgaWYgKHF1ZXJ5IGluc3RhbmNlb2YgU2VhcmNoUXVlcnkpIHtcbiAgICAgIHEgPSBxdWVyeTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHFPYmo7XG4gICAgICAvKipcbiAgICAgICAqIGlmIHdlIGdvdCBhIHN0cmluZywgd2UnbGwgYXNzdW1lIHRoYXQgaXQncyBhIEpTT05cbiAgICAgICAqL1xuICAgICAgaWYgKHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcU9iaiA9IEpTT04ucGFyc2UocXVlcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcU9iaiA9IHF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICBxID0gbmV3IFNlYXJjaFF1ZXJ5KCk7XG4gICAgICBxLnRlcm0gPSBxT2JqLnRlcm07XG4gICAgICBpZiAocU9iai5maWx0ZXJzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHFPYmouZmlsdGVycykuZm9yRWFjaChrID0+IHtcbiAgICAgICAgICBxLmZpbHRlcnMucHVzaChcbiAgICAgICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXG4gICAgICAgICAgICAgIGssXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS5vLFxuICAgICAgICAgICAgICBxT2JqLmZpbHRlcnNba10udjEsXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS52MlxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHFPYmoudHlwZXMpIHtcbiAgICAgICAgcU9iai50eXBlcy5mb3JFYWNoKHQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKSB7XG4gICAgICAgICAgICBxLnR5cGVzLnB1c2godGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZSh0KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHFPYmouY29udGV4dGZvbGRlcnR5cGVzKSB7XG4gICAgICAgIHFPYmouY29udGV4dGZvbGRlcnR5cGVzLmZvckVhY2godCA9PiB7XG4gICAgICAgICAgaWYgKHQgPT09ICdzeXNyb290Jykge1xuICAgICAgICAgICAgLy8gJ3N5c3Jvb3QnIGlzIG5vdCBhIHJlYWwgb2JqZWN0IHR5cGUsIHNvIHdlIGhhdmUgdG8gY3JlYXRlIGEgZmFrZSB0eXBlLlxuICAgICAgICAgICAgY29uc3Qgc3lzcm9vdEZha2VPYmplY3RUeXBlID0gbmV3IE9iamVjdFR5cGUoe1xuICAgICAgICAgICAgICBpZDogJ2EnLFxuICAgICAgICAgICAgICBmb2xkZXI6IHRydWUsXG4gICAgICAgICAgICAgIG5hbWU6ICdzeXNyb290JyxcbiAgICAgICAgICAgICAgcW5hbWU6ICdzeXNyb290JyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdzeXNyb290JyxcbiAgICAgICAgICAgICAgaXNjb250ZXh0Zm9sZGVyOiB0cnVlLFxuICAgICAgICAgICAgICBhYnN0cmFjdDogZmFsc2UsXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgICBzaGFyZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBtaW5maWxlczogMCxcbiAgICAgICAgICAgICAgbWF4ZmlsZXM6IDFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcS5jb250ZXh0Rm9sZGVyVHlwZXMucHVzaChzeXNyb290RmFrZU9iamVjdFR5cGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUodCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBxLmZpZWxkcyA9IHFPYmouZmllbGRzO1xuICAgICAgaWYgKHFPYmoub3B0aW9ucykge1xuICAgICAgICBxLnN1Z2dlc3QgPSBxT2JqLm9wdGlvbnMuc3VnZ2VzdCB8fCBmYWxzZTtcbiAgICAgICAgcS5leHBlcnRNb2RlID0gcU9iai5vcHRpb25zLmV4cGVydG1vZGUgfHwgZmFsc2U7XG4gICAgICAgIHEuc2NvcGUgPSBxT2JqLm9wdGlvbnMuc2NvcGU7XG4gICAgICAgIC8vIFwifHxcIiBkb2VzIG5vdCB3b3JrIGZvciByZWNvZ25pemluZyBcImZhbHNlXCIgd2l0aCBwcmlvcml0eSBvdmVyIFwiZGVmYXVsdCB0cnVlXCJcbiAgICAgICAgcS5yZXNvbHZlUmVmZXJlbmNlID0gKHFPYmoub3B0aW9ucy5yZXNvbHZlcmVmZXJlbmNlICE9PSBudWxsKSA/IHFPYmoub3B0aW9ucy5yZXNvbHZlcmVmZXJlbmNlIDpcbiAgICAgICAgICAoIHFPYmoub3B0aW9ucy5yZXNvbHZlUmVmZXJlbmNlICE9PSBudWxsID8gcU9iai5vcHRpb25zLnJlc29sdmVSZWZlcmVuY2UgOiB0cnVlKTtcbiAgICAgICAgLy8gd2l0aENvbnRleHQgd2FzIG9sZCBhbmQgXCJ3cm9uZ1wiIG5hbWUgb2YgcGFyYW1ldGVyXG4gICAgICAgIHEud2l0aENvbnRleHQgPSBxT2JqLm9wdGlvbnMud2l0aGNvbnRleHQgfHwgcU9iai5vcHRpb25zLndpdGhDb250ZXh0IHx8IGZhbHNlO1xuICAgICAgICBxLnNlYXJjaE1vZGUgPVxuICAgICAgICAgIHFPYmoub3B0aW9ucy5zZWFyY2htb2RlIHx8IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHE7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBxdWVyeS5cbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBiZSBleGVjdXRlZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD5cbiAgICovXG4gIHB1YmxpYyBzZWFyY2gocXVlcnk6IFNlYXJjaFF1ZXJ5KTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUXVlcnkocXVlcnkuZ2V0UXVlcnlKc29uKCkpLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHRoaXMuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKHJlcykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBTZWFyY2ggcmVzdWx0c1xuICAgKi9cbiAgcHVibGljIGdldFNlYXJjaFN0YXRlKHF1ZXJ5OiBhbnkpOiBPYnNlcnZhYmxlPFNlYXJjaFN0YXRlPiB7XG5cbiAgICBpZiAocXVlcnkgaW5zdGFuY2VvZiBTZWFyY2hRdWVyeSkge1xuICAgICAgcXVlcnkgPSBxdWVyeS5nZXRRdWVyeUpzb24oKTtcbiAgICB9XG4gICAgZGVsZXRlIHF1ZXJ5Lm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LCB0cnVlKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICAgICAgICBzdGF0ZS5jb3VudCA9IHJlcy5oaXRzLnRvdGFsO1xuICAgICAgICBPYmplY3Qua2V5cyhTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUykuZm9yRWFjaChrID0+IHtcbiAgICAgICAgICBjb25zdCBiYXNlUGFyYW0gPSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNU1trXTtcbiAgICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbnMgPSByZXMuYWdncmVnYXRpb25zW2Jhc2VQYXJhbV1cbiAgICAgICAgICAgID8gcmVzLmFnZ3JlZ2F0aW9uc1tiYXNlUGFyYW1dLmJ1Y2tldHNcbiAgICAgICAgICAgIDogW107XG4gICAgICAgICAgYWdncmVnYXRpb25zLmZvckVhY2goYWdncmVnYXRpb24gPT4ge1xuICAgICAgICAgICAgY29uc3Qge2tleSwgZG9jX2NvdW50LCBjb250ZXh0Zm9sZGVydHlwZX0gPSBhZ2dyZWdhdGlvbjtcbiAgICAgICAgICAgIHN0YXRlLmFkZEFnZ3JlZ2F0aW9ucyhiYXNlUGFyYW0sIGtleSwgZG9jX2NvdW50LCBhZ2dyZWdhdGlvbik7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHR5cGUgYWdncmVnYXRpb25zIG1heSBhbHNvIGNvbnRhaW4gYnVja2V0cyBmb3IgdGhlaXIgY29udGV4dCB0eXBlc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGJhc2VQYXJhbSA9PT0gU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuVFlQRSAmJlxuICAgICAgICAgICAgICBjb250ZXh0Zm9sZGVydHlwZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRleHRmb2xkZXJ0eXBlLmJ1Y2tldHMuZm9yRWFjaChjdHhBZ2cgPT4ge1xuICAgICAgICAgICAgICAgIHN0YXRlLmFkZEFnZ3JlZ2F0aW9ucyhcbiAgICAgICAgICAgICAgICAgICdjb250ZXh0dHlwZScsXG4gICAgICAgICAgICAgICAgICBjdHhBZ2cua2V5LFxuICAgICAgICAgICAgICAgICAgY3R4QWdnLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgICAgIGN0eEFnZ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIHBhcnQgb2YgYSBxdWVyaWVzIHJlc3VsdC4gVGhpcyBjYW4gYmUgdXNlZCBmb3IgcGFnaW5nIG9mIHJlc3VsdHNcbiAgICogb3IgbGF6eSBsb2FkaW5nIGxhcmdlIHJlc3VsdHMuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeSBUaGUgcXVlcnkgdG8gYmUgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgaW5kZXggZnJvbSB3aGVyZSB0byBmZXRjaCByZXN1bHRzXG4gICAqIEBwYXJhbSBjaHVua1NpemUgU2l6ZSBvZiB0aGUgY2h1bmsgdG8gYmUgZmV0Y2hlZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD5cbiAgICovXG4gIHB1YmxpYyBnZXRDaHVua2VkUmVzdWx0KFxuICAgIHF1ZXJ5OiBTZWFyY2hRdWVyeSxcbiAgICBmcm9tSW5kZXg6IG51bWJlcixcbiAgICBjaHVua1NpemU6IG51bWJlclxuICApOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xuICAgIGNvbnN0IHEgPSBxdWVyeS5nZXRRdWVyeUpzb24oKTtcblxuICAgIHEuZnJvbSA9IGZyb21JbmRleDtcbiAgICBjb25zdCBxdWVyeVVyaSA9IGBzZWFyY2ghY2h1bms6JHtjaHVua1NpemV9ISR7SlNPTi5zdHJpbmdpZnkocSl9YDtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZShxdWVyeVVyaSwgKCkgPT5cbiAgICAgIHRoaXMuZXhlY3V0ZVF1ZXJ5KHEsIGZhbHNlLCBjaHVua1NpemUpLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gdGhpcy5jcmVhdGVSZXN1bHRGcm9tUmVzcG9uc2UocmVzKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgcXVlcnlcbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5SnNvbiBUaGUgcXVlcnkgSlNPTiB0byBiZSBleGVjdXRlZFxuICAgKiBAcGFyYW0gYWdncmVnYXRlU2VhcmNoIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byBleGVjdXRlIGFuIGFnZ3JlZ2F0aW9uIHNlYXJjaCAobm8gYWN0dWFsIHJlc3VsdHMpXG4gICAqIEBwYXJhbSBjdXN0b21TaXplIEN1c3RvbSBudW1iZXIgb2YgcmVzdWx0cyB0byBiZSBmZXRjaGVkLCBpZiBub3Qgc2V0IHRoZSBkZWZhdWx0IHNpemUgd2lsbCBiZSBhcHBsaWVkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIGV4ZWN1dGVRdWVyeShcbiAgICBxdWVyeUpzb246IGFueSxcbiAgICBhZ2dyZWdhdGVTZWFyY2g/OiBib29sZWFuLFxuICAgIGN1c3RvbVNpemU/OiBudW1iZXJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJpOiBzdHJpbmc7XG4gICAgbGV0IHF1ZXJ5ID0gcXVlcnlKc29uO1xuICAgIGlmIChhZ2dyZWdhdGVTZWFyY2gpIHtcbiAgICAgIHVyaSA9IGAvYWdncmVnYXRlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2l6ZSA9IGN1c3RvbVNpemUgfHwgdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gubGltaXQnKTtcbiAgICAgIHVyaSA9IGAvP3NpemU9JHtzaXplfWA7XG4gICAgfVxuICAgIHF1ZXJ5Lm9wdGlvbnMgPSB7Li4ucXVlcnkub3B0aW9ucywgdHJhY2t0b3RhbGhpdHM6IHRoaXMuY29uZmlnLmdldFJhdygnc2VhcmNoLnRyYWNrVG90YWxIaXRzJykgfHwgZmFsc2UsIHRpbWV6b25lOiBVdGlscy5nZXRUaW1lem9uZU9mZnNldCgpfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKHVyaSArIEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSwgKCkgPT4gdGhpcy5iYWNrZW5kLnBvc3QodXJpLCBxdWVyeSwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkcyBhIGNzdi1maWxlIG9mIHRoZSByZXN1bHRzIG9mIGEgZ2l2ZW4gc2VhcmNoLXF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeUpzb24gVGhlIHF1ZXJ5IEpTT04gdG8gYmUgZXhlY3V0ZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBwdWJsaWMgZG93bmxvYWRDc3ZGcm9tUXVlcnkocXVlcnlKc29uOiBvYmplY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wb3N0KCcvZXhwb3J0JywgcXVlcnlKc29uLCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpLCB7XG4gICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChyZXMgPT4ge1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzLmJvZHldLCB7XG4gICAgICAgICAgICB0eXBlOiAndGV4dC9jc3Y7Y2hhcnNldD11dGYtOCdcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcyksIHthdXRvQm9tOiB0cnVlfSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzOiBIdHRwUmVzcG9uc2U8YW55Pikge1xuICAgIGNvbnN0IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlciA9XG4gICAgICByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcbiAgICByZXR1cm4gY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLnNwbGl0KCdmaWxlbmFtZT0nKVsxXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHNlYXJjaCBmb3IgZmV0Y2hpbmcgc3VnZ2VzdGlvbnMgb24gYSBnaXZlbiBzZWFyY2ggdGVybS5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtXG4gICAqIEByZXR1cm5cbiAgICovXG4gIHB1YmxpYyBhdXRvY29tcGxldGUodGVybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKFxuICAgICAgYC9hdXRvY29tcGxldGU/cHJlZml4PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRlcm0pfWAsXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gY3JlYXRlIGEgU2VhcmNoRmlsdGVyIGZvciBhIGZvcm0gZWxlbWVudC4gQmFzZWQgb24gdGhlIHRhcmdldCB0eXBlc1xuICAgKiBpdCdsbCBjcmVhdGUgdGhlIHJpZ2h0IGtpbmQgb2YgZmlsdGVyIHRoYXQgeW91IHRoZW4gY2FuIGFkZCB0byBhIFNlYXJjaFF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXRUeXBlc1xuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnROYW1lXG4gICAqIEBwYXJhbSBlbGVtZW50VmFsdWVcbiAgICogQHJldHVybnMgU2VhcmNoRmlsdGVyW10gQW4gYXJyYXkgb2Ygc2VhcmNoIGZpbHRlcnMgbW9zdCBvZiB0aGUgdGltZSBjb250YWluaW5nIG9ubHkgb25lIGVudHJ5LCBidXRcbiAgICogZm9yIHRhYmxlIGVsZW1lbnRzIHRoaXMgY291bGQgYmUgbW9yZVxuICAgKi9cbiAgcHVibGljIGdldFNlYXJjaEZpbHRlcihcbiAgICB0YXJnZXRUeXBlczogT2JqZWN0VHlwZVtdLFxuICAgIGZvcm1FbGVtZW50TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRWYWx1ZTogYW55XG4gICk6IFNlYXJjaEZpbHRlcltdIHtcbiAgICBjb25zdCBmaWx0ZXI6IFNlYXJjaEZpbHRlcltdID0gW107XG4gICAgY29uc3QgZmlsdGVyVHlwZTogU2VhcmNoRmlsdGVyVHlwZSA9IHRoaXMuaWRlbnRpZnlTZWFyY2hGaWx0ZXIoXG4gICAgICB0YXJnZXRUeXBlcyxcbiAgICAgIGZvcm1FbGVtZW50TmFtZVxuICAgICk7XG4gICAgY29uc3QgZm9ybUVsZW1lbnQgPSB0YXJnZXRUeXBlc1swXS5lbGVtZW50cy5maW5kKGVsID0+IGVsLnFuYW1lID09PSBmb3JtRWxlbWVudE5hbWUpO1xuXG4gICAgaWYgKGVsZW1lbnRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgZmlsdGVyLnB1c2goXG4gICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoZm9ybUVsZW1lbnROYW1lLCBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwsIG51bGwpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoZm9ybUVsZW1lbnQgJiYgZm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gPT09ICdwYXRoJykge1xuICAgICAgZmlsdGVyLnB1c2goXG4gICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXG4gICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxuICAgICAgICAgIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5NQVRDSCxcbiAgICAgICAgICBlbGVtZW50VmFsdWVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnRWYWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGZpbHRlciBmb3IgZWxlbWVudHMgdGhhdCBzdXBwb3J0IHJhbmdlcyBsaWtlIERBVEVUSU1FIGFuZCBOVU1CRVJcbiAgICAgICAqL1xuICAgICAgaWYgKFxuICAgICAgICBlbGVtZW50VmFsdWUuZmlyc3RWYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICBlbGVtZW50VmFsdWUuZmlyc3RWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgZmlsdGVyLnB1c2goXG4gICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcbiAgICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5vcGVyYXRvcixcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5maXJzdFZhbHVlLFxuICAgICAgICAgICAgZWxlbWVudFZhbHVlLnNlY29uZFZhbHVlLFxuICAgICAgICAgICAgZmlsdGVyVHlwZS5kYXRldGltZSA/IHt0aW1lOiBmaWx0ZXJUeXBlLndpdGh0aW1lfSA6IHVuZGVmaW5lZFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKChmaWx0ZXJUeXBlLm11bHRpc2VsZWN0IHx8IEFycmF5LmlzQXJyYXkoZWxlbWVudFZhbHVlKSkgJiYgIWZpbHRlclR5cGUudGFibGUpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGZpbHRlciBmb3IgbXVsdGlzZWxlY3QgZWxlbWVudHMgbGlrZSBDT0RFU1lTVEVNIGFuZCBPUkdBTklaQVRJT05cbiAgICAgICAqL1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudFZhbHVlKSAmJiBlbGVtZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXG4gICAgICAgICAgICBmb3JtRWxlbWVudE5hbWUsXG4gICAgICAgICAgICBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU4sXG4gICAgICAgICAgICBlbGVtZW50VmFsdWVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChmaWx0ZXJUeXBlLnRhYmxlKSB7XG4gICAgICAvKipcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIocykgZm9yIHRhYmxlIGVsZW1lbnRzXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IHF1ZXJ5Um93ID0gZWxlbWVudFZhbHVlWzBdO1xuICAgICAgT2JqZWN0LmtleXMocXVlcnlSb3cpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZihxdWVyeVJvd1trZXldICE9PSB1bmRlZmluZWQpe1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGAke2Zvcm1FbGVtZW50TmFtZX0uJHtrZXl9YDtcbiAgICAgICAgICBpZiAocXVlcnlSb3dba2V5XSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV0uZmlyc3RWYWx1ZSxcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldLnNlY29uZFZhbHVlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlci5wdXNoKFxuICAgICAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHF1ZXJ5Um93W2tleV0pID8gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOIDogU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMLFxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV1cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKipcbiAgICAgICAqIGRlZmF1bHQgd2lsbCB1c2UgZXF1YWxpdHkgb3BlcmF0b3JcbiAgICAgICAqL1xuICAgICAgZmlsdGVyLnB1c2goXG4gICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXG4gICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxuICAgICAgICAgIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCxcbiAgICAgICAgICBlbGVtZW50VmFsdWVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZGVudGlmaWVzIGZvcm0gZWxlbWVudHMgdGhhdCBhcmUgZW5hYmxlZCB0byBjb250YWluIG11bHRpcGxlIHZhbHVlc1xuICAgKiB0cnkgdG8gZmluZCB0aGUgZm9ybSBlbGVtZW50IGluc2lkZSBvZiB0aGUgcHJvdmlkZWQgb2JqZWN0IHR5cGVzIHRvIGdldCBpdHMgdHlwZVxuICAgKlxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZVtdIHRhcmdldFR5cGVzXG4gICAqIEBwYXJhbSBzdHJpbmcgZm9ybUVsZW1lbnROYW1lXG4gICAqIEByZXR1cm4gU2VhcmNoRmlsdGVyVHlwZVxuICAgKi9cbiAgcHJpdmF0ZSBpZGVudGlmeVNlYXJjaEZpbHRlcihcbiAgICB0YXJnZXRUeXBlczogT2JqZWN0VHlwZVtdLFxuICAgIGZvcm1FbGVtZW50TmFtZTogc3RyaW5nXG4gICk6IFNlYXJjaEZpbHRlclR5cGUge1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgbWF0Y2g7XG4gICAgd2hpbGUgKCFtYXRjaCAmJiBpIDwgdGFyZ2V0VHlwZXMubGVuZ3RoKSB7XG4gICAgICBtYXRjaCA9IHRhcmdldFR5cGVzW2ldLmVsZW1lbnRzLmZpbmQoXG4gICAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC5xbmFtZSA9PT0gZm9ybUVsZW1lbnROYW1lXG4gICAgICApO1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBtdWx0aXNlbGVjdDogdGhpcy5pc011bHRpc2VsZWN0U2VhcmNoRmlsdGVyKG1hdGNoKSxcbiAgICAgIHRhYmxlOiBtYXRjaCAmJiBtYXRjaC50eXBlID09PSAnVEFCTEUnLFxuICAgICAgZGF0ZXRpbWU6IG1hdGNoICYmIG1hdGNoLnR5cGUgPT09ICdEQVRFVElNRScsXG4gICAgICB3aXRodGltZTogbWF0Y2ggJiYgbWF0Y2gud2l0aHRpbWVcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIGlkZW50aWZpZXMgZm9ybSBlbGVtZW50cyB0aGF0IGFyZSBlbmFibGVkIHRvIGNvbnRhaW4gbXVsdGlwbGUgdmFsdWVzXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudFxuICAgKiBAcmV0dXJuIGJvb2xlYW5cbiAgICovXG4gIHByaXZhdGUgaXNNdWx0aXNlbGVjdFNlYXJjaEZpbHRlcihmb3JtRWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1FbGVtZW50ICYmXG4gICAgICAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ09SR0FOSVpBVElPTicgfHxcbiAgICAgICAgZm9ybUVsZW1lbnQudHlwZSA9PT0gJ0NPREVTWVNURU0nIHx8XG4gICAgICAgIC8vIC4uLlxuICAgICAgICAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1NUUklORycgJiZcbiAgICAgICAgICBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJykgfHxcbiAgICAgICAgLy8gbXVsdGlzZWxlY3QgcmVmZXJlbmNlIGZpZWxkc1xuICAgICAgICAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1NUUklORycgJiYgZm9ybUVsZW1lbnQubXVsdGlzZWxlY3QpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFNlYXJjaFJlc3VsdCBmcm9tIHRoZSByZXNwb25zZSBzZW50IGJ5IHRoZSBzZXJ2ZXJcbiAgICpcbiAgICogQHBhcmFtIGJhY2tlbmRSZXNwb25zZSBTZXJ2ZXIgcmVzcG9uc2VcbiAgICogQHJldHVyblRoZSBTZWFyY2hSZXN1bHQgU2VhcmNoUmVzdWx0IG9iamVjdCBjcmVhdGVkIGZyb20gdGhlIHNlcnZlciByZXNwb25zZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZVJlc3VsdEZyb21SZXNwb25zZShiYWNrZW5kUmVzcG9uc2UpOiBTZWFyY2hSZXN1bHQge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZWFyY2hSZXN1bHQoKTtcbiAgICByZXN1bHQuc3VnZ2VzdHMgPSBiYWNrZW5kUmVzcG9uc2Uuc3VnZ2VzdDtcbiAgICByZXN1bHQuZmllbGRzID0gYmFja2VuZFJlc3BvbnNlLmNvbmZpZztcblxuICAgIC8qKlxuICAgICAqIHVzZSBoaXRzIF9pZCBmaWVsZCBhcyBpZCBwcm9wZXJ0eSwgYmVjYXVzZSBvdGhlcndpc2UgZW1wdHkgcmVzdWx0IGhpdHMgd291bGQgbm90IGNvbnRhaW4gYW4gaWRcbiAgICAgKi9cbiAgICBjb25zdCBoaXRzID0gYmFja2VuZFJlc3BvbnNlLmhpdHMuaGl0cy5tYXAoaCA9PiAoe1xuICAgICAgLi4uaC5fc291cmNlLFxuICAgICAgaWQ6IGguX2lkLFxuICAgICAgLi4uKGguc25pcHBldHMgJiYge3NuaXBwZXRzOiBoLnNuaXBwZXRzfSksXG4gICAgICAvLyBoYXZpbmcgcmVxdWVzdGVkIGEgcmVzb2x2ZWQgcmVmZXJlbmNlIChvcHRpb25zKSB3ZSBhbHNvIHBhc3MgYF9yZWZlcmVuY2VgIGluIHRoZSByZXN1bHQgaXRlbVxuICAgICAgLi4uKGgucmVmZXJlbmNlcyAmJiB7X3JlZmVyZW5jZXM6IGgucmVmZXJlbmNlc30pLFxuICAgICAgLi4uKGguY29udGV4dCAmJiB7Y29udGV4dDogaC5jb250ZXh0fSlcbiAgICB9KSk7XG5cbiAgICByZXN1bHQuY291bnQgPSBiYWNrZW5kUmVzcG9uc2UuaGl0cy50b3RhbDtcbiAgICByZXN1bHQuaGl0cyA9IGhpdHMgfHwgW107XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgUmVzdWwgdEZpZWxkIERlZmluaXRpb24gQ29uZmlnXG4gICAqXG4gICAqIEBwYXJhbSBTZWFyY2hRdWVyeSBxdWVyeVxuICAgKiBAcmV0dXJuICh7dHlwZTogT2JqZWN0VHlwZTsgY29udGV4dFR5cGU6IE9iamVjdFR5cGV9KVxuICAgKi9cbiAgZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHF1ZXJ5OiBTZWFyY2hRdWVyeSkge1xuICAgIGNvbnN0IHR5cGUgPSAocXVlcnkudHlwZXMgfHwgW10pLmxlbmd0aCA9PT0gMSA/IHF1ZXJ5LnR5cGVzWzBdIDogbnVsbDtcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9XG4gICAgICAocXVlcnkuY29udGV4dEZvbGRlclR5cGVzIHx8IFtdKS5sZW5ndGggPT09IDFcbiAgICAgICAgPyBxdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXNbMF1cbiAgICAgICAgOiBudWxsO1xuICAgIHJldHVybiB7dHlwZSwgY29udGV4dFR5cGV9O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxuICAgIHR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbFxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZU5hbWU6IHR5cGUgPyB0eXBlLnFuYW1lIDogJ3N5c29iamVjdCcsXG4gICAgICBjb250ZXh0VHlwZU5hbWU6IHR5cGUgJiYgY29udGV4dFR5cGUgPyBjb250ZXh0VHlwZS5xbmFtZSA6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgcmVzdWx0IGZpZWxkIGRlZmluaXRpb24gZm9yIGEgZ2l2ZW4gb2JqZWN0IHR5cGVcbiAgICogVVNFUjogKGRlZmF1bHQpIHRoZSByZXN1bHQgbGlzdCBjb25maWd1cmF0aW9uIHNhdmVkIGJ5IHRoZSBjdXJyZW50IHVzZXJcbiAgICogREVGQVVMVDogdGhlIGRlZmF1bHQgcmVzdWx0IGxpc3QgY29uZmlndXJhdGlvbiAoYWxzbyByZXR1cm5lZCB3aGVuIHRoZXJlIGlzIG5vIHVzZXIgY29uZmlndXJhdGlvbilcbiAgICogQUxMOiBhbGwgYXZhaWxhYmxlIHJlc3VsdCBmaWVsZHMgZm9yIHRoZSBnaXZlbiB0eXBlIChhbmQgY29udGV4dClcbiAgICpcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIHR5cGUgVGhlIG9iamVjdCB0eXBlXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCBjb250ZXh0VHlwZSBPYmplY3QgdHlwZSB0YXJnZXQgdHlwZXMgYWxsb3dlZCBjb250ZXh0IHR5cGVcbiAgICogQHBhcmFtIG1vZGUgVGhlIHJlc3VsdCBsaXN0cyBjb25maWd1cmF0aW9uIG1vZGU6XG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxGaWVsZERlZmluaXRpb24+XG4gICAqL1xuICBmZXRjaFJlc3VsdEZpZWxkRGVmaW5pdGlvbihcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXG4gICAgbW9kZVxuICApIHtcbiAgICBjb25zdCB7dHlwZU5hbWUsIGNvbnRleHRUeXBlTmFtZX0gPSB0aGlzLnJlc29sdmVDb25maWdUeXBlTmFtZXMoXG4gICAgICB0eXBlLFxuICAgICAgY29udGV4dFR5cGVcbiAgICApO1xuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvdXNlci9jb25maWcvcmVzdWx0LyR7dHlwZU5hbWV9YCwge1xuICAgICAgY29udGV4dHR5cGU6IGNvbnRleHRUeXBlTmFtZSxcbiAgICAgIG1vZGVcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbih1cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChyZXM6IGFueSkgPT5cbiAgICAgICAgICAgIG5ldyBGaWVsZERlZmluaXRpb24oXG4gICAgICAgICAgICAgIHJlcy5lbGVtZW50cyxcbiAgICAgICAgICAgICAgcmVzLnNvcnRvcmRlcixcbiAgICAgICAgICAgICAgcmVzLmdyb3Vwb3JkZXIsXG4gICAgICAgICAgICAgIHJlcy5waW5uZWQsXG4gICAgICAgICAgICAgIHJlcy5hbGlnbm1lbnR4LFxuICAgICAgICAgICAgICByZXMubW9kZVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGEgY29sdW1uIGRlZmluaXRpb24gYXMgcmVzdWx0IG9yIGNvbW1vbiByZXN1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCB0eXBlIFRoZSBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgY29udGV4dFR5cGUgT2JqZWN0IHR5cGUgdGFyZ2V0IHR5cGVzIGFsbG93ZWQgY29udGV4dCB0eXBlXG4gICAqIEBwYXJhbSBGaWVsZERlZmluaXRpb24gZGF0YSBUaGUgcmVzdWx0IGxpc3QgY29uZmlndXJhdGlvbiB0byBiZSBwZXJzaXN0ZWRcbiAgICogQHBhcmFtIGJvb2xlYW4gY29tbW9uIEZsYWcgZW5hYmxlcyB0byBzZXQgY29uZmlnIGFzIGRlZmF1bHQgLyBjb21tb24gcmVzdWx0XG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBzYXZlUmVzdWx0RmllbGREZWZpbml0aW9uKFxuICAgIHR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcbiAgICBkYXRhOiBGaWVsZERlZmluaXRpb24sXG4gICAgY29tbW9uID0gZmFsc2VcbiAgKSB7XG4gICAgY29uc3QgYmFzZVVyaSA9IGNvbW1vblxuICAgICAgPyAnL3VzZXIvY29uZmlnL2NvbW1vbnJlc3VsdC8nXG4gICAgICA6ICcvdXNlci9jb25maWcvcmVzdWx0Lyc7XG4gICAgY29uc3Qge3R5cGVOYW1lLCBjb250ZXh0VHlwZU5hbWV9ID0gdGhpcy5yZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxuICAgICAgdHlwZSxcbiAgICAgIGNvbnRleHRUeXBlXG4gICAgKTtcbiAgICBjb25zdCB1cmwgPSBVdGlscy5idWlsZFVyaShiYXNlVXJpICsgdHlwZU5hbWUsIHtcbiAgICAgIGNvbnRleHR0eXBlOiBjb250ZXh0VHlwZU5hbWVcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3QodXJsLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY29sdW1uIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCB0eXBlIFRoZSBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgY29udGV4dFR5cGUgT2JqZWN0IHR5cGUgdGFyZ2V0IHR5cGVzIGFsbG93ZWQgY29udGV4dCB0eXBlXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICByZW1vdmVSZXN1bHRGaWVsZERlZmluaXRpb24oXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXG4gICAgY29udGV4dFR5cGU6IE9iamVjdFR5cGUgfCBudWxsXG4gICkge1xuICAgIGNvbnN0IHt0eXBlTmFtZSwgY29udGV4dFR5cGVOYW1lfSA9IHRoaXMucmVzb2x2ZUNvbmZpZ1R5cGVOYW1lcyhcbiAgICAgIHR5cGUsXG4gICAgICBjb250ZXh0VHlwZVxuICAgICk7XG4gICAgY29uc3QgdXJsID0gVXRpbHMuYnVpbGRVcmkoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlTmFtZX1gLCB7XG4gICAgICBjb250ZXh0dHlwZTogY29udGV4dFR5cGVOYW1lXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZSB0byBiZSBhZGRlZCB0byBhIGZvcm0gZWxlbWVudCBieSBleHRyYWN0aW5nIGl0IGZyb20gYVxuICAgKiBzZWFyY2ggZmlsdGVyLiBUaGUga2luZCBvZiB2YWx1ZSBkaWZmZXJzIGJhc2VkIG9uIHRoZSBmb3JtIGVsZW1lbnRzIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXIgVGhlIGZpbHRlciB0byBleHRyYWN0IHZhbHVlIGZyb21cbiAgICogQHBhcmFtIGZvcm1FbGVtZW50VHlwZSBGb3JtIGVsZW1lbnRzIHR5cGUgKCdTVFJJTkcnLCAnREFURScsICdDT0RFU1lTVEVNJywgLi4uKVxuICAgKiBAcmV0dXJucyB0aGUgZXh0cmFjdGVkIHZhbHVlXG4gICAqL1xuICBmaWx0ZXJUb0VsZW1lbnRWYWx1ZShmaWx0ZXI6IFNlYXJjaEZpbHRlciwgZm9ybUVsZW1lbnRUeXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgLy8gdHlwZXMgdGhhdCBzdXBwb3J0IHJhbmdlc1xuICAgICAgaWYgKChmb3JtRWxlbWVudFR5cGUgPT09ICdOVU1CRVInIHx8IGZvcm1FbGVtZW50VHlwZSA9PT0gJ0RBVEVUSU1FJykgJiYgZmlsdGVyLmZpcnN0VmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgUmFuZ2VWYWx1ZShcbiAgICAgICAgICBmaWx0ZXIub3BlcmF0b3IsXG4gICAgICAgICAgZmlsdGVyLmZpcnN0VmFsdWUsXG4gICAgICAgICAgZmlsdGVyLnNlY29uZFZhbHVlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IGZpbHRlci5maXJzdFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHRhYmxlIHZhbHVlIGJ5IGV4dHJhY3RpbmcgdGhlIGRhdGEgZnJvbSB0aGUgY29ycmVzcG9uZGluZ1xuICAgKiBzZWFyY2ggZmlsdGVycy5cbiAgICpcbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIGZpbHRlcnMgdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4gICAqIEBwYXJhbSB0YWJsZUVsZW1lbnRzIHRoZSBmb3JtIGVsZW1lbnRzIG9mIHRoZSB0YWJsZVxuICAgKiBAcmV0dXJucyB0aGUgdGFibGUgdmFsdWUgZXh0cmFjdGVkIGZyb20gYWxsIGZpbHRlcnNcbiAgICovXG4gIHRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKGZpbHRlcnM6IFNlYXJjaEZpbHRlcltdLCB0YWJsZUVsZW1lbnRzKXtcbiAgICBsZXQgdmFsdWUgPSB7fTtcbiAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB7XG4gICAgICBsZXQga2V5ID0gdGFibGVFbGVtZW50cy5maW5kKGUgPT4gZS5xbmFtZSA9PT0gZi5wcm9wZXJ0eSkubmFtZTtcbiAgICAgIGxldCB0eXBlID0gdGFibGVFbGVtZW50cy5maW5kKGUgPT4gZS5xbmFtZSA9PT0gZi5wcm9wZXJ0eSkudHlwZTtcbiAgICAgIHZhbHVlW2tleV0gPSB0aGlzLmZpbHRlclRvRWxlbWVudFZhbHVlKGYsIHR5cGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBbdmFsdWVdO1xuICB9XG59XG4iXX0=
@@ -4244,6 +4244,9 @@ class DmsObject {
4244
4244
  recycle: false
4245
4245
  };
4246
4246
  }
4247
+ if (json.shares) {
4248
+ this.shares = json.shares;
4249
+ }
4247
4250
  // content section
4248
4251
  if (json.contentid) {
4249
4252
  this.content = {
@@ -4747,6 +4750,7 @@ class DmsService {
4747
4750
  recycle: dmsObject.rights.recycle
4748
4751
  }
4749
4752
  }],
4753
+ shares: dmsObject.shares,
4750
4754
  contentid: dmsObject.content ? dmsObject.content.id : null,
4751
4755
  contenttype: dmsObject.content ? dmsObject.content.type : null,
4752
4756
  contentcount: dmsObject.content ? dmsObject.content.count : null,
@@ -4990,6 +4994,7 @@ class SearchService {
4990
4994
  if (query instanceof SearchQuery) {
4991
4995
  query = query.getQueryJson();
4992
4996
  }
4997
+ delete query.name;
4993
4998
  return this.executeQuery(query, true).pipe(map((res) => {
4994
4999
  const state = new SearchState();
4995
5000
  state.count = res.hits.total;