@eo-sdk/client 9.0.0-rc.6 → 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 (425) hide show
  1. package/app/eo-client/settings/settings.component.d.ts +3 -2
  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/result-list/result-list.component.d.ts +7 -1
  6. package/app/eo-framework/ui/overlay/overlay.component.d.ts +3 -0
  7. package/app/eo-framework/ui/user-avatar/user-avatar.component.d.ts +5 -3
  8. package/app/eo-framework/util/directive/trap-focus.directive.d.ts +2 -0
  9. package/assets/_default/i18n/de.json +8 -2
  10. package/assets/_default/i18n/en.json +11 -5
  11. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +9 -4
  12. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  13. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  14. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  15. package/bundles/eo-sdk-client.umd.js +165 -159
  16. package/bundles/eo-sdk-client.umd.js.map +1 -1
  17. package/bundles/eo-sdk-client.umd.min.js +1 -1
  18. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  19. package/eo-sdk-client.metadata.json +1 -1
  20. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  21. package/esm2015/app/eo-client/dashboard/dashboard.component.js +2 -2
  22. package/esm2015/app/eo-client/settings/settings.component.js +12 -11
  23. package/esm2015/app/eo-framework/accordion/simple-accordion/simple-accordion.component.js +18 -23
  24. package/esm2015/app/eo-framework/actions/actions/copy-action/copy-action.js +2 -2
  25. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +3 -2
  26. package/esm2015/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.js +1 -1
  27. package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +12 -10
  28. package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +13 -1
  29. package/esm2015/app/eo-framework/form-elements/datetime/datetime.component.js +2 -2
  30. package/esm2015/app/eo-framework/form-elements/form-input/form-input.component.js +1 -1
  31. package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +3 -4
  32. package/esm2015/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.js +3 -3
  33. package/esm2015/app/eo-framework/form-elements/id-reference/service/reference-finder.service.js +2 -3
  34. package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +1 -1
  35. package/esm2015/app/eo-framework/form-elements/string/string.component.js +3 -3
  36. package/esm2015/app/eo-framework/grid/filters/datetime-filter.component.js +2 -2
  37. package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +1 -1
  38. package/esm2015/app/eo-framework/media/media.component.js +31 -77
  39. package/esm2015/app/eo-framework/object-details/object-details.component.js +2 -2
  40. package/esm2015/app/eo-framework/result-list/result-list.component.js +17 -5
  41. package/esm2015/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.js +1 -1
  42. package/esm2015/app/eo-framework/ui/clipboard/clipboard.component.js +2 -2
  43. package/esm2015/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.js +4 -4
  44. package/esm2015/app/eo-framework/ui/overlay/overlay.component.js +10 -4
  45. package/esm2015/app/eo-framework/ui/user-avatar/user-avatar.component.js +15 -9
  46. package/esm2015/app/eo-framework/util/directive/trap-focus.directive.js +22 -4
  47. package/esm2015/projects/eo-sdk/core/lib/model/dms-object.model.js +4 -1
  48. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +2 -1
  49. package/esm2015/projects/eo-sdk/core/lib/service/search/search-query.model.js +5 -5
  50. package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +2 -1
  51. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +9 -4
  52. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  53. package/fesm2015/eo-sdk-client.js +161 -155
  54. package/fesm2015/eo-sdk-client.js.map +1 -1
  55. package/package.json +2 -2
  56. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  57. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts +4 -0
  58. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +3 -1
  59. package/projects/eo-sdk/core/package.json +1 -1
  60. package/scss/_form.scss +3 -0
  61. package/styles.css +2 -0
  62. package/assets/_default/api/pdf/LICENSE +0 -177
  63. package/assets/_default/api/pdf/build/pdf.js +0 -2
  64. package/assets/_default/api/pdf/build/pdf.js.LICENSE.txt +0 -21
  65. package/assets/_default/api/pdf/build/pdf.js.map +0 -1
  66. package/assets/_default/api/pdf/build/pdf.sandbox.js +0 -2
  67. package/assets/_default/api/pdf/build/pdf.sandbox.js.LICENSE.txt +0 -21
  68. package/assets/_default/api/pdf/build/pdf.sandbox.js.map +0 -1
  69. package/assets/_default/api/pdf/build/pdf.worker.js +0 -2
  70. package/assets/_default/api/pdf/build/pdf.worker.js.LICENSE.txt +0 -21
  71. package/assets/_default/api/pdf/build/pdf.worker.js.map +0 -1
  72. package/assets/_default/api/pdf/web/cmaps/78-EUC-H.bcmap +0 -0
  73. package/assets/_default/api/pdf/web/cmaps/78-EUC-V.bcmap +0 -0
  74. package/assets/_default/api/pdf/web/cmaps/78-H.bcmap +0 -0
  75. package/assets/_default/api/pdf/web/cmaps/78-RKSJ-H.bcmap +0 -0
  76. package/assets/_default/api/pdf/web/cmaps/78-RKSJ-V.bcmap +0 -0
  77. package/assets/_default/api/pdf/web/cmaps/78-V.bcmap +0 -0
  78. package/assets/_default/api/pdf/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  79. package/assets/_default/api/pdf/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  80. package/assets/_default/api/pdf/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  81. package/assets/_default/api/pdf/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  82. package/assets/_default/api/pdf/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  83. package/assets/_default/api/pdf/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  84. package/assets/_default/api/pdf/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  85. package/assets/_default/api/pdf/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  86. package/assets/_default/api/pdf/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  87. package/assets/_default/api/pdf/web/cmaps/Add-H.bcmap +0 -0
  88. package/assets/_default/api/pdf/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  89. package/assets/_default/api/pdf/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  90. package/assets/_default/api/pdf/web/cmaps/Add-V.bcmap +0 -0
  91. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  92. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  93. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  94. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  95. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  96. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  97. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  98. package/assets/_default/api/pdf/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  99. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  100. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  101. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  102. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  103. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  104. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  105. package/assets/_default/api/pdf/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  106. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  107. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  108. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  109. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  110. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  111. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  112. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  113. package/assets/_default/api/pdf/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  114. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  115. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  116. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  117. package/assets/_default/api/pdf/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  118. package/assets/_default/api/pdf/web/cmaps/B5-H.bcmap +0 -0
  119. package/assets/_default/api/pdf/web/cmaps/B5-V.bcmap +0 -0
  120. package/assets/_default/api/pdf/web/cmaps/B5pc-H.bcmap +0 -0
  121. package/assets/_default/api/pdf/web/cmaps/B5pc-V.bcmap +0 -0
  122. package/assets/_default/api/pdf/web/cmaps/CNS-EUC-H.bcmap +0 -0
  123. package/assets/_default/api/pdf/web/cmaps/CNS-EUC-V.bcmap +0 -0
  124. package/assets/_default/api/pdf/web/cmaps/CNS1-H.bcmap +0 -0
  125. package/assets/_default/api/pdf/web/cmaps/CNS1-V.bcmap +0 -0
  126. package/assets/_default/api/pdf/web/cmaps/CNS2-H.bcmap +0 -0
  127. package/assets/_default/api/pdf/web/cmaps/CNS2-V.bcmap +0 -3
  128. package/assets/_default/api/pdf/web/cmaps/ETHK-B5-H.bcmap +0 -0
  129. package/assets/_default/api/pdf/web/cmaps/ETHK-B5-V.bcmap +0 -0
  130. package/assets/_default/api/pdf/web/cmaps/ETen-B5-H.bcmap +0 -0
  131. package/assets/_default/api/pdf/web/cmaps/ETen-B5-V.bcmap +0 -0
  132. package/assets/_default/api/pdf/web/cmaps/ETenms-B5-H.bcmap +0 -3
  133. package/assets/_default/api/pdf/web/cmaps/ETenms-B5-V.bcmap +0 -0
  134. package/assets/_default/api/pdf/web/cmaps/EUC-H.bcmap +0 -0
  135. package/assets/_default/api/pdf/web/cmaps/EUC-V.bcmap +0 -0
  136. package/assets/_default/api/pdf/web/cmaps/Ext-H.bcmap +0 -0
  137. package/assets/_default/api/pdf/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  138. package/assets/_default/api/pdf/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  139. package/assets/_default/api/pdf/web/cmaps/Ext-V.bcmap +0 -0
  140. package/assets/_default/api/pdf/web/cmaps/GB-EUC-H.bcmap +0 -0
  141. package/assets/_default/api/pdf/web/cmaps/GB-EUC-V.bcmap +0 -0
  142. package/assets/_default/api/pdf/web/cmaps/GB-H.bcmap +0 -4
  143. package/assets/_default/api/pdf/web/cmaps/GB-V.bcmap +0 -0
  144. package/assets/_default/api/pdf/web/cmaps/GBK-EUC-H.bcmap +0 -0
  145. package/assets/_default/api/pdf/web/cmaps/GBK-EUC-V.bcmap +0 -0
  146. package/assets/_default/api/pdf/web/cmaps/GBK2K-H.bcmap +0 -0
  147. package/assets/_default/api/pdf/web/cmaps/GBK2K-V.bcmap +0 -0
  148. package/assets/_default/api/pdf/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  149. package/assets/_default/api/pdf/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  150. package/assets/_default/api/pdf/web/cmaps/GBT-EUC-H.bcmap +0 -0
  151. package/assets/_default/api/pdf/web/cmaps/GBT-EUC-V.bcmap +0 -0
  152. package/assets/_default/api/pdf/web/cmaps/GBT-H.bcmap +0 -0
  153. package/assets/_default/api/pdf/web/cmaps/GBT-V.bcmap +0 -0
  154. package/assets/_default/api/pdf/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  155. package/assets/_default/api/pdf/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  156. package/assets/_default/api/pdf/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  157. package/assets/_default/api/pdf/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  158. package/assets/_default/api/pdf/web/cmaps/H.bcmap +0 -0
  159. package/assets/_default/api/pdf/web/cmaps/HKdla-B5-H.bcmap +0 -0
  160. package/assets/_default/api/pdf/web/cmaps/HKdla-B5-V.bcmap +0 -0
  161. package/assets/_default/api/pdf/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  162. package/assets/_default/api/pdf/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  163. package/assets/_default/api/pdf/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  164. package/assets/_default/api/pdf/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  165. package/assets/_default/api/pdf/web/cmaps/HKm314-B5-H.bcmap +0 -0
  166. package/assets/_default/api/pdf/web/cmaps/HKm314-B5-V.bcmap +0 -0
  167. package/assets/_default/api/pdf/web/cmaps/HKm471-B5-H.bcmap +0 -0
  168. package/assets/_default/api/pdf/web/cmaps/HKm471-B5-V.bcmap +0 -0
  169. package/assets/_default/api/pdf/web/cmaps/HKscs-B5-H.bcmap +0 -0
  170. package/assets/_default/api/pdf/web/cmaps/HKscs-B5-V.bcmap +0 -0
  171. package/assets/_default/api/pdf/web/cmaps/Hankaku.bcmap +0 -0
  172. package/assets/_default/api/pdf/web/cmaps/Hiragana.bcmap +0 -0
  173. package/assets/_default/api/pdf/web/cmaps/KSC-EUC-H.bcmap +0 -0
  174. package/assets/_default/api/pdf/web/cmaps/KSC-EUC-V.bcmap +0 -0
  175. package/assets/_default/api/pdf/web/cmaps/KSC-H.bcmap +0 -0
  176. package/assets/_default/api/pdf/web/cmaps/KSC-Johab-H.bcmap +0 -0
  177. package/assets/_default/api/pdf/web/cmaps/KSC-Johab-V.bcmap +0 -0
  178. package/assets/_default/api/pdf/web/cmaps/KSC-V.bcmap +0 -0
  179. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  180. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  181. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  182. package/assets/_default/api/pdf/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  183. package/assets/_default/api/pdf/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  184. package/assets/_default/api/pdf/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  185. package/assets/_default/api/pdf/web/cmaps/Katakana.bcmap +0 -0
  186. package/assets/_default/api/pdf/web/cmaps/LICENSE +0 -36
  187. package/assets/_default/api/pdf/web/cmaps/NWP-H.bcmap +0 -0
  188. package/assets/_default/api/pdf/web/cmaps/NWP-V.bcmap +0 -0
  189. package/assets/_default/api/pdf/web/cmaps/RKSJ-H.bcmap +0 -0
  190. package/assets/_default/api/pdf/web/cmaps/RKSJ-V.bcmap +0 -0
  191. package/assets/_default/api/pdf/web/cmaps/Roman.bcmap +0 -0
  192. package/assets/_default/api/pdf/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  193. package/assets/_default/api/pdf/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  194. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  195. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  196. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  197. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  198. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  199. package/assets/_default/api/pdf/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  200. package/assets/_default/api/pdf/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  201. package/assets/_default/api/pdf/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  202. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  203. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  204. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  205. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  206. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  207. package/assets/_default/api/pdf/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  208. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  209. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  210. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  211. package/assets/_default/api/pdf/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  212. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  213. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  214. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  215. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  216. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  217. package/assets/_default/api/pdf/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  218. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  219. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  220. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  221. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  222. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  223. package/assets/_default/api/pdf/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  224. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  225. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  226. package/assets/_default/api/pdf/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  227. package/assets/_default/api/pdf/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  228. package/assets/_default/api/pdf/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  229. package/assets/_default/api/pdf/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  230. package/assets/_default/api/pdf/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  231. package/assets/_default/api/pdf/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  232. package/assets/_default/api/pdf/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  233. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  234. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  235. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  236. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  237. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  238. package/assets/_default/api/pdf/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  239. package/assets/_default/api/pdf/web/cmaps/V.bcmap +0 -0
  240. package/assets/_default/api/pdf/web/cmaps/WP-Symbol.bcmap +0 -0
  241. package/assets/_default/api/pdf/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  242. package/assets/_default/api/pdf/web/debugger.js +0 -1
  243. package/assets/_default/api/pdf/web/images/annotation-check.svg +0 -11
  244. package/assets/_default/api/pdf/web/images/annotation-comment.svg +0 -16
  245. package/assets/_default/api/pdf/web/images/annotation-help.svg +0 -26
  246. package/assets/_default/api/pdf/web/images/annotation-insert.svg +0 -10
  247. package/assets/_default/api/pdf/web/images/annotation-key.svg +0 -11
  248. package/assets/_default/api/pdf/web/images/annotation-newparagraph.svg +0 -11
  249. package/assets/_default/api/pdf/web/images/annotation-noicon.svg +0 -7
  250. package/assets/_default/api/pdf/web/images/annotation-note.svg +0 -42
  251. package/assets/_default/api/pdf/web/images/annotation-paragraph.svg +0 -16
  252. package/assets/_default/api/pdf/web/images/findbarButton-next.svg +0 -4
  253. package/assets/_default/api/pdf/web/images/findbarButton-previous.svg +0 -4
  254. package/assets/_default/api/pdf/web/images/grab.cur +0 -0
  255. package/assets/_default/api/pdf/web/images/grabbing.cur +0 -0
  256. package/assets/_default/api/pdf/web/images/loading-dark.svg +0 -24
  257. package/assets/_default/api/pdf/web/images/loading-icon.gif +0 -0
  258. package/assets/_default/api/pdf/web/images/loading.svg +0 -1
  259. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-documentProperties.svg +0 -15
  260. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-firstPage.svg +0 -1
  261. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-handTool.svg +0 -1
  262. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-lastPage.svg +0 -1
  263. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-rotateCcw.svg +0 -1
  264. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-rotateCw.svg +0 -4
  265. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -1
  266. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollVertical.svg +0 -1
  267. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -1
  268. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-selectTool.svg +0 -4
  269. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadEven.svg +0 -1
  270. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadNone.svg +0 -1
  271. package/assets/_default/api/pdf/web/images/secondaryToolbarButton-spreadOdd.svg +0 -1
  272. package/assets/_default/api/pdf/web/images/shadow.png +0 -0
  273. package/assets/_default/api/pdf/web/images/toolbarButton-bookmark.svg +0 -1
  274. package/assets/_default/api/pdf/web/images/toolbarButton-currentOutlineItem.svg +0 -1
  275. package/assets/_default/api/pdf/web/images/toolbarButton-download.svg +0 -4
  276. package/assets/_default/api/pdf/web/images/toolbarButton-menuArrow.svg +0 -1
  277. package/assets/_default/api/pdf/web/images/toolbarButton-openFile.svg +0 -4
  278. package/assets/_default/api/pdf/web/images/toolbarButton-pageDown.svg +0 -7
  279. package/assets/_default/api/pdf/web/images/toolbarButton-pageUp.svg +0 -12
  280. package/assets/_default/api/pdf/web/images/toolbarButton-presentationMode.svg +0 -1
  281. package/assets/_default/api/pdf/web/images/toolbarButton-print.svg +0 -4
  282. package/assets/_default/api/pdf/web/images/toolbarButton-search.svg +0 -4
  283. package/assets/_default/api/pdf/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -4
  284. package/assets/_default/api/pdf/web/images/toolbarButton-sidebarToggle.svg +0 -4
  285. package/assets/_default/api/pdf/web/images/toolbarButton-viewAttachments.svg +0 -1
  286. package/assets/_default/api/pdf/web/images/toolbarButton-viewLayers.svg +0 -1
  287. package/assets/_default/api/pdf/web/images/toolbarButton-viewOutline.svg +0 -1
  288. package/assets/_default/api/pdf/web/images/toolbarButton-viewThumbnail.svg +0 -4
  289. package/assets/_default/api/pdf/web/images/toolbarButton-zoomIn.svg +0 -4
  290. package/assets/_default/api/pdf/web/images/toolbarButton-zoomOut.svg +0 -4
  291. package/assets/_default/api/pdf/web/images/treeitem-collapsed.svg +0 -1
  292. package/assets/_default/api/pdf/web/images/treeitem-expanded.svg +0 -1
  293. package/assets/_default/api/pdf/web/locale/ach/viewer.properties +0 -199
  294. package/assets/_default/api/pdf/web/locale/af/viewer.properties +0 -176
  295. package/assets/_default/api/pdf/web/locale/an/viewer.properties +0 -242
  296. package/assets/_default/api/pdf/web/locale/ar/viewer.properties +0 -246
  297. package/assets/_default/api/pdf/web/locale/ast/viewer.properties +0 -207
  298. package/assets/_default/api/pdf/web/locale/az/viewer.properties +0 -242
  299. package/assets/_default/api/pdf/web/locale/be/viewer.properties +0 -248
  300. package/assets/_default/api/pdf/web/locale/bg/viewer.properties +0 -234
  301. package/assets/_default/api/pdf/web/locale/bn/viewer.properties +0 -236
  302. package/assets/_default/api/pdf/web/locale/bo/viewer.properties +0 -237
  303. package/assets/_default/api/pdf/web/locale/br/viewer.properties +0 -246
  304. package/assets/_default/api/pdf/web/locale/brx/viewer.properties +0 -204
  305. package/assets/_default/api/pdf/web/locale/bs/viewer.properties +0 -193
  306. package/assets/_default/api/pdf/web/locale/ca/viewer.properties +0 -250
  307. package/assets/_default/api/pdf/web/locale/cak/viewer.properties +0 -248
  308. package/assets/_default/api/pdf/web/locale/ckb/viewer.properties +0 -233
  309. package/assets/_default/api/pdf/web/locale/cs/viewer.properties +0 -248
  310. package/assets/_default/api/pdf/web/locale/cy/viewer.properties +0 -248
  311. package/assets/_default/api/pdf/web/locale/da/viewer.properties +0 -248
  312. package/assets/_default/api/pdf/web/locale/de/viewer.properties +0 -248
  313. package/assets/_default/api/pdf/web/locale/dsb/viewer.properties +0 -248
  314. package/assets/_default/api/pdf/web/locale/el/viewer.properties +0 -248
  315. package/assets/_default/api/pdf/web/locale/en-CA/viewer.properties +0 -248
  316. package/assets/_default/api/pdf/web/locale/en-GB/viewer.properties +0 -248
  317. package/assets/_default/api/pdf/web/locale/en-US/viewer.properties +0 -248
  318. package/assets/_default/api/pdf/web/locale/eo/viewer.properties +0 -248
  319. package/assets/_default/api/pdf/web/locale/es-AR/viewer.properties +0 -248
  320. package/assets/_default/api/pdf/web/locale/es-CL/viewer.properties +0 -248
  321. package/assets/_default/api/pdf/web/locale/es-ES/viewer.properties +0 -248
  322. package/assets/_default/api/pdf/web/locale/es-MX/viewer.properties +0 -248
  323. package/assets/_default/api/pdf/web/locale/et/viewer.properties +0 -238
  324. package/assets/_default/api/pdf/web/locale/eu/viewer.properties +0 -248
  325. package/assets/_default/api/pdf/web/locale/fa/viewer.properties +0 -215
  326. package/assets/_default/api/pdf/web/locale/ff/viewer.properties +0 -234
  327. package/assets/_default/api/pdf/web/locale/fi/viewer.properties +0 -248
  328. package/assets/_default/api/pdf/web/locale/fr/viewer.properties +0 -248
  329. package/assets/_default/api/pdf/web/locale/fy-NL/viewer.properties +0 -248
  330. package/assets/_default/api/pdf/web/locale/ga-IE/viewer.properties +0 -176
  331. package/assets/_default/api/pdf/web/locale/gd/viewer.properties +0 -248
  332. package/assets/_default/api/pdf/web/locale/gl/viewer.properties +0 -248
  333. package/assets/_default/api/pdf/web/locale/gn/viewer.properties +0 -248
  334. package/assets/_default/api/pdf/web/locale/gu-IN/viewer.properties +0 -234
  335. package/assets/_default/api/pdf/web/locale/he/viewer.properties +0 -248
  336. package/assets/_default/api/pdf/web/locale/hi-IN/viewer.properties +0 -234
  337. package/assets/_default/api/pdf/web/locale/hr/viewer.properties +0 -248
  338. package/assets/_default/api/pdf/web/locale/hsb/viewer.properties +0 -248
  339. package/assets/_default/api/pdf/web/locale/hu/viewer.properties +0 -248
  340. package/assets/_default/api/pdf/web/locale/hy-AM/viewer.properties +0 -238
  341. package/assets/_default/api/pdf/web/locale/hye/viewer.properties +0 -244
  342. package/assets/_default/api/pdf/web/locale/ia/viewer.properties +0 -248
  343. package/assets/_default/api/pdf/web/locale/id/viewer.properties +0 -248
  344. package/assets/_default/api/pdf/web/locale/is/viewer.properties +0 -231
  345. package/assets/_default/api/pdf/web/locale/it/viewer.properties +0 -190
  346. package/assets/_default/api/pdf/web/locale/ja/viewer.properties +0 -259
  347. package/assets/_default/api/pdf/web/locale/ka/viewer.properties +0 -248
  348. package/assets/_default/api/pdf/web/locale/kab/viewer.properties +0 -248
  349. package/assets/_default/api/pdf/web/locale/kk/viewer.properties +0 -248
  350. package/assets/_default/api/pdf/web/locale/km/viewer.properties +0 -209
  351. package/assets/_default/api/pdf/web/locale/kn/viewer.properties +0 -186
  352. package/assets/_default/api/pdf/web/locale/ko/viewer.properties +0 -248
  353. package/assets/_default/api/pdf/web/locale/lij/viewer.properties +0 -234
  354. package/assets/_default/api/pdf/web/locale/lo/viewer.properties +0 -145
  355. package/assets/_default/api/pdf/web/locale/locale.properties +0 -321
  356. package/assets/_default/api/pdf/web/locale/lt/viewer.properties +0 -248
  357. package/assets/_default/api/pdf/web/locale/ltg/viewer.properties +0 -212
  358. package/assets/_default/api/pdf/web/locale/lv/viewer.properties +0 -234
  359. package/assets/_default/api/pdf/web/locale/meh/viewer.properties +0 -111
  360. package/assets/_default/api/pdf/web/locale/mk/viewer.properties +0 -138
  361. package/assets/_default/api/pdf/web/locale/mr/viewer.properties +0 -230
  362. package/assets/_default/api/pdf/web/locale/ms/viewer.properties +0 -234
  363. package/assets/_default/api/pdf/web/locale/my/viewer.properties +0 -190
  364. package/assets/_default/api/pdf/web/locale/nb-NO/viewer.properties +0 -248
  365. package/assets/_default/api/pdf/web/locale/ne-NP/viewer.properties +0 -176
  366. package/assets/_default/api/pdf/web/locale/nl/viewer.properties +0 -248
  367. package/assets/_default/api/pdf/web/locale/nn-NO/viewer.properties +0 -248
  368. package/assets/_default/api/pdf/web/locale/oc/viewer.properties +0 -248
  369. package/assets/_default/api/pdf/web/locale/pa-IN/viewer.properties +0 -248
  370. package/assets/_default/api/pdf/web/locale/pl/viewer.properties +0 -248
  371. package/assets/_default/api/pdf/web/locale/pt-BR/viewer.properties +0 -248
  372. package/assets/_default/api/pdf/web/locale/pt-PT/viewer.properties +0 -248
  373. package/assets/_default/api/pdf/web/locale/rm/viewer.properties +0 -248
  374. package/assets/_default/api/pdf/web/locale/ro/viewer.properties +0 -240
  375. package/assets/_default/api/pdf/web/locale/ru/viewer.properties +0 -248
  376. package/assets/_default/api/pdf/web/locale/scn/viewer.properties +0 -101
  377. package/assets/_default/api/pdf/web/locale/sco/viewer.properties +0 -248
  378. package/assets/_default/api/pdf/web/locale/si/viewer.properties +0 -201
  379. package/assets/_default/api/pdf/web/locale/sk/viewer.properties +0 -248
  380. package/assets/_default/api/pdf/web/locale/sl/viewer.properties +0 -248
  381. package/assets/_default/api/pdf/web/locale/son/viewer.properties +0 -172
  382. package/assets/_default/api/pdf/web/locale/sq/viewer.properties +0 -235
  383. package/assets/_default/api/pdf/web/locale/sr/viewer.properties +0 -250
  384. package/assets/_default/api/pdf/web/locale/sv-SE/viewer.properties +0 -248
  385. package/assets/_default/api/pdf/web/locale/szl/viewer.properties +0 -246
  386. package/assets/_default/api/pdf/web/locale/ta/viewer.properties +0 -193
  387. package/assets/_default/api/pdf/web/locale/te/viewer.properties +0 -217
  388. package/assets/_default/api/pdf/web/locale/tg/viewer.properties +0 -142
  389. package/assets/_default/api/pdf/web/locale/th/viewer.properties +0 -248
  390. package/assets/_default/api/pdf/web/locale/tl/viewer.properties +0 -242
  391. package/assets/_default/api/pdf/web/locale/tr/viewer.properties +0 -248
  392. package/assets/_default/api/pdf/web/locale/trs/viewer.properties +0 -206
  393. package/assets/_default/api/pdf/web/locale/uk/viewer.properties +0 -248
  394. package/assets/_default/api/pdf/web/locale/ur/viewer.properties +0 -238
  395. package/assets/_default/api/pdf/web/locale/uz/viewer.properties +0 -162
  396. package/assets/_default/api/pdf/web/locale/vi/viewer.properties +0 -248
  397. package/assets/_default/api/pdf/web/locale/wo/viewer.properties +0 -122
  398. package/assets/_default/api/pdf/web/locale/xh/viewer.properties +0 -176
  399. package/assets/_default/api/pdf/web/locale/zh-CN/viewer.properties +0 -248
  400. package/assets/_default/api/pdf/web/locale/zh-TW/viewer.properties +0 -248
  401. package/assets/_default/api/pdf/web/standard_fonts/FoxitDingbats.pfb +0 -0
  402. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixed.pfb +0 -0
  403. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  404. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  405. package/assets/_default/api/pdf/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  406. package/assets/_default/api/pdf/web/standard_fonts/FoxitSans.pfb +0 -0
  407. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansBold.pfb +0 -0
  408. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansBoldItalic.pfb +0 -0
  409. package/assets/_default/api/pdf/web/standard_fonts/FoxitSansItalic.pfb +0 -0
  410. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerif.pfb +0 -0
  411. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  412. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  413. package/assets/_default/api/pdf/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  414. package/assets/_default/api/pdf/web/standard_fonts/FoxitSymbol.pfb +0 -0
  415. package/assets/_default/api/pdf/web/standard_fonts/LICENSE_FOXIT +0 -27
  416. package/assets/_default/api/pdf/web/standard_fonts/LICENSE_LIBERATION +0 -102
  417. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  418. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  419. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  420. package/assets/_default/api/pdf/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  421. package/assets/_default/api/pdf/web/viewer.css +0 -2746
  422. package/assets/_default/api/pdf/web/viewer.html +0 -398
  423. package/assets/_default/api/pdf/web/viewer.js +0 -2
  424. package/assets/_default/api/pdf/web/viewer.js.LICENSE.txt +0 -21
  425. package/assets/_default/api/pdf/web/viewer.js.map +0 -1
@@ -308,7 +308,7 @@ export class ObjectDetailsComponent extends UnsubscribeOnDestroy {
308
308
  ObjectDetailsComponent.decorators = [
309
309
  { type: Component, args: [{
310
310
  selector: 'eo-object-details',
311
- template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container *ngIf=\"!isReference; else tplHeadReference\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare\" [ngClass]=\"{'enabled': enableSync}\"\n [iconSrc]=\"'assets/_default/svg/ic_link.svg'\" [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\"\n (click)=\"enableSync = !enableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\" *ngIf=\"!enableCompare && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\" *ngIf=\"!enableCompare && item.content && item.rights.edit && (agentIsConnected$ | async)\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n <ng-template #tplHeadReference>\n <a class=\"button reference primary\"\n [title]=\"('eo.object.reference.tooltip' | translate:{title:referenceTitle})\"\n [routerLink]=\"['/object', item.id]\"\n [queryParams]=\"{type: item.typeName}\">{{'eo.object.reference.open'|translate}}</a>\n </ng-template>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\"\n [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <eo-tab-container [pluginPanels]=\"externalPanels\" [cacheLayout]=\"!enableCompare && cacheLayout\" [defaultPanelOrder]=\"!enableCompare && panelOrder\"\n [dndEnabled]=\"!enableCompare\" [enableSlave]=\"!enableCompare || item2\" [enableSync]=\"enableCompare && enableSync\"\n [version]=\"enableCompare && {master: item && item.version, slave: item2 && item2.version}\">\n\n <eo-tab-panel [id]=\"'summary'\" *ngIf=\"isVisible('summary')\" header=\"{{'eo.object.summary.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'indexdata'\" *ngIf=\"isVisible('indexdata')\" header=\"{{'eo.object.indexdata.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n \n <eo-tab-panel [id]=\"'preview'\" *ngIf=\"isVisible('preview')\" header=\"{{'eo.object.content.title' | translate}}\" [isSlave]=\"!enableCompare\"\n #preview>\n <ng-template pTemplate=\"content\" *ngIf=\"!undockWinActive; else loadPreview\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [disabled]=\"!preview.selected\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n <ng-template #loadPreview>\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('history') && !enableCompare\" [id]=\"'history'\" header=\"{{'eo.object.history.title' | translate}}\" #history>\n <ng-template pTemplate=\"content\">\n <eo-object-history *ngIf=\"history.selected\" [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('links') && !enableCompare\" [id]=\"'links'\" header=\"{{'eo.object.links.title' | translate}}\" #links>\n <ng-template pTemplate=\"content\">\n <eo-object-links *ngIf=\"links.selected\" [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n </eo-tab-panel>\n\n <!-- slave tabs -->\n\n <eo-tab-panel *ngIf=\"isVisible('summary') && enableCompare\" [id]=\"'summary2'\" header=\"{{'eo.object.summary.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [indexdata]=\"indexDataPreview2\" [baseparams]=\"baseparams2\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('indexdata') && enableCompare\" [id]=\"'indexdata2'\" header=\"{{'eo.object.indexdata.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit *ngIf=\"item2\" [dmsObject]=\"item2\" (indexDataSaved)=\"onIndexDataSaved($event, item2)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('preview') && enableCompare\" [id]=\"'preview2'\" header=\"{{'eo.object.content.title' | translate}}\"\n [isSlave]=\"true\" #preview2>\n <ng-template pTemplate=\"content\">\n <eo-media *ngIf=\"item2\" [dmsObject]=\"item2\" [disabled]=\"!preview2.selected\" [undockDisabled]=\"enableCompare\"\n [useVersion]=\"true\" [searchTerm]=\"searchTerm\" #viewer2></eo-media>\n </ng-template>\n </eo-tab-panel>\n \n <eo-tab-panel *ngIf=\"enableCompare && enableDiff\" [id]=\"'changes'\" header=\"{{'eo.object.changes.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [diff]=\"{indexdata : indexDataPreview, indexdata2: indexDataPreview2, baseparams: baseparams, baseparams2: baseparams2}\" \n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <ng-content></ng-content>\n\n </eo-tab-container>\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>",
311
+ template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"object-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError; else noItem\">\n\n <div class=\"eo-head eo-head-tabs\" [eoShortcuts]=\"shortcuts\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"eo-header-actions-container\">\n <div class=\"eo-header-actions\">\n <ng-container *ngIf=\"!isReference; else tplHeadReference\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\" (click)=\"refreshContent()\"></eo-icon>\n <eo-icon class=\"button sync-tab-btn\" *ngIf=\"enableCompare\" [ngClass]=\"{'enabled': enableSync}\"\n [iconSrc]=\"'assets/_default/svg/ic_link.svg'\" [iconTitle]=\"'eo.versions.detail.glue.tooltip' | translate\"\n (click)=\"enableSync = !enableSync\"></eo-icon>\n <eo-favorite-icon [item]=\"item\" *ngIf=\"!enableCompare && capabilities.favorites && !isJournalObject(item)\">\n </eo-favorite-icon>\n <eo-icon class=\"button oc-button\" *ngIf=\"!enableCompare && item.content\" (click)=\"downloadOriginalContent()\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"></eo-icon>\n <eo-edit-icon [item]=\"item\" *ngIf=\"!enableCompare && item.content && item.rights.edit && (agentIsConnected$ | async)\">\n </eo-edit-icon>\n <eo-icon class=\"button am-button\" (click)=\"showActions()\"\n [iconTitle]=\"('eo.object.details.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </ng-container>\n\n <ng-template #tplHeadReference>\n <a class=\"button reference primary\"\n [title]=\"('eo.object.reference.tooltip' | translate:{title:referenceTitle})\"\n [routerLink]=\"['/object', item.id]\"\n [queryParams]=\"{type: item.typeName}\">{{'eo.object.reference.open'|translate}}</a>\n </ng-template>\n\n </div>\n\n <div class=\"eo-header-status-icons\">\n <a class=\"content-link\" [title]=\"'eo.object.contentlink.tooltip' | translate\" *ngIf=\"item.content?.linked\"\n [routerLink]=\"'/object/' + item.content.id\" [queryParams]=\"{type: item.content.type}\">\n <span>{{'eo.object.contentlink' | translate}}</span>\n </a>\n <eo-icon class=\"subscription-icon\" *ngIf=\"item.subscriptions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_subscription.svg'\"\n [iconTitle]=\"subscriptionIconTooltip\"></eo-icon>\n <eo-icon class=\"resubmission-icon\" *ngIf=\"item.resubmissions.length\"\n [iconSrc]=\"'assets/_default/svg/ic_resubmission.svg'\"\n [iconTitle]=\"'eo.object.resubmission.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"shared-icon\" *ngIf=\"item.additionalvisibility.length\"\n [iconSrc]=\"'assets/_default/svg/ic_share.svg'\"\n [iconTitle]=\"'eo.object.shared.tooltip' | translate\"></eo-icon>\n <eo-icon class=\"lock\" [ngClass]=\"{'myLock': item.lock.by.me}\" *ngIf=\"item.lock\"\n [iconSrc]=\"'assets/_default/svg/ic_lock.svg'\" [iconTitle]=\"lockTooltip\"></eo-icon>\n <eo-icon class=\"finalized-icon\" *ngIf=\"item.isFinalized\" [iconSrc]=\"'assets/_default/svg/ic_finalized.svg'\"\n [iconTitle]=\"'eo.object.finalized.tooltip' | translate\"></eo-icon>\n </div>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <eo-tab-container [pluginPanels]=\"externalPanels\" [cacheLayout]=\"!enableCompare && cacheLayout\" [defaultPanelOrder]=\"!enableCompare && panelOrder\"\n [dndEnabled]=\"!enableCompare\" [enableSlave]=\"!enableCompare || item2\" [enableSync]=\"enableCompare && enableSync\"\n [version]=\"enableCompare && {master: item && item.version, slave: item2 && item2.version}\">\n\n <eo-tab-panel [id]=\"'summary'\" *ngIf=\"isVisible('summary')\" header=\"{{'eo.object.summary.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\" [dmsObject]=\"item\"\n [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'indexdata'\" *ngIf=\"isVisible('indexdata')\" header=\"{{'eo.object.indexdata.title' | translate}}\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit [dmsObject]=\"item\" (indexDataSaved)=\"onIndexDataSaved($event, item)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel [id]=\"'preview'\" *ngIf=\"isVisible('preview')\" header=\"{{'eo.object.content.title' | translate}}\" [isSlave]=\"!enableCompare\"\n #preview>\n <ng-template pTemplate=\"content\" *ngIf=\"!undockWinActive; else loadPreview\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [disabled]=\"!preview.selected\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n <ng-template #loadPreview>\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\"\n [useVersion]=\"item.id === item.content?.id\" [searchTerm]=\"searchTerm\" #viewer></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('history') && !enableCompare\" [id]=\"'history'\" header=\"{{'eo.object.history.title' | translate}}\" #history>\n <ng-template pTemplate=\"content\">\n <eo-object-history *ngIf=\"history.selected\" [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('links') && !enableCompare\" [id]=\"'links'\" header=\"{{'eo.object.links.title' | translate}}\" #links>\n <ng-template pTemplate=\"content\">\n <eo-object-links *ngIf=\"links.selected\" [dmsObject]=\"item\"></eo-object-links>\n </ng-template>\n </eo-tab-panel>\n\n <!-- slave tabs -->\n\n <eo-tab-panel *ngIf=\"isVisible('summary') && enableCompare\" [id]=\"'summary2'\" header=\"{{'eo.object.summary.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [indexdata]=\"indexDataPreview2\" [baseparams]=\"baseparams2\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('indexdata') && enableCompare\" [id]=\"'indexdata2'\" header=\"{{'eo.object.indexdata.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-object-form-edit *ngIf=\"item2\" [dmsObject]=\"item2\" (indexDataSaved)=\"onIndexDataSaved($event, item2)\"\n [formDisabled]=\"enableCompare || isReference\"></eo-object-form-edit>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"isVisible('preview') && enableCompare\" [id]=\"'preview2'\" header=\"{{'eo.object.content.title' | translate}}\"\n [isSlave]=\"true\" #preview2>\n <ng-template pTemplate=\"content\">\n <eo-media *ngIf=\"item2\" [dmsObject]=\"item2\" [disabled]=\"!preview2.selected\" [undockDisabled]=\"enableCompare\"\n [useVersion]=\"true\" [searchTerm]=\"searchTerm\" #viewer2></eo-media>\n </ng-template>\n </eo-tab-panel>\n\n <eo-tab-panel *ngIf=\"enableCompare && enableDiff\" [id]=\"'changes'\" header=\"{{'eo.object.changes.title' | translate}}\"\n [isSlave]=\"true\">\n <ng-template pTemplate=\"content\">\n <eo-indexdata-summary *ngIf=\"item2\" [diff]=\"{indexdata : indexDataPreview, indexdata2: indexDataPreview2, baseparams: baseparams, baseparams2: baseparams2}\"\n [dmsObject]=\"item2\" [enableVersions]=\"!enableCompare\"></eo-indexdata-summary>\n </ng-template>\n </eo-tab-panel>\n\n <ng-content></ng-content>\n\n </eo-tab-container>\n </div>\n</ng-container>\n\n<ng-template #noItem>\n <span class=\"not-found\" *ngIf=\"nodmsobject\" translate>eo.bpm.nodmsobject</span>\n <eo-error-message *ngIf=\"!showLoader\"\n [emptyState]=\"{icon: emptyState.icon, text: emptyState.text, className: emptyState.className}\">\n <ng-content select=\".error\"></ng-content>\n </eo-error-message>\n</ng-template>\n",
312
312
  providers: [ContentPreviewService],
313
313
  styles: [":host{background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-subtitle,:host .eo-head .eo-header .eo-header-info .eo-header-title{-moz-user-select:text;-webkit-user-select:text;user-select:text}:host .eo-body__not-available{background:rgba(var(--color-black-rgb),.4);opacity:.4}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .lock.myLock{background:var(--state-orange)!important;color:var(--color-white)}:host .not-found{background:var(--color-error);border-radius:2px;color:var(--panel-background);flex:0 0 auto;margin:calc(var(--app-pane-padding)/2);padding:calc(var(--app-pane-padding)/4);text-align:center}:host .eo-header-status-icons{display:flex;justify-content:flex-end;margin-top:var(--app-pane-padding)}:host .eo-header-status-icons>eo-icon{background-color:var(--color-primary-2);color:var(--color-white);height:18px;margin-left:1px;padding:calc(var(--app-pane-padding)/4);width:18px}:host .eo-header-status-icons>eo-icon:first-child{border-bottom-left-radius:4px;border-top-left-radius:4px}:host .eo-header-status-icons>eo-icon:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}:host .eo-header-status-icons>eo-icon.finalized-icon{background-color:var(--color-success)}:host .eo-header-status-icons>eo-icon.lock{background:var(--color-error)!important;border-radius:2px;color:var(--color-white);height:18px;padding:1px;width:18px}:host .eo-header-status-icons>eo-icon.lock.myLock{background:var(--state-orange)!important}:host .eo-header-status-icons>a{align-items:center;background-color:var(--color-success);border-radius:2px;color:var(--color-white);display:flex;font-size:var(--font-hint);line-height:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:0 4px 1px;text-decoration:none}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .object-detail__loader{margin:auto}:host ::ng-deep .sync-tab-btn{color:rgba(var(--color-black-rgb),.2)}:host ::ng-deep .sync-tab-btn .svg-link{fill:transparent}:host ::ng-deep .sync-tab-btn.enabled .svg-link{fill:currentColor}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}:host ::ng-deep #indexdata{overflow:hidden}:host ::ng-deep #indexdata .object-form-edit{background:transparent!important;height:100%;margin:0;position:relative}:host ::ng-deep #indexdata .object-form-edit eo-object-form{background:transparent;overflow:auto}:host ::ng-deep #indexdata .object-form-edit eo-object-form .eo-object-form{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding)}:host ::ng-deep #indexdata .object-form-edit .form-controls{-webkit-animation:eoFadeInUp .2s;animation:eoFadeInUp .2s;border:4px solid var(--panel-background-grey)}:host ::ng-deep #indexdata .object-form-edit .form-controls .buttons{background:var(--panel-background);border-top:1px solid var(--panel-divider-color);padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)!important}"]
314
314
  },] }
@@ -350,4 +350,4 @@ ObjectDetailsComponent.propDecorators = {
350
350
  hasContent: [{ type: Output }],
351
351
  dataType: [{ type: HostBinding, args: ['attr.data-type',] }]
352
352
  };
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWRldGFpbHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUFFLFdBQVcsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxNQUFNLEVBQW9CLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFjLGFBQWEsRUFDaEYsVUFBVSxFQUFFLGNBQWMsRUFBZ0IsbUJBQW1CLEVBQzdELFlBQVksRUFBRSxVQUFVLEVBQ3pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSxxREFBcUQsQ0FBQztBQUM3RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBUXZFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxvQkFBb0I7SUFxSTlELFlBQW9CLE1BQWMsRUFDeEIsS0FBcUIsRUFDckIsTUFBcUIsRUFDckIsS0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsT0FBdUIsRUFDdkIsVUFBc0IsRUFDdEIsU0FBMkIsRUFDM0IsYUFBNEIsRUFDNUIsaUJBQXNDLEVBQ3RDLGNBQXFDLEVBQ3JDLFlBQTBCLEVBQzFCLGFBQXFCLEVBQ3JCLFNBQTJCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBZFUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE3SXJDLGdEQUFnRDtRQUN4QyxpQkFBWSxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFJM0UsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxFQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUM7UUFDNUYsc0JBQWlCLEdBQXdCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBUS9ELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUtuQixnQkFBVyxHQUFlLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBbUVwRixtQkFBYyxHQUFHLElBQUksU0FBUyxFQUFxQixDQUFDO1FBTXBELG1CQUFtQjtRQUNuQixjQUFTLEdBQTRCO1lBQ25DLEVBQUUsRUFBRSxtQkFBbUI7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO1lBQ3JFLFFBQVEsRUFBRSxzQ0FBc0M7WUFDaEQsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLGtDQUFrQztvQkFDM0MsUUFBUSxFQUFFLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO29CQUN6QyxlQUFlLEVBQUUsR0FBRyxFQUFFO3dCQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BELENBQUM7b0JBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTt3QkFDYixPQUFPLEtBQUssQ0FBQztvQkFDZixDQUFDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBR08sbUJBQWMsR0FBaUIsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNoRCxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFNMUUsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFrQnRCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBa0IsRUFBRSxFQUFFO1lBQ2pILElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFDLFdBQVcsRUFBRSxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO2FBQzdGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBMUlELElBQWEsU0FBUyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQVdELElBQ0ksVUFBVSxDQUFDLENBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxNQUFpQjtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQWMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsRUFDQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLE1BQWlCO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxDQUFDLEdBQWMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLENBQVk7O1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQztnQkFDeEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pEO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUc7c0JBQzdELENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztzQkFDakUsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO2FBQzFFO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFFRCxVQUFJLElBQUksQ0FBQyxJQUFJLDBDQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsQ0FBWTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBaUNELElBQW1DLFFBQVE7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFnQ08sWUFBWSxDQUFDLElBQVM7UUFDNUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxpQ0FBSyxJQUFJLEtBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25FLENBQUM7SUFFTyxhQUFhO1FBRW5CLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTO3FCQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztxQkFDNUIsVUFBVTtxQkFDVixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUNwQztxQkFDQSxTQUFTLENBQUMsQ0FBQyxHQUFVLEVBQUUsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDO29CQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUM7Z0JBQzdELENBQUMsQ0FBQyxDQUFDO2dCQUNMLE9BQU87YUFDUjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUztxQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7cUJBQzVCLE1BQU07cUJBQ04sSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FDcEM7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFjLEVBQUUsRUFBRTt3QkFDckYsMkVBQTJFO3dCQUMzRSxzRkFBc0Y7d0JBQ3RGLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDcEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO3lCQUMvRDt3QkFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzt3QkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQzFCLENBQUMsRUFDQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3JELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBRU47U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxJQUFlLEVBQUUsUUFBYztRQUM3RCxNQUFNLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFckcsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3BDLElBQUksQ0FDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCxJQUFJLGdCQUFnQixHQUFHO2dCQUNyQixJQUFJO2dCQUNKLElBQUksRUFBRSxRQUFRLElBQUksSUFBSTthQUN2QixDQUFDO1lBQ0YsSUFBSSxVQUFVLEdBQWU7Z0JBQzNCLEVBQUU7Z0JBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMvQixVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUc7Z0JBQ3JELFVBQVUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHO2dCQUN4RCxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3pELGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDakUsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUNyQixTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNuRixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM3RSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ2hFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDbEYsQ0FBQztZQUNGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWlCOztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLEVBQUU7WUFDakMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3ZCO1FBQ0QscUJBQXFCO1FBQ3JCLE9BQU8sT0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsRUFBRSwwQ0FBRSxNQUFNLE1BQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFFLEVBQUUsS0FBTTtRQUNuQixNQUFNLFdBQVcsR0FBcUIsRUFBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUk7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztpQkFDekMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO29CQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQ25DO3FCQUFNO29CQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25GLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBSTtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVPLDZCQUE2QixDQUFDLElBQWU7UUFDbkQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RSxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUNuTixNQUFNLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4TixNQUFNLDhCQUE4QixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzTixJQUFJLHNCQUFzQixFQUFFO1lBQzFCLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1NBQ3BGO2FBQ0ksSUFBSSwyQkFBMkIsRUFBRTtZQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztTQUM5RTthQUNJLElBQUksOEJBQThCLEVBQUU7WUFDdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDakY7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRTdELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsWUFBWTthQUNkLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7YUFDakMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FDcEM7YUFDQSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFlBQVk7YUFDZCxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDO2FBQ25DLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQ3BDO2FBQ0EsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O1lBblhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixtdVJBQThDO2dCQUU5QyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzs7YUFDbkM7OztZQTFCTyxNQUFNO1lBQW9CLGNBQWM7WUFNcUIsYUFBYTtZQVkxRSxpQkFBaUI7WUFIakIsWUFBWTtZQVJOLGNBQWM7WUFBMUIsVUFBVTtZQUtWLGdCQUFnQjtZQVJWLGFBQWE7WUFHdUIsbUJBQW1CO1lBRDNDLHFCQUFxQjtZQUV2QyxZQUFZO1lBUFksTUFBTTtZQUF4QixnQkFBZ0I7OztzQkE2QnJCLFNBQVMsU0FBQyxRQUFROzBCQWNsQixXQUFXLFNBQUMsaUJBQWlCO3dCQUU3QixLQUFLO3lCQUdMLEtBQUs7NEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFNTCxLQUFLO3dCQVNMLEtBQUssU0FBQyxRQUFRO3lCQVdkLEtBQUssU0FBQyxTQUFTO3dCQVFmLEtBQUssU0FBQyxNQUFNO3lCQTZCWixLQUFLLFNBQUMsT0FBTzt3QkFVYixlQUFlLFNBQUMsaUJBQWlCO3lCQUNqQyxlQUFlLFNBQUMsa0JBQWtCOzZCQXVCbEMsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLE1BQU07dUJBRU4sV0FBVyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3Rha2VVbnRpbCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIE9uSW5pdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYWJQYW5lbENvbXBvbmVudH0gZnJvbSAnLi4vdGFiLWNvbnRhaW5lci90YWItcGFuZWwvdGFiLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYlBsdWdpbkNvbXBvbmVudH0gZnJvbSAnLi4vcGx1Z2lucy9wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7R2xvYmFsU2hvcnRjdXRDb21wb25lbnR9IGZyb20gJy4uL3Nob3J0Y3V0cy9nbG9iYWwtc2hvcnRjdXQtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1Nob3J0Y3V0fSBmcm9tICcuLi9zaG9ydGN1dHMvc2hvcnRjdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzLCBBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgQ29uZmlnLCBTdWJzY3JpcHRpb25Nb2RlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtNZWRpYUNvbXBvbmVudH0gZnJvbSAnLi4vbWVkaWEvbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7SW5kZXhEYXRhfSBmcm9tICcuLi91aS9pbmRleGRhdGEtc3VtbWFyeS9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERtc09iamVjdCwgVXRpbHMsIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSwgVXBsb2FkVGFyZ2V0LCBCYXNlUGFyYW1zLCBTeXN0ZW1TZXJ2aWNlLCBEbXNQYXJhbXMsXG4gIERtc1NlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLCBDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSwgRW5haW9FdmVudFxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2VsZWN0aW9uQ29uZmlnLFxuICBTZWxlY3Rpb25TZXJ2aWNlXG59IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FnZW50U2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb250ZW50UHJldmlld1NlcnZpY2V9IGZyb20gJy4uL21lZGlhL2NvbnRlbnQtcHJldmlldy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDb250ZW50UHJldmlld1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdERldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXInKSBwcmV2aWV3OiBNZWRpYUNvbXBvbmVudDtcblxuICAvLyBnZW5lcmF0ZSB1bmlxdWUgaWQgdG8gcGFzcyB0byB1cGxvYWQgcmVnaXN0cnlcbiAgcHJpdmF0ZSB1cGxvYWRUYXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFV0aWxzLnV1aWQoKSwgVXBsb2FkVGFyZ2V0Lk9CSkVDVCk7XG4gIGl0ZW06IERtc09iamVjdDtcbiAgaW5kZXhEYXRhUHJldmlldzogSW5kZXhEYXRhO1xuICBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBoYXNFcnJvciA9IGZhbHNlO1xuICBsb2NrVG9vbHRpcDogc3RyaW5nO1xuICBub2Rtc29iamVjdCA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHBhbmVsT3JkZXIgPSB7J21hc3Rlcic6IFsnc3VtbWFyeScsICdpbmRleGRhdGEnLCAnaGlzdG9yeScsICdsaW5rcyddLCAnc2xhdmUnOiBbJ3ByZXZpZXcnXX07XG4gIGFnZW50SXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5hZ2VudFNlcnZpY2UuaXNDb25uZWN0ZWQkO1xuICBzdWJzY3JpcHRpb25JY29uVG9vbHRpcDogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlZmVyZW5jZScpIGlzUmVmZXJlbmNlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCByZWZlcmVuY2UoaXNSZWY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUmVmZXJlbmNlID0gaXNSZWY7XG4gIH1cbiAgQElucHV0KCkgc2VhcmNoVGVybTogc3RyaW5nO1xuICBASW5wdXQoKSBlbmFibGVDb21wYXJlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZURpZmYgPSB0cnVlO1xuICBASW5wdXQoKSBlbmFibGVTeW5jID0gdHJ1ZTtcbiAgQElucHV0KCkgY2FjaGVMYXlvdXQ6IGFueTtcbiAgaXRlbTI6IERtc09iamVjdDtcbiAgaW5kZXhEYXRhUHJldmlldzI6IEluZGV4RGF0YTtcbiAgYmFzZXBhcmFtczI6IEJhc2VQYXJhbXM7XG4gIHByaXZhdGUgX2VtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJ2ljX25vLWZpbGUuc3ZnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBlbXB0eVN0YXRlKGU6IEVtcHR5U3RhdGUpIHtcbiAgICB0aGlzLl9lbXB0eVN0YXRlID0gZSB8fCBFbXB0eVN0YXRlU2VydmljZS5kZWZhdWx0RW1wdHlTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0IGVtcHR5U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5U3RhdGU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpXG4gIHNldCBkbXNQYXJhbXMocGFyYW1zOiBEbXNQYXJhbXMpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMubG9hZERtc09iamVjdChwYXJhbXMpLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgIHRoaXMuZG1zT2JqZWN0ID0gcmVzO1xuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgfSxcbiAgICAgIFV0aWxzLnRocm93KCgpID0+IHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSkpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgncGFyYW1zMicpXG4gIHNldCBkbXNQYXJhbXMyKHBhcmFtczogRG1zUGFyYW1zKSB7XG4gICAgdGhpcy5sb2FkRG1zT2JqZWN0KHBhcmFtcylcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuZG1zT2JqZWN0MiA9IHJlcztcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSkpKTtcbiAgfVxuXG4gIEBJbnB1dCgnaXRlbScpXG4gIHNldCBkbXNPYmplY3QodjogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5pdGVtID0gdjtcbiAgICB0aGlzLm9uSGFzRXJyb3IoKTtcbiAgICAvLyBwcmVwYXJlIGluZGV4ZGF0YSBwcmV2aWV3XG4gICAgdGhpcy5vbkluZGV4RGF0YVNhdmVkKG51bGwsIHRoaXMuaXRlbSk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfTE9BREVELCB0aGlzLml0ZW0pO1xuXG4gICAgaWYgKHRoaXMuaXRlbSkge1xuICAgICAgaWYgKHRoaXMuaXRlbS5pc0FjdGl2ZVZlcnNpb24gJiYgIXRoaXMuZW5hYmxlQ29tcGFyZSkge1xuICAgICAgICB0aGlzLnVwbG9hZFRhcmdldC5yZWZlcmVuY2VPYmplY3QgPSB0aGlzLml0ZW07XG4gICAgICAgIHRoaXMudXBsb2FkVGFyZ2V0Lm9uVXBsb2FkU3VjY2VzcyA9ICgpID0+IHRoaXMuZG1zUGFyYW1zID0ge2lkOiB2LmlkLCB0eXBlOiB2LnR5cGVOYW1lfTtcbiAgICAgICAgdGhpcy51cGxvYWRSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLnVwbG9hZFRhcmdldCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLml0ZW0ubG9jaykge1xuICAgICAgICB0aGlzLmxvY2tUb29sdGlwID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmxvY2snKSArICcgJ1xuICAgICAgICAgICsgKG5ldyBMb2NhbGVEYXRlUGlwZSh0aGlzLnRyYW5zbGF0ZSkudHJhbnNmb3JtKHRoaXMuaXRlbS5sb2NrLm9uKSlcbiAgICAgICAgICArICcsICcgKyB0aGlzLml0ZW0ubG9jay5ieS5sYWJlbCArICcgKCcgKyB0aGlzLml0ZW0ubG9jay5ieS5uYW1lICsgJyknO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoMCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXRlbT8uc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWNvblRvb2x0aXAgPSB0aGlzLmNyZWF0ZVN1YnNjcmlwdGlvbkljb25Ub29sdGlwKHRoaXMuaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdpdGVtMicpXG4gIHNldCBkbXNPYmplY3QyKHY6IERtc09iamVjdCkge1xuICAgIHRoaXMuaXRlbTIgPSB2O1xuICAgIHRoaXMub25IYXNFcnJvcigpO1xuICAgIHRoaXMub25JbmRleERhdGFTYXZlZChudWxsLCB0aGlzLml0ZW0yKTtcbiAgfVxuXG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBleHRlcm5hbFBhbmVscyA9IG5ldyBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJQYW5lbENvbXBvbmVudCkgdGFiUGFuZWxzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKFRhYlBsdWdpbkNvbXBvbmVudClcbiAgdGFiUGx1Z2luczogUXVlcnlMaXN0PFRhYlBsdWdpbkNvbXBvbmVudD47XG5cbiAgLy8gc2hvcnRjdXQgYWN0aW9uc1xuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xuICAgIGlkOiAnZW8ub2JqZWN0LWRldGFpbHMnLFxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZW8tb2JqZWN0LWRldGFpbHMudGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLnNob3J0Y3V0cy5lby1vYmplY3QtZGV0YWlscy50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLm9wZW4uY29udGV4dCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5vcGVuLmNvbnRleHQnLFxuICAgICAgICBzaG9ydGN1dDogbmV3IFNob3J0Y3V0KCdPJywgZmFsc2UsIGZhbHNlKSxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuT2JqZWN0KHRoaXMuaXRlbS5pZCwgdGhpcy5pdGVtLnR5cGVOYW1lKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcbiAgQElucHV0KCkgcGFyc2VEbXNQYXJhbXM6IChkYXRhKSA9PiB7fSA9IHRoaXMuZ2V0RG1zUGFyYW1zO1xuICBAT3V0cHV0KCkgaGFzQ29udGVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR5cGUnKSBnZXQgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbSA/IHRoaXMuaXRlbS50eXBlTmFtZSA6ICdub25lJztcbiAgfVxuXG4gIHVuZG9ja1dpbkFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbXB0eTogRW1wdHlTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHVwbG9hZFJlZ2lzdHJ5OiBVcGxvYWRSZWdpc3RyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZyxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnBhbmVsT3JkZXIgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0UmF3KCdvYmplY3REZXRhaWxzVGFicycpIHx8IHRoaXMucGFuZWxPcmRlcjtcbiAgICB0aGlzLnVuZG9ja1dpbkFjdGl2ZSA9IENvbnRlbnRQcmV2aWV3U2VydmljZS51bmRvY2tXaW5BY3RpdmUoKTtcblxuICAgIHRoaXMuYWdlbnRTZXJ2aWNlLnNldEFnZW50U3RhdHVzKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2Nvbm5lY3RhZ2VudCddKS5zdWJzY3JpYmUoKGhhc1N0YXR1czogYm9vbGVhbikgPT4ge1xuICAgICAgaWYgKGhhc1N0YXR1cykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge3F1ZXJ5UGFyYW1zOiB7Y29ubmVjdGFnZW50OiBudWxsfSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ30pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuXG4gIHByaXZhdGUgZ2V0RG1zUGFyYW1zKGRhdGE6IGFueSk6IERtc1BhcmFtcyB7XG4gICAgcmV0dXJuIGRhdGEgPyB7Li4uZGF0YSwgdHlwZTogZGF0YS50eXBlTmFtZSB8fCBkYXRhLnR5cGV9IDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGVudCgpIHtcblxuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5lbmFibGVDb21wYXJlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5pbilcbiAgICAgICAgICAuc2VsZWN0aW9uJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kbXNQYXJhbXMgPSB0aGlzLnBhcnNlRG1zUGFyYW1zKHJlc1swXSkgYXMgRG1zUGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5kbXNQYXJhbXMyID0gdGhpcy5wYXJzZURtc1BhcmFtcyhyZXNbMV0pIGFzIERtc1BhcmFtcztcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAgIC5mb2N1cyRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxvYWREbXNPYmplY3QodGhpcy5wYXJzZURtc1BhcmFtcyhyZXMpIGFzIERtc1BhcmFtcykuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgICAvLyByZWZyZXNoaW5nIG9iamVjdCBkZXRhaWxzIG1heSByZXN1bHQgaW4gYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBvYmplY3RcbiAgICAgICAgICAgICAgLy8gc28gd2UnbGwgdXNlIHRoaXMgdHJpZ2dlciB0byBhbHNvIGVtaXR0IHRob3NlIGNoYW5nZXMgdG8gb3RoZXIgbGlzdGVuaW5nIGNvbXBvbmVudHNcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbSAmJiByZXMgJiYgKHRoaXMuaXRlbS5pZCA9PT0gcmVzLmlkKSAmJiByZXMudmVyc2lvbiA+IHRoaXMuaXRlbS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRCwgcmVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmRtc09iamVjdCA9IHJlcztcbiAgICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBVdGlscy50aHJvdygoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnVucmVnaXN0ZXIodGhpcy51cGxvYWRUYXJnZXQuaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uSGFzRXJyb3IodHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hDb250ZW50KCkge1xuICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlSW5kZXhEYXRhUHJldmlldyhpdGVtOiBEbXNPYmplY3QsIGZvcm1EYXRhPzogYW55KSB7XG4gICAgY29uc3Qge2lkLCBkYXRhLCB0eXBlLCBjcmVhdGVkLCBtb2RpZmllZCwgY29udGVudCwgY29udGVudEZpbGVOYW1lLCBjb250ZW50RmlsZVNpemUsIHZlcnNpb259ID0gaXRlbTtcblxuICAgIHJldHVybiB0aGlzLnN5c3RlbVxuICAgICAgLmdldE9iamVjdFR5cGVGb3JtKHR5cGUubmFtZSwgJ0VESVQnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmb3JtID0+IHtcbiAgICAgICAgICBsZXQgaW5kZXhEYXRhUHJldmlldyA9IHtcbiAgICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSB8fCBkYXRhXG4gICAgICAgICAgfTtcbiAgICAgICAgICBsZXQgYmFzZXBhcmFtczogQmFzZVBhcmFtcyA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgdHlwZTogdHlwZS5uYW1lLFxuICAgICAgICAgICAgY3JlYXRlZE9uOiBuZXcgRGF0ZShjcmVhdGVkLm9uKSxcbiAgICAgICAgICAgIG1vZGlmaWVkT246IG5ldyBEYXRlKG1vZGlmaWVkLm9uKSxcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogYCR7Y3JlYXRlZC5ieS50aXRsZX0gKCR7Y3JlYXRlZC5ieS5uYW1lfSlgLFxuICAgICAgICAgICAgbW9kaWZpZWRCeTogYCR7bW9kaWZpZWQuYnkudGl0bGV9ICgke21vZGlmaWVkLmJ5Lm5hbWV9KWAsXG4gICAgICAgICAgICBjb250ZW50RmlsZU5hbWU6IGNvbnRlbnRGaWxlTmFtZSA/IGNvbnRlbnRGaWxlTmFtZSA6IG51bGwsXG4gICAgICAgICAgICBjb250ZW50RmlsZVNpemU6IGNvbnRlbnRGaWxlU2l6ZSA/IE51bWJlcihjb250ZW50RmlsZVNpemUpIDogbnVsbCxcbiAgICAgICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgMCxcbiAgICAgICAgICAgIG1pbWVHcm91cDogY29udGVudCA/IGNvbnRlbnQuY29udGVudHMgPyBjb250ZW50LmNvbnRlbnRzWzBdLm1pbWVncm91cCA6IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgZGlnZXN0OiBjb250ZW50ID8gY29udGVudC5jb250ZW50cyA/IGNvbnRlbnQuY29udGVudHNbMF0uZGlnZXN0IDogbnVsbCA6IG51bGwsXG4gICAgICAgICAgICBjb250ZW50SWQ6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5pZCA6IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgbWltZVR5cGU6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5jb250ZW50c1swXS5taW1ldHlwZSA6IG51bGwgOiBudWxsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHtpbmRleERhdGFQcmV2aWV3LCBiYXNlcGFyYW1zfTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkhhc0Vycm9yKGhhc0Vycm9yID0gZmFsc2UsIG5vZG1zb2JqZWN0ID0gZmFsc2UsIHNob3dMb2FkZXIgPSBmYWxzZSkge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBoYXNFcnJvcjtcbiAgICB0aGlzLm5vZG1zb2JqZWN0ID0gbm9kbXNvYmplY3Q7XG4gICAgdGhpcy5zaG93TG9hZGVyID0gc2hvd0xvYWRlcjtcbiAgICB0aGlzLmhhc0NvbnRlbnQuZW1pdCghaGFzRXJyb3IpO1xuICB9XG5cbiAgbG9hZERtc09iamVjdChwYXJhbXM6IERtc1BhcmFtcykge1xuICAgIGlmICghdGhpcy5lbmFibGVDb21wYXJlICYmIHBhcmFtcykge1xuICAgICAgZGVsZXRlIHBhcmFtcy52ZXJzaW9uO1xuICAgIH1cbiAgICAvLyBjaGVjayBmb3IgdmFsaWQgaWRcbiAgICByZXR1cm4gcGFyYW1zPy5pZD8ubGVuZ3RoID09PSAzMiA/IHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyhwYXJhbXMpIDogb2YobnVsbCk7XG4gIH1cblxuICBkb3dubG9hZE9yaWdpbmFsQ29udGVudCgpIHtcbiAgICB0aGlzLmJhY2tlbmQuZG93bmxvYWRDb250ZW50KFt0aGlzLml0ZW1dKTtcbiAgfVxuXG4gIHNob3dBY3Rpb25zKCkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbdGhpcy5pdGVtLCB0aGlzLml0ZW0yXS5maWx0ZXIodiA9PiB2KTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoYWN0aW9ucywgJ0RNU19PQkpFQ1QnKTtcbiAgfVxuXG4gIG9wZW5PYmplY3QoaWQsIF90eXBlPykge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3R5cGUnOiBfdHlwZX19O1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCBpZF0sIHF1ZXJ5UGFyYW1zKTtcbiAgfVxuXG4gIC8vIGV4ZWN1dGVkIHdoZW4gdGhlIGRtcyBvYmplY3QgY2hhbmdlZCBkdWUgdG8gc2F2aW5nIGl0cyBpbmRleGRhdGFcbiAgb25JbmRleERhdGFTYXZlZChmb3JtRGF0YSwgaXRlbSkge1xuICAgIGlmICghdGhpcy5pdGVtKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBudWxsO1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLml0ZW0yKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcyID0gbnVsbDtcbiAgICAgIHRoaXMuYmFzZXBhcmFtczIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5wcmVwYXJlSW5kZXhEYXRhUHJldmlldyhpdGVtLCBmb3JtRGF0YSlcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSA9PT0gdGhpcy5pdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMgPSBkYXRhLmJhc2VwYXJhbXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhEYXRhUHJldmlldzIgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMyID0gZGF0YS5iYXNlcGFyYW1zO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlZmVyZW5jZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS5jb250ZXh0Rm9sZGVyID8gdGhpcy5pdGVtLmNvbnRleHRGb2xkZXIudGl0bGUgOiB0aGlzLml0ZW0udGl0bGU7XG4gIH1cblxuICBpc0pvdXJuYWxPYmplY3QoaXRlbSkge1xuICAgIHJldHVybiBpdGVtLnR5cGUuc3VwZXJ0eXBlcy5maW5kKHNUID0+IHNUID09PSAnc3lzam91cm5hbG9iamVjdCcpO1xuICB9XG5cbiAgaXNWaXNpYmxlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbE9yZGVyLm1hc3Rlci5pbmNsdWRlcyhpZCkgfHwgdGhpcy5wYW5lbE9yZGVyLnNsYXZlLmluY2x1ZGVzKGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3Vic2NyaXB0aW9uSWNvblRvb2x0aXAoaXRlbTogRG1zT2JqZWN0KTogc3RyaW5nIHtcbiAgICBsZXQgdG9vbHRpcCA9ICcnO1xuICAgIGNvbnN0IG1vZGVzID0gdGhpcy5pdGVtLnN1YnNjcmlwdGlvbnMubWFwKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24ubW9kZSk7XG4gICAgY29uc3Qgc3Vic2NyaWJlZFRvQWxsQ2hhbmdlcyA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEKSB8fCAobW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0RPQ1VNRU5UX0NPTlRFTlRfQ0hBTkdFRCkgJiYgbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0lOREVYX0RBVEFfQ0hBTkdFRCkpO1xuICAgIGNvbnN0IHN1YnNjcmliZWRUb01ldGFDaGFuZ2VzT25seSA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUQpICYmICFtb2Rlcy5pbmNsdWRlcyhTdWJzY3JpcHRpb25Nb2RlLk9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEKSAmJiAhbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5ETVNfT0JKRUNUX0NIQU5HRUQpO1xuICAgIGNvbnN0IHN1YnNjcmliZWRUb0NvbnRlbnRDaGFuZ2VzT25seSA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuT05MWV9ET0NVTUVOVF9DT05URU5UX0NIQU5HRUQpICYmICFtb2Rlcy5pbmNsdWRlcyhTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEKSAmJiAhbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5ETVNfT0JKRUNUX0NIQU5HRUQpO1xuICAgIGlmIChzdWJzY3JpYmVkVG9BbGxDaGFuZ2VzKSB7XG4gICAgICB0b29sdGlwID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LnN1YnNjcmlwdGlvbi5pY29uLnRvb2x0aXAuYWxsQ2hhbmdlcycpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzdWJzY3JpYmVkVG9NZXRhQ2hhbmdlc09ubHkpIHtcbiAgICAgIHRvb2x0aXAgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3Quc3Vic2NyaXB0aW9uLmljb24udG9vbHRpcC5tZXRhJyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN1YnNjcmliZWRUb0NvbnRlbnRDaGFuZ2VzT25seSkge1xuICAgICAgdG9vbHRpcCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5zdWJzY3JpcHRpb24uaWNvbi50b29sdGlwLmNvbnRlbnQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRvb2x0aXA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuZGF0YSAmJiB0aGlzLml0ZW0uaWQgPT09IGV2ZW50LmRhdGEuaWQpIHtcbiAgICAgICAgICB0aGlzLmRtc09iamVjdCA9IHRoaXMuZG1zU2VydmljZS5jcmVhdGVMb2NhbENvcHlPZkRNU09iamVjdChldmVudC5kYXRhKTtcbiAgICAgICAgICBpZiAodGhpcy5wcmV2aWV3ICYmICF0aGlzLnByZXZpZXcuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlldy5yZWZyZXNoKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX0NPTkZJUk1FRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLml0ZW0gJiYgdGhpcy5pdGVtLmlkID09PSBldmVudC5kYXRhLnRhcmdldC5pZCkge1xuICAgICAgICAgIHRoaXMuZG1zUGFyYW1zID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IHBhbmVscyA9IHRoaXMudGFiUGFuZWxzLnRvQXJyYXkoKTtcbiAgICB0aGlzLnRhYlBsdWdpbnMuZm9yRWFjaChwID0+IHBhbmVscyA9IHBhbmVscy5jb25jYXQocC50YWJQYW5lbHMudG9BcnJheSgpKSk7XG4gICAgdGhpcy5leHRlcm5hbFBhbmVscy5yZXNldChwYW5lbHMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51cGxvYWRSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMudXBsb2FkVGFyZ2V0LmlkKTtcbiAgfVxufVxuIl19
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWRldGFpbHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUFFLFdBQVcsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxNQUFNLEVBQW9CLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFjLGFBQWEsRUFDaEYsVUFBVSxFQUFFLGNBQWMsRUFBZ0IsbUJBQW1CLEVBQzdELFlBQVksRUFBRSxVQUFVLEVBQ3pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSxxREFBcUQsQ0FBQztBQUM3RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQ0FB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QUMsaUJBQWlCO3lCQUNqQyxlQUFlLFNBQUMsa0JBQWtCOzZCQXVCbEMsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLE1BQU07dUJBRU4sV0FBVyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3Rha2VVbnRpbCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIE9uSW5pdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYWJQYW5lbENvbXBvbmVudH0gZnJvbSAnLi4vdGFiLWNvbnRhaW5lci90YWItcGFuZWwvdGFiLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYlBsdWdpbkNvbXBvbmVudH0gZnJvbSAnLi4vcGx1Z2lucy9wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7R2xvYmFsU2hvcnRjdXRDb21wb25lbnR9IGZyb20gJy4uL3Nob3J0Y3V0cy9nbG9iYWwtc2hvcnRjdXQtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1Nob3J0Y3V0fSBmcm9tICcuLi9zaG9ydGN1dHMvc2hvcnRjdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzLCBBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgQ29uZmlnLCBTdWJzY3JpcHRpb25Nb2RlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtNZWRpYUNvbXBvbmVudH0gZnJvbSAnLi4vbWVkaWEvbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7SW5kZXhEYXRhfSBmcm9tICcuLi91aS9pbmRleGRhdGEtc3VtbWFyeS9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERtc09iamVjdCwgVXRpbHMsIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSwgVXBsb2FkVGFyZ2V0LCBCYXNlUGFyYW1zLCBTeXN0ZW1TZXJ2aWNlLCBEbXNQYXJhbXMsXG4gIERtc1NlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLCBDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSwgRW5haW9FdmVudFxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2VsZWN0aW9uQ29uZmlnLFxuICBTZWxlY3Rpb25TZXJ2aWNlXG59IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FnZW50U2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb250ZW50UHJldmlld1NlcnZpY2V9IGZyb20gJy4uL21lZGlhL2NvbnRlbnQtcHJldmlldy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDb250ZW50UHJldmlld1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdERldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCd2aWV3ZXInKSBwcmV2aWV3OiBNZWRpYUNvbXBvbmVudDtcblxuICAvLyBnZW5lcmF0ZSB1bmlxdWUgaWQgdG8gcGFzcyB0byB1cGxvYWQgcmVnaXN0cnlcbiAgcHJpdmF0ZSB1cGxvYWRUYXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KFV0aWxzLnV1aWQoKSwgVXBsb2FkVGFyZ2V0Lk9CSkVDVCk7XG4gIGl0ZW06IERtc09iamVjdDtcbiAgaW5kZXhEYXRhUHJldmlldzogSW5kZXhEYXRhO1xuICBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBoYXNFcnJvciA9IGZhbHNlO1xuICBsb2NrVG9vbHRpcDogc3RyaW5nO1xuICBub2Rtc29iamVjdCA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHBhbmVsT3JkZXIgPSB7J21hc3Rlcic6IFsnc3VtbWFyeScsICdpbmRleGRhdGEnLCAnaGlzdG9yeScsICdsaW5rcyddLCAnc2xhdmUnOiBbJ3ByZXZpZXcnXX07XG4gIGFnZW50SXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5hZ2VudFNlcnZpY2UuaXNDb25uZWN0ZWQkO1xuICBzdWJzY3JpcHRpb25JY29uVG9vbHRpcDogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlZmVyZW5jZScpIGlzUmVmZXJlbmNlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCByZWZlcmVuY2UoaXNSZWY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUmVmZXJlbmNlID0gaXNSZWY7XG4gIH1cbiAgQElucHV0KCkgc2VhcmNoVGVybTogc3RyaW5nO1xuICBASW5wdXQoKSBlbmFibGVDb21wYXJlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZURpZmYgPSB0cnVlO1xuICBASW5wdXQoKSBlbmFibGVTeW5jID0gdHJ1ZTtcbiAgQElucHV0KCkgY2FjaGVMYXlvdXQ6IGFueTtcbiAgaXRlbTI6IERtc09iamVjdDtcbiAgaW5kZXhEYXRhUHJldmlldzI6IEluZGV4RGF0YTtcbiAgYmFzZXBhcmFtczI6IEJhc2VQYXJhbXM7XG4gIHByaXZhdGUgX2VtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJ2ljX25vLWZpbGUuc3ZnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBlbXB0eVN0YXRlKGU6IEVtcHR5U3RhdGUpIHtcbiAgICB0aGlzLl9lbXB0eVN0YXRlID0gZSB8fCBFbXB0eVN0YXRlU2VydmljZS5kZWZhdWx0RW1wdHlTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0IGVtcHR5U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5U3RhdGU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpXG4gIHNldCBkbXNQYXJhbXMocGFyYW1zOiBEbXNQYXJhbXMpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMubG9hZERtc09iamVjdChwYXJhbXMpLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgIHRoaXMuZG1zT2JqZWN0ID0gcmVzO1xuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgfSxcbiAgICAgIFV0aWxzLnRocm93KCgpID0+IHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSkpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgncGFyYW1zMicpXG4gIHNldCBkbXNQYXJhbXMyKHBhcmFtczogRG1zUGFyYW1zKSB7XG4gICAgdGhpcy5sb2FkRG1zT2JqZWN0KHBhcmFtcylcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuZG1zT2JqZWN0MiA9IHJlcztcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSkpKTtcbiAgfVxuXG4gIEBJbnB1dCgnaXRlbScpXG4gIHNldCBkbXNPYmplY3QodjogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5pdGVtID0gdjtcbiAgICB0aGlzLm9uSGFzRXJyb3IoKTtcbiAgICAvLyBwcmVwYXJlIGluZGV4ZGF0YSBwcmV2aWV3XG4gICAgdGhpcy5vbkluZGV4RGF0YVNhdmVkKG51bGwsIHRoaXMuaXRlbSk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfTE9BREVELCB0aGlzLml0ZW0pO1xuXG4gICAgaWYgKHRoaXMuaXRlbSkge1xuICAgICAgaWYgKHRoaXMuaXRlbS5pc0FjdGl2ZVZlcnNpb24gJiYgIXRoaXMuZW5hYmxlQ29tcGFyZSkge1xuICAgICAgICB0aGlzLnVwbG9hZFRhcmdldC5yZWZlcmVuY2VPYmplY3QgPSB0aGlzLml0ZW07XG4gICAgICAgIHRoaXMudXBsb2FkVGFyZ2V0Lm9uVXBsb2FkU3VjY2VzcyA9ICgpID0+IHRoaXMuZG1zUGFyYW1zID0ge2lkOiB2LmlkLCB0eXBlOiB2LnR5cGVOYW1lfTtcbiAgICAgICAgdGhpcy51cGxvYWRSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLnVwbG9hZFRhcmdldCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLml0ZW0ubG9jaykge1xuICAgICAgICB0aGlzLmxvY2tUb29sdGlwID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmxvY2snKSArICcgJ1xuICAgICAgICAgICsgKG5ldyBMb2NhbGVEYXRlUGlwZSh0aGlzLnRyYW5zbGF0ZSkudHJhbnNmb3JtKHRoaXMuaXRlbS5sb2NrLm9uKSlcbiAgICAgICAgICArICcsICcgKyB0aGlzLml0ZW0ubG9jay5ieS5sYWJlbCArICcgKCcgKyB0aGlzLml0ZW0ubG9jay5ieS5uYW1lICsgJyknO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoMCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXRlbT8uc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWNvblRvb2x0aXAgPSB0aGlzLmNyZWF0ZVN1YnNjcmlwdGlvbkljb25Ub29sdGlwKHRoaXMuaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdpdGVtMicpXG4gIHNldCBkbXNPYmplY3QyKHY6IERtc09iamVjdCkge1xuICAgIHRoaXMuaXRlbTIgPSB2O1xuICAgIHRoaXMub25IYXNFcnJvcigpO1xuICAgIHRoaXMub25JbmRleERhdGFTYXZlZChudWxsLCB0aGlzLml0ZW0yKTtcbiAgfVxuXG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBleHRlcm5hbFBhbmVscyA9IG5ldyBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJQYW5lbENvbXBvbmVudCkgdGFiUGFuZWxzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKFRhYlBsdWdpbkNvbXBvbmVudClcbiAgdGFiUGx1Z2luczogUXVlcnlMaXN0PFRhYlBsdWdpbkNvbXBvbmVudD47XG5cbiAgLy8gc2hvcnRjdXQgYWN0aW9uc1xuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xuICAgIGlkOiAnZW8ub2JqZWN0LWRldGFpbHMnLFxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZW8tb2JqZWN0LWRldGFpbHMudGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLnNob3J0Y3V0cy5lby1vYmplY3QtZGV0YWlscy50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLm9wZW4uY29udGV4dCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5vcGVuLmNvbnRleHQnLFxuICAgICAgICBzaG9ydGN1dDogbmV3IFNob3J0Y3V0KCdPJywgZmFsc2UsIGZhbHNlKSxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuT2JqZWN0KHRoaXMuaXRlbS5pZCwgdGhpcy5pdGVtLnR5cGVOYW1lKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcbiAgQElucHV0KCkgcGFyc2VEbXNQYXJhbXM6IChkYXRhKSA9PiB7fSA9IHRoaXMuZ2V0RG1zUGFyYW1zO1xuICBAT3V0cHV0KCkgaGFzQ29udGVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR5cGUnKSBnZXQgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbSA/IHRoaXMuaXRlbS50eXBlTmFtZSA6ICdub25lJztcbiAgfVxuXG4gIHVuZG9ja1dpbkFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbXB0eTogRW1wdHlTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHVwbG9hZFJlZ2lzdHJ5OiBVcGxvYWRSZWdpc3RyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZyxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnBhbmVsT3JkZXIgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0UmF3KCdvYmplY3REZXRhaWxzVGFicycpIHx8IHRoaXMucGFuZWxPcmRlcjtcbiAgICB0aGlzLnVuZG9ja1dpbkFjdGl2ZSA9IENvbnRlbnRQcmV2aWV3U2VydmljZS51bmRvY2tXaW5BY3RpdmUoKTtcblxuICAgIHRoaXMuYWdlbnRTZXJ2aWNlLnNldEFnZW50U3RhdHVzKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ2Nvbm5lY3RhZ2VudCddKS5zdWJzY3JpYmUoKGhhc1N0YXR1czogYm9vbGVhbikgPT4ge1xuICAgICAgaWYgKGhhc1N0YXR1cykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge3F1ZXJ5UGFyYW1zOiB7Y29ubmVjdGFnZW50OiBudWxsfSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ30pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuXG4gIHByaXZhdGUgZ2V0RG1zUGFyYW1zKGRhdGE6IGFueSk6IERtc1BhcmFtcyB7XG4gICAgcmV0dXJuIGRhdGEgPyB7Li4uZGF0YSwgdHlwZTogZGF0YS50eXBlTmFtZSB8fCBkYXRhLnR5cGV9IDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGVudCgpIHtcblxuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5lbmFibGVDb21wYXJlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgLmZpbmQodGhpcy5hcHBseVNlbGVjdGlvbi5pbilcbiAgICAgICAgICAuc2VsZWN0aW9uJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kbXNQYXJhbXMgPSB0aGlzLnBhcnNlRG1zUGFyYW1zKHJlc1swXSkgYXMgRG1zUGFyYW1zO1xuICAgICAgICAgICAgdGhpcy5kbXNQYXJhbXMyID0gdGhpcy5wYXJzZURtc1BhcmFtcyhyZXNbMV0pIGFzIERtc1BhcmFtcztcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAgIC5mb2N1cyRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxvYWREbXNPYmplY3QodGhpcy5wYXJzZURtc1BhcmFtcyhyZXMpIGFzIERtc1BhcmFtcykuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgICAvLyByZWZyZXNoaW5nIG9iamVjdCBkZXRhaWxzIG1heSByZXN1bHQgaW4gYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBvYmplY3RcbiAgICAgICAgICAgICAgLy8gc28gd2UnbGwgdXNlIHRoaXMgdHJpZ2dlciB0byBhbHNvIGVtaXR0IHRob3NlIGNoYW5nZXMgdG8gb3RoZXIgbGlzdGVuaW5nIGNvbXBvbmVudHNcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbSAmJiByZXMgJiYgKHRoaXMuaXRlbS5pZCA9PT0gcmVzLmlkKSAmJiByZXMudmVyc2lvbiA+IHRoaXMuaXRlbS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRCwgcmVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmRtc09iamVjdCA9IHJlcztcbiAgICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBVdGlscy50aHJvdygoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnVucmVnaXN0ZXIodGhpcy51cGxvYWRUYXJnZXQuaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uSGFzRXJyb3IodHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hDb250ZW50KCkge1xuICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlSW5kZXhEYXRhUHJldmlldyhpdGVtOiBEbXNPYmplY3QsIGZvcm1EYXRhPzogYW55KSB7XG4gICAgY29uc3Qge2lkLCBkYXRhLCB0eXBlLCBjcmVhdGVkLCBtb2RpZmllZCwgY29udGVudCwgY29udGVudEZpbGVOYW1lLCBjb250ZW50RmlsZVNpemUsIHZlcnNpb259ID0gaXRlbTtcblxuICAgIHJldHVybiB0aGlzLnN5c3RlbVxuICAgICAgLmdldE9iamVjdFR5cGVGb3JtKHR5cGUubmFtZSwgJ0VESVQnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmb3JtID0+IHtcbiAgICAgICAgICBsZXQgaW5kZXhEYXRhUHJldmlldyA9IHtcbiAgICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSB8fCBkYXRhXG4gICAgICAgICAgfTtcbiAgICAgICAgICBsZXQgYmFzZXBhcmFtczogQmFzZVBhcmFtcyA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgdHlwZTogdHlwZS5uYW1lLFxuICAgICAgICAgICAgY3JlYXRlZE9uOiBuZXcgRGF0ZShjcmVhdGVkLm9uKSxcbiAgICAgICAgICAgIG1vZGlmaWVkT246IG5ldyBEYXRlKG1vZGlmaWVkLm9uKSxcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogYCR7Y3JlYXRlZC5ieS50aXRsZX0gKCR7Y3JlYXRlZC5ieS5uYW1lfSlgLFxuICAgICAgICAgICAgbW9kaWZpZWRCeTogYCR7bW9kaWZpZWQuYnkudGl0bGV9ICgke21vZGlmaWVkLmJ5Lm5hbWV9KWAsXG4gICAgICAgICAgICBjb250ZW50RmlsZU5hbWU6IGNvbnRlbnRGaWxlTmFtZSA/IGNvbnRlbnRGaWxlTmFtZSA6IG51bGwsXG4gICAgICAgICAgICBjb250ZW50RmlsZVNpemU6IGNvbnRlbnRGaWxlU2l6ZSA/IE51bWJlcihjb250ZW50RmlsZVNpemUpIDogbnVsbCxcbiAgICAgICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgMCxcbiAgICAgICAgICAgIG1pbWVHcm91cDogY29udGVudCA/IGNvbnRlbnQuY29udGVudHMgPyBjb250ZW50LmNvbnRlbnRzWzBdLm1pbWVncm91cCA6IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgZGlnZXN0OiBjb250ZW50ID8gY29udGVudC5jb250ZW50cyA/IGNvbnRlbnQuY29udGVudHNbMF0uZGlnZXN0IDogbnVsbCA6IG51bGwsXG4gICAgICAgICAgICBjb250ZW50SWQ6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5pZCA6IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgbWltZVR5cGU6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5jb250ZW50c1swXS5taW1ldHlwZSA6IG51bGwgOiBudWxsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHtpbmRleERhdGFQcmV2aWV3LCBiYXNlcGFyYW1zfTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkhhc0Vycm9yKGhhc0Vycm9yID0gZmFsc2UsIG5vZG1zb2JqZWN0ID0gZmFsc2UsIHNob3dMb2FkZXIgPSBmYWxzZSkge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBoYXNFcnJvcjtcbiAgICB0aGlzLm5vZG1zb2JqZWN0ID0gbm9kbXNvYmplY3Q7XG4gICAgdGhpcy5zaG93TG9hZGVyID0gc2hvd0xvYWRlcjtcbiAgICB0aGlzLmhhc0NvbnRlbnQuZW1pdCghaGFzRXJyb3IpO1xuICB9XG5cbiAgbG9hZERtc09iamVjdChwYXJhbXM6IERtc1BhcmFtcykge1xuICAgIGlmICghdGhpcy5lbmFibGVDb21wYXJlICYmIHBhcmFtcykge1xuICAgICAgZGVsZXRlIHBhcmFtcy52ZXJzaW9uO1xuICAgIH1cbiAgICAvLyBjaGVjayBmb3IgdmFsaWQgaWRcbiAgICByZXR1cm4gcGFyYW1zPy5pZD8ubGVuZ3RoID09PSAzMiA/IHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyhwYXJhbXMpIDogb2YobnVsbCk7XG4gIH1cblxuICBkb3dubG9hZE9yaWdpbmFsQ29udGVudCgpIHtcbiAgICB0aGlzLmJhY2tlbmQuZG93bmxvYWRDb250ZW50KFt0aGlzLml0ZW1dKTtcbiAgfVxuXG4gIHNob3dBY3Rpb25zKCkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbdGhpcy5pdGVtLCB0aGlzLml0ZW0yXS5maWx0ZXIodiA9PiB2KTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoYWN0aW9ucywgJ0RNU19PQkpFQ1QnKTtcbiAgfVxuXG4gIG9wZW5PYmplY3QoaWQsIF90eXBlPykge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3R5cGUnOiBfdHlwZX19O1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCBpZF0sIHF1ZXJ5UGFyYW1zKTtcbiAgfVxuXG4gIC8vIGV4ZWN1dGVkIHdoZW4gdGhlIGRtcyBvYmplY3QgY2hhbmdlZCBkdWUgdG8gc2F2aW5nIGl0cyBpbmRleGRhdGFcbiAgb25JbmRleERhdGFTYXZlZChmb3JtRGF0YSwgaXRlbSkge1xuICAgIGlmICghdGhpcy5pdGVtKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBudWxsO1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLml0ZW0yKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcyID0gbnVsbDtcbiAgICAgIHRoaXMuYmFzZXBhcmFtczIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5wcmVwYXJlSW5kZXhEYXRhUHJldmlldyhpdGVtLCBmb3JtRGF0YSlcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSA9PT0gdGhpcy5pdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMgPSBkYXRhLmJhc2VwYXJhbXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhEYXRhUHJldmlldzIgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMyID0gZGF0YS5iYXNlcGFyYW1zO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlZmVyZW5jZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS5jb250ZXh0Rm9sZGVyID8gdGhpcy5pdGVtLmNvbnRleHRGb2xkZXIudGl0bGUgOiB0aGlzLml0ZW0udGl0bGU7XG4gIH1cblxuICBpc0pvdXJuYWxPYmplY3QoaXRlbSkge1xuICAgIHJldHVybiBpdGVtLnR5cGUuc3VwZXJ0eXBlcy5maW5kKHNUID0+IHNUID09PSAnc3lzam91cm5hbG9iamVjdCcpO1xuICB9XG5cbiAgaXNWaXNpYmxlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbE9yZGVyLm1hc3Rlci5pbmNsdWRlcyhpZCkgfHwgdGhpcy5wYW5lbE9yZGVyLnNsYXZlLmluY2x1ZGVzKGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3Vic2NyaXB0aW9uSWNvblRvb2x0aXAoaXRlbTogRG1zT2JqZWN0KTogc3RyaW5nIHtcbiAgICBsZXQgdG9vbHRpcCA9ICcnO1xuICAgIGNvbnN0IG1vZGVzID0gdGhpcy5pdGVtLnN1YnNjcmlwdGlvbnMubWFwKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24ubW9kZSk7XG4gICAgY29uc3Qgc3Vic2NyaWJlZFRvQWxsQ2hhbmdlcyA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEKSB8fCAobW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0RPQ1VNRU5UX0NPTlRFTlRfQ0hBTkdFRCkgJiYgbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0lOREVYX0RBVEFfQ0hBTkdFRCkpO1xuICAgIGNvbnN0IHN1YnNjcmliZWRUb01ldGFDaGFuZ2VzT25seSA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUQpICYmICFtb2Rlcy5pbmNsdWRlcyhTdWJzY3JpcHRpb25Nb2RlLk9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEKSAmJiAhbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5ETVNfT0JKRUNUX0NIQU5HRUQpO1xuICAgIGNvbnN0IHN1YnNjcmliZWRUb0NvbnRlbnRDaGFuZ2VzT25seSA9IG1vZGVzLmluY2x1ZGVzKFN1YnNjcmlwdGlvbk1vZGUuT05MWV9ET0NVTUVOVF9DT05URU5UX0NIQU5HRUQpICYmICFtb2Rlcy5pbmNsdWRlcyhTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEKSAmJiAhbW9kZXMuaW5jbHVkZXMoU3Vic2NyaXB0aW9uTW9kZS5ETVNfT0JKRUNUX0NIQU5HRUQpO1xuICAgIGlmIChzdWJzY3JpYmVkVG9BbGxDaGFuZ2VzKSB7XG4gICAgICB0b29sdGlwID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LnN1YnNjcmlwdGlvbi5pY29uLnRvb2x0aXAuYWxsQ2hhbmdlcycpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzdWJzY3JpYmVkVG9NZXRhQ2hhbmdlc09ubHkpIHtcbiAgICAgIHRvb2x0aXAgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3Quc3Vic2NyaXB0aW9uLmljb24udG9vbHRpcC5tZXRhJyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN1YnNjcmliZWRUb0NvbnRlbnRDaGFuZ2VzT25seSkge1xuICAgICAgdG9vbHRpcCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5zdWJzY3JpcHRpb24uaWNvbi50b29sdGlwLmNvbnRlbnQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRvb2x0aXA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuZGF0YSAmJiB0aGlzLml0ZW0uaWQgPT09IGV2ZW50LmRhdGEuaWQpIHtcbiAgICAgICAgICB0aGlzLmRtc09iamVjdCA9IHRoaXMuZG1zU2VydmljZS5jcmVhdGVMb2NhbENvcHlPZkRNU09iamVjdChldmVudC5kYXRhKTtcbiAgICAgICAgICBpZiAodGhpcy5wcmV2aWV3ICYmICF0aGlzLnByZXZpZXcuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlldy5yZWZyZXNoKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX0NPTkZJUk1FRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLml0ZW0gJiYgdGhpcy5pdGVtLmlkID09PSBldmVudC5kYXRhLnRhcmdldC5pZCkge1xuICAgICAgICAgIHRoaXMuZG1zUGFyYW1zID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IHBhbmVscyA9IHRoaXMudGFiUGFuZWxzLnRvQXJyYXkoKTtcbiAgICB0aGlzLnRhYlBsdWdpbnMuZm9yRWFjaChwID0+IHBhbmVscyA9IHBhbmVscy5jb25jYXQocC50YWJQYW5lbHMudG9BcnJheSgpKSk7XG4gICAgdGhpcy5leHRlcm5hbFBhbmVscy5yZXNldChwYW5lbHMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51cGxvYWRSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMudXBsb2FkVGFyZ2V0LmlkKTtcbiAgfVxufVxuIl19
@@ -28,6 +28,7 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
28
28
  this.settings = {};
29
29
  this.querySubtitle = '';
30
30
  this.savedSearchClicked = false;
31
+ this.showWarnExportCSVThresholdDialog = false;
31
32
  this.title = '';
32
33
  this.emptyMessage = '';
33
34
  this.selectFirst = true;
@@ -42,6 +43,8 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
42
43
  this.onResult = new EventEmitter();
43
44
  this.onQueryInvalid = new EventEmitter();
44
45
  this.VIRTUAL_LIST_CHUNK_SIZE = this.config.getRaw('search.limit');
46
+ this.resolveReferencesCsv = this.config.getRaw('search.resolveReferencesCSV') || false;
47
+ this.resolveReferencesCsvThreshold = this.config.getRaw('search.resolveReferencesCSVThreshold') || 10000;
45
48
  this._cachedColumns = this.storageService.getItem(ResultListComponent.COLUMNS_DEFINITION) || [];
46
49
  }
47
50
  set query(query) {
@@ -229,10 +232,18 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
229
232
  executeSuggestSearch() {
230
233
  // todo: implement
231
234
  }
232
- exportCSV() {
235
+ resultHasReferences() {
236
+ return this._result.fields.elements.some(element => element.type === 'ORGANISATION' || element.type === 'REFERENCE');
237
+ }
238
+ exportCSV(ignoreThreshold = false) {
239
+ if (!ignoreThreshold && this.resolveReferencesCsv && this.list.gridCount.totalCount > this.resolveReferencesCsvThreshold && this.resultHasReferences()) {
240
+ this.showWarnExportCSVThresholdDialog = true;
241
+ return;
242
+ }
233
243
  this.csvLoadingSpinnerVisibility = true;
234
244
  this.updateQuery({});
235
- this.searchService.downloadCsvFromQuery(this.query.getQueryJson()).subscribe(() => {
245
+ this.showWarnExportCSVThresholdDialog = false;
246
+ this.searchService.downloadCsvFromQuery(this.query.getQueryJson(this.resolveReferencesCsv)).subscribe(() => {
236
247
  this.csvLoadingSpinnerVisibility = false;
237
248
  });
238
249
  }
@@ -257,8 +268,8 @@ ResultListComponent.COLUMNS_DEFINITION = 'eo.framework.cache.columns.definition'
257
268
  ResultListComponent.decorators = [
258
269
  { type: Component, args: [{
259
270
  selector: 'eo-result-list',
260
- template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n</eo-dialog>\n\n",
261
- styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding)/2)}:host .stored-query>div{background-color:var(--color-white);border-radius:2px 0 0 2px;margin:0 1px;padding:calc(var(--app-pane-padding)/2)}:host .stored-query>div eo-icon{color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/4)}:host .stored-query .sq{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;background-color:var(--color-white);background-color:var(--list-item-hover-background);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:flex;flex-flow:row;overflow:hidden;padding:calc(var(--app-pane-padding)/100);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{overflow:hidden;padding:0 calc(var(--app-pane-padding)/2);text-overflow:ellipsis}eo-stored-query{background-color:var(--color-white);border-radius:0 2px 2px 0;overflow-y:auto;padding:var(--app-pane-padding)}"]
271
+ template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n</eo-dialog>\n\n<eo-dialog [title]=\"'eo.resultlist.export.csv.threshold.dialog.title' | translate\"\n [(visible)]=\"showWarnExportCSVThresholdDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'threshold__dialog'\">\n\n <div>{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showWarnExportCSVThresholdDialog = false\"\n translate>eo.resultlist.export.csv.threshold.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"exportCSV(true)\" class=\"button primary\"\n translate>eo.resultlist.export.csv.threshold.dialog.export</button>\n </div>\n</eo-dialog>\n\n",
272
+ styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding)/2)}:host .stored-query>div{background-color:var(--color-white);border-radius:2px 0 0 2px;margin:0 1px;padding:calc(var(--app-pane-padding)/2)}:host .stored-query>div eo-icon{color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/4)}:host .stored-query .sq{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;background-color:var(--color-white);background-color:var(--list-item-hover-background);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:flex;flex-flow:row;overflow:hidden;padding:calc(var(--app-pane-padding)/100);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{overflow:hidden;padding:0 calc(var(--app-pane-padding)/2);text-overflow:ellipsis}eo-stored-query{background-color:var(--color-white);border-radius:0 2px 2px 0;overflow-y:auto;padding:var(--app-pane-padding)}::ng-deep .threshold__dialog{min-height:unset!important;padding:8px}::ng-deep .threshold__dialog--header{background:#fff!important;color:rgba(var(--color-black-rgb),.54)!important;font-size:1.17em!important;font-weight:400!important;margin:0;padding:0 0 1em!important}"]
262
273
  },] }
263
274
  ];
264
275
  ResultListComponent.ctorParameters = () => [
@@ -275,6 +286,7 @@ ResultListComponent.ctorParameters = () => [
275
286
  ];
276
287
  ResultListComponent.propDecorators = {
277
288
  grid: [{ type: ViewChild, args: ['eoGrid',] }],
289
+ list: [{ type: ViewChild, args: ['eoList',] }],
278
290
  title: [{ type: Input }],
279
291
  configType: [{ type: Input }],
280
292
  configContext: [{ type: Input }],
@@ -295,4 +307,4 @@ ResultListComponent.propDecorators = {
295
307
  query: [{ type: Input }],
296
308
  searchResult: [{ type: Input }]
297
309
  };
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFtSDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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O1lBQzlELG1CQUFtQjtZQUF3RCxvQkFBb0I7WUFFbkYsTUFBTTs7O21CQVM3QixTQUFTLFNBQUMsUUFBUTtvQkFzQmxCLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUlMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLO2lDQUNMLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNOzRCQUNOLE1BQU07NkJBQ04sTUFBTTt3QkFDTixNQUFNO3VCQUNOLE1BQU07NkJBQ04sTUFBTTtvQkFFTixLQUFLOzJCQW1ETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGaWVsZERlZmluaXRpb24sIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzLCBPYmplY3RUeXBlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZXN1bHQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0TGlzdENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBncmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIC8vIGZvciBsaXN0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBtYXggcmVzdWx0IHNpemUsIGRhdGEgd2lsbCBiZSBmZXRjaGVkIGluIGNodW5rc1xuICBwcml2YXRlIFZJUlRVQUxfTElTVF9DSFVOS19TSVpFOiBudW1iZXI7XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcbiAgcHVibGljIGxpbWl0ZWRMaXN0ID0gZmFsc2U7XG4gIHB1YmxpYyByZXN1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7fTtcbiAgc2V0dGluZ3MgPSB7fTtcbiAgcXVlcnlTdWJ0aXRsZSA9ICcnO1xuICBzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGUgfCBudWxsO1xuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcblxuICAvLyBJZiBzZXQgdG8gdHJ1ZSBxdWVyeSB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIHRlbXBvcmFyeSBzZWFyY2guXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcbiAgQElucHV0KCkgY2xlYXJBZnRlckV4ZWN1dGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVzdWx0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25RdWVyeUludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHF1ZXJ5OiBhbnkpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChxdWVyeS5uYW1lKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEubmFtZSA9PT0gcXVlcnkubmFtZSlbMF07XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRRdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuZGVmYXVsdFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcodGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xuICAgICAgICB0aGlzLmNvbmZpZ0NvbnRleHQgPSBjb25maWcuY29udGV4dFR5cGU7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMuX3F1ZXJ5LCAwLCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWVyeS50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSB0aGlzLnF1ZXJ5LnR5cGVzW2ldLmxhYmVsO1xuICAgICAgICAgIGlmIChpICE9PSB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSAnLCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIC8vIHRvZG86IGJhY2tlbmQgc2hvdWxkIHJlc29sdmUgcXVlcnkuZmllbGRzIGFuZCByZXR1cm4gY29uZmlnIGluIHNwZWNpZmljIG9yZGVyXG4gICAgY29uc3QgX2ZpZWxkcyA9IHJlc3VsdC5maWVsZHMgPyBvYnNlcnZhYmxlT2YocmVzdWx0LmZpZWxkcykgOlxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XG4gICAgX2ZpZWxkcy5zdWJzY3JpYmUoZmllbGRzID0+IHtcbiAgICAgIGlmIChmaWVsZHMgJiYgdGhpcy5xdWVyeSAmJiB0aGlzLnF1ZXJ5LmZpZWxkcyAmJiB0aGlzLnF1ZXJ5LmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHMgfHwgbmV3IEZpZWxkRGVmaW5pdGlvbigpO1xuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0cyh0aGlzLl9yZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgLy8gdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZCwgaXRlbTogcmVzLmRhdGEuZGF0YX1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydENTVigpIHtcbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVRdWVyeSh7fSk7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcGFyc2VEbXNQYXJhbXMoZGF0YSkge1xuICAgIHJldHVybiB7aWQ6IGRhdGEgJiYgZGF0YS5pZCA/IGRhdGEuaWQgOiBudWxsLCB0eXBlOiBkYXRhICYmIGRhdGEudHlwZSA/IGRhdGEudHlwZSA6IG51bGx9O1xuICB9XG5cbiAgZ2V0IGhhc0dyaWRPcHRpb25zKCkge1xuICAgIHJldHVybiAhISh0aGlzLnJlc3VsdEdyaWRPcHRpb25zLmRhdGFzb3VyY2UgfHwgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG59XG4iXX0=
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBUXpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUF1SDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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NkJBQ04sTUFBTTtvQkFFTixLQUFLOzJCQW1ETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGaWVsZERlZmluaXRpb24sIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzLCBPYmplY3RUeXBlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtMaXN0Q29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuLi9saXN0LWNvbnRhaW5lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJlc3VsdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0LWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRMaXN0Q29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGdyaWQ6IEdyaWRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2VvTGlzdCcpIGxpc3Q6IExpc3RDb250YWluZXJDb21wb25lbnQ7XG5cbiAgLy8gZm9yIGxpc3RzIHRoYXQgZXhjZWVkIHRoZSBjb25maWd1cmVkIG1heCByZXN1bHQgc2l6ZSwgZGF0YSB3aWxsIGJlIGZldGNoZWQgaW4gY2h1bmtzXG4gIHByaXZhdGUgVklSVFVBTF9MSVNUX0NIVU5LX1NJWkU6IG51bWJlcjtcbiAgcmVzb2x2ZVJlZmVyZW5jZXNDc3Y6IGJvb2xlYW47XG4gIHJlc29sdmVSZWZlcmVuY2VzQ3N2VGhyZXNob2xkOiBudW1iZXI7XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcbiAgcHVibGljIGxpbWl0ZWRMaXN0ID0gZmFsc2U7XG4gIHB1YmxpYyByZXN1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7fTtcbiAgc2V0dGluZ3MgPSB7fTtcbiAgcXVlcnlTdWJ0aXRsZSA9ICcnO1xuICBzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBzaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGUgfCBudWxsO1xuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcblxuICAvLyBJZiBzZXQgdG8gdHJ1ZSBxdWVyeSB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIHRlbXBvcmFyeSBzZWFyY2guXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcbiAgQElucHV0KCkgY2xlYXJBZnRlckV4ZWN1dGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVzdWx0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25RdWVyeUludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHF1ZXJ5OiBhbnkpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChxdWVyeS5uYW1lKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEubmFtZSA9PT0gcXVlcnkubmFtZSlbMF07XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRRdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuZGVmYXVsdFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcodGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xuICAgICAgICB0aGlzLmNvbmZpZ0NvbnRleHQgPSBjb25maWcuY29udGV4dFR5cGU7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMuX3F1ZXJ5LCAwLCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWVyeS50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSB0aGlzLnF1ZXJ5LnR5cGVzW2ldLmxhYmVsO1xuICAgICAgICAgIGlmIChpICE9PSB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSAnLCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIC8vIHRvZG86IGJhY2tlbmQgc2hvdWxkIHJlc29sdmUgcXVlcnkuZmllbGRzIGFuZCByZXR1cm4gY29uZmlnIGluIHNwZWNpZmljIG9yZGVyXG4gICAgY29uc3QgX2ZpZWxkcyA9IHJlc3VsdC5maWVsZHMgPyBvYnNlcnZhYmxlT2YocmVzdWx0LmZpZWxkcykgOlxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XG4gICAgX2ZpZWxkcy5zdWJzY3JpYmUoZmllbGRzID0+IHtcbiAgICAgIGlmIChmaWVsZHMgJiYgdGhpcy5xdWVyeSAmJiB0aGlzLnF1ZXJ5LmZpZWxkcyAmJiB0aGlzLnF1ZXJ5LmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHMgfHwgbmV3IEZpZWxkRGVmaW5pdGlvbigpO1xuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0cyh0aGlzLl9yZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLnJlc29sdmVSZWZlcmVuY2VzQ3N2ID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gucmVzb2x2ZVJlZmVyZW5jZXNDU1YnKSBhcyBib29sZWFuIHx8IGZhbHNlO1xuICAgIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3ZUaHJlc2hvbGQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5yZXNvbHZlUmVmZXJlbmNlc0NTVlRocmVzaG9sZCcpIGFzIG51bWJlciB8fCAxMDAwMDtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgLy8gdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZCwgaXRlbTogcmVzLmRhdGEuZGF0YX1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIHByaXZhdGUgcmVzdWx0SGFzUmVmZXJlbmNlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0LmZpZWxkcy5lbGVtZW50cy5zb21lKGVsZW1lbnQgPT4gZWxlbWVudC50eXBlID09PSAnT1JHQU5JU0FUSU9OJyB8fCBlbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKTtcbiAgfVxuXG4gIGV4cG9ydENTVihpZ25vcmVUaHJlc2hvbGQgPSBmYWxzZSkge1xuICAgIGlmICghaWdub3JlVGhyZXNob2xkICYmIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YgJiYgdGhpcy5saXN0LmdyaWRDb3VudC50b3RhbENvdW50ID4gdGhpcy5yZXNvbHZlUmVmZXJlbmNlc0NzdlRocmVzaG9sZCAmJiB0aGlzLnJlc3VsdEhhc1JlZmVyZW5jZXMoKSkge1xuICAgICAgdGhpcy5zaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHt9KTtcbiAgICB0aGlzLnNob3dXYXJuRXhwb3J0Q1NWVGhyZXNob2xkRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlRG1zUGFyYW1zKGRhdGEpIHtcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcbiAgfVxuXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gISEodGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5kYXRhc291cmNlIHx8IHRoaXMucmVzdWx0R3JpZE9wdGlvbnMucm93RGF0YSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5TG9hZGVkKCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlFeGVjdXRlKGV2dCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxufVxuIl19
@@ -110,7 +110,7 @@ ChangePasswordFormComponent.decorators = [
110
110
  { type: Component, args: [{
111
111
  selector: 'eo-change-password-form',
112
112
  template: "<section class=\"change-password\">\n <form #changePasswordFormElement [formGroup]=\"changePasswordForm\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\">\n <div class=\"form-item\">\n\n <eo-form-input [label]=\"('eo.password.reset.current-password' | translate)\" [required]=\"true\" [invalid]=\"passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'currentPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.current-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.new-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords || passwordIsNew\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'password'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.new-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <eo-form-input [label]=\"('eo.password.reset.confirm-password' | translate)\" [required]=\"true\" [invalid]=\"matchingPasswords\">\n <eo-password [parent]=\"changePasswordForm\"\n [element]=\"'confirmPassword'\"\n [canChangepasswordVisiblety]=\"false\"\n [passwordVisible]=\"passwordIsVisible\"\n [placeholder]=\"('eo.password.reset.confirm-password' | translate)\"></eo-password>\n </eo-form-input>\n\n <div class=\"invalid error\" *ngIf=\"passwordIsNew\">\n {{'eo.password.reset.error.same.password' | translate}}\n </div>\n\n <div class=\"invalid error\" *ngIf=\"matchingPasswords\">\n {{'eo.password.reset.error.matiching.password' | translate}}\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'short'\">\n eo.password.reset.error.new.password.short\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'number'\">\n eo.password.reset.error.new.password.number\n </div>\n\n <div class=\"invalid error\" translate [translateParams]=\"{amount: passwordValidation.amount}\" *ngIf=\"passwordValidation.type === 'specialchars'\">\n eo.password.reset.error.new.password.specialchars\n </div>\n\n <section class=\"change-password__cta\">\n <button class=\"change-password__submit-button\" type=\"submit\"\n [disabled]=\"changePasswordForm.invalid || passwordValidation.type !== 'valid'\" translate>eo.password.reset.confirm-button</button>\n\n <a (click)=\"showPasswords()\">\n <eo-icon class=\"change-password__icon-show\"\n [iconSrc]=\"'assets/_default/svg/ic_eye.svg'\"\n [iconTitle]=\"('eo.password.reset.toogle.icon' | translate)\"\n [ngClass]=\"{'visible': passwordIsVisible}\"></eo-icon>\n </a>\n </section>\n </div>\n </form>\n\n</section>\n",
113
- styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password__cta{align-items:center;display:flex;margin-top:10px}.change-password__submit-button{margin-right:10px}.change-password__icon-show{color:var(--color-primary-4)}.change-password__icon-show.visible{color:var(--color-primary-3)}"]
113
+ styles: [".change-password .invalid.error{color:var(--color-error);padding:5px 0}.change-password__cta{align-items:center;display:flex;margin-top:10px}.change-password__submit-button{margin-right:10px}.change-password__icon-show{color:var(--text-color-caption);cursor:pointer}.change-password__icon-show.visible{color:var(--color-primary-3)}"]
114
114
  },] }
115
115
  ];
116
116
  ChangePasswordFormComponent.ctorParameters = () => [