@kaspernj/api-maker 1.0.2139 → 1.0.2142

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 (95) hide show
  1. package/build/api.js +2 -2
  2. package/build/base-error.d.ts +112 -1
  3. package/build/base-error.d.ts.map +1 -1
  4. package/build/base-model.d.ts +328 -0
  5. package/build/base-model.d.ts.map +1 -0
  6. package/build/base-model.js +40 -53
  7. package/build/bootstrap/card.js +2 -2
  8. package/build/bootstrap/checkboxes.js +3 -3
  9. package/build/collection.d.ts +671 -5
  10. package/build/collection.d.ts.map +1 -1
  11. package/build/config.d.ts +8 -0
  12. package/build/config.d.ts.map +1 -1
  13. package/build/config.js +9 -1
  14. package/build/devise.d.ts.map +1 -1
  15. package/build/devise.js +18 -23
  16. package/build/draggable-sort/index.js +5 -1
  17. package/build/draggable-sort/item.js +7 -1
  18. package/build/inputs/input.js +3 -3
  19. package/build/inputs/money.js +5 -5
  20. package/build/link.js +4 -4
  21. package/build/model-class-require.d.ts +2 -2
  22. package/build/model-class-require.d.ts.map +1 -1
  23. package/build/model-class-require.js +2 -2
  24. package/build/model-events.d.ts +336 -3
  25. package/build/model-events.d.ts.map +1 -1
  26. package/build/model-recipes-model-loader.d.ts +1357 -67
  27. package/build/model-recipes-model-loader.d.ts.map +1 -1
  28. package/build/models-response-reader.d.ts +336 -3
  29. package/build/models-response-reader.d.ts.map +1 -1
  30. package/build/models.d.ts +1 -1
  31. package/build/models.d.ts.map +1 -1
  32. package/build/models.js +2 -1
  33. package/build/preloaded.d.ts +112 -1
  34. package/build/preloaded.d.ts.map +1 -1
  35. package/build/result.d.ts +336 -3
  36. package/build/result.d.ts.map +1 -1
  37. package/build/router/switch.d.ts +1 -1
  38. package/build/router/switch.d.ts.map +1 -1
  39. package/build/router/switch.js +2 -2
  40. package/build/routes-native.d.ts.map +1 -1
  41. package/build/routes-native.js +4 -3
  42. package/build/services.d.ts +2 -2
  43. package/build/services.d.ts.map +1 -1
  44. package/build/services.js +2 -2
  45. package/build/super-admin/config-reader.js +2 -2
  46. package/build/super-admin/edit-page/edit-attribute.js +2 -1
  47. package/build/super-admin/layout/header/index.js +6 -5
  48. package/build/super-admin/layout/index.js +6 -4
  49. package/build/super-admin/layout/menu/index.js +2 -2
  50. package/build/super-admin/models.d.ts.map +1 -1
  51. package/build/super-admin/models.js +2 -1
  52. package/build/table/column-content.d.ts +11 -2
  53. package/build/table/column-content.d.ts.map +1 -1
  54. package/build/table/column-content.js +10 -1
  55. package/build/table/components/flat-list.js +2 -2
  56. package/build/table/filters/filter-form.js +2 -2
  57. package/build/table/filters/index.js +2 -1
  58. package/build/table/filters/load-search-modal.js +4 -3
  59. package/build/table/filters/save-search-modal.js +2 -2
  60. package/build/table/settings/column-row.js +3 -3
  61. package/build/table/settings/download-action.js +2 -1
  62. package/build/table/settings/index.js +2 -2
  63. package/build/table/table.js +13 -12
  64. package/build/table/use-sorting.d.ts +2 -2
  65. package/build/table/use-sorting.d.ts.map +1 -1
  66. package/build/table/use-sorting.js +2 -2
  67. package/build/table/worker-plugins-check-all-checkbox.js +4 -4
  68. package/build/table/worker-plugins-checkbox.js +2 -2
  69. package/build/use-collection.d.ts +112 -1
  70. package/build/use-collection.d.ts.map +1 -1
  71. package/build/use-current-user.d.ts +113 -2
  72. package/build/use-current-user.d.ts.map +1 -1
  73. package/build/use-current-user.js +2 -2
  74. package/build/use-input.d.ts +8 -23
  75. package/build/use-input.d.ts.map +1 -1
  76. package/build/use-input.js +6 -12
  77. package/build/use-model.d.ts +112 -1
  78. package/build/use-model.d.ts.map +1 -1
  79. package/build/use-model.js +19 -5
  80. package/build/use-router.js +2 -2
  81. package/build/use-updated-event.d.ts +225 -3
  82. package/build/use-updated-event.d.ts.map +1 -1
  83. package/build/use-updated-event.js +2 -2
  84. package/build/utils/checkbox.js +2 -1
  85. package/build/utils/checkboxes.js +3 -3
  86. package/build/utils/default-style.d.ts +2 -4
  87. package/build/utils/default-style.d.ts.map +1 -1
  88. package/build/utils/default-style.js +4 -3
  89. package/build/utils/header.d.ts +1 -1
  90. package/build/utils/header.js +2 -2
  91. package/build/utils/text.js +2 -2
  92. package/build/with-api-maker.js +2 -2
  93. package/build/with-collection.d.ts.map +1 -1
  94. package/build/with-collection.js +4 -2
  95. package/package.json +2 -2
@@ -8,7 +8,118 @@ export type useModelArgs = {
8
8
  params: object;
9
9
  };
10
10
  onDestroyed?: (ctx: {
11
- model: import("./base-model.js").default;
11
+ model: {
12
+ changes: {};
13
+ newRecord: boolean;
14
+ relationshipsCache: {};
15
+ relationships: {};
16
+ abilities: Record<string, any>;
17
+ modelData: {};
18
+ assignAttributes(newAttributes: Record<string, any>): void;
19
+ attributes(): Record<string, any>;
20
+ can(givenAbilityName: string): boolean;
21
+ clone(): /*elided*/ any;
22
+ cacheKey(): number | string;
23
+ localCacheKey(): string;
24
+ fullCacheKey(): string;
25
+ create(attributes?: Record<string, any>, options?: object): Promise<{
26
+ model: /*elided*/ any;
27
+ response: object;
28
+ }>;
29
+ createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
30
+ model: /*elided*/ any;
31
+ response: any;
32
+ }>;
33
+ destroy(): Promise<{
34
+ model: /*elided*/ any;
35
+ response: object;
36
+ }>;
37
+ ensureAbilities(listOfAbilities: string[]): Promise<void>;
38
+ getAttributes(): Record<string, any>;
39
+ handleResponseError(response: object): never;
40
+ identifierKey(): number | string;
41
+ _identifierKey: string | number;
42
+ isAssociationLoaded(associationName: string): boolean;
43
+ isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
44
+ isAssociationPresent(associationName: string): boolean;
45
+ ensureAssociationLoaded(associationName: string): Promise<any>;
46
+ ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
47
+ isAttributeChanged(attributeName: string): boolean;
48
+ isChanged(): boolean;
49
+ isNewRecord(): boolean;
50
+ isPersisted(): boolean;
51
+ savedChangeToAttribute(attributeName: string): boolean;
52
+ setNewModel(model: /*elided*/ any): void;
53
+ setNewModelData(model: /*elided*/ any): void;
54
+ previousModelData: any;
55
+ _isDateChanged(oldValue: any, newValue: any): boolean | void;
56
+ _isIntegerChanged(oldValue: any, newValue: any): boolean | void;
57
+ _isStringChanged(oldValue: any, newValue: any): boolean | void;
58
+ modelClassData(): ModelClassDataType;
59
+ reload(): Promise<void>;
60
+ save(): Promise<{
61
+ model: /*elided*/ any;
62
+ response?: object;
63
+ }>;
64
+ saveRaw(rawData: any, options?: {}): Promise<{
65
+ model: /*elided*/ any;
66
+ response: object;
67
+ }>;
68
+ update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
69
+ model: /*elided*/ any;
70
+ response?: object;
71
+ }>;
72
+ _refreshModelFromResponse(response: object): void;
73
+ _refreshModelDataFromResponse(response: object): void;
74
+ updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
75
+ simpleModelErrors?: boolean;
76
+ }): Promise<{
77
+ response: object;
78
+ model: /*elided*/ any;
79
+ }>;
80
+ isValid(): never;
81
+ isValidOnServer(): Promise<{
82
+ valid: boolean;
83
+ errors: Record<string, any>;
84
+ }>;
85
+ modelClass(): Record<string, any>;
86
+ preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
87
+ markForDestruction(): void;
88
+ _markedForDestruction: boolean;
89
+ markedForDestruction(): boolean;
90
+ uniqueKey(): number;
91
+ uniqueKeyValue: number;
92
+ _callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
93
+ readAttribute(attributeName: string): any;
94
+ readAttributeUnderscore(attributeName: string): any;
95
+ isAttributeLoaded(attributeName: any): boolean;
96
+ _isPresent(value: any): boolean;
97
+ _loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
98
+ _readBelongsToReflection({ reflectionName }: {
99
+ modelClass: any;
100
+ reflectionName: string;
101
+ }): any | null;
102
+ _loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
103
+ _loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
104
+ _readHasOneReflection({ reflectionName }: {
105
+ modelClass: any;
106
+ reflectionName: string;
107
+ }): any | null;
108
+ _readModelDataFromArgs(args?: {
109
+ data?: {
110
+ b?: Record<string, any>;
111
+ a?: Record<string, any>;
112
+ r?: any;
113
+ };
114
+ collection?: import("./collection.js").default<any>;
115
+ }): void;
116
+ collection: import("./collection.js").default<any>;
117
+ preloadedRelationships: any;
118
+ _readPreloadedRelationships(preloaded: {
119
+ getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
120
+ }): void;
121
+ primaryKey(): number | string;
122
+ };
12
123
  }) => void;
13
124
  query?: import("./collection.js").default<any>;
14
125
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,gBAAgB;AAEhB;;;;EAwOC"}
1
+ {"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eAUc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAmQwkf,CAAC;;;;;;;;wBAA2iB,CAAC;;;;;iCAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnQ9ukB,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,gBAAgB;AAEhB;;;;EAsPC"}
@@ -205,15 +205,29 @@ const useModel = (modelClassArg, argsArg = {}) => {
205
205
  connectDestroyed?.unsubscribe();
206
206
  };
207
207
  }, [args.onDestroyed, s.s.model?.id()]);
208
+ let model = s.s.model;
209
+ let notFound = s.s.notFound;
210
+ if (!s.m.active) {
211
+ model = undefined;
212
+ notFound = undefined;
213
+ }
214
+ else if (modelId && model && model.id() != modelId) {
215
+ model = undefined;
216
+ notFound = undefined;
217
+ }
218
+ else if (!modelId && !args.query && !s.props.newIfNoId) {
219
+ model = undefined;
220
+ notFound = undefined;
221
+ }
208
222
  const result = {
209
- model: s.s.model,
223
+ model,
210
224
  modelId,
211
- notFound: s.s.notFound
225
+ notFound
212
226
  };
213
- result[modelVariableName] = s.s.model;
227
+ result[modelVariableName] = model;
214
228
  result[`${modelVariableName}Id`] = modelId;
215
- result[`${modelVariableName}NotFound`] = s.s.notFound;
229
+ result[`${modelVariableName}NotFound`] = notFound;
216
230
  return result;
217
231
  };
218
232
  export default useModel;
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckM7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxD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LEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQ2hCLE9BQU87UUFDUCxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0tBQ3ZCLENBQUE7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNyQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUVyRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSB1c2VNb2RlbEFyZ3NcbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBGdW5jdGlvbn0gW2NhbGxiYWNrXVxuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IG9iamVjdH0gW2FyZ3NdXG4gKiBAcHJvcGVydHkgeygpID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufG9iamVjdH0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtvYmplY3QgfCAoKGFyZ3M6IHttb2RlbENsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9KSA9PiB1c2VNb2RlbEFyZ3MpfSBbYXJnc0FyZ11cbiAqL1xuLyoqIHVzZU1vZGVsLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgbG9hZE1vZGVsR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHRcblxuICAgICAgaWYgKGRlZmF1bHRzUmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuXG4gICAgcy5zZXQoe21vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBtb2RlbCByZXF1ZXN0IG1heSB1cGRhdGUgc3RhdGUgYWZ0ZXIgcm91dGUgb3IgYXV0aCBjaGFuZ2VzLlxuICAgIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb24gPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKyAxXG5cbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBsb2FkTW9kZWxHZW5lcmF0aW9uXG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH0gZWxzZSBpZiAoIXMucHJvcHMub3B0aW9uYWwgfHwgcy5tLm1vZGVsSWQgfHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBjYWNoZUFyZ3MucHVzaChxdWVyeVBhcmFtcylcblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG4gIGlmIChzLm1ldGEuc3luY05ld01vZGVsID09IHVuZGVmaW5lZCkgcy5tZXRhLnN5bmNOZXdNb2RlbCA9IGZhbHNlXG4gIGlmIChzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT0gdW5kZWZpbmVkKSBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG5cbiAgaWYgKHMubS5hY3RpdmUgJiYgcy5wcm9wcy5uZXdJZk5vSWQgJiYgIXMubS5tb2RlbElkICYmICFzLnMubW9kZWwgJiYgIXMubS5zeW5jTmV3TW9kZWwpIHtcbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzICYmIHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2YgZGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gZGVmYXVsdHNSZXN1bHQuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ICYmIHR5cGVvZiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cbiAgICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24ocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9LCBzLnByb3BzLm5ld0F0dHJpYnV0ZXMsIG1vZGVsRGF0YUZyb21QYXJhbXMpXG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICAgIGRhdGE6IHthOiBtb2RlbERhdGF9XG4gICAgICB9KVxuXG4gICAgICBzLm1ldGEuc3luY05ld01vZGVsID0gbW9kZWxcbiAgICAgIHMuc2V0KHttb2RlbH0pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgYXN5bmMgbW9kZWwgbG9hZGluZyBhZnRlciBtb3VudCBzbyBTaGFwZUhvb2sgc3RhdGUgdXBkYXRlcyBkbyBub3QgcmFjZSB0aGUgbW91bnQgbGlmZWN5Y2xlLlxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4geyBsb2FkTW9kZWwoKSB9LFxuICAgIGNhY2hlQXJnc1xuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWw6IHMucy5tb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kOiBzLnMubm90Rm91bmRcbiAgfVxuXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBzLnMubW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gcy5zLm5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxRQUFRLE1BQU0sZ0JBQWdCLENBQUE7QUFFckM7Ozs7Ozs7OztHQVNHO0FBRUg7OztHQUdHO0FBQ0gsZ0JBQWdCO0FBQ2hCLHNDQUFzQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxD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LENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDckIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7SUFFM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsS0FBSyxHQUFHLFNBQVMsQ0FBQTtRQUNqQixRQUFRLEdBQUcsU0FBUyxDQUFBO0lBQ3RCLENBQUM7U0FBTSxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JELEtBQUssR0FBRyxTQUFTLENBQUE7UUFDakIsUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUN0QixDQUFDO1NBQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pELEtBQUssR0FBRyxTQUFTLENBQUE7UUFDakIsUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUN0QixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUc7UUFDYixLQUFLO1FBQ0wsT0FBTztRQUNQLFFBQVE7S0FDVCxDQUFBO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixJQUFJLENBQUMsR0FBRyxPQUFPLENBQUE7SUFDMUMsTUFBTSxDQUFDLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtJQUVqRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSB1c2VNb2RlbEFyZ3NcbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBGdW5jdGlvbn0gW2NhbGxiYWNrXVxuICogQHByb3BlcnR5IHsoYXJnOiBvYmplY3QpID0+IG9iamVjdH0gW2FyZ3NdXG4gKiBAcHJvcGVydHkgeygpID0+IG51bWJlcnxzdHJpbmd9IFtsb2FkQnlRdWVyeVBhcmFtXVxuICogQHByb3BlcnR5IHthbnlbXX0gW2NhY2hlQXJnc11cbiAqIEBwcm9wZXJ0eSB7e3BhcmFtczogb2JqZWN0fX0gW21hdGNoXVxuICogQHByb3BlcnR5IHsoY3R4OiB7IG1vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB9KSA9PiB2b2lkfSBbb25EZXN0cm95ZWRdXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBbcXVlcnldXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufG9iamVjdH0gbW9kZWxDbGFzc0FyZ1xuICogQHBhcmFtIHtvYmplY3QgfCAoKGFyZ3M6IHttb2RlbENsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9KSA9PiB1c2VNb2RlbEFyZ3MpfSBbYXJnc0FyZ11cbiAqL1xuLyoqIHVzZU1vZGVsLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmNvbnN0IHVzZU1vZGVsID0gKG1vZGVsQ2xhc3NBcmcsIGFyZ3NBcmcgPSB7fSkgPT4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgbG9hZE1vZGVsR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgbGV0IHF1ZXJ5XG5cbiAgICBpZiAocy5tLm1vZGVsSWQpIHtcbiAgICAgIHF1ZXJ5ID0gbW9kZWxDbGFzcy5yYW5zYWNrKHtpZF9lcTogcy5tLm1vZGVsSWR9KVxuICAgIH0gZWxzZSBpZiAocy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gcy5tLmFyZ3MucXVlcnkuY2xvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsIElEIHdhcyBnaXZlbjogJHtzLm0ubW9kZWxJZH0gYnkgJyR7cGFyYW1zVmFyaWFibGVOYW1lfScgaW4gcXVlcnkgcGFyYW1zOiAke09iamVjdC5rZXlzKHMucHJvcHMubWF0Y2gucGFyYW1zKS5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5hYmlsaXRpZXMpIHF1ZXJ5LmFiaWxpdGllcyhzLnAuYWJpbGl0aWVzKVxuICAgIGlmIChzLnByb3BzLnByZWxvYWQpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWQpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0KSBxdWVyeS5zZWxlY3Qocy5wLnNlbGVjdClcblxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGxvYWRNb2RlbEdlbmVyYXRpb24gIT0gbG9hZE1vZGVsR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jIChsb2FkTW9kZWxHZW5lcmF0aW9uKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBsZXQgZGVmYXVsdHNSZXN1bHQgPSBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHRcblxuICAgICAgaWYgKGRlZmF1bHRzUmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRzUmVzdWx0ID0gcy5wcm9wcy5uZXdJZk5vSWQuZGVmYXVsdHMoKVxuICAgICAgfVxuXG4gICAgICBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IGRlZmF1bHRzUmVzdWx0XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBpZiAobG9hZE1vZGVsR2VuZXJhdGlvbiAhPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuXG4gICAgcy5zZXQoe21vZGVsfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBtb2RlbCByZXF1ZXN0IG1heSB1cGRhdGUgc3RhdGUgYWZ0ZXIgcm91dGUgb3IgYXV0aCBjaGFuZ2VzLlxuICAgIGNvbnN0IGxvYWRNb2RlbEdlbmVyYXRpb24gPSBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKyAxXG5cbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBsb2FkTW9kZWxHZW5lcmF0aW9uXG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH0gZWxzZSBpZiAoIXMucHJvcHMub3B0aW9uYWwgfHwgcy5tLm1vZGVsSWQgfHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbChsb2FkTW9kZWxHZW5lcmF0aW9uKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBjYWNoZUFyZ3MucHVzaChxdWVyeVBhcmFtcylcblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG4gIGlmIChzLm1ldGEuc3luY05ld01vZGVsID09IHVuZGVmaW5lZCkgcy5tZXRhLnN5bmNOZXdNb2RlbCA9IGZhbHNlXG4gIGlmIChzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPT0gdW5kZWZpbmVkKSBzLm1ldGEubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQgPSBudWxsXG5cbiAgaWYgKHMubS5hY3RpdmUgJiYgcy5wcm9wcy5uZXdJZk5vSWQgJiYgIXMubS5tb2RlbElkICYmICFzLnMubW9kZWwgJiYgIXMubS5zeW5jTmV3TW9kZWwpIHtcbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzICYmIHMubS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdHNSZXN1bHQgPSBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG5cbiAgICAgIGlmIChkZWZhdWx0c1Jlc3VsdCAmJiB0eXBlb2YgZGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcy5tZXRhLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ID0gZGVmYXVsdHNSZXN1bHQuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMubWV0YS5uZXdJZk5vSWREZWZhdWx0c1Jlc3VsdCA9IGRlZmF1bHRzUmVzdWx0XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0ICYmIHR5cGVvZiBzLm0ubmV3SWZOb0lkRGVmYXVsdHNSZXN1bHQudGhlbiA9PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgICAgY29uc3QgcGFyYW1LZXkgPSBNb2RlbENsYXNzLm1vZGVsTmFtZSgpLnBhcmFtS2V5KClcbiAgICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXM/LltwYXJhbUtleV0gfHwge31cbiAgICAgIGNvbnN0IG1vZGVsRGF0YSA9IE9iamVjdC5hc3NpZ24ocy5tLm5ld0lmTm9JZERlZmF1bHRzUmVzdWx0IHx8IHt9LCBzLnByb3BzLm5ld0F0dHJpYnV0ZXMsIG1vZGVsRGF0YUZyb21QYXJhbXMpXG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtcbiAgICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICAgIGRhdGE6IHthOiBtb2RlbERhdGF9XG4gICAgICB9KVxuXG4gICAgICBzLm1ldGEuc3luY05ld01vZGVsID0gbW9kZWxcbiAgICAgIHMuc2V0KHttb2RlbH0pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhcnQgYXN5bmMgbW9kZWwgbG9hZGluZyBhZnRlciBtb3VudCBzbyBTaGFwZUhvb2sgc3RhdGUgdXBkYXRlcyBkbyBub3QgcmFjZSB0aGUgbW91bnQgbGlmZWN5Y2xlLlxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4geyBsb2FkTW9kZWwoKSB9LFxuICAgIGNhY2hlQXJnc1xuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBsb2FkTW9kZWxHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBsZXQgbW9kZWwgPSBzLnMubW9kZWxcbiAgbGV0IG5vdEZvdW5kID0gcy5zLm5vdEZvdW5kXG5cbiAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgbW9kZWwgPSB1bmRlZmluZWRcbiAgICBub3RGb3VuZCA9IHVuZGVmaW5lZFxuICB9IGVsc2UgaWYgKG1vZGVsSWQgJiYgbW9kZWwgJiYgbW9kZWwuaWQoKSAhPSBtb2RlbElkKSB7XG4gICAgbW9kZWwgPSB1bmRlZmluZWRcbiAgICBub3RGb3VuZCA9IHVuZGVmaW5lZFxuICB9IGVsc2UgaWYgKCFtb2RlbElkICYmICFhcmdzLnF1ZXJ5ICYmICFzLnByb3BzLm5ld0lmTm9JZCkge1xuICAgIG1vZGVsID0gdW5kZWZpbmVkXG4gICAgbm90Rm91bmQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBtb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kXG4gIH1cblxuICByZXN1bHRbbW9kZWxWYXJpYWJsZU5hbWVdID0gbW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gbm90Rm91bmRcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsXG4iXX0=
@@ -42,7 +42,7 @@ const useRouter = (props) => {
42
42
  const params = findRouteParams(routeDefinition);
43
43
  params.push({ locale });
44
44
  if (!(routePathName in routes))
45
- throw new Error(`${routePathName} not found in routes: ${Object.keys(routes, ", ")}`);
45
+ throw new Error(`${routePathName} not found in routes: ${Object.keys(routes).join(", ")}`);
46
46
  const routePath = routes[routePathName](...params).replace(/[/]+$/, "");
47
47
  const groups = [];
48
48
  let pathRegexString = "^";
@@ -93,4 +93,4 @@ const useRouter = (props) => {
93
93
  return { match };
94
94
  };
95
95
  export default useRouter;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJvdXRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMxQyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztJQUN4QyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVO0lBQ25DLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN0QixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7SUFDN0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtDQUNwQyxDQUFDLENBQUE7QUFFRixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzFCLFNBQVMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV4RSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFekIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTdDLEtBQUssTUFBTSxJ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QUMsZUFBZSxDQUFDLElBQUksSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFDbkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLEVBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHO1FBQ1osYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFBO0lBRUQsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuY29uc3QgdXNlUm91dGVyUHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufSlcblxuY29uc3QgdXNlUm91dGVyID0gKHByb3BzKSA9PiB7XG4gIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyh1c2VSb3V0ZXJQcm9wVHlwZXMsIHByb3BzLCBcInByb3BcIiwgXCJ1c2VSb3V0ZXJcIilcblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG5cbiAgY29uc3QgZmluZFJvdXRlUGFyYW1zID0gdXNlQ2FsbGJhY2soKHJvdXRlRGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3QgcGFydHMgPSByb3V0ZURlZmluaXRpb24ucGF0aC5zcGxpdChcIi9cIilcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKHBhcnQubWF0Y2goL146KFthLXpfXSspJC8pKVxuICAgICAgICByZXN1bHQucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0UGF0aCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsZXQgcGF0aCA9IHMucC5wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuXG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuXG4gICAgcmV0dXJuIHBhdGhcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0Um91dGVEZWZpbml0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHMucC5yb3V0ZURlZmluaXRpb25zIHx8IGNvbmZpZy5nZXRSb3V0ZURlZmluaXRpb25zKCksIFtdKVxuICBjb25zdCBnZXRSb3V0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnAucm91dGVzIHx8IGNvbmZpZy5nZXRSb3V0ZXMoKSwgW10pXG5cbiAgY29uc3QgcGFyc2VSb3V0ZURlZmluaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbnMgPSBnZXRSb3V0ZURlZmluaXRpb25zKClcbiAgICBjb25zdCByb3V0ZXMgPSBnZXRSb3V0ZXMoKVxuICAgIGNvbnN0IHJlZ2V4ID0gLzooW0EtelxcZF9dKykvXG4gICAgY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBzLnAubG9jYWxlcykge1xuICAgICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2Ygcm91dGVEZWZpbml0aW9ucy5yb3V0ZXMpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUocm91dGVEZWZpbml0aW9uLm5hbWUsIHRydWUpfVBhdGhgXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbmRSb3V0ZVBhcmFtcyhyb3V0ZURlZmluaXRpb24pXG5cbiAgICAgICAgcGFyYW1zLnB1c2goe2xvY2FsZX0pXG5cbiAgICAgICAgaWYgKCEocm91dGVQYXRoTmFtZSBpbiByb3V0ZXMpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyb3V0ZVBhdGhOYW1lfSBub3QgZm91bmQgaW4gcm91dGVzOiAke09iamVjdC5rZXlzKHJvdXRlcywgXCIsIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aCA9IHJvdXRlc1tyb3V0ZVBhdGhOYW1lXSguLi5wYXJhbXMpLnJlcGxhY2UoL1svXSskLywgXCJcIilcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gW11cbiAgICAgICAgbGV0IHBhdGhSZWdleFN0cmluZyA9IFwiXlwiXG5cbiAgICAgICAgcGF0aFJlZ2V4U3RyaW5nICs9IGVzY2FwZVN0cmluZ1JlZ2V4cChyb3V0ZVBhdGgpXG5cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHBhdGhSZWdleFN0cmluZy5tYXRjaChyZWdleClcblxuICAgICAgICAgIGlmICghbWF0Y2gpIGJyZWFrXG5cbiAgICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBtYXRjaFsxXVxuXG4gICAgICAgICAgZ3JvdXBzLnB1c2godmFyaWFibGVOYW1lKVxuXG4gICAgICAgICAgcGF0aFJlZ2V4U3RyaW5nID0gcGF0aFJlZ2V4U3RyaW5nLnJlcGxhY2UobWF0Y2hbMF0sIFwiKFteL10rKVwiKVxuICAgICAgICB9XG5cbiAgICAgICAgcGF0aFJlZ2V4U3RyaW5nICs9IFwiJFwiXG5cbiAgICAgICAgY29uc3QgcGF0aFJlZ2V4ID0gbmV3IFJlZ0V4cChwYXRoUmVnZXhTdHJpbmcpXG5cbiAgICAgICAgcGFyc2VkUm91dGVEZWZpbml0aW9ucy5wdXNoKHtncm91cHMsIHBhdGhSZWdleCwgcm91dGVEZWZpbml0aW9ufSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkUm91dGVEZWZpbml0aW9uc1xuICB9LCBbXSlcblxuICBjb25zdCBwYXJzZWRSb3V0ZURlZmluaXRpb25zID0gdXNlTWVtbygoKSA9PiBwYXJzZVJvdXRlRGVmaW5pdGlvbnMoKSwgW10pXG5cbiAgcy51cGRhdGVNZXRhKHtwYXJzZWRSb3V0ZURlZmluaXRpb25zfSlcblxuICBjb25zdCBmaW5kTWF0Y2hpbmdSb3V0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gZ2V0UGF0aCgpXG5cbiAgICBmb3IgKGNvbnN0IHBhcnNlZFJvdXRlRGVmaW5pdGlvbiBvZiBzLm0ucGFyc2VkUm91dGVEZWZpbml0aW9ucykge1xuICAgICAgY29uc3QgbWF0Y2ggPSBwYXRoLm1hdGNoKHBhcnNlZFJvdXRlRGVmaW5pdGlvbi5wYXRoUmVnZXgpXG4gICAgICBsZXQgbWF0Y2hlZCwgcGFyYW1zXG5cbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtYXRjaGVkID0gdHJ1ZVxuICAgICAgICBwYXJhbXMgPSB7fVxuXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBLZXkgaW4gcGFyc2VkUm91dGVEZWZpbml0aW9uLmdyb3Vwcykge1xuICAgICAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IHBhcnNlZFJvdXRlRGVmaW5pdGlvbi5ncm91cHNbZ3JvdXBLZXldXG5cbiAgICAgICAgICBwYXJhbXNbZ3JvdXBOYW1lXSA9IG1hdGNoW051bWJlcihncm91cEtleSkgKyAxXVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXRoID09IFwiXCIgJiYgcGFyc2VkUm91dGVEZWZpbml0aW9uLnJvdXRlRGVmaW5pdGlvbi5wYXRoID09IFwiL1wiKSBtYXRjaGVkID0gdHJ1ZVxuICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuIHtwYXJhbXMsIHBhcnNlZFJvdXRlRGVmaW5pdGlvbn1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG1hdGNoaW5nUm91dGUgPSBmaW5kTWF0Y2hpbmdSb3V0ZSgpXG4gIGNvbnN0IHBhcmFtcyA9IG1hdGNoaW5nUm91dGU/LnBhcmFtcyB8fCB7fVxuICBjb25zdCBtYXRjaCA9IHtcbiAgICBtYXRjaGluZ1JvdXRlLFxuICAgIHBhcmFtc1xuICB9XG5cbiAgcmV0dXJuIHttYXRjaH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlUm91dGVyXG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJvdXRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMxQyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztJQUN4QyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVO0lBQ25DLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN0QixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7SUFDN0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtDQUNwQyxDQUFDLENBQUE7QUFFRixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzFCLFNBQVMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV4RSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFekIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTdDLEtBQUssTUFBTSxJ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LElBQUkscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFDbkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLEVBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHO1FBQ1osYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFBO0lBRUQsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELGVBQWUsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcblxuY29uc3QgdXNlUm91dGVyUHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufSlcblxuY29uc3QgdXNlUm91dGVyID0gKHByb3BzKSA9PiB7XG4gIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyh1c2VSb3V0ZXJQcm9wVHlwZXMsIHByb3BzLCBcInByb3BcIiwgXCJ1c2VSb3V0ZXJcIilcblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG5cbiAgY29uc3QgZmluZFJvdXRlUGFyYW1zID0gdXNlQ2FsbGJhY2soKHJvdXRlRGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3QgcGFydHMgPSByb3V0ZURlZmluaXRpb24ucGF0aC5zcGxpdChcIi9cIilcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKHBhcnQubWF0Y2goL146KFthLXpfXSspJC8pKVxuICAgICAgICByZXN1bHQucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0UGF0aCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsZXQgcGF0aCA9IHMucC5wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuXG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuXG4gICAgcmV0dXJuIHBhdGhcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0Um91dGVEZWZpbml0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHMucC5yb3V0ZURlZmluaXRpb25zIHx8IGNvbmZpZy5nZXRSb3V0ZURlZmluaXRpb25zKCksIFtdKVxuICBjb25zdCBnZXRSb3V0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnAucm91dGVzIHx8IGNvbmZpZy5nZXRSb3V0ZXMoKSwgW10pXG5cbiAgY29uc3QgcGFyc2VSb3V0ZURlZmluaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbnMgPSBnZXRSb3V0ZURlZmluaXRpb25zKClcbiAgICBjb25zdCByb3V0ZXMgPSBnZXRSb3V0ZXMoKVxuICAgIGNvbnN0IHJlZ2V4ID0gLzooW0EtelxcZF9dKykvXG4gICAgY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBzLnAubG9jYWxlcykge1xuICAgICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2Ygcm91dGVEZWZpbml0aW9ucy5yb3V0ZXMpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUocm91dGVEZWZpbml0aW9uLm5hbWUsIHRydWUpfVBhdGhgXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbmRSb3V0ZVBhcmFtcyhyb3V0ZURlZmluaXRpb24pXG5cbiAgICAgICAgcGFyYW1zLnB1c2goe2xvY2FsZX0pXG5cbiAgICAgICAgaWYgKCEocm91dGVQYXRoTmFtZSBpbiByb3V0ZXMpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyb3V0ZVBhdGhOYW1lfSBub3QgZm91bmQgaW4gcm91dGVzOiAke09iamVjdC5rZXlzKHJvdXRlcykuam9pbihcIiwgXCIpfWApXG5cbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGVzW3JvdXRlUGF0aE5hbWVdKC4uLnBhcmFtcykucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuICAgICAgICBjb25zdCBncm91cHMgPSBbXVxuICAgICAgICBsZXQgcGF0aFJlZ2V4U3RyaW5nID0gXCJeXCJcblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gZXNjYXBlU3RyaW5nUmVnZXhwKHJvdXRlUGF0aClcblxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aFJlZ2V4U3RyaW5nLm1hdGNoKHJlZ2V4KVxuXG4gICAgICAgICAgaWYgKCFtYXRjaCkgYnJlYWtcblxuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IG1hdGNoWzFdXG5cbiAgICAgICAgICBncm91cHMucHVzaCh2YXJpYWJsZU5hbWUpXG5cbiAgICAgICAgICBwYXRoUmVnZXhTdHJpbmcgPSBwYXRoUmVnZXhTdHJpbmcucmVwbGFjZShtYXRjaFswXSwgXCIoW14vXSspXCIpXG4gICAgICAgIH1cblxuICAgICAgICBwYXRoUmVnZXhTdHJpbmcgKz0gXCIkXCJcblxuICAgICAgICBjb25zdCBwYXRoUmVnZXggPSBuZXcgUmVnRXhwKHBhdGhSZWdleFN0cmluZylcblxuICAgICAgICBwYXJzZWRSb3V0ZURlZmluaXRpb25zLnB1c2goe2dyb3VwcywgcGF0aFJlZ2V4LCByb3V0ZURlZmluaXRpb259KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWRSb3V0ZURlZmluaXRpb25zXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHBhcnNlZFJvdXRlRGVmaW5pdGlvbnMgPSB1c2VNZW1vKCgpID0+IHBhcnNlUm91dGVEZWZpbml0aW9ucygpLCBbXSlcblxuICBzLnVwZGF0ZU1ldGEoe3BhcnNlZFJvdXRlRGVmaW5pdGlvbnN9KVxuXG4gIGNvbnN0IGZpbmRNYXRjaGluZ1JvdXRlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBnZXRQYXRoKClcblxuICAgIGZvciAoY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9uIG9mIHMubS5wYXJzZWRSb3V0ZURlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHBhdGgubWF0Y2gocGFyc2VkUm91dGVEZWZpbml0aW9uLnBhdGhSZWdleClcbiAgICAgIGxldCBtYXRjaGVkLCBwYXJhbXNcblxuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoZWQgPSB0cnVlXG4gICAgICAgIHBhcmFtcyA9IHt9XG5cbiAgICAgICAgZm9yIChjb25zdCBncm91cEtleSBpbiBwYXJzZWRSb3V0ZURlZmluaXRpb24uZ3JvdXBzKSB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBOYW1lID0gcGFyc2VkUm91dGVEZWZpbml0aW9uLmdyb3Vwc1tncm91cEtleV1cblxuICAgICAgICAgIHBhcmFtc1tncm91cE5hbWVdID0gbWF0Y2hbTnVtYmVyKGdyb3VwS2V5KSArIDFdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBhdGggPT0gXCJcIiAmJiBwYXJzZWRSb3V0ZURlZmluaXRpb24ucm91dGVEZWZpbml0aW9uLnBhdGggPT0gXCIvXCIpIG1hdGNoZWQgPSB0cnVlXG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4ge3BhcmFtcywgcGFyc2VkUm91dGVEZWZpbml0aW9ufVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgbWF0Y2hpbmdSb3V0ZSA9IGZpbmRNYXRjaGluZ1JvdXRlKClcbiAgY29uc3QgcGFyYW1zID0gbWF0Y2hpbmdSb3V0ZT8ucGFyYW1zIHx8IHt9XG4gIGNvbnN0IG1hdGNoID0ge1xuICAgIG1hdGNoaW5nUm91dGUsXG4gICAgcGFyYW1zXG4gIH1cblxuICByZXR1cm4ge21hdGNofVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VSb3V0ZXJcbiJdfQ==
@@ -5,12 +5,234 @@ export default apiMakerUseUpdatedEvent;
5
5
  * @param {object} [props]
6
6
  * @param {boolean} [props.active]
7
7
  * @param {number} [props.debounce]
8
- * @param {Function} [props.onConnected]
8
+ * @param {(...args: any[]) => void} [props.onConnected]
9
9
  * @returns {void}
10
10
  */
11
- declare function apiMakerUseUpdatedEvent(model: import("./base-model.js").default | import("./base-model.js").default[], onUpdated: Function, props?: {
11
+ declare function apiMakerUseUpdatedEvent(model: {
12
+ changes: {};
13
+ newRecord: boolean;
14
+ relationshipsCache: {};
15
+ relationships: {};
16
+ abilities: Record<string, any>;
17
+ modelData: {};
18
+ assignAttributes(newAttributes: Record<string, any>): void;
19
+ attributes(): Record<string, any>;
20
+ can(givenAbilityName: string): boolean;
21
+ clone(): /*elided*/ any;
22
+ cacheKey(): number | string;
23
+ localCacheKey(): string;
24
+ fullCacheKey(): string;
25
+ create(attributes?: Record<string, any>, options?: object): Promise<{
26
+ model: /*elided*/ any;
27
+ response: object;
28
+ }>;
29
+ createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
30
+ model: /*elided*/ any;
31
+ response: any;
32
+ }>;
33
+ destroy(): Promise<{
34
+ model: /*elided*/ any;
35
+ response: object;
36
+ }>;
37
+ ensureAbilities(listOfAbilities: string[]): Promise<void>;
38
+ getAttributes(): Record<string, any>;
39
+ handleResponseError(response: object): never;
40
+ identifierKey(): number | string;
41
+ _identifierKey: string | number;
42
+ isAssociationLoaded(associationName: string): boolean;
43
+ isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
44
+ isAssociationPresent(associationName: string): boolean;
45
+ ensureAssociationLoaded(associationName: string): Promise<any>;
46
+ ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
47
+ isAttributeChanged(attributeName: string): boolean;
48
+ isChanged(): boolean;
49
+ isNewRecord(): boolean;
50
+ isPersisted(): boolean;
51
+ savedChangeToAttribute(attributeName: string): boolean;
52
+ setNewModel(model: /*elided*/ any): void;
53
+ setNewModelData(model: /*elided*/ any): void;
54
+ previousModelData: any;
55
+ _isDateChanged(oldValue: any, newValue: any): boolean | void;
56
+ _isIntegerChanged(oldValue: any, newValue: any): boolean | void;
57
+ _isStringChanged(oldValue: any, newValue: any): boolean | void;
58
+ modelClassData(): ModelClassDataType;
59
+ reload(): Promise<void>;
60
+ save(): Promise<{
61
+ model: /*elided*/ any;
62
+ response?: object;
63
+ }>;
64
+ saveRaw(rawData: any, options?: {}): Promise<{
65
+ model: /*elided*/ any;
66
+ response: object;
67
+ }>;
68
+ update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
69
+ model: /*elided*/ any;
70
+ response?: object;
71
+ }>;
72
+ _refreshModelFromResponse(response: object): void;
73
+ _refreshModelDataFromResponse(response: object): void;
74
+ updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
75
+ simpleModelErrors?: boolean;
76
+ }): Promise<{
77
+ response: object;
78
+ model: /*elided*/ any;
79
+ }>;
80
+ isValid(): never;
81
+ isValidOnServer(): Promise<{
82
+ valid: boolean;
83
+ errors: Record<string, any>;
84
+ }>;
85
+ modelClass(): Record<string, any>;
86
+ preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
87
+ markForDestruction(): void;
88
+ _markedForDestruction: boolean;
89
+ markedForDestruction(): boolean;
90
+ uniqueKey(): number;
91
+ uniqueKeyValue: number;
92
+ _callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
93
+ readAttribute(attributeName: string): any;
94
+ readAttributeUnderscore(attributeName: string): any;
95
+ isAttributeLoaded(attributeName: any): boolean;
96
+ _isPresent(value: any): boolean;
97
+ _loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
98
+ _readBelongsToReflection({ reflectionName }: {
99
+ modelClass: any;
100
+ reflectionName: string;
101
+ }): any | null;
102
+ _loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
103
+ _loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
104
+ _readHasOneReflection({ reflectionName }: {
105
+ modelClass: any;
106
+ reflectionName: string;
107
+ }): any | null;
108
+ _readModelDataFromArgs(args?: {
109
+ data?: {
110
+ b?: Record<string, any>;
111
+ a?: Record<string, any>;
112
+ r?: any;
113
+ };
114
+ collection?: import("./collection.js").default<any>;
115
+ }): void;
116
+ collection: import("./collection.js").default<any>;
117
+ preloadedRelationships: any;
118
+ _readPreloadedRelationships(preloaded: {
119
+ getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
120
+ }): void;
121
+ primaryKey(): number | string;
122
+ } | {
123
+ changes: {};
124
+ newRecord: boolean;
125
+ relationshipsCache: {};
126
+ relationships: {};
127
+ abilities: Record<string, any>;
128
+ modelData: {};
129
+ assignAttributes(newAttributes: Record<string, any>): void;
130
+ attributes(): Record<string, any>;
131
+ can(givenAbilityName: string): boolean;
132
+ clone(): /*elided*/ any;
133
+ cacheKey(): number | string;
134
+ localCacheKey(): string;
135
+ fullCacheKey(): string;
136
+ create(attributes?: Record<string, any>, options?: object): Promise<{
137
+ model: /*elided*/ any;
138
+ response: object;
139
+ }>;
140
+ createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
141
+ model: /*elided*/ any;
142
+ response: any;
143
+ }>;
144
+ destroy(): Promise<{
145
+ model: /*elided*/ any;
146
+ response: object;
147
+ }>;
148
+ ensureAbilities(listOfAbilities: string[]): Promise<void>;
149
+ getAttributes(): Record<string, any>;
150
+ handleResponseError(response: object): never;
151
+ identifierKey(): number | string;
152
+ _identifierKey: string | number;
153
+ isAssociationLoaded(associationName: string): boolean;
154
+ isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
155
+ isAssociationPresent(associationName: string): boolean;
156
+ ensureAssociationLoaded(associationName: string): Promise<any>;
157
+ ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
158
+ isAttributeChanged(attributeName: string): boolean;
159
+ isChanged(): boolean;
160
+ isNewRecord(): boolean;
161
+ isPersisted(): boolean;
162
+ savedChangeToAttribute(attributeName: string): boolean;
163
+ setNewModel(model: /*elided*/ any): void;
164
+ setNewModelData(model: /*elided*/ any): void;
165
+ previousModelData: any;
166
+ _isDateChanged(oldValue: any, newValue: any): boolean | void;
167
+ _isIntegerChanged(oldValue: any, newValue: any): boolean | void;
168
+ _isStringChanged(oldValue: any, newValue: any): boolean | void;
169
+ modelClassData(): ModelClassDataType;
170
+ reload(): Promise<void>;
171
+ save(): Promise<{
172
+ model: /*elided*/ any;
173
+ response?: object;
174
+ }>;
175
+ saveRaw(rawData: any, options?: {}): Promise<{
176
+ model: /*elided*/ any;
177
+ response: object;
178
+ }>;
179
+ update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
180
+ model: /*elided*/ any;
181
+ response?: object;
182
+ }>;
183
+ _refreshModelFromResponse(response: object): void;
184
+ _refreshModelDataFromResponse(response: object): void;
185
+ updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
186
+ simpleModelErrors?: boolean;
187
+ }): Promise<{
188
+ response: object;
189
+ model: /*elided*/ any;
190
+ }>;
191
+ isValid(): never;
192
+ isValidOnServer(): Promise<{
193
+ valid: boolean;
194
+ errors: Record<string, any>;
195
+ }>;
196
+ modelClass(): Record<string, any>;
197
+ preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
198
+ markForDestruction(): void;
199
+ _markedForDestruction: boolean;
200
+ markedForDestruction(): boolean;
201
+ uniqueKey(): number;
202
+ uniqueKeyValue: number;
203
+ _callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
204
+ readAttribute(attributeName: string): any;
205
+ readAttributeUnderscore(attributeName: string): any;
206
+ isAttributeLoaded(attributeName: any): boolean;
207
+ _isPresent(value: any): boolean;
208
+ _loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
209
+ _readBelongsToReflection({ reflectionName }: {
210
+ modelClass: any;
211
+ reflectionName: string;
212
+ }): any | null;
213
+ _loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
214
+ _loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
215
+ _readHasOneReflection({ reflectionName }: {
216
+ modelClass: any;
217
+ reflectionName: string;
218
+ }): any | null;
219
+ _readModelDataFromArgs(args?: {
220
+ data?: {
221
+ b?: Record<string, any>;
222
+ a?: Record<string, any>;
223
+ r?: any;
224
+ };
225
+ collection?: import("./collection.js").default<any>;
226
+ }): void;
227
+ collection: import("./collection.js").default<any>;
228
+ preloadedRelationships: any;
229
+ _readPreloadedRelationships(preloaded: {
230
+ getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
231
+ }): void;
232
+ primaryKey(): number | string;
233
+ }[], onUpdated: Function, props?: {
12
234
  active?: boolean;
13
235
  debounce?: number;
14
- onConnected?: Function;
236
+ onConnected?: (...args: any[]) => void;
15
237
  }): void;
16
238
  //# sourceMappingURL=use-updated-event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-updated-event.d.ts","sourceRoot":"/src/","sources":["use-updated-event.js"],"names":[],"mappings":";AA0CA;;;;;;;;GAQG;AACH,gDARW,OAAO,iBAAiB,EAAE,OAAO,GAAC,OAAO,iBAAiB,EAAE,OAAO,EAAE,+BAG7E;IAAwB,MAAM,GAAtB,OAAO;IACQ,QAAQ,GAAvB,MAAM;IACW,WAAW;CACpC,GAAU,IAAI,CA0EhB"}
1
+ {"version":3,"file":"use-updated-event.d.ts","sourceRoot":"/src/","sources":["use-updated-event.js"],"names":[],"mappings":";AA0CA;;;;;;;;GAQG;AACH,gDARW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmFm4nB,CAAC;;;;;;;;gBAA2iB,CAAC;;;;;yBAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAnFzitB,GAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmFi2nB,CAAC;;;;;;;;gBAA2iB,CAAC;;;;;yBAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAnFvgtB,EAAE,+BAG7E;IAAwB,MAAM,GAAtB,OAAO;IACQ,QAAQ,GAAvB,MAAM;IAC2B,WAAW,GAA5C,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAChC,GAAU,IAAI,CA0EhB"}
@@ -40,7 +40,7 @@ const modelsByIdFromInput = (modelOrModels) => {
40
40
  * @param {object} [props]
41
41
  * @param {boolean} [props.active]
42
42
  * @param {number} [props.debounce]
43
- * @param {Function} [props.onConnected]
43
+ * @param {(...args: any[]) => void} [props.onConnected]
44
44
  * @returns {void}
45
45
  */
46
46
  const apiMakerUseUpdatedEvent = (model, onUpdated, props = {}) => {
@@ -104,4 +104,4 @@ const apiMakerUseUpdatedEvent = (model, onUpdated, props = {}) => {
104
104
  }, []);
105
105
  };
106
106
  export default apiMakerUseUpdatedEvent;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXVwZGF0ZWQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS11cGRhdGVkLWV2ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ25FLE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN4QixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDM0QsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzFELENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBRXJCLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxL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QyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QyxJQUFJLE9BQU8sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFNO1lBQ1IsQ0FBQztZQUVELE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtZQUNoRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQTtZQUUvQyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFaEMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQ2xFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ25FLENBQUM7WUFFRCxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNqQyxDQUFDLENBQUMsQ0FBQTtRQUVGLGNBQWMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQzdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNSLENBQUMsQ0FBQTtBQUVELGVBQWUsdUJBQXVCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCIuL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R8b2JqZWN0W118dW5kZWZpbmVkfG51bGx9IG1vZGVsT3JNb2RlbHNcbiAqIEByZXR1cm5zIHtvYmplY3RbXX1cbiAqL1xuY29uc3QgbW9kZWxzRnJvbUlucHV0ID0gKG1vZGVsT3JNb2RlbHMpID0+IHtcbiAgaWYgKCFtb2RlbE9yTW9kZWxzKSB7XG4gICAgcmV0dXJuIFtdXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShtb2RlbE9yTW9kZWxzKSkge1xuICAgIHJldHVybiBtb2RlbE9yTW9kZWxzLmZpbHRlcihCb29sZWFuKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbW9kZWxPck1vZGVsc11cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fG9iamVjdFtdfHVuZGVmaW5lZHxudWxsfSBtb2RlbE9yTW9kZWxzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5jb25zdCBtb2RlbHNEZXBlbmRlbmN5S2V5ID0gKG1vZGVsT3JNb2RlbHMpID0+IEpTT04uc3RyaW5naWZ5KFxuICBtb2RlbHNGcm9tSW5wdXQobW9kZWxPck1vZGVscykubWFwKChtb2RlbCkgPT4gbW9kZWwuaWQoKSlcbilcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdHxvYmplY3RbXXx1bmRlZmluZWR8bnVsbH0gbW9kZWxPck1vZGVsc1xuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG9iamVjdD59XG4gKi9cbmNvbnN0IG1vZGVsc0J5SWRGcm9tSW5wdXQgPSAobW9kZWxPck1vZGVscykgPT4ge1xuICBjb25zdCBtb2RlbHNCeUlkID0ge31cblxuICBtb2RlbHNGcm9tSW5wdXQobW9kZWxPck1vZGVscykuZm9yRWFjaCgobW9kZWwpID0+IHtcbiAgICBtb2RlbHNCeUlkW21vZGVsLmlkKCldID0gbW9kZWxcbiAgfSlcblxuICByZXR1cm4gbW9kZWxzQnlJZFxufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR8aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHRbXX0gbW9kZWxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uVXBkYXRlZFxuICogQHBhcmFtIHtvYmplY3R9IFtwcm9wc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmFjdGl2ZV1cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcHJvcHMuZGVib3VuY2VdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJvcHMub25Db25uZWN0ZWRdXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgYXBpTWFrZXJVc2VVcGRhdGVkRXZlbnQgPSAobW9kZWwsIG9uVXBkYXRlZCwgcHJvcHMgPSB7fSkgPT4ge1xuICBjb25zdCB7YWN0aXZlID0gdHJ1ZSwgZGVib3VuY2UsIG9uQ29ubmVjdGVkLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcbiAgY29uc3QgY29ubmVjdGlvbnNSZWYgPSB1c2VSZWYoe30pXG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3RQcm9wcykubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9wcyBnaXZlbiB0byB1c2VVcGRhdGVkRXZlbnQ6ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZSh7YWN0aXZlLCBkZWJvdW5jZSwgbW9kZWwsIG9uVXBkYXRlZH0pXG5cbiAgY29uc3QgZGVib3VuY2VDYWxsYmFjayA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgZGVib3VuY2UgPT0gXCJudW1iZXJcIikge1xuICAgICAgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24ocy5wLm9uVXBkYXRlZCwgZGVib3VuY2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vblVwZGF0ZWQpXG4gICAgfVxuICB9LCBbZGVib3VuY2VdKVxuXG4gIHMudXBkYXRlTWV0YSh7ZGVib3VuY2VDYWxsYmFja30pXG5cbiAgY29uc3Qgb25VcGRhdGVkQ2FsbGJhY2sgPSB1c2VDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgIGlmICghcy5wLmFjdGl2ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHMucC5kZWJvdW5jZSkge1xuICAgICAgcy5tLmRlYm91bmNlQ2FsbGJhY2soLi4uYXJncylcbiAgICB9IGVsc2Uge1xuICAgICAgcy5wLm9uVXBkYXRlZCguLi5hcmdzKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50Q29ubmVjdGlvbnMgPSBjb25uZWN0aW9uc1JlZi5jdXJyZW50XG4gICAgY29uc3QgbmV4dE1vZGVsc0J5SWQgPSBtb2RlbHNCeUlkRnJvbUlucHV0KG1vZGVsKVxuXG4gICAgT2JqZWN0LmtleXMoY3VycmVudENvbm5lY3Rpb25zKS5mb3JFYWNoKChtb2RlbElkKSA9PiB7XG4gICAgICBpZiAoIShtb2RlbElkIGluIG5leHRNb2RlbHNCeUlkKSkge1xuICAgICAgICBpZiAob25Db25uZWN0ZWQpIHtcbiAgICAgICAgICBjdXJyZW50Q29ubmVjdGlvbnNbbW9kZWxJZF0uZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudENvbm5lY3Rpb25zW21vZGVsSWRdLnVuc3Vic2NyaWJlKClcbiAgICAgICAgZGVsZXRlIGN1cnJlbnRDb25uZWN0aW9uc1ttb2RlbElkXVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBPYmplY3Qua2V5cyhuZXh0TW9kZWxzQnlJZCkuZm9yRWFjaCgobW9kZWxJZCkgPT4ge1xuICAgICAgaWYgKG1vZGVsSWQgaW4gY3VycmVudENvbm5lY3Rpb25zKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB1cGRhdGVkQ29ubmVjdGlvbiA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKG5leHRNb2RlbHNCeUlkW21vZGVsSWRdLCBvblVwZGF0ZWRDYWxsYmFjaylcbiAgICAgIGN1cnJlbnRDb25uZWN0aW9uc1ttb2RlbElkXSA9IHVwZGF0ZWRDb25uZWN0aW9uXG5cbiAgICAgIGlmIChvbkNvbm5lY3RlZCkge1xuICAgICAgICB1cGRhdGVkQ29ubmVjdGlvbi5ldmVudHMuYWRkTGlzdGVuZXIoXCJjb25uZWN0ZWRcIiwgb25Db25uZWN0ZWQpXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW21vZGVsc0RlcGVuZGVuY3lLZXkobW9kZWwpXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgIE9iamVjdC52YWx1ZXMoY29ubmVjdGlvbnNSZWYuY3VycmVudCkuZm9yRWFjaCgodXBkYXRlZENvbm5lY3Rpb24pID0+IHtcbiAgICAgIGlmIChvbkNvbm5lY3RlZCkge1xuICAgICAgICB1cGRhdGVkQ29ubmVjdGlvbi5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJjb25uZWN0ZWRcIiwgb25Db25uZWN0ZWQpXG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZWRDb25uZWN0aW9uLnVuc3Vic2NyaWJlKClcbiAgICB9KVxuXG4gICAgY29ubmVjdGlvbnNSZWYuY3VycmVudCA9IHt9XG4gIH0sIFtdKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhcGlNYWtlclVzZVVwZGF0ZWRFdmVudFxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXVwZGF0ZWQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS11cGRhdGVkLWV2ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ25FLE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUU7SUFDeEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN4QixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDM0QsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzFELENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBRXJCLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxL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QyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QyxJQUFJLE9BQU8sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFNO1lBQ1IsQ0FBQztZQUVELE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtZQUNoRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQTtZQUUvQyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFaEMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQ2xFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ25FLENBQUM7WUFFRCxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNqQyxDQUFDLENBQUMsQ0FBQTtRQUVGLGNBQWMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQzdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNSLENBQUMsQ0FBQTtBQUVELGVBQWUsdUJBQXVCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCIuL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R8b2JqZWN0W118dW5kZWZpbmVkfG51bGx9IG1vZGVsT3JNb2RlbHNcbiAqIEByZXR1cm5zIHtvYmplY3RbXX1cbiAqL1xuY29uc3QgbW9kZWxzRnJvbUlucHV0ID0gKG1vZGVsT3JNb2RlbHMpID0+IHtcbiAgaWYgKCFtb2RlbE9yTW9kZWxzKSB7XG4gICAgcmV0dXJuIFtdXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShtb2RlbE9yTW9kZWxzKSkge1xuICAgIHJldHVybiBtb2RlbE9yTW9kZWxzLmZpbHRlcihCb29sZWFuKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbW9kZWxPck1vZGVsc11cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fG9iamVjdFtdfHVuZGVmaW5lZHxudWxsfSBtb2RlbE9yTW9kZWxzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5jb25zdCBtb2RlbHNEZXBlbmRlbmN5S2V5ID0gKG1vZGVsT3JNb2RlbHMpID0+IEpTT04uc3RyaW5naWZ5KFxuICBtb2RlbHNGcm9tSW5wdXQobW9kZWxPck1vZGVscykubWFwKChtb2RlbCkgPT4gbW9kZWwuaWQoKSlcbilcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdHxvYmplY3RbXXx1bmRlZmluZWR8bnVsbH0gbW9kZWxPck1vZGVsc1xuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG9iamVjdD59XG4gKi9cbmNvbnN0IG1vZGVsc0J5SWRGcm9tSW5wdXQgPSAobW9kZWxPck1vZGVscykgPT4ge1xuICBjb25zdCBtb2RlbHNCeUlkID0ge31cblxuICBtb2RlbHNGcm9tSW5wdXQobW9kZWxPck1vZGVscykuZm9yRWFjaCgobW9kZWwpID0+IHtcbiAgICBtb2RlbHNCeUlkW21vZGVsLmlkKCldID0gbW9kZWxcbiAgfSlcblxuICByZXR1cm4gbW9kZWxzQnlJZFxufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR8aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHRbXX0gbW9kZWxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uVXBkYXRlZFxuICogQHBhcmFtIHtvYmplY3R9IFtwcm9wc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Byb3BzLmFjdGl2ZV1cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcHJvcHMuZGVib3VuY2VdXG4gKiBAcGFyYW0geyguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZH0gW3Byb3BzLm9uQ29ubmVjdGVkXVxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmNvbnN0IGFwaU1ha2VyVXNlVXBkYXRlZEV2ZW50ID0gKG1vZGVsLCBvblVwZGF0ZWQsIHByb3BzID0ge30pID0+IHtcbiAgY29uc3Qge2FjdGl2ZSA9IHRydWUsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucmVzdFByb3BzfSA9IHByb3BzXG4gIGNvbnN0IGNvbm5lY3Rpb25zUmVmID0gdXNlUmVmKHt9KVxuXG4gIGlmIChPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW4gdG8gdXNlVXBkYXRlZEV2ZW50OiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUoe2FjdGl2ZSwgZGVib3VuY2UsIG1vZGVsLCBvblVwZGF0ZWR9KVxuXG4gIGNvbnN0IGRlYm91bmNlQ2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vblVwZGF0ZWQsIGRlYm91bmNlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGVib3VuY2VGdW5jdGlvbihzLnAub25VcGRhdGVkKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlXSlcblxuICBzLnVwZGF0ZU1ldGEoe2RlYm91bmNlQ2FsbGJhY2t9KVxuXG4gIGNvbnN0IG9uVXBkYXRlZENhbGxiYWNrID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAoIXMucC5hY3RpdmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzLnAuZGVib3VuY2UpIHtcbiAgICAgIHMubS5kZWJvdW5jZUNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIHMucC5vblVwZGF0ZWQoLi4uYXJncylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY3VycmVudENvbm5lY3Rpb25zID0gY29ubmVjdGlvbnNSZWYuY3VycmVudFxuICAgIGNvbnN0IG5leHRNb2RlbHNCeUlkID0gbW9kZWxzQnlJZEZyb21JbnB1dChtb2RlbClcblxuICAgIE9iamVjdC5rZXlzKGN1cnJlbnRDb25uZWN0aW9ucykuZm9yRWFjaCgobW9kZWxJZCkgPT4ge1xuICAgICAgaWYgKCEobW9kZWxJZCBpbiBuZXh0TW9kZWxzQnlJZCkpIHtcbiAgICAgICAgaWYgKG9uQ29ubmVjdGVkKSB7XG4gICAgICAgICAgY3VycmVudENvbm5lY3Rpb25zW21vZGVsSWRdLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcImNvbm5lY3RlZFwiLCBvbkNvbm5lY3RlZClcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRDb25uZWN0aW9uc1ttb2RlbElkXS51bnN1YnNjcmliZSgpXG4gICAgICAgIGRlbGV0ZSBjdXJyZW50Q29ubmVjdGlvbnNbbW9kZWxJZF1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgT2JqZWN0LmtleXMobmV4dE1vZGVsc0J5SWQpLmZvckVhY2goKG1vZGVsSWQpID0+IHtcbiAgICAgIGlmIChtb2RlbElkIGluIGN1cnJlbnRDb25uZWN0aW9ucykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlZENvbm5lY3Rpb24gPSBNb2RlbEV2ZW50cy5jb25uZWN0VXBkYXRlZChuZXh0TW9kZWxzQnlJZFttb2RlbElkXSwgb25VcGRhdGVkQ2FsbGJhY2spXG4gICAgICBjdXJyZW50Q29ubmVjdGlvbnNbbW9kZWxJZF0gPSB1cGRhdGVkQ29ubmVjdGlvblxuXG4gICAgICBpZiAob25Db25uZWN0ZWQpIHtcbiAgICAgICAgdXBkYXRlZENvbm5lY3Rpb24uZXZlbnRzLmFkZExpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFttb2RlbHNEZXBlbmRlbmN5S2V5KG1vZGVsKV0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBPYmplY3QudmFsdWVzKGNvbm5lY3Rpb25zUmVmLmN1cnJlbnQpLmZvckVhY2goKHVwZGF0ZWRDb25uZWN0aW9uKSA9PiB7XG4gICAgICBpZiAob25Db25uZWN0ZWQpIHtcbiAgICAgICAgdXBkYXRlZENvbm5lY3Rpb24uZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuXG4gICAgICB1cGRhdGVkQ29ubmVjdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbm5lY3Rpb25zUmVmLmN1cnJlbnQgPSB7fVxuICB9LCBbXSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXBpTWFrZXJVc2VVcGRhdGVkRXZlbnRcbiJdfQ==