@igo2/geo 1.11.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/bundles/igo2-geo.umd.js +5 -9
  7. package/bundles/igo2-geo.umd.js.map +1 -1
  8. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +1 -1
  9. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +1 -1
  10. package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +1 -1
  11. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +1 -1
  12. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +1 -1
  13. package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +1 -1
  14. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +1 -1
  15. package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +1 -1
  16. package/esm2015/lib/catalog/catalog.module.js +1 -1
  17. package/esm2015/lib/catalog/index.js +1 -1
  18. package/esm2015/lib/catalog/shared/catalog.abstract.js +1 -1
  19. package/esm2015/lib/catalog/shared/catalog.enum.js +1 -1
  20. package/esm2015/lib/catalog/shared/catalog.interface.js +1 -1
  21. package/esm2015/lib/catalog/shared/catalog.service.js +1 -1
  22. package/esm2015/lib/catalog/shared/index.js +1 -1
  23. package/esm2015/lib/datasource/datasource.module.js +1 -1
  24. package/esm2015/lib/datasource/index.js +1 -1
  25. package/esm2015/lib/datasource/shared/capabilities.service.js +1 -1
  26. package/esm2015/lib/datasource/shared/datasource.service.js +1 -1
  27. package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +1 -1
  28. package/esm2015/lib/datasource/shared/datasources/any-datasource.js +1 -1
  29. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +1 -1
  30. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +1 -1
  31. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +1 -1
  32. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +1 -1
  33. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +1 -1
  34. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +1 -1
  35. package/esm2015/lib/datasource/shared/datasources/data.service.js +1 -1
  36. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  37. package/esm2015/lib/datasource/shared/datasources/datasource.js +1 -1
  38. package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +1 -1
  39. package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +1 -1
  40. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +1 -1
  41. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +1 -1
  42. package/esm2015/lib/datasource/shared/datasources/index.js +1 -1
  43. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +1 -1
  44. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +1 -1
  45. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +1 -1
  46. package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +1 -1
  47. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +1 -1
  48. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +1 -1
  49. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +1 -1
  50. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +1 -1
  51. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +1 -1
  52. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +1 -1
  53. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +1 -1
  54. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +1 -1
  55. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +1 -1
  56. package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +1 -1
  57. package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +1 -1
  58. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +1 -1
  59. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +1 -1
  60. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +1 -1
  61. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +1 -1
  62. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +1 -1
  63. package/esm2015/lib/datasource/shared/index.js +1 -1
  64. package/esm2015/lib/datasource/shared/options/index.js +1 -1
  65. package/esm2015/lib/datasource/shared/options/options-api.interface.js +1 -1
  66. package/esm2015/lib/datasource/shared/options/options-api.providers.js +1 -1
  67. package/esm2015/lib/datasource/shared/options/options-api.service.js +1 -1
  68. package/esm2015/lib/datasource/shared/options/options.service.js +1 -1
  69. package/esm2015/lib/datasource/utils/esri-style-generator.js +1 -1
  70. package/esm2015/lib/datasource/utils/index.js +1 -1
  71. package/esm2015/lib/datasource/utils/tilegrid.js +1 -1
  72. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +1 -1
  73. package/esm2015/lib/directions/directions-buttons/index.js +1 -1
  74. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +1 -1
  75. package/esm2015/lib/directions/directions-inputs/index.js +1 -1
  76. package/esm2015/lib/directions/directions-results/directions-results.component.js +1 -1
  77. package/esm2015/lib/directions/directions-results/index.js +1 -1
  78. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +1 -1
  79. package/esm2015/lib/directions/directions-sources/directions-source.js +1 -1
  80. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +1 -1
  81. package/esm2015/lib/directions/directions-sources/index.js +1 -1
  82. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +1 -1
  83. package/esm2015/lib/directions/directions.component.js +1 -1
  84. package/esm2015/lib/directions/directions.module.js +1 -1
  85. package/esm2015/lib/directions/index.js +1 -1
  86. package/esm2015/lib/directions/shared/directions-source.service.js +1 -1
  87. package/esm2015/lib/directions/shared/directions.enum.js +1 -1
  88. package/esm2015/lib/directions/shared/directions.interface.js +1 -1
  89. package/esm2015/lib/directions/shared/directions.service.js +1 -1
  90. package/esm2015/lib/directions/shared/directions.utils.js +1 -1
  91. package/esm2015/lib/directions/shared/index.js +1 -1
  92. package/esm2015/lib/directions/shared/store.js +1 -1
  93. package/esm2015/lib/download/download-button/download-button.component.js +1 -1
  94. package/esm2015/lib/download/download-button/index.js +1 -1
  95. package/esm2015/lib/download/download.module.js +1 -1
  96. package/esm2015/lib/download/index.js +1 -1
  97. package/esm2015/lib/download/shared/download.interface.js +1 -1
  98. package/esm2015/lib/download/shared/download.service.js +1 -1
  99. package/esm2015/lib/download/shared/index.js +1 -1
  100. package/esm2015/lib/draw/draw/draw-popup.component.js +1 -1
  101. package/esm2015/lib/draw/draw/draw-shorcuts.component.js +1 -1
  102. package/esm2015/lib/draw/draw/draw.component.js +1 -1
  103. package/esm2015/lib/draw/draw/draw.module.js +1 -1
  104. package/esm2015/lib/draw/drawingTool.module.js +1 -1
  105. package/esm2015/lib/draw/index.js +1 -1
  106. package/esm2015/lib/draw/shared/draw-icon.service.js +1 -1
  107. package/esm2015/lib/draw/shared/draw-style.service.js +1 -1
  108. package/esm2015/lib/draw/shared/draw.enum.js +1 -1
  109. package/esm2015/lib/draw/shared/draw.interface.js +1 -1
  110. package/esm2015/lib/draw/shared/draw.utils.js +1 -1
  111. package/esm2015/lib/draw/shared/index.js +1 -1
  112. package/esm2015/lib/feature/feature-details/feature-details.component.js +1 -1
  113. package/esm2015/lib/feature/feature-details/feature-details.directive.js +1 -1
  114. package/esm2015/lib/feature/feature-details/feature-details.module.js +1 -1
  115. package/esm2015/lib/feature/feature-form/feature-form.component.js +1 -1
  116. package/esm2015/lib/feature/feature-form/feature-form.module.js +1 -1
  117. package/esm2015/lib/feature/feature.module.js +1 -1
  118. package/esm2015/lib/feature/index.js +1 -1
  119. package/esm2015/lib/feature/shared/feature.enums.js +1 -1
  120. package/esm2015/lib/feature/shared/feature.interfaces.js +1 -1
  121. package/esm2015/lib/feature/shared/feature.utils.js +1 -1
  122. package/esm2015/lib/feature/shared/index.js +1 -1
  123. package/esm2015/lib/feature/shared/store.js +1 -1
  124. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +1 -1
  125. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +1 -1
  126. package/esm2015/lib/feature/shared/strategies/index.js +1 -1
  127. package/esm2015/lib/feature/shared/strategies/loading-layer.js +1 -1
  128. package/esm2015/lib/feature/shared/strategies/loading.js +1 -1
  129. package/esm2015/lib/feature/shared/strategies/selection.js +1 -1
  130. package/esm2015/lib/feature/shared/strategies.utils.js +1 -1
  131. package/esm2015/lib/filter/filter.module.js +1 -1
  132. package/esm2015/lib/filter/index.js +1 -1
  133. package/esm2015/lib/filter/ogc-filter-button/index.js +1 -1
  134. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +1 -1
  135. package/esm2015/lib/filter/ogc-filter-form/index.js +1 -1
  136. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +1 -1
  137. package/esm2015/lib/filter/ogc-filter-selection/index.js +1 -1
  138. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +1 -1
  139. package/esm2015/lib/filter/ogc-filter-time/index.js +1 -1
  140. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +1 -1
  141. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +1 -1
  142. package/esm2015/lib/filter/ogc-filterable-form/index.js +1 -1
  143. package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +1 -1
  144. package/esm2015/lib/filter/ogc-filterable-item/index.js +1 -1
  145. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +1 -1
  146. package/esm2015/lib/filter/ogc-filterable-list/index.js +1 -1
  147. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +1 -1
  148. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +1 -1
  149. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +1 -1
  150. package/esm2015/lib/filter/shared/index.js +1 -1
  151. package/esm2015/lib/filter/shared/ogc-filter-time.service.js +1 -1
  152. package/esm2015/lib/filter/shared/ogc-filter.enum.js +1 -1
  153. package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
  154. package/esm2015/lib/filter/shared/ogc-filter.js +1 -1
  155. package/esm2015/lib/filter/shared/ogc-filter.service.js +1 -1
  156. package/esm2015/lib/filter/shared/spatial-filter.enum.js +1 -1
  157. package/esm2015/lib/filter/shared/spatial-filter.interface.js +1 -1
  158. package/esm2015/lib/filter/shared/spatial-filter.service.js +1 -1
  159. package/esm2015/lib/filter/shared/time-filter.enum.js +1 -1
  160. package/esm2015/lib/filter/shared/time-filter.interface.js +1 -1
  161. package/esm2015/lib/filter/shared/time-filter.service.js +1 -1
  162. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +1 -1
  163. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +1 -1
  164. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +1 -1
  165. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +1 -1
  166. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +1 -1
  167. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +1 -1
  168. package/esm2015/lib/filter/time-filter-button/index.js +1 -1
  169. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +1 -1
  170. package/esm2015/lib/filter/time-filter-form/index.js +1 -1
  171. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +1 -1
  172. package/esm2015/lib/filter/time-filter-item/index.js +1 -1
  173. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +1 -1
  174. package/esm2015/lib/filter/time-filter-list/index.js +1 -1
  175. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +1 -1
  176. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +1 -1
  177. package/esm2015/lib/geo.module.js +1 -1
  178. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +1 -1
  179. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +1 -1
  180. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +1 -1
  181. package/esm2015/lib/geometry/geometry.module.js +1 -1
  182. package/esm2015/lib/geometry/index.js +1 -1
  183. package/esm2015/lib/geometry/shared/controls/draw.js +1 -1
  184. package/esm2015/lib/geometry/shared/controls/index.js +1 -1
  185. package/esm2015/lib/geometry/shared/controls/modify.js +1 -1
  186. package/esm2015/lib/geometry/shared/controls/slice.js +1 -1
  187. package/esm2015/lib/geometry/shared/geometry.errors.js +1 -1
  188. package/esm2015/lib/geometry/shared/geometry.interfaces.js +1 -1
  189. package/esm2015/lib/geometry/shared/geometry.utils.js +1 -1
  190. package/esm2015/lib/geometry/shared/index.js +1 -1
  191. package/esm2015/lib/import-export/export-button/export-button.component.js +1 -1
  192. package/esm2015/lib/import-export/export-button/index.js +1 -1
  193. package/esm2015/lib/import-export/import-export/import-export.component.js +1 -1
  194. package/esm2015/lib/import-export/import-export/index.js +1 -1
  195. package/esm2015/lib/import-export/import-export.module.js +1 -1
  196. package/esm2015/lib/import-export/index.js +1 -1
  197. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +1 -1
  198. package/esm2015/lib/import-export/shared/export.errors.js +1 -1
  199. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  200. package/esm2015/lib/import-export/shared/export.service.js +1 -1
  201. package/esm2015/lib/import-export/shared/export.type.js +1 -1
  202. package/esm2015/lib/import-export/shared/export.utils.js +1 -1
  203. package/esm2015/lib/import-export/shared/import.errors.js +1 -1
  204. package/esm2015/lib/import-export/shared/import.interface.js +1 -1
  205. package/esm2015/lib/import-export/shared/import.service.js +1 -1
  206. package/esm2015/lib/import-export/shared/import.utils.js +1 -1
  207. package/esm2015/lib/import-export/shared/index.js +1 -1
  208. package/esm2015/lib/import-export/style-list/index.js +1 -1
  209. package/esm2015/lib/import-export/style-list/style-list.interface.js +1 -1
  210. package/esm2015/lib/import-export/style-list/style-list.module.js +1 -1
  211. package/esm2015/lib/import-export/style-list/style-list.provider.js +1 -1
  212. package/esm2015/lib/import-export/style-list/style-list.service.js +1 -1
  213. package/esm2015/lib/layer/index.js +1 -1
  214. package/esm2015/lib/layer/layer-item/index.js +1 -1
  215. package/esm2015/lib/layer/layer-item/layer-item.component.js +1 -1
  216. package/esm2015/lib/layer/layer-legend/index.js +1 -1
  217. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +1 -1
  218. package/esm2015/lib/layer/layer-legend-item/index.js +1 -1
  219. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +1 -1
  220. package/esm2015/lib/layer/layer-legend-list/index.js +1 -1
  221. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +1 -1
  222. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +1 -1
  223. package/esm2015/lib/layer/layer-list/index.js +1 -1
  224. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +1 -1
  225. package/esm2015/lib/layer/layer-list/layer-list.component.js +2 -2
  226. package/esm2015/lib/layer/layer-list/layer-list.enum.js +1 -1
  227. package/esm2015/lib/layer/layer-list-tool/index.js +1 -1
  228. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +1 -1
  229. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +1 -1
  230. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +1 -1
  231. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +1 -1
  232. package/esm2015/lib/layer/layer.module.js +1 -1
  233. package/esm2015/lib/layer/shared/clusterParam.js +1 -1
  234. package/esm2015/lib/layer/shared/index.js +1 -1
  235. package/esm2015/lib/layer/shared/layer.enums.js +1 -1
  236. package/esm2015/lib/layer/shared/layer.service.js +1 -1
  237. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +1 -1
  238. package/esm2015/lib/layer/shared/layers/any-layer.js +1 -1
  239. package/esm2015/lib/layer/shared/layers/image-layer.interface.js +1 -1
  240. package/esm2015/lib/layer/shared/layers/image-layer.js +1 -1
  241. package/esm2015/lib/layer/shared/layers/index.js +1 -1
  242. package/esm2015/lib/layer/shared/layers/layer.interface.js +1 -1
  243. package/esm2015/lib/layer/shared/layers/layer.js +1 -1
  244. package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +1 -1
  245. package/esm2015/lib/layer/shared/layers/tile-layer.js +1 -1
  246. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  247. package/esm2015/lib/layer/shared/layers/vector-layer.js +1 -1
  248. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  249. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +1 -1
  250. package/esm2015/lib/layer/shared/style.service.js +1 -1
  251. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  252. package/esm2015/lib/layer/track-feature-button/index.js +1 -1
  253. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +1 -1
  254. package/esm2015/lib/layer/utils/image-watcher.js +1 -1
  255. package/esm2015/lib/layer/utils/index.js +1 -1
  256. package/esm2015/lib/layer/utils/layer.utils.js +1 -1
  257. package/esm2015/lib/layer/utils/layerSync-watcher.js +4 -8
  258. package/esm2015/lib/layer/utils/outputLegend.js +1 -1
  259. package/esm2015/lib/layer/utils/tile-watcher.js +1 -1
  260. package/esm2015/lib/layer/utils/vector-watcher.js +1 -1
  261. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +1 -1
  262. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +1 -1
  263. package/esm2015/lib/map/baselayers-switcher/index.js +1 -1
  264. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +1 -1
  265. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +1 -1
  266. package/esm2015/lib/map/geolocate-button/index.js +1 -1
  267. package/esm2015/lib/map/index.js +1 -1
  268. package/esm2015/lib/map/info-section/index.js +1 -1
  269. package/esm2015/lib/map/info-section/info-section.component.js +1 -1
  270. package/esm2015/lib/map/map-browser/index.js +1 -1
  271. package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
  272. package/esm2015/lib/map/map-center/index.js +1 -1
  273. package/esm2015/lib/map/map-center/map-center.component.js +1 -1
  274. package/esm2015/lib/map/map.module.js +1 -1
  275. package/esm2015/lib/map/menu-button/index.js +1 -1
  276. package/esm2015/lib/map/menu-button/menu-button.component.js +1 -1
  277. package/esm2015/lib/map/offline-button/index.js +1 -1
  278. package/esm2015/lib/map/offline-button/offline-button.component.js +1 -1
  279. package/esm2015/lib/map/rotation-button/index.js +1 -1
  280. package/esm2015/lib/map/rotation-button/rotation-button.component.js +1 -1
  281. package/esm2015/lib/map/shared/controllers/controller.js +1 -1
  282. package/esm2015/lib/map/shared/controllers/index.js +1 -1
  283. package/esm2015/lib/map/shared/controllers/view.js +1 -1
  284. package/esm2015/lib/map/shared/hover-feature.directive.js +1 -1
  285. package/esm2015/lib/map/shared/index.js +1 -1
  286. package/esm2015/lib/map/shared/map-pointer-position.directive.js +1 -1
  287. package/esm2015/lib/map/shared/map.enums.js +1 -1
  288. package/esm2015/lib/map/shared/map.interface.js +1 -1
  289. package/esm2015/lib/map/shared/map.js +1 -1
  290. package/esm2015/lib/map/shared/map.service.js +1 -1
  291. package/esm2015/lib/map/shared/map.utils.js +1 -1
  292. package/esm2015/lib/map/shared/mapOffline.directive.js +1 -1
  293. package/esm2015/lib/map/shared/projection.interfaces.js +1 -1
  294. package/esm2015/lib/map/shared/projection.service.js +1 -1
  295. package/esm2015/lib/map/shared/projection.utils.js +1 -1
  296. package/esm2015/lib/map/swipe-control/index.js +1 -1
  297. package/esm2015/lib/map/swipe-control/swipe-control.component.js +1 -1
  298. package/esm2015/lib/map/utils/layer-watcher.js +1 -1
  299. package/esm2015/lib/map/zoom-button/index.js +1 -1
  300. package/esm2015/lib/map/zoom-button/zoom-button.component.js +1 -1
  301. package/esm2015/lib/measure/index.js +1 -1
  302. package/esm2015/lib/measure/measure.module.js +1 -1
  303. package/esm2015/lib/measure/measurer/measure-format.pipe.js +1 -1
  304. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +1 -1
  305. package/esm2015/lib/measure/measurer/measurer-item.component.js +1 -1
  306. package/esm2015/lib/measure/measurer/measurer.component.js +1 -1
  307. package/esm2015/lib/measure/measurer/measurer.module.js +1 -1
  308. package/esm2015/lib/measure/shared/index.js +1 -1
  309. package/esm2015/lib/measure/shared/measure.enum.js +1 -1
  310. package/esm2015/lib/measure/shared/measure.interfaces.js +1 -1
  311. package/esm2015/lib/measure/shared/measure.utils.js +1 -1
  312. package/esm2015/lib/metadata/index.js +1 -1
  313. package/esm2015/lib/metadata/metadata-button/index.js +1 -1
  314. package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +1 -1
  315. package/esm2015/lib/metadata/metadata.module.js +1 -1
  316. package/esm2015/lib/metadata/shared/index.js +1 -1
  317. package/esm2015/lib/metadata/shared/metadata.interface.js +1 -1
  318. package/esm2015/lib/metadata/shared/metadata.service.js +1 -1
  319. package/esm2015/lib/overlay/index.js +1 -1
  320. package/esm2015/lib/overlay/overlay.module.js +1 -1
  321. package/esm2015/lib/overlay/shared/index.js +1 -1
  322. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +1 -1
  323. package/esm2015/lib/overlay/shared/overlay.directive.js +1 -1
  324. package/esm2015/lib/overlay/shared/overlay.enum.js +1 -1
  325. package/esm2015/lib/overlay/shared/overlay.js +1 -1
  326. package/esm2015/lib/overlay/shared/overlay.service.js +1 -1
  327. package/esm2015/lib/overlay/shared/overlay.utils.js +1 -1
  328. package/esm2015/lib/print/index.js +1 -1
  329. package/esm2015/lib/print/print/print.component.js +1 -1
  330. package/esm2015/lib/print/print-form/index.js +1 -1
  331. package/esm2015/lib/print/print-form/print-form.component.js +1 -1
  332. package/esm2015/lib/print/print.module.js +1 -1
  333. package/esm2015/lib/print/shared/index.js +1 -1
  334. package/esm2015/lib/print/shared/print.interface.js +1 -1
  335. package/esm2015/lib/print/shared/print.service.js +1 -1
  336. package/esm2015/lib/print/shared/print.type.js +1 -1
  337. package/esm2015/lib/query/index.js +1 -1
  338. package/esm2015/lib/query/query.module.js +1 -1
  339. package/esm2015/lib/query/shared/index.js +1 -1
  340. package/esm2015/lib/query/shared/query-search-source.js +1 -1
  341. package/esm2015/lib/query/shared/query-search-source.providers.js +1 -1
  342. package/esm2015/lib/query/shared/query.directive.js +1 -1
  343. package/esm2015/lib/query/shared/query.enums.js +1 -1
  344. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  345. package/esm2015/lib/query/shared/query.service.js +1 -1
  346. package/esm2015/lib/query/shared/query.utils.js +1 -1
  347. package/esm2015/lib/search/index.js +1 -1
  348. package/esm2015/lib/search/search-bar/search-bar.component.js +1 -1
  349. package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
  350. package/esm2015/lib/search/search-bar/search-url-param.directive.js +1 -1
  351. package/esm2015/lib/search/search-results/search-results-add-button.component.js +1 -1
  352. package/esm2015/lib/search/search-results/search-results-item.component.js +1 -1
  353. package/esm2015/lib/search/search-results/search-results.component.js +1 -1
  354. package/esm2015/lib/search/search-results/search-results.module.js +1 -1
  355. package/esm2015/lib/search/search-selector/search-selector.component.js +1 -1
  356. package/esm2015/lib/search/search-selector/search-selector.module.js +1 -1
  357. package/esm2015/lib/search/search-settings/search-settings.component.js +1 -1
  358. package/esm2015/lib/search/search-settings/search-settings.module.js +1 -1
  359. package/esm2015/lib/search/search.module.js +1 -1
  360. package/esm2015/lib/search/shared/index.js +1 -1
  361. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +1 -1
  362. package/esm2015/lib/search/shared/search-source-service.providers.js +1 -1
  363. package/esm2015/lib/search/shared/search-source.service.js +1 -1
  364. package/esm2015/lib/search/shared/search.enums.js +1 -1
  365. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  366. package/esm2015/lib/search/shared/search.service.js +1 -1
  367. package/esm2015/lib/search/shared/search.utils.js +1 -1
  368. package/esm2015/lib/search/shared/sources/cadastre.js +1 -1
  369. package/esm2015/lib/search/shared/sources/cadastre.providers.js +1 -1
  370. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +1 -1
  371. package/esm2015/lib/search/shared/sources/coordinates.js +1 -1
  372. package/esm2015/lib/search/shared/sources/coordinates.providers.js +1 -1
  373. package/esm2015/lib/search/shared/sources/icherche.interfaces.js +1 -1
  374. package/esm2015/lib/search/shared/sources/icherche.js +1 -1
  375. package/esm2015/lib/search/shared/sources/icherche.providers.js +1 -1
  376. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +1 -1
  377. package/esm2015/lib/search/shared/sources/ilayer.js +1 -1
  378. package/esm2015/lib/search/shared/sources/ilayer.providers.js +1 -1
  379. package/esm2015/lib/search/shared/sources/index.js +1 -1
  380. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +1 -1
  381. package/esm2015/lib/search/shared/sources/nominatim.js +2 -2
  382. package/esm2015/lib/search/shared/sources/nominatim.providers.js +1 -1
  383. package/esm2015/lib/search/shared/sources/source.interfaces.js +1 -1
  384. package/esm2015/lib/search/shared/sources/source.js +1 -1
  385. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
  386. package/esm2015/lib/search/shared/sources/storedqueries.js +1 -1
  387. package/esm2015/lib/search/shared/sources/storedqueries.providers.js +1 -1
  388. package/esm2015/lib/toast/index.js +1 -1
  389. package/esm2015/lib/toast/toast.component.js +1 -1
  390. package/esm2015/lib/toast/toast.module.js +1 -1
  391. package/esm2015/lib/utils/commonVectorStyle.interface.js +1 -1
  392. package/esm2015/lib/utils/commonVectorStyle.js +1 -1
  393. package/esm2015/lib/utils/googleLinks.js +1 -1
  394. package/esm2015/lib/utils/id-generator.js +1 -1
  395. package/esm2015/lib/utils/index.js +1 -1
  396. package/esm2015/lib/utils/osmLinks.js +1 -1
  397. package/esm2015/lib/wkt/index.js +1 -1
  398. package/esm2015/lib/wkt/shared/index.js +1 -1
  399. package/esm2015/lib/wkt/shared/wkt.service.js +15 -15
  400. package/esm2015/lib/wkt/wkt.module.js +1 -1
  401. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +1 -1
  402. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +1 -1
  403. package/esm2015/lib/workspace/confirmation-popup/index.js +1 -1
  404. package/esm2015/lib/workspace/index.js +1 -1
  405. package/esm2015/lib/workspace/shared/edition-workspace.js +1 -1
  406. package/esm2015/lib/workspace/shared/edition-workspace.service.js +1 -1
  407. package/esm2015/lib/workspace/shared/feature-workspace.js +1 -1
  408. package/esm2015/lib/workspace/shared/feature-workspace.service.js +1 -1
  409. package/esm2015/lib/workspace/shared/index.js +1 -1
  410. package/esm2015/lib/workspace/shared/wfs-workspace.js +1 -1
  411. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +1 -1
  412. package/esm2015/lib/workspace/shared/wms-workspace.service.js +1 -1
  413. package/esm2015/lib/workspace/shared/workspace.utils.js +1 -1
  414. package/esm2015/lib/workspace/widgets/index.js +1 -1
  415. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +1 -1
  416. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +1 -1
  417. package/esm2015/lib/workspace/widgets/widgets.js +1 -1
  418. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +1 -1
  419. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
  420. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +1 -1
  421. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
  422. package/esm2015/lib/workspace/workspace.module.js +1 -1
  423. package/esm2015/public_api.js +1 -1
  424. package/fesm2015/igo2-geo.js +19 -23
  425. package/fesm2015/igo2-geo.js.map +1 -1
  426. package/ngcc.config.js +3 -3
  427. package/package.json +4 -4
  428. package/style/geo.theming.scss +12 -12
@@ -990,4 +990,4 @@ OgcFilterSelectionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
990
990
  }], currentFilter: [{
991
991
  type: Input
992
992
  }] }); })();
993
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci1zZWxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItc2VsZWN0aW9uL29nYy1maWx0ZXItc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXNlbGVjdGlvbi9vZ2MtZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFVdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWpFLE9BQU8sRUFBZSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztJQ2QzQixzQ0FDMEI7SUFBQSxZQUMxQjtJQUFBLGlCQUFhOzs7SUFEWCx5Q0FBdUI7SUFBQyxlQUMxQjtJQUQwQix1REFDMUI7Ozs7SUFSTiw4QkFBc0U7SUFDcEUsc0NBQWdCO0lBQ2Qsc0NBR3NDO0lBQXBDLHlQQUFtQzs7SUFDbkMsNkdBRWE7SUFDZixpQkFBYTtJQUNmLGlCQUFpQjtJQUNuQixpQkFBTTs7O0lBUEEsZUFBNkQ7SUFBN0QscUZBQTZELHlDQUFBO0lBRXZCLGVBQXlCO0lBQXpCLHVEQUF5Qjs7OztJQVVqRSw2Q0FJMEI7SUFEVSxrYUFBa0U7SUFDNUUsWUFDMUI7SUFBQSxpQkFBb0I7Ozs7SUFKbEIsa0VBQXdDLHNEQUFBLHNDQUFBLDRCQUFBO0lBR2hCLGVBQzFCO0lBRDBCLHVEQUMxQjs7O0lBVEosNkJBQStFO0lBQzdFLDBCQUFJO0lBQUEsWUFBZ0I7SUFBQSxpQkFBSztJQUN6QixtREFDaUk7SUFDL0gsb0lBS29CO0lBQ3RCLGlCQUEwQjtJQUM1QiwwQkFBZTs7OztJQVZULGVBQWdCO0lBQWhCLHNDQUFnQjtJQUV1RCxlQUFxQztJQUFyQyx5RUFBcUM7SUFDakUsZUFBbUI7SUFBbkIsOENBQW1COzs7SUFsQnRFLDhCQUE2RTtJQUMzRSw4QkFBMkI7SUFDM0Isd0ZBV007SUFDTiwwR0FXZTtJQUNqQixpQkFBTTs7O0lBeEJ5QixlQUF1QztJQUF2QywrREFBdUM7SUFZbkMsZUFBNEM7SUFBNUMsMEVBQTRDOzs7SUFzQnZFLHNDQUMwQjtJQUFBLFlBQzFCO0lBQUEsaUJBQWE7OztJQURYLHlDQUF1QjtJQUFDLGVBQzFCO0lBRDBCLHVEQUMxQjs7OztJQVJOLDhCQUFxRTtJQUNuRSxzQ0FBZ0I7SUFDZCxzQ0FHcUM7SUFBbkMsd1BBQWtDOztJQUNsQyw2R0FFYTtJQUNmLGlCQUFhO0lBQ2YsaUJBQWlCO0lBQ25CLGlCQUFNOzs7SUFQQSxlQUE2RDtJQUE3RCxxRkFBNkQseUNBQUE7SUFFdkIsZUFBd0I7SUFBeEIsdURBQXdCOzs7O0lBU2hFLHdDQUd3QjtJQURVLG9aQUFnRTtJQUMxRSxZQUN4QjtJQUFBLGlCQUFlOzs7O0lBSGIsZ0VBQXNDLG9DQUFBLDBCQUFBO0lBRWhCLGVBQ3hCO0lBRHdCLHFEQUN4Qjs7OztJQUdBLDZCQUUyQztJQUF6Qyw4TkFBNEIsVUFBVSxLQUFFO0lBQUMsWUFDM0M7O0lBQUEsaUJBQUk7O0lBRHVDLGVBQzNDO0lBRDJDLHlGQUMzQzs7OztJQUNBLDZCQUUyQztJQUF6Qyw4TkFBNEIsVUFBVSxLQUFFO0lBQUMsWUFDM0M7O0lBQUEsaUJBQUk7O0lBRHVDLGVBQzNDO0lBRDJDLHlGQUMzQzs7O0lBUkYseUJBQWtGO0lBQ2hGLHdHQUdJO0lBQ0osd0dBR0k7SUFDTixpQkFBSTs7OztJQVJFLGVBQXVDO0lBQXZDLG9FQUF1QztJQUl2QyxlQUF1QztJQUF2QyxvRUFBdUM7OztJQWQvQyw2QkFBOEU7SUFDNUUsMEJBQUk7SUFBQSxZQUFnQjtJQUFBLGlCQUFLO0lBQ3pCLCtCQUF1QztJQUNyQywwSEFJZTtJQUNqQixpQkFBTTtJQUNOLG1HQVNJO0lBQ04sMEJBQWU7Ozs7SUFsQlQsZUFBZ0I7SUFBaEIsc0NBQWdCO0lBRW9CLGVBQW1CO0lBQW5CLDhDQUFtQjtJQU12RCxlQUE0RTtJQUE1RSxxSEFBNEU7OztJQXZCcEYsK0JBQXlFO0lBQ3ZFLDhCQUEyQjtJQUMzQix3RkFXTTtJQUNOLDBHQW1CZTtJQUNqQixpQkFBTTs7O0lBaEN5QixlQUFzQztJQUF0Qyw4REFBc0M7SUFZbEMsZUFBMkM7SUFBM0MseUVBQTJDOzs7SUE4QnRFLHNDQUMwQjtJQUFBLFlBQzFCO0lBQUEsaUJBQWE7OztJQURYLHlDQUF1QjtJQUFDLGVBQzFCO0lBRDBCLHVEQUMxQjs7OztJQVJOLDhCQUF1RTtJQUNyRSxzQ0FBZ0I7SUFDZCxzQ0FHdUM7SUFBckMsMFBBQW9DOztJQUNwQyw2R0FFYTtJQUNmLGlCQUFhO0lBQ2YsaUJBQWlCO0lBQ25CLGlCQUFNOzs7SUFQQSxlQUE2RDtJQUE3RCxxRkFBNkQsMkNBQUE7SUFFdkIsZUFBMEI7SUFBMUIseURBQTBCOzs7O0lBVWxFLDRDQUVpQztJQUEvQiw4UEFBOEI7O0lBQUMsWUFDakM7O0lBQUEsaUJBQW1COztJQUZqQixnRkFBd0Q7SUFDekIsZUFDakM7SUFEaUMsbUZBQ2pDOzs7O0lBQ0EsNENBRzJCO0lBRFUsa2FBQW1FO0lBQzdFLFlBQzNCO0lBQUEsaUJBQW1COzs7O0lBSGpCLG1FQUF5Qyx1Q0FBQSw2QkFBQTtJQUVoQixlQUMzQjtJQUQyQix3REFDM0I7Ozs7SUFFRSw2QkFFd0M7SUFBdEMsOE5BQTRCLE9BQU8sS0FBRTtJQUFDLFlBQ3hDOztJQUFBLGlCQUFJOztJQURvQyxlQUN4QztJQUR3Qyx5RkFDeEM7Ozs7SUFDQSw2QkFFd0M7SUFBdEMsOE5BQTRCLE9BQU8sS0FBRTtJQUFDLFlBQ3hDOztJQUFBLGlCQUFJOztJQURvQyxlQUN4QztJQUR3Qyx5RkFDeEM7OztJQVJGLHlCQUE0RTtJQUMxRSx3R0FHSTtJQUNKLHdHQUdJO0lBQ04saUJBQUk7Ozs7SUFSRSxlQUFvQztJQUFwQyxpRUFBb0M7SUFJcEMsZUFBb0M7SUFBcEMsaUVBQW9DOzs7SUFsQjlDLDZCQUFnRjtJQUM5RSwwQkFBSTtJQUFBLFlBQWdCO0lBQUEsaUJBQUs7SUFDekIsMkNBQ3dEO0lBQ3RELGtJQUdtQjtJQUNuQixrSUFJbUI7SUFDbkIsbUdBU0k7SUFDTixpQkFBa0I7SUFDcEIsMEJBQWU7Ozs7SUF2QlQsZUFBZ0I7SUFBaEIsc0NBQWdCO0lBR0MsZUFBdUI7SUFBdkIsNENBQXVCO0lBSUcsZUFBbUI7SUFBbkIsOENBQW1CO0lBSzVELGVBQXNFO0lBQXRFLCtHQUFzRTs7O0lBM0JoRiwrQkFBK0U7SUFDN0UsOEJBQTJCO0lBQzNCLHdGQVdNO0lBQ04sMEdBd0JlO0lBQ2pCLGlCQUFNOzs7SUFyQ3lCLGVBQXdDO0lBQXhDLGdFQUF3QztJQVlwQyxlQUE2QztJQUE3QywyRUFBNkM7OztJQW1DeEUsc0NBQzBCO0lBQUEsWUFDMUI7SUFBQSxpQkFBYTs7O0lBRFgseUNBQXVCO0lBQUMsZUFDMUI7SUFEMEIsdURBQzFCOzs7O0lBUk4sOEJBQWlFO0lBQy9ELHNDQUFnQjtJQUNkLHNDQUdpQztJQUEvQixvUEFBOEI7O0lBQzlCLDZHQUVhO0lBQ2YsaUJBQWE7SUFDZixpQkFBaUI7SUFDbkIsaUJBQU07OztJQVBBLGVBQTZEO0lBQTdELHFGQUE2RCxxQ0FBQTtJQUV2QixlQUFvQjtJQUFwQixtREFBb0I7Ozs7SUFTNUQsc0NBSTBCO0lBQXhCLDBPQUF1Qjs7SUFDdkIsK0JBQTZDO0lBQy9DLGlCQUFhOztJQUhYLGdGQUF3RDs7Ozs7SUFVbEQsd0NBRWtDO0lBRGhDLGlSQUF5QixnUEFBQTtJQUNPLHFCQUNsQztJQUFBLGlCQUFlOzs7SUFGYiw2Q0FBeUIsOENBQUE7Ozs7SUFJN0Isc0NBR3NCO0lBRHBCLHdRQUFtQztJQUNmLFlBQ3RCO0lBQUEsaUJBQWE7Ozs7SUFIWCw4REFBb0Msd0JBQUE7SUFFaEIsZUFDdEI7SUFEc0IsbURBQ3RCOzs7O0lBZEosMkJBQTRDO0lBQzFDLDBDQUVnRDtJQUF2Qiw2UEFBc0I7SUFDN0MsK0JBQXVDO0lBQ3JDLGdJQUdlO0lBQ2pCLGlCQUFNO0lBQ04sNEhBSWE7SUFDZixpQkFBYTtJQUNmLGlCQUFNOzs7O0lBZFMsZUFBNEI7SUFBNUIsOENBQTRCLGlDQUFBLCtCQUFBLDZCQUFBO0lBR3RCLGVBQXFCO0lBQXJCLDBDQUFxQjtJQUtKLGVBQW1CO0lBQW5CLDhDQUFtQjs7O0lBV3JELHNDQUVzQjtJQUFBLFlBQ3RCO0lBQUEsaUJBQWE7Ozs7SUFGWCw4REFBb0Msd0JBQUE7SUFDaEIsZUFDdEI7SUFEc0IsbURBQ3RCOzs7O0lBTkYsc0NBRStDO0lBQXRCLG9RQUFxQjtJQUM1QyxvSUFHYTtJQUNmLGlCQUFhOzs7O0lBTlgsOENBQTRCLCtCQUFBLDRCQUFBO0lBRU0sZUFBbUI7SUFBbkIsOENBQW1COzs7SUFoQy9ELDZCQUEwRTtJQUN4RSwwQkFBSTtJQUFBLFlBQWdCO0lBQUEsaUJBQUs7SUFDekIsOEJBQTRCO0lBQzFCLHNIQU1hO0lBQ2Isc0NBQWdCO0lBQ2Qsd0dBZ0JNO0lBQ04seUpBU2M7SUFDaEIsaUJBQWlCO0lBQ25CLGlCQUFNO0lBQ1IsMEJBQWU7Ozs7SUF2Q1QsZUFBZ0I7SUFBaEIsc0NBQWdCO0lBRUwsZUFBMkM7SUFBM0Msb0VBQTJDO0lBUWhELGVBQXVCO0lBQXZCLDBDQUF1QixrQkFBQTs7O0lBekJyQywrQkFBcUU7SUFDbkUsOEJBQTJCO0lBQzNCLHdGQVdNO0lBQ04sMEdBd0NlO0lBQ2pCLGlCQUFNOzs7SUFyRHlCLGVBQWtDO0lBQWxDLDBEQUFrQztJQVk5QixlQUF1QztJQUF2QyxxRUFBdUM7OztJQXhINUUsMkJBQWtEO0lBQ2hELGtGQTBCTTtJQUVOLGtGQWtDTTtJQUVOLGtGQXVDTTtJQUVOLGtGQXVETTtJQUNSLGlCQUFNOzs7SUFqSzJCLGVBQTRDO0lBQTVDLGdFQUE0QztJQTRCOUMsZUFBMEM7SUFBMUMsOERBQTBDO0lBb0N2QyxlQUE2QztJQUE3QyxpRUFBNkM7SUF5Q2xELGVBQXdDO0lBQXhDLDREQUF3Qzs7O0lBNkRyRSwwQkFBaUM7SUFBQSxZQUFnRDs7SUFBQSxpQkFBSzs7SUFBckQsZUFBZ0Q7SUFBaEQsMEVBQWdEOzs7SUFDakYsMEJBQWdDO0lBQUEsWUFBeUI7SUFBQSxpQkFBSzs7O0lBQTlCLGVBQXlCO0lBQXpCLGlEQUF5Qjs7OztJQUgzRCwyQkFBa0M7SUFDaEMsOEJBQTJCO0lBQzNCLGdGQUFzRjtJQUN0RixnRkFBOEQ7SUFDOUQsK0NBRzhEO0lBRjVELGtQQUEyQiw4T0FBQSxzUEFBQTtJQUc3QixpQkFBc0I7SUFDeEIsaUJBQU07OztJQVBDLGVBQTBCO0lBQTFCLGtEQUEwQjtJQUMxQixlQUF5QjtJQUF6QixpREFBeUI7SUFFNUIsZUFBMkI7SUFBM0IsOENBQTJCLHVDQUFBOztBRDVJL0IsTUFBTSxPQUFPLDJCQUEyQjtJQWdJdEMsWUFDVSxnQkFBa0MsRUFDbEMsV0FBd0I7UUFEeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXhIekIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFjaEIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFJdEMsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixXQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBa0d6QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUF4SEQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLGFBQWEsQ0FBQyxLQUFLOztRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsYUFBYSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyw4Q0FBOEM7U0FDbEc7SUFDSCxDQUFDO0lBZUQsSUFBSSxtQkFBbUI7O1FBQ3JCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxXQUFXLEVBQUU7WUFDckQsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLFVBQVUsMENBQUUsV0FBVyxDQUFDLENBQUM7U0FDckU7UUFDRCxJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxVQUFVLEVBQUU7WUFDcEQsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLFVBQVUsMENBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxZQUFZLEVBQUU7WUFDdEQsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLFVBQVUsMENBQUUsWUFBWSxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxNQUFNLEVBQUU7WUFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLFVBQVUsMENBQUUsTUFBTSxDQUFDLENBQUM7U0FDaEU7UUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNyQixPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ1g7WUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDckIsT0FBTyxDQUFDLENBQUM7YUFDVjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksd0JBQXdCLENBQUMsS0FBSztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLGtCQUFrQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdELFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM3RCxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQVVPLFNBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9COztRQUNsQixJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxXQUFXLEVBQUU7WUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRCxtQkFBbUI7O1FBQ2pCLElBQUksTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsT0FBTywwQ0FBRSxVQUFVLDBDQUFFLFVBQVUsRUFBRTtZQUNwRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQzdEO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjs7UUFDbkIsSUFBSSxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLFVBQVUsMENBQUUsWUFBWSxFQUFFO1lBQ3RELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQsZUFBZTs7UUFDYixJQUFJLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sMENBQUUsVUFBVSwwQ0FBRSxNQUFNLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsdUJBQXVCO29CQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO3dCQUNsRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1RDtZQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRTtnQkFDakQsSUFBSSxDQUFDLHNCQUFzQjtvQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQzt3QkFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0Q7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyx3QkFBd0I7b0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7d0JBQ25GLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsa0JBQWtCO29CQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO3dCQUM3RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7UUFFRCxJQUFJLENBQUMsSUFBSTthQUNSLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQzthQUN2QixZQUFZO2FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLElBQUk7YUFDUixHQUFHLENBQUMsaUJBQWlCLENBQUM7YUFDdEIsWUFBWTthQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxJQUFJO2FBQ04sR0FBRyxDQUFDLG1CQUFtQixDQUFDO2FBQ3hCLFlBQVk7YUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxhQUFhLENBQUM7YUFDbEIsWUFBWTthQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxJQUFJO2FBQ04sR0FBRyxDQUFDLGFBQWEsQ0FBQzthQUNsQixZQUFZO2FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLElBQUk7YUFDTixHQUFHLENBQUMsY0FBYyxDQUFDO2FBQ25CLFlBQVk7YUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDN0QsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUN2QixVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO3dCQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUN6QjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO3dCQUNwQixPQUFPLEdBQUcsUUFBUSxDQUFDO3FCQUNwQjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFRO1FBQ2pCLElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25DLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQzthQUM1QjtTQUNGO1FBQ0QsT0FBTyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQ0FBMEM7SUFFMUMsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIscUZBQXFGO0lBQ3JGLFNBQVM7SUFDVCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLDBFQUEwRTtJQUMxRSx3RUFBd0U7SUFDeEUsUUFBUTtJQUNSLE1BQU07SUFDTixtQkFBbUI7SUFDbkIsSUFBSTtJQUVKLGNBQWMsQ0FBQyxVQUF5QjtRQUN0QyxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksVUFBVSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQzFDLE1BQU0sR0FBRztnQkFDUCxrQkFBa0IsRUFBRSxRQUFRLFVBQVUsQ0FBQyxLQUFLLEdBQUc7YUFDaEQsQ0FBQztTQUNIO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQXlCO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuRyxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDakcsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JHLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3pGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxtQkFBb0IsRUFBRSxZQUFhO1FBQ25ELFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxJQUFJLFlBQVksS0FBSyxhQUFhLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLG1CQUFtQixDQUFDLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFFL0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUM5RDthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtZQUM5RSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUU7WUFDeEMsSUFBSSxZQUFZLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2xDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQ2xELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztvQkFDM0IsY0FBYyxDQUFDLFNBQVM7eUJBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDO3lCQUNuRCxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUMzRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFHO3dCQUNoQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUNyQzs2QkFBTTs0QkFDTCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQUM7eUJBQzlFO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDM0QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDMUIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWU7aUJBQ3JDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUF3QixDQUFDLENBQUM7U0FDbkY7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBMkIsRUFBRSxpQkFBaUIsQ0FBRSxDQUFDO1NBQ3pGO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQzFDLDBFQUEwRTtZQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQ3hCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDeEMsZUFBZSxFQUFFLENBQUM7U0FDbkI7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDL0UsT0FBTyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFJO1FBQ3JCLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQzNFLE9BQU87SUFDVCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQ3hCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDeEMsZUFBZSxFQUFFLENBQUM7U0FDbkI7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBSTtRQUNyQixJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25HLE9BQU87SUFDVCxDQUFDO0lBRUQsa0JBQWtCOztRQUNoQixPQUFPLENBQ0wsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSwwQ0FBRSxXQUFXLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVSxFQUFFLEdBQVksRUFBRSxhQUFhLEdBQUcsSUFBSTtRQUMzRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUN6RCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQzFELENBQUMsZ0JBQWdCLENBQUMsR0FBRyxLQUFLLENBQUM7WUFFNUIsSUFBSyxhQUFhLEVBQUc7Z0JBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFZO1FBQ3pCLFFBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDbkMsS0FBSyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QyxLQUFLLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1lBQ3pDLEtBQUssaUJBQWlCLENBQUMscUJBQXFCLENBQUM7WUFDN0MsS0FBSyxpQkFBaUIsQ0FBQyw4QkFBOEIsQ0FBQztZQUN0RCxLQUFLLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO1lBQzFDLEtBQUssaUJBQWlCLENBQUMsMkJBQTJCO2dCQUNoRCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLGlCQUFpQixDQUFDLGNBQWM7Z0JBQ25DLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssaUJBQWlCLENBQUMsaUJBQWlCO2dCQUN0QyxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDckIsQ0FBQyxDQUFDLGVBQWU7b0JBQ2pCLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7d0JBQ2xCLENBQUMsQ0FBQyxlQUFlO3dCQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxPQUFPO29CQUNULENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7d0JBQ2xCLENBQUMsQ0FBQyxLQUFLO3dCQUNQLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTztTQUNWO0lBQ0gsQ0FBQzs7c0dBemVVLDJCQUEyQjs4RUFBM0IsMkJBQTJCOzs7Ozs7UUMvQnhDLCtCQUF5QjtRQUN2Qiw0RUFrS007UUFDUixpQkFBTztRQUVQLDRFQVNNOztRQS9LQSxvQ0FBa0I7UUFDSSxlQUFzQjtRQUF0QixpREFBc0I7UUFxSzVDLGVBQTBCO1FBQTFCLCtDQUEwQjs7dUZEdkluQiwyQkFBMkI7Y0FMdkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFdBQVcsRUFBRSx1Q0FBdUM7Z0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO2FBQ3JEOzZGQUd5QixHQUFHO2tCQUExQixTQUFTO21CQUFDLFdBQVc7WUFFYixjQUFjO2tCQUF0QixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSztZQUVHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBR0YsYUFBYTtrQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UsXHJcbiAgSWdvT2djRmlsdGVyT2JqZWN0LFxyXG4gIE9nY1B1c2hCdXR0b24sXHJcbiAgT2djU2VsZWN0b3JCdW5kbGUsXHJcbiAgU2VsZWN0b3JHcm91cFxyXG5cclxufSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcclxuaW1wb3J0IHsgT0dDRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLXNlbGVjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXItc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdzZWxlY3Rpb24nKSBzZWw6IE1hdFNlbGVjdDtcclxuXHJcbiAgQElucHV0KCkgcmVmcmVzaEZpbHRlcnM6ICgpID0+IHZvaWQ7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGFzb3VyY2U6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xyXG5cclxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcclxuXHJcbiAgQElucHV0KCkgY2hlY2tib3hlc0luZGV4ID0gNTtcclxuICBASW5wdXQoKSByYWRpb0J1dHRvbnNJbmRleCA9IDU7XHJcbiAgQElucHV0KCkgYmFzZUluZGV4ID0gNTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgY3VycmVudEZpbHRlcigpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRGaWx0ZXI7XHJcbiAgfVxyXG4gIHNldCBjdXJyZW50RmlsdGVyKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9jdXJyZW50RmlsdGVyID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5fY3VycmVudEZpbHRlcj8uc2xpZGVyT3B0aW9ucykge1xyXG4gICAgICB0aGlzLl9jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMuZW5hYmxlZCA9IGZhbHNlOyAvLyByZW1vdmUgc2xpZGVyIHRvZ2dsZSAoYW5pbWF0aW9uIHRlbXBvcmVsbGUpXHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2N1cnJlbnRGaWx0ZXI6IGFueTtcclxuXHJcbiAgcHVibGljIG9nY0ZpbHRlck9wZXJhdG9yID0gT2djRmlsdGVyT3BlcmF0b3I7XHJcblxyXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHJpdmF0ZSBvZ2NGaWx0ZXJXcml0ZXI6IE9nY0ZpbHRlcldyaXRlcjtcclxuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XHJcbiAgcHVibGljIGFsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyBlbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuICBwdWJsaWMgZW5hYmxlZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlcnNUaW1lb3V0O1xyXG5cclxuICBnZXQgb2djRmlsdGVyc1NlbGVjdG9ycygpIHtcclxuICAgIGNvbnN0IG9nY1NlbGVjdG9yID0gW107XHJcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5wdXNoQnV0dG9ucykge1xyXG4gICAgICBvZ2NTZWxlY3Rvci5wdXNoKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8ucHVzaEJ1dHRvbnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8uY2hlY2tib3hlcykge1xyXG4gICAgICBvZ2NTZWxlY3Rvci5wdXNoKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8uY2hlY2tib3hlcyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5yYWRpb0J1dHRvbnMpIHtcclxuICAgICAgb2djU2VsZWN0b3IucHVzaCh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnJhZGlvQnV0dG9ucyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5zZWxlY3QpIHtcclxuICAgICAgb2djU2VsZWN0b3IucHVzaCh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnNlbGVjdCk7XHJcbiAgICB9XHJcbiAgICBvZ2NTZWxlY3Rvci5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGlmIChhLm9yZGVyIDwgYi5vcmRlcikge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYS5vcmRlciA+IGIub3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9nY1NlbGVjdG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3B1c2hCdXR0b25zR3JvdXAnKS52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwKHZhbHVlKSB7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHB1c2hCdXR0b25zR3JvdXA6IHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRDaGVja2JveGVzR3JvdXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY2hlY2tib3hlc0dyb3VwJykudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBjdXJyZW50Q2hlY2tib3hlc0dyb3VwKHZhbHVlKSB7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGNoZWNrYm94ZXNHcm91cDogdmFsdWUgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3JhZGlvQnV0dG9uc0dyb3VwJykudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBjdXJyZW50UmFkaW9CdXR0b25zR3JvdXAodmFsdWUpIHtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgcmFkaW9CdXR0b25zR3JvdXA6IHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRTZWxlY3RHcm91cCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZWxlY3RHcm91cCcpLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgY3VycmVudFNlbGVjdEdyb3VwKHZhbHVlKSB7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHNlbGVjdEdyb3VwOiB2YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIGdldCBlbmFibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZCQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgZW5hYmxlZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5lbmFibGVkJC5uZXh0KHZhbHVlKTtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQpO1xyXG4gICAgdGhpcy5jdXJyZW50U2VsZWN0R3JvdXAuY29tcHV0ZWRTZWxlY3RvcnMuZm9yRWFjaChjb21wU2VsZWN0ID0+IHtcclxuICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XHJcbiAgICAgICAgdmFsdWUgPT09IHNlbGVjdG9yID8gc2VsZWN0b3IuZW5hYmxlZCA9IHRydWUgOiBzZWxlY3Rvci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hcHBseUZpbHRlcnNUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XHJcbiAgICB9LCA3NTApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuYWJsZWRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZHMkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IGVuYWJsZWRzKHZhbHVlKSB7XHJcbiAgICB0aGlzLmVuYWJsZWRzJC5uZXh0KHZhbHVlKTtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQpO1xyXG4gICAgdGhpcy5jdXJyZW50U2VsZWN0R3JvdXAuY29tcHV0ZWRTZWxlY3RvcnMuZm9yRWFjaChjb21wU2VsZWN0ID0+IHtcclxuICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XHJcbiAgICAgICAgdmFsdWUuaW5jbHVkZXMoc2VsZWN0b3IpID8gc2VsZWN0b3IuZW5hYmxlZCA9IHRydWUgOiBzZWxlY3Rvci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hcHBseUZpbHRlcnNUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XHJcbiAgICB9LCA3NTApO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG9nY0ZpbHRlclNlcnZpY2U6IE9HQ0ZpbHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICApIHtcclxuICAgIHRoaXMub2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHB1c2hCdXR0b25zOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHJhZGlvQnV0dG9uczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBwdXNoQnV0dG9uc0dyb3VwOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGNoZWNrYm94ZXNHcm91cDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICByYWRpb0J1dHRvbnNHcm91cDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzZWxlY3RHcm91cDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQdXNoQnV0dG9uc0dyb3VwcygpOiBTZWxlY3Rvckdyb3VwW10ge1xyXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8ucHVzaEJ1dHRvbnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuZ3JvdXBzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tib3hlc0dyb3VwcygpOiBTZWxlY3Rvckdyb3VwW10ge1xyXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8uY2hlY2tib3hlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5jaGVja2JveGVzLmdyb3VwcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJhZGlvQnV0dG9uc0dyb3VwcygpOiBTZWxlY3Rvckdyb3VwW10ge1xyXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8ucmFkaW9CdXR0b25zKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5ncm91cHM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RHcm91cHMoKTogU2VsZWN0b3JHcm91cFtdIHtcclxuICAgIGlmICh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnNlbGVjdCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QuZ3JvdXBzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycykge1xyXG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucykge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFB1c2hCdXR0b25zR3JvdXAgPVxyXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucy5ncm91cHMuZmluZChncm91cCA9PiBncm91cC5lbmFibGVkKSB8fFxyXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucy5ncm91cHNbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuY2hlY2tib3hlcykge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENoZWNrYm94ZXNHcm91cCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCkgfHxcclxuICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuY2hlY2tib3hlcy5ncm91cHNbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucmFkaW9CdXR0b25zKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UmFkaW9CdXR0b25zR3JvdXAgPVxyXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5yYWRpb0J1dHRvbnMuZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCkgfHxcclxuICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLmdyb3Vwc1swXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3RHcm91cCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdC5ncm91cHMuZmluZChncm91cCA9PiBncm91cC5lbmFibGVkKSB8fFxyXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QuZ3JvdXBzWzBdO1xyXG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0RW5hYmxlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAuZ2V0KCdwdXNoQnV0dG9uc0dyb3VwJylcclxuICAgIC52YWx1ZUNoYW5nZXNcclxuICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25QdXNoQnV0dG9uc0NoYW5nZUdyb3VwKCk7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAuZ2V0KCdjaGVja2JveGVzR3JvdXAnKVxyXG4gICAgLnZhbHVlQ2hhbmdlc1xyXG4gICAgLnBpcGUoZGVib3VuY2VUaW1lKDc1MCkpXHJcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5vbkNoZWNrYm94ZXNDaGFuZ2VHcm91cCgpO1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAuZ2V0KCdyYWRpb0J1dHRvbnNHcm91cCcpXHJcbiAgICAgIC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDc1MCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25SYWRpb0J1dHRvbnNDaGFuZ2VHcm91cCgpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAgIC5nZXQoJ3NlbGVjdEdyb3VwJylcclxuICAgICAgLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNzUwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdENoYW5nZUdyb3VwKCk7XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvcm1cclxuICAgICAgLmdldCgncHVzaEJ1dHRvbnMnKVxyXG4gICAgICAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAuZ2V0KCdyYWRpb0J1dHRvbnMnKVxyXG4gICAgICAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0RW5hYmxlZCgpIHtcclxuICAgIGNvbnN0IGVuYWJsZWRzID0gW107XHJcbiAgICBsZXQgZW5hYmxlZDtcclxuICAgIHRoaXMuY3VycmVudFNlbGVjdEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzLmZvckVhY2goY29tcFNlbGVjdCA9PiB7XHJcbiAgICAgIGlmIChjb21wU2VsZWN0Lm11bHRpcGxlKSB7XHJcbiAgICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0b3IuZW5hYmxlZCkge1xyXG4gICAgICAgICAgICBlbmFibGVkcy5wdXNoKHNlbGVjdG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmVuYWJsZWRzID0gZW5hYmxlZHM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0b3IuZW5hYmxlZCkge1xyXG4gICAgICAgICAgICBlbmFibGVkID0gc2VsZWN0b3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUb29sVGlwKHNlbGVjdG9yKTogc3RyaW5nIHtcclxuICAgIGxldCB0b29sVGlwO1xyXG4gICAgaWYgKHNlbGVjdG9yLnRvb2x0aXApIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0b3IudG9vbHRpcCkpIHtcclxuICAgICAgICB0b29sVGlwID0gc2VsZWN0b3IudG9vbHRpcC5qb2luKCdcXG4nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0b29sVGlwID0gc2VsZWN0b3IudG9vbHRpcDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvb2xUaXAgfHwgJyc7XHJcbiAgfVxyXG5cclxuICAvLyBnZXRCdXR0b25TdHlsZShwYjogT2djUHVzaEJ1dHRvbik6IHt9IHtcclxuXHJcbiAgLy8gICBsZXQgc3R5bGVzO1xyXG4gIC8vICAgaWYgKHBiLmNvbG9yKSB7XHJcbiAgLy8gICAgIHN0eWxlcyA9IHtcclxuICAvLyAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHBiLmVuYWJsZWQgPyBgcmdiYSgke3BiLmNvbG9yfSlgIDogYHJnYmEoMjU1LDI1NSwyNTUsMClgXHJcbiAgLy8gICAgIH07XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBzdHlsZXMgPSB7XHJcbiAgLy8gICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBwYi5lbmFibGVkID8gJ2FjY2VudCc6IGByZ2JhKDI1NSwyNTUsMjU1LDApYCxcclxuICAvLyAgICAgICAnY29sb3InOiBwYi5lbmFibGVkID8gYHJnYmEoMCwwLDAsMC45KWAgOiBgcmdiYSgzMywzMywzMywwLjM4KWBcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIHN0eWxlcztcclxuICAvLyB9XHJcblxyXG4gIGdldEJ1dHRvbkNvbG9yKHB1c2hCdXR0b246IE9nY1B1c2hCdXR0b24pOiB7fSB7XHJcbiAgICBsZXQgc3R5bGVzO1xyXG4gICAgaWYgKHB1c2hCdXR0b24uY29sb3IgJiYgcHVzaEJ1dHRvbi5lbmFibGVkKSB7XHJcbiAgICAgIHN0eWxlcyA9IHtcclxuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGByZ2JhKCR7cHVzaEJ1dHRvbi5jb2xvcn0pYFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlcztcclxuICB9XHJcblxyXG4gIGJ1bmRsZUlzVmVydGljYWwoYnVuZGxlOiBPZ2NTZWxlY3RvckJ1bmRsZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1bmRsZS52ZXJ0aWNhbCA/IGJ1bmRsZS52ZXJ0aWNhbCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblB1c2hCdXR0b25zQ2hhbmdlR3JvdXAoKSB7XHJcbiAgICB0aGlzLmdldFB1c2hCdXR0b25zR3JvdXBzKCkubWFwKGdyb3VwID0+IGdyb3VwLmVuYWJsZWQgPSBmYWxzZSk7XHJcbiAgICB0aGlzLmdldFB1c2hCdXR0b25zR3JvdXBzKCkuZmluZChncm91cCA9PiBncm91cCA9PT0gdGhpcy5jdXJyZW50UHVzaEJ1dHRvbnNHcm91cCkuZW5hYmxlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hlY2tib3hlc0NoYW5nZUdyb3VwKCkge1xyXG4gICAgdGhpcy5nZXRDaGVja2JveGVzR3JvdXBzKCkubWFwKGdyb3VwID0+IGdyb3VwLmVuYWJsZWQgPSBmYWxzZSk7XHJcbiAgICB0aGlzLmdldENoZWNrYm94ZXNHcm91cHMoKS5maW5kKGdyb3VwID0+IGdyb3VwID09PSB0aGlzLmN1cnJlbnRDaGVja2JveGVzR3JvdXApLmVuYWJsZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblJhZGlvQnV0dG9uc0NoYW5nZUdyb3VwKCkge1xyXG4gICAgdGhpcy5nZXRSYWRpb0J1dHRvbnNHcm91cHMoKS5tYXAoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuZ2V0UmFkaW9CdXR0b25zR3JvdXBzKCkuZmluZChncm91cCA9PiBncm91cCA9PT0gdGhpcy5jdXJyZW50UmFkaW9CdXR0b25zR3JvdXApLmVuYWJsZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlbGVjdENoYW5nZUdyb3VwKCkge1xyXG4gICAgdGhpcy5nZXRTZWxlY3RHcm91cHMoKS5tYXAoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuZ2V0U2VsZWN0R3JvdXBzKCkuZmluZChncm91cCA9PiBncm91cCA9PT0gdGhpcy5jdXJyZW50U2VsZWN0R3JvdXApLmVuYWJsZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UoY3VycmVudE9nY1NlbGVjdGlvbj8sIHNlbGVjdG9yVHlwZT8pIHtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQpO1xyXG4gICAgaWYgKHNlbGVjdG9yVHlwZSA9PT0gJ3JhZGlvQnV0dG9uJykge1xyXG4gICAgICB0aGlzLmVtcHR5UmFkaW9CdXR0b25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1cnJlbnRPZ2NTZWxlY3Rpb24pIHtcclxuICAgICAgY3VycmVudE9nY1NlbGVjdGlvbi5lbmFibGVkID0gIWN1cnJlbnRPZ2NTZWxlY3Rpb24uZW5hYmxlZDtcclxuICAgIH1cclxuICAgIHRoaXMuYXBwbHlGaWx0ZXJzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgfSwgNzUwKTtcclxuICB9XHJcblxyXG4gIGVtcHR5UmFkaW9CdXR0b25zKCkge1xyXG4gICAgdGhpcy5jdXJyZW50UmFkaW9CdXR0b25zR3JvdXAuY29tcHV0ZWRTZWxlY3RvcnMuZm9yRWFjaChjb21wU2VsZWN0ID0+IHtcclxuICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMubWFwKHNlbGVjdG9yID0+IHNlbGVjdG9yLmVuYWJsZWQgPSBmYWxzZSk7XHJcblxyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgICB9LCA3NTApO1xyXG4gICB9KTtcclxuICB9XHJcblxyXG4gIGVtcHR5U2VsZWN0KCkge1xyXG4gICAgdGhpcy5lbmFibGVkID0gW107XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBbGxTZWxlY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbC5vcHRpb25zLmZvckVhY2goKGl0ZW06IE1hdE9wdGlvbikgPT4gaXRlbS5zZWxlY3QoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbC5vcHRpb25zLmZvckVhY2goKGl0ZW06IE1hdE9wdGlvbikgPT4gaXRlbS5kZXNlbGVjdCgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wdGlvbkNsaWNrKCkge1xyXG4gICAgbGV0IG5ld1N0YXR1cyA9IHRydWU7XHJcbiAgICB0aGlzLnNlbC5vcHRpb25zLmZvckVhY2goKGl0ZW06IE1hdE9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdTdGF0dXMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFsbFNlbGVjdGVkID0gbmV3U3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUZpbHRlcnMoKSB7XHJcbiAgICBsZXQgZmlsdGVyUXVlcnlTdHJpbmcgPSAnJztcclxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBbXTtcclxuICAgIGNvbnN0IGN1cnJlbnRHcm91cHMgPSBbdGhpcy5jdXJyZW50UHVzaEJ1dHRvbnNHcm91cCwgdGhpcy5jdXJyZW50Q2hlY2tib3hlc0dyb3VwLFxyXG4gICAgICB0aGlzLmN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cCwgdGhpcy5jdXJyZW50U2VsZWN0R3JvdXBdO1xyXG4gICAgZm9yIChjb25zdCBjdXJyZW50R3JvdXAgb2YgY3VycmVudEdyb3Vwcykge1xyXG4gICAgICBpZiAoY3VycmVudEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzKSB7XHJcbiAgICAgICAgY3VycmVudEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzLm1hcChzZWxlY3RvckJ1bmRsZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBidW5kbGVDb25kaXRpb24gPSBbXTtcclxuICAgICAgICAgIHNlbGVjdG9yQnVuZGxlLnNlbGVjdG9yc1xyXG4gICAgICAgICAgLmZpbHRlcihvZ2NTZWxlY3RvciA9PiBvZ2NTZWxlY3Rvci5lbmFibGVkID09PSB0cnVlKVxyXG4gICAgICAgICAgLmZvckVhY2goZW5hYmxlZFNlbGVjdG9yID0+IGJ1bmRsZUNvbmRpdGlvbi5wdXNoKGVuYWJsZWRTZWxlY3Rvci5maWx0ZXJzKSk7XHJcbiAgICAgICAgICBpZiAoYnVuZGxlQ29uZGl0aW9uLmxlbmd0aCA+PSAxICkge1xyXG4gICAgICAgICAgICBpZiAoYnVuZGxlQ29uZGl0aW9uLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChidW5kbGVDb25kaXRpb25bMF0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaCh7bG9naWNhbDogc2VsZWN0b3JCdW5kbGUubG9naWNhbCwgZmlsdGVyczogYnVuZGxlQ29uZGl0aW9ufSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNUZW1wb3JhbE9wZXJhdG9yKCkgJiYgdGhpcy5fY3VycmVudEZpbHRlci5hY3RpdmUpIHtcclxuICAgICAgY29uZGl0aW9ucy5wdXNoKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVyc1swXSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZGl0aW9ucy5sZW5ndGggPj0gMSkge1xyXG4gICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IHRoaXMub2djRmlsdGVyV3JpdGVyXHJcbiAgICAgICAgLmJ1aWxkRmlsdGVyKGNvbmRpdGlvbnMubGVuZ3RoID09PSAxID9cclxuICAgICAgICAgIGNvbmRpdGlvbnNbMF0gOiB7bG9naWNhbDogJ0FuZCcsIGZpbHRlcnM6IGNvbmRpdGlvbnMgfSBhcyBJZ29PZ2NGaWx0ZXJPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3bXMnKSB7XHJcbiAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5maWx0ZXJCeU9nYyh0aGlzLmRhdGFzb3VyY2UgYXMgV01TRGF0YVNvdXJjZSwgZmlsdGVyUXVlcnlTdHJpbmcgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy50eXBlID09PSAnd2ZzJykge1xyXG4gICAgICAvLyBUT0RPOiBDaGVjayBob3cgdG8gcHJldmVudCB3ZnMgdG8gcmVmcmVzaCB3aGVuIGZpbHRlciBpY29uIGlzIHB1c2hlZC4uLlxyXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub2wucmVmcmVzaCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhc291cmNlLnNldE9nY0ZpbHRlcnModGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBpc01vcmVSZXN1bHRzKGJ1bmRsZSwgdHlwZSkge1xyXG4gICAgbGV0IHNlbGVjdG9yc0xlbmd0aCA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IHNlbGVjdG9ycyBvZiBidW5kbGUuc2VsZWN0b3JzKSB7XHJcbiAgICAgIHNlbGVjdG9yc0xlbmd0aCsrO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5kZXggPSB0eXBlID09PSAncmFkaW8nID8gdGhpcy5yYWRpb0J1dHRvbnNJbmRleCA6IHRoaXMuY2hlY2tib3hlc0luZGV4O1xyXG4gICAgcmV0dXJuIHNlbGVjdG9yc0xlbmd0aCA+IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheU1vcmVSZXN1bHRzKHR5cGUpIHtcclxuICAgIHR5cGUgPT09ICdyYWRpbycgPyB0aGlzLnJhZGlvQnV0dG9uc0luZGV4ICs9IDUgOiB0aGlzLmNoZWNrYm94ZXNJbmRleCArPSA1O1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaXNMZXNzUmVzdWx0cyhidW5kbGUsIHR5cGUpIHtcclxuICAgIGxldCBzZWxlY3RvcnNMZW5ndGggPSAwO1xyXG4gICAgZm9yIChjb25zdCBzZWxlY3RvcnMgb2YgYnVuZGxlLnNlbGVjdG9ycykge1xyXG4gICAgICBzZWxlY3RvcnNMZW5ndGgrKztcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gdHlwZSA9PT0gJ3JhZGlvJyA/IHRoaXMucmFkaW9CdXR0b25zSW5kZXggOiB0aGlzLmNoZWNrYm94ZXNJbmRleDtcclxuICAgIHJldHVybiB0aGlzLmJhc2VJbmRleCAhPT0gaW5kZXggJiYgc2VsZWN0b3JzTGVuZ3RoID4gdGhpcy5iYXNlSW5kZXg7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5TGVzc1Jlc3VsdHModHlwZSkge1xyXG4gICAgdHlwZSA9PT0gJ3JhZGlvJyA/IHRoaXMucmFkaW9CdXR0b25zSW5kZXggPSB0aGlzLmJhc2VJbmRleCA6IHRoaXMuY2hlY2tib3hlc0luZGV4ID0gdGhpcy5iYXNlSW5kZXg7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpc1RlbXBvcmFsT3BlcmF0b3IoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXI/Lm9wZXJhdG9yPy50b0xvd2VyQ2FzZSgpID09PVxyXG4gICAgICB0aGlzLm9nY0ZpbHRlck9wZXJhdG9yLkR1cmluZy50b0xvd2VyQ2FzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUHJvcGVydHkodmFsdWU6IGFueSwgcG9zPzogbnVtYmVyLCByZWZyZXNoRmlsdGVyID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgZGV0ZWN0ZWRQcm9wZXJ0eSA9IHRoaXMuZGV0ZWN0UHJvcGVydHkocG9zKTtcclxuICAgIGlmIChkZXRlY3RlZFByb3BlcnR5KSB7XHJcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycy5maW5kKFxyXG4gICAgICAgIGZpbHRlciA9PiBmaWx0ZXIuZmlsdGVyaWQgPT09IHRoaXMuY3VycmVudEZpbHRlci5maWx0ZXJpZFxyXG4gICAgICApW2RldGVjdGVkUHJvcGVydHldID0gdmFsdWU7XHJcblxyXG4gICAgICBpZiAoIHJlZnJlc2hGaWx0ZXIgKSB7XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGV0ZWN0UHJvcGVydHkocG9zPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yKSB7XHJcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc05vdEVxdWFsVG86XHJcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0VxdWFsVG86XHJcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0dyZWF0ZXJUaGFuOlxyXG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNHcmVhdGVyVGhhbk9yRXF1YWxUbzpcclxuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzTGVzc1RoYW46XHJcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0xlc3NUaGFuT3JFcXVhbFRvOlxyXG4gICAgICAgIHJldHVybiAnZXhwcmVzc2lvbic7XHJcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0xpa2U6XHJcbiAgICAgICAgcmV0dXJuICdwYXR0ZXJuJztcclxuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzQmV0d2VlbjpcclxuICAgICAgICByZXR1cm4gcG9zICYmIHBvcyA9PT0gMVxyXG4gICAgICAgICAgPyAnbG93ZXJCb3VuZGFyeSdcclxuICAgICAgICAgIDogcG9zICYmIHBvcyA9PT0gMlxyXG4gICAgICAgICAgPyAndXBwZXJCb3VuZGFyeSdcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLkR1cmluZzpcclxuICAgICAgICByZXR1cm4gcG9zICYmIHBvcyA9PT0gMVxyXG4gICAgICAgICAgPyAnYmVnaW4nXHJcbiAgICAgICAgICA6IHBvcyAmJiBwb3MgPT09IDJcclxuICAgICAgICAgID8gJ2VuZCdcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgc2VsZWN0b3Igb2Ygb2djRmlsdGVyc1NlbGVjdG9yc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInB1c2hCdXR0b25Hcm91cHNcIiAqbmdJZj1cInNlbGVjdG9yLnNlbGVjdG9yVHlwZSA9PT0gJ3B1c2hCdXR0b24nXCI+XHJcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzU2VsZWN0b3JcIiAqbmdJZj1cImdldFB1c2hCdXR0b25zR3JvdXBzKCkubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInB1c2hCdXR0b25zR3JvdXBcIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgIFsodmFsdWUpXT1cImN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZWxlY3Rvckdyb3VwIG9mIGdldFB1c2hCdXR0b25zR3JvdXBzKClcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3Rvckdyb3VwXCI+e3tzZWxlY3Rvckdyb3VwLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidW5kbGUgb2YgY3VycmVudFB1c2hCdXR0b25zR3JvdXAuY29tcHV0ZWRTZWxlY3RvcnNcIj5cclxuICAgICAgICA8aDQ+e3tidW5kbGUudGl0bGV9fTwvaDQ+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwdXNoQnV0dG9uc1wiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIiBhcHBlYXJhbmNlPVwibGVnYWN5XCIgdmVydGljYWw9e3tidW5kbGVJc1ZlcnRpY2FsKGJ1bmRsZSl9fSBtdWx0aXBsZT1cInRydWVcIj5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgb2djUHVzaEJ1dHRvbiBvZiBidW5kbGUuc2VsZWN0b3JzXCJcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0VG9vbFRpcChvZ2NQdXNoQnV0dG9uKVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QnV0dG9uQ29sb3Iob2djUHVzaEJ1dHRvbilcIlxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJvZ2NQdXNoQnV0dG9uLmVuYWJsZWRcIiAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKG9nY1B1c2hCdXR0b24sIHNlbGVjdG9yLnNlbGVjdG9yVHlwZSlcIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwib2djUHVzaEJ1dHRvblwiPnt7b2djUHVzaEJ1dHRvbi50aXRsZX19XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrYm94R3JvdXBzXCIgKm5nSWY9XCJzZWxlY3Rvci5zZWxlY3RvclR5cGUgPT09ICdjaGVja2JveCdcIj5cclxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cHNTZWxlY3RvclwiICpuZ0lmPVwiZ2V0Q2hlY2tib3hlc0dyb3VwcygpLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveGVzR3JvdXBcIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgIFsodmFsdWUpXT1cImN1cnJlbnRDaGVja2JveGVzR3JvdXBcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNlbGVjdG9yR3JvdXAgb2YgZ2V0Q2hlY2tib3hlc0dyb3VwcygpXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0b3JHcm91cFwiPnt7c2VsZWN0b3JHcm91cC50aXRsZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVuZGxlIG9mIGN1cnJlbnRDaGVja2JveGVzR3JvdXAuY29tcHV0ZWRTZWxlY3RvcnNcIj5cclxuICAgICAgICA8aDQ+e3tidW5kbGUudGl0bGV9fTwvaDQ+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94ZXMgbWF0LXR5cG9ncmFwaHlcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nRm9yPVwibGV0IG9nY0NoZWNrYm94IG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sVGlwKG9nY0NoZWNrYm94KVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiAgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXHJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIm9nY0NoZWNrYm94LmVuYWJsZWRcIiAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKG9nY0NoZWNrYm94LCBzZWxlY3Rvci5zZWxlY3RvclR5cGUpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9nY0NoZWNrYm94XCI+e3tvZ2NDaGVja2JveC50aXRsZX19XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCAqbmdJZj1cImlzTGVzc1Jlc3VsdHMoYnVuZGxlLCAnY2hlY2tib3gnKSB8fCBpc01vcmVSZXN1bHRzKGJ1bmRsZSwgJ2NoZWNrYm94JylcIj5cclxuICAgICAgICAgIDx1ICpuZ0lmPVwiaXNMZXNzUmVzdWx0cyhidW5kbGUsICdjaGVja2JveCcpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJsZXNzUmVzdWx0cyBtYXQtdHlwb2dyYXBoeVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJkaXNwbGF5TGVzc1Jlc3VsdHMoJ2NoZWNrYm94JylcIj57eyAnaWdvLmdlby5maWx0ZXIuZGlzcGxheUxlc3NSZXN1bHRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC91PlxyXG4gICAgICAgICAgPHUgKm5nSWY9XCJpc01vcmVSZXN1bHRzKGJ1bmRsZSwgJ2NoZWNrYm94JylcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm1vcmVSZXN1bHRzIG1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlNb3JlUmVzdWx0cygnY2hlY2tib3gnKVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5kaXNwbGF5TW9yZVJlc3VsdHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3U+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyYWRpb0J1dHRvbkdyb3Vwc1wiICpuZ0lmPVwic2VsZWN0b3Iuc2VsZWN0b3JUeXBlID09PSAncmFkaW9CdXR0b24nXCI+XHJcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzU2VsZWN0b3JcIiAqbmdJZj1cImdldFJhZGlvQnV0dG9uc0dyb3VwcygpLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb0J1dHRvbnNHcm91cFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmxlZ2VuZC5zZWxlY3RTdHlsZScgfCB0cmFuc2xhdGVcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgICAgICAgWyh2YWx1ZSldPVwiY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZWxlY3Rvckdyb3VwIG9mIGdldFJhZGlvQnV0dG9uc0dyb3VwcygpXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0b3JHcm91cFwiPnt7c2VsZWN0b3JHcm91cC50aXRsZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVuZGxlIG9mIGN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cC5jb21wdXRlZFNlbGVjdG9yc1wiPlxyXG4gICAgICAgIDxoND57e2J1bmRsZS50aXRsZX19PC9oND5cclxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb0J1dHRvbnNcIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cImJ1bmRsZS51bmZpbHRlcmVkXCJcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLnJlc2V0RmlsdGVycycgfCB0cmFuc2xhdGVcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCIgIG1hdFRvb2x0aXBDbGFzcz1cIm1hdGVyaWFsLXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cImVtcHR5UmFkaW9CdXR0b25zKClcIj57eyAnaWdvLmdlby5maWx0ZXIucmVzZXRGaWx0ZXJzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IG9nY1JhZGlvQnV0dG9uIG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sVGlwKG9nY1JhZGlvQnV0dG9uKVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiAgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXHJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIm9nY1JhZGlvQnV0dG9uLmVuYWJsZWRcIiAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKG9nY1JhZGlvQnV0dG9uLCBzZWxlY3Rvci5zZWxlY3RvclR5cGUpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9nY1JhZGlvQnV0dG9uXCI+e3tvZ2NSYWRpb0J1dHRvbi50aXRsZX19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImlzTGVzc1Jlc3VsdHMoYnVuZGxlLCAncmFkaW8nKSB8fCBpc01vcmVSZXN1bHRzKGJ1bmRsZSwgJ3JhZGlvJylcIj5cclxuICAgICAgICAgICAgPHUgKm5nSWY9XCJpc0xlc3NSZXN1bHRzKGJ1bmRsZSwgJ3JhZGlvJylcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibGVzc1Jlc3VsdHMgbWF0LXR5cG9ncmFwaHlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkaXNwbGF5TGVzc1Jlc3VsdHMoJ3JhZGlvJylcIj57eyAnaWdvLmdlby5maWx0ZXIuZGlzcGxheUxlc3NSZXN1bHRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3U+XHJcbiAgICAgICAgICAgIDx1ICpuZ0lmPVwiaXNNb3JlUmVzdWx0cyhidW5kbGUsICdyYWRpbycpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1vcmVSZXN1bHRzIG1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGlzcGxheU1vcmVSZXN1bHRzKCdyYWRpbycpXCI+e3sgJ2lnby5nZW8uZmlsdGVyLmRpc3BsYXlNb3JlUmVzdWx0cycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC91PlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RHcm91cHNcIiAqbmdJZj1cInNlbGVjdG9yLnNlbGVjdG9yVHlwZSA9PT0gJ3NlbGVjdCdcIj5cclxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cHNTZWxlY3RvclwiICpuZ0lmPVwiZ2V0U2VsZWN0R3JvdXBzKCkubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdEdyb3VwXCJcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubGF5ZXIubGVnZW5kLnNlbGVjdFN0eWxlJyB8IHRyYW5zbGF0ZVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJjdXJyZW50U2VsZWN0R3JvdXBcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNlbGVjdG9yR3JvdXAgb2YgZ2V0U2VsZWN0R3JvdXBzKClcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3Rvckdyb3VwXCI+e3tzZWxlY3Rvckdyb3VwLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidW5kbGUgb2YgY3VycmVudFNlbGVjdEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzXCI+XHJcbiAgICAgICAgPGg0Pnt7YnVuZGxlLnRpdGxlfX08L2g0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cHNTZWxlY3RvclwiPlxyXG4gICAgICAgICAgPG1hdC1idXR0b24gKm5nSWY9XCJidW5kbGUudW5maWx0ZXJlZCAmJiAhYnVuZGxlLm11bHRpcGxlXCJcclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5yZXNldEZpbHRlcnMnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiICBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVtcHR5U2VsZWN0KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJmaWx0ZXItcmVtb3ZlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvbWF0LWJ1dHRvbj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJ1bmRsZS5tdWx0aXBsZTsgZWxzZSBub3RNdWx0aVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAjc2VsZWN0aW9uIFttdWx0aXBsZV09XCJidW5kbGUubXVsdGlwbGVcIiBbcGxhY2Vob2xkZXJdPVwiYnVuZGxlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RcIiBbKG5nTW9kZWwpXT1cImVuYWJsZWRzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hlcyBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0lmPVwiYnVuZGxlLm11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFsbFNlbGVjdGVkXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGxTZWxlY3Rpb24oKVwiPlRvdXNcclxuICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvZ2NTZWxlY3Qgb2YgYnVuZGxlLnNlbGVjdG9yc1wiXHJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldFRvb2xUaXAob2djU2VsZWN0KVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBEZWxheT1cIjUwMFwiIG1hdFRvb2x0aXBDbGFzcz1cIm1hdGVyaWFsLXRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwib3B0aW9uQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvZ2NTZWxlY3RcIj57e29nY1NlbGVjdC50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RNdWx0aT5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImJ1bmRsZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0XCIgWyhuZ01vZGVsKV09XCJlbmFibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb2djU2VsZWN0IG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sVGlwKG9nY1NlbGVjdClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwRGVsYXk9XCI1MDBcIiBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9nY1NlbGVjdFwiPnt7b2djU2VsZWN0LnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48ZGl2ICpuZ0lmPVwiaXNUZW1wb3JhbE9wZXJhdG9yKClcIj5cclxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICA8aDQgKm5nSWY9XCIhY3VycmVudEZpbHRlci50aXRsZVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5yZXBvcnRpbmdEYXRlJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XHJcbiAgPGg0ICpuZ0lmPVwiY3VycmVudEZpbHRlci50aXRsZVwiPnt7IGN1cnJlbnRGaWx0ZXIudGl0bGUgfX08L2g0PlxyXG4gIDxpZ28tb2djLWZpbHRlci10aW1lXHJcbiAgICBbKGRhdGFzb3VyY2UpXT1cImRhdGFzb3VyY2VcIlxyXG4gICAgWyhjdXJyZW50RmlsdGVyKV09XCJjdXJyZW50RmlsdGVyXCJcclxuICAgIChjaGFuZ2VQcm9wZXJ0eSk9XCJjaGFuZ2VQcm9wZXJ0eSgkZXZlbnQudmFsdWUsICRldmVudC5wb3MpXCI+XHJcbiAgPC9pZ28tb2djLWZpbHRlci10aW1lPlxyXG48L2Rpdj4iXX0=
993
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci1zZWxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItc2VsZWN0aW9uL29nYy1maWx0ZXItc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXNlbGVjdGlvbi9vZ2MtZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFVdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWpFLE9BQU8sRUFBZSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztJQ2QzQixzQ0FDMEI7SUFBQSxZQUMxQjtJQUFBLGlCQUFhOzs7SUFEWCx5Q0FBdUI7SUFBQyxlQUMxQjtJQUQwQix1REFDMUI7Ozs7SUFSTiw4QkFBc0U7SUFDcEUsc0NBQWdCO0lBQ2Qsc0NBR3NDO0lBQXBDLHlQQUFtQzs7SUFDbkMsNkdBRWE7SUFDZixpQkFBYTtJQUNmLGlCQUFpQjtJQUNuQixpQkFBTTs7O0lBUEEsZUFBNkQ7SUFBN0QscUZBQTZELHlDQUFBO0lBRXZCLGVBQXlCO0lBQXpCLHVEQUF5Qjs7OztJQVVqRSw2Q0FJMEI7SUFEVSxrYUFBa0U7SUFDNUUsWUFDMUI7SUFBQSxpQkFBb0I7Ozs7SUFKbEIsa0VB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dUZEdkluQiwyQkFBMkI7Y0FMdkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFdBQVcsRUFBRSx1Q0FBdUM7Z0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO2FBQ3JEOzZGQUd5QixHQUFHO2tCQUExQixTQUFTO21CQUFDLFdBQVc7WUFFYixjQUFjO2tCQUF0QixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSztZQUVHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBR0YsYUFBYTtrQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcbiAgSWdvT2djRmlsdGVyT2JqZWN0LFxuICBPZ2NQdXNoQnV0dG9uLFxuICBPZ2NTZWxlY3RvckJ1bmRsZSxcbiAgU2VsZWN0b3JHcm91cFxuXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBPR0NGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLXNlbGVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29nYy1maWx0ZXItc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyU2VsZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdzZWxlY3Rpb24nKSBzZWw6IE1hdFNlbGVjdDtcblxuICBASW5wdXQoKSByZWZyZXNoRmlsdGVyczogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoKSBkYXRhc291cmNlOiBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBASW5wdXQoKSBjaGVja2JveGVzSW5kZXggPSA1O1xuICBASW5wdXQoKSByYWRpb0J1dHRvbnNJbmRleCA9IDU7XG4gIEBJbnB1dCgpIGJhc2VJbmRleCA9IDU7XG5cbiAgQElucHV0KClcbiAgZ2V0IGN1cnJlbnRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEZpbHRlcjtcbiAgfVxuICBzZXQgY3VycmVudEZpbHRlcih2YWx1ZSkge1xuICAgIHRoaXMuX2N1cnJlbnRGaWx0ZXIgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fY3VycmVudEZpbHRlcj8uc2xpZGVyT3B0aW9ucykge1xuICAgICAgdGhpcy5fY3VycmVudEZpbHRlci5zbGlkZXJPcHRpb25zLmVuYWJsZWQgPSBmYWxzZTsgLy8gcmVtb3ZlIHNsaWRlciB0b2dnbGUgKGFuaW1hdGlvbiB0ZW1wb3JlbGxlKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RmlsdGVyOiBhbnk7XG5cbiAgcHVibGljIG9nY0ZpbHRlck9wZXJhdG9yID0gT2djRmlsdGVyT3BlcmF0b3I7XG5cbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBvZ2NGaWx0ZXJXcml0ZXI6IE9nY0ZpbHRlcldyaXRlcjtcbiAgcHVibGljIGNvbG9yID0gJ3ByaW1hcnknO1xuICBwdWJsaWMgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcbiAgcHVibGljIHNlbGVjdCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgZW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBlbmFibGVkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICBwdWJsaWMgYXBwbHlGaWx0ZXJzVGltZW91dDtcblxuICBnZXQgb2djRmlsdGVyc1NlbGVjdG9ycygpIHtcbiAgICBjb25zdCBvZ2NTZWxlY3RvciA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnB1c2hCdXR0b25zKSB7XG4gICAgICBvZ2NTZWxlY3Rvci5wdXNoKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8ucHVzaEJ1dHRvbnMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5jaGVja2JveGVzKSB7XG4gICAgICBvZ2NTZWxlY3Rvci5wdXNoKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8uY2hlY2tib3hlcyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnJhZGlvQnV0dG9ucykge1xuICAgICAgb2djU2VsZWN0b3IucHVzaCh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnJhZGlvQnV0dG9ucyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnNlbGVjdCkge1xuICAgICAgb2djU2VsZWN0b3IucHVzaCh0aGlzLmRhdGFzb3VyY2U/Lm9wdGlvbnM/Lm9nY0ZpbHRlcnM/LnNlbGVjdCk7XG4gICAgfVxuICAgIG9nY1NlbGVjdG9yLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLm9yZGVyIDwgYi5vcmRlcikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBpZiAoYS5vcmRlciA+IGIub3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICByZXR1cm4gb2djU2VsZWN0b3I7XG4gIH1cblxuICBnZXQgY3VycmVudFB1c2hCdXR0b25zR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3B1c2hCdXR0b25zR3JvdXAnKS52YWx1ZTtcbiAgfVxuICBzZXQgY3VycmVudFB1c2hCdXR0b25zR3JvdXAodmFsdWUpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHB1c2hCdXR0b25zR3JvdXA6IHZhbHVlIH0pO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRDaGVja2JveGVzR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NoZWNrYm94ZXNHcm91cCcpLnZhbHVlO1xuICB9XG4gIHNldCBjdXJyZW50Q2hlY2tib3hlc0dyb3VwKHZhbHVlKSB7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjaGVja2JveGVzR3JvdXA6IHZhbHVlIH0pO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgncmFkaW9CdXR0b25zR3JvdXAnKS52YWx1ZTtcbiAgfVxuICBzZXQgY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwKHZhbHVlKSB7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyByYWRpb0J1dHRvbnNHcm91cDogdmFsdWUgfSk7XG4gIH1cblxuICBnZXQgY3VycmVudFNlbGVjdEdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZWxlY3RHcm91cCcpLnZhbHVlO1xuICB9XG4gIHNldCBjdXJyZW50U2VsZWN0R3JvdXAodmFsdWUpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHNlbGVjdEdyb3VwOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWQkLnZhbHVlO1xuICB9XG5cbiAgc2V0IGVuYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLmVuYWJsZWQkLm5leHQodmFsdWUpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQpO1xuICAgIHRoaXMuY3VycmVudFNlbGVjdEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzLmZvckVhY2goY29tcFNlbGVjdCA9PiB7XG4gICAgICBjb21wU2VsZWN0LnNlbGVjdG9ycy5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgICAgdmFsdWUgPT09IHNlbGVjdG9yID8gc2VsZWN0b3IuZW5hYmxlZCA9IHRydWUgOiBzZWxlY3Rvci5lbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbHlGaWx0ZXJzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB9LCA3NTApO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWRzKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRzJC52YWx1ZTtcbiAgfVxuXG4gIHNldCBlbmFibGVkcyh2YWx1ZSkge1xuICAgIHRoaXMuZW5hYmxlZHMkLm5leHQodmFsdWUpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQpO1xuICAgIHRoaXMuY3VycmVudFNlbGVjdEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzLmZvckVhY2goY29tcFNlbGVjdCA9PiB7XG4gICAgICBjb21wU2VsZWN0LnNlbGVjdG9ycy5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgICAgdmFsdWUuaW5jbHVkZXMoc2VsZWN0b3IpID8gc2VsZWN0b3IuZW5hYmxlZCA9IHRydWUgOiBzZWxlY3Rvci5lbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbHlGaWx0ZXJzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB9LCA3NTApO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvZ2NGaWx0ZXJTZXJ2aWNlOiBPR0NGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLm9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBwdXNoQnV0dG9uczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcmFkaW9CdXR0b25zOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwdXNoQnV0dG9uc0dyb3VwOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjaGVja2JveGVzR3JvdXA6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHJhZGlvQnV0dG9uc0dyb3VwOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzZWxlY3RHcm91cDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UHVzaEJ1dHRvbnNHcm91cHMoKTogU2VsZWN0b3JHcm91cFtdIHtcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5wdXNoQnV0dG9ucykge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuZ3JvdXBzO1xuICAgIH1cbiAgfVxuXG4gIGdldENoZWNrYm94ZXNHcm91cHMoKTogU2VsZWN0b3JHcm91cFtdIHtcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5jaGVja2JveGVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5jaGVja2JveGVzLmdyb3VwcztcbiAgICB9XG4gIH1cblxuICBnZXRSYWRpb0J1dHRvbnNHcm91cHMoKTogU2VsZWN0b3JHcm91cFtdIHtcbiAgICBpZiAodGhpcy5kYXRhc291cmNlPy5vcHRpb25zPy5vZ2NGaWx0ZXJzPy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5ncm91cHM7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0R3JvdXBzKCk6IFNlbGVjdG9yR3JvdXBbXSB7XG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZT8ub3B0aW9ucz8ub2djRmlsdGVycz8uc2VsZWN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QuZ3JvdXBzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzKSB7XG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucykge1xuICAgICAgICB0aGlzLmN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwID1cbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zLmdyb3Vwcy5maW5kKGdyb3VwID0+IGdyb3VwLmVuYWJsZWQpIHx8XG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucy5ncm91cHNbMF07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5jaGVja2JveGVzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudENoZWNrYm94ZXNHcm91cCA9XG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5jaGVja2JveGVzLmdyb3Vwcy5maW5kKGdyb3VwID0+IGdyb3VwLmVuYWJsZWQpIHx8XG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5jaGVja2JveGVzLmdyb3Vwc1swXTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cCA9XG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5yYWRpb0J1dHRvbnMuZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCkgfHxcbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5ncm91cHNbMF07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0R3JvdXAgPVxuICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuc2VsZWN0Lmdyb3Vwcy5maW5kKGdyb3VwID0+IGdyb3VwLmVuYWJsZWQpIHx8XG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QuZ3JvdXBzWzBdO1xuICAgICAgICB0aGlzLmdldFNlbGVjdEVuYWJsZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtXG4gICAgLmdldCgncHVzaEJ1dHRvbnNHcm91cCcpXG4gICAgLnZhbHVlQ2hhbmdlc1xuICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vblB1c2hCdXR0b25zQ2hhbmdlR3JvdXAoKTtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmZvcm1cbiAgICAuZ2V0KCdjaGVja2JveGVzR3JvdXAnKVxuICAgIC52YWx1ZUNoYW5nZXNcbiAgICAucGlwZShkZWJvdW5jZVRpbWUoNzUwKSlcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25DaGVja2JveGVzQ2hhbmdlR3JvdXAoKTtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmZvcm1cbiAgICAgIC5nZXQoJ3JhZGlvQnV0dG9uc0dyb3VwJylcbiAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25SYWRpb0J1dHRvbnNDaGFuZ2VHcm91cCgpO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICAgICAgfSk7XG4gICAgdGhpcy5mb3JtXG4gICAgICAuZ2V0KCdzZWxlY3RHcm91cCcpXG4gICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNzUwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlR3JvdXAoKTtcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZm9ybVxuICAgICAgLmdldCgncHVzaEJ1dHRvbnMnKVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDc1MCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZm9ybVxuICAgICAgLmdldCgncmFkaW9CdXR0b25zJylcbiAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0RW5hYmxlZCgpIHtcbiAgICBjb25zdCBlbmFibGVkcyA9IFtdO1xuICAgIGxldCBlbmFibGVkO1xuICAgIHRoaXMuY3VycmVudFNlbGVjdEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzLmZvckVhY2goY29tcFNlbGVjdCA9PiB7XG4gICAgICBpZiAoY29tcFNlbGVjdC5tdWx0aXBsZSkge1xuICAgICAgICBjb21wU2VsZWN0LnNlbGVjdG9ycy5mb3JFYWNoKHNlbGVjdG9yID0+IHtcbiAgICAgICAgICBpZiAoc2VsZWN0b3IuZW5hYmxlZCkge1xuICAgICAgICAgICAgZW5hYmxlZHMucHVzaChzZWxlY3Rvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lbmFibGVkcyA9IGVuYWJsZWRzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcFNlbGVjdC5zZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XG4gICAgICAgICAgaWYgKHNlbGVjdG9yLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIGVuYWJsZWQgPSBzZWxlY3RvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0VG9vbFRpcChzZWxlY3Rvcik6IHN0cmluZyB7XG4gICAgbGV0IHRvb2xUaXA7XG4gICAgaWYgKHNlbGVjdG9yLnRvb2x0aXApIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdG9yLnRvb2x0aXApKSB7XG4gICAgICAgIHRvb2xUaXAgPSBzZWxlY3Rvci50b29sdGlwLmpvaW4oJ1xcbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG9vbFRpcCA9IHNlbGVjdG9yLnRvb2x0aXA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0b29sVGlwIHx8ICcnO1xuICB9XG5cbiAgLy8gZ2V0QnV0dG9uU3R5bGUocGI6IE9nY1B1c2hCdXR0b24pOiB7fSB7XG5cbiAgLy8gICBsZXQgc3R5bGVzO1xuICAvLyAgIGlmIChwYi5jb2xvcikge1xuICAvLyAgICAgc3R5bGVzID0ge1xuICAvLyAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHBiLmVuYWJsZWQgPyBgcmdiYSgke3BiLmNvbG9yfSlgIDogYHJnYmEoMjU1LDI1NSwyNTUsMClgXG4gIC8vICAgICB9O1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBzdHlsZXMgPSB7XG4gIC8vICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogcGIuZW5hYmxlZCA/ICdhY2NlbnQnOiBgcmdiYSgyNTUsMjU1LDI1NSwwKWAsXG4gIC8vICAgICAgICdjb2xvcic6IHBiLmVuYWJsZWQgPyBgcmdiYSgwLDAsMCwwLjkpYCA6IGByZ2JhKDMzLDMzLDMzLDAuMzgpYFxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gc3R5bGVzO1xuICAvLyB9XG5cbiAgZ2V0QnV0dG9uQ29sb3IocHVzaEJ1dHRvbjogT2djUHVzaEJ1dHRvbik6IHt9IHtcbiAgICBsZXQgc3R5bGVzO1xuICAgIGlmIChwdXNoQnV0dG9uLmNvbG9yICYmIHB1c2hCdXR0b24uZW5hYmxlZCkge1xuICAgICAgc3R5bGVzID0ge1xuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGByZ2JhKCR7cHVzaEJ1dHRvbi5jb2xvcn0pYFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlcztcbiAgfVxuXG4gIGJ1bmRsZUlzVmVydGljYWwoYnVuZGxlOiBPZ2NTZWxlY3RvckJ1bmRsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBidW5kbGUudmVydGljYWwgPyBidW5kbGUudmVydGljYWwgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgb25QdXNoQnV0dG9uc0NoYW5nZUdyb3VwKCkge1xuICAgIHRoaXMuZ2V0UHVzaEJ1dHRvbnNHcm91cHMoKS5tYXAoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCA9IGZhbHNlKTtcbiAgICB0aGlzLmdldFB1c2hCdXR0b25zR3JvdXBzKCkuZmluZChncm91cCA9PiBncm91cCA9PT0gdGhpcy5jdXJyZW50UHVzaEJ1dHRvbnNHcm91cCkuZW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hlY2tib3hlc0NoYW5nZUdyb3VwKCkge1xuICAgIHRoaXMuZ2V0Q2hlY2tib3hlc0dyb3VwcygpLm1hcChncm91cCA9PiBncm91cC5lbmFibGVkID0gZmFsc2UpO1xuICAgIHRoaXMuZ2V0Q2hlY2tib3hlc0dyb3VwcygpLmZpbmQoZ3JvdXAgPT4gZ3JvdXAgPT09IHRoaXMuY3VycmVudENoZWNrYm94ZXNHcm91cCkuZW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIG9uUmFkaW9CdXR0b25zQ2hhbmdlR3JvdXAoKSB7XG4gICAgdGhpcy5nZXRSYWRpb0J1dHRvbnNHcm91cHMoKS5tYXAoZ3JvdXAgPT4gZ3JvdXAuZW5hYmxlZCA9IGZhbHNlKTtcbiAgICB0aGlzLmdldFJhZGlvQnV0dG9uc0dyb3VwcygpLmZpbmQoZ3JvdXAgPT4gZ3JvdXAgPT09IHRoaXMuY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwKS5lbmFibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb25TZWxlY3RDaGFuZ2VHcm91cCgpIHtcbiAgICB0aGlzLmdldFNlbGVjdEdyb3VwcygpLm1hcChncm91cCA9PiBncm91cC5lbmFibGVkID0gZmFsc2UpO1xuICAgIHRoaXMuZ2V0U2VsZWN0R3JvdXBzKCkuZmluZChncm91cCA9PiBncm91cCA9PT0gdGhpcy5jdXJyZW50U2VsZWN0R3JvdXApLmVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2UoY3VycmVudE9nY1NlbGVjdGlvbj8sIHNlbGVjdG9yVHlwZT8pIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5hcHBseUZpbHRlcnNUaW1lb3V0KTtcbiAgICBpZiAoc2VsZWN0b3JUeXBlID09PSAncmFkaW9CdXR0b24nKSB7XG4gICAgICB0aGlzLmVtcHR5UmFkaW9CdXR0b25zKCk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRPZ2NTZWxlY3Rpb24pIHtcbiAgICAgIGN1cnJlbnRPZ2NTZWxlY3Rpb24uZW5hYmxlZCA9ICFjdXJyZW50T2djU2VsZWN0aW9uLmVuYWJsZWQ7XG4gICAgfVxuICAgIHRoaXMuYXBwbHlGaWx0ZXJzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB9LCA3NTApO1xuICB9XG5cbiAgZW1wdHlSYWRpb0J1dHRvbnMoKSB7XG4gICAgdGhpcy5jdXJyZW50UmFkaW9CdXR0b25zR3JvdXAuY29tcHV0ZWRTZWxlY3RvcnMuZm9yRWFjaChjb21wU2VsZWN0ID0+IHtcbiAgICAgIGNvbXBTZWxlY3Quc2VsZWN0b3JzLm1hcChzZWxlY3RvciA9PiBzZWxlY3Rvci5lbmFibGVkID0gZmFsc2UpO1xuXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyc1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICAgIH0sIDc1MCk7XG4gICB9KTtcbiAgfVxuXG4gIGVtcHR5U2VsZWN0KCkge1xuICAgIHRoaXMuZW5hYmxlZCA9IFtdO1xuICB9XG5cbiAgdG9nZ2xlQWxsU2VsZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbC5vcHRpb25zLmZvckVhY2goKGl0ZW06IE1hdE9wdGlvbikgPT4gaXRlbS5zZWxlY3QoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsLm9wdGlvbnMuZm9yRWFjaCgoaXRlbTogTWF0T3B0aW9uKSA9PiBpdGVtLmRlc2VsZWN0KCkpO1xuICAgIH1cbiAgfVxuXG4gIG9wdGlvbkNsaWNrKCkge1xuICAgIGxldCBuZXdTdGF0dXMgPSB0cnVlO1xuICAgIHRoaXMuc2VsLm9wdGlvbnMuZm9yRWFjaCgoaXRlbTogTWF0T3B0aW9uKSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgbmV3U3RhdHVzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9IG5ld1N0YXR1cztcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXJzKCkge1xuICAgIGxldCBmaWx0ZXJRdWVyeVN0cmluZyA9ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBbXTtcbiAgICBjb25zdCBjdXJyZW50R3JvdXBzID0gW3RoaXMuY3VycmVudFB1c2hCdXR0b25zR3JvdXAsIHRoaXMuY3VycmVudENoZWNrYm94ZXNHcm91cCxcbiAgICAgIHRoaXMuY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwLCB0aGlzLmN1cnJlbnRTZWxlY3RHcm91cF07XG4gICAgZm9yIChjb25zdCBjdXJyZW50R3JvdXAgb2YgY3VycmVudEdyb3Vwcykge1xuICAgICAgaWYgKGN1cnJlbnRHcm91cC5jb21wdXRlZFNlbGVjdG9ycykge1xuICAgICAgICBjdXJyZW50R3JvdXAuY29tcHV0ZWRTZWxlY3RvcnMubWFwKHNlbGVjdG9yQnVuZGxlID0+IHtcbiAgICAgICAgICBjb25zdCBidW5kbGVDb25kaXRpb24gPSBbXTtcbiAgICAgICAgICBzZWxlY3RvckJ1bmRsZS5zZWxlY3RvcnNcbiAgICAgICAgICAuZmlsdGVyKG9nY1NlbGVjdG9yID0+IG9nY1NlbGVjdG9yLmVuYWJsZWQgPT09IHRydWUpXG4gICAgICAgICAgLmZvckVhY2goZW5hYmxlZFNlbGVjdG9yID0+IGJ1bmRsZUNvbmRpdGlvbi5wdXNoKGVuYWJsZWRTZWxlY3Rvci5maWx0ZXJzKSk7XG4gICAgICAgICAgaWYgKGJ1bmRsZUNvbmRpdGlvbi5sZW5ndGggPj0gMSApIHtcbiAgICAgICAgICAgIGlmIChidW5kbGVDb25kaXRpb24ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChidW5kbGVDb25kaXRpb25bMF0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKHtsb2dpY2FsOiBzZWxlY3RvckJ1bmRsZS5sb2dpY2FsLCBmaWx0ZXJzOiBidW5kbGVDb25kaXRpb259KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc1RlbXBvcmFsT3BlcmF0b3IoKSAmJiB0aGlzLl9jdXJyZW50RmlsdGVyLmFjdGl2ZSkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVyc1swXSk7XG4gICAgfVxuICAgIGlmIChjb25kaXRpb25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IHRoaXMub2djRmlsdGVyV3JpdGVyXG4gICAgICAgIC5idWlsZEZpbHRlcihjb25kaXRpb25zLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgY29uZGl0aW9uc1swXSA6IHtsb2dpY2FsOiAnQW5kJywgZmlsdGVyczogY29uZGl0aW9ucyB9IGFzIElnb09nY0ZpbHRlck9iamVjdCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy50eXBlID09PSAnd21zJykge1xuICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLmZpbHRlckJ5T2djKHRoaXMuZGF0YXNvdXJjZSBhcyBXTVNEYXRhU291cmNlLCBmaWx0ZXJRdWVyeVN0cmluZyApO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgIC8vIFRPRE86IENoZWNrIGhvdyB0byBwcmV2ZW50IHdmcyB0byByZWZyZXNoIHdoZW4gZmlsdGVyIGljb24gaXMgcHVzaGVkLi4uXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub2wucmVmcmVzaCgpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFzb3VyY2Uuc2V0T2djRmlsdGVycyh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLCB0cnVlKTtcbiAgfVxuXG4gIGlzTW9yZVJlc3VsdHMoYnVuZGxlLCB0eXBlKSB7XG4gICAgbGV0IHNlbGVjdG9yc0xlbmd0aCA9IDA7XG4gICAgZm9yIChjb25zdCBzZWxlY3RvcnMgb2YgYnVuZGxlLnNlbGVjdG9ycykge1xuICAgICAgc2VsZWN0b3JzTGVuZ3RoKys7XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdHlwZSA9PT0gJ3JhZGlvJyA/IHRoaXMucmFkaW9CdXR0b25zSW5kZXggOiB0aGlzLmNoZWNrYm94ZXNJbmRleDtcbiAgICByZXR1cm4gc2VsZWN0b3JzTGVuZ3RoID4gaW5kZXg7XG4gIH1cblxuICBkaXNwbGF5TW9yZVJlc3VsdHModHlwZSkge1xuICAgIHR5cGUgPT09ICdyYWRpbycgPyB0aGlzLnJhZGlvQnV0dG9uc0luZGV4ICs9IDUgOiB0aGlzLmNoZWNrYm94ZXNJbmRleCArPSA1O1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlzTGVzc1Jlc3VsdHMoYnVuZGxlLCB0eXBlKSB7XG4gICAgbGV0IHNlbGVjdG9yc0xlbmd0aCA9IDA7XG4gICAgZm9yIChjb25zdCBzZWxlY3RvcnMgb2YgYnVuZGxlLnNlbGVjdG9ycykge1xuICAgICAgc2VsZWN0b3JzTGVuZ3RoKys7XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdHlwZSA9PT0gJ3JhZGlvJyA/IHRoaXMucmFkaW9CdXR0b25zSW5kZXggOiB0aGlzLmNoZWNrYm94ZXNJbmRleDtcbiAgICByZXR1cm4gdGhpcy5iYXNlSW5kZXggIT09IGluZGV4ICYmIHNlbGVjdG9yc0xlbmd0aCA+IHRoaXMuYmFzZUluZGV4O1xuICB9XG5cbiAgZGlzcGxheUxlc3NSZXN1bHRzKHR5cGUpIHtcbiAgICB0eXBlID09PSAncmFkaW8nID8gdGhpcy5yYWRpb0J1dHRvbnNJbmRleCA9IHRoaXMuYmFzZUluZGV4IDogdGhpcy5jaGVja2JveGVzSW5kZXggPSB0aGlzLmJhc2VJbmRleDtcbiAgICByZXR1cm47XG4gIH1cblxuICBpc1RlbXBvcmFsT3BlcmF0b3IoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlcj8ub3BlcmF0b3I/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICB0aGlzLm9nY0ZpbHRlck9wZXJhdG9yLkR1cmluZy50b0xvd2VyQ2FzZSgpXG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZVByb3BlcnR5KHZhbHVlOiBhbnksIHBvcz86IG51bWJlciwgcmVmcmVzaEZpbHRlciA9IHRydWUpIHtcbiAgICBjb25zdCBkZXRlY3RlZFByb3BlcnR5ID0gdGhpcy5kZXRlY3RQcm9wZXJ0eShwb3MpO1xuICAgIGlmIChkZXRlY3RlZFByb3BlcnR5KSB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmluZChcbiAgICAgICAgZmlsdGVyID0+IGZpbHRlci5maWx0ZXJpZCA9PT0gdGhpcy5jdXJyZW50RmlsdGVyLmZpbHRlcmlkXG4gICAgICApW2RldGVjdGVkUHJvcGVydHldID0gdmFsdWU7XG5cbiAgICAgIGlmICggcmVmcmVzaEZpbHRlciApIHtcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkZXRlY3RQcm9wZXJ0eShwb3M/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNOb3RFcXVhbFRvOlxuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzRXF1YWxUbzpcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0dyZWF0ZXJUaGFuOlxuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzR3JlYXRlclRoYW5PckVxdWFsVG86XG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNMZXNzVGhhbjpcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0xlc3NUaGFuT3JFcXVhbFRvOlxuICAgICAgICByZXR1cm4gJ2V4cHJlc3Npb24nO1xuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzTGlrZTpcbiAgICAgICAgcmV0dXJuICdwYXR0ZXJuJztcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0JldHdlZW46XG4gICAgICAgIHJldHVybiBwb3MgJiYgcG9zID09PSAxXG4gICAgICAgICAgPyAnbG93ZXJCb3VuZGFyeSdcbiAgICAgICAgICA6IHBvcyAmJiBwb3MgPT09IDJcbiAgICAgICAgICA/ICd1cHBlckJvdW5kYXJ5J1xuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5EdXJpbmc6XG4gICAgICAgIHJldHVybiBwb3MgJiYgcG9zID09PSAxXG4gICAgICAgICAgPyAnYmVnaW4nXG4gICAgICAgICAgOiBwb3MgJiYgcG9zID09PSAyXG4gICAgICAgICAgPyAnZW5kJ1xuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IHNlbGVjdG9yIG9mIG9nY0ZpbHRlcnNTZWxlY3RvcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHVzaEJ1dHRvbkdyb3Vwc1wiICpuZ0lmPVwic2VsZWN0b3Iuc2VsZWN0b3JUeXBlID09PSAncHVzaEJ1dHRvbidcIj5cbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3Vwc1NlbGVjdG9yXCIgKm5nSWY9XCJnZXRQdXNoQnV0dG9uc0dyb3VwcygpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwdXNoQnV0dG9uc0dyb3VwXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmxlZ2VuZC5zZWxlY3RTdHlsZScgfCB0cmFuc2xhdGVcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgIFsodmFsdWUpXT1cImN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc2VsZWN0b3JHcm91cCBvZiBnZXRQdXNoQnV0dG9uc0dyb3VwcygpXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdG9yR3JvdXBcIj57e3NlbGVjdG9yR3JvdXAudGl0bGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVuZGxlIG9mIGN1cnJlbnRQdXNoQnV0dG9uc0dyb3VwLmNvbXB1dGVkU2VsZWN0b3JzXCI+XG4gICAgICAgIDxoND57e2J1bmRsZS50aXRsZX19PC9oND5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHVzaEJ1dHRvbnNcIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCIgYXBwZWFyYW5jZT1cImxlZ2FjeVwiIHZlcnRpY2FsPXt7YnVuZGxlSXNWZXJ0aWNhbChidW5kbGUpfX0gbXVsdGlwbGU9XCJ0cnVlXCI+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlICpuZ0Zvcj1cImxldCBvZ2NQdXNoQnV0dG9uIG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0VG9vbFRpcChvZ2NQdXNoQnV0dG9uKVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEJ1dHRvbkNvbG9yKG9nY1B1c2hCdXR0b24pXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIm9nY1B1c2hCdXR0b24uZW5hYmxlZFwiIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2Uob2djUHVzaEJ1dHRvbiwgc2VsZWN0b3Iuc2VsZWN0b3JUeXBlKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib2djUHVzaEJ1dHRvblwiPnt7b2djUHVzaEJ1dHRvbi50aXRsZX19XG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrYm94R3JvdXBzXCIgKm5nSWY9XCJzZWxlY3Rvci5zZWxlY3RvclR5cGUgPT09ICdjaGVja2JveCdcIj5cbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3Vwc1NlbGVjdG9yXCIgKm5nSWY9XCJnZXRDaGVja2JveGVzR3JvdXBzKCkubGVuZ3RoID4gMVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94ZXNHcm91cFwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJjdXJyZW50Q2hlY2tib3hlc0dyb3VwXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc2VsZWN0b3JHcm91cCBvZiBnZXRDaGVja2JveGVzR3JvdXBzKClcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0b3JHcm91cFwiPnt7c2VsZWN0b3JHcm91cC50aXRsZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidW5kbGUgb2YgY3VycmVudENoZWNrYm94ZXNHcm91cC5jb21wdXRlZFNlbGVjdG9yc1wiPlxuICAgICAgICA8aDQ+e3tidW5kbGUudGl0bGV9fTwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveGVzIG1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdGb3I9XCJsZXQgb2djQ2hlY2tib3ggb2YgYnVuZGxlLnNlbGVjdG9yc1wiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sVGlwKG9nY0NoZWNrYm94KVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiAgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJvZ2NDaGVja2JveC5lbmFibGVkXCIgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZShvZ2NDaGVja2JveCwgc2VsZWN0b3Iuc2VsZWN0b3JUeXBlKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib2djQ2hlY2tib3hcIj57e29nY0NoZWNrYm94LnRpdGxlfX1cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwICpuZ0lmPVwiaXNMZXNzUmVzdWx0cyhidW5kbGUsICdjaGVja2JveCcpIHx8IGlzTW9yZVJlc3VsdHMoYnVuZGxlLCAnY2hlY2tib3gnKVwiPlxuICAgICAgICAgIDx1ICpuZ0lmPVwiaXNMZXNzUmVzdWx0cyhidW5kbGUsICdjaGVja2JveCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVzc1Jlc3VsdHMgbWF0LXR5cG9ncmFwaHlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlMZXNzUmVzdWx0cygnY2hlY2tib3gnKVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5kaXNwbGF5TGVzc1Jlc3VsdHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC91PlxuICAgICAgICAgIDx1ICpuZ0lmPVwiaXNNb3JlUmVzdWx0cyhidW5kbGUsICdjaGVja2JveCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibW9yZVJlc3VsdHMgbWF0LXR5cG9ncmFwaHlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlNb3JlUmVzdWx0cygnY2hlY2tib3gnKVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5kaXNwbGF5TW9yZVJlc3VsdHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC91PlxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyYWRpb0J1dHRvbkdyb3Vwc1wiICpuZ0lmPVwic2VsZWN0b3Iuc2VsZWN0b3JUeXBlID09PSAncmFkaW9CdXR0b24nXCI+XG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cHNTZWxlY3RvclwiICpuZ0lmPVwiZ2V0UmFkaW9CdXR0b25zR3JvdXBzKCkubGVuZ3RoID4gMVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJhZGlvQnV0dG9uc0dyb3VwXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmxlZ2VuZC5zZWxlY3RTdHlsZScgfCB0cmFuc2xhdGVcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgIFsodmFsdWUpXT1cImN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cFwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNlbGVjdG9yR3JvdXAgb2YgZ2V0UmFkaW9CdXR0b25zR3JvdXBzKClcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0b3JHcm91cFwiPnt7c2VsZWN0b3JHcm91cC50aXRsZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidW5kbGUgb2YgY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwLmNvbXB1dGVkU2VsZWN0b3JzXCI+XG4gICAgICAgIDxoND57e2J1bmRsZS50aXRsZX19PC9oND5cbiAgICAgICAgPG1hdC1yYWRpby1ncm91cFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJhZGlvQnV0dG9uc1wiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cImJ1bmRsZS51bmZpbHRlcmVkXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5yZXNldEZpbHRlcnMnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiICBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiZW1wdHlSYWRpb0J1dHRvbnMoKVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5yZXNldEZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBvZ2NSYWRpb0J1dHRvbiBvZiBidW5kbGUuc2VsZWN0b3JzXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldFRvb2xUaXAob2djUmFkaW9CdXR0b24pXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiICBtYXRUb29sdGlwQ2xhc3M9XCJtYXRlcmlhbC10b29sdGlwXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIm9nY1JhZGlvQnV0dG9uLmVuYWJsZWRcIiAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKG9nY1JhZGlvQnV0dG9uLCBzZWxlY3Rvci5zZWxlY3RvclR5cGUpXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvZ2NSYWRpb0J1dHRvblwiPnt7b2djUmFkaW9CdXR0b24udGl0bGV9fVxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICA8cCAqbmdJZj1cImlzTGVzc1Jlc3VsdHMoYnVuZGxlLCAncmFkaW8nKSB8fCBpc01vcmVSZXN1bHRzKGJ1bmRsZSwgJ3JhZGlvJylcIj5cbiAgICAgICAgICAgIDx1ICpuZ0lmPVwiaXNMZXNzUmVzdWx0cyhidW5kbGUsICdyYWRpbycpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsZXNzUmVzdWx0cyBtYXQtdHlwb2dyYXBoeVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkaXNwbGF5TGVzc1Jlc3VsdHMoJ3JhZGlvJylcIj57eyAnaWdvLmdlby5maWx0ZXIuZGlzcGxheUxlc3NSZXN1bHRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC91PlxuICAgICAgICAgICAgPHUgKm5nSWY9XCJpc01vcmVSZXN1bHRzKGJ1bmRsZSwgJ3JhZGlvJylcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1vcmVSZXN1bHRzIG1hdC10eXBvZ3JhcGh5XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlNb3JlUmVzdWx0cygncmFkaW8nKVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5kaXNwbGF5TW9yZVJlc3VsdHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3U+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdEdyb3Vwc1wiICpuZ0lmPVwic2VsZWN0b3Iuc2VsZWN0b3JUeXBlID09PSAnc2VsZWN0J1wiPlxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzU2VsZWN0b3JcIiAqbmdJZj1cImdldFNlbGVjdEdyb3VwcygpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RHcm91cFwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5sZWdlbmQuc2VsZWN0U3R5bGUnIHwgdHJhbnNsYXRlXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJjdXJyZW50U2VsZWN0R3JvdXBcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZWxlY3Rvckdyb3VwIG9mIGdldFNlbGVjdEdyb3VwcygpXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdG9yR3JvdXBcIj57e3NlbGVjdG9yR3JvdXAudGl0bGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVuZGxlIG9mIGN1cnJlbnRTZWxlY3RHcm91cC5jb21wdXRlZFNlbGVjdG9yc1wiPlxuICAgICAgICA8aDQ+e3tidW5kbGUudGl0bGV9fTwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cHNTZWxlY3RvclwiPlxuICAgICAgICAgIDxtYXQtYnV0dG9uICpuZ0lmPVwiYnVuZGxlLnVuZmlsdGVyZWQgJiYgIWJ1bmRsZS5tdWx0aXBsZVwiXG4gICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIucmVzZXRGaWx0ZXJzJyB8IHRyYW5zbGF0ZVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiAgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW1wdHlTZWxlY3QoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJmaWx0ZXItcmVtb3ZlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L21hdC1idXR0b24+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJ1bmRsZS5tdWx0aXBsZTsgZWxzZSBub3RNdWx0aVwiPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICNzZWxlY3Rpb24gW211bHRpcGxlXT1cImJ1bmRsZS5tdWx0aXBsZVwiIFtwbGFjZWhvbGRlcl09XCJidW5kbGUudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RcIiBbKG5nTW9kZWwpXT1cImVuYWJsZWRzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94ZXMgbWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJidW5kbGUubXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFsbFNlbGVjdGVkXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQWxsU2VsZWN0aW9uKClcIj5Ub3VzXG4gICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb2djU2VsZWN0IG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0VG9vbFRpcChvZ2NTZWxlY3QpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcERlbGF5PVwiNTAwXCIgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwib3B0aW9uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib2djU2VsZWN0XCI+e3tvZ2NTZWxlY3QudGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdE11bHRpPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJidW5kbGUudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RcIiBbKG5nTW9kZWwpXT1cImVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb2djU2VsZWN0IG9mIGJ1bmRsZS5zZWxlY3RvcnNcIlxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0VG9vbFRpcChvZ2NTZWxlY3QpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgbWF0VG9vbHRpcERlbGF5PVwiNTAwXCIgbWF0VG9vbHRpcENsYXNzPVwibWF0ZXJpYWwtdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib2djU2VsZWN0XCI+e3tvZ2NTZWxlY3QudGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiAqbmdJZj1cImlzVGVtcG9yYWxPcGVyYXRvcigpXCI+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8aDQgKm5nSWY9XCIhY3VycmVudEZpbHRlci50aXRsZVwiPnt7ICdpZ28uZ2VvLmZpbHRlci5yZXBvcnRpbmdEYXRlJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG4gIDxoNCAqbmdJZj1cImN1cnJlbnRGaWx0ZXIudGl0bGVcIj57eyBjdXJyZW50RmlsdGVyLnRpdGxlIH19PC9oND5cbiAgPGlnby1vZ2MtZmlsdGVyLXRpbWVcbiAgICBbKGRhdGFzb3VyY2UpXT1cImRhdGFzb3VyY2VcIlxuICAgIFsoY3VycmVudEZpbHRlcildPVwiY3VycmVudEZpbHRlclwiXG4gICAgKGNoYW5nZVByb3BlcnR5KT1cImNoYW5nZVByb3BlcnR5KCRldmVudC52YWx1ZSwgJGV2ZW50LnBvcylcIj5cbiAgPC9pZ28tb2djLWZpbHRlci10aW1lPlxuPC9kaXY+Il19
@@ -1,3 +1,3 @@
1
1
  export * from './ogc-filter-time.component';
2
2
  export * from './ogc-filter-time-slider.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlci10aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb2djLWZpbHRlci10aW1lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb2djLWZpbHRlci10aW1lLXNsaWRlci5jb21wb25lbnQnO1xyXG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlci10aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb2djLWZpbHRlci10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -182,4 +182,4 @@ OgcFilterTimeSliderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
182
182
  type: ViewChild,
183
183
  args: [MatSlider]
184
184
  }] }); })();
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci10aW1lLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItdGltZS9vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkIsTUFBTSxPQUFPLDRCQUE0QjtJQWdEdkMsWUFBbUIsb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUEzQ25ELG1CQUFjLEdBSW5CLElBQUksWUFBWSxFQUFPLENBQUM7UUFJN0IsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDbEIsMEJBQXFCLEdBQVcsb0JBQW9CLENBQUM7UUFDckQsMkJBQXNCLEdBQVcsSUFBSSxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxhQUFhLENBQUM7UUFDekIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQStCMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQTlCRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJ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U0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPR0NGaWx0ZXJUaW1lU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLXRpbWUuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1hdFNsaWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2djLWZpbHRlci10aW1lLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlci10aW1lLXNsaWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJUaW1lU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBjdXJyZW50RmlsdGVyOiBhbnk7XHJcbiAgQElucHV0KCkgYmVnaW46IGFueTtcclxuICBASW5wdXQoKSBtYXg6IGFueTtcclxuICBASW5wdXQoKSBkYXRhc291cmNlOiBhbnk7XHJcbiAgQE91dHB1dCgpIGNoYW5nZVByb3BlcnR5OiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIHBvczogbnVtYmVyO1xyXG4gICAgcmVmcmVzaEZpbHRlcjogYm9vbGVhbjtcclxuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2xpZGVyKSBzbGlkZXI6IE1hdFNsaWRlcjtcclxuXHJcbiAgaW50ZXJ2YWw7XHJcbiAgc2xpZGVyVmFsdWU6IG51bWJlciA9IDE7XHJcbiAgY2FsY3VsYXRlZFN0ZXA6IG51bWJlciA9IDA7XHJcbiAgcmVhZG9ubHkgX2RlZmF1bHREaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSAnREQvTU0vWVlZWSBISDptbSBBJztcclxuICByZWFkb25seSBfZGVmYXVsdFNsaWRlckludGVydmFsOiBudW1iZXIgPSAyMDAwO1xyXG4gIHB1YmxpYyBwbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgcHVibGljIHJlc2V0SWNvbiA9ICdyZXBsYXknO1xyXG5cclxuICBnZXQgc2xpZGVySW50ZXJ2YWwoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXIuc2xpZGVySW50ZXJ2YWwgPT09IHVuZGVmaW5lZFxyXG4gICAgICA/IHRoaXMuX2RlZmF1bHRTbGlkZXJJbnRlcnZhbFxyXG4gICAgICA6IHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJJbnRlcnZhbDtcclxuICB9XHJcblxyXG4gIGdldCBkaXNwbGF5Rm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnM/LmRpc3BsYXlGb3JtYXQpe1xyXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMuZGlzcGxheUZvcm1hdDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuZGlzcGxheUZvcm1hdCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLmRpc3BsYXlGb3JtYXQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdERpc3BsYXlGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICBnZXQgYmVnaW5NaWxsaXNlY29uZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2UuZGF0ZVRvTnVtYmVyKHRoaXMuYmVnaW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heE1pbGxpc2Vjb25kKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5kYXRlVG9OdW1iZXIodGhpcy5tYXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0ZXBNaWxsaXNlY29uZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcE1pbGxpc2Vjb25kKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvZ2NGaWx0ZXJUaW1lU2VydmljZTogT0dDRmlsdGVyVGltZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2xpZGVyRGlzcGxheVdpdGggPSB0aGlzLnNsaWRlckRpc3BsYXlXaXRoLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5jYWxjdWxhdGVTdGVwKCk7XHJcbiAgICB0aGlzLmhhbmRsZVNsaWRlcklucHV0KHt2YWx1ZTogMX0pO1xyXG4gIH1cclxuXHJcbiAgc2xpZGVyRGlzcGxheVdpdGgodmFsdWUpIHtcclxuICAgIGxldCBkYXRlVG1wID0gbmV3IERhdGUodGhpcy5iZWdpbk1pbGxpc2Vjb25kICsgKCh2YWx1ZSAtIDEpICogdGhpcy5zdGVwTWlsbGlzZWNvbmQpKTtcclxuXHJcbiAgICBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNZZWFyRHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkpIHtcclxuICAgICAgY29uc3QgdG9BZGQgPSBtb21lbnQuZHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkueWVhcnMoKTtcclxuICAgICAgZGF0ZVRtcCA9IG1vbWVudCh0aGlzLmJlZ2luTWlsbGlzZWNvbmQpLmFkZCgodmFsdWUgLSAxKSAqIHRvQWRkLCAneWVhcicpLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNNb250aER1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpKSB7XHJcbiAgICAgIGNvbnN0IHRvQWRkID0gbW9tZW50LmR1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpLm1vbnRocygpO1xyXG4gICAgICBkYXRlVG1wID0gbW9tZW50KHRoaXMuYmVnaW5NaWxsaXNlY29uZCkuYWRkKCh2YWx1ZSAtIDEpICogdG9BZGQsICdtb250aCcpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtb21lbnQoZGF0ZVRtcCkuZm9ybWF0KHRoaXMuZGlzcGxheUZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBwbGF5RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZS1jaXJjbGUnO1xyXG4gICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoXHJcbiAgICAgICAgdGhhdCA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2xpZGVyLnZhbHVlIDwgdGhpcy5jYWxjdWxhdGVkU3RlcCkge1xyXG4gICAgICAgICAgICBjb25zdCBfaW5jcmVtZW50ID0gJ19pbmNyZW1lbnQnO1xyXG4gICAgICAgICAgICBjb25zdCBfZW1pdElucHV0RXZlbnQgPSAnX2VtaXRJbnB1dEV2ZW50JztcclxuICAgICAgICAgICAgdGhpcy5zbGlkZXJbX2luY3JlbWVudF0oMSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyW19lbWl0SW5wdXRFdmVudF0oKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy5zbGlkZXJJbnRlcnZhbCxcclxuICAgICAgICB0aGlzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9wRmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnBsYXlJY29uID0gJ3BsYXktY2lyY2xlJztcclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgICB0aGlzLnNsaWRlci52YWx1ZSA9IDE7XHJcbiAgICBjb25zdCBfaW5jcmVtZW50ID0gJ19pbmNyZW1lbnQnO1xyXG4gICAgY29uc3QgX2VtaXRJbnB1dEV2ZW50ID0gJ19lbWl0SW5wdXRFdmVudCc7XHJcbiAgICB0aGlzLnNsaWRlcltfZW1pdElucHV0RXZlbnRdKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJJbnB1dChtYXRTbGlkZXJDaGFuZ2UpIHtcclxuICAgIGlmIChtYXRTbGlkZXJDaGFuZ2UpIHtcclxuXHJcbiAgICAgIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNZZWFyRHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkgKSB7XHJcbiAgICAgICAgY29uc3QgdG9BZGQgPSBtb21lbnQuZHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkueWVhcnMoKTtcclxuICAgICAgICBjb25zdCBkYXRlQmVnaW5UbXAgPSBtb21lbnQodGhpcy5iZWdpbk1pbGxpc2Vjb25kKS5hZGQoKG1hdFNsaWRlckNoYW5nZS52YWx1ZSAtIDEpICogdG9BZGQsICd5ZWFyJykudG9EYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF0ZUVuZFRtcCA9IG1vbWVudChkYXRlQmVnaW5UbXApLmFkZCh0b0FkZCwgJ3llYXInKS50b0RhdGUoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZVByb3BlcnR5Lm5leHQoe3ZhbHVlOiBtb21lbnQoZGF0ZUJlZ2luVG1wKS50b0RhdGUoKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3M6IDEsIHJlZnJlc2hGaWx0ZXI6IGZhbHNlfSk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHt2YWx1ZTogbW9tZW50KGRhdGVFbmRUbXApLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogMiwgcmVmcmVzaEZpbHRlcjogdHJ1ZX0pO1xyXG5cclxuICAgICAgfSBlbHNlIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNNb250aER1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpICkge1xyXG4gICAgICAgIGNvbnN0IHRvQWRkID0gbW9tZW50LmR1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpLm1vbnRocygpO1xyXG4gICAgICAgIGNvbnN0IGRhdGVCZWdpblRtcCA9IG1vbWVudCh0aGlzLmJlZ2luTWlsbGlzZWNvbmQpLmFkZCgobWF0U2xpZGVyQ2hhbmdlLnZhbHVlIC0gMSkgKiB0b0FkZCwgJ21vbnRoJykudG9EYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF0ZUVuZFRtcCA9IG1vbWVudChkYXRlQmVnaW5UbXApLmFkZCh0b0FkZCwgJ21vbnRoJykudG9EYXRlKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHt2YWx1ZTogbW9tZW50KGRhdGVCZWdpblRtcCkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKS50b0lTT1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3M6IDEsIHJlZnJlc2hGaWx0ZXI6IGZhbHNlfSk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHt2YWx1ZTogbW9tZW50KGRhdGVFbmRUbXApLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogMiwgcmVmcmVzaEZpbHRlcjogdHJ1ZX0pO1xyXG5cclxuICAgICAgfSBlbHNlIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNEYXlEdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKSB8fFxyXG4gICAgICAgICAgdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNIb3VyRHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkgfHxcclxuICAgICAgICAgIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTWludXRlRHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkgKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGVUbXAgPSBuZXcgRGF0ZSh0aGlzLmJlZ2luTWlsbGlzZWNvbmQgKyAodGhpcy5zdGVwTWlsbGlzZWNvbmQgKiAobWF0U2xpZGVyQ2hhbmdlLnZhbHVlIC0gMSkpKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHt2YWx1ZTogZGF0ZVRtcC50b0lTT1N0cmluZygpLCBwb3M6IDEsIHJlZnJlc2hGaWx0ZXI6IGZhbHNlfSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dCh7dmFsdWU6IG5ldyBEYXRlKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2UuYWRkU3RlcChkYXRlVG1wLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXBNaWxsaXNlY29uZCkpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3M6IDIsIHJlZnJlc2hGaWx0ZXI6IHRydWV9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlU3RlcCgpe1xyXG4gICAgZm9yIChsZXQgaSA9IDE7ICh0aGlzLm1heE1pbGxpc2Vjb25kIC0gKHRoaXMuYmVnaW5NaWxsaXNlY29uZCArIChpICogdGhpcy5zdGVwTWlsbGlzZWNvbmQpKSkgPj0gLTE7IGkrKykge1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZWRTdGVwID0gaTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbGlkZXItY29udGFpbmVyXCI+XHJcbiAgPG1hdC1zbGlkZXJcclxuICAgIGlkPVwidGltZS1zbGlkZXJcIlxyXG4gICAgW3N0ZXBdPVwiMVwiXHJcbiAgICBbbWluXT1cIjFcIlxyXG4gICAgW21heF09XCJjYWxjdWxhdGVkU3RlcFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNsaWRlclZhbHVlXCJcclxuICAgIFtkaXNwbGF5V2l0aF09XCJzbGlkZXJEaXNwbGF5V2l0aFwiXHJcbiAgICAoaW5wdXQpPVwiaGFuZGxlU2xpZGVySW5wdXQoJGV2ZW50KVwiXHJcbiAgICB0aHVtYkxhYmVsXHJcbiAgICA+XHJcbiAgPC9tYXQtc2xpZGVyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJwbGF5RmlsdGVyKCRldmVudClcIj5cclxuICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJwbGF5SWNvblwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInJlc2V0RmlsdGVyKCRldmVudClcIj5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tyZXNldEljb259fVwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgXHJcbjwvZGl2PiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci10aW1lLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlci10aW1lL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItdGltZS9vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkIsTUFBTSxPQUFPLDRCQUE0QjtJQWdEdkMsWUFBbUIsb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUEzQ25ELG1CQUFjLEdBSW5CLElBQUksWUFBWSxFQUFPLENBQUM7UUFJN0IsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDbEIsMEJBQXFCLEdBQVcsb0JBQW9CLENBQUM7UUFDckQsMkJBQXNCLEdBQVcsSUFBSSxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxhQUFhLENBQUM7UUFDekIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQStCMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQTlCRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsS0FBSyxTQUFTO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxhQUFhOztRQUNmLElBQUksTUFBQSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsMENBQUUsYUFBYSxFQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLO1FBQ3JCLElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXJGLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtZQUNySCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzRyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbkY7YUFBTSxJQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7WUFDOUgsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BGO1FBRUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQ3pCLElBQUksQ0FBQyxFQUFFO2dCQUVMLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDM0MsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO29CQUNoQyxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2lCQUNoQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQ25CO1lBQ0gsQ0FBQyxFQUNELElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FDTCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztRQUNoQyxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQixDQUFDLGVBQWU7UUFDL0IsSUFBSSxlQUFlLEVBQUU7WUFFbkIsSUFBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFHO2dCQUN2SCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0csTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3RyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDaEQsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDOUMsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUUzRDtpQkFBTSxJQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUc7Z0JBQy9ILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1RyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlHLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDakUsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDOUMsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUUzRDtpQkFBTSxJQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN4SCxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRztnQkFDcEgsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtvQkFDcEMsR0FBRyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUMvRDtTQUNGO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7O3dHQXZKVSw0QkFBNEI7K0VBQTVCLDRCQUE0Qjt1QkFVNUIsU0FBUzs7Ozs7UUM3QnRCLDhCQUE4QjtRQUM1QixxQ0FTRztRQUpELCtKQUF5QixzR0FFaEIsNkJBQXlCLElBRlQ7UUFLM0IsaUJBQWE7UUFDYixpQ0FBcUU7UUFBN0IsK0dBQVMsc0JBQWtCLElBQUM7UUFDbEUsOEJBQTBDO1FBQzVDLGlCQUFTO1FBQ1QsaUNBQXNFO1FBQTlCLCtHQUFTLHVCQUFtQixJQUFDO1FBQ25FLDhCQUE2QztRQUMvQyxpQkFBUztRQUVYLGlCQUFNOztRQWhCRixlQUFVO1FBQVYsd0JBQVUsVUFBQSwyQkFBQSw0QkFBQSxzQ0FBQTtRQVVBLGVBQW9CO1FBQXBCLHNDQUFvQjtRQUdwQixlQUF1QjtRQUF2QixrREFBdUI7O3VGREd4Qiw0QkFBNEI7Y0FMeEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFdBQVcsRUFBRSx5Q0FBeUM7Z0JBQ3RELFNBQVMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDO2FBQ3ZEO3VFQUVVLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxHQUFHO2tCQUFYLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0ksY0FBYztrQkFBdkIsTUFBTTtZQUtlLE1BQU07a0JBQTNCLFNBQVM7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9HQ0ZpbHRlclRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXItdGltZS5zZXJ2aWNlJztcblxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgTWF0U2xpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXItdGltZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyVGltZVNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGN1cnJlbnRGaWx0ZXI6IGFueTtcbiAgQElucHV0KCkgYmVnaW46IGFueTtcbiAgQElucHV0KCkgbWF4OiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFzb3VyY2U6IGFueTtcbiAgQE91dHB1dCgpIGNoYW5nZVByb3BlcnR5OiBFdmVudEVtaXR0ZXI8e1xuICAgIHZhbHVlOiBhbnk7XG4gICAgcG9zOiBudW1iZXI7XG4gICAgcmVmcmVzaEZpbHRlcjogYm9vbGVhbjtcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZChNYXRTbGlkZXIpIHNsaWRlcjogTWF0U2xpZGVyO1xuXG4gIGludGVydmFsO1xuICBzbGlkZXJWYWx1ZTogbnVtYmVyID0gMTtcbiAgY2FsY3VsYXRlZFN0ZXA6IG51bWJlciA9IDA7XG4gIHJlYWRvbmx5IF9kZWZhdWx0RGlzcGxheUZvcm1hdDogc3RyaW5nID0gJ0REL01NL1lZWVkgSEg6bW0gQSc7XG4gIHJlYWRvbmx5IF9kZWZhdWx0U2xpZGVySW50ZXJ2YWw6IG51bWJlciA9IDIwMDA7XG4gIHB1YmxpYyBwbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XG4gIHB1YmxpYyByZXNldEljb24gPSAncmVwbGF5JztcblxuICBnZXQgc2xpZGVySW50ZXJ2YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlckludGVydmFsID09PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5fZGVmYXVsdFNsaWRlckludGVydmFsXG4gICAgICA6IHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJJbnRlcnZhbDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJPcHRpb25zPy5kaXNwbGF5Rm9ybWF0KXtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXIuc2xpZGVyT3B0aW9ucy5kaXNwbGF5Rm9ybWF0O1xuICAgIH1cbiAgICBpZiAodGhpcy5jdXJyZW50RmlsdGVyLmRpc3BsYXlGb3JtYXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXIuZGlzcGxheUZvcm1hdDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHREaXNwbGF5Rm9ybWF0O1xuICB9XG5cbiAgZ2V0IGJlZ2luTWlsbGlzZWNvbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5kYXRlVG9OdW1iZXIodGhpcy5iZWdpbik7XG4gIH1cblxuICBnZXQgbWF4TWlsbGlzZWNvbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5kYXRlVG9OdW1iZXIodGhpcy5tYXgpO1xuICB9XG5cbiAgZ2V0IHN0ZXBNaWxsaXNlY29uZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBNaWxsaXNlY29uZCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb2djRmlsdGVyVGltZVNlcnZpY2U6IE9HQ0ZpbHRlclRpbWVTZXJ2aWNlKSB7XG4gICAgdGhpcy5zbGlkZXJEaXNwbGF5V2l0aCA9IHRoaXMuc2xpZGVyRGlzcGxheVdpdGguYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCl7XG4gICAgdGhpcy5jYWxjdWxhdGVTdGVwKCk7XG4gICAgdGhpcy5oYW5kbGVTbGlkZXJJbnB1dCh7dmFsdWU6IDF9KTtcbiAgfVxuXG4gIHNsaWRlckRpc3BsYXlXaXRoKHZhbHVlKSB7XG4gICAgbGV0IGRhdGVUbXAgPSBuZXcgRGF0ZSh0aGlzLmJlZ2luTWlsbGlzZWNvbmQgKyAoKHZhbHVlIC0gMSkgKiB0aGlzLnN0ZXBNaWxsaXNlY29uZCkpO1xuXG4gICAgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzWWVhckR1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpKSB7XG4gICAgICBjb25zdCB0b0FkZCA9IG1vbWVudC5kdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKS55ZWFycygpO1xuICAgICAgZGF0ZVRtcCA9IG1vbWVudCh0aGlzLmJlZ2luTWlsbGlzZWNvbmQpLmFkZCgodmFsdWUgLSAxKSAqIHRvQWRkLCAneWVhcicpLnRvRGF0ZSgpO1xuICAgIH0gZWxzZSBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKSkge1xuICAgICAgY29uc3QgdG9BZGQgPSBtb21lbnQuZHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkubW9udGhzKCk7XG4gICAgICBkYXRlVG1wID0gbW9tZW50KHRoaXMuYmVnaW5NaWxsaXNlY29uZCkuYWRkKCh2YWx1ZSAtIDEpICogdG9BZGQsICdtb250aCcpLnRvRGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBtb21lbnQoZGF0ZVRtcCkuZm9ybWF0KHRoaXMuZGlzcGxheUZvcm1hdCk7XG4gIH1cblxuICBwbGF5RmlsdGVyKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbCkge1xuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGxheUljb24gPSAncGF1c2UtY2lyY2xlJztcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChcbiAgICAgICAgdGhhdCA9PiB7XG5cbiAgICAgICAgICBpZiAodGhpcy5zbGlkZXIudmFsdWUgPCB0aGlzLmNhbGN1bGF0ZWRTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCBfaW5jcmVtZW50ID0gJ19pbmNyZW1lbnQnO1xuICAgICAgICAgICAgY29uc3QgX2VtaXRJbnB1dEV2ZW50ID0gJ19lbWl0SW5wdXRFdmVudCc7XG4gICAgICAgICAgICB0aGlzLnNsaWRlcltfaW5jcmVtZW50XSgxKTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyW19lbWl0SW5wdXRFdmVudF0oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnNsaWRlckludGVydmFsLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XG4gIH1cblxuICByZXNldEZpbHRlcihldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XG4gICAgdGhpcy5zbGlkZXIudmFsdWUgPSAxO1xuICAgIGNvbnN0IF9pbmNyZW1lbnQgPSAnX2luY3JlbWVudCc7XG4gICAgY29uc3QgX2VtaXRJbnB1dEV2ZW50ID0gJ19lbWl0SW5wdXRFdmVudCc7XG4gICAgdGhpcy5zbGlkZXJbX2VtaXRJbnB1dEV2ZW50XSgpO1xuICB9XG5cbiAgaGFuZGxlU2xpZGVySW5wdXQobWF0U2xpZGVyQ2hhbmdlKSB7XG4gICAgaWYgKG1hdFNsaWRlckNoYW5nZSkge1xuXG4gICAgICBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzWWVhckR1cmF0aW9uKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcCh0aGlzLmRhdGFzb3VyY2UsIHRoaXMuY3VycmVudEZpbHRlcikpICkge1xuICAgICAgICBjb25zdCB0b0FkZCA9IG1vbWVudC5kdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKS55ZWFycygpO1xuICAgICAgICBjb25zdCBkYXRlQmVnaW5UbXAgPSBtb21lbnQodGhpcy5iZWdpbk1pbGxpc2Vjb25kKS5hZGQoKG1hdFNsaWRlckNoYW5nZS52YWx1ZSAtIDEpICogdG9BZGQsICd5ZWFyJykudG9EYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGVFbmRUbXAgPSBtb21lbnQoZGF0ZUJlZ2luVG1wKS5hZGQodG9BZGQsICd5ZWFyJykudG9EYXRlKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dCh7dmFsdWU6IG1vbWVudChkYXRlQmVnaW5UbXApLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3M6IDEsIHJlZnJlc2hGaWx0ZXI6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dCh7dmFsdWU6IG1vbWVudChkYXRlRW5kVG1wKS50b0RhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zOiAyLCByZWZyZXNoRmlsdGVyOiB0cnVlfSk7XG5cbiAgICAgIH0gZWxzZSBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKSApIHtcbiAgICAgICAgY29uc3QgdG9BZGQgPSBtb21lbnQuZHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkubW9udGhzKCk7XG4gICAgICAgIGNvbnN0IGRhdGVCZWdpblRtcCA9IG1vbWVudCh0aGlzLmJlZ2luTWlsbGlzZWNvbmQpLmFkZCgobWF0U2xpZGVyQ2hhbmdlLnZhbHVlIC0gMSkgKiB0b0FkZCwgJ21vbnRoJykudG9EYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGVFbmRUbXAgPSBtb21lbnQoZGF0ZUJlZ2luVG1wKS5hZGQodG9BZGQsICdtb250aCcpLnRvRGF0ZSgpO1xuICAgICAgICB0aGlzLmNoYW5nZVByb3BlcnR5Lm5leHQoe3ZhbHVlOiBtb21lbnQoZGF0ZUJlZ2luVG1wKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3M6IDEsIHJlZnJlc2hGaWx0ZXI6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dCh7dmFsdWU6IG1vbWVudChkYXRlRW5kVG1wKS50b0RhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zOiAyLCByZWZyZXNoRmlsdGVyOiB0cnVlfSk7XG5cbiAgICAgIH0gZWxzZSBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzRGF5RHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkgfHxcbiAgICAgICAgICB0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc0hvdXJEdXJhdGlvbih0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXAodGhpcy5kYXRhc291cmNlLCB0aGlzLmN1cnJlbnRGaWx0ZXIpKSB8fFxuICAgICAgICAgIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTWludXRlRHVyYXRpb24odGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwKHRoaXMuZGF0YXNvdXJjZSwgdGhpcy5jdXJyZW50RmlsdGVyKSkgKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlVG1wID0gbmV3IERhdGUodGhpcy5iZWdpbk1pbGxpc2Vjb25kICsgKHRoaXMuc3RlcE1pbGxpc2Vjb25kICogKG1hdFNsaWRlckNoYW5nZS52YWx1ZSAtIDEpKSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVByb3BlcnR5Lm5leHQoe3ZhbHVlOiBkYXRlVG1wLnRvSVNPU3RyaW5nKCksIHBvczogMSwgcmVmcmVzaEZpbHRlcjogZmFsc2V9KTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dCh7dmFsdWU6IG5ldyBEYXRlKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2UuYWRkU3RlcChkYXRlVG1wLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwTWlsbGlzZWNvbmQpKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvczogMiwgcmVmcmVzaEZpbHRlcjogdHJ1ZX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVN0ZXAoKXtcbiAgICBmb3IgKGxldCBpID0gMTsgKHRoaXMubWF4TWlsbGlzZWNvbmQgLSAodGhpcy5iZWdpbk1pbGxpc2Vjb25kICsgKGkgKiB0aGlzLnN0ZXBNaWxsaXNlY29uZCkpKSA+PSAtMTsgaSsrKSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZWRTdGVwID0gaTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNsaWRlci1jb250YWluZXJcIj5cbiAgPG1hdC1zbGlkZXJcbiAgICBpZD1cInRpbWUtc2xpZGVyXCJcbiAgICBbc3RlcF09XCIxXCJcbiAgICBbbWluXT1cIjFcIlxuICAgIFttYXhdPVwiY2FsY3VsYXRlZFN0ZXBcIlxuICAgIFsobmdNb2RlbCldPVwic2xpZGVyVmFsdWVcIlxuICAgIFtkaXNwbGF5V2l0aF09XCJzbGlkZXJEaXNwbGF5V2l0aFwiXG4gICAgKGlucHV0KT1cImhhbmRsZVNsaWRlcklucHV0KCRldmVudClcIlxuICAgIHRodW1iTGFiZWxcbiAgICA+XG4gIDwvbWF0LXNsaWRlcj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInBsYXlGaWx0ZXIoJGV2ZW50KVwiPlxuICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJwbGF5SWNvblwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicmVzZXRGaWx0ZXIoJGV2ZW50KVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tyZXNldEljb259fVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICBcbjwvZGl2PiJdfQ==