@angular/core 7.2.0-rc.0 → 7.2.3

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 (434) hide show
  1. package/bundles/core-testing.umd.js +193 -131
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core-testing.umd.min.js +11 -11
  4. package/bundles/core-testing.umd.min.js.map +1 -1
  5. package/bundles/core.umd.js +1777 -1329
  6. package/bundles/core.umd.js.map +1 -1
  7. package/bundles/core.umd.min.js +111 -125
  8. package/bundles/core.umd.min.js.map +1 -1
  9. package/core.metadata.json +1 -1
  10. package/esm2015/core.js +1 -1
  11. package/esm2015/index.js +2 -2
  12. package/esm2015/public_api.js +2 -2
  13. package/esm2015/src/application_init.js +1 -1
  14. package/esm2015/src/application_module.js +1 -1
  15. package/esm2015/src/application_ref.js +1 -1
  16. package/esm2015/src/application_tokens.js +1 -1
  17. package/esm2015/src/change_detection/change_detection.js +1 -1
  18. package/esm2015/src/change_detection/change_detection_util.js +1 -1
  19. package/esm2015/src/change_detection/change_detector_ref.js +1 -1
  20. package/esm2015/src/change_detection/constants.js +3 -3
  21. package/esm2015/src/change_detection/differs/default_iterable_differ.js +1 -1
  22. package/esm2015/src/change_detection/differs/default_keyvalue_differ.js +1 -1
  23. package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
  24. package/esm2015/src/change_detection/differs/keyvalue_differs.js +1 -1
  25. package/esm2015/src/change_detection/pipe_transform.js +1 -1
  26. package/esm2015/src/change_detection.js +1 -1
  27. package/esm2015/src/codegen_private_exports.js +1 -1
  28. package/esm2015/src/console.js +1 -1
  29. package/esm2015/src/core.js +2 -2
  30. package/esm2015/src/core_private_export.js +1 -1
  31. package/esm2015/src/core_render3_private_export.js +2 -2
  32. package/esm2015/src/debug/debug_node.js +6 -6
  33. package/esm2015/src/di/defs.js +1 -1
  34. package/esm2015/src/di/forward_ref.js +1 -1
  35. package/esm2015/src/di/injectable.js +1 -1
  36. package/esm2015/src/di/injection_token.js +2 -2
  37. package/esm2015/src/di/injector.js +1 -1
  38. package/esm2015/src/di/injector_compatibility.js +1 -1
  39. package/esm2015/src/di/metadata.js +1 -1
  40. package/esm2015/src/di/provider.js +1 -1
  41. package/esm2015/src/di/r3_injector.js +1 -1
  42. package/esm2015/src/di/reflective_errors.js +1 -1
  43. package/esm2015/src/di/reflective_injector.js +1 -1
  44. package/esm2015/src/di/reflective_key.js +1 -1
  45. package/esm2015/src/di/reflective_provider.js +1 -1
  46. package/esm2015/src/di/scope.js +1 -1
  47. package/esm2015/src/di/util.js +1 -1
  48. package/esm2015/src/di.js +1 -1
  49. package/esm2015/src/error_handler.js +1 -1
  50. package/esm2015/src/errors.js +1 -1
  51. package/esm2015/src/event_emitter.js +1 -1
  52. package/esm2015/src/i18n/tokens.js +1 -1
  53. package/esm2015/src/is_dev_mode.js +1 -1
  54. package/esm2015/src/ivy_switch.js +1 -1
  55. package/esm2015/src/linker/compiler.js +1 -1
  56. package/esm2015/src/linker/component_factory.js +1 -1
  57. package/esm2015/src/linker/component_factory_resolver.js +1 -1
  58. package/esm2015/src/linker/element_ref.js +1 -1
  59. package/esm2015/src/linker/ng_module_factory.js +1 -1
  60. package/esm2015/src/linker/ng_module_factory_loader.js +1 -1
  61. package/esm2015/src/linker/query_list.js +1 -1
  62. package/esm2015/src/linker/system_js_ng_module_factory_loader.js +1 -1
  63. package/esm2015/src/linker/template_ref.js +6 -4
  64. package/esm2015/src/linker/view_container_ref.js +1 -1
  65. package/esm2015/src/linker/view_ref.js +1 -1
  66. package/esm2015/src/linker.js +1 -1
  67. package/esm2015/src/metadata/di.js +1 -1
  68. package/esm2015/src/metadata/directives.js +1 -1
  69. package/esm2015/src/metadata/lifecycle_hooks.js +1 -1
  70. package/esm2015/src/metadata/ng_module.js +1 -1
  71. package/esm2015/src/metadata/resource_loading.js +1 -1
  72. package/esm2015/src/metadata/view.js +1 -1
  73. package/esm2015/src/metadata.js +1 -1
  74. package/esm2015/src/platform_core_providers.js +1 -1
  75. package/esm2015/src/profile/profile.js +1 -1
  76. package/esm2015/src/profile/wtf_impl.js +1 -1
  77. package/esm2015/src/r3_symbols.js +1 -1
  78. package/esm2015/src/reflection/platform_reflection_capabilities.js +1 -1
  79. package/esm2015/src/reflection/reflection.js +1 -1
  80. package/esm2015/src/reflection/reflection_capabilities.js +1 -1
  81. package/esm2015/src/reflection/reflector.js +1 -1
  82. package/esm2015/src/reflection/types.js +1 -1
  83. package/esm2015/src/render/api.js +1 -1
  84. package/esm2015/src/render.js +1 -1
  85. package/esm2015/src/render3/assert.js +1 -1
  86. package/esm2015/src/render3/bindings.js +3 -3
  87. package/esm2015/src/render3/component.js +8 -6
  88. package/esm2015/src/render3/component_ref.js +5 -5
  89. package/esm2015/src/render3/context_discovery.js +2 -2
  90. package/esm2015/src/render3/definition.js +3 -10
  91. package/esm2015/src/render3/di.js +107 -93
  92. package/esm2015/src/render3/di_setup.js +1 -1
  93. package/esm2015/src/render3/discovery_utils.js +5 -5
  94. package/esm2015/src/render3/empty.js +28 -0
  95. package/esm2015/src/render3/errors.js +1 -1
  96. package/esm2015/src/render3/features/inherit_definition_feature.js +3 -3
  97. package/esm2015/src/render3/features/ng_onchanges_feature.js +1 -1
  98. package/esm2015/src/render3/features/providers_feature.js +1 -1
  99. package/esm2015/src/render3/fields.js +1 -1
  100. package/esm2015/src/render3/global_utils.js +1 -1
  101. package/esm2015/src/render3/global_utils_api.js +1 -1
  102. package/esm2015/src/render3/hooks.js +14 -12
  103. package/esm2015/src/render3/i18n.js +3 -3
  104. package/esm2015/src/render3/index.js +2 -2
  105. package/esm2015/src/render3/instructions.js +319 -370
  106. package/esm2015/src/render3/interfaces/container.js +10 -1
  107. package/esm2015/src/render3/interfaces/context.js +1 -1
  108. package/esm2015/src/render3/interfaces/definition.js +1 -6
  109. package/esm2015/src/render3/interfaces/i18n.js +1 -1
  110. package/esm2015/src/render3/interfaces/injector.js +1 -2
  111. package/esm2015/src/render3/interfaces/node.js +37 -2
  112. package/esm2015/src/render3/interfaces/player.js +1 -1
  113. package/esm2015/src/render3/interfaces/projection.js +1 -1
  114. package/esm2015/src/render3/interfaces/query.js +1 -1
  115. package/esm2015/src/render3/interfaces/renderer.js +1 -1
  116. package/esm2015/src/render3/interfaces/sanitization.js +1 -1
  117. package/esm2015/src/render3/interfaces/styling.js +304 -113
  118. package/esm2015/src/render3/interfaces/view.js +15 -7
  119. package/esm2015/src/render3/jit/compiler_facade.js +1 -1
  120. package/esm2015/src/render3/jit/compiler_facade_interface.js +3 -1
  121. package/esm2015/src/render3/jit/directive.js +6 -7
  122. package/esm2015/src/render3/jit/environment.js +3 -1
  123. package/esm2015/src/render3/jit/injectable.js +1 -1
  124. package/esm2015/src/render3/jit/module.js +11 -9
  125. package/esm2015/src/render3/jit/pipe.js +1 -1
  126. package/esm2015/src/render3/jit/util.js +1 -1
  127. package/esm2015/src/render3/metadata.js +1 -1
  128. package/esm2015/src/render3/ng_dev_mode.js +1 -1
  129. package/esm2015/src/render3/ng_module_ref.js +1 -1
  130. package/esm2015/src/render3/node_assert.js +1 -1
  131. package/esm2015/src/render3/node_manipulation.js +5 -22
  132. package/esm2015/src/render3/node_selector_matcher.js +3 -3
  133. package/esm2015/src/render3/pipe.js +2 -2
  134. package/esm2015/src/render3/players.js +1 -1
  135. package/esm2015/src/render3/pure_function.js +3 -3
  136. package/esm2015/src/render3/query.js +3 -3
  137. package/esm2015/src/render3/state.js +14 -20
  138. package/esm2015/src/render3/styling/class_and_style_bindings.js +893 -213
  139. package/esm2015/src/render3/styling/core_player_handler.js +1 -1
  140. package/esm2015/src/render3/styling/player_factory.js +1 -1
  141. package/esm2015/src/render3/styling/util.js +37 -14
  142. package/esm2015/src/render3/tokens.js +1 -1
  143. package/esm2015/src/render3/util.js +21 -5
  144. package/esm2015/src/render3/view_engine_compatibility.js +5 -6
  145. package/esm2015/src/render3/view_engine_compatibility_prebound.js +1 -1
  146. package/esm2015/src/render3/view_ref.js +6 -16
  147. package/esm2015/src/sanitization/bypass.js +1 -1
  148. package/esm2015/src/sanitization/html_sanitizer.js +2 -2
  149. package/esm2015/src/sanitization/inert_body.js +4 -4
  150. package/esm2015/src/sanitization/sanitization.js +1 -1
  151. package/esm2015/src/sanitization/security.js +1 -1
  152. package/esm2015/src/sanitization/style_sanitizer.js +1 -1
  153. package/esm2015/src/sanitization/url_sanitizer.js +1 -1
  154. package/esm2015/src/testability/testability.js +1 -1
  155. package/esm2015/src/type.js +1 -1
  156. package/esm2015/src/util/decorators.js +1 -1
  157. package/esm2015/src/util/lang.js +1 -1
  158. package/esm2015/src/util/ng_reflect.js +1 -1
  159. package/esm2015/src/util/noop.js +1 -1
  160. package/esm2015/src/util/property.js +1 -1
  161. package/esm2015/src/util.js +1 -1
  162. package/esm2015/src/version.js +2 -2
  163. package/esm2015/src/view/element.js +1 -1
  164. package/esm2015/src/view/entrypoint.js +1 -1
  165. package/esm2015/src/view/errors.js +1 -1
  166. package/esm2015/src/view/index.js +1 -1
  167. package/esm2015/src/view/ng_content.js +1 -1
  168. package/esm2015/src/view/ng_module.js +1 -1
  169. package/esm2015/src/view/provider.js +1 -1
  170. package/esm2015/src/view/pure_expression.js +1 -1
  171. package/esm2015/src/view/query.js +1 -1
  172. package/esm2015/src/view/refs.js +1 -1
  173. package/esm2015/src/view/services.js +1 -1
  174. package/esm2015/src/view/text.js +1 -1
  175. package/esm2015/src/view/types.js +1 -1
  176. package/esm2015/src/view/util.js +1 -1
  177. package/esm2015/src/view/view.js +1 -1
  178. package/esm2015/src/view/view_attach.js +1 -1
  179. package/esm2015/src/zone/ng_zone.js +1 -1
  180. package/esm2015/src/zone.js +1 -1
  181. package/esm2015/testing/index.js +1 -1
  182. package/esm2015/testing/public_api.js +1 -1
  183. package/esm2015/testing/src/async.js +1 -1
  184. package/esm2015/testing/src/async_fallback.js +1 -1
  185. package/esm2015/testing/src/async_test_completer.js +1 -1
  186. package/esm2015/testing/src/before_each.js +1 -1
  187. package/esm2015/testing/src/component_fixture.js +1 -1
  188. package/esm2015/testing/src/fake_async.js +1 -1
  189. package/esm2015/testing/src/fake_async_fallback.js +1 -1
  190. package/esm2015/testing/src/lang_utils.js +1 -1
  191. package/esm2015/testing/src/logger.js +1 -1
  192. package/esm2015/testing/src/metadata_override.js +1 -1
  193. package/esm2015/testing/src/metadata_overrider.js +1 -1
  194. package/esm2015/testing/src/ng_zone_mock.js +1 -1
  195. package/esm2015/testing/src/private_export_testing.js +1 -1
  196. package/esm2015/testing/src/r3_test_bed.js +234 -152
  197. package/esm2015/testing/src/resolvers.js +12 -5
  198. package/esm2015/testing/src/test_bed.js +1 -1
  199. package/esm2015/testing/src/test_bed_common.js +1 -1
  200. package/esm2015/testing/src/test_compiler.js +1 -1
  201. package/esm2015/testing/src/testing.js +1 -1
  202. package/esm2015/testing/src/testing_internal.js +2 -2
  203. package/esm2015/testing/testing.js +1 -1
  204. package/esm5/core.js +1 -1
  205. package/esm5/index.js +1 -1
  206. package/esm5/public_api.js +1 -1
  207. package/esm5/src/application_init.js +1 -1
  208. package/esm5/src/application_module.js +1 -1
  209. package/esm5/src/application_ref.js +1 -1
  210. package/esm5/src/application_tokens.js +1 -1
  211. package/esm5/src/change_detection/change_detection.js +1 -1
  212. package/esm5/src/change_detection/change_detection_util.js +1 -1
  213. package/esm5/src/change_detection/change_detector_ref.js +1 -1
  214. package/esm5/src/change_detection/constants.js +3 -3
  215. package/esm5/src/change_detection/differs/default_iterable_differ.js +1 -1
  216. package/esm5/src/change_detection/differs/default_keyvalue_differ.js +1 -1
  217. package/esm5/src/change_detection/differs/iterable_differs.js +1 -1
  218. package/esm5/src/change_detection/differs/keyvalue_differs.js +1 -1
  219. package/esm5/src/change_detection/pipe_transform.js +1 -1
  220. package/esm5/src/change_detection.js +1 -1
  221. package/esm5/src/codegen_private_exports.js +1 -1
  222. package/esm5/src/console.js +1 -1
  223. package/esm5/src/core.js +1 -1
  224. package/esm5/src/core_private_export.js +1 -1
  225. package/esm5/src/core_render3_private_export.js +2 -2
  226. package/esm5/src/debug/debug_node.js +6 -6
  227. package/esm5/src/di/defs.js +1 -1
  228. package/esm5/src/di/forward_ref.js +1 -1
  229. package/esm5/src/di/injectable.js +1 -1
  230. package/esm5/src/di/injection_token.js +2 -2
  231. package/esm5/src/di/injector.js +1 -1
  232. package/esm5/src/di/injector_compatibility.js +1 -1
  233. package/esm5/src/di/metadata.js +1 -1
  234. package/esm5/src/di/provider.js +1 -1
  235. package/esm5/src/di/r3_injector.js +1 -1
  236. package/esm5/src/di/reflective_errors.js +1 -1
  237. package/esm5/src/di/reflective_injector.js +1 -1
  238. package/esm5/src/di/reflective_key.js +1 -1
  239. package/esm5/src/di/reflective_provider.js +1 -1
  240. package/esm5/src/di/scope.js +1 -1
  241. package/esm5/src/di/util.js +1 -1
  242. package/esm5/src/di.js +1 -1
  243. package/esm5/src/error_handler.js +1 -1
  244. package/esm5/src/errors.js +1 -1
  245. package/esm5/src/event_emitter.js +1 -1
  246. package/esm5/src/i18n/tokens.js +1 -1
  247. package/esm5/src/is_dev_mode.js +1 -1
  248. package/esm5/src/ivy_switch.js +1 -1
  249. package/esm5/src/linker/compiler.js +1 -1
  250. package/esm5/src/linker/component_factory.js +1 -1
  251. package/esm5/src/linker/component_factory_resolver.js +1 -1
  252. package/esm5/src/linker/element_ref.js +1 -1
  253. package/esm5/src/linker/ng_module_factory.js +1 -1
  254. package/esm5/src/linker/ng_module_factory_loader.js +1 -1
  255. package/esm5/src/linker/query_list.js +1 -1
  256. package/esm5/src/linker/system_js_ng_module_factory_loader.js +1 -1
  257. package/esm5/src/linker/template_ref.js +1 -1
  258. package/esm5/src/linker/view_container_ref.js +1 -1
  259. package/esm5/src/linker/view_ref.js +1 -1
  260. package/esm5/src/linker.js +1 -1
  261. package/esm5/src/metadata/di.js +1 -1
  262. package/esm5/src/metadata/directives.js +1 -1
  263. package/esm5/src/metadata/lifecycle_hooks.js +1 -1
  264. package/esm5/src/metadata/ng_module.js +1 -1
  265. package/esm5/src/metadata/resource_loading.js +1 -1
  266. package/esm5/src/metadata/view.js +1 -1
  267. package/esm5/src/metadata.js +1 -1
  268. package/esm5/src/platform_core_providers.js +1 -1
  269. package/esm5/src/profile/profile.js +1 -1
  270. package/esm5/src/profile/wtf_impl.js +1 -1
  271. package/esm5/src/r3_symbols.js +1 -1
  272. package/esm5/src/reflection/platform_reflection_capabilities.js +1 -1
  273. package/esm5/src/reflection/reflection.js +1 -1
  274. package/esm5/src/reflection/reflection_capabilities.js +1 -1
  275. package/esm5/src/reflection/reflector.js +1 -1
  276. package/esm5/src/reflection/types.js +1 -1
  277. package/esm5/src/render/api.js +1 -1
  278. package/esm5/src/render.js +1 -1
  279. package/esm5/src/render3/assert.js +1 -1
  280. package/esm5/src/render3/bindings.js +3 -3
  281. package/esm5/src/render3/component.js +8 -6
  282. package/esm5/src/render3/component_ref.js +5 -5
  283. package/esm5/src/render3/context_discovery.js +2 -2
  284. package/esm5/src/render3/definition.js +3 -8
  285. package/esm5/src/render3/di.js +94 -84
  286. package/esm5/src/render3/di_setup.js +1 -1
  287. package/esm5/src/render3/discovery_utils.js +5 -5
  288. package/esm5/src/render3/empty.js +22 -0
  289. package/esm5/src/render3/errors.js +1 -1
  290. package/esm5/src/render3/features/inherit_definition_feature.js +3 -3
  291. package/esm5/src/render3/features/ng_onchanges_feature.js +1 -1
  292. package/esm5/src/render3/features/providers_feature.js +1 -1
  293. package/esm5/src/render3/fields.js +1 -1
  294. package/esm5/src/render3/global_utils.js +1 -1
  295. package/esm5/src/render3/global_utils_api.js +1 -1
  296. package/esm5/src/render3/hooks.js +11 -9
  297. package/esm5/src/render3/i18n.js +3 -3
  298. package/esm5/src/render3/index.js +2 -2
  299. package/esm5/src/render3/instructions.js +282 -282
  300. package/esm5/src/render3/interfaces/container.js +9 -1
  301. package/esm5/src/render3/interfaces/context.js +1 -1
  302. package/esm5/src/render3/interfaces/definition.js +1 -1
  303. package/esm5/src/render3/interfaces/i18n.js +1 -1
  304. package/esm5/src/render3/interfaces/injector.js +1 -1
  305. package/esm5/src/render3/interfaces/node.js +1 -1
  306. package/esm5/src/render3/interfaces/player.js +1 -1
  307. package/esm5/src/render3/interfaces/projection.js +1 -1
  308. package/esm5/src/render3/interfaces/query.js +1 -1
  309. package/esm5/src/render3/interfaces/renderer.js +1 -1
  310. package/esm5/src/render3/interfaces/sanitization.js +1 -1
  311. package/esm5/src/render3/interfaces/styling.js +1 -1
  312. package/esm5/src/render3/interfaces/view.js +1 -1
  313. package/esm5/src/render3/jit/compiler_facade.js +1 -1
  314. package/esm5/src/render3/jit/compiler_facade_interface.js +1 -1
  315. package/esm5/src/render3/jit/directive.js +6 -6
  316. package/esm5/src/render3/jit/environment.js +3 -1
  317. package/esm5/src/render3/jit/injectable.js +1 -1
  318. package/esm5/src/render3/jit/module.js +10 -8
  319. package/esm5/src/render3/jit/pipe.js +1 -1
  320. package/esm5/src/render3/jit/util.js +1 -1
  321. package/esm5/src/render3/metadata.js +1 -1
  322. package/esm5/src/render3/ng_dev_mode.js +1 -1
  323. package/esm5/src/render3/ng_module_ref.js +1 -1
  324. package/esm5/src/render3/node_assert.js +1 -1
  325. package/esm5/src/render3/node_manipulation.js +5 -21
  326. package/esm5/src/render3/node_selector_matcher.js +3 -3
  327. package/esm5/src/render3/pipe.js +2 -2
  328. package/esm5/src/render3/players.js +1 -1
  329. package/esm5/src/render3/pure_function.js +3 -3
  330. package/esm5/src/render3/query.js +3 -3
  331. package/esm5/src/render3/state.js +14 -19
  332. package/esm5/src/render3/styling/class_and_style_bindings.js +681 -210
  333. package/esm5/src/render3/styling/core_player_handler.js +1 -1
  334. package/esm5/src/render3/styling/player_factory.js +1 -1
  335. package/esm5/src/render3/styling/util.js +26 -13
  336. package/esm5/src/render3/tokens.js +1 -1
  337. package/esm5/src/render3/util.js +20 -5
  338. package/esm5/src/render3/view_engine_compatibility.js +5 -6
  339. package/esm5/src/render3/view_engine_compatibility_prebound.js +1 -1
  340. package/esm5/src/render3/view_ref.js +6 -15
  341. package/esm5/src/sanitization/bypass.js +1 -1
  342. package/esm5/src/sanitization/html_sanitizer.js +2 -2
  343. package/esm5/src/sanitization/inert_body.js +4 -4
  344. package/esm5/src/sanitization/sanitization.js +1 -1
  345. package/esm5/src/sanitization/security.js +1 -1
  346. package/esm5/src/sanitization/style_sanitizer.js +1 -1
  347. package/esm5/src/sanitization/url_sanitizer.js +1 -1
  348. package/esm5/src/testability/testability.js +1 -1
  349. package/esm5/src/type.js +1 -1
  350. package/esm5/src/util/decorators.js +1 -1
  351. package/esm5/src/util/lang.js +1 -1
  352. package/esm5/src/util/ng_reflect.js +1 -1
  353. package/esm5/src/util/noop.js +1 -1
  354. package/esm5/src/util/property.js +1 -1
  355. package/esm5/src/util.js +1 -1
  356. package/esm5/src/version.js +2 -2
  357. package/esm5/src/view/element.js +1 -1
  358. package/esm5/src/view/entrypoint.js +1 -1
  359. package/esm5/src/view/errors.js +1 -1
  360. package/esm5/src/view/index.js +1 -1
  361. package/esm5/src/view/ng_content.js +1 -1
  362. package/esm5/src/view/ng_module.js +1 -1
  363. package/esm5/src/view/provider.js +1 -1
  364. package/esm5/src/view/pure_expression.js +1 -1
  365. package/esm5/src/view/query.js +1 -1
  366. package/esm5/src/view/refs.js +1 -1
  367. package/esm5/src/view/services.js +1 -1
  368. package/esm5/src/view/text.js +1 -1
  369. package/esm5/src/view/types.js +1 -1
  370. package/esm5/src/view/util.js +1 -1
  371. package/esm5/src/view/view.js +1 -1
  372. package/esm5/src/view/view_attach.js +1 -1
  373. package/esm5/src/zone/ng_zone.js +1 -1
  374. package/esm5/src/zone.js +1 -1
  375. package/esm5/testing/index.js +1 -1
  376. package/esm5/testing/public_api.js +1 -1
  377. package/esm5/testing/src/async.js +1 -1
  378. package/esm5/testing/src/async_fallback.js +1 -1
  379. package/esm5/testing/src/async_test_completer.js +1 -1
  380. package/esm5/testing/src/before_each.js +1 -1
  381. package/esm5/testing/src/component_fixture.js +1 -1
  382. package/esm5/testing/src/fake_async.js +1 -1
  383. package/esm5/testing/src/fake_async_fallback.js +1 -1
  384. package/esm5/testing/src/lang_utils.js +1 -1
  385. package/esm5/testing/src/logger.js +1 -1
  386. package/esm5/testing/src/metadata_override.js +1 -1
  387. package/esm5/testing/src/metadata_overrider.js +1 -1
  388. package/esm5/testing/src/ng_zone_mock.js +1 -1
  389. package/esm5/testing/src/private_export_testing.js +1 -1
  390. package/esm5/testing/src/r3_test_bed.js +174 -127
  391. package/esm5/testing/src/resolvers.js +11 -6
  392. package/esm5/testing/src/test_bed.js +1 -1
  393. package/esm5/testing/src/test_bed_common.js +1 -1
  394. package/esm5/testing/src/test_compiler.js +1 -1
  395. package/esm5/testing/src/testing.js +1 -1
  396. package/esm5/testing/src/testing_internal.js +2 -2
  397. package/esm5/testing/testing.js +1 -1
  398. package/fesm2015/core.js +2306 -1733
  399. package/fesm2015/core.js.map +1 -1
  400. package/fesm2015/testing.js +223 -150
  401. package/fesm2015/testing.js.map +1 -1
  402. package/fesm5/core.js +1781 -1335
  403. package/fesm5/core.js.map +1 -1
  404. package/fesm5/testing.js +181 -130
  405. package/fesm5/testing.js.map +1 -1
  406. package/package.json +1 -1
  407. package/src/change_detection/constants.d.ts +2 -2
  408. package/src/core_render3_private_export.d.ts +1 -1
  409. package/src/di/injection_token.d.ts +1 -1
  410. package/src/event_emitter.d.ts +2 -2
  411. package/src/linker/template_ref.d.ts +5 -3
  412. package/src/metadata/di.d.ts +1 -3
  413. package/src/metadata/directives.d.ts +3 -3
  414. package/src/render3/definition.d.ts +2 -4
  415. package/src/render3/di.d.ts +4 -3
  416. package/src/render3/empty.d.ts +16 -0
  417. package/src/render3/hooks.d.ts +3 -3
  418. package/src/render3/index.d.ts +1 -1
  419. package/src/render3/instructions.d.ts +117 -72
  420. package/src/render3/interfaces/container.d.ts +1 -0
  421. package/src/render3/interfaces/definition.d.ts +0 -3
  422. package/src/render3/interfaces/injector.d.ts +0 -1
  423. package/src/render3/interfaces/node.d.ts +37 -2
  424. package/src/render3/interfaces/styling.d.ts +392 -117
  425. package/src/render3/interfaces/view.d.ts +14 -6
  426. package/src/render3/jit/compiler_facade_interface.d.ts +2 -0
  427. package/src/render3/node_manipulation.d.ts +0 -7
  428. package/src/render3/state.d.ts +3 -4
  429. package/src/render3/styling/class_and_style_bindings.d.ts +114 -43
  430. package/src/render3/styling/util.d.ts +5 -2
  431. package/src/render3/util.d.ts +7 -0
  432. package/testing/src/r3_test_bed.d.ts +15 -0
  433. package/testing/testing.metadata.json +1 -1
  434. package/testing.d.ts +2 -3
@@ -106,34 +106,36 @@ function queueDestroyHooks(def, tView, i) {
106
106
  *
107
107
  * @param {?} currentView The current view
108
108
  * @param {?} tView
109
- * @param {?} creationMode
109
+ * @param {?} checkNoChangesMode
110
110
  * @return {?}
111
111
  */
112
- export function executeInitHooks(currentView, tView, creationMode) {
113
- if (currentView[FLAGS] & 16 /* RunInit */) {
114
- executeHooks(currentView, tView.initHooks, tView.checkHooks, creationMode);
115
- currentView[FLAGS] &= ~16 /* RunInit */;
112
+ export function executeInitHooks(currentView, tView, checkNoChangesMode) {
113
+ if (!checkNoChangesMode && currentView[FLAGS] & 32 /* RunInit */) {
114
+ executeHooks(currentView, tView.initHooks, tView.checkHooks, checkNoChangesMode);
115
+ currentView[FLAGS] &= ~32 /* RunInit */;
116
116
  }
117
117
  }
118
118
  /**
119
119
  * Iterates over afterViewInit and afterViewChecked functions and calls them.
120
120
  *
121
- * @param {?} data
121
+ * @param {?} currentView The current view
122
122
  * @param {?} allHooks
123
123
  * @param {?} checkHooks
124
- * @param {?} creationMode
124
+ * @param {?} checkNoChangesMode
125
125
  * @return {?}
126
126
  */
127
- export function executeHooks(data, allHooks, checkHooks, creationMode) {
127
+ export function executeHooks(currentView, allHooks, checkHooks, checkNoChangesMode) {
128
+ if (checkNoChangesMode)
129
+ return;
128
130
  /** @type {?} */
129
- const hooksToCall = creationMode ? allHooks : checkHooks;
131
+ const hooksToCall = currentView[FLAGS] & 2 /* FirstLViewPass */ ? allHooks : checkHooks;
130
132
  if (hooksToCall) {
131
- callHooks(data, hooksToCall);
133
+ callHooks(currentView, hooksToCall);
132
134
  }
133
135
  }
134
136
  /**
135
137
  * Calls lifecycle hooks with their contexts, skipping init hooks if it's not
136
- * creation mode.
138
+ * the first LView pass.
137
139
  *
138
140
  * @param {?} currentView The current view
139
141
  * @param {?} arr The array in which the hooks are found
@@ -144,4 +146,4 @@ export function callHooks(currentView, arr) {
144
146
  ((/** @type {?} */ (arr[i + 1]))).call(currentView[(/** @type {?} */ (arr[i]))]);
145
147
  }
146
148
  }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUdyQyxPQUFPLEVBQUMsS0FBSyxFQUFxQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFnQjVFLE1BQU0sVUFBVSxjQUFjLENBQzFCLEtBQWEsRUFBRSxNQUEyQixFQUFFLE9BQTRCLEVBQUUsS0FBWTtJQUN4RixTQUFTO1FBQ0wsV0FBVyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsOENBQThDLENBQUMsQ0FBQztJQUMvRixJQUFJLE1BQU0sRUFBRTtRQUNWLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ2pFO0lBRUQsSUFBSSxPQUFPLEVBQUU7UUFDWCxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNwRTtBQUNILENBQUM7Ozs7Ozs7O0FBTUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQVksRUFBRSxLQUFZO0lBQzVELElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO1FBQzNCLDJGQUEyRjtRQUMzRix5RkFBeUY7UUFDekYscUZBQXFGO1FBQ3JGLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztrQkFDbkUsR0FBRyxHQUFHLG1CQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQXFCO1lBQzlDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUIsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQztLQUNGO0FBQ0gsQ0FBQzs7Ozs7Ozs7QUFHRCxTQUFTLGlCQUFpQixDQUFDLEdBQXNCLEVBQUUsS0FBWSxFQUFFLENBQVM7SUFDeEUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEIsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDakY7SUFFRCxJQUFJLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTtRQUMzQixDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDOUY7QUFDSCxDQUFDOzs7Ozs7OztBQUdELFNBQVMsY0FBYyxDQUFDLEdBQXNCLEVBQUUsS0FBWSxFQUFFLENBQVM7SUFDckUsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFO1FBQ3JCLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUN4RTtJQUVELElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFO1FBQ3hCLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFFLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3JGO0FBQ0gsQ0FBQzs7Ozs7Ozs7QUFHRCxTQUFTLGlCQUFpQixDQUFDLEdBQXNCLEVBQUUsS0FBWSxFQUFFLENBQVM7SUFDeEUsSUFBSSxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtRQUN6QixDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDMUU7QUFDSCxDQUFDOzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsV0FBa0IsRUFBRSxLQUFZLEVBQUUsWUFBcUI7SUFDdEYsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLG1CQUFxQixFQUFFO1FBQzNDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNFLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBbUIsQ0FBQztLQUMzQztBQUNILENBQUM7Ozs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixJQUFXLEVBQUUsUUFBeUIsRUFBRSxVQUEyQixFQUNuRSxZQUFxQjs7VUFDakIsV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVO0lBQ3hELElBQUksV0FBVyxFQUFFO1FBQ2YsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztLQUM5QjtBQUNILENBQUM7Ozs7Ozs7OztBQVNELE1BQU0sVUFBVSxTQUFTLENBQUMsV0FBa0IsRUFBRSxHQUFhO0lBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEMsQ0FBQyxtQkFBQSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBVSxDQUFDLENBQUMsQ0FBQztLQUMvRDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7YXNzZXJ0RXF1YWx9IGZyb20gJy4vYXNzZXJ0JztcbmltcG9ydCB7RGlyZWN0aXZlRGVmfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5pbXBvcnQge1ROb2RlfSBmcm9tICcuL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQge0ZMQUdTLCBIb29rRGF0YSwgTFZpZXcsIExWaWV3RmxhZ3MsIFRWaWV3fSBmcm9tICcuL2ludGVyZmFjZXMvdmlldyc7XG5cblxuXG4vKipcbiAqIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRlbXBsYXRlIHBhc3MsIGFueSBuZ09uSW5pdCBvciBuZ0RvQ2hlY2sgaG9va3Mgd2lsbCBiZSBxdWV1ZWQgaW50b1xuICogVFZpZXcuaW5pdEhvb2tzIGR1cmluZyBkaXJlY3RpdmVDcmVhdGUuXG4gKlxuICogVGhlIGRpcmVjdGl2ZSBpbmRleCBhbmQgaG9vayB0eXBlIGFyZSBlbmNvZGVkIGludG8gb25lIG51bWJlciAoMXN0IGJpdDogdHlwZSwgcmVtYWluaW5nIGJpdHM6XG4gKiBkaXJlY3RpdmUgaW5kZXgpLCB0aGVuIHNhdmVkIGluIHRoZSBldmVuIGluZGljZXMgb2YgdGhlIGluaXRIb29rcyBhcnJheS4gVGhlIG9kZCBpbmRpY2VzXG4gKiBob2xkIHRoZSBob29rIGZ1bmN0aW9ucyB0aGVtc2VsdmVzLlxuICpcbiAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGRpcmVjdGl2ZSBpbiBMVmlld1xuICogQHBhcmFtIGhvb2tzIFRoZSBzdGF0aWMgaG9va3MgbWFwIG9uIHRoZSBkaXJlY3RpdmUgZGVmXG4gKiBAcGFyYW0gdFZpZXcgVGhlIGN1cnJlbnQgVFZpZXdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHF1ZXVlSW5pdEhvb2tzKFxuICAgIGluZGV4OiBudW1iZXIsIG9uSW5pdDogKCgpID0+IHZvaWQpIHwgbnVsbCwgZG9DaGVjazogKCgpID0+IHZvaWQpIHwgbnVsbCwgdFZpZXc6IFRWaWV3KTogdm9pZCB7XG4gIG5nRGV2TW9kZSAmJlxuICAgICAgYXNzZXJ0RXF1YWwodFZpZXcuZmlyc3RUZW1wbGF0ZVBhc3MsIHRydWUsICdTaG91bGQgb25seSBiZSBjYWxsZWQgb24gZmlyc3QgdGVtcGxhdGUgcGFzcycpO1xuICBpZiAob25Jbml0KSB7XG4gICAgKHRWaWV3LmluaXRIb29rcyB8fCAodFZpZXcuaW5pdEhvb2tzID0gW10pKS5wdXNoKGluZGV4LCBvbkluaXQpO1xuICB9XG5cbiAgaWYgKGRvQ2hlY2spIHtcbiAgICAodFZpZXcuaW5pdEhvb2tzIHx8ICh0Vmlldy5pbml0SG9va3MgPSBbXSkpLnB1c2goaW5kZXgsIGRvQ2hlY2spO1xuICAgICh0Vmlldy5jaGVja0hvb2tzIHx8ICh0Vmlldy5jaGVja0hvb2tzID0gW10pKS5wdXNoKGluZGV4LCBkb0NoZWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIExvb3BzIHRocm91Z2ggdGhlIGRpcmVjdGl2ZXMgb24gYSBub2RlIGFuZCBxdWV1ZXMgYWxsIHRoZWlyIGhvb2tzIGV4Y2VwdCBuZ09uSW5pdFxuICogYW5kIG5nRG9DaGVjaywgd2hpY2ggYXJlIHF1ZXVlZCBzZXBhcmF0ZWx5IGluIGRpcmVjdGl2ZUNyZWF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHF1ZXVlTGlmZWN5Y2xlSG9va3ModFZpZXc6IFRWaWV3LCB0Tm9kZTogVE5vZGUpOiB2b2lkIHtcbiAgaWYgKHRWaWV3LmZpcnN0VGVtcGxhdGVQYXNzKSB7XG4gICAgLy8gSXQncyBuZWNlc3NhcnkgdG8gbG9vcCB0aHJvdWdoIHRoZSBkaXJlY3RpdmVzIGF0IGVsZW1lbnRFbmQoKSAocmF0aGVyIHRoYW4gcHJvY2Vzc2luZyBpblxuICAgIC8vIGRpcmVjdGl2ZUNyZWF0ZSkgc28gd2UgY2FuIHByZXNlcnZlIHRoZSBjdXJyZW50IGhvb2sgb3JkZXIuIENvbnRlbnQsIHZpZXcsIGFuZCBkZXN0cm95XG4gICAgLy8gaG9va3MgZm9yIHByb2plY3RlZCBjb21wb25lbnRzIGFuZCBkaXJlY3RpdmVzIG11c3QgYmUgY2FsbGVkICpiZWZvcmUqIHRoZWlyIGhvc3RzLlxuICAgIGZvciAobGV0IGkgPSB0Tm9kZS5kaXJlY3RpdmVTdGFydCwgZW5kID0gdE5vZGUuZGlyZWN0aXZlRW5kOyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIGNvbnN0IGRlZiA9IHRWaWV3LmRhdGFbaV0gYXMgRGlyZWN0aXZlRGVmPGFueT47XG4gICAgICBxdWV1ZUNvbnRlbnRIb29rcyhkZWYsIHRWaWV3LCBpKTtcbiAgICAgIHF1ZXVlVmlld0hvb2tzKGRlZiwgdFZpZXcsIGkpO1xuICAgICAgcXVldWVEZXN0cm95SG9va3MoZGVmLCB0VmlldywgaSk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBRdWV1ZXMgYWZ0ZXJDb250ZW50SW5pdCBhbmQgYWZ0ZXJDb250ZW50Q2hlY2tlZCBob29rcyBvbiBUVmlldyAqL1xuZnVuY3Rpb24gcXVldWVDb250ZW50SG9va3MoZGVmOiBEaXJlY3RpdmVEZWY8YW55PiwgdFZpZXc6IFRWaWV3LCBpOiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKGRlZi5hZnRlckNvbnRlbnRJbml0KSB7XG4gICAgKHRWaWV3LmNvbnRlbnRIb29rcyB8fCAodFZpZXcuY29udGVudEhvb2tzID0gW10pKS5wdXNoKGksIGRlZi5hZnRlckNvbnRlbnRJbml0KTtcbiAgfVxuXG4gIGlmIChkZWYuYWZ0ZXJDb250ZW50Q2hlY2tlZCkge1xuICAgICh0Vmlldy5jb250ZW50SG9va3MgfHwgKHRWaWV3LmNvbnRlbnRIb29rcyA9IFtdKSkucHVzaChpLCBkZWYuYWZ0ZXJDb250ZW50Q2hlY2tlZCk7XG4gICAgKHRWaWV3LmNvbnRlbnRDaGVja0hvb2tzIHx8ICh0Vmlldy5jb250ZW50Q2hlY2tIb29rcyA9IFtdKSkucHVzaChpLCBkZWYuYWZ0ZXJDb250ZW50Q2hlY2tlZCk7XG4gIH1cbn1cblxuLyoqIFF1ZXVlcyBhZnRlclZpZXdJbml0IGFuZCBhZnRlclZpZXdDaGVja2VkIGhvb2tzIG9uIFRWaWV3ICovXG5mdW5jdGlvbiBxdWV1ZVZpZXdIb29rcyhkZWY6IERpcmVjdGl2ZURlZjxhbnk+LCB0VmlldzogVFZpZXcsIGk6IG51bWJlcik6IHZvaWQge1xuICBpZiAoZGVmLmFmdGVyVmlld0luaXQpIHtcbiAgICAodFZpZXcudmlld0hvb2tzIHx8ICh0Vmlldy52aWV3SG9va3MgPSBbXSkpLnB1c2goaSwgZGVmLmFmdGVyVmlld0luaXQpO1xuICB9XG5cbiAgaWYgKGRlZi5hZnRlclZpZXdDaGVja2VkKSB7XG4gICAgKHRWaWV3LnZpZXdIb29rcyB8fCAodFZpZXcudmlld0hvb2tzID0gW10pKS5wdXNoKGksIGRlZi5hZnRlclZpZXdDaGVja2VkKTtcbiAgICAodFZpZXcudmlld0NoZWNrSG9va3MgfHwgKHRWaWV3LnZpZXdDaGVja0hvb2tzID0gW10pKS5wdXNoKGksIGRlZi5hZnRlclZpZXdDaGVja2VkKTtcbiAgfVxufVxuXG4vKiogUXVldWVzIG9uRGVzdHJveSBob29rcyBvbiBUVmlldyAqL1xuZnVuY3Rpb24gcXVldWVEZXN0cm95SG9va3MoZGVmOiBEaXJlY3RpdmVEZWY8YW55PiwgdFZpZXc6IFRWaWV3LCBpOiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKGRlZi5vbkRlc3Ryb3kgIT0gbnVsbCkge1xuICAgICh0Vmlldy5kZXN0cm95SG9va3MgfHwgKHRWaWV3LmRlc3Ryb3lIb29rcyA9IFtdKSkucHVzaChpLCBkZWYub25EZXN0cm95KTtcbiAgfVxufVxuXG4vKipcbiAqIENhbGxzIG9uSW5pdCBhbmQgZG9DaGVjayBjYWxscyBpZiB0aGV5IGhhdmVuJ3QgYWxyZWFkeSBiZWVuIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gY3VycmVudFZpZXcgVGhlIGN1cnJlbnQgdmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUluaXRIb29rcyhjdXJyZW50VmlldzogTFZpZXcsIHRWaWV3OiBUVmlldywgY3JlYXRpb25Nb2RlOiBib29sZWFuKTogdm9pZCB7XG4gIGlmIChjdXJyZW50Vmlld1tGTEFHU10gJiBMVmlld0ZsYWdzLlJ1bkluaXQpIHtcbiAgICBleGVjdXRlSG9va3MoY3VycmVudFZpZXcsIHRWaWV3LmluaXRIb29rcywgdFZpZXcuY2hlY2tIb29rcywgY3JlYXRpb25Nb2RlKTtcbiAgICBjdXJyZW50Vmlld1tGTEFHU10gJj0gfkxWaWV3RmxhZ3MuUnVuSW5pdDtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgYWZ0ZXJWaWV3SW5pdCBhbmQgYWZ0ZXJWaWV3Q2hlY2tlZCBmdW5jdGlvbnMgYW5kIGNhbGxzIHRoZW0uXG4gKlxuICogQHBhcmFtIGN1cnJlbnRWaWV3IFRoZSBjdXJyZW50IHZpZXdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVIb29rcyhcbiAgICBkYXRhOiBMVmlldywgYWxsSG9va3M6IEhvb2tEYXRhIHwgbnVsbCwgY2hlY2tIb29rczogSG9va0RhdGEgfCBudWxsLFxuICAgIGNyZWF0aW9uTW9kZTogYm9vbGVhbik6IHZvaWQge1xuICBjb25zdCBob29rc1RvQ2FsbCA9IGNyZWF0aW9uTW9kZSA/IGFsbEhvb2tzIDogY2hlY2tIb29rcztcbiAgaWYgKGhvb2tzVG9DYWxsKSB7XG4gICAgY2FsbEhvb2tzKGRhdGEsIGhvb2tzVG9DYWxsKTtcbiAgfVxufVxuXG4vKipcbiAqIENhbGxzIGxpZmVjeWNsZSBob29rcyB3aXRoIHRoZWlyIGNvbnRleHRzLCBza2lwcGluZyBpbml0IGhvb2tzIGlmIGl0J3Mgbm90XG4gKiBjcmVhdGlvbiBtb2RlLlxuICpcbiAqIEBwYXJhbSBjdXJyZW50VmlldyBUaGUgY3VycmVudCB2aWV3XG4gKiBAcGFyYW0gYXJyIFRoZSBhcnJheSBpbiB3aGljaCB0aGUgaG9va3MgYXJlIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxsSG9va3MoY3VycmVudFZpZXc6IGFueVtdLCBhcnI6IEhvb2tEYXRhKTogdm9pZCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgKGFycltpICsgMV0gYXMoKSA9PiB2b2lkKS5jYWxsKGN1cnJlbnRWaWV3W2FycltpXSBhcyBudW1iZXJdKTtcbiAgfVxufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUdyQyxPQUFPLEVBQUMsS0FBSyxFQUFxQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFnQjVFLE1BQU0sVUFBVSxjQUFjLENBQzFCLEtBQWEsRUFBRSxNQUEyQixFQUFFLE9BQTRCLEVBQUUsS0FBWTtJQUN4RixTQUFTO1FBQ0wsV0FBVyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsOENBQThDLENBQUMsQ0FBQztJQUMvRixJQUFJLE1BQU0sRUFBRTtRQUNWLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ2pFO0lBRUQsSUFBSSxPQUFPLEVBQUU7UUFDWCxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNwRTtBQUNILENBQUM7Ozs7Ozs7O0FBTUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQVksRUFBRSxLQUFZO0lBQzVELElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO1FBQzNCLDJGQUEyRjtRQUMzRix5RkFBeUY7UUFDekYscUZB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a0IsQ0FBQyxDQUFDO1FBQ2pGLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBbUIsQ0FBQztLQUMzQztBQUNILENBQUM7Ozs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixXQUFrQixFQUFFLFFBQXlCLEVBQUUsVUFBMkIsRUFDMUUsa0JBQTJCO0lBQzdCLElBQUksa0JBQWtCO1FBQUUsT0FBTzs7VUFFekIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMseUJBQTRCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVTtJQUMxRixJQUFJLFdBQVcsRUFBRTtRQUNmLFNBQVMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDckM7QUFDSCxDQUFDOzs7Ozs7Ozs7QUFTRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFdBQWtCLEVBQUUsR0FBYTtJQUN6RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RDLENBQUMsbUJBQUEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2Fzc2VydEVxdWFsfSBmcm9tICcuL2Fzc2VydCc7XG5pbXBvcnQge0RpcmVjdGl2ZURlZn0gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtGTEFHUywgSG9va0RhdGEsIExWaWV3LCBMVmlld0ZsYWdzLCBUVmlld30gZnJvbSAnLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG5cblxuLyoqXG4gKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzLCBhbnkgbmdPbkluaXQgb3IgbmdEb0NoZWNrIGhvb2tzIHdpbGwgYmUgcXVldWVkIGludG9cbiAqIFRWaWV3LmluaXRIb29rcyBkdXJpbmcgZGlyZWN0aXZlQ3JlYXRlLlxuICpcbiAqIFRoZSBkaXJlY3RpdmUgaW5kZXggYW5kIGhvb2sgdHlwZSBhcmUgZW5jb2RlZCBpbnRvIG9uZSBudW1iZXIgKDFzdCBiaXQ6IHR5cGUsIHJlbWFpbmluZyBiaXRzOlxuICogZGlyZWN0aXZlIGluZGV4KSwgdGhlbiBzYXZlZCBpbiB0aGUgZXZlbiBpbmRpY2VzIG9mIHRoZSBpbml0SG9va3MgYXJyYXkuIFRoZSBvZGQgaW5kaWNlc1xuICogaG9sZCB0aGUgaG9vayBmdW5jdGlvbnMgdGhlbXNlbHZlcy5cbiAqXG4gKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBkaXJlY3RpdmUgaW4gTFZpZXdcbiAqIEBwYXJhbSBob29rcyBUaGUgc3RhdGljIGhvb2tzIG1hcCBvbiB0aGUgZGlyZWN0aXZlIGRlZlxuICogQHBhcmFtIHRWaWV3IFRoZSBjdXJyZW50IFRWaWV3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWV1ZUluaXRIb29rcyhcbiAgICBpbmRleDogbnVtYmVyLCBvbkluaXQ6ICgoKSA9PiB2b2lkKSB8IG51bGwsIGRvQ2hlY2s6ICgoKSA9PiB2b2lkKSB8IG51bGwsIHRWaWV3OiBUVmlldyk6IHZvaWQge1xuICBuZ0Rldk1vZGUgJiZcbiAgICAgIGFzc2VydEVxdWFsKHRWaWV3LmZpcnN0VGVtcGxhdGVQYXNzLCB0cnVlLCAnU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGZpcnN0IHRlbXBsYXRlIHBhc3MnKTtcbiAgaWYgKG9uSW5pdCkge1xuICAgICh0Vmlldy5pbml0SG9va3MgfHwgKHRWaWV3LmluaXRIb29rcyA9IFtdKSkucHVzaChpbmRleCwgb25Jbml0KTtcbiAgfVxuXG4gIGlmIChkb0NoZWNrKSB7XG4gICAgKHRWaWV3LmluaXRIb29rcyB8fCAodFZpZXcuaW5pdEhvb2tzID0gW10pKS5wdXNoKGluZGV4LCBkb0NoZWNrKTtcbiAgICAodFZpZXcuY2hlY2tIb29rcyB8fCAodFZpZXcuY2hlY2tIb29rcyA9IFtdKSkucHVzaChpbmRleCwgZG9DaGVjayk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb29wcyB0aHJvdWdoIHRoZSBkaXJlY3RpdmVzIG9uIGEgbm9kZSBhbmQgcXVldWVzIGFsbCB0aGVpciBob29rcyBleGNlcHQgbmdPbkluaXRcbiAqIGFuZCBuZ0RvQ2hlY2ssIHdoaWNoIGFyZSBxdWV1ZWQgc2VwYXJhdGVseSBpbiBkaXJlY3RpdmVDcmVhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWV1ZUxpZmVjeWNsZUhvb2tzKHRWaWV3OiBUVmlldywgdE5vZGU6IFROb2RlKTogdm9pZCB7XG4gIGlmICh0Vmlldy5maXJzdFRlbXBsYXRlUGFzcykge1xuICAgIC8vIEl0J3MgbmVjZXNzYXJ5IHRvIGxvb3AgdGhyb3VnaCB0aGUgZGlyZWN0aXZlcyBhdCBlbGVtZW50RW5kKCkgKHJhdGhlciB0aGFuIHByb2Nlc3NpbmcgaW5cbiAgICAvLyBkaXJlY3RpdmVDcmVhdGUpIHNvIHdlIGNhbiBwcmVzZXJ2ZSB0aGUgY3VycmVudCBob29rIG9yZGVyLiBDb250ZW50LCB2aWV3LCBhbmQgZGVzdHJveVxuICAgIC8vIGhvb2tzIGZvciBwcm9qZWN0ZWQgY29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBtdXN0IGJlIGNhbGxlZCAqYmVmb3JlKiB0aGVpciBob3N0cy5cbiAgICBmb3IgKGxldCBpID0gdE5vZGUuZGlyZWN0aXZlU3RhcnQsIGVuZCA9IHROb2RlLmRpcmVjdGl2ZUVuZDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICBjb25zdCBkZWYgPSB0Vmlldy5kYXRhW2ldIGFzIERpcmVjdGl2ZURlZjxhbnk+O1xuICAgICAgcXVldWVDb250ZW50SG9va3MoZGVmLCB0VmlldywgaSk7XG4gICAgICBxdWV1ZVZpZXdIb29rcyhkZWYsIHRWaWV3LCBpKTtcbiAgICAgIHF1ZXVlRGVzdHJveUhvb2tzKGRlZiwgdFZpZXcsIGkpO1xuICAgIH1cbiAgfVxufVxuXG4vKiogUXVldWVzIGFmdGVyQ29udGVudEluaXQgYW5kIGFmdGVyQ29udGVudENoZWNrZWQgaG9va3Mgb24gVFZpZXcgKi9cbmZ1bmN0aW9uIHF1ZXVlQ29udGVudEhvb2tzKGRlZjogRGlyZWN0aXZlRGVmPGFueT4sIHRWaWV3OiBUVmlldywgaTogbnVtYmVyKTogdm9pZCB7XG4gIGlmIChkZWYuYWZ0ZXJDb250ZW50SW5pdCkge1xuICAgICh0Vmlldy5jb250ZW50SG9va3MgfHwgKHRWaWV3LmNvbnRlbnRIb29rcyA9IFtdKSkucHVzaChpLCBkZWYuYWZ0ZXJDb250ZW50SW5pdCk7XG4gIH1cblxuICBpZiAoZGVmLmFmdGVyQ29udGVudENoZWNrZWQpIHtcbiAgICAodFZpZXcuY29udGVudEhvb2tzIHx8ICh0Vmlldy5jb250ZW50SG9va3MgPSBbXSkpLnB1c2goaSwgZGVmLmFmdGVyQ29udGVudENoZWNrZWQpO1xuICAgICh0Vmlldy5jb250ZW50Q2hlY2tIb29rcyB8fCAodFZpZXcuY29udGVudENoZWNrSG9va3MgPSBbXSkpLnB1c2goaSwgZGVmLmFmdGVyQ29udGVudENoZWNrZWQpO1xuICB9XG59XG5cbi8qKiBRdWV1ZXMgYWZ0ZXJWaWV3SW5pdCBhbmQgYWZ0ZXJWaWV3Q2hlY2tlZCBob29rcyBvbiBUVmlldyAqL1xuZnVuY3Rpb24gcXVldWVWaWV3SG9va3MoZGVmOiBEaXJlY3RpdmVEZWY8YW55PiwgdFZpZXc6IFRWaWV3LCBpOiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKGRlZi5hZnRlclZpZXdJbml0KSB7XG4gICAgKHRWaWV3LnZpZXdIb29rcyB8fCAodFZpZXcudmlld0hvb2tzID0gW10pKS5wdXNoKGksIGRlZi5hZnRlclZpZXdJbml0KTtcbiAgfVxuXG4gIGlmIChkZWYuYWZ0ZXJWaWV3Q2hlY2tlZCkge1xuICAgICh0Vmlldy52aWV3SG9va3MgfHwgKHRWaWV3LnZpZXdIb29rcyA9IFtdKSkucHVzaChpLCBkZWYuYWZ0ZXJWaWV3Q2hlY2tlZCk7XG4gICAgKHRWaWV3LnZpZXdDaGVja0hvb2tzIHx8ICh0Vmlldy52aWV3Q2hlY2tIb29rcyA9IFtdKSkucHVzaChpLCBkZWYuYWZ0ZXJWaWV3Q2hlY2tlZCk7XG4gIH1cbn1cblxuLyoqIFF1ZXVlcyBvbkRlc3Ryb3kgaG9va3Mgb24gVFZpZXcgKi9cbmZ1bmN0aW9uIHF1ZXVlRGVzdHJveUhvb2tzKGRlZjogRGlyZWN0aXZlRGVmPGFueT4sIHRWaWV3OiBUVmlldywgaTogbnVtYmVyKTogdm9pZCB7XG4gIGlmIChkZWYub25EZXN0cm95ICE9IG51bGwpIHtcbiAgICAodFZpZXcuZGVzdHJveUhvb2tzIHx8ICh0Vmlldy5kZXN0cm95SG9va3MgPSBbXSkpLnB1c2goaSwgZGVmLm9uRGVzdHJveSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYWxscyBvbkluaXQgYW5kIGRvQ2hlY2sgY2FsbHMgaWYgdGhleSBoYXZlbid0IGFscmVhZHkgYmVlbiBjYWxsZWQuXG4gKlxuICogQHBhcmFtIGN1cnJlbnRWaWV3IFRoZSBjdXJyZW50IHZpZXdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVJbml0SG9va3MoXG4gICAgY3VycmVudFZpZXc6IExWaWV3LCB0VmlldzogVFZpZXcsIGNoZWNrTm9DaGFuZ2VzTW9kZTogYm9vbGVhbik6IHZvaWQge1xuICBpZiAoIWNoZWNrTm9DaGFuZ2VzTW9kZSAmJiBjdXJyZW50Vmlld1tGTEFHU10gJiBMVmlld0ZsYWdzLlJ1bkluaXQpIHtcbiAgICBleGVjdXRlSG9va3MoY3VycmVudFZpZXcsIHRWaWV3LmluaXRIb29rcywgdFZpZXcuY2hlY2tIb29rcywgY2hlY2tOb0NoYW5nZXNNb2RlKTtcbiAgICBjdXJyZW50Vmlld1tGTEFHU10gJj0gfkxWaWV3RmxhZ3MuUnVuSW5pdDtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgYWZ0ZXJWaWV3SW5pdCBhbmQgYWZ0ZXJWaWV3Q2hlY2tlZCBmdW5jdGlvbnMgYW5kIGNhbGxzIHRoZW0uXG4gKlxuICogQHBhcmFtIGN1cnJlbnRWaWV3IFRoZSBjdXJyZW50IHZpZXdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVIb29rcyhcbiAgICBjdXJyZW50VmlldzogTFZpZXcsIGFsbEhvb2tzOiBIb29rRGF0YSB8IG51bGwsIGNoZWNrSG9va3M6IEhvb2tEYXRhIHwgbnVsbCxcbiAgICBjaGVja05vQ2hhbmdlc01vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGNoZWNrTm9DaGFuZ2VzTW9kZSkgcmV0dXJuO1xuXG4gIGNvbnN0IGhvb2tzVG9DYWxsID0gY3VycmVudFZpZXdbRkxBR1NdICYgTFZpZXdGbGFncy5GaXJzdExWaWV3UGFzcyA/IGFsbEhvb2tzIDogY2hlY2tIb29rcztcbiAgaWYgKGhvb2tzVG9DYWxsKSB7XG4gICAgY2FsbEhvb2tzKGN1cnJlbnRWaWV3LCBob29rc1RvQ2FsbCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYWxscyBsaWZlY3ljbGUgaG9va3Mgd2l0aCB0aGVpciBjb250ZXh0cywgc2tpcHBpbmcgaW5pdCBob29rcyBpZiBpdCdzIG5vdFxuICogdGhlIGZpcnN0IExWaWV3IHBhc3MuXG4gKlxuICogQHBhcmFtIGN1cnJlbnRWaWV3IFRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBhcnIgVGhlIGFycmF5IGluIHdoaWNoIHRoZSBob29rcyBhcmUgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGxIb29rcyhjdXJyZW50VmlldzogYW55W10sIGFycjogSG9va0RhdGEpOiB2b2lkIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAoYXJyW2kgKyAxXSBhcygpID0+IHZvaWQpLmNhbGwoY3VycmVudFZpZXdbYXJyW2ldIGFzIG51bWJlcl0pO1xuICB9XG59XG4iXX0=