@ngxs/store 3.7.5 → 3.7.6-dev.master-95e4742

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 (71) hide show
  1. package/bundles/ngxs-store-operators.umd.js +13 -12
  2. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  3. package/bundles/ngxs-store-operators.umd.min.js +1 -1
  4. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store.umd.js +611 -485
  6. package/bundles/ngxs-store.umd.js.map +1 -1
  7. package/bundles/ngxs-store.umd.min.js +1 -1
  8. package/bundles/ngxs-store.umd.min.js.map +1 -1
  9. package/esm2015/ngxs-store.js +6 -5
  10. package/esm2015/operators/append.js +3 -3
  11. package/esm2015/operators/compose.js +1 -1
  12. package/esm2015/operators/iif.js +1 -1
  13. package/esm2015/operators/index.js +1 -1
  14. package/esm2015/operators/insert-item.js +3 -3
  15. package/esm2015/operators/patch.js +4 -5
  16. package/esm2015/operators/update-item.js +7 -5
  17. package/esm2015/operators/utils.js +1 -1
  18. package/esm2015/src/actions-stream.js +16 -6
  19. package/esm2015/src/internal/dispatcher.js +14 -36
  20. package/esm2015/src/internal/error-handler.js +118 -0
  21. package/esm2015/src/internal/internals.js +2 -27
  22. package/esm2015/src/internal/lifecycle-state-manager.js +85 -38
  23. package/esm2015/src/internal/state-context-factory.js +1 -12
  24. package/esm2015/src/internal/state-factory.js +4 -4
  25. package/esm2015/src/operators/of-action.js +7 -1
  26. package/esm2015/src/public_api.js +1 -1
  27. package/esm5/ngxs-store.js +6 -5
  28. package/esm5/operators/append.js +3 -3
  29. package/esm5/operators/compose.js +1 -1
  30. package/esm5/operators/iif.js +1 -1
  31. package/esm5/operators/index.js +1 -1
  32. package/esm5/operators/insert-item.js +3 -3
  33. package/esm5/operators/patch.js +4 -5
  34. package/esm5/operators/update-item.js +7 -5
  35. package/esm5/operators/utils.js +1 -1
  36. package/esm5/src/actions-stream.js +22 -7
  37. package/esm5/src/internal/dispatcher.js +13 -37
  38. package/esm5/src/internal/error-handler.js +125 -0
  39. package/esm5/src/internal/internals.js +2 -27
  40. package/esm5/src/internal/lifecycle-state-manager.js +97 -50
  41. package/esm5/src/internal/state-context-factory.js +1 -12
  42. package/esm5/src/internal/state-factory.js +4 -4
  43. package/esm5/src/operators/of-action.js +7 -1
  44. package/esm5/src/public_api.js +1 -1
  45. package/fesm2015/ngxs-store-operators.js +13 -12
  46. package/fesm2015/ngxs-store-operators.js.map +1 -1
  47. package/fesm2015/ngxs-store.js +459 -343
  48. package/fesm2015/ngxs-store.js.map +1 -1
  49. package/fesm5/ngxs-store-operators.js +13 -12
  50. package/fesm5/ngxs-store-operators.js.map +1 -1
  51. package/fesm5/ngxs-store.js +608 -483
  52. package/fesm5/ngxs-store.js.map +1 -1
  53. package/ngxs-store.d.ts +6 -5
  54. package/ngxs-store.metadata.json +1 -1
  55. package/operators/append.d.ts +2 -2
  56. package/operators/compose.d.ts +2 -1
  57. package/operators/iif.d.ts +2 -2
  58. package/operators/index.d.ts +1 -1
  59. package/operators/insert-item.d.ts +2 -2
  60. package/operators/ngxs-store-operators.metadata.json +1 -1
  61. package/operators/patch.d.ts +2 -6
  62. package/operators/update-item.d.ts +2 -2
  63. package/operators/utils.d.ts +2 -1
  64. package/package.json +3 -3
  65. package/src/actions-stream.d.ts +4 -2
  66. package/src/internal/dispatcher.d.ts +3 -4
  67. package/src/internal/error-handler.d.ts +23 -0
  68. package/src/internal/internals.d.ts +1 -6
  69. package/src/internal/lifecycle-state-manager.d.ts +16 -15
  70. package/src/operators/of-action.d.ts +20 -7
  71. package/src/public_api.d.ts +1 -1
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { ErrorHandler, Injectable, Injector } from '@angular/core';
6
+ import { Observable } from 'rxjs';
7
+ import { leaveNgxs } from '../operators/leave-ngxs';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * This operator is used for piping the observable result
11
+ * from the `dispatch()`. It has a "smart" error handling
12
+ * strategy that allows us to decide whether we propagate
13
+ * errors to Angular's `ErrorHandler` or enable users to
14
+ * handle them manually. We consider following cases:
15
+ * 1) `store.dispatch()` (no subscribe) -> call `handleError()`
16
+ * 2) `store.dispatch().subscribe()` (no error callback) -> call `handleError()`
17
+ * 3) `store.dispatch().subscribe({ error: ... })` -> don't call `handleError()`
18
+ * 4) `toPromise()` without `catch` -> do `handleError()`
19
+ * 5) `toPromise()` with `catch` -> don't `handleError()`
20
+ * @template T
21
+ * @param {?} internalErrorReporter
22
+ * @param {?} ngxsExecutionStrategy
23
+ * @return {?}
24
+ */
25
+ export function ngxsErrorHandler(internalErrorReporter, ngxsExecutionStrategy) {
26
+ return (/**
27
+ * @param {?} source
28
+ * @return {?}
29
+ */
30
+ function (source) {
31
+ /** @type {?} */
32
+ var subscribed = false;
33
+ source.subscribe({
34
+ error: (/**
35
+ * @param {?} error
36
+ * @return {?}
37
+ */
38
+ function (error) {
39
+ // Do not trigger change detection for a microtask. This depends on the execution
40
+ // strategy being used, but the default `DispatchOutsideZoneNgxsExecutionStrategy`
41
+ // leaves the Angular zone.
42
+ ngxsExecutionStrategy.enter((/**
43
+ * @return {?}
44
+ */
45
+ function () {
46
+ return Promise.resolve().then((/**
47
+ * @return {?}
48
+ */
49
+ function () {
50
+ if (!subscribed) {
51
+ ngxsExecutionStrategy.leave((/**
52
+ * @return {?}
53
+ */
54
+ function () {
55
+ return internalErrorReporter.reportErrorSafely(error);
56
+ }));
57
+ }
58
+ }));
59
+ }));
60
+ })
61
+ });
62
+ return new Observable((/**
63
+ * @param {?} subscriber
64
+ * @return {?}
65
+ */
66
+ function (subscriber) {
67
+ subscribed = true;
68
+ return source.pipe(leaveNgxs(ngxsExecutionStrategy)).subscribe(subscriber);
69
+ }));
70
+ });
71
+ }
72
+ var InternalErrorReporter = /** @class */ (function () {
73
+ function InternalErrorReporter(_injector) {
74
+ this._injector = _injector;
75
+ /**
76
+ * Will be set lazily to be backward compatible.
77
+ */
78
+ this._errorHandler = (/** @type {?} */ (null));
79
+ }
80
+ /**
81
+ * @param {?} error
82
+ * @return {?}
83
+ */
84
+ InternalErrorReporter.prototype.reportErrorSafely = /**
85
+ * @param {?} error
86
+ * @return {?}
87
+ */
88
+ function (error) {
89
+ if (this._errorHandler === null) {
90
+ this._errorHandler = this._injector.get(ErrorHandler);
91
+ }
92
+ // The `try-catch` is used to avoid handling the error twice. Suppose we call
93
+ // `handleError` which re-throws the error internally. The re-thrown error will
94
+ // be caught by zone.js which will then get to the `zone.onError.emit()` and the
95
+ // `onError` subscriber will call `handleError` again.
96
+ try {
97
+ this._errorHandler.handleError(error);
98
+ }
99
+ catch (_a) { }
100
+ };
101
+ InternalErrorReporter.decorators = [
102
+ { type: Injectable, args: [{ providedIn: 'root' },] }
103
+ ];
104
+ /** @nocollapse */
105
+ InternalErrorReporter.ctorParameters = function () { return [
106
+ { type: Injector }
107
+ ]; };
108
+ /** @nocollapse */ InternalErrorReporter.ngInjectableDef = i0.defineInjectable({ factory: function InternalErrorReporter_Factory() { return new InternalErrorReporter(i0.inject(i0.INJECTOR)); }, token: InternalErrorReporter, providedIn: "root" });
109
+ return InternalErrorReporter;
110
+ }());
111
+ export { InternalErrorReporter };
112
+ if (false) {
113
+ /**
114
+ * Will be set lazily to be backward compatible.
115
+ * @type {?}
116
+ * @private
117
+ */
118
+ InternalErrorReporter.prototype._errorHandler;
119
+ /**
120
+ * @type {?}
121
+ * @private
122
+ */
123
+ InternalErrorReporter.prototype._injector;
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZXBELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIscUJBQTRDLEVBQzVDLHFCQUE0QztJQUU1Qzs7OztJQUFPLFVBQUMsTUFBcUI7O1lBQ3ZCLFVBQVUsR0FBRyxLQUFLO1FBRXRCLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixLQUFLOzs7O1lBQUUsVUFBQSxLQUFLO2dCQUNWLGlGQUFpRjtnQkFDakYsa0ZBQWtGO2dCQUNsRiwyQkFBMkI7Z0JBQzNCLHFCQUFxQixDQUFDLEtBQUs7OztnQkFBQztvQkFDMUIsT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O29CQUFDO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFOzRCQUNmLHFCQUFxQixDQUFDLEtBQUs7Ozs0QkFBQztnQ0FDMUIsT0FBQSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7NEJBQTlDLENBQThDLEVBQy9DLENBQUM7eUJBQ0g7b0JBQ0gsQ0FBQyxFQUFDO2dCQU5GLENBTUUsRUFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFBO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLFVBQVU7Ozs7UUFBQyxVQUFBLFVBQVU7WUFDOUIsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0UsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7QUFDSixDQUFDO0FBRUQ7SUFLRSwrQkFBb0IsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTs7OztRQUYvQixrQkFBYSxHQUFpQixtQkFBQSxJQUFJLEVBQUMsQ0FBQztJQUVGLENBQUM7Ozs7O0lBRTNDLGlEQUFpQjs7OztJQUFqQixVQUFrQixLQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELDZFQUE2RTtRQUM3RSwrRUFBK0U7UUFDL0UsZ0ZBQWdGO1FBQ2hGLHNEQUFzRDtRQUN0RCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFBQyxXQUFNLEdBQUU7SUFDWixDQUFDOztnQkFsQkYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztnQkFqREMsUUFBUTs7O2dDQUEzQztDQW9FQyxBQW5CRCxJQW1CQztTQWxCWSxxQkFBcUI7Ozs7Ozs7SUFFaEMsOENBQTRDOzs7OztJQUVoQywwQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4uL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcbmltcG9ydCB7IE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIG9wZXJhdG9yIGlzIHVzZWQgZm9yIHBpcGluZyB0aGUgb2JzZXJ2YWJsZSByZXN1bHRcbiAqIGZyb20gdGhlIGBkaXNwYXRjaCgpYC4gSXQgaGFzIGEgXCJzbWFydFwiIGVycm9yIGhhbmRsaW5nXG4gKiBzdHJhdGVneSB0aGF0IGFsbG93cyB1cyB0byBkZWNpZGUgd2hldGhlciB3ZSBwcm9wYWdhdGVcbiAqIGVycm9ycyB0byBBbmd1bGFyJ3MgYEVycm9ySGFuZGxlcmAgb3IgZW5hYmxlIHVzZXJzIHRvXG4gKiBoYW5kbGUgdGhlbSBtYW51YWxseS4gV2UgY29uc2lkZXIgZm9sbG93aW5nIGNhc2VzOlxuICogMSkgYHN0b3JlLmRpc3BhdGNoKClgIChubyBzdWJzY3JpYmUpIC0+IGNhbGwgYGhhbmRsZUVycm9yKClgXG4gKiAyKSBgc3RvcmUuZGlzcGF0Y2goKS5zdWJzY3JpYmUoKWAgKG5vIGVycm9yIGNhbGxiYWNrKSAtPiBjYWxsIGBoYW5kbGVFcnJvcigpYFxuICogMykgYHN0b3JlLmRpc3BhdGNoKCkuc3Vic2NyaWJlKHsgZXJyb3I6IC4uLiB9KWAgLT4gZG9uJ3QgY2FsbCBgaGFuZGxlRXJyb3IoKWBcbiAqIDQpIGB0b1Byb21pc2UoKWAgd2l0aG91dCBgY2F0Y2hgIC0+IGRvIGBoYW5kbGVFcnJvcigpYFxuICogNSkgYHRvUHJvbWlzZSgpYCB3aXRoIGBjYXRjaGAgLT4gZG9uJ3QgYGhhbmRsZUVycm9yKClgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZ3hzRXJyb3JIYW5kbGVyPFQ+KFxuICBpbnRlcm5hbEVycm9yUmVwb3J0ZXI6IEludGVybmFsRXJyb3JSZXBvcnRlcixcbiAgbmd4c0V4ZWN1dGlvblN0cmF0ZWd5OiBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbikge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIGxldCBzdWJzY3JpYmVkID0gZmFsc2U7XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgIC8vIERvIG5vdCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGEgbWljcm90YXNrLiBUaGlzIGRlcGVuZHMgb24gdGhlIGV4ZWN1dGlvblxuICAgICAgICAvLyBzdHJhdGVneSBiZWluZyB1c2VkLCBidXQgdGhlIGRlZmF1bHQgYERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lgXG4gICAgICAgIC8vIGxlYXZlcyB0aGUgQW5ndWxhciB6b25lLlxuICAgICAgICBuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghc3Vic2NyaWJlZCkge1xuICAgICAgICAgICAgICBuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kubGVhdmUoKCkgPT5cbiAgICAgICAgICAgICAgICBpbnRlcm5hbEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3JTYWZlbHkoZXJyb3IpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IHtcbiAgICAgIHN1YnNjcmliZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGxlYXZlTmd4cyhuZ3hzRXhlY3V0aW9uU3RyYXRlZ3kpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSk7XG4gIH07XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxFcnJvclJlcG9ydGVyIHtcbiAgLyoqIFdpbGwgYmUgc2V0IGxhemlseSB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlLiAqL1xuICBwcml2YXRlIF9lcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlciA9IG51bGwhO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge31cblxuICByZXBvcnRFcnJvclNhZmVseShlcnJvcjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Vycm9ySGFuZGxlciA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyID0gdGhpcy5faW5qZWN0b3IuZ2V0KEVycm9ySGFuZGxlcik7XG4gICAgfVxuICAgIC8vIFRoZSBgdHJ5LWNhdGNoYCBpcyB1c2VkIHRvIGF2b2lkIGhhbmRsaW5nIHRoZSBlcnJvciB0d2ljZS4gU3VwcG9zZSB3ZSBjYWxsXG4gICAgLy8gYGhhbmRsZUVycm9yYCB3aGljaCByZS10aHJvd3MgdGhlIGVycm9yIGludGVybmFsbHkuIFRoZSByZS10aHJvd24gZXJyb3Igd2lsbFxuICAgIC8vIGJlIGNhdWdodCBieSB6b25lLmpzIHdoaWNoIHdpbGwgdGhlbiBnZXQgdG8gdGhlIGB6b25lLm9uRXJyb3IuZW1pdCgpYCBhbmQgdGhlXG4gICAgLy8gYG9uRXJyb3JgIHN1YnNjcmliZXIgd2lsbCBjYWxsIGBoYW5kbGVFcnJvcmAgYWdhaW4uXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2Vycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfSBjYXRjaCB7fVxuICB9XG59XG4iXX0=
@@ -2,8 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { META_KEY, META_OPTIONS_KEY, NgxsSimpleChange, SELECTOR_META_KEY } from '../symbols';
6
- import { getValue } from '../utils/utils';
5
+ import { META_KEY, META_OPTIONS_KEY, SELECTOR_META_KEY } from '../symbols';
7
6
  /**
8
7
  * @record
9
8
  * @template T, U
@@ -124,17 +123,6 @@ if (false) {
124
123
  /** @type {?} */
125
124
  StatesAndDefaults.prototype.states;
126
125
  }
127
- /**
128
- * @record
129
- * @template T
130
- */
131
- export function RootStateDiff() { }
132
- if (false) {
133
- /** @type {?} */
134
- RootStateDiff.prototype.currentAppState;
135
- /** @type {?} */
136
- RootStateDiff.prototype.newAppState;
137
- }
138
126
  /**
139
127
  * Ensures metadata is attached to the class and returns it.
140
128
  *
@@ -479,17 +467,4 @@ export function topologicalSort(graph) {
479
467
  export function isObject(obj) {
480
468
  return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';
481
469
  }
482
- /**
483
- * @template T
484
- * @param {?} mappedStore
485
- * @param {?} diff
486
- * @return {?}
487
- */
488
- export function getStateDiffChanges(mappedStore, diff) {
489
- /** @type {?} */
490
- var previousValue = getValue(diff.currentAppState, mappedStore.path);
491
- /** @type {?} */
492
- var currentValue = getValue(diff.newAppState, mappedStore.path);
493
- return new NgxsSimpleChange(previousValue, currentValue, !mappedStore.isInitialised);
494
- }
495
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBRWxCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHMUMsd0NBR0M7Ozs7Ozs7Ozs7O0FBS0QscUNBTUM7Ozs7O0lBTEMscURBQWM7Ozs7O0lBRWQsd0RBQW9COzs7OztJQUVwQixvRUFBeUQ7Ozs7O0FBRzNELG1DQU9DOzs7SUFOQyw2QkFBb0I7O0lBQ3BCLGdDQUFnRDs7SUFDaEQsaUNBQWM7O0lBQ2QsNkJBQW9COztJQUNwQix5Q0FBeUM7O0lBQ3pDLGlDQUFnQzs7Ozs7QUFHbEMsNENBR0M7Ozs7OztJQUZDLHFFQUE4Qzs7Ozs7SUFDOUMsa0ZBQWdGOzs7OztBQU1sRiwyQ0FHQzs7O0lBRkMscURBQStCOztJQUMvQiwrQ0FBeUI7Ozs7O0FBRzNCLDJDQU1DOzs7SUFMQyxpREFBeUM7O0lBQ3pDLDJDQUE0Qjs7SUFDNUIsK0NBQW9COztJQUNwQiw2Q0FBNEI7O0lBQzVCLG1EQUFnRDs7Ozs7QUFHbEQsaUNBT0M7OztJQU5DLDJCQUFhOztJQUNiLG9DQUF1Qjs7SUFDdkIsOEJBQWdEOztJQUNoRCwrQkFBYzs7SUFDZCwrQkFBYzs7SUFDZCwyQkFBYTs7Ozs7QUFHZix1Q0FHQzs7O0lBRkMscUNBQWM7O0lBQ2QsbUNBQXNCOzs7Ozs7QUFHeEIsbUNBR0M7OztJQUZDLHdDQUFtQjs7SUFDbkIsb0NBQWU7Ozs7Ozs7OztBQVFqQixNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7O1lBQzlCLGlC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LE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDaEYsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsV0FBd0IsRUFDeEIsSUFBc0I7O1FBRWhCLGFBQWEsR0FBTSxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDOztRQUNuRSxZQUFZLEdBQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNwRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaW5PYmplY3RPZiwgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIE1FVEFfS0VZLFxuICBNRVRBX09QVElPTlNfS0VZLFxuICBOZ3hzQ29uZmlnLFxuICBOZ3hzU2ltcGxlQ2hhbmdlLFxuICBTRUxFQ1RPUl9NRVRBX0tFWSxcbiAgU3RvcmVPcHRpb25zXG59IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgQWN0aW9uSGFuZGxlck1ldGFEYXRhIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG4vLyBpbnNwaXJlZCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MzY3NDM4OVxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUNsYXNzSW50ZXJuYWw8VCA9IGFueSwgVSA9IGFueT4gZXh0ZW5kcyBTdGF0ZUNsYXNzPFQ+IHtcbiAgW01FVEFfS0VZXT86IE1ldGFEYXRhTW9kZWw7XG4gIFtNRVRBX09QVElPTlNfS0VZXT86IFN0b3JlT3B0aW9uczxVPjtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGVLZXlHcmFwaCA9IFBsYWluT2JqZWN0T2Y8c3RyaW5nW10+O1xuZXhwb3J0IHR5cGUgU3RhdGVzQnlOYW1lID0gUGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlT3BlcmF0aW9uczxUPiB7XG4gIGdldFN0YXRlKCk6IFQ7XG5cbiAgc2V0U3RhdGUodmFsOiBUKTogVDtcblxuICBkaXNwYXRjaChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhRGF0YU1vZGVsIHtcbiAgbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYWN0aW9uczogUGxhaW5PYmplY3RPZjxBY3Rpb25IYW5kbGVyTWV0YURhdGFbXT47XG4gIGRlZmF1bHRzOiBhbnk7XG4gIHBhdGg6IHN0cmluZyB8IG51bGw7XG4gIG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSB8IG51bGw7XG4gIGNoaWxkcmVuPzogU3RhdGVDbGFzc0ludGVybmFsW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVNlbGVjdG9yQ29udGV4dCB7XG4gIGdldFN0YXRlR2V0dGVyKGtleTogYW55KTogKHN0YXRlOiBhbnkpID0+IGFueTtcbiAgZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsT3B0aW9ucz86IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgU2VsZWN0RnJvbVJvb3RTdGF0ZSA9IChyb290U3RhdGU6IGFueSkgPT4gYW55O1xuZXhwb3J0IHR5cGUgU2VsZWN0b3JGYWN0b3J5ID0gKHJ1bnRpbWVDb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiBTZWxlY3RGcm9tUm9vdFN0YXRlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB7XG4gIGluamVjdENvbnRhaW5lclN0YXRlPzogYm9vbGVhbjtcbiAgc3VwcHJlc3NFcnJvcnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XG4gIG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSB8IG51bGw7XG4gIG9yaWdpbmFsRm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgY29udGFpbmVyQ2xhc3M6IGFueTtcbiAgc2VsZWN0b3JOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBnZXRTZWxlY3Rvck9wdGlvbnM6ICgpID0+IFNoYXJlZFNlbGVjdG9yT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZWRTdG9yZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgaXNJbml0aWFsaXNlZDogYm9vbGVhbjtcbiAgYWN0aW9uczogUGxhaW5PYmplY3RPZjxBY3Rpb25IYW5kbGVyTWV0YURhdGFbXT47XG4gIGRlZmF1bHRzOiBhbnk7XG4gIGluc3RhbmNlOiBhbnk7XG4gIHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gIGRlZmF1bHRzOiBhbnk7XG4gIHN0YXRlczogTWFwcGVkU3RvcmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb290U3RhdGVEaWZmPFQ+IHtcbiAgY3VycmVudEFwcFN0YXRlOiBUO1xuICBuZXdBcHBTdGF0ZTogVDtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIG1ldGFkYXRhIGlzIGF0dGFjaGVkIHRvIHRoZSBjbGFzcyBhbmQgcmV0dXJucyBpdC5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogU3RhdGVDbGFzc0ludGVybmFsKTogTWV0YURhdGFNb2RlbCB7XG4gIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YTogTWV0YURhdGFNb2RlbCA9IHtcbiAgICAgIG5hbWU6IG51bGwsXG4gICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIGRlZmF1bHRzOiB7fSxcbiAgICAgIHBhdGg6IG51bGwsXG4gICAgICBtYWtlUm9vdFNlbGVjdG9yKGNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQuZ2V0U3RhdGVHZXR0ZXIoZGVmYXVsdE1ldGFkYXRhLm5hbWUpO1xuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBNRVRBX0tFWSwgeyB2YWx1ZTogZGVmYXVsdE1ldGFkYXRhIH0pO1xuICB9XG4gIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgc3RhdGUgY2xhc3MgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBTdGF0ZUNsYXNzSW50ZXJuYWwpOiBNZXRhRGF0YU1vZGVsIHtcbiAgcmV0dXJuIHRhcmdldFtNRVRBX0tFWV0hO1xufVxuXG4vKipcbiAqIEVuc3VyZXMgbWV0YWRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIHNlbGVjdG9yIGFuZCByZXR1cm5zIGl0LlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbik6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XG4gIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KFNFTEVDVE9SX01FVEFfS0VZKSkge1xuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsID0ge1xuICAgICAgbWFrZVJvb3RTZWxlY3RvcjogbnVsbCxcbiAgICAgIG9yaWdpbmFsRm46IG51bGwsXG4gICAgICBjb250YWluZXJDbGFzczogbnVsbCxcbiAgICAgIHNlbGVjdG9yTmFtZTogbnVsbCxcbiAgICAgIGdldFNlbGVjdG9yT3B0aW9uczogKCkgPT4gKHt9KVxuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBTRUxFQ1RPUl9NRVRBX0tFWSwgeyB2YWx1ZTogZGVmYXVsdE1ldGFkYXRhIH0pO1xuICB9XG5cbiAgcmV0dXJuIGdldFNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBzZWxlY3RvciBpZiBpdCBleGlzdHMuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQ6IGFueSk6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XG4gIHJldHVybiB0YXJnZXRbU0VMRUNUT1JfTUVUQV9LRVldO1xufVxuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogTm90ZTogVGhpcyBpcyBub3QgYXMgZmFzdCBhcyB0aGUgYGZhc3RQcm9wR2V0dGVyYCBidXQgaXMgc3RyaWN0IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGNvbXBsaWFudC5cbiAqIFNlZSBwZXJmIGhpdDogaHR0cHM6Ly9qc3BlcmYuY29tL2Zhc3QtdmFsdWUtZ2V0dGVyLWdpdmVuLXBhdGgvMVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZnVuY3Rpb24gY29tcGxpYW50UHJvcEdldHRlcihwYXRoczogc3RyaW5nW10pOiAoeDogYW55KSA9PiBhbnkge1xuICBjb25zdCBjb3B5T2ZQYXRocyA9IHBhdGhzLnNsaWNlKCk7XG4gIHJldHVybiBvYmogPT4gY29weU9mUGF0aHMucmVkdWNlKChhY2M6IGFueSwgcGFydDogc3RyaW5nKSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xufVxuXG4vKipcbiAqIFRoZSBnZW5lcmF0ZWQgZnVuY3Rpb24gaXMgZmFzdGVyIHRoYW46XG4gKiAtIHBsdWNrIChPYnNlcnZhYmxlIG9wZXJhdG9yKVxuICogLSBtZW1vaXplXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBmYXN0UHJvcEdldHRlcihwYXRoczogc3RyaW5nW10pOiAoeDogYW55KSA9PiBhbnkge1xuICBjb25zdCBzZWdtZW50cyA9IHBhdGhzO1xuICBsZXQgc2VnID0gJ3N0b3JlLicgKyBzZWdtZW50c1swXTtcbiAgbGV0IGkgPSAwO1xuICBjb25zdCBsID0gc2VnbWVudHMubGVuZ3RoO1xuXG4gIGxldCBleHByID0gc2VnO1xuICB3aGlsZSAoKytpIDwgbCkge1xuICAgIGV4cHIgPSBleHByICsgJyAmJiAnICsgKHNlZyA9IHNlZyArICcuJyArIHNlZ21lbnRzW2ldKTtcbiAgfVxuXG4gIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKCdzdG9yZScsICdyZXR1cm4gJyArIGV4cHIgKyAnOycpO1xuXG4gIHJldHVybiA8KHg6IGFueSkgPT4gYW55PmZuO1xufVxuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcEdldHRlcihwYXRoczogc3RyaW5nW10sIGNvbmZpZzogTmd4c0NvbmZpZykge1xuICBpZiAoY29uZmlnICYmIGNvbmZpZy5jb21wYXRpYmlsaXR5ICYmIGNvbmZpZy5jb21wYXRpYmlsaXR5LnN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeSkge1xuICAgIHJldHVybiBjb21wbGlhbnRQcm9wR2V0dGVyKHBhdGhzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFzdFByb3BHZXR0ZXIocGF0aHMpO1xuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gYW4gYXJyYXkgb2Ygc3RhdGVzLCBpdCB3aWxsIHJldHVybiBhIG9iamVjdCBncmFwaC4gRXhhbXBsZTpcbiAqICAgIGNvbnN0IHN0YXRlcyA9IFtcbiAqICAgICAgQ2FydCxcbiAqICAgICAgQ2FydFNhdmVkLFxuICogICAgICBDYXJ0U2F2ZWRJdGVtc1xuICogICAgXVxuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxuICogICAgaXRlbXM6IFtdXG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdyYXBoKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZUtleUdyYXBoIHtcbiAgY29uc3QgZmluZE5hbWUgPSAoc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKSA9PiB7XG4gICAgY29uc3QgbWV0YSA9IHN0YXRlQ2xhc3Nlcy5maW5kKGcgPT4gZyA9PT0gc3RhdGVDbGFzcyk7XG5cbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICgodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJiAhbWV0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2hpbGQgc3RhdGUgbm90IGZvdW5kOiAke3N0YXRlQ2xhc3N9LiBcXHJcXG5Zb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIGFkZCBzdGF0ZXMgdG8gbW9kdWxlYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YSFbTUVUQV9LRVldIS5uYW1lITtcbiAgfTtcblxuICByZXR1cm4gc3RhdGVDbGFzc2VzLnJlZHVjZTxTdGF0ZUtleUdyYXBoPihcbiAgICAocmVzdWx0OiBTdGF0ZUtleUdyYXBoLCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgY2hpbGRyZW4gfSA9IHN0YXRlQ2xhc3NbTUVUQV9LRVldITtcbiAgICAgIHJlc3VsdFtuYW1lIV0gPSAoY2hpbGRyZW4gfHwgW10pLm1hcChmaW5kTmFtZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAge31cbiAgKTtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIHN0YXRlcyBhcnJheSwgcmV0dXJucyBvYmplY3QgZ3JhcGhcbiAqIHJldHVybmluZyB0aGUgbmFtZSBhbmQgc3RhdGUgbWV0YWRhdGEuIEV4YW1wbGU6XG4gKlxuICogIGNvbnN0IGdyYXBoID0ge1xuICogICAgY2FydDogeyBtZXRhZGF0YSB9XG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lVG9TdGF0ZShzdGF0ZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdKTogUGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+IHtcbiAgcmV0dXJuIHN0YXRlcy5yZWR1Y2U8UGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+PihcbiAgICAocmVzdWx0OiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4sIHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgY29uc3QgbWV0YSA9IHN0YXRlQ2xhc3NbTUVUQV9LRVldITtcbiAgICAgIHJlc3VsdFttZXRhLm5hbWUhXSA9IHN0YXRlQ2xhc3M7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAge31cbiAgKTtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIG9iamVjdCByZWxhdGlvbnNoaXAgZ3JhcGggd2lsbCByZXR1cm4gdGhlIGZ1bGwgcGF0aFxuICogZm9yIHRoZSBjaGlsZCBpdGVtcy4gRXhhbXBsZTpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxuICogICAgaXRlbXM6IFtdXG4gKiAgfTtcbiAqXG4gKiB3b3VsZCByZXR1cm46XG4gKlxuICogIGNvbnN0IHIgPSB7XG4gKiAgICBjYXJ0OiAnY2FydCcsXG4gKiAgICBzYXZlZDogJ2NhcnQuc2F2ZWQnLFxuICogICAgaXRlbXM6ICdjYXJ0LnNhdmVkLml0ZW1zJ1xuICogIH07XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEZ1bGxQYXJlbnRQYXRoKFxuICBvYmo6IFN0YXRlS2V5R3JhcGgsXG4gIG5ld09iajogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge31cbik6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XG4gIGNvbnN0IHZpc2l0ID0gKGNoaWxkOiBTdGF0ZUtleUdyYXBoLCBrZXlUb0ZpbmQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNoaWxkKSB7XG4gICAgICBpZiAoY2hpbGQuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBjaGlsZFtrZXldLmluZGV4T2Yoa2V5VG9GaW5kKSA+PSAwKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KGNoaWxkLCBrZXkpO1xuICAgICAgICByZXR1cm4gcGFyZW50ICE9PSBudWxsID8gYCR7cGFyZW50fS4ke2tleX1gIDoga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KG9iaiwga2V5KTtcbiAgICAgIG5ld09ialtrZXldID0gcGFyZW50ID8gYCR7cGFyZW50fS4ke2tleX1gIDoga2V5O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdPYmo7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBvYmplY3QgZ3JhcGgsIGl0IHdpbGwgcmV0dXJuIHRoZSBpdGVtcyB0b3BvbG9naWNhbGx5IHNvcnRlZCBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgcmVzdWx0cyA9IFtcbiAqICAgICdpdGVtcycsXG4gKiAgICAnc2F2ZWQnLFxuICogICAgJ2NhcnQnXG4gKiAgXTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b3BvbG9naWNhbFNvcnQoZ3JhcGg6IFN0YXRlS2V5R3JhcGgpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNvcnRlZDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgdmlzaXRlZDogUGxhaW5PYmplY3RPZjxib29sZWFuPiA9IHt9O1xuXG4gIGNvbnN0IHZpc2l0ID0gKG5hbWU6IHN0cmluZywgYW5jZXN0b3JzOiBzdHJpbmdbXSA9IFtdKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFuY2VzdG9ycykpIHtcbiAgICAgIGFuY2VzdG9ycyA9IFtdO1xuICAgIH1cblxuICAgIGFuY2VzdG9ycy5wdXNoKG5hbWUpO1xuICAgIHZpc2l0ZWRbbmFtZV0gPSB0cnVlO1xuXG4gICAgZ3JhcGhbbmFtZV0uZm9yRWFjaCgoZGVwOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgIGlmICgodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJiBhbmNlc3RvcnMuaW5kZXhPZihkZXApID49IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBkZXBlbmRlbmN5ICcke2RlcH0nIGlzIHJlcXVpcmVkIGJ5ICcke25hbWV9JzogJHthbmNlc3RvcnMuam9pbignIC0+ICcpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZpc2l0ZWRbZGVwXSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZpc2l0KGRlcCwgYW5jZXN0b3JzLnNsaWNlKDApKTtcbiAgICB9KTtcblxuICAgIGlmIChzb3J0ZWQuaW5kZXhPZihuYW1lKSA8IDApIHtcbiAgICAgIHNvcnRlZC5wdXNoKG5hbWUpO1xuICAgIH1cbiAgfTtcblxuICBPYmplY3Qua2V5cyhncmFwaCkuZm9yRWFjaChrID0+IHZpc2l0KGspKTtcblxuICByZXR1cm4gc29ydGVkLnJldmVyc2UoKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGlmIHRoZSBwYXJhbWV0ZXIgaXMgYSBvYmplY3Qgb3Igbm90LlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KG9iajogYW55KSB7XG4gIHJldHVybiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsKSB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdGVEaWZmQ2hhbmdlczxUPihcbiAgbWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlLFxuICBkaWZmOiBSb290U3RhdGVEaWZmPFQ+XG4pOiBOZ3hzU2ltcGxlQ2hhbmdlIHtcbiAgY29uc3QgcHJldmlvdXNWYWx1ZTogVCA9IGdldFZhbHVlKGRpZmYuY3VycmVudEFwcFN0YXRlLCBtYXBwZWRTdG9yZS5wYXRoKTtcbiAgY29uc3QgY3VycmVudFZhbHVlOiBUID0gZ2V0VmFsdWUoZGlmZi5uZXdBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XG4gIHJldHVybiBuZXcgTmd4c1NpbXBsZUNoYW5nZShwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUsICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkKTtcbn1cbiJdfQ==
470
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixpQkFBaUIsRUFFbEIsTUFBTSxZQUFZLENBQUM7Ozs7O0FBSXBCLHdDQUdDOzs7Ozs7Ozs7OztBQUtELHFDQU1DOzs7OztJQUxDLHFEQUFjOzs7OztJQUVkLHdEQUFvQjs7Ozs7SUFFcEIsb0VBQXlEOzs7OztBQUczRCxtQ0FPQzs7O0lBTkMsNkJBQW9COztJQUNwQixnQ0FBZ0Q7O0lBQ2hELGlDQUFjOztJQUNkLDZCQUFvQjs7SUFDcEIseUNBQXlDOztJQUN6QyxpQ0FBZ0M7Ozs7O0FBR2xDLDRDQUdDOzs7Ozs7SUFGQyxxRUFBOEM7Ozs7O0lBQzlDLGtGQUFnRjs7Ozs7QUFNbEYsMkNBR0M7OztJQUZDLHFEQUErQjs7SUFDL0IsK0NBQXlCOzs7OztBQUczQiwyQ0FNQzs7O0lBTEMsaURBQXlDOztJQUN6QywyQ0FBNEI7O0lBQzVCLCtDQUFvQjs7SUFDcEIsNkNBQTRCOztJQUM1QixtREFBZ0Q7Ozs7O0FBR2xELGlDQU9DOzs7SUFOQywyQkFBYTs7SUFDYixvQ0FBdUI7O0lBQ3ZCLDhCQUFnRDs7SUFDaEQsK0JBQWM7O0lBQ2QsK0JBQWM7O0lBQ2QsMkJBQWE7Ozs7O0FBR2YsdUNBR0M7OztJQUZDLHFDQUFjOztJQUNkLG1DQUFzQjs7Ozs7Ozs7O0FBUXhCLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUEwQjtJQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTs7WUFDOUIsaUJBQWUsR0FBa0I7WUFDckMsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixnQkFB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S0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaW5PYmplY3RPZiwgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIE1FVEFfS0VZLFxuICBNRVRBX09QVElPTlNfS0VZLFxuICBOZ3hzQ29uZmlnLFxuICBTRUxFQ1RPUl9NRVRBX0tFWSxcbiAgU3RvcmVPcHRpb25zXG59IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgQWN0aW9uSGFuZGxlck1ldGFEYXRhIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcblxuLy8gaW5zcGlyZWQgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDM2NzQzODlcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVDbGFzc0ludGVybmFsPFQgPSBhbnksIFUgPSBhbnk+IGV4dGVuZHMgU3RhdGVDbGFzczxUPiB7XG4gIFtNRVRBX0tFWV0/OiBNZXRhRGF0YU1vZGVsO1xuICBbTUVUQV9PUFRJT05TX0tFWV0/OiBTdG9yZU9wdGlvbnM8VT47XG59XG5cbmV4cG9ydCB0eXBlIFN0YXRlS2V5R3JhcGggPSBQbGFpbk9iamVjdE9mPHN0cmluZ1tdPjtcbmV4cG9ydCB0eXBlIFN0YXRlc0J5TmFtZSA9IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZU9wZXJhdGlvbnM8VD4ge1xuICBnZXRTdGF0ZSgpOiBUO1xuXG4gIHNldFN0YXRlKHZhbDogVCk6IFQ7XG5cbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YURhdGFNb2RlbCB7XG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGFjdGlvbnM6IFBsYWluT2JqZWN0T2Y8QWN0aW9uSGFuZGxlck1ldGFEYXRhW10+O1xuICBkZWZhdWx0czogYW55O1xuICBwYXRoOiBzdHJpbmcgfCBudWxsO1xuICBtYWtlUm9vdFNlbGVjdG9yOiBTZWxlY3RvckZhY3RvcnkgfCBudWxsO1xuICBjaGlsZHJlbj86IFN0YXRlQ2xhc3NJbnRlcm5hbFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVTZWxlY3RvckNvbnRleHQge1xuICBnZXRTdGF0ZUdldHRlcihrZXk6IGFueSk6IChzdGF0ZTogYW55KSA9PiBhbnk7XG4gIGdldFNlbGVjdG9yT3B0aW9ucyhsb2NhbE9wdGlvbnM/OiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMpOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdEZyb21Sb290U3RhdGUgPSAocm9vdFN0YXRlOiBhbnkpID0+IGFueTtcbmV4cG9ydCB0eXBlIFNlbGVjdG9yRmFjdG9yeSA9IChydW50aW1lQ29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCkgPT4gU2VsZWN0RnJvbVJvb3RTdGF0ZTtcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICBpbmplY3RDb250YWluZXJTdGF0ZT86IGJvb2xlYW47XG4gIHN1cHByZXNzRXJyb3JzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rvck1ldGFEYXRhTW9kZWwge1xuICBtYWtlUm9vdFNlbGVjdG9yOiBTZWxlY3RvckZhY3RvcnkgfCBudWxsO1xuICBvcmlnaW5hbEZuOiBGdW5jdGlvbiB8IG51bGw7XG4gIGNvbnRhaW5lckNsYXNzOiBhbnk7XG4gIHNlbGVjdG9yTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgZ2V0U2VsZWN0b3JPcHRpb25zOiAoKSA9PiBTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwcGVkU3RvcmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlzSW5pdGlhbGlzZWQ6IGJvb2xlYW47XG4gIGFjdGlvbnM6IFBsYWluT2JqZWN0T2Y8QWN0aW9uSGFuZGxlck1ldGFEYXRhW10+O1xuICBkZWZhdWx0czogYW55O1xuICBpbnN0YW5jZTogYW55O1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVzQW5kRGVmYXVsdHMge1xuICBkZWZhdWx0czogYW55O1xuICBzdGF0ZXM6IE1hcHBlZFN0b3JlW107XG59XG5cbi8qKlxuICogRW5zdXJlcyBtZXRhZGF0YSBpcyBhdHRhY2hlZCB0byB0aGUgY2xhc3MgYW5kIHJldHVybnMgaXQuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQ6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xuICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGE6IE1ldGFEYXRhTW9kZWwgPSB7XG4gICAgICBuYW1lOiBudWxsLFxuICAgICAgYWN0aW9uczoge30sXG4gICAgICBkZWZhdWx0czoge30sXG4gICAgICBwYXRoOiBudWxsLFxuICAgICAgbWFrZVJvb3RTZWxlY3Rvcihjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0LmdldFN0YXRlR2V0dGVyKGRlZmF1bHRNZXRhZGF0YS5uYW1lKTtcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW11cbiAgICB9O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcbiAgfVxuICByZXR1cm4gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIHN0YXRlIGNsYXNzIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldDogU3RhdGVDbGFzc0ludGVybmFsKTogTWV0YURhdGFNb2RlbCB7XG4gIHJldHVybiB0YXJnZXRbTUVUQV9LRVldITtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIG1ldGFkYXRhIGlzIGF0dGFjaGVkIHRvIHRoZSBzZWxlY3RvciBhbmQgcmV0dXJucyBpdC5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwge1xuICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShTRUxFQ1RPUl9NRVRBX0tFWSkpIHtcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGE6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCA9IHtcbiAgICAgIG1ha2VSb290U2VsZWN0b3I6IG51bGwsXG4gICAgICBvcmlnaW5hbEZuOiBudWxsLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IG51bGwsXG4gICAgICBzZWxlY3Rvck5hbWU6IG51bGwsXG4gICAgICBnZXRTZWxlY3Rvck9wdGlvbnM6ICgpID0+ICh7fSlcbiAgICB9O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgU0VMRUNUT1JfTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcbiAgfVxuXG4gIHJldHVybiBnZXRTZWxlY3Rvck1ldGFkYXRhKHRhcmdldCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgc2VsZWN0b3IgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0OiBhbnkpOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwge1xuICByZXR1cm4gdGFyZ2V0W1NFTEVDVE9SX01FVEFfS0VZXTtcbn1cblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIE5vdGU6IFRoaXMgaXMgbm90IGFzIGZhc3QgYXMgdGhlIGBmYXN0UHJvcEdldHRlcmAgYnV0IGlzIHN0cmljdCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjb21wbGlhbnQuXG4gKiBTZWUgcGVyZiBoaXQ6IGh0dHBzOi8vanNwZXJmLmNvbS9mYXN0LXZhbHVlLWdldHRlci1naXZlbi1wYXRoLzFcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdKTogKHg6IGFueSkgPT4gYW55IHtcbiAgY29uc3QgY29weU9mUGF0aHMgPSBwYXRocy5zbGljZSgpO1xuICByZXR1cm4gb2JqID0+IGNvcHlPZlBhdGhzLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2VuZXJhdGVkIGZ1bmN0aW9uIGlzIGZhc3RlciB0aGFuOlxuICogLSBwbHVjayAoT2JzZXJ2YWJsZSBvcGVyYXRvcilcbiAqIC0gbWVtb2l6ZVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZnVuY3Rpb24gZmFzdFByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdKTogKHg6IGFueSkgPT4gYW55IHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRocztcbiAgbGV0IHNlZyA9ICdzdG9yZS4nICsgc2VnbWVudHNbMF07XG4gIGxldCBpID0gMDtcbiAgY29uc3QgbCA9IHNlZ21lbnRzLmxlbmd0aDtcblxuICBsZXQgZXhwciA9IHNlZztcbiAgd2hpbGUgKCsraSA8IGwpIHtcbiAgICBleHByID0gZXhwciArICcgJiYgJyArIChzZWcgPSBzZWcgKyAnLicgKyBzZWdtZW50c1tpXSk7XG4gIH1cblxuICBjb25zdCBmbiA9IG5ldyBGdW5jdGlvbignc3RvcmUnLCAncmV0dXJuICcgKyBleHByICsgJzsnKTtcblxuICByZXR1cm4gPCh4OiBhbnkpID0+IGFueT5mbjtcbn1cblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdLCBjb25maWc6IE5neHNDb25maWcpIHtcbiAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29tcGF0aWJpbGl0eSAmJiBjb25maWcuY29tcGF0aWJpbGl0eS5zdHJpY3RDb250ZW50U2VjdXJpdHlQb2xpY3kpIHtcbiAgICByZXR1cm4gY29tcGxpYW50UHJvcEdldHRlcihwYXRocyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhc3RQcm9wR2V0dGVyKHBhdGhzKTtcbiAgfVxufVxuXG4vKipcbiAqIEdpdmVuIGFuIGFycmF5IG9mIHN0YXRlcywgaXQgd2lsbCByZXR1cm4gYSBvYmplY3QgZ3JhcGguIEV4YW1wbGU6XG4gKiAgICBjb25zdCBzdGF0ZXMgPSBbXG4gKiAgICAgIENhcnQsXG4gKiAgICAgIENhcnRTYXZlZCxcbiAqICAgICAgQ2FydFNhdmVkSXRlbXNcbiAqICAgIF1cbiAqXG4gKiB3b3VsZCByZXR1cm46XG4gKlxuICogIGNvbnN0IGdyYXBoID0ge1xuICogICAgY2FydDogWydzYXZlZCddLFxuICogICAgc2F2ZWQ6IFsnaXRlbXMnXSxcbiAqICAgIGl0ZW1zOiBbXVxuICogIH07XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHcmFwaChzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdKTogU3RhdGVLZXlHcmFwaCB7XG4gIGNvbnN0IGZpbmROYW1lID0gKHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgIGNvbnN0IG1ldGEgPSBzdGF0ZUNsYXNzZXMuZmluZChnID0+IGcgPT09IHN0YXRlQ2xhc3MpO1xuXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkgJiYgIW1ldGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENoaWxkIHN0YXRlIG5vdCBmb3VuZDogJHtzdGF0ZUNsYXNzfS4gXFxyXFxuWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBhZGQgc3RhdGVzIHRvIG1vZHVsZWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGEhW01FVEFfS0VZXSEubmFtZSE7XG4gIH07XG5cbiAgcmV0dXJuIHN0YXRlQ2xhc3Nlcy5yZWR1Y2U8U3RhdGVLZXlHcmFwaD4oXG4gICAgKHJlc3VsdDogU3RhdGVLZXlHcmFwaCwgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIGNoaWxkcmVuIH0gPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XG4gICAgICByZXN1bHRbbmFtZSFdID0gKGNoaWxkcmVuIHx8IFtdKS5tYXAoZmluZE5hbWUpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIHt9XG4gICk7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBzdGF0ZXMgYXJyYXksIHJldHVybnMgb2JqZWN0IGdyYXBoXG4gKiByZXR1cm5pbmcgdGhlIG5hbWUgYW5kIHN0YXRlIG1ldGFkYXRhLiBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IHsgbWV0YWRhdGEgfVxuICogIH07XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZVRvU3RhdGUoc3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiB7XG4gIHJldHVybiBzdGF0ZXMucmVkdWNlPFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPj4oXG4gICAgKHJlc3VsdDogUGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+LCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGNvbnN0IG1ldGEgPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XG4gICAgICByZXN1bHRbbWV0YS5uYW1lIV0gPSBzdGF0ZUNsYXNzO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIHt9XG4gICk7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBvYmplY3QgcmVsYXRpb25zaGlwIGdyYXBoIHdpbGwgcmV0dXJuIHRoZSBmdWxsIHBhdGhcbiAqIGZvciB0aGUgY2hpbGQgaXRlbXMuIEV4YW1wbGU6XG4gKlxuICogIGNvbnN0IGdyYXBoID0ge1xuICogICAgY2FydDogWydzYXZlZCddLFxuICogICAgc2F2ZWQ6IFsnaXRlbXMnXSxcbiAqICAgIGl0ZW1zOiBbXVxuICogIH07XG4gKlxuICogd291bGQgcmV0dXJuOlxuICpcbiAqICBjb25zdCByID0ge1xuICogICAgY2FydDogJ2NhcnQnLFxuICogICAgc2F2ZWQ6ICdjYXJ0LnNhdmVkJyxcbiAqICAgIGl0ZW1zOiAnY2FydC5zYXZlZC5pdGVtcydcbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGdWxsUGFyZW50UGF0aChcbiAgb2JqOiBTdGF0ZUtleUdyYXBoLFxuICBuZXdPYmo6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IHt9XG4pOiBQbGFpbk9iamVjdE9mPHN0cmluZz4ge1xuICBjb25zdCB2aXNpdCA9IChjaGlsZDogU3RhdGVLZXlHcmFwaCwga2V5VG9GaW5kOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjaGlsZCkge1xuICAgICAgaWYgKGNoaWxkLmhhc093blByb3BlcnR5KGtleSkgJiYgY2hpbGRba2V5XS5pbmRleE9mKGtleVRvRmluZCkgPj0gMCkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB2aXNpdChjaGlsZCwga2V5KTtcbiAgICAgICAgcmV0dXJuIHBhcmVudCAhPT0gbnVsbCA/IGAke3BhcmVudH0uJHtrZXl9YCA6IGtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSB2aXNpdChvYmosIGtleSk7XG4gICAgICBuZXdPYmpba2V5XSA9IHBhcmVudCA/IGAke3BhcmVudH0uJHtrZXl9YCA6IGtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3T2JqO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgb2JqZWN0IGdyYXBoLCBpdCB3aWxsIHJldHVybiB0aGUgaXRlbXMgdG9wb2xvZ2ljYWxseSBzb3J0ZWQgRXhhbXBsZTpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxuICogICAgaXRlbXM6IFtdXG4gKiAgfTtcbiAqXG4gKiB3b3VsZCByZXR1cm46XG4gKlxuICogIGNvbnN0IHJlc3VsdHMgPSBbXG4gKiAgICAnaXRlbXMnLFxuICogICAgJ3NhdmVkJyxcbiAqICAgICdjYXJ0J1xuICogIF07XG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9wb2xvZ2ljYWxTb3J0KGdyYXBoOiBTdGF0ZUtleUdyYXBoKTogc3RyaW5nW10ge1xuICBjb25zdCBzb3J0ZWQ6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHZpc2l0ZWQ6IFBsYWluT2JqZWN0T2Y8Ym9vbGVhbj4gPSB7fTtcblxuICBjb25zdCB2aXNpdCA9IChuYW1lOiBzdHJpbmcsIGFuY2VzdG9yczogc3RyaW5nW10gPSBbXSkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhbmNlc3RvcnMpKSB7XG4gICAgICBhbmNlc3RvcnMgPSBbXTtcbiAgICB9XG5cbiAgICBhbmNlc3RvcnMucHVzaChuYW1lKTtcbiAgICB2aXNpdGVkW25hbWVdID0gdHJ1ZTtcblxuICAgIGdyYXBoW25hbWVdLmZvckVhY2goKGRlcDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkgJiYgYW5jZXN0b3JzLmluZGV4T2YoZGVwKSA+PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2lyY3VsYXIgZGVwZW5kZW5jeSAnJHtkZXB9JyBpcyByZXF1aXJlZCBieSAnJHtuYW1lfSc6ICR7YW5jZXN0b3JzLmpvaW4oJyAtPiAnKX1gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2aXNpdGVkW2RlcF0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2aXNpdChkZXAsIGFuY2VzdG9ycy5zbGljZSgwKSk7XG4gICAgfSk7XG5cbiAgICBpZiAoc29ydGVkLmluZGV4T2YobmFtZSkgPCAwKSB7XG4gICAgICBzb3J0ZWQucHVzaChuYW1lKTtcbiAgICB9XG4gIH07XG5cbiAgT2JqZWN0LmtleXMoZ3JhcGgpLmZvckVhY2goayA9PiB2aXNpdChrKSk7XG5cbiAgcmV0dXJuIHNvcnRlZC5yZXZlcnNlKCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBpZiB0aGUgcGFyYW1ldGVyIGlzIGEgb2JqZWN0IG9yIG5vdC5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChvYmo6IGFueSkge1xuICByZXR1cm4gKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkgfHwgdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdfQ==
@@ -5,16 +5,32 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Injectable } from '@angular/core';
7
7
  import { NgxsBootstrapper } from '@ngxs/store/internals';
8
- import { filter, mergeMap, tap } from 'rxjs/operators';
8
+ import { EMPTY, Subject } from 'rxjs';
9
+ import { catchError, filter, mergeMap, pairwise, startWith, takeUntil, tap } from 'rxjs/operators';
10
+ import { Store } from '../store';
11
+ import { getValue } from '../utils/utils';
12
+ import { InternalErrorReporter } from './error-handler';
9
13
  import { StateContextFactory } from './state-context-factory';
10
14
  import { InternalStateOperations } from './state-operations';
11
- import { getStateDiffChanges } from './internals';
15
+ import { NgxsSimpleChange } from '../symbols';
12
16
  var LifecycleStateManager = /** @class */ (function () {
13
- function LifecycleStateManager(internalStateOperations, stateContextFactory, bootstrapper) {
14
- this.internalStateOperations = internalStateOperations;
15
- this.stateContextFactory = stateContextFactory;
16
- this.bootstrapper = bootstrapper;
17
+ function LifecycleStateManager(_store, _internalErrorReporter, _internalStateOperations, _stateContextFactory, _bootstrapper) {
18
+ this._store = _store;
19
+ this._internalErrorReporter = _internalErrorReporter;
20
+ this._internalStateOperations = _internalStateOperations;
21
+ this._stateContextFactory = _stateContextFactory;
22
+ this._bootstrapper = _bootstrapper;
23
+ this._destroy$ = new Subject();
17
24
  }
25
+ /**
26
+ * @return {?}
27
+ */
28
+ LifecycleStateManager.prototype.ngOnDestroy = /**
29
+ * @return {?}
30
+ */
31
+ function () {
32
+ this._destroy$.next();
33
+ };
18
34
  /**
19
35
  * @template T
20
36
  * @param {?} action
@@ -29,7 +45,7 @@ var LifecycleStateManager = /** @class */ (function () {
29
45
  */
30
46
  function (action, results) {
31
47
  var _this = this;
32
- this.internalStateOperations
48
+ this._internalStateOperations
33
49
  .getRootStateOperations()
34
50
  .dispatch(action)
35
51
  .pipe(filter((/**
@@ -38,57 +54,74 @@ var LifecycleStateManager = /** @class */ (function () {
38
54
  function () { return !!results; })), tap((/**
39
55
  * @return {?}
40
56
  */
41
- function () { return _this.invokeInit((/** @type {?} */ (results)).states); })), mergeMap((/**
57
+ function () { return _this._invokeInitOnStates((/** @type {?} */ (results)).states); })), mergeMap((/**
42
58
  * @return {?}
43
59
  */
44
- function () { return _this.bootstrapper.appBootstrapped$; })), filter((/**
60
+ function () { return _this._bootstrapper.appBootstrapped$; })), filter((/**
45
61
  * @param {?} appBootstrapped
46
62
  * @return {?}
47
63
  */
48
- function (appBootstrapped) { return !!appBootstrapped; })))
64
+ function (appBootstrapped) { return !!appBootstrapped; })), catchError((/**
65
+ * @param {?} error
66
+ * @return {?}
67
+ */
68
+ function (error) {
69
+ // The `SafeSubscriber` (which is used by most RxJS operators) re-throws
70
+ // errors asynchronously (`setTimeout(() => { throw error })`). This might
71
+ // break existing user's code or unit tests. We catch the error manually to
72
+ // be backward compatible with the old behavior.
73
+ _this._internalErrorReporter.reportErrorSafely(error);
74
+ return EMPTY;
75
+ })), takeUntil(this._destroy$))
49
76
  .subscribe((/**
50
77
  * @return {?}
51
78
  */
52
- function () { return _this.invokeBootstrap((/** @type {?} */ (results)).states); }));
79
+ function () { return _this._invokeBootstrapOnStates((/** @type {?} */ (results)).states); }));
53
80
  };
54
81
  /**
55
- * Invoke the init function on the states.
56
- */
57
- /**
58
- * Invoke the init function on the states.
82
+ * @private
59
83
  * @param {?} mappedStores
60
84
  * @return {?}
61
85
  */
62
- LifecycleStateManager.prototype.invokeInit = /**
63
- * Invoke the init function on the states.
86
+ LifecycleStateManager.prototype._invokeInitOnStates = /**
87
+ * @private
64
88
  * @param {?} mappedStores
65
89
  * @return {?}
66
90
  */
67
91
  function (mappedStores) {
68
92
  var e_1, _a;
93
+ var _loop_1 = function (mappedStore) {
94
+ /** @type {?} */
95
+ var instance = mappedStore.instance;
96
+ if (instance.ngxsOnChanges) {
97
+ this_1._store
98
+ .select((/**
99
+ * @param {?} state
100
+ * @return {?}
101
+ */
102
+ function (state) { return getValue(state, mappedStore.path); }))
103
+ .pipe(startWith(undefined), pairwise(), takeUntil(this_1._destroy$))
104
+ .subscribe((/**
105
+ * @param {?} __0
106
+ * @return {?}
107
+ */
108
+ function (_a) {
109
+ var _b = tslib_1.__read(_a, 2), previousValue = _b[0], currentValue = _b[1];
110
+ /** @type {?} */
111
+ var change = new NgxsSimpleChange(previousValue, currentValue, !mappedStore.isInitialised);
112
+ (/** @type {?} */ (instance.ngxsOnChanges))(change);
113
+ }));
114
+ }
115
+ if (instance.ngxsOnInit) {
116
+ instance.ngxsOnInit(this_1._getStateContext(mappedStore));
117
+ }
118
+ mappedStore.isInitialised = true;
119
+ };
120
+ var this_1 = this;
69
121
  try {
70
122
  for (var mappedStores_1 = tslib_1.__values(mappedStores), mappedStores_1_1 = mappedStores_1.next(); !mappedStores_1_1.done; mappedStores_1_1 = mappedStores_1.next()) {
71
123
  var mappedStore = mappedStores_1_1.value;
72
- /** @type {?} */
73
- var instance = mappedStore.instance;
74
- if (instance.ngxsOnChanges) {
75
- /** @type {?} */
76
- var currentAppState = {};
77
- /** @type {?} */
78
- var newAppState = this.internalStateOperations
79
- .getRootStateOperations()
80
- .getState();
81
- /** @type {?} */
82
- var firstDiffChange = getStateDiffChanges(mappedStore, {
83
- currentAppState: currentAppState,
84
- newAppState: newAppState
85
- });
86
- instance.ngxsOnChanges(firstDiffChange);
87
- }
88
- if (instance.ngxsOnInit) {
89
- instance.ngxsOnInit(this.getStateContext(mappedStore));
90
- }
91
- mappedStore.isInitialised = true;
124
+ _loop_1(mappedStore);
92
125
  }
93
126
  }
94
127
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -100,15 +133,12 @@ var LifecycleStateManager = /** @class */ (function () {
100
133
  }
101
134
  };
102
135
  /**
103
- * Invoke the bootstrap function on the states.
104
- */
105
- /**
106
- * Invoke the bootstrap function on the states.
136
+ * @private
107
137
  * @param {?} mappedStores
108
138
  * @return {?}
109
139
  */
110
- LifecycleStateManager.prototype.invokeBootstrap = /**
111
- * Invoke the bootstrap function on the states.
140
+ LifecycleStateManager.prototype._invokeBootstrapOnStates = /**
141
+ * @private
112
142
  * @param {?} mappedStores
113
143
  * @return {?}
114
144
  */
@@ -120,7 +150,7 @@ var LifecycleStateManager = /** @class */ (function () {
120
150
  /** @type {?} */
121
151
  var instance = mappedStore.instance;
122
152
  if (instance.ngxsAfterBootstrap) {
123
- instance.ngxsAfterBootstrap(this.getStateContext(mappedStore));
153
+ instance.ngxsAfterBootstrap(this._getStateContext(mappedStore));
124
154
  }
125
155
  }
126
156
  }
@@ -137,19 +167,21 @@ var LifecycleStateManager = /** @class */ (function () {
137
167
  * @param {?} mappedStore
138
168
  * @return {?}
139
169
  */
140
- LifecycleStateManager.prototype.getStateContext = /**
170
+ LifecycleStateManager.prototype._getStateContext = /**
141
171
  * @private
142
172
  * @param {?} mappedStore
143
173
  * @return {?}
144
174
  */
145
175
  function (mappedStore) {
146
- return this.stateContextFactory.createStateContext(mappedStore);
176
+ return this._stateContextFactory.createStateContext(mappedStore);
147
177
  };
148
178
  LifecycleStateManager.decorators = [
149
179
  { type: Injectable }
150
180
  ];
151
181
  /** @nocollapse */
152
182
  LifecycleStateManager.ctorParameters = function () { return [
183
+ { type: Store },
184
+ { type: InternalErrorReporter },
153
185
  { type: InternalStateOperations },
154
186
  { type: StateContextFactory },
155
187
  { type: NgxsBootstrapper }
@@ -162,16 +194,31 @@ if (false) {
162
194
  * @type {?}
163
195
  * @private
164
196
  */
165
- LifecycleStateManager.prototype.internalStateOperations;
197
+ LifecycleStateManager.prototype._destroy$;
198
+ /**
199
+ * @type {?}
200
+ * @private
201
+ */
202
+ LifecycleStateManager.prototype._store;
203
+ /**
204
+ * @type {?}
205
+ * @private
206
+ */
207
+ LifecycleStateManager.prototype._internalErrorReporter;
208
+ /**
209
+ * @type {?}
210
+ * @private
211
+ */
212
+ LifecycleStateManager.prototype._internalStateOperations;
166
213
  /**
167
214
  * @type {?}
168
215
  * @private
169
216
  */
170
- LifecycleStateManager.prototype.stateContextFactory;
217
+ LifecycleStateManager.prototype._stateContextFactory;
171
218
  /**
172
219
  * @type {?}
173
220
  * @private
174
221
  */
175
- LifecycleStateManager.prototype.bootstrapper;
222
+ LifecycleStateManager.prototype._bootstrapper;
176
223
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLGFBQWEsQ0FBQztBQUdsRjtJQUVFLCtCQUNVLHVCQUFnRCxFQUNoRCxtQkFBd0MsRUFDeEMsWUFBOEI7UUFGOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUNyQyxDQUFDOzs7Ozs7O0lBRUosNkNBQWE7Ozs7OztJQUFiLFVBQWlCLE1BQVMsRUFBRSxPQUFzQztRQUFsRSxpQkFXQztRQVZDLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsc0JBQXNCLEVBQUU7YUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNoQixJQUFJLENBQ0gsTUFBTTs7O1FBQUMsY0FBTSxPQUFBLENBQUMsQ0FBQyxPQUFPLEVBQVQsQ0FBUyxFQUFDLEVBQ3ZCLEdBQUc7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFoQyxDQUFnQyxFQUFDLEVBQzNDLFFBQVE7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFsQyxDQUFrQyxFQUFDLEVBQ2xELE1BQU07Ozs7UUFBQyxVQUFBLGVBQWUsSUFBSSxPQUFBLENBQUMsQ0FBQyxlQUFlLEVBQWpCLENBQWlCLEVBQUMsQ0FDN0M7YUFDQSxTQUFTOzs7UUFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBckMsQ0FBcUMsRUFBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRzs7Ozs7O0lBQ0gsMENBQVU7Ozs7O0lBQVYsVUFBVyxZQUEyQjs7O1lBQ3BDLEtBQTBCLElBQUEsaUJBQUEsaUJBQUEsWUFBWSxDQUFBLDBDQUFBLG9FQUFFO2dCQUFuQyxJQUFNLFdBQVcseUJBQUE7O29CQUNkLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7Z0JBRXBELElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRTs7d0JBQ3BCLGVBQWUsR0FBZ0IsRUFBRTs7d0JBQ2pDLFdBQVcsR0FBZ0IsSUFBSSxDQUFDLHVCQUF1Qjt5QkFDMUQsc0JBQXNCLEVBQUU7eUJBQ3hCLFFBQVEsRUFBRTs7d0JBRVAsZUFBZSxHQUFxQixtQkFBbUIsQ0FBQyxXQUFXLEVBQUU7d0JBQ3pFLGVBQWUsaUJBQUE7d0JBQ2YsV0FBVyxhQUFBO3FCQUNaLENBQUM7b0JBRUYsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDekM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO29CQUN2QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDeEQ7Z0JBRUQsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDbEM7Ozs7Ozs7OztJQUNILENBQUM7SUFFRDs7T0FFRzs7Ozs7O0lBQ0gsK0NBQWU7Ozs7O0lBQWYsVUFBZ0IsWUFBMkI7OztZQUN6QyxLQUEwQixJQUFBLGlCQUFBLGlCQUFBLFlBQVksQ0FBQSwwQ0FBQSxvRUFBRTtnQkFBbkMsSUFBTSxXQUFXLHlCQUFBOztvQkFDZCxRQUFRLEdBQWtCLFdBQVcsQ0FBQyxRQUFRO2dCQUNwRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtvQkFDL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDaEU7YUFDRjs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sK0NBQWU7Ozs7O0lBQXZCLFVBQXdCLFdBQXdCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2dCQWhFRixVQUFVOzs7O2dCQUpGLHVCQUF1QjtnQkFEdkIsbUJBQW1CO2dCQUhuQixnQkFBZ0I7O0lBeUV6Qiw0QkFBQztDQUFBLEFBakVELElBaUVDO1NBaEVZLHFCQUFxQjs7Ozs7O0lBRTlCLHdEQUF3RDs7Ozs7SUFDeEQsb0RBQWdEOzs7OztJQUNoRCw2Q0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hzQm9vdHN0cmFwcGVyLCBQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBnZXRTdGF0ZURpZmZDaGFuZ2VzLCBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVN0YXRlTWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgc3RhdGVDb250ZXh0RmFjdG9yeTogU3RhdGVDb250ZXh0RmFjdG9yeSxcbiAgICBwcml2YXRlIGJvb3RzdHJhcHBlcjogTmd4c0Jvb3RzdHJhcHBlclxuICApIHt9XG5cbiAgbmd4c0Jvb3RzdHJhcDxUPihhY3Rpb246IFQsIHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbFN0YXRlT3BlcmF0aW9uc1xuICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgLmRpc3BhdGNoKGFjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISFyZXN1bHRzKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaW52b2tlSW5pdChyZXN1bHRzIS5zdGF0ZXMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5ib290c3RyYXBwZXIuYXBwQm9vdHN0cmFwcGVkJCksXG4gICAgICAgIGZpbHRlcihhcHBCb290c3RyYXBwZWQgPT4gISFhcHBCb290c3RyYXBwZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW52b2tlQm9vdHN0cmFwKHJlc3VsdHMhLnN0YXRlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgaW5pdCBmdW5jdGlvbiBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlSW5pdChtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG1hcHBlZFN0b3JlIG9mIG1hcHBlZFN0b3Jlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlOiBQbGFpbk9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBuZXdBcHBTdGF0ZTogUGxhaW5PYmplY3QgPSB0aGlzLmludGVybmFsU3RhdGVPcGVyYXRpb25zXG4gICAgICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgICAgIC5nZXRTdGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0RGlmZkNoYW5nZTogTmd4c1NpbXBsZUNoYW5nZSA9IGdldFN0YXRlRGlmZkNoYW5nZXMobWFwcGVkU3RvcmUsIHtcbiAgICAgICAgICBjdXJyZW50QXBwU3RhdGUsXG4gICAgICAgICAgbmV3QXBwU3RhdGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyhmaXJzdERpZmZDaGFuZ2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uSW5pdCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzT25Jbml0KHRoaXMuZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdGhlIGJvb3RzdHJhcCBmdW5jdGlvbiBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlQm9vdHN0cmFwKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSkge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuICAgICAgaWYgKGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzQWZ0ZXJCb290c3RyYXAodGhpcy5nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpO1xuICB9XG59XG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBaUIsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBRTNFO0lBSUUsK0JBQ1UsTUFBYSxFQUNiLHNCQUE2QyxFQUM3Qyx3QkFBaUQsRUFDakQsb0JBQXlDLEVBQ3pDLGFBQStCO1FBSi9CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFQeEIsY0FBUyxH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QixXQUFXLENBQUMsUUFBUTtnQkFDcEQsSUFBSSxRQUFRLENBQUMsa0JBQWtCLEVBQUU7b0JBQy9CLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDakU7YUFDRjs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sZ0RBQWdCOzs7OztJQUF4QixVQUF5QixXQUF3QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDOztnQkEzRUYsVUFBVTs7OztnQkFSRixLQUFLO2dCQUVMLHFCQUFxQjtnQkFFckIsdUJBQXVCO2dCQUR2QixtQkFBbUI7Z0JBZm5CLGdCQUFnQjs7SUFnR3pCLDRCQUFDO0NBQUEsQUE1RUQsSUE0RUM7U0EzRVkscUJBQXFCOzs7Ozs7SUFDaEMsMENBQWlEOzs7OztJQUcvQyx1Q0FBcUI7Ozs7O0lBQ3JCLHVEQUFxRDs7Ozs7SUFDckQseURBQXlEOzs7OztJQUN6RCxxREFBaUQ7Ozs7O0lBQ2pELDhDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBFTVBUWSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtZXJnZU1hcCxcbiAgcGFpcndpc2UsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvclJlcG9ydGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVN0YXRlTWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxFcnJvclJlcG9ydGVyOiBJbnRlcm5hbEVycm9yUmVwb3J0ZXIsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgcHJpdmF0ZSBfYm9vdHN0cmFwcGVyOiBOZ3hzQm9vdHN0cmFwcGVyXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBuZ3hzQm9vdHN0cmFwPFQ+KGFjdGlvbjogVCwgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9uc1xuICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgLmRpc3BhdGNoKGFjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISFyZXN1bHRzKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2ludm9rZUluaXRPblN0YXRlcyhyZXN1bHRzIS5zdGF0ZXMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5fYm9vdHN0cmFwcGVyLmFwcEJvb3RzdHJhcHBlZCQpLFxuICAgICAgICBmaWx0ZXIoYXBwQm9vdHN0cmFwcGVkID0+ICEhYXBwQm9vdHN0cmFwcGVkKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgLy8gVGhlIGBTYWZlU3Vic2NyaWJlcmAgKHdoaWNoIGlzIHVzZWQgYnkgbW9zdCBSeEpTIG9wZXJhdG9ycykgcmUtdGhyb3dzXG4gICAgICAgICAgLy8gZXJyb3JzIGFzeW5jaHJvbm91c2x5IChgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycm9yIH0pYCkuIFRoaXMgbWlnaHRcbiAgICAgICAgICAvLyBicmVhayBleGlzdGluZyB1c2VyJ3MgY29kZSBvciB1bml0IHRlc3RzLiBXZSBjYXRjaCB0aGUgZXJyb3IgbWFudWFsbHkgdG9cbiAgICAgICAgICAvLyBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggdGhlIG9sZCBiZWhhdmlvci5cbiAgICAgICAgICB0aGlzLl9pbnRlcm5hbEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3JTYWZlbHkoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW52b2tlQm9vdHN0cmFwT25TdGF0ZXMocmVzdWx0cyEuc3RhdGVzKSk7XG4gIH1cblxuICBwcml2YXRlIF9pbnZva2VJbml0T25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBnZXRWYWx1ZShzdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCkpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCksIHBhaXJ3aXNlKCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IG5ldyBOZ3hzU2ltcGxlQ2hhbmdlKFxuICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlLFxuICAgICAgICAgICAgICBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyEoY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkluaXQpIHtcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uSW5pdCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cblxuICAgICAgbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlQm9vdHN0cmFwT25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKSB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,6 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable } from '@angular/core';
6
- import { getStateDiffChanges } from '../internal/internals';
7
6
  import { setValue, getValue } from '../utils/utils';
8
7
  import { InternalStateOperations } from '../internal/state-operations';
9
8
  import { simplePatch } from './state-operators';
@@ -48,16 +47,6 @@ var StateContextFactory = /** @class */ (function () {
48
47
  function setStateValue(currentAppState, newValue) {
49
48
  /** @type {?} */
50
49
  var newAppState = setValue(currentAppState, mappedStore.path, newValue);
51
- /** @type {?} */
52
- var instance = mappedStore.instance;
53
- if (instance.ngxsOnChanges) {
54
- /** @type {?} */
55
- var change = getStateDiffChanges(mappedStore, {
56
- currentAppState: currentAppState,
57
- newAppState: newAppState
58
- });
59
- instance.ngxsOnChanges(change);
60
- }
61
50
  root.setState(newAppState);
62
51
  return newAppState;
63
52
  // In doing this refactoring I noticed that there is a 'bug' where the
@@ -143,4 +132,4 @@ if (false) {
143
132
  */
144
133
  StateContextFactory.prototype._internalStateOperations;
145
134
  }
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU1oRDtJQUVFLDZCQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtJQUFHLENBQUM7SUFFekU7O09BRUc7Ozs7Ozs7SUFDSCxnREFBa0I7Ozs7OztJQUFsQixVQUFzQixXQUF3Qjs7WUFDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2dCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzs7Z0JBQ25FLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7WUFFcEQsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFOztvQkFDcEIsTUFBTSxHQUFxQixtQkFBbUIsQ0FBSSxXQUFXLEVBQUU7b0JBQ25FLGVBQWUsaUJBQUE7b0JBQ2YsV0FBVyxhQUFBO2lCQUNaLENBQUM7Z0JBRUYsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsT0FBTyxXQUFXLENBQUM7WUFDbkIsc0VBQXNFO1lBQ3RFLDZEQUE2RDtZQUM3RCxvREFBb0Q7WUFDcEQsb0dBQW9HO1lBQ3BHLHNEQUFzRDtZQUN0RCw0RUFBNEU7UUFDOUUsQ0FBQzs7Ozs7O1FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxlQUFvQixFQUFFLGFBQStCOztnQkFDM0UsS0FBSyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7O2dCQUNqQyxRQUFRLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLGFBQWEsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQzs7Ozs7UUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUEyQjtZQUNsRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTztZQUNMLFFBQVE7OztZQUFSOztvQkFDUSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVU7Ozs7WUFBVixVQUFXLEdBQWU7O29CQUNsQixlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTs7b0JBQ2pDLGFBQWEsR0FBRyxXQUFXLENBQUksR0FBRyxDQUFDO2dCQUN6QyxPQUFPLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsUUFBUTs7OztZQUFSLFVBQVMsR0FBeUI7O29CQUMxQixlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDO29CQUN6QixDQUFDLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELFFBQVE7Ozs7WUFBUixVQUFTLE9BQW9CO2dCQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztnQkFuRUYsVUFBVTs7OztnQkFQRix1QkFBdUI7O0lBMkVoQywwQkFBQztDQUFBLEFBcEVELElBb0VDO1NBbkVZLG1CQUFtQjs7Ozs7O0lBQ2xCLHVEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmd4c0xpZmVDeWNsZSwgTmd4c1NpbXBsZUNoYW5nZSwgU3RhdGVDb250ZXh0LCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBnZXRTdGF0ZURpZmZDaGFuZ2VzLCBNYXBwZWRTdG9yZSB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBzZXRWYWx1ZSwgZ2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgc2ltcGxlUGF0Y2ggfSBmcm9tICcuL3N0YXRlLW9wZXJhdG9ycyc7XG5cbi8qKlxuICogU3RhdGUgQ29udGV4dCBmYWN0b3J5IGNsYXNzXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdGF0ZUNvbnRleHRGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIGNvbnRleHRcbiAgICovXG4gIGNyZWF0ZVN0YXRlQ29udGV4dDxUPihtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8VD4ge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XG5cbiAgICBmdW5jdGlvbiBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGU6IGFueSk6IFQge1xuICAgICAgcmV0dXJuIGdldFZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0U3RhdGVWYWx1ZShjdXJyZW50QXBwU3RhdGU6IGFueSwgbmV3VmFsdWU6IFQpOiBhbnkge1xuICAgICAgY29uc3QgbmV3QXBwU3RhdGUgPSBzZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgsIG5ld1ZhbHVlKTtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZTogTmd4c1NpbXBsZUNoYW5nZSA9IGdldFN0YXRlRGlmZkNoYW5nZXM8VD4obWFwcGVkU3RvcmUsIHtcbiAgICAgICAgICBjdXJyZW50QXBwU3RhdGUsXG4gICAgICAgICAgbmV3QXBwU3RhdGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyhjaGFuZ2UpO1xuICAgICAgfVxuXG4gICAgICByb290LnNldFN0YXRlKG5ld0FwcFN0YXRlKTtcbiAgICAgIHJldHVybiBuZXdBcHBTdGF0ZTtcbiAgICAgIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgICAgIC8vIGFwcGxpY2F0aW9uIHN0YXRlIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhpcyBzdGF0ZSBzbGljZS5cbiAgICAgIC8vIFRoaXMgaGFzIHdvcmtlZCB0aGlzIHdheSBzaW5jZSB0aGUgYmVnaW5uaW5nIHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBpcyBhICdicmVha2luZycgY2hhbmdlLlxuICAgICAgLy8gSSB3aWxsIGRvIHRoaXMgZml4IGluIGEgc3Vic2VxdWVudCBQUiBhbmQgd2UgY2FuIGRlY2lkZSBob3cgdG8gaGFuZGxlIGl0LlxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZTogYW55LCBzdGF0ZU9wZXJhdG9yOiBTdGF0ZU9wZXJhdG9yPFQ+KSB7XG4gICAgICBjb25zdCBsb2NhbCA9IGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwpO1xuICAgICAgcmV0dXJuIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlLCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTdGF0ZU9wZXJhdG9yKHZhbHVlOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZhbHVlIGlzIFN0YXRlT3BlcmF0b3I8VD4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiBUIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgcmV0dXJuIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZSwgcGF0Y2hPcGVyYXRvcik7XG4gICAgICB9LFxuICAgICAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IFQge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGUgPSByb290LmdldFN0YXRlKCk7XG4gICAgICAgIHJldHVybiBpc1N0YXRlT3BlcmF0b3IodmFsKVxuICAgICAgICAgID8gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCB2YWwpXG4gICAgICAgICAgOiBzZXRTdGF0ZVZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgdmFsKTtcbiAgICAgIH0sXG4gICAgICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gcm9vdC5kaXNwYXRjaChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU1oRDtJQUVFLDZCQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtJQUFHLENBQUM7SUFFekU7O09BRUc7Ozs7Ozs7SUFDSCxnREFBa0I7Ozs7OztJQUFsQixVQUFzQixXQUF3Qjs7WUFDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2dCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sV0FBVyxDQUFDO1lBQ25CLHNFQUFzRTtZQUN0RSw2REFBNkQ7WUFDN0Qsb0RBQW9EO1lBQ3BELG9HQUFvRztZQUNwRyxzREFBc0Q7WUFDdEQsNEVBQTRFO1FBQzlFLENBQUM7Ozs7OztRQUVELFNBQVMsb0JBQW9CLENBQUMsZUFBb0IsRUFBRSxhQUErQjs7Z0JBQzNFLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDOztnQkFDakMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDckMsT0FBTyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7Ozs7O1FBRUQsU0FBUyxlQUFlLENBQUMsS0FBMkI7WUFDbEQsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU87WUFDTCxRQUFROzs7WUFBUjs7b0JBQ1EsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxVQUFVOzs7O1lBQVYsVUFBVyxHQUFlOztvQkFDbEIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7O29CQUNqQyxhQUFhLEdBQUcsV0FBVyxDQUFJLEdBQUcsQ0FBQztnQkFDekMsT0FBTyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELFFBQVE7Ozs7WUFBUixVQUFTLEdBQXlCOztvQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxRQUFROzs7O1lBQVIsVUFBUyxPQUFvQjtnQkFDM0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBeERGLFVBQVU7Ozs7Z0JBUEYsdUJBQXVCOztJQWdFaEMsMEJBQUM7Q0FBQSxBQXpERCxJQXlEQztTQXhEWSxtQkFBbUI7Ozs7OztJQUNsQix1REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0YXRlQ29udGV4dCwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgTWFwcGVkU3RvcmUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgc2V0VmFsdWUsIGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IHNpbXBsZVBhdGNoIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFN0YXRlIENvbnRleHQgZmFjdG9yeSBjbGFzc1xuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVDb250ZXh0RmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucykge31cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBzdGF0ZSBjb250ZXh0XG4gICAqL1xuICBjcmVhdGVTdGF0ZUNvbnRleHQ8VD4obWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PFQ+IHtcbiAgICBjb25zdCByb290ID0gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpO1xuXG4gICAgZnVuY3Rpb24gZ2V0U3RhdGUoY3VycmVudEFwcFN0YXRlOiBhbnkpOiBUIHtcbiAgICAgIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlOiBhbnksIG5ld1ZhbHVlOiBUKTogYW55IHtcbiAgICAgIGNvbnN0IG5ld0FwcFN0YXRlID0gc2V0VmFsdWUoY3VycmVudEFwcFN0YXRlLCBtYXBwZWRTdG9yZS5wYXRoLCBuZXdWYWx1ZSk7XG4gICAgICByb290LnNldFN0YXRlKG5ld0FwcFN0YXRlKTtcbiAgICAgIHJldHVybiBuZXdBcHBTdGF0ZTtcbiAgICAgIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgICAgIC8vIGFwcGxpY2F0aW9uIHN0YXRlIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhpcyBzdGF0ZSBzbGljZS5cbiAgICAgIC8vIFRoaXMgaGFzIHdvcmtlZCB0aGlzIHdheSBzaW5jZSB0aGUgYmVnaW5uaW5nIHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBpcyBhICdicmVha2luZycgY2hhbmdlLlxuICAgICAgLy8gSSB3aWxsIGRvIHRoaXMgZml4IGluIGEgc3Vic2VxdWVudCBQUiBhbmQgd2UgY2FuIGRlY2lkZSBob3cgdG8gaGFuZGxlIGl0LlxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZTogYW55LCBzdGF0ZU9wZXJhdG9yOiBTdGF0ZU9wZXJhdG9yPFQ+KSB7XG4gICAgICBjb25zdCBsb2NhbCA9IGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwpO1xuICAgICAgcmV0dXJuIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlLCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTdGF0ZU9wZXJhdG9yKHZhbHVlOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZhbHVlIGlzIFN0YXRlT3BlcmF0b3I8VD4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiBUIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgcmV0dXJuIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZSwgcGF0Y2hPcGVyYXRvcik7XG4gICAgICB9LFxuICAgICAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IFQge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGUgPSByb290LmdldFN0YXRlKCk7XG4gICAgICAgIHJldHVybiBpc1N0YXRlT3BlcmF0b3IodmFsKVxuICAgICAgICAgID8gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCB2YWwpXG4gICAgICAgICAgOiBzZXRTdGF0ZVZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgdmFsKTtcbiAgICAgIH0sXG4gICAgICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gcm9vdC5kaXNwYXRjaChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=