@angular/core 17.0.0-next.4 → 17.0.0-next.5

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 (42) hide show
  1. package/esm2022/src/core.mjs +2 -2
  2. package/esm2022/src/core_private_export.mjs +3 -1
  3. package/esm2022/src/core_render3_private_export.mjs +3 -2
  4. package/esm2022/src/errors.mjs +1 -1
  5. package/esm2022/src/metadata/ng_module_def.mjs +1 -1
  6. package/esm2022/src/render3/after_render_hooks.mjs +100 -13
  7. package/esm2022/src/render3/deps_tracker/api.mjs +1 -1
  8. package/esm2022/src/render3/deps_tracker/deps_tracker.mjs +13 -3
  9. package/esm2022/src/render3/index.mjs +2 -2
  10. package/esm2022/src/render3/instructions/defer.mjs +121 -40
  11. package/esm2022/src/render3/interfaces/defer.mjs +66 -1
  12. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  13. package/esm2022/src/render3/local_compilation.mjs +8 -2
  14. package/esm2022/src/render3/reactive_lview_consumer.mjs +1 -1
  15. package/esm2022/src/render3/reactivity/effect.mjs +3 -15
  16. package/esm2022/src/render3/scope.mjs +10 -4
  17. package/esm2022/src/signals/src/api.mjs +2 -2
  18. package/esm2022/src/signals/src/computed.mjs +50 -45
  19. package/esm2022/src/signals/src/graph.mjs +7 -2
  20. package/esm2022/src/signals/src/signal.mjs +11 -6
  21. package/esm2022/src/signals/src/watch.mjs +40 -12
  22. package/esm2022/src/version.mjs +1 -1
  23. package/esm2022/testing/src/component_fixture.mjs +17 -2
  24. package/esm2022/testing/src/defer.mjs +84 -0
  25. package/esm2022/testing/src/logger.mjs +3 -3
  26. package/esm2022/testing/src/test_bed.mjs +12 -2
  27. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  28. package/esm2022/testing/src/test_bed_compiler.mjs +5 -2
  29. package/esm2022/testing/src/testing.mjs +3 -1
  30. package/fesm2022/core.mjs +415 -132
  31. package/fesm2022/core.mjs.map +1 -1
  32. package/fesm2022/rxjs-interop.mjs +1 -1
  33. package/fesm2022/testing.mjs +107 -3
  34. package/fesm2022/testing.mjs.map +1 -1
  35. package/index.d.ts +202 -8
  36. package/package.json +3 -3
  37. package/rxjs-interop/index.d.ts +1 -1
  38. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
  39. package/schematics/migrations/remove-module-id/bundle.js +14 -14
  40. package/schematics/ng-generate/standalone-migration/bundle.js +1890 -1155
  41. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  42. package/testing/index.d.ts +41 -1
@@ -6,4 +6,4 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZXBzX3RyYWNrZXIvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7TmdNb2R1bGVUeXBlfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmltcG9ydCB7Q29tcG9uZW50VHlwZSwgRGVwZW5kZW5jeVR5cGVMaXN0LCBEaXJlY3RpdmVUeXBlLCBOZ01vZHVsZVNjb3BlSW5mb0Zyb21EZWNvcmF0b3IsIFBpcGVUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldCBvZiBkZXBlbmRlbmNpZXMgb2YgYSB0eXBlIGluIGEgY2VydGFpbiBjb250ZXh0LlxuICovXG5pbnRlcmZhY2UgU2NvcGVEYXRhIHtcbiAgcGlwZXM6IFNldDxQaXBlVHlwZTxhbnk+PjtcbiAgZGlyZWN0aXZlczogU2V0PERpcmVjdGl2ZVR5cGU8YW55PnxDb21wb25lbnRUeXBlPGFueT58VHlwZTxhbnk+PjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCBjYWxjdWxhdGluZyB0aGlzIHNjb3BlIHNvbWVob3cgd2FzIG5vdCBzdWNjZXNzZnVsLiBUaGUgY29uc3VtZXJzXG4gICAqIHNob3VsZCBpbnRlcnByZXQgdGhpcyBhcyBlbXB0eSBkZXBlbmRlbmNpZXMuIFRoZSBhcHBsaWNhdGlvbiBvZiB0aGlzIGZsYWcgaXMgd2hlbiBjYWxjdWxhdGluZ1xuICAgKiBzY29wZSByZWN1cnNpdmVseSwgdGhlIHByZXNlbmNlIG9mIHRoaXMgZmxhZyBpbiBhIHNjb3BlIGRlcGVuZGVuY3kgaW1wbGllcyB0aGF0IHRoZSBzY29wZSBpc1xuICAgKiBhbHNvIHBvaXNvbmVkIGFuZCB0aHVzIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCBoYXZpbmcgdG8gY29udGludWUgdGhlIHJlY3Vyc2lvbi4gVGhlXG4gICAqIHJlYXNvbiBmb3IgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgYXMgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgY29uc29sZSBhcyBwZXIgSklUIGJlaGF2aW9yXG4gICAqIHRvZGF5LiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpbiBsb2NhbCBjb21waWxhdGlvbiB0aGUgb3RoZXIgYnVpbGQvY29tcGlsYXRpb25zIHJ1biBpbiBwYXJhbGxlbFxuICAgKiB3aXRoIGxvY2FsIGNvbXBpbGF0aW9uIG1heSBvciBtYXkgbm90IHJldmVhbCBzb21lIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIGFzIHdlbGwuXG4gICAqL1xuICBpc1BvaXNvbmVkPzogYm9vbGVhbjtcbn1cblxuLyoqIFJlcHJlc2VudHMgc2NvcGUgZGF0YSBmb3IgTmdNb2R1bGUgYXMgY2FsY3VsYXRlZCBkdXJpbmcgcnVudGltZSBieSB0aGUgZGVwcyB0cmFja2VyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ01vZHVsZVNjb3BlIHtcbiAgY29tcGlsYXRpb246IFNjb3BlRGF0YTtcbiAgZXhwb3J0ZWQ6IFNjb3BlRGF0YTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHNjb3BlIGRhdGEgZm9yIHN0YW5kYWxvbmUgY29tcG9uZW50IGFzIGNhbGN1bGF0ZWQgZHVyaW5nIHJ1bnRpbWUgYnkgdGhlIGRlcHMgdHJhY2tlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUge1xuICBjb21waWxhdGlvbjogU2NvcGVEYXRhO1xufVxuXG4vKiogQ29tcG9uZW50IGRlcGVuZGVuY2llcyBpbmZvIGFzIGNhbGN1bGF0ZWQgZHVyaW5nIHJ1bnRpbWUgYnkgdGhlIGRlcHMgdHJhY2tlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGVwZW5kZW5jaWVzIHtcbiAgZGVwZW5kZW5jaWVzOiBEZXBlbmRlbmN5VHlwZUxpc3Q7XG59XG5cbi8qKlxuICogUHVibGljIEFQSSBmb3IgcnVudGltZSBkZXBzIHRyYWNrZXIgKFJEVCkuXG4gKlxuICogQWxsIGRvd25zdHJlYW0gdG9vbHMgc2hvdWxkIG9ubHkgdXNlIHRoZXNlIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwc1RyYWNrZXJBcGkge1xuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIGNvbXBvbmVudCBkZXBlbmRlbmNpZXMsIGkuZS4sIGEgc2V0IG9mIGNvbXBvbmVudHMvZGlyZWN0aXZlL3BpcGVzIHRoYXQgY291bGQgYmVcbiAgICogcHJlc2VudCBpbiB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUgKFRoaXMgc2V0IG1pZ2h0IGNvbnRhaW4gZGlyZWN0aXZlcy9jb21wb25lbnRzL3BpcGVzIG5vdFxuICAgKiBuZWNlc3NhcmlseSB1c2VkIGluIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZSBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uKS5cbiAgICpcbiAgICogU3RhbmRhbG9uZSBjb21wb25lbnRzIHNob3VsZCBzcGVjaWZ5IGByYXdJbXBvcnRzYCBhcyB0aGlzIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZnJvbVxuICAgKiB0aGVpciB0eXBlLiBUaGUgY29uc3VtZXIgKGUuZy4sIHtAbGluayBnZXRTdGFuZGFsb25lRGVmRnVuY3Rpb25zfSkgaXMgZXhwZWN0ZWQgdG8gcGFzcyB0aGlzXG4gICAqIHBhcmFtZXRlci5cbiAgICpcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIGlzIGV4cGVjdGVkIHRvIHVzZSBzb21lIGNhY2hpbmcgbWVjaGFuaXNtIGluIG9yZGVyIHRvIG9wdGltaXplIHRoZSByZXNvdXJjZXNcbiAgICogbmVlZGVkIHRvIGRvIHRoaXMgY29tcHV0YXRpb24uXG4gICAqL1xuICBnZXRDb21wb25lbnREZXBlbmRlbmNpZXMoY21wOiBDb21wb25lbnRUeXBlPGFueT4sIHJhd0ltcG9ydHM/OiAoVHlwZTxhbnk+fCgoKSA9PiBUeXBlPGFueT4pKVtdKTpcbiAgICAgIENvbXBvbmVudERlcGVuZGVuY2llcztcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIE5nTW9kdWxlIGludG8gdGhlIHRyYWNrZXIgd2l0aCB0aGUgZ2l2ZW4gc2NvcGUgaW5mby5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBmb3IgZXZlcnkgTmdNb2R1bGUgd2hldGhlciBpdCBpcyBjb21waWxlZCBpbiBsb2NhbCBtb2RlIG9yIG5vdC5cbiAgICogVGhpcyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gY29tcHV0ZSBjb21wb25lbnQncyBkZXBlbmRlbmNpZXMgYXMgc29tZSBkZXBlbmRlbmNpZXMgbWlnaHQgYmUgaW5cbiAgICogZGlmZmVyZW50IGNvbXBpbGF0aW9uIHVuaXRzIHdpdGggZGlmZmVyZW50IGNvbXBpbGF0aW9uIG1vZGUuXG4gICAqL1xuICByZWdpc3Rlck5nTW9kdWxlKHR5cGU6IFR5cGU8YW55Piwgc2NvcGVJbmZvOiBOZ01vZHVsZVNjb3BlSW5mb0Zyb21EZWNvcmF0b3IpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHNjb3BlIGNhY2hlIGZvciBOZ01vZHVsZSBvciBzdGFuZGFsb25lIGNvbXBvbmVudC4gVGhpcyB3aWxsIGZvcmNlIHJlLWNhbGN1bGF0aW9uIG9mXG4gICAqIHRoZSBzY29wZSwgd2hpY2ggY291bGQgYmUgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBhcyBpdCBpbnZvbHZlcyBhZ2dyZWdhdGluZyB0cmFuc2l0aXZlIGNsb3N1cmUuXG4gICAqXG4gICAqIFRoZSBtYWluIGFwcGxpY2F0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGZvciB0ZXN0IGJlZHMgd2hlcmUgd2Ugd2FudCB0byBjbGVhciB0aGUgY2FjaGUgdG9cbiAgICogZW5mb3JjZSBzY29wZSB1cGRhdGUgYWZ0ZXIgb3ZlcnJpZGluZy5cbiAgICovXG4gIGNsZWFyU2NvcGVDYWNoZUZvcih0eXBlOiBUeXBlPGFueT4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzY29wZSBvZiBOZ01vZHVsZS4gTWFpbmx5IHRvIGJlIHVzZWQgYnkgSklUIGFuZCB0ZXN0IGJlZC5cbiAgICpcbiAgICogVGhlIHNjb3BlIHZhbHVlIGhlcmUgaXMgbWVtb2l6ZWQuIFRvIGVuZm9yY2UgYSBuZXcgY2FsY3VsYXRpb24gYnVzdCB0aGUgY2FjaGUgYnkgdXNpbmdcbiAgICogYGNsZWFyU2NvcGVDYWNoZUZvcmAgbWV0aG9kLlxuICAgKi9cbiAgZ2V0TmdNb2R1bGVTY29wZSh0eXBlOiBOZ01vZHVsZVR5cGU8YW55Pik6IE5nTW9kdWxlU2NvcGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNjb3BlIG9mIHN0YW5kYWxvbmUgY29tcG9uZW50LiBNYWlubHkgdG8gYmUgdXNlZCBieSBKSVQuIFRoaXMgbWV0aG9kIHNob3VsZCBiZVxuICAgKiBjYWxsZWQgbGF6aWx5IGFmdGVyIHRoZSBpbml0aWFsIHBhcnNpbmcgc28gdGhhdCBhbGwgdGhlIGZvcndhcmQgcmVmcyBjYW4gYmUgcmVzb2x2ZWQuXG4gICAqXG4gICAqIEBwYXJhbSByYXdJbXBvcnRzIHRoZSBpbXBvcnRzIHN0YXRlbWVudCBhcyBhcHBlYXJzIG9uIHRoZSBjb21wb25lbnQgZGVjb3JhdGUgd2hpY2ggY29uc2lzdHMgb2ZcbiAgICogICAgIFR5cGUgYXMgd2VsbCBhcyBmb3J3YXJkIHJlZnMuXG4gICAqXG4gICAqIFRoZSBzY29wZSB2YWx1ZSBoZXJlIGlzIG1lbW9pemVkLiBUbyBlbmZvcmNlIGEgbmV3IGNhbGN1bGF0aW9uIGJ1c3QgdGhlIGNhY2hlIGJ5IHVzaW5nXG4gICAqIGBjbGVhclNjb3BlQ2FjaGVGb3JgIG1ldGhvZC5cbiAgICovXG4gIGdldFN0YW5kYWxvbmVDb21wb25lbnRTY29wZShcbiAgICAgIHR5cGU6IENvbXBvbmVudFR5cGU8YW55PixcbiAgICAgIHJhd0ltcG9ydHM6IChUeXBlPGFueT58KCgpID0+IFR5cGU8YW55PikpW10pOiBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGU7XG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZXBzX3RyYWNrZXIvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7TmdNb2R1bGVUeXBlfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmltcG9ydCB7Q29tcG9uZW50VHlwZSwgRGVwZW5kZW5jeVR5cGVMaXN0LCBEaXJlY3RpdmVUeXBlLCBOZ01vZHVsZVNjb3BlSW5mb0Zyb21EZWNvcmF0b3IsIFBpcGVUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNldCBvZiBkZXBlbmRlbmNpZXMgb2YgYSB0eXBlIGluIGEgY2VydGFpbiBjb250ZXh0LlxuICovXG5pbnRlcmZhY2UgU2NvcGVEYXRhIHtcbiAgcGlwZXM6IFNldDxQaXBlVHlwZTxhbnk+PjtcbiAgZGlyZWN0aXZlczogU2V0PERpcmVjdGl2ZVR5cGU8YW55PnxDb21wb25lbnRUeXBlPGFueT58VHlwZTxhbnk+PjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCBjYWxjdWxhdGluZyB0aGlzIHNjb3BlIHNvbWVob3cgd2FzIG5vdCBzdWNjZXNzZnVsLiBUaGUgY29uc3VtZXJzXG4gICAqIHNob3VsZCBpbnRlcnByZXQgdGhpcyBhcyBlbXB0eSBkZXBlbmRlbmNpZXMuIFRoZSBhcHBsaWNhdGlvbiBvZiB0aGlzIGZsYWcgaXMgd2hlbiBjYWxjdWxhdGluZ1xuICAgKiBzY29wZSByZWN1cnNpdmVseSwgdGhlIHByZXNlbmNlIG9mIHRoaXMgZmxhZyBpbiBhIHNjb3BlIGRlcGVuZGVuY3kgaW1wbGllcyB0aGF0IHRoZSBzY29wZSBpc1xuICAgKiBhbHNvIHBvaXNvbmVkIGFuZCB0aHVzIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCBoYXZpbmcgdG8gY29udGludWUgdGhlIHJlY3Vyc2lvbi4gVGhlXG4gICAqIHJlYXNvbiBmb3IgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgYXMgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgY29uc29sZSBhcyBwZXIgSklUIGJlaGF2aW9yXG4gICAqIHRvZGF5LiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpbiBsb2NhbCBjb21waWxhdGlvbiB0aGUgb3RoZXIgYnVpbGQvY29tcGlsYXRpb25zIHJ1biBpbiBwYXJhbGxlbFxuICAgKiB3aXRoIGxvY2FsIGNvbXBpbGF0aW9uIG1heSBvciBtYXkgbm90IHJldmVhbCBzb21lIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yIGFzIHdlbGwuXG4gICAqL1xuICBpc1BvaXNvbmVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHNjb3BlIGRhdGEgZm9yIHN0YW5kYWxvbmUgY29tcG9uZW50cyBhcyBjYWxjdWxhdGVkIGR1cmluZyBydW50aW1lIGJ5IHRoZSBkZXBzXG4gKiB0cmFja2VyLlxuICovXG5pbnRlcmZhY2UgU3RhbmRhbG9uZUNvbXBTY29wZURhdGEgZXh0ZW5kcyBTY29wZURhdGEge1xuICAvLyBTdGFuZGFsb25lIGNvbXBvbmVudHMgaW5jbHVkZSB0aGUgaW1wb3J0ZWQgTmdNb2R1bGVzIGluIHRoZWlyIGRlcGVuZGVuY2llcyBpbiBvcmRlciB0b1xuICAvLyBkZXRlcm1pbmUgdGhlaXIgaW5qZWN0b3IgaW5mby4gVGhlIGZvbGxvd2luZyBmaWVsZCBzdG9yZXMgdGhlIHNldCBvZiBzdWNoIE5nTW9kdWxlcy5cbiAgbmdNb2R1bGVzOiBTZXQ8TmdNb2R1bGVUeXBlPGFueT4+O1xufVxuXG4vKiogUmVwcmVzZW50cyBzY29wZSBkYXRhIGZvciBOZ01vZHVsZSBhcyBjYWxjdWxhdGVkIGR1cmluZyBydW50aW1lIGJ5IHRoZSBkZXBzIHRyYWNrZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIE5nTW9kdWxlU2NvcGUge1xuICBjb21waWxhdGlvbjogU2NvcGVEYXRhO1xuICBleHBvcnRlZDogU2NvcGVEYXRhO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgc2NvcGUgZGF0YSBmb3Igc3RhbmRhbG9uZSBjb21wb25lbnQgYXMgY2FsY3VsYXRlZCBkdXJpbmcgcnVudGltZSBieSB0aGUgZGVwcyB0cmFja2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYWxvbmVDb21wb25lbnRTY29wZSB7XG4gIGNvbXBpbGF0aW9uOiBTdGFuZGFsb25lQ29tcFNjb3BlRGF0YTtcbn1cblxuLyoqIENvbXBvbmVudCBkZXBlbmRlbmNpZXMgaW5mbyBhcyBjYWxjdWxhdGVkIGR1cmluZyBydW50aW1lIGJ5IHRoZSBkZXBzIHRyYWNrZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudERlcGVuZGVuY2llcyB7XG4gIGRlcGVuZGVuY2llczogRGVwZW5kZW5jeVR5cGVMaXN0O1xufVxuXG4vKipcbiAqIFB1YmxpYyBBUEkgZm9yIHJ1bnRpbWUgZGVwcyB0cmFja2VyIChSRFQpLlxuICpcbiAqIEFsbCBkb3duc3RyZWFtIHRvb2xzIHNob3VsZCBvbmx5IHVzZSB0aGVzZSBtZXRob2RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcHNUcmFja2VyQXBpIHtcbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBjb21wb25lbnQgZGVwZW5kZW5jaWVzLCBpLmUuLCBhIHNldCBvZiBjb21wb25lbnRzL2RpcmVjdGl2ZS9waXBlcyB0aGF0IGNvdWxkIGJlXG4gICAqIHByZXNlbnQgaW4gdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlIChUaGlzIHNldCBtaWdodCBjb250YWluIGRpcmVjdGl2ZXMvY29tcG9uZW50cy9waXBlcyBub3RcbiAgICogbmVjZXNzYXJpbHkgdXNlZCBpbiB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbikuXG4gICAqXG4gICAqIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgc3BlY2lmeSBgcmF3SW1wb3J0c2AgYXMgdGhpcyBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZyb21cbiAgICogdGhlaXIgdHlwZS4gVGhlIGNvbnN1bWVyIChlLmcuLCB7QGxpbmsgZ2V0U3RhbmRhbG9uZURlZkZ1bmN0aW9uc30pIGlzIGV4cGVjdGVkIHRvIHBhc3MgdGhpc1xuICAgKiBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byB1c2Ugc29tZSBjYWNoaW5nIG1lY2hhbmlzbSBpbiBvcmRlciB0byBvcHRpbWl6ZSB0aGUgcmVzb3VyY2VzXG4gICAqIG5lZWRlZCB0byBkbyB0aGlzIGNvbXB1dGF0aW9uLlxuICAgKi9cbiAgZ2V0Q29tcG9uZW50RGVwZW5kZW5jaWVzKGNtcDogQ29tcG9uZW50VHlwZTxhbnk+LCByYXdJbXBvcnRzPzogKFR5cGU8YW55PnwoKCkgPT4gVHlwZTxhbnk+KSlbXSk6XG4gICAgICBDb21wb25lbnREZXBlbmRlbmNpZXM7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhbiBOZ01vZHVsZSBpbnRvIHRoZSB0cmFja2VyIHdpdGggdGhlIGdpdmVuIHNjb3BlIGluZm8uXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgZm9yIGV2ZXJ5IE5nTW9kdWxlIHdoZXRoZXIgaXQgaXMgY29tcGlsZWQgaW4gbG9jYWwgbW9kZSBvciBub3QuXG4gICAqIFRoaXMgaXMgbmVlZGVkIGluIG9yZGVyIHRvIGNvbXB1dGUgY29tcG9uZW50J3MgZGVwZW5kZW5jaWVzIGFzIHNvbWUgZGVwZW5kZW5jaWVzIG1pZ2h0IGJlIGluXG4gICAqIGRpZmZlcmVudCBjb21waWxhdGlvbiB1bml0cyB3aXRoIGRpZmZlcmVudCBjb21waWxhdGlvbiBtb2RlLlxuICAgKi9cbiAgcmVnaXN0ZXJOZ01vZHVsZSh0eXBlOiBUeXBlPGFueT4sIHNjb3BlSW5mbzogTmdNb2R1bGVTY29wZUluZm9Gcm9tRGVjb3JhdG9yKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBzY29wZSBjYWNoZSBmb3IgTmdNb2R1bGUgb3Igc3RhbmRhbG9uZSBjb21wb25lbnQuIFRoaXMgd2lsbCBmb3JjZSByZS1jYWxjdWxhdGlvbiBvZlxuICAgKiB0aGUgc2NvcGUsIHdoaWNoIGNvdWxkIGJlIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYXMgaXQgaW52b2x2ZXMgYWdncmVnYXRpbmcgdHJhbnNpdGl2ZSBjbG9zdXJlLlxuICAgKlxuICAgKiBUaGUgbWFpbiBhcHBsaWNhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyBmb3IgdGVzdCBiZWRzIHdoZXJlIHdlIHdhbnQgdG8gY2xlYXIgdGhlIGNhY2hlIHRvXG4gICAqIGVuZm9yY2Ugc2NvcGUgdXBkYXRlIGFmdGVyIG92ZXJyaWRpbmcuXG4gICAqL1xuICBjbGVhclNjb3BlQ2FjaGVGb3IodHlwZTogVHlwZTxhbnk+KTogdm9pZDtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2NvcGUgb2YgTmdNb2R1bGUuIE1haW5seSB0byBiZSB1c2VkIGJ5IEpJVCBhbmQgdGVzdCBiZWQuXG4gICAqXG4gICAqIFRoZSBzY29wZSB2YWx1ZSBoZXJlIGlzIG1lbW9pemVkLiBUbyBlbmZvcmNlIGEgbmV3IGNhbGN1bGF0aW9uIGJ1c3QgdGhlIGNhY2hlIGJ5IHVzaW5nXG4gICAqIGBjbGVhclNjb3BlQ2FjaGVGb3JgIG1ldGhvZC5cbiAgICovXG4gIGdldE5nTW9kdWxlU2NvcGUodHlwZTogTmdNb2R1bGVUeXBlPGFueT4pOiBOZ01vZHVsZVNjb3BlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzY29wZSBvZiBzdGFuZGFsb25lIGNvbXBvbmVudC4gTWFpbmx5IHRvIGJlIHVzZWQgYnkgSklULiBUaGlzIG1ldGhvZCBzaG91bGQgYmVcbiAgICogY2FsbGVkIGxhemlseSBhZnRlciB0aGUgaW5pdGlhbCBwYXJzaW5nIHNvIHRoYXQgYWxsIHRoZSBmb3J3YXJkIHJlZnMgY2FuIGJlIHJlc29sdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gcmF3SW1wb3J0cyB0aGUgaW1wb3J0cyBzdGF0ZW1lbnQgYXMgYXBwZWFycyBvbiB0aGUgY29tcG9uZW50IGRlY29yYXRlIHdoaWNoIGNvbnNpc3RzIG9mXG4gICAqICAgICBUeXBlIGFzIHdlbGwgYXMgZm9yd2FyZCByZWZzLlxuICAgKlxuICAgKiBUaGUgc2NvcGUgdmFsdWUgaGVyZSBpcyBtZW1vaXplZC4gVG8gZW5mb3JjZSBhIG5ldyBjYWxjdWxhdGlvbiBidXN0IHRoZSBjYWNoZSBieSB1c2luZ1xuICAgKiBgY2xlYXJTY29wZUNhY2hlRm9yYCBtZXRob2QuXG4gICAqL1xuICBnZXRTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUoXG4gICAgICB0eXBlOiBDb21wb25lbnRUeXBlPGFueT4sXG4gICAgICByYXdJbXBvcnRzOiAoVHlwZTxhbnk+fCgoKSA9PiBUeXBlPGFueT4pKVtdKTogU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlO1xufVxuIl19
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { resolveForwardRef } from '../../di';
9
9
  import { RuntimeError } from '../../errors';
10
+ import { flatten } from '../../util/array_utils';
10
11
  import { getComponentDef, getNgModuleDef, isStandalone } from '../definition';
11
12
  import { isComponent, isDirective, isNgModule, isPipe, verifyStandaloneImport } from '../jit/util';
12
13
  import { maybeUnwrapFn } from '../util/misc_utils';
@@ -65,12 +66,13 @@ class DepsTracker {
65
66
  dependencies: [
66
67
  ...scope.compilation.directives,
67
68
  ...scope.compilation.pipes,
69
+ ...scope.compilation.ngModules,
68
70
  ]
69
71
  };
70
72
  }
71
73
  else {
72
74
  if (!this.ownerNgModule.has(type)) {
73
- return { dependencies: [] };
75
+ throw new RuntimeError(1001 /* RuntimeErrorCode.RUNTIME_DEPS_ORPHAN_COMPONENT */, `Orphan component found! Trying to render the component ${type.name} without first loading the NgModule that declares it. Make sure that you import the component's NgModule in the NgModule or the standalone component in which you are trying to render this component. Also make sure the way the app is bundled and served always includes the component's NgModule before the component.`);
74
76
  }
75
77
  const scope = this.getNgModuleScope(this.ownerNgModule.get(type));
76
78
  if (scope.compilation.isPoisoned) {
@@ -177,6 +179,12 @@ class DepsTracker {
177
179
  // check for it.
178
180
  addSet(exportedScope.exported.directives, scope.exported.directives);
179
181
  addSet(exportedScope.exported.pipes, scope.exported.pipes);
182
+ // Some test toolings which run in JIT mode depend on this behavior that the exported scope
183
+ // should also be present in the compilation scope, even though AoT does not support this
184
+ // and it is also in odds with NgModule metadata definitions. Without this some tests in
185
+ // Google will fail.
186
+ addSet(exportedScope.exported.directives, scope.compilation.directives);
187
+ addSet(exportedScope.exported.pipes, scope.compilation.pipes);
180
188
  }
181
189
  else if (isPipe(exported)) {
182
190
  scope.exported.pipes.add(exported);
@@ -202,9 +210,10 @@ class DepsTracker {
202
210
  // Standalone components are always able to self-reference.
203
211
  directives: new Set([type]),
204
212
  pipes: new Set(),
213
+ ngModules: new Set(),
205
214
  },
206
215
  };
207
- for (const rawImport of rawImports ?? []) {
216
+ for (const rawImport of flatten(rawImports ?? [])) {
208
217
  const imported = resolveForwardRef(rawImport);
209
218
  try {
210
219
  verifyStandaloneImport(imported, type);
@@ -215,6 +224,7 @@ class DepsTracker {
215
224
  return ans;
216
225
  }
217
226
  if (isNgModule(imported)) {
227
+ ans.compilation.ngModules.add(imported);
218
228
  const importedScope = this.getNgModuleScope(imported);
219
229
  // Short-circuit if an imported NgModule has corrupted exported scope.
220
230
  if (importedScope.exported.isPoisoned) {
@@ -248,4 +258,4 @@ function addSet(sourceSet, targetSet) {
248
258
  /** The deps tracker to be used in the current Angular app in dev mode. */
249
259
  export const depsTracker = new DepsTracker();
250
260
  export const TEST_ONLY = { DepsTracker };
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwc190cmFja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZXBzX3RyYWNrZXIvZGVwc190cmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUc1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJakQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsS0FBSyxDQUFDO0FBRXREOztHQUVHO0FBQ0gsTUFBTSxXQUFXO0lBQWpCO1FBQ1Usa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQztRQUNqRSxxQ0FBZ0MsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNoRSx3QkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNsRSxtQ0FBOEIsR0FBRyxJQUFJLEdBQUcsRUFBZ0QsQ0FBQztJQWtQbkcsQ0FBQztJQWhQQzs7OztPQUlHO0lBQ0sscUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDcEQsT0FBTztTQUNSO1FBRUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLEVBQUU7WUFDOUQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFD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QUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7aUJBQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN6RCxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsMkZBQTJGO2dCQUMzRixPQUFPO2dCQUNQLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDbEMsT0FBTyxHQUFHLENBQUM7YUFDWjtTQUNGO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFFRCxTQUFTLE1BQU0sQ0FBSSxTQUFpQixFQUFFLFNBQWlCO0lBQ3JELEtBQUssTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFO1FBQ3pCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbEI7QUFDSCxDQUFDO0FBRUQsMEVBQTBFO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFDLFdBQVcsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7cmVzb2x2ZUZvcndhcmRSZWZ9IGZyb20gJy4uLy4uL2RpJztcbmltcG9ydCB7UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdHlwZSc7XG5pbXBvcnQge05nTW9kdWxlVHlwZX0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvbmdfbW9kdWxlX2RlZic7XG5pbXBvcnQge2dldENvbXBvbmVudERlZiwgZ2V0TmdNb2R1bGVEZWYsIGlzU3RhbmRhbG9uZX0gZnJvbSAnLi4vZGVmaW5pdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudFR5cGUsIE5nTW9kdWxlU2NvcGVJbmZvRnJvbURlY29yYXRvciwgUmF3U2NvcGVJbmZvRnJvbURlY29yYXRvcn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7aXNDb21wb25lbnQsIGlzRGlyZWN0aXZlLCBpc05nTW9kdWxlLCBpc1BpcGUsIHZlcmlmeVN0YW5kYWxvbmVJbXBvcnR9IGZyb20gJy4uL2ppdC91dGlsJztcbmltcG9ydCB7bWF5YmVVbndyYXBGbn0gZnJvbSAnLi4vdXRpbC9taXNjX3V0aWxzJztcblxuaW1wb3J0IHtDb21wb25lbnREZXBlbmRlbmNpZXMsIERlcHNUcmFja2VyQXBpLCBOZ01vZHVsZVNjb3BlLCBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGV9IGZyb20gJy4vYXBpJztcblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgdGhlIHJ1bnRpbWUgZGVwZW5kZW5jeSB0cmFja2VyIGZvciBzY29wZSBjYWxjdWxhdGlvbiBpbiBKSVQgY29tcGlsYXRpb24uXG4gKiBUaGUgdmFsdWUgXCJmYWxzZVwiIG1lYW5zIHRoZSBvbGQgY29kZSBwYXRoIGJhc2VkIG9uIHBhdGNoaW5nIHNjb3BlIGluZm8gaW50byB0aGUgdHlwZXMgd2lsbCBiZVxuICogdXNlZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBGb3IgbWlncmF0aW9uIHB1cnBvc2VzIG9ubHksIHRvIGJlIHJlbW92ZWQgc29vbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFVTRV9SVU5USU1FX0RFUFNfVFJBQ0tFUl9GT1JfSklUID0gZmFsc2U7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgRGVwc1RyYWNrZXJBcGkgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBKSVQgYW5kIGxvY2FsIGNvbXBpbGF0aW9uLlxuICovXG5jbGFzcyBEZXBzVHJhY2tlciBpbXBsZW1lbnRzIERlcHNUcmFja2VyQXBpIHtcbiAgcHJpdmF0ZSBvd25lck5nTW9kdWxlID0gbmV3IE1hcDxDb21wb25lbnRUeXBlPGFueT4sIE5nTW9kdWxlVHlwZTxhbnk+PigpO1xuICBwcml2YXRlIG5nTW9kdWxlc1dpdGhTb21lVW5yZXNvbHZlZERlY2xzID0gbmV3IFNldDxOZ01vZHVsZVR5cGU8YW55Pj4oKTtcbiAgcHJpdmF0ZSBuZ01vZHVsZXNTY29wZUNhY2hlID0gbmV3IE1hcDxOZ01vZHVsZVR5cGU8YW55PiwgTmdNb2R1bGVTY29wZT4oKTtcbiAgcHJpdmF0ZSBzdGFuZGFsb25lQ29tcG9uZW50c1Njb3BlQ2FjaGUgPSBuZXcgTWFwPENvbXBvbmVudFR5cGU8YW55PiwgU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlPigpO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZXNvbHZlIG5nIG1vZHVsZSdzIGZvcndhcmQgcmVmIGRlY2xhcmF0aW9ucyBhcyBtdWNoIGFzIHBvc3NpYmxlIGFuZCBhZGQgdGhlbSB0b1xuICAgKiB0aGUgYG93bmVyTmdNb2R1bGVgIG1hcC4gVGhpcyBtZXRob2Qgbm9ybWFsbHkgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciB0aGUgaW5pdGlhbCBwYXJzaW5nIHdoZW5cbiAgICogYWxsIHRoZSBmb3J3YXJkIHJlZnMgYXJlIHJlc29sdmVkIChlLmcuLCB3aGVuIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQpXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVOZ01vZHVsZXNEZWNscygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ01vZHVsZXNXaXRoU29tZVVucmVzb2x2ZWREZWNscy5zaXplID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBtb2R1bGVUeXBlIG9mIHRoaXMubmdNb2R1bGVzV2l0aFNvbWVVbnJlc29sdmVkRGVjbHMpIHtcbiAgICAgIGNvbnN0IGRlZiA9IGdldE5nTW9kdWxlRGVmKG1vZHVsZVR5cGUpO1xuICAgICAgaWYgKGRlZj8uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjbCBvZiBtYXliZVVud3JhcEZuKGRlZi5kZWNsYXJhdGlvbnMpKSB7XG4gICAgICAgICAgaWYgKGlzQ29tcG9uZW50KGRlY2wpKSB7XG4gICAgICAgICAgICB0aGlzLm93bmVyTmdNb2R1bGUuc2V0KGRlY2wsIG1vZHVsZVR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmdNb2R1bGVzV2l0aFNvbWVVbnJlc29sdmVkRGVjbHMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKi9cbiAgZ2V0Q29tcG9uZW50RGVwZW5kZW5jaWVzKHR5cGU6IENvbXBvbmVudFR5cGU8YW55PiwgcmF3SW1wb3J0cz86IFJhd1Njb3BlSW5mb0Zyb21EZWNvcmF0b3JbXSk6XG4gICAgICBDb21wb25lbnREZXBlbmRlbmNpZXMge1xuICAgIHRoaXMucmVzb2x2ZU5nTW9kdWxlc0RlY2xzKCk7XG5cbiAgICBjb25zdCBkZWYgPSBnZXRDb21wb25lbnREZWYodHlwZSk7XG4gICAgaWYgKGRlZiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0aW5nIHRvIGdldCBjb21wb25lbnQgZGVwZW5kZW5jaWVzIGZvciBhIHR5cGUgdGhhdCBpcyBub3QgYSBjb21wb25lbnQ6ICR7dHlwZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoZGVmLnN0YW5kYWxvbmUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUodHlwZSwgcmF3SW1wb3J0cyk7XG5cbiAgICAgIGlmIChzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkKSB7XG4gICAgICAgIHJldHVybiB7ZGVwZW5kZW5jaWVzOiBbXX07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlcGVuZGVuY2llczogW1xuICAgICAgICAgIC4uLnNjb3BlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMsXG4gICAgICAgICAgLi4uc2NvcGUuY29tcGlsYXRpb24ucGlwZXMsXG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5vd25lck5nTW9kdWxlLmhhcyh0eXBlKSkge1xuICAgICAgICByZXR1cm4ge2RlcGVuZGVuY2llczogW119O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0TmdNb2R1bGVTY29wZSh0aGlzLm93bmVyTmdNb2R1bGUuZ2V0KHR5cGUpISk7XG5cbiAgICAgIGlmIChzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkKSB7XG4gICAgICAgIHJldHVybiB7ZGVwZW5kZW5jaWVzOiBbXX07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlcGVuZGVuY2llczogW1xuICAgICAgICAgIC4uLnNjb3BlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMsXG4gICAgICAgICAgLi4uc2NvcGUuY29tcGlsYXRpb24ucGlwZXMsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBtYWtlIHVzZSBvZiBwYXJhbSBzY29wZUluZm8gc2luY2UgaXQgYXNzdW1lcyB0aGUgc2NvcGUgaW5mbyBpc1xuICAgKiBhbHJlYWR5IGFkZGVkIHRvIHRoZSB0eXBlIGl0c2VsZiB0aHJvdWdoIG1ldGhvZHMgbGlrZSB7QGxpbmsgybXJtXNldE5nTW9kdWxlU2NvcGV9XG4gICAqL1xuICByZWdpc3Rlck5nTW9kdWxlKHR5cGU6IFR5cGU8YW55Piwgc2NvcGVJbmZvOiBOZ01vZHVsZVNjb3BlSW5mb0Zyb21EZWNvcmF0b3IpOiB2b2lkIHtcbiAgICBpZiAoIWlzTmdNb2R1bGUodHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIFR5cGUgd2hpY2ggaXMgbm90IE5nTW9kdWxlIGFzIE5nTW9kdWxlOiAke3R5cGV9YCk7XG4gICAgfVxuXG4gICAgLy8gTGF6aWx5IHByb2Nlc3MgdGhlIE5nTW9kdWxlcyBsYXRlciB3aGVuIG5lZWRlZC5cbiAgICB0aGlzLm5nTW9kdWxlc1dpdGhTb21lVW5yZXNvbHZlZERlY2xzLmFkZCh0eXBlKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKi9cbiAgY2xlYXJTY29wZUNhY2hlRm9yKHR5cGU6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgIGlmIChpc05nTW9kdWxlKHR5cGUpKSB7XG4gICAgICB0aGlzLm5nTW9kdWxlc1Njb3BlQ2FjaGUuZGVsZXRlKHR5cGUpO1xuICAgIH0gZWxzZSBpZiAoaXNDb21wb25lbnQodHlwZSkpIHtcbiAgICAgIHRoaXMuc3RhbmRhbG9uZUNvbXBvbmVudHNTY29wZUNhY2hlLmRlbGV0ZSh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICovXG4gIGdldE5nTW9kdWxlU2NvcGUodHlwZTogTmdNb2R1bGVUeXBlPGFueT4pOiBOZ01vZHVsZVNjb3BlIHtcbiAgICBpZiAodGhpcy5uZ01vZHVsZXNTY29wZUNhY2hlLmhhcyh0eXBlKSkge1xuICAgICAgcmV0dXJuIHRoaXMubmdNb2R1bGVzU2NvcGVDYWNoZS5nZXQodHlwZSkhO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gdGhpcy5jb21wdXRlTmdNb2R1bGVTY29wZSh0eXBlKTtcbiAgICB0aGlzLm5nTW9kdWxlc1Njb3BlQ2FjaGUuc2V0KHR5cGUsIHNjb3BlKTtcblxuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIC8qKiBDb21wdXRlIE5nTW9kdWxlIHNjb3BlIGFmcmVzaC4gKi9cbiAgcHJpdmF0ZSBjb21wdXRlTmdNb2R1bGVTY29wZSh0eXBlOiBOZ01vZHVsZVR5cGU8YW55Pik6IE5nTW9kdWxlU2NvcGUge1xuICAgIGNvbnN0IGRlZiA9IGdldE5nTW9kdWxlRGVmKHR5cGUsIHRydWUpO1xuICAgIGNvbnN0IHNjb3BlOiBOZ01vZHVsZVNjb3BlID0ge1xuICAgICAgZXhwb3J0ZWQ6IHtkaXJlY3RpdmVzOiBuZXcgU2V0KCksIHBpcGVzOiBuZXcgU2V0KCl9LFxuICAgICAgY29tcGlsYXRpb246IHtkaXJlY3RpdmVzOiBuZXcgU2V0KCksIHBpcGVzOiBuZXcgU2V0KCl9LFxuICAgIH07XG5cbiAgICAvLyBBbmFseXppbmcgaW1wb3J0c1xuICAgIGZvciAoY29uc3QgaW1wb3J0ZWQgb2YgbWF5YmVVbndyYXBGbihkZWYuaW1wb3J0cykpIHtcbiAgICAgIGlmIChpc05nTW9kdWxlKGltcG9ydGVkKSkge1xuICAgICAgICBjb25zdCBpbXBvcnRlZFNjb3BlID0gdGhpcy5nZXROZ01vZHVsZVNjb3BlKGltcG9ydGVkKTtcblxuICAgICAgICAvLyBXaGVuIHRoaXMgbW9kdWxlIGltcG9ydHMgYW5vdGhlciwgdGhlIGltcG9ydGVkIG1vZHVsZSdzIGV4cG9ydGVkIGRpcmVjdGl2ZXMgYW5kIHBpcGVzXG4gICAgICAgIC8vIGFyZSBhZGRlZCB0byB0aGUgY29tcGlsYXRpb24gc2NvcGUgb2YgdGhpcyBtb2R1bGUuXG4gICAgICAgIGFkZFNldChpbXBvcnRlZFNjb3BlLmV4cG9ydGVkLmRpcmVjdGl2ZXMsIHNjb3BlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMpO1xuICAgICAgICBhZGRTZXQoaW1wb3J0ZWRTY29wZS5leHBvcnRlZC5waXBlcywgc2NvcGUuY29tcGlsYXRpb24ucGlwZXMpO1xuICAgICAgfSBlbHNlIGlmIChpc1N0YW5kYWxvbmUoaW1wb3J0ZWQpKSB7XG4gICAgICAgIGlmIChpc0RpcmVjdGl2ZShpbXBvcnRlZCkgfHwgaXNDb21wb25lbnQoaW1wb3J0ZWQpKSB7XG4gICAgICAgICAgc2NvcGUuY29tcGlsYXRpb24uZGlyZWN0aXZlcy5hZGQoaW1wb3J0ZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUGlwZShpbXBvcnRlZCkpIHtcbiAgICAgICAgICBzY29wZS5jb21waWxhdGlvbi5waXBlcy5hZGQoaW1wb3J0ZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBzdGFuZGFsb25lIHRoaW5nIGlzIG5laXRoZXIgYSBjb21wb25lbnQgbm9yIGEgZGlyZWN0aXZlIG5vciBhIHBpcGUgLi4uICh3aGF0PylcbiAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICAgICAgICBSdW50aW1lRXJyb3JDb2RlLlJVTlRJTUVfREVQU19JTlZBTElEX0lNUE9SVEVEX1RZUEUsXG4gICAgICAgICAgICAgICdUaGUgc3RhbmRhbG9uZSBpbXBvcnRlZCB0eXBlIGlzIG5laXRoZXIgYSBjb21wb25lbnQgbm9yIGEgZGlyZWN0aXZlIG5vciBhIHBpcGUnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGltcG9ydCBpcyBuZWl0aGVyIGEgbW9kdWxlIG5vciBhIG1vZHVsZS13aXRoLXByb3ZpZGVycyBub3IgYSBzdGFuZGFsb25lIHRoaW5nLiBUaGlzXG4gICAgICAgIC8vIGlzIGdvaW5nIHRvIGJlIGFuIGVycm9yLiBTbyB3ZSBzaG9ydCBjaXJjdWl0LlxuICAgICAgICBzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQW5hbHl6aW5nIGRlY2xhcmF0aW9uc1xuICAgIGlmICghc2NvcGUuY29tcGlsYXRpb24uaXNQb2lzb25lZCkge1xuICAgICAgZm9yIChjb25zdCBkZWNsIG9mIG1heWJlVW53cmFwRm4oZGVmLmRlY2xhcmF0aW9ucykpIHtcbiAgICAgICAgLy8gQ2Fubm90IGRlY2xhcmUgYW5vdGhlciBOZ01vZHVsZSBvciBhIHN0YW5kYWxvbmUgdGhpbmdcbiAgICAgICAgaWYgKGlzTmdNb2R1bGUoZGVjbCkgfHwgaXNTdGFuZGFsb25lKGRlY2wpKSB7XG4gICAgICAgICAgc2NvcGUuY29tcGlsYXRpb24uaXNQb2lzb25lZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNQaXBlKGRlY2wpKSB7XG4gICAgICAgICAgc2NvcGUuY29tcGlsYXRpb24ucGlwZXMuYWRkKGRlY2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGRlY2wgaXMgZWl0aGVyIGEgZGlyZWN0aXZlIG9yIGEgY29tcG9uZW50LiBUaGUgY29tcG9uZW50IG1heSBub3QgeWV0IGhhdmUgdGhlIMm1Y21wIGR1ZVxuICAgICAgICAgIC8vIHRvIGFzeW5jIGNvbXBpbGF0aW9uLlxuICAgICAgICAgIHNjb3BlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKGRlY2wpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQW5hbHl6aW5nIGV4cG9ydHNcbiAgICBmb3IgKGNvbnN0IGV4cG9ydGVkIG9mIG1heWJlVW53cmFwRm4oZGVmLmV4cG9ydHMpKSB7XG4gICAgICBpZiAoaXNOZ01vZHVsZShleHBvcnRlZCkpIHtcbiAgICAgICAgLy8gV2hlbiB0aGlzIG1vZHVsZSBleHBvcnRzIGFub3RoZXIsIHRoZSBleHBvcnRlZCBtb2R1bGUncyBleHBvcnRlZCBkaXJlY3RpdmVzIGFuZCBwaXBlc1xuICAgICAgICAvLyBhcmUgYWRkZWQgdG8gYm90aCB0aGUgY29tcGlsYXRpb24gYW5kIGV4cG9ydGVkIHNjb3BlcyBvZiB0aGlzIG1vZHVsZS5cbiAgICAgICAgY29uc3QgZXhwb3J0ZWRTY29wZSA9IHRoaXMuZ2V0TmdNb2R1bGVTY29wZShleHBvcnRlZCk7XG5cbiAgICAgICAgLy8gQmFzZWQgb24gdGhlIGN1cnJlbnQgbG9naWMgdGhlcmUgaXMgbm8gd2F5IHRvIGhhdmUgcG9pc29uZWQgZXhwb3J0ZWQgc2NvcGUuIFNvIG5vIG5lZWQgdG9cbiAgICAgICAgLy8gY2hlY2sgZm9yIGl0LlxuICAgICAgICBhZGRTZXQoZXhwb3J0ZWRTY29wZS5leHBvcnRlZC5kaXJlY3RpdmVzLCBzY29wZS5leHBvcnRlZC5kaXJlY3RpdmVzKTtcbiAgICAgICAgYWRkU2V0KGV4cG9ydGVkU2NvcGUuZXhwb3J0ZWQucGlwZXMsIHNjb3BlLmV4cG9ydGVkLnBpcGVzKTtcblxuICAgICAgfSBlbHNlIGlmIChpc1BpcGUoZXhwb3J0ZWQpKSB7XG4gICAgICAgIHNjb3BlLmV4cG9ydGVkLnBpcGVzLmFkZChleHBvcnRlZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzY29wZS5leHBvcnRlZC5kaXJlY3RpdmVzLmFkZChleHBvcnRlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjb3BlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqL1xuICBnZXRTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUodHlwZTogQ29tcG9uZW50VHlwZTxhbnk+LCByYXdJbXBvcnRzPzogUmF3U2NvcGVJbmZvRnJvbURlY29yYXRvcltdKTpcbiAgICAgIFN0YW5kYWxvbmVDb21wb25lbnRTY29wZSB7XG4gICAgaWYgKHRoaXMuc3RhbmRhbG9uZUNvbXBvbmVudHNTY29wZUNhY2hlLmhhcyh0eXBlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhbmRhbG9uZUNvbXBvbmVudHNTY29wZUNhY2hlLmdldCh0eXBlKSE7XG4gICAgfVxuXG4gICAgY29uc3QgYW5zID0gdGhpcy5jb21wdXRlU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlKHR5cGUsIHJhd0ltcG9ydHMpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUNvbXBvbmVudHNTY29wZUNhY2hlLnNldCh0eXBlLCBhbnMpO1xuXG4gICAgcmV0dXJuIGFucztcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVN0YW5kYWxvbmVDb21wb25lbnRTY29wZShcbiAgICAgIHR5cGU6IENvbXBvbmVudFR5cGU8YW55PixcbiAgICAgIHJhd0ltcG9ydHM/OiBSYXdTY29wZUluZm9Gcm9tRGVjb3JhdG9yW10pOiBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUge1xuICAgIGNvbnN0IGFuczogU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlID0ge1xuICAgICAgY29tcGlsYXRpb246IHtcbiAgICAgICAgLy8gU3RhbmRhbG9uZSBjb21wb25lbnRzIGFyZSBhbHdheXMgYWJsZSB0byBzZWxmLXJlZmVyZW5jZS5cbiAgICAgICAgZGlyZWN0aXZlczogbmV3IFNldChbdHlwZV0pLFxuICAgICAgICBwaXBlczogbmV3IFNldCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCByYXdJbXBvcnQgb2YgcmF3SW1wb3J0cyA/PyBbXSkge1xuICAgICAgY29uc3QgaW1wb3J0ZWQgPSByZXNvbHZlRm9yd2FyZFJlZihyYXdJbXBvcnQpIGFzIFR5cGU8YW55PjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdmVyaWZ5U3RhbmRhbG9uZUltcG9ydChpbXBvcnRlZCwgdHlwZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIFNob3J0LWNpcmN1aXQgaWYgYW4gaW1wb3J0IGlzIG5vdCB2YWxpZFxuICAgICAgICBhbnMuY29tcGlsYXRpb24uaXNQb2lzb25lZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBhbnM7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc05nTW9kdWxlKGltcG9ydGVkKSkge1xuICAgICAgICBjb25zdCBpbXBvcnRlZFNjb3BlID0gdGhpcy5nZXROZ01vZHVsZVNjb3BlKGltcG9ydGVkKTtcblxuICAgICAgICAvLyBTaG9ydC1jaXJjdWl0IGlmIGFuIGltcG9ydGVkIE5nTW9kdWxlIGhhcyBjb3JydXB0ZWQgZXhwb3J0ZWQgc2NvcGUuXG4gICAgICAgIGlmIChpbXBvcnRlZFNjb3BlLmV4cG9ydGVkLmlzUG9pc29uZWQpIHtcbiAgICAgICAgICBhbnMuY29tcGlsYXRpb24uaXNQb2lzb25lZCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGFucztcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZFNldChpbXBvcnRlZFNjb3BlLmV4cG9ydGVkLmRpcmVjdGl2ZXMsIGFucy5jb21waWxhdGlvbi5kaXJlY3RpdmVzKTtcbiAgICAgICAgYWRkU2V0KGltcG9ydGVkU2NvcGUuZXhwb3J0ZWQucGlwZXMsIGFucy5jb21waWxhdGlvbi5waXBlcyk7XG4gICAgICB9IGVsc2UgaWYgKGlzUGlwZShpbXBvcnRlZCkpIHtcbiAgICAgICAgYW5zLmNvbXBpbGF0aW9uLnBpcGVzLmFkZChpbXBvcnRlZCk7XG4gICAgICB9IGVsc2UgaWYgKGlzRGlyZWN0aXZlKGltcG9ydGVkKSB8fCBpc0NvbXBvbmVudChpbXBvcnRlZCkpIHtcbiAgICAgICAgYW5zLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMuYWRkKGltcG9ydGVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBpbXBvcnRlZCB0aGluZyBpcyBub3QgbW9kdWxlL3BpcGUvZGlyZWN0aXZlL2NvbXBvbmVudCwgc28gd2UgZXJyb3IgYW5kIHNob3J0LWNpcmN1aXRcbiAgICAgICAgLy8gaGVyZVxuICAgICAgICBhbnMuY29tcGlsYXRpb24uaXNQb2lzb25lZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBhbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFucztcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRTZXQ8VD4oc291cmNlU2V0OiBTZXQ8VD4sIHRhcmdldFNldDogU2V0PFQ+KTogdm9pZCB7XG4gIGZvciAoY29uc3QgbSBvZiBzb3VyY2VTZXQpIHtcbiAgICB0YXJnZXRTZXQuYWRkKG0pO1xuICB9XG59XG5cbi8qKiBUaGUgZGVwcyB0cmFja2VyIHRvIGJlIHVzZWQgaW4gdGhlIGN1cnJlbnQgQW5ndWxhciBhcHAgaW4gZGV2IG1vZGUuICovXG5leHBvcnQgY29uc3QgZGVwc1RyYWNrZXIgPSBuZXcgRGVwc1RyYWNrZXIoKTtcblxuZXhwb3J0IGNvbnN0IFRFU1RfT05MWSA9IHtEZXBzVHJhY2tlcn07XG4iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwc190cmFja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZXBzX3RyYWNrZXIvZGVwc190cmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUc1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDakcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSWpEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssQ0FBQztBQUV0RDs7R0FFRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNVLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXlDLENBQUM7UUFDakUscUNBQWdDLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFDaEUsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7UUFDbEUsbUNBQThCLEdBQUcsSUFBSSxHQUFHLEVBQWdELENBQUM7SUE4UG5HLENBQUM7SUE1UEM7Ozs7T0FJRztJQUNLLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3BELE9BQU87U0FDUjtRQUVELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1lB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TUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUMsV0FBVyxFQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtyZXNvbHZlRm9yd2FyZFJlZn0gZnJvbSAnLi4vLi4vZGknO1xuaW1wb3J0IHtSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7TmdNb2R1bGVUeXBlfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmltcG9ydCB7ZmxhdHRlbn0gZnJvbSAnLi4vLi4vdXRpbC9hcnJheV91dGlscyc7XG5pbXBvcnQge2dldENvbXBvbmVudERlZiwgZ2V0TmdNb2R1bGVEZWYsIGlzU3RhbmRhbG9uZX0gZnJvbSAnLi4vZGVmaW5pdGlvbic7XG5pbXBvcnQge0NvbXBvbmVudFR5cGUsIE5nTW9kdWxlU2NvcGVJbmZvRnJvbURlY29yYXRvciwgUmF3U2NvcGVJbmZvRnJvbURlY29yYXRvcn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7aXNDb21wb25lbnQsIGlzRGlyZWN0aXZlLCBpc05nTW9kdWxlLCBpc1BpcGUsIHZlcmlmeVN0YW5kYWxvbmVJbXBvcnR9IGZyb20gJy4uL2ppdC91dGlsJztcbmltcG9ydCB7bWF5YmVVbndyYXBGbn0gZnJvbSAnLi4vdXRpbC9taXNjX3V0aWxzJztcblxuaW1wb3J0IHtDb21wb25lbnREZXBlbmRlbmNpZXMsIERlcHNUcmFja2VyQXBpLCBOZ01vZHVsZVNjb3BlLCBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGV9IGZyb20gJy4vYXBpJztcblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgdGhlIHJ1bnRpbWUgZGVwZW5kZW5jeSB0cmFja2VyIGZvciBzY29wZSBjYWxjdWxhdGlvbiBpbiBKSVQgY29tcGlsYXRpb24uXG4gKiBUaGUgdmFsdWUgXCJmYWxzZVwiIG1lYW5zIHRoZSBvbGQgY29kZSBwYXRoIGJhc2VkIG9uIHBhdGNoaW5nIHNjb3BlIGluZm8gaW50byB0aGUgdHlwZXMgd2lsbCBiZVxuICogdXNlZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBGb3IgbWlncmF0aW9uIHB1cnBvc2VzIG9ubHksIHRvIGJlIHJlbW92ZWQgc29vbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFVTRV9SVU5USU1FX0RFUFNfVFJBQ0tFUl9GT1JfSklUID0gZmFsc2U7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgRGVwc1RyYWNrZXJBcGkgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBKSVQgYW5kIGxvY2FsIGNvbXBpbGF0aW9uLlxuICovXG5jbGFzcyBEZXBzVHJhY2tlciBpbXBsZW1lbnRzIERlcHNUcmFja2VyQXBpIHtcbiAgcHJpdmF0ZSBvd25lck5nTW9kdWxlID0gbmV3IE1hcDxDb21wb25lbnRUeXBlPGFueT4sIE5nTW9kdWxlVHlwZTxhbnk+PigpO1xuICBwcml2YXRlIG5nTW9kdWxlc1dpdGhTb21lVW5yZXNvbHZlZERlY2xzID0gbmV3IFNldDxOZ01vZHVsZVR5cGU8YW55Pj4oKTtcbiAgcHJpdmF0ZSBuZ01vZHVsZXNTY29wZUNhY2hlID0gbmV3IE1hcDxOZ01vZHVsZVR5cGU8YW55PiwgTmdNb2R1bGVTY29wZT4oKTtcbiAgcHJpdmF0ZSBzdGFuZGFsb25lQ29tcG9uZW50c1Njb3BlQ2FjaGUgPSBuZXcgTWFwPENvbXBvbmVudFR5cGU8YW55PiwgU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlPigpO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZXNvbHZlIG5nIG1vZHVsZSdzIGZvcndhcmQgcmVmIGRlY2xhcmF0aW9ucyBhcyBtdWNoIGFzIHBvc3NpYmxlIGFuZCBhZGQgdGhlbSB0b1xuICAgKiB0aGUgYG93bmVyTmdNb2R1bGVgIG1hcC4gVGhpcyBtZXRob2Qgbm9ybWFsbHkgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciB0aGUgaW5pdGlhbCBwYXJzaW5nIHdoZW5cbiAgICogYWxsIHRoZSBmb3J3YXJkIHJlZnMgYXJlIHJlc29sdmVkIChlLmcuLCB3aGVuIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQpXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVOZ01vZHVsZXNEZWNscygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ01vZHVsZXNXaXRoU29tZVVucmVzb2x2ZWREZWNscy5zaXplID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBtb2R1bGVUeXBlIG9mIHRoaXMubmdNb2R1bGVzV2l0aFNvbWVVbnJlc29sdmVkRGVjbHMpIHtcbiAgICAgIGNvbnN0IGRlZiA9IGdldE5nTW9kdWxlRGVmKG1vZHVsZVR5cGUpO1xuICAgICAgaWYgKGRlZj8uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjbCBvZiBtYXliZVVud3JhcEZuKGRlZi5kZWNsYXJhdGlvbnMpKSB7XG4gICAgICAgICAgaWYgKGlzQ29tcG9uZW50KGRlY2wpKSB7XG4gICAgICAgICAgICB0aGlzLm93bmVyTmdNb2R1bGUuc2V0KGRlY2wsIG1vZHVsZVR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmdNb2R1bGVzV2l0aFNvbWVVbnJlc29sdmVkRGVjbHMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKi9cbiAgZ2V0Q29tcG9uZW50RGVwZW5kZW5jaWVzKHR5cGU6IENvbXBvbmVudFR5cGU8YW55PiwgcmF3SW1wb3J0cz86IFJhd1Njb3BlSW5mb0Zyb21EZWNvcmF0b3JbXSk6XG4gICAgICBDb21wb25lbnREZXBlbmRlbmNpZXMge1xuICAgIHRoaXMucmVzb2x2ZU5nTW9kdWxlc0RlY2xzKCk7XG5cbiAgICBjb25zdCBkZWYgPSBnZXRDb21wb25lbnREZWYodHlwZSk7XG4gICAgaWYgKGRlZiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0aW5nIHRvIGdldCBjb21wb25lbnQgZGVwZW5kZW5jaWVzIGZvciBhIHR5cGUgdGhhdCBpcyBub3QgYSBjb21wb25lbnQ6ICR7dHlwZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoZGVmLnN0YW5kYWxvbmUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUodHlwZSwgcmF3SW1wb3J0cyk7XG5cbiAgICAgIGlmIChzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkKSB7XG4gICAgICAgIHJldHVybiB7ZGVwZW5kZW5jaWVzOiBbXX07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlcGVuZGVuY2llczogW1xuICAgICAgICAgIC4uLnNjb3BlLmNvbXBpbGF0aW9uLmRpcmVjdGl2ZXMsXG4gICAgICAgICAgLi4uc2NvcGUuY29tcGlsYXRpb24ucGlwZXMsXG4gICAgICAgICAgLi4uc2NvcGUuY29tcGlsYXRpb24ubmdNb2R1bGVzLFxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMub3duZXJOZ01vZHVsZS5oYXModHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuUlVOVElNRV9ERVBTX09SUEhBTl9DT01QT05FTlQsXG4gICAgICAgICAgICBgT3JwaGFuIGNvbXBvbmVudCBmb3VuZCEgVHJ5aW5nIHRvIHJlbmRlciB0aGUgY29tcG9uZW50ICR7XG4gICAgICAgICAgICAgICAgdHlwZS5uYW1lfSB3aXRob3V0IGZpcnN0IGxvYWRpbmcgdGhlIE5nTW9kdWxlIHRoYXQgZGVjbGFyZXMgaXQuIE1ha2Ugc3VyZSB0aGF0IHlvdSBpbXBvcnQgdGhlIGNvbXBvbmVudCdzIE5nTW9kdWxlIGluIHRoZSBOZ01vZHVsZSBvciB0aGUgc3RhbmRhbG9uZSBjb21wb25lbnQgaW4gd2hpY2ggeW91IGFyZSB0cnlpbmcgdG8gcmVuZGVyIHRoaXMgY29tcG9uZW50LiBBbHNvIG1ha2Ugc3VyZSB0aGUgd2F5IHRoZSBhcHAgaXMgYnVuZGxlZCBhbmQgc2VydmVkIGFsd2F5cyBpbmNsdWRlcyB0aGUgY29tcG9uZW50J3MgTmdNb2R1bGUgYmVmb3JlIHRoZSBjb21wb25lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXROZ01vZHVsZVNjb3BlKHRoaXMub3duZXJOZ01vZHVsZS5nZXQodHlwZSkhKTtcblxuICAgICAgaWYgKHNjb3BlLmNvbXBpbGF0aW9uLmlzUG9pc29uZWQpIHtcbiAgICAgICAgcmV0dXJuIHtkZXBlbmRlbmNpZXM6IFtdfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBbXG4gICAgICAgICAgLi4uc2NvcGUuY29tcGlsYXRpb24uZGlyZWN0aXZlcyxcbiAgICAgICAgICAuLi5zY29wZS5jb21waWxhdGlvbi5waXBlcyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBvdmVycmlkZVxuICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IG1ha2UgdXNlIG9mIHBhcmFtIHNjb3BlSW5mbyBzaW5jZSBpdCBhc3N1bWVzIHRoZSBzY29wZSBpbmZvIGlzXG4gICAqIGFscmVhZHkgYWRkZWQgdG8gdGhlIHR5cGUgaXRzZWxmIHRocm91Z2ggbWV0aG9kcyBsaWtlIHtAbGluayDJtcm1c2V0TmdNb2R1bGVTY29wZX1cbiAgICovXG4gIHJlZ2lzdGVyTmdNb2R1bGUodHlwZTogVHlwZTxhbnk+LCBzY29wZUluZm86IE5nTW9kdWxlU2NvcGVJbmZvRnJvbURlY29yYXRvcik6IHZvaWQge1xuICAgIGlmICghaXNOZ01vZHVsZSh0eXBlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgVHlwZSB3aGljaCBpcyBub3QgTmdNb2R1bGUgYXMgTmdNb2R1bGU6ICR7dHlwZX1gKTtcbiAgICB9XG5cbiAgICAvLyBMYXppbHkgcHJvY2VzcyB0aGUgTmdNb2R1bGVzIGxhdGVyIHdoZW4gbmVlZGVkLlxuICAgIHRoaXMubmdNb2R1bGVzV2l0aFNvbWVVbnJlc29sdmVkRGVjbHMuYWRkKHR5cGUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqL1xuICBjbGVhclNjb3BlQ2FjaGVGb3IodHlwZTogVHlwZTxhbnk+KTogdm9pZCB7XG4gICAgaWYgKGlzTmdNb2R1bGUodHlwZSkpIHtcbiAgICAgIHRoaXMubmdNb2R1bGVzU2NvcGVDYWNoZS5kZWxldGUodHlwZSk7XG4gICAgfSBlbHNlIGlmIChpc0NvbXBvbmVudCh0eXBlKSkge1xuICAgICAgdGhpcy5zdGFuZGFsb25lQ29tcG9uZW50c1Njb3BlQ2FjaGUuZGVsZXRlKHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKi9cbiAgZ2V0TmdNb2R1bGVTY29wZSh0eXBlOiBOZ01vZHVsZVR5cGU8YW55Pik6IE5nTW9kdWxlU2NvcGUge1xuICAgIGlmICh0aGlzLm5nTW9kdWxlc1Njb3BlQ2FjaGUuaGFzKHR5cGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5uZ01vZHVsZXNTY29wZUNhY2hlLmdldCh0eXBlKSE7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NvcGUgPSB0aGlzLmNvbXB1dGVOZ01vZHVsZVNjb3BlKHR5cGUpO1xuICAgIHRoaXMubmdNb2R1bGVzU2NvcGVDYWNoZS5zZXQodHlwZSwgc2NvcGUpO1xuXG4gICAgcmV0dXJuIHNjb3BlO1xuICB9XG5cbiAgLyoqIENvbXB1dGUgTmdNb2R1bGUgc2NvcGUgYWZyZXNoLiAqL1xuICBwcml2YXRlIGNvbXB1dGVOZ01vZHVsZVNjb3BlKHR5cGU6IE5nTW9kdWxlVHlwZTxhbnk+KTogTmdNb2R1bGVTY29wZSB7XG4gICAgY29uc3QgZGVmID0gZ2V0TmdNb2R1bGVEZWYodHlwZSwgdHJ1ZSk7XG4gICAgY29uc3Qgc2NvcGU6IE5nTW9kdWxlU2NvcGUgPSB7XG4gICAgICBleHBvcnRlZDoge2RpcmVjdGl2ZXM6IG5ldyBTZXQoKSwgcGlwZXM6IG5ldyBTZXQoKX0sXG4gICAgICBjb21waWxhdGlvbjoge2RpcmVjdGl2ZXM6IG5ldyBTZXQoKSwgcGlwZXM6IG5ldyBTZXQoKX0sXG4gICAgfTtcblxuICAgIC8vIEFuYWx5emluZyBpbXBvcnRzXG4gICAgZm9yIChjb25zdCBpbXBvcnRlZCBvZiBtYXliZVVud3JhcEZuKGRlZi5pbXBvcnRzKSkge1xuICAgICAgaWYgKGlzTmdNb2R1bGUoaW1wb3J0ZWQpKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydGVkU2NvcGUgPSB0aGlzLmdldE5nTW9kdWxlU2NvcGUoaW1wb3J0ZWQpO1xuXG4gICAgICAgIC8vIFdoZW4gdGhpcyBtb2R1bGUgaW1wb3J0cyBhbm90aGVyLCB0aGUgaW1wb3J0ZWQgbW9kdWxlJ3MgZXhwb3J0ZWQgZGlyZWN0aXZlcyBhbmQgcGlwZXNcbiAgICAgICAgLy8gYXJlIGFkZGVkIHRvIHRoZSBjb21waWxhdGlvbiBzY29wZSBvZiB0aGlzIG1vZHVsZS5cbiAgICAgICAgYWRkU2V0KGltcG9ydGVkU2NvcGUuZXhwb3J0ZWQuZGlyZWN0aXZlcywgc2NvcGUuY29tcGlsYXRpb24uZGlyZWN0aXZlcyk7XG4gICAgICAgIGFkZFNldChpbXBvcnRlZFNjb3BlLmV4cG9ydGVkLnBpcGVzLCBzY29wZS5jb21waWxhdGlvbi5waXBlcyk7XG4gICAgICB9IGVsc2UgaWYgKGlzU3RhbmRhbG9uZShpbXBvcnRlZCkpIHtcbiAgICAgICAgaWYgKGlzRGlyZWN0aXZlKGltcG9ydGVkKSB8fCBpc0NvbXBvbmVudChpbXBvcnRlZCkpIHtcbiAgICAgICAgICBzY29wZS5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZChpbXBvcnRlZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQaXBlKGltcG9ydGVkKSkge1xuICAgICAgICAgIHNjb3BlLmNvbXBpbGF0aW9uLnBpcGVzLmFkZChpbXBvcnRlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVGhlIHN0YW5kYWxvbmUgdGhpbmcgaXMgbmVpdGhlciBhIGNvbXBvbmVudCBub3IgYSBkaXJlY3RpdmUgbm9yIGEgcGlwZSAuLi4gKHdoYXQ/KVxuICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuUlVOVElNRV9ERVBTX0lOVkFMSURfSU1QT1JURURfVFlQRSxcbiAgICAgICAgICAgICAgJ1RoZSBzdGFuZGFsb25lIGltcG9ydGVkIHR5cGUgaXMgbmVpdGhlciBhIGNvbXBvbmVudCBub3IgYSBkaXJlY3RpdmUgbm9yIGEgcGlwZScpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgaW1wb3J0IGlzIG5laXRoZXIgYSBtb2R1bGUgbm9yIGEgbW9kdWxlLXdpdGgtcHJvdmlkZXJzIG5vciBhIHN0YW5kYWxvbmUgdGhpbmcuIFRoaXNcbiAgICAgICAgLy8gaXMgZ29pbmcgdG8gYmUgYW4gZXJyb3IuIFNvIHdlIHNob3J0IGNpcmN1aXQuXG4gICAgICAgIHNjb3BlLmNvbXBpbGF0aW9uLmlzUG9pc29uZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbmFseXppbmcgZGVjbGFyYXRpb25zXG4gICAgaWYgKCFzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlY2wgb2YgbWF5YmVVbndyYXBGbihkZWYuZGVjbGFyYXRpb25zKSkge1xuICAgICAgICAvLyBDYW5ub3QgZGVjbGFyZSBhbm90aGVyIE5nTW9kdWxlIG9yIGEgc3RhbmRhbG9uZSB0aGluZ1xuICAgICAgICBpZiAoaXNOZ01vZHVsZShkZWNsKSB8fCBpc1N0YW5kYWxvbmUoZGVjbCkpIHtcbiAgICAgICAgICBzY29wZS5jb21waWxhdGlvbi5pc1BvaXNvbmVkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1BpcGUoZGVjbCkpIHtcbiAgICAgICAgICBzY29wZS5jb21waWxhdGlvbi5waXBlcy5hZGQoZGVjbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZGVjbCBpcyBlaXRoZXIgYSBkaXJlY3RpdmUgb3IgYSBjb21wb25lbnQuIFRoZSBjb21wb25lbnQgbWF5IG5vdCB5ZXQgaGF2ZSB0aGUgybVjbXAgZHVlXG4gICAgICAgICAgLy8gdG8gYXN5bmMgY29tcGlsYXRpb24uXG4gICAgICAgICAgc2NvcGUuY29tcGlsYXRpb24uZGlyZWN0aXZlcy5hZGQoZGVjbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbmFseXppbmcgZXhwb3J0c1xuICAgIGZvciAoY29uc3QgZXhwb3J0ZWQgb2YgbWF5YmVVbndyYXBGbihkZWYuZXhwb3J0cykpIHtcbiAgICAgIGlmIChpc05nTW9kdWxlKGV4cG9ydGVkKSkge1xuICAgICAgICAvLyBXaGVuIHRoaXMgbW9kdWxlIGV4cG9ydHMgYW5vdGhlciwgdGhlIGV4cG9ydGVkIG1vZHVsZSdzIGV4cG9ydGVkIGRpcmVjdGl2ZXMgYW5kIHBpcGVzXG4gICAgICAgIC8vIGFyZSBhZGRlZCB0byBib3RoIHRoZSBjb21waWxhdGlvbiBhbmQgZXhwb3J0ZWQgc2NvcGVzIG9mIHRoaXMgbW9kdWxlLlxuICAgICAgICBjb25zdCBleHBvcnRlZFNjb3BlID0gdGhpcy5nZXROZ01vZHVsZVNjb3BlKGV4cG9ydGVkKTtcblxuICAgICAgICAvLyBCYXNlZCBvbiB0aGUgY3VycmVudCBsb2dpYyB0aGVyZSBpcyBubyB3YXkgdG8gaGF2ZSBwb2lzb25lZCBleHBvcnRlZCBzY29wZS4gU28gbm8gbmVlZCB0b1xuICAgICAgICAvLyBjaGVjayBmb3IgaXQuXG4gICAgICAgIGFkZFNldChleHBvcnRlZFNjb3BlLmV4cG9ydGVkLmRpcmVjdGl2ZXMsIHNjb3BlLmV4cG9ydGVkLmRpcmVjdGl2ZXMpO1xuICAgICAgICBhZGRTZXQoZXhwb3J0ZWRTY29wZS5leHBvcnRlZC5waXBlcywgc2NvcGUuZXhwb3J0ZWQucGlwZXMpO1xuXG4gICAgICAgIC8vIFNvbWUgdGVzdCB0b29saW5ncyB3aGljaCBydW4gaW4gSklUIG1vZGUgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IgdGhhdCB0aGUgZXhwb3J0ZWQgc2NvcGVcbiAgICAgICAgLy8gc2hvdWxkIGFsc28gYmUgcHJlc2VudCBpbiB0aGUgY29tcGlsYXRpb24gc2NvcGUsIGV2ZW4gdGhvdWdoIEFvVCBkb2VzIG5vdCBzdXBwb3J0IHRoaXNcbiAgICAgICAgLy8gYW5kIGl0IGlzIGFsc28gaW4gb2RkcyB3aXRoIE5nTW9kdWxlIG1ldGFkYXRhIGRlZmluaXRpb25zLiBXaXRob3V0IHRoaXMgc29tZSB0ZXN0cyBpblxuICAgICAgICAvLyBHb29nbGUgd2lsbCBmYWlsLlxuICAgICAgICBhZGRTZXQoZXhwb3J0ZWRTY29wZS5leHBvcnRlZC5kaXJlY3RpdmVzLCBzY29wZS5jb21waWxhdGlvbi5kaXJlY3RpdmVzKTtcbiAgICAgICAgYWRkU2V0KGV4cG9ydGVkU2NvcGUuZXhwb3J0ZWQucGlwZXMsIHNjb3BlLmNvbXBpbGF0aW9uLnBpcGVzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNQaXBlKGV4cG9ydGVkKSkge1xuICAgICAgICBzY29wZS5leHBvcnRlZC5waXBlcy5hZGQoZXhwb3J0ZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NvcGUuZXhwb3J0ZWQuZGlyZWN0aXZlcy5hZGQoZXhwb3J0ZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKi9cbiAgZ2V0U3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlKHR5cGU6IENvbXBvbmVudFR5cGU8YW55PiwgcmF3SW1wb3J0cz86IFJhd1Njb3BlSW5mb0Zyb21EZWNvcmF0b3JbXSk6XG4gICAgICBTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUge1xuICAgIGlmICh0aGlzLnN0YW5kYWxvbmVDb21wb25lbnRzU2NvcGVDYWNoZS5oYXModHlwZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YW5kYWxvbmVDb21wb25lbnRzU2NvcGVDYWNoZS5nZXQodHlwZSkhO1xuICAgIH1cblxuICAgIGNvbnN0IGFucyA9IHRoaXMuY29tcHV0ZVN0YW5kYWxvbmVDb21wb25lbnRTY29wZSh0eXBlLCByYXdJbXBvcnRzKTtcbiAgICB0aGlzLnN0YW5kYWxvbmVDb21wb25lbnRzU2NvcGVDYWNoZS5zZXQodHlwZSwgYW5zKTtcblxuICAgIHJldHVybiBhbnM7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVTdGFuZGFsb25lQ29tcG9uZW50U2NvcGUoXG4gICAgICB0eXBlOiBDb21wb25lbnRUeXBlPGFueT4sXG4gICAgICByYXdJbXBvcnRzPzogUmF3U2NvcGVJbmZvRnJvbURlY29yYXRvcltdKTogU3RhbmRhbG9uZUNvbXBvbmVudFNjb3BlIHtcbiAgICBjb25zdCBhbnM6IFN0YW5kYWxvbmVDb21wb25lbnRTY29wZSA9IHtcbiAgICAgIGNvbXBpbGF0aW9uOiB7XG4gICAgICAgIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBhcmUgYWx3YXlzIGFibGUgdG8gc2VsZi1yZWZlcmVuY2UuXG4gICAgICAgIGRpcmVjdGl2ZXM6IG5ldyBTZXQoW3R5cGVdKSxcbiAgICAgICAgcGlwZXM6IG5ldyBTZXQoKSxcbiAgICAgICAgbmdNb2R1bGVzOiBuZXcgU2V0KCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHJhd0ltcG9ydCBvZiBmbGF0dGVuKHJhd0ltcG9ydHMgPz8gW10pKSB7XG4gICAgICBjb25zdCBpbXBvcnRlZCA9IHJlc29sdmVGb3J3YXJkUmVmKHJhd0ltcG9ydCkgYXMgVHlwZTxhbnk+O1xuXG4gICAgICB0cnkge1xuICAgICAgICB2ZXJpZnlTdGFuZGFsb25lSW1wb3J0KGltcG9ydGVkLCB0eXBlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBpZiBhbiBpbXBvcnQgaXMgbm90IHZhbGlkXG4gICAgICAgIGFucy5jb21waWxhdGlvbi5pc1BvaXNvbmVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGFucztcbiAgICAgIH1cblxuICAgICAgaWYgKGlzTmdNb2R1bGUoaW1wb3J0ZWQpKSB7XG4gICAgICAgIGFucy5jb21waWxhdGlvbi5uZ01vZHVsZXMuYWRkKGltcG9ydGVkKTtcbiAgICAgICAgY29uc3QgaW1wb3J0ZWRTY29wZSA9IHRoaXMuZ2V0TmdNb2R1bGVTY29wZShpbXBvcnRlZCk7XG5cbiAgICAgICAgLy8gU2hvcnQtY2lyY3VpdCBpZiBhbiBpbXBvcnRlZCBOZ01vZHVsZSBoYXMgY29ycnVwdGVkIGV4cG9ydGVkIHNjb3BlLlxuICAgICAgICBpZiAoaW1wb3J0ZWRTY29wZS5leHBvcnRlZC5pc1BvaXNvbmVkKSB7XG4gICAgICAgICAgYW5zLmNvbXBpbGF0aW9uLmlzUG9pc29uZWQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBhbnM7XG4gICAgICAgIH1cblxuICAgICAgICBhZGRTZXQoaW1wb3J0ZWRTY29wZS5leHBvcnRlZC5kaXJlY3RpdmVzLCBhbnMuY29tcGlsYXRpb24uZGlyZWN0aXZlcyk7XG4gICAgICAgIGFkZFNldChpbXBvcnRlZFNjb3BlLmV4cG9ydGVkLnBpcGVzLCBhbnMuY29tcGlsYXRpb24ucGlwZXMpO1xuICAgICAgfSBlbHNlIGlmIChpc1BpcGUoaW1wb3J0ZWQpKSB7XG4gICAgICAgIGFucy5jb21waWxhdGlvbi5waXBlcy5hZGQoaW1wb3J0ZWQpO1xuICAgICAgfSBlbHNlIGlmIChpc0RpcmVjdGl2ZShpbXBvcnRlZCkgfHwgaXNDb21wb25lbnQoaW1wb3J0ZWQpKSB7XG4gICAgICAgIGFucy5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZChpbXBvcnRlZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgaW1wb3J0ZWQgdGhpbmcgaXMgbm90IG1vZHVsZS9waXBlL2RpcmVjdGl2ZS9jb21wb25lbnQsIHNvIHdlIGVycm9yIGFuZCBzaG9ydC1jaXJjdWl0XG4gICAgICAgIC8vIGhlcmVcbiAgICAgICAgYW5zLmNvbXBpbGF0aW9uLmlzUG9pc29uZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gYW5zO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhbnM7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU2V0PFQ+KHNvdXJjZVNldDogU2V0PFQ+LCB0YXJnZXRTZXQ6IFNldDxUPik6IHZvaWQge1xuICBmb3IgKGNvbnN0IG0gb2Ygc291cmNlU2V0KSB7XG4gICAgdGFyZ2V0U2V0LmFkZChtKTtcbiAgfVxufVxuXG4vKiogVGhlIGRlcHMgdHJhY2tlciB0byBiZSB1c2VkIGluIHRoZSBjdXJyZW50IEFuZ3VsYXIgYXBwIGluIGRldiBtb2RlLiAqL1xuZXhwb3J0IGNvbnN0IGRlcHNUcmFja2VyID0gbmV3IERlcHNUcmFja2VyKCk7XG5cbmV4cG9ydCBjb25zdCBURVNUX09OTFkgPSB7RGVwc1RyYWNrZXJ9O1xuIl19
@@ -20,7 +20,7 @@ export { ComponentFactory, ComponentFactoryResolver, ComponentRef } from './comp
20
20
  export { ɵɵgetInheritedFactory } from './di';
21
21
  export { getLocaleId, setLocaleId } from './i18n/i18n_locale_id';
22
22
  // clang-format off
23
- export { detectChanges, store, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵdirectiveInject, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetCurrentView, ɵɵhostProperty, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵconditional, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, } from './instructions/all';
23
+ export { detectChanges, store, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵdirectiveInject, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetCurrentView, ɵɵhostProperty, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵconditional, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, } from './instructions/all';
24
24
  export { ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart } from './instructions/i18n';
25
25
  export { setClassMetadata, setClassMetadataAsync, } from './metadata';
26
26
  export { NgModuleFactory, NgModuleRef, createEnvironmentInjector } from './ng_module_ref';
@@ -34,4 +34,4 @@ export { ɵɵtemplateRefExtractor } from './view_engine_compatibility_prebound';
34
34
  export { ɵɵgetComponentDepsFactory } from './local_compilation';
35
35
  // clang-format on
36
36
  export { getComponent, getDirectiveMetadata, getDirectives, getHostElement, getRenderedText, LifecycleHooksFeature, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵStandaloneFeature, };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBaUQsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHMUssT0FBTyxFQUFDLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9E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QUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxrQkFBa0I7QUFFbEIsT0FBTyxFQVFMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxlQUFlLEVBQ2YscUJBQXFCLEVBR3JCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixZQUFZLEVBR1osdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUUxQix3QkFBd0IsRUFFeEIsb0JBQW9CLEVBRXBCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLG1CQUFtQixHQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0xpZmVjeWNsZUhvb2tzRmVhdHVyZX0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmltcG9ydCB7ybXJtWRlZmluZUNvbXBvbmVudCwgybXJtWRlZmluZURpcmVjdGl2ZSwgybXJtWRlZmluZU5nTW9kdWxlLCDJtcm1ZGVmaW5lUGlwZX0gZnJvbSAnLi9kZWZpbml0aW9uJztcbmltcG9ydCB7ybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9jb3B5X2RlZmluaXRpb25fZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaG9zdF9kaXJlY3RpdmVzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2luaGVyaXRfZGVmaW5pdGlvbl9mZWF0dXJlJztcbmltcG9ydCB7ybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaW5wdXRfdHJhbnNmb3Jtc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtU5nT25DaGFuZ2VzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9uZ19vbmNoYW5nZXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVQcm92aWRlcnNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL3Byb3ZpZGVyc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtVN0YW5kYWxvbmVGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL3N0YW5kYWxvbmVfZmVhdHVyZSc7XG5pbXBvcnQge0NvbXBvbmVudERlZiwgQ29tcG9uZW50VGVtcGxhdGUsIENvbXBvbmVudFR5cGUsIERpcmVjdGl2ZURlZiwgRGlyZWN0aXZlVHlwZSwgUGlwZURlZn0gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuaW1wb3J0IHvJtcm1Q29tcG9uZW50RGVjbGFyYXRpb24sIMm1ybVEaXJlY3RpdmVEZWNsYXJhdGlvbiwgybXJtUZhY3RvcnlEZWNsYXJhdGlvbiwgybXJtUluamVjdG9yRGVjbGFyYXRpb24sIMm1ybVOZ01vZHVsZURlY2xhcmF0aW9uLCDJtcm1UGlwZURlY2xhcmF0aW9ufSBmcm9tICcuL2ludGVyZmFjZXMvcHVibGljX2RlZmluaXRpb25zJztcbmltcG9ydCB7ybXJtXNldENvbXBvbmVudFNjb3BlLCDJtcm1c2V0TmdNb2R1bGVTY29wZX0gZnJvbSAnLi9zY29wZSc7XG5pbXBvcnQge0NvbXBvbmVudERlYnVnTWV0YWRhdGEsIERpcmVjdGl2ZURlYnVnTWV0YWRhdGEsIGdldENvbXBvbmVudCwgZ2V0RGlyZWN0aXZlTWV0YWRhdGEsIGdldERpcmVjdGl2ZXMsIGdldEhvc3RFbGVtZW50LCBnZXRSZW5kZXJlZFRleHR9IGZyb20gJy4vdXRpbC9kaXNjb3ZlcnlfdXRpbHMnO1xuXG5leHBvcnQge05nTW9kdWxlVHlwZX0gZnJvbSAnLi4vbWV0YWRhdGEvbmdfbW9kdWxlX2RlZic7XG5leHBvcnQge0NvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmfSBmcm9tICcuL2NvbXBvbmVudF9yZWYnO1xuZXhwb3J0IHvJtcm1Z2V0SW5oZXJpdGVkRmFjdG9yeX0gZnJvbSAnLi9kaSc7XG5leHBvcnQge2dldExvY2FsZUlkLCBzZXRMb2NhbGVJZH0gZnJvbSAnLi9pMThuL2kxOG5fbG9jYWxlX2lkJztcbi8vIGNsYW5nLWZvcm1hdCBvZmZcbmV4cG9ydCB7XG4gIGRldGVjdENoYW5nZXMsXG4gIHN0b3JlLFxuICDJtcm1YWR2YW5jZSxcblxuICDJtcm1YXR0cmlidXRlLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVjbGFzc01hcCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUxLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTIsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU0LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTUsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU3LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTgsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlVixcblxuICDJtcm1Y2xhc3NQcm9wLFxuXG4gIMm1ybVjb21wb25lbnRJbnN0YW5jZSxcblxuICDJtcm1ZGlyZWN0aXZlSW5qZWN0LFxuXG4gIMm1ybVlbGVtZW50LFxuXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyLFxuICDJtcm1ZWxlbWVudENvbnRhaW5lckVuZCxcbiAgybXJtWVsZW1lbnRDb250YWluZXJTdGFydCxcbiAgybXJtWVsZW1lbnRFbmQsXG4gIMm1ybVlbGVtZW50U3RhcnQsXG5cbiAgybXJtWdldEN1cnJlbnRWaWV3LFxuICDJtcm1aG9zdFByb3BlcnR5LFxuICDJtcm1aW5qZWN0QXR0cmlidXRlLFxuICDJtcm1aW52YWxpZEZhY3RvcnksXG5cbiAgybXJtWxpc3RlbmVyLFxuXG4gIMm1ybVuYW1lc3BhY2VIVE1MLFxuICDJtcm1bmFtZXNwYWNlTWF0aE1MLFxuICDJtcm1bmFtZXNwYWNlU1ZHLFxuXG4gIMm1ybVuZXh0Q29udGV4dCxcblxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXJlZmVyZW5jZSxcblxuICDJtcm1cmVwZWF0ZXIsXG4gIMm1ybVyZXBlYXRlckNyZWF0ZSxcbiAgybXJtXJlcGVhdGVyVHJhY2tCeUlkZW50aXR5LFxuICDJtcm1cmVwZWF0ZXJUcmFja0J5SW5kZXgsXG5cbiAgybXJtXN0eWxlTWFwLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVzdHlsZVByb3AsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lcixcbiAgybXJtXN5bnRoZXRpY0hvc3RQcm9wZXJ0eSxcblxuICDJtcm1dGVtcGxhdGUsXG5cbiAgybXJtWNvbmRpdGlvbmFsLFxuXG4gIMm1ybVkZWZlcixcbiAgybXJtWRlZmVyV2hlbixcbiAgybXJtWRlZmVyT25JZGxlLFxuICDJtcm1ZGVmZXJPbkltbWVkaWF0ZSxcbiAgybXJtWRlZmVyT25UaW1lcixcbiAgybXJtWRlZmVyT25Ib3ZlcixcbiAgybXJtWRlZmVyT25JbnRlcmFjdGlvbixcbiAgybXJtWRlZmVyT25WaWV3cG9ydCxcbiAgybXJtWRlZmVyUHJlZmV0Y2hXaGVuLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSWRsZSxcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkltbWVkaWF0ZSxcbiAgybXJtWRlZmVyUHJlZmV0Y2hPblRpbWVyLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSG92ZXIsXG4gIMm1ybVkZWZlclByZWZldGNoT25JbnRlcmFjdGlvbixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPblZpZXdwb3J0LFxuXG4gIMm1ybV0ZXh0LFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxuICDJtWdldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1Z2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlLFxuXG4gIERlZmVyQmxvY2tEZXBlbmRlbmN5SW50ZXJjZXB0b3IgYXMgybVEZWZlckJsb2NrRGVwZW5kZW5jeUludGVyY2VwdG9yLFxuICBERUZFUl9CTE9DS19ERVBFTkRFTkNZX0lOVEVSQ0VQVE9SIGFzIMm1REVGRVJfQkxPQ0tfREVQRU5ERU5DWV9JTlRFUkNFUFRPUixcbn0gZnJvbSAnLi9pbnN0cnVjdGlvbnMvYWxsJztcbmV4cG9ydCB7ybXJtWkxOG4sIMm1ybVpMThuQXBwbHksIMm1ybVpMThuQXR0cmlidXRlcywgybXJtWkxOG5FbmQsIMm1ybVpMThuRXhwLMm1ybVpMThuUG9zdHByb2Nlc3MsIMm1ybVpMThuU3RhcnR9IGZyb20gJy4vaW5zdHJ1Y3Rpb25zL2kxOG4nO1xuZXhwb3J0IHtSZW5kZXJGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyXG59IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmV4cG9ydCB7Q3NzU2VsZWN0b3JMaXN0LCBQcm9qZWN0aW9uU2xvdHN9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcbmV4cG9ydCB7XG4gIHNldENsYXNzTWV0YWRhdGEsXG4gIHNldENsYXNzTWV0YWRhdGFBc3luYyxcbn0gZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQge05nTW9kdWxlRmFjdG9yeSwgTmdNb2R1bGVSZWYsIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4vbmdfbW9kdWxlX3JlZic7XG5leHBvcnQge1xuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbn0gZnJvbSAnLi9waXBlJztcbmV4cG9ydCB7XG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxufSBmcm9tICcuL3B1cmVfZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXZpZXdRdWVyeX0gZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQge1xuICDJtcm1ZGlzYWJsZUJpbmRpbmdzLFxuXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc3RvcmVWaWV3LFxufSBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCB7Tk9fQ0hBTkdFfSBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgeyDJtcm1cmVzb2x2ZUJvZHksIMm1ybVyZXNvbHZlRG9jdW1lbnQsybXJtXJlc29sdmVXaW5kb3d9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmV4cG9ydCB7IMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcn0gZnJvbSAnLi92aWV3X2VuZ2luZV9jb21wYXRpYmlsaXR5X3ByZWJvdW5kJztcbmV4cG9ydCB7ybXJtWdldENvbXBvbmVudERlcHNGYWN0b3J5fSBmcm9tICcuL2xvY2FsX2NvbXBpbGF0aW9uJztcbi8vIGNsYW5nLWZvcm1hdCBvblxuXG5leHBvcnQge1xuICBDb21wb25lbnREZWJ1Z01ldGFkYXRhLFxuICBDb21wb25lbnREZWYsXG4gIENvbXBvbmVudFRlbXBsYXRlLFxuICBDb21wb25lbnRUeXBlLFxuICBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLFxuICBEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZVR5cGUsXG4gIGdldENvbXBvbmVudCxcbiAgZ2V0RGlyZWN0aXZlTWV0YWRhdGEsXG4gIGdldERpcmVjdGl2ZXMsXG4gIGdldEhvc3RFbGVtZW50LFxuICBnZXRSZW5kZXJlZFRleHQsXG4gIExpZmVjeWNsZUhvb2tzRmVhdHVyZSxcbiAgUGlwZURlZixcbiAgybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLFxuICDJtcm1Q29weURlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sXG4gIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sXG4gIMm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUsXG4gIMm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLFxuICDJtcm1SW5wdXRUcmFuc2Zvcm1zRmVhdHVyZSxcbiAgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sXG4gIMm1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUsXG4gIMm1ybVQaXBlRGVjbGFyYXRpb24sXG4gIMm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICDJtcm1c2V0Q29tcG9uZW50U2NvcGUsXG4gIMm1ybVzZXROZ01vZHVsZVNjb3BlLFxuICDJtcm1U3RhbmRhbG9uZUZlYXR1cmUsXG59O1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBaUQsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHMUssT0FBTyxFQUFDLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9E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QUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGNBQWMsRUFDZCxXQUFXLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsR0FDZCxNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsa0JBQWtCO0FBRWxCLE9BQU8sRUFRTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixjQUFjLEVBQ2QsZUFBZSxFQUNmLHFCQUFxQixFQUdyQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUdaLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFFMUIsd0JBQXdCLEVBRXhCLG9CQUFvQixFQUVwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMaWZlY3ljbGVIb29rc0ZlYXR1cmV9IGZyb20gJy4vY29tcG9uZW50X3JlZic7XG5pbXBvcnQge8m1ybVkZWZpbmVDb21wb25lbnQsIMm1ybVkZWZpbmVEaXJlY3RpdmUsIMm1ybVkZWZpbmVOZ01vZHVsZSwgybXJtWRlZmluZVBpcGV9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5pbXBvcnQge8m1ybVDb3B5RGVmaW5pdGlvbkZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvY29weV9kZWZpbml0aW9uX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2hvc3RfZGlyZWN0aXZlc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9pbmhlcml0X2RlZmluaXRpb25fZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2lucHV0X3RyYW5zZm9ybXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVOZ09uQ2hhbmdlc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvbmdfb25jaGFuZ2VzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1UHJvdmlkZXJzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9wcm92aWRlcnNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVTdGFuZGFsb25lRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9zdGFuZGFsb25lX2ZlYXR1cmUnO1xuaW1wb3J0IHtDb21wb25lbnREZWYsIENvbXBvbmVudFRlbXBsYXRlLCBDb21wb25lbnRUeXBlLCBEaXJlY3RpdmVEZWYsIERpcmVjdGl2ZVR5cGUsIFBpcGVEZWZ9IGZyb20gJy4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7ybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLCDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLCDJtcm1TmdNb2R1bGVEZWNsYXJhdGlvbiwgybXJtVBpcGVEZWNsYXJhdGlvbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3B1YmxpY19kZWZpbml0aW9ucyc7XG5pbXBvcnQge8m1ybVzZXRDb21wb25lbnRTY29wZSwgybXJtXNldE5nTW9kdWxlU2NvcGV9IGZyb20gJy4vc2NvcGUnO1xuaW1wb3J0IHtDb21wb25lbnREZWJ1Z01ldGFkYXRhLCBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLCBnZXRDb21wb25lbnQsIGdldERpcmVjdGl2ZU1ldGFkYXRhLCBnZXREaXJlY3RpdmVzLCBnZXRIb3N0RWxlbWVudCwgZ2V0UmVuZGVyZWRUZXh0fSBmcm9tICcuL3V0aWwvZGlzY292ZXJ5X3V0aWxzJztcblxuZXhwb3J0IHtOZ01vZHVsZVR5cGV9IGZyb20gJy4uL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuZXhwb3J0IHtDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZn0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmV4cG9ydCB7ybXJtWdldEluaGVyaXRlZEZhY3Rvcnl9IGZyb20gJy4vZGknO1xuZXhwb3J0IHtnZXRMb2NhbGVJZCwgc2V0TG9jYWxlSWR9IGZyb20gJy4vaTE4bi9pMThuX2xvY2FsZV9pZCc7XG4vLyBjbGFuZy1mb3JtYXQgb2ZmXG5leHBvcnQge1xuICBkZXRlY3RDaGFuZ2VzLFxuICBzdG9yZSxcbiAgybXJtWFkdmFuY2UsXG5cbiAgybXJtWF0dHJpYnV0ZSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcblxuICDJtcm1Y2xhc3NNYXAsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtWNsYXNzUHJvcCxcblxuICDJtcm1Y29tcG9uZW50SW5zdGFuY2UsXG5cbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcblxuICDJtcm1ZWxlbWVudCxcblxuICDJtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuXG4gIMm1ybVnZXRDdXJyZW50VmlldyxcbiAgybXJtWhvc3RQcm9wZXJ0eSxcbiAgybXJtWluamVjdEF0dHJpYnV0ZSxcbiAgybXJtWludmFsaWRGYWN0b3J5LFxuXG4gIMm1ybVsaXN0ZW5lcixcblxuICDJtcm1bmFtZXNwYWNlSFRNTCxcbiAgybXJtW5hbWVzcGFjZU1hdGhNTCxcbiAgybXJtW5hbWVzcGFjZVNWRyxcblxuICDJtcm1bmV4dENvbnRleHQsXG5cbiAgybXJtXByb2plY3Rpb24sXG4gIMm1ybVwcm9qZWN0aW9uRGVmLFxuICDJtcm1cHJvcGVydHksXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlOCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVyZWZlcmVuY2UsXG5cbiAgybXJtXJlcGVhdGVyLFxuICDJtcm1cmVwZWF0ZXJDcmVhdGUsXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJZGVudGl0eSxcbiAgybXJtXJlcGVhdGVyVHJhY2tCeUluZGV4LFxuXG4gIMm1ybVzdHlsZU1hcCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlVixcblxuICDJtcm1c3R5bGVQcm9wLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXIsXG4gIMm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHksXG5cbiAgybXJtXRlbXBsYXRlLFxuXG4gIMm1ybVjb25kaXRpb25hbCxcblxuICDJtcm1ZGVmZXIsXG4gIMm1ybVkZWZlcldoZW4sXG4gIMm1ybVkZWZlck9uSWRsZSxcbiAgybXJtWRlZmVyT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlck9uVGltZXIsXG4gIMm1ybVkZWZlck9uSG92ZXIsXG4gIMm1ybVkZWZlck9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlck9uVmlld3BvcnQsXG4gIMm1ybVkZWZlclByZWZldGNoV2hlbixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbklkbGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25UaW1lcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkhvdmVyLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlclByZWZldGNoT25WaWV3cG9ydCxcblxuICDJtcm1dGV4dCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTEsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUyLFxuICDJtcm1dGV4dEludGVycG9sYXRlMyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTQsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU1LFxuICDJtcm1dGV4dEludGVycG9sYXRlNixcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTcsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU4LFxuICDJtcm1dGV4dEludGVycG9sYXRlVixcbiAgybVnZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93bkVsZW1lbnRTdHJpY3RNb2RlLFxuICDJtWdldFVua25vd25Qcm9wZXJ0eVN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcblxuICBEZWZlckJsb2NrRGVwZW5kZW5jeUludGVyY2VwdG9yIGFzIMm1RGVmZXJCbG9ja0RlcGVuZGVuY3lJbnRlcmNlcHRvcixcbiAgREVGRVJfQkxPQ0tfREVQRU5ERU5DWV9JTlRFUkNFUFRPUiBhcyDJtURFRkVSX0JMT0NLX0RFUEVOREVOQ1lfSU5URVJDRVBUT1IsXG4gIERFRkVSX0JMT0NLX0NPTkZJRyBhcyDJtURFRkVSX0JMT0NLX0NPTkZJRyxcbn0gZnJvbSAnLi9pbnN0cnVjdGlvbnMvYWxsJztcbmV4cG9ydCB7ybXJtWkxOG4sIMm1ybVpMThuQXBwbHksIMm1ybVpMThuQXR0cmlidXRlcywgybXJtWkxOG5FbmQsIMm1ybVpMThuRXhwLMm1ybVpMThuUG9zdHByb2Nlc3MsIMm1ybVpMThuU3RhcnR9IGZyb20gJy4vaW5zdHJ1Y3Rpb25zL2kxOG4nO1xuZXhwb3J0IHtSZW5kZXJGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyXG59IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmV4cG9ydCB7Q3NzU2VsZWN0b3JMaXN0LCBQcm9qZWN0aW9uU2xvdHN9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcbmV4cG9ydCB7XG4gIHNldENsYXNzTWV0YWRhdGEsXG4gIHNldENsYXNzTWV0YWRhdGFBc3luYyxcbn0gZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQge05nTW9kdWxlRmFjdG9yeSwgTmdNb2R1bGVSZWYsIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4vbmdfbW9kdWxlX3JlZic7XG5leHBvcnQge1xuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbn0gZnJvbSAnLi9waXBlJztcbmV4cG9ydCB7XG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxufSBmcm9tICcuL3B1cmVfZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXZpZXdRdWVyeX0gZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQge1xuICDJtcm1ZGlzYWJsZUJpbmRpbmdzLFxuXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc3RvcmVWaWV3LFxufSBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCB7Tk9fQ0hBTkdFfSBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgeyDJtcm1cmVzb2x2ZUJvZHksIMm1ybVyZXNvbHZlRG9jdW1lbnQsybXJtXJlc29sdmVXaW5kb3d9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmV4cG9ydCB7IMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcn0gZnJvbSAnLi92aWV3X2VuZ2luZV9jb21wYXRpYmlsaXR5X3ByZWJvdW5kJztcbmV4cG9ydCB7ybXJtWdldENvbXBvbmVudERlcHNGYWN0b3J5fSBmcm9tICcuL2xvY2FsX2NvbXBpbGF0aW9uJztcbi8vIGNsYW5nLWZvcm1hdCBvblxuXG5leHBvcnQge1xuICBDb21wb25lbnREZWJ1Z01ldGFkYXRhLFxuICBDb21wb25lbnREZWYsXG4gIENvbXBvbmVudFRlbXBsYXRlLFxuICBDb21wb25lbnRUeXBlLFxuICBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLFxuICBEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZVR5cGUsXG4gIGdldENvbXBvbmVudCxcbiAgZ2V0RGlyZWN0aXZlTWV0YWRhdGEsXG4gIGdldERpcmVjdGl2ZXMsXG4gIGdldEhvc3RFbGVtZW50LFxuICBnZXRSZW5kZXJlZFRleHQsXG4gIExpZmVjeWNsZUhvb2tzRmVhdHVyZSxcbiAgUGlwZURlZixcbiAgybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLFxuICDJtcm1Q29weURlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sXG4gIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sXG4gIMm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUsXG4gIMm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLFxuICDJtcm1SW5wdXRUcmFuc2Zvcm1zRmVhdHVyZSxcbiAgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sXG4gIMm1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUsXG4gIMm1ybVQaXBlRGVjbGFyYXRpb24sXG4gIMm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICDJtcm1c2V0Q29tcG9uZW50U2NvcGUsXG4gIMm1ybVzZXROZ01vZHVsZVNjb3BlLFxuICDJtcm1U3RhbmRhbG9uZUZlYXR1cmUsXG59O1xuIl19